點(diǎn)擊上方藍(lán)字關(guān)注我們
目前,在數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì)方案中,有采用通用單片機(jī)和USB相結(jié)合的方案,也有采用DSP和USB相結(jié)合的方案,前者雖然硬件成本低,但是時鐘頻率較低,難以滿足數(shù)據(jù)采集系統(tǒng)對速度要求;后者雖然可以實(shí)現(xiàn)高速傳輸,但DSP價格過于昂貴。而利用FPGA和USB接口芯片結(jié)合的方案,具有功耗低、時鐘頻率高、速度快、效率高、組合形式靈活等特點(diǎn),是單片機(jī)和DSP所無法比擬的。
系統(tǒng)總體方案
根據(jù)本系統(tǒng)要實(shí)現(xiàn)的功能,該系統(tǒng)硬件部分采用“信號調(diào)理電路+A/D轉(zhuǎn)換電路+FPGA+USB 2.0接口芯片”的模式加以設(shè)計(jì)。系統(tǒng)采用可編程邏輯器件FPGA控制信號調(diào)理電路的工作,同時控制A/D轉(zhuǎn)換器采樣,這樣通過硬件描述語言來描述可以使硬件設(shè)計(jì)如同軟件一樣靈活,并且FPGA可重復(fù)編程的特性提高了工作效率和設(shè)計(jì)的靈活性。另外系統(tǒng)所需的高速緩存FIFO是由USB 2.0接口芯片的片內(nèi)資源來實(shí)現(xiàn)的,這樣做可以降低系統(tǒng)成本、提高系統(tǒng)可靠性。USB 2.0接口芯片的固件程序由集成在芯片內(nèi)的增強(qiáng)型8051單片機(jī)進(jìn)行控制,固件程序存放在主機(jī)上,在系統(tǒng)上電后通過上位機(jī)驅(qū)動程序下載到芯片內(nèi)部的RAM內(nèi)。系統(tǒng)的總體方案如圖1所示。
圖1 數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)圖
整個硬件電路的工作流程是:當(dāng)上位機(jī)發(fā)來數(shù)據(jù)采集請求,F(xiàn)PGA就開始啟動對信號調(diào)理模塊和A/D采樣控制模塊的控制。經(jīng)過A/D轉(zhuǎn)換后的數(shù)據(jù)按照一定的時序發(fā)送到USB 2.0接口芯片的端口FIFO里面,然后再把數(shù)據(jù)通過USB總線傳輸給上位機(jī)。
系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)
本數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì)主要是基于USB 2.0的硬件數(shù)據(jù)采集卡的設(shè)計(jì)。此采集卡的作用是首先用A/D轉(zhuǎn)換器對輸入的電路實(shí)驗(yàn)數(shù)據(jù)進(jìn)行采樣量化,然后將采樣得到的數(shù)據(jù)通過USB 2.0總線傳送到上位機(jī),以便進(jìn)行后續(xù)處理。
主控芯片簡介
Altera公司的Cyclone II FPGA是基于Stratix II的90nm工藝推出的低成本FPGA,由于增加了DSP硬件塊,在芯片總體性能上要優(yōu)于Cyclone系列器件,而在成本上卻仍維持Cyclone系列低成本的優(yōu)點(diǎn)。本設(shè)計(jì)選用了Cyclone II系列中的EP2C5Q208芯片,其邏輯單元有4608個,M4K RAM有26個,鎖相環(huán)有2個、乘法器模塊有13個,最大用戶可用I/O引腳為142個,可以滿足本設(shè)計(jì)的需要。圖2為EP2C5Q208的外圍連接電路框圖。
圖2 主控芯片連接框圖
設(shè)計(jì)電源電路之前,首先對系統(tǒng)中各器件所需電源的需求情況進(jìn)行分析,電源電路需要提供5種直流電壓才能滿足系統(tǒng)對電源的需求:FPGA的供電電壓是3.3V和1.2V;信號調(diào)理電路電壓為+12V和-12V;A/D轉(zhuǎn)換器ADC0809所需要的電壓為5V;USB 2.0接口芯片CY7C68013需要3.3V供電。而系統(tǒng)只有USB總線能提供+5V電壓,因此需使用開關(guān)電源進(jìn)行電壓轉(zhuǎn)換。電壓轉(zhuǎn)換電路如圖3所示。
圖3 電源電路
信號調(diào)理電路
信號調(diào)理電路的作用是對微弱的輸入信號進(jìn)行適當(dāng)?shù)恼{(diào)理,使其電壓范圍在0~5V之間,從而滿足A/D轉(zhuǎn)換芯片的輸入電壓的要求。本調(diào)理電路中采用了運(yùn)算放大器芯片AD827。該芯片最高帶寬為50MHz,芯片內(nèi)部集成2片運(yùn)放,分別用來進(jìn)行信號的放大平移和衰減。信號調(diào)理電路如圖4所示。
圖4 信號調(diào)理電路
圖中左半部分為第一個環(huán)節(jié),這個環(huán)節(jié)輸入電壓V1,輸出電壓為V2,對于微弱的輸入信號,可以經(jīng)過調(diào)理達(dá)到正常電平范圍之內(nèi)。右半部分為第二個環(huán)節(jié),這個環(huán)節(jié)是信號的衰減環(huán)節(jié),若第一個環(huán)節(jié)得到的電壓幅值較大,超過了0~5V的電壓范圍,則可以將此信號在第二個環(huán)節(jié)進(jìn)行衰減。第二個環(huán)節(jié)的最大增益為1,通過調(diào)節(jié)電位器,可以使信號最小衰減為0。這樣,信號經(jīng)過信號調(diào)理電路之后,就可以滿足A/D采樣的要求了。
A/D采樣電路
經(jīng)過調(diào)理后的模擬信號需要經(jīng)A/D轉(zhuǎn)換芯片進(jìn)行采樣、量化、編碼,然后將編碼后的數(shù)據(jù)經(jīng)過USB 2.0接口芯片傳送至USB主機(jī),A/D采樣電路是整個數(shù)據(jù)采集電路的關(guān)鍵部分。本設(shè)計(jì)所使用的A/D采樣芯片是ADC0809轉(zhuǎn)換芯片,它是通過采樣逐次逼近的方法完成A/D轉(zhuǎn)換的。ADC0809由單一+5V電源供電,片內(nèi)帶有鎖存功能的8路模擬多路開關(guān),可以對8路0~5V的模擬信號分時進(jìn)行轉(zhuǎn)換。A/D轉(zhuǎn)化器電路的連接如圖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的內(nèi)部嵌入了增強(qiáng)型的8051,所以一般的數(shù)據(jù)傳輸都可以通過8051來控制實(shí)現(xiàn),但是因?yàn)?051本身的工作頻率較低,限制了與外圍電路之間的數(shù)據(jù)傳輸速度的進(jìn)一步提高。雖然這種限制在12Mb/s的全速模式下不是很明顯,但是當(dāng)數(shù)據(jù)傳輸速度提升到高速時,8051將成為系統(tǒng)的帶寬瓶頸。為此,本設(shè)計(jì)選擇采用了從屬FIFO接口模式進(jìn)行傳輸,這樣8051就不會參與數(shù)據(jù)的傳輸,但它可以通過FIFO或RAM的方式訪問所傳輸?shù)臄?shù)據(jù)。由于篇幅限制,在此只給出其連接框圖。
系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件的設(shè)計(jì)主要包括A/D轉(zhuǎn)換控制程序、USB設(shè)備固件程序(Firmware)、主機(jī)USB設(shè)備驅(qū)動程序、主機(jī)端應(yīng)用程序和遠(yuǎn)程客戶端應(yīng)用程序幾個模塊。系統(tǒng)的軟件構(gòu)成框圖如圖7所示。
圖7 系統(tǒng)軟件設(shè)計(jì)框圖
A/D轉(zhuǎn)換控制程序主要是控制A/D轉(zhuǎn)換芯片的工作時序,然后把轉(zhuǎn)換完成后的數(shù)字信號發(fā)送到FPGA內(nèi)部。本設(shè)計(jì)的該程序部分是在可編程邏輯器件FPGA中實(shí)現(xiàn)的。
芯片CY7C68013的固件程序負(fù)責(zé)處理PC機(jī)發(fā)來的各種USB請求,以完成主機(jī)和外圍電路之間的數(shù)據(jù)傳輸,例如,完成對接口芯片的I/O端口和存儲單元的初始化;設(shè)置CPU時鐘頻率,配置相應(yīng)端點(diǎn)的工作狀態(tài);初始化工作模式和數(shù)據(jù)傳輸方式;響應(yīng)各種主機(jī)發(fā)送來的請求等。
設(shè)備驅(qū)動程序的主要功能是使Win32應(yīng)用程序能夠正確訪問本采集電路的硬件設(shè)備。本系統(tǒng)設(shè)計(jì)的設(shè)備驅(qū)動程序是以Microsoft的設(shè)備驅(qū)動開發(fā)包DDK(Device Driver Kit)為開發(fā)工具,以微軟驅(qū)動模型WDM(Windows Driver Model)的形式編寫的。應(yīng)用程序通過API函數(shù)發(fā)出相應(yīng)命令以后,設(shè)備驅(qū)動程序以I/O請求包IRP(I/O Request Packets)的形式封裝該命令,并把它傳遞給底層的總線驅(qū)動程序USBD(Universal Serial Bus Driver),從而達(dá)到與硬件設(shè)備進(jìn)行通信的目的,最后總線驅(qū)動程序給上層驅(qū)動程序返回一個狀態(tài)信號來告知本次通信是否成功完成。
主機(jī)端應(yīng)用程序的主要功能是接收硬件設(shè)備發(fā)送的數(shù)據(jù),并且把采集到的數(shù)據(jù)進(jìn)行顯示和存儲。
結(jié)論
本文主要完成了一種高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì),該數(shù)據(jù)采集系統(tǒng)利用高性能FPGA、高速A/D轉(zhuǎn)換器、高速USB 2.0接口芯片,是一種具有高速USB接口的外置式數(shù)據(jù)采集卡,信號的處理都是在PC機(jī)上完成的,這樣不僅縮小了電路體積,提高了系統(tǒng)的穩(wěn)定性,而且節(jié)約了系統(tǒng)成本。
有你想看的精彩 至芯科技FPGA就業(yè)培訓(xùn)班——助你步入成功之路、9月23號北京中心開課、歡迎咨詢! 利用FPGA設(shè)計(jì)基于LVDS的圖像數(shù)據(jù)采集傳輸系統(tǒng) 流水線ADC的內(nèi)部結(jié)構(gòu)和工作原理是什么
掃碼加微信邀請您加入FPGA學(xué)習(xí)交流群
歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點(diǎn)個在看你最好看
原文標(biāo)題:基于FPGA的高速數(shù)據(jù)采集系統(tǒng)該怎么設(shè)計(jì)?
文章出處:【微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603419
原文標(biāo)題:基于FPGA的高速數(shù)據(jù)采集系統(tǒng)該怎么設(shè)計(jì)?
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論