張啟敏,孫劍波,權(quán)云濤
(1.西安電子科技大學電子工程學院,陜西西安 710071;2.山東航天電子技術(shù)研究所通信事業(yè)部,山東煙臺 264670)
MTL-STD-1553B是一種數(shù)字時分制指令/響應型多路傳輸數(shù)據(jù)總線,簡稱1553B總線,它最早是由美國軍方專為飛機設備指定的一種信息傳輸總線標準。由于1553B總線具有雙向輸出、實時性高、可靠性高、抗干擾能力強和易于維護擴充等特點,被廣泛應用于艦船、航空和航天等領域。在我國的航空航天領域,1553B總線主要應用于主控系統(tǒng)對子系統(tǒng)的狀態(tài)信息獲取和狀態(tài)控制。目前,比較常用的是DDC公司的總線芯片,該公司生產(chǎn)了一系列總線芯片,如:BU-65170、BU-61580和 BU-61585是組成處理器與MIL-STD-1553B總線通信接口的重要組成部分。
如圖1為系統(tǒng)示意圖,X系統(tǒng)1553B總線通信子系統(tǒng)是1553B總線網(wǎng)絡中的一個RT終端系統(tǒng)。在總線系統(tǒng)中,X系統(tǒng)是一個需要被測控的子系統(tǒng)。X系統(tǒng)1553B總線通信子系統(tǒng)能夠接收、解析和執(zhí)行來自BC總線控制器的各項命令。同時,RT端控制器與X系統(tǒng)之間通過RS232串口進行通信,實現(xiàn)獲取并存儲X系統(tǒng)遙測數(shù)據(jù)和轉(zhuǎn)發(fā)BC總線控制器命令的功能。此1553B通信系統(tǒng)中,BC總線控制器的指令主要有:遙測指令、遙控指令、上注指令、勤務指令和方式代碼指令等,并且周期性的發(fā)送遙測指令與方式代碼指令、不定周期發(fā)送上注指令、方式代碼指令和勤務指令,RT終端系統(tǒng)對各項命令都進行反饋,上位機軟件提取反饋的信息,實時監(jiān)測X系統(tǒng)的狀態(tài)和1553B總線狀態(tài)。
軟件的模塊設計示意圖,如圖2所示。軟件進行模塊設計,劃分為初始化模塊、總線中斷模塊、串口中斷模塊、定時器中斷模塊和主循環(huán)模塊。
圖1 系統(tǒng)示意圖
圖2 軟件設計示意圖
圖3 總線芯片初始化步驟圖
微控制器對1553B總線芯片的初始化需要遵循寄存器配置的順序,當配置RT為增強使能模式,總線芯片的初始化步驟,如圖3所示。其中,配置開始/復位寄存器為0x0001實現(xiàn)軟件復位;配置中斷屏蔽寄存器為0x0012,使能RT子地址控制字EOM中斷和 RT模式碼中斷;配置寄存器4為0x8000,使能外部BIT字;配置寄存器2為0x081B,使能“寫覆蓋無效數(shù)據(jù)”、中斷狀態(tài)自動清除、電平中斷請求、增強型RT存儲器管理、分離廣播數(shù)據(jù);配置寄存器3為0x8011,使能“增強模式”、禁止非法的RX傳送、增強型模式碼處理;配置寄存器5為0x0080,使能“禁止廣播”;配置寄存器1為0x8F80,使能增強RT模式、清除動態(tài)總線控制位、清除忙位、清除服務請求位、清除子系統(tǒng)標志位以及清除RT標志位。
實現(xiàn)總線中斷函數(shù)時,首先對接收到的指令數(shù)據(jù)中RT地址與實際RT地址進行對比判斷。判斷成功后,讀取中斷寄存器,解析總線指令。在總線中斷函數(shù)中不進行數(shù)據(jù)處理,僅對相應指令的標志位置位,如圖4所示。
圖4 總線中斷函數(shù)流程圖
本系統(tǒng)采用8位微控制器為小尾端處理器體系架構(gòu),而BC總線控制器采用大尾端模式的SPARC體系結(jié)構(gòu),總線芯片BU-65170工作于8位緩存模式,RT端向1553B主總線緩沖區(qū)存儲待發(fā)送數(shù)據(jù)時,應該依據(jù)大尾端方式來排放字節(jié)數(shù)據(jù)。同時,在8位操作模式的微控制器對BU-65170寄存器進行讀操作時,先讀高字節(jié),再讀低字節(jié),之后再讀高字節(jié)和低字節(jié),即需要連續(xù)讀操作兩次,才能夠讀出寄存器的狀態(tài)值;寫操作時,僅寫入一次即可。
保障系統(tǒng)軟件的安全與可靠,可以從提高軟件的容錯和糾錯能力著手,逐項提出與分析了以下方法措施,包括:(1)初始化總線芯片時,程序配置開始/復位寄存器后,需要進行約800μs的延遲,保證1553B總線芯片復位操作充分完成。(2)初始化時,程序?qū)ξ词褂米拥刂返淖x/寫數(shù)據(jù)塊指針設置為0xFE0,將指針明確指向一個不使用的數(shù)據(jù)塊地址。同時,未使用的子地址控制字均賦值為0。此措施防止程序?qū)ξ词褂米拥刂返恼`操作,提高軟件對誤操作的容錯能力。(3)初始化時,程序需要對總線芯片的全部數(shù)據(jù)區(qū)域進行初始化,數(shù)據(jù)初始化為0,防止誤操作得到未知的數(shù)據(jù),防止未知數(shù)據(jù)對程序運行造成影響。(4)對于總線中斷函數(shù)處理時,對接收到的總線指令中RT地址與實際RT地址進行對比判斷,防止系統(tǒng)接收到其他RT終端的總線指令而造成誤操作,增強該RT系統(tǒng)的容錯能力。(5)為避免遺漏總線中斷,縮短總線中斷函數(shù)的執(zhí)行時間,在總線中斷函數(shù)處理中,程序?qū)偩€數(shù)據(jù)不進行處理,僅對相應總線指令的標志置位。(6)初始化時,對1553B總線芯片的RAM區(qū)域進行自檢,檢測RAM區(qū)域能否使用,自檢出錯,則啟用備用RAM芯片,提高系統(tǒng)的糾錯能力。(7)系統(tǒng)運行過程中,實施定時刷新操作,即在定時時間內(nèi)未能接收到總線中斷,則進行總線芯片重新初始化,提高芯片的自我糾錯能力。
X系統(tǒng)1553B總線通信子系統(tǒng)軟件是否能夠正常穩(wěn)定運行,通過RT終端與BC總線控制器相連實現(xiàn)遙測和遙控等功能進行驗證。BC總線控制器向RT終端系統(tǒng)發(fā)送各項總線指令,能夠?qū)崿F(xiàn)獲得系統(tǒng)遙測信息、控制系統(tǒng)狀態(tài)和監(jiān)測總線狀態(tài)等一系列功能。如圖5所示,BC總線控制器接收到的反饋信息數(shù)據(jù)幀經(jīng)過上位機解析,將X系統(tǒng)的運行狀態(tài)信息顯示到上位機軟件界面,各項狀態(tài)信息顯示X系統(tǒng)運行正常,并且遙測狀態(tài)量和X系統(tǒng)實際工作狀態(tài)一致,證明X系統(tǒng)1553B總線通信子系統(tǒng)及系統(tǒng)軟件運行正常,其中對部分狀態(tài)信息進行了隱藏。
圖5 X系統(tǒng)運行狀態(tài)
本文對1553B總線網(wǎng)絡中RT終端系統(tǒng)軟件的設計與實現(xiàn)進行了詳細說明,重點對提高RT終端系統(tǒng)軟件容錯能力和糾錯能力的措施進行了分析,這些措施在一定程度上提高了系統(tǒng)軟件的安全性和可靠性,保障了系統(tǒng)安全穩(wěn)定地運行。經(jīng)過系統(tǒng)驗證,X系統(tǒng)1553B總線通信子系統(tǒng)及系統(tǒng)軟件運行穩(wěn)定,并且已成功應用于某型項目中。目前,系統(tǒng)運行狀態(tài)良好。
[1]趙月琴.基于BU-61580的嵌入式1553B終端設計[J].航空兵器,2004(4):28-31.
[2]郭堅,付連芳,王海濤.基于8051微控制器的1553B總線接口設計[J].計算機測量與控制,2006,14(7):946 -949.
[3]DDC.ACE/Mini- ACE series BC/RT/MT advanced communication engine integrated 1553 terminal BU-65170 user's guide[M].USA:DDC,2005.
[4]DDC.MIL -STD -1553A/B notice 2 RT and BC/RT/MT advanced communication engine[M].USA:DDC,1999.
[5]馬忠梅,劉濱,戚軍,等.微控制器C語言Windows環(huán)境編程寶典[M].北京:北京航空航天大學出版社,2003.
[6]凌志華,譚立英,陶坤宇.基于BU-65170的1553B終端設計[J].微計算機信息,2008,24(2):273 -274.
[7]曠文聰,姜運生.基于BU-61580的1553B航空通訊總線設計[J].電子技術(shù),2008,45(12):14 -20.
[8]王好同,賈會甫,高瑞乾.基于BU-61580的MIL-STD-1553B遠程終端設計[J].海軍航空工程學院學報,2008,23(4):439-441.