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