基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的設計
目前,在數(shù)據(jù)采集系統(tǒng)的硬件設計方案中,有采用通用單片機和USB相結合的方案,也有采用DSP和USB相結合的方案,前者雖然硬件成本低,但是時鐘頻率較低,難以滿足數(shù)據(jù)采集系統(tǒng)對速度要求;后者雖然可以實現(xiàn)高速傳輸,但DSP價格過于昂貴。而利用FPGA和USB接口芯片結合的方案,具有功耗低、時鐘頻率高、速度快、效率高、組合形式靈活等特點,是單片機和DSP所無法比擬的。
系統(tǒng)總體方案
根據(jù)本系統(tǒng)要實現(xiàn)的功能,該系統(tǒng)硬件部分采用“信號調理電路+A/D轉換電路+FPGA+USB 2.0接口芯片”的模式加以設計。系統(tǒng)采用可編程邏輯器件FPGA控制信號調理電路的工作,同時控制A/D轉換器采樣,這樣通過硬件描述語言來描述可以使硬件設計如同軟件一樣靈活,并且FPGA可重復編程的特性提高了工作效率和設計的靈活性。另外系統(tǒng)所需的高速緩存FIFO是由USB 2.0接口芯片的片內資源來實現(xiàn)的,這樣做可以降低系統(tǒng)成本、提高系統(tǒng)可靠性。USB 2.0接口芯片的固件程序由集成在芯片內的增強型8051單片機進行控制,固件程序存放在主機上,在系統(tǒng)上電后通過上位機驅動程序下載到芯片內部的RAM內。系統(tǒng)的總體方案如圖1所示。
圖1 數(shù)據(jù)采集系統(tǒng)結構圖
整個硬件電路的工作流程是:當上位機發(fā)來數(shù)據(jù)采集請求,F(xiàn)PGA就開始啟動對信號調理模塊和A/D采樣控制模塊的控制。經(jīng)過A/D轉換后的數(shù)據(jù)按照一定的時序發(fā)送到USB 2.0接口芯片的端口FIFO里面,然后再把數(shù)據(jù)通過USB總線傳輸給上位機。
系統(tǒng)硬件設計與實現(xiàn)
本數(shù)據(jù)采集系統(tǒng)的硬件設計主要是基于USB 2.0的硬件數(shù)據(jù)采集卡的設計。此采集卡的作用是首先用A/D轉換器對輸入的電路實驗數(shù)據(jù)進行采樣量化,然后將采樣得到的數(shù)據(jù)通過USB 2.0總線傳送到上位機,以便進行后續(xù)處理。
主控芯片簡介
Altera公司的Cyclone II FPGA是基于Stratix II的90nm工藝推出的低成本FPGA,由于增加了DSP硬件塊,在芯片總體性能上要優(yōu)于Cyclone系列器件,而在成本上卻仍維持Cyclone系列低成本的優(yōu)點。本設計選用了Cyclone II系列中的EP2C5Q208芯片,其邏輯單元有4608個,M4K RAM有26個,鎖相環(huán)有2個、乘法器模塊有13個,最大用戶可用I/O引腳為142個,可以滿足本設計的需要。圖2為EP2C5Q208的外圍連接電路框圖。
圖2 主控芯片連接框圖
電源電路
設計電源電路之前,首先對系統(tǒng)中各器件所需電源的需求情況進行分析,電源電路需要提供5種直流電壓才能滿足系統(tǒng)對電源的需求:FPGA的供電電壓是3.3V和1.2V;信號調理電路電壓為+12V和-12V;A/D轉換器ADC0809所需要的電壓為5V;USB 2.0接口芯片CY7C68013需要3.3V供電。而系統(tǒng)只有USB總線能提供+5V電壓,因此需使用開關電源進行電壓轉換。電壓轉換電路如圖3所示。
圖3 電源電路
信號調理電路
信號調理電路的作用是對微弱的輸入信號進行適當?shù)恼{理,使其電壓范圍在0~5V之間,從而滿足A/D轉換芯片的輸入電壓的要求。本調理電路中采用了運算放大器芯片AD827。該芯片最高帶寬為50MHz,芯片內部集成2片運放,分別用來進行信號的放大平移和衰減。信號調理電路如圖4所示。
圖4 信號調理電路圖中左半部分為第一個環(huán)節(jié),這個環(huán)節(jié)輸入電壓V1,輸出電壓為V2,對于微弱的輸入信號,可以經(jīng)過調理達到正常電平范圍之內。右半部分為第二個環(huán)節(jié),這個環(huán)節(jié)是信號的衰減環(huán)節(jié),若第一個環(huán)節(jié)得到的電壓幅值較大,超過了0~5V的電壓范圍,則可以將此信號在第二個環(huán)節(jié)進行衰減。第二個環(huán)節(jié)的最大增益為1,通過調節(jié)電位器,可以使信號最小衰減為0。這樣,信號經(jīng)過信號調理電路之后,就可以滿足A/D采樣的要求了。
A/D采樣電路
經(jīng)過調理后的模擬信號需要經(jīng)A/D轉換芯片進行采樣、量化、編碼,然后將編碼后的數(shù)據(jù)經(jīng)過USB 2.0接口芯片傳送至USB主機,A/D采樣電路是整個數(shù)據(jù)采集電路的關鍵部分。本設計所使用的A/D采樣芯片是ADC0809轉換芯片,它是通過采樣逐次逼近的方法完成A/D轉換的。ADC0809由單一+5V電源供電,片內帶有鎖存功能的8路模擬多路開關,可以對8路0~5V的模擬信號分時進行轉換。A/D轉化器電路的連接如圖5所示,其中,參考電壓VREF+接+5V,VREF-接地,輸入模擬電壓范圍為0~5V。
圖5 A/D采樣電路
圖6 從屬FIFO模式連接框圖
USB 2.0接口電路
Cypress公司的EZ-USB FX2系列芯片是世界上第一個集成了USB 2.0協(xié)議的微處理器,它支持12Mb/s的全速傳輸和480Mb/s的高速傳輸,可使用4種USB傳輸方式。本系統(tǒng)采用EZ-USB FX2系列中CY7C68013-56PVC芯片。該芯片集成了USB 2.0收發(fā)器、串行接口引擎SIE(Serial Interface Engine)、8.5KB的RAM、4KB的FIFO存儲器、I/O口、通用可編程接口GPIF(General Programmable Interface)。
由于在EZ-USB FX2的內部嵌入了增強型的8051,所以一般的數(shù)據(jù)傳輸都可以通過8051來控制實現(xiàn),但是因為8051本身的工作頻率較低,限制了與外圍電路之間的數(shù)據(jù)傳輸速度的進一步提高。雖然這種限制在12Mb/s的全速模式下不是很明顯,但是當數(shù)據(jù)傳輸速度提升到高速時,8051將成為系統(tǒng)的帶寬瓶頸。為此,本設計選擇采用了從屬FIFO接口模式進行傳輸,這樣8051就不會參與數(shù)據(jù)的傳輸,但它可以通過FIFO或RAM的方式訪問所傳輸?shù)臄?shù)據(jù)。由于篇幅限制,在此只給出其連接框圖。
系統(tǒng)軟件設計
本系統(tǒng)軟件的設計主要包括A/D轉換控制程序、USB設備固件程序(Firmware)、主機USB設備驅動程序、主機端應用程序和遠程客戶端應用程序幾個模塊。系統(tǒng)的軟件構成框圖如圖7所示。
圖7 系統(tǒng)軟件設計框圖
A/D轉換控制程序主要是控制A/D轉換芯片的工作時序,然后把轉換完成后的數(shù)字信號發(fā)送到FPGA內部。本設計的該程序部分是在可編程邏輯器件FPGA中實現(xiàn)的。
芯片CY7C68013的固件程序負責處理PC機發(fā)來的各種USB請求,以完成主機和外圍電路之間的數(shù)據(jù)傳輸,例如,完成對接口芯片的I/O端口和存儲單元的初始化;設置CPU時鐘頻率,配置相應端點的工作狀態(tài);初始化工作模式和數(shù)據(jù)傳輸方式;響應各種主機發(fā)送來的請求等。
設備驅動程序的主要功能是使Win32應用程序能夠正確訪問本采集電路的硬件設備。本系統(tǒng)設計的設備驅動程序是以Microsoft的設備驅動開發(fā)包DDK(Device Driver Kit)為開發(fā)工具,以微軟驅動模型WDM(Windows Driver Model)的形式編寫的。應用程序通過API函數(shù)發(fā)出相應命令以后,設備驅動程序以I/O請求包IRP(I/O Request Packets)的形式封裝該命令,并把它傳遞給底層的總線驅動程序USBD(Universal Serial Bus Driver),從而達到與硬件設備進行通信的目的,最后總線驅動程序給上層驅動程序返回一個狀態(tài)信號來告知本次通信是否成功完成。
主機端應用程序的主要功能是接收硬件設備發(fā)送的數(shù)據(jù),并且把采集到的數(shù)據(jù)進行顯示和存儲。
結論
本文主要完成了一種高速數(shù)據(jù)采集系統(tǒng)的設計,該數(shù)據(jù)采集系統(tǒng)利用高性能FPGA、高速A/D轉換器、高速USB 2.0接口芯片,是一種具有高速USB接口的外置式數(shù)據(jù)采集卡,信號的處理都是在PC機上完成的,這樣不僅縮小了電路體積,提高了系統(tǒng)的穩(wěn)定性,而且節(jié)約了系統(tǒng)成本。