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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP和XC2S50嵌入式結(jié)構(gòu)的便攜數(shù)字存儲(chǔ)示波表設(shè)計(jì)

          基于DSP和XC2S50嵌入式結(jié)構(gòu)的便攜數(shù)字存儲(chǔ)示波表設(shè)計(jì)

          作者: 時(shí)間:2017-06-06 來源:網(wǎng)絡(luò) 收藏

          1. 引言
          隨著大規(guī)模集成電路技術(shù)、信號分析與處理技術(shù)及嵌入式微處理器軟硬件技術(shù)的迅速發(fā)展,現(xiàn)代電子測量技術(shù)與儀器領(lǐng)域也在不斷探討新的儀器結(jié)構(gòu)和新的測試?yán)碚摷胺椒ā<瘮?shù)字存儲(chǔ)示波器、數(shù)字萬用表、頻率計(jì)三者功能于一體的正代表了當(dāng)代電子測量儀器發(fā)展的一種新趨勢。具有體積小、重量輕、成本低、不需交流供電、可靠性高、使用簡便等一系列特性,非常適合于使用在有電源、空間、運(yùn)輸?shù)葪l件限制的環(huán)境下。
          集A/D技術(shù)、ASIC技術(shù)、DSP技術(shù)、LCD顯示技術(shù)于一體,具有極高的技術(shù)含量、很強(qiáng)的實(shí)用性和巨大的市場潛力。目前國外已有較成熟的產(chǎn)品,而國內(nèi)在該領(lǐng)域的研究尚屬起步階段。本文所述方案采用技術(shù),成功地實(shí)現(xiàn)了對被測信號的實(shí)時(shí)處理與分析。
          2. 便攜式數(shù)字存儲(chǔ)示波表的硬件設(shè)計(jì)思想
          2.1 硬件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
          便攜式數(shù)字存儲(chǔ)示波表硬件上主要包括模擬通道、數(shù)據(jù)采樣、數(shù)據(jù)處理、顯示控制等模塊。圖1所示為一種傳統(tǒng)的以微控制器(DSP)為核心的示波表結(jié)構(gòu)設(shè)計(jì)方案。該方案的缺點(diǎn)是:系統(tǒng)只能將DSP做為核心控制器件,造成DSP任務(wù)繁重、接口復(fù)雜。
          為解決上述問題,本文采用了基于DSP+FPGA結(jié)構(gòu)的方案,如圖2所示。其中FPGA主要集成了以下部件:




          (1) 2K字節(jié)的FIFO及FIFO控制器:FIFO用來緩存高速ADC采集的信號數(shù)據(jù)。系統(tǒng)無有效觸發(fā)信號時(shí)FIFO工作在環(huán)形方式,


          不斷寫入ADC送來的采樣數(shù)據(jù);當(dāng)觸發(fā)信號有效后,F(xiàn)IFO工作在桶形方式,F(xiàn)IFO控制器將根據(jù)DSP預(yù)先寫入的預(yù)觸發(fā)/后觸發(fā)時(shí)間 控制字設(shè)置FIFO讀指針位置,一旦FIFO寫滿后就停止寫入,并由FIFO控制器通知DSP取走這一屏的采樣數(shù)據(jù);
          (2) 2K字節(jié)的顯示緩存:用以緩存從DSP送來的LCD顯示數(shù)據(jù),并等待LCD控制器取走送LCD顯示;
          (3) 外圍控制器部分:
          a. 測頻測周電路:接收模擬通道送來的整形后的測量信號,測得被測信號的頻率/周期值并等待DSP讀取;
          b. 采樣頻率控制電路:根據(jù)DSP寫入的控制字分別控制ADC采樣頻率及FIFO寫頻率,以最大限度地利用有限的FIFO空間實(shí)現(xiàn)寬頻采樣;
          c. 觸發(fā)仲裁:確定是否抑制模擬通道送來的觸發(fā)信號;
          d. 總線仲裁:對DSP產(chǎn)生的地址信號及控制信號進(jìn)行譯碼以完成對外部設(shè)備的操作,并負(fù)責(zé)協(xié)調(diào)FIFO和顯示緩沖可能存在的讀/寫沖突;
          e. LCD控制器:產(chǎn)生LCD顯示所需的各種時(shí)序信號,并負(fù)責(zé)從顯示緩存中讀取數(shù)據(jù)送LCD顯示屏;
          可見,本設(shè)計(jì)將除模擬通道、ADC、DSP及LCD顯示屏之外的絕大部分功能部件都集成在FPGA內(nèi)部。FPGA硬件在解析DSP預(yù)先寫入的少量控制字后即可自動(dòng)完成數(shù)據(jù)采樣、信號頻率/周期測量以及波形顯示等底層控制功能,而DSP則被解放出來主要負(fù)責(zé)數(shù)據(jù)編碼、波形恢復(fù)及人機(jī)界面等上層數(shù)據(jù)的控制處理。
          總之,為最大限度地充分發(fā)揮可編程ASIC芯片在嵌入系統(tǒng)設(shè)計(jì)中的作用,本設(shè)計(jì)使用FPGA分擔(dān)部分系統(tǒng)控制任務(wù),使DSP能夠更好、更有效地發(fā)揮其數(shù)據(jù)處理的特長;同時(shí),F(xiàn)PGA的使用使系統(tǒng)中分立功能部件大大減少,也有效地縮減了系統(tǒng)的體積和功耗,增加了系統(tǒng)的可靠性。
          2.2 顯示緩存的設(shè)計(jì)
          本系統(tǒng)中對LCD顯示緩存的設(shè)計(jì)是需要著重考慮的。為解決DSP不斷寫(刷新)和LCD控制器不斷讀的矛盾,通常系統(tǒng)中需要設(shè)置兩片獨(dú)立的RAM 芯片,并引入復(fù)雜的PING-PANG切換控制機(jī)制,以保證DSP寫操作和LCD讀操作總是針對不同的RAM芯片。而在本設(shè)計(jì)中,我們直接使用了 FPGA內(nèi)部的雙口塊RAM資源,一方面FPGA內(nèi)部的RAM控制電路實(shí)現(xiàn)對雙口RAM的異步讀/寫,保證顯示數(shù)據(jù)更新在時(shí)間上的連續(xù)性;另一方面,由 FPGA分別定義的不同寬度的讀/寫數(shù)據(jù)端口自動(dòng)完成了數(shù)據(jù)寬度的轉(zhuǎn)換。
          這里的一個(gè)實(shí)際問題是:FPGA內(nèi)部雙口塊RAM容量是有限的。本設(shè)計(jì)采用的FPGA內(nèi)部只有2KB容量的雙口塊RAM,而我們選用的320×240的 LCD一整屏的顯示數(shù)據(jù)需要將近10KB(9,375B)單元來存放。一種解決的方法是:系統(tǒng)將一屏顯示數(shù)據(jù)分為5幀來處理,F(xiàn)PGA以定時(shí)中斷的方式向 DSP申請數(shù)據(jù)刷新,而每次中斷DSP將向顯示緩沖中寫入1/5屏的數(shù)據(jù)。實(shí)際證明,只要設(shè)計(jì)好時(shí)序關(guān)系,系統(tǒng)的工作是非常穩(wěn)定的。
          3. 便攜式數(shù)字存儲(chǔ)示波表的軟件系統(tǒng)框架
          3.1 軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
          為了提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性,本文示波表精心設(shè)計(jì)了一種模塊化的層次軟件體系架構(gòu),如圖3所示。


          其中:
          (1)硬件接口層:主要包括底層驅(qū)動(dòng)程序(以函數(shù)形式提供),如硬件初始化代碼、DSP中斷服務(wù)代碼(FIFO送來的讀中斷及顯示數(shù)據(jù)刷新定時(shí)中斷)、基本顯示模式(點(diǎn)、線、字符、漢字、柵格等)代碼、DSP寫顯存代碼、DSP讀FIFO代碼以及DSP對其它端口的訪問代碼等等;
          (2)內(nèi)核層:根據(jù)當(dāng)前測試需要調(diào)用不同功能模塊以協(xié)調(diào)完成測試任務(wù);可調(diào)用的模塊包括通道控制模塊、采樣時(shí)鐘控制模塊、時(shí)基/幅基調(diào)整模塊、顯示數(shù)據(jù)處理模塊、波形數(shù)據(jù)處理模塊(包括插值子模塊、信號參數(shù)計(jì)算子模塊、頻譜分析子模塊等等);
          (3) 用戶界面層:包括鍵語分析及鍵值散轉(zhuǎn)模塊、菜單顯示模塊;
          為提供良好的人機(jī)界面,并組織協(xié)調(diào)完成眾多的測量任務(wù),本系統(tǒng)中軟件工作量比較大、軟件功能比較復(fù)雜。采用這樣的層次模塊結(jié)構(gòu)后,只要各模塊(函數(shù))接口定義得清晰明確并具有一定的通用性,就可以建立良好的軟件系統(tǒng)框架,使得軟件的更新和維護(hù)非常方便。
          3.2 軟件流程設(shè)計(jì)


          圖4所示為本示波表軟件工作流程,主要包括三部分:
          (1) 初始化模塊:包括DSP片內(nèi)寄存器初始化、DSP片外外圍器件初始化、示波表測試條件初始化、全局消息變量初始化及顯示緩沖初始化等。
          (2)工作方式設(shè)定模塊:如需要,程序?qū)⒏鶕?jù)用戶按鍵輸入狀態(tài)設(shè)置(Manual工作方式)或根據(jù)被測信號的變化自動(dòng)調(diào)整(Auto工作方式)示波表當(dāng)前工作方式――包括通道控制、采樣時(shí)鐘控制、時(shí)基/幅基調(diào)整及對FPGA內(nèi)控制字的更新等。
          (3) 信號數(shù)據(jù)的處理及顯示模塊:讀入本次觸發(fā)后采集的波形數(shù)據(jù)(包括測頻測周數(shù)據(jù)),并對波形數(shù)據(jù)進(jìn)行處理――包括插值處理、頻譜分析、信號參數(shù)計(jì)算、顯示數(shù)據(jù)映射處理等。
          4. 系統(tǒng)性能
          本設(shè)計(jì)采用了Motorola公司的16位嵌入式DSP(56805)和Xilinx公司的FPGA(XC2S50)來實(shí)現(xiàn),系統(tǒng)整合后已經(jīng)驗(yàn)證,達(dá)到以下指標(biāo):
          (1) 模擬帶寬10MHz,單次帶寬5MHz;
          (2) 最高取樣率40MS/s;
          (3) 水平掃描時(shí)基50ns/div~10s/div,垂直掃描 幅基5mV/div~5V/div;
          (4) 可測信號參數(shù):頻率、周期、平均值、有效值、峰峰值等;
          目前系統(tǒng)中的DSP和FPGA資源都還留有較大富余量,極有利于系統(tǒng)的進(jìn)一步改造、升級。
          5. 結(jié)論
          在實(shí)時(shí)信號處理系統(tǒng)中,通常底層的信號預(yù)處理算法處理的數(shù)據(jù)量大,對處理速度的要求高,但運(yùn)算結(jié)構(gòu)相對比較簡單,適于用硬件實(shí)現(xiàn);而高層處理算法的特點(diǎn)是數(shù)據(jù)量較少,但算法的控制結(jié)構(gòu)復(fù)雜,適于用運(yùn)算速度高、尋址方式靈活、通信機(jī)制強(qiáng)大的DSP芯片來實(shí)現(xiàn)。本設(shè)計(jì)因此采用DSP+FPGA結(jié)構(gòu)同時(shí)兼顧速度及靈活性,其中底層FPGA硬件完成數(shù)據(jù)采樣、信號頻率/周期測量以及波形顯示控制等功能,而上層DSP軟件則負(fù)責(zé)實(shí)現(xiàn)數(shù)據(jù)編碼、波形恢復(fù)計(jì)算及人機(jī)界面的處理。
          隨著測試技術(shù)的進(jìn)一步發(fā)展,便攜式儀器的市場前景越來越廣闊,本設(shè)計(jì)基于DSP+FPGA的嵌入式系統(tǒng)結(jié)構(gòu)的研制成功,有效地減小了體積,降低了功耗,增強(qiáng)了可靠性,為國產(chǎn)數(shù)字示波表的進(jìn)一步研制和開發(fā)做出了有效的嘗試,并且對其它數(shù)字儀器儀表的小型化設(shè)計(jì)也具有一定的指導(dǎo)意義。

          本文引用地址:http://www.ex-cimer.com/article/201706/349650.htm

          詳解數(shù)字存儲(chǔ)示波表樣機(jī)的理論研究與商用設(shè)計(jì)(共7部分)



          評論


          相關(guān)推薦

          技術(shù)專區(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); })();