失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > SENT协议学习

SENT协议学习

时间:2022-12-21 19:21:21

相关推荐

SENT协议学习

本文资料来自SNET传输协议手册(J2716 JAN),加上了自己的理解,如有不对的地方,欢迎大家指正。

SENT协议(Single Edge Nibble Transmission,单边半字传输协议)是一种将传感器数据编码成一系列脉冲信号的单向通信方案,用于传感器向发动机控制单元(Engine Control Unit,ECU)的数据发送。使用该协议传输的传感器信号,具有信号频率高,传输速度快,数据单向连续发送等特点。它旨在作为一种替代方法,代替10位A/D和PWM的较低分辨率的信号传输,并且是CAN或LIN的一种更简单的低成本替代产品。

1 信号定义

SENT信号以tick为单位计时,1个tick的名义长度是3us。数据每4 bit记为1个Nibble,即半字,半字的脉冲周期为12 ~ 27个tick,代表数据0 ~ 15。

一帧SENT信号包含如下几个部分:

校验/同步(Calibration/Synchronization)脉冲,脉冲周期为56 ticks。一个状态和串行通信(Status and Serial Communication)半字。一串数据半字(Data nibble),最多有6个半字,代表要传输的数据。一个CRC校验半字(Checksum nibble)。一个可选的暂停脉冲(Pause Pulse)。

下图是一帧带有2个12位数据的SENT信号。除了可选的Pause Pulse外,包含1个校验/同步脉冲,1个状态Nibble,6个数据Nibble,1个CRC Nibble。因CRC Nibble的值由前面6个数据Nibble的大小经循环冗余校验得到,一帧不含Pause Pulse的SENT信号最短为154个tick,最长为270个tick。

2 解析方法

SENT信号是将数据值对应到相邻下降沿的时间间隔上,因此解析SENT信号的关键也就是检测出时间间隔,计算出tick数。标准的1个tick为3us,实际信号中会存在一些偏差,可根据校验/同步脉冲修正。修正过程如下:

首先,SENT信号中校验/同步脉冲的理论周期为56个标准tick(3us),实际处理中允许周期长度存在±20%的误差。解析时,用校验/同步脉冲的实际周期与理论周期(168us)相除,得到一个修正因子;后面数据Nibble的实际周期与修正因子相除,得到当前数据Nibble的理论周期,该值与36us的差,除以3us,就可以得到数据Nibble对应的数据值(范围是0~15)。协议中的描述如下图所示。

3 慢通道数据

一般SENT信号由“校验/同步脉冲+1个状态Nibble+6个数据Nibble+CRC Nibble”组成,6个数据Nibble传输的是传感器发出的快通道(fast channel)数据,传输的是主要信息。而状态Nibble中可以存储传感器的额外信息(例如传感器的型号、制造商、环境温度等),构成慢通道(slow channel)数据。

慢通道分为简短型串行信息(Short Serial Message)和增强型串行信息(Enhanced Serial Message)。简短型串行信息由16帧连续的无错误SENT信号拼接而成,而增强型串行信息由18帧拼接而成。同时增强型根据传递的数据量不同,又可以分为12位数据+8位ID,和16位数据+4位ID两种。

如果觉得《SENT协议学习》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。