多主竞赛,逐位裁定机制
CAN总线选用了多主竞赛式总线结构,选用非损坏性裁定技能,当两个节点一起向总线传输数据时,优先级低的节点自动中止数据发送,而优先级高的节点可不受影响持续传输数据,因为这些节点对每一个位进行监听,而且有必要服从于更高优先级的音讯,因而它们的呼应时刻有必要快到能够在损坏下一个比特曾经停止传输。
以下通过实践比如对总线状况进行剖析。因为实践组网中,节点之间通过线缆衔接,数据的发送、接纳及传输都会有必定的延时。CAN体系规划时,就需求考虑延时对体系的影响。现假定一个CAN网络,只需A、B两个节点,A、B之间的总单向延时为200ns,即为A到B,或B到A的发送、传输及接纳延时的总和。信号传输速率为1Mbps,即位时刻为1000ns。
如图1所示,节点A在时刻t=0时开端发送一条音讯,然后在总线(2)上传输一个显性位。有或许呈现的状况是,节点B刚好在节点A的信号被接纳到曾经(3)开端发送,也即时刻t=199ns。当时刻t=1000ns,节点A第二位开端之初,在节点A转到隐性状况曾经(4)两个节点都没意识到对方的有效性。然后,节点B在时刻t=1199ns的第二位开端之初(6),转到隐性状况。另一个单向推迟今后,该隐性电平才抵达节点A,时刻 t=1399ns(8)。只需在这时,节点A才干读取RXD信号,而且能够确认其代表总线的实在状况。
从剖析可知,只需通过两倍单向延时,节点A才能够判别总线的实在状况。因为CAN协议固有的逐位裁定机制,这种双向推迟有必要较好地坐落一个位时刻预算规模内。不然,在第二个位裁定完结曾经,节点A就或许开端传送其第三个位。
为确保节点每位采样到的总线电平都是总线的实在状况,CAN的每一个位时刻都界说一段时刻,用于补偿双向延时,即PROP_SEG传达段。总传输延时有必要小于PROP_SEG的设定时刻,而采样点在PROP_SEG之后,确保每个节点在对总线数据采样曾经都的确等候满意长的时刻,使采样数据正确。(PROP_SEG为位时刻装备的领域,超出本文规模,如需求更深化的了解,请查阅相关的文献。)
CAN 规范规则,线缆的传输推迟为5ns/m,1Mbps信号速率时最大线缆长度为40m。通讯速率为1Mbps,即位时刻为1000ns,PROP_SEG设定为650ns时,因为线缆自身具有200ns的单向延时(即400ns的双向延时),然后使收发器和相关电路的总推迟只剩约250ns。也就是说,假如CAN底层硬件的传输延时只需小于250ns,线缆长度即可到达40m。
CAN 收发器的制造商一般规则“循环延时”,其包含驱动器和接纳机推迟。因为双向核算中触及两个收发器,因而每个收发器都应有125ns或许更低的循环延时,以支撑1Mbps信号速率下40m的总线长度。假如收发器电路包含更多的器材,如阻隔、电平转化或维护组件,这些器材发生的延时也有必要包含在总延时预算中。
在实践运用中,为了进步CAN节点的可靠性,CAN底层硬件一般会运用阻隔规划。常用解决计划有选用光耦+CAN收发器,如6N137+TJA1051,图2;或许直接运用阻隔收发器,如CTM1051KT,图3。
若选用图2的阻隔计划,光耦6N137具有典型的60ns单向延时,而悉数双向信号有必要通过4个光耦,加上单个TJA1051约120ns的典型循环路延时,总的循环延时到达480ns。在位时刻装备不变的状况下, 1Mbps速率实践只能传输约17m的间隔,这样大大地缩短了CAN体系的容许线缆长度。
而选用图3所示的阻隔计划,单个CTM1051KT的循环延时典型为130ns,与单个TJA1051的循环延时根本共同,在位时刻装备不变的状况下,CTM1051KT自带阻隔根本不会对容许线缆长度形成影响,彻底满意1Mbps速率下约40m的传输间隔。
若想从硬件底层着手,在通讯速率不变的状况下,添加CAN通讯的间隔,有必要了解CAN通讯的原理及信号线传输的原理,尽量减小CAN信号传输的延时时刻,然后进步实践通讯的间隔。