摘 要:针对目前CBTC测试平台中各仿真子系统存在接入难和复用性差等问题,以车辆仿真子系统为例,设计一种基于Linux的车辆仿真子系统接口适配器。首先根据接口适配器的通用性,提出硬件接入层和软件逻辑层的设计模型;然后在硬件接入层部分完成接口适配器和车辆仿真子系统与CBTC测试平台之间的信息配置和交互过程;其次在软件逻辑层部分,设计基于Linux平台的BSP驱动开发流程,实现信息转换和传递功能。最后将车辆仿真子系统的接口适配器接入到CBTC测试平台中,通过使用试验线的数据以及动车组数据进行调试,研究结果表明:接口适配器输出的速度脉冲误差在2%以内,满足CBTC测试仿真平台的性能要求。
关键词:CBTC测试平台;车辆仿真子系统;接口适配器;功能;调试
基于通信的列车控制系统(Communication- based Train Control System, CBTC)采用了先进的通信和计算机技术,可以连续控制、监测列车运行,在国内各大城市已被广泛采用:如北京、广州、上海、武汉、沈阳等,成为城市轨道交通控制系统的首选[1]。由于CBTC系统的结构复杂、工程量大、投资高,验证CBTC系统功能的可靠性和可用性较为困难,因此需要设计一个CBTC测试系统对其可靠性和可用性进行测试[2]。城市轨道交通仿真测试技术的研究在国外发展比较早,美国、德国和日本等国家先后研发了CBTC系统的模拟软件[3]。近几年,国内的一些大学和研究机构开始对CBTC系统的研究[4],同济大学开发了车站通用信号仿真系统;北京理工大学与中国铁路通信信号集团开发了列车自动运行仿真系统SATM;同时部分研究人员对城轨列车运行进行了三维建模[5−6]。这些研究为CBTC仿真测试平台的研究和实现提供了理论依据和方法,但是由于以上研究都是基于纯软件仿真环境下的,测试不同的车站、线路和车辆时,都需要重新修改参数,过程较为繁琐。因此研究设计一个通用的CBTC仿真测试平台具有重要意义。研究表明,CBTC测试平台的通用性更多地取决于接口适配器的通用性,本文以车辆仿真子系为例,研究并设计CBTC测试平台车辆子系统的接口适配器,解决了真实的被测设备接入时接口不通用的问题,同时将接口的接入功能从车辆仿真子系统中分割开来,完成系统的解耦,提高开发效率,进而提高测试效率,节约成本,最大程度上满足了车载设备和CBTC测试平台之间的信息交互的需求。
1 CBTC仿真测试平台及其子系统
1.1 CBTC仿真测试平台
CBTC系统是城市轨道交通系统中用于保证行车安全和效率的系统,系统设备故障或者异常都会发生行车不安全事件,同时影响运行效率。随着列车速度越来越快,列车数量越来越多,CBTC系统也同时表现出系统化、网络化、信息化和智能化等特点。因此,CBTC系统必须要进行全面的、细致的测试与验证。列车运行控制系统仿真平台的设计包括功能和原理仿真、关键设备测试、总体方案验证和维护支持和仿真培训。仿真测试平台整体贯彻“硬件最小化,功能最大化”的最小系统的思想[7]。CBTC仿真测试平台包括线路数据服务器、车辆仿真子系统、列车群仿真子系统、测试系统网络服务器、真实车站设备和仿真车站设备,可以完成CBTC系统的自动列车监督(Automatic Train Supervision, ATS)子系统、车站设备、轨旁设备、车载设备和网络通信设备的功能[7],如图1所示。
图1 CBTC测试平台结构图
Fig. 1 CBTC test platform structure
1.2 车辆仿真子系统
在实际运行场景中车载列车自动防护子系统(Automatic Train Protection, ATP)设备负责列车运行安全的设备,根据从车站设备获取的移动授权信息及线路上的障碍物信息,结合与车站设备进行了版本校验的电子地图,列车自动防护设备将对列车的安全运行行为进行监控,一旦出现威胁列车运行安全的情况,列车自动防护设备将立刻采取措施,保证列车运行安全。
在CBTC仿真测试平台中,车辆仿真子系统主要通过完成车载ATP传输的自动控制命令,实现列车的实际运行场景模拟,同时为测试人员提供仿真驾驶台界面,可以在测试时控制仿真列车的运行。
2 车辆仿真子系统接口适配器的设计
接口适配器是一种接口转换器,通过硬件电路板来实现硬件接口和测试设备之间的数据传输。接口适配器主要应用于当系统无法完成当前要求时,作为纽带来完成剩下的任务。接口适配器主要分为计算机总线类接口适配器和专用接口适配器[8]。
车辆仿真子系统采用专用型接口适配器,专用型接口适配器采用主处理单元板设计模式,利用DSP+FPGA[9−10]模块,使用标准接插件导出具体使用的总线,从而满足要求的传输协议、使用的总线协议和通用协议的测试需求。
2.1 接口适配器的设计原则
由于CBTC系统庞大,因此各子系统之间的接口设计应该符合一定的原则,从而使整个系统逻辑性更强[11]。除此之外,CBTC仿真测试平台的各子系统之间的信息交互也需要遵循一定的原则。相关规则如下所示。
1) 物理接口
接口使用符合IEEE 802.3标准的Ethernet 10/ 100baseT冗余以太网络,采用全双工工作模式,使用Big Endian编码模式。
2) 通信协议
通信协议如表1所示。
表1 通信协议
Table 1 Communication protocol
2.2 接口适配器的结构
通过对CBTC系统仿真测试平台的分析,CBTC测试系统主要完成对不同信号系统、不同线路和不同列车完成较高的仿真测试。接口适配器主要负责CBTC系统中的ATP系统与测试平台的接入、信息转换和传输等任务。同时可以使CBTC测试平台更加逻辑紧密,完成对接入CBTC测试系统真实的设备逻辑性、安全性和可靠性的测试。
接口适配器通过动态的轨旁设备配置,接收线路数据库(电子地图)发送的线路信息,可以接收车载ATP对牵引力、制动力以及车门等的控制命令,并传送给车辆运动仿真系统,同时接收车辆运动仿真系统的应答器报文和速度传感器测速信息,如图2所示。
图2 接口适配器结构图
Fig. 2 Structure of the interface adapter
2.3 接口适配器的实现
接口适配器的实现分为硬件接入层和软件逻辑层。其中,硬件接入层是真实的CBTC子设备的串口接入和继电器接入以及以太网和串口接入;软件逻辑层主要完成CBTC测试平台和车载子系统之间的信息转换。
2.3.1 硬件接入层
接口适配器的硬件部分主要完成状态信息转换功能、控制命令转换功能和应答器报文转换功能。对于完成状态信息转换部分,主要是接口适配器与真实轨旁/车载ATP设备和接口适配器与仿真轨旁/车载ATP设备进行信息交互的功能;对于完成控制命令转换功能,主要是接口适配器与真实轨旁/车载ATP设备和接口适配器与仿真轨旁/车载ATP设备进行的控制命令的下发和接收过程;对于应答器报文转换部分来说,接口适配器不定期接收轨旁ATP设备发送的应答器报文信息。通过分析这些信息类型设计如图3所示的接口适配器主板,主板上从左至右、从上到下依次是电源接口、串行RS232接口、USB接口、LED接口、以太网接口、背板连接接口和信号接口,其中中间4部分是插入功能子板的槽位,从上而下依次是MF板、CAN &RS232&link板、RS422&RS485& link和MVB板,用来处理相关数据流[10−11]。
图3 接口适配器的主板
Fig. 3 Motherboard of the interface adapter
为了完成与CBTC其他子系统的物理接入,设计3种链接板,分别是DI板、DO板和PO板,为了满足大量且质量要求严格的数据传输需求,本文选用2块DI板,2块DO板,1块PO板,3种链接I/O板的具体功能为:
1) 每个DI板支持24路开关量输入。其中每块板卡的前16路DI输入为隔离输入,后8路为共地输入;
2) 每个DO板支持24路开光量输入。其中前8路彼此隔离,后16路共地共激励电压;
3) 每个PO板上支持5组,每路包括3路频率相同、相邻相位差可调的脉冲输出信号。
2.3.2 接口适配器软件逻辑层
选用PowerPC5200BSamba开发板[12],硬件平台的板级支持包(Board Support Package, BSP)为Linux应用软件开发,采用Makefile对软件代码进行组成。针对DO/DI/PO板对应设备文件/dev/sbpXX的操作为基础的Linux文件操作,使用open/read/ write/close等函数。
系统采用模块化的设计思路,将接口适配器和车辆子系统以及之间的数据分模块处理,在Linux编程的软件上面建立多条线程,如图4所示[13]。首先对相关FPGA进行初始化,进行网络对时,创建线程,初始化链接DO/DI/PO板,等待命令,解析命令,根据通信协议,选择传输方式,执行命令,向上位机回执,查看是否还有信息,如果有,则返回到查询是否为控制命令,如果不是,则断开连接。
DO/DI/PO板的具体功能是由read/write的字节流具体定义实现的,用于传递针对DO/DI/PO板操作的具体执行操作。
字节流的结构定义如下:
struct sbp_pkt{
unsigned short obj_reg_index; 链接板相关寄存器号
unsigned short obj_reg_h; //DO/DI/PO链接板相关寄存器的值
unsigned short obj_reg_l; //DO/DI/PO链接板相关寄存器的值
unsigned short pkt_end; //字节流间隔标志字符
}
DO/DI/PO板的read/write均以“寄存器—寄存器值”的组合传递的,在DO/DI/PO板中均定义了一系列读/写寄存器,用于具体功能的操作。当需要对DO/DI/PO板进行设置或者写操作时,按照字节流结构体的格式编辑字节流数据包,使用write函数写设备文件的描述符,实现写寄存器的操作。DO/DI/PO板均设置触发寄存器,当在Linux中写触发寄存器时,将触发相应板卡把所有的读寄存器状态立即全部推送至Linux系统中。
图4 BSP软件流程图
Fig. 4 BSP software flow chart
3 实例分析
3.1 接口适配器调试环境搭建
将接口适配器接入到车辆仿真子系统中,然后把整个子系统接入到CBTC测试平台中。工控机和接口适配器使用局域网进行连接,工控机上安装了VMware虚拟机、centOS、SSH Secure、SCRT等软件,用于调试接口适配器。图5中显示的是接口适配器初始化和自检状态,图6是使用SCRT对接口适配器进行功能调试,示波器显示的是PO板输出的当前速度脉冲。
3.2 实例验证
接入某城市试验线路和动车组进行测试,在实验室环境下,将系统接入CBTC仿真测试平台中,根据当前的CBTC系统的控制模式实时地向车辆仿真子系统传输牵引力或者制动力信息,电子地图向车辆仿真子系统输入当前线路的线路信息,上位机软件计算出当前速度,接口适配器将采集到的速度转换成脉冲通过PO板将脉冲传输到车载ATP中,将接口适配器采集到的速度和上位机计算的速度相比较,得到接口适配器产生的误差在2%以内,满足CBTC系统的性能要求。
图5 SCRT调试界面
Fig. 5 SCRT debugging interface
图6 车辆仿真系统调试平台
Fig. 6 Vehicle simulation system debugging platform
图7所示的是受限驾驶模式(Restricted Train Operating Mode, RM)升级到受控人工驾驶(Code Train Operating Mode, CM)模式下,车载控制器(Vehicle on-board Controller, VOBC)模拟系统的界面。通过与CBTC测试平台的其他子系统和被测设备进行联合调试,印证了该车载仿真子系统具有完备性。
图7 VOBC模拟系统界面
Fig. 7 VOBC simulation system interface
4 结论
1) 使子系统和CBTC测试平台隔离开来,降低了系统的复杂度,提高了通用性,而且占用空间小,成本低,符合对接口设计的要求。
2) 该系统和测试线路的数据误差在2%以内,且系统适用于不同厂家,通用性强,可以满足CBTC测试平台的性能要求。
3) 基于Linux的接口适配器弥补了原有仿真测试平台的接入难、复用性差的不足,提升了测试平台的可拓展性,对CBTC测试平台设计具有实际意义。