基于LabVIEW的应答器报文解码仿真实现

2024-05-01 14:57轲,侯艳,王
铁路通信信号工程技术 2024年4期
关键词:数据位应答器寄存器

叶 轲,侯 艳,王 通

(北京铁路信号有限公司,北京 102613)

应答器是列车运行控制系统中用于车-地通信的关键部分,是列车安全运行的重要保证。应答器报文数据作为车-地通信的信息载体,向CTCS-3 级列控系统车载设备提供位置、等级转换、建立无线通信等信息,同时对CTCS-2 级列控系统车载设备提供线路速度、线路坡度、轨道电路和临时限速等线路参数信息。应答器报文中包含如此重要的线路信息,在正式报文写入前,必须对报文的正确性进行审核。目前,报文审核还采用人工核对方式,仅能对站名、应答器编号、公里标和报文版本等基本信息进行核对,对报文数据无法核对,审核效率低,审核内容有限,同时有一定审核遗漏的风险。因此需要对报文解码方式进行深入研究,实现报文数据的解析及数据自动比对,扩展审核内容,提高报文审核效率。

1 应答器报文格式信息

应答器报文可分为长报文和短报文,其中长报文用户数据位为913,短报文用户数据位为231。为满足复杂条件下地面到车载数据的传输可靠,用户报文经过数据处理转换后,再进行传输。报文数据定义如表1 所示。

表 1 报文的格式信息Tab.1 Telegram format information

2 FFFIS解码策略

由Form Fit 功能接口规范(Form Fit Function Interface Specification,FFFIS)编码策略可以知道,在解码过程中也应该将报文分为长报文和短报文。令n为报文长度,则对于长报文,n=1 023,对于短报文,n=341。

具体解码过程如下。

STEP 1:建立报文接收窗口,长为n+r;(对于长报文,r=77,对于短报文,r=121,当窗口移动超过7 500 位时,r=n)。

STEP 2:对报文进行奇偶校验,若不能通过,返回STEP 1 并移动窗口。

STEP 3:判断窗口的最左端r位和最右端r位是否一致,若不一致,返回STEP 1 并移动窗口。

STEP 4:寻找报文的起始位置,如果找不到,返回STEP 1 并移动窗口。

STEP 5:判断由11 位数据组成的序列是否符合数值转换表里的数据,若不是则返回STEP 1 并移动窗口。

STEP 6:候选安全报文。

STEP 7:检查反转位,如果反转数据位为1,则将所有的报文数据都反转,如果反转数据位为0,则无需进行数据处理。然后检查控制位是否为001,如果不是,则表示接收到的是未知格式的报文,中止接收报文并返回“未知报文格式”的消息。

STEP 8:从最高位开始读取报文数据进行11-to-10 的转换。

STEP 9:解除扰码。

STEP 10:输出用户数据和反转数据位等所需信息。

3 应答器报文信息解码流程

根据应答器报文格式信息以及柜FFFIS 编码策略的研究,设计出应答器报文解码的流程,绘制流程框图,按流程图进行后续解码程序的编写。流程如图1 所示。

图1 报文解码流程Fig.1 Telegram decoding flow chart

4 LabVIEW状态设计

根据FFFIS 解码策略流程,在LabVIEW 中进行程序编写,LabVIEW 程序如图2 所示。具体步骤如下:

图2 LabVIEW程序柜Fig.2 LabVIEW program block diagram

STEP 1:初始化程序;

STEP 2:建立报文数据接收窗口;

STEP 3:循环结构移动数据窗;

STEP 4:循环结构数据判断;

STEP 5:输出数据;

STEP 6:结束。

其中Step4 为程序的核心部分,用于识别报文及对其进行数据处理。如图3 所示,处理机制采用并行结构,同时对信息进行检测并对检测状态进行逻辑与处理。每个检测模块相互独立,但都会响应其他模块的检测结果。如果其中某个模块先检测完毕且结果状态为“假”,则其他模块都会放弃当前工作状态,所有模块重新载入新数据进行处理,缩短了数据的处理时间。下面对其中较难实现的部分做详细说明。

图3 Step4程序柜Fig.3 Step 4 program block diagram

1)奇偶校验检查

判断接收到的报文是否能够通过奇偶校验,也就是判断接收到的数据的前n位二进制对应的多项式能否整除以g(x),即判断公式(1)是否成立。

其中,令n+r位连续窗口接收数据,其前n位数据为rn-1…r0,则对应的多项式r(x)=rn-1xn-1+rn-2xn-2+...+r1x+r0。

对于长报文来说,如公式(2)所示:

对于短报文来说,如公式(3)所示:

2)寻找报文起始位置

令由应答器发送的长为n位的数据块v=[vn-1…v0] ,v是循环移动的发送报文,如公式(4)所示:

其中b=[bn-1...b0] 为传输报文,S为偏移量。寻找报文起始位置即计算偏移量S值的大小。根据FFFIS 编码策略,S值与Rf(x)[xSo(x)] 的值存在一一映射关系,同时,由FFFIS 编码策略,如公式(5)所示:

因此只要建立一个相应的S↔Rf(x)[xSo(x)] 对应表,那么在确定Rf(x)[V(x)] 即Rf(x)[xSo(x)] 之后,就能找到对应的偏移量S。

其中,对于长报文来说,如公式(6)所示:

其中:o(x)为高阶余子式。

3)解扰

参照FFFIS 编码策略,对用户信息位的数据解扰可分为以下3 个步骤。

a.使用12 位扰乱数据位计算32 位S的二进制数值。

假设选取到的12 位扰乱数据位为b106...b95,设整数B=b106·211+…+b96·21+b95·20,定义S如公式(8)所示:

b.使用32 位线性反馈移位寄存器解扰新数据,其中寄存器初值为S的值。

使用32 位线性反馈寄存器如图4 所示,对用户数据进行解扰,输入为扰乱后的数据sm-1,sm-2...s0,输出为扰乱前的数据um′-1,um′-2...um。′S为线性反馈移位寄存器的32 位二进制初始值,图3 中的方框表示延迟单元,加号表示异或操作,系数h32,h31,h30,h29,h27,h25,h0等于1,其他系数为0,即选取的特征多项式如公式(9)所示:

图4 32位线性反馈移位寄存器Fig.4 32-bit linear feedback shift register

具体过程多项式描述如公式(10)所示:

c.计算用户数据的高10 位得到原始数据。至此解码完毕,得到报文的原始数据。

5 应答器报文信息解码的仿真实现与验证

选取1 条沪宁高铁应答器报文如图5 所示,进行仿真与验证,软件成功对报文进行解码。解码过程中获取2 进制报文数据,提取关键字段,应答器在应答器组中的位置N_PIG、报文计数器M_MCOUNT、地区编号NID_C、应答器组编号NID_BG,进行验证,如图6 所示。

图5 沪宁高铁应答器报文Fig.5 Shanghai-Nanjing high-speed railway balise telegram

图6 报文解码显示Fig.6 Telegram decoding display

通过对关键字段值与解码结果进行对比,解码正确,解码系统程序能够准确实现应答器报文关键字段的解析,如表2 所示。

表2 报文解码验证结果Tab.2 Telegram decoding verification result

对于批量报文审核,在解码系统程序的基础上,可设计自动化的报文审核软件,实现批量报文数据的快速审核,提高审核效率和准确性。

6 结束语

本文从应答器报文解析需求出发,对应答器报文信息的结构以及FFFIS 编码策略进行了深入研究。设计详细的报文解码流程图,基于LabVIEW 编写解码程序,对解码流程中奇偶校验检查、查找报文起始位置以及解扰算法3 个关键难点进行攻克,实现了对具体的应答器报文的解码仿真。

猜你喜欢
数据位应答器寄存器
A320飞机大气数据的采集和计算在排故中的应用
Lite寄存器模型的设计与实现
应答器THR和TFFR分配及SIL等级探讨
一种用于FPGA的片上可配置SRAM设计
分簇结构向量寄存器分配策略研究*
一种适用于FPGA系统中的变速箱电路设计
虚拟应答器测试方法研究
减少调度自动化设备通讯串口丢包率的措施
应答器在基于通信的列车控制系统中的应用
CTCS-3至CTCS-2等级转换应答器组布置