基于DSP的高速數據采集系統設計方案
2.2 USB接口
USB 通用接口芯片可分為3 種。一種是專門為USB 應用設計的USB 芯片,一種是建立在現有芯片系列基礎上的USB 芯片,還有一種是只處理USB 通信,必須被一個外部微控制器所控制的USB 芯片。該設計采用CH372屬于最后一種。
CH372 內置了USB 通訊中的底層協議,具有省事的內置固件模式和靈活的外置固件模式。在內置固件模式下,CH372 自動處理默認端點0 的所有事務,本地端DSP 只要負責數據交換,所以DSP 程序非常簡潔。在外置固件模式下,由外部DSP 根據需要自行處理各種USB 請求,從而可以實現符合各種USB 類規范的設備。
CH372 與 TMS320F2812 之間以非總線方式連接,連接框圖如圖2 所示。CH372 的8 位數據口D0 ~D7 分別掛在TMS320F2812 的GPIOA0 ~ GPIOA7 準雙向I/O 口上,命令數據地址選擇端A0,讀信號選擇端RD,寫信息選擇端WR 和中斷輸出端INT 分別與TMS320F2812的GPIOA9、GPIOA10、GPIOA11 和GPIO8(CAP1)相連,片選引腳CS 接地。
2.3 AD 轉換器
該系統采用MAXIM 公司的MAX1308 型號的AD 轉換器,MAX1308 獨立的采樣保持(T/H)電路為每個通道提供同時采樣,MAX1308 提供±5V 輸入范圍,輸入故障容限為±16.5V。其ADC 在0.9micro;s 內完成2 個通道的轉換,在1.98µs 內完成多達8 個通道的轉換,8 個通道轉換時每通道吞吐率為456kSPS。其他特性包括20MHz 的T/H 輸入帶寬、內部時鐘、內部(+2.5V)或外部(+2.0V 至+3.0V)基準以及低功耗省電模式。20MHz、12 位雙向并行數據總線用來提供轉換結果,并可接受數字輸入分別激活每一路通道。工作在+4.75V 至+5.25V 模擬電源與+2.7V 至+5.25V 數字電源下,全速運行時,總電源電流為57mA,工作溫度為-40℃至+85℃擴展溫度范圍。
3、軟件設計
該數據系統的軟件由USB 驅動程序、DSP 程序和PC 機應用程序3 大模塊構成。
3.1 USB 驅動
USB 設備驅動是應用程序和硬件之間的接口,起著承上啟下的作用。CH372 套件包括CH372 芯片和計算機端的CH372 驅動程序。在本地端,CH372 芯片以內置的固件程序自動處理了USB 通訊中的基本事務;在計算機端,驅動程序以及動態鏈接庫等軟件向計算機應用層提供應用層接口。
它內部提供API 函數供應用程序使用,以實現對USB 設備的打開、關閉、讀寫等操作。此設計中USB 設備驅動采用USB 芯片廠商提供的驅動程序CH372DRV.EXE,安裝驅動程序CH372DRV.EXE 后,在應用程序中調用動態鏈接庫CH375DLL.DLL 提供的API 函數來打開、關閉、和讀寫USB 設備。
DSP 和USB 芯片通信時,CH372 芯片占用兩個地址位,當A0 引腳為高電平時選擇命令端口,可以寫入命令;當A0 引腳為低電平時選擇數據端口,可以讀寫數據。DSP 通過8 位并行口對CH372 芯片進行讀寫,所有操作都是由一個命令碼、若干個輸入數據和若干個輸出數據組成,部分命令不需要輸入數據,部分命令沒有輸出數據。命令操作步驟如下:
①、在A0=1 時向命令端口寫入命令代碼;
②、如果該命令具有輸入數據,則在A0=0 時依次寫入輸入數據,每次一個字節;
③、如果該命令具有輸出數據,則在A0=0 時依次讀取輸出數據,每次一個字節;
④、命令完成,可以暫停或者轉到①繼續執行下一個命令。
CH372 芯片專門用于處理USB 通訊,在接收到數據后或者發送完數據后,CH372 以中斷方式通知DSP 進行處理。DSP 通過CH372 芯片接收數據的處理步驟如下:
①、當CH372 接收到USB 主機發來的數據后,首先鎖定當前USB 緩沖區,防止被后續數據覆蓋,然后將INT 引腳設置為低電平,向DSP 請求中斷;
②、DSP 進入中斷服務程序,首先執行GET_STATUS 命令獲取中斷狀態;
③、CH372 在GET_STATUS 命令完成后將INT 引腳恢復為高電平,取消中斷請求;
④、由于通過上述GET_STATUS 命令獲取的中斷狀態是“下傳成功”,所以DSP 執行RD_USB_DATA命令從CH372 讀取接收到的數據;
⑤、CH372 在RD_USB_DATA 命令完成后釋放當前緩沖區,從而可以繼續USB 通訊;
⑥、DSP 退出中斷服務程序。
評論