葉 軻,侯 艷,王 通
(北京鐵路信號(hào)有限公司,北京 102613)
應(yīng)答器是列車運(yùn)行控制系統(tǒng)中用于車-地通信的關(guān)鍵部分,是列車安全運(yùn)行的重要保證。應(yīng)答器報(bào)文數(shù)據(jù)作為車-地通信的信息載體,向CTCS-3 級(jí)列控系統(tǒng)車載設(shè)備提供位置、等級(jí)轉(zhuǎn)換、建立無線通信等信息,同時(shí)對(duì)CTCS-2 級(jí)列控系統(tǒng)車載設(shè)備提供線路速度、線路坡度、軌道電路和臨時(shí)限速等線路參數(shù)信息。應(yīng)答器報(bào)文中包含如此重要的線路信息,在正式報(bào)文寫入前,必須對(duì)報(bào)文的正確性進(jìn)行審核。目前,報(bào)文審核還采用人工核對(duì)方式,僅能對(duì)站名、應(yīng)答器編號(hào)、公里標(biāo)和報(bào)文版本等基本信息進(jìn)行核對(duì),對(duì)報(bào)文數(shù)據(jù)無法核對(duì),審核效率低,審核內(nèi)容有限,同時(shí)有一定審核遺漏的風(fēng)險(xiǎn)。因此需要對(duì)報(bào)文解碼方式進(jìn)行深入研究,實(shí)現(xiàn)報(bào)文數(shù)據(jù)的解析及數(shù)據(jù)自動(dòng)比對(duì),擴(kuò)展審核內(nèi)容,提高報(bào)文審核效率。
應(yīng)答器報(bào)文可分為長報(bào)文和短報(bào)文,其中長報(bào)文用戶數(shù)據(jù)位為913,短報(bào)文用戶數(shù)據(jù)位為231。為滿足復(fù)雜條件下地面到車載數(shù)據(jù)的傳輸可靠,用戶報(bào)文經(jīng)過數(shù)據(jù)處理轉(zhuǎn)換后,再進(jìn)行傳輸。報(bào)文數(shù)據(jù)定義如表1 所示。

表 1 報(bào)文的格式信息Tab.1 Telegram format information
由Form Fit 功能接口規(guī)范(Form Fit Function Interface Specification,F(xiàn)FFIS)編碼策略可以知道,在解碼過程中也應(yīng)該將報(bào)文分為長報(bào)文和短報(bào)文。令n為報(bào)文長度,則對(duì)于長報(bào)文,n=1 023,對(duì)于短報(bào)文,n=341。
具體解碼過程如下。
STEP 1:建立報(bào)文接收窗口,長為n+r;(對(duì)于長報(bào)文,r=77,對(duì)于短報(bào)文,r=121,當(dāng)窗口移動(dòng)超過7 500 位時(shí),r=n)。
STEP 2:對(duì)報(bào)文進(jìn)行奇偶校驗(yàn),若不能通過,返回STEP 1 并移動(dòng)窗口。
STEP 3:判斷窗口的最左端r位和最右端r位是否一致,若不一致,返回STEP 1 并移動(dòng)窗口。
STEP 4:尋找報(bào)文的起始位置,如果找不到,返回STEP 1 并移動(dòng)窗口。
STEP 5:判斷由11 位數(shù)據(jù)組成的序列是否符合數(shù)值轉(zhuǎn)換表里的數(shù)據(jù),若不是則返回STEP 1 并移動(dòng)窗口。
STEP 6:候選安全報(bào)文。
STEP 7:檢查反轉(zhuǎn)位,如果反轉(zhuǎn)數(shù)據(jù)位為1,則將所有的報(bào)文數(shù)據(jù)都反轉(zhuǎn),如果反轉(zhuǎn)數(shù)據(jù)位為0,則無需進(jìn)行數(shù)據(jù)處理。然后檢查控制位是否為001,如果不是,則表示接收到的是未知格式的報(bào)文,中止接收?qǐng)?bào)文并返回“未知報(bào)文格式”的消息。
STEP 8:從最高位開始讀取報(bào)文數(shù)據(jù)進(jìn)行11-to-10 的轉(zhuǎn)換。
STEP 9:解除擾碼。
STEP 10:輸出用戶數(shù)據(jù)和反轉(zhuǎn)數(shù)據(jù)位等所需信息。
根據(jù)應(yīng)答器報(bào)文格式信息以及柜FFFIS 編碼策略的研究,設(shè)計(jì)出應(yīng)答器報(bào)文解碼的流程,繪制流程框圖,按流程圖進(jìn)行后續(xù)解碼程序的編寫。流程如圖1 所示。

圖1 報(bào)文解碼流程Fig.1 Telegram decoding flow chart
根據(jù)FFFIS 解碼策略流程,在LabVIEW 中進(jìn)行程序編寫,LabVIEW 程序如圖2 所示。具體步驟如下:

圖2 LabVIEW程序柜Fig.2 LabVIEW program block diagram
STEP 1:初始化程序;
STEP 2:建立報(bào)文數(shù)據(jù)接收窗口;
STEP 3:循環(huán)結(jié)構(gòu)移動(dòng)數(shù)據(jù)窗;
STEP 4:循環(huán)結(jié)構(gòu)數(shù)據(jù)判斷;
STEP 5:輸出數(shù)據(jù);
STEP 6:結(jié)束。
其中Step4 為程序的核心部分,用于識(shí)別報(bào)文及對(duì)其進(jìn)行數(shù)據(jù)處理。如圖3 所示,處理機(jī)制采用并行結(jié)構(gòu),同時(shí)對(duì)信息進(jìn)行檢測(cè)并對(duì)檢測(cè)狀態(tài)進(jìn)行邏輯與處理。每個(gè)檢測(cè)模塊相互獨(dú)立,但都會(huì)響應(yīng)其他模塊的檢測(cè)結(jié)果。如果其中某個(gè)模塊先檢測(cè)完畢且結(jié)果狀態(tài)為“假”,則其他模塊都會(huì)放棄當(dāng)前工作狀態(tài),所有模塊重新載入新數(shù)據(jù)進(jìn)行處理,縮短了數(shù)據(jù)的處理時(shí)間。下面對(duì)其中較難實(shí)現(xiàn)的部分做詳細(xì)說明。

圖3 Step4程序柜Fig.3 Step 4 program block diagram
1)奇偶校驗(yàn)檢查
判斷接收到的報(bào)文是否能夠通過奇偶校驗(yàn),也就是判斷接收到的數(shù)據(jù)的前n位二進(jìn)制對(duì)應(yīng)的多項(xiàng)式能否整除以g(x),即判斷公式(1)是否成立。
其中,令n+r位連續(xù)窗口接收數(shù)據(jù),其前n位數(shù)據(jù)為rn-1…r0,則對(duì)應(yīng)的多項(xiàng)式r(x)=rn-1xn-1+rn-2xn-2+...+r1x+r0。
對(duì)于長報(bào)文來說,如公式(2)所示:
對(duì)于短報(bào)文來說,如公式(3)所示:
2)尋找報(bào)文起始位置
令由應(yīng)答器發(fā)送的長為n位的數(shù)據(jù)塊v=[vn-1…v0] ,v是循環(huán)移動(dòng)的發(fā)送報(bào)文,如公式(4)所示:
其中b=[bn-1...b0] 為傳輸報(bào)文,S為偏移量。尋找報(bào)文起始位置即計(jì)算偏移量S值的大小。根據(jù)FFFIS 編碼策略,S值與Rf(x)[xSo(x)] 的值存在一一映射關(guān)系,同時(shí),由FFFIS 編碼策略,如公式(5)所示:
因此只要建立一個(gè)相應(yīng)的S?Rf(x)[xSo(x)] 對(duì)應(yīng)表,那么在確定Rf(x)[V(x)] 即Rf(x)[xSo(x)] 之后,就能找到對(duì)應(yīng)的偏移量S。
其中,對(duì)于長報(bào)文來說,如公式(6)所示:
其中:o(x)為高階余子式。
3)解擾
參照FFFIS 編碼策略,對(duì)用戶信息位的數(shù)據(jù)解擾可分為以下3 個(gè)步驟。
a.使用12 位擾亂數(shù)據(jù)位計(jì)算32 位S的二進(jìn)制數(shù)值。
假設(shè)選取到的12 位擾亂數(shù)據(jù)位為b106...b95,設(shè)整數(shù)B=b106·211+…+b96·21+b95·20,定義S如公式(8)所示:
b.使用32 位線性反饋移位寄存器解擾新數(shù)據(jù),其中寄存器初值為S的值。
使用32 位線性反饋寄存器如圖4 所示,對(duì)用戶數(shù)據(jù)進(jìn)行解擾,輸入為擾亂后的數(shù)據(jù)sm-1,sm-2...s0,輸出為擾亂前的數(shù)據(jù)um′-1,um′-2...um?!銼為線性反饋移位寄存器的32 位二進(jìn)制初始值,圖3 中的方框表示延遲單元,加號(hào)表示異或操作,系數(shù)h32,h31,h30,h29,h27,h25,h0等于1,其他系數(shù)為0,即選取的特征多項(xiàng)式如公式(9)所示:

圖4 32位線性反饋移位寄存器Fig.4 32-bit linear feedback shift register
具體過程多項(xiàng)式描述如公式(10)所示:
c.計(jì)算用戶數(shù)據(jù)的高10 位得到原始數(shù)據(jù)。至此解碼完畢,得到報(bào)文的原始數(shù)據(jù)。
選取1 條滬寧高鐵應(yīng)答器報(bào)文如圖5 所示,進(jìn)行仿真與驗(yàn)證,軟件成功對(duì)報(bào)文進(jìn)行解碼。解碼過程中獲取2 進(jìn)制報(bào)文數(shù)據(jù),提取關(guān)鍵字段,應(yīng)答器在應(yīng)答器組中的位置N_PIG、報(bào)文計(jì)數(shù)器M_MCOUNT、地區(qū)編號(hào)NID_C、應(yīng)答器組編號(hào)NID_BG,進(jìn)行驗(yàn)證,如圖6 所示。

圖5 滬寧高鐵應(yīng)答器報(bào)文Fig.5 Shanghai-Nanjing high-speed railway balise telegram

圖6 報(bào)文解碼顯示Fig.6 Telegram decoding display
通過對(duì)關(guān)鍵字段值與解碼結(jié)果進(jìn)行對(duì)比,解碼正確,解碼系統(tǒng)程序能夠準(zhǔn)確實(shí)現(xiàn)應(yīng)答器報(bào)文關(guān)鍵字段的解析,如表2 所示。

表2 報(bào)文解碼驗(yàn)證結(jié)果Tab.2 Telegram decoding verification result
對(duì)于批量報(bào)文審核,在解碼系統(tǒng)程序的基礎(chǔ)上,可設(shè)計(jì)自動(dòng)化的報(bào)文審核軟件,實(shí)現(xiàn)批量報(bào)文數(shù)據(jù)的快速審核,提高審核效率和準(zhǔn)確性。
本文從應(yīng)答器報(bào)文解析需求出發(fā),對(duì)應(yīng)答器報(bào)文信息的結(jié)構(gòu)以及FFFIS 編碼策略進(jìn)行了深入研究。設(shè)計(jì)詳細(xì)的報(bào)文解碼流程圖,基于LabVIEW 編寫解碼程序,對(duì)解碼流程中奇偶校驗(yàn)檢查、查找報(bào)文起始位置以及解擾算法3 個(gè)關(guān)鍵難點(diǎn)進(jìn)行攻克,實(shí)現(xiàn)了對(duì)具體的應(yīng)答器報(bào)文的解碼仿真。