隋功浩 彭军民 张 奇
随着铁路高速、高密度行车区段不断增加,工务和电务的人工维护维修负担越来越大,利用铁路道岔监测系统实现对道岔设备的综合实时监测已经成了迫切要求。然而,铁路现场工作环境比较复杂,各种电力通信电缆都集中铺设在电缆沟中,电磁干扰很大。因此,需要一种可靠性高、兼容性好的现场总线。
LonWorks现场总线是由美国Echelon公司推出的局部操作系统,具有统一性、开放性、互操作性,以及支持多种通信媒质等优良性能。一般铁路车站的道岔分布比较分散,呈片状分布,难以通过单一总线连接所有轨旁箱。而LonWorks(LON)总线支持自由拓扑结构,对现场的适应性更好。但是由于Neuron芯片的应用处理能力相对较弱,对于复杂的应用常使用主从处理器结构,主处理器完成用户应用功能,而把Neuron芯片作为通信网关。RS-232是异步串行通信中应用最普遍的标准总线,有必要开发一种LonWorks-RS-232的嵌入式网关,解决道岔监测系统的通信需求。
LonWorks总线利用道岔区域既有的一对双绞线进行传输,网络传输速率达到78kb/s。使用自由拓扑时,传输距离可达到500m,使用Doubly总线结构时,传输距离可达到2700m。需要指出的是,当使用现场双绞线/电力线时,传输距离有所下降。系统总体结构如图1所示,使用Neuron芯片完成LON-RS232网关功能,微处理器作为主处理器,完成数据处理等主要功能。
目前设计与实现LON-RS232嵌入式网关主要有2种方案。
第1种方案,如图2所示,采用Neuron芯片与另外的控制器或并行接口芯片进行数据交换,通过软件编程实现网关。
第2种方案,Neuron芯片的串行输入、输出符合EIA-232(RS-232C)标准,直接采用Neuron芯片及其内部软件编程实现网关,无需外围接口芯片,硬件成本低。
图1 系统结构示意图
图2 网关方案1原理图
第1种方案需要占用Neuron芯片的多个IO管脚,与另外的控制器或并行接口芯片连接,并行传输数据速度快,硬件成本较高。
第2种方案硬件电路相对简单,不需要增加额外的接口转换硬件,串行接口是在固件中实现的。IO口方面,只需占用Neuron芯片的IO8和IO10 2个串行接口。
之前的LON-RS232的网关开发以第1种为主,因为当时芯片Neuron3150串行速度慢,10MHz晶振下,波特率最高只能达到4800b/s,所以虽然第2种方案硬件成本低,但是没有得到很好的应用。新一代芯片FT5000的串口波特率最高支持115.2kb/s,目前看来,第2种方案更具有优势。
方案2网关的硬件框图如图3所示,主要由FT5000芯片及外围电路组成。FT5000需要10MHz的外部晶振提供输入时钟,内存结构和之前的Neuron芯片不同,芯片内嵌入16KB的ROM和64KB的RAM,没有供开发使用的片上非易失的存储器 (EEPROM或者flash)。FT5000可以使用SPI总线或者I2C总线扩展外部EEPROM/flash,支持最大64KB的存储空间,其中用户最大可用容量为42KB。也可以同时使用2种总线分别扩展EEPROM和flash,对于LON-RS232网关,使用I2C总线外扩单片EEPROM就可以满足开发要求。
图3 网关方案2原理图
FT5000芯片内嵌了高性能的Neuron核收发器,和FT-X3通信变压器配合使用即可以和Lon-Works网络通信。LON-RS232网关电路所占面积较少,可以和其他电路做到1块PCB板上,这样FT5000的串口管脚IO8、IO10可以和其他微处理器的串口直接相连。也可以做成单独的网关产品,将串口经过MAX232驱动后,符合RS-232的电平标准,就可以和计算机进行通信了。FT5000的最高串口速率为115.2kb/s,大于LonWorks网络上的速率78kb/s,数据流水线传输时,可以确保LonWorks网络以78kb/s的速率进行传输。
网关软件程序使用Neuron C语言完成。Neuron C不使用main()函数结构,而是由一系列的when()语句组成。调度程序以循环的方式检测,以队列形式登录when语句,为真则执行,为假则跳过。利用Neuron C的消息传送机制,将收到的串口信息解析后用网络报文传送到LonWorks网络上。同样的,将通过LonWorks网络收到的网络报文解析后发送至串口,完成LON-RS232的网关转换功能。
网关除了完成LON-RS232协议转换外,还要根据数据帧协议进行可靠传输。如表1所示,协议首先要进行帧头校验,校验正确后,按照数据长度进行数据接收,接收完毕后,需要对收到的数据进行校验。如果正确,则接收;如果错误,则要求重新发送。FT5000支持最长255个字节的数据帧。
下面,给出了软件设计中需要关注的一些重点语句。
IO_8sci baud (SCI_115200)iosci;//将IO8和IO10设置成串口,波特率115.2kb/s
when (reset)//设置上电初始化
when (io_in_ready (iosci))//串口数据接收完毕
when (msg_arrives)//LON 网络上有消息传来
msg_send();//将数据发送到LON网络上
io_out_request(iosci)//发送串口数据
FT5000芯片需要完成LON-RS232数据的双向转换处理,网关的软件流程如图4所示。
在铁路道岔监测系统中,利用道岔区域既有的一对双绞线,组成LonWorks网络。上行线和下行线的监测分机分别利用嵌入式LON-RS232网关和LonWorks总线连接,上行线LON网和下行线LON网中间通过机械室内的网络路由器桥接,将LonWorks总线上的数据转换成以太网协议数据,通过网线传输到中心服务器供分析记录使用。通过道岔监测系统的现场检验,很好的验证了该网关的实用性。
图4 软件流程图
文中系统地论述了嵌入式LonWorks网关的实现方法,主要分析了嵌入式网关的硬件和软件的实现方法。本文设计的LON-RS232网关,为串口设备和LonWorks网络之间的直接通信提供了一种有效的方法,为今后LonWorks网络的开发提供了一种新的方法。网关硬件成本低,具有结构简单、小型化、模块化等特点,非常适合于工程现场使用。
[1] 杨玉红.LON网络控制技术及应用[M].西安:西安电子科技大学出版社,1999.
[2] 胡秋林 .基于LonWorks现场总线的工业控制网关研究[D].南京理工大学硕士论文2005.
[3] Echelon Corporation.Series 5000Chip Data Book 2009.
[4] Echelon Corporation.Neuron®C Programmer’s Guide 2009.
[5] 曾梦秋 .嵌入式LonWorks网络智能网关设计[J]电子设计工程,2014(9).