基于USB接口的虛擬示波器的開發實現
為了克服虛擬示波器應用中的一些缺點,在虛擬示波器中采用了一種新的總線接口標準——USB接口。主要介紹了基于USB的虛擬示波器的獨特優點,著重說明了系統整體設計、外插硬件設計、USB驅動軟件設計和客戶應用軟件設計。
關鍵詞:虛擬示波器,USB,Windows驅動模型,快速傅里葉變換
1 系統總體設計
USB規范中將USB分為5個部分:控制器、控制器驅動程序、USB芯片驅動程序、USB設備以及針對不同USB設備的客戶驅動程序。根據設備對系統資源需求的不同,在USB規范中規定了四種不同的數據傳輸方式:等時傳輸方式(isochronous)、中斷傳輸方式(interrupt)、控制傳輸方式(control)和批(bulk)傳輸方式。這些傳輸方式各有特點,分別用于不同的場所。USB需要主機硬件、操作系統和外設三個方面的支持才能工作。目前,主板一般都采用支持USB功能的控制芯片組,而且也安裝了USB接口插座。根據USB規范,整個虛擬示波器系統的設計分為主機軟件部分和外插硬件部分(見圖1)。
2 系統外插硬件設計
系統外插硬件設計結構見圖2。本系統的外插硬件中采用Philips公司的PDIUSBD12全速USB接口芯片組成USB接口單元。PDIUSBD12芯片詳細資料可查看Philips公司網站www.philips.com。模數轉換芯片采用MAX公司最新的AD芯片MAX108??刂茊卧捎肁T908515單片機作為控制器,控制整個硬件部分的協調工作。兩路被測信號可同時進入雙路AD單元,模數轉換后的數字信號經過信號預處理單元,對信號作初步的處理并將信號轉變為便于存儲的數據形式。此后,將數據送入高速緩存,等待USB接口單元逐步輸入主機。而系統輸出信號的路徑相反,最后由DA單元轉變為用戶定義輸出的模擬信號??刂茊卧刂艫D和DA轉換的啟動停止、信號預處理單元的處理動作、高速緩存的存取以及協助USB接口單元的輸入輸出。
本USB驅動程序采用等時管道傳輸數據,用控制管道來傳輸指令與信息。用等時管道可以實現主機和設備之間有規律的時間敏感性數據交換??偩€驅動程序將使用90%的總線帶寬進行等時和中斷傳輸?! 〈蜷_一個USB管道,首先要知道這種USB設備的GUID和管道名稱,獲取句柄以后就可以使用ReadFile/WriteFile進行讀寫了。
USB驅動程序符合WDM(Windows驅動模型),本驅動程序采用微軟公司的DDK2000開發,使用平臺為Windows2000。鑒于篇幅原因,此處僅提供USB驅動程序主入口例程的設計。
WDM驅動程序的主入口例程為DriverEntry例程,I/O管理器將調用該例程。對于本WDM驅動程序的DriverEntry例程,其主要工作是把各種函數指針填入驅動程序對象。這些指針為操作系統指明了驅動程序庫中各種子例程的位置。它們包括下面這些指針成員(驅動程序對象中):

評論