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