当前位置: 首页 > news >正文

SENT接口

文章目录

    • 前言
    • SENT接口
      • 简介
      • 物理层
      • 数据链路层
        • 编码方式
        • 帧结构
        • 消息格式
          • 短串行消息格式
          • 增强型串行消息格式
        • CRC校验和
          • CRC4
          • CRC6
        • 错误检测机制
    • IP 设计
      • 结构框图
      • 接口设计
      • 上板验证

前言

本文参考标准《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 设计

结构框图

接口设计

上板验证

相关文章:

  • 如何处理和格式化日期差异:JavaScript 日期差异计算实例
  • 高项第十二章——项目质量管理
  • 关于foobar2000插件的一点理解
  • ollama 可以通过127.0.0.1访问,但是无法通过本机ip访问
  • 人工智能领域大模型、大模型使用、AI工作流 学习路径
  • Oracle ASM 磁盘组冗余策略
  • 向量数据库:AI时代的“新基建”
  • 护网面试题
  • 第18章-综合以上功能 基于stm32的智能小车(远程控制、避障、循迹) 基于stm32f103c8t6_HAL库_CubeMX_超详细,包含代码讲解和原理图
  • 【Docker入门】构建推送第一个Docker映像
  • HCIA-PPP实验
  • 将字符串中的小写字母转换成大写字母(信息学奥赛一本通-1138)
  • unity中 添加dll 报错 DllNotFoundException
  • 【Linux编程】IPC之消息队列从踩坑到实战:核心原理、实战案例与C++封装详解(含完整代码)
  • Tomcat、Open Liberty 和 WebSphere Application Server (WAS) 的配置、调试和跟踪
  • 嵌入式开发之STM32学习笔记day07
  • PCIe(Peripheral Component Interconnect Express)详解
  • docker 命令里 --restart=unless-stopped 参数的作用
  • Android 13 Launcher3最近任务列表“全部清除“按钮位置优化实战
  • Spring(7)——MyBatis入门(1)
  • 中国预警机雷达有多强?可数百公里外看清足球轨迹
  • 世卫大会连续9年拒绝涉台提案
  • 武汉警方通报一起故意伤害案件:1人死亡,嫌疑人已被抓获
  • 19国入境团抵沪并游玩,老外震惊:“怎么能有这么多人?”
  • 天算星座二期首批卫星成功发射,将助力6G空天信息基础设施建设
  • 广州医药集团有限公司原党委书记、董事长李楚源被“双开”