• 公司地址
    广东,深圳
  • 联系电话
    4000-077-366

磁致伸缩位移传感器SSI协议及实现

  在磁致伸缩位移传感器应用领域,SSI通讯协议作为一种实现较早的通讯协议获得了广泛的应用,许多国外的公司都推出了具有SSI通讯接口磁致伸缩位移传感器。新出现的总线型磁致伸缩位移传感器虽然具有连接简便、通用性强的优点,但是其价格昂贵,硬件和软件开发复杂,因此难以完全取代SSI通讯方式。比较而言,SSI通讯实现简单,只要采用接口芯片并配合软件,用普通的单片机就可以方便的实现。如果想提高通讯速度,则可以采用CPLD替代单片机。由于协议简单,采用逻辑门数较少的CPLD就可以完成全部的功能。本文描述了详细SSI通讯协议的格式及硬件电路的实现。并用verilog语言描述了通讯功能主要模块。

  1、SSI通讯协议简介

  SSI通讯协议为缩写,其全称为同步串行接口(SynchronousSerialinterface)。从名字可以得知这是一种串行通讯协议。磁致伸缩位移传感器把位置信息反馈到主控系统,然后由主控系统发出控制信号。高分辨率的传感器位数较多,如果直接采用并行传输的方式会带来传输可靠性的问题。例如普通的传感器通常为25位,如果采用单端输出的并行方式需要25根数据线。在安装过程中只要有一根数据线出问题就无法正常使用,同时单端输出比较容易被干扰。为了提高抗干扰能力,往往需要采用差分传输方式,这种条件下仅数据接线就要50根。如此之多的连接线必然造成系统的可靠性有很大的下降。为了提高系统的可靠性,用串行通讯方式取代并行通讯就成了一种必然的选择。串行通讯方式可以分成同步和异步两种。异步通讯往往采用一个特定的频率对输入数据采样,根据采样结果的变化确定数据,要提高传输速率就要提高采样速度。异步通讯的优点是不需要时钟同步线,但是由此会带来通讯波特率确定的问题,通讯的主从双方必须以同一个波特率来收发数据才能正确的接收和发送。为此必须有一个波特率协商的机制,比如双方可以先确定一个波特率或者通过一个特定的方法得到波特率。SSI为了避免这个问题采用了同步通讯的模式。这样通讯的波特率可以实现自适应,在需要高速实时控制的场合采用高速同步时钟,提高数据的传输速度。而在另外一些对数据传输要求不是很高的场合,可以采用低速的波特率来增加传输长度。SSI通讯可以分为主方和从方,主方是一些控制器,如PLC,人机界面等等,从方是磁致伸缩位移传感器。主方发送同步时钟脉冲。从方在接收到同步脉冲以后在时钟的上升沿送出数据。数据和时钟传输的方向都是单向的。

  2、SSI通讯协议格式

  SSI通讯的帧格式如图1.数据传输采用同步方式,在空闲阶段不发生数据传输的时候时钟和数据都保持高电位,在第一个脉冲的下降沿触发传感器载入发送数据,然后每一个时钟脉冲的上升沿传感器送出数据,数据的高位在前,低位在后,当传送完所有的位数以后时钟回到高电平,数据也对应回到高电平。图中有几个参数定义如下:T为时钟的脉冲频率,Tp为数据传输间隔。Tm为单稳触发时间。N为为传输位数。传输的位数可以是任意的,但实际使用中单圈传感器采用13位,多圈采用25位。对于从方传感器而言是无法事先知道主方发送的时钟脉冲个数的,因而无法确定帧的起始位和停止位。解决问题的方法是采用高电位保持一段的时间内没有变化作为帧结束标志。Tm单稳时间就是指这个时间。在实际应用中可以采用一个单稳(软件或者硬件),把时钟输人作为单稳的输人,通过单稳输出控制SSI的数据输出状态:单稳一旦置位,SSI的输出状态就要回到初始状态,准备开始下一个数据输出的循环过程。为了增加可靠性,部分PLC(如西门子PLC)还增加了一个校验位V。校验位的输出要求为低电平,通过检查校验位是否为0就可以确定是否发生了断线或者传感器的故障。这样对于25位的多圈传感器仅需要给出26个脉冲上升沿。

磁致伸缩传感器SSI信号传输时序图
磁致伸缩传感器SSI信号传输时序图

  3、SSI软件及硬件设计

  SSI的电路输入和输出都采用差分形式,这样可以提高系统的抗干扰能力。总共有四根信号线:C+、C-、D+、D-。其中C+和C-为时钟输入端连接时钟的同相和反相端,D+和D-为数据输出端。在实际应用中可以通过两种办法实现:一种是采用同时带有收发功能的422芯片,比如TI的sn75179;另一种是时钟端的接收采用光耦,数据端的输出采用422输出芯片。前一种的优点是电路较为简单,后一种电路因为采用了光耦不容易损坏。差分数据传输速度与距离成反比,在波特率较高或者线路比较长的时候需要在线路上增加终端电阻以匹配阻抗。对传感器而言,应该是在传感器的SSI时钟输人端上加入中端电阻以减少反射。

  通讯的速度主要是由距离决定的,通讯速度和长度的关系如图2.

通讯速度和长度的关系
通讯速度和长度的关系

  4、SSI通信功能的实现

  有两种方式可以实现SSI功能,一种方式用单片机模拟SSI通讯,需要一个输入和一个输出端口,还需要一个定时器来实现单稳态的触发器,这个定时器和一个看门狗的工作方式类似,单片机需要在输入端口捕捉时钟的上升沿,在第一个时钟的下降沿开始启动定时器,然后在每一个时钟上升沿在输出端口输出数据,同时将定时器复位重新从0开始计数。直到计数器溢出说明传输结束,再刷新准备传输的数据,为下一次传输做准备。

  用单片机实现SSI的通讯功能虽然比较容易简单,但是软件的响应速度限制了通讯的最高速度。为了达到较高的通信速度需要采用CPLD实现高速同步传输的功能。要实现SSI通讯,从功能上可分为两个部分,一部分是单稳态触发器,可以采用74HC123并用阻容来控制单稳时间。单稳的输入为同步时钟上升沿,如果在一定时间内没有上升沿,单稳输出一个复位信号;另一个部分是一个并入串处的移位寄存器,在单稳输出复位信号后将数据装入移位寄存器等待下一个周期的移位时钟。并串转换的寄存器用verilog语言(S)描述如下

  Always@(posedge clock or posedge load)Begin

  If(load==1’b1)

  Out<=indata[24:0];

  Else

  Out[24:0]<=Out{[23:1],1’b0}

  End

  其中clock是ssi输入时钟,Load是74hc123的复位输出,在高电位输出时并串转换寄存器载入移位寄存器,Out[24]连接到SSI的输出端。按照上述电路设计了SSI通讯板,成功与西门子S7-300系列PLC配置了SM338模块进行了通信,PLC能够正确读出码值。