CAN总线网络下标准帧与扩展帧共存是否会引发冲突?

共 2531字,需浏览 6分钟

 ·

2024-11-30 08:00














点击上方蓝色字体,关注我们














在同一CAN总线网络上混合使用标准帧和扩展帧是技术上可行的,但实际中可能引发优先级不平衡、标识符冲突和网络负载增加等问题。














1












CAN协议规范的支持




CAN协议(如CAN 2.0B)明确支持标准帧和扩展帧的混合使用。




在帧的仲裁阶段,标准帧和扩展帧是兼容的,因为扩展帧的标识符会通过“IDE位”(标识符扩展位)进行区分:







标准帧的IDE位为0。







扩展帧的IDE位为1。







在仲裁阶段:如果两种帧同时竞争,标准帧因其标识符字段较短,在仲裁中优先级更高(假设标识符的前11位相同)。




扩展帧可能需要退避,等待总线空闲后重新发送。














2












硬件层面的兼容性




早期的CAN控制器可能只支持标准帧(如仅支持CAN 2.0A)。




大多数现代CAN控制器支持CAN 2.0B协议,能够接收和处理两种帧格式。




混合使用时,需要合理配置CAN控制器的滤波器和掩码。




如果滤波器设计不当,可能会导致标准帧或扩展帧被错误丢弃或误识别。




某些硬件滤波器资源有限,扩展帧的标识符长度较长,可能增加滤波配置复杂性。














3












应用层面的问题







(1) 优先级干扰





标准帧的优先级天然高于扩展帧,可能导致扩展帧在负载较高的网络中被频繁延迟。




如果应用中扩展帧承载的是时间敏感的数据,需特别注意。







(2) 标识符冲突





扩展帧的前11位可能与标准帧的标识符相同,容易产生混淆。例如:标准帧标识符:0x7FF。




扩展帧标识符:0x7FF1234 如果应用层处理逻辑未正确区分IDE位,可能出现数据解析错误。







(3) 带宽和负载





扩展帧的帧长度比标准帧长,传输扩展帧需要占用更多的总线时间。




在高负载网络中,扩展帧的使用可能加剧总线拥堵,影响通信实时性。







(4) 应用协议要求





高层协议(如CANopen、J1939)可能对帧格式有特定要求。例如:


CANopen通常使用标准帧。J1939则基于扩展帧。














4












设计与优化建议







(1) 通信规划





在设计阶段,尽量为标准帧和扩展帧分配不同的功能域,避免标识符冲突。




关键实时数据尽量使用标准帧,以减少仲裁延迟。







(2) 网络负载评估





定期评估网络负载,确保扩展帧的引入不会导致总线拥堵。







(3) 协议设计





如果混用不可避免,可以在应用层协议中增加帧类型区分逻辑,确保IDE位的正确解析。







(4) 硬件选择





确保使用支持混合模式的CAN控制器,选择拥有足够滤波器资源的硬件。




通过合理的通信规划、高效的滤波器配置以及负载管理,可以有效避免问题。




根据应用需求,还可以考虑采用其他高层协议(如CAN FD)进一步优化通信性能。



























点击阅读原文,更精彩~









浏览 111
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报