新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP的高速數(shù)據(jù)采集系統(tǒng)設(shè)計方案

基于DSP的高速數(shù)據(jù)采集系統(tǒng)設(shè)計方案

作者: 時間:2010-11-05 來源:網(wǎng)絡(luò) 收藏

2.2 USB接口

USB 通用接口芯片可分為3 種。一種是專門為USB 應(yīng)用設(shè)計的USB 芯片,一種是建立在現(xiàn)有芯片系列基礎(chǔ)上的USB 芯片,還有一種是只處理USB 通信,必須被一個外部微控制器所控制的USB 芯片。該設(shè)計采用CH372屬于最后一種。

CH372 內(nèi)置了USB 通訊中的底層協(xié)議,具有省事的內(nèi)置固件模式和靈活的外置固件模式。在內(nèi)置固件模式下,CH372 自動處理默認(rèn)端點0 的所有事務(wù),本地端DSP 只要負(fù)責(zé)數(shù)據(jù)交換,所以DSP 程序非常簡潔。在外置固件模式下,由外部DSP 根據(jù)需要自行處理各種USB 請求,從而可以實現(xiàn)符合各種USB 類規(guī)范的設(shè)備。

CH372 與 TMS320F2812 之間以非總線方式連接,連接框圖如圖2 所示。CH372 的8 位數(shù)據(jù)口D0 ~D7 分別掛在TMS320F2812 的GPIOA0 ~ GPIOA7 準(zhǔn)雙向I/O 口上,命令數(shù)據(jù)地址選擇端A0,讀信號選擇端RD,寫信息選擇端WR 和中斷輸出端INT 分別與TMS320F2812的GPIOA9、GPIOA10、GPIOA11 和GPIO8(CAP1)相連,片選引腳CS 接地。

2.3 AD 轉(zhuǎn)換器

該系統(tǒng)采用MAXIM 公司的MAX1308 型號的AD 轉(zhuǎn)換器,MAX1308 獨立的采樣保持(T/H)電路為每個通道提供同時采樣,MAX1308 提供±5V 輸入范圍,輸入故障容限為±16.5V。其ADC 在0.9micro;s 內(nèi)完成2 個通道的轉(zhuǎn)換,在1.98µs 內(nèi)完成多達(dá)8 個通道的轉(zhuǎn)換,8 個通道轉(zhuǎn)換時每通道吞吐率為456kSPS。其他特性包括20MHz 的T/H 輸入帶寬、內(nèi)部時鐘、內(nèi)部(+2.5V)或外部(+2.0V 至+3.0V)基準(zhǔn)以及低功耗省電模式。20MHz、12 位雙向并行數(shù)據(jù)總線用來提供轉(zhuǎn)換結(jié)果,并可接受數(shù)字輸入分別激活每一路通道。工作在+4.75V 至+5.25V 模擬電源與+2.7V 至+5.25V 數(shù)字電源下,全速運行時,總電源電流為57mA,工作溫度為-40℃至+85℃擴(kuò)展溫度范圍。

3、軟件設(shè)計

該數(shù)據(jù)系統(tǒng)的軟件由USB 驅(qū)動程序、DSP 程序和PC 機應(yīng)用程序3 大模塊構(gòu)成。

3.1 USB 驅(qū)動

USB 設(shè)備驅(qū)動是應(yīng)用程序和硬件之間的接口,起著承上啟下的作用。CH372 套件包括CH372 芯片和計算機端的CH372 驅(qū)動程序。在本地端,CH372 芯片以內(nèi)置的固件程序自動處理了USB 通訊中的基本事務(wù);在計算機端,驅(qū)動程序以及動態(tài)鏈接庫等軟件向計算機應(yīng)用層提供應(yīng)用層接口。

它內(nèi)部提供API 函數(shù)供應(yīng)用程序使用,以實現(xiàn)對USB 設(shè)備的打開、關(guān)閉、讀寫等操作。此設(shè)計中USB 設(shè)備驅(qū)動采用USB 芯片廠商提供的驅(qū)動程序CH372DRV.EXE,安裝驅(qū)動程序CH372DRV.EXE 后,在應(yīng)用程序中調(diào)用動態(tài)鏈接庫CH375DLL.DLL 提供的API 函數(shù)來打開、關(guān)閉、和讀寫USB 設(shè)備。

DSP 和USB 芯片通信時,CH372 芯片占用兩個地址位,當(dāng)A0 引腳為高電平時選擇命令端口,可以寫入命令;當(dāng)A0 引腳為低電平時選擇數(shù)據(jù)端口,可以讀寫數(shù)據(jù)。DSP 通過8 位并行口對CH372 芯片進(jìn)行讀寫,所有操作都是由一個命令碼、若干個輸入數(shù)據(jù)和若干個輸出數(shù)據(jù)組成,部分命令不需要輸入數(shù)據(jù),部分命令沒有輸出數(shù)據(jù)。命令操作步驟如下:

①、在A0=1 時向命令端口寫入命令代碼;

②、如果該命令具有輸入數(shù)據(jù),則在A0=0 時依次寫入輸入數(shù)據(jù),每次一個字節(jié);

③、如果該命令具有輸出數(shù)據(jù),則在A0=0 時依次讀取輸出數(shù)據(jù),每次一個字節(jié);

④、命令完成,可以暫?;蛘咿D(zhuǎn)到①繼續(xù)執(zhí)行下一個命令。

CH372 芯片專門用于處理USB 通訊,在接收到數(shù)據(jù)后或者發(fā)送完數(shù)據(jù)后,CH372 以中斷方式通知DSP 進(jìn)行處理。DSP 通過CH372 芯片接收數(shù)據(jù)的處理步驟如下:

①、當(dāng)CH372 接收到USB 主機發(fā)來的數(shù)據(jù)后,首先鎖定當(dāng)前USB 緩沖區(qū),防止被后續(xù)數(shù)據(jù)覆蓋,然后將INT 引腳設(shè)置為低電平,向DSP 請求中斷;

②、DSP 進(jìn)入中斷服務(wù)程序,首先執(zhí)行GET_STATUS 命令獲取中斷狀態(tài);

③、CH372 在GET_STATUS 命令完成后將INT 引腳恢復(fù)為高電平,取消中斷請求;

④、由于通過上述GET_STATUS 命令獲取的中斷狀態(tài)是“下傳成功”,所以DSP 執(zhí)行RD_USB_DATA命令從CH372 讀取接收到的數(shù)據(jù);

⑤、CH372 在RD_USB_DATA 命令完成后釋放當(dāng)前緩沖區(qū),從而可以繼續(xù)USB 通訊;

⑥、DSP 退出中斷服務(wù)程序。



關(guān)鍵詞: 采集數(shù)據(jù)

評論


技術(shù)專區(qū)

關(guān)閉