曹艷梅,漆旭平,宋 丫,王瑜嘉
(中國航空工業集團公司西安航空計算技術研究所,陜西 西安 710119)
針對系統提出的新需求,顯示設備需要通過1553B總線獲取數據采集設備采集的各類信息,通過獲取的信息判斷狀態并向數據采集設備下發指令。但數據采集設備最初并未設計1553B總線接口,僅存在多路RS 422總線接口,重新針對該需求改造數據采集設備將耗費較大的成本。因此,為解決該問題,提出設計一個總線數據轉換設備進行數據轉換傳輸的方案。具體來說,顯示設備與數據采集設備通過1553B總線與RS 422總線進行數據轉換傳輸,總線數據轉換設備完成1553B總線與RS 422總線的雙向數據格式轉換;對于周期、事件、條件數據包,RS 422總線進行數據發送或接收時需要進行不同的處理,本文將具體介紹這種數據轉化傳輸方案。
1553B總線是MIL-STD-1553總線的簡稱,它是飛機內部時分控制命令/響應式多路復用數據總線,1553B總線可以雙向輸出,具有較高的實時性和可靠性,目前在工業控制領域得到了廣泛應用[1]。1553B總線能掛31個遠置終端,采用指令/響應型通信協議,它有3種終端類型:總線控制器(BC)、遠程終端(RT)和總線監視器(BM)[2]。1553B總線上消息傳輸的過程是:總線控制器向某一終端發布一個接收/發送指令,終端在給定的響應時間范圍內發回一個狀態字并執行消息的接收/發送[3]。BC通過驗收RT回答的狀態字來檢驗傳輸是否成功并做后續的操作。每個RT劃分了不同消息邏輯號去接收/發送不同消息[4-5]。在本文考慮的問題中,顯示設備是BC,總線數據轉換設備是RT。
RS 422標準全稱是“平衡電壓數字接口電路的電氣特性”,它定義了接口電路的特性[6]。RS 422接收器采用高輸入阻抗和發送驅動器,故允許在相同傳輸線上連接多個接收節點[7]。一個主設備,其余為從設備,從設備之間不能通信,所以RS 422總線支持點對多的雙向通信[8]。RS 422接口的收與發是分開的,可以同時收與發(全雙工)。RS 422適用于兩個站之間通信,星型網、環網不可用于總線網[9]。
1553B總線的數據傳輸與RS 422總線有以下不同:(1)有效數據位不同,1553B總線傳輸的有效數據位是16位,而RS 422總線數據位通常設為8位;(2)數據包大小不同:1553B總線可傳輸的數據包大小可以通過通信數據表來配置,RS 422總線可傳輸的數據包大小由其FIFO大小決定,最大不能超過FIFO深度[10];(3)數據包校驗方式不同,1553B總線通過不同的消息邏輯號傳輸不同的數據包,只需要收發端統一通信協議即可正確收發,而且可以通過查詢狀態信息來確定是否有新數據需要接收。RS 422總線可以在一個通道內傳輸多個數據包,為了提高可靠性,每個數據包通常添加包頭與校驗;為了區分不同數據包,可以為不同的數據包添加不同的包序號,接收到數據后,需要按照包頭、校驗和與包序號等校驗信息進行解碼。
基于以上分析,為了實現RS 422總線與1553B總線的數據轉化傳輸,需要設計總線數據轉換方案進行總線數據轉換。
總線數據轉換設備的功能為:(1)通過1553B總線接收來自顯示設備的數據包,包括周期數據包、事件數據包(只在特定事件下發送一次的數據包)、條件周期數據包(滿足條件后周期發送的數據包),將這些數據進行格式轉換,組成包序號不同的RS 422數據包并發送給數據采集設備;(2)通過RS 422總線接收來自數據采集設備的三類數據包,將這些數據提取至數據區進行格式轉換,通過不同的1553B消息邏輯號發送給顯示設備。
在總線數據轉換設備軟件中,數據格式轉換除了進行數據有效位的轉換外還須對不同類型數據包進行不同處理。主要原因是:當總線數據轉換設備將接收到的1553B總線數據包通過RS 422總線轉發時,對于只發一次的事件數據包,若同樣只發一次,則極有可能丟包,因此需要特殊處理。1553B總線可以通過配置不同的消息邏輯號及數據包長度來控制不同數據包的發送,各消息邏輯號之間的數據互不影響。1553B總線接收數據時可以查詢消息邏輯號下是否有新的數據有待接收,當狀態位反饋有新數據時,再調用接收驅動去接收數據,從而直接確定是否存在事件數據包或條件周期數據包。這種通信方式的優點是:對于條件周期數據包或事件數據包,在硬件無故障的情況下,不會存在數據丟失的情況,有效保證了通信系統的可靠性。但是,RS 422總線只有在解包后才能確定是否收到新的數據。
基于以上原因,針對本文設計的總線數據轉換設備軟件,在RS 422總線數據結構體中,添加心跳字,見表1所列。對周期數據包,周期發送數據,每發送一次,心跳字加1;對條件周期及事件數據包,周期發送數據,只有當1553B總線在各自消息邏輯號下查詢到新的數據包時,數據更新,心跳字加1;無新數據時,發送先前數據,心跳字不變,這樣數據采集設備收到數據時可以通過心跳字來判斷是否收到新的事件數據包或條件數據包。同樣地,對于總線數據轉換設備通過RS 422總線收到來自數據采集設備的三類數據包,數據包發送時需要設置類似的處理機制。總線數據轉換設備收到來自數據采集設備的數據包時,通過包頭包序號校驗和解碼出不同數據包并將其轉換成1553B總線可以傳輸的數據格式;根據心跳字的變化,總線數據轉換設備判斷是否將數據包上傳到1553B總線。這樣,總線數據轉換設備可以按照協議要求完成RS 422總線數據與1553B總線數據間的數據轉發。具體的數據傳輸過程如圖1所示。

圖1 總線數據轉換傳輸過程

表1 RS 422總線數據傳輸格式
本文主要設計了一種將1553B總線數據轉換到RS 422總線數據傳輸的方案。首先,針對RS 422與1553B總線的區別做了分析,并對傳輸的數據包格式進行設計;其次,針對傳輸數據的不同類型,增加了心跳處理,使其在RS 422總線下傳輸也能區分其類型及數據是否刷新;最后,給出了整個總線數據轉化傳輸的處理流程。