电子通信协议之CAN总线协议篇
内容提要
CAN总线是一种分布式实时控制的串行通信网络,广泛应用于汽车、船舶、机器人和工业控制系统等领域。CAN总线具有高传输速度和远距离通信等优点。CAN总线标准规定了物理层和数据链路层,用户需要自定义应用层。CAN收发器负责逻辑电平和物理信号之间的转换。CAN总线有两个标准,分别是ISO11898和ISO11519-2。CAN的物理层有三种接口器件。CAN总线的传输速度与距离成反比。增加终端电阻可以增强通信可靠性。CAN总线传输的是CAN帧,包括数据帧、远程帧、错误帧、过载帧和帧间隔。CAN协议支持标准格式和扩展格式的报文。
延伸解读
CAN标准只定义底层,应用层需自行设计
文章指出CAN总线标准仅规定了物理层和数据链路层,用户需要自定义应用层。这意味着在实际项目中,开发者不能指望CAN协议本身提供完整的通信规范,而必须根据具体应用设计报文ID分配、数据含义和通信流程。这种灵活性是CAN广泛应用的原因之一,但也要求开发者对系统需求有清晰理解,否则不同节点间可能因应用层定义不一致而无法互通。
高速与低速CAN的物理层差异
CAN有两个主要标准:ISO11898(高速CAN)和ISO11519-2(低速CAN),两者差分电平特性不同。文章提到高速CAN高低电平幅度低,对应传输速度快。这提示读者在选择收发器或设计电路时,必须明确所遵循的标准,因为物理层电平不兼容可能导致通信失败。同时,终端电阻的接法在低速和高速CAN中也有区别,需参照具体标准实施。
传输速度与距离成反比,终端电阻关键
文章强调CAN的传输速度与距离成反比,最高速度1Mbps时距离有限,最远10km时速度较低。这要求系统设计时在速率和距离之间权衡。此外,增加终端电阻(通常120Ω)可增强通信可靠性,消除信号反射干扰。电阻值的选择基于电缆特性阻抗,目的是模拟无限远传输线。忽略终端电阻可能导致信号完整性问题,尤其在长距离或高速场景下。
五种帧类型各司其职
CAN通信帧分为数据帧、远程帧、错误帧、过载帧和帧间隔。数据帧用于节点间收发数据,是最常用的类型;远程帧请求数据;错误帧通知错误;过载帧告知接收能力;帧间隔用于隔离帧。理解这些帧的功能有助于调试和诊断总线问题。例如,错误帧频繁出现可能指示物理层故障,而远程帧的使用则取决于应用层设计。
Q&A
CAN总线主要应用在哪些领域?
CAN总线广泛应用于汽车、船舶、机器人、工业控制和自动控制系统等领域。
CAN总线标准规定了哪些层次?用户需要自定义哪一层?
CAN总线标准只规定了物理层和数据链路层,用户需要自定义应用层。
CAN收发器的作用是什么?
CAN收发器负责逻辑电平和物理信号(差分电平)之间的转换。
CAN总线有哪两个主要标准?它们有什么区别?
CAN总线有两个主要标准:ISO11898和ISO11519-2。两者的差分电平特性不同,ISO11898是高速CAN,ISO11519-2是低速CAN。
为什么CAN总线要增加终端电阻?
增加终端电阻可以增强CAN通讯的可靠性,消除CAN总线终端信号反射干扰。
CAN总线通信帧分为哪几种类型?
CAN总线通信帧分为五种:数据帧、远程帧、错误帧、过载帧和帧间隔。
CAN协议支持哪两种报文格式?它们的主要区别是什么?
CAN协议支持标准格式和扩展格式两种报文格式。标准格式的标识符(ID)为11位,扩展格式的标识符为29位。