所屬欄目:軟件開發(fā)論文 發(fā)布日期:2010-09-15 08:37 熱度:
摘要:近年來,1553B數據總線由于其高可靠性和實時性,在航天、航空、軍事等領域的電子聯網系統(tǒng)中取得了廣泛的應用。MIL-STD-1553B是美國軍用標準的串行通信總線,全稱是“飛機內部時分制指令/響應多路傳輸數據總線”。這個標準規(guī)定了數字式的命令/響應時分制多路數據總線的技術要求,也規(guī)定了多路總線的操作方式和總線上信息流的格式以及電氣要求。MIL-STD-1553B總線接口板是實現航天電子綜合化系統(tǒng)的關鍵部件,完成總線的信息綜合、資源共享、任務協調和容錯重構。
關鍵詞:1553B總線;接口軟件;總線控制器;遠程終端;堆棧
11553B總線卡的通信接口
1553B總線的主要特征:傳輸速度為1Mbit/s,字的長度為20bit,數據有效長度為16bit,信息量最大長度為32個字。傳輸方式為半雙工方式,傳輸協議為命令/響應方式,故障容錯是典型的雙冗余方式,第二條總線處于熱備份狀態(tài)。傳輸媒介為屏蔽雙絞線,總線耦合方式為直接耦合
和變壓器耦合。由于PC局部總線技術的發(fā)展,使得PCI總線成為PC總線事實上的標準。這使得航電系統(tǒng)所需要的接口板由ISA總線向PCI總線的轉換便顯得尤為迫切。我們設計的仿真控制系統(tǒng)實現了基于PCI總線通信的1553B總線接口板。其具體的設計思路是:與1553B總線的接口采用DDC公司的BU-61580協議芯片,與PCI總線的接口采用AMCC公司的PCI總線接口芯片S5920,其中重點部分在于S5920與BU-61580之間的接口邏輯的設計,這部分采用了一片Lattice公司的GAL20V8可編程邏輯芯片和地址鎖存和數據驅動、隔離的分立元件來實現。1553B總線協議電路主要是圍繞BU-61580協議芯片其RT子地址要用專門的外部電路來設置,接口卡上設計了RT子地址設置電路,可以通過增減短路來完成1553B總線終端RT子地址的設置。1553B總線輸出電路完成接口卡與1553B總線的信息交換,主要包括隔離變壓器和專用接口。接口卡有A和B兩個輸出通道,通道都可獨立接受和發(fā)送信息。信號從BU-61580的內部發(fā)送接收機出來后要經過一個隔離變壓器后,連接到專用的傳輸線接口上。邏輯電路主要通過一片GAL20V8完成接口卡全部邏輯處理,包括S5920本地端和BU-61580相連時一些控制信號的轉換等邏輯功能。接口卡的電源狀態(tài)由指示電路上的LED指示燈來顯示,1553B板卡的實現原理圖如圖1所示。
2接口軟件設計
1553B總線卡是仿真測試系統(tǒng)的核心部件,它的功能是連接測試系統(tǒng)和被測系統(tǒng),實現兩個系統(tǒng)間的實時信號通訊,保障系統(tǒng)間各種工作狀態(tài)控制及狀態(tài)數據及時、正確地傳輸。本文不討論總線卡的有關底層驅動問題,只探討接口傳輸應用層軟件的相關設計和實現。
2.1軟件總體設計思路
總線上所有消息的傳輸都由BC激勵和控制,因此其軟件設計的好壞關系到整個系統(tǒng)的性能。本BC通訊軟件的設計有如下幾個關鍵之處。
2.1.1消息的組織
本應用軟件的消息有數據轉發(fā)、采集RT(RotateTer-mina1,簡稱RT)工程參數以及時間碼。廣播時間碼是每幀都要處理的消息,屬于周期性消息。采集RT工程參數是由事件的請求觸發(fā)的,屬于非周期性消息。對于非周期性消息,BC要在原有周期性消息基礎上增加要求RT發(fā)送向量字的方式指令消息。設計時,BC以4Hz的頻率向RT發(fā)送詢問指令,被查詢的RT若有事件請求,就將矢量字置位,BC將在下一幀增加處理該事件的消息。這樣,每一幀的消息描述塊、消息塊內容和堆棧的消息處理個數都不一樣。所以,每一幀都需要在保留周期性消息的前提下增加非周期性消息描述塊、復位堆棧指針、更改消息個數、更新消息塊、填寫發(fā)送數據和接收數據。
2.1.2消息時間間隔的選取
消息的時間間隔可以是均勻的,也可以是非均勻的。由于消息之間的時間間隔對所有RT都會產生影響,而且任務不同使得總線繁忙程度也不同。另外,有些消息需要在消息結束后的中斷服務中進行處理,這時適當增加消息間隔時間可提高系統(tǒng)通訊的可靠性;而有些消息不需要這
樣的處理,減少消息時間間隔反而有利于提高總線系統(tǒng)運行效率。因此,本設計采用非均勻分配時間間隔的方式。實現這一目的,只需根據不同的消息對描述符堆棧中時間間隔字進行編程即可。根據以上分析,所設計的BC通訊軟件的工作過程可用圖2表示。
2.2關鍵數據結構和函數介紹
測試系統(tǒng)的功能是模擬機上航電系統(tǒng),通過對被測試系統(tǒng)進行控制操縱等過程來完成各項測試任務。所以,本項目中1553B卡主要工作于BC模式。而對于1553B卡軟件的開發(fā),主要使用以下幾個重要函數:
2.2.1與板卡的硬件控制相關的函數
(1)Get_4000Module_Type(WORDdevice_num,WORDmodule_num,WORD*modtype):該函數用來獲取板卡。參數device_num指板卡數,取值范圍是0~3;參數module_num指板卡上相應的模塊,取值范圍是0~2;參
數modtype指板卡類型。
(2)Init_Module_MCH(usintdevice_num,usintmod-ule_num):該函數用來初始化板卡相關模塊。要注意的是,它是第一個用戶必須調用的函數,使得用戶可以訪問1553板卡上的四個模塊。
(3)Set_Mode_MCH(inthandle,shortmode):用來設定板卡的工作模式。參數mode的取值有BC_MODE、RT_MODE、BM_MODE和BM_RT_MODE。在本項目中,板卡工作于BC模式,故mode取值為BC_MODE。
(4)Stop_Card_MCH(inthandle):該函數用來停止板卡的運行。
(5)Release_Module_MCH(inthandle):該函數用來釋放板卡資源并給板卡下電,每調用一次Init_Module_MCH()函數,就必須調用一次Release_Module_MCH()函數。
2.2.2關于1553B數據傳輸的重要函數
(1)Read_BC_Datablk_MCH(inthandle,usintblk-num,usintwdcnt,usint*data):該函數用來讀取數據。參數handle是函數Init_Module_MCH()的返回值,參數blknum指數據堆棧號,參數wdcnt指希望從buffer里讀取數據的字數,參數data是一個指向buffer的指針,讀到的1553數據最終會存儲到這個buffer。
(2)Set_BC_Cmd_MCH(inthandle,usintcmdnum,structCMDENTRY*entry):該函數用來創(chuàng)建一個命令棧的入口,參數cmdnum指命令堆棧入口號。
(3)Load_BC_Datablk_MCH(inthandle,usintblk-num,usintwdcnt,usint*data):該函數用來為一個RT接受命令加載數據。參數blknum為數據堆棧號,取值范圍是0~750,wdcnt為希望寫入發(fā)送寄存器里的字數,參數data為用戶想要寫入的數據地址。
(4)Run_BC_MCH(inthandle):該函數在所有的1553消息被Set_BC_Cmd_MCH()創(chuàng)建后調用,用來執(zhí)行消息堆棧,送出消息。
2.2.3軟件封裝的函數
考慮到使用的方便和有效等情況,在二次開發(fā)過程中對1553B總線卡的操作進行了類的封裝并在類中提供了以下接口函數,專門用來進行1553B卡的通信控制。
(1)初始化函數的封裝。1553B卡的初始化函數
Init1553()利用BOOLInit1553()進行封裝。與初始化函數相對應,程序退出時必須調用釋放1553B板卡資源的函數Stop1553()。
、1553B卡的初始化函數Init1553()的封裝。
BOOLInit1553()
{
usintuModType;
Get_4000Module_Type(0,0,&uModType);//獲取板卡
if(uModType!=EXC4000_MODTYPE_MCH){
AfxMessageBox("Error_EXC4000PCI");
returnFALSE;
}
m_ExcHandle1553=Init_Module_MCH(0,0);
if((uModType=Set_Mode_MCH(m_ExcHandle1553,BC
_MODE))!=0){
AfxMessageBox("1553moduleinitfailed");
returnFALSE;
}
returnTRUE;
}
、赟top1553()函數的封裝。
與初始化函數相對應,程序退出時必須調用釋放1553B板卡資源的函數Stop1553()。
BOOLStop1553()
{
usintuModType;
if((uModType=Stop_Card_MCH(m_ExcHandle1553))!
=0){
AfxMessageBox("1553modulestopfailed");
returnFALSE;
}
if((uModType=Release_Module_MCH(m_
ExcHandle1553))!=0){
AfxMessageBox("1553moduleReleasefailed");
returnFALSE;
}
returnTRUE;
}
(2)數據處理函數的封裝。
①BOOLSend1553MessageRTR(WORDcmd,WORDdata[],UINTnum,intdataIp):該函數用來控制被測系統(tǒng)發(fā)送“接受指令”給測試系統(tǒng),其中參數data[]是要測試系統(tǒng)接收的數據,參數dataIp是要寫入的數據堆棧號。
②BOOLSend1553MessageRTT_CYCLE(WORDcmd,intdataIp,WORDtime):該函數是用來發(fā)送“發(fā)送指令”給測試系統(tǒng)。
3接口軟件測試
為了方便系統(tǒng)應用軟件的開發(fā),能夠及時了解所設計的1553B接口卡軟件的工作狀態(tài),我們測試它的通信效果。主要測試內容有1553消息字塊定義、消息查看、錯誤信息、重試等幾個部分。
3.11553消息字塊定義
1553B總線上發(fā)送數據以“消息”為單位,首先需要定義“消息”。在測試界面上可以通過選擇工作模式、傳輸通道、間隔時間等內容來確定消息字塊的樣式。消息定義的界面如圖3所示。在板卡的測試中,選擇BC-RT工作模式,RT地址設為0,子地址為1。時間間隔(Gap)設置為1000微秒,選擇B通道。
3.2數據輸入
測試數據可以由自己輸入或者點擊“Random”按鈕產生隨機數據,如圖4所示。
3.3數據接收顯示
數據顯示界面如圖5所示。
在對端顯示所接收的數據,其中包括控制字、狀態(tài)字、數據內容、錯誤信息顯示等內容,從而可以準確地掌握數據總線的工作情況。錯誤消息顯示能夠幫助操作人員對數據總線的錯誤進行判斷和定位,使問題較快地得到解決。測試結果表明,該接口軟件能夠實時正確地傳輸數據
和控制字塊,滿足仿真測試系統(tǒng)的通信要求。
4結束語
MIL-STD-1553B總線作為一種高可靠性和實時性的主從式數據總線,目前在軍事和工業(yè)領域已經得到了廣泛的應用。本設計采用價格低廉且易采購的元器件,組成了結構簡單、功能完善的1553B多路總線接口模塊。根據任務需求主要實現了BC通信的板塊,采用VC編程實現了接口板的通信,提高了代碼的效率,大大縮短了編程的時間。
搜論文知識網致力于為需要刊登論文的人士提供相關服務,提供迅速快捷的論文發(fā)表、寫作指導等服務。具體發(fā)表流程為:客戶咨詢→確定合作,客戶支付定金→文章發(fā)送并發(fā)表→客戶接收錄用通知,支付余款→雜志出版并寄送客戶→客戶確認收到。鳴網系學術網站,對所投稿件無稿酬支付,謝絕非學術類稿件的投遞!
文章標題:探討總線的接口軟件設計與實現
轉載請注明來自:http://www.56st48f.cn/fblw/dianxin/ruanjiankaifa/4158.html
攝影藝術領域AHCI期刊推薦《Phot...關注:106
Nature旗下多學科子刊Nature Com...關注:152
中小學教師值得了解,這些教育學...關注:47
2025年寫管理學論文可以用的19個...關注:192
測繪領域科技核心期刊選擇 輕松拿...關注:64
及時開論文檢索證明很重要關注:52
中國水產科學期刊是核心期刊嗎關注:54
國際出書需要了解的問題解答關注:58
合著出書能否評職稱?關注:48
電信學有哪些可投稿的SCI期刊,值...關注:66
通信工程行業(yè)論文選題關注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關注:121
評職稱發(fā)論文好還是出書好關注:68
復印報刊資料重要轉載來源期刊(...關注:51
電子信息論文范文
智能科學技術論文 廣播電視論文 光電技術論文 計算機信息管理論文 計算機網絡論文 計算機應用論文 通信論文 信息安全論文 微電子應用論文 電子技術論文 生物醫(yī)學工程論文 軟件開發(fā)論文
SCI期刊分析
copyright © www.56st48f.cn, All Rights Reserved
搜論文知識網 冀ICP備15021333號-3