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