微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP的绝对式光电编码器串行接口设计

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

时间:10-22 来源:互联网 点击:

由图可见,绝对式光电编码器的输入时钟信号(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)。


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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top