技术小课堂 | CAN总线应用常见问题(1)

描述

 

 

CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,由德国的BOSCH公司开发,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。 
 

 

CAN总线通过差模信号传输使得总线具有良好的抗干扰性能。由于总线具有实时性强、抗干扰能力强等特点,在轨道交通、汽车电子等行业得到广泛的应用。伴随着技术的升级和CAN节点的增加,对于经典CAN最高1Mbps的波特率已经不能满足应用需求。因此CAN FD协议应运而生,并在2016年正式写入ISO 11898,将最高波特率提高到5Mbps。但是随着新一代汽车智能化的快速发展,对CAN通信的速率的提升有了进一步的要求,CiA(CAN in Automation)协会牵头制定了CiA601-4的标准,定义了CAN FD SIC(Signal Improvement Capability)的要求,将通信速率提升到8Mbps,并在2024年正式写入ISO 11898-2:2024国际标准。同时下一代的标准CAN XL也被进一步明确,将CAN通信速率的上限提升到20Mbps,CAN的应用场景也将进一步拓宽。

 

作为国内接口芯片的领行者和CiA协会的会员,思瑞浦可以为用户提供全系列的CAN收发器产品,并持续大力投入紧跟行业的需求和发展方向,为用户提供高可靠性、高性能、高性价比的解决方案。

 

思瑞浦的CAN收发器产品已被广泛应用于众多的领域,我们也收集到了很多来自客户实际应用中比较常见的一些应用相关疑问,本文将介绍常见的CAN总线应用问题,并提供相应的解决方法,以帮助您更好地理解和解决这些问题。

 

CAN芯片最低速率要求

CAN总线上的数据采用不归零编码方式,显性和隐性同时传送时,总线的结果值为显性。而对于具有TXD显性超时保护功能的CAN收发器,在TXD引脚显性时间超过允许最大的时间tDOM后,发送器将被禁能,收发器输出表现为隐性状态,根据CAN协议(ISO 11898),除了错误帧和过载帧(允许6个相等显性位),CAN帧报文中在5个连续相等位后,发送器自动插入一个与之互补的补码位;接收时,这个填充位被自动丢掉。例如,5个连续的高电平位后,CAN自动插入一个低电平位。

 

因此TXD只允许最多11个连续的显性位,最坏的情况是一个错误帧紧接在5个连续的显性位后,即tDOM的最小值要求收发器的最小位速率必须大于36.67kbps。 

 

控制器

 

控制器

ISO 11898-2显性超时要求

 

此外显性超时保护功能可有效保护总线的正常通信,由于CAN总线显性电平的“支配地位”,在CAN总线组网时,若有其中一个CAN节点出现硬件或者软件上的错误,使控制器TXD引脚持续处于低电平,则会使总线电平持续保持在显性状态,总线上所有节点均不能正常通信,导致总线瘫痪。

 

若总线节点数量众多,确定问题节点将是一项艰巨的任务,TXD显性超时后,发送器将被禁能,收发器输出表现为隐性状态,总线将不受该节点影响,从而保证总线的正常通信。收发器下一个显性输出只有在释放了TXD后才可以产生。

 

思瑞浦推出的全系CAN收发器均支持TXD显性超时保护功能,保证了总线通信的鲁棒性。

 

采样点设置错误

采样点是CAN控制器读取总线电平并解释各个比特位逻辑值的时间点。由于CAN报文的一个位时间由若干个Tq组成(CAN控制器的最小时间周期称作时间份额Tq,它是通过对芯片晶振周期进行分频而得来的),通常为8~25个,同时根据功能分为4个阶段: 同步段、传播段、相位缓冲段1和相位缓冲段2。

 

控制器

1个bit位的构成

 

采样点即为在某位时间内读取总线电平的时刻,采样时刻的设置通过配置寄存器决定,对于同一CAN整车网络,各个节点应该尽量使用相同的采样点位置,否则容易出现采样错误,进而使整个网络的通信出现故障。

 

收发报文报文ID冲突

CAN总线是广播类型的总线,所有的消息都以固定的格式发送。在总线空闲状态下,任意节点都可以向总线上发送信息。最先向总线发送信息的节点获得总线的发送权。当多个节点同时向总线发送消息时,所发送消息的优先权高的那个节点获得总线的发送权。 

 

所谓节点的优先权是根据标识符(Identifier以下称为ID)决定。这里ID不是表示发送的目的地址,而是表示访问总线的消息的优先级,ID值越小优先级越高。当两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较,仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。

 

控制器

仲裁过程示意

 

ID的大小决定了总线上节点冲突时各节点的发送顺序,整车上通信的报文数量级在几十甚至上百,如果这些报文的ID重复,总线上会出现错误帧,因此在前期软件设计阶段需根据ECU设备的重要性定义好每个设备在组网中ID,并保证其ID在组网中的唯一性。 

 

CAN总线组网问题

ISO11898-2中对高速CAN物理层进行了规定,推荐CAN网络采用总线形式的线性拓扑结构,如下图所示,线性拓扑CAN网络采用单一信道(总线)作为传输介质,所有的站点通过相应的硬件接口接到一条公共的总线上。线性拓扑阻抗匹配比较简单,只需要在主干的两端并上合适的终端电阻即可(2km内通常为120Ω)。

 

控制器

线性拓扑

 

T型接线方式会存在由于分支长度以及分支长度的积累造成阻抗的不连续,因而接头处产生信号“反射”的现象。反射的信号量由瞬态阻抗的变化量决定,变化量越大,反射就越严重。分支处产生的是负相反射,引起信号电平下冲,这种下冲可能会超过噪声容限,造成误触发。为了避免这种情况发生,希望反射波尽快回到源端,也就是支线要尽可能短。在ISO11898-2中规定分支长度在1Mbps下不得大于0.3m,则可以稳定运行,如下图。

 

控制器

组网拓扑要求

 

此外CAN总线长度与传输速率有关,在1Mbps速率下点对点通信总线最大长度为40m。实际线长与总线节点数量以及线材拓扑有关,需根据具体调试决定。

 

控制器

通信速度和最大总线长度的关系

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分