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