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

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

其中:報文類(lèi)型、序列號和CRC錯誤檢測綴的作用與以太網(wǎng)通信協(xié)議相同;從機地址用來(lái)區分該報文的目的地是無(wú)線(xiàn)車(chē)次號設備、無(wú)線(xiàn)調度命令設備還是計算機聯(lián)鎖設備。
評論