1. 引言
隨著大規(guī)模集成電路技術(shù),、信號分析與處理技術(shù)及嵌入式微處理器軟硬件技術(shù)的迅速發(fā)展,,現(xiàn)代電子測量技術(shù)與儀器領(lǐng)域也在不斷探討新的儀器結(jié)構(gòu)和新的測試理論及方法。集數(shù)字存儲示波器,、數(shù)字萬用表,、頻率計三者功能于一體的便攜式數(shù)字存儲示波表正代表了當代電子測量儀器發(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ù)繁重,、接口復雜,。
為解決上述問題,本文采用了基于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ù),;當觸發(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è)備的操作,,并負責協(xié)調(diào)FIFO和顯示緩沖可能存在的讀/寫沖突;
e. LCD控制器:產(chǎn)生LCD顯示所需的各種時序信號,,并負責從顯示緩存中讀取數(shù)據(jù)送LCD顯示屏,;
可見,本設(shè)計將除模擬通道,、ADC,、DSP及LCD顯示屏之外的絕大部分功能部件都集成在FPGA內(nèi)部。FPGA硬件在解析DSP預(yù)先寫入的少量控制字后即可自動完成數(shù)據(jù)采樣、信號頻率/周期測量以及波形顯示等底層控制功能,,而DSP則被解放出來主要負責數(shù)據(jù)編碼,、波形恢復及人機界面等上層數(shù)據(jù)的控制處理。
總之,,為最大限度地充分發(fā)揮可編程ASIC芯片在嵌入系統(tǒng)設(shè)計中的作用,,本設(shè)計使用FPGA分擔部分系統(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 芯片,并引入復雜的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ù)當前測試需要調(diào)用不同功能模塊以協(xié)調(diào)完成測試任務(wù);可調(diào)用的模塊包括通道控制模塊,、采樣時鐘控制模塊,、時基/幅基調(diào)整模塊、顯示數(shù)據(jù)處理模塊,、波形數(shù)據(jù)處理模塊(包括插值子模塊,、信號參數(shù)計算子模塊、頻譜分析子模塊等等),;
(3) 用戶界面層:包括鍵語分析及鍵值散轉(zhuǎn)模塊,、菜單顯示模塊;
為提供良好的人機界面,,并組織協(xié)調(diào)完成眾多的測量任務(wù),,本系統(tǒng)中軟件工作量比較大、軟件功能比較復雜,。采用這樣的層次模塊結(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工作方式)示波表當前工作方式――包括通道控制,、采樣時鐘控制,、時基/幅基調(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)復雜,,適于用運算速度高、尋址方式靈活,、通信機制強大的DSP芯片來實現(xiàn),。本設(shè)計因此采用DSP+FPGA結(jié)構(gòu)同時兼顧速度及靈活性,其中底層FPGA硬件完成數(shù)據(jù)采樣,、信號頻率/周期測量以及波形顯示控制等功能,,而上層DSP軟件則負責實現(xiàn)數(shù)據(jù)編碼、波形恢復計算及人機界面的處理,。
隨著測試技術(shù)的進一步發(fā)展,,便攜式儀器的市場前景越來越廣闊,本設(shè)計基于DSP+FPGA的嵌入式系統(tǒng)結(jié)構(gòu)的研制成功,,有效地減小了體積,,降低了功耗,增強了可靠性,,為國產(chǎn)數(shù)字示波表的進一步研制和開發(fā)做出了有效的嘗試,,并且對其它數(shù)字儀器儀表的小型化設(shè)計也具有一定的指導意義。