开发周期短
CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会再出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现像在网络中,因个别节点出现问题,使得总线处于'死锁'状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的RS-485所无法比拟的。
CAN总线转换器中CAN总线的技术介绍2CAN总线以报文为单位进行数据传送,报文的优先级结合在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总线转换器中先后发送数据后怎么辨别总线上出现了两个相同ID 2再回到开始,首先这样的网络规划是非常不合理的,等于是网络上出现了A和B两个对某一帧功能相同的节点,完全没必要,如果你要更新某个信号,只需让A节点重新发送新的即可,如果更新的信号是通过B节点模块更新的,也只需先通过B向A发送一个帧更新某个信号,然后A再重新发送更新的帧。
如果你两个节点关联同一个帧,以后加入新节点和升级改动网络的时候会多一倍的工作量,而且再远程帧的响应中,同ID多响应很容易出现问题。
总之一句话,我们要从总线的角度去看待CAN,不要从节点的角度出发。