AUTOSAR MCAL系列之SENT信号传输

2021年5月5日
评论
229

0  手电筒传信

SENT协议,类似用手电筒传递信息。
AUTOSAR MCAL系列之SENT信号传输

首先约定:A每次点亮手电筒时,B按下秒表计时,A将信息藏于时间。B根据“密码本”对照看每次点灯时间长度来查找对应字母。于是,A不停的亮灯,灭灯,亮灯灭灯。B根据A亮灭灯来掐表,对照密码本看是什么字母。由于AB手里的秒表时基不同,彼此时间并不同步。为了解决这个问题,AB又约定:A每次发送信息,都会持续点亮56秒,然后A再发送数据。这56秒是给B对表用的。

于是,B接收到A的56秒数据时,都会同步自己的秒表,这样就能确保A的时间刻度和B时间刻度保持一致,查密码本时就不会出错。

但手电筒传递过程中,偶尔出现恶劣情况或有飞沙掠影,B可能看到A的灯光“虚闪”,这样的话,B掐表就会出现紊乱。

为了解决这个问题,AB约定:A每次发送完信息后,再发送一个验证码,验证码是由前面的信息反算得来。即A每次发送的信息都会有一套加密算法得到一组验证码,A再将验证码发送出去。B接收到信息后,也会接收到验证码,同时B根据相同算法将接收的数据转换得到一组验证码,将计算得到的验证码和接收到的验证码比较,一致说明信息正确,不同则丢弃数据。

简单总结就是:对表、计时和验证,这也就是SENT协议传输的全过程。

1  概览

SENT (Single Edge Nibble Transmission)协议,最初由通用公司在2005年提出,后来由SAE完善并成为SAE标准文件 — SAE J2716。SENT协议这种新的传感器接口具有传输效率高、成本低等优点,能满足发动机控制系统的复杂需求。

SENT协议有以下特点:

  • 是一种数字信号传输协议,具有更高的传输精度和速度;
  • 单线传输数据能力,减少信号线,降低成本。加上电源和地线,总共3线;
  • 点对点连接,一个传感器信号对应一个SENT接口;
  • 单向传输协议,数据只能从传感器到ECU,传输是连续的,不需要请求命令;
  • 具有更强大的诊断功能;
  • 可传输大数据;
  • 发送数据的时间由传感器的时钟决定;
  • 数据的传输可以分为快速通道和慢速通道,重要的信号用快速通道以实现高频率的更新,比如压力等,对于非关键的信号,如诊断等可以放在慢速通道传输;
  • 快速通道是每一帧传输一个完整的信号,慢速通道需要多帧来传输一个完整的信号,即更新频率不同;

2  协议特性

先了解两个概念:
脉冲周期(Pulse Period): 发送信号的连续两个下降沿间隔时间;
半字节(Nibbbles): 信号识别的基本单位,共4 bit;
Nibble的发送时间由传感器时钟决定,发送的时钟周期范围 3us 到 10us,以传感器的性能决定。
一个Nibble的最短时间为12 时钟周期(数值0的时候);在发送一个Nibble时,需要大于4个(通常用5个)时钟周期的拉低时间,剩余的clock需要拉高,为下降沿做准备。
Nibble所表示的数值由两个下降沿之间的时钟数决定。
每增加一个数值,时钟数在12的基础上加1,所以最小的数0的时钟数为12,最大数15的时钟数为27。
时钟周期数 = 5个LOW时钟周期 + 7个HIGH时钟周期 + n*Clock

AUTOSAR MCAL系列之SENT信号传输

当nibble值为0时,时钟周期数:5个LOW + 7个HIGH + 0 *Clock,即 12个时钟周期;

AUTOSAR MCAL系列之SENT信号传输

当nibble值为15时,时钟周期数:5个LOW + 7个HIGH + 15 *CLOCK,即27个时钟周期。

AUTOSAR MCAL系列之SENT信号传输

3  数据帧

一个SENT帧通常由四个域组成:分别是同步域、通讯状态域、数据域和校验域组成。在帧与帧之间还可插入可选的暂停域。

AUTOSAR MCAL系列之SENT信号传输

标定/同步域:56个时钟周期
通讯状态域:一个Nibble,4 bit,12-27个时钟
数据域:数据域的字节定义由不同的应用决定,但是对于一个特定的应用,数据域的长度是固定的,即数据的Nibble数量是固定的。长度为6个Nibble。
校验域:一个Nibble,4 bit,12-27个时钟

状态域

状态信息包括Sensor ID、生产厂家和诊断信息等。STATUS中有一个位可以用于传输传感器的状态信息,当然是通过多个SENT帧拼接而成。

AUTOSAR MCAL系列之SENT信号传输

状态消息分为短消息和增强型消息,由Status域定义给出:

短消息

一帧消息需要有16个连续的SENT帧组成:
Bit 3作用:第一个SENT帧中为1,表示一个消息的开始,其余15个帧均为0
Bit 2作用:由每个SENT帧的数据域拼接成数据类型定义。这些类型包括Message ID、Data Byte和相应的CRC值等,此CRC和SENT帧内部的CRC算法一样。MessageID决定了Data Byte数值的意义。
12-bit data and 8-bit message ID (configuration bit = 0)

AUTOSAR MCAL系列之SENT信号传输


增强型消息

增强型消息可以表示更大的Message ID和Data Byte,这些定义需要连续18个SENT帧来完成,还是由bit3 和bit 2共同在18个帧中拼接完成。
增强型消息可以配置成两种形式:(由第8个SENT帧的bit3作为configuration bit)
16-bit data and 4-bit message ID (configuration bit = 1)

AUTOSAR MCAL系列之SENT信号传输

数据域


SENT帧的数据包含传感器输出值的fast channel和传感器的状态信息slow channel。比如,
Nibble #1 = 0d
Nibble #2 = 15d
Nibble #3 = 0d
Nibble #4 = 8d
Nibble #5 = 15d
Nibble #6 = 0d
Nibble #7 = 8d
Nibble #8 = 12d

AUTOSAR MCAL系列之SENT信号传输

按照3μs的时钟周期,那么该帧SENT报文的传递时间为456μs(152个时钟周期)到816μs(272个时钟周期)之间。

数据域可以表征一个物理信号,比如角度。

例如,12 bits来表征角度信息,8 bits来表征滚动计数0到255,最后一个数据nibble来讲角度的MSN信息反转。那么,SENT协议的数据帧应该是:
Nibble #2 = Angular Information
– MSN (Most Significant Nibble)
Nibble #3 = Angular Information
– MidN (Middle Nibble)
Nibble #4 = Angular Information
– LSN (Least Significant Nibble)
Nibble #5 = 8 bit rolling counter
– MSN (Most Significant Nibble)
Nibble #6 = 8 bit rolling counter
– LSN (Least Significant Nibble)
Nibble #7 = Inverted copy of Nibble #2
(15 – Nibble #2 value)

数据域也可以表征两个物理信号,比如压力和温度。

例如,12 bits来表征压力,12 bits来表示温度,那么,SENT协议的数据帧应该是:
Nibble #2 = Pressure Information
– MSN (Most Significant Nibble)
Nibble #3 = Pressure Information
– MidN (Middle Nibble)
Nibble #4 = Pressure Information
– LSN (Least Significant Nibble)
Nibble #5 = Temperture Information
– MSN (Most Significant Nibble)
Nibble #6 = Temperture Information
– MidN (Middle Nibble)
Nibble #7 = Temperture Information
– LSN (Least Significant Nibble)

数据接收策略

ECU检查同步段的时间长度,如果算出来的时钟数和理论上的时钟数相差±20%以内,则认定为一个新数据的开始,并且此后的时钟数的计算将以此同步段换算出来的clock时间为基准,进行计算。
例如,对于一个3us时钟的计算如下:
同步段理论时间:3us*56=168us
时钟比例 K= 同步段测量的时间值/168 us
数据N的值:Data Value N = Round[(数据N的测量时间/K – 36 us)/3us]
此外,接收端还需要依据J2726编写相应的CRC计算方法,才能检验CRC是否正确。

接收检测

当出现如下任何一种情况时,接收端认为出现错误:

1. 同步段时间超出理论时间的±20%;

2. 两个同步段之间的下降沿数不等;

3. Checksum不对;

4. 计算出的Nibble值在0-15之外;
5. 连续两次的同步段时间比例大于±1/64;

传输速率
传输速率受时钟周期,数据值和时钟偏差容错值等因素影响。对于一个基于3us时钟周期的6个nibble数据的SENT传感器来说,忽略数据拼接的时间,传输速率在24.7 kBits/s—64.9 kBits/sec之间。
另外,SENT协议有SENT2008和SENT2010两种,SENT2008一帧数据的长度包含8个Nibble和1个校验位,SENT2010一帧数据的长度包含8个Nibble,1个校验位及1个可变暂停位。
作者简介:

Demu传统汽车电控向智能驾驶转变的汽车人。从事发动机控制器系统工程师和软件工程师多年,有丰富的ECU系统和软件设计经验。欢迎大家一起留言交流,共同进步。

继续阅读
weinxin
扫码关注公众号
关注公众号领精彩彩蛋!
万字长文趣味解读整车OTA,建议收藏! 汽车技术

万字长文趣味解读整车OTA,建议收藏!

本文共三大章节,分别为整车OTA为什么困难重重、整车OTA需要注意些什么、uboot介绍,字数接近二万五千字,建议收藏阅读。 第1篇 整车OTA为什么困难重重 什么是汽车OTA 首先,我们先来看看各位...
汽车HMI设计原则 汽车技术

汽车HMI设计原则

汽车制造商必须为汽车显示屏选择正确的设计原则,否则分心驾驶将达到新的水平 近几年,车载大屏设计越来越受到车企的青睐,比如,梅赛德斯-奔驰)凭借其全新的全宽仪表盘显示器MBUX超屏吸引了大量关注。几乎所...
AutoSar模式管理总揽 汽车技术

AutoSar模式管理总揽

介绍下AUTOSAR中的模式管理(Mode Manager)的机理。了解模式管理之前,先解释下三个重要的概念:模式、状态和阶段。 Mode(模式) 模式是运行在车辆中的各种状态机(不仅仅是ECU状态管...
如何快速学习AUTOSAR? 汽车技术

如何快速学习AUTOSAR?

后台有同学询问:做汽车电子领域,但是没有软件基础,如何学习AUTOSAR呢?估计很多刚开始接触AUTOSAR的同学都有类似的疑问,简单分享下AUTOSAR的概览和学习技巧,希望能帮助到大家。   关于...

发表评论