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

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

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

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

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

?

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

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

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

?

?

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

2 主要元器件?

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

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

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

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

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

?

?

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

3.2 FPGA的設(shè)計(jì)?

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

?

?

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

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

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

?

?

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

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

?

?

3.2.3? FPGA與PC104總線的連接?

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

?

?

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

?

?

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

?

?

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

參考文獻(xiàn)?

[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] 周潤(rùn)京,圖雅,張麗敏.基于Quartus Ⅱ的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例[M].北京:電子工業(yè)出版社,2007.?

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

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