不懂CAN协议?如何避免总线仲裁失败?

发布时间:2023-02-02  

总线是可以挂载多个控制单元,每个单元均可以发送和接收数据,为了避免发生冲突,协议规定只有等信道空闲时刻优先级高的单元才能占有总线并发送数据,那么单元是如何判断优先级的呢?

本文引用地址:


仲裁的实现方式


1. CANID在CAN报文中的位置


每一个CAN报文的CANID有唯一标识的11bit/29bit构成,以标准CAN帧为例,11bitCANID在CAN帧中的位置如图1所示。SOF之后是Identifier,各个节点要外发的CANID通过CANID仲裁,优先级高的报文被优先发送。同时,对应节点优先获得CAN总线的使用权,而仲裁失败的节点则停止数据的发送,转而进行数据的接收,只能等待下一个SOF时刻再去仲裁。


1675243312447641.png

图1 标准CAN数据帧格式


2. CAN总线仲裁机制的实现


那么CANID的优先等级是如何判断的呢?其实CAN总线ID仲裁方式相当于一个“线与”的结构,显性(逻辑0)与隐形(逻辑1)相与变为显性即0&1=0,硬件电路简图可参考图2。标准CAN帧格式的总线仲裁方式如图3所示。因为高位在前,低位在后,故CAN标识符组成的数值越小优先级越高。


7.png

图2 线与电路简图


1675243291720998.png

图3 总线仲裁方式图


CANID冲突发生的条件及现象


1. CANID冲突的条件


本文以我司协议转换模块CSM300为例进行介绍,CSM300是集成微处理器、CAN-bus控制器、CAN-bus收发器、DC-DC转换、高速数字隔离于一体的嵌入式CAN与UART/SPI双向转换模块。如果我们将两个ID均为00 00 00 00的CSM300模块组成一个CAN总线网络系统,当这两个ID相同的模块同时往CAN总线端发送数据时将会造成仲裁失败。


2. CANID冲突的现象


以CSM300为例进行说明,电路硬件简易连接图如图4所示,用两个上位机通过两路串口同时给两个相同配置的模块发送一组数据,此时两模块会同时将RXD脚接收到的数据转换至CAN总线端。因为两个CAN节点的ID一样,CAN总线仲裁失败,两发送节点收不到反馈信号,将一直发送最后一帧数据,此时CAN总线端的波形如图5所示。


9.png

图4 CSM300电路连接图


1675243270872988.png

图5 CAN总线波形图


CSM系列如何避免CANID冲突


为满足不同环境的应用,CSM300系列和CSM100系列均有透明转换、透明带标识转换、自定义协议转换三种转换方式供用户选配,如图6所示。


11.png

图6 转换方式选配图


透明转换方式下用户可通过MCU或上位机将模块配置为不同的ID避免发生仲裁失败的情况,透明转换方式下,模块无需对数据进行额外处理,最大限度地提高了数据转换速度,也提高了缓冲区的利用率。不过此模式下每个模块的CANID在配置完成后不能更改除非用户再次配置,此外该模式下可能将两组时间间隔接近的UART帧识别为一组数据进行转换,造成数据转换错误。


透明带标识转换方式下,用户可以在配置时固定CANID在串行帧的位置和长度如图7所示,通过改变串行帧数据来控制所发数据的CAN帧ID,方便用户在同一节点发送不同ID的CAN数据。但是此模式下需要确保串行帧的时间间隔足够大,避免模块不能正确识别每组串行帧的结束造成数据转换错误。透明带标识模式下串行帧最小间隔具体要求可参考CSM100和CSM300的用户手册。


12.png

图7 透明带标识转换配置图


有效的自定义协议转换串行帧包括了帧头、帧尾、帧ID和帧长度等,用户可通过改变串行帧数据来控制CAN帧ID,方便用户在同一节点发送不同ID的CAN数据。同时用户将在配置时固定帧头和帧尾如图8所示,此模式下用户通过串行帧数据告知模块串行帧的帧头、帧尾和数据长度,故此转换方式下可有效避免因串行帧间隔时间短造成的数据转换错误的情况。


13.png

图8 自定义转换配置图

文章来源于:电子产品世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    通用总线仿真测试系统概述及功能特点;1553B/ARINC429/RS422通用总线仿真/测试系统是一个针对1553B、ARINC429、RS422总线系统的、基于以太网的、分布式综合仿真/测试......
    无处不在。要确保正常的车辆性能,保证电子控制单元(ECU)、传感器和执行器之间的通信尤为重要。除了验证总线协议的数字逻辑之外,还需要对波形质量、噪声以及传感器/执行......
    CAN(FD)总线协议转换原理及其在汽车行业的应用; 2023年9月14日,CiA中国技术日直播活动在线上举行,该活动致力于开展与CAN总线相关领域的技术工作,演讲者都是CAN领域的专家。虹科......
    基于ADAS自动泊车功能的DDS协议的系统设计;  目前,国内汽车驾驶辅助系统控制器之间通信。大多采用控制器局域网络(CAN)总线协议或带灵活可变数据波特率的控制器局域网络(CAN-FD)总线协议......
    。 1 STM32 I2C基础内容 I²C总线协议有多个版本,有的STM32遵循的是第2版本,有的是第3版本。所以,不同型号的 STM32 中I²C 可能存在一些差异,但基本功能相似。 1. 主从......
    汽车总线协议转换解决方案;汽车总线: 汽车总线是一种用于在车辆电子系统中传输数据和控制信息的通信系统。它允许不同的电子控制单元(ECU)在车辆中相互通信,协调各个系统的操作,以实......
    STM32的IIC通信原理详解;本文将介绍STM32 IIC的通信原理和协议 ①IIC总线简介 ②IIC总线协议与读写操作 ③STM32 IIC控制器介绍 ①IIC总线简介 IIC是inter......
    型号甚至多达6个。 STM32 I2C基础内容 I²C总线协议有多个版本,有的STM32遵循的是第2版本,有的是第3版本。所以,不同型号的 STM32 中I²C 可能存在一些差异,但基本功能相似。 1......
    AT89S52单片机并行端口模拟I2C总线协议读写AT24C04的设计;I2C总线是2条线总线。数据线SDA,时钟线SCL.结构简单。 AT24C04是具有I2C总线接口的EEPROM.大小为512......
    基于C8051F120的支持多协议总线集成器的设计方案;由于工业现场总线在工业控制、智能仪器仪表、数据采集等方面得到了广泛的应用,因此对于总线集成的需求也应运而生。不同种类的现场总线协议......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>