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
    +关注

    关注

    58

    文章

    3010

    浏览量

    471467
  • CANopen
    +关注

    关注

    8

    文章

    456

    浏览量

    47584
  • 换位填充
    +关注

    关注

    0

    文章

    2

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    抢占优先级和子优先级

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

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

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

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

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

    FreeRTOS任务调度及优先级问题

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

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

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

    什么是RTOS中的优先级反转

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

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

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

    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 560次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>传播延迟过大导致通信异常现象解析

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

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

    CyU3PDebugPrint的最高优先级和最低优先级是什么?

    [i]CyU3PDebugPrint的最高优先级和最低优先级是什么?
    发表于 05-13 08:22

    【手把手教你玩转CAN总线】从原理到STM32实战

    hcan1.Instance->CRCSA = 0x0000;// 起始地址 3.3 仲裁机制详解 29扩展帧仲裁过程: 优先级 → 源地址 → 参数组号(PGN) 优先级
    发表于 04-10 11:08

    配电柜—断电危机?配电柜故障排查优先级指南

    在排查配电柜故障过程中,合理安排排查优先级至关重要。下面聊一下如何科学合理安排配电柜故障排查优先级顺序。
    的头像 发表于 03-06 18:55 810次阅读
    配电柜—断电危机?配电柜故障排查<b class='flag-5'>优先级</b>指南

    CAN总线的扩展功能及其应用

    的通信协议,它允许多个节点共享同一通信介质(如双绞线)。CAN总线的主要特点包括: 多主控制 :任何节点都可以在任何时间发送消息,无需中央控制。 差分信号传输 :提高信号的抗干扰能力。 非破坏性总线仲裁 :通过
    的头像 发表于 12-23 09:04 2250次阅读