久久精品电影网_久久久久久电影_久久99精品久久久久久按摩秒播_天堂福利影院_国产男女爽爽爽免费视频_国产美女久久

探討總線的接口軟件設計與實現

所屬欄目:軟件開發(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所示。
  表1.jpg
  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.jpg
  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.jpg
  3.2數據輸入
  測試數據可以由自己輸入或者點擊“Random”按鈕產生隨機數據,如圖4所示。
  
  3.3數據接收顯示
  數據顯示界面如圖5所示。
  表5.jpg
  在對端顯示所接收的數據,其中包括控制字、狀態(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

相關問題解答

SCI服務

搜論文知識網 冀ICP備15021333號-3

主站蜘蛛池模板: www国产精品 | 男人天堂手机在线视频 | 麻豆久久久久久久 | 成人av影院 | 亚洲国产成人在线观看 | 久久99精品国产麻豆婷婷 | 久久爱一区 | 三级成人片| 亚洲成人av | 日韩免费 | www.一区二区三区.com | 精久久久| 国产午夜精品久久久久免费视高清 | 亚洲国产精品久久久久秋霞不卡 | 国产精品免费一区二区三区四区 | 狠狠色狠狠色综合日日92 | 日韩欧美在线免费 | 精品在线观看一区二区 | 国产欧美精品一区二区色综合 | 中文字幕二区 | 日本人做爰大片免费观看一老师 | 亚洲图片一区二区三区 | 久久精品91久久久久久再现 | 亚洲第一天堂 | 国产精品一区在线观看你懂的 | 国产麻豆乱码精品一区二区三区 | 日本精品一区二区三区在线观看视频 | 91亚洲国产成人精品一区二三 | 天天精品在线 | 中文字幕欧美一区二区 | 中文字幕一区在线 | 久久久久久国产精品 | 国产高清一区二区三区 | 91免费视频观看 | 日韩有码一区 | 蜜桃视频一区二区三区 | 亚洲不卡在线视频 | 综合二区 | 国产黄色在线观看 | www午夜视频 | 国产农村一级国产农村 |