SENT信号介绍
一、SENT背景介绍
提到车载总线,我们会立马想到经济可靠的CAN、Lin以及成本过高的FlexRay或Ethernet总线。但随着车载传感器数量的增加和对测量精度要求的提升,需要一种相比CAN或Lin更便捷、可靠、经济的车载数据通讯解决方案。GM公司根据这种需求,首先制定了SENT标准,后来成为SAE J2716标准。随后一些公司在动力系统中逐渐采用该标准,并应用在整车传感器、执行器及Drive-by-wire线控等子系统中,总之目前越来越多的传感器都已支持SENT类型的信号。
二、SENT定义及优势
SENT全称:Single Edge Nibble Transmission,中文名称为:单边半字传输协议,是SAE推出的一种点对点的、单向传输的方案,被用于车载传感器和电子控制单元(ECU)之间的数据传输,其主要特点如下:
- 无需接收器和集成发射器,因此相比CAN或Lin成本更低,且具有不错的传输精度和速度,数字数据传输速度可达30kb/s。
- 单线数据传输,减少信号线,加上电源和地线,总共3线;单向传输协议,数据只能从传感器到ECU,传输是连续的,不需要请求命令。
- 由帧来传输数据,或者数据包的形式,每一帧由不同宽度的脉冲即半字节组成,数据的传输可以分为快速通道和慢速通道,重要的信号用快速通道以实现高频率的更新,比如压力等,对于非关键的信号,如诊断等可以放在慢速通道传输(快速通道是每一帧传输一个完整的信号,慢速通道需要多帧来传输一个完整的信号,即更新频率不同),比如温度等。
因此SENT(SAE J2716) 作为一种汽车传感器的新型接口标准,较AD和PWM 输出相比,具有很好的EMC特性并节省线束和插针结头,且能传输故障代码从而使传感器系统具有很强的故障诊断能力。基于协议简单和上述优势,SENT可作为Analog Input的替代品,并可在局部系统中取代CAN和Lin。但却不能全部替代CAN或是Lin。因为SENT是连续单向传输的,CAN和Lin都是双向传输。
三、SENT信号帧介绍
3-1、SENT传输序列
SENT信号通过两个下降沿周期之间的一系列脉冲序列来传输,SENT报文以一个同步脉冲开始,该脉冲与后续的下降沿之间的时间间隔等效于56个时钟节拍;同步脉冲之后,状态/通信半字节按照SENT格式传送;随后紧接着就是6个含有传感器数据的Data Nibbles,数据通过4个数据位为一个单元来传输,或称“半字节”(一个半字节即一个Nibble);在每条报文的尾部会提供一个检验脉冲并插入一个固定长度不超过1ms的暂停脉冲,因此SENT报文的长度会随着半字节的值而有不同。
SENT信号每一帧主要包含如下五部分:
- Synchronization/calibration pulse (包含56个 clock ticks)。
- 一个Nibble(即4个Bits)的Status and Serial Communication pulse (12~27clock ticks)。
- 连续6个Nibbles的data pulses (每个Nibble:12~27 clock ticks)。
- 一个Nibble(即4个Bits)的 CRC及checksum pulse(12~27 clock ticks)。
- 一个可选的 pause pulse。
因此,一个半字节代表4个Bits(即一个Nibble),由于一个半字节可以表示0000 ~ 1111数值范围,因此可通过6个Nibble的大小来表示传感器数据,而每个Nibble的大小可通过时钟节拍tick的个数来表示,根据协议每个Nibble大小由12~27个ticks来表示,如下所示:
3-2、SENT实际示例
一个时钟节拍tick表示时间单位,其范围为3~10us,一般为3us。时钟节拍大小的确定本文以一个例子为例说明:SENT信号传输时会有一时钟计时每个脉冲所占用的时间,例如同步脉冲在此例总共耗用了168us,由于每个同步脉冲由56个ticks组成,那么每个时钟节拍为3us。
一帧SENT报文包含1个同步脉冲、8个Nibbles和1个可选暂停脉冲。SENT协议有SENT 2008和SENT 2010、SENT2016两种,SENT 2008一帧数据结尾会包括1个校验位,而SENT 2010、SENT2016一帧数据结尾除了包含1个校验位还有1个可变暂停位。
3-3、SENT Status/Com Bit
以上是SENT总线协议中一帧报文的基本定义即功能,SENT 总线协议的高级功能是将多帧报文组合以实现更高复杂的通信功能,一般用于传输传感器的附加信号,比如温度,故障码和传感器类型信息等。下表定义了该位信息:
Note that the Status and Communication Nibble is not included in the frame CRC calculation and therefore can have a higher occurrence of non-detected errors.
3-3-1、Short Serial Message Format
串行数据(逐位)在来自发送器的连续消息的状态和通信半字节的第2位中传输。如CONSTRUCTION OF SHORT SERIAL DATA MESSAGE FROM 16 SENT MESSAGES所示,串行数据将以16位序列进行通信。串行消息的起始位由Status/Com字段的第3位中的“1”表示,接下来接收的15个帧必须在此相同的第3位位置包含值“0”。为了接收到串行值,所有16个帧都必须成功接收(无错误、校准脉冲变化、数据半字节CRC错误等)。
16位消息包括一个4位消息ID半字节、2个半字节(1字节)的数据和一个CRC校验和半字节。CRC校验和是为消息ID和2个数据半字节计算得出的,并且使用与SENT CRC半字节计算相同的校验和算法。消息ID用于识别数据字节中正在传输的数据类型。实际的串行数据消息ID和数据值是特定于应用的。
在串行数据位(第2位)中传输的所有数据都是按照从最高有效位到最低有效位的顺序发送的。
3-3-2、Enhanced Serial Message Format
传感器可以使用可选的增强型串行报文格式,它需要一个具有更大数据字段和更多报文 ID 的串行通信通道。如果使用增强型串行报文通道,串行数据将在状态和通信位码的第 2 位和第 3 位传输。一个串行报文帧由发射端发出的 18 个连续 SENT 数据报文组成。 必须成功接收所有 18 个报文帧(无差错、校准脉冲变化、数据字节 CRC 错误等),才能接收到串行值。
串行消息帧的起始由状态和通信半字节的第3位中的独特模式“01111110”指示。在一系列六个“1”(后面跟着一个“0”)中的第一个“1”表示串行消息帧的第一个半字节。序列号1至6的串行通信半字节的串行数据位#3被设置为“1”。而序列号7、13和18的串行通信半字节的串行数据位#3被设置为“0”。
串行消息帧包含21位的有效载荷数据。可以根据**配置位(串行数据位#3,串行通信半字节数8)**选择两种不同的配置:
- 12位数据和8位消息ID(配置位 = 0)
- 16位数据和4位消息ID(配置位 = 1)
(1)Status/Com 字段 bit3 组合的第 8 位为 0:
(2)Status/Com 字段 bit3 组合的第 8 位为 1:
All data (data field, message ID and CRC) that is transmitted in the serial message channel is sent in the order MSB
(most significant bit) to LSB (least significant bit). The mapping and the order of the data bits, the message ID, the
configuration bit and the CRC is detailed in Figure 10 for the configuration 12-bit data + 8-bit ID and in Figure 11 for
the configuration 16-bit data and 4-bit ID.
3-3-3、Enhanced Serial Message Format CRC
This CRC-value is computed as a function of the contents of Serial data message bits #2 and #3 for frames 7-18 (the 12-
bit data field, the 8-bit message ID, the configuration bit and “0” bits 7, 13 and 18). For purposes of the CRC calculation,
the bits shall be ordered: m = [Frame 7 bit#2, Frame 7 bit #3, Frame 8 bit #2, Frame 8 bit #3 … Frame 18 bit #2, Frame 18,
bit #3], see Figure 5.2.4.3-1. These bits contribute to the message data m = [m0 m1 m2 ……. m21 m22 m23]. Bit m0
(which corresponds to frame bit D11 is the first received bit that is read-in for CRC generation, as illustrated in the lower
half of Figure 12.
The encoding is defined by the generating polynomial. G(x) = x ^ 6+x ^ 4+x ^ 3+1. with seed value 010101 (0x15 hex, 21 dec).
四、SENT实际应用
4-1、SENT开发工具
- 芯片:RH850/U2A
- 传感器:HuaYang科技产品手册
- 手册:RH850数据手册
4-2、SENT传感器解读
4-2-1、机械结构
4-2-2、电器参数
在软件开发前期需要了解传感器的相关参数,比如压力值范围,温度值范围,上电时间,供电电压范围,双通道的Cnt值范围等等信息。
4-2-3、使用标准
4-2-4、术语缩写
4-3、SENT传感器数据
结合Figure15. SENT传感器协议标准可知,该类型的传感器是P/P/T。也就是Fast Channel1(Data Nibbles 1 - 3)表示Pressure 1,Fast Channel2(Data Nibbles 4 - 6)表示Pressure 2,Slow channel(status and communication nibble)表示传感器特定参数和补充测量数据(传输特性、传感器 ID、类型、制造商) 或者诊断、补充测量数据(如温度)。将 SENT数据字节分配给Fast Channel1、Fast Channel2 以及传输慢速串行通道的状态和通信字节的情况,具体见下图:
具体解释一下Fast Channel1、Fast Channel2及Error Flags等信息,具体如下:
- Fast Channel 1
- Data order:
- data nibble 1: Channel 1 measurement data MSN
- data nibble 2: Channel 1 measurement data MidN
- data nibble 3: Channel 1 measurement data LSN
- Error Flags
- When the fast channel 1 measurement data is determined to be in error, bit 0 of the Status Nibble shall be set to 1 otherwise bit 0 shall be set to 0. 详见Figure18. ALLOCATION OF THE BITS OF THE STATUS AND COMMUNICATION NIBBLE
- Fast Channel 2
- Data order:
- data nibble 4: Channel 2 measurement data LSN or secure sensor counter MSN
- data nibble 5: Channel 2 measurement data MidN or secure sensor counter LSN
- data nibble 6: Channel 2 measurement data MSN or secure sensor inverted copy of nibble 1
- Data vector (ordered MSB to LSB) is first divided into 4-bit groups corresponding to the nibbles order of Channel 1. The nibble order of Channel 2 is then reversed.
- Error Flags
- When the fast channel 2 measurement data is determined to be in error, bit 1 of the Status Nibble shall be set to 1 otherwise bit 1 shall be set to 0. 详见Figure18. ALLOCATION OF THE BITS OF THE STATUS AND COMMUNICATION NIBBLE
- If fast channel 2 is not implemented, application code in the receiver is responsible to ignore the error flag in this case.
4-4、SENT Slow Channel
由于本传感器是Enhanced Serial Message Format格式,其中C = 0,则是慢通道是由12 bit 数据和8 bit ID组成。(0xFFF = 4095,12 bit)
4-5、SENT 12-bit Pressure&Temperature Indices
SENT 12-bit压力指数 Y1 和 Y2 用于将物理值压力指数映射为 12-bit SENT 值。SENT 12-bit压力指数有两种可选形式:
- 默认值
- 通过慢速串行信息通道传输的传感器特定值
如果没有通过串行通道传输 Y1 和 Y2 值,则应使用Figure20. GUARANTEED PRESSURE RANGE, OUT-OF-RANGE VALUES AND SIGNALING DATA和Table3. PARTITIONING OF THE PRESSURE DATA SPACE WITH DEFAULT Y1 AND Y2 : (Y1=193, Y2=3896)中规定的数据空间默认分区(Y1=193,Y2=3896)。该表还规定了默认的保证压力范围、超出范围值和信号数据。
如果使用慢速串行信息通道传输发送的12-bit压力指数 Y1 和 Y2,则 Y1 和 Y2 应在 12-bit数据的压力数据范围内,该范围由低钳位 (=1) < 压力范围 < 高钳位 (=4088) 定义。超出有效范围的 Y1、Y2 值将导致未定义状态。
- 传感器压力换算
- 传感器温度换算
4-6、SENT Diagnostic Trouble Code(DTC)
参考文献
- SAE J2716_201001 (SENT协议).pdf
- SAE J2716_201604 (SENT协议).pdf
- https://www.renesas.cn/zh/products/microcontrollers-microprocessors/rh850-automotive-mcus/rh850u2a-zonedomain-microcontroller-series#documents