基于DSP+FPGA的便攜數(shù)字存儲(chǔ)示波表設(shè)計(jì)
摘要:本文提出了一種基于DSP+FPGA的嵌入式便攜數(shù)字存儲(chǔ)示波表的設(shè)計(jì)方案,充分利用微控制器技術(shù)和ASIC技術(shù)實(shí)現(xiàn)了嵌入式實(shí)時(shí)處理,很好地達(dá)到了體積小、重量輕、功能強(qiáng)、可靠性高的要求。
關(guān)鍵字:便攜式數(shù)字存儲(chǔ)示波表,數(shù)字信號(hào)處理器,現(xiàn)場(chǎng)可編程門(mén)陣列,嵌入式設(shè)計(jì)
1. 引言
隨著大規(guī)模集成電路技術(shù)、信號(hào)分析與處理技術(shù)及嵌入式微處理器軟硬件技術(shù)的迅速發(fā)展,現(xiàn)代電子測(cè)量技術(shù)與儀器領(lǐng)域也在不斷探討新的儀器結(jié)構(gòu)和新的測(cè)試?yán)碚摷胺椒?。集?shù)字存儲(chǔ)示波器、數(shù)字萬(wàn)用表、頻率計(jì)三者功能于一體的便攜式數(shù)字存儲(chǔ)示波表正代表了當(dāng)代電子測(cè)量?jī)x器發(fā)展的一種新趨勢(shì)。便攜式數(shù)字存儲(chǔ)示波表具有體積小、重量輕、成本低、不需交流供電、可靠性高、使用簡(jiǎn)便等一系列特性,非常適合于使用在有電源、空間、運(yùn)輸?shù)葪l件限制的環(huán)境下。
便攜式數(shù)字存儲(chǔ)示波表集A/D技術(shù)、ASIC技術(shù)、DSP技術(shù)、LCD顯示技術(shù)于一體,具有極高的技術(shù)含量、很強(qiáng)的實(shí)用性和巨大的市場(chǎng)潛力。目前國(guó)外已有較成熟的產(chǎn)品,而國(guó)內(nèi)在該領(lǐng)域的研究尚屬起步階段。本文所述方案采用嵌入式設(shè)計(jì)技術(shù),成功地實(shí)現(xiàn)了對(duì)被測(cè)信號(hào)的實(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ù)雜。
為解決上述問(wèn)題,本文采用了基于DSP+FPGA結(jié)構(gòu)的嵌入式設(shè)計(jì)方案,如圖2所示。其中FPGA主要集成了以下部件:
(1) 2K字節(jié)的FIFO及FIFO控制器:FIFO用來(lái)緩存高速ADC采集的信號(hào)數(shù)據(jù)。系統(tǒng)無(wú)有效觸發(fā)信號(hào)時(shí)FIFO工作在環(huán)形方式,
不斷寫(xiě)入ADC送來(lái)的采樣數(shù)據(jù);當(dāng)觸發(fā)信號(hào)有效后,F(xiàn)IFO工作在桶形方式,F(xiàn)IFO控制器將根據(jù)DSP預(yù)先寫(xiě)入的"預(yù)觸發(fā)/后觸發(fā)時(shí)間" 控制字設(shè)置FIFO讀指針位置,一旦FIFO寫(xiě)"滿(mǎn)"后就停止寫(xiě)入,并由FIFO控制器通知DSP取走這一屏的采樣數(shù)據(jù);
(2) 2K字節(jié)的顯示緩存:用以緩存從DSP送來(lái)的LCD顯示數(shù)據(jù),并等待LCD控制器取走送LCD顯示;
(3) 外圍控制器部分:
a. 測(cè)頻測(cè)周電路:接收模擬通道送來(lái)的整形后的測(cè)量信號(hào),測(cè)得被測(cè)信號(hào)的頻率/周期值并等待DSP讀?。?BR>b. 采樣頻率控制電路:根據(jù)DSP寫(xiě)入的控制字分別控制ADC采樣頻率及FIFO寫(xiě)頻率,以最大限度地利用有限的FIFO空間實(shí)現(xiàn)寬頻采樣;
c. 觸發(fā)仲裁:確定是否抑制模擬通道送來(lái)的觸發(fā)信號(hào);
d. 總線(xiàn)仲裁:對(duì)DSP產(chǎn)生的地址信號(hào)及控制信號(hào)進(jìn)行譯碼以完成對(duì)外部設(shè)備的操作,并負(fù)責(zé)協(xié)調(diào)FIFO和顯示緩沖可能存在的讀/寫(xiě)沖突;
e. LCD控制器:產(chǎn)生LCD顯示所需的各種時(shí)序信號(hào),并負(fù)責(zé)從顯示緩存中讀取數(shù)據(jù)送LCD顯示屏;
可見(jiàn),本設(shè)計(jì)將除模擬通道、ADC、DSP及LCD顯示屏之外的絕大部分功能部件都集成在FPGA內(nèi)部。FPGA硬件在解析DSP預(yù)先寫(xiě)入的少量控制字后即可自動(dòng)完成數(shù)據(jù)采樣、信號(hào)頻率/周期測(cè)量以及波形顯示等底層控制功能,而DSP則被解放出來(lái)主要負(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ù)處理的特長(zhǎng);同時(shí),F(xiàn)PGA的使用使系統(tǒng)中分立功能部件大大減少,也有效地縮減了系統(tǒng)的體積和功耗,增加了系統(tǒng)的可靠性。
2.2 顯示緩存的設(shè)計(jì)
本系統(tǒng)中對(duì)LCD顯示緩存的設(shè)計(jì)是需要著重考慮的。為解決"DSP不斷寫(xiě)(刷新)"和"LCD控制器不斷讀"的矛盾,通常系統(tǒng)中需要設(shè)置兩片獨(dú)立的RAM 芯片,并引入復(fù)雜的"PING-PANG"切換控制機(jī)制,以保證DSP寫(xiě)操作和LCD讀操作總是針對(duì)不同的RAM芯片。而在本設(shè)計(jì)中,我們直接使用了 FPGA內(nèi)部的雙口塊RAM資源,一方面FPGA內(nèi)部的RAM控制電路實(shí)現(xiàn)對(duì)雙口RAM的異步讀/寫(xiě),保證顯示數(shù)據(jù)更新在時(shí)間上的連續(xù)性;另一方面,由 FPGA分別定義的不同寬度的讀/寫(xiě)數(shù)據(jù)端口自動(dòng)完成了數(shù)據(jù)寬度的轉(zhuǎn)換。
這里的一個(gè)實(shí)際問(wèn)題是:FPGA內(nèi)部雙口塊RAM容量是有限的。本設(shè)計(jì)采用的FPGA內(nèi)部只有2KB容量的雙口塊RAM,而我們選用的320×240的 LCD一整屏的顯示數(shù)據(jù)需要將近10KB(9,375B)單元來(lái)存放。一種解決的方法是:系統(tǒng)將一屏顯示數(shù)據(jù)分為5幀來(lái)處理,F(xiàn)PGA以定時(shí)中斷的方式向 DSP申請(qǐng)數(shù)據(jù)刷新,而每次中斷DSP將向顯示緩沖中寫(xiě)入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送來(lái)的讀中斷及顯示數(shù)據(jù)刷新定時(shí)中斷)、基本顯示模式(點(diǎn)、線(xiàn)、字符、漢字、柵格等)代碼、DSP寫(xiě)顯存代碼、DSP讀FIFO代碼以及DSP對(duì)其它端口的訪(fǎng)問(wèn)代碼等等;
(2)內(nèi)核層:根據(jù)當(dāng)前測(cè)試需要調(diào)用不同功能模塊以協(xié)調(diào)完成測(cè)試任務(wù);可調(diào)用的模塊包括通道控制模塊、采樣時(shí)鐘控制模塊、時(shí)基/幅基調(diào)整模塊、顯示數(shù)據(jù)處理模塊、波形數(shù)據(jù)處理模塊(包括插值子模塊、信號(hào)參數(shù)計(jì)算子模塊、頻譜分析子模塊等等);
(3) 用戶(hù)界面層:包括鍵語(yǔ)分析及鍵值散轉(zhuǎn)模塊、菜單顯示模塊;
為提供良好的人機(jī)界面,并組織協(xié)調(diào)完成眾多的測(cè)量任務(wù),本系統(tǒng)中軟件工作量比較大、軟件功能比較復(fù)雜。采用這樣的層次模塊結(jié)構(gòu)后,只要各模塊(函數(shù))接口定義得清晰明確并具有一定的通用性,就可以建立良好的軟件系統(tǒng)框架,使得軟件的更新和維護(hù)非常方便。
3.2 軟件流程設(shè)計(jì)
圖4所示為本示波表軟件工作流程,主要包括三部分:
(1) 初始化模塊:包括DSP片內(nèi)寄存器初始化、DSP片外外圍器件初始化、示波表測(cè)試條件初始化、全局消息變量初始化及顯示緩沖初始化等。
(2)工作方式設(shè)定模塊:如需要,程序?qū)⒏鶕?jù)用戶(hù)按鍵輸入狀態(tài)設(shè)置(Manual工作方式)或根據(jù)被測(cè)信號(hào)的變化自動(dòng)調(diào)整(Auto工作方式)示波表當(dāng)前工作方式――包括通道控制、采樣時(shí)鐘控制、時(shí)基/幅基調(diào)整及對(duì)FPGA內(nèi)控制字的更新等。
(3) 信號(hào)數(shù)據(jù)的處理及顯示模塊:讀入本次觸發(fā)后采集的波形數(shù)據(jù)(包括測(cè)頻測(cè)周數(shù)據(jù)),并對(duì)波形數(shù)據(jù)進(jìn)行處理――包括插值處理、頻譜分析、信號(hào)參數(shù)計(jì)算、顯示數(shù)據(jù)映射處理等。
4. 系統(tǒng)性能
本設(shè)計(jì)采用了Motorola公司的16位嵌入式DSP(56805)和Xilinx公司的FPGA(XC2S50)來(lái)實(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) 可測(cè)信號(hào)參數(shù):頻率、周期、平均值、有效值、峰峰值等;
目前系統(tǒng)中的DSP和FPGA資源都還留有較大富余量,極有利于系統(tǒng)的進(jìn)一步改造、升級(jí)。
5. 結(jié)論
在實(shí)時(shí)信號(hào)處理系統(tǒng)中,通常底層的信號(hào)預(yù)處理算法處理的數(shù)據(jù)量大,對(duì)處理速度的要求高,但運(yùn)算結(jié)構(gòu)相對(duì)比較簡(jiǎn)單,適于用硬件實(shí)現(xiàn);而高層處理算法的特點(diǎn)是數(shù)據(jù)量較少,但算法的控制結(jié)構(gòu)復(fù)雜,適于用運(yùn)算速度高、尋址方式靈活、通信機(jī)制強(qiáng)大的DSP芯片來(lái)實(shí)現(xiàn)。本設(shè)計(jì)因此采用DSP+FPGA結(jié)構(gòu)同時(shí)兼顧速度及靈活性,其中底層FPGA硬件完成數(shù)據(jù)采樣、信號(hào)頻率/周期測(cè)量以及波形顯示控制等功能,而上層DSP軟件則負(fù)責(zé)實(shí)現(xiàn)數(shù)據(jù)編碼、波形恢復(fù)計(jì)算及人機(jī)界面的處理。
隨著測(cè)試技術(shù)的進(jìn)一步發(fā)展,便攜式儀器的市場(chǎng)前景越來(lái)越廣闊,本設(shè)計(jì)基于DSP+FPGA的嵌入式系統(tǒng)結(jié)構(gòu)的研制成功,有效地減小了體積,降低了功耗,增強(qiáng)了可靠性,為國(guó)產(chǎn)數(shù)字示波表的進(jìn)一步研制和開(kāi)發(fā)做出了有效的嘗試,并且對(duì)其它數(shù)字儀器儀表的小型化設(shè)計(jì)也具有一定的指導(dǎo)意義。