基于SSI208接口模块的光电 编码器数据采集设计
扫描二维码
随时随地手机看文章
O 引言
SSI (Synchronous Serial Interface,即同步串行接口)以其传输速度快、连线简单、抗干扰能力强等优点,在光电编码器上得到了越来越广泛的应用。然而单片机、DSP、PCI04、工控机等领域常用的控制器一般不提供SSI接口,SSI光电编码器供应商一般也不提供接口转换器,这些因素在一定程度上限制了SSI光电编码器的应用。为此,本文给出了两种SSI接口数据采集的低成本解决方案:其一是基于SSI并行接口模块SSI208P的并行高速接口方案,其二是基于SSI串行接口模块SSI208S的通用串行异步接口(UART)数据采集方案,这两种方案可分别满足不同应用场合的需求。
1 SSI编码器高速并行数据采集方案
1.1 SSl208P模块简介
由中国兵器工业第二零八研究所基于CPLD研制的SSl208P模块,其内部集成有SSI同步时钟发生器、脉冲计数器、数据串并转换、接口控制逻辑、输出控制以及收发驱动器(TTL—RS422电平转换)等功能单元,图l所示是其功能框图。
SSI208P模块已完成SSI接口与并口的转换和封装,因此,读取SSI接口数据就变得类似于对A/D、D/A或存储器读取数据的操作,非常简单。SSI208P模块能将数据由格雷码格式转换成BCD码格式,其通信速率可配置为250 kHz、500 kHz、1MHz和2 MHz,当通信速率配置为2MHz时,对于16位精度的编码器,其系统数据更新率不低于100 kHz,故可满足高速伺服控制系统的需求。
1.2 SSI208P的管脚配置
SSI208P接口模块采用DIP28封装,其管脚排列如图2所示。各引脚的功能如下:
CLKMDl,CLKMD0:SSI时钟频率设置端口,其中00为250 kHz,0l为500 kHz,10为1 MHz,11为2MHz;
START:启动指令,上升沿启动转换;
END:转换结束状态查询,低为转换结束;
CS:编码器数据输出选择端;
GRAY:数据格式转换选择,l是将格雷码转换为BCD码输出。0为BCD码输出;
D0~D7:8位数据输出并口;
A1,A0:输出数据高低位选择端,00为最低八位,11为最高八位;
CLK+,CLK一:SSI编码器时钟信号;
DATA+,DATA一:SSI编码器数据信号;
VCC,GND:电源,电源地;
NC:空脚。[!--empirenews.page--]
1.3 SSI208P控制时序
SSI208P的控制时序如图3所示。一般可在START上升沿启动一次SSI编码器数据收发过程。START电平升高后的125ns内,SSI208P模块开始向编码器发送一帧同步时钟脉冲信号,脉冲的个数由编码器的精度决定,同时转换结束管脚END变高。发送脉冲期间,管脚END保持高电平,转换结束,END管脚电平变低后,即可从DO~D7并行读取编码器数据,每次读取八位,并由Al、AO控制输出数据的高低位,00表示读取最低八位、11表示读取最高八位。如对16位编码器,只需读取两次(A1、AO分别为00、01),最多可以读取32位数据。编码器并行数据读取结束后,应将START管脚置低,以准备启动下一次转换。
1.4 基于SSI208P的接口设计
采用SSI208P模块可以大大简化单片机、DSP、PCI04等控制器扩展SSI编码器接口的软硬件设计。下面给出一种基于DSP处理器TMS320F2812的典型应用。图4所示为DSP处理器TMS320F2812与SSI208P模块的硬件连接原理图。本编码器为单圈16位绝对式角度编码器,编码器输出数据格式为格雷码,SSI208P模块的八位数据总线与TMS320F2812的低八位数据线相连。由于使用的编码器为16位,所以仅需一位地址线即可区分编码器数据的高八位和低八位,可使用外部地址片选管脚/XZCS67作为SSI208P的外部片选信号,并使用通用IO口GPIOB4控制SSI208P模块启动,同时使用通用IO口GPIOB5进行SSI208P模块转换结束状态查询。设计时应在CLKMDO、CLKMDl接上拉电阻,并将SSI208P模块同步时钟频率配置为2MHz。将GRAY管脚拉高,SSI208P模块即可将编码器输出的格雷码数据转换成BCD码。
由SSI208P模块的控制时序图可以看出,SSI208P模块的启动转换控制和数据读取操作比较简单,其软件流程如图5所示。
[!--empirenews.page--] 对应于图5的硬件设计,DSP处理器TMS320F2812的相应软件代码如下:
2 SSI编码器通用异步串行采集方案
2.1 SSI208S模块简介
使用SSI208S模块可以将SSI同步串行数据转换成通用异步串行数据(可采用RS一232、RS一422或RS一485方式),工控领域常用的PC机、工控机、DSP、单片机等控制系统上一般都配备有通用异步串行接口,因此,使用SSI208S模块可以方便地实现SSI编码器与这些控制系统进行连接。
2.2 SSI208S管脚配置
SSI208S接口转换模块采用DIP24封装,其管脚排列如图6所示。各引脚的功能如下:
VCC,GND:电源,电源地;
CLKMDl,CLKMD0:同SSI208P;
232TX:RS一232数据发送;
232RX:RS一232数据接收;
MODE:工作模式设定端口;
A1、A0:地址设定端;
GRAY:数据格式转换选择,1是将格雷码转换为BCD码输出,0是BCD码输出;
CLK+,CLK一:SSI编码器时钟信号;
DATA+,DATA一:SSI编码器数据信号;
CAP:接去耦电容;
NC:空脚。
[!--empirenews.page--]管脚MODE可用于设定SSI208S模块的工作方式:0一主动模式,1一问询模式。在主动工作模式下,模块定时主动向主机发送位置信息;在问询工作模式下,主机先向模块发送问询信息(地址信息),然后SSI208S模块向主机返回位置信息。地址设定管脚A1、A0可以设定模块的地址信息,使异步串行总线上可以连接多个SSI编码器,O一0至1一1分别对应地址0至3。
2.3 SSI208S的应用
采用SSI208S模块同样可以大大简化单片机、DSP、PCI04等控制器扩展SSI编码器接口的软硬件设计。下面给出工控机与SSI208S模块的应用实例,其硬件连接原理如图7所示,其中编码器精度为16位,采用BCD码输出,通用异步串行通信速率为115200bps,编码器SSI的通信速率设置为250 kHz,并采用问询工作模式,编码器地址设置为0x01。
工控机向SSI模块发送地址信息0x01后,SSI模块将返回0xAA 0x01 0x23 0x34 0x57。其中0xAA为数据包起始标志,0xol为编码器位置信息,0x23和0x34为编码器位置信息,0x57为校验信息。图8为示波器捕捉的查询指令和SSI模块返回的位置指令波形图。由图可知,工控机发出查询指令后0.1ms,SSI模块将向主机发送编码器位置信息,其中包含编码器的同步串行通信时间。设置更高的通信速率可缩短该滞后时间。查询方式工作模式下,编码器的数据更新周期约为0.6ms,可见,其数据更新率大于1600 Hz,可以满足高速伺服控制系统的需求。
3 结束语
本文提供了两种SSI编码器高速数据采集的实现方案,并提供了详细的硬件原理图和软件代码。目前,这两种模块均已产品化,成功运用于某车载系统的火控分系统中,并在运行中十分稳定可靠。