亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        WDM在全軟件數(shù)控系統(tǒng)中的應(yīng)用研究

        2014-05-10 07:51:30雷立群
        機床與液壓 2014年22期
        關(guān)鍵詞:實時控制驅(qū)動程序實時性

        雷立群

        (吉林農(nóng)業(yè)科技學(xué)院機械與土木工程學(xué)院,吉林吉林132101)

        基于PC 的數(shù)控系統(tǒng)是實現(xiàn)開放式數(shù)控系統(tǒng)的最佳途徑,而全軟件數(shù)控系統(tǒng)又是開放式數(shù)控系統(tǒng)的最理想途徑。數(shù)控系統(tǒng)是最為典型的強實時性控制系統(tǒng)。而Windows 操作系統(tǒng)因其具有強大的功能和友好的通信用戶界面,使得它不僅被廣泛地用作管理事務(wù)型工作的平臺,也被工業(yè)領(lǐng)域的工程人員所關(guān)注。但是Windows 操作系統(tǒng)因采用事件式驅(qū)動方式,使得其在工業(yè)控制領(lǐng)域中的應(yīng)用受到限制。如何在Windows操作系統(tǒng)下,開發(fā)出滿足工業(yè)實時性要求的控制系統(tǒng)成為人們近些年不斷努力的目標。通過對Windows 操縱系統(tǒng)的結(jié)構(gòu)和原理進行研究,得出Windows 操縱系統(tǒng)采用了WDM 驅(qū)動程序模型,它位于操作系統(tǒng)的底層,直接對硬件進行操作,該程序模型支持即插即用、電源管理和WMI 技術(shù)。在操作系統(tǒng)的底層,通過編寫WDM 驅(qū)動程序來實現(xiàn)Windows 操作系統(tǒng)下的強實時性控制,使得利用一臺PC 機就能完全實現(xiàn)與硬件相似的功能成為可能。

        1 WDM 驅(qū)動程序的結(jié)構(gòu)研究

        WDM 驅(qū)動程序采用了中斷請求包的程序結(jié)構(gòu),可以在該程序模型處編寫針對硬件操作的強實時性程序,并通過中斷請求包與Windows 操作系統(tǒng)頂層的應(yīng)用程序進行通信,從而使PC 機的軟件和硬件資源得到充分的利用。為使PC 的軟硬件資源能在工業(yè)實時控制中得到應(yīng)用,必須要充分了解WDM 驅(qū)動程序模型的結(jié)構(gòu)特點。

        1.1 WDM 程序在Windows 操作系統(tǒng)中的位置

        要了解WDM 驅(qū)動程序,必須先了解Windows 操作系統(tǒng)的體系結(jié)構(gòu)及WDM 程序所在的位置。圖1 是Windows2000 操作系統(tǒng)的體系結(jié)構(gòu)簡圖[1-2]。

        圖1 Windows 2000 操作系統(tǒng)結(jié)構(gòu)

        從圖1 中可以看到:Windows2000 操作系統(tǒng)在結(jié)構(gòu)上分為兩大部分,即用戶模式和內(nèi)核模式,應(yīng)用程序工作在用戶模式,當應(yīng)用程序需要對硬件設(shè)備進行操作時,需要調(diào)用相應(yīng)的API 函數(shù),API 函數(shù)通過Win32 子系統(tǒng)向IO 管理器發(fā)送一個請求,IO 管理器接收到這個請求后創(chuàng)建一個叫做IO 請求包(IRP)的數(shù)據(jù)結(jié)構(gòu),并把這個數(shù)據(jù)結(jié)構(gòu)送到相應(yīng)的驅(qū)動程序的入口點,執(zhí)行這個IRP 的驅(qū)動程序或者通過硬件抽象層對硬件進行操作,或者直接對硬件設(shè)備進行操作。

        1.2 WDM 驅(qū)動程序的工作方式

        WDM 程序模型采用了分層工作方式,一個IRP由一個分層的設(shè)備驅(qū)動程序棧處理。圖2 表示了IRP在一個驅(qū)動程序棧中的傳遞過程。

        圖2 WDM 模型驅(qū)動程序?qū)哟谓Y(jié)構(gòu)

        IRP 是WDM 驅(qū)動程序的核心部分,驅(qū)動程序的一切操作都是以它為中心。IO 管理器把它所創(chuàng)建的IRP 發(fā)送到設(shè)備棧的頂部,這樣任何高層的過濾驅(qū)動程序或功能驅(qū)動程序總是最先接收并處理IRP,若該IRP 處理完成,則向IO 管理器返回完成狀態(tài),反之則繼續(xù)向下傳遞,直至完成該IRP 請求。WDM 驅(qū)動模型程序在實現(xiàn)上實質(zhì)上采用的是“基于對象”技術(shù),驅(qū)動程序中包含了很多的例程,當操作系統(tǒng)遇到一個IRP 時就調(diào)用驅(qū)動程序中的例程來執(zhí)行該IRP 操作。Windows 操作系統(tǒng)的內(nèi)核中,驅(qū)動程序例程的運行可分為32 個優(yōu)先級,如圖3所示。將這32 個優(yōu)先級按從低到高的優(yōu)先次序分為兩類:軟件中斷、硬件中斷。其中的硬件中斷指的是由系統(tǒng)的硬件設(shè)備所產(chǎn)生的中斷,如配置文件的定時、時鐘、處理器之間中斷級等,硬件中斷的中斷級別最高。這里的中斷級別意味著系統(tǒng)中任何一個中斷級別都可以被更高的中斷級別打斷,因此要使某個中斷級別的例程具有較高的實時性,就要使其具有更高的中斷級別。

        圖3 WDM 程序的中斷優(yōu)先級

        2 WDM 驅(qū)動程序解決工業(yè)實時控制的方法

        Windows 系統(tǒng)頂層的應(yīng)用程序并非是基于優(yōu)先級來調(diào)度任務(wù)的,無法立即響應(yīng)外部事件的中斷,不能滿足工業(yè)應(yīng)用環(huán)境中實時事件處理和實時控制應(yīng)用的要求,因此,如何在Windows 環(huán)境下實現(xiàn)實時控制是實現(xiàn)大多數(shù)實時系統(tǒng)的關(guān)鍵。根據(jù)對WDM 驅(qū)動程序模型的分析,提出在Windows 系統(tǒng)底層的WDM 驅(qū)動程序中編寫強實時性的中斷程序,通過頂層與底層程序之間的通信來解決Windows 操作系統(tǒng)在工業(yè)應(yīng)用中的實時性控制問題。

        2.1 WDM 程序模型的實時控制特征

        (1)可直接對硬件進行操作,并可截獲硬件中斷。從圖1 中可以看到WDM 既可以通過硬件抽象層來控制硬件,也可以直接控制硬件。另外在WDM 程序中可通過在硬件中斷級中編寫中斷服務(wù)例程的方法來響應(yīng)硬件中斷。也就是把控制系統(tǒng)中實時性較強的部分放到操作系統(tǒng)底層的中斷服務(wù)例程中編寫,而將控制系統(tǒng)中的非實時性內(nèi)容放到操作系統(tǒng)頂層的應(yīng)用程序中處理。下面是在驅(qū)動程序中實現(xiàn)實時控制的中斷服務(wù)例程的部分程序。

        (2)能夠安排任務(wù)的優(yōu)先級。WDM 程序的例程共有32 個優(yōu)先級,可以通過編寫不同中斷優(yōu)先級的例程來安排任務(wù)的優(yōu)先級。

        (3)任務(wù)是可搶先的。在WDM 程序中,低優(yōu)先級的任務(wù)隨時可以被更高優(yōu)先級的任務(wù)中斷。

        2.2 WDM 在工業(yè)實時控制中的應(yīng)用

        數(shù)控系統(tǒng)是典型的實時控制系統(tǒng),全軟件數(shù)控系統(tǒng)要實現(xiàn)實時控制需要提供一個高頻的實時時鐘,文中采用通過ISA 總線引入一個外部的定時時鐘[4]中斷控制器8259 到Windows 操作系統(tǒng)的底層WDM 驅(qū)動程序,并在驅(qū)動程序中通過中斷程序來截取該時鐘中斷,編寫強實時控制程序。ISA 總線的地址范圍是200H~3FFH,在I/O 地址空間內(nèi)。通過DriverStudio提供的KIoRange 類將外部總線的I/O 地址空間范圍映射到處理器總線的地址空間進行操作。具體操作過程如下:

        首先在設(shè)備程序中定義一個KIoRange 類的實例,以定義相關(guān)的地址空間:

        KIoRange m_ ParPortIos;

        初始化實例(指定ISA 總線首地址,進行地址空間映射):

        Status=m_ ParPortIos.Initialize(

        0x200 ,//ISA 板卡首地址

        TRUE,//在CPU I/O 空間內(nèi)

        8,//設(shè)備讀寫數(shù)據(jù)的字節(jié)長度是8 個字節(jié)

        TRUE //映射到系統(tǒng)空間

        );

        初始化工作完成之后,可以用下面的函數(shù)向外部I/O 端口發(fā)送數(shù)據(jù):

        m_ ParPortIos.outb(0,0x01)//0 代表寫入端口地址相對于首地址的偏移值為0,0x01 代表要寫入的數(shù)據(jù)

        利用Softice 調(diào)試工具可以看到設(shè)備通過m_ParPortIos.outb(0,0x01)向I/O 端口發(fā)送控制脈沖時,轉(zhuǎn)換成需要執(zhí)行的匯編語言指令有百余條,主要是由于這條指令是通過函數(shù)調(diào)用方式實現(xiàn)的,在調(diào)用的時候需要對系統(tǒng)數(shù)據(jù)進行必要的保護,如入棧、出棧等。為了能夠更加有效地節(jié)省控制時間,采用在中斷程序中嵌入?yún)R編語言的形式來編寫程序。實驗證明:采用這種方法可以大大減少中斷程序所占用的時間。

        頂層應(yīng)用程序與WDM 程序之間的數(shù)據(jù)傳輸是通過用戶模式虛擬緩沖區(qū)來實現(xiàn)的。該緩沖區(qū)位于內(nèi)核模式的非分頁內(nèi)存中。具體實現(xiàn)方法如下:

        在應(yīng)用程序中通過ReadFile 和WeadFile 函數(shù)將數(shù)據(jù)拷貝到緩沖區(qū)中或從緩沖區(qū)中讀出。程序上的實現(xiàn)如下:

        WriteFile(hDevice,DATA,bytesize,&nWritten,NULL);(程序中的參數(shù)分別是設(shè)備句柄、輸入緩沖地址、緩沖大小(字節(jié)數(shù))、實際讀的字節(jié)數(shù)、覆蓋結(jié)構(gòu)指針)

        ReadFile(hDevice,DATAdisplay0,n,&nRead,NULL);(函數(shù)中的參數(shù)分別是設(shè)備句柄、輸入緩沖地址、緩沖大小)

        驅(qū)動程序通過下面的方式將應(yīng)用程序拷貝到緩沖區(qū)的數(shù)據(jù)讀出:

        首先,在WDM 程序中通過下面的方法定義一段非分頁內(nèi)存,用來將用戶模式緩沖區(qū)中的數(shù)據(jù)拷貝到WDM 程序中:

        WDM 程序利用下面的方法將緩沖區(qū)中的數(shù)據(jù)拷貝出來:

        RtlCopyMemory(pMyBuffer,pBuffer,dwTotal-Size);

        3 實驗測試

        在Windows 操作系統(tǒng)底層的WDM 驅(qū)動程序模塊中編寫強實時性控制程序,通過頂層應(yīng)用程序與底層驅(qū)動程序通信的方式實現(xiàn)全軟件數(shù)控系統(tǒng)的開發(fā)。通過實驗證明,該方法是可行的。圖4 是采用該方法實現(xiàn)的全軟件數(shù)控系統(tǒng)。

        圖4 數(shù)控加工狀態(tài)顯示

        該數(shù)控系統(tǒng)最終實現(xiàn)了對9 個軸電機驅(qū)動器的控制,控制系統(tǒng)的極限加工進給速度可達到1 500 mm/min,系統(tǒng)的最小脈沖當量是0.037 μm,數(shù)控系統(tǒng)可實現(xiàn)對空間直線、圓弧等輪廓的加工控制,以及圓臺面、圓柱面等可展直紋面的加工控制。

        4 結(jié)論

        通過對Windows 操作系統(tǒng)的結(jié)構(gòu)以及WDM 驅(qū)動程序模型的研究,提出了在Windows 操作系統(tǒng)的底層采用WDM 驅(qū)動程序來實現(xiàn)工業(yè)控制中的強實時控制,從而使得利用Window 操作系統(tǒng)實現(xiàn)全軟件控制稱為可能。

        經(jīng)過試驗測得,將WDM 驅(qū)動程序應(yīng)用于實時工業(yè)控制系統(tǒng)中,由外部給PC 提供中斷源,在中斷服務(wù)例程中編寫控制程序,當提供的外部時鐘頻率為12 μs 時,用ISA 并行總線作為控制系統(tǒng)輸出I/O 板卡,在中斷服務(wù)例程中僅執(zhí)行一條向外發(fā)送輸出脈沖指令時,中斷可全部截獲,同時系統(tǒng)工作正常,通過示波器可以清晰看到輸出的脈沖波形。

        [1]LEI L Q,WANG K Q,HAN J.Implementation Study about the Software CNC System Based on Windows[J].Advanced Materials Research,2011(9/10/11):264-269.

        [2]武安河,邰銘,于洪濤.Windows2000/XP WDM 設(shè)備驅(qū)動程序開發(fā)[M].北京:電子工業(yè)出版社,2003:1-354.

        [3]CANT Chris.Windows WDM 設(shè)備驅(qū)動程序開發(fā)指南[M].孫義,馬莉波,國雪飛,等,譯.北京:機械工業(yè)出版社,2001:8-32.

        [4]雷立群,于振文.基于Windows 的全軟件數(shù)控系統(tǒng)實現(xiàn)方法研究[J].機床與液壓,2012,40(9):94-97,20.

        猜你喜歡
        實時控制驅(qū)動程序實時性
        雙足步行機器人嵌入式控制系統(tǒng)設(shè)計分析
        基于規(guī)則實時性的端云動態(tài)分配方法研究
        基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實時性仿真
        航空電子AFDX與AVB傳輸實時性抗干擾對比
        基于LabVIEW微電網(wǎng)實驗平臺監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
        探討ERP系統(tǒng)環(huán)境下企業(yè)會計的實時控制
        空間機器人的計算力矩實時控制方法
        一種車載Profibus總線系統(tǒng)的實時性分析
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        久久精品国产一区老色匹| 人人妻人人澡人人爽人人精品电影| 国产精品乱一区二区三区| 亚洲中文字幕在线第二页| 久久综合国产精品一区二区| 久久精品国产精品亚洲| 失禁大喷潮在线播放| 手机色在线| 亚洲av无一区二区三区综合| 深夜爽爽动态图无遮无挡| 亚洲精品无码久久久久| 亚洲AV无码专区国产H小说| 青青草成人免费播放视频| 欧美性生交大片免费看app麻豆| 亚洲色欲色欲综合网站| 加勒比无码专区中文字幕| 精品国产麻豆免费人成网站| 欧美大片va欧美在线播放| 一区二区三区国产亚洲网站| 人妻少妇无码中文幕久久| 亚洲一区在线二区三区| 精品av熟女一区二区偷窥海滩| 理论片87福利理论电影| av天堂线上| 亚洲最大一区二区在线观看| 亚洲精品无码久久久久av老牛| 香蕉色香蕉在线视频| 国产av一区二区三区在线| 国产一区二区三区在线综合视频| 亚洲日韩精品无码专区网站| 亚洲区日韩精品中文字幕| 精品久久免费国产乱色也| 亚洲av日韩精品久久久久久a| 野外性史欧美k8播放| 激,情四虎欧美视频图片| 亚洲国产中文字幕精品| 久久久久久人妻一区精品 | 毛片无码高潮喷白浆视频| 免费99视频| 日本高清人妻一区二区| 亚洲国产精品综合久久网络|