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

?

基于RTX平臺高速實(shí)時(shí)數(shù)據(jù)采集與處理平臺設(shè)計(jì)*

2010-08-11 05:27周徐昌
艦船電子工程 2010年7期
關(guān)鍵詞:采集卡驅(qū)動程序實(shí)時(shí)性

雷 毅 周徐昌

(海軍工程大學(xué)兵器工程系 武漢 430033)

1 引言

隨著計(jì)算機(jī)科學(xué)技術(shù)的迅猛發(fā)展,當(dāng)代仿真技術(shù)得到了極大地提高。傳統(tǒng)的嵌入式操作系統(tǒng)雖然實(shí)時(shí)性高,但需要獨(dú)有的開發(fā)定制工具,開發(fā)復(fù)雜,定制內(nèi)核涉及BSP相關(guān)知識;而且其它通用功能例如圖形顯示功能并不強(qiáng)大,需要購買第三方圖形開發(fā)包,開發(fā)周期長。RTX則能比較好地完成圖形化和實(shí)時(shí)兩方面要求,因而在半實(shí)物仿真系統(tǒng)中得到了廣泛地使用。但目前設(shè)備廠商對于一些采用實(shí)時(shí)操作系統(tǒng)的仿真計(jì)算機(jī),未提供相應(yīng)的設(shè)備驅(qū)動程序,由于對實(shí)時(shí)性的要求,也必須自己開發(fā)相應(yīng)的設(shè)備驅(qū)動程序。在某型武器半實(shí)物仿真系統(tǒng)中,選用研華公司的工控機(jī)和PCI1714數(shù)據(jù)采集卡、三軸轉(zhuǎn)臺等設(shè)備組成硬件平臺,RTX+Windows作為軟件平臺,在系統(tǒng)的開發(fā)過程中編寫了PCI卡的設(shè)備驅(qū)動程序。本文以PCI1714為例詳細(xì)討論了在RTX+Windows下開發(fā)PCI設(shè)備驅(qū)動程序的方法。

2 RTX操作系統(tǒng)簡介

RTX是Windows XP/2000/NT系統(tǒng)的硬實(shí)時(shí)擴(kuò)展,為 Windows系統(tǒng)提供了高速確定性的硬實(shí)時(shí)能力,滿足了對設(shè)備I/O進(jìn)程的確定性響應(yīng)的要求。其內(nèi)核采用基于開放式的x86系列PC架構(gòu),可定制裁減,并支持多種CPU架構(gòu)[1]。其獨(dú)立的基于搶占式的RT X線程調(diào)度機(jī)制允許RTSS線程優(yōu)先于所有的Windows線程和中斷,并擁有足夠多的優(yōu)先級,每個(gè)進(jìn)程可以從0~127這128個(gè)優(yōu)先級中選擇,而且提供了 Windows和RTSS進(jìn)程之間的IPC進(jìn)程間通信機(jī)制。

RTX對x86提供了很好的支持。而且RTX提供了針對端口I/O和總線I/O所有操作的功能函數(shù),幾乎可以用于所有的驅(qū)動開發(fā)。并向開發(fā)者提供了獨(dú)立于操作系統(tǒng)和應(yīng)用程序的對于系統(tǒng)資源的直接訪問控制和所有權(quán),使得開發(fā)PCI驅(qū)動程序更方便。

3 RTX下保證系統(tǒng)實(shí)時(shí)性的可行性分析

某型武器半實(shí)物仿真系統(tǒng)仿真原理框圖如圖1所示,系統(tǒng)按照仿真時(shí)序的要求,采集其運(yùn)動參數(shù)及舵角,送至數(shù)字仿真計(jì)算機(jī),通過求解其動力學(xué)與運(yùn)動學(xué)方程,發(fā)送命令給三軸轉(zhuǎn)臺和水壓仿真器,三軸轉(zhuǎn)臺通過角運(yùn)動,水壓仿真器通過油壓動態(tài)變化,仿真其姿態(tài)變化和深度變化,給控制系統(tǒng)提供信息,從而模擬其下一時(shí)刻的運(yùn)動狀態(tài)。

圖1 某型武器半實(shí)物仿真系統(tǒng)仿真原理框圖

仿真系統(tǒng)主要參數(shù)有各計(jì)算機(jī)幀時(shí)、轉(zhuǎn)臺和水壓仿真器分系統(tǒng)幀時(shí)、接口通信速率等。在Windows環(huán)境下能夠?qū)崿F(xiàn)實(shí)時(shí)數(shù)據(jù)采集的資源有2個(gè):多媒體定時(shí)器和常規(guī)定時(shí)器。常規(guī)定時(shí)器是建立在PC機(jī)硬件和ROM BIOS中系統(tǒng)定時(shí)器的簡單擴(kuò)充基礎(chǔ)之上。由于ROM BIOS將PC中的一個(gè)8253定時(shí)芯片設(shè)為54.915ms產(chǎn)生一個(gè)硬件中斷,因此通過這種方式獲得的定時(shí)器只能精確到55ms,對于 55ms以下的時(shí)間精度便無能為力了[2]。多媒體定時(shí)器使用自己單獨(dú)的線程來調(diào)用一個(gè)自己的回調(diào)函數(shù),并且該線程優(yōu)先級高,每隔一定時(shí)間就發(fā)送一個(gè)消息而不管其他消息是否已執(zhí)行完,因此采用多媒體定時(shí)器可以達(dá)到1ms的最小時(shí)間精度。對于一般的實(shí)時(shí)數(shù)據(jù)采集來說,采用多媒體定時(shí)器可以滿足要求,實(shí)時(shí)性要求更高的情況就無法滿足了。但是對于本系統(tǒng)來說,為保證系統(tǒng)的仿真精度和可信度,要求數(shù)學(xué)模型實(shí)時(shí)解算,需要更高精度的定時(shí)器。

RTX其持續(xù)中斷響應(yīng)頻率可達(dá)30kHz以上,最大IST處理延遲不超過16μ s。能提供高速準(zhǔn)確的實(shí)時(shí)時(shí)間響應(yīng),定時(shí)器最小周期為100μ s,時(shí)鐘最小分辨率為100ns。故從理論上看可滿足系統(tǒng)實(shí)時(shí)性的要求。

4 PCI1714數(shù)據(jù)采集卡驅(qū)動程序設(shè)計(jì)

PCI-1714配備4組模擬輸入端,具備同步采集功能。當(dāng)4組模擬輸入同時(shí)使用時(shí),采樣頻率最高可達(dá) 30MS/s。PCI-1714板卡采用 PLX-9056 PCI總線控制器,同時(shí),每路 ADC獨(dú)占板載的32kb,可保證數(shù)據(jù)在高速數(shù)據(jù)采集時(shí)的臨時(shí)存儲與數(shù)據(jù)的批量傳輸,實(shí)現(xiàn)數(shù)據(jù)的高速采集。

4.1 驅(qū)動程序?qū)崿F(xiàn)方法

在完成對設(shè)備地址映射之后,驅(qū)動程序就可以根據(jù)分配的基地址訪問設(shè)備了。在RTX操作系統(tǒng)下,其驅(qū)動程序不含虛擬機(jī),無需內(nèi)核中轉(zhuǎn)請求,不含緩沖及校驗(yàn)機(jī)制,可以直接操作寄存器。故可在內(nèi)核之外與應(yīng)用程序一起編譯運(yùn)行,不必把驅(qū)動程序編譯到內(nèi)核中去。而且RTX驅(qū)動程序架構(gòu)靈活,無需WDM驅(qū)動規(guī)范,可以以各種形式存在包括.rtss,.rtdll,rtss dll,.lib。在PCI1714數(shù)據(jù)采集卡的驅(qū)動程序中,把驅(qū)動程序當(dāng)作應(yīng)用程序的一部分,一起編譯生成目標(biāo)文件,沒有使用標(biāo)準(zhǔn)的驅(qū)動規(guī)范,這樣更方便操作采集卡。

4.2 驅(qū)動程序設(shè)計(jì)

一般來說,PCI的驅(qū)動程序可分為三個(gè)部分:初始化部分、對硬件資源的訪問函數(shù)庫、具體調(diào)用部分。調(diào)用RTX操作系統(tǒng)提供的I/O函數(shù)就可以控制采集卡上的數(shù)字IO輸出以及D/A輸出[3]。

4.2.1 獲得PCI設(shè)備信息,進(jìn)行設(shè)備初始化

在執(zhí)行初始化之前,需要對板卡的基地址進(jìn)行賦值。不同于ISA設(shè)備可以預(yù)先了解設(shè)備的中斷號和基地址,PCI設(shè)備的中斷號和基地址是在開機(jī)時(shí)由系統(tǒng)自動分配的。所以在操作設(shè)備之前,必須首先確認(rèn)設(shè)備的中斷號和基地址,以便進(jìn)行下一步的操作。首先通過for循環(huán)程序找到與所編寫程序的PCI卡相對應(yīng)的PCI設(shè)備,然后讀取設(shè)備中基地址寄存器中的地址和中斷號[4]。程序代碼如下所示:

BytesWritten=RtGetBusDataByOffset(

PCIConfiguration,//type of bus data to be retrieved bus

pSlotNumber->u.AsULONG,//logical slot number

PciData,//pointer to a buffer for configuration information 0,//byte offset into buffer PCI_COMMON_HDR_LENGTH//length of buffer)

初始化操作包括:配置中斷、停止位、奇偶校驗(yàn)位、字長FIFO等。PCI設(shè)備對板卡的操作與ISA設(shè)備無異,核心就是對寄存器的配置與讀寫操作。通過直接操作相應(yīng)寄存器即可達(dá)到相應(yīng)要求,示例代碼如下:

RtWritePortUchar(ucb->baseAddress+UA RT_LCR,LCR_DIVISOR_LATCH);

tempRegister=ucb->stopBits|ucb->parity|ucb->wordSize;

tempRegister=RtReadPortUchar(ucb->baseAddress+UART_FCR);

4.2.2 調(diào)用I/O函數(shù),訪問硬件資源

硬件中斷處理是實(shí)時(shí)系統(tǒng)設(shè)計(jì)的關(guān)鍵環(huán)節(jié),外部事件通過中斷通知系統(tǒng),系統(tǒng)通過中斷服務(wù)函數(shù)處理中斷請求。在中斷模式中,操作相應(yīng)的讀寫寄存器傳入傳出數(shù)據(jù)即可,示例代碼如下:

中斷方式,清空FIFO:

VOID EmptyFIFO(UCB*ucb)

中斷方式,寫入FIFO:

VOID SendNextFIFO(UCB*ucb)

4.3 仿真結(jié)果分析

半實(shí)物仿真數(shù)據(jù)結(jié)果對比的標(biāo)準(zhǔn)有兩個(gè):一是數(shù)字仿真結(jié)果;二是實(shí)航結(jié)果。圖2為半實(shí)物仿真的深度曲線與海上實(shí)航結(jié)果對比情況。說明了該驅(qū)動程序達(dá)到了系統(tǒng)的設(shè)計(jì)要求。

5 結(jié)語

本文結(jié)合PCI1714數(shù)據(jù)采集卡分析了在RTX+Windows下開發(fā)PCI設(shè)備驅(qū)動程序的方法。經(jīng)實(shí)際運(yùn)行,所編寫的驅(qū)動程序在仿真系統(tǒng)中運(yùn)行穩(wěn)定可靠,系統(tǒng)的實(shí)時(shí)性達(dá)到了設(shè)計(jì)要求。

[1]Ardence公司.RTX技術(shù)白皮書[Z].北京航天捷越(美斯比)科技有限公司,譯,2004

[2]吳麗娜,高敬陽.Windows2000/XP下通用實(shí)時(shí)采集的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2005,25(2):442~444

[3]王宇磊,周東.VxWorks下PCI總線驅(qū)動程序設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用

[4]董春橋,李凱.Linux系統(tǒng)PCI設(shè)備驅(qū)動程序開發(fā)[J].計(jì)算機(jī)測量與控制,2005,13

[5]WindRiver Systems Inc.VxWorks Programmer's Guide[Z].1998

[6]楊飛,安錦文,李中健.嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks下CPCI設(shè)備驅(qū)動程序開發(fā)[J].計(jì)算機(jī),2007,15(5)

[7]馬明建,周長城.數(shù)據(jù)采集與處理技術(shù)[M].西安:西安交通大學(xué)出版社,1998,1:59~70

[8]肖忠祥.數(shù)據(jù)采集原理[M].西安:西安工業(yè)大學(xué)出版社,2003:15~20

猜你喜歡
采集卡驅(qū)動程序實(shí)時(shí)性
高精度AD采集卡性能測試及評價(jià)方法研究
血液采集卡存儲裝置的設(shè)計(jì)與應(yīng)用
阻止Windows Update更新驅(qū)動程序
智能變電站電子式電流互感器故障分析
計(jì)算機(jī)硬件設(shè)備驅(qū)動程序分析
航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對比
計(jì)算機(jī)控制系統(tǒng)實(shí)時(shí)性的提高策略
可編程控制器的實(shí)時(shí)處理器的研究
脈沖采集卡的開發(fā)
妙用鼠標(biāo)驅(qū)動
长葛市| 扬州市| 毕节市| 韩城市| 泸定县| 铜陵市| 天峻县| 泉州市| 乌什县| 双辽市| 安福县| 潮州市| 霍州市| 乐亭县| 扎兰屯市| 金门县| 广德县| 启东市| 涿鹿县| 峨山| 延川县| 小金县| 望谟县| 许昌县| 金湖县| 阳泉市| 平昌县| 英德市| 宿松县| 太白县| 汤阴县| 荃湾区| 敦化市| 会理县| 昌平区| 宁波市| 苏尼特左旗| 九寨沟县| 昌宁县| 太康县| 仙桃市|