Niosll和USB接口的高速數據采集卡設計
3 軟件設計及實(shí)現
系統軟件設計包括3部分:固件程序、USB設備驅動(dòng)程序和應用程序。整個(gè)軟件實(shí)現的功能包括系統初始化、采樣控制、數據傳輸和波形顯示。
3.1 固件程序設計
固件程序輔助硬件實(shí)現設備雙向交換數據,以完成USB通信,其主要功能是:接收并處理USB驅動(dòng)程序的請求及應用程序的控制指令,控制A/D轉換器的采樣。當首次插入USB時(shí),FX2通過(guò)USB電纜會(huì )自動(dòng)枚舉且下載固件和USB描述符表;接下來(lái),FX2再次枚舉,這次主要通過(guò)下載的信息來(lái)定義設備。這兩個(gè)步驟叫作重枚舉。固件程序流程如圖7所示。初始化包含各個(gè)初值的設置和關(guān)鍵點(diǎn)的電平檢測。
在Cypress公司的網(wǎng)站上,可下載CY7(368013芯片的開(kāi)發(fā)工具包。該開(kāi)發(fā)包提供了一些開(kāi)發(fā)固件程序所需的資源:Keil u Vision2集成開(kāi)發(fā)環(huán)境(限制版)、Cypress C51固件框架程序以及一些例子程序。KeilCSl是一種專(zhuān)為8051單片機設計的高效率C語(yǔ)言編譯器,符合ANSI標準,生成的程序代碼運行速度極高,所需要的存儲空間極小,完全可與匯編語(yǔ)言相媲美。同時(shí),C51具有豐富的庫函數,多達1O0多種功能函數。因此,采用C語(yǔ)言作為開(kāi)發(fā)語(yǔ)言,以Keil uVision2作為工程開(kāi)發(fā)平臺,完成源代碼的編寫(xiě)、仿真、調試,將在相當程度上降低固件開(kāi)發(fā)難度,提高開(kāi)發(fā)效率。
3.2 USB設備驅動(dòng)設計
USB設備驅動(dòng)程序的設計是基于WDM(WindowsDriver Model,驅動(dòng)程序模型)的。WDM采用分層驅動(dòng)程序模型,分為較高級的USB設備驅動(dòng)程序和較低級的USB函數層。其中USB函數層由兩部分組成:較高級的通用串行總線(xiàn)模塊(us—BD)和較低級的主控制器驅動(dòng)程序模塊(HCD)。
本設計用WinDK3.O開(kāi)發(fā)了Win2000下的驅動(dòng)程序,實(shí)現了控制傳輸、中斷傳輸和批傳輸的標準接口函數。在應用程序開(kāi)發(fā)中,可用VC++編制應用程序。把USB設備當成文件來(lái)操作,用Create—File得到USB句柄,用DevieeloControl來(lái)進(jìn)行控制傳輸,用ReadFile、WriteFile進(jìn)行批量傳輸。
3.3 應用程序設計
應用程序流程如圖8所示。用戶(hù)應用程序是數據采集系統的核心,其主要功能為:開(kāi)啟或關(guān)閉USB設備、檢測USB設備、設置USB數據傳輸管道、設置A/D狀態(tài)和數據采集端口、實(shí)時(shí)從USB接口采集數據、顯示并分析數據。
4 結 論
用FPGA作為采集處理部分,可以提高系統處理的速度,大大增強系統的靈活性和適應性。FPGA技術(shù)和USB的組合,使得數據處理能力得到了極大的提高,且有利于系統升級。USB芯片采用了Cpyress公司的高性能USB2.0芯片CY7C68013,可以完全勝任大數據量的傳送。該實(shí)例還可應用于實(shí)時(shí)數據采集、音頻及壓縮視頻數據傳輸等領(lǐng)域。
評論