劉 頡,易靈芝,申 慧,吳赟
(湘潭大學(xué),湖南湘潭,411105)
列車通信網(wǎng)絡(luò)(TCN)集高速列車控制、狀態(tài)監(jiān)測與故障診斷系統(tǒng)以及旅客信息服務(wù)系統(tǒng)等為一體,以車載微機(jī)為主要技術(shù)手段,將這些系統(tǒng)產(chǎn)生的大量列車信息轉(zhuǎn)換為統(tǒng)一的數(shù)字信息進(jìn)入車載微機(jī)并在網(wǎng)上交換,從而保證了列車高速、穩(wěn)定、安全的運(yùn)行。目前它已形成國際標(biāo)準(zhǔn),在世界各國鐵路上得到了廣泛的應(yīng)用。然而,同一列車中的TCN產(chǎn)品往往由不同的供應(yīng)商提供,各廠商提供的TCN產(chǎn)品在互聯(lián)過程中,經(jīng)常會遇到不明原因的通信異常情況,為分析網(wǎng)絡(luò)故障原因,需要一種能長時間完整記錄TCN數(shù)據(jù)的設(shè)備。基于此,本文提出一種基于邏輯分析儀的TCN數(shù)據(jù)采集與分析的方法,利用安捷倫邏輯分析儀16801A的跳變存儲方式實現(xiàn)TCN數(shù)據(jù)的長時間采集,并通過LabVIEW圖形化編程軟件編制解碼分析程序,將TCN原始數(shù)據(jù)解碼成對應(yīng)的TCN報文,從而實現(xiàn)網(wǎng)絡(luò)通信故障的快速高效排查,以保障列車的安全運(yùn)行。
傳統(tǒng)的TCN數(shù)據(jù)的采集與分析有兩種方法,一種是利用TCN網(wǎng)絡(luò)模塊實現(xiàn)數(shù)據(jù)記錄,如株洲南車時代電氣股份有限公司DTECS系統(tǒng)中的ERM,該類設(shè)備能長時間記錄網(wǎng)絡(luò)通信過程中的過程數(shù)據(jù),但也有一定的局限性,如無法記錄監(jiān)視數(shù)據(jù)、消息數(shù)據(jù)及異常幀。另一種是基于示波器開發(fā)的TCN數(shù)據(jù)分析儀,該類設(shè)備能完整的記錄通信過程中的所有數(shù)據(jù),但因為示波器的采樣頻率一般較高,且存儲深度有限,記錄時間很短,一般記錄時間為幾百微秒到幾秒。
基于上述研究現(xiàn)狀及問題,本文提出了一種基于邏輯分析儀的TCN數(shù)據(jù)采集與分析的方法,它具有以下特點(diǎn):
1) 采集時間長,最大采樣時間可達(dá)20分鐘;
2) 記錄數(shù)據(jù)全,能正確解析出TCN網(wǎng)絡(luò)中傳輸?shù)倪^程數(shù)據(jù)、監(jiān)視數(shù)據(jù)、消息數(shù)據(jù)及異常數(shù)據(jù)。
典型的TCN數(shù)據(jù)采集的硬件拓?fù)淙鐖D 1所示。按照不同的采集對象選擇合適的測試夾具接入TCN網(wǎng)絡(luò),將邏輯分析儀的探頭連接至測試夾具引出的信號線,實現(xiàn)數(shù)據(jù)的實時采集。
圖1 TCN數(shù)據(jù)采集的硬件拓?fù)?/p>
系統(tǒng)軟件為一套運(yùn)行在計算機(jī)上的TCN解碼分析程序,程序利用LabVIEW圖形化開發(fā)環(huán)境編寫,以數(shù)據(jù)流驅(qū)動程序的運(yùn)行,將邏輯分析儀采集的原始數(shù)據(jù)進(jìn)行分析,利用各個過閾值點(diǎn)的時間來計算各段高低電平的持續(xù)時間,進(jìn)而實現(xiàn)波形解析。
用于TCN數(shù)據(jù)采集的儀器為安捷倫16801A邏輯分析儀,是由美國安捷倫科技有限公司生產(chǎn)的一款便攜式邏輯分析儀,支持同時測量34個邏輯通道,最大定時采樣率為1.0GHz(半通道)/500MHz(全通道),最大存儲深度32M。16801A支持跳變存儲(transitions/store qualified)方式記錄波形數(shù)據(jù),該方式所記錄的原始數(shù)據(jù)僅僅包括過閾值的狀態(tài)和跳變時間,以圖 2為例,存在3處過閾值點(diǎn)。過『點(diǎn)1』后記為低電平0,并記錄跳變時間T1;過『點(diǎn)2』后記為高電平1,并記錄跳變時間T2;過『點(diǎn)3』后記為低電平0,并記錄跳變時間T3。
圖2 安捷倫16801A邏輯分析儀跳變存儲
這種數(shù)據(jù)記錄方法和利用示波器采集數(shù)據(jù)相比,保存的信息要少得多,因此能夠一次性采集較長時間的信號。
TCN數(shù)據(jù)的解碼分析程序的具體執(zhí)行流程如圖 3所示。程序開始運(yùn)行時,通過用戶界面選擇所需解碼的TCN數(shù)據(jù)類型,根據(jù)用戶選擇信息,分別調(diào)用MVB或WTB的解碼配置信息。程序讀取邏輯分析儀采集的原始數(shù)據(jù),將原始數(shù)據(jù)進(jìn)行整理并轉(zhuǎn)化為GB/ T 28029.1定義的數(shù)據(jù)符及非數(shù)據(jù)符,根據(jù)解碼配置轉(zhuǎn)化為相應(yīng)的位編碼,由位編碼信息判定數(shù)據(jù)幀為正常幀還是異常幀,并執(zhí)行幀解碼操作,最后將解碼后的數(shù)據(jù)寫入TXT文本,解碼分析程序執(zhí)行完成。
由于MVB解碼和WTB解碼擁有相似的過程,僅在位編碼轉(zhuǎn)換為幀數(shù)據(jù)時存在區(qū)別,因此,本文將不分開進(jìn)行描述。
邏輯分析儀單次采集所導(dǎo)出的數(shù)據(jù)記錄可達(dá)到上百字節(jié),如果一次性全部讀入程序,將影響程序運(yùn)行速度甚至造成內(nèi)存不足;所以需要從前往后讀取數(shù)據(jù)記錄,每次讀取一定量的數(shù)據(jù),并記錄當(dāng)前所讀取到的位置,供下次迭代時從指定的位置開始讀取;把單次讀取的原始數(shù)據(jù)解析為高低電平序列,然后逐步拼接,最后得到完整的高低電平序列。
LabVIEW中文件讀取函數(shù)受到初始讀取位置的影響,程序在每次迭代時,重新設(shè)置當(dāng)前讀取位置,保證當(dāng)前所讀數(shù)據(jù)為上一次數(shù)據(jù)之后的那段,相關(guān)后面板程序框圖見圖 4:
圖4 設(shè)置讀取位置
邏輯分析儀采集的原始數(shù)據(jù)記錄以標(biāo)準(zhǔn)CSV文本格式保存,數(shù)據(jù)之間使用逗號分隔,將讀取的原始數(shù)據(jù)轉(zhuǎn)化為二維數(shù)組,方便程序進(jìn)行后續(xù)處理。如圖 5,為經(jīng)過原始數(shù)據(jù)格式整理后,轉(zhuǎn)換為二維數(shù)組形式的原始數(shù)據(jù)。
圖5 轉(zhuǎn)化為二維數(shù)組形式的原始數(shù)據(jù)
圖6部分后面板代碼將把上述二維數(shù)組拆分為兩個一維數(shù)組,分別為各個過閾值后的高低電平判斷和過閾值時間數(shù)組。每次循環(huán)獲取相鄰兩個閾值時間,并將它們相減,即計算兩個過閾值點(diǎn)的時間差。
其中,時間轉(zhuǎn)換VI的功能是將字符串形式的時間轉(zhuǎn)換為以納秒為單位的數(shù)字,例如:將“-24 ms”轉(zhuǎn)化為“-2.4E+7”。
圖3 TCN數(shù)據(jù)的解碼分析流程
如果前后兩次過閾值點(diǎn)時間差較大(除以500ns并取整后,大于等于5),可以認(rèn)為這兩處過閾值點(diǎn)分別為某幀的幀尾和該幀之后的幀頭。
● 如果為上述情況,將該段電平序列記為“#”,表示閑置電平,非幀數(shù)據(jù);另外,將后面幀的過閾值時間保存下來,作為后面幀的起始時間。
● 如果不為上述情況,表示這兩個過閾值點(diǎn)在同一個幀上,所以過閾值時間不用記錄;另外,需要根據(jù)時間差,使用半比特電平序列來表示幀信息,例如時間差為1.2us,除以500ns取整為2,表示存在連續(xù)2個半比特電平。
圖6 代碼段
由此可以得到半比特高低電平數(shù)組和幀頭位置,如圖 7所示。
圖7 半比特高低電平數(shù)組&幀頭位置
幀頭位置可直接保存至解碼數(shù)據(jù),不用做后續(xù)處理。
需要將半比特高低電平數(shù)組合并為轉(zhuǎn)換為半比特高低電平序列,然后轉(zhuǎn)換為碼元序列,例如上述半比特高低電平數(shù)組可轉(zhuǎn)化為序列“01100110011”。
然后應(yīng)該拼接上一輪讀取原始數(shù)據(jù)后解析所生成的半比特(上一輪可能會有剩余,也可能沒有,完全取決于其數(shù)目的奇偶性),就得到完整的半比特高低電平序列。程序?qū)崿F(xiàn)如圖 8所示。
圖8 半比特高低電平序列
將半比特高低電平序列依據(jù)“#”拆分為各個幀,分別單個解析各個幀的碼元,將數(shù)據(jù)轉(zhuǎn)換為TCN幀數(shù)據(jù)。程序?qū)崿F(xiàn)如圖 9所示。
圖9 碼元序列
圖10 最大可記錄時間
圖11 WTB解碼后數(shù)據(jù)文件
如圖 10所示,經(jīng)測試驗證,采用本方法連續(xù)記錄1210964ms(約20分鐘)的TCN網(wǎng)絡(luò)數(shù)據(jù)。
TCN解碼分析程序可將得到的碼元信息按照方便閱讀的方式進(jìn)行組織,然后保存至解碼文件,解碼文件為標(biāo)準(zhǔn)的TXT格式,如圖 11所示,為一組WTB解碼后的數(shù)據(jù)文件的一部分,TCN解碼分析程序可正確解碼監(jiān)視數(shù)據(jù)、過程數(shù)據(jù)。
為驗證TCN解碼分析程序?qū)Ξ惓?shù)據(jù)的解碼能力,利用安捷倫任意波形發(fā)生器33250A分別模擬發(fā)送了幀頭錯誤、數(shù)據(jù)異常、CRC校驗錯誤的數(shù)據(jù)幀,經(jīng)邏輯分析儀采集,并利用TCN解碼分析儀程序解碼,可正確解碼出相應(yīng)的錯誤信息,解碼結(jié)果如圖 12所示。
本文提出一種利用邏輯分析儀實現(xiàn)TCN數(shù)據(jù)采集與分析的方法,并進(jìn)行了系統(tǒng)設(shè)計與實驗驗證,結(jié)果表明,該方法能實現(xiàn)TCN數(shù)據(jù)的長時間記錄,且能正確解析出網(wǎng)絡(luò)中傳輸?shù)倪^程數(shù)據(jù)、監(jiān)視數(shù)據(jù)、消息數(shù)據(jù)及異常數(shù)據(jù),實現(xiàn)了數(shù)據(jù)的完整記錄與分析,滿足用戶對TCN網(wǎng)絡(luò)故障分析的需求。
[1] 楊衛(wèi)峰,曾嶸.DTECS系統(tǒng)TCN協(xié)議的設(shè)計[J].機(jī)車電傳動,2009,(2):21~23
[2] 姚立娟.基于LabVIEW的小波神經(jīng)網(wǎng)絡(luò)的汽車主減速器故障診斷技術(shù)研究[D].電子科技大學(xué).2008
[3] 16800 Series Portable Logic Analyzers Service Guide. http://www.home.agilent.com/zh-CN/pd-778698-pn-16801A/34-channel-portable-logic-analyzer?nid=-536902500.536910703.00&cc=CN&lc=chi
[4] Agilent Technologies.Agilent Logic and Protocol Analyzer Help. http://www.home.agilent.com/agilent/facet.jspx?&cc =CN&lc=chi&k=Agilent+Logic+and+Protocol+Analyzer+H elp&sm=g
[5] GB/T 28029.1,“牽引電氣設(shè)備列車總線第1部分:列車通信網(wǎng)絡(luò)”[S].2012