文獻標識碼: B
文章編號: 0258-7998(2013)06-0118-03
近年來,數(shù)據(jù)采集和處理技術(shù)得到飛速發(fā)展,在醫(yī)療、通信、化工、雷達等領(lǐng)域應(yīng)用廣泛[1]。早期采集數(shù)據(jù)主要是利用單片機作為主控制器,控制模/數(shù)轉(zhuǎn)換器等外圍電路。隨著需求的增長,這種設(shè)計模式已不能滿足人們的需求,因此必須使用速度更快、性能更強的器件作為控制器。綜合考慮價格和性能,本設(shè)計采用可編程邏輯器件(FPGA)和單片機(MCU)聯(lián)合控制,只需一塊常用的MCU加上一塊FPGA芯片就能完成高速的數(shù)據(jù)采集任務(wù),同時FPGA還能完成其他邏輯功能[2]。
通用串行總線USB具有支持熱拔插、傳輸速率高、占用資源少等優(yōu)點,適合數(shù)據(jù)傳輸。但USB協(xié)議復(fù)雜,編寫驅(qū)動費時,開發(fā)周期較長。FT245BM成功實現(xiàn)了USB和并行I/O的轉(zhuǎn)換,避開了固件設(shè)計和驅(qū)動的編寫,大幅縮短了開發(fā)時間,成為開發(fā)USB外圍設(shè)備的理想選擇[3]。利用FT245BM和FPGA實現(xiàn)數(shù)據(jù)采集和傳輸,可有效降低開發(fā)難度,縮短開發(fā)周期。
1 系統(tǒng)總體結(jié)構(gòu)
數(shù)據(jù)采集系統(tǒng)主要完成兩大功能:數(shù)據(jù)的采集和傳輸。系統(tǒng)利用外置手柄電極陣列采集64路模擬信號,通過FPGA控制可編程增益放大器放大采集的模擬信號,通過A/D轉(zhuǎn)換后由USB總線傳輸給PC機處理。本系統(tǒng)控制部分采用Altera公司的Cyclone系列FPGA EP1C6Q240C8芯片以及Philips公司的P89LV51單片機完成控制功能??傮w結(jié)構(gòu)如圖1所示。系統(tǒng)工作時,MCU通過串口接收PC機發(fā)送的采集命令,然后將命令打包發(fā)送給FPGA,控制FPGA芯片采集數(shù)據(jù)并將數(shù)據(jù)暫存到SRAM中[4],F(xiàn)PGA通過識別FT245BM的寫數(shù)據(jù)命令,將SRAM中的數(shù)據(jù)送給PC機進行處理。此設(shè)計方案簡化了USB通信,只需完成單向數(shù)據(jù)傳輸,降低了系統(tǒng)的開發(fā)難度,增加了系統(tǒng)的穩(wěn)定性。
2 系統(tǒng)的硬件設(shè)計
2.1數(shù)據(jù)采集電路的設(shè)計
鑒于系統(tǒng)精度、速度和成本,采用ADI公司的AD9238芯片。該芯片采用3.3 V供電,速度為可選20 MS/s、40 MS/s和65 MS/s。其內(nèi)部含有兩路A/D轉(zhuǎn)換器及信號保持器,可提供與單通道A/D轉(zhuǎn)換器同樣優(yōu)異的動態(tài)性能,而且比使用2個單通道A/D轉(zhuǎn)換器具有更好的抗串?dāng)_性能。模擬信號為差分輸入,轉(zhuǎn)換數(shù)字信號為并行輸出。
考慮到被測信號頻率最高為1 MHz,系統(tǒng)只需采用20 MS/s的采樣頻率即可,此時功耗約為180 mW,符合低功耗設(shè)計要求。采樣時鐘由FPGA內(nèi)部的50 MHz時鐘分頻得到。采集電路采集的信號主要為通過手柄采集64路模擬信號和基準參考信號,頻率在100 Hz~1 MHz范圍之間,電流值小0.5 mA。數(shù)據(jù)采集電路設(shè)計圖如圖2所示。
2.2 數(shù)據(jù)傳輸電路設(shè)計
本系統(tǒng)采用的FT245BM模塊是英國FTDI公司的一種快速USB通信接口,可以支持USB1.1/2.0規(guī)范,傳輸速率最大可達1 MB/s。該芯片功能強大,無需編寫片內(nèi)固件程序,能夠?qū)崿F(xiàn)USB協(xié)議與并行I/O協(xié)議之間的轉(zhuǎn)換,芯片自動完成中間的轉(zhuǎn)換工作。
FT245BM內(nèi)部主要由USB收發(fā)器、串口接口引擎(SIE)、USB協(xié)議引擎和FIFO控制器等構(gòu)成。片內(nèi)含有2個FIFO數(shù)據(jù)緩沖區(qū):1個128 B的接收緩沖區(qū)和1個384 B的發(fā)送緩沖區(qū)[5]。FT245BM還包括1個內(nèi)置3.3 V穩(wěn)壓器,1個6 MHz振蕩器,8倍頻的時鐘倍頻器和USB內(nèi)部鎖相環(huán)。主要通過讀寫控制線(RDP、WR、TXE、RXF)和8根數(shù)據(jù)線D0~D7來完成與FPGA的通信。FT245BM的電路設(shè)計如圖3所示。系統(tǒng)通過幀頭來識別各個狀態(tài)命令,數(shù)據(jù)傳輸格式為“幀頭+控制命令+幀尾”。
2.3 FPGA選擇
本系統(tǒng)的FPGA芯片采用Altera公司Cyclone系列的EP1C6Q240C8。它采用0.13 μm,全銅SRAM工藝,工作電壓為1.5 V;內(nèi)部有2個鎖相環(huán),5 980個LE單元,20個M4K型RAM塊,總RAM容量達到92 160 bit,240個管腳,其中包括185個最大可用I/O口(I/O口可自由定義)。該芯片電路設(shè)計簡單方便,編程靈活,不易受外部干擾。配合使用Altera公司的Quartus II軟件開發(fā)平臺,可以很容易地進行程序設(shè)計,有效減少了開發(fā)周期。
3 系統(tǒng)軟件設(shè)計
3.1 主控制模塊程序設(shè)計
主控模塊由FPGA和MCU構(gòu)成,其中MCU采用C語言編程,F(xiàn)PGA采用Verilog HDL語言編程。主控模塊負責(zé)放大被測信號、采集信號和數(shù)據(jù)傳輸,本文主要討論采集數(shù)據(jù)部分。
此設(shè)計簡化了USB通信,F(xiàn)T245BM在本系統(tǒng)中只需將數(shù)據(jù)發(fā)送到PC機,不用進行讀操作。FT245BM寫時序如圖4所示,當(dāng)數(shù)據(jù)滿足發(fā)送條件(當(dāng)前沒有數(shù)據(jù)發(fā)送且發(fā)送FIFO未滿),TXE#置為低電平,控制器檢測到TXE#為低時,放入數(shù)據(jù)。當(dāng)WR輸出一個下降沿時,可將數(shù)據(jù)寫入發(fā)送FIFO[6]。
3.2 軟件編程
FT245BM和上層PC機通信時,需要在PC機上安裝驅(qū)動。FTDI公司提供了VCP、D2XX(動態(tài)鏈接庫)兩種驅(qū)動模式。前一種是將USB接口虛擬為串行通信口,在PC上的編程和實現(xiàn)串口編程完全一樣;后一種提供了一個動態(tài)鏈接庫(FTD2XX.DLL),內(nèi)部包含了一套函數(shù),使用該驅(qū)動傳輸速率可達到1 MB/s[7]。
根據(jù)FTDI公司的資料,前一種驅(qū)動的數(shù)據(jù)傳輸速率最高為300 kb/s,達不到高速處理數(shù)據(jù)的要求,因此本文選擇利用D2XX來設(shè)計。應(yīng)用程序通過FTD2XX.DLL、FTD2XX.SYS、Windows USB Driver Stack來實現(xiàn)對FT245BM的讀寫。上位機軟件采用Delphi7來設(shè)計,該軟件具有開發(fā)周期短、易于調(diào)試的優(yōu)點。通過調(diào)用FTD2XX.DLL中的函數(shù),可完成對USB接口設(shè)備的讀寫。
4 調(diào)試與小結(jié)
目前該數(shù)據(jù)采集系統(tǒng)已成功應(yīng)用于乳腺電阻抗掃描成像系統(tǒng)。圖5即為該系統(tǒng)的上位機測試界面第1幀第64電極的測量曲線圖,其中,參考信號表示原輸入激勵信號,電極信號為通過人體后采集到的信號。從圖中可看出當(dāng)輸入的激勵信號為1 kHz時,測量得到的參考信號以及電極信號僅幅度不同,相位沒有明顯失真,頻率和曲線變化趨勢一致,表明該系統(tǒng)采集得到的數(shù)據(jù)準確,具有較高的準確性,符合設(shè)計要求。同時系統(tǒng)簡化了USB通信,有效降低了軟件交互的次數(shù)和軟件編寫的繁瑣程度,節(jié)省了硬件資源,提高了效率。
參考文獻
[1] 石波涌,應(yīng)文威,蔣宇中.基于FT245BM的數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)[J].艦船電子工程,2010(12):125-129.
[2] 李娜,孟令軍.用FT245BM實現(xiàn)FPGA與PC機的數(shù)據(jù)無縫傳輸[J].重慶工學(xué)院學(xué)報(自然科學(xué)),2009,23(5):80-83.
[3] 蔡江洪,史小軍,朱為,等. 利用FT245BM實現(xiàn)FPGA與PC機的USB通訊[J].電子器件,2005,28(1):132-134.
[4] 王德勝,康令州.基于FPGA的實時圖像采集與預(yù)處理[J].電視技術(shù),2011,35(3):32-35.
[5] 徐鋒. 基于FT245BM的快速USB接口的實現(xiàn)[J].電子工程師,2007(3):59-61.
[6] 刁兆奎,張鵬飛,熊繼軍,等.基于FT245BM的數(shù)據(jù)采集系統(tǒng)設(shè)計[J].測試技術(shù)學(xué)報,2011,25(2):163-167.
[7] 林秀珍,梁志強. 通用串行總線USB及其應(yīng)用[J]. 現(xiàn)代電子技術(shù),2003(7):88-91.