一种基于Socket通信的车载设备MVB仿真方法

2022-07-25 13:35孙二敬张国振张振兴
铁路通信信号工程技术 2022年7期
关键词:以太网数据包端口

孙二敬,张国振,张振兴

(1.北京全路通信信号研究设计院集团有限公司,北京 100070;2.北京市高速铁路运行控制系统工程技术研究中心,北京 100070)

1 概述

列车控制通信网络(TCN)规定列车通信网络分为多功能车辆总线(MVB)和铰链式列车总线(WTB)。MVB 是总线拓扑结构,专用于车辆内部车载设备间通信。由于具有实时传输的特点,可以满足高速铁路行业稳定性等方面的要求,MVB 在列控车载列车自动防护(ATP)系统设备间通信应用较为普遍,例如车载主机与应答器信息接收单元(BTM)之间、车载主机与人机界面单元(DMI)之间通过MVB 进行数据交互,车载设备通过 MVB采集列车的接口信息及发送列车接口命令等。

在列控车载设备ATP 开发及维护过程中,要在实验室搭建MVB,需要总线控制器、网关、转发器、连接器和端接器等一系列硬件支持,成本高,实施难度大,而在PC 机调试阶段,从技术和成本上更是很难使用真实的MVB。

为解决此问题,本文设计了一种基于Socket通信的车载设备MVB 仿真方法。此方法使用以太网替代真实的MVB 通信,可以大大降低调试试验阶段试验环境搭建难度和成本,提高试验调试效率。

2 MVB仿真设计

2.1 MVB数据传输过程

如图 1 所示,MVB 数据传输具有固定的数据端口,车载设备间通过MVB 通信需要先将数据按照通信协议打包,根据端口号1 到n的地址将数据存入相应MVB 端口,其他设备根据需求可以随时从相应端口读取到最新数据,实现数据的传输与周期性刷新。

图1 MVB数据传输过程Fig.1 Process of MVB data transmission

2.2 MVB仿真方法的提出

Socket 数据传输过程如图 2 所示。从图2 中可以看出,Socket 是通过“打开—读/写—关闭”的模式,实现点对点的通信。Socket 传输数据为字节级,传输数据长度可自定义,这为仿真MVB 通信传输数据兼容MVB 数据提供了可行性。

图2 Socket数据传输过程Fig.2 Process of Socket data transmission

但是与MVB 不同的是,MVB 进行数据传输时,发送数据的总线设备以一定时间间隔输出数据,刷新端口。此数据可以在端口保持,直到该MVB数据端口被刷新,新的数据替代旧数据。当其他总线设备需要此数据时,读取相应端口,即可得到最新的端口数据。而Socket 传输数据为一次性读取,数据无法在端口保持,读取方通过Socket 端口读取一次数据后,无法通过以太网接口函数再次读取该数据。为了在以太网通信环境下模拟设备应用软件的MVB 交互式数据传输,在设备应用软件底层增加一层虚拟MVB 软件,可实现设备应用软件MVB 相关接口函数的仿真,如图3 所示。

图3 虚拟MVB软件示意Fig.3 Diagram of virtual MVB software

2.3 MVB仿真功能设计

MVB 仿真系统数据交互传输过程如图4 所示。

图4 MVB仿真数据交互示意Fig.4 Diagram of interaction between MVB simulation data

1)设备A/B(软件程序)调用MVB 相关接口函数以一定时间间隔xms 写端口,该端口为虚拟MVB 软件中的虚拟端口。

2)每隔yms,设备A/B 虚拟MVB 软件将所有虚拟端口的数据按照一定协议格式组成Socket数据包,经以太网发送至设备B/A。

3)设备B/A 虚拟MVB 软件通过监听Socket端口,读取步骤2)中发送的以太网数据,按照一定协议格式拆分Socket 数据包,分别存入MVB 虚拟端口。

4)设备B/A(软件程序)调用MVB 相关接口函数以一定时间间隔yms 读端口,该端口为虚拟MVB 软件中的虚拟端口。

为保证数据传输的完整性和实时性,y应小于或等于x。

3 虚拟MVB软件模块设计

虚拟MVB 软件架构及数据流程如图 5 所示,虚拟MVB 软件主要由以下模块组成。

图5 虚拟MVB 软件架构及数据流程Fig.5 Virtual MVB software architecture and data process

1)数据发送管理模块:此模块采用虚拟端口模拟MVB 端口接收MVB 数据,主要实现设备A 或设备B 多个MVB 端口的写入数据功能,并将数据进行缓存,根据任务调度,组织发送端口数据。

2)数据组包模块:此模块将数据发送管理模块中组织发送的多个端口数据组成Socket 数据包,Socket 数据包组成如图 6 所示。

图6 Socket数据包Fig.6 Socket data packet

数据组包模块将多个需同步传输的MVB 数据及端口号信息,组合为一个Socket 数据包,并在Socket 数据包包头中写入MVB 数据标识,发送到以太网,保证在数据传递过程中可以根据端口号实时更新数据。

3)数据传输模块:此模块将数据组包模块组成的数据包通过Socket 通信发送到设备B 或设备A。

MVB 采用物理存储,定期刷新数据方式,保证设备接收到最新数据;在模拟MVB 传输过程中,Socket 数据包存储于固定内存空间, Socket 数据传输时间应小于或等于MVB 相关接口函数写端口时间,保证最新数据实时传输,不丢数据和数据不被修改。

4)数据解包模块:设备B 或设备A 接收到以太网的Socket 数据包,通过MVB 数据标识识别为MVB 信息包,按照规定的协议,解析为不同MVB端口的数据,分别存入相应虚拟MVB 端口数据缓存,供外部软件以读取MVB 端口的方式读取。

5)数据读取管理模块:周期读取虚拟MVB 端口缓存,实现设备B 或设备A 的MVB 端口读取数据功能。

4 结语

本文的设计方法以车载设备通信环境模拟为主,基于以太网Socket 通信模拟MVB 进行数据传输与更新,在MVB 硬件条件不足时,可满足设备软件程序的调试要求,并保证数据传输的完整性和实时性,大大提高开发和调试效率,减少开发调试环境搭建成本。

猜你喜欢
以太网数据包端口
华为交换机端口Hybrid 模式的应用
二维隐蔽时间信道构建的研究*
一种有源二端口网络参数计算方法
Microchip推出首款车载以太网音视频桥接(AVB)全集成解决方案
一种端口故障的解决方案
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
隔离型三端口变换器的H∞鲁棒控制
C#串口高效可靠的接收方案设计
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代