谷物品質(zhì)快速檢測(cè)儀關(guān)鍵部件的設(shè)計(jì)
圖5. 驅(qū)動(dòng)程序流程圖
2 USB驅(qū)動(dòng)程序和應(yīng)用程序的開(kāi)發(fā)
GPD(General Purpose Driver)是一個(gè)通用目的的設(shè)備驅(qū)動(dòng)程序,是應(yīng)用程序與EZ-USB 外設(shè)進(jìn)行通信的橋梁。EZ-USB的GPD 代碼Cypress公司提供原型,用戶(hù)可以在此基礎(chǔ)上生成定制驅(qū)動(dòng)程序。
1)定制驅(qū)動(dòng)程序的生成
采用Cypress 提供的GPD,由于GPD 只能執(zhí)行一些標(biāo)準(zhǔn)的USB 設(shè)備請(qǐng)求和數(shù)據(jù)傳輸,
不能滿(mǎn)足用戶(hù)特定外設(shè)的需要,需進(jìn)行擴(kuò)充以生成用戶(hù)定制驅(qū)動(dòng)程序。對(duì)GPD 中的EZUSBSYS. C,EZUSBSYS. H,SOURCES 進(jìn)行修改,再在WindowsDDK 與VC ++ 6. 0 下利用Build 命令重新編譯即可生成用戶(hù)定制驅(qū)動(dòng)程序。
2)設(shè)備驅(qū)動(dòng)程序與應(yīng)用程序的接口
設(shè)備驅(qū)動(dòng)程序介于硬件與用戶(hù)應(yīng)用軟件之間。用戶(hù)可以以一種規(guī)范的方式調(diào)用Win32API函數(shù)訪(fǎng)問(wèn)硬件,而不必考慮如何控制硬件。為了方便人們開(kāi)發(fā)新的驅(qū)動(dòng)程序,Windows已經(jīng)自帶了一些類(lèi)驅(qū)動(dòng)程序,用戶(hù)只需要在這些類(lèi)驅(qū)動(dòng)程序的基礎(chǔ)上編寫(xiě)功能驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)特定的功能。圖5給出了驅(qū)動(dòng)程序的調(diào)用流程,可以清楚地看到功能驅(qū)動(dòng)程序所處的層次。
開(kāi)發(fā)過(guò)程中主要是了解應(yīng)用程序中如何調(diào)用驅(qū)動(dòng)提供的接口函數(shù)。用戶(hù)應(yīng)用程序通過(guò)
I / O 控制調(diào)用訪(fǎng)問(wèn)EZ-USB 設(shè)備驅(qū)動(dòng)程序達(dá)到控制USB 設(shè)備的目的,應(yīng)用程序首先通過(guò)調(diào)用Win32函數(shù)CreateFile來(lái)取得訪(fǎng)問(wèn)設(shè)備驅(qū)動(dòng)程序的句柄,再利用Win32函數(shù)DeviceIoControl對(duì)設(shè)備進(jìn)行I / O 控制。
(1) 獲取設(shè)備句柄。
EZ-USB 設(shè)備驅(qū)動(dòng)程序可以與多個(gè)EZ-USB 設(shè)備通信。每一個(gè)連接到主機(jī)的EZ-USB 設(shè)備,驅(qū)動(dòng)程序都為它創(chuàng)建一個(gè)形如Ezusb-i(i從0遞增)的鏈接符。Win32 函數(shù)CreateFile以設(shè)備鏈接符為參數(shù)獲取第i個(gè)Ezusb設(shè)備的句柄。通過(guò)CreateFile函數(shù)獲取USB 設(shè)備句柄后,再利用I / O控制來(lái)處理設(shè)備的I / O 請(qǐng)求。[2]
(2) 設(shè)備I / O 控制
應(yīng)用程序通過(guò)Win32 函數(shù)DeviceIoControl向設(shè)備驅(qū)動(dòng)程序發(fā)送I / O 請(qǐng)求。DeviceIoControl函數(shù)通過(guò)I / O 控制碼(IOCTRL)及其他輔助參數(shù)向設(shè)備驅(qū)動(dòng)程序發(fā)送特定的I / O 請(qǐng)求并返回操作結(jié)果,來(lái)實(shí)現(xiàn)數(shù)據(jù)或控制命令的傳輸。[2]
3.2.3 Win32應(yīng)用程序
上位機(jī)應(yīng)用程序主要負(fù)責(zé)讀取硬件所輸出的數(shù)據(jù)采集結(jié)果并向下發(fā)送控制指令,而且能存儲(chǔ)和顯示采集到的波形。Win32程序使用VC++6.0實(shí)現(xiàn),通過(guò)USB中斷或塊傳輸來(lái)讀取AD采集結(jié)果,采樣速度可以達(dá)到20K。
五、結(jié)速語(yǔ)
本文通過(guò)介紹ADS7825和EZ-USB FX2芯片的特點(diǎn)及相關(guān)的軟硬件基本開(kāi)發(fā)過(guò)程,闡述了實(shí)現(xiàn)光譜數(shù)據(jù)采集系統(tǒng)的全過(guò)程。筆者根據(jù)上文提到方法設(shè)計(jì)了硬件并編寫(xiě)了相應(yīng)的固件程序、驅(qū)動(dòng)程序和應(yīng)用程序,在實(shí)際應(yīng)用中已獲得正常使用。
評(píng)論