基于USB的數(shù)據(jù)采集系統(tǒng)的設計與研究
GPIFINIT.C,其中只有一個Gpiflnit函數(shù);他是GPIF模塊的初始化函數(shù),一般在TD Init函數(shù)中調(diào)用。這個函數(shù)是由Cypress公司提供的一個GPIF、Designer開發(fā)工具根據(jù)用戶設計的波形生成的,用戶不需要自己設計波形查詢表,減輕了設計者的工作強度。DSCR.A51是描述表文件,負責LISB設備的描述工作,CY7C68013在上電后自動利用其中的VID和PID取代默認的VID和PID。
4.2驅(qū)動程序的編寫
數(shù)據(jù)采集系統(tǒng)的設備驅(qū)動程序和應用程序都是設備的主機端程序。設備驅(qū)動程序是硬件和應用程序之間的橋梁,通過驅(qū)動程序,應用程序可以對硬件進行控制。該系統(tǒng)需要2個驅(qū)動程序,即通用驅(qū)動和下載固件的驅(qū)動。通用驅(qū)動完成與外設和用戶程序的通信及控制;而下載固件的驅(qū)動則只負責在外設連接LISB總線后把特定的固件程序下載到FX2的RAM中,使FX2的CPU重啟,模擬斷開與USB總線的連接,完成對外設的重新設置。主機根據(jù)新的設置安裝通用驅(qū)動程序,重新枚舉外設為一個新的USB設備。
在本系統(tǒng)的驅(qū)動程序開發(fā)中,使用的開發(fā)工具是Jun-go公司的winDriver,他支持多種操作系統(tǒng)。winDriver開發(fā)的優(yōu)點是用戶不需要了解操作系統(tǒng)內(nèi)部的具體工作機理,同時也不需要了解各個系統(tǒng)DDK(Developing orDebugging in Kernel)的開發(fā)工具,用戶只需使用winDriv-er提供的開發(fā)平臺,即可完成驅(qū)動程序的設計工作,剩下的底層細節(jié)由winDrivei內(nèi)核統(tǒng)一處理。從而降低了對開發(fā)者編程能力的要求,同時也大大縮短了開發(fā)周期。下面就使用winDriver開發(fā)驅(qū)動程序的步驟做簡要說明:
啟動winDrivet。的Dri veiwizard工具;利用Driver--wizard檢測硬件是否正常;在Driverwizard中選擇所使用的開發(fā)環(huán)境,這里使用VC++6.0開發(fā)環(huán)境,并生成驅(qū)動程序代碼;對生成的代碼進行修改,使其符合系統(tǒng)的需要;在winDrivet環(huán)境的用戶模式下,調(diào)試驅(qū)動程序;如果程序需要內(nèi)核訪問以提高驅(qū)動程序的效率,進入內(nèi)核開發(fā)。
4.3 用戶程序的編寫
用戶程序是系統(tǒng)與用戶的接口,他通過通用驅(qū)動程序完成對外設的控制和通信。在編寫用戶程序時,首先要建立與外設的連接,然后才能實施數(shù)據(jù)的傳輸。啟動采樣后,為了保證不丟失數(shù)據(jù),用戶程序應該建立一個工作線程專門獲取外設傳來的數(shù)據(jù)。程序中主要用到2個API函數(shù):CreateFile()和DeviceloControl()。CreateFile()取得設備句柄后,DeviceloControl()根據(jù)該句柄完成數(shù)據(jù)傳輸。程序框圖如圖5所示。
5 結(jié) 語
本文系統(tǒng)地介紹了基于USB接口的數(shù)據(jù)采集系統(tǒng),完成了軟硬件的設計工作。數(shù)據(jù)采集系統(tǒng)具有最大20 kS/s的采樣速率,8位分辨率,采樣精度小于1%,輸入范圍為一5~+5 V。在本數(shù)據(jù)采集系統(tǒng)的設計中,CY7C68013芯片靈活的接口和可編程特性簡化了外部硬件的設計,提高了系統(tǒng)的可靠性,也利于PCB板的制作與調(diào)試?;赨SB 2.0的數(shù)據(jù)采集卡可以即插即用,彌補了傳統(tǒng)采集板卡插拔困難的不足。隨著時代的進步,技術(shù)的發(fā)展,USB必將在更廣闊的領域得到更深層次的運用。
評論