VXD開發(fā)技術(shù)在運動控制卡中的應用

作者: 2013年07月22日 來源: 瀏覽量:
字號:T | T
1.VXD開發(fā)技術(shù)簡介虛擬設備驅(qū)動程序(VirtualDeviceDriver)簡稱VXD,是用來擴展Windows操作系統(tǒng)功能的一類程序。VXD主要用來支持硬件設備的管理,它以特殊的DLL形式鏈接到Windows操作系統(tǒng)的核心層(ring0),可以解
 1. VXD開發(fā)技術(shù)簡介

虛擬設備驅(qū)動程序(Virtual Device Driver)簡稱VXD,是用來擴展Windows操作系統(tǒng)功能的一類程序。VXD主要用來支持硬件設備的管理,它以特殊的DLL形式鏈接到Windows操作系統(tǒng)的核心層(ring 0),可以解決許多不能在一般應用層(ring 3)編程處理的一系列問題,如對硬件中斷等的處理。

VXD廣泛應用于Microsoft公司推出的Windows 9X操作系統(tǒng)各個版本,許多基于Windows平臺的硬件設備驅(qū)動程序都采用了VXD編程。

VXD編程由于涉及到Windows的底層結(jié)構(gòu),因此開發(fā)工作難度比較大。以前的VXD全部用匯編語言編寫,并且需要對Windows底層結(jié)構(gòu)有相當?shù)牧私?,開發(fā)工作量比較大。許多公司為此推出了不同的VXD開發(fā)工具,其中比較著名的是美國Vireo公司推出的VtoolsD開發(fā)工具包,提供了對VXD編程的豐富的C++類庫的支持,大大提高了開發(fā)此類程序的效率。

2.運動控制卡驅(qū)動程序的特點

采用計算機進行運動控制具有極大的靈活性。通過編寫不同的程序可以適應不同的控制系統(tǒng)的需要,同時借助于計算機高速運算能力和巨大的存儲能力可以完成許多復雜的功能,如圓弧插補甚至空間曲面的加工等,并且能夠以圖形方式直觀地模擬顯示加工過程。

運動控制卡作為關鍵部分,其硬件及驅(qū)動程序?qū)φ麄€控制系統(tǒng)的性能起著極其重要的作用。它負責將運動指令轉(zhuǎn)換成相應的脈沖送到執(zhí)行機構(gòu)產(chǎn)生運動。

從通用性角度考慮,運動控制卡驅(qū)動程序應該提供比較完整的運動控制函數(shù)庫,該函數(shù)庫應該能夠執(zhí)行從單軸直線運動到多軸聯(lián)動,從直線段插補到圓弧插補甚至螺旋線插補等常用的運動指令。特別是在加工由多條線段和圓弧組成的復雜形狀工件時,驅(qū)動程序應能保證加工連續(xù)性。由于計算機操作系統(tǒng)早已由DOS轉(zhuǎn)向Windows,而Windows操作系統(tǒng)屬于多任務操作系統(tǒng),因此在開發(fā)Windows平臺下運動控制卡驅(qū)動程序時還應注意在保證指令連續(xù)的前提下盡量減少對CPU等系統(tǒng)資源的占用,以保證其它任務能夠正常執(zhí)行。而過去采用運動狀態(tài)查詢方式判斷上一條運動指令控制的軸是否已經(jīng)進給完畢則很難滿足這種要求。因此有必要采用其它方式解決這個問題。中斷處理配合指令緩沖區(qū)可以很好地解決這個問題。

對于中斷的處理,在DOS平臺下比較容易實現(xiàn)。因為DOS操作系統(tǒng)中斷編程是開放的,程序員可以任意修改中斷向量來處理自己的中斷服務程序。但在Windows平臺下,為了系統(tǒng)的穩(wěn)定,操作系統(tǒng)對一般的應用程序(ring 3層)并未完全開放中斷編程。然而由于設備驅(qū)動程序運行在操作系統(tǒng)底層(ring 0層),因此,我們可以借助于VXD編程來實現(xiàn)中斷方式下工作的運動控制卡驅(qū)動程序。

3.采用VXD技術(shù)開發(fā)運動控制卡驅(qū)動程序

VXD運行在Windows操作系統(tǒng)的底層,借助于VtoolsD等開發(fā)工具,我們可以比較容易地在中斷方式下實現(xiàn)運動控制。

為了使用方便,運動函數(shù)庫中各運動指令對應的接口函數(shù)以Windows標準的動態(tài)鏈接庫(DLL)形式封裝,標準的DLL工作在ring 3層,而VXD工作在ring 0層,因此需要在DLL中加載VXD,對運動指令也需要分層進行處理。

為了保證運動指令的連續(xù)性,有必要采用指令緩沖區(qū)來配合運動中斷。

通過DLL接口函數(shù)接收的運動指令被壓入DLL中的指令緩沖區(qū),相應的指令處理線程被激活,對一級運動指令進行處理,處理結(jié)果通過DLL與VXD之間的接口壓入位于VXD中的底層緩沖區(qū)。

通過運動控制卡的硬件設計,可以實現(xiàn)在運動指令執(zhí)行完畢后產(chǎn)生中斷,在中斷服務程序中,所要完成的任務就是從底層指令緩沖區(qū)取出下一條指令包含的各寄存器值,按地址將其送到卡上相應的寄存器中。

對于需要對反饋信號進行采樣處理的特殊功能,則可以利用卡上的外部定時中斷,在其中斷服務程序中進行相應的處理。

4.相對其它方式的優(yōu)點

采用VXD技術(shù)開發(fā)運動控制卡驅(qū)動程序及函數(shù)庫相對于傳統(tǒng)的查詢方式下工作的程序來說,具有如下一些優(yōu)點:

(1)系統(tǒng)運行效率更高,對CPU等系統(tǒng)資源占用更少??梢院苋菀椎亻_發(fā)出帶圖形實時顯示的運動控制系統(tǒng)。

(2)多指令連續(xù)運動及微線段插補時運動連續(xù)性更好,在Windows多任務環(huán)境下不容易受其它任務影響而出現(xiàn)運動的間斷。

(3)可以實現(xiàn)更精確的采樣處理功能,進而在此基礎上實現(xiàn)全閉環(huán)控制。
全球化工設備網(wǎng)(http://www.seenwhilewandering.com )友情提醒,轉(zhuǎn)載請務必注明來源:全球化工設備網(wǎng)!違者必究.

標簽:

分享到:
免責聲明:1、本文系本網(wǎng)編輯轉(zhuǎn)載或者作者自行發(fā)布,本網(wǎng)發(fā)布文章的目的在于傳遞更多信息給訪問者,并不代表本網(wǎng)贊同其觀點,同時本網(wǎng)亦不對文章內(nèi)容的真實性負責。
2、如涉及作品內(nèi)容、版權(quán)和其它問題,請在30日內(nèi)與本網(wǎng)聯(lián)系,我們將在第一時間作出適當處理!有關作品版權(quán)事宜請聯(lián)系:+86-571-88970062