• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2010-08-11 05:27:32周徐昌
    艦船電子工程 2010年7期
    關(guān)鍵詞:采集卡驅(qū)動(dòng)程序實(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)知識(shí);而且其它通用功能例如圖形顯示功能并不強(qiáng)大,需要購買第三方圖形開發(fā)包,開發(fā)周期長。RTX則能比較好地完成圖形化和實(shí)時(shí)兩方面要求,因而在半實(shí)物仿真系統(tǒng)中得到了廣泛地使用。但目前設(shè)備廠商對(duì)于一些采用實(shí)時(shí)操作系統(tǒng)的仿真計(jì)算機(jī),未提供相應(yīng)的設(shè)備驅(qū)動(dòng)程序,由于對(duì)實(shí)時(shí)性的要求,也必須自己開發(fā)相應(yīng)的設(shè)備驅(qū)動(dòng)程序。在某型武器半實(shí)物仿真系統(tǒng)中,選用研華公司的工控機(jī)和PCI1714數(shù)據(jù)采集卡、三軸轉(zhuǎn)臺(tái)等設(shè)備組成硬件平臺(tái),RTX+Windows作為軟件平臺(tái),在系統(tǒng)的開發(fā)過程中編寫了PCI卡的設(shè)備驅(qū)動(dòng)程序。本文以PCI1714為例詳細(xì)討論了在RTX+Windows下開發(fā)PCI設(shè)備驅(qū)動(dòng)程序的方法。

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

    RTX是Windows XP/2000/NT系統(tǒng)的硬實(shí)時(shí)擴(kuò)展,為 Windows系統(tǒng)提供了高速確定性的硬實(shí)時(shí)能力,滿足了對(duì)設(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)先級(jí),每個(gè)進(jìn)程可以從0~127這128個(gè)優(yōu)先級(jí)中選擇,而且提供了 Windows和RTSS進(jìn)程之間的IPC進(jìn)程間通信機(jī)制。

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

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

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

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

    仿真系統(tǒng)主要參數(shù)有各計(jì)算機(jī)幀時(shí)、轉(zhuǎn)臺(tái)和水壓仿真器分系統(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í)器的簡(jiǎn)單擴(kuò)充基礎(chǔ)之上。由于ROM BIOS將PC中的一個(gè)8253定時(shí)芯片設(shè)為54.915ms產(chǎn)生一個(gè)硬件中斷,因此通過這種方式獲得的定時(shí)器只能精確到55ms,對(duì)于 55ms以下的時(shí)間精度便無能為力了[2]。多媒體定時(shí)器使用自己?jiǎn)为?dú)的線程來調(diào)用一個(gè)自己的回調(diào)函數(shù),并且該線程優(yōu)先級(jí)高,每隔一定時(shí)間就發(fā)送一個(gè)消息而不管其他消息是否已執(zhí)行完,因此采用多媒體定時(shí)器可以達(dá)到1ms的最小時(shí)間精度。對(duì)于一般的實(shí)時(shí)數(shù)據(jù)采集來說,采用多媒體定時(shí)器可以滿足要求,實(shí)時(shí)性要求更高的情況就無法滿足了。但是對(duì)于本系統(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ū)動(dòng)程序設(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í)存儲(chǔ)與數(shù)據(jù)的批量傳輸,實(shí)現(xiàn)數(shù)據(jù)的高速采集。

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

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

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

    一般來說,PCI的驅(qū)動(dòng)程序可分為三個(gè)部分:初始化部分、對(duì)硬件資源的訪問函數(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í)行初始化之前,需要對(duì)板卡的基地址進(jìn)行賦值。不同于ISA設(shè)備可以預(yù)先了解設(shè)備的中斷號(hào)和基地址,PCI設(shè)備的中斷號(hào)和基地址是在開機(jī)時(shí)由系統(tǒng)自動(dòng)分配的。所以在操作設(shè)備之前,必須首先確認(rèn)設(shè)備的中斷號(hào)和基地址,以便進(jìn)行下一步的操作。首先通過for循環(huán)程序找到與所編寫程序的PCI卡相對(duì)應(yīng)的PCI設(shè)備,然后讀取設(shè)備中基地址寄存器中的地址和中斷號(hào)[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è)備對(duì)板卡的操作與ISA設(shè)備無異,核心就是對(duì)寄存器的配置與讀寫操作。通過直接操作相應(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ù)處理中斷請(qǐng)求。在中斷模式中,操作相應(yīng)的讀寫寄存器傳入傳出數(shù)據(jù)即可,示例代碼如下:

    中斷方式,清空FIFO:

    VOID EmptyFIFO(UCB*ucb)

    中斷方式,寫入FIFO:

    VOID SendNextFIFO(UCB*ucb)

    4.3 仿真結(jié)果分析

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

    5 結(jié)語

    本文結(jié)合PCI1714數(shù)據(jù)采集卡分析了在RTX+Windows下開發(fā)PCI設(shè)備驅(qū)動(dòng)程序的方法。經(jīng)實(shí)際運(yùn)行,所編寫的驅(qū)動(dòng)程序在仿真系統(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ū)動(dòng)程序設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用

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

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

    [6]楊飛,安錦文,李中健.嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks下CPCI設(shè)備驅(qū)動(dòng)程序開發(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ū)動(dòng)程序實(shí)時(shí)性
    高精度AD采集卡性能測(cè)試及評(píng)價(jià)方法研究
    基于規(guī)則實(shí)時(shí)性的端云動(dòng)態(tài)分配方法研究
    基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時(shí)性仿真
    面向數(shù)控機(jī)床的多通道傳感數(shù)據(jù)采集卡設(shè)計(jì)
    航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對(duì)比
    并行高速采樣在地震物理模擬采集中的應(yīng)用
    PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
    電子器件(2015年5期)2015-12-29 08:43:12
    一種車載Profibus總線系統(tǒng)的實(shí)時(shí)性分析
    驅(qū)動(dòng)程序更新與推薦
    驅(qū)動(dòng)程序更新與推薦
    达州市| 丹巴县| 满城县| 罗城| 蒲城县| 桂东县| 博爱县| 镇远县| 射阳县| 沾益县| 文成县| 冕宁县| 历史| 镶黄旗| 焦作市| 镇宁| 顺义区| 苏尼特左旗| 仙桃市| 广州市| 安化县| 莆田市| 徐闻县| 莲花县| 开平市| 崇仁县| 安多县| 英吉沙县| 南开区| 收藏| 巴楚县| 平凉市| 万源市| 华亭县| 河东区| 垣曲县| 和硕县| 九龙坡区| 三明市| 大丰市| 财经|