<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案

          基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案

          作者: 時(shí)間:2013-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

            1.引言

            傳統(tǒng)的,通常采用MCU或DSP作為控制模塊,來(lái)控制A/D,存儲(chǔ)器和其他一些外圍電路。這種方法編程簡(jiǎn)單,控制靈活,但缺點(diǎn)是控制周期長(zhǎng),速度慢。特別是當(dāng)A/D本身的采樣速度比較快時(shí),MCU的慢速極大地限制了A/D高速性能的使用。MCU的時(shí)鐘頻率較低并且用軟件實(shí)現(xiàn)數(shù)據(jù)的采集,軟件運(yùn)行時(shí)間在整個(gè)采樣時(shí)間中占的比例很大,使得采樣速率較低。

            隨著數(shù)據(jù)采集對(duì)速度性能的要求越來(lái)越來(lái)高,傳統(tǒng)的采集系統(tǒng)的弊端越來(lái)越明顯。本設(shè)計(jì)采用,各模塊設(shè)計(jì)使用VHDL語(yǔ)言,其各進(jìn)程間是并行的關(guān)系。它有MCU無(wú)法比擬的優(yōu)點(diǎn)。的時(shí)鐘頻率高,全部控制邏輯由硬件完成,實(shí)現(xiàn)了硬件采樣,速度快。

            2.系統(tǒng)的總體設(shè)計(jì)

            本,采用+MCU的結(jié)構(gòu),主控邏輯模塊用FPGA來(lái)實(shí)現(xiàn),在系統(tǒng)中對(duì)A/D器件進(jìn)行采樣控制,起到連接采樣電路和MCU的橋梁作用,數(shù)據(jù)處理、遠(yuǎn)程通信及液晶顯示控制等由MCU來(lái)完成。FPGA把傳統(tǒng)的純粹以單片機(jī)軟件操作形式的數(shù)據(jù)采集變成硬件采集。

            首先用VHDL語(yǔ)言來(lái)設(shè)計(jì)狀態(tài)機(jī),用MCU來(lái)啟動(dòng)狀態(tài)機(jī),使其控制A/D器件,實(shí)現(xiàn)數(shù)據(jù)采集。并將采集到的數(shù)據(jù)存儲(chǔ)到FPGA內(nèi)部的數(shù)據(jù)緩存區(qū)FIFO中。當(dāng)FIFO存儲(chǔ)已滿時(shí),狀態(tài)機(jī)控制FIFO停止數(shù)據(jù)寫(xiě)入,并通知單片機(jī)取走采集數(shù)據(jù)進(jìn)行下一步處理。這種設(shè)計(jì)思想大大減輕了單片機(jī)的軟件運(yùn)行時(shí)間,提高了采集速率。這里,把6路模擬信號(hào)采集任務(wù)作為快任務(wù),把用于系統(tǒng)自檢的6路檢測(cè)量信號(hào)作為慢任務(wù)。為了使快任務(wù)的優(yōu)先級(jí)高于慢任務(wù),本系統(tǒng)設(shè)計(jì)兩個(gè)狀態(tài)機(jī)分別實(shí)現(xiàn)快任務(wù)和慢任務(wù)的數(shù)據(jù)采集,并由單片機(jī)生成PWM波,分別控制兩個(gè)狀態(tài)機(jī)。系統(tǒng)的總體框圖如圖1所示:

            

            3.系統(tǒng)主要器件的選擇

            3.1 FPGA芯片選型及依據(jù)

            FPGA實(shí)現(xiàn)主控邏輯控制,要求響應(yīng)速度快,效率高??刹捎肁LTERA公司的ACEX1K系列EP1K5O芯片,最高工作頻率可達(dá)250MHz.

            該系列芯片的特點(diǎn)是將LUT(查找表)和EAB(嵌入式陣列)相結(jié)合,提供了效率最高而又廉價(jià)的結(jié)構(gòu)?;贚UT的邏輯對(duì)數(shù)據(jù)路徑管理、寄存器強(qiáng)度、數(shù)學(xué)計(jì)算或數(shù)字信號(hào)處理的設(shè)計(jì)提供優(yōu)化的性能和效率,而EBA可實(shí)現(xiàn)RAM(隨機(jī)讀寫(xiě)存儲(chǔ)器)、ROM(只讀存儲(chǔ)器)、雙口RAM或FIFO(先人先出存儲(chǔ)器)功能,使得ACEX1K適合復(fù)雜邏輯以及有存儲(chǔ)、緩沖功能的。

            3.2 ADC芯片選型及依據(jù)

            數(shù)據(jù)采集系統(tǒng)的輸入信號(hào)多數(shù)都來(lái)源于現(xiàn)場(chǎng)傳感器的輸出信號(hào),傳感器種類(lèi)不一,致使信號(hào)特性也不同,各通道信號(hào)的幅度與頻率范圍有很大的不同,高精度的、大動(dòng)態(tài)范圍的A/D轉(zhuǎn)換芯片使設(shè)計(jì)更能滿足測(cè)量的需要。本設(shè)計(jì)中A/D轉(zhuǎn)換模塊選用的AD574A是美國(guó)模擬數(shù)字公司(Analog)推出的單片高速12位逐次比較型A/D轉(zhuǎn)換器,轉(zhuǎn)換速率:25us,內(nèi)置雙極性電路構(gòu)成的混合集成轉(zhuǎn)換顯片,具有外接元件少,功耗低,精度高等特點(diǎn),并且具有自動(dòng)校零和自動(dòng)極性轉(zhuǎn)換功能,只需外接少量的阻容件即可構(gòu)成一個(gè)完整的A/D轉(zhuǎn)換器。

            4.FPGA方案設(shè)計(jì)

            4.1 設(shè)計(jì)思想

            用VHDL語(yǔ)言來(lái)設(shè)計(jì)兩個(gè)狀態(tài)機(jī),狀態(tài)機(jī)1來(lái)控制A/D實(shí)現(xiàn)快任務(wù)的采集,狀態(tài)機(jī)2來(lái)完成慢任務(wù)采集。兩個(gè)狀態(tài)機(jī)的時(shí)鐘信號(hào)CLK(高電平有效)均來(lái)自單片機(jī)生成的PWM波,狀態(tài)機(jī)1直接由單片機(jī)控制,狀態(tài)機(jī)2則是由單片機(jī)經(jīng)反向器來(lái)控制。首先置P1.0口為高電平,并用定時(shí)器來(lái)產(chǎn)生中斷,使P1.0口產(chǎn)生PWM波。當(dāng)P1.0口為高電平時(shí)啟動(dòng)狀態(tài)機(jī)1,此時(shí)狀態(tài)機(jī)2不動(dòng)作;當(dāng)快任務(wù)采樣完成后,由定時(shí)器產(chǎn)生中斷,將P1.0口置為低電平,此時(shí)狀態(tài)機(jī)2動(dòng)作,來(lái)完成慢任務(wù)采集。下一個(gè)周期完成同樣的操作。對(duì)應(yīng)快任務(wù)的采集數(shù)據(jù)緩存在快任務(wù)FIFO,慢任務(wù)的采集數(shù)據(jù)緩存在慢任務(wù)FIFO里,單片機(jī)讀對(duì)應(yīng)的FIFO數(shù)據(jù)來(lái)進(jìn)行相應(yīng)處理。

            4.2 各模塊的設(shè)計(jì)

            根據(jù)以上的設(shè)計(jì)思想,F(xiàn)PGA系統(tǒng)的硬件設(shè)計(jì)模塊主要有狀態(tài)機(jī)模塊,F(xiàn)IFO設(shè)計(jì)模塊[4-5].

            下面具體給出硬件原理設(shè)計(jì)。

            4.2.1 狀態(tài)機(jī)的設(shè)計(jì)

            該設(shè)計(jì)過(guò)程主要是建立采集所需要的硬件電路,等待時(shí)鐘信號(hào)的到來(lái)便立刻啟動(dòng)A/D進(jìn)行工作。了解了AD574A的工作時(shí)序,就可以寫(xiě)出狀態(tài)機(jī)的采樣控制狀態(tài)??刂茽顟B(tài)編碼表如表1所示。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();