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