在汽车转向系统中现在经常使用SENT和SPC协议传输传感器的数据例如方向盘角度信号和驾驶员力矩传感器的信号。
SENT是定时发送,SPC实际是SENT的触发发送。
这种总线有以下典型的特点:
1.单向传输,从传感器(发送端)发送到MCU(接收端)
2.信号的传输时一个脉冲一个脉冲传递的
以脉冲的时间长度作为信号的编码方式,
半字(Nibbbles): 信号识别的基本单位,共4 bit;
半字(Nibbbles)的发送时间由传感器时钟决定,发送的时钟周期范围 3us 到 10us
脉冲的周期是指以发送信号的连续两个下降沿之间的时间。即发送信号开始的下降沿,然后维持特定的拉低时间,然后剩余的时间拉高,最后再次拉低结束这个脉冲传输的下降沿之间的时间差。
在发送一个Nibble时,需要大于4个(通常用5个)时钟周期的拉低时间。
脉冲所表示的数值由两个下降沿之间的时钟数决定。最小的数0的时钟数为12,每增加一个数值,时钟数在12的基础上加1,所以最大数15的时钟数为27。
n的时钟周期数 = 5个LOW时钟周期 + 7个HIGH时钟周期 + n*Clock
每一个报文帧一次发送6个半字(nibble)----3个字节的数据,结构如下图
每一帧信号都是由同步域,状态&通讯域,数据域,校验域,加一个可选的暂停域构成。
从时间上是以上述的次序依次发送;
先是一个56个时钟周期的同步段
然后是一个状态信息段-一个半字,也是4个二进制位
再然后是数据域,数据域的字节定义由不同的应用决定,但是对于一个特定的应用,数据域的长度是固定的,即数据的Nibble数量是固定的。长度为6个Nibble。
再然后是校验域
最后是一个可选的暂停域。
状态&通讯域属性
通过多个帧中的状态通讯域的拼接可以传递传感器代号,生产厂家和诊断信息,根据状态消息的规则由两种形式:短串行报文格式和增强型串行报文格式。
短串行报文格式
一帧消息需要有16个连续的SENT帧组成:
Bit 3作用:第一个SENT帧中为1,表示一个消息的开始,其余15个帧均为0
Bit 2作用:由每个SENT帧的数据域拼接成数据类型定义。这些类型包括Message ID、Data Byte和相应的CRC值等,此CRC和SENT帧内部的CRC算法一样。MessageID决定了Data Byte数值的意义。
增强型消息
增强型消息可以表示更大的Message ID和Data Byte,这些定义需要连续18个SENT帧来完成,还是由bit3 和bit 2共同在18个帧中拼接完成。
增强型消息可以根据配置位(由第8个SENT帧的bit3作为configuration bit)配置成两种形式:
12-bit 数据 and 8-bit 报文代号message ID (configuration bit = 0)
16-bit 数据 and 4-bit 报文代号message ID (configuration bit = 1)
具体格式如下图: