国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

艦船綜合導(dǎo)航模擬器1553B總線控制器軟件開發(fā)

2012-07-04 02:46王程崢李文魁宋衛(wèi)紅黎海雪
船電技術(shù) 2012年5期
關(guān)鍵詞:板卡實(shí)時(shí)性模擬器

王程崢 李文魁 宋衛(wèi)紅 黎海雪

(1. 海軍工程大學(xué)電氣與信息工程學(xué)院,武漢 430033;2. 92823部隊(duì)三中隊(duì),三亞 572021;3. 92853部隊(duì),遼寧 興城 125106)

0 引言

艦船綜合導(dǎo)航系統(tǒng)作為導(dǎo)航系統(tǒng)的核心,對(duì)來自各種導(dǎo)航傳感器的導(dǎo)航信息進(jìn)行處理,并向操舵系統(tǒng)、指控系統(tǒng)等外部用戶發(fā)送。為滿足岸基條件下某型艦船操舵系統(tǒng)維修調(diào)試的需要,開發(fā)了艦船綜合導(dǎo)航模擬器,用于模擬艦船操縱運(yùn)動(dòng)時(shí)綜合導(dǎo)航系統(tǒng)輸出的艦艇航向、航速、縱橫傾等導(dǎo)航信息,并通過1553B總線向操舵系統(tǒng)發(fā)送。1553B采用一種串行、異步和半雙工式總線結(jié)構(gòu)[1],具有高可靠性、高實(shí)時(shí)性、高效率、抗干擾能力強(qiáng)等特點(diǎn)。

本文就 Windows環(huán)境下如何使用 C++Builder編譯平臺(tái)實(shí)現(xiàn) 1553B總線控制器通信的方法進(jìn)行了研究,同時(shí)在綜合導(dǎo)航系統(tǒng)模擬器設(shè)計(jì)中進(jìn)行了成功應(yīng)用。

1 1553B總線控制器軟件設(shè)計(jì)方法

1553B總線由傳輸介質(zhì)、總線控制器(BC)、遠(yuǎn)程終端(RT)和總線監(jiān)視(BM)器等四部分組成。BC的作用是組織信息傳輸,完成數(shù)據(jù)字的收/發(fā)、字/消息的處理[2]。針對(duì)總線上遠(yuǎn)程終端的數(shù)量和通信復(fù)雜程度,BC發(fā)送消息的設(shè)計(jì)方法主要有兩種[3]:

(1)簡單方式?;舅枷霝镽T回復(fù)消息的控制權(quán)完全在 BC。實(shí)現(xiàn)方法為:對(duì)周期消息采用固定周期來定時(shí)傳輸,對(duì)事件消息采用命令插入的方式。當(dāng)BC要求RT 返回?cái)?shù)據(jù)時(shí),BC可向RT的子地址下達(dá)命令字,并通過采用查詢方式來獲取數(shù)據(jù)。該方法編程簡單,適用于總線結(jié)構(gòu)單一、通信數(shù)據(jù)量較少的情況,對(duì)多個(gè) RT總線,通信實(shí)時(shí)性相對(duì)下降。

(2)矢量字方式?;舅枷胧菍⒒貜?fù)消息的主動(dòng)權(quán)交還給RT。實(shí)現(xiàn)方法為:RT接收BC命令完成相應(yīng)動(dòng)作,將數(shù)據(jù)字寫到相應(yīng)子地址緩存中,然后按照協(xié)議構(gòu)造矢量字,把矢量字發(fā)送到RT 的0/31 號(hào)子地址BUF中。BC在發(fā)送完一次性消息后,可向0/31子地址發(fā)命令字從而讀出其中存放的矢量字,根據(jù)協(xié)議解析矢量字得到相應(yīng)的子地址,并向該子地址發(fā)送命令從而得到 RT數(shù)據(jù)。該方法適合多RT的復(fù)雜通信,編程靈活,通訊數(shù)據(jù)量小。

2 綜合導(dǎo)航信號(hào)模擬器BC設(shè)計(jì)

2.1 系統(tǒng)組成

如圖1所示,綜合導(dǎo)航模擬器接收操舵系統(tǒng)輸出的當(dāng)前舵角,按照艦艇運(yùn)動(dòng)模型,實(shí)時(shí)計(jì)算出艦船運(yùn)動(dòng)參數(shù)。并采用2個(gè)1553B通道無應(yīng)答地定周期連續(xù)向操舵系統(tǒng)發(fā)送艦船的航向、航速、縱傾、橫傾等導(dǎo)航參數(shù)。

2.2 硬件及板卡驅(qū)動(dòng)函數(shù)

硬件平臺(tái)采用研華工控機(jī)。1553B通信卡采用北京神州飛航開發(fā)的基于 PCI接口的AEC1553-PCI- SBC31RT-S2型1553B通信卡。該1553B卡采用 FPGA設(shè)計(jì),可分時(shí)工作在 BC、RT、BM模式下,雙冗余通道數(shù)據(jù)發(fā)送和接收,支持大容量的數(shù)據(jù)存儲(chǔ)。

圖1 艦艇綜合導(dǎo)航模擬器的原理框圖

該1553B板卡提供了豐富的驅(qū)動(dòng)函數(shù),其中與BC通信相關(guān)的函數(shù)約有20多個(gè),常用BC函數(shù)[4]見表 1。

表1 常用BC通信函數(shù)列表

隨卡附帶的驅(qū)動(dòng)函數(shù)庫文件為基于 Visual C++的coff格式的M1553CSC.lib。若采用其它軟件進(jìn)行開發(fā),則需要對(duì)庫函數(shù)進(jìn)行格式轉(zhuǎn)換。如采用C++Builder,需用coff2omf命令轉(zhuǎn)換為omf格式的庫文件。相應(yīng)命令為:coff2omf M1553CSC.lib M1553CSCB.lib。

2.3 軟件設(shè)計(jì)

在 Windows XP操作系統(tǒng)下,我們采用C++Builder開發(fā)軟件進(jìn)行綜合導(dǎo)航信號(hào)模擬器總線控制器軟件設(shè)計(jì)。C++ Builder是由Borland公司推出的一款快速開發(fā)Win32應(yīng)用程序的可視化開發(fā)工具,利用它可以實(shí)現(xiàn)高性能的執(zhí)行效率和出色的底層控制。

對(duì)綜合導(dǎo)航模擬器,總線結(jié)構(gòu)較為簡單,因此采用簡單方式進(jìn)行 BC設(shè)計(jì)。程序流程如圖 2所示。主要程序代碼說明如下:

圖2 BC通信軟件流程圖

(1)板卡初始化

M1553_Open(&hCard, CardId);

打開板卡。hCard為板卡句柄,CardId為板卡編號(hào),按板卡所在插槽離CPU的距離由近到遠(yuǎn)依次編號(hào)0、1…、7。這里取為0、1。

M1553_WorkMode(hCard, ModeSel);

設(shè)置工作模式。工作模式 ModeSel可取為0(BC)、1(RT)、2(BM),這里取 0。

M1553_AddTimeTag(hCard,true);

開啟時(shí)間標(biāo)簽。用于觀察消息周期和間隔。分辨率 1 μs。

M1553_SetIntMaskReg(hCard,&IntMask);

設(shè)置中斷屏蔽寄存器。由于實(shí)時(shí)性要求較高,采用單消息觸發(fā)一次中斷,將中斷屏蔽寄存器結(jié)構(gòu)體 IntMask中的 BC_MsgOver(BC消息結(jié)束中斷使能位)和BC_STOP (BC消息出錯(cuò)停止中斷使能位)使能。

(2)數(shù)據(jù)加載

SMsg.MsgBlock.Datablk[0]=StrToFloat(Form 1->Edit1->Text);

將待發(fā)送數(shù)據(jù)字存放在BC消息描述結(jié)構(gòu)體成員Datablk[32]中。

BC_WriteDataBlock(hCard,MsgId,WordCnt,SMsg.MsgBlock.Datablk);

修改運(yùn)行中的BC發(fā)送的數(shù)據(jù)字,MsgId為消息 ID號(hào),WordCnt為寫入數(shù)據(jù)字個(gè)數(shù)(取值0~32)。

由于實(shí)時(shí)性要求較高,而C++Builder自帶計(jì)時(shí)器的定時(shí)精度最高只能達(dá)到55ms[5],故采用Microsoft Win32 API 提供的一項(xiàng)多媒體定時(shí)器服務(wù)來實(shí)現(xiàn)數(shù)據(jù)定時(shí)加載[6],定時(shí)精度最高能達(dá)到1 ms[7]。程序需包含定時(shí)器函數(shù)頭文件"mmsystem.h",實(shí)現(xiàn)方法如下:

①設(shè)定定時(shí)器分辨率

建立最小定時(shí)器分辨率。uPeriod為最小分辨率,由設(shè)定的最小分辨率與計(jì)算機(jī)的硬件配置決定。

使定時(shí)器定時(shí)精度回到系統(tǒng)的默認(rèn)值。

② 設(shè)置定時(shí)事件

uDelay 為事件周期,這里與BC發(fā)送消息的周期一致;uResolution 為延時(shí)分辨率;LpTimeProc 指向一個(gè)自定義的回調(diào)函數(shù),該函數(shù)用來設(shè)置定時(shí)事件,調(diào)用時(shí)應(yīng)指定對(duì)應(yīng)的事件標(biāo)識(shí)符,并提供用戶數(shù)據(jù),在中斷時(shí)間內(nèi)被訪問;DwUser 存放用戶提供的回調(diào)數(shù)據(jù);FuEvent 為事件類型,TIME_ONESHOT為一次性事件,TIME_PERIODIC為周期性事件。

調(diào)用任務(wù)完成后取消定時(shí)器回調(diào)事件,及時(shí)出讓珍貴的CPU 資源。

(3)消息配置與發(fā)送

SMsg.CtlWord.ChanSel=1;//消息發(fā)送時(shí)的通道選擇 0:Channel B 1:Channel A

BC_WriteMsg(hCard, MsgId, &SMsg); //消息發(fā)送

BC_AddEndOfListFlag(hCard, MsgId+1); //添加消息鏈表結(jié)束符

(4)消息讀取

數(shù)據(jù)的讀取顯示采用C++Builder自帶的計(jì)時(shí)器Timer定時(shí)觸發(fā)。

2.4 系統(tǒng)調(diào)試

硬件方面,傳輸距離小于30 cm時(shí),采用短截線實(shí)現(xiàn)總線和終端設(shè)備的直接耦合;否則,采用變壓器耦合[8,9],連接時(shí)需要注意耦合器的位置。在總線兩端匹配電阻,消除信號(hào)反射。調(diào)試過程中若發(fā)現(xiàn)問題應(yīng)首先判定是否為硬件問題,發(fā)送已知數(shù)據(jù),將板卡輸出腳接示波器上觀察電平,若正確則基本排除硬件問題。需要注意的是1553B總線上的消息是調(diào)制成雙極性碼的曼徹斯特碼[10]。

圖3 艦艇綜合導(dǎo)航模擬器BC運(yùn)行界面圖

軟件方面,采用隨卡附帶的應(yīng)用程序作為RT接收數(shù)據(jù)。調(diào)試時(shí)應(yīng)遵循先易后難原則。先嘗試簡單通信模式,如 BC發(fā)送一個(gè)數(shù)據(jù)字測試 RT能否正確接收,RT返回的狀態(tài)字是否正常等,成功后再嘗試較復(fù)雜的通信模式。軟件運(yùn)行界面如圖3所示。

3 總結(jié)

本文討論了1553B總線控制器軟件設(shè)計(jì)的方法,根據(jù)艦船綜合導(dǎo)航模擬器的實(shí)際需求,詳細(xì)介紹了 Windows環(huán)境下基于 C++Builder如何實(shí)現(xiàn)數(shù)據(jù)發(fā)送的具體方法及系統(tǒng)調(diào)試中的注意事項(xiàng)。試驗(yàn)表明該系統(tǒng)運(yùn)行可靠,達(dá)到了預(yù)定要求。

[1]楊武志, 李敏勇. 基于艦船 1553B總線系統(tǒng)監(jiān)控測試軟件的設(shè)計(jì)[J].艦船電子工程, 2009, 29(1):190-192.

[2]李志剛. 1553B總線測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 西安西北工業(yè)大學(xué), 2005.

[3]丁明亮, 魏志剛. 1553B總線遠(yuǎn)程終端仿真軟件設(shè)計(jì)[J]. 計(jì)量與測試技術(shù), 2008, 35(1): 43-47.

[4]AEC1553-PCI-SBC31RT/S2 用戶手冊(cè)[Z]. 北京: 北京神州飛航科技有限責(zé)任公司, 2011.

[5]Mark Nelson. 串行通信開發(fā)指南[M]. 北京: 中國水利水電出版社, 2001: 43.

[6]Microsoft 公司. MICROSOFT WIN32 程序員參考大全(一)[M]. 北京: 電子科技出版社, 1994: 90-95.

[7]李文魁, 陳永冰, 周永余等. 多任務(wù)實(shí)時(shí)系統(tǒng)提高實(shí)時(shí)性的方法及其在導(dǎo)航綜合信號(hào)源系統(tǒng)中的應(yīng)用[J]. 中國慣性技術(shù)學(xué)報(bào), 2003, 11(4): 11-15

[8]GJB 289A-1997, 數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線[s]. 中國軍用標(biāo)準(zhǔn), 1997.

[9]MIL-STD-1553,飛機(jī)內(nèi)部時(shí)分制指令/響應(yīng)式多路傳輸數(shù)據(jù)總線[s]. 美國軍用標(biāo)準(zhǔn), 1978.

[10]武鵬, 畢君懿. 1553B總線中曼徹斯特編碼器的設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2011, 34(4): 61-64.

猜你喜歡
板卡實(shí)時(shí)性模擬器
了不起的安檢模擬器
盲盒模擬器
劃船模擬器
基于PCI9054的多總線通信板卡的研制
基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對(duì)比
計(jì)算機(jī)控制系統(tǒng)實(shí)時(shí)性的提高策略
一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑懠夹g(shù)
動(dòng)態(tài)飛行模擬器及其發(fā)展概述
一種通用模擬量及開關(guān)量信號(hào)采集板卡的設(shè)計(jì)