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

      技術頻道

      VXD 開發技術在運動控制卡中的應用

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

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 麻豆一区二区在我观看| 免费无码一区二区三区| 精品国产福利在线观看一区 | 精品国产一区二区三区久久影院 | 日本v片免费一区二区三区| 毛片一区二区三区| 精品一区二区三区3d动漫| 在线观看视频一区二区| 国产伦一区二区三区高清 | 日韩精品无码一区二区中文字幕| 国产午夜精品一区二区| 亚洲欧洲精品一区二区三区| 成人H动漫精品一区二区| av无码人妻一区二区三区牛牛| 国产精品香蕉在线一区| 日本一区二区在线不卡| 91视频国产一区| 综合无码一区二区三区| 亚洲欧美日韩一区二区三区在线| 福利一区在线视频| 久久99精品一区二区三区| 韩国精品一区二区三区无码视频 | 国产一区二区三区亚洲综合| 无码人妻一区二区三区兔费| 日本一区二区三区不卡视频| 精品中文字幕一区在线| 亚洲一区二区三区乱码A| 久久精品国产免费一区| 国产免费一区二区三区不卡 | 少妇精品久久久一区二区三区| 无码国产精品一区二区免费式影视| 国产精品久久久久一区二区| 亚洲日韩中文字幕无码一区| 国产免费一区二区三区不卡 | 精品国产一区二区三区久| 精品欧洲av无码一区二区三区| 亚洲天堂一区在线| 国产一区二区精品在线观看| 日本一区二区三区中文字幕| 高清国产精品人妻一区二区 | 日韩精品一区二区三区不卡 |