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

SENT - Single Edge Nibble Transmission for Automotive

SENT 总线的特征和优势

  • SENT 总线是一种数字信号传输协议,具有更高的传输精度和速度
  • SENT 总线是单线传输数据,减少信号线,降低成本。加上电源和地线,总共 3 线
  • SENT 总线具有更强大的诊断功能
  • SENT 总线的逻辑电平为 4.75V – 5.25V
  • SENT 总线单向传输协议,数据只能从传感器到 ECU,传输是连续的,不需要请求命令;
  • SENT 总线由来传输数据,或者数据包的形式,每一帧由不同宽度的脉冲即半字节组成;
  • SENT 总线数据的传输可以分为快速通道和慢速通道,重要的信号用快速通道以实现高频率的更新,比如压力等,对于非关键的信号,如诊断等可以放在慢速通道传输;
  • SENT 总线快速通道是每一帧传输一个完整的信号,慢速通道需要多帧来传输一个完整的信号,即更新频率不同。

SENT协议定义

  • SENT协议的数据是使用Nibble(半字节)来进行编码定义的。
  • 脉冲的周期是指以发送信号的连续两个下降沿之间的时间。即发送信号开始的下降沿,然后维持特定的拉低时间,然后剩余的时间拉高,最后再次拉低结束这个脉冲传输的下降沿之间的时间差。
  • 在发送一个Nibble时,需要大于4个(通常用5个)时钟周期的拉低时间。
  • 脉冲所表示的数值由两个下降沿之间的时钟数决定。最小的数0的时钟数为12,每增加一个数值,时钟数在12的基础上加1,所以最大数15的时钟数为27。
  • n的时钟周期数 = 5个LOW时钟周期 + 7个HIGH时钟周期 + n*Clock。

各个数据对应的ticks数目如下:

Frame Format

一个Frame基本组成:

  • Sync 同步脉冲,固定的56Ticks。(这个不是按照标准的SENT数据格式发送),该脉冲与后续的下降沿之间的时间间隔等效于56个时钟节拍。
  • Status/Com 状态及通讯字段,按照SENT格式传送,12~27Ticks,即1个Nibble(4bit)。
  • 这个nibble可以传输零件号,错误代码等杂项信息
  • Data 数据段,12~162Ticks,即1~6个Nibble。
  • CRC 校验字段,12~27Ticks,即1个Nibble。
  • Pause 暂停脉冲(可选), 12~768Ticks,早期的SENT协议无此字段或者一个固定长度Ticks,SENT2010之后,部分通过此功能可以动态条件TICKS的个数,实现整个SENT协议是同一个固定长度TICKS。

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>#define u08_T	unsigned char
#define u16_T	unsigned short
#define u32_T	unsigned longunion fcFrame_T
{struct{u08_T scCom;u08_T data1;	// MSN   of Signalu08_T data2;	// MidSN of Signalu08_T data3;	// LSN   of Signalu08_T data4;u08_T data5;u08_T data6;u08_T crc;};u08_T array[8];
};u08_T calc4BitCrc(u08_T* dataArray, u08_T startPtr, u08_T endPtr)
{u08_T calculatedCRC, i;const u08_T CrcLookup[16] = {0, 13, 7, 10, 14, 3, 9, 4, 1, 12,6, 11, 15, 2, 8, 5};calculatedCRC = 5; // initialize checksum with seed "0101"for (i = startPtr; i <= endPtr; i++){calculatedCRC = CrcLookup[calculatedCRC];calculatedCRC = (calculatedCRC ^ dataArray[i]) & 0x0F;}// One more round with 0 as inputcalculatedCRC = CrcLookup[calculatedCRC];return calculatedCRC;
}int main()
{union fcFrame_T 		fcFrame;fcFrame.data1 = 0x2;fcFrame.data2 = 0xC;fcFrame.data3 = 0x4;fcFrame.data4 = 0x8;fcFrame.data5 = 0x8;fcFrame.data6 = 0xD;fcFrame.crc = 0x0F & calc4BitCrc(fcFrame.array, 1, 6);printf("CRC=0x%X\r\n", fcFrame.crc);return 0;
}

消息格式

快速消息Fast Channel

SENT发送一帧数据,就是一帧快速消息。

串行消息

Short Serial Message 格式

  • 短串行消息是依靠“通信和状态位的bit3来传输的。”即每帧SENT数据只能传输串行消息中的一位;一个short serial message16位,所以要传输一个完整的short serial message 需要16sent信号。
  • 串行消息的识别:

串行消息是的识别是依靠SENT信号的“status&comm ”Nibble 的bit3来识别的;

第一个SENT信号的“status&comm ”Nibble 的bit3是1,接下来的15帧SENT信号的“status&comm ”Nibble 的bit3都是0。那么这16帧SENT信号中的status&comm Nibble中的bit2就可以构成一个串行消息。

  • 一个串行消息包括1个nibble的Message ID,2个nibble的data,还有1个nibble的CRC校验。
  • 一个Short Serial Message 的帧格式如下:

前4帧SENT信号的“status&comm ”Nibble 的bit2 构成了串行消息的MessageID;中间8帧SENT信号的“status&comm Nibble 的bit2 构成了串行消息的DATA byte;后4帧SENT信号的“status&comm Nibble 的bit2 构成了串行消息的CRC校验位。

Enhance Serial Message 格式

  • 增强型串行消息的传输是依靠SENT信号“status&comm”Nibble中的bit2和bit3共同传输的。增强型串行消息可以配置成12bit data和8bit messageID。也可以配置成16bit data和 4bit message ID。每传输一个增强型串行消息需要18SENT信号。
  • 增强型串行消息的识别:

如果连续6帧SENT信号“status&comm”Nibble中的bit3都是1,第7帧SENT信号“status&comm”Nibble中的bit3是0。那么从这个第1帧SENT信号 到 第18帧SENT信号中“status&comm”Nibble的bit2和bit3就可以提取出来一个增强型串行消息。

增强型消息可以根据配置位(由第8个SENT帧的bit3作为configuration bit)配置成两种形式:

12-bit 数据 and 8-bit 报文代号message ID (configuration bit = 0)

16-bit 数据 and 4-bit 报文代号message ID (configuration bit = 1)

                    

相关文章:

SENT - Single Edge Nibble Transmission for Automotive

SENT 总线的特征和优势 SENT 总线是一种数字信号传输协议&#xff0c;具有更高的传输精度和速度&#xff1b;SENT 总线是单线传输数据&#xff0c;减少信号线&#xff0c;降低成本。加上电源和地线&#xff0c;总共 3 线&#xff1b;SENT 总线具有更强大的诊断功能&#xff1b;…...

2024年软件设计师中级(软考中级)详细笔记【7】面向对象技术(下)23种设计模式(分值10+)

目录 前言阅读前必看 第七章 面向对象技术&#xff08;下&#xff09;7.3 设计模式&#xff08;固定4分&#xff09;7.3.1 设计模式的要素7.3.2 创建型设计模式7.3.2.1 Abstract Factory&#xff08;抽象工厂&#xff09;7.3.2.2 Builder&#xff08;生成器&#xff09;7.3.2.3…...

未来人工智能的发展对就业市场的影响 人工智能在生活中的相关

人工智能&#xff08;Artificial Intelligence&#xff09;&#xff0c;英文缩写为AI.是新一轮科技革命和产业变革的重要驱动力量&#xff0c; 是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学. 人工智能的发展对就业市场的影响主要…...

Oracle EBS 中财务模块

Oracle E-Business Suite (EBS) 提供了全面的财务管理解决方案&#xff0c;涵盖了企业财务活动的各个方面。以下是EBS中主要的财务模块及其功能概述&#xff1a; 总账&#xff08;General Ledger, GL&#xff09;&#xff1a;Oracle EBS 中 GL 模块的财务流程概览-CSDN博客 总账…...

基于SSM公廉租房维保系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;业主管理&#xff0c;维修单位管理&#xff0c;房屋信息管理&#xff0c;维修申报管理&#xff0c;维修完成&#xff0c;房屋维护管理 业主账号功能包括&#xff1a;系统首页&#xff0c;个人中心&…...

【AI大模型】深入Transformer架构:解码器部分的实现与解析

目录 &#x1f354; 解码器介绍 &#x1f354; 解码器层 2.1 解码器层的作用 2.2 解码器层的代码实现 2.3 解码器层总结 &#x1f354; 解码器 3.1 解码器的作用 3.2 解码器的代码分析 3.3 解码器总结 学习目标 &#x1f340; 了解解码器中各个组成部分的作用. &#…...

前端html js css 基础巩固3

一个这样的首页 滑动显示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&l…...

如在下载自己的需要的rmp包呢

下载地址&#xff1a;https://pkgs.org/和https://rpmfind.net/linux/rpm2html/search.php 根基自己的需要进行下载使用。...

Android TextView实现一串文字特定几个字改变颜色

遇到一个需求&#xff0c;让Android端实现给定一个字符串指定下标的几个字颜色与其他字颜色不一致。 主要是用ForegroundColorSpan这个API来传入颜色值&#xff0c;用SpannableString来设置指定索引下标的字的颜色值。 这里通过给定一个输入文字描述框&#xff0c;要求输入指定…...

桃子叶片病害分类检测数据集(猫脸码客 第221期)

桃子叶片病害分类检测数据集 一、引言 桃子作为世界上广泛种植的果树之一&#xff0c;其叶片的健康状况直接关系到果实的产量和品质。然而&#xff0c;桃子叶片易受多种病害的侵袭&#xff0c;这些病害不仅影响叶片的光合作用&#xff0c;还可能导致果实减产、品质下降&#…...

Vue--》掌握自定义依赖引入的最佳实践

在现代前端开发中&#xff0c;vue凭借其灵活性和高效性&#xff0c;已成为开发者们的宠儿&#xff0c;然而随着项目的复杂度提升&#xff0c;如何高效地管理和引入依赖&#xff0c;尤其是自定义引入依赖&#xff0c;成为了许多开发者面临的一大挑战。无论是为了优化加载速度&am…...

repo 命令大全详解(第十四篇 repo overview)

repo overview 命令用于显示当前项目的概览信息&#xff0c;帮助用户快速了解项目的状态和分支信息。 参数分类及解释 基本参数 [--current-branch]: 可选&#xff0c;仅考虑已检出的分支。 示例: repo overview --current-branch [<project>...]: 可选&#xff0c;指定…...

【设计模式】深入理解Python中的抽象工厂设计模式

深入理解Python中的抽象工厂设计模式 设计模式是软件开发中解决常见问题的经典方案&#xff0c;而**抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;**是其中非常重要的一种创建型模式。抽象工厂模式的主要作用是提供一个接口&#xff0c;创建一系列相关或依赖…...

网站建设完成后,多久需要升级迭代一次

网站建设完成后&#xff0c;一般每隔几个月就会进行一次迭代升级。以下是关于网站迭代周期和原因的具体分析&#xff1a; 更新频率&#xff1a;网站在建设完成后&#xff0c;一般每隔几个月就会进行一次迭代升级。这种周期性的更新有助于保持网站的现代感和竞争力。更新目的&a…...

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字

这里写目录标题 问题详情分析问题代码展示 问题详情 剑指 Offer 56&#xff1a; 一个整型数组 nums 里除两个数字之外&#xff0c;其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n)&#xff0c;空间复杂度是O(1)。 示例&#xff1a; 输入&a…...

Vue基本学习2

Vue使用方法 <script src"js/vue.js"></script><script>/*** Mode1:数据模型&#xff0c;负责数据存储(后台业务逻辑/数据库)* View:视图层&#xff0c;负责页面展示(HTML)* View Model(Vue):负责业务逻辑处理(比如Ajax请求等)* view 与 Model 数…...

创作者等级权益说明

创作者等级权益说明 一、如何查看创作者等级权益二、等级权益对照表 一、如何查看创作者等级权益 step1&#xff1a;鼠标移动至头像&#xff0c;显示如下图的浮窗 step2&#xff1a;点击我的等级&#xff0c;即跳转到创作者等级权益页面 图1.1 我的等级 图1.2 创作者等级权益…...

基于SpringBoot+Vue+uniapp微信小程序的校园反诈骗微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…...

统一修改UI库样式的几种方式

统一修改element组件库样式的几种方式。主题 | Element Plus 通过css变量设置 【CSS扩展】VUE如何使用或修改element plus中自带的CSS全局变量来定义样式:root {--hc-text-color-placeholder: #5f84a2;--hc-text-color-regular: #fff;--hc-text-color-primary: #fff;--hc-bg-c…...

ICM20948 DMP代码详解(88)

接前一篇文章:ICM20948 DMP代码详解(87) 本回继续对inv_convert_androidSensor_to_control函数进行解析。为了便于理解和回顾,再次贴出inv_convert_androidSensor_to_control函数源码,在EMD-Core\sources\Invn\Devices\Drivers\ICM20948\Icm20948DataBaseControl.c中,如下…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...