999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2014-05-10 07:51:30雷立群
機(jī)床與液壓 2014年22期
關(guān)鍵詞:程序

雷立群

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.1 WDM 程序模型的實(shí)時(shí)控制特征

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

(2)能夠安排任務(wù)的優(yōu)先級(jí)。WDM 程序的例程共有32 個(gè)優(yōu)先級(jí),可以通過(guò)編寫(xiě)不同中斷優(yōu)先級(jí)的例程來(lái)安排任務(wù)的優(yōu)先級(jí)。

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

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

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

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

KIoRange m_ ParPortIos;

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

Status=m_ ParPortIos.Initialize(

0x200 ,//ISA 板卡首地址

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

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

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

);

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

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

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

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

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

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

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

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

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

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

RtlCopyMemory(pMyBuffer,pBuffer,dwTotal-Size);

3 實(shí)驗(yàn)測(cè)試

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

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

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

4 結(jié)論

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

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

[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ū)動(dòng)程序開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2003:1-354.

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

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

猜你喜歡
程序
給Windows添加程序快速切換欄
試論我國(guó)未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
基于VMM的程序行為異常檢測(cè)
偵查實(shí)驗(yàn)批準(zhǔn)程序初探
我國(guó)刑事速裁程序的構(gòu)建
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 亚洲狠狠婷婷综合久久久久| 无码中字出轨中文人妻中文中| 精品伊人久久大香线蕉网站| 国产在线视频二区| 亚洲va精品中文字幕| 久久婷婷六月| 中文字幕av一区二区三区欲色| 日韩a级毛片| 欧美国产日韩在线| 四虎国产永久在线观看| 91小视频版在线观看www| 一区二区三区成人| 久久大香伊蕉在人线观看热2| 国产成人免费视频精品一区二区| 激情综合网址| 久久不卡国产精品无码| 欧美日韩高清在线| 在线观看免费人成视频色快速| 国产成人91精品免费网址在线| 久久永久精品免费视频| 国产理论一区| 亚洲女同欧美在线| 亚洲黄色网站视频| 成人午夜网址| 在线va视频| 国产女主播一区| 精品国产黑色丝袜高跟鞋 | 真实国产乱子伦高清| 久久国产精品娇妻素人| av手机版在线播放| 青草视频在线观看国产| 欧美亚洲日韩不卡在线在线观看| 国产性生大片免费观看性欧美| 亚洲成a人片在线观看88| 精品亚洲国产成人AV| 国产精品自在在线午夜区app| 在线欧美日韩| 在线观看免费黄色网址| 白浆免费视频国产精品视频| 国内黄色精品| 欧美中文字幕第一页线路一| 凹凸精品免费精品视频| 国产地址二永久伊甸园| 免费无码一区二区| 色欲色欲久久综合网| 国产国拍精品视频免费看| 99国产在线视频| 免费国产好深啊好涨好硬视频| 亚洲人成在线精品| 色哟哟国产精品一区二区| 国产无人区一区二区三区| 人妻丰满熟妇AV无码区| 亚洲欧美在线精品一区二区| 青青青国产视频| 人妻无码中文字幕第一区| 欧美成人看片一区二区三区 | 97在线公开视频| 亚洲精品图区| 扒开粉嫩的小缝隙喷白浆视频| 亚洲欧美日韩色图| 亚洲精品日产AⅤ| 欧美黑人欧美精品刺激| 欧美翘臀一区二区三区| 国产视频入口| 亚洲第一香蕉视频| 日韩国产综合精选| 无套av在线| 久久国产亚洲偷自| 一级成人欧美一区在线观看| 日韩午夜片| 亚洲国产精品无码久久一线| 久久综合色播五月男人的天堂| 国产欧美精品一区aⅴ影院| 欧美激情第一欧美在线| 日韩精品专区免费无码aⅴ| 国产又色又爽又黄| 91美女视频在线| 88av在线| 2020最新国产精品视频| 国产一级小视频| 露脸一二三区国语对白| 亚洲人成人伊人成综合网无码|