CAN总线中的数据帧与遥控帧优先级解析

需积分: 49 26 下载量 112 浏览量 更新于2024-08-08 收藏 1.88MB PDF 举报
"CAN入门书,瑞萨科技,2006年2月20日发行,Rev.1.00" 在CAN (Controller Area Network) 总线系统中,数据帧和遥控帧的优先级处理是通信协议的重要组成部分。当具有相同ID的数据帧和遥控帧同时在总线上竞争发送权时,它们会通过仲裁过程来决定哪一个可以继续传输。仲裁是基于CAN协议的分布式特性,允许节点在传输过程中相互比较它们的数据或遥控帧的标识符(ID)。 数据帧包含实际的数据,而遥控帧则用于请求其他节点发送特定的数据帧。在仲裁过程中,每个节点都将其正在发送的ID与总线上的信号进行比较。如果一个节点发送的位与总线上的位不同(即,它们形成一个隐性位和一个显性位的对比),那么这个节点就会立即停止发送并承认失败,因为显性位总是优先级更高。在数据帧和遥控帧的仲裁段中,遥控帧的最后一个位是RTR(Remote Transmission Request)位,始终为显性位。因此,当数据帧和遥控帧的ID相同但RTR位不同的情况下,数据帧会因最后一个位为隐性位而失去优先权,遥控帧则因RTR位显性而获胜,得以继续发送。 图29展示了数据帧和遥控帧的仲裁过程。在这个例子中,我们可以看到两个节点(单元1和单元2)试图同时发送帧。单元1发送的是数据帧,而单元2发送的是遥控帧。由于遥控帧的RTR位为显性,因此在仲裁段的最后,数据帧的节点会检测到总线电平与它发送的信号不符,从而停止发送,仲裁胜利属于遥控帧的节点。 CAN协议的其他关键点包括: - 错误处理:CAN协议定义了多种错误状态,如位错误、CRC错误等,并设有错误计数值来监控网络健康状况。 - 标准和扩展ID:CAN协议支持两种ID格式,标准ID(11位)和扩展ID(29位),以满足不同优先级和复杂性的需求。 - 优先级决定:在CAN中,ID的数值越小,优先级越高。这使得重要的消息即使在网络繁忙时也能快速传输。 - 位填充:为了防止连续的相同位出现,CAN协议规定了位填充规则,即每五个连续的相同位后自动插入一个相反的位。 - 错误帧和过载帧:错误帧用于报告网络上的问题,过载帧则用于告知其他节点暂时停止发送,以便处理当前的网络拥堵。 CAN协议的标准化主要由ISO 11898和ISO 11519系列定义,这些标准涵盖了物理层、数据链路层以及应用层的相关规范,确保了不同制造商的设备能够在CAN网络中无缝协作。 CAN协议因其高效、可靠的通信特性,尤其是在汽车电子系统中的广泛应用,已经成为工业自动化和车载通信的首选标准。瑞萨科技的这份CAN入门书详细介绍了CAN的基础知识和协议细节,为初学者提供了全面的理解和指导。