1 远程CAN总线传输可靠性的主要影响因素
(1)工作环境电磁干扰的影响。
(2)传输介质分布电容和电阻的影响。
(3)远近端阻抗不匹配的影响。
(4)接收同步位端的相位变化和幅值变化的影响。
(5)传送波特率位时钟设计的影响。
(6)没有发送和接收帧的节点之问高阻状态性的漏电对CAN总线的影响。
(7)对总线短路和断路监测处理的影响。
2 远程CAN总线传输可靠性的设计方法
系统运行在复杂的电磁空问里,有外界的各种电磁场变化,也有系统内部各个元器件之间的电磁干扰。尤其工作现场的电磁场环境是最容易干扰系统的可靠性。因此系统数据传输过程采用屏蔽双绞线,它综合了屏蔽线和双绞线两者的优点,是较理想的信号传输线,即可以抑制静电干扰,也可以抑制电磁感应干扰,从而提高系统的可靠性。
元器件是构成系统的基础,选择集成化程度高,抗干扰能力强,功耗又小的电子元器件尤为重要。选择合适的MCU是CAN总线控制系统设计成功的关键。在综合比较了当前业界流行的几款MCU最终选择了Silicon Laboratories公司的C8051F040这款8位单片机作为CAN总线控制系统的控制核心。
C8051F040(以下简称F040)单片机是完全集成的混合信号系统级芯片,具有与MCS一5l完全兼容的指令内核。由于采用了流水线处理技术,大大提高了指令执行效率。F040还采用了Flash ROM技术,集成了JTAG,实现了真正的在线编程和片上调试。它比SJAl000等片外CAN总线控制器具有更好的可靠性和集成度高的特点。F040的CAN控制器完全硬件化,解决了CPU与CAN,总线控制器之间的竞争矛盾。
在主机CAN节点中,如图1所示,选择Silicon Laboratories公司的USB转UART桥接芯片CP2101,内部自带512B收发缓冲器,进一步从芯片本身上解决了数据冲突的问题。它还有300bps至921.6Kbps的波特率变化范围,满足高速通讯要求,外围电路十分简单;另外,CP2101还集成了5V转3V电压调节器,可以由USB总线来对整个主机节点供电,这样整个电路就只需一根USB连线即可实现与PC机通讯,无需额外电源,即插即用,十分方便。
图1主机CAN节点的硬件连接图
ADuMl20l是ADI公司生产的隔离器,采用平面磁场专利隔离技术,取消了光电耦合器中的光电转换过程。因此ADuMl201具有优于光电隔离器的优点:速度更高(最高速率达到25 Mbps)、功耗更低(最小工作电流为0.8mA)、性能更高、体积更小、价格更便宜、应用更灵活(多通道数字隔离器能在同一芯片内提供发送和接收通道)。选择ADuMl201用来实现CAN控制器和CAN驱动器之问的电气隔离,增强系统的稳定性,提高了系统的抗干扰能力。
CAN收发器SN65HVD251在CANH和CANL输出引脚间并联一个电阻,作为CAN总线的终端电阻,在本节点作CAN总线终端节点时,闭合跳线片JPl,使终端电阻工作。终端电阻值R6等于传输电缆的特性阻抗,一般取值120Ω在文献中有详细的讨论,解决了远近端阻抗不匹配的影响。SN65HVD25l的Rs引脚为斜率电阻输入引脚,可以改变收发器工作的方式。在CANH和CANL上各自串联电阻R2、R3限流,再通过一组上下拉电阻R4、R5,有效抑制反射波干扰,保持总线处于高阻态时,接收端收到的始终是“l”电平,这样拉高信号的幅度,减少误码率。另外在CANH年NCANL之间并联一对方向相反的瞬态二极管Dl、D2,可防雷击,以及防止其他总线上的瞬变干扰。
3 整体系统设计
依据以上器件组建一个可靠的CAN总线远程控制系统网络平台。本系统由一个主机CAN节点通过USB接口与上位PC机相连,主节点采用总线方式与下面各个功能节点连接,其中主机CAN节点主要用来发送远程控制广播命令,收集所有节点传来的数据,并上传给上位机软件进行识别分类和统计,它实现了总线侦听、网络监控和上位机接口功能。而底层节点则控制系统中的底层设备,发送包含节点信息的8字节数据CAN总线报文,并侦听主机节点的网络广播指令,调整节点功能。
4 实验分析
4.1 不同公里数通讯结果分析
将系统总线与模拟的1公里一5公里远程网络相连。为了更好分析CAN总线可靠性,使示波器更好的观察报文波形。将示波器CHl两端与距主节点0公里处相连,CH2两端与距主节点5公里处相连。这样,可以观察到相对主机CAN节点5公里通讯的近端(CHl)和远端(CH2)的通讯报文波形。
CHl测试出来的波形位于上端,CH2测试的波形位于下端。CHl端标识为1的一段波形是主节点发出的报文,2是位于CH2端底层节点接收到的报文,4是底层节点发出的数据报文,3是主机CAN节点接收到的数据,称1和2、3和4为一组报文。每帧数据的最后一位是应答位。每两帧报文之间有时间间隙,其中一段是主机CAN节点和上位PC机处理数据的时间,另外一段是底层测量节点处理数据的时间。
经过观察,近端发送的1报文经过5公里距离到远端接收到的2报文的幅值发生了衰减;同样近端收到的3报文也在远端4报文的幅值基础上发生衰减。分别测试1公里到4公里通讯的波形图,可以发现通讯距离越长,幅值衰减得越多。
在其他条件不变的情况下,分别对1公里一5公里做实验,发现远程通讯距离的变化会对报文传输速率有影响但很小,将得出的数据制表如表1
由表1可见,1公里处传输速率最大,每秒传输13.2972I帧,即0.0752秒传输一帧数据,所谓一帧实际一次发送,一次接收,对于CAN总线实际是2帧。随着传输距离的增大,传输速率稍有减小的趋势,说明远程传输有一定的网络时延, 但是在低波特率下影响不大。
4.2 相同公里数不同测试点通讯结果
接下来以通讯5公里距离为例,观察将CHl两端连接到0公里处的测试点,CH2两端连接到1公里、2公里、3公里、4公里、5公里处的测试点,可以看到报文波形幅值发生了相应的变化。经过1公里的衰减,同一组报文幅值降低了约O.2V;2公里距离的通讯会造成同一组报文幅值上发生约0.4V的变化;同理3公里、4公里、5公里传输同一组报文分别发生了0.6V、0.8V和lV的幅值衰减。因此可以得出结论:同一组报文每经过l公里距离通讯,报文信号的幅值即发生0.2V的衰减。
4.3 CAN收发器SN65FIVD251工作电压的影响
在实验的过程中,观察到SN65HVD251工作电压VCC端的大小对于传输距离的影响很大,经过大量的实验,得出1-5公里距离成功通讯的VCC临界电压值(精确到O.1V),所谓临界电压值是在确定距离内能正常传送数据的最小值。如表2所示。
从表中可以得出,保证l公里成功通讯的前提是VCC端电压大于等于3.6V。VCC端电压越高,可以通讯的距离越远,在1-5公里实验中,每增加1公里,VCC端电压相应提高了约0.3V。最高VCC不能高过SN65HVD251的最高工作电压7V。
远程通讯距离对于报文信号的幅值有比较大的影响,每公里约衰减O.2V;同时CAN收发器SN65HVD251的输入电压对于远程通讯距离有一定的影响,确保在电压正常范围内的高电压输入可以提高系统的远程通讯距离。电源电压每提高0.3V可延长1公里,而增加1公里损耗0.2V,余下的0.1V由驱动芯片内部所消耗了。
5 CAN总线远程控制网络的性能总结
CAN总线传输距离在驱动芯片工作电压和传送波特率确定之后,主要决定如下二个因素:(1) 发送端的应答位的隐性电压和接收端把隐形变成显性电平以后又传送到发送端时的电平差值;(2)发送端发的应答位到接收端被确认后又发回到发送端时该位相位变化。前者电平差值为0.6V,后者不能滞后每位的时间的一半。0.6V电平差比RS485、RS422识别“l”和“0”差值100mv要大很多。这也就是说同样传送条件下,RS485比CAN总线传送距离远。同样RS485、RS422因阈值过小,易受干扰。另外CAN总线其他性能优于RS485和RS422,如CRC硬化,可以多主通讯机构,以及多层已硬化的上层协议等。RS485的误码率10—7,CAN总线误码率可达2×10一ll。因此要提高远程传送可靠性可以采取如下方法:
(1)增加驱动芯片的工作电压。
(2)降低发送的波特率,减少相位滞后的影响。
(3)使用更粗双绞线,减小通讯导线电阻,从而减少传送损耗。
(4)用两个驱动芯片并联驱动,减少驱动芯片的内阻,提高驱动电流,即减少0.1V内部损耗。
(5)选用分布电容较小的双绞线,降低分布电容对同步位相位的影响。