SENT接口

前言

本文参考标准《SAE J2716_201604》。

SENT接口

简介

SENT(Single Edge Nibble Transmission)协议是SAE协会推出的一种点对点、单向传输方案,被用于车载传感器和ECU之间的数据传输。SENT采样单线连接,无需请求命令即可连续接收数据,是具有更高传输精度和更强抗电磁干扰性的低成本车载通信方案。

下图为SENT标准的结构和传输层的关系图,分为物理层、数据链路层和应用层。

  • 物理层:物理层定义了信号的电气特性、时钟容差和传输速率。
  • 数据链路层:定义了帧结构、消息格式和错误检测方法。
  • 应用层:应用层根据传感器类型和应用需求选择合适的数据编码和传输格式。
    在这里插入图片描述

物理层

SENT信号高电平最小值为4.1V,低电平最大值为0.5V。

在这里插入图片描述

在这里插入图片描述

数据链路层

编码方式

SENT协议的数据使用半字节来进行编码,一个Nibble通过2个下降沿之间的时间差来定义。

最小时间精度为1 Tick(一般为3~90us),每个Nibble值编码从一个下降沿开始,并且之后至少维持4Ticks逻辑0,之后将下一个下降沿距离第一个下降沿的时间差作为Nibble值的编码依据。两个下降沿至少间隔12Ticks,至多间隔27Ticks(对应Nibble值,最小0,最大15)。

在这里插入图片描述

帧结构

下图为数据长度为6个nibble的SENT帧结构。

在这里插入图片描述

每个SENT帧由以下部分组成:

  1. 校准/同步脉冲(Calibration/Synchronization Pulse)
    • 用于同步接收模块和发送模块的时钟。
    • 标称脉冲周期为56个时钟滴答。
    • 接收模块通过测量校准脉冲的周期来校正时钟误差。
  2. 状态和通信nibble(Status and Communication Nibble)
    • 一个nibble(4bit),用于传输传感器的状态信息或用于串行通信。
    • bit0-1通常用于指示快速通道错误状态,bit2-3用于串行消息通道。
  3. 数据nibble(Data Nibble)
    • 用于传输传感器的实际测量数据。
    • 数据nibble的数量取决于具体的应用需求,通常为1到6个nibble。
    • 每个nibble包含4bit数据,数据值范围为0到15。
  4. 校验和nibble(Checksum Nibble)
    • 一个nibble(4bit),用于错误检测。
    • 校验和是通过对数据nibble进行CRC计算得到的。
  5. 可选的暂停脉冲(Pause Pulse,可选)
    • 用于在消息之间插入额外的时间间隔。
    • 可以用于调整帧的总长度,使所有帧长度保持一致。
消息格式

通过多帧 “状态和通信nibble” 的 bit3-2 可组成串行消息,存在两种串行消息格式:短串行消息格式(Short Serial Message Format)和增强型串行消息格式(Enhanced Serial Message Format)。

短串行消息格式

短串行消息由连续16帧 SENT帧的“状态和通信nibble” 的bit3-2组成,要求第一帧的 “状态和通信nibble” 的bit3为1,之后连续15帧的bit3为0,此时连续16帧 “状态和通信nibble” 的bit2构成16bits串行数据,包括4bits消息ID、8bit数据和4bits CRC校验和。

在这里插入图片描述

增强型串行消息格式

增强型串行消息由连续18帧 SENT帧的“状态和通信nibble” 的bit3-2组成,起始标志为检测到连续8帧 SENT帧的 “状态和通信nibble” 的bit3构成 8’b01111110,且要求第14帧和第19帧的bit3为0,此时第2-19帧的 “状态和通信nibble” 的bit3-2构成一帧增强型串行消息。

在这里插入图片描述

根据第9帧的bit3又分为两种消息格式:

  • 12 bits 数据 + 8bits 消息ID(configuration bit = 0)

在这里插入图片描述

  • 16 bits 数据 + 4bits 消息ID(configuration bit = 1)

在这里插入图片描述

CRC校验和

SENT协议中定义了两种CRC校验和的计算方法:

  1. 4位CRC校验和(用于数据nibble和短串行消息)
  2. 6位CRC校验和(用于增强型串行消息)
CRC4
  • 多项式:x4+x3+x2+1
  • 种子值:0x05
  • 示例:

在这里插入图片描述

在这里插入图片描述

CRC6
  • 多项式:x6+x4+x3+1

  • 种子值:0x15

  • 示例:

    在这里插入图片描述

在这里插入图片描述

错误检测机制
  • 校准脉冲检测:校准脉冲周期应为56 ticks,允许误差范围为±20%;
  • 数据nibble检测:数据nibble的脉冲周期应为12到27个ticks;
  • CRC校验和检测;
  • 低电平脉冲检测:任意一个脉冲的低电平时间应大于/等于 4ticks。

IP 设计

结构框图

接口设计

上板验证

### AUTOSAR SENT 协议概述 SENT(Single Edge Nibble Transmission)协议是一种用于汽车传感器信号传输的串行通信协议。该协议旨在提供一种高效、低成本的方法来连接各种类型的传感器到电子控制单元(ECU)[^1]。 #### 主要特点 - **高效率**:通过单边沿编码技术减少线束数量,降低布线复杂度。 - **灵活性**:支持多种物理层接口选项,适应不同应用场景的需求。 - **可靠性**:具备错误检测能力,确保数据完整性;同时允许定义冗余通道以提高系统的鲁棒性[^2]。 #### 应用场景 广泛应用于发动机管理系统(EMS)、传动控制系统(TCS)以及车身稳定程序(ESP)等关键子系统内的温度、压力等多种类型传感器的数据采集与交换过程之中[^3]。 ### 标准规范解析 AUTOSAR 定义了一套完整的框架来描述如何在基于模型驱动开发方法论下设计并实现符合行业最佳实践要求的应用软件组件及其运行环境(RTE),同时也涵盖了对于特定总线通讯协议的支持说明,包括但不限于CAN FD, LIN 及此处提到的 SENT 接口标准[^4]。 具体来说: - **E2E保护机制**:为了保障消息传递的安全性和一致性,在某些情况下会采用端到端(E2E)校验方案。例如,在Profile 02 中规定了CRC和Counter字段的位置由各自偏移量决定,从而增强了抵御篡改攻击的能力。 - **新鲜度管理策略**:针对实时性强的任务调度需求,引入了专门的新鲜度计数器概念。其中,“基于多新鲜度计数器(截断模式)”是最常见的实施方案之一,它能够有效地防止旧版本数据被误认为新到达的信息而影响决策逻辑。 ### 使用教程概览 当涉及到具体的编程操作时,开发者通常需要遵循如下几个方面的工作流程来进行集成测试工作: ```c++ // 创建RTE实例并与指定SWC关联起来 void setupRuntimeEnvironment() { // 初始化阶段... // 建立映射关系 Rte_Init(); } // 发送/接收函数模板 bool sendData(const uint8_t* buffer, size_t length) { bool success = false; /* 实现细节取决于所选硬件抽象库 */ return success; } ``` 以上代码片段仅作为示意用途,并未展示全部必要的初始化步骤或详细的API调用方式。实际应用中应当参照官方文档指导完成相应设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA的花路

你的鼓励是我最大的创作动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值