來源:微計算機信息 ,作者:隋超,劉亞軍,趙玉賓,孫建國
引言
近年來,高速數字信號處理器 (DSP)已越來越廣泛地用于各個領域,例如:通信、語音處理、圖像處理、模式識別及工業控制等方面,并且日益顯示出巨大的優越性。數字信號處理器是利用專門或通用的數字信號處理芯片、以數字計算的方法對信號進行處理,具有處理速度快、靈活、精確抗干擾能力強、體積小、可靠性高等優點,滿足了對信號快速精確實時處理及控制的要求。
通用串行總線 USB(Universal Serial Bus)具有連接靈活、可熱插拔、一種接口適合多種設備、速度高、自動配置、無需定位及運行安裝程序、可為外設提供電源、低功耗、低成本、高可靠性等優點使數據的高速傳輸變得非常便利。
設計一種通用數據采集與信號處理系統,采用高性能的 TMS320F2812芯片和 USB總線傳輸技術,使信號能實時送到上位機進行分析與處理,從而實現高速的數據采集和處理功能。
1 系統概述
該系統的工作過程主要是將外部的八路同步模擬輸入信號經過 A/D轉換器進行采樣和轉換,并把采集得到的大量數據送入 DSP內部對采樣結果進行軟件濾波以及前端處理。在 DSP完成采集數據的處理工作后,將處理結果經過 USB總線送至主機,進行實時的后端分析處理和顯示。
系統結構框圖如圖 1所示, MAX1308為 MAXIM公司生產的模 /數轉換器,其采樣最高速率為單通道 1075kSPS,8通道為 456kSPS,精度為 12位,為 8通道同步采樣。采用 TI公司的 TMS320F2812作為處理器,其時鐘頻率最高為 150MHz,是目前控制領域性能最高的處理器,具有精度高、速度快、集成度高等特點,為不同控制領域提供了高性能的處理器。 USB接口芯片采用的是 CH372,具有 8位數據總線和讀、寫、片選控制線以及中斷輸出功能,可以方便地掛接到 DSP控制器的系統總線上。利用 VC++實現了 USB和計算機的高速數據通信,充分利用了計算機的存儲容量大等特點,可將采集到的數據存儲起來供事后分析,也可以實現數據的實時處理。
2 系統硬件
2.1 TMS320F2812 C281x系列 DSP是 TI公司最新的 32位定點數字信號處理器,是基于 TMS320C2000數字信號處理器平臺開發的,其代碼與 24x/240x數字信號處理器完全兼容。因此,240x的用戶能夠輕松的移植到 C281x系列 DSP平臺上, C281x系列 DSP同時具有數字信號處理器和微控制器的特點,尤其是 C281x繼承了數字信號處理器的諸多優點,其中包括可調整的哈佛總線結構和循環尋址方式。微控制器的特點主要包括字節的組合與拆分、位操作等。哈佛總線結構能夠完成指令的并行處理,在單周期內通過流水線完成指令和數據的同時提取,從而提高了處理器的處理能力。 C281x處理器采用 C/C++編寫的軟件,其效率高,因此用戶不僅可以應用高級語言編寫系統程序,也能夠采用 C/C++高效率的數學算法。 C281x系列數字信號處理器在完成數學算法和系統控制等任務時都具有較高的性能,這樣就避免了用戶在一個系統中需要多個處理器的麻煩。C281x處理器內核包含了
一個 32×32位的乘法累計單元,能夠完成 64位的數據處理能力,從而使該處理器能夠實現更高精度的處理任務。
2.2 USB接口
USB通用接口芯片可分為 3種。一種是專門為 USB應用設計的 USB芯片,一種是建立在現有芯片系列基礎上的 USB芯片,還有一種是只處理 USB通信,必須被一個外部微控制器所控制的 USB芯片。該設計采用的 CH372屬于最后一種。
CH372內置了 USB通訊中的底層協議,具有省事的內置固件模式和靈活的外置固件模式。在內置固件模式下,CH372自動處理默認端點 0的所有事務,本地端 DSP只要負責數據交換,所以 DSP程序非常簡潔。在外置固件模式下,由外部 DSP根據需要自行處理各種 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.9μ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退出中斷服務程序。 DSP通過 CH372芯片發送數據的處理步驟如下:
①、DSP執行 WR_USB_DATA命令向 CH372 寫入要發送的數據;
②、CH372被動地等待 USB主機在需要時取走數據;
③、當 USB主機取走數據后,CH372首先鎖定當前 USB緩沖區,防止重復發送數據,然后將 INT引腳設置為低電平,向 DSP請求中斷;
④、DSP進入中斷服務程序,首先執行 GET_STATUS命令獲取中斷狀態;
⑤、CH372在 GET_STATUS命令完成后將 INT引腳恢復為高電平,取消中斷請求;
⑥、由于通過上述 GET_STATUS命令獲取的中斷狀態是“上傳成功”,所以DSP執行WR_USB_DATA命令向 CH372寫入另一組要發送的數據,如果沒有后續數據需要發送,那么 DSP不必執行 WR_USB_DATA命令;
⑦、DSP執行 UNLOCK_USB命令;
⑧、CH372在 UNLOCK_USB命令完成后釋放當前緩沖區,從而可以繼續 USB通訊;
⑨、DSP退出中斷服務程序;
⑩、如果 DSP已經寫入了另一組要發送的數據,那么轉到②,否則結束。
3.2 DSP程序
DSP程序是設計中重要的組成部分,主要分為 DSP和 USB轉換芯片之間的通訊以及 DSP和數據采集芯片 MAX1308之間的通信。當計算機每次下傳數據塊或 DSP上傳數據塊成功時, DSP的外部捕獲中斷CAP1就會收到CH372的中斷請求信號。當DSP接收到計算機傳輸過來的采樣命令后就啟動MAX1308進行數據采集,根據計算機要求設置采樣頻率和采樣通道數目,采樣完成后,將數據一并打包傳給計算機。
DSP和采集芯片的連接采用的是總線連接方式,進行數據采集時, DSP通過總線的 D0–D7寫配置寄存器可以激活相應通道。配置寄存器中的位直接映射到相應通道, D0控制通道 0,D7控制通道 7。把任意一位設為高電平,將激活相應的輸入通道;同樣,把任意一位設為低電平,將禁用相應通道。對少于 8通道的器件,其中幾位沒有任何功能。寫配置寄存器時,將 CS和 WR設為低電平,然后將 D0– D7位裝載到并行總線,再將 WR置為高電平。數據在 WR的上升沿鎖存。在轉換時序的任意時刻都能夠對配置寄存器進行寫操作。上電時,在啟動轉換之前寫入配置寄存器,以選擇有效通道。
內部時鐘模式下啟動一次轉換,需在采樣時間內將 CONVST置為低電平。當 CONVST為低電平時, T/H捕獲信號,在 CONVST的上升沿轉換開始。一旦能夠讀取轉換結果,轉換結束信號 (EOC)將給出一個低電平脈沖。當最后一個通道的轉換結果可以被讀取時,最后轉換結束信號(EOLC)跳變到低電平。
在 EOLC的下降沿, DSP將 CS和 RD置為低電平,把第一個轉換結果置于并行總線。 RD連續的低電平脈沖將轉換結果順次放到總線上。時序中最后一個轉換結果讀取后,額外的讀脈沖可以使指針重新指向第一個轉換結果。
3.3計算機應用程序
計算機應用程序主要完成數據的人機交互功能,用戶通過應用程序配置監測系統、控制數據采集的過程和顯示采集的數據。
4 結論
本系統采用 DSP和 MAX125進行數據采集,通過 USB進行數據傳輸。對單路的數據采集,可以實現 800kSPS的實時數據傳輸,8路同步采集可以實現 400kSPS的實時數據傳輸。該系統的使用方法簡便、快捷、實時監測性好,可擴展性良好,抗干擾能力強。適當地改進硬件電路和程序就可以對更多采集點進行采集和監測。基于 USB和單總線的便攜式監測,必將被眾多領域廣泛應用。
責任編輯:gt
評論
查看更多