打印

基于DSP的绝对式光电编码器串行接口设计

[复制链接]
6442|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
益友电子|  楼主 | 2012-10-22 23:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘要:为了实现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位右对齐格式”。


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所示。

相关帖子

沙发
益友电子|  楼主 | 2012-10-22 23:35 | 只看该作者

    在该电路中,用DSP的GPIOF7(CANRXA)口来模拟产生绝对式编码器读数时所需的同步时钟信号,用GPIOF6(CANTXA)口接收数据,同时为了减少电路前后的干扰以及实现与DSP接口3.3 V电平的匹配,在电路中使用了两路高速光耦器件进行光电隔离,并实现电平转换。

4 软件设计
   
高精度多圈绝对式编码器可以同时输出多圈位置信息(nMT位)和单圈位置信息(nST位),其数据发送时序关系,如图4所示,当编码器接收到发送周期的第一个时钟信号下降沿时,读取(nMT+nST)位字长的绝对位置值存入数据缓存器。数据缓存器中数据随着时钟信号的下降沿串行同步发送数据,第一个发出的数据位是绝对位置值的最高位(MSB),最后一个发出的数据位是绝对位置值的最低位(LSB)。

    一般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接口与微处理器通信的技术瓶颈,具有良好的通用性、易于实现,已成功应用于电机伺服控制系统,为微处理器与其他串行外设的通信提供了设计参考,具有一定的实用价值。

使用特权

评论回复
板凳
angerbird| | 2012-10-23 17:41 | 只看该作者
先大致砍下了啊,需要点时间来消化这个的啊

使用特权

评论回复
地板
Harvard| | 2013-2-20 12:29 | 只看该作者
有产品卖吗?? 用单片机能实现吗

使用特权

评论回复
5
elkite| | 2013-9-9 14:19 | 只看该作者
单片机实现没有任何问题,我们用DIO实现了,在现场长期得到验证。

使用特权

评论回复
6
qwedsss| | 2013-9-23 17:31 | 只看该作者
elkite 发表于 2013-9-9 14:19
单片机实现没有任何问题,我们用DIO实现了,在现场长期得到验证。

哦?那绝对值编码器的采集就没什么问题了啊,求指点,求方案,谢谢

使用特权

评论回复
7
elkite| | 2013-9-23 20:17 | 只看该作者
就用IO模拟SSI时序,就ok了,没什么特别技术。

SSI时序,主要考虑CLK和DATA的配合,参考绝对值编码器手册。

使用特权

评论回复
8
zgsxhzac| | 2013-9-23 20:21 | 只看该作者
为啥没总结到pdf上啊

使用特权

评论回复
9
sishangcine| | 2013-9-23 20:26 | 只看该作者
很好的** 就是没总结 可惜了

使用特权

评论回复
10
heibaiyinjiag| | 2013-9-23 20:53 | 只看该作者
是呀 楼主下次分享要提前整理好呀

使用特权

评论回复
11
taihezhibanh| | 2013-9-23 21:01 | 只看该作者
学习一下

使用特权

评论回复
12
firstblood| | 2013-9-23 21:43 | 只看该作者
绝对式光电编码器广泛应用于雷达、机器人、精密机床和高精度伺服系统等对精度要求比较高的场合。

使用特权

评论回复
13
firstblood| | 2013-9-23 21:44 | 只看该作者
硬件的核心组成部分:采用绝对式编码器的电机伺服控制系统包括:待测量旋转位置的电动机、绝对式编码器、电平转换元件MAX488、以DSP为核心的电机控制板以及电机功率驱动电路

使用特权

评论回复
14
zhangmangui| | 2013-9-23 21:54 | 只看该作者
记得我也设计过   用的斯密特触发器整形   高速光耦隔离   电压匹配等

使用特权

评论回复
15
firstblood| | 2013-9-23 22:54 | 只看该作者
光电编码器有增量式和绝对式两种,增量式光电编码器精度比较低,其输出的A,B正交信号易受电磁干扰和机械抖动引起误计数,导致位置定位有误,且其无掉电**功能。

使用特权

评论回复
16
jjqsdm| | 2013-10-23 14:58 | 只看该作者
现在正在研究旋变,借鉴借鉴

使用特权

评论回复
17
zhangmangui| | 2013-10-23 18:14 | 只看该作者
firstblood 发表于 2013-9-23 22:54
光电编码器有增量式和绝对式两种,增量式光电编码器精度比较低,其输出的A,B正交信号易受电磁干扰和机械抖 ...

是的  一个脉冲确实很容易受到干扰

使用特权

评论回复
18
G21372| | 2013-10-24 13:24 | 只看该作者
留着了 以后慢慢看

使用特权

评论回复
19
yangguangaisha| | 2013-10-24 13:36 | 只看该作者
如果能整理好就更好了 很不错的技术贴

使用特权

评论回复
20
gexingyouxian| | 2013-10-24 13:43 | 只看该作者
应该可以置顶吧这么好的贴

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

445

帖子

0

粉丝