多任務TDCS車站分機通信協議的設計
3 通信協議設計和解析
協議是數據發送與接收方都必須遵守的一種規則,這種規則一部分是發送方及接收方所認識的信息組成格式即信息結構,另一部分是由信息結構的協議類型及協議操作符所組成的會話方式即傳輸控制。
在該系統中,從串口和以太網接收到的各種的數據的類型和長度是不一致的,數據處理任務要對其分門別類進行處理就必須明確數據的類型、實際長度以及數據本身。因此必須定義一種數據傳輸的協議以保證通信的可靠性和數據讀取的可用性。本文針對以太網通信和串口通信,分別建立了對應的數據協議。
3.1 以太網通信協議
以太網通信涉及的信息包括計算機聯鎖設備狀態信息、無線車次號信息、調度命令信息。本文定義了一種以太網信息通用的數據協議封裝類如下:

在該數據結構中,報文類型用來識別該報文是聯鎖設備信息、無線車次號信息或者調度命令信息;序列號用來判斷接收報文的連續性;CRC錯誤檢測綴用來判斷接收報文的正確性,可以根據需要選擇不同的生成多項式;接收數據數組將根據聯鎖設備信息、無線車次號信息和調度命令信息的相應內容填充。
3.2 串口通信協議
串口通信采用RS 422方式。在嵌入式車站分機中,冗余的處理器單元采用輪詢的方式進行一主多從通信。車站分機作為主機,無線車次號設備、無線命令調度設備和計算機聯鎖設備作為從機。具體為:使用1問1答的方式,整個系統中車站分機發送查詢命令,其他設備是從機,只能被動地接收和發送數據。
在串口通信中,必須為每一個數據報文設計一個起始碼和結束碼,如0x03,并對報文中所有與起始碼和結束碼相同的字符進行轉義。接收方接收到該報文時,再按照轉義規則對其進行還原。本文定義的通用串口數據協議封裝類如下:

其中:報文類型、序列號和CRC錯誤檢測綴的作用與以太網通信協議相同;從機地址用來區分該報文的目的地是無線車次號設備、無線調度命令設備還是計算機聯鎖設備。
評論