CAN总线基本原理
扫描二维码
随时随地手机看文章
控制器局域网 (CAN) 总线由博世于 20 世纪 80 年代开发,是工业和汽车应用中常用的通信协议。它的开发是为了改善电子控制单元 (ECU) 之间的数据交换,从而提高车辆的系统效率。1993 年,CAN 被纳入工业和汽车应用中作为国际标准通信系统 ISO 11898。
它是一种基于消息的协议,最初设计用于汽车内的多路电线以节省铜缆,但它也用于许多其他环境。
它是一种通信方法,允许车辆系统和设备相互通信,从汽车的立体声音响到 ABS 系统。CAN 总线是对等 ECU 和其他设备之间交换指令的媒介。
CAN总线基本原理
控制器局域网 (CAN) 总线按照分散式网络原理运行,网络上的所有节点(或设备)传输数据的能力都是平等的。这与中央主设备控制通信的传统网络模型不同。
CAN总线数据传输
在CAN网络中,任何节点都可以在总线空闲时传输数据。该数据以帧的形式发送,其中包含正在传输的信息以及用于错误检查和识别的附加数据。
CAN 总线按照“广播”原理运行,这意味着所有节点都会接收所有传输。然后每个节点根据 CAN 帧中的标识符决定是忽略数据还是接受数据。该标识符不是源地址或目标地址,而是指示消息内容的标签。这意味着多个节点可以接收和处理相同的消息,这在多个系统可能需要相同数据的汽车应用中特别有用。这也意味着特定节点无法根据其地址向特定节点发送消息。
CAN总线系统中的数据传输基于差分两线接口(取代复杂的线束和连接器),从而增强了车辆电噪声环境中的抗噪声能力。CAN-高 (CANH) 和 CAN-低 (CANL) 两条线携带互补信号。当节点传输显性 (0) 信号时,CAN-High 的电压电平高于 CAN-Low。相反,当传输隐性 (1) 信号时,CAN-High 和 CAN-Low 都处于相同的电压电平。
数据以帧的形式传输,帧由多个字段组成。其中最重要的是标识符字段和数据字段。标识符字段包含消息的标识符,接收节点使用该标识符来确定是否接受该消息。数据字段包含正在传输的实际数据,在标准 CAN 中最多可达 8 个字节,在 CAN FD(灵活数据速率)中最多可达 64 个字节。
CAN 总线中的数据传输受带冲突检测的载波侦听多路访问 (CSMA/CD)原理的控制。这意味着每个节点都会监视总线(载波侦听)并在总线空闲时进行传输(多路访问)。如果两个节点同时传输(冲突),则标识符值较低的节点继续传输,而另一个节点停止传输。这是因为显性位会覆盖总线上的隐性位,并且较低的标识符(较低的数值)在 CAN 帧的开头具有更多的显性位。这种机制确保首先传输最高优先级的消息(具有较低标识符的消息)。
控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。
控制器局域网CAN( Controller Area Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。由于其高性能、高可靠性以及独特的设计而越来越受到人们的重视,被广泛应用于诸多领域。而且能够检测出产生的任何错误。当信号传输距离达到10km时,CAN仍可提供高达50kbit/s的数据传输速率。
由于CAN总线具有很高的实时性能和应用范围,从位速率最高可达1Mbps的高速网络到低成本多线路的50Kbps网络都可以任意搭配。因此,CAN己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用。随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version2.0)制定并发布。该技术规范共包括A和B两个部分。
其中2.0A给出了CAN报文标准格式,而2.0B给出了标准的和扩展的两种格式。美国的汽车工程学会SAE在2000年提出了J1939协议,此后该协议成为了货车和客车中控制器局域网的通用标准。CAN总线技术也在不断发展。传统的CAN是基于事件触发的,信息传输时间的不确定性和优先级反转是它固有的缺陷。当总线上传输消息密度较小时,这些缺陷对系统的实时性影响较小;但随着在总线上传输消息密度的增加,系统实时性能会急剧下降。为了满足汽车控制对实时性和传输消息密度不断增长的需要,改善CAN总线的实时性能非常必要。
于是,传统CAN与时间触发机制相结合产生了TTCAN(Time-Triggered CAN),ISO11898-4己包含了TTCAN。 TTCAN总线和传统CAN总线系统的区别是:总线上不同的消息定义了不同的时间槽(Timer Slot)。
简单来说CAN总线就如两根黄线,通信的原理就好比开一个电话会议,大家都同时拨进来,然后有各种不同的状态,比如:一个人说话,其他人听;或者多个人同时想发言,但也会让其中一个人先说,其他人听;还有一个人要求另一个人来说;还有些掉线了,卡顿了等等。
为了确保每次电话会议针对上述情况正确有效地进行,我们需要一些每个人都应该遵守的规则或协议。CAN总线通信与这种电话会议形式既有相似之处,也有不同之处。那究竟什么是CAN总线通信?
CAN总线架构简介
CAN总线是一种用于不同控制单元之间数据传输的导线。CAN总线协议是ISO国际标准化的串行通信协议,由两个系列组成:ISO-11898和ISO-11519。其定义有:
ISO-11898 定义了通信速率为 125 Kbps ~1Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度≤ 40米。
ISO11519 定义了通信速率为 10~125 Kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米。
CAN的应用
CAN总线会有终端电阻,一般来说都是120欧姆,实际上在设计的时候,也是两个60欧姆的电阻串起来的,而总线上一般有两个120欧姆的节点。终端电阻的作用有三个:
①提高干扰防护能力,快速消除高频低能量信号。
②确保总线快速进入隐藏状态,这样寄生电容器的能量可以更快地耗散。
③通过将它们放置在总线两端以减少反射能量来提高信号质量。
电信号的传输是通过区分高电压和低电压来进行的,就像CAN通信一样。CAN总线的两条信号线是CAN高(CAN_H)和CAN低(CAN_L)。关于CAN的逻辑0和逻辑1以及CAN总线的显式和隐式方面,编制了以下图表,以使每个人都能清楚地理解。
注1:在实际开发中,两条线路的电压都以默认值波动,这也是使用差动传输减少误差和噪声干扰的优点;
注2:CAN总线采用“线路和”规则进行总线套利,即如果同时发送多个CAN信号,有些发送1,有些发送0,只要有0,则当前总线为0(1&0=0)。因此,总线上的显式平面由逻辑“0”表示,而隐式平面则由逻辑“1”表示;
虽然差分信号有较好的抗干扰能力,但是长距离信号传输时,我们通常会采用双绞线进行数据传输,以此来从物理上减弱噪声对信号传输过程中的耦合。