本發明涉及列車網絡通信技術領域,尤其涉及一種wtb總線數據幀記錄儀及記錄方法。
背景技術:
wtb是tcn標準體系中規定的一種底層總線通信協議,包括對應的數據鏈路層和物理層。wtb總線主要適用于需要經常改變列車編組的情形,如國際列車和多廠商列車在運行時需要經常互相加掛解掛、改變方向等。wtb總線的核心功能就是能夠讓重新編組后的列車自動完成網絡拓撲的計算和分發,保證列車無論如何編組都能保持總體網絡的連通性。
wtb數據鏈路層主要負責兩個方面的功能,其一是要負責wtb總線上的過程數據、消息數據、監視數據的收發功能;其二要負責完成列車動態編組,自動尋找連到總線上的設備并為其命名,即初運行(inauguration)的功能。數據鏈路層在結構上還要提供上層調用的接口以方便上層應用對wtb節點進行管理和控制。wtb總線周期由wtb總線主實現。總線主為一個wtb節點,在wtb動態組網完畢后會被推舉出來。在wtb正常運行狀態下,wtb總線主將總線按固定時間間隔分割成時間周期,稱為基本周期。一個基本周期又分為周期相和偶發相兩個部分,在周期相中,總線主按照周期輪詢表對各個節點進行過程數據輪詢;在wtb偶發相中,總線主首先會使用監視數據依次交替輪詢兩個端節點是否發現新的節點,從而決定是否需要重新組織拓撲,在端節點輪詢完畢后,總線主會對總線節點進行監視數據和消息數據輪詢。
列車運行中wtb的復雜編組情況,通過上層軟件很難進行分析和調試,需要借助wtb總線數據幀進行分析具體的鏈路行為,因此發明一種wtb總線數據幀記錄儀及記錄方法勢在必行,以便為分析列車運行和故障情況提供更加可靠的有效數據。
技術實現要素:
本發明的目的是針對現有技術的需求,提供一種wtb總線數據幀記錄儀及其記錄方法,其能夠記錄和存儲wtb總線的數據幀,為分析列車運行和故障情況提供更加可靠的有效數據。
本發明的目的通過如下技術方案實現:
本發明提供一種wtb總線數據幀記錄儀,其包括:
wtb數據幀記錄儀板卡和上位機;
所述wtb數據幀記錄儀板卡和上位機通過pc104總線互相連接;wtb數據幀記錄儀板卡與wtb總線通過數據通信網線連接,監聽并接收wtb總線上的數據;
所述上位機發送指令并獲得wtb數據幀記錄儀板卡中根據指令所傳輸的數據幀后,按照設定的規則將該數據幀記錄到數據文件中。
更優選地,所述上位機包括:
cpu、存儲器、pc104總線接口和以太網接口;
所述cpu通過內部線路分別與存儲器、pc104總線接口和以太網接口等相連接;
所述cpu通過pc104總線接口連接的pc104總線,與wtb數據幀記錄儀板卡雙向連接。
更優選地,所述上位機還包括:
用于連接外部設備的usb接口和/或vga顯示接口。
更優選地,所述wtb數據幀記錄儀板卡包括:
pc104模塊、fifo數據緩存器和接收模塊;
pc104模塊向上通過pc104總線與上位機相接,并與上位機進行數據交互;向下通過內部線路讀取fifo數據緩存器中的數據幀;
fifo數據緩存器通過內部線路與接收模塊相接;
接收模塊從wtb總線接收數據幀,并傳到fifo數據緩存器中以備讀取。
更優選地,所述pc104模塊包括:
uart控制單元和命令解析單元;
所述pc104模塊通過pc104總線接收到上位機cpu的指令后,通過命令解析單元對該指令進行譯碼,若該指令的譯碼結果是清空數據指令,則通過uart控制單元清空fifo數據緩存器中的數據幀;若該指令的譯碼結果是讀取指令,則通過uart控制單元從fifo數據緩存器中讀取數據幀,并將讀取到的數據幀通過pc104總線發送到上位機。
更優選地,所述接收模塊包括:
分別設置在a、b線路的接收器a和接收器b、解碼器、crc校驗單元和線路冗余切換控制單元;
接收器a和接收器b同時監聽wtb總線上的所有幀數據,經過接收、解碼、crc校驗,得到成功傳輸的數據幀;
線路冗余切換控制單元控制a、b線路,根據接收器a和接收器b接收幀的情況以及iec61375標準,從兩路接收線路中選擇出一條信任線路,并通過該信任線路中向fifo數據緩存器傳送數據幀。
本發明還提供一種wtb總線數據幀記錄方法,其包括:
步驟s101,上位機啟動后,操作系統進行初始化。
步驟s102,向wtb數據幀記錄儀板卡發送清空指令;
步驟s103,判斷是否收到wtb數據幀記錄儀板卡的清空確認信息,若收到,則執行步驟s104;否則,執行步驟s102,再次發送清空命令;
步驟s104,上位機在存儲器上建立當前數據文件,并記錄創建時間;
步驟s105,上位機發送讀取命令;
步驟s106,等待接收wtb數據幀記錄儀板卡傳輸的數據幀,并當接收到后將該wtb數據幀記錄到當前數據文件中,并對記錄時間進行計時;
步驟s107,上位機判斷記錄時間是否超過設定的時間間隔閾值,若超時則執行步驟s108,關閉當前數據文件,然后轉入步驟s109;若未超時,則轉入步驟s106;
步驟s109,判斷存儲器是否有可用容量,若有,則執行步驟s110;若沒有,則執行步驟s111,則結束本程序;
步驟s110,在存儲器上創建新數據文件,并將該新數據文件作為當前數據文件,并記錄創建時間;然后轉入步驟s106。
更優選地,所述步驟s106中將該wtb數據幀記錄到當前數據文件中的過程包括:
步驟s1061,讀取wtb數據幀中的狀態字;
步驟s1062,將狀態字寫入到當前數據文件中;
步驟s1063,根據數據長度字段確定數據幀中幀數據長度;
步驟s1064,根據數據幀的長度逐字節讀取幀數據內容;
步驟s1065,將讀取到的幀數據內容寫入到當前數據文件中。
由上述本發明的技術方案可以看出,本發明具有如下技術效果:
本發明通過wtb數據幀記錄儀板卡監聽并接收wtb總線上的數據,通過上位機發送指令并獲得wtb數據幀記錄儀板卡所傳輸的數據幀,并按照設定的規則將該數據幀記錄到數據文件中,實現了機車車輛運行中wtb總線網絡上傳輸數據的記錄和存儲,能夠為分析列車運行和故障情況提供更加可靠的有效數據,便于開發維護人員獲取列車運行情況的相關數據對網絡進行分析與判斷;特別是對于自主研發的wtb網卡設備,本發明將對wtb網卡設備的研發、測試、調試和分析帶來很大的好處。
附圖說明
圖1為本發明的一種wtb總線數據幀記錄儀的結構圖;
圖2為本發明中wtb數據幀的結構示意圖;
圖3為本發明中的wtb數據幀記錄儀板卡的結構圖;
圖4為本發明中的wtb總線數據幀記錄方法的流程圖;
圖5為本發明中將數據幀記錄到當前數據文件中的流程圖。
具體實施方式
以下將結合附圖對本發明的技術方案做進一步詳細說明。
實施例一
本發明提供一種wtb總線數據幀記錄儀,其結構如圖1所示,包括:
wtb數據幀記錄儀板卡和上位機。其中的wtb數據幀記錄儀板卡和上位機通過pc104總線互相連接;wtb數據幀記錄儀板卡與wtb總線通過數據通信網線連接,監聽并接收wtb總線上的數據。
wtb數據幀記錄儀從wtb總線上接收到的數據包括:過程數據、消息數據以及監視數據,其由一對主幀和從幀構成,其中主幀由wtb總線主向目標節點發出,目標節點根據自己的需求,發出對應的從幀。主幀和從幀的結構均如圖3所示wtb數據幀結構,包括幀頭和幀數據(link_data)部分,主幀和從幀的幀頭結構相同,后接的幀數據部分長度不一。幀頭包括四個字段,長度均為8bits(比特),從前至后分別表示目標設備地址(dd)、鏈路控制標志(lc)、源設備地址(sd)、鏈路數據長度(即數據幀長度)(sz)。其中lc字段是用來對各種類型的數據幀進行編碼區分。sz字段則是指除去頭部32bits后其余的數據部分的長度。幀數據(link_data)部分占據0~1024bits。
上述主幀或從幀被封裝到如表1所示的wtb數據幀報文中的數據字段,由wtb數據幀記錄儀板卡傳輸給上位機。
表1wtb數據幀報文中各個字段的定義及取值含義
備注:如果沒有數據幀可供讀出,則數據幀長度字段為0。
上述上位機可以為pc104嵌入式x86工業控制計算機主板,用于從wtb數據幀記錄儀板卡獲取數據幀,并將其記錄到數據文件中。該上位機包括中央處理器(cpu)、存儲器、pc104總線接口、usb接口、vga顯示接口和以太網接口等。上述中央處理器(cpu)通過內部線路分別與存儲器、pc104總線接口、usb接口、vga顯示接口和以太網接口等相連接,以傳輸指令和數據等。
上位機的中央處理器(cpu)發送指令并從wtb數據幀記錄儀板卡中獲得指令所請求的數據幀后,按照設定的規則將該數據幀記錄到數據文件中,并存儲到存儲器中。為了避免數據文件過長,所以設定了一定的規則。該規則是:數據幀記錄時間若超過間隔時間閾值,則重新建立新的數據文件,并將新接收的數據幀記錄記錄到該數據文件中。
pc104總線接口通過pc104總線與wtb數據幀記錄儀板卡雙向連接。
usb接口、vga顯示接口、以太網接口等用于連接外接設備,以便查看上位機中所記錄數據文件。
上述wtb數據幀記錄儀板卡是采集wtb總線數據幀的關鍵設備,其基于fpga(fieldprogrammablegatearray,現場可編程門陣列)設計,并基于fpga控制物理固件完成數據采集功能,其結構如圖3所示,可以看出,該wtb數據幀記錄儀板卡包括:pc104模塊、fifo數據緩存器和接收模塊。
pc104模塊向上通過pc104總線與上位機相接,并與上位機進行數據交互,數據交互過程中遵循uart-emulation通信協議;向下通過內部線路讀取fifo數據緩存器中的數據幀。該pc104模塊包括:uart控制單元和命令解析單元;pc104模塊通過pc104總線接收到上位機cpu的指令后,通過命令解析單元對該指令進行譯碼,若該指令的譯碼結果是清空數據指令,則通過uart控制單元清空fifo數據緩存器中的數據幀;若該指令的譯碼結果是讀取指令,則通過uart控制單元從fifo數據緩存器中讀取數據幀,并將讀取到的數據幀通過pc104總線發送到上位機。
fifo數據緩存器通過內部線路與接收模塊相接。
接收模塊包括:分別設置在a、b線路的接收器a和接收器b、解碼器、crc校驗單元和線路冗余切換控制單元。接收器a和接收器b同時監聽wtb總線上的所有幀數據,經過接收、解碼、crc校驗,得到成功傳輸的數據幀;線路冗余切換控制單元用于控制a、b線路,根據接收器a和接收器b接收幀的情況(有效幀、幀沖突、錯誤幀、幀間間隔等信息)以及iec61375標準綜合判斷,從兩路接收線路中選擇出一條信任線路,以保證從信任線路中向fifo數據緩存器傳送數據幀。
基于上述一種wtb總線數據幀記錄儀,本發明還提供一種wtb總線數據幀的記錄方法,該記錄方法安裝于上位機中,基于上位機的操作系統運行。本發明提供的一種wtb總線數據幀的記錄方法的實施流程如圖4所示,具體包括如下步驟:
步驟s101,上位機啟動后,操作系統進行初始化。
步驟s102,向wtb數據幀記錄儀板卡發送清空指令。
上位機通過pc104總線向wtb數據幀記錄儀板卡發送清空指令。
步驟s103,判斷是否收到wtb數據幀記錄儀板卡的清空確認信息,若收到,則執行步驟s104;否則,執行步驟s102,再次發送清空命令。
上位機通過pc104總線向wtb數據幀記錄儀板卡發送清空指令后,監聽wtb數據幀記錄儀板卡是否反饋清空確認信息;wtb數據幀記錄儀板卡接收到清空指令后,會控制fifo數據緩存器中的所有數據幀,并反饋清空確認信息給上位機。
步驟s104,上位機在存儲器上建立當前數據文件,并記錄創建時間。
步驟s105,上位機發送讀取命令。
上位機通過pc104總線向wtb數據幀記錄儀板卡發送讀取命令。
步驟s106,接收wtb數據幀記錄儀板卡傳輸的數據幀并開始記錄到當前數據文件中,并對記錄時間進行計時。
wtb數據幀記錄儀板卡中的pc104模塊接收到上位機的指令后,經解析譯碼處理后,發現是讀取指令,則根據該讀取指令從fifo數據緩存器中讀取wtb數據幀,并上傳給上位機。上位機將接收到wtb數據幀記錄到當前數據文件中,并對記錄時間進行計時。
步驟s107,上位機判斷記錄時間是否超過設定的時間間隔閾值,若超時則執行步驟s108,關閉當前數據文件,然后轉入步驟s109;若未超時,則轉入步驟s106。上述時間間隔閾值可以為1個小時。
步驟s109,判斷存儲器是否有可用容量,若有,則執行步驟s110;若沒有,則執行步驟s111,則結束本程序。之后人工將存儲器中的數據文件備份到其它地方并將該存儲器清空。
步驟s110,在存儲器上創建新數據文件,并將該新數據文件作為當前數據文件,并記錄創建時間。然后轉入步驟s106。
上述步驟s106中將數據幀記錄到當前數據文件中的執行過程如圖5所示,包括如下步驟:
步驟s1061,讀取wtb數據幀中的狀態字。
步驟s1062,將狀態字寫入到當前數據文件中。
步驟s1063,根據數據長度字段確定數據幀中幀數據長度。
步驟s1064,根據數據幀的長度逐字節讀取幀數據內容。
步驟s1065,將讀取到的幀數據內容寫入到當前數據文件中。
將讀取到的幀數據內容放在當前數據文件中,并與狀態字對應。
由上述可以看出,本發明提供的wtb數據幀記錄儀和記錄方法能夠記錄機車車輛運行中wtb總線網絡上傳輸的數據,便于開發維護人員獲取列車運行情況的相關數據對網絡進行分析與判斷,特別是對于自主研發的wtb網卡設備,這種記錄wtb總線上的數據幀的設備及軟件,將對wtb網卡設備的研發、測試、調試和分析帶來很大的好處。
雖然本發明已以較佳實施例公開如上,但實施例并不限定本發明。在不脫離本發明之精神和范圍內,所做的任何等效變化或潤飾,同樣屬于本發明之保護范圍。因此本發明的保護范圍應當以本申請的權利要求所界定的內容為標準。