0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CANOpen系列教程05_ CAN总线同步与位填充、优先级的决定

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-06 16:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1写在前面

继续为大家更新CAN总线协议相关内容,这些内容其实也比较重要,会直接影响到你后期CAN总线的编程,夸张一点的说会影响到你的软件架构。

本文内容相对来说比较容易理解,初学者有必要了解一下。

2

位填充

位填充是为防止突发错误而设定的功能。当同样的电平持续 5 位时则添加一个位的反型数据。

这个功能很好理解,如下图所示。位填充的数据不需要编程控制,由控制器自动完成。其目的也是提高CAN总线的稳定性。

(1) 发送单元的工作

在发送数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,在下一个位(第 6 个位)则要插入 1 位与前 5 位反型的电平。

(2) 接收单元的工作

在接收数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,需要删除下一个位(第 6 个位)再接收。如果这个第 6 个位的电平与前 5 位相同,将被视为错误并发送错误帧。

3

优先级的决定

前面讲述“CAN 总线差分信号”时描述了显性和隐性,其实这是CAN总线的特点,也是决定CAN总线优先级比较重要的功能。

在CAN总线空闲态,最先开始发送消息的单元获得发送权。

多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。

上图描述了CAN控制仲裁的过程,单元2最终获得了抢占CAN总线的权利,也就是说单元2具有更高的优先级。

当单元1 仲裁失利时,自动转换为接收(本来该发送,优先级比别人低,就开始接收数据了。 同时,控制器将会在下一轮继续发送这次未完成的数据)。

3.1 数据帧和遥控帧的优先级

具有相同 ID 的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权,可继续发送。

数据帧和遥控帧的仲裁过程如下图:

3.2 标准格式和扩展格式的优先级

标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的 RTR 位为显性位的具有优先权,可继续发送。

提示:

不明白数据帧和遥控帧,标准格式和扩展格式之间差异的朋友,建议参看我上一篇文章《CANOpen系列教程04》。

4

其他

CAN总线协议的重要内容在这前面基本是讲述的差不多了,还有一些不是很重要的内容,比如硬件设计需要在CAN_H和CAN_L之间添加一个120欧电阻,总线的传输距离等。

接下来的文章会结合STM32芯片集成CAN控制器、例程讲述如何编程控制CAN总线数据的收发等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    59

    文章

    3107

    浏览量

    473824
  • CANopen
    +关注

    关注

    8

    文章

    526

    浏览量

    49931
  • 换位填充
    +关注

    关注

    0

    文章

    2

    浏览量

    1806
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    POE和辅助电源同时供电时,有什么办法可以改变优先级

    优先采用辅助电源。请问有什么办法可以改变优先级。同时有辅助外部电源和POE电源时,可以优先采用POE电源。
    发表于 05-14 07:29

    LTC4420:双输入微功耗电源路径优先级器的全方位解析

    LTC4420:双输入微功耗电源路径优先级器的全方位解析 在电子设备的电源管理领域,确保在各种电源状况下为关键电路提供稳定的电力供应至关重要。LTC4420 作为一款双输入单片式 PowerPath
    的头像 发表于 02-09 10:20 276次阅读

    CS32L010系列能否支持串口的发送和接收中断单独配置?不同中断的中断优先级如何设置?

    1、串口能否配置成阻塞式发送和中断式接收。 2、不同中断的中断优先级如何设置?我在开启中断函数代码中看到说中断优先级配置需要先调用NVIC_PriorityGroupConfig()函数,但此函数无定义,全局搜索不到。
    发表于 12-10 18:46

    抢占优先级和子优先级

    关于抢占优先级和子优先级: 1)具有高抢占式优先级的中断可以在具有低抢占式优先级的中断服务程序执行过程中被响应,即中断嵌套,或者说高抢占式优先级
    发表于 12-03 07:11

    电能质量在线监测装置的暂态数据补传的优先级如何在实际应用中进行动态调整?

    电能质量在线监测装置的暂态数据补传优先级在实际应用中通过 事件驱动、主站指令、资源状态感知和动态策略调整 等多层机制实现灵活调控,确保关键数据的实时性与可靠性。以下是具体实现方式和典型场景的动态调整
    的头像 发表于 11-06 14:10 456次阅读

    电能质量在线监测装置的暂态数据补传的优先级是怎样的?

    电能质量在线监测装置的暂态数据补传优先级设计遵循 事件驱动、主站指令优先、资源动态分配 的原则,结合行业标准和设备机制,形成以下多层级优先级体系: 一、最高优先级:紧急事件驱动补传 1
    的头像 发表于 11-06 14:02 478次阅读

    FreeRTOS任务调度及优先级问题

    都有容错,但是心里没底,想向大家了解一下实际工作中有没有遇到到类似的问题,如果有又是怎么解决的呢? 另外有前辈可以分享一下任务的优先级在实际项目中该基于什么原则来划分呢?
    发表于 11-06 02:18

    优先级线程无法调度怎么解决?

    1,设置了3,5,6,8几个优先级,设备在现场正常运行了一年多后,显示、前端、后端这3个低优先级线程异常了,表现为屏幕不动,前端采集数据没有变化等,其他高优先级的线程如通讯,按键都能正常运行,通讯有喂狗操作,停止通讯,会看门狗复
    发表于 09-25 07:33

    什么是RTOS中的优先级反转

    当一个高优先级任务正在等待一个资源,但一个低优先级任务正在持有它,一个中等优先级任务继续在中间运行时,就会发生优先级反转——阻止低优先级任务
    的头像 发表于 09-09 14:50 1279次阅读

    揭秘!基于RT-Thread探究“优先级反转”下的任务调度究竟是什么样的?| 技术集结

    本文将基于RT-Thread,结合RT-Trace调试器细化到实际任务调度的粒度,来调试并逐步讲解“优先级反转”的调度和运行逻辑。如果对RT-Trace感兴趣的可以看这篇文章:国产嵌入式调试器之光
    的头像 发表于 08-17 10:07 3543次阅读
    揭秘!基于RT-Thread探究“<b class='flag-5'>优先级</b>反转”下的任务调度究竟是什么样的?| 技术集结

    请问STM32的内部Flash操作是不是优先级最高?

    STM32的内部Flash操作是不是优先级最高?目前在内部Flash的单独一页存储了数据,发现在进行页擦除的时候正常工作的定时器中断无法进入了
    发表于 08-13 07:03

    TLe9893怎么调整外设的中断优先级

    你好林工,我该怎么调整外设的中断优先级?是否可以通过工具调整?默认设置下,是不是Brdv的在中断优先级高于T20和can
    发表于 08-01 06:20

    请问C0系列单片机中断优先级只有4吗?

    C0系列单片机中断优先级只有4?C071在配置的时候只能配置0-3
    发表于 07-23 08:00

    CAN总线传播延迟过大导致通信异常现象解析

    本文导读在CAN总线系统中,传播延迟过大是引发通信故障的关键诱因之一,可能会导致仲裁异常,使优先级高的信号无法正常优先传输,破坏通信秩序;可能会造成应答错误,使发送节点难以在应答隙内接
    的头像 发表于 07-15 11:47 1238次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>传播延迟过大导致通信异常现象解析

    CAN总线采样点不一致的危害

    总线的仲裁阶段,节点通过比较发送和接收的决定消息优先级。如果采样点不一致,节点可能对仲裁做出错误判断,导致消息冲突或
    发表于 06-07 08:55