简析SENT协议及SENT信号波形的译码方法
2021-08-12戈华飞
汽车技术不断变化的今天,你不努力、不学习,明天就有可能会被行业所淘汰!快来一起了解新技术、使用新工具、开拓新思路,争做一名与时俱进的汽车诊断师吧!
SENT(Single Edge Nibble Transmission)协议(SAE J2716)是一种传感器与电子控制单元(ECU)之间的信号传输标准,主要具有以下基本特点。
(1)它是一种数字信号传输协议,具有更高的传输精度和速度。
(2)单线传输数据,1根信号线可传输多个数据,能够减少传感器信号线数量,降低成本。采用SENT协议的传感器只有3根导线,分别为1根5 V电源线、1根搭铁线和1根SENT数据线。
(3)单向传输数据,数据只能从传感器到ECU,传输是连续的,不需要请求命令。
(4)传感器数据的传输通过2个相邻周期的下降沿之间的脉冲(即单边半字节)来实现。
(5)数据传输分为快速通道和慢速通道,重要的信号(压力、温度等)用快速通道传输,非关键的信号(如传感器型号、诊断信息等)用慢速通道传输。
1 什么是单边半字节脉冲信号?
位(bit)表示二进制位,只有0和1两种状态。bit为计算机内部数据储存的最小单位,比如00000011就是一个8 bit的二进制数。字节(Byte)为计算机数据处理的基本单位,1个字节由8个二进制位构成,即1 Byte=8 bit。所以,将一个4 bit的二进制数称为半字节,其范围为0000~1111。
图1为1个单边半字节脉冲信号,它主要由1个下降沿、1段低电平、1个上升沿和1段高电平组成。“单边”就是指这个下降沿,“半字节”是指这段脉冲信号代表着1个半字节信号,比如对应0011,具体的对应关系下文有介绍。
图1 单边半字节脉冲信号
2 SENT报文
SENT报文(图2)主要由5个部分组成,分别为同步段、状态段、数据段、校验段和开放段,下面重点介绍同步段和数据段。
图2 SENT报文
2.1 同步段
SENT协议规定,同步段(图3)由56个时钟节拍(tick)组成。通过同步段的时间即可计算出tick的时间,其范围为3 μs~90 μs。例如同步段的时间为168 μs,则tick的时间为168 μs÷56=3 μs。计算tick的时间对数据段的数据计算有着重要意义。
图3 同步段的时间
2.2 数据段
数据段(图4)由6个单边半字节脉冲信号组成,共24 bit,可以发送多个数据信号。以发送节气门位置传感器信号为例,前3个单边半字节脉冲信号负责发送节气门电位计1的信号,后3个单边半字节脉冲信号负责发送节气门电位计2的信号。
图4 数据段的组成
SENT协议规定,用单边半字节脉冲信号的时间长短来解析其代表的数据,具体解析步骤如下。
(1)通过同步段的时间计算出tick的时间。
(2)用单边半字节脉冲信号的时间除以tick的时间,得到对应tick的数量。假设根据同步段计算出tick的时间为3 μs,则1个持续时间为81 μs的单边半字节脉冲信号对应的tick数为81 μs÷3 μs =27(图5)。
图5 单边半字节脉冲信号tick数的计算
(3)用得到的tick数减去12,最终得到1个十进制数。若tick数为27,则其对应的十进制数为27-12=15。
(4)将得到的十进制数转换为4 bit的二进制数(即半字节)。如将十进制数15转换为半字节,为1111。由于半字节范围为0000~1111,对应的十进制数范围为0~15,所以一个单边半字节脉冲信号对应的tick数范围为12~27。
如图6所示,同步段为56个tick,状态段为1个半字节,有12个tick,对应十进制数为12-12=0,对应半字节为0000。数据段1由3个半字节组成,共12 bit;第1个半字节有27个tick,对应十进制数为27-12=15,对应半字节为1111;第2个半字节有17个tick,对应十进制数为17-12=5,对应半字节为0101;第3个半字节有22个tick,对应十进制数为22-12=10,对应半字节为1010。所以,数据段1对应的数据代码为1111 0101 1010,同理可知数据段2对应的数据代码为0010 1000 0000。
图6 SENT报文对应的数据计算
同步段的时间固定为56 tick,不会发生变化,而同步段、数据段及校验段的时间是随着数据变化而发生变化的。
3 SENT信号波形的译码方法
使用pico示波器可以捕捉SENT信号波形,并能对其进行译码。在pico波形分析软件上依次选择“工具→串行译码→创建→SENT Fast”(图7),然后设置通道号、阈值、tick时间及传感器类型等(图8),设置完成后点击“确定”即完成快速通道(SENT Fast)的译码(图9)。再按照上述方法完成慢速通道(SENT Slow)的译码,与快速通道的译码对比(图10)可知,快速通道是每一帧传输一个完整的信号,慢速通道需要用多个帧来传输一个完整的信号。
图7 创建“SENT fast”译码(截屏)
图8 设置“SENT fast”译码参数(截屏)
图9 快速通道的译码(截屏)
图10 快速通道和慢速通道的译码对比(截屏)