《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 基于FPGA的同步數(shù)據(jù)采集處理系統(tǒng)的設(shè)計與實現(xiàn)

基于FPGA的同步數(shù)據(jù)采集處理系統(tǒng)的設(shè)計與實現(xiàn)

2009-05-14
作者:韓西寧,, 許 暉,, 焦留芳

??? 摘? 要: 針對目前多通道數(shù)據(jù)采集系統(tǒng)的局限,以EP1K50系列的FPGA為核心控制模塊,, AD7656為模數(shù)轉(zhuǎn)化芯片實現(xiàn)了精度為16位,、最大采集速率為250 kS/s的同步模擬信號采集系統(tǒng),,采用Flash存儲采集到的數(shù)據(jù),且可以通過PC104總線將數(shù)據(jù)傳輸?shù)?a class="innerlink" href="http://forexkbc.com/tags/上位機" title="上位機" target="_blank">上位機,。給出了系統(tǒng)的電路設(shè)計,、關(guān)鍵模塊邏輯圖以及軟件流程圖。?

??? 關(guān)鍵詞: 同步數(shù)據(jù)采集,; AD7656,; 現(xiàn)場可編程門陣列

?

??? 數(shù)據(jù)采集系統(tǒng)是工業(yè)控制等測控系統(tǒng)中不可或缺的組成部分,,是影響測控系統(tǒng)精度等性能指標(biāo)的關(guān)鍵因素之一。常用數(shù)據(jù)采集方案是以微處理器為核心控制多個通道的信號采集,、預(yù)處理,、存儲和傳輸,即用軟件實現(xiàn)數(shù)據(jù)的采集,這在一定程度上限制了數(shù)據(jù)采集的速度、效率及時序控制的精確性,,同時一般的數(shù)據(jù)采集系統(tǒng)沒有數(shù)據(jù)處理模塊,,不便于在某些環(huán)境下工作。本文研究的數(shù)據(jù)采集系統(tǒng)應(yīng)用在某特定型號IC設(shè)備上,,系統(tǒng)要求完成對6路信號的高速高精度同步采集,,以滿足大約1h采集數(shù)據(jù)的存儲以及傳輸。鑒于FPGA功能強大,、邏輯速度快,、電路設(shè)計簡單、便于開發(fā)等優(yōu)點,,故采用FPGA為核心來控制ADC和Flash,。?

1系統(tǒng)總體設(shè)計?

??? 本文設(shè)計的數(shù)據(jù)采集處理系統(tǒng)可分為A/D轉(zhuǎn)換部分、數(shù)據(jù)存儲處理部分以及整個電路的控制部分,,如圖1所示,。其中控制部分為最重要的環(huán)節(jié)。?

?

?

??? 該系統(tǒng)可以實現(xiàn)數(shù)據(jù)的采集,、存儲以及傳輸功能,。系統(tǒng)通過PC104總線接到上位機時,上位機通過PC104總線給控制元件FPGA開始采集的命令,,F(xiàn)PGA先將Flash存儲器復(fù)位,,再給A/D轉(zhuǎn)換器開始采集數(shù)據(jù)的命令,可將最多6路的同步最大頻率不超過250 kS/s的信號進行A/D轉(zhuǎn)換,,采集到的數(shù)字信號經(jīng)過FPGA的處理后存儲到Flash存儲器中,。當(dāng)采集完成時,將存儲器內(nèi)的數(shù)據(jù)通過PC104總線傳輸?shù)缴衔粰C,,便于處理,、回訪和保存。整個采集,、存儲和傳輸過程由FPGA控制完成,。?

2 主要元器件?

??? 數(shù)據(jù)采集芯片采用ADI公司的AD7656, AD7656為6通道16-bit逐次逼近型,、低功耗,、最大采集速率為250 kS/s的A/D轉(zhuǎn)換芯片[1]。FPGA選用Altera公司的EP1K50系列[2],。存儲元件NAND Flash采用AMD公司的AM29LV256M,。?

3 電路設(shè)計方案?

??? 電路的設(shè)計方案包括FPGA外部電路的設(shè)計,、FPGA的內(nèi)部程序設(shè)計以及電路電源的設(shè)計等。FPGA的外部電路主要是與ADC,、Flash,、PC104總線的連接。?

3.1 電路整體設(shè)計圖?

??? AD7656在并行接口狀態(tài)下,,基于FPGA的外圍電路連接,,如圖2所示。?

?

?

??? 其中的DVCC和AVCC分別是數(shù)字電壓端和模擬電壓端,,它們在接入前要經(jīng)過1個如圖2所示的去耦電路,,每個供電電壓輸入引腳都要連接1個去耦電路,該電路由1只10 μF和1只100 nF的電容器組成,。VDD,、VSS和VDRIVE同樣要連接去耦電路。當(dāng)PC104總線提供的外部時鐘信號SYSCLK經(jīng)過分頻后加到AD7656和FPGA上,,在啟動數(shù)據(jù)采集之前,,先初始化。啟動6通道同步采集,,采集到的數(shù)據(jù)進入FPGA的FIFO緩存器,,經(jīng)過FPGA的處理。通過模擬的頻率,、寫控制信號等,將數(shù)據(jù)存入NOR Flash進行暫存,,當(dāng)PC104總線啟動讀命令時,,便可以將 Flash中的數(shù)據(jù)經(jīng)過FPGA讀入上位機內(nèi)。?

3.2 FPGA的設(shè)計?

??? EP1K50QC208是ACEX1K系列的FPGA,,可定義管腳124個,。FPGA采用全局頻率20 MHz,其需要定義的主要控制端口如表1所示,。 ?

?

?

??? FPGA的設(shè)計分全局控制和局部控制,。全局控制主要是FPGA接收來自PC104總線的各種信號,包括時鐘信號,、讀寫信號等進行全局控制,系統(tǒng)是由晶振器提供給FPGA一個20 MHz的頻率,,在FPGA內(nèi)部經(jīng)過分頻使用;局部控制包括ADC,、Flash,、PC104總線3個單元的控制。?

3.2.1? FPGA對ADC控制的設(shè)計?

??? FPGA對ADC的控制電路連接如圖3所示,。通過程序啟動AD7656的CONVSTA/B/C和BUSY,當(dāng)BUSY為1時,,ADC開始進行數(shù)據(jù)采集,。經(jīng)過3μs完成一次數(shù)據(jù)采集后,BUSY為0,依次讀取6個通道上的數(shù)據(jù),,將數(shù)據(jù)通過IO_D0~IO_D15讀入FPGA的FIFO緩存器,。

?

?

3.2.2? FPGA與Flash連接設(shè)計?

??? 設(shè)計中要將AM29LV256的管腳BYTE置為1,選用16位的模式,。如圖4所示,,當(dāng)FIFO完成一次存儲,程序就檢查RY/BY,,如RY/BY=1,,啟動CE片使能、WE寫使能,,將數(shù)據(jù)寫入Flash中,,寫入一次,地址逐次遞增,。地址由Flash進行分配,。當(dāng)上位機要求讀取Flash中某一地址段的數(shù)據(jù)時,啟動OE使能,,讀時序產(chǎn)生器用于產(chǎn)生讀Flash時的時序,,由于讀Flash的時序是固定的,只有地址是變化的,,所以它接收地址產(chǎn)生器輸出的地址,,產(chǎn)生相應(yīng)的讀時序。讀時序由狀態(tài)機來控制,,每次讀完一頁后復(fù)位,,繼續(xù)讀下一頁。數(shù)據(jù)讀到尾時,,整個讀狀態(tài)控制器復(fù)位,,重新從數(shù)據(jù)的頭開始讀。將數(shù)據(jù)先讀入FPGA中,,進行編碼,,再通過FPGA定義的端口,經(jīng)PC104總線存入上位機,。?

?

?

3.2.3? FPGA與PC104總線的連接?

??? FPGA與PC104總線的連接如圖5所示,,SD[0...15]為16位雙向數(shù)據(jù)總線,SA[1...23]為地址總線,,IOR和IOW為I/O讀寫信號,,XAEN 是允許DMA控制地址總線、數(shù)據(jù)總線和讀寫命令線進行DMA傳輸以及對存儲器和I/O設(shè)備的讀寫,。PC104總線有嚴(yán)格的時序標(biāo)準(zhǔn),,在總線操作過程中,,F(xiàn)PGA必須設(shè)計正確、標(biāo)準(zhǔn)的時序邏輯,。PCI04總線的中斷請求信號IRQ=HINT取“非”,,因為PC104設(shè)置為上升沿中斷。外部I/0準(zhǔn)備好信號IORDY在地址選通有效過程中接HPI口的HRDY信號,,地址選通無效時置為高阻態(tài),。?

?

?

??? EP1K50QC208芯片所需要的2.5 V和3.3 V電源由外部的5 V電壓經(jīng)過電源電路獲得,電源電路設(shè)計如圖6所示,。

?

?

??? FPGA要實現(xiàn)對整個電路的控制,,必須通過VHDL語言編寫程序[4]。程序設(shè)計的流程圖如圖7所示,。

?

?

??? 本文提出了一種基于FPGA控制的6通道同步數(shù)據(jù)采集處理系統(tǒng),。詳細(xì)說明了電路、FPGA與ADC,、Flash以及PC104總線連接及邏輯設(shè)計,。經(jīng)過測試和仿真,該采集系統(tǒng)各通道高速數(shù)據(jù)流能夠正確采集和存儲,工作穩(wěn)定,達到了設(shè)計期望的6通道,、16位有效數(shù)位的同步數(shù)據(jù)采集,。?

參考文獻?

[1]?Analog Devices.250 ks/s, 6-Channel, simultaneous sampling, bipolar 16-/14-/12-Bit D7656/AD7657/AD7658?data sheet. 2006.?

[2] Altera. ACEX 1K programmable logic device family data?sheet.2001.?

[3] 周潤京,圖雅,張麗敏.基于Quartus Ⅱ的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計實例[M].北京:電子工業(yè)出版社,2007.?

[4] 王誠,吳繼華,范麗珍,等. Altera FPGA/CPLD設(shè)計(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]