《電子技術(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://ihrv.cn/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)精度等性能指標的關(guān)鍵因素之一。常用數(shù)據(jù)采集方案是以微處理器為核心控制多個通道的信號采集、預處理、存儲和傳輸,即用軟件實現(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存儲器復位,再給A/D轉(zhuǎn)換器開始采集數(shù)據(jù)的命令,可將最多6路的同步最大頻率不超過250 kS/s的信號進行A/D轉(zhuǎn)換,采集到的數(shù)字信號經(jīng)過FPGA的處理后存儲到Flash存儲器中。當采集完成時,將存儲器內(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同樣要連接去耦電路。當PC104總線提供的外部時鐘信號SYSCLK經(jīng)過分頻后加到AD7656和FPGA上,在啟動數(shù)據(jù)采集之前,先初始化。啟動6通道同步采集,采集到的數(shù)據(jù)進入FPGA的FIFO緩存器,經(jīng)過FPGA的處理。通過模擬的頻率、寫控制信號等,將數(shù)據(jù)存入NOR Flash進行暫存,當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,當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所示,當FIFO完成一次存儲,程序就檢查RY/BY,如RY/BY=1,啟動CE片使能、WE寫使能,將數(shù)據(jù)寫入Flash中,寫入一次,地址逐次遞增。地址由Flash進行分配。當上位機要求讀取Flash中某一地址段的數(shù)據(jù)時,啟動OE使能,讀時序產(chǎn)生器用于產(chǎn)生讀Flash時的時序,由于讀Flash的時序是固定的,只有地址是變化的,所以它接收地址產(chǎn)生器輸出的地址,產(chǎn)生相應(yīng)的讀時序。讀時序由狀態(tài)機來控制,每次讀完一頁后復位,繼續(xù)讀下一頁。數(shù)據(jù)讀到尾時,整個讀狀態(tài)控制器復位,重新從數(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總線有嚴格的時序標準,在總線操作過程中,F(xiàn)PGA必須設(shè)計正確、標準的時序邏輯。PCI04總線的中斷請求信號IRQ=HINT取“非”,因為PC104設(shè)置為上升沿中斷。外部I/0準備好信號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)。詳細說明了電路、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)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。