多任務TDCS車站分機通信協議的設計
摘要:為了處理TDCS車站分機從鐵路局調度中心、車務終端和計算機聯鎖設備接收的各種信息,在此基于Windows操作系統設計了實時多任務程序。在多任務程序中,使用消息機制和消息緩沖區實現多線程之間的通信,使用信號量和互斥量實現多線程之間的同步;針對以太網通信任務和串口通信任務,建立了相應的數據結構,并設計了一個數據包分析算法來解析自定義協議。實踐證明,該設計具有響應速度快、適應性強的特點。
關鍵詞:TDCS;車站分機;多任務;通信協議
列車調度指揮系統(TDCS)是實現鐵路各級運輸調度對列車進行透明指揮、實時調整、集中控制的現代化信息系統,它由鐵道部、鐵路局中心局域網及車站基層網組成。TDCS車站分機是車站基層網的設備,起到信息的采集、上傳及下發的作用,在整個系統中占有非常重要的地位。
1 功能分析
在車站分機系統中,車站分機軟件主要實現兩個方面的功能:
(1)接收鐵路局調度中心和車務終端的調度命令,經過命令解析處理后,經無線調度命令設備發送至列車執行;
(2)接收計算機聯鎖設備、無線車次號設備、無線調度命令設備發送的狀態信息,經過解析和重新封裝后,將狀態信息發送到鐵路局調度中心和車務終端。
由以上分析可知,系統主要有以下3個功能模塊:接收狀態模塊、接收命令模塊和數據處理模塊。其中,接收狀態模塊由RS 422串口通信方式實現;接收命令模塊由以太網通信方式實現;數據處理模塊主要負責數據的處理和發送。
2 多任務模型的創建
基于Windows操作系統,針對上述3個模塊,本文分別建立了3個任務:串口通信任務、以太網通信任務、數據處理任務。其中數據處理任務作為主線程,包含數據的接收與上傳,其處理過程如下:
(1)接收線程收到數據,放入緩沖區,并用PostMessage()向主線程發送消息,通知主線程有數據存入緩沖區;
(2)主線程使用ReadFile()函數讀取緩沖區數據;
(3)主線程判斷收到的數據是否有變化:若有變化,調用WriteFile()函數或SendData()函數發送消息,并將定時器清除;否則,繼續等待。數據處理任務的具體流程如圖1所示。
在該系統中,使用AfxBeginThread()函數創建以太網通信任務、串口通信任務和數據處理任務之后,用消息機制實現了多任務之間的通信,而用信號量、互斥等方式實現了線程之間全局變量和函數的同步。
評論