can总线通信原理:要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时,要求快速地进行总线分配。实时处理通过网络交换的紧急数据有较大的不同。一个快速变化的物理量,如汽车引擎负载,将比类似汽车引擎温度这样相对变化较慢的物理量更频繁地传送数据并要求更短的延时。

 

CAN总线以报文为单位进行数据传送,报文的优先级结合在11位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。例如标识符0111111、0100100、0100111发生位仲裁时,0100100报文将会被跟踪,而其余报文会被丢弃。

 

具体过程为:当几个站同时发送报文时,站1的报文标识符为0111111,站2的报文标识符为0100100,站3的报文标识符为0100111,所有标识符都有相同的两位01,直到第3位进行比较时,站1的报文被丢弃,因为它的第3位为高,而其它两个站的报文第3位为低。站2和站3报文的3、4、5位相同,直到第7位时,站3的报文才被丢弃。注意,总线中的信号持续跟踪最后获得总线读取权的站的报文。在此例中,站2的报文被跟踪。这种非破坏性位仲裁方法的优点在于,在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文。

 

CAN具有较高的效率是因为总线仅仅被那些请求总线悬而未决的站利用,这些请求是根据报文在整个系统中的重要性按顺序处理的。这种方法在网络负载较重时有很多优点,因为总线读取的优先级已被按顺序放在每个报文中了,这可以保证在实时系统中较低的个体隐伏时间。

 

对于主站的可靠性,由于CAN协议执行非集中化总线控制,所有主要通信,包括总线读取 (许可)控制,在系统中分几次完成。这是实现有较高可靠性的通信系统的唯一方法。

can总线通信原理分析

(图片来源于互联网)

CAN与其它通信方案比较,在实践中,有两种重要的总线分配方法:按时间表分配和按需要分配。

 

在第一种方法中,不管每个节点是否申请总线,都对每个节点按最大期间分配。由此,总线可被分配给每个站并且是唯一的站,而不论其是立即进行总线存取或在一特定时间进行总线存取。这将保证在总线存取时有明确的总线分配。

 

在第二种方法中,总线按传送数据的基本要求分配给一个站,总线系统按站希望的传送分配(如:EthernetCSMA/CD)。因此,当多个站同时请求总线存取时,总线将终止所有站的请求,这时将不会有任何一个站获得总线分配。为了分配总线,多于一个总线存取是必要的。

 

CAN实现总线分配的方法,可保证当不同的站申请总线存取时,明确地进行总线分配。这种位仲裁的方法可以解决当两个站同时发送数据时产生的碰撞问题。不同于Ethernet网络的消息仲裁,CAN的非破坏性解决总线存取冲突的方法,确保在不传送有用消息时总线不被占用。甚至当总线在重负载情况下,以消息内容为优先的总线存取也被证明是一种有效的系统。虽然总线的传输能力不足,所有未解决的传输请求都按重要性顺序来处理。在CSMA/CD这样的网络中,如Ethernet,系统往往由于过载而崩溃,而这种情况在CAN中不会发生。

can总线通信原理分析

(图片来源于互联网)