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

?

基于1553B的綜合導(dǎo)航系統(tǒng)總線信息監(jiān)測儀*

2011-06-07 00:49聶浩翔卞鴻巍王榮穎
艦船電子工程 2011年12期
關(guān)鍵詞:板卡高精度中斷

聶浩翔 卞鴻巍 王榮穎

(海軍工程大學(xué)電氣與信息學(xué)院 武漢 430033)

1 引言

MTL-STD-1553B是20世紀70年代發(fā)展起來的“飛機內(nèi)部時分制指令/響應(yīng)式多路傳輸數(shù)據(jù)總線”[1],具有可靠性高、速度快、雙冗余、便于提高電子系統(tǒng)集成等優(yōu)點[6]。經(jīng)過30多年的發(fā)展,MTL-STD-1553B已經(jīng)成為國際公認的用于軍用平臺信息交換的總線標準[2]。

目前,我國海軍、空軍的一些武器平臺已經(jīng)采用 GJB289A(MTL-STD-1553B)數(shù)據(jù)總線[2]。如某綜合導(dǎo)航系統(tǒng)中的若干個分系統(tǒng)通過1553B總線與其計算機進行數(shù)據(jù)交換。為了保證系統(tǒng)正常運行,使系統(tǒng)在聯(lián)調(diào)測試過程中,對發(fā)生的故障、問題能夠準確定位,及時排除,需要對1553B數(shù)據(jù)監(jiān)測技術(shù)進行研究。

本文以某綜合導(dǎo)航系統(tǒng)聯(lián)調(diào)為背景,研制出一種對1553B總線系統(tǒng)信息進行監(jiān)測的系統(tǒng)。該1553B總線監(jiān)測系統(tǒng)初始化作為總線監(jiān)視器MT掛在總線系統(tǒng)上,監(jiān)視、記錄整個總線系統(tǒng)的數(shù)據(jù),為故障定位提供可靠的通信數(shù)據(jù),為日后建立相應(yīng)的故障診斷系統(tǒng)積累大量的試驗數(shù)據(jù)。

2 1553B總線監(jiān)測系統(tǒng)方案

總線監(jiān)測系統(tǒng)主要由硬件和軟件兩部分組成。其中硬件部分主要由加固機和1553B板卡組成。根據(jù)系統(tǒng)需求,采用低功耗、散熱良好、性能穩(wěn)定的加固機作為系統(tǒng)應(yīng)用軟件的硬件載體。

為了加快硬件應(yīng)用軟件的開發(fā)速度,選用了符合1553B 標 準 的 ELCUS 公 司 的 TEI-PCI4-01-C板卡,此板卡支持由ELCUS公司提供的源代碼級API,在1553B總線環(huán)境下,能實現(xiàn)總線控制器(BC)、總線監(jiān)視器(MT)、遠程終端(RT)功能。

圖1 綜導(dǎo)系統(tǒng)總線信息監(jiān)測儀連接示意圖

此板卡的源代碼級API函數(shù)提供了操作系統(tǒng)和硬件之間的接口,方便用戶進行程序設(shè)計和二次開發(fā)。該板卡應(yīng)用平臺廣泛,針對DOS、Windows 98、XP、2000、ME、NT 4.0以及 Linux kernel 2.4等操作系統(tǒng),驅(qū)動都給出了相應(yīng)的板卡通用接口函數(shù)。另外,通過軟件編程可任意更改板卡的工作模式(某些板卡要通過設(shè)備上的焊接或跳線來設(shè)置),方便開發(fā)人員靈活處理具體通訊問題。

3 軟件設(shè)計及關(guān)鍵技術(shù)

軟件部分是在Windows XP系統(tǒng)下采用VC++6.0作為開發(fā)環(huán)境,調(diào)用ELCUS公司的API函數(shù)來實現(xiàn)監(jiān)測總線數(shù)據(jù)通信的功能。

3.1 軟件組成和工作流程

總線監(jiān)測儀軟件采用程序設(shè)計中常用的模塊化思想。根據(jù)1553B通訊協(xié)議,總線監(jiān)視器的功能不響應(yīng)總線控制器的任何命令,用于監(jiān)視總線數(shù)據(jù)及提取數(shù)據(jù)以便以后的數(shù)據(jù)分析[3]。因此軟件主要由主模塊和五個主要的模塊:初始化模塊、數(shù)據(jù)監(jiān)控模塊、數(shù)據(jù)解析模塊、數(shù)據(jù)顯示模塊和數(shù)據(jù)保存模塊組成。

圖2 總線監(jiān)測儀軟件組成圖

主模塊負責(zé)整個系統(tǒng)的軟件流程;初始化模塊主要用來對板卡和系統(tǒng)運行時所需要的一些參數(shù)如采樣時間進行初始化;數(shù)據(jù)監(jiān)控模塊以各種方式對用戶關(guān)心的消息進行選擇監(jiān)控;數(shù)據(jù)解析模塊把監(jiān)控的數(shù)據(jù)按照一定的格式解析成為具體的物理含義;數(shù)據(jù)顯示模塊是用編輯框或圖表把監(jiān)控解析后的數(shù)據(jù)進行顯示;數(shù)據(jù)保存模塊是保存解析后的數(shù)據(jù)以便事后分析。

3.2 基于多線程和板卡中斷機制的數(shù)據(jù)采集

該綜合導(dǎo)航系統(tǒng)交聯(lián)關(guān)系十分復(fù)雜,1553B總線承擔(dān)著所有消息的傳輸,消息多而且傳輸頻率比較高,因此,1553B總線信息監(jiān)測系統(tǒng)必須具有實時性[8~9],才能監(jiān)控總線上傳輸?shù)乃邢ⅲ粫霈F(xiàn)消息丟失的情況。

中斷技術(shù)是解決實時性較好的辦法,即每個消息傳輸結(jié)束,產(chǎn)生消息中斷,中斷服務(wù)程序?qū)鬏斖甑南⑦M行處理。然而由于Windows操作系統(tǒng)對中斷不完全開放,在Windows下開發(fā)中斷處理程序非常困難。但是Windows提供了消息循環(huán)機制和多線程機制[4,7],采用 Windows的多線程機制和板卡的中斷機制可以解決這個問題[5]。

圖3 軟件流程圖

1553B板卡底層通信軟件的運行由總線接口板上的微處理器直接管理,因此,它不直接由Windows操作系統(tǒng)管理,具有實時性。一條消息運行結(jié)束時,總線接口板產(chǎn)生消息結(jié)束中斷,微處理器組織將消息數(shù)據(jù)存儲到雙口存儲器中。

在程序中創(chuàng)建一個MTProc線程,該線程一般處理“睡眠等待”狀態(tài),當(dāng)查詢到有中斷產(chǎn)生時,線程被“喚醒”,中斷服務(wù)程序?qū)ο⑦M行處理,這樣,采用Windows消息循環(huán)機制和底層板卡實時中斷機制相結(jié)合,保證了消息采集的實時性。流程圖如圖3所示。具體過程如下:

在初始化模塊中創(chuàng)造一個事件對象并返回句柄hEvent,并將事件對象置為無信號狀態(tài)。調(diào)用板卡API函數(shù)tmkdefevent定義當(dāng)前板卡事件對象,驅(qū)動利用該句柄通知進程接收設(shè)備中斷。在MTProc線程中,由于事件處于“非信號狀態(tài)”,通過調(diào)用WaitForSingleObject()函數(shù)來監(jiān)視這個信號。如果檢測到有信號則返回WAIT_OBJECT_0,按照需求進行操作;如果超過了超時間隔,事件對象仍然為信號,則返回WAIT_TIMEOUT。

3.3 高精度定時器的設(shè)計

目前系統(tǒng)定時器是在Visual C++6.0中常用的定時器,即使用SetTimer()函數(shù)進行初始化,應(yīng)用程序響應(yīng)SetTimer()函數(shù)發(fā)送的消息 WM_TIMER。該定時器在用Visual C++6.0編程時使用較多,但是它的最大缺點是其最小定時時間約為55.0722ms[11],只能滿足測控軟件的一般定時需求。

本文針對1553B通信速率高的特點,在多線程的基礎(chǔ)上,利用QueryPerformanceCounter函數(shù)和QueryPerformanceFrequency函數(shù)設(shè)計了高精度定時器。

兩個函數(shù)的原型為

兩個函數(shù)均在MTProc線程中調(diào)用。

1)首先調(diào)用QueryPerformanceFrequency函數(shù)取得高精度運行計數(shù)器的頻率f。單位是次/秒(n/s),該數(shù)值一般很大。

2)在需要定時的代碼兩端分別調(diào)用QueryPerformanceCounter以取得高精度運行計數(shù)器的數(shù)值n1,n2。兩次數(shù)值的差值通過f換算成時間間隔t=(n2-n1)/f。

3)建立一個while(t≥time)循環(huán),time為采樣時間,若滿足條件,則進行相應(yīng)的處理。

測試證明,設(shè)計的高精度定時器滿足數(shù)據(jù)采集的要求。

4 結(jié)語

1)針對某綜合導(dǎo)航系統(tǒng)設(shè)計了一種總線監(jiān)測儀器,重點介紹了系統(tǒng)的組成和程序設(shè)計中的關(guān)鍵問題。

2)在軟件設(shè)計中采用了多線程和硬件板卡中斷技術(shù)進行數(shù)據(jù)采集,在此基礎(chǔ)上設(shè)計了一種高精度定時器保證了數(shù)據(jù)的實時性。

3)測試表明,該總線監(jiān)測儀能較好地接收綜導(dǎo)總線數(shù)據(jù),人機界面良好,工作穩(wěn)定,為系統(tǒng)數(shù)據(jù)分析、故障定位提供了支持,可以為綜合導(dǎo)航系統(tǒng)聯(lián)調(diào)提供有力支持。

[1]MARC R P.MIL-STD-1553Bdesigner's guide[S].6th edition.New York:ILC Data Device Corportion,1998:2~4

[2]周明光,馬海潮.計算機測試系統(tǒng)原理與應(yīng)用[M].北京:電子工業(yè)出版社,2005:35~36

[3]王少蕾,朱華兵,周強.1553B總線系統(tǒng)通信軟件設(shè)計[J].火炮發(fā)射與控制學(xué)報,2008(4):87~88

[4]Jim Beveridge,Robert Wiener.Win32multithreading application in Win32[M].侯捷,譯.武漢:華中科技大學(xué)出版社,2002:121~132

[5]趙永庫.MIL-STD-1553B總線綜合測試系統(tǒng)設(shè)計[J].計算機技術(shù)與應(yīng)用,2005,25(3):42~44

[6]陳凱,閻杰,苗睿鋒.MIL-STD-1553B總線測試儀軟件開發(fā)[J].彈箭與制導(dǎo)學(xué)報,2005:264~266

[7]David J Kruglinski.Visual C++技術(shù)內(nèi)幕[M].第四版.北京:清華大學(xué)出版社,2002

[8]DOUGIAS E C.MIL-STD-1553Bvalidation and test facility[J].IEEE AIAA 9th Conference 2proceeding,1990,15(2):23~31

[9]郭澤仁.1553B總線系統(tǒng)優(yōu)化及可靠性設(shè)計[J].山東理工大學(xué)學(xué)報:自然科學(xué)版,2008,22(1):67

[10]徐欣.無線網(wǎng)絡(luò)導(dǎo)航服務(wù)系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與數(shù)字工程,2008,36(12)

[11]吳正平,等.用Visual C++6.0實現(xiàn)高精度定時器[J].江漢石油學(xué)院學(xué)報,2002,24(3):87

猜你喜歡
板卡高精度中斷
MACH2系統(tǒng)板卡程序下裝平臺的研制
車載控制器CVRE板卡顯紅故障分析及處理
“單片機中斷概述”微課教學(xué)設(shè)計
一種考慮GPS信號中斷的導(dǎo)航濾波算法
Linux中斷線程化分析及中斷延時測試
基于Niosll高精度超聲波流量計的研究
高精度PWM式DAC開發(fā)與設(shè)計
高精度PWM式DAC開發(fā)與設(shè)計
高抗擾高精度無人機著艦縱向飛行控制
跟蹤導(dǎo)練(二)(5)
仙桃市| 耒阳市| 稻城县| 乌兰县| 万州区| 响水县| 博白县| 喀喇| 杨浦区| 江达县| 普陀区| 钟山县| 兴仁县| 绥德县| 玉溪市| 荔波县| 米脂县| 凤庆县| 平武县| 沙洋县| 宿迁市| 海晏县| 宣武区| 沙湾县| 清远市| 德清县| 丰宁| 晋江市| 乐亭县| 涟源市| 天水市| 广德县| 阳春市| 镇沅| 尚义县| 海城市| 莒南县| 平原县| 柘荣县| 鸡东县| 镇安县|