便攜式功率分析儀設(shè)計(jì)----功率分析儀軟件設(shè)計(jì)
4.1軟件設(shè)計(jì)框架
如下圖4-1所示,其中SED1335是圖形液晶顯示控制器,它集成在液晶顯示屏幕電路中,提供獨(dú)立的顯示控制字,可用單片機(jī)對(duì)其進(jìn)行控制,單片機(jī)通過SED1335將數(shù)據(jù)送到LCD顯示。通道進(jìn)來的模擬信號(hào)經(jīng)由A/D轉(zhuǎn)換成數(shù)字量,將這些數(shù)字量存入緩存器FIFO后,再由ARM讀入進(jìn)行計(jì)算處理,我們所選用的ARM LPC2138擁有強(qiáng)大的數(shù)據(jù)處理能力能完成數(shù)據(jù)的采集、處理、顯示以及鍵盤操作功能。經(jīng)過ARM處理的數(shù)據(jù),系統(tǒng)參數(shù)等信息都將保存在FLASH中,便于調(diào)用。FLASH是非易失性存儲(chǔ)器,可以重復(fù)進(jìn)行讀/寫,讀寫時(shí)應(yīng)按其時(shí)序進(jìn)行。它用于存儲(chǔ)字庫(kù)和程序,本設(shè)計(jì)中使用的FLASH是ARM單片機(jī)LPC2138內(nèi)部FLASH.在這里鍵盤按鍵操作和控制是直接由ARM來完成的,利用鍵盤掃描方式,通過定時(shí)器不斷對(duì)鍵盤動(dòng)作進(jìn)行掃描,從而達(dá)到鍵盤控制操作的功能。本系統(tǒng)在調(diào)試過程中還提供了串口對(duì)外通訊,利用68013將串口轉(zhuǎn)換為適合與上位機(jī)通訊的USB接口,實(shí)現(xiàn)與上位機(jī)通訊,達(dá)到利用電腦輔助系統(tǒng)調(diào)試的目的。
4.1.1軟件功能設(shè)計(jì)
如上圖4-2所示,功率分析儀的軟件部分主要分作數(shù)據(jù)處理和測(cè)量(包含對(duì)采樣數(shù)據(jù)處理、整合、計(jì)算以及對(duì)信號(hào)常用屬性的測(cè)量)、液晶屏控制、鍵盤控制以及校準(zhǔn)這幾大部分,聯(lián)機(jī)調(diào)試部分僅在本設(shè)計(jì)的試驗(yàn)、調(diào)試階段使用。其中液晶屏控制和鍵盤控制是軟件部分程序循環(huán)的重要組成部分。
4.1.2開發(fā)平臺(tái)
本課題設(shè)計(jì)中采用的是32位ARM7TDMI-S CPU——LPC2138微控制器,程序開發(fā)平臺(tái)選用了對(duì)該系列單片機(jī)支持較好的ADS1.2.
ADS1.2是一個(gè)使用方便的集成開發(fā)環(huán)境,全稱是ARM Developer Suite v1.2。它是由ARM公司提供的專門用于ARM相關(guān)應(yīng)用開發(fā)和調(diào)試的綜合性軟件。在功能和易用性上比較SDT都有提高,是一款功能強(qiáng)大又易于使用的開發(fā)工具。ADS囊括了一系列的應(yīng)用,并有相關(guān)的文檔和實(shí)例的支持。使用者可以用它來編寫和調(diào)試各種基于ARM家族RISC處理器的應(yīng)用。可以用ADS來開發(fā)、編譯、調(diào)試采用包括C、C++和ARM匯編語言編寫的程序。AXD提供給基于Windows和UNIX使用的ARM調(diào)試器。它提供了一個(gè)完全的Windows和UNIX環(huán)境來調(diào)試C,C++,和匯編語言級(jí)的代碼。CodeWarriorIDE提供基于Windows使用的工程管理工具。它的使用使源碼文件的管理和編譯工程變得非常方便。但CodeWarriorIDE在UNIX下不能使用。
采用C語言編程具有以下一些特點(diǎn):、
語言簡(jiǎn)潔,使用方便靈活。C語言的關(guān)鍵字很少,ANSI C標(biāo)準(zhǔn)一共只有32的關(guān)鍵字,9種控制語句,壓縮一切不必要的成分。C語言的書寫形式比較自由,表示方法簡(jiǎn)潔。
可移植性好。C語言是通過編譯來得到可執(zhí)行代碼,便于移植。
表達(dá)能力強(qiáng)。C語言具有豐富的數(shù)據(jù)結(jié)構(gòu)類型和多種運(yùn)算符,可以根據(jù)需要采用整型、浮點(diǎn)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)類型、聯(lián)合類型等各種數(shù)據(jù)類型來實(shí)現(xiàn)各種其它高級(jí)語言難以實(shí)現(xiàn)的復(fù)雜數(shù)據(jù)的結(jié)構(gòu)運(yùn)算。
表達(dá)方式靈活。利用C語言提供的多種運(yùn)算符,可以組成各種表達(dá)式,還可以采用各種方法來獲得表達(dá)式的值,從而使用戶在程序設(shè)計(jì)中具有更大的靈活性。C語言的語法規(guī)則不太嚴(yán)格,程序設(shè)計(jì)的自由度比較大,程序的書寫格式自由靈活。
本設(shè)計(jì)軟件方案包括兩個(gè)部分:本機(jī)程序和聯(lián)機(jī)調(diào)試程序。本機(jī)程序是基于ARM Developer Suite v1.2軟件編寫的,聯(lián)機(jī)調(diào)試程序是基于C++ Builder 6.0編寫的。ARM主程序運(yùn)行流程如下圖4-3:
ARM主程序主要分為以下幾個(gè)模塊:
a)數(shù)據(jù)采集、處理:通道每個(gè)采樣循環(huán)采集1K數(shù)據(jù),ARM讀取通道數(shù)據(jù),在顯示數(shù)據(jù)之前對(duì)采集數(shù)據(jù)進(jìn)行相應(yīng)處理、計(jì)算。
一個(gè)正常采樣處理循環(huán)的主要流程如下圖4-4所示:
b)數(shù)據(jù)顯示:將數(shù)據(jù)處理后的數(shù)據(jù)和采集到溫度值顯示在液晶顯示屏中(如果為調(diào)試方式,應(yīng)同時(shí)將顯示的數(shù)據(jù)傳送給上位機(jī))。
c)鍵盤掃描處理:采用陣列掃描。定時(shí)掃描方式,有按鍵輸入則進(jìn)行相應(yīng)處理。
d)校準(zhǔn)處理:主要包括通道校準(zhǔn)、功率測(cè)量校準(zhǔn)、頻率測(cè)量校準(zhǔn)、功率頻響校準(zhǔn)。
e)通訊模塊:與上位機(jī)調(diào)試程序的接口。上層發(fā)送的校準(zhǔn)表數(shù)據(jù)、參數(shù)等都是通過這個(gè)模塊進(jìn)行相應(yīng)處理。該模塊主要在調(diào)試階段使用。
4.2軟件算法
4.2.1功率測(cè)量算法
根據(jù)AD8318器件的原理,其采用了對(duì)數(shù)放大器電路技術(shù),經(jīng)過平方單元輸出的電壓值和輸入信號(hào)的功率實(shí)現(xiàn)一一對(duì)應(yīng),從而實(shí)現(xiàn)峰值測(cè)量,使測(cè)量結(jié)果基本上與波形無關(guān)。在功率計(jì)算中,關(guān)鍵部分是測(cè)量脈沖調(diào)制信號(hào)的峰值功率值。為了得到準(zhǔn)確的峰值,脈沖信號(hào)的觸發(fā)電平的選擇直接影響的峰值測(cè)量的精度。在該設(shè)計(jì)中,觸發(fā)電平的選擇采用了預(yù)采樣的原理。其思想為,在固定的小觸發(fā)電平環(huán)境下獲得粗略的峰值500個(gè)。對(duì)粗采到的峰值功率進(jìn)行排序,選擇其中的最大的前20個(gè)值進(jìn)行平均。以平均值的1/2作為實(shí)際采樣的觸發(fā)電平的大小。在粗采樣獲得觸發(fā)電平后,進(jìn)行接下來的精采樣。精采樣以粗樣采得到的觸發(fā)電平作為觸發(fā)值,同樣采到500個(gè)功率值,并以粗采得到的功率值的4/5作為門限值,去掉低的上升沿和下降沿中的信號(hào)。將得到的信號(hào)再選取其中的3/5作為最后的峰值,進(jìn)行平均為最終獲得的功率值。
此時(shí)捕捉到的峰值僅僅是A/D采樣得到的十六進(jìn)制表示的電壓值。通過此時(shí)電壓和功率的對(duì)應(yīng)關(guān)系擬合出電壓值和功率值的曲線。擬合曲線根據(jù)不同衰減擋位進(jìn)行擬合。同時(shí)為了方便用戶能夠自主調(diào)整示波顯示,如前文所述,我們?cè)谕ǖ乐欣肨LC5620向通道送入直流偏置調(diào)節(jié),使用戶可以通過鍵盤調(diào)整顯示波形在顯示屏的位置。所以為了不影響我們對(duì)AD8318輸出電壓的測(cè)量,所以根據(jù)TLC5620電壓輸出:
其中VREF是參考電平,按前文圖解所示,VREF =2.5V;RNG為D/A輸出范圍選擇,恒為0.按照以上公式在計(jì)算功率之前先將A/D采樣得到的電壓值減掉其中直流偏置調(diào)節(jié)部分,才得到真實(shí)的信號(hào)輸入電壓值并進(jìn)入功率計(jì)算部分。
在功率測(cè)量中,我們經(jīng)常用dBm來表示功率,由于我們使用的是50歐姆的匹配網(wǎng)絡(luò),所以,由峰值檢波出來的電壓值和dBm的轉(zhuǎn)換關(guān)系滿足下面的等式:
所以,通過等式可以以dBm的形式表示信號(hào)的功率值。
4.2.2頻率測(cè)量算法
頻率計(jì)數(shù)器程序包括兩部分,一部分是頻率計(jì)算。從計(jì)數(shù)器得到的頻率為二進(jìn)制表示的25位數(shù)。由于計(jì)數(shù)的門長(zhǎng)是一秒。頻率記數(shù)模塊提供一個(gè)計(jì)數(shù)結(jié)束標(biāo)志信號(hào),ARM程序不斷取檢查該標(biāo)志信號(hào),當(dāng)標(biāo)志信號(hào)有效(為高)證明記數(shù)完成,再進(jìn)行實(shí)際頻率值的計(jì)算,避免出現(xiàn)記數(shù)過程與頻率計(jì)算過程時(shí)序錯(cuò)誤,造成測(cè)量值錯(cuò)誤的情況。但由于計(jì)數(shù)門長(zhǎng)(1s)相對(duì)于FPGA其他部分動(dòng)作速度,顯得過長(zhǎng),為使系統(tǒng)工作效率提高,故在軟件設(shè)計(jì)中加入一個(gè)1s定時(shí)器,在測(cè)頻開始后啟動(dòng)定時(shí)器,當(dāng)定時(shí)結(jié)束時(shí)再搜索計(jì)數(shù)結(jié)束標(biāo)志信號(hào)。如果使用直接搜索標(biāo)志方式,所造成的整個(gè)系統(tǒng)暫停1s,等待標(biāo)志信號(hào)出現(xiàn)。這勢(shì)必造成功率分析儀對(duì)信號(hào)響應(yīng)緩慢,不能滿足即時(shí)響應(yīng)的要求。通過頻率計(jì)數(shù)器得到的數(shù)據(jù)通過四次讀操作將頻率值讀入存儲(chǔ)器中,通過公式
得到計(jì)數(shù)值。其中,fdata_1是計(jì)數(shù)器中的低8位字節(jié),fdata_2是計(jì)數(shù)器中的中間8位字節(jié),fdata_3為計(jì)數(shù)器的高8位字節(jié),fdata_4為計(jì)數(shù)器的最高1位字節(jié)。計(jì)算得到的freq僅僅是計(jì)數(shù)器計(jì)數(shù)的結(jié)果值。由于信號(hào)在計(jì)數(shù)前經(jīng)過了預(yù)分頻,故,需要將freq乘以分頻比N得到的是最終的頻率值。
4.2.3參數(shù)測(cè)量
本系統(tǒng)中設(shè)計(jì)在精確測(cè)量計(jì)算射頻脈沖峰值功率的同時(shí),要將經(jīng)檢波輸出的電壓變化曲線想示波器一樣,顯示在液晶顯示屏幕上供用戶觀測(cè)和分析。所以在參數(shù)測(cè)量部分我們很大程度上借鑒了示波器設(shè)計(jì)原理。將波形特征參數(shù)計(jì)算并且按需要把參數(shù)的值顯示于屏幕菜單顯示區(qū),這些參數(shù)有峰峰值、平均值、有效值、周期,載波頻率以及溫度等。計(jì)算幅度類參數(shù)的基本依據(jù)是通道量程,計(jì)算時(shí)間類參數(shù)的基本依據(jù)是時(shí)基。每
評(píng)論