<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ù)字示波器圖文顯示系統(tǒng)的軟硬件設(shè)計(jì)

          基于FPGA的數(shù)字示波器圖文顯示系統(tǒng)的軟硬件設(shè)計(jì)

          作者: 時(shí)間:2011-04-20 來(lái)源:網(wǎng)絡(luò) 收藏
          應(yīng)用FPGA設(shè)計(jì)功能電路時(shí),可以讓人們的思路從傳統(tǒng)的以單片機(jī)或DSP芯片為核心的系統(tǒng)集成型轉(zhuǎn)向單一專(zhuān)用芯片型設(shè)計(jì)。傳統(tǒng)的示波器雖然功能齊全,但是體積大、重量重、成本高、等一系列問(wèn)題使應(yīng)用受到了限制。有鑒于此,便攜式數(shù)字存儲(chǔ)采集器就應(yīng)運(yùn)而生,它采用了LCD顯示、高速A/D采集與轉(zhuǎn)換、ASIC芯片等新技術(shù),具有很強(qiáng)的實(shí)用性和巨大的市場(chǎng)潛力,也代表了當(dāng)代電子測(cè)量?jī)x器的一種發(fā)展趨勢(shì),即向功能多、體積小、重量輕、使用方便的掌上型儀器發(fā)展。

            1 系統(tǒng)總體設(shè)計(jì)讀寫(xiě)

            根據(jù)設(shè)計(jì)要求:在示波器上顯示2個(gè)以上字符或圖案,如顯示0-9十個(gè)數(shù)字及英文字符、圖象等,結(jié)合示波器顯示原理,設(shè)計(jì)電路如圖1所示。將要顯示的數(shù)字或符號(hào)進(jìn)行取模,得到其二進(jìn)制形式表示。將轉(zhuǎn)換好的數(shù)據(jù)送入FPGA內(nèi)部RAM存儲(chǔ)。

            


            在設(shè)計(jì)上我們使用了XILINX的SPARTAN-3芯片,作為控制器,完成總的數(shù)控部分、鍵盤(pán)和和顯示接口部分的控制。采用八位(或者更高位)D/A轉(zhuǎn)換,對(duì)FPGA芯片輸出二進(jìn)制數(shù)字量進(jìn)行數(shù)一模轉(zhuǎn)換,在經(jīng)過(guò)高速運(yùn)算放大器后得到其電壓量。分X,Y兩路輸出給示波器,根據(jù)示波器原理,在屏幕上打點(diǎn)顯示數(shù)字(或者圖形)。而Z通道作為另一路獨(dú)立通道,對(duì)顯示的數(shù)字亮度進(jìn)行可控顯示。

            2 系統(tǒng)硬件設(shè)計(jì)

            2.1 總體控制模塊

            基于本設(shè)計(jì),系統(tǒng)控制模塊的部分是具有掩膜可編程門(mén)陣列的邏輯器件——FPGA。

            Spartan系列FPGA是Xilinx公司可編程邏輯產(chǎn)品中的高性?xún)r(jià)比產(chǎn)品的代表,而Spartan-Ⅲ系列FPGA是為那些需要大容量、低價(jià)格電子應(yīng)用的用戶(hù)而設(shè)計(jì)的。本系統(tǒng)使用的是XILINX公司的XC3S200型號(hào)芯片,其技術(shù)參數(shù)如下:

            ●4 320個(gè)邏輯單元;

            ●系統(tǒng)門(mén)密度200 k個(gè);

            ●CLB陣列24*20,共480個(gè);

            ●最大用戶(hù)I/O173,最大差分I/O76;

            ●分布式RAM容量30 Kbit,Block RAM容量216Kbit;

            ●嵌入式18x18乘法器支持高性能DSP應(yīng)用;

            ●PCI和帶有LVDS的高速差分信號(hào)。

            2.2 存儲(chǔ)單元模塊

            由于FPGA基于CMOS SRAM工藝,不具備掉電保護(hù)功能,當(dāng)無(wú)電源供電時(shí),配置的數(shù)據(jù)丟失,芯片的功能也隨之丟失。因此,本設(shè)計(jì)采用FLASH存儲(chǔ)器在線重配置的方法。

            

            2.3 外圍電路模塊

            2.3.1 D/A轉(zhuǎn)換

            在D/A選擇上,我們用的是美國(guó)半導(dǎo)體公司的 DAC0832,它具有8位并行、中速(建立時(shí)間1 us)、電流型、價(jià)格低廉等特點(diǎn)。它有單緩沖工作方式、雙緩沖工作方式兩種工作方式。單緩沖工作方式時(shí),一個(gè)寄存器工作于直通狀態(tài),一個(gè)工作于受控鎖存器狀態(tài)。在不要求多相D/A同時(shí)輸出時(shí),可以采用單緩沖方式,此時(shí)只需一次寫(xiě)操作,就開(kāi)始轉(zhuǎn)換,可以提高D/A的數(shù)據(jù)吞吐量。雙緩沖工作方式時(shí),兩個(gè)寄存器均工作于受控鎖存器狀態(tài)。當(dāng)要求多個(gè)模擬量同時(shí)輸出時(shí),可采用雙重緩沖方式。

            它的技術(shù)參數(shù)為:建立時(shí)間1 us;8位并行;低功率損耗20 mW;支持電壓:5 V~15 V。

            2.3.2 運(yùn)算放大

            在D/A轉(zhuǎn)換之后,我們得到的是電流信號(hào),而需要輸入示波器的為電壓信號(hào),因此運(yùn)用運(yùn)算放大器來(lái)進(jìn)行轉(zhuǎn)換,同時(shí)將運(yùn)放設(shè)計(jì)為可調(diào)形式,通過(guò)調(diào)節(jié)它便可以調(diào)節(jié)輸出電壓的大小,達(dá)到控制顯示幅值的目的。本設(shè)計(jì)采用LM741系列運(yùn)放,其技術(shù)指標(biāo)加下:

            

            3 系統(tǒng)軟件設(shè)計(jì)

            基于VHDL語(yǔ)言的功能與靈活性,非依賴(lài)性和可移植性種種優(yōu)勢(shì),本設(shè)計(jì)在FPGA編程上采用了VHDL語(yǔ)言實(shí)現(xiàn)??傮w設(shè)計(jì)思路:采用50 MHz外部時(shí)鐘控制對(duì)FPGA內(nèi)部進(jìn)行分頻控制,在分頻模塊的作用下得到設(shè)計(jì)所需要的時(shí)鐘信號(hào)。通過(guò)按鍵選通在ROM內(nèi)部選擇要顯示的模塊部分,進(jìn)行X、 Y方向掃描,得到初步的數(shù)據(jù),同時(shí)外加Z方向掃描來(lái)控制所顯圖形的亮度。通過(guò)將所有的“1”存儲(chǔ)在一個(gè)ROM中作為緩存,達(dá)到消除零點(diǎn)的目的。將ROM中的數(shù)據(jù)轉(zhuǎn)移到RAM中,通過(guò)乒乓交換操作來(lái)進(jìn)行模式轉(zhuǎn)換,最后通過(guò)外圍電路輸入示波器,實(shí)現(xiàn)顯示??傮w流程圖:

            

            4 結(jié)語(yǔ)

            本文是基于FPGA的系統(tǒng)的硬件/軟件的設(shè)計(jì)思路和設(shè)計(jì)方案。此系統(tǒng)設(shè)計(jì)完成后,測(cè)試表明系統(tǒng)可以將相應(yīng)的圖形文字顯示出來(lái),顯示的圖形和文字與預(yù)期的基本一致。該設(shè)計(jì)滿(mǎn)足了系統(tǒng)的需要,更重要的是具有很強(qiáng)的靈活性和可控性,同時(shí)使顯示更加高速度快捷,具有非常廣闊的應(yīng)用前景。



          關(guān)鍵詞: 數(shù)字示波器 圖文顯示

          評(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); })();