CAN笔记第二篇,车载测试继续学起来!

news2024/11/18 19:44:50

在CAN协议中,“帧”是一个包含完整信息的独立单元,它具有特定的格式和结构,以确保数据在CAN总线上的可靠传输。这里的“帧”字可以理解为:


完整性一个帧包含了所有必要的信息,从起始到结束,都遵循着特定的规则和结构。这确保了帧在传输过程中不会丢失信息,且能够被接收节点正确地解析。

标准化帧的格式和结构是标准化的,这意味着所有遵循CAN协议的设备和系统都能够理解和处理这些帧。这种标准化使得不同厂商的设备可以无缝地集成到同一个CAN网络中。

独立性:每个帧都是一个独立的单元,可以独立地在CAN总线上传输。这意味着一个帧的传输不会受到其他帧的干扰,从而保证了数据传输的可靠性。

可识别性:帧中的不同部分(如仲裁段、控制段、数据段等)都具有特定的含义和作用,这使得接收节点能够正确地解析帧中的信息。此外,帧的起始和结束都有特定的标识符,使得帧在传输过程中能够被准确地识别出来。

灵活性尽管帧的格式和结构是标准化的,但帧中的数据部分(即数据段)可以根据需要进行自定义。这使得CAN协议可以适应各种不同的应用场景和数据传输需求。


图片

协议中的5种类型帧

Can协议中通信是通过以下 5 种类型的帧进行的。

• 数据帧  • 遥控帧  • 错误帧  • 过载帧 • 帧间隔

另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有 11 个位的标识符(Identifier: 以下称 ID),扩展格式有 29 个位的 ID。各种帧的用途如下图所示。 

图片

图片

帧的种类及用途

01 数据帧

数据帧由 7 个段构成。

用于在CAN总线上传输数据,包含数据和标识符(ID)信息,最长可以传输8字节数据。

(1) 帧起始 :表示数据帧开始的段。逻辑值为0,占据1个bit。

(2) 仲裁段 :表示该帧优先级的段。标准帧有11个bit的标识符,can报文唯一的ID。不同ecu发送报文时id值不一样。用来判定该报文的优先级。比如是判定是数据帧还是远程帧,如果同是数据帧,那么根据ID继续判定哪个数据帧优先级更高。

RTR:表示0是数据帧,如果是1就表示是远程帧。所以数据帧中0.

(3) 控制段 :表示数据的字节数及保留位的段。

IDE段:标准帧值为0,如果是扩展帧,值为隐性的1(同时前面的仲裁帧也会变长)

保留位:标准帧保留位为0.DLC:Data Lenght Code 数据长度码,用于标注后面的数据域的长度信息,最长是8字节。可发送 0~8 个字节的数据。(一个字节是8个bit)

(4) 数据段 :数据的内容。

(5) CRC 段 :检查帧的传输错误的段。全称:Cyclic Redundancy Check(循环冗余检查) 使用固定的算法针对前4端的内容进行计算,得出一个二进制数据显示在该段。CRC界定符:隐性的1,表示CRC段发送完毕。

(6) ACK 段 ;表示确认正常接收的段。ACK全称:Acknowledgment,接收确认。ACK槽:隐性的1的信号。当接收方收到并确认无误时改为0,发送方则会收到改信号表示接收方完整收到前面的内容。

(7) 帧结束 :表示数据帧结束的段。这里是7个连续的隐性1信号,表示整个数据结束

图片

02 遥控帧

接收单元向发送单元请求发送数据所用的帧。遥控帧和数据帧很像,区别就是遥控帧没有数据帧的数据段。遥控帧由 6 个段组成。

(1) 帧起始(SOF):表示帧开始的段。

(2) 仲裁段 :表示该帧优先级的段。可请求具有相同 ID 的数据帧。

(3) 控制段 :表示数据的字节数及保留位的段。

(4) CRC 段 :检查帧的传输错误的段。

(5) ACK 段 :表示确认正常接收的段。

(6) 帧结束 :表示遥控帧结束的段。

遥控帧的 RTR 位为隐性的,数据帧的 RTR 位为显性,因此,可以通过 RTR 位来区分遥控 帧和没有数据的数据帧。遥控帧没有数据,因此, DLC 表示的是所请求的数据帧数据长度,遥控 帧的其他段参考数据帧的描述即可。

图片

03 错误帧

用于在接收和发送消息时检测出错误通知错误的帧。错误帧由错误标志和错误界定符构成

(1) 错误标志

错误标志包括主动错误标志和被动错误标志两种。

主动错误标志:6 个位的显性位。

被动错误标志:6 个位的隐性位。

① 主动错误状态最开始TCE和REC都小于127时,就处于主动错误状态。处于主动错误状态,说明这个节点目前是比较可靠的,出现错误的原因可能不是它本身的问题,即刚刚检测到的错误可能不仅仅只有它自己遇到,正是因为这一点,整个总线才相信它报告的错误,允许它破坏掉发送中的报文,也就是将这一次的发送作废。

② 被动错误状态如果某个节点发送错误帧的次数较多,必将使得TCE>127 或者 REC>127,那么该节点就处于被动错误状态。处于被动错误状态,说明这个节点目前是不太可靠的,出现错误的原因可能是它本身的问题,即刚刚检测到的错误可能仅仅只有它自己遇到,正是因为这一点,整个总线才不信任它报告的错误,从而只允许它发送六个连续的隐性位,这样它才不会拖累别人。

(2) 错误界定符

错误界定符由 8 个位的隐性位构成。

图片

04 过载帧

过载帧是用于接收单元通知其尚未完成接收准备的帧。过载帧由过载标志和过载界定符构成。

(1) 过载标志 6 个位的显性位。过载标志的构成与主动错误标志的构成相同。过载标志其形式破坏了间歇场的固定格式,结果使其他所有节点也检测到了一个出错状态,就都各自送出一个超载标志。

(2) 过载界定符 8 个位的隐性位。过载界定符的构成与错误界定符的构成相同。过载标志发送完毕后,每个节点都对总线进行监察,直到检测到一个隐性位为止。此时,每个节点均已发送完各自的过载标志,接着所有节点还要同时开始发送7个隐性位,配齐长达8位的过载界定符。

图片

05 帧间隔

帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。过载帧和错误帧前不能插入帧间隔。

(1) 间隔

3 个位的隐性位。

(2) 总线空闲

隐性电平,无长度限制(0 亦可)。

本状态下,可视为总线空闲,要发送的单元可开始访问总线。

(3) 延迟传送(发送暂时停止)

8 个位的隐性位。

只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。

图片

内容比较多,大家可以花些时间仔细阅读一下,收获那是肯定的。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3D 生成重建012-Magic123早期使用不同SDS相减的探索

3D 生成重建012-Magic123早期使用不同SDS相减的探索 文章目录 0论文工作1论文方法2效果 0论文工作 Magic123提出了一种两阶段粗到细的方法,用于使用2D和3D先验从野外未曝光图像生成高质量的纹理3D网格。在第一阶段,优化一个神经辐射场,以产…

DQL(数据查询)

目录 1. DQL概念 2. DQL - 编写顺序 3. 基础查询 3.1 查询多个字段 3.2 字段设置别名 3.3 去除重复记录 3.4 案例 4. 条件查询 4.1 语法 4.2 条件 4.3 案例: 5. 聚合函数 5.1 常见的聚合函数: 5.2 语法 5.3 案例: 6. 分组查…

微信小程序抓取数据包(Proxifier联动burpsuite)

1、打开bp,确保开启127.0.0.1:8080监听地址。 2、点击setting--proxy,点击impor CA certificate,生成bp的证书。 保存到桌面为1.cer,文件后缀为cer就OK了,前缀任意 3、安装证书,双击打开刚刚生成…

FPGA 第4章 摄像头Bayer转rgb

参考文献 彩色MT9V034摄像头 Bayer转rgb FPGA实现 https://www.cnblogs.com/hqz68/p/10413896.html 文章目录 前言Bayer转rgb算法解析 总结 前言 Bayer格式是相机内部的原始数据, 一般后缀名为.raw。 对于彩色图像,一般是三原色数据,rgb格式。但是摄像头一个像素…

01.爬虫---初识网络爬虫

01.初识网络爬虫 1.什么是网络爬虫2.网络爬虫的类型3.网络爬虫的工作原理4.网络爬虫的应用场景5.网络爬虫的挑战与应对策略6.爬虫的合法性总结 1.什么是网络爬虫 网络爬虫,亦称网络蜘蛛或网络机器人,是一种能够自动地、系统地浏览和收集互联网上信息的程…

解决 SpringBoot 的 Date、LocalDateTime 变成时间戳和数组的问题,创建自定义对象消息转换器

问题描述 SpringBoot 项目,当返回前端的数据类型为 Map 的时候,在 Map 中 put() 时间对象会出现以下问题: 传递的 Date 对象会变成时间戳传递的 LocalDateTime 对象会变成数组 问题复现 编写一个 Controller 方法,返回值为 Ma…

网络安全基础技术扫盲篇 — 名词解释

网络模块基础(网络拓扑图、网络设备、安全设备) 用通俗易懂的话说: 网络拓扑图:它就像一张网络世界的地图,它展现了我们数不清的网站、服务器和设备是如何相互连接的。用简单的话说,它就是给我们指路、告…

企业ov代码签名证书1300

我们在下载一些软件代码时,有时候操作系统会出现未知软件拦截,各个杀毒软件也会因为软件身份不明拦截软件下载。而代码签名证书可以对软件进行数字签名,以验证软件的身份和完整性。这种数字签名机制确保了软件在传输和安装过程中没有被篡改或…

数据结构---优先级队列(堆)

博主主页: 码农派大星. 数据结构专栏:Java数据结构 关注博主带你了解更多数据结构知识 1. 优先级队列 1.1 概念 前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队 列时&am…

Rust 赋能前端 -- 写一个 File 转 Img 的功能

所有耀眼的成绩,都需要苦熬,熬得过,出众;熬不过,出局 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 Rustwasm-bindgen/js-sys/web-sysWeb WorkerWebAssemblyWebpack/Vite配置WebAssemblyOffscreenCanvas脚手架生成项…

win11缺少msvcr110dll,msvcp110.dll的解决办法

MSVCP110.dll是一个与Microsoft Visual C 2012 Redistributable Package相关的动态链接库(Dynamic Link Library)文件,主要用于支持使用C编写的Windows应用程序运行时所需的特定功能。当用户尝试运行依赖于这个库的应用程序时,如果…

【网络安全】网络安全协议的重要性

一.网络安全 1.什么是网络安全 网络安全(Cyber Security)是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。 2.网络安…

智慧展厅设计的难点有哪些

1、运用先进的展示技术 将全息影像、三维投影、虚拟现实、人机互动等技术做做完美衔接,把展厅的内容展示做到丰富多彩,从而让展厅富有科技感和艺术性。 2、内容要生动有趣 从而更好地吸引参观者。展厅设计师要与客户有良好深入的沟通,搜集与整…

SAP 批量获取BOM中替代料信息(代码分享)

最近用户需要到导出BOM中存在替代料的信息,只要导出替代料的程序,但是使用展开BOM的程序执行后,导致执行时间很长,数量量也非常的大,内存溢出,程序就挂掉了。9万多个物料有BOM,当然不能让用户去导,后面我们写了一段SQL,用内表的方式给用户导出了需要的数据。 同时也找…

10.8k star,超好用的高颜值屏幕录制工具

最近公司需要给新来的同事做一些基础的培训。不过因为时间冲突,没办法现场给大家上课,所以老板让我自己在家把视频课程录制好,还说要让同事们看到我的样子。 这倒是有点费劲了,之前也录制过课程视频,但都是直接用屏幕…

小程序-修改用户头像

1、调用拍照 / 选择图片 // 修改头像 const onAvatarChange () > { // 调用拍照 / 选择图片 uni.chooseMedia({ // 文件个数 count: 1, // 文件类型 mediaType: [image], success: (res) > { console.log(res) // 本地临时文件路径 (本地路径) const { tempFilePath } …

【Tools】SpringBoot工程中,对于时间属性从后端返回到前端的格式问题

Catalog 时间属性格式问题一、需求二、怎么使用 时间属性格式问题 一、需求 对于表中时间字段,后端创建对应的实体类的时间属性需要设定格式(默认的格式不方便阅读),再返回给前端。 二、怎么使用 导入jackson相关的坐标&#x…

PostgreSQL事务基础理解

PostgreSQL事务 事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。数据库事务通常包含一个序列对数据库的读和写操作,主要是包含以下两个目的: 为数据库操作序列提供一个从失败中恢复到正常状态的方法&#…

vue 打印、自定义打印、页面打印、隐藏页眉页脚

花了一天时间搞了个打印功能,现则将整体实现过程进行整理分享。先来看看效果图: 1、页面展示为: 2、重组页面打印格式为:这里重组页面的原因是客户要求为一行两列打印 !内容过于多的行则独占一行显示完整。 整体实现&…

isscc2024 short course2 Performance Compute Environment

这部分分为4部分: 概览:LLMs和生成式AI 探讨大语言模型(LLMs)和生成式AI的整体环境,及其对硬件加速器设计的影响。 高性能AI加速器的特定考虑因素 广泛的模型和使用案例支持:需要设计能支持多种模型和应…