?

基于靜態鏈接庫的1553B總線通訊編程方法

2018-08-07 08:03付禹馬曉凱
科技資訊 2018年4期
關鍵詞:總線靜態通訊

付禹 馬曉凱

摘 要:機載設備中,1553B總線因其冗余度高,響應速度快的優勢而被廣泛應用。進行編程時,通過使用鏈接庫,可在不了解詳細構造的環境下,僅通過調用頂層函數便可實現對不同廠家接口模塊的編程。本文從1553B總線的構造出發,通過比較靜態鏈接庫和動態鏈接庫的區別,給出了一種通過調用靜態鏈接庫與1553B總線接口模塊通訊的編程方法。

關鍵詞:靜態鏈接庫 1553B總線 通訊編程

中圖分類號:TP316 文獻標識碼: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總線起初是美國軍方為機載設備制定的一種標準數據信息傳輸協議。由于1553B總線具有冗余度高,傳輸速度快,傳輸數據量大的優勢,迅速被不同國家廣泛應用于各個領域。開發商可根據不同的用途及環境對接口模塊進行專業定制,以滿足用戶需求。本文詳細介紹了1553B總線的組成和特點,并對在軟件編程中使用動態鏈接庫和靜態鏈接庫進行了比較,最后給出了一種通過調用靜態鏈接庫與1553B總線接口模塊通訊的編程方法。

1 1553B總線的組成

1553B總線的工作頻率為1Mb/s,工作方式為半雙工,具有雙冗余結構。1553B總線由3個部分組成,分別為總線控制器(BC)、遠程終端(RT)、總線監視器(BM)。

(1)總線控制器BC。BC作為1553B總線的控制終端,具有建立和啟動數據傳輸的功能。它是1553B總線的司令部,能夠向子設備RT發送控制命令。通過給鏈接到總線上的子設備分配不同的RT子地址,只需使用一個BC,便可實現對所有子設備的控制。同時在1553B總線的標準中只規定了送到總線上的數據格式,對BC的工作方式沒有做出具體規定,這給使用1553B總線進行設備控制帶來了很大的自由度。使用者只需應用標準的數據格式,即可自主設計RT的個數以及整個系統的鏈接方法。1553B更大的優勢在于,板卡能夠在BC模式和RT模式間進行轉換,這就在更大程度上擴展了系統結構的設計方法。

(2)遠程終端RT。RT在1553B總線起到接收總線控制數據的作用,它只能接收BC發送的數據并進行應答,無法主動向總線傳送數據,是總線中接收命令的結構。如今,RT的使用分為兩種情況:嵌入式和非嵌入式?,F在很多RT已經嵌入子設備,并作為子設備的一部分參與總線數據接收。除數據接收外,RT還具有緩存有用的數據、將數據傳送給子設備進行分析處理、檢測傳輸錯誤以及確認數據有效的功能。由于1553B總線雙冗余結構的存在,RT需要同時處理兩條總線發送的數據和命令。

(3)總線監視器BM??偩€監視器BM的作用是監視和記錄總線上傳輸的命令和數據,它受BC控制,不參與任何數據傳輸的過程。BM有兩種工作模式:一種是字監視模式,它監聽總線上所有的消息字;另一種是選擇監視模式,只對指定的RT地址進行監視。

2 使用靜態鏈接庫和動態鏈接庫在編譯上的差異

在對接口模塊進行編程的過程中,需要根據接口模塊開發商提供的軟件接口文件,達到使用不同的接口模塊的目的。軟件接口文件,就是庫文件,庫文件分兩種,即靜態鏈接庫和動態鏈接庫。靜態鏈接是在鏈接階段,將源文件中使用的庫文件與通過匯編生成的目標文件和并后生成的可執行文件,而這種鏈接方式的好處在于,方便程序的移植,因為產生的可執行文件和庫文件再無關系,所以,它可以直接應用到任何環境。它的缺點在于,產生的文件內存過大,同時也因為產生的可執行文件和庫文件毫無關系,在需要對庫文件進行更改升級時,需要對靜態鏈接庫進行重新編譯,很不方便。而動態鏈接庫的產生就完全規避了這些缺點,它將函數的可執行代碼置于另一個DLL文件中,多個程序可以同時訪問存在內存中的同一DLL的內容,產生的文件內存很小。同時,在需要庫文件進行更改升級時,只需要更改DLL文件中的內容,無需對源程序進行重新編譯。而它的缺點在于,程序對DLL依賴性過大,當DLL被更改或者刪除時,程序無法正常運行。同時,由于DLL文件的特點,它的可移植性較差。

3 一種使用靜態鏈接庫對1553B通訊接口模塊進行通訊編程的方法

本文講述的編程方法建立在WINDOWS7操作系統平臺上,使用XE7編程軟件和C++語言編寫完成。首先,在源程序中加入1553B模塊開發商提供的頭文件和庫文件。例如:在源文件中添加include"mbi.h"的同時,將提供的mbi.lib庫文件通過XE7軟件中的Project->Add to Project方式添加到源文件中。其次,使用提供的軟件接口函數查找1553b模塊的驅動是否安裝成功。當成功檢測到安裝的接口模塊后,需要定義1553b總線表格式以及1553B模塊使用模式。例如:

unsigned bus[2][8],//1553B總線表定義

INCOM rcom[30]; //輸入通信表設置

OUTCOM tcom[30]; //輸出通信表設置

unsigned short rcomlen[2]; //輸入通信表長度

unsigned short tcomlen[2]; //輸出通信表長度

init(&rcom;[0],&tcom;[0],0);//初始化1553B總線,并設置1553B模塊的工作方式。

最后,使用開發商提供的1553B模塊的讀寫函數啟動總線表,進行總線上的數據傳輸。

4 結語

本文通過對1553B的總線結構進行研究,并對軟件設計過程中使用靜態鏈接庫和動態鏈接庫在編譯上的差異進行分析,給出了一種利用靜態鏈接庫與1553B接口模塊通訊的編程方法,經過一段時間的運行調試,此種方法可以運用在大多數與1553B接口模塊進行通訊的編程中。

參考文獻

[1] 吳云忠.基于pci接口的1553b總線控制軟件設計[J].現代電子技術,2013,36(24):47-49.

[2] 劉士全,雋揚,蔡潔明,等.1553B總線應用發展研究[J].電子與封裝,2013,13(12):12-15.

[3] 張榮鋒,朱堅,夏文元,等.基于pci總線的1553b總線接口電路的設計與實現[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] 羅至強.航空電子綜合化系統[M].北京:北京航空航天大學出版社,1990.

猜你喜歡
總線靜態通訊
防止蚊子叮咬的新方法
關于CAN總線的地鐵屏蔽門控制思路論述
猜猜他是誰
基于HTML5靜態網頁設計
分布式系統負載均衡關鍵技術及其發展脈絡
國內首個AR通訊應用浮出水面
國內首個AR通訊應用浮出水面
浮瓶通訊
Q&A熱線
PCI9030及其PCI總線接口電路設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合