1. VXD 開發(fā)技術(shù)簡介
   虛擬設(shè)備驅(qū)動程序( Virtual Device Driver )簡稱 VXD ,是用來擴展 Windows 操作系統(tǒng)功能的一類程序。 VXD 主要用來支持硬件設(shè)備的管理,它以特殊的 DLL 形式鏈接到 Windows 操作系統(tǒng)的核心層( ring 0 ),可以解決許多不能在一般應(yīng)用層( ring">

      技術(shù)頻道

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

      1. VXD 開發(fā)技術(shù)簡介
      虛擬設(shè)備驅(qū)動程序( Virtual Device Driver )簡稱 VXD ,是用來擴展 Windows 操作系統(tǒng)功能的一類程序。 VXD 主要用來支持硬件設(shè)備的管理,它以特殊的 DLL 形式鏈接到 Windows 操作系統(tǒng)的核心層( ring 0 ),可以解決許多不能在一般應(yīng)用層( ring 3 )編程處理的一系列問題,如對硬件中斷等的處理。
      VXD 廣泛應(yīng)用于 Microsoft 公司推出的 Windows 9X 操作系統(tǒng)各個版本,許多基于 Windows 平臺的硬件設(shè)備驅(qū)動程序都采用了 VXD 編程。
      VXD 編程由于涉及到 Windows 的底層結(jié)構(gòu),因此開發(fā)工作難度比較大。以前的 VXD 全部用匯編語言編寫,并且需要對 Windows 底層結(jié)構(gòu)有相當(dāng)?shù)牧私猓_發(fā)工作量比較大。許多公司為此推出了不同的 VXD 開發(fā)工具,其中比較著名的是美國 Vireo 公司推出的 VtoolsD 開發(fā)工具包,提供了對 VXD 編程的豐富的 C++ 類庫的 支持,大大提高了開發(fā)此類程序的效率。
      2. 運動控制卡驅(qū)動程序的特點
      采用計算機進行運動控制具有極大的靈活性。通過編寫不同的程序可以適應(yīng)不同的控制系統(tǒng)的需要,同時借助于計算機高速運算能力和巨大的存儲能力可以完成許多復(fù)雜的功能,如圓弧插補甚至空間曲面的加工等,并且能夠以圖形方式直觀地模擬顯示加工過程。
      運動控制卡作為關(guān)鍵部分,其硬件及驅(qū)動程序?qū)φ麄€控制系統(tǒng)的性能起著極其重要的作用。它負責(zé)將運動指令轉(zhuǎn)換成相應(yīng)的脈沖送到執(zhí)行機構(gòu)產(chǎn)生運動。
      從通用性角度考慮,運動控制卡驅(qū)動程序應(yīng)該提供比較完整的運動控制函數(shù)庫,該函數(shù) 庫應(yīng)該 能夠執(zhí)行從單軸直線運動到多軸聯(lián)動,從直線段插補到圓弧插補甚至螺旋線插補等常用的運動指令。特別是在加工由多條線段和圓弧組成的復(fù)雜形狀工件時,驅(qū)動程序應(yīng)能保證加工連續(xù)性。由于計算機操作系統(tǒng)早已由 DOS 轉(zhuǎn)向 Windows ,而 Windows 操作系統(tǒng)屬于多任務(wù)操作系統(tǒng),因此在開發(fā) Windows 平臺下運動控制卡驅(qū)動程序時還應(yīng)注意在保證指令連續(xù)的前提下盡量減少對 CPU 等系統(tǒng)資源的占用,以保證其它任務(wù)能夠正常執(zhí)行。而過去采用運動狀態(tài)查詢方式判斷上一條運動指令控制的 軸是否 已經(jīng)進給完畢則很難滿足這種要求。因此有必要采用其它方式解決這個問題。中斷處理配合指令緩沖區(qū)可以很好地解決這個問題。
      對于中斷的處理,在 DOS 平臺下比較容易實現(xiàn)。因為 DOS 操作系統(tǒng)中斷編程是開放的,程序員可以任意修改中斷向量來處理自己的中斷服務(wù)程序。但在 Windows 平臺下,為了系統(tǒng)的穩(wěn)定,操作系統(tǒng)對一般的應(yīng)用程序( ring 3 層)并未完全開放中斷編程。然而由于設(shè)備驅(qū)動程序運行在操作系統(tǒng)底層( ring 0 層),因此,我們可以借助于 VXD 編程來實現(xiàn)中斷方式下工作的運動控制卡驅(qū)動程序。
      3. 采用 VXD 技術(shù)開發(fā)運動控制卡驅(qū)動程序
      VXD 運行在 Windows 操作系統(tǒng)的底層,借助于 VtoolsD 等開發(fā)工具,我們可以比較容易地在中斷方式下實現(xiàn)運動控制。
      為了使用方便,運動函數(shù)庫中各運動指令對應(yīng)的接口函數(shù)以 Windows 標(biāo)準(zhǔn)的動態(tài)鏈接庫( DLL )形式封裝,標(biāo)準(zhǔn)的 DLL 工作在 ring 3 層,而 VXD 工作在 ring 0 層,因此需要在 DLL 中加載 VXD ,對運動指令也需要分層進行處理。
      為了保證運動指令的連續(xù)性,有必要采用指令緩沖區(qū)來配合運動中斷。
      通過 DLL 接口函數(shù)接收的運動指令被壓入 DLL 中的指令緩沖區(qū),相應(yīng)的指令處理線程被激活,對一級運動指令進行處理,處理結(jié)果通過 DLL 與 VXD 之間的接口壓入位于 VXD 中的底層緩沖區(qū)。
      通過運動控制卡的硬件設(shè)計,可以實現(xiàn)在運動指令執(zhí)行完畢后產(chǎn)生中斷,在中斷服務(wù)程序中,所要完成的任務(wù)就是從底層指令緩沖區(qū)取出下一條指令包含的各寄存器值,按地址將其送到卡上相應(yīng)的寄存器中。
      對于需要對反饋信號進行采樣處理的特殊功能,則可以利用卡上的外部定時中斷,在其中斷服務(wù)程序中進行相應(yīng)的處理。
      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 多任務(wù)環(huán)境下不容易受其它任務(wù)影響而出現(xiàn)運動的間斷。
      (3)可以實現(xiàn)更精確的采樣處理功能,進而在此基礎(chǔ)上實現(xiàn)全閉環(huán)控制。

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 国产剧情国产精品一区| 精品不卡一区二区| 无码人妻精品一区二区三18禁 | 亚洲国产一区在线观看| 亚洲视频免费一区| 美女免费视频一区二区| 亚洲一区二区三区在线观看精品中文 | 日韩av无码一区二区三区| 大帝AV在线一区二区三区| 亚洲色大成网站www永久一区| 在线成人综合色一区| 无码乱人伦一区二区亚洲一| 国产未成女一区二区三区| 国产一区风间由美在线观看| 无码人妻少妇色欲AV一区二区| 少妇人妻精品一区二区| 色妞色视频一区二区三区四区 | 中文字幕一区二区人妻性色| 97精品一区二区视频在线观看| 一区二区三区中文| 日美欧韩一区二去三区| 国产手机精品一区二区| 搡老熟女老女人一区二区| 伊人精品视频一区二区三区| 夜色阁亚洲一区二区三区| 国产裸体舞一区二区三区| 黑巨人与欧美精品一区| 蜜桃AV抽搐高潮一区二区| 一区二区三区四区精品| 中文字幕无码一区二区三区本日| 99精品一区二区三区| 国产一区二区三区亚洲综合| 中文字幕不卡一区| 精品国产福利在线观看一区 | 无码精品人妻一区二区三区漫画| 国产精品高清一区二区三区不卡| 亚洲视频一区二区在线观看| 无码国产精品一区二区免费 | 日韩人妻精品一区二区三区视频 | 精品人体无码一区二区三区| 国产精品美女一区二区|