劉 頡,易靈芝,申 慧,吳赟
(湘潭大學,湖南湘潭,411105)
列車通信網絡(TCN)集高速列車控制、狀態監測與故障診斷系統以及旅客信息服務系統等為一體,以車載微機為主要技術手段,將這些系統產生的大量列車信息轉換為統一的數字信息進入車載微機并在網上交換,從而保證了列車高速、穩定、安全的運行。目前它已形成國際標準,在世界各國鐵路上得到了廣泛的應用。然而,同一列車中的TCN產品往往由不同的供應商提供,各廠商提供的TCN產品在互聯過程中,經常會遇到不明原因的通信異常情況,為分析網絡故障原因,需要一種能長時間完整記錄TCN數據的設備。基于此,本文提出一種基于邏輯分析儀的TCN數據采集與分析的方法,利用安捷倫邏輯分析儀16801A的跳變存儲方式實現TCN數據的長時間采集,并通過LabVIEW圖形化編程軟件編制解碼分析程序,將TCN原始數據解碼成對應的TCN報文,從而實現網絡通信故障的快速高效排查,以保障列車的安全運行。
傳統的TCN數據的采集與分析有兩種方法,一種是利用TCN網絡模塊實現數據記錄,如株洲南車時代電氣股份有限公司DTECS系統中的ERM,該類設備能長時間記錄網絡通信過程中的過程數據,但也有一定的局限性,如無法記錄監視數據、消息數據及異常幀。另一種是基于示波器開發的TCN數據分析儀,該類設備能完整的記錄通信過程中的所有數據,但因為示波器的采樣頻率一般較高,且存儲深度有限,記錄時間很短,一般記錄時間為幾百微秒到幾秒。
基于上述研究現狀及問題,本文提出了一種基于邏輯分析儀的TCN數據采集與分析的方法,它具有以下特點:
1) 采集時間長,最大采樣時間可達20分鐘;
2) 記錄數據全,能正確解析出TCN網絡中傳輸的過程數據、監視數據、消息數據及異常數據。
典型的TCN數據采集的硬件拓撲如圖 1所示。按照不同的采集對象選擇合適的測試夾具接入TCN網絡,將邏輯分析儀的探頭連接至測試夾具引出的信號線,實現數據的實時采集。

圖1 TCN數據采集的硬件拓撲
系統軟件為一套運行在計算機上的TCN解碼分析程序,程序利用LabVIEW圖形化開發環境編寫,以數據流驅動程序的運行,將邏輯分析儀采集的原始數據進行分析,利用各個過閾值點的時間來計算各段高低電平的持續時間,進而實現波形解析。
用于TCN數據采集的儀器為安捷倫16801A邏輯分析儀,是由美國安捷倫科技有限公司生產的一款便攜式邏輯分析儀,支持同時測量34個邏輯通道,最大定時采樣率為1.0GHz(半通道)/500MHz(全通道),最大存儲深度32M。16801A支持跳變存儲(transitions/store qualified)方式記錄波形數據,該方式所記錄的原始數據僅僅包括過閾值的狀態和跳變時間,以圖 2為例,存在3處過閾值點。過『點1』后記為低電平0,并記錄跳變時間T1;過『點2』后記為高電平1,并記錄跳變時間T2;過『點3』后記為低電平0,并記錄跳變時間T3。

圖2 安捷倫16801A邏輯分析儀跳變存儲
這種數據記錄方法和利用示波器采集數據相比,保存的信息要少得多,因此能夠一次性采集較長時間的信號。
TCN數據的解碼分析程序的具體執行流程如圖 3所示。程序開始運行時,通過用戶界面選擇所需解碼的TCN數據類型,根據用戶選擇信息,分別調用MVB或WTB的解碼配置信息。程序讀取邏輯分析儀采集的原始數據,將原始數據進行整理并轉化為GB/ T 28029.1定義的數據符及非數據符,根據解碼配置轉化為相應的位編碼,由位編碼信息判定數據幀為正常幀還是異常幀,并執行幀解碼操作,最后將解碼后的數據寫入TXT文本,解碼分析程序執行完成。
由于MVB解碼和WTB解碼擁有相似的過程,僅在位編碼轉換為幀數據時存在區別,因此,本文將不分開進行描述。
邏輯分析儀單次采集所導出的數據記錄可達到上百字節,如果一次性全部讀入程序,將影響程序運行速度甚至造成內存不足;所以需要從前往后讀取數據記錄,每次讀取一定量的數據,并記錄當前所讀取到的位置,供下次迭代時從指定的位置開始讀取;把單次讀取的原始數據解析為高低電平序列,然后逐步拼接,最后得到完整的高低電平序列。
LabVIEW中文件讀取函數受到初始讀取位置的影響,程序在每次迭代時,重新設置當前讀取位置,保證當前所讀數據為上一次數據之后的那段,相關后面板程序框圖見圖 4:

圖4 設置讀取位置
邏輯分析儀采集的原始數據記錄以標準CSV文本格式保存,數據之間使用逗號分隔,將讀取的原始數據轉化為二維數組,方便程序進行后續處理。如圖 5,為經過原始數據格式整理后,轉換為二維數組形式的原始數據。

圖5 轉化為二維數組形式的原始數據
圖6部分后面板代碼將把上述二維數組拆分為兩個一維數組,分別為各個過閾值后的高低電平判斷和過閾值時間數組。每次循環獲取相鄰兩個閾值時間,并將它們相減,即計算兩個過閾值點的時間差。
其中,時間轉換VI的功能是將字符串形式的時間轉換為以納秒為單位的數字,例如:將“-24 ms”轉化為“-2.4E+7”。

圖3 TCN數據的解碼分析流程
如果前后兩次過閾值點時間差較大(除以500ns并取整后,大于等于5),可以認為這兩處過閾值點分別為某幀的幀尾和該幀之后的幀頭。
● 如果為上述情況,將該段電平序列記為“#”,表示閑置電平,非幀數據;另外,將后面幀的過閾值時間保存下來,作為后面幀的起始時間。
● 如果不為上述情況,表示這兩個過閾值點在同一個幀上,所以過閾值時間不用記錄;另外,需要根據時間差,使用半比特電平序列來表示幀信息,例如時間差為1.2us,除以500ns取整為2,表示存在連續2個半比特電平。

圖6 代碼段
由此可以得到半比特高低電平數組和幀頭位置,如圖 7所示。

圖7 半比特高低電平數組&幀頭位置
幀頭位置可直接保存至解碼數據,不用做后續處理。
需要將半比特高低電平數組合并為轉換為半比特高低電平序列,然后轉換為碼元序列,例如上述半比特高低電平數組可轉化為序列“01100110011”。
然后應該拼接上一輪讀取原始數據后解析所生成的半比特(上一輪可能會有剩余,也可能沒有,完全取決于其數目的奇偶性),就得到完整的半比特高低電平序列。程序實現如圖 8所示。

圖8 半比特高低電平序列
將半比特高低電平序列依據“#”拆分為各個幀,分別單個解析各個幀的碼元,將數據轉換為TCN幀數據。程序實現如圖 9所示。

圖9 碼元序列

圖10 最大可記錄時間

圖11 WTB解碼后數據文件
如圖 10所示,經測試驗證,采用本方法連續記錄1210964ms(約20分鐘)的TCN網絡數據。
TCN解碼分析程序可將得到的碼元信息按照方便閱讀的方式進行組織,然后保存至解碼文件,解碼文件為標準的TXT格式,如圖 11所示,為一組WTB解碼后的數據文件的一部分,TCN解碼分析程序可正確解碼監視數據、過程數據。
為驗證TCN解碼分析程序對異常數據的解碼能力,利用安捷倫任意波形發生器33250A分別模擬發送了幀頭錯誤、數據異常、CRC校驗錯誤的數據幀,經邏輯分析儀采集,并利用TCN解碼分析儀程序解碼,可正確解碼出相應的錯誤信息,解碼結果如圖 12所示。
本文提出一種利用邏輯分析儀實現TCN數據采集與分析的方法,并進行了系統設計與實驗驗證,結果表明,該方法能實現TCN數據的長時間記錄,且能正確解析出網絡中傳輸的過程數據、監視數據、消息數據及異常數據,實現了數據的完整記錄與分析,滿足用戶對TCN網絡故障分析的需求。
[1] 楊衛峰,曾嶸.DTECS系統TCN協議的設計[J].機車電傳動,2009,(2):21~23
[2] 姚立娟.基于LabVIEW的小波神經網絡的汽車主減速器故障診斷技術研究[D].電子科技大學.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,“牽引電氣設備列車總線第1部分:列車通信網絡”[S].2012