当前位置:首页 > 通信技术 > 通信技术
[导读]当两节点同时发送ID相同数据不同的报文时,将发生数据场填充错误;当两节点同时发送ID相同数据也相同的报文时,若有其他节点应答则不发生错误,若无其他节点应答则发生应答错误。因此,我们在设计CAN总线时应避免ID段相同的情况出现。

CAN-bus网络中原则上不允许两个节点具有相同的ID段,但如果两个节点ID段相同会怎样呢?

实验前,我们首先要对CAN报文的结构组成、仲裁原理有清晰的认识。

一、CAN报文结构

目前使用最广泛的CAN-bus网络标准是V2.0版本,该标准又分为A、B两部分,它们主要的区别在仲裁区域的ID码长度。其中CAN2.0A(标准帧)为11位ID,CAN2.0B(扩展帧)为29位ID。下表1为CAN报文结构:

表1 CAN报文结构

二、仲裁原理

CAN总线的仲裁是基于“线与原理”,如图1所示。当个收发器同时发出不同电平信号时,隐性电平总是被显性电平覆盖。CAN控制器在发送报文的同时会监听总线状态与自己发送的电平是否一致,如果不一致发生在ID段则会发生仲裁,如果发生在其他区域则会触发相应错误。

图1 线“与”示意图

下面进入重点,如果两个节点ID段相同会怎样?我们用两个CAN卡 和一台CANScope开始实验,CAN卡模拟CAN标准节点收发报文,CANScope做通信监控,如图2所示。(注:CAN卡为USB转CAN工具,CANScope为CAN总线分析仪,产品详见ZLG致远电子官网)

图2 实验平台搭建

三、实验一“ID段相同但数据不同”

使用一个CAN卡发送ID为000H数据为01020304050607H的CAN帧,使用另一个CAN卡发送ID为000H数据为02020304050607H的CAN帧。CANScope监听的数据如图3所示,可以观察到有大量的数据场填充错误。

图3 数据场填充错误

为什么会这样呢?我们首先分别获取两个CAN卡发送报文对应的波形,如图4。因为两针报文同为标准数据帧,且每帧包含8个字节数据,所以两帧报文对应的波形在ID段、RTR、IDE、R0以及DLC段完全一致。因此,仲裁作用失效,两节点都认为自己获得了优先权,继续发送数据。

图4 报文对应波形对比

现在我们聚焦数据段,第一个字节数据相同,均为为00H;第二个字节数据不同,分别为01H、02H。图5箭头标示处可以看到两者对应位的逻辑分别为0和1。前面我们提到CAN节点在发送报文的同时会检测总线电平是否与自己发送的电平一致,若不一致发生在非仲裁区域则触发相应错误,因此若这两帧报文同时发送到总线上必将发生位发送错误。因为位发送错误会引起节点发送违反填充规则的6个显性位(主动错误破坏该帧数据),故出现数据场填充错误,如图3。

图5 数据场冲突

四、实验二“ID相同数据也相同”

同时使用两个CAN卡发送ID为000H数据为01020304050607H的CAN帧,CANScope做通信监控。首先,我们不勾选“总线应答”选项,使CANScope工作在仅监听模式。实验结果如图6所示,出现的是应答定界符格式错误。

图6 应答界定符格式错误

为什么会发生这种错误呢?发送报文的节点会在ACK段发送两个隐性位,若在第一个位期间接收到显性电平则认为该帧被正确接收。由于仲裁段相同时两节点都认为自己取得仲裁权,在ACK段等待应答,但该网络中仅存在两个节点,因此在ACK段不能收到应答,进而发生应答定界符错误。简单说来这种情形就类似于总线中只有一个节点将不能实现数据发送。图7是在ACK段有无应答时的波形对比。

图7 ACK应答

我们勾选上总线应答,再次开始实验(此时总线中相当于有3个节点)。这时如图8所示,总线数据收发正常。

图8 启动总线应答

总结:当两节点同时发送ID相同数据不同的报文时,将发生数据场填充错误;当两节点同时发送ID相同数据也相同的报文时,若有其他节点应答则不发生错误,若无其他节点应答则发生应答错误。因此,我们在设计CAN总线时应避免ID段相同的情况出现。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。

关键字: can总线 通信 电子控制

CAN总线和485总线都是常见的串行通信协议,它们在工业自动化、机器人控制等领域被广泛应用。本文将从物理层、数据传输方式、网络拓扑结构、通信速率和应用范围等方面比较CAN总线和485总线的区别。

关键字: can总线 485总线

CAN总线是一种串行通信协议,能有效的支持具有很高安全等级的分布实时控制 应用范围十分广泛,从高速网络到低价位的多路接线都可以使用CAN,主要运用于汽车电子航天等行业,使用CAN连接发动机的控制单元等汽车部件,CAN总...

关键字: can总线 can总线原理

CAN总线在设计之初,就规定了物理层CAN_H和CAN_L采用双绞线差分传输,这样做的目的是提高抗干扰能力,因为当总线上CAN_H与CAN_L遇到干扰可以“同上同下”变化,从而差分值保持不变。

关键字: can总线

CAN是Controller Area Network 的缩写,目前CAN总线被广泛的应用在汽车电子领域和工业的现场总线中。

关键字: can总线 电路设计

目前视频领域所采用的压缩技术大都是属于类似 MPEG系列的技术。虽然MPEG-4或H.264/AVC已经获得较高的压缩比,但想在2.5G甚至2G移动通信网路上采用这种压缩方式实现视频传送还是比较困难,

关键字: can总线 sae

随着电子控制系统单元(ecu)在汽车上广泛应用,汽车电子化程度越来越高。电控系统的增加虽然提高了汽车的动力性、经济性和舒适性,但随之增加的复杂电路,必然导致车身布线庞大而且复杂,安装空间短缺。同时,为

关键字: can总线 电子控制

引言   随着信息科学的快速发展, 人们对数据采集后的信号形式的要求越来越多, 单一的信号形式已经没有办法满足实际工程的需要。网络信号、USB总线信号、RS232总线信号以及CAN总线信

关键字: can总线 co2128

  本文主要论述了基于CAN 总线的电动汽车电源管理中的通信系统设计与实现技术。 电动汽车的电源管理方案,涉及到了发动机、电动机、蓄电池的工作状况、车辆行驶速度、行驶阻力以及驾驶员的操作等诸多参

关键字: 电动汽车 can总线 电源管理 通信系统

  引言   现代汽车电子技术的发展使汽车的电子化程度越来越高。电控系统虽然提高了汽车的动力性和经济性,但随之增加的复杂电路必然导致车身布线庞大而复杂。因此提高控制单元间通信的可靠性、实

关键字: can总线 eps通信
关闭
关闭