CAN总线通信原理及其在ZPW-2000A轨道电路系统中的应用
2016-09-16胡飞龙
胡飞龙
(上海铁路通信有限公司,上海 200436)
CAN总线通信原理及其在ZPW-2000A轨道电路系统中的应用
胡飞龙
(上海铁路通信有限公司,上海 200436)
在ZPW-2000A轨道电路通信系统中,采用CAN总线结构,CAN总线有着较强的纠错能力和抗干扰能力,并且支持差分收发,因此比较适合运用于铁路运行环境,详细了解CAN系统的运行原理和工作机制有助于更好的运用于实际电路。
ZPW-2000A;CAN控制器;CAN驱动器;报文
1 概述
控制器局域网络(Controller Area Network,CAN),具有高性能、高可靠性、易开发和低成本等特性,通信介质可以是双绞线、同轴电缆或光导纤维,通信速率可达1 Mbit/s,理论传输距离最长可达10 km。CAN总线的一个最大特点是废除传统的站地址编码,取而代之是以对通信数据块进行编码。由于CAN总线具有较强的纠错能力,支持差分收发,因而适合高干扰环境,基于上述优点,ZPW-2000A轨道电路系统的数据通信也是基于CAN总线架构。
2 CAN总线通信设计原理
ZPW-2000A轨道电路系统采用CAN总线的经典电路设计,由于CAN协议规定了数据通信的格式和应用分层,因此在开发时只需遵循其协议规定进行程序编写,CAN总线的硬件电路设计实现主要包含两个方面:CAN控制器和CAN收发器,其余还包含传输介质以及总线拓扑。
2.1CAN控制器
CAN控制器是规定通信链路层的功能,将需要传递的信息通过编码后放入数据报文中,传递到网络,接收器在总线网络中接收自身需要的报文。在ZPW-2000A轨道电路信号系统中,将需要传递的信息通过应用层的协议规定进行编码,然后经CAN总线控制器发送到网络,如图1所示。
图1 CAN总线在移频信号中的应用
CAN控制器提供与CPU的数据接口,CPU通过数据接口控制其工作模式、工作状态、报文发送和报文接收,从而实现CAN协议中复杂的链路层功能。
2.1.1数据传输
CAN总线主要利用报文实现消息传输,报文有4种格式,由这4种帧表示和控制了整个报文的传输,帧由不同内容组成,主要包含帧起始、仲裁域、控制域、数据域等。标准格式和扩展格式如图2所示。
起始帧(SOF)用于表示数据的开始,只有1位且由一个“显性”位组成,仲裁域用于表达数据帧的优先级,远程发送请求位用于表示所发数据帧为数据帧还是远程帧。当该位为显性是表示该帧为数据帧,相反则为远程帧,标示符扩展位(IDE)标示该帧为标准格式还是扩展格式,显性位表示标准帧,相反为扩展帧。控制域由2位保留位和6位数据长度标识位组成,保留位在标准帧中,由r0组成,在扩展帧中由r1和r0组成,数据长度标识位由4位组成,采用二进制编码表示。
数据域由8个字节组成,共64位,CRC域全称是循环冗余校验码(Cyclic Redundancy Check)域,包含两部分:CRC序列和CRC界定符。CRC序列通过对发送的数据进行校验产生,CRC界定符为一个单独的隐形位。应答域包含应答位和应答定界符,当接收器正确接收有效报文时,该接收器会在应答位期间发送两个显性电平位来通知发送器。所有接收到匹配的CRC序列节点会在应答位期间,用一个显性位卸载发送器的隐形位作为回应。最后是帧的结束,帧结束由7个隐形位组成,表述帧的结束。
2.1.2CAN控制器SJA1000
在ZPW-2000A轨道电路系统中,使用的CAN控制器是SJA1000,SJA1000是Philips公司推出的一种独立的CAN控制器,包含两种操作模式Basic CAN和PeliCAN,而PeliCAN支持CAN2.0B协议,其内部主要包含7大模块,实现数据的转化发送和接收。SJA1000在正常发送数据帧前,需要初始化,初始化的步骤如图3所示。
图2 帧格式
图3 SJA1000初始化流程图
先关闭中断源,然后进入复位模式,设再置模式寄存器(MOD)的地址,其中MOD.0为复位模式控制位,当该位为1时,处于复位状态,时钟分频寄存器(CDR)的CDR.4总是默认为0,此位不能被写入,只能读取。CD.0-CD.2可以无限制访问,这些位主要用于定义外部CLKOUT引脚的频率。CDR.7用于定义CAN的模式,如果CDR.7=0,CAN控制器工作在BasicCAN模式,否则,工作在PeliCAN模式,且此位在复位模式下才可以写入。
总线定时寄存器0(BTRO)主要设置波特率和同步跳转宽度,使用时可根据自己的要求进行设置。总线定时寄存器(BTR1)定义每个周期的长度、采样点的位置和每个采样点的数目。
输出控制寄存器(OCR)的功能是通过程序控制不同配置的输出,寄存器只有在复位模式下才可以被读/写,在PeliCAN模式下,此寄存器只能被读取,在BasicCAN模式下总是设置为0XFF。
2.2CAN驱动器
CAN驱动器是CAN控制器与物理传输通道的接口电路,为CAN总线提供差动发送和接收功能,实现电平转化。CAN驱动器根据工作不同的物理层可以分为高速CAN总线驱动器和容错CAN总线驱动器,且两者不能工作在同一个CAN网络中,在ZPW-2000A轨道电路中,采用高速CAN总线驱动器PCA82C250。
PCA82C250最高速率可达1 Mbit/s、可连接110个节点。具有抗瞬间干扰和总线保护能力,控制斜率可降低射频干扰(RFI),采用差分接收,可以抗击范围很宽的共模干扰和电磁干扰(EMI),PCA82C250的外形如图4所示。
CAN驱动器通过串行数据输出线TX和串行数据输入线RX连接到CAN控制器上,CAN驱动器通过有差动发送和接收功能的两个总线终端CANH 和CANL连接到总线电缆,输入Rs用于模式控制,参考电压输出VREF的输出电压是额定Vcc的0.5倍,其中收发器的额定电源电压是5 V。
图4 PCA82C250外形图
3 CAN总线通信在ZPW2000A轨道电路系统中的应用
ZPW-2000A轨道电路系统使用的CAN控制器通过接口端和控制端与CPU连接,接收CPU的控制和信息传输,CAN收发端通过高光耦和CAN驱动器连接,CAN驱动器通过外围电路与CAN网络连接,构成完整的传输通路,如图5所示。
图5 CAN经典电路
3.1ZPW-2000A轨道电路系统中的CAN总线外围电路构成
CAN外围电路设计为信息传递提供了必要的硬件电路,主要包含控制器外围电路和驱动器外围电路。
3.1.1控制器外围电路
控制器外围电路主要有振荡电路和隔离电路,如果需要和FPGA相连时,还应包含电平转化电路,振荡电路为控制器正常工作提供时钟信号,SJA1000的最高时钟可达24 MHz,一般选用16 MHz晶振,在晶振的输入输出端一般连接一个10 MΩ的电阻,其作用是产生负反馈,确保晶振内部两端的运算放大器工作在高增益的线性区,使晶振能更好的起振。隔离电路主要用于增强系统抗干扰能力,通常由高通光耦组成,在ZPW-2000A轨道电路系统中选用6N137。6N137是用于单通道的高速光耦,其内部由一个850 nm波长的LED和一个集成检测器组成,检测器由一个光敏二极管、高增益线性运放器及一个肖特基钳位集电极开路的三极管组成。具有温度、电流和电压补偿功能,高的输入输出隔离,传输延迟时间短,典型值仅为48 ns,已接近TTL电路传输延迟时间的水平。选用6N137基本不会影响系统的传输速度和传输距离,同时如果SJA1000和FPGA相连,经常采用74LVC164245电平转换器完成CAN总线5 V TTL电平向3.3 V FPGA I/O电平的转换。
3.1.2驱动器外围电路
驱动器外围电路包含模式控制电阻、限流电阻、滤波电容以及过压保护,虽然驱动器82C250有电流限制功能,但是为了保护82C250免受冲击,还需在其CANH和CANL端上各串联一个5 Ω电阻用于限制电流,同时还需在这两端与地之间分别增加30 pF的电容用于消除总线上的高频干扰,防止电磁辐射,电源和地之间也需就近增加一个0.1 uF的去耦电容,对于总线不稳定的系统参考设计,还建议在总线上分别反接两个6.8 V瞬态抑制二极管用于总线过压保护。工作模式控制电阻连接在Rs端,用于控制驱动器的工作模式。驱动器的工作模式有3种:高速模式、斜率模式和准备模式,工作模式的调节通过外接控制电阻Rext来设置,3种模式满足表1设置条件。
表1 82C250工作模式表
3.1.3传输介质
ZPW-2000A轨道电路系统使用的传输介质是双绞线,差分传播能更好的抑制共模误差。但是,使用双绞线会在传播过程中出现信号的近端串扰和信号的反射。
由于瞬时阻抗不均匀导致信号发生反射,给信号的传输带来干扰。ZPW-2000A轨道电路系统经常会遇到很多因素导致信号反射,如忘记安装终端电阻导致末端开路,或者因为走线槽很窄导致走线的弯角过小等。反射系数的定义:
其中,Z0为变化前的阻抗,Z1为变化后的阻抗。
开路时,如果系统中传输电压为3.5 V,传输阻抗为100 Ω,反射系数ρ≈1,那么反射点的电压为7 V。同样情况,短路时反射系数ρ=-1,反射点电压为0 V。
由于反射现象的存在,信号传播路径中阻抗发生变化的点,其电压不再是原来传输的电压。这种反射电压会改变信号的波形,从而可能会引起信号完整性问题。
3.2工作原理
CAN控制器输出串行数据流通过高速光耦到CAN驱动器的TXD的引脚,信号从高通光耦6N137的2脚和3脚输入,点亮发光二极管。发光二极管经过光通道传到光敏二极管,反向偏置的光敏管得到光照后导通,使输入的电流转换为输出电压,送到输出端的与门电路的一个输入端。与门的另一个输入为使能端7脚,此时使能端为高电平,通过与门后输出为高电平,后经输出三极管反向光耦输出为低电平。光耦的输入端发光二极管正向电流为6.5~15 mA,正向压降为1.2~1.7 V,输入VCC为5 V时,那么R1和R6的取值等于(5 V-1.5 V)/10 mA =350 Ω左右。因为发光二极管导通电流对VCC有很大的冲击,造成相当大的尖峰脉冲噪声,而分布电感会使地线吸收不了这种噪声,所以,通常将此电阻的值取大,电路中取值为390 Ω。信号通过光耦的6脚输出到CAN驱动器中,6脚为集电极开路输出端,通过上拉电阻R5输出。
CAN驱动器有3种工作模式分别是高速式、斜率式和准备式,通过Rs引脚进行控制。当信号传递给CAN驱动器PCA82C250后,经驱动器将控制器传输来的串行信号变化为双线驱动模式的差分信号。双线通常称为CANH和CANL,即CAN高和CAN低,当CANH对地为3.5 V,CANL对地为1.5 V时,此时总线状态成显性标记为0;当CANH对地为2.5 V,CANL对地为2.5 V时,此时总线状态成隐性标记为1。
CAN驱动器将差分驱动信号送入终端组成的网络中,每个终端通过接收和发送消息实现通信,构成了基本通信结构。
3.3ZPW-2000A轨道电路系统中的CAN总线拓扑结构设计
ZPW-2000A轨道电路系统的CAN总线拓扑结构一般采用线性结构,ISO11898中定义了单线结构拓扑系统的连接方式,在单线拓扑中采用干线和支线的连接方式,干线作为信息的传输主干道,各个节点通过支线连接在干线上,干线形成闭合连接,两端需接终端电阻,如图6所示。
图6 CAN总线的线性拓扑结构
线性网络中的干线长度最大为10 km,支线最长为6 m,支线的选择最好越短越好,线性网络的扩展通过中继器连接在干线上,如图7所示。
图7 线性网络的扩展
3.4ZPW-2000A轨道电路系统中的CAN总线接口防护设计
ZPW-2000A轨道电路系统中很多设备处于室外,并且传输电压很低,容易受到外界干扰,因此,对于接口的防护是不可或缺的,不仅需要在总线上增加保护器件,当室外发生雷击或其他强烈干扰时,巨大的能量如果来不及泄放,就会损坏收发器。为了防止雷电等大电流对收发器的损坏,终端的总线接口增加防雷管和TVS作总线保护。当受到雷击时,并接在总线上的防雷管将能量泄放掉。但是一般情况下,防雷管的反应速度慢,钳位电压高(约为800 V),因此,在防雷管后增加TVS和PTC电阻,TVS能够将总线压差钳制在6.8 V以下,这样当受到干扰时,TVS能较快地起到保护作用;而PTC电阻能保护收发器免受过流的冲击。在CANH和CANL与地之间各接一个30 pF的小电容,可以起到滤除总线上的高频干扰和防电磁辐射的作用。
4 总结
本文详细阐述CAN总线原理及其在轨道电路系统中的应用。CAN总线成熟的技术和高效的性能被成功运用于ZPW-2000A轨道电路系统,确保了通信系统的可靠性,并保证了列车运行的安全性。
[1]Howard Johnson,Martin Graham.高速信号传输[M].邓晖译.北京:电子工业出版社,2012:327-330.
[2]李真花,崔健.CAN总线轻松入门与实[M].北京:北京航空航天大学出版社,2011:14-21.
In the communication system of ZPW2000A track circuit system, CAN bus structure is used. Because CAN bus has strong capabilities of error correction and anti-interference and supports the differential transmit-receive, it is very suitable for the application in railways. The paper introduces the operational principles and working mechanism for better use of CAN bus in ZPW-2000A track circuit system.
ZPW2000A; CAN controller; CAN drive; message
10.3969/j.issn.1673-4440.2016.04.027
2016-02-18)