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