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 设计

结构框图

接口设计

上板验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35811.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt-搭建开发环境

1.环境搭建 开发工具概述: Qt ⽀持多种开发⼯具,其中⽐较常⽤的开发⼯具有:Qt Creator、Visual Studio、Eclipse. 1.1Qt Creator Qt Creator 是⼀个轻量级的跨平台集成开发环境(IDE),专为使⽤ Qt 框架进…

Odoo18 Http鉴权+调用后端接口

最近在调研Odoo18,包括它的前后端原理、源码等。发现官方的开发文档并不十分实用,比如标题这种简单的实用需求,竟然浪费了一点时间,特此记录。 官方文档:External API — Odoo 18.0 documentation 前提:首…

【第13节】windows sdk编程:GDI编程

目录 一、GDI 概述 二、设备环境概念 三、使用 GDI 绘图对象 四、使用 GDI 坐标系统 五、使用GDI绘图 5.1 输出文字 5.2 画点和线 5.3 画矩形框、圆和多边形 5.4 画位图和图标 5.5 双缓冲技术 六、综合代码示例 一、GDI 概述 Windows 应用程序不支持标准输出函数&am…

离开页面取消请求

前言 上一篇文章我们处理了axios的重复请求问题axios重复请求,今天来说一下如何在离开某个页面的时候将正在发送的请求取消掉 开始 基于上一篇的axios封装,当我们在编写某个页面的请求的时候 import request from /request/index;export const test2…

C++输入输出流第一弹:标准输入输出流 详解(带测试代码)

目录 C输入输出流 流的四种状态(重点) 标准输入输出流 标准输入流 逗号表达式 1. 逗号表达式的基本规则 示例 2. 图片中的代码分析 关键点解析 3. 常见误区 误区 1:逗号表达式等同于逻辑与 && 误区 2:忽略输入…

Z 轴热膨胀系数:PCB 可靠性的关键因素与选材策略

在电子设备小型化与高性能化的趋势下,PCB(印刷电路板)的可靠性成为决定产品寿命的核心因素。其中,Z 轴热膨胀系数(α2/z-CTE)作为板材的关键参数,直接影响多层板的层间结合力、焊点稳定性及整体…

【C++】Virtual function and Polymorphism

《C程序设计基础教程》——刘厚泉,李政伟,二零一三年九月版,学习笔记 文章目录 1、多态性的概念2、虚函数的定义2.1、引入虚函数的原因2.2、虚函数的定义与使用2.3、虚函数的限制 3、抽象类3.1、纯虚函数3.2、抽象类 4、应用实例 更多有趣的代…

图解LLM智能体(LLM Agents):构建与运作机制的全面解析

LLM智能体:构建与运作机制 LLM智能体(LLM Agents)正在迅速普及,似乎逐渐取代了我们熟悉的传统对话式LLM。这些令人惊叹的能力并非凭空而来,而是需要多个组件协同工作。 本文包含超过60张定制插图,将深入探讨LLM智能体的领域、其核心组件以及多智能体框架的工作原理。 文…

自动驾驶背后的数学:特征提取中的线性变换与非线性激活

在上一篇博客「自动驾驶背后的数学:从传感器数据到控制指令的函数嵌套」—— 揭秘人工智能中的线性函数、ReLU 与复合函数中,我们初步探讨了自动驾驶技术中从传感器数据到控制指令的函数嵌套流程,其中提到了特征提取模块对传感器数据进行线性…

W80x使用WM IoT SDK 2.X 开发(二)驱动tft屏幕

一、硬件准备 开发板依然是官方送的w803,屏幕我的是2.4寸的ST7789 二、查看sdk 1、例程 tft的有这4个程序,我这里直接看最简单的polling吧 首先就是创建一个任务,这跟上一篇点亮led创建任务的步骤一样 继续点进去 2、spi初始化 先看初始…

Linux系统编程(四)--进程概念

文章目录 1.基本概念与基本操作1.1 描述进程-PCB1.2 task_struct-PCB的一种1.3 task_struct内容分类1.4 查看进程1.5 通过系统调用获取进程的PID和PPID1.6 PPID(Parent Process ID)1.7 通过系统调⽤创建进程-fork初识fork创建子进程使用if进行分流 2.进程…

从 0 到 1 掌握鸿蒙 AudioRenderer 音频渲染:我的自学笔记与踩坑实录(API 14)

最近我在研究 HarmonyOS 音频开发。在音视频领域,鸿蒙的 AudioKit 框架提供了 AVPlayer 和 AudioRenderer 两种方案。AVPlayer 适合快速实现播放功能,而 AudioRenderer 允许更底层的音频处理,适合定制化需求。本文将以一个开发者的自学视角&a…

linux 命令 cd

以下是 Linux 中 cd 命令的详细用法总结,涵盖基础操作、快捷方式和常见场景: 1. 命令功能 cd(Change Directory)用于切换当前工作目录,是 Linux 文件系统操作中最常用的命令之一。 2. 基本语法 cd [选项] [目录路径…

安卓开发调用本地接口以及设置base_url思路

去年接手pad端开发时曾问过其它组的老安卓一个问题,我们的安卓项目本地开发时能否调用本地接口,回答是否定的。也许是由于通用底座加入的限制,也许是因为太忙了,不想给我解释繁琐的解决方案。 那么在个人PC上玩耍总是能够调用本地…

中小型企业大数据平台全栈搭建:Hive+HDFS+YARN+Hue+ZooKeeper+MySQL+Sqoop+Azkaban 保姆级配置指南

目录 背景‌一、环境规划与依赖准备‌1. 服务器规划(3节点集群)2. 系统与依赖‌3. Hadoop生态组件版本与下载路径4. 架构图二、Hadoop(HDFS+YARN)安装与配置‌1. 下载与解压(所有节点)2. HDFS高可用配置3. YARN资源配置‌4. 启动Hadoop集群三、MySQL安装与Hive元数据配置…

003 SpringCloud整合-LogStash安装及ELK日志收集

SpringCloud整合-LogStash安装及ELK日志收集 文章目录 SpringCloud整合-LogStash安装及ELK日志收集1.安装ElasticSearch和kibana2.Docker安装logstash1.拉取docker镜像2.创建外部挂载目录3.拷贝容器内部文件到宿主机4.修改外部挂载文件5.运行docker容器 3.整合kibana1.进入kiba…

《TCP/IP网络编程》学习笔记 | Chapter 19:Windows 平台下线程的使用

《TCP/IP网络编程》学习笔记 | Chapter 19:Windows 平台下线程的使用 《TCP/IP网络编程》学习笔记 | Chapter 19:Windows 平台下线程的使用内核对象内核对象的定义内核对象归操作系统所有 基于 Windows 的线程创建进程与线程的关系Windows 中线程的创建方…

【Git学习笔记】Git分支管理策略及其结构原理分析

【Git学习笔记】Git分支管理策略及其结构原理分析 🔥个人主页:大白的编程日记 🔥专栏:Git学习笔记 文章目录 【Git学习笔记】Git分支管理策略及其结构原理分析前言一.合并冲突二. 分支管理策略2.1 分支策略2.2 bug分支2.3 删除临…

STAR Decomposition 一种针对极端事件的信号分解方法 论文精读加复现

STAR 分解🚀 在时序预测任务中,为了情绪化信号的各种成分,例如趋势信息季节信息等往往都需要对信号进行分解。目前熟知的分解方式有很多种,经验模态分解 EMD 变分模态分解 VMD ,还有 集合经验模态分解 EEMD&#xff0c…

大一新生备战蓝桥杯c/c++B组——2024年省赛真题解题+心得分享

一&#xff0c;握手问题 这个题用点像小学奥数&#xff0c;直接手算就行 答案&#xff1a;1204 二&#xff0c;小球反弹 这个题思路简单&#xff0c;但是运行会显示超时。在思考思考&#xff0c;后续补代码。 三&#xff0c;好数 思路一&#xff1a; #include <iostream&…