在现代工业控制和汽车电子等领域,CAN 总线发挥着至关重要的作用。CAN 是控制器局域网络(Controller Area Network, CAN)的简称,它是一种能够实现分布式实时控制的串行通信网络。下面我们将从多个方面对 CAN 总线进行详细解析。
CAN 总线的优点
CAN 总线具有诸多显著优点,使其在众多领域得到广泛应用。
传输性能优越:其传输速度可达 1Mbps,通信距离远能达到 10km,能够满足不同场景下的通信需求。
无损位仲裁机制:这种机制确保了在多个节点同时发送数据时,能够高效地解决总线访问冲突,保证数据传输的可靠性。
多主结构:总线上的任何节点都可以主动发送数据,提高了系统的灵活性和实时性。
低成本:ECUs(电子控制单元)通过单个 CAN 接口进行通信,大大降低了布线成本。
高集成:CAN 总线系统允许在所有 ECUs 上进行集中错误诊断和配置,方便系统的管理和维护。
可靠性强:该系统对子系统的故障和电磁干扰具有很强的鲁棒性,是汽车控制系统等对可靠性要求较高领域的理想选择。
高效率:可以通过 ID 对消息进行优先级排序,确保优先级的 ID 不被中断,保证重要数据的及时传输。
灵活性高:每个 ECU 包含一个用于 CAN 总线收发芯片,用户可以随意添加 CAN 总线节点,方便系统的扩展。
近些年来,随着技术的发展,CAN 控制器的价格越来越低,进一步推动了 CAN 总线的广泛应用。
CAN 总线网络
CAN 总线网络主要由 CAN_H 和 CAN_L 两条线组成,各个节点通过这两条线实现信号的串行差分传输。为了避免信号的反射和干扰,需要在 CAN_H 和 CAN_L 之间接上 120 欧姆的终端电阻。这是因为电缆的特性阻抗为 120Ω,接上 120Ω 的终端电阻可以模拟无限远的传输线,保证信号的稳定传输。

CAN 收发器
CAN 收发器的作用是负责逻辑电平和信号电平之间的转换。具体来说,从 CAN 控制芯片输出逻辑电平到 CAN 收发器,然后经过 CAN 收发器内部转换将逻辑电平转换为差分信号输出到 CAN 总线上。CAN 总线上的节点都可以根据自身需求决定是否接收总线上的数据。
CAN 信号表示
CAN 总线采用不归零码位填充技术,总线上的信号有两种不同的信号状态,分别是显性的(Dominant)逻辑 0 和隐形的(recessive)逻辑 1。信号每传输完后不需要返回到逻辑 0(显性)的电平。
CAN 的数据总线有两条,一条是黄色的 CAN_High,一条是绿色的 CAN_Low。当没有数据发送时,两条线的电平一样都为 2.5V,称为静电平,也就是隐性电平。当有信号发送时,CAN_High 的电平升高 1V,即 3.5V,CAN_Low 的电平降低 1V,即 1.5V。按照定义:
当 CAN_H - CAN_L <0.5V 时为隐性的,逻辑信号表现为 “逻辑 1” - 高电平。
当 CAN_H - CAN_L > 0.9V 时为显性的,逻辑信号表现为 “逻辑 0” - 低电平。
CAN 信号传输
发送过程:CAN 控制器将 CPU 传来的信号转换为逻辑电平(即逻辑 0 - 显性电平或者逻辑 1 - 隐性电平)。CAN 发射器接收逻辑电平之后,再将其转换为差分电平输出到 CAN 总线上。
接收过程:CAN 接收器将 CAN_H 和 CAN_L 线上传来的差分电平转换为逻辑电平输出到 CAN 控制器,CAN 控制器再把该逻辑电平转化为相应的信号发送到 CPU 上。
CAN 数据传输
CAN 总线传输的是 CAN 帧,CAN 的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。数据帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B)。
帧起始:由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始。
帧结束:由 7 个隐形位(高电平)组成。
仲裁段:只要总线空闲,总线上任何节点都可以发送报文。如果有两个或两个以上的节点开始传送报文,就会存在总线访问冲突的可能。但是 CAN 使用了标识符的逐位仲裁方法可以解决这个问题。CAN 总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。例如,假设节点 A、B 和 C 都发送相同格式相同类型的帧,如标准格式数据帧,它们竞争总线的过程是:帧 ID 越小,优先级越高。由于数据帧的 RTR 位为显性电平,远程帧为隐性电平,所以帧格式和帧 ID 相同的情况下,数据帧优先于远程帧;由于标准帧的 IDE 位为显性电平,扩展帧的 IDE 位为隐形电平,对于前 11 位 ID 相同的标准帧和扩展帧,标准帧优先级比扩展帧高。
数据段:一个数据帧传输的数据量为 0 ~ 8 个字节,这种短帧结构使得 CAN - bus 实时性很高,非常适合汽车和工控应用场合。数据量小,发送和接收时间短,实时性高,被干扰的概率小,抗干扰能力强。