CAN 是 Controller Area Network 的缩写,中文是控制器局域网路,是 ISO 国际标准化的串行通信协议之一。
CAN:控制器局域网( Controller Area Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络
CAN是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。由于其高性能、高可靠性以及独特的设计而越来越受到人们的重视,被广泛应用于汽车业、航空业、工业控制、安全防护等领域。
随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version2.0)制定并发布。该技术规范共包括A和B两个部分。其中2.0A给出了CAN报文标准格式,而2.0B给出了标准的和扩展的两种格式。CAN总线协议是一种ISO 国际标准化的串行通信协议,有ISO-11898 和 ISO-11519两个系列。
其定义有:
ISO-11898 定义了通信速率为 125 Kbps ~1Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米,如图1。
ISO11519 定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米,如图2。
现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。 图 3 是车载网络的构想示意图。CAN 通信协议的开发,使多种 LAN 通过网关进行数据交换得以实现。
通常意义上指控制器,多个控制器之间进行通信,可以通过CAN线使其进行连接
典型用例:
两根线:
CAN_H线
CAN_L线
总线上的电平有显性电平和隐性电平两种。 总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。 “显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐 性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比 隐性电平更强)
****显性电平:****逻辑0:CAN_H 和 CAN_L 的电压一个3.5V一个1.5V 电位差是2V
****隐形电平:****逻辑1:CAN_H 和 CAN_L 的电压都是是2.5V 电位差是0V
CAN 协议经 ISO 标准化后有 ISO11898 标准和 ISO11519-2 标准两种。ISO11898 和 ISO11519-2 标准对于数据 链路层的定义相同,但物理层不同。
3.ISO11898和ISO11519的主要不同点
下图是描述的就是压差为2V的逻辑0,跟压差为0V的逻辑1
串行电平转换成差分电平
主要是下面两个原因
这也就是CAN通信比串口通信传输更远的原因可以达到1000米。
CAN(Controller Area Network)协议定义了几种不同类型的数据帧,用于在CAN总线上进行通信。以下是CAN协议中常见的几种数据帧及其作用:
数据帧(Data Frame):数据帧是CAN协议中最常用的帧类型。它用于在CAN总线上传输数据信息。数据帧包括数据域(Data Field),用于携带有效数据,以及标识符(Identifier),用于标识消息的发送者和接收者。
远程帧(Remote Frame):远程帧用于请求特定CAN节点发送数据。发送远程帧的节点向目标节点发送一个标识符,目标节点接收到远程帧后,会以数据帧的形式返回请求的数据。远程帧在需要获取其他节点数据时非常有用。有时候也叫遥控桢
错误帧(Error Frame):错误帧用于在CAN总线上报告错误情况。当节点检测到总线上的错误时,它可以发送错误帧来通知其他节点发生了错误。错误帧中包含有关错误类型和错误位置的信息,用于诊断和故障排除。
过载帧(Overload Frame):过载帧用于指示CAN节点附近存在过载条件。当节点无法及时处理接收到的消息时,它可以发送过载帧来通知其他节点,以便调整通信负载或采取其他措施。
错误被动帧(Error Passive Frame):错误被动帧用于指示发送节点处于错误被动状态。当节点连续发送错误帧数量达到一定阈值时,它会进入错误被动状态,此时会发送错误被动帧来通知其他节点。
帧间隔 :在CAN(Controller Area Network)通信中,帧间隔(Frame Interval)指的是两个连续CAN数据帧之间的时间间隔。帧间隔包括发送帧的间隔和接收帧的间隔
这些数据帧类型在CAN总线上的使用有助于实现可靠的通信和故障诊断。数据帧用于传输实际的数据信息,远程帧用于请求数据,错误帧用于报告错误情况,过载帧用于指示过载条件,而错误被动帧用于指示节点处于错误被动状态。通过这些数据帧,CAN协议能够提供高效、可靠的通信机制,并支持诊断和故障处理。
另外,数据帧和遥控帧有标准格式和扩展格式两种格式,
标准格式有 11 个位的标识符(Identifier: 以下称 ID),
扩展格式有 29 个位的 ID;
标准帧(Standard Frame)是CAN(Controller Area Network)协议中常用的一种数据帧格式,用于在CAN总线上传输数据。以下是标准帧的格式及其各个字段的解释:
以上是标准帧的基本格式。CAN总线上的节点根据这个格式来发送和接收数据。标准帧通过使用固定长度的标识符和较短的数据域,提供了一种简单、高效的通信方式,适用于许多应用领域,如汽车、工业控制等。