在线免费观看成年人视频-在线免费观看国产-在线免费观看国产精品-在线免费观看黄网站-在线免费观看精品

產品分類

當前位置: 首頁 > 傳感測量產品 > 數據采集產品 > 運動控制卡

類型分類:
科普知識
數據分類:
運動控制卡

基于PCI總線運動控制卡WDM驅動程序設計

發布日期:2022-10-09 點擊率:163

  • 關鍵詞: PCI總線運動控制卡 WDM DriverStudio
  • 摘要:本文給出了一種使用DriverStudio設計WDM驅動程序的方法,用以實現數控系統應用程序對運動控制卡的訪問。文中以基于PCI總線的運動控制卡為對象,在構架其硬件結構的基礎上,闡述了設計WDM驅動程序的主要步驟,開發了WDM驅動程序,在Windows環境下進行測試,達到了預期目的。

 

摘要:本文給出了一種使用DriverStudio設計WDM驅動程序的方法,用以實現數控系統應用程序對運動控制卡的訪問。文中以基于PCI總線的運動控制卡為對象,在構架其硬件結構的基礎上,闡述了設計WDM驅動程序的主要步驟,開發了WDM驅動程序,在Windows環境下進行測試,達到了預期目的。


關鍵詞:WDM;PCI;DriverStudio

1、引言

  目前,開放式數控系統正得到日益廣泛的應用,其中,基于Windows和PC機的開放式數控系統將成為數控技術發展的趨勢。本文研究的數控系統采用NC嵌入PC的開放式結構,并以Windows2000操作系統為平臺。NC嵌入PC型數控系統是指將運動控制卡插入計算機的擴展槽中,由PC機完成非實時性處理任務,實時控制則由運動控制卡來承擔。由于在Windows環境下,用戶態的應用程序不能直接訪問硬件,而要通過調用執行于核心態的設備驅動程序間接地訪問硬件資源,因而,應用程序要對該數控系統中的運動控制卡進行訪問,必須為其開發設備驅動程序。

  本文以該數控系統中基于PCI總線的DSP運動控制卡為研究對象,主要討論該運動控制卡在Windows2000環境下的WDM驅動程序的設計。

2、WDM驅動程序的結構及開發工具簡介

2.1WDM驅動程序的結構

  WindowsDriverModel(WDM)驅動程序是一種PnP(即插即用)驅動程序,它同時還遵循電源管理協議,并能在Windows98,Windows2000和WindowsXP間實現源代碼級兼容。在WDM驅動程序模型中,每個硬件設備至少有兩個驅動程序。其中一個驅動程序稱為功能驅動程序,負責初始化I/O操作,處理I/O操作完成時帶來的中斷事件,并為用戶提供一種連接設備的控制方式;另一驅動程序稱為總線驅動程序,它負責管理硬件與計算機連接[1]。

  WDM驅動程序采用分層的結構模型,如圖1所示[2]。圖1中左邊是一個設備對象堆棧,設備對象是操作系統為幫助軟件管理硬件而創建的數據結構。處于堆棧最底層的設備對象稱為物理設備對象,簡稱為PDO。在設備對象堆棧的中間有一個對象稱為功能設備對象,簡稱為FDO。在FDO的上面和下面還會有一些過濾器設備對象,簡稱為FiDO。位于FDO上面的過濾器設備對象稱為上層過濾器,位于FDO下面的過濾器設備對象稱為下層過濾器。在單個硬件的驅動程序堆棧中,總線驅動程序管理計算機與PDO所代表的設備的連接。功能驅動程序管理FDO所代表的設備。過濾器驅動程序用于監視和修改I/O請求包(IRP)流。


               點擊看大圖
                              圖1WDM設備對象和驅動程序的層次結構


2.2開發工具簡介

  開發驅動程序的軟件很多,如NuMega公司的DriverStudio、Jungo公司的WinDriver和Microsoft公司的DDK等。在使用中,雖然利用DDK開發的驅動程序代碼非常簡潔,結構清晰,效率也高,但是開發難度較大[3]。利用DriverStudio、WinDriver等第三方開發工具則使用簡單,開發速度較快。因此選用NuMega公司提供的DriverStudio作為開發工具。

  NuMega公司的DriverStudio是一套用來簡化微軟Windows平臺下設備驅動程序的開發、調試和測試的工具包。DriverStudio包括DriverWorks、DriverNetworks、SoftICE和VToolsD等工具模塊。其中,DriverWorks包含一個非常完善的源代碼生成工具(DriverWizard)以及相應的類庫和驅動程序樣本,它提供了在C++下進行設備驅動程序開發的支持。

3、運動控制卡的硬件結構

  所設計的運動控制卡采用TI公司的TMS320LF2407DSP芯片為核心處理器。該運動控制卡的硬件系統包括PCI接口子模塊、數字信號處理器(DSP)子模塊和軸控制接口子模塊。

  該運動控制卡的PCI接口采用PLX公司的PCI9052接口芯片,這是PLX技術公司為擴展適配板卡推出的能提供一種混合高性能PCI總線目標模式的接口芯片。它可與多種局部總線相連,并具有異步操作、中斷產生器、FIFO等特點。運動控制卡與上位PC機通過PCI總線進行連接,PCI接口子模塊通過雙端口存儲器RAM器件IDT7026與DSP子模塊連接。雙端口存儲器(RAM)是一個雙向FIFO數據存儲器,起數據緩沖的作用。軸控制接口子模塊則通過CPLD(復雜可編程邏輯器件)與DSP子模塊連接。運動控制卡硬件結構示意圖如圖2所示[4]。


             點擊看大圖
                                    圖2運動控制卡硬件結構示意圖


4、運動控制卡驅動程序的設計

  使用DriverWorks為該運動控制卡開發WDM驅動程序主要有三個步驟:創建WDM驅動程序框架;實現驅動程序的具體功能;生成WDM驅動程序。下面是借助DriverWorks設計運動控制卡WDM驅動程序的具體方法。

4.1使用DriverWizard生成WDM驅動程序框架

  DriverWizard是DriverWorks創建WDM框架程序的工具。在創建一個PCI設備的WDM驅動程序框架時,共有十一步,其中以下幾點需特別注意:

  (1)第四步:選擇硬件設備所支持的總線類型,這里選PCI,并根據具體硬件填寫PCIVendorID、PCIDeviceID、PCISubsystemID和PCIRevisionID。這些參數可以從硬件生產廠家得到,如果所填寫的參數和目標PCI設備寄存器中不一致的話系統將安裝不上此驅動程序。

  (2)第六步:選擇驅動程序支持的功能項,選中Read、Write、DeviceIOControl和Cleanup四個復選框。

  (3)第七步:選擇I/O請求IRP處理的方式,選擇DriverManaged,由驅動程序管理的StartIO處理排隊隊列,并選擇讀寫請求分別進行排隊隊列處理。

  (4)第九步:選擇設備文件中的類名和接口類型,類名通常取默認值,選擇GUID接口方式作為應用程序打開設備的方式。在資源欄中分別點擊AddIOPort(s)、AddMemoryRange...和AddIRQ...聲明所需的資源。

  (5)第十一步:為了調試方便和更好地了解WDM驅動程序的運行過程,選擇讓系統生成控制臺測試程序和用SoftICE調試的跟蹤代碼(TraceCode)。

  至此,驅動程序框架已形成。DriverWizard生成了兩個類:一個是驅動程序文件中的類,主要完成WDM的DriverEntry和AddDevice例程;另一個是設備文件中的類,主要完成與硬件交互的例程。

4.2驅動程序功能的實現

  DriverWizard創建的WDM驅動程序框架中包含了很多例程。這些例程可分為兩種:必需的基本例程和根據需要可選擇的擴展例程。根據需要修改相應的例程即可實現該運動控制卡驅動程序的具體功能。

4.2.1初始化驅動程序——DriverEntry例程

  DriverEntry例程負責驅動程序的初始化,所有的驅動程序都必須包含DriverEntry例程。當裝載驅動程序時,PnP管理器為每個驅動程序調用一次DriverEntry例程。DriverEntry用以初始化驅動程序范圍的數據結構和資源。

  DriverEntry例程主要有以下三個功能:

  (1)設置AddDevice、Unload、Dispatch和其他例程的入口指針

  (2)可以從注冊表中獲取一些必要的信息以初始化驅動程序

  (3)初始化其他的在驅動程序范圍內的數據結構和資源

4.2.2串行讀例程——SerialRead例程

  在該驅動程序中,對IRP進行串行處理采用的是由驅動程序管理的IRP隊列。當硬件設備處于忙狀態時,將IRP排隊;當硬件設備處于空閑狀態時,將排隊的IRP取出處理。SerialRead例程是擴展例程,向SerialRead例程中添加功能代碼就可以實現PC機對運動控制卡的串行讀操作,應用程序可以通過該WDM驅動程序讀取雙端口RAM中的數據及參數。

4.2.3串行寫例程——SerialWrite例程

  在該驅動程序中,要實現PC機對運動控制卡的串行寫,需要使用SerialWrite例程。串行寫操作主要負責處理運動函數原型的解讀,并將解讀后的指令寫入雙端口RAM中。

4.3生成WDM驅動程序

  設計完成后的WDM驅動程序將生成一個工作區(Workspace)和兩個工程(Project),生成的工作區包括了驅動程序工程和應用程序工程。分別選擇兩個工程,并分別將其設置成為當前活動工程,用VisualC++6.0對其進行編譯。對于驅動程序的編譯,不用進行任何設置,單擊Build圖標即可生成后綴名為.sys的驅動程序文件。

5、運動控制卡驅動程序的安裝與應用

  生成后綴名為.sys的驅動程序后,安裝之前,首先要修改INF文件,然后將其拷貝到“..sysobjchki386”目錄下。修改INF文件只要將文件雙引號中的提示改為相應的內容即可生成設備信息文件。對該驅動程序的INF文件作如下修改:

  [Strings]

  ProviderName=“數控研究中心”//公司名稱

  MfgName=“華南理工大學機械與工程學院”//硬件制造商名稱

  DeviceDesc=“高級運動控制卡V3.2”//設備描述

  DeviceClassName=“高級運動控制”//設備類描述

  SvcDesc="運動控制"http://服務描述

  使用控制面板中的添加新硬件來搜索新硬件,根據提示指定INF文件和編譯后生成的.sys驅動程序文件,系統就可以自動安裝新硬件的驅動程序。

  驅動程序安裝好之后,在Windows2000環境下對運動控制卡及其設備驅動程序進行實際測試[4]。測試結果表明,此設備驅動程序能使運動控制卡在Windows2000環境穩定工作,并能對多軸的運動位置和速度進行準確控制。同時,將該驅動程序移植到Windows98/XP系統中,也能驅動運動控制卡正常工作。

6、結束語

  傳統的驅動程序都是用DDK開發,開發效率不高。本文以基于PCI總線的運動控制卡為研究對象,以DriverWorks為工具,方便快捷地設計完成了設備驅動程序。在Windows環境下對運動控制卡及其驅動程序進行測試,結果表明,此驅動程序能使該運動控制卡在Windows環境下穩定工作。實質上,驅動程序仍滿足DDK對WDM的要求,調用的仍是DDK所提供的基本函數。利用DriverStudio對數控系統中的運動控制卡開發驅動程序,對數控系統實現開放式軟件結構及人機界面具有重要意義。

  本文作者創新點:利用DriverStudio來設計運動控制卡的WDM驅動程序,實現了在Windows2000環境下,上位機和運動控制卡的正常通訊,并能根據上位機的指令通過運動控制卡對多軸運動位置和速度進行準確控制。

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產品

更多
性做久久久久久久久| 日韩免费高清大片在线| 日本打扑克啪啪超爽网站| 日韩欧美成人免费观看| 欧美一区二区三区成人片在线| 免费AV网站在线观看| 日韩欧美亚洲每日更新在线| 先锋中文字幕在线资源| 岳女四人共侍一夫婷婷| 波多野结衣无码中文字幕18禁| 国产精品99久久精品爆乳| 国产无遮挡无码很黄很污很刺激 | 亚洲欧洲AV综合色无码| 亚洲熟妇无码一区二区三区导航 | 无人区乱码一线忘忧草| 亚洲AV成人片色在线观看蜜桃 | 深灬深灬深灬深灬一点| 亚洲欧美偷拍另类A∨| 8V蜜桃网最新电影| 国产成人A∨激情视频厨房| 久久婷婷国产综合精品| 少妇久久久被弄到高潮| 一本一道AV无码中文字幕麻豆| 91精品人妻一区二区三区蜜蜜挑| HD老熟女BBN| 国产香蕉一区二区三区在线视频| 内谢XXXXX8老| 天天躁夜夜躁狠狠躁2020有剧| 曰韩少妇内射免费播放 | 最新国产精品拍自在线播放| 差差差很疼无掩盖在线观看| 国产深夜男男口爆Gay| 欧美成人精品第一区二区三区| 性欧美丰满熟妇XXXX性久久久| 一区二区三区精品视频免费播放| 扒开双腿疯狂进出爽爽爽免费| 久久国产精品成人影院| 日本丰满人妻熟妇BBBBB| 亚洲人成国产精品无码果冻| 国产VOYEUR精品偷窥222| 久久久久久久精品国产免费…| 无码人妻AⅤ一区二区三区用会员| 野花高清完整版免费观看视频大全| XXXX黑大荫茎XXXX| 精品浪潮av一区二区三区| 人禽杂交18禁网站| 亚洲色偷拍另类无码专区| 国产精品自在线拍国产手机版| 日本人妻丰满大屁股a v| 一区二区三区无码免费看| 黑人粗大猛烈进出高潮视频| 人妻少妇精品视频专区| 亚洲一区二区三区国产精华液| 国产传媒精品1区2区3区| 妺妺窝人体色www聚色窝欢迎| 无码无遮挡又大又爽又黄的视频| 成人免费毛片内射美女-百度| 久久综合给久久狠狠97色| 无码专区6080YY免费视频| 高潮到不停喷水的免费视频| 免费无码又爽又高潮视频| 一二三四免费BD高清视频 | 大乳丰满人妻中文字幕日本| 兰州熟妇高潮露脸| 一区二区三区国产精华护肤品| 国产精品成人观看视频国产奇米| 色欲色香天天天综合无码WWW| 50妺妺窝人体色www合集| 免费人成视频网站在线18| 亚洲区激情区无码区| 国产精品久久久久AV福利动漫| 日韩精品成人无码专区免费| 99精品视频一区在线观看| 久久久噜噜噜久噜久久 | 无码中文字幕AⅤ精品影| 国产精品国产精品国产专区不卡| 任你躁X7X7X7X7在线观看| 大J8黑人BBW巨大888| 同学故意把我的校服当抹布用作文| 国产成人无码AA精品一区 | 日本丰满人妻XXXXXHD| 成人免费无码大片A毛片| 私人影院无在线码免费| 国产成人无码一区二区三区| 三上悠亚SSNI452内衣模特| 草草CCYY免费看片线路| 天天做天天爱夜夜夜爽毛片 | JIZZJIZZJIZZ日本丰| 免费A级毛片无码免费视频120| 99精品久久久久久久婷婷| 欧美另类VIDEOSSEXO潮| 菠萝蜜视频在线观看入口| 人人妻人人澡人人爽人人精品浪潮 | 色婷婷综合久久久久中文一区二区 | 十八禁无码免费网站| 国产成人亚洲精品青草| 无码人妻一区二区三区免费| 国产欧美精品一区二区色综合 | 久久五月精品中文字幕| 一本久久A久久精品综合| 欧美黑人又大又粗又长久久久| 2019午夜福利不卡片在线| 日韩免费视频一一二区| 国产黄A三级三级三级| 亚洲中字幕日产2021草莓 | 国产无遮挡18禁网站免费| 亚洲欧美VR色区| 人体艺术在线观看| 国产成人精品免费视频网页大全| 婷婷无套内射影院| 国色天香卡一卡2卡3卡4卡5| 自拍偷自拍亚洲精品10P| 欧美熟妇的性裸交| 好大好湿好硬顶到了好爽视频| 97精品人妻系列无码人妻| 日日噜噜夜夜狠狠久久无码区| 精品国产三级A∨在线无码| 中日韩精品卡一卡二卡3卡| 四十路の五十路熟女豊満AV| 久久变态刺激另类SM按摩| 草莓丝瓜芭乐鸭脖奶茶发型 | 少妇丰满爆乳被呻吟进入| 国产最好的高清播放机品牌| 在办公室被C到呻吟的动态图| 欧美性受XXXX喷潮| 含着她的花蒂啃咬高潮| 办公室被公司领导C了很多次| 亚洲欧美日韩精品色XXX| 欧美极品小妇另类xXXX性| 精品 亚洲 无码 自拍 另类| 东京热无码AV男人的天堂| 亚洲另类激情综合偷自拍图| 青春草无码精品视频在线观看 | 富婆偷人对白又粗又大视频| 夜夜嗨AV熟妇人妻涩爱AV | 青青草原精品99久久精品66| 狠狠干2015最新版| 办公室撕开奶罩揉吮奶漫画| 亚洲AV无码潮喷在线观看蜜桃| 男朋友要再做一次才同意分手 | 夫妻互换呻吟抽插小说| 在线精品自偷自拍无码中文| 偷拍中国熟妇牲交| 人人妻人人妻人人人人妻妻人人人人| 精产国品一二三产品区别在| 锕锕锕锕锕锕锕锕轻点好疼视频 | 亚洲精品中文字幕无码蜜桃 | 久人人爽人人爽人人片AV| 黑人巨茎中出人妻| 春色校园亚洲愉拍自拍| 呦系列视频一区二区三区| 亚洲精品1卡2卡三卡23卡放| 日日碰狠狠添天天爽超碰97| 久久亚洲精品成人无码| 狠狠人妻久久久久久综合蜜桃| 国产精品后入内射日本在线观看 | 亚洲小说区图片区另类春色| 亚洲AV成人午夜福利在线观看| 人妻互换ⅩXXXBBBB| 欧美人与禽XOXO牲伦交| 女人下边水润紧致好处| 久久AV无码专区亚洲AV桃花岛 | 成人无码区免费A∨电影| 坐在黑得发紫的巨龙上写作业| 一本大道香蕉在线精品| 野花电影在线观看免费720| 亚洲AV人无码激艳猛片服务器| 挺进绝色校花的紧窄小肉| 无码人妻丰满熟妇啪啪| 婷婷成人丁香五月综合激情| 日本入室强伦姧BD在线观看| 日韩欧美午夜成人精品视频| 欧美〇〇无码黑人大战野结衣| 欧美日韩乱一区二区三区| 男阳茎进女阳道啪啪| 人喾交性专区免费看| 欧美黑人性爱视频| 日本熟妇XXⅩ浓密黑毛| 少妇无码AV无码专区线| 日韓丨亞洲丨制服丨亂倫| 天堂中文在线最新版| 天天看片在线完整版| 熟女一区二区三区| 色综合久久88色综合天天| 无码色AV一二区在线播放| 亚洲AV午夜成人片精品| 亚洲精品1卡2卡三卡23卡| 在线观看亚洲一区| JAVAPARSER教师HD| 粗大的内捧猛烈进出动态图| 国产精品永久免费| 狠狠躁夜夜躁无码中文字幕| 精品亚洲成A人在线观看青青| 男女猛烈无遮挡免费视频| 女人的选择HD中字| 入禽太深视频免费视频| 亚洲AV色先锋资源电影网站 | 四川妇女BBBWBBBWM| 亚洲大尺度专区无码浪潮AV| 野兽的夜晚第四季忘不掉的前任 |