您现在的位置是 : 首页  >  贸易动态  > 正文

CAN和CANFD协议简介(上)

日期:2023-07-31 12:19:01 来源:面包芯语

CAN(Controller Area Network)和CANFD(Controller Area Network Flexible Data-rate)是一种常用于汽车和工业领域的通信协议。


(相关资料图)

CAN协议最初是由德国的博世公司(Bosch)在20世纪80年代开发的,旨在解决汽车电子设备之间的通信需求。它是一种高效可靠的串行通信协议,可支持在短距离上的高速数据传输。CAN协议以事件触发的方式进行通信,允许多个设备同时参与通信,并通过优先级机制确保数据传输的实时性和可靠性。Classic CAN,传统CAN,有时也称为经典CAN或普通CAN。

随着汽车电子系统的发展和数据通信需求的增加,CANFD协议应运而生。CANFD在保持CAN协议基本特性的同时,增加了一些新的特性,主要是在数据传输速率和数据长度上的增强。相对于传统的CAN协议,CANFD支持更高的数据传输速率(最高可达到8Mbps)和更大的数据长度(最多可传输64字节的数据)。这使得CANFD能够满足对数据带宽要求更高的应用场景,如高级驾驶辅助系统(ADAS)和自动驾驶领域。

平滑过渡:在一些特定的情况下CAN FD能用在仅使用传统CAN的ECU上,这样就可以逐步引入CAN FD节点,从而为OEM简化程序和降低成本。

与传统CAN相比,CAN FD可以将网络带宽提高3到8倍,效率可从50%提升到90%,从而为数据的增长提供了一种简单的解决方案。

与I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和CAN_Low两条信号线, 共同构成一组差分信号线,以差分信号的形式进行通讯。

CAN物理层的形式主要有两种:闭环总线网络和开环总线网络。

如下所示的图中的CAN通讯网络是一种遵循ISO11898标准的高速、 短距离“闭环网络”,它的总线最大长度为40m,通信速度最高为1Mbps,总线的两端各要求有一个“120欧”的电阻。

如下所示的图中的是遵循ISO11519-2标准的低速、远距离“开环网络”,它的最大传输距离为1km, 最高通讯速率为125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个“2.2千欧”的电阻。

下图描述了ISO11898和11519-2物理层的主要不同点。

用户需根据系统需要设定通信速度及总线长度。

差分信号又称差模信号,与传统使用单根信号线电压表示逻辑的方式有区别,使用差分信号传输时,需要两根信号线,这两个信号线的振幅相等, 相位相反,通过两根信号线的电压差值来表示逻辑0和逻辑1。

CAN协议中对它使用的CAN_High及CAN_Low表示的差分信号做了规定, CAN协议标准表示的信号逻辑参见下表。

以高速CAN协议为例,当表示逻辑1时(隐性电平),CAN_High和CAN_Low线上的电压均为2.5v, 即它们的电压差VH-VL=0V;而表示逻辑0时(显性电平), CAN_High的电平为3.5V,CAN_Low线的电平为1.5V, 即它们的电压差为VH-VL=2V。例如,当CAN收发器从CAN_Tx线接收到来自CAN控制器的低电平信号时(逻辑0), 它会使CAN_High输出3.5V,同时CAN_Low输出1.5V,从而输出显性电平表示逻辑0。

在CAN总线中,必须使它处于隐性电平(逻辑1)或显性电平(逻辑0)中的其中一个状态。假如有两个CAN通讯节点,在同一时间,一个输出隐性电平, 另一个输出显性电平,类似I2C总线的“线与”特性将使它处于显性电平状态,显性电平的名字就是这样来的,即可以认为显性具有优先的意味。

由于CAN总线协议的物理层只有1对差分线,在一个时刻只能表示一个信号,所以对通讯节点来说,CAN通讯是半双工的,收发数据需要分时进行。在CAN的通讯网络中,因为共用总线,在整个网络中同一时刻只能有一个通讯节点发送信号,其余的节点在该时刻都只能接收。

标签:

推荐