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