付禹 馬曉凱
摘 要:機載設(shè)備中,1553B總線因其冗余度高,響應(yīng)速度快的優(yōu)勢而被廣泛應(yīng)用。進行編程時,通過使用鏈接庫,可在不了解詳細(xì)構(gòu)造的環(huán)境下,僅通過調(diào)用頂層函數(shù)便可實現(xiàn)對不同廠家接口模塊的編程。本文從1553B總線的構(gòu)造出發(fā),通過比較靜態(tài)鏈接庫和動態(tài)鏈接庫的區(qū)別,給出了一種通過調(diào)用靜態(tài)鏈接庫與1553B總線接口模塊通訊的編程方法。
關(guān)鍵詞:靜態(tài)鏈接庫 1553B總線 通訊編程
中圖分類號:TP316 文獻標(biāo)識碼:A 文章編號:1672-3791(2018)02(a)-0012-02
Abstract: 1553B bus is widely used in airborne equipment because of it's high redundancy and fast response.When using the 1553b interface module for software programming,by using the static link library to achieve different business interface modules,we do not have to know the detailed structure,we can directly call the top-level function to use the excuse module.this paper presents the 1553b bus structure,then make a compare of the static link library and the dynamic link library,at the last presents a method of 1553b programming based on static link library.
Key Words: Static link library; 1553b bus; Communication programming
1553B總線起初是美國軍方為機載設(shè)備制定的一種標(biāo)準(zhǔn)數(shù)據(jù)信息傳輸協(xié)議。由于1553B總線具有冗余度高,傳輸速度快,傳輸數(shù)據(jù)量大的優(yōu)勢,迅速被不同國家廣泛應(yīng)用于各個領(lǐng)域。開發(fā)商可根據(jù)不同的用途及環(huán)境對接口模塊進行專業(yè)定制,以滿足用戶需求。本文詳細(xì)介紹了1553B總線的組成和特點,并對在軟件編程中使用動態(tài)鏈接庫和靜態(tài)鏈接庫進行了比較,最后給出了一種通過調(diào)用靜態(tài)鏈接庫與1553B總線接口模塊通訊的編程方法。
1 1553B總線的組成
1553B總線的工作頻率為1Mb/s,工作方式為半雙工,具有雙冗余結(jié)構(gòu)。1553B總線由3個部分組成,分別為總線控制器(BC)、遠(yuǎn)程終端(RT)、總線監(jiān)視器(BM)。
(1)總線控制器BC。BC作為1553B總線的控制終端,具有建立和啟動數(shù)據(jù)傳輸?shù)墓δ?。它?553B總線的司令部,能夠向子設(shè)備RT發(fā)送控制命令。通過給鏈接到總線上的子設(shè)備分配不同的RT子地址,只需使用一個BC,便可實現(xiàn)對所有子設(shè)備的控制。同時在1553B總線的標(biāo)準(zhǔn)中只規(guī)定了送到總線上的數(shù)據(jù)格式,對BC的工作方式?jīng)]有做出具體規(guī)定,這給使用1553B總線進行設(shè)備控制帶來了很大的自由度。使用者只需應(yīng)用標(biāo)準(zhǔn)的數(shù)據(jù)格式,即可自主設(shè)計RT的個數(shù)以及整個系統(tǒng)的鏈接方法。1553B更大的優(yōu)勢在于,板卡能夠在BC模式和RT模式間進行轉(zhuǎn)換,這就在更大程度上擴展了系統(tǒng)結(jié)構(gòu)的設(shè)計方法。
(2)遠(yuǎn)程終端RT。RT在1553B總線起到接收總線控制數(shù)據(jù)的作用,它只能接收BC發(fā)送的數(shù)據(jù)并進行應(yīng)答,無法主動向總線傳送數(shù)據(jù),是總線中接收命令的結(jié)構(gòu)。如今,RT的使用分為兩種情況:嵌入式和非嵌入式?,F(xiàn)在很多RT已經(jīng)嵌入子設(shè)備,并作為子設(shè)備的一部分參與總線數(shù)據(jù)接收。除數(shù)據(jù)接收外,RT還具有緩存有用的數(shù)據(jù)、將數(shù)據(jù)傳送給子設(shè)備進行分析處理、檢測傳輸錯誤以及確認(rèn)數(shù)據(jù)有效的功能。由于1553B總線雙冗余結(jié)構(gòu)的存在,RT需要同時處理兩條總線發(fā)送的數(shù)據(jù)和命令。
(3)總線監(jiān)視器BM。總線監(jiān)視器BM的作用是監(jiān)視和記錄總線上傳輸?shù)拿詈蛿?shù)據(jù),它受BC控制,不參與任何數(shù)據(jù)傳輸?shù)倪^程。BM有兩種工作模式:一種是字監(jiān)視模式,它監(jiān)聽總線上所有的消息字;另一種是選擇監(jiān)視模式,只對指定的RT地址進行監(jiān)視。
2 使用靜態(tài)鏈接庫和動態(tài)鏈接庫在編譯上的差異
在對接口模塊進行編程的過程中,需要根據(jù)接口模塊開發(fā)商提供的軟件接口文件,達(dá)到使用不同的接口模塊的目的。軟件接口文件,就是庫文件,庫文件分兩種,即靜態(tài)鏈接庫和動態(tài)鏈接庫。靜態(tài)鏈接是在鏈接階段,將源文件中使用的庫文件與通過匯編生成的目標(biāo)文件和并后生成的可執(zhí)行文件,而這種鏈接方式的好處在于,方便程序的移植,因為產(chǎn)生的可執(zhí)行文件和庫文件再無關(guān)系,所以,它可以直接應(yīng)用到任何環(huán)境。它的缺點在于,產(chǎn)生的文件內(nèi)存過大,同時也因為產(chǎn)生的可執(zhí)行文件和庫文件毫無關(guān)系,在需要對庫文件進行更改升級時,需要對靜態(tài)鏈接庫進行重新編譯,很不方便。而動態(tài)鏈接庫的產(chǎn)生就完全規(guī)避了這些缺點,它將函數(shù)的可執(zhí)行代碼置于另一個DLL文件中,多個程序可以同時訪問存在內(nèi)存中的同一DLL的內(nèi)容,產(chǎn)生的文件內(nèi)存很小。同時,在需要庫文件進行更改升級時,只需要更改DLL文件中的內(nèi)容,無需對源程序進行重新編譯。而它的缺點在于,程序?qū)LL依賴性過大,當(dāng)DLL被更改或者刪除時,程序無法正常運行。同時,由于DLL文件的特點,它的可移植性較差。
3 一種使用靜態(tài)鏈接庫對1553B通訊接口模塊進行通訊編程的方法
本文講述的編程方法建立在WINDOWS7操作系統(tǒng)平臺上,使用XE7編程軟件和C++語言編寫完成。首先,在源程序中加入1553B模塊開發(fā)商提供的頭文件和庫文件。例如:在源文件中添加include"mbi.h"的同時,將提供的mbi.lib庫文件通過XE7軟件中的Project->Add to Project方式添加到源文件中。其次,使用提供的軟件接口函數(shù)查找1553b模塊的驅(qū)動是否安裝成功。當(dāng)成功檢測到安裝的接口模塊后,需要定義1553b總線表格式以及1553B模塊使用模式。例如:
unsigned bus[2][8],//1553B總線表定義
INCOM rcom[30]; //輸入通信表設(shè)置
OUTCOM tcom[30]; //輸出通信表設(shè)置
unsigned short rcomlen[2]; //輸入通信表長度
unsigned short tcomlen[2]; //輸出通信表長度
init(&rcom;[0],&tcom;[0],0);//初始化1553B總線,并設(shè)置1553B模塊的工作方式。
最后,使用開發(fā)商提供的1553B模塊的讀寫函數(shù)啟動總線表,進行總線上的數(shù)據(jù)傳輸。
4 結(jié)語
本文通過對1553B的總線結(jié)構(gòu)進行研究,并對軟件設(shè)計過程中使用靜態(tài)鏈接庫和動態(tài)鏈接庫在編譯上的差異進行分析,給出了一種利用靜態(tài)鏈接庫與1553B接口模塊通訊的編程方法,經(jīng)過一段時間的運行調(diào)試,此種方法可以運用在大多數(shù)與1553B接口模塊進行通訊的編程中。
參考文獻
[1] 吳云忠.基于pci接口的1553b總線控制軟件設(shè)計[J].現(xiàn)代電子技術(shù),2013,36(24):47-49.
[2] 劉士全,雋揚,蔡潔明,等.1553B總線應(yīng)用發(fā)展研究[J].電子與封裝,2013,13(12):12-15.
[3] 張榮鋒,朱堅,夏文元,等.基于pci總線的1553b總線接口電路的設(shè)計與實現(xiàn)[J].紅外,2008,29(1):41-45.
[4] DDC Data Device Corporation.MIL-STD-1553A/B Designer's Guide[Z].
[5] DDC MIL-STD-1553B Designer's Guide[Z].
[6] 羅至強.航空電子綜合化系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,1990.