基于DSP和ADS8364的高速數據采集處理系統設計
隨著(zhù)現代科學(xué)技術(shù)的發(fā)展和計算機技術(shù)的普及,高速數據采集系統已應用于越來(lái)越多的場(chǎng)合,如通信、雷達、生物醫學(xué)、機器人、語(yǔ)音和圖像處理等領(lǐng)域。本文介紹的數據采集處理系統采用CPLD控制ADS8364完成數據的A/D轉換,轉換后的數據預先存儲到FIFO中,再經(jīng)DSP進(jìn)行前端的數字信號處理后,通過(guò)USB總線(xiàn)傳給上位機,并在上位機上進(jìn)行存儲、顯示和分析等。該系統完全可以滿(mǎn)足信號采集處理對高精度及實(shí)時(shí)性的要求。
本文引用地址:http://dyxdggzs.com/article/257371.htm
1 系統原理
數據采集處理系統主要由前端信號調理電路、ADC芯片ADS8364、CPLD芯片EPM3128A、DSP芯片TMS320F2812、USB芯片CY7C68013及其外圍電路組成。系統原理框圖如圖l所示。
系統主要完成的任務(wù)為:DSP接收上位機通過(guò)USB總線(xiàn)發(fā)送的命令,完成系統工作參數的設置,并通過(guò)模擬地址/數據總線(xiàn)與CPLD進(jìn)行通信,向CPLD發(fā)送控制命令;對外部的多路模擬量輸入進(jìn)行信號調理,在CPLD控制下進(jìn)行單通道或多通道A/D轉換,將采集到的數據存儲在一片FIFO芯片中;當FIFO中存儲的數據半滿(mǎn)時(shí),對DSP產(chǎn)生一個(gè)中斷信號,DSP收到此中斷信號后,取出FIFO中的部分數據,進(jìn)行前端數字信號處理,將處理完畢的數據通過(guò)USB總線(xiàn)傳給上位機;上位機實(shí)現各種圖形界面操作和后端信號處理,對所采集的信號進(jìn)行分析。系統可對輸入的多路模擬信號進(jìn)行同步采樣,這就使得采集到的數據不僅含有模擬信號的幅度特性,同時(shí)還保持不同模擬信號之間的相位差異;采樣頻率可以預置,以適應不同速率的采樣要求。
2 系統硬件
系統硬件包括信號調理模塊、A/D轉換模塊、DSP處理器模塊、CPLD邏輯控制模塊以及USB通信模塊。
2.1 信號調理模塊的設計
外部的多路模擬量輸入信號往往是微弱的傳感器信號,信號的幅值較小,為了方便且不失一般性,假定其幅值范圍為O~25mV。ADS8364待轉換的模擬輸入電壓范圍應保持在A(yíng)GND-0.3V和AVDD+O.3V之間。這里選用低功率變增益儀表放大器INAl29對模擬量輸入信號進(jìn)行調理放大,將其放大為0~5V之間。
INAl29是BURR-BROWM公司的一種小功率通用儀表放大器,具有優(yōu)異的精度和很寬的帶寬,在增益高達100時(shí),帶寬達200kHz。它可用單一外部電阻器調節其增益,調節范圍為l~10000,其放大倍數計算公式為:
從而使放大輸出電壓在O~5V之間。信號調理模塊原理圖如圖2所示。
2.2 A/D轉換模塊的設計
該模塊采用了TI公司的高速、低功耗、六通道同步采樣模/教轉換器ADS8364,它采用+5V工作電壓,其6個(gè)模擬輸入通道分為三組(A,B和C),每組都有一個(gè)ADCs保持信號(HOLDA,HOLDB和HOLDC),用來(lái)啟動(dòng)各組的AID轉換,6個(gè)通道可以進(jìn)行同步并行采樣和轉換。ADS8364采用具有80dB共模抑制能力的全差分輸入通道,將其REFin和REFout引腳接到一起,為差分電路提供2.5V的參考電壓。這里模擬量采用單端輸入,將-IN端接共模電壓2.5V,+IN端接前端信號調理模塊的輸出。
ADS8364的時(shí)鐘信號由外部提供,最高頻率為5MHz,對應的采樣頻率是250kHz。這里由CPLD提供時(shí)鐘信號,主要是考慮到CPLD可以靈活地改變時(shí)鐘頻率,進(jìn)而改變系統的采樣頻率。A/D轉換完成后產(chǎn)生轉換結束信號EOC。將ADS8364的。BYTE引腳接低電平,使轉換結果以16位的方式輸出。地址/模式信號(A0,Al,A2)決定ADS8364的數據讀取方式,可以選擇的方式包括單通道、周期或FIFO模式。將ADD引腳置為高電平,使得讀出的數據中包含轉換通道信息??紤]到數據采集處理系統的采樣頻率一般較高,如果用DSP直接控制ADS8364的訪(fǎng)問(wèn),將占用DSP較多的資源,同時(shí)對DSP的實(shí)時(shí)性要求也較高。因此在本系統設計中,用CPLD實(shí)現ADS8364的接口控制電路,并將轉換結果存儲在FIFO芯片中,用DSP實(shí)現FIFO芯片的輸出接口。
DSP、CPLD、ADS8364及FIFO之間的接口設計如圖3所示。
2.3 DSP處理器模塊的設計
DSP主要負責與USB通信模塊交換數據、以模擬地址/數據總線(xiàn)的方式與CPLD通信,實(shí)現對數據采集的控制,完成與FIFO芯片的輸出接口以及對采樣后的數據進(jìn)行前端數字信號處理(FIR低通濾波)。這里選用TI公司的32位定點(diǎn)DSP TMS320F2812 (以下簡(jiǎn)稱(chēng)F2812),它采用1.8V的內核電壓,具有3.3V的外圍接口電壓,最高頻率150MHz,片內有18K字的RAM,128K字的高速Flash。
2.4 CPLD邏輯控制模塊的設計
在該數據采集處理系統中,CPLD是一個(gè)重要的組成部分。由CPLD組成的邏輯控制模塊接收DSP傳送過(guò)來(lái)的動(dòng)作命令,控制A/D轉換模塊進(jìn)行數據采集,并提供對FIFO的接口時(shí)序,實(shí)現轉換數據的存儲。這里選用Altem公司的EPM3128A芯片,它共有128個(gè)宏單元,2500個(gè)可用門(mén)。
CPLD作為一個(gè)單獨的控制執行結構.通過(guò)編寫(xiě)相應的Verilog HDL代碼,即可生成相應的操作電路,實(shí)現對各種輸入信號的鎖存、判斷和處理以及對各種命令信號的執行和輸出信號的控制。
2.5 USB通信模塊的設計
這里選用CYPRESS公司的EZ-USB FX2系列中的CY7C68013作為USB通信控制器芯片,它內含增強型8051微控制器,支持USB2.0傳輸協(xié)議,同時(shí)也向下兼容USBl.1規范。該芯片把USB2.0收發(fā)器、SIE(串行接口引擎)、增強型8051微控制器、I2C總線(xiàn)接口以及GPIF(通用可編程接口)集成于一體。CY7C68013提供了SlaveFIFO和GPIF兩種接口模式,Slave FIFO模式是從機模式,外部控制器可以像對普通FIFO存儲器一樣對FX2的多層緩沖FIFO存儲器進(jìn)行讀寫(xiě);GPIF模式是主機模式,可以由軟件設置讀寫(xiě)的控制波形,靈活性很大。這里采用的是Slave FIFO模式。
3 系統軟件設計
系統軟件設計包括DSP程序設計、USB固件程序設計、USB驅動(dòng)程序設計和上位機應用程序設計。
3.1 DSP程序設計
DSP編程的主要任務(wù)是初始化、管理板上的資源和實(shí)現前端數字信號處理的算法。這里以TI公司提供的功能強大的CCS(Code Composer Studio)為集成開(kāi)發(fā)環(huán)境。系統上電復位后。首先完成F2812自身的初始化,包括配置RAM塊,設置I/O模式、定時(shí)器模式、中斷等;然后程序進(jìn)人循環(huán)狀態(tài),等待USB及FIFO的中斷。F2812主程序流程圖如圖4所示。
在F2812的程序存儲器中存儲常用的數字信號處理算法,F2812在收到上位機通過(guò)USB總線(xiàn)發(fā)送的控制信息后,在中斷函數中選擇某種處理算法,同時(shí)向CPLD發(fā)出動(dòng)作命令,控制A/D轉換模塊完成信號的采集并將采集到的數據存入FIFO中。當FIFO中數據達到半滿(mǎn)時(shí),向F2812提出中斷申請,F2812響應此中斷,在中斷函數中實(shí)現對部分采樣數據的讀取,在主循環(huán)程序中根據上位機選定的處理算法完成數據的前端處理,然后將數據打包,通過(guò)USB總線(xiàn)傳輸給上位機。對于常用的數字信號處理算法在DSP上的實(shí)現,這里不再贅述。
3.2 USB固件程序設計
固件負責輔助硬件讓設備雙向交換數據,其主要功能是:接收并處理USB驅動(dòng)程序的請求及應用程序的控制指令。CYPRESS公司針對EZ-USB FX2系列芯片給出了一個(gè)Firmware庫和Firmware框架(Frame Works),均采用Kei C5l開(kāi)發(fā)。Firmware庫提供了一些常量、數據結構、宏定義、函數來(lái)簡(jiǎn)化用戶(hù)對芯片的使用。用戶(hù)只需要在源程序中包含進(jìn)fx2.h、fx2regs.h和fx2sdly.h,并且把Ezusb.1ib和UsBJmpTB.obj添加進(jìn)項目即可。Firmware框架實(shí)現了初始化芯片、處理USB標準設備請求以及掛起狀態(tài)下的電源管理等功能。該框架無(wú)需添加任何代碼,將編譯后產(chǎn)生的*.hex文件載入芯片就能與主機進(jìn)行基本的USB通信,只是不能完成特定的任務(wù)。在本系統中,需要選擇適當的傳輸方式,添加需要使用的端點(diǎn)(Endpoint),在框架預留的地方(如TD_Init()、TD_Poll()等函數中)添加初始化代碼和完成特定功能的代碼。
USB共有四種數據傳輸方式:控制傳輸、中斷傳輸、塊傳輸及同步傳輸,本系統中使用了控制傳輸和塊傳輸??刂苽鬏斨饕脕?lái)完成主機對設備的各種控制操作,即用來(lái)實(shí)現位于主機上的USB總線(xiàn)驅動(dòng)程序以及編寫(xiě)的功能驅動(dòng)程序對設備的各種控制操作;塊傳輸主要用來(lái)完成主機和設備間的大批量數據傳輸以及對傳輸的數據進(jìn)行錯誤檢測(支持“錯誤重傳”功能)。
3.3 USB驅動(dòng)程序設計
CYPRESS FX2開(kāi)發(fā)包中提供了一個(gè)通用的設備驅動(dòng)程序Ezusb.sys,可用于基于EZ-USB FX2系列的芯片,能夠完成基本的USB通信任務(wù)。本系統設計中,利用DDK對上述驅動(dòng)程序進(jìn)行了修改,將不常用的函數刪除,同時(shí)添加了自己定義的函數。
3.4 上位機應用程序設計
上位機應用程序主要實(shí)現與數據采集處理系統間的USB通信、向系統發(fā)送控制命令以及接收系統傳送過(guò)來(lái)的數據并進(jìn)行存儲、處理與顯示。在Win32系統中,各個(gè)設備被抽象為文件,應用程序通過(guò)文件操作API函數實(shí)現與驅動(dòng)程序中某個(gè)設備的通信。USB通信常用的API函數有;CreateFile(),WriteFile(),ReadFile(),DeviceloControl(),CloseFile()等。在應用程序中,只需將上述函數添加到相應的功能模塊中便可完成應用程序對USB設備的打開(kāi)、讀、寫(xiě)等操作,從而實(shí)現兩者的通信。采用LabVIEW語(yǔ)言實(shí)現USB通信及儀器界面,而對于后端的信號處理算法則在VC++環(huán)境下實(shí)現并生成動(dòng)態(tài)鏈接庫文件(*.d11),方便LabVIEW的調用。圖5為上位機上層應用程序的流程圖。
本文將TMS320F2812與ADS8364相結合,設計了一套數據采集處理系統。該系統采用uSB總線(xiàn)與上位機通信,充分發(fā)揮了USB2.O方便、快捷的優(yōu)點(diǎn);考慮到對實(shí)時(shí)性的要求,將某些特定的數字信號處理算法(如FIR濾波、快速FFT等)放到數據采集處理卡上由DSP快速完成。該系統采集精度高,速度快,并可同時(shí)采集多路信號。實(shí)踐證明,該數據采集處理系統可適用于高精度、實(shí)時(shí)性信號的數據采集和處理,具有廣泛的實(shí)用價(jià)值。
評論