基于DSP的绝对式光电编码器串行接口设计
扫描二维码
随时随地手机看文章
摘要:为了实现SSI接口的绝对式光电编码器在电机伺服控制系统中对电机位置的检测,采用了DSP芯片TMS320F2812的通用I/O口模拟SSI接口与绝对式编码器之间的通信,编写了模拟SSI接口通信时序程序并做了绝对式编码器位置检测实验,获得了绝对式编码器全范围的输出值,单圈数值为0~25536,经4 096圈可输出范围0~268 435 456数值。得到了绝对式编码器在电机伺服控制系统中可实现位置精确采集和精确控制以及利用通用I/O口,实现SSI接口通信,其具有设计简单、成本低、易维护、位置检测精确以及可替代专用解码芯片的特点。
关键词:绝对编码器;DSP;串行通信SSI;TMS320F2812
0 引言
在电机伺服系统中,通常需要检测转子的位置信息作为闭环控制的反馈信号,对高精度伺服系统而言,位置反馈环节的检测精度直接影响伺服系统的性能,常用的位置检测装置有光电编码器和旋转变压器等。旋转变压器具有结构简单、成本低、可靠性和防护等级高的优点,但其解码复杂、专用解码芯片昂贵以及对电磁干扰敏感等缺点限制了其发展,现已逐渐被光电编码器取代。光电编码器有增量式和绝对式两种,增量式光电编码器精度比较低,其输出的A,B正交信号易受电磁干扰和机械抖动引起误计数,导致位置定位有误,且其无掉电记忆功能。绝对式光电编码器具有精度高、可靠性高、抗干扰能力强、具有掉电记忆功能等特点,因此,绝对式光电编码器广泛应用于雷达、机器人、精密机床和高精度伺服系统等对精度要求比较高的场合。
绝对式编码器的信号输出形式有并行和串行两种,其中串行输出以SSI接口(同步串行接口)数据连线少、可靠度高的性能优势而得到较多应用。但是由于采用串行输出方式会导致较大的传输延迟,这就对串行通信的速度和可靠性有比较高的要求。绝对式编码器的应用需要专用的处理芯片,芯片的价格十分昂贵,有人采用CPLD、FPGA等硬件实现对编码器串行数据的处理,这无疑增加了系统的复杂程度。本文介绍了以DSP芯片TMS320F2812为核心,针对意大利LIKA公司的HMCT/16/4096/BA绝对式光电编码器进行了SSI接口电路和软件的设计,实现DSP的通用I/O口与编码器之间的通信。
1 绝对式光电编码器
意大利LIKA公司的HMCT/16/4096/BA绝对式光电编码器为单圈分辨率16位(65 536)且圈数12位(4 096)的多圈高精度编码器,其分辨率可达0.001 5%;输出电路形式为SSI等几种输出方式;输出码制为格雷码和二进制码可选;轴心(轴向和径向)负载最大为40 N;轴心旋转速度最大6 000 r/m;转动惯量约95 g·cm2;供电电压10~30 V;功耗1 W;输出电流最大为40 mA;存储温度范围:-40~100℃;工作温度范围:-20~85℃;保护等级:IP65;质量:0.3 kg。电气连接方式:EML121H接头,连接器引线如表1所示。其中,Brown/Green为供电电压正,White/Green为供电电压负,本方案中除用到供电电压信号外,只用了其中的CLOCK+,CLOCK-,DATA+和DATA-信号。
2 SSI接口及SSI协议介绍
SSI接口光电编码器采用主机主动读取方式,是以2对符合RS 422电平的信号线进行信号传输,1对数据(Data)线,1对同步时钟(Clock)线。SSI同步时钟频率决定数据传输速率,其范围较宽为0.1~2 MHz,可以根据传输距离远近选择相应的传输速率,传输速率自适应。SSI数据传输时序如图1所示,在同步时钟控制下,从最高有效位(MSB)开始传输数据,在时钟信号的第一个下降沿,如“1”位置,编码器的当前位置值被储存,在随后的时钟上升沿,如“2”位置,存储的数据被送出,即最高有效位MSB被送出,以后依次送出其他有效位数,直到最低有效位LSB被送出,最后一个由低到高电平的跳变,如“3”的位置,输出传输周期结束,再经Tm时间后编码器进入下一个传输周期。图中T为同步时钟周期,Tm为脉冲序列结束保持高电平时间(Tm>T),如果位数小于25位,要用“0”填充补齐,具体补零位置见参考文献中的“树形(TR EE)数据对齐格式”和“LSB位右对齐格式”。
[!--empirenews.page--]
3 硬件电路设计
采用绝对式编码器的电机伺服控制系统包括:待测量旋转位置的电动机、绝对式编码器、电平转换元件MAX488、以DSP为核心的电机控制板以及电机功率驱动电路。本文主要介绍绝对式编码器HMCT/16/4096/BA和DSP芯片的接口部分。
由于该编码器输出接口为SSI接口,而单片机、DSP、PC104、工控机等工控领域常用的控制器一般不提供SSI接口,此外SSI光电编码器供应商一般也不提供接口转换器,所以有必要将SSI接口转换成可以与DSP等可以通信的串行接口。接口电路如图2所示。
由图可见,绝对式光电编码器的输入时钟信号(CLOCK)和输出数据信号(DATA)均为差分信号,其数据传输符合EIA RS 22标准,是符合RS 422协议的电平,因而需将其转换成可以输入单片机或者DSP的电平。能完成这种转换的芯片很多,大致有两类:全双工和半双工,由编码器读数时序图,可数据的输出在时钟信号下降沿转换,在时钟信号上升沿传送,因此应选用全双工的转换芯片。本文选用MAX488芯片作为绝对式光电编码器与DSP芯片MS320F2812通信的接口芯片,它由5 V电压供电,是一种适用于RS 422和RS 485的低功率收发器,它的芯片中包含一个驱动器和一个接收器,并且可以2.5 Mb/s速率进行传输。绝对式光电编码器与DSP芯片TMS320F2812通信的接口电路图如图3所示。
在该电路中,用DSP的GPIOF7(CANRXA)口来模拟产生绝对式编码器读数时所需的同步时钟信号,用GPIOF6(CANTXA)口接收数据,同时为了减少电路前后的干扰以及实现与DSP接口3.3 V电平的匹配,在电路中使用了两路高速光耦器件进行光电隔离,并实现电平转换。
4 软件设计
高精度多圈绝对式编码器可以同时输出多圈位置信息(nMT位)和单圈位置信息(nST位),其数据发送时序关系,如图4所示,当编码器接收到发送周期的第一个时钟信号下降沿时,读取(nMT+nST)位字长的绝对位置值存入数据缓存器。数据缓存器中数据随着时钟信号的下降沿串行同步发送数据,第一个发出的数据位是绝对位置值的最高位(MSB),最后一个发出的数据位是绝对位置值的最低位(LSB)。
[!--empirenews.page--]
一般SSI标准信号为25位,若不足25位要用零补齐,本文用到的编码器为单圈16位4 096圈的高精度编码器,总位数28位,它遵循的SSI传输格式如图5所示。
由图5可知,对于单圈位数和多圈位数超过25位的编码器,在编写通信程序时,需要产生32个CLOCK时序才可以将编码器的所有数据传输并接收完毕。由硬件电路可知,利用DSP的GPIOF7(CANRXA)口来模拟产生绝对式编码器读数时所需的同步时钟信号,用GPIOF6(CANTXA)口接收数据,具体通信过程如流程图6所示。
在整个流程过程中,产生CLOCK同步时钟时序以及数据处理是关键部分。整个实现过程如下:
(1)GPIOF7产生一个高到低跳变的电平,并适当延时,此时启动数据开始转换;
(2)GPIOF7产生一个低到高跳变的电平,并适当延时,此时已将最高有效位数据MSB传送至数据口,并读取数据到数据寄存器GPFDAT;
(3)连续产生32个同步时钟CLOCK信号,依次将传输32位数据到数据寄存器GPFDAT,本文读取数据方法是按位读取,每次在新加数据时,将前数据左移1位然后再加,直到完成所有数据位读取完毕;
(4)GPIOF7产生一个低到高跳变的电平,高电平保持时间相对前面CLOCK同步时钟时序长一点,数据转换完毕。
下面给出InitGpio(void)函数的部分与本文有关的代码。
5 实验结果
实验结果如图7所示,由图可见,CH2通道为32个CLOCK时序图,CH1通道为32个CLOCK时序下对应输出的DATA数据波形图,该绝对式编码器单圈数值为0~25 536,经4 096圈可输出范围0~268 435 456数值,检测精度为0.001 5%,运行稳定可靠。
6 结语
本文提供了一种基于DSP芯片TMS320F2812的通用I/O口与绝对式编码器SSI接口之间通信的硬件原理图、软件流程、程序实现步骤和部分代码。采用软件控制DSP的I/O口模拟时钟信号的方法,成功地解决了绝对式编码器SSI接口与微处理器通信的技术瓶颈,具有良好的通用性、易于实现,已成功应用于电机伺服控制系统,为微处理器与其他串行外设的通信提供了设计参考,具有一定的实用价值。