CAN简介
CAN网络:是目前在汽车上广泛应用的高速网络系统,但还有比如CANFD和以太网更高效的网络系统。
在CAN网络上运用的是ISO 11898 国际标准。CAN总线一般采用屏蔽或非屏蔽的双绞线。
CAN总线接口能在极其恶劣的环境下正常工作,根据ISO 11898国际标准,CAN的双绞线在使用中如果有一根断路,或有一根接地甚至两根都短接,CAN总线都必须能继续工作。
CAN总线定义
CAN总线是一种串行数据通信总线,其通信速率最高可以达到1MB/S。CAN系统内两个任意节点之间的最大传输距离与其位速率成反比,即任意两节点的传输距离越大其位速率越慢。
注:理论上CAN的传输速率达到1MB/S时,最大传输距离为40m。
CAN总线具有较强的错误检测能力,可以通过监视、循环冗余校验、位填充和报文格式检查,使得未检测出的出错率小于:4.7e-11。
通过故障界定,CAN节点有自动识别永久性故障和短暂干扰的能力。处于干扰时,CAN节点处于关闭状态。而且,CAN中的节点可在不要求所有节点及其应用层改变任有软件或硬件的情况下被接入CAN 网络。
CAN总线的特点
1.总线访问采用基于优先权的多主方式。CAN总线的最大特点是任意节点所发送的数据信息不会包含发送端或接收端的物理地址。
什么是多主方式?在整个CAN网络中,所有信息内容都有唯一的标识符(即ID),当网络中出现信息时,每个节点都会对信号进行识别,从而判断该信息是否与自己相关。如果相关这节点开始对信息进行处理,反之则被忽略。
多主方式的优点有哪些?首先,多主方式可以让CAN网络中的每个节点都能接收到网络中的每个信号,其次在理论上可使网络中的节点数为无限个,但实际会受到电子电器的负载等因素的影响。数据字段最多为8个字节。
2.在线路存在拥挤竞争时采用非破坏性的仲裁机制。CAN采用的是具有冲突检测的载波监听多路的访问方式,其优点就是非破坏性的仲裁。CAN总线的数据采用不归零编码(即NRZ),数据位有“隐性”和“显性”两种逻辑值,总线仲裁时通常采用显性覆盖隐性的方式进行。
CAN总线的信息是用固定格式的帧进行传输的,帧的长度有限。总线空闲时,任何节点都能发送帧,如果有两个或两个以上节点同时开始传输信号,则会引起总线冲突,这时就会用到非破坏性仲裁机制,经过处理后,既不丢失信号也不会因为信号竞争浪费时间。
什么样的信号在仲裁机制中有优先权呢?这时就要关注帧的优先级,优先级越高的帧就有优先访问总线的权利。
3.接收滤波从而对帧进行多节点传输。在CAN总线中,接收器对信号的处理是基于帧接收滤波的处理方式上,这种方式可以判断出接收到的信号是否为接收端所需要的,因此,接收端无需识别信号的发送端ID,反之亦然。
4.支持远程数据请求。通过发送一个远程帧,接收端可以请求发送端给自己发送需要的数据帧,该数据帧的标识符(ID)被指定为和相应远程帧的标识符相同。
5.配置灵活。在CAN网络中添加节点时,如果要添加的节点不是任何数据帧的放送端或接收端,则网络中的所有节点都不用做任何改变(软硬件)。
6.在整体的CAN网络中数据是具有一致性的,即一帧信号可以同时被所有节点接收或不接受。这一特点是基于多点传送和故障处理方法来实现的。所有接收器都会帧的一致性进行校验,将一致的帧进行处理,将不一致的帧进行标记。
7.有检错和出错报文功能。其中检错方式有以下几种:
- 位检测
- 15位循环冗余码校验
- 填充宽度为5的位填充
- 帧校验
8.仲裁失败或传输期间被故障损坏的帧会自动重发。在任何是否无论发送端和接收端处于什么状态它们都会出现的错误帧进行标记和通报,随后这些错误帧就会立刻被抛弃,最后循坏机制就会采用恢复计时机制重新发送错误帧,恢复时间一般占17~23个位时间,若总线遭受严重干扰则最多占29个位时间。
错误帧在进入自动重发前需要参与到仲裁的过程中,才能获得对总线的访问权利。
9.能区分节点的临时故障和永久性故障并能自动断开故障节点。如果出现自动断开故障节点则说明该节点退出了网络的访问机制,在逻辑上断连,因此该故障节点不能发和收任何信号。通常情况下,一个CAN节点必须处于(错误 ~ 激活),(错误 ~ 认可)和离线状态中的某一种状态,不能同时处于两种及以上状态。
处于(错误~激活)状态的节点可以正常参与总线通信,而且可以在检测到错误是发送错误标识,错误标识由连续的6个显性位构成,这违反了位填充规则及正常帧所具备的各种规定格式。
处于(错误~认可)状态的节点不能发送错误标识,但能参与总线通信,在检测到错误时发送的是“认可错误标识”。“认可错误标识”由6个连续的隐性位构成,发送完毕后,处于(错误 ~ 认可)状态的节点在启动下一次发送之前还要再等待一段时间。
处于离线状态的节点无法收发任何帧,只有用户请求才能使该节点结束离线状态。