基于多功能车辆总线的地铁车辆远程监测系统研究

2019-06-19 12:38张士文
城市轨道交通研究 2019年6期
关键词:框图树莓解码

季 高 张 峰 张士文

(上海交通大学电子信息与电气工程学院,200240,上海∥第一作者,硕士研究生)

随着现代城市轨道交通技术的不断发展,列车上设备的种类越来越丰富,集成度越来越高,列车内部通信的信息量也在不断增大。IEC 61375-1标准[1]将列车通信网络(TCN)分为两个层次:上层为绞线式车辆总线(WTB),用于连接编组内的各节车辆,实现列车级通信;下层为多功能车辆总线(MVB),用于连接车厢内固定设备,实现车辆内通信[2]。在城市轨道交通环境下,相较于其他的通用现场总线,MVB在实时性、可靠性、可管理性、介质访问控制方法、寻址方式及通信服务种类等方面具有一定优势[3]。

MVB上的数据包含各MVB设备与主控设备之间的通信数据,这些数据对监测列车运行状态、对故障的实时处理有很重要的意义。目前新投入运行的列车大都自带数据监测系统,可以将MVB上的数据实时上传到远程数据库;但是在旧款列车上,没有相关的数据监测系统。本文建立了一套针对旧款列车的远程MVB数据监测系统,实现地铁车辆关键数据的实时监测和远程数据库存储。

1 系统整体设计

远程MVB数据监测系统需要实现MVB上主从帧的解码及上传,根据设备信息定义文件解析出对应MVB设备的运行状态,并在远程监测平台上实现数据的储存及实时显示。该系统按功能主要分为解码系统、传输系统和监测系统3个部分。系统的结构框图如图1所示。

图1 远程MVB数据监测系统结构框图

解码系统需要快速读取MVB上的主从帧信息,因此采用FPGA(现场可编程门阵列)来实现,所选用的型号为EP4CE10F17C8。结合此芯片强大的数字电路逻辑资源,本文定制了一套MVB解码及传输算法,实现了对MVB上数据信号的实时解码;并结合SRAM(静态随机存取存储器)进行解码信息的缓存,在缓存数据达到一定量时,通过SPI(同步串行外设接口)从机模块实现数据导出到传输系统。

传输系统实现了SPI主机功能,从解码系统获取解码信息,并通过Wi-Fi将解码信息传输到远程服务器上。传输系统对可靠性、实时性有着较高的要求。本文中的传输系统是基于树莓派3B开发板实现的。

监测系统需要搭建数据库来储存MVB解码数据,并通过Web服务器来实现人机交互获取数据。用户可以使用浏览器登录网页查看当前和历史MVB数据,为故障原因分析提供一定的依据。本文中的监测系统数据库采用的是Mysql,Web框架选用的是基于Python的Django,能够较好地完成显示功能,并为日后的功能拓展奠定基础。

2 解码系统设计

2.1MVB协议及帧格式

MVB上的数据传输速率为1.5 Mbit/s,采用曼彻斯特编码,即通过电气电平的高低变化来对“0”“1”信号进行编码,因此编码后MVB上的波特率为3 Mbaud[5]。

MVB上的数据类型主要有两种:一种为主帧,由MVB主设备发送,用以依次轮询各从设备的运行状态;另一种为从帧,由从设备根据主帧内容响应发出,包含对应设备的状态信息[1]。MVB协议帧格式如图2所示。

图2 MVB协议帧格式

主帧和从帧各自具有固定的结构。主帧由主帧起始分界符、F码、地址、CRC(循环冗余校验)和终止分界符组成。其中,F码限定了对应从帧的数据位数,地址为对应从设备的逻辑地址。从帧由从帧起始分界符、数据、CRC和终止分界符组成。其中,数据位数根据F码来确定,数据内容根据设备信息定义文件来解析。

2.2MVB解码器设计

MVB解码器是解码系统的核心模块,负责根据MVB协议将总线数据解码并送入缓存区,其总体设计结构框图如图3所示。解码器包含主从帧帧头识别、帧尾识别、曼彻斯特解码、CRC校验和定时器等功能模块,通过解码控制单元来实现各功能模块的使能、复位,控制解码的流程[4]。数据输入为经MAX3292芯片电平转换后的MVB数据信号;时钟输入为经PLL(锁相环)倍频后产生的时钟信号,解码器内所有模块共用此时钟信号。

图3 MVB解码器结构框图

帧头识别和帧尾识别模块采用有限状态机实现,识别成功时会通知解码流程控制单元,使其使能或复位曼切斯特解码模块。定时器模块主要用于处理检测出主帧但无从帧回复情况,设定一个超时时间,检测在规定时间内是否能识别到从帧帧头。总线异常管理模块用来处理实际中可能出现的各种解码异常情况,包括CRC校验错误、帧长度错误、未定义F码等,通过此模块来进行异常汇总并反馈给解码控制单元。图4为帧头识别和帧尾识别模块工作流程示意图。

2.3 解码信息缓存及输出

由于MVB上的帧与帧之间的传输存在空隙,实际中解码下来的数据量不高于100 kB/s。为了及时将数据上传给树莓派,本文采取SPI通信方式来进行数据传输。SPI总线支持全双工通信,传输速率可达到30 Mbit/s以上,足够满足系统需求。本文选取的传输速率为5 Mbit/s。

MVB上的帧长度不固定,解码信息必须经过缓存后再发出。本文以外置SRAM作为缓存器,芯片型号为IS61WV5128BLL,具有512 kB容量,足够满足设计要求。

解码系统的缓存及输出结构框图如图5所示。SRAM写入模块将接收的串行解码数据转换为并行格式,并生成其在SRAM中的储存地址,在地址达到65 536或65 536的整数倍时,生成读信号给SRAM读取模块;SRAM读取模块得到读取信号后生成目标数据的SRAM地址,获得数据并输出给SPI从机模块;SRAM控制模块主要用于处理同时有读写请求的情况,生成SRAM储存器的控制信号,保证系统可靠性;SPI从机模块负责从SRAM读取模块获取数据并发送给传输系统。

图4 帧头识别和帧尾识别模块工作流程示意图

图5 解码数据缓存及输出结构框图

3 传输系统设计

基于地铁中复杂的工作环境,如何将解码信息有效无误地传输到远程服务器上是一个较大的难题。本文传输系统采用树莓派开发板,此开发板运行Linux操作系统,搭载1.2 GHz的64 bit四核处理器,并且自带无线网卡模块,GPIO(通用型输入/输出端口)接口丰富,能够较好地满足功能需求[6]。依托地铁线路上搭建的Wi-Fi网络来进行数据上传,在网络不可达时将数据暂时储存在本地,确保解码数据不丢失。

树莓派首先需要完成与FPGA板之间的通信,完整地获取解码信息。本文考虑到通信速率和数据处理难度等因素,选取以树莓派作为SPI主机、以FPGA板作为SPI从机的方式来进行数据传输,图6为树莓派和FPGA板之间的连线图。树莓派通过rasp-config配置文件启用SPI设备,并通过WiringPi库函数来实现GPIO接口和SPI接口的控制。在传输过程中,树莓派通过指定GPIO接口获取传输请求,得到请求后回复同意传输信号;然后控制SPI接口接收固定大小数据并存入缓存区;接着将缓存的数据写入文件,文件名以系统时间命名。

图6 树莓派与FPGA板连线图

由于地铁列车连续不间断运行,且MVB总线上数据较多,因此需要传输的数据量会比较大,一天下来解码的数据会达到数GB以上。为了减少对地铁线路Wi-Fi带宽的占用,很有必要在上传数据前对数据进行压缩操作。由于MVB帧具有重复数据多的特点,通过使用bzip2软件压缩,64 kB的原始解码数据压缩后通常只有5 kB左右。

考虑到实际需要连续上传大量数据,地铁Wi-Fi网络又存在不稳定的情况,因此本系统选用FTP(文件传输协议)来实现与远程服务器的数据传输。树莓派上需要安装vsftpd软件,在开机后自动启动FTP服务连接远程服务器,同时实时监控指定文件夹下是否有待传输文件,如存在即尝试传输,传输成功后删除此本地文件。图7为传输系统的任务流程图。

图7 传输系统任务流程图

4 监测系统设计

为了实现对MVB上数据信号的远程监测,本文设计了一套基于Django框架的Web应用,并将其部署在Linux的Apache服务器上。Django是一种遵循MVC(Model View Controller)开发模式的框架[7],其模型组织结构如图8所示。根据其框架,Model.py实现数据库的创建、数据的写入,以及控制器与数据库的连接;Templates文件夹下存放与前端相关的HTML、CSS、JavaScript等文件,定义网页界面和结构;控制器中的Urls.py指定项目中各种类的调用情况;View.py中定义各种处理函数包括数据的解析、删除等。

图8 Django模型组织结构图

实现网页显示数据的基础是需要将传输系统上传的数据进行归类解析。上传数据的提取与解析流程图如图9所示。对主从帧对中的数据是否正常的判断是通过帧格式以及CRC校验来实现的。

根据系统设计,在网络通信顺畅的情况下,地铁列车MVB采集系统每次传输64 kB的MVB解码数据到远程服务器,传输时间间隔为1 s左右。对FTP文件夹下文件的检索通过使用django-crontab插件执行定时任务的方式来完成。解析得到主从帧对后,服务器会以时间、车辆号、主帧号等为字段将数据存入数据库。用户可通过访问网页查询数据库得到解析后的MVB数据,通过数据的导出可以协助进行故障情况分析以及故障预防。

图9 数据提取与解析流程图

5 系统功能测试

EDCU(车门控制单元)是一种典型的MVB设备,根据车辆的控制信号来执行车门的开关动作[8]。EDCU会收集自身以及外围电路的运行状态信息,在接收到相应主帧信号时,会将这些信息回复到MVB总线上。车门半实物仿真系统是基于Labview软件和硬件电路搭建的仿真系统,通过模拟车门正常工作状态给EDCU提供各种输入信号,根据EDCU的输出是否正常来判断其性能。本文利用EDCU和车门半实物仿真系统进行了MVB远程监测系统的测试,测试结构框图如图10所示。

本测试主要关注EDCU回复的关于门控单元状态信息的帧,此帧问询周期为128 ms,长度为256 bit。经过分析MVB设备定义表,可知此帧仅有前2个字节即前16 bit表示了当前门控器的状态信息,因此在本测试中只需关注此从帧的前16 bit。图11为监测网页查询对应端口号结果。通过测试系统对车门控制单元进行开关门仿真,观察到从帧的前16 bit也随着测试过程产生变化。0x0F00表示门控器处于在开门过程中,0x8F00表示门控器已经开门到位,数值与MVB设备定义表中的定义相符。

图10 MVB远程监测系统测试结构框图

图11 MVB远程监测系统查询结果

6 结语

本文设计了一套基于MVB总线的地铁车辆关键数据远程监测系统。利用FPGA在高速信号处理中的优势设计了MVB解码系统,结合树莓派丰富的拓展接口和高效的处理能力实现了解码数据的上传,搭建了远程Web服务器来进行人机交互和数据显示,实现了低成本、高拓展性的展示系统。利用现有的车门半实物仿真平台和EDCU进行了系统功能的测试,验证了整个数据流程的完整性以及可行性。

猜你喜欢
框图树莓解码
《解码万吨站》
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
解码eUCP2.0
基于树莓派的骑行智能头盔设计
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
电路图2017年凯迪拉克XT5
基于树莓派的远程家居控制系统的设计
算法框图的补全
响应面法优化红树莓酒发酵工艺