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转光纤设备,它是一答种典型的CAN数据转换模块。能够实现CAN数据和光纤信号的相互转化,到达延长CAN总线数据通讯距离的目的。因为到底也是一台CAN设备,所以它的运行也要遵循CAN总线的规则。而说到can总线的运行,就不得不提一下CAN总线的协议,它相当于是CAN总线的运行规则,犹如人类说话的语法一样,一般来说,CAN光端机设备支持的CAN总线协议类型包括:CANopen,SAE J1939、Devicenet、NMEA2000等等。GCGD就有类似的东西,网上可以找的到。因为现在CAN总线的发展前景非常之好,所以这类设备以后还会有大作用。
CAN总线转换器中先后发送数据后怎么辨别总线上出现了两个相同ID 2再回到开始,首先这样的网络规划是非常不合理的,等于是网络上出现了A和B两个对某一帧功能相同的节点,完全没必要,如果你要更新某个信号,只需让A节点重新发送新的即可,如果更新的信号是通过B节点模块更新的,也只需先通过B向A发送一个帧更新某个信号,然后A再重新发送更新的帧。
如果你两个节点关联同一个帧,以后加入新节点和升级改动网络的时候会多一倍的工作量,而且再远程帧的响应中,同ID多响应很容易出现问题。
总之一句话,我们要从总线的角度去看待CAN,不要从节点的角度出发。