資源描述:
《板卡驅(qū)動cVxD驅(qū)動論文(畢業(yè)論文)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、VxD是virtual[gtJuBl]Xdriver的簡寫,即焜擬設(shè)備驅(qū)動程序。x代表各種設(shè)備的名字,如虛擬鍵盤驅(qū)動程序(vkd),虛擬鼠標(biāo)驅(qū)動程序(vmd)等等。VxD程序是硬件成功初始化的途徑。記得dos程序認(rèn)為它們擁有系統(tǒng)的一切,當(dāng)它們在虛擬機(jī)屮運(yùn)行吋,Windows需要給它們一個實機(jī)器的替身。VxD程序就是這些替身。VxD程序通常虛擬一些硬件設(shè)備,所以,例如當(dāng)一個dos程序認(rèn)為它在同鍵盤通訊時,實際是虛擬鍵盤驅(qū)動程序在和dos程序通訊。一個VxD程序通??刂普嬲挠布O(shè)備并對該設(shè)備在各個虛擬機(jī)之間的共享進(jìn)行管理。盡管如此,并不是說每個VxD程序必須和一個
2、硬件設(shè)備相連。雖然VxD程序是用來虛擬硬件設(shè)備的,但是我們也可以把VxD程序看作是在第0級別的dll。例如,如果你需要做一些只有在第0級別才能做的工作,你就可以編一個VxD程序來為你完成這個工作。這樣,由于此VxD程序并沒有虛擬任何設(shè)備,你就可以把它僅僅看作是你的程序的擴(kuò)展。VxD程序是Windows9x特有的,它在WindowsNT下不能運(yùn)行。所以如果你的程序是依靠VxD的,它就不能被移植到WindowsNT平臺上去。VxD是系統(tǒng)中權(quán)力最大的實體。由于它們可以對系統(tǒng)作任何事情,所以它們是極度危險的。一個惡意的/錯誤的VxD程序可以毀掉整個系統(tǒng)。對于惡意的/錯誤
3、的VxD程序沒有任何的保護(hù)措施。驅(qū)動程序:英文名為“DeviceDriver",全稱為“設(shè)備驅(qū)動程序”是一種可以使員至機(jī)和設(shè)備通信的特殊程序,可以說相當(dāng)于硬件的接口,操作系統(tǒng)只有通過這個接口,才能控制硬件設(shè)備的工作,假如某設(shè)備的驅(qū)動程序未能正確安裝,便不能正常工作。因此,驅(qū)動程序被譽(yù)為“硬件的靈魂”、“硬件的主宰”、和“碩件和系統(tǒng)之間的橋梁”等。剛安裝好的系統(tǒng)操作系統(tǒng),很可能驅(qū)動程序安裝得不完整。硬件越新,這種可能性越人。菜菜熊之前看到的“圖標(biāo)很人且顏色難看"就是沒有安裝好驅(qū)動的原因。在軟件測試中:在自底向上測試中,耍編寫稱為測試驅(qū)動的模塊調(diào)用正在測試的模塊。測
4、試驅(qū)動模塊以和將來真正模塊同樣的方式掛接,向處于測試的模塊發(fā)送測試用例數(shù)據(jù),接受返回結(jié)果,驗證結(jié)果是否正確。隨著電子技術(shù)的飛速發(fā)展,電腦硬件的性能越來越強(qiáng)人。駁動程序是直接T作在各種硬件設(shè)備上的軟件,其“駁動"這個名稱也十分形象的指明了它的功能。正是通過驅(qū)動程序,各種硬件設(shè)備才能正常運(yùn)行,達(dá)到既定的丁?作效果。硬件如果缺少了驅(qū)動程序的“驅(qū)動",那么本來性能非常強(qiáng)大的硬件就無法根據(jù)軟件發(fā)出的指令進(jìn)行工作,硬件就是空有一身本領(lǐng)都無從發(fā)揮,亳無用武之地。這時候,電腦就正如古人所說的“萬事俱備,只欠東風(fēng)",這“東風(fēng)"的角色就落在了驅(qū)動程序身上。如此看來,驅(qū)動程序在電腦使
5、用上還真起著舉足輕重的作用。從理論上講,所有的硬件設(shè)備都需要安裝相應(yīng)的驅(qū)動程序才能正常工作。但像CPU、內(nèi)存、主板、軟驅(qū)、鍵盤、顯示器等設(shè)備卻并不需耍安裝驅(qū)動程序也町以正常工作,而顯卡、聲卡、網(wǎng)E等卻一定要安裝驅(qū)動程序,否則便無法正常工作。這是為什么呢?這主要是由于這些硬件對于一臺個人電腦來說是必需的,所以早期的設(shè)計人員將這些碩件列為BIOS能直接支持的碩件。換句話說,上述碩件安裝后就可以被BIOS和操作系統(tǒng)直接支持,不再需要安裝驅(qū)動程序。從這個角度來說,BIOS也是一種驅(qū)動程序。但是對于其他的硬件,例如:網(wǎng)卡,聲卡,顯卡等等卻必須要安裝驅(qū)動程序,不然這些硬件就
6、無法正常工作。第一章緒論驅(qū)動程序?qū)嶋H上可以理解為是?系列控制硬件設(shè)備的函數(shù)。在DOS系統(tǒng)中,一個驅(qū)動程序可能是一個連到應(yīng)用程序.EXE屮的一個模塊或者是與應(yīng)丿IJ程序分開的一個獨(dú)立部分;在Widows系統(tǒng)屮,封裝驅(qū)動程序的方法是制作一個DLL或VxD。在早期,由于我們一般涉及的與計算機(jī)相關(guān)的喚件設(shè)備都是標(biāo)準(zhǔn)設(shè)備,它們的驅(qū)動程序是由廠家或?qū)iT的程序開發(fā)人員提供并加以封裝,用戶只需了解少驅(qū)動程序和連的Windows應(yīng)用程序接口(API),而無需知道其內(nèi)部運(yùn)行機(jī)制。但是如果硬件是非標(biāo)準(zhǔn)設(shè)備,我們必須針對該特定硬件自己來設(shè)計Windows壞境下的設(shè)備驅(qū)動程序。theAp
7、plicationProgrammingInterfaceAPI我所面對的碩件是一塊超聲波探傷卡,它集成在一塊PCI插卡上,橋接芯片采用了PCI2040,因為它可以和DSP無縫連接。我耍做的工作是首先利用主機(jī)通過并口啟動模擬釆樣部分,當(dāng)采樣數(shù)據(jù)放大后進(jìn)入A/D變換后存入儲存器,在數(shù)據(jù)存儲器中存滿一幀時,破件向主機(jī)發(fā)屮斷,主機(jī)響應(yīng)小斷后通過PCI2040芯片讀出存放在數(shù)據(jù)存儲器屮的采樣數(shù)據(jù),然示進(jìn)行后續(xù)處理并將結(jié)果顯示于屏幕。我編寫的應(yīng)用程序的軟件平臺是Window95/98,采樣的工具是VisualC++6.0(簡稱VC++),因為它是一種面向?qū)﹀璧木幊陶Z言,具
8、有良好的交換性,可以根據(jù)