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

磁致伸缩位移传感器SSI硬件设计

  SSI总线磁致伸缩位移传感器利用符合RS422电平的两对差分信号传输信号,包含CLOCK十、CLOCK-、DATA+、DATA一以及电源和地线。磁致伸缩位移传感器SSI输出系列作为SSI从机,在SSI主机的控制下,将数据从高位(MSB)同步传输。传输时序图如图1所示。

  图中,Tp为传输脉冲序列间隔,T为SSI传输时钟周期,Do-Dn。为传输数据。不传输数据时,CLOCK和DATE端口都为高电平。CLOCK线上的第一个下降沿到来时,传感器内部数据被锁存。在接下来的时间里,数据在CLOCK信号的控制下同步传输。

  本磁致伸缩位移传感器SSI数据为24位,单片机内部SSI数据转化过程与16位DAC数据转化过程类似,在此不再赘述。

  格雷码又称为循环码,其具有误码率低等优点而被广泛使用。磁致伸缩位移传感器往往具有二进制码和格雷码两种输出方式,以满足不同场合的需求。在程序中可方便地将二进制代码转换为格雷码形式,以下是关键代码:

  ……//将位移量转换为三进制码

  Gray=Binary^(Binary>>l ); //将二进制码转换为格雷码

  ……//SSI接口输出

  本设计中采用单片机内置SPI控制器来实现ssI协议。从机CLOCK线同时连接到单片机外部中断引脚INT2,在中断处理函数中完成SSI数据的快速发送。关键代码如下:

  SPCR|=(1<<SPE)|(1<<CPOL);

  SPCR&=~((1<<CPHA);//先发送高位,从机工作方式,Model模式

  G1CR=OxAO;//开启外部中断INT2

  MCUCSR&=~(1<<ISC2);//INT2下降沿产生中断

  GIFR=OxFF;//清零外部中断标志

  单片机SPI控制器是以8位二进制数为一组数据帧,故需要将SSI数据分成若干字节发送。先发送高8位,再发送低8位。单片机外部中断INT2中断处理函数关键代码如下:

  #pragma vector=TNT2_vect

  _ interrupt void Slave_Write(void)

  ……//读取当前数据

  for(i=O;i<3;i++)

  {

  Clear_SS; //拉低SS片选引脚

  Numb=100;

  SPDR=SSISendDatal [i];//向发送寄存器赋值

  while ((!(SPSR&(1<<SPIF)))&&(Numb> 10))

  Numb–;//防止发送失败导致程序进入死循环

  Set_SS;

  }

  本设计中采用上位单片机作为SSI主机,与磁致伸缩位移传感器通过SSI接口相连完成本输出接口的调试。上位单片机程序实现过程与下位SSI接口实现过程类似,在此不再赘述。