0、前言
大多数绝对编码器都使用同步串行接口SSI(Synchronous Seria lInterface),例如,深圳市博尔森科技有限公司的磁致伸缩位移传感器,还有多圈绝对编码器,都是SSI信号输出。要把SSI信号读入PLC或计算机中,通常并不容易。在PLC中,有一些专门用于读取SSI信号的模块,比如Simense的S7-300系列中的SM338;但大多数PLC系列中并没有这样的模块,因而在控制系统中使用SSI接口的编码器就不太方便。有时,控制系统的技术要求不高,使用小规模的PLC即可满足要求,但往往由于系统中必须使用SSI接口的绝对编码器,为了将SSI信号读入PLC,不得已选用带SSI输入模块的中型或大型PLC,这不仅增加了系统的一次性成本,而且也增加了今后的维护成本,还增加了软件编程和维护的难度。
另一方面,大多数PLC具有RS-232或RS-485标准的通信口,比如Simense S7-200系列的CPU,三菱FX系列的232通信模块等。使用这些通信口可以很方便地实现485通信,因此有必要研究一种将SSI信号转换为通过485通信协议可读取的转换器。
1、SSI规范
SSI信号包括差分同步时钟信号CLOCK+、CLOCK-,差分数据信号DATA+、DATA-,传感器工作电源VCC、GND。在绝对编码器内部,符合EIA的
RS-485标准的差分线路接收器可接收外部主控者的时钟信号CLOCK,差分线路驱动器可给主控者提供数据信号DATA。编码器的绝对位置值在主控者发出的时钟脉冲控制下,从最高有效位(MSB)开始同步传输。
磁致伸缩位移传感器SSI信号传输时序图如图1所示。当没有信号传输时,时钟线和数据线都为高电平。在时钟信号的第一个下降沿,编码器的当前位置值被储存;在随后的时钟上升沿,储存的数据被送出。对于分辨率为25位的位移传感器,共需要25个时钟脉冲的上升沿才能将一个位置的编码数据串行传输出来。
一个完整的数据传送完成后,数据线保持一段时间(t3)的低电平,直到传感器准备好(被查询)下一个值。如果在t3期间接收到时钟的下降沿,相同的值被再次发送。
如果时钟线保持高电平的时间大于t3周期,数据输出将会中断。这种情况下,在下一个时钟信号的下降沿,新的位置值被储存,并在随后的时钟上升沿被送出。
图1中,时钟脉冲周期T的范围为0.9~11.0µs;时钟脉冲低电平时长t1应大于0.45µs;从时钟脉冲第1个上升沿到数据的第1位(MSB)出现在数据线上的时长小于0.4µs;全部25位数据传送完成后,数据线保持低电平的时长t3在12~35µs之间,具体值的大小取决于数据线的长度,长度短的t3取小值。
2、SSI-485转换器硬件
由于SSI-485转换器需完成读取SSI信号和与上位机进行485通信的任务,所以,转换器的硬件主要包括3个部分:(1)起主控作用的单片机;(2)与绝对编码器SSI信号接口的IC;(3)实现485信号的IC。SSI-485转换器硬件原理框图如图2所示。
图2中的U3/MAX488芯片能够将其DI端输入的单端脉冲信号转换为差分的CLK+和CLK-信号输出,同时,能够将差分的DATA+、DATA-信号输入转换为单端的脉冲信号从其RO端输出。U2/MAX485芯片能够将单片机上的异步通信串行接口转换为RS-485标准的接口。单片机U1的时钟线T0用作MAX488差分时钟信号的驱动端,时钟线T1用作DATA信号转换为单端信号的输入端。单片机U1自身带有通用异步串行接口UART,即标记为TXD和RXD的两个端口线,将它们直接与MAX485的DI和RO端相连,即可实现通用异步串行接口到RS-485之间的物理转换。图2中的U4是一个EEPROM,用于存放本转换器的通信地址。
从图2可以看出,U3/MAX488用于与磁致伸缩位移传感器的SSI信号进行接口,U2/MAX485用于与上位机进行物理接口,单片机U1用于控制读取编码器数据,并实现与上位机通信的协议。
3、SSI-485转换器软件
SSI-485转换器软件部分主要包括读取SSI信号和实现通信协议2个子程序,具体软件流程框图如图3所示。
本转换器采用的通信协议是Modbus协议的子集,上位机读写转换器的指令是:地址+功能码+数据+校验码,共8字节。地址,指转换器的地址,占1个字节,用16进制形式表示;功能码,1个字节,根据取值不同可表示是要读转换器中的磁致伸缩位移传感器当前数据还是往转换器里写数据;数据,4个字节,当为读指令时,取值为从转换器中读取的字节数和起始地址,在本转换器中固定为00H00H00H04H,当写指令时,数据的第1字节表示要对转换器改写的目标地址,其余3个字节固定取值为00H;校验码占2字节,低位字节在前,高位字节在后,校验码为16位CRC校验码。
4、应用分析
SSI-485转换器的典型应用背景是,前端传感器为具有SSI接口的绝对编码器,而需要取得磁致伸缩位移传感器数据的处理机部分没有专门的模块。应用时将本转换器连接在编码器与具有自由口通信功能的PLC或个人计算机之间,就可以在PLC或个人计算机中通过编写与本转换器通信的程序来获得编码器的数据。