CAN/CANFD
CCP/UDS
Bootloader/OTA
ECU/VCU/FCU
Simulink/ECUCoder
Ethernet
Hardware
Download
上一篇
下一篇
SENT基础知识
一.SENT信号产生的背景
二.SENT信号简介
-2.1.SENT信号的定义
-2.2.SENT信号的特点
-2.3.SENT信号协议版本
三.SENT信号帧
四.使用控制器接收SENT信号
五.SENT信号小结
回到顶部
SENT基础知识
一.SENT信号产生的背景
二.SENT信号简介
-2.1.SENT信号的定义
-2.2.SENT信号的特点
-2.3.SENT信号协议版本
三.SENT信号帧
四.使用控制器接收SENT信号
五.SENT信号小结
回到顶部
# SENT基础知识 ## 一.SENT信号产生的背景
传感器与电子控制单元ECU之间数据传输最常用的是模拟信号,但是模拟信号承载的信息较少。通常一路模拟信号只能承载一个信号(比如气体压力信号),当有多个信号(比如气体压力信号与温度信号)需要传输时,往往需要多路模拟信号,使得线束复杂并且成本上升。虽然CAN总线与LIN总线可以传输很多信号,但是总线的成本较高。传感器与ECU之间数据传输还需要一种能承载较多信息的低成本方案。 基于这种需求,美国通用汽车制定了SENT信号协议。由于SENT信号使用便捷成本低,被越来越多厂家所接受。SAE对SENT信号进行了规范化,推出了SAE J2716标准,是当前SENT信号遵循的标准规范。 SENT信号通常用于传感器与ECU之间的数据传输,目前越来越多的传感器都已经支持SENT信号。 ## 二.SENT信号简介
### 2.1.SENT信号的定义
SENT全称:Single Edge Nibble Transmission,中文名称为:单边半字传输协议,是SAE推出的一种点对点的、单向传输的方案,被用于传感器和电子控制单元ECU之间的数据传输。 SENT信号线束简单,除了电源(通常为5V)与地线,只需要1根信号线,信号单向传输,数据只能从传感器到ECU,如下图所示。 ![](images/2023-08-23-21-16-26-image.png) SENT信号的电平要求:0-0.5V为逻辑电平0,4.1~5V为逻辑电平1。 ### 2.2.SENT信号的特点
SENT信号具备如下主要特点: 1. 成本低,无需接收器和集成发射器,因此相比CAN或LIN成本更低,且具有不错的传输精度和速度,数字数据传输速度可达30kb/s。 2. 线束少,单线数据传输,减少信号线,加上电源和地线,总共3根线。 3. 单向传输,SENT信号属于单向传输协议,数据只能从传感器到ECU,传输是连续的,不需要请求命令。 4. 点对点,无需总线,SENT信号被用于传感器和ECU之间的数据传输。 5. 使用简单,当前主流的控制器比如RapidECU-U34可以直接接收SENT信号。 6. 分帧传输,SENT信号由帧(数据包)来传输数据,每一帧由不同宽度的脉冲即半字节组成,数据的传输可以分为快速通道和慢速通道,主要的信号用快速通道以实现高频率的更新,比如压力等。对于非主要的信号,比如诊断信息等可以放在慢速通道传输(快速通道是每一帧传输一个完整的信号,慢速通道需要多帧来传输一个完整的信号,两者更新频率不同)。 SENT信号作为一种传感器的新型接口标准,跟模拟信号相比,可以节省线束且能传输故障代码从而使传感器系统具有很强的故障诊断能力。SENT信号和PWM等数字输出信号相比,具有很好的EMC特性。基于上述优势,目前越来越多的传感器都已经支持SENT信号。 ### 2.3.SENT信号协议版本
SENT信号协议版本主要有SENT 2008与SENT 2010两个版本,SENT 2010的信号帧相比SENT 2008的信号帧在帧末尾增加了一个可选的暂停脉冲。 ## 三.SENT信号帧
SENT信号通过两个下降沿周期之间的一系列脉冲序列来传输,SENT报文以一个同步脉冲开始,该脉冲与后续的下降沿之间的时间间隔等效于56个时钟节拍。同步脉冲之后,状态/通信半字节按照SENT格式传送。随后紧接着就是6个含有传感器数据的Data Nibbles,数据通过4个数据位为一个单元来传输,或称“半字节”(一个“半字节”即一个Nibble)。在每条报文的尾部会提供一个检验脉冲并插入一个固定长度不超过1ms的暂停脉冲,因此SENT报文的长度会随着半字节的值而有不同。 SENT信号每一帧主要包含如下五部分: ![](images/2023-08-23-20-31-21-image.png) 1. 同步脉冲Synchronization/Calibration Pulse,包含56个时钟节拍。 2. 状态/通信Status/Comm,一个Nibble(即4个Bits),包含12-27个时钟节拍。 3. 信号Signal1/Signal2,六个Nibble,每个Nibble包含12-27个时钟节拍。 4. 校验CRC/Checksum,一个Nibble,包含12-27个时钟节拍。 5. 一个可选的暂停脉冲Optional Pause Pulse。 一个“半字节”代表4个Bits(即一个Nibble),由于一个“半字节”可以表示0000-1111数值范围,因此可通过6个Nibble的大小来表示传感器数据,而每个Nibble的大小可通过时钟节拍tick的个数来表示,根据协议每个Nibble大小由12-27个ticks来表示,如下表。一个时钟节拍tick表示时间单位,其范围为3-10us,一般为3us。时钟节拍大小的计算方法:SENT信号传输时会有一时钟计时每个脉冲所占用的时间,例如同步脉冲总共耗用了168us,由于每个同步脉冲由56个时钟节拍组成,那么可得每个时钟节拍为168/56=3us。 | 数据(十六进制) | 数据(二进制) | 时钟节拍数 | |:--------:|:-------:|:-----:| | 0 | 0000 | 12 | | 1 | 0001 | 13 | | 2 | 0010 | 14 | | 3 | 0011 | 15 | | 4 | 0100 | 16 | | 5 | 0101 | 17 | | 6 | 0110 | 18 | | 7 | 0111 | 19 | | 8 | 1000 | 20 | | 9 | 1001 | 21 | | A | 1010 | 22 | | B | 1011 | 23 | | C | 1100 | 24 | | D | 1101 | 25 | | E | 1110 | 26 | | F | 1111 | 27 | ## 四.使用控制器接收SENT信号
对于RapidECU-U34控制器(其它型号控制器类似), 一共有4 路SENT信号输入端口, 分别对应SENT1FastChnMsg~SENT4FastChnMsg模块。对于每个模块: - 输出端口1(OK):未收到信号时为0;收到正确信号时为1;收到错误信号时为8。 - 输出端口2 (StatusCommunication):通信状态位,可以接收长度4bit的数据。 - 输出端口3-8(Nibble1-Nibble6):SENT 数据,每个端口都可以接收长度4bit的数据。通信状态位与SENT数据所代表的物理意义由传感器厂家定义,使用时需要查询传感器厂家的相关数据手册。 例如,将SENT1FastChnMsg 模块拖入到模型中(通常是周期性任务中),读取SENT1端口的SENT信号,模型如下图所示。 ![](images/2023-08-23-20-21-28-image.png) ## 五.SENT信号小结
SENT信号是一种点对点的低成本单向传输的方案,通常用于传感器与ECU之间的数据传输。一帧SENT报文包含1个同步脉冲,1个状态通信脉冲(一个Nibble),1个数据脉冲(六个Nibble),1个校验脉冲(一个Nibble)和1个可选的暂停脉冲。SENT 2008不包含可选的暂停脉冲,SENT 2010包含可选的暂停脉冲。使用RapidECU可以非常方便地接收SENT信号,实时读取状态通信脉冲(一个Nibble)与数据脉冲(六个Nibble)的数据。