杨月仲 杨 光 张 峰 张士文
(上海交通大学电子信息与电气工程学院,200240,上海∥第一作者,硕士研究生)
基于可编程片上系统技术的多功能车辆总线解码与记录装置设计
杨月仲 杨 光 张 峰 张士文
(上海交通大学电子信息与电气工程学院,200240,上海∥第一作者,硕士研究生)
随着列车通信技术的发展,故障诊断和数据记录已成为保障列车运行的重要手段,因此需要一种高速度、大容量的数据记录系统来收集列车网络产生的信息。设计了一种基于可编程片上系统(SOPC)技术的多功能车辆总线(MVB)解码与记录装置,结合嵌入式处理器与可编程逻辑器件软硬件协同工作的优势,将MVB实时解码和大容量存储集成于单块FPGA芯片内。装置以在线监听总线的方式,收集MVB设备的状态监测和故障诊断信息,为分析列车运行的安全性与可靠性提供依据。
轨道交通; 列车通信网络; 多功能车辆总线; 总线解码; 大容量数据存储; 可编程片上系统
Author′s address School of Electronic Information and Electrical Engineering,Shanghai Jiaotong University,200240,Shanghai,China
随着轨道交通技术的发展,列车通信网络(TCN)正在成为车辆及列车数据通信系统的发展趋势[1]。国际电工技术委员会的IEC-61375[2]标准,将TCN分成用于连接各节可动态编组的铰链式列车总线(WTB)和用于连接车辆内固定设备的多功能车辆总线(MVB)。与其他的通用现场总线在列车上的应用相比,MVB在实时性、可靠性、可管理性、介质访问控制方法、寻址方式及通信服务种类等方面具有一定的优势[3-4]。
一方面,现有的MVB通信控制器芯片的核心技术为国外的公司所垄断,价格昂贵,国内对引进的标准、技术的消化和二次开发都还做得不够[5],因此其并不适合直接拿来作为自主开发MVB分析仪的首选。另一方面,故障诊断和数据记录系统已成为保障列车运行安全性、可靠性必不可少的一部分,应通过对MVB通信的研究,自主开发一套MVB解码与记录装置。该装置不仅能实时解码及实现文件系统下的大容量存储,还可以长时间、不间断、实时地随车监听和记录MVB数据。
基于可编程片上系统(SOPC)技术的MVB解码与记录装置的结构框图如图1所示。装置的软硬件功能划分为:硬件负责处理数据量大、算法相对单一的MVB解码功能和数据缓存;相对复杂、不易于硬件实现的文件系统协议和SD(安全数码存储)卡传输协议由NIOS-II处理器以软件的方式完成。
MVB解码与记录装置包含一个NIOS-II内核的FPGA(现场可编程门阵列)小系统,以及支持其运行所需的基本的外围模块。解码功能由MVB解码模块完成,MVB电平转换接口实现物理电平的转换。数据解码与缓存过程全部由硬件实现,因此能够满足高速、实时地解码。记录功能则由NIOS-II处理器、SRAM读写控制器、SPI接口配合完成。NIOS-II处理器运行FAT 32(File Allocation Table)文件系统协议和SD卡传输协议,缓存读写控制器负责简单、重复但大量、高速的数据搬运工作,而不需要处理器内核额外的干预。NIOS-II处理器产生的数据流和解码得到的数据流在时序的配合下,经SPI接口写入SD卡。
图1 MVB解码与记录装置的结构框图
各接口模块被封装成IP核,通过Avalon总线与NIOS-II软核连接,进行多路控制信号和数据的同时传递、处理。
装置选用的FPGA型号为EP4CE10F17C8,SRAM芯片为IS61WV5128BLL,4Mbit容量,解决了写SD卡扇区时片内缓存不足的问题。
MVB的数据以帧为基本单位,数据传输速率为1.5 Mbit/s,采用了曼彻斯特码传输(通过电平的跳变来对二进制数据“0”和“1”进行编码),因此编码后的波特率为3 Mbaud。MVB中有两种帧,一种是只能由总线主设备发送的主设备帧,简称“主帧”;另一种为响应主帧而由从设备发送的从设备帧,简称“从帧”。
MVB解码模块是装置的关键部分,可将其分解为分界符识别(包括主帧帧头、从帧帧头和帧尾的识别)、曼彻斯特解码、CRC(循环冗余校验码)、定时器、总线异常管理、解码流程控制单元。图2为MVB解码模块的组成框图。
图2 MVB解码模块的结构框图
2.1 MVB帧格式
MVB协议中规定的帧格式与解码流程控制紧密相关。主帧格式以及其所包含的功能码(F码)决定的从帧格式如图3所示。
图3 MVB协议帧格式
2.2 MVB解码的控制流程
解码流程控制单元使能、复位解码各子模块。其控制流程大致为:通过分界符的识别来实现帧定位;解码主帧得到功能码;确定回复的从帧格式,对从帧解码过程进行控制。
对于有主帧而无从帧响应的某些信号,加入定时器来检测从帧的超时未响应;对于真实的信道,考虑极端的条件下总线可能出现各种异常而导致无法按照正常的流程解码。总线的异常包括:曼彻斯特解码异常、CRC结果错误、帧长度错误、出现保留的功能码等。综合上述因素,加入总线异常管理单元来收集各单元反馈的异常信号,反馈给解码控制单元。融合了总线异常管理后的解码流程控制状态转移图如图4所示。
图4 解码流程控制状态转移图
2.3 帧分界符识别与曼彻斯特解码
MVB解码器采用有限状态机(FSM)实现分界符的识别与曼彻斯特解码。图5为FSM实现从帧起始分界符识别的状态转移图。
图5 从帧起始分界符及对应的状态转移图
理论上使用2倍于MVB波特率的采样率就可对信号进行还原,但为了提高分辨率和容错性,往往会尽可能采用高一点的采样率。此外,采样率的大小受限于FPGA器件性能以及尽量降低功耗的原则。所以,应该综合考虑选择合适的采样频率[6]。
以24 MHz的采样率为例,来说明应用FSM方法实现帧同步的具体步骤。单个码元的理想长度对应8个采样点,而实际由于信道噪声等因素影响,采样点的个数会有偏差。图6中标明了图5第一个码元的10个采样点位置,若设定6~10个采样点为允许的误差范围,当未连续检测到6个高电平之前就检测到低电平,或者连续检测到10个以上的高电平时,则认为该码元异常。若该码元为分界符的一个码元,则返回相应的初始状态重新进行同步;若该码元为曼彻斯特编码的一个码元,则认为曼彻斯特编码异常,产生一个异常信号反馈给解码控制单元并记录。若相邻2个码元为相同电平,则设定的误差范围不再是6~10个采样点,而是2倍于6~10个采样点。相邻3个码元为相同电平时可依次类推。图5中用m~n来统一表示上下限值。
图6 起始分界符的第一个码元及采样位置
如何将上述方法通过FSM实现呢?将未达到电平持续时间下限的状态表示为状态sx_1(x=1,2,3,…下同),而对应的达到下限(图5中的跳转条件m个‘1’或‘0’)但未超过上限(n个’1’或’0’)的状态表示为状态sx_2。图5中1~b段电平每段各自可以对应两个这样的状态,通过一系列的跳转条件最终到达最右端的状态sc时,说明已经成功识别出从帧帧头。其他分界符的检测同理。曼彻斯特解码的方法也可仿照此思路进行设计。
2.4 CRC
MVB网络采用CRC进行差错控制。MVB帧数据应用1个或多个8位校验序列来保护,其CRC生成多项式为:
(1)
对被保护数据段采用CRC算法处理后得到7位CRC序列r6~r0,与被保护数据段共同生成一个偶校验位,r6~r0与偶校验位取反后,最终得到8位校验序列。由于MVB为串行数据,因此采用线性反馈移位寄存器LFSR[7]来实现CRC校验器比较高效。根据生成多项式设计的CRC校验器结构如图7所示。
图7 CRC校验器结构图
装置的大容量存储媒介采用SD卡。SD卡支持SPI(串行外设接口)和SD两种传输模式[8]。SD模式具有性能上的优势,但传输协议较复杂、开发周期长。本装置采用SPI模式,并在此基础上嵌入FAT 32文件系统模块,使装置能够更加高效地组织管理数据。嵌入式系统的文件管理模块化后的结构如图8所示,自顶向下分别为:
(1) 应用程序,直接调用通用FAT 32文件系统模块的API函数来进行操作。
(2) 通用的FAT 32文件系统模块,实现FAT 32协议,如创建文件、向指定文件写入数据等接口函数。
(3) 底层驱动程序,实现SD卡SPI模式的初始化、读写单个扇区、连续读写块等。
(4)硬件接口,包括了与NIOS-II处理器相连的SPI接口和SPI接口切换模块,如图9所示。
图8 文件系统的模块化结构
注:DEMUX——多路分配器;MUX——数据选择器;SRAM——静态存储器;MOSI——SPI接口的主输出;SCK——SPI接口的同步时钟:MISO——SPI接口的主输入;CS——SPI接口的片选信号
图9 SPI切换与MVB数据缓存模块框图
其工作原理为:将SRAM分成缓存区A、B,DEMUX负责将解码数据写入其中一个缓存区,而MUX则从另一个缓存区读出数据,读写交替进行,即乒乓操作。读出的数据通过并串转换,由SPI切换控制位(该位通过Avalon总线设置MVB解码与缓存模块)决定SPI接口的MOSI输出是通过NIOS-II处理器的数据还是通过缓存的数据,以及同步时钟SCK的选择。而片选信号CS和输入信号MISO由NIOS-II处理器来操作便可。此设计的优势在于解码后的数据不经过软核,提高了数据的写入速率,使得整个装置软硬件更加有效地协同工作。
装置配套PC端的MVB数据分析软件对数据进行后期分析。软件在Microsoft Visual Studio 2010编译环境下使用C#语言编写完成。软件的任务关联图如图10所示。
图10 数据分析软件的结构图
通过MVB设备帧信息定义表,可自定义MVB网络中每一类设备的功能码、地址、故障信息等,它是软件对数据进行进一步分析的依据。装置对挂载了出现故障的门控器的MVB进行监听、数据记录,在对设备帧信息进行定义的前提下,对数据进行分析。软件的分析结果如图11所示。
图11 MVB数据分析软件运行结果
本文结合FPGA硬件电路在高速信号采集与并行处理上的优势,以及嵌入式处理器内核易于实现复杂控制功能的特点,设计了基于SOPC技术的MVB解码与记录装置,通过对装置功能进行合理的软硬件分工,实现了MVB数据的实时解码与文件系统下的大容量数据存储。
[1] 徐磊,谢维达,谢伟达,等.多功能车辆总线网络中网络节点的设计研究[J].城市轨道交通研究,2011,14(1):92.
[2] 国际电工委员会.铁路电气设备—列车总线:第1部分 列车通信网络:IEC 61375-1[S].日内瓦:国际电工委员会,1999.
[3] 王磊,何正友.高速列车通信网络技术特点及其应用[J].城市轨道交通研究,2008,11(2):58.
[4] 蔡颖,诸昌钤.MVB网络接口单元的FPGA实现[J].铁道机车车辆,2005,25(3):26.
[5] 陈艳子,黄采伦,周少武,等.基于Avalon的MVB总线的接收模块[J].电测与仪表,2008,45(5):46.
[6] 杨昌休.多功能车辆总线MVB关键技术的研究[D].成都:西南交通大学,2012.
[7] 王新梅,肖国镇.纠错码——原理与方法[M].西安:西安电子科技大学出版社,2001.
[8] 张宏科,李斌,陈丹熠.基于SPI模式的SD卡驱动的分析与设计[J].计算机与网络,2013,39(21):58.
MVB Decoding and Recording System Based on SOPC Technology
YANG Yuezhong, YANG Guang, ZHANG Feng, ZHANG Shiwen
With the development of train communication technology,fault diagnosis and data recording has become an important means to ensure the train operation,a high-speed,large-capacity vehicle data recording systemis needed to collect information generated by the train network.In this paper,a MVB analysis and recording system based on SOPC technology is designed,which combines the advantagesin the collaborative work of embedded processor and programmable logic device,and integrates the real-time decoding and mass-storage on one single FPGA chip.The system could collect condition monitoring and fault diagnosis information,and provide the basis for analyzing the safety and reliability of the train operation.
rail transit; train communication network (TCN); multifunction vehicle bus (MVB); bus decoding; massstorage; system on a programmable chip(SOPC)
U 231.7
10.16037/j.1007-869x.2016.07.018
2014-09-10)