• 
    

    
    

      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)程序更新與推薦
      木里| 团风县| 新兴县| 金山区| 东乡族自治县| 康乐县| 临夏市| 客服| 庆城县| 漾濞| 宜川县| 含山县| 巴林左旗| 双辽市| 兴隆县| 承德市| 江北区| 荥阳市| 寿阳县| 永宁县| 二连浩特市| 聂荣县| 屯昌县| 平远县| 枣阳市| 抚州市| 宁波市| 江源县| 芜湖县| 鄂伦春自治旗| 苍山县| 磐石市| 江西省| 九台市| 临夏市| 苍南县| 敦化市| 宁河县| 九寨沟县| 沾化县| 伊吾县|