曾曉東 武瑞歡
摘要:該文先介紹了1553B總線協(xié)議,然后基于矢量字消息刷新機制提出了一種雙矢量字設(shè)計,通過實驗驗證該設(shè)計達到了提升總線網(wǎng)絡(luò)帶寬傳輸效率的要求。該設(shè)計已在某項目中成功應(yīng)用。
關(guān)鍵詞:1553B總線;雙矢量字;消息刷新;BC;RT
中圖分類號:TP311 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)13-0058-02
MIL-STD-1553B是美軍研制的一種數(shù)據(jù)總線通信協(xié)議,簡稱1553B。經(jīng)過多年的改進和完善,1553B協(xié)議憑借實時性和可靠性在航空和航天等領(lǐng)域占據(jù)了重要的地位。在總線網(wǎng)絡(luò)中總線控制器通過循環(huán)查閱總線表來組織通信,實際應(yīng)用中并非總線表中所有消息都要按照其預先定義的周期進行傳輸,只有數(shù)據(jù)更新時才需要進行調(diào)度。1553B總線網(wǎng)絡(luò)使用矢量字消息刷新機制了解終端數(shù)據(jù)更新情況。傳統(tǒng)使用的單個矢量字只能標志部分子地址的新數(shù)據(jù),為實現(xiàn)消息數(shù)量激增的情況下網(wǎng)絡(luò)帶寬的有效利用,現(xiàn)使用某國產(chǎn)1553B協(xié)議芯片,并結(jié)合雙矢量字的消息刷新機制,提出一種通信接口模塊(MBI)解決方案。
1 1553B總線介紹
1553B是航空機載設(shè)備間數(shù)據(jù)通信的一種標準,整個總線系統(tǒng)采用分布式架構(gòu),最多允許32個終端通過總線進行數(shù)據(jù)交互,總線系統(tǒng)結(jié)構(gòu)見圖1。這些終端依據(jù)功能劃分為三種類型:總線控制器(BC)、遠程終端(RT)和總線監(jiān)控器(BM)。總線控制器控制總線上所有消息的傳輸,遠程終端接收指令執(zhí)行后將結(jié)果返回給BC,BM負責監(jiān)控總線上所有的消息。1553B總線技術(shù)成熟,采用BC備份、看門狗計時器和雙通道冗余機制等保證了高可靠性[1]。
2 硬件設(shè)計
2.1 芯片介紹
該MBI模塊使用國產(chǎn)某型號的1553B協(xié)議芯片采用SOC的設(shè)計模式,集成了協(xié)議處理器、主處理器、雙口存儲器等,是一款通用化、智能化和小型化的1553B通信處理芯片。協(xié)議處理器具備GJB289A規(guī)定的BC和RT方式多消息處理能力。芯片配置了64K的雙口存儲器(DPRAM),可根據(jù)需求編程為8k×16bit、16k×16bit 或者32k×16bit,支持兩個端口獨立的異步讀寫操作。還提供 12MHz 到120MHz 可配置的1553B 協(xié)議處理器工作時鐘,32位實時時鐘計數(shù)器、16位的WDT和8位時間間隔計時器等片上資源[2]。
2.2 硬件設(shè)計
模塊硬件架構(gòu)圖見圖2。硬件主要包括:主處理器、協(xié)議處理器、雙通道收發(fā)器、隔離變壓器、實時時鐘電路等[3]。
3 軟件設(shè)計
MBI通信軟件分為兩個部分:驅(qū)動軟件和傳輸層軟件。驅(qū)動軟件為主機提供標準的接口供主機的調(diào)用,傳輸層軟件負責控制總線上的數(shù)據(jù)傳輸,主要的功能包括數(shù)據(jù)收發(fā)處理、通道切換、同步、錯誤檢測和上報等。驅(qū)動軟件和傳輸軟件通過使用雙口存儲器實現(xiàn)數(shù)據(jù)的交互[4]。整個MBI通信軟件的結(jié)構(gòu)圖見圖3。
3.1 矢量字的消息刷新
1553B總線的消息格式有:BC->RT,RT->BC和RT->RT(RT->RTS)。在整個系統(tǒng)中總線控制器負責每一次的消息傳輸。在BC->RT的消息傳輸中,BC直接組織消息的傳輸。因為RT不具備主動發(fā)起消息的能力,所以RT有消息更新需要上報的過程相對復雜,協(xié)議規(guī)定利用BC發(fā)送矢量字的方式命令取回矢量字,再結(jié)合查詢總線表來判斷該RT是否需要發(fā)送數(shù)據(jù)。發(fā)送矢量字的消息格式為發(fā)送矢量字方式指令+狀態(tài)字+數(shù)據(jù)字,矢量字就是由遠程終端回復給BC的這個16位的數(shù)據(jù)字。約定矢量字中的每一個BIT對應(yīng)該RT的一個發(fā)送子地址, BIT15~BIT0對應(yīng)的發(fā)送子地址為16~1。當某一BIT被置位“1”時,表示對應(yīng)的子地址有更新的數(shù)據(jù)塊需要發(fā)送,如果置位“0”則沒有新數(shù)據(jù)。一個矢量字中可以同時有多個BIT被置位“1”,可以指定處理時的優(yōu)先級。BC通過使用矢量字更新機制,了解隨后可能多條消息的傳輸條件并組織傳輸,達到節(jié)省總線帶寬,提升傳輸效率的目的[5]。
3.2 雙矢量字的消息刷新
1553B總線系統(tǒng)中每個遠程終端都有32個子地址,去除子地址0和子地址31被用作總線系統(tǒng)中標志方式命令,還有30個子地址。一個矢量字16位,最多能表示16個發(fā)送子地址是否有數(shù)據(jù)更新。則17~30子地址的消息只能通過周期性的查詢總線表進行傳輸。
現(xiàn)在設(shè)計雙矢量字刷新消息的管理機制,利用2個16位的矢量字來關(guān)聯(lián)一個RT中1~30發(fā)送子地址,則本RT中的子地址都可利用矢量字來通知BC進行數(shù)據(jù)傳輸。為了在BC端識別代表不同子地址的矢量字,使用兩種矢量字分別為矢量字1和矢量字2。矢量字1和矢量字2區(qū)別標志位為BIT0,令矢量字1中的BIT15~BIT1對應(yīng)子地址15~1,BIT0=0,矢量字2中的BIT15~BIT1對應(yīng)子地址30~16,BIT0=1,具體對應(yīng)關(guān)系見圖4。
3.2.1 BC端實現(xiàn)
1553B協(xié)議規(guī)定了方式命令只用于硬件和信息的管理,不用于數(shù)據(jù)的傳輸,BC使用發(fā)送矢量字命令后最多獲得一個矢量字,現(xiàn)在為了得到一個RT上所有子地址的新數(shù)據(jù)信息BC需要發(fā)送兩次發(fā)送矢量字命令。應(yīng)用需要在通信表設(shè)置相鄰的兩條發(fā)送矢量字命令,BC在發(fā)送一條矢量字命令后,在設(shè)定的消息間間隔后再次給同個RT發(fā)送一條矢量字命令。BC收到矢量字后利用最后一位判斷該字為矢量字1或矢量字2,然后根據(jù)矢量字內(nèi)容清除該RT對應(yīng)ISBC消息的SKIP位。總線控制器通過兩條發(fā)送矢量字命令后就可以了解該RT上所有子地址數(shù)據(jù)更新情況并組織消息傳輸。
3.2.2 RT端實現(xiàn)
RT在使用雙矢量字刷新消息進行數(shù)據(jù)上報的過程為:
(1)遠程終端主機在某發(fā)送子地址寫入新數(shù)據(jù)后,根據(jù)發(fā)送子地址的范圍設(shè)置矢量字1或矢量字2,如果該子地址大于等于1且小于等于15,則設(shè)置矢量字1,否則設(shè)置矢量字2;
(2)該終端接收到BC端發(fā)送矢量字的命令后發(fā)送矢量字,在發(fā)送矢量字1或矢量字2后,清除矢量字位,切換方式指令描述符中矢量字地址,令其指向矢量字2或矢量字1;
(3)終端接收到下一條BC端發(fā)送矢量字的命令后,將發(fā)送矢量字2或矢量字1,發(fā)送結(jié)束后清除矢量字位并再次切換矢量字地址。
4 總結(jié)
本文提出了一種雙矢量字消息刷新機制,并使用國產(chǎn)1553B協(xié)議芯片搭建了硬件環(huán)境。本接口模塊經(jīng)過驗證已經(jīng)達到了預期的要求,并已在某項目上穩(wěn)定應(yīng)用。
參考文獻:
[1] 數(shù)字式時分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線,國防科學技術(shù)工業(yè)委員會1997:11.
[3] 范詳輝,楊寒.一種1553B 總線多功能接口模塊設(shè)計與實現(xiàn)[J].信息通信,2017(2).
[4] 安百俊,呂冰,李新民.基于SM61864 的GJB289A 通信接口開發(fā)和應(yīng)用[J].微處理機,2015(6).
[5] 朱希.1553B總線介紹及ICD設(shè)計[J].科技應(yīng)用,2016(4).
【通聯(lián)編輯:代影】