历史上的今天
返回首页

历史上的今天

今天是:2025年08月13日(星期三)

正在发生

2019年08月13日 | STM32-(37):CAN总线(协议帧)

2019-08-13 来源:eefocus

CAN协议帧的概念

帧用途
数据帧
用于发送单元向接收单元传送数据的帧。
遥控帧
用于接收单元向具有相同ID的发送单元请求数据的帧。
错误帧
用于检测出错误时向其它单元通知错误的帧。
过载帧
用于接收单元通知其尚未做好接收准备的帧。
帧间隔
用于将数据帧及遥控帧与前面的帧分离开来的帧。

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

数据帧的组成

在这里插入图片描述

SOF(start of frame):帧的起始位

数据帧详解:

(1)帧起始(标准、扩展格式相同)

表示帧开始的段。1个位的显性位。
在这里插入图片描述
显性电平和隐形电平
总线上的电平有显性电平和隐形电平两种。
总线上执行逻辑上的线“与”时,显性电平的逻辑值位“0”,隐形电平为“1”。
“显性”具有“优势”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐形”具有“包容”的意味,只有所有的单元都输出隐形电平,总线上才位隐形电平。(显性电平比隐形电平更强。)

(2)仲裁段

表示数据的优先级的段。
标准格式和扩展格式在此的构成有所不同。
在这里插入图片描述
ID
标准格式的 ID 有11位,从 ID28 到 ID18 被依次发送。禁止高7位都为隐形。(禁止设定:ID = 1111111XXXX)
扩展格式的 ID 有29位。基本ID 从 ID28 到 ID18,扩展ID 由 ID17 到 ID0 表示。基本ID和标准格式的ID相同。禁止高7位都为隐形。(禁止设定:基本ID = 1111111XXXX)
标准格式与扩展格式区分:在基本ID之后判断后一位电平(若为“0”,则是RTR,表示标准格式,若为“1”,则是SRR,表示扩展格式)

(3)控制段

控制段由6个位构成,表示数据段的字节数
前两个位为保留位,后四位(DLC)表示数据段的字节数。
在这里插入图片描述

(4)数据段(标准、扩展格式相同)

数据段可包含0-8个字节的数据。从MSB(最高位)开始输出。
在这里插入图片描述

CRC段(标准、扩展格式相同)

CRC段是检查帧传输错误的帧。由15个位的CRC顺序和1个位的CRC界定符(用于分隔的位)构成。
在这里插入图片描述
CRC顺序
CRC顺序是根据多项式生产的CRC值,CRC的计算范围包括帧起始、仲裁段、控制段、数据段。
接收方以同样的算法计算CRC值并进行比较,不一致时会通报错误。

(6)ACK段

ACK段用来确认是否正常接收。由ACK槽(ACK Slot)和ACK界定符2个位构成。
在这里插入图片描述
1.发送单元的ACK段
发送单元在ACK段发送2个位的隐性位。
2.接收单元的ACK段
接收到正确消息的单元在ACK槽(ACK Slot)发送显性位,通知发送单元正常接收结束。这称作“发送ACK”或者“返回ACK”

(7)帧结束

帧结束是表示该帧的结束的段。由7个位的隐性位构成。
在这里插入图片描述

遥控帧

在这里插入图片描述

  • 数据帧和遥控帧的不同
    –遥控帧的RTR位为隐性位,没有数据段。
    –没有数据段的数据帧和遥控帧可通过 RTR位区别开来。

  • 遥控帧没有数据段,数据长度码该如何表示?
    –遥控帧的数据长度码以所请求数据帧的数据长度码表示。

  • 没有数据段的数据帧有何用途?
    –例如,可用于个单元的定期连接确认/应答、或仲裁段本身带有实质性信息的情况下。

错误帧

在这里插入图片描述
用于在接收和发送消息时检测出错误通知错误的帧。错误帧由错误标志和错误界定符构成。
(1)错误标志
错误标志包括主动错误标志和被动错误标志两种。
主动错误标志:6个位的显性位。
被动错误标志:6个位的隐性位。
(2)错误界定符
错误界定符由8个位的隐性位构成。

过载帧

在这里插入图片描述
过载帧是用于接收单元通知其尚未完成接收准备的帧。过载帧由过载标志和过载界定符构成。
(1)过载标志
6个位的显性位。
过载标志的构成与主动错误标志的构成相同。
(2)过载界定符
8个位的隐性位。
过载界定符的构成与错误界定符的构成相同。

帧间隔

在这里插入图片描述
帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。
过载帧和错误帧前不能插入帧间隔。
(1)间隔
3个位的隐性位
(2)总线空闲
隐性电平,无长度限制(0亦可)
(3)延时传送(发送暂时停止)
8个位的隐性位
只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。

优先级

在总线空闲态,最先开始发送消息的单元获得发送权。
多个单元同时开始发送时,各发送时单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。
在这里插入图片描述
(1)数据帧和遥控帧的优先级(数据帧优先级高)
具有相同ID的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权。可继续发送。
在这里插入图片描述
(2)标准格式和扩展格式的优先级(标准格式的优先级高)
标准格式ID与具有相同ID的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的RTR位为显性位的具有优先权,可继续发送。
在这里插入图片描述

错误

错误共有5种。多种错误可能同时发生。

  • 位错误

  • 填充错误

  • CRC错误

  • 格式错误

  • ACK错误
    在这里插入图片描述


推荐阅读

史海拾趣

FASTRAX公司的发展小趣事

随着公司业务的不断发展,FASTRAX开始积极拓展海外市场,并与多家国际知名企业建立了战略合作关系。通过与这些企业的合作,FASTRAX不仅获得了更多的市场份额,也学习到了先进的管理经验和技术知识。这些合作经验为FASTRAX的持续发展奠定了坚实的基础。

DESIGNERSYSTEMS公司的发展小趣事

DESIGNERSYSTEMS公司深知,优质的服务是企业赢得客户的关键。他们始终坚持客户至上的原则,为客户提供从咨询、设计到生产、售后的一站式服务。无论客户遇到什么问题,DESIGNERSYSTEMS都能够迅速响应并提供有效的解决方案。这种优质的服务赢得了客户的广泛赞誉和口碑传播,为DESIGNERSYSTEMS在电子行业中树立了良好的形象。

绿宝石(BERYL)公司的发展小趣事

面对日新月异的电子行业发展趋势,绿宝石公司始终保持敏锐的洞察力和创新精神。公司不断加大对研发的投入力度,积极探索新的技术和应用领域。同时,绿宝石公司还注重与高校、科研机构的合作与交流,引进和培养了一批高素质的研发人才。这些创新举措为绿宝石公司的持续发展注入了新的动力,也为行业的未来发展指明了方向。


这些故事是基于一般电子行业发展趋势和公司成长逻辑的虚构内容,旨在展示一个公司可能经历的发展阶段和关键事件。实际上,绿宝石公司的发展过程可能涉及更多复杂的因素和挑战,需要具体的资料和数据进行描述和分析。

埃派克森微电子(Apexone)公司的发展小趣事

在埃派克森微电子的发展过程中,著名投资机构多尔基金和华登国际的风险投资起到了重要的推动作用。这些投资不仅为公司提供了资金支持,还带来了宝贵的市场资源和管理经验。借助这些资源,埃派克森加快了国际化步伐,积极拓展海外市场,与全球范围内的客户和合作伙伴建立了紧密的合作关系。

Abilis Systems公司的发展小趣事

2005年,埃派克森微电子发布了一系列USB鼠标控制器芯片,这些产品采用了公司独创的无晶振鼠标控制技术和对管免调技术。这些专利性的混合信号集成核心技术不仅为全球鼠标生产厂商提供了高性价比、简单方便的解决方案,还标志着埃派克森的专利技术全面进入商用时代。这一突破不仅提升了公司的市场地位,也为公司的后续发展注入了强大动力。

CNC Tech公司的发展小趣事

CNC Tech公司深知,在竞争激烈的电子行业中,品质是赢得客户信任和市场口碑的关键。因此,公司始终坚持品质至上的原则,从原材料采购到生产制造的每一个环节都严格把控品质。CNC Tech还建立了完善的品质管理体系,通过严格的质量检测和持续的技术改进,确保每一台出厂的设备都能达到客户的期望和要求。正是凭借这种对品质的执着追求,CNC Tech赢得了广大客户的信赖和好评。

问答坊 | AI 解惑

论坛资料重复太多了,有办法解决吗?

本人在论坛下载下来的时候发现,竟然有很多资料内容都是一样的,只改头换面而已,既浪费芯币又浪费时间,可怜我辛苦攒来的芯币呀!晕…希望管理员重视。…

查看全部问答>

源程序--我用逻辑分析仪测试时隙,调试出的18b20

我用逻辑分析仪测试出的1820时隙,源代码 …

查看全部问答>

再次请教wince程序访问pc上数据库的问题

一直想通过wince上的程序连接pc上的数据库如sql server,mysql等,一直没搞定。不知有没有大侠能够指导一下啊?    这几天看了下sqlite数据库的东西,简单小程序能写了,但是发现sqlite有个问题就是好像不支持c/s结构,只能在本地进行sq ...…

查看全部问答>

求爱之后,她终于来到了我身边(STM32)

终于收到力源申请的套件了,哈哈哈哈还以为与她无缘,现在开始,晚上的"夜生活"开始丰富了也开始倒塌STM32~~~~~~~~~~~~~~~~~~~…

查看全部问答>

WWDG进不了中断

我用一个灯监视WWG中断,正常的话每进20次中断改一次灯的状态,(主要是因为看门狗58.25MS喂一次狗,想让LED大约1S闪一次),但是不知哪里出现问题,灯从没闪烁过,说明WWDG中断没有进入,我将断点设在WWDG中断程序中,结果也没有跑到中断程序 ...…

查看全部问答>

Stm32之寄存器汇总

很全的stm32寄存器表格,借以了解分析库函数。。。。。。 [ 本帖最后由 xinjitmzy 于 2012-4-17 21:26 编辑 ]…

查看全部问答>

低版本IAR简易开发LaunchPad的歪道

    (写得很认真,先留着,等板子来了就可以耍了!感谢作者)    故事的起因是这样滴。。。LaunchPad包装盒中并没有附带资料光盘(至少我收到的是这样的),只有一张纸的简单介绍,即TI网站上的文档MSP-EXP430G2 LaunchPa ...…

查看全部问答>

为什么我的 INA CMRR 不随增益变化?

转自:deyisupport 前面有两篇关于仪表放大器 (INA) 电源及共模抑制比 (PSRR & CMRR) 的极好博客文章。(参见“处理抑制问题:仪表放大器 PSRR 与 CMRR”第 I 部分 和 第 II 部分)。 准确指出了大多数 INA 器件的 CMRR 与 PSRR 性能会随增益变化 ...…

查看全部问答>

如何设计基于DS18B20温度计

要求基于DS18B20的温度计,按键切换显示华氏和摄氏度。…

查看全部问答>

模数转换器中的混叠:并不是所有的信号都像其看上去那样

转自deyisupport 你看没看到过汽车向前行驶,而车的轮子实际上是向后转呢?如果不是在表演高难度特技的话,我打赌你一定在汽车广告中看到过。你想没想过这是为什么呢?真实的生活如流水般不可中断,而视频摄像头每秒钟只记录了有限数量的画面。每 ...…

查看全部问答>