当前位置:首页 期刊杂志

基于FPGA和绝对式长度计的EnDat2.2通信接口设计

时间:2024-05-04

刘塔拉 贾建禄 吴庆林

摘要 EnDa t2.2是一种通信协议,多用于各类编码器数据接口。本文通过分析EnDat 2.2工作原理和通信时序,设计了基于FPGA的绝对式长度计AT1218信号采集电路,并给出了该电路硬件电路组成、模块设计和软件流程。同时,通过系统级联进行了测试实验。实验结构表明该系统可以正确又稳定地采集位置信息,采集频率达到lkHz。

【关键词】FPGA EnDat2.2 绝对式长度计

1 引言

具有高精度、可靠性好和检测速度快等特点的长度计被广泛应用于众多工业应用领域及检测机构。如今市场上主流的长度计都基于高精度光栅尺,采用数字化接口传输。按测量方式,长度计分为增量式长度计和绝对式长度计。相比于增量式长度计,绝对式长度计不仅可以测量微小位移,还有绝对定位和掉电不丢失等优点,越来越多的应用在长度测量领域。海德汉(HEIDENHAIN)公司ACANTO系列绝对式长度计测量精度高、测量范围大、坚固耐用,被广泛应用于高精度测量领域。由于测量分辨率高,绝对式长度计通常采用串行传输数据接口。在数字通信方面,海德汉公司推出了EnDat2.2串行通信接口,是一种适用于ACANTO系列绝对式长度计的双向数字接口,可以快速并高可靠性的传输长度计的位置值。ACANTO系列绝对式长度计配备了专用的采集卡,可以将串行的EnDat2.2数据转换为并行数据以便于用户使用,但该采集卡价格昂贵并适用范围小。所以通过分析长度计和Endat2.2接口,设计一个基于FPGA的信号采集电路,可以提高长度检测系统的便捷性和适用性。

2 EnDat2.2通信协-议

海德汉公司的EnDat2.2通信协议适用于海德汉公司编码器,是一种半双工同步串行接口。通过EnDat2.2通信接口,不仅可以完成传输指令接收位置信息,还可以传输和保存编码器中保存的信息。在本系统中,FPGA信号采集电路与长度计以EnDat2.2通信接口连接,通过问答的通信方式获得长度计位置值和附加信息。EnDat2.2通信接口除了需要提供电源和地以外,只需要两组差分信号线。一组差分信号线传输时钟信号,是从信号采集电路提供给长度计的同步信号,最高频率可以达到16MHz。另一组差分信号线传输数据信号,属于半双工数据传输。一个信号采集周期中,信号采集电路给长度计发送指令,长度计根据指令计算完后数据后向信号采集电路发送位置值以及指定的附加信号。EnDat2.2常用时序图如图1所示。

空闲状态下时钟信号线被拉高,数据信号线被拉低。从时钟信号下降沿开始进入一个采集周期,此时长度计保存测量值并开始计算位置值。两个时钟周期以后,信号采集电路开始发送6位模式指令。模式指令可以让长度计发送位置值,并可以选择附加信息类型。模式指令发送完毕,数据信号线改为接收状态。在长度计计算完成后,由起始位S开始向解码电路发送信息。起始位后会有两个错误位Fl和F2,是检测故障的信号。两个错误位独立生成,发生故障的详细原因会保存在工作状态存储区内。随后长度计发送位置值,顺序是从最低位LSB到最高位MSB,位置值长度由长度计决定。每一段数据均由循环冗余校验CRC结尾,用于检测数据在传输或者保存过程中可能发生误码或者串码。随后长度计将发送附加信息2和附加信息l。附加信息内容可以通过模式指令001001来选择和确定。数据信息传输完毕,时钟信号置高电平,数据信号经过一段恢复时间后恢复低电平。恢复时间与时钟频率有关,时钟频率大于1MHz时,恢复时间为1.25-3.75微秒。如果时钟频率小于1MHz,恢复时间在10-30微秒范围内。

3 系统硬件组成

系统硬件组成如图2所示,主要由信号采集电路和长度计构成。信号采集电路主要由FPGA、晶振、复位电路、供电电路和串口收发模块组成。FPGA模块作为主要控制器,负责时序控制、指令输出、接收数据和解码等功能。串口收发模块MAX3485和MAX3490负责FPGA引脚TTL电平与串口通信需要的RS485电平和RS422电平之间的转换。

長度计采用的是海德汉ACANTO系列AT1218,是支持EnDat2.2通信协议的绝对式长度计,防护安全级别达到IP67。AT1218以188.4μm栅距玻璃DIADUR光栅为测量基准,测量分辨率为23nm,总测量范围为12mm,系统精度达到1μm。

4 FPGA数据读取原理和模块设计

在通过EnDat2.2接口读取长度计数据的过程中,FPGA内部工作的原理如图3所示。按功能分类,FPGA模块可分为发送模块、接收模块、控制模块、CRC校验模块、数据预处理模块以及配置寄存器组成。配置寄存器负责保存信号采集电路运行顺序和工作参数,主要包括信号采样频率、信号预处理内容、波特率、EnDat2.2时钟频率和附加信息内容等。控制模块通过读取配置寄存器的内容配置各个功能模块,并负责EnDat2.2接口的时钟信号和收发信号顺序。时钟模块的功能是将系统时钟通过分频产生EnDat2.2接口需要的时钟信号。发送模块1和接收模块1分别负责EnDat2.2通信协议的模式指令发送和长度计数据的接收。接收的长度计串行数据需要经过CRC校验模块来验证EnDat2.2通信接口数据传输过程的完整性和正确性。数据预处理模块可以将长度计位置数据进行简单的预处理,如计算位移、速度、加速度等数据。发送模块2和接收模块2负责给主控系统发送计算结果和接收配置参数。

在信号采集过程中,需要各功能模块协同工作。在刚初始化时,控制模块通过读取配置寄存器来配置FPGA模块,控制CLK信号线保持高电平,TX1信号保持低电平,收发控制信号DE为高电平,EnDat2.2接口处于发送状态。当开始一个读取周期时,时钟模块开始产生CLK信号并发送。两个时钟周期后,控制模块驱动发送模块1产生并发送模式指令。指令发送完成再过两个周期后,控制模块切换DE的电平使EnDat2.2接口数据传输方向由发送转为接收。此时接收模块1准备接收数据,在检测到一个高电平后开始接收并缓存数据。完成数据接收后时钟模块停止产生时钟信号,CLK信号线拉高,DE变回低电平。接收的数据首先通过CRC校验检验EnDat2.2接口是否存在误码、串码等情况。校验通过的数据经过数据预处理计算,由发送模块2发送到主控系统。

5 软件主程序流程

信号采集电路内部主程序运行流程如图4所示。电路上电后FPGA根据控制寄存器配置接口各个参数。配置信号采集频率也会同时选定采集时钟触发和开始采集标志寄存器。当开始采集标志位置1,开始一轮数据采集周期。FPGA给长度计发送模式指令并接收长度计计算的位置值。经CRC校验,如果数据传输正确,预处理位置数据并将结果发送到主控。如果数据传输有误,FPGA会往主控系统发送出错提示。CRC校验结束后,FPGA还需要通过检测配置寄存器修改标志位来判断主控系统是否要求修改信号采集电路参数配置。如果修改标志位为1,FPGA需要重新配置接口参数。如果修改标志位为O则跳过重新配置步骤,直接等待下一个开始采集标志。

6 系统验证

为了验证电路设计的功能和更好的观察实际电路中信号的波形,对长度计和信号采集电路进行了上电测试。上电后通过示波器观察的FPGA在EnDat2.2接口端信号波形如图5所示,其中图5(a)为一个完整的信号采集周期,图5(b)为信号采集循环过程。示波器显示中1、2、3端口信号分别对应时钟信号、模式指令和位置数据。为了提高接口稳定性,时钟信号频率采用了460kHz。从图5中可以看到,FPGA时钟输出稳定,长度计接收到指令信号后反馈的长度数据正确,接口工作稳定,可以达到lkHz采样频率,满足设计要求。

7 结束语

在测量领域应用中,高精度、数字化的绝对式长度计越来越受广泛的应用。在本文中设计了基于FPGA的EnDat2.2接口绝对式长度计信号采集电路。通过实验验证,该电路可以满足设计要求,正确、稳定、快速的采集长度计数据。与专用采集卡相比,本文电路实现了成本低、体积小、集成度高、易操作等优点。同时通过主控配置参数,此电路可以适配不同种类不同位数的测量器件,有非常广泛的适用性。

参考文獻

[1]张松.FPGA的模块化设计方法[J].电子测量与仪器学报,2014,28 (05): 560-565.

[2]郭永彩,苏渝维,高潮,基于FPGA的红外图像实时采集系统设计与实现[J].仪器仪表学报,2011,32 (03): 514-519.

[3]杨海钢,孙嘉斌,王慰.FPGA器件设计技术发展综述[J].电子与信息学报,2010, 32 (03): 714-727.

[4]孙大海,艾华,基于FPGA双路EnDat2.2编码器的接口设计[J].液晶与显示,2014, 29 (05): 745-750.

[5]郑一麟,林浒,陶耀东,姚恺丰,基于SOPC的数控系统EnDat 2.2接口的设计与实现[J].小型微型计算机系统,2012, 33(06):1377-1380.

[6]江玮,孙宇舟,高丽萍,基于CPLD和长度计的数字化微小位移检测的设计[J].机械与电子,2012.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!