吳小帥
(中國電子科技集團(tuán)公司第十三研究所,河北 石家莊050051)
隨著技術(shù)的發(fā)展,傳統(tǒng)意義上單一的功率放大器已不能滿足工程的需求,功能復(fù)雜的功率放大器需求量逐年上升。功能復(fù)雜的功率放大器主要是在單一功率放大器的基礎(chǔ)上增加了測量、控制以及和上位機(jī)的通信功能。對于復(fù)雜的脈沖功率放大器常常需要對調(diào)制脈沖的正脈寬和占空比進(jìn)行測量,以判斷功率放大器是否工作正常。對于正脈寬和占空比的測量,如果采用硬件電路實(shí)現(xiàn)則會占用比較大的PCB板面積,而且測量誤差較大,而采用單片機(jī)實(shí)現(xiàn)則會更加便捷。
通常利用單片機(jī)的定時(shí)器功能測量正脈寬和占空比,而復(fù)雜脈沖功率放大器定時(shí)器除測量正脈寬和占空比外,還被用于產(chǎn)生串口通訊波特率、數(shù)據(jù)的定時(shí)采集等。本文提出了利用單片機(jī)C8051F121的可編程計(jì)數(shù)器陣列(PCA)對調(diào)制脈沖的脈寬和占空比進(jìn)行測量。
可編程計(jì)數(shù)器陣列(PCA)提供增強(qiáng)的定時(shí)器功能,與標(biāo)準(zhǔn)8051計(jì)數(shù)器/定時(shí)器相比,它需要較少的CPU干預(yù)。PCA包含一個(gè)專用的16位計(jì)數(shù)器/定時(shí)器和6個(gè)16位捕捉/比較模塊。每個(gè)捕捉/比較模塊有自己的I/O線(CEXn),當(dāng)被允許時(shí),I/O線通過交叉開關(guān)連到端口I/O。計(jì)數(shù)器/定時(shí)器由一個(gè)可編程的時(shí)基信號驅(qū)動,時(shí)基信號有6個(gè)輸入源:系統(tǒng)時(shí)鐘、系統(tǒng)時(shí)鐘/4、系統(tǒng)時(shí)鐘/12、外部振蕩器時(shí)鐘源8分頻、定時(shí)器0溢出和ECI線上的外部時(shí)鐘信號。每個(gè)捕捉/比較模塊可以被編程為獨(dú)立工作在以下幾種工作方式之一:邊沿觸發(fā)捕捉、軟件定時(shí)器、高速輸出、頻率輸出和8位PWM,如圖1所示。
圖1 PCA原理框圖
為了實(shí)現(xiàn)對調(diào)制脈沖占空比和正脈寬測量,需將被測調(diào)制脈沖連接到PCA模塊0和模塊1對應(yīng)的IO引腳上,同時(shí)將PCA設(shè)置為邊沿觸發(fā)模式。將模塊0設(shè)置為上升沿觸發(fā)來采樣脈沖上升沿到來的時(shí)間,模塊1設(shè)置為下降沿觸發(fā)來采樣脈沖下降沿到來的時(shí)間。定義3個(gè)數(shù)組shangsheng[i](i=0,1…9)、capture_value[j](j=0,1…19)和CFCnt[x](x=0,1,…,9)。利用shangsheng[i]記錄調(diào)制脈沖上升沿到來的時(shí)間,capture_value[j]同時(shí)記錄調(diào)制脈沖上升沿和下降沿到來的時(shí)間,而CFCnt[x]則記錄在等待調(diào)制脈沖上升沿和下降沿到來期間定時(shí)器溢出的次數(shù)。對被測調(diào)制脈沖進(jìn)行10個(gè)周期的采樣,避免采樣數(shù)據(jù)出現(xiàn)錯誤,從而帶來計(jì)算誤差。三者之間的關(guān)系如圖2所示。
圖2 采樣時(shí)序圖
對數(shù)組shangsheng[i](i=0,1,…,9)、capture_value[j](j=0,1,…,19)和CFCnt[x](x=0,1,…,9),中的數(shù)據(jù)進(jìn)行處理。提取數(shù)組shangsheng[i](i=0,1,…,9)中的數(shù)據(jù)和capture_value[j](j= 0,1,…,19)中的數(shù)據(jù)進(jìn)行比較,當(dāng)shangshen[i]=capture_value[j]時(shí),此時(shí)如果shangsheng[i+1]=capture_value[j+2]成立,則定義flag,同時(shí)令flag=j,停止比較。通過計(jì)算可以獲得被測調(diào)制脈沖的正脈寬(PosWidth)和負(fù)脈寬(NegWidth),進(jìn)一步獲得該脈沖的周期(Period)和占空比(DutyRatio),計(jì)算公式如式(1)~式(4)所示。
PosWidth=CFCnt[flag+1]×65 536+capture_value[flag+1]-capture_value[flag]
(1)
NegWidth=CFCnt[flag+2]×65 536+capture_value[flag+2]-capture_value[flag+1]
(2)
Period=PosWidth+NegWidth
(3)
DutyRatio=100×PosWidth÷Period
(4)
在單片機(jī)初始化時(shí),需要進(jìn)行如下設(shè)置:
(1) 使能內(nèi)部振蕩器、不對內(nèi)部振蕩器進(jìn)行分頻(OSCICN = 0X80),通過設(shè)置系統(tǒng)時(shí)鐘選擇寄存器(CLKSEL.1~0)選擇單片機(jī)的系統(tǒng)時(shí)鐘SYSCLK,該系統(tǒng)時(shí)鐘也是PCA的時(shí)基信號;
(2) 對I/O引腳進(jìn)行初始化,利用端口I/O交叉開關(guān)寄存器XBR0、XBR1和XBR2將I/O引腳分配給PCA數(shù)字外設(shè);
(3) 使能PCA數(shù)字外設(shè)(PCA0CN.6 = 1),將PCA0的模塊0設(shè)置為上升沿觸發(fā)(PCA0CPM0.5 =1),模塊1設(shè)置為下降沿觸發(fā)(PCA0CPM1.4=1);
(4) 使能C8051F121的總中斷(EA = 1)、PCA0中斷(EIE1.3=1)、捕捉/比較標(biāo)志中斷(PCA0CPM0 = PCA0CPM1 = 1)以及PCA計(jì)數(shù)器/定時(shí)器溢出中斷(PCA0MD = 1)。
初始化完成后,開始對脈沖進(jìn)行采樣,當(dāng)對調(diào)制脈沖完成10個(gè)周期的采樣時(shí),將采集到的數(shù)據(jù)存儲到shangsheng[i](i=0,1,…,9)、capture_value[j](j=0,1,…,19)和CFCnt[x](x=0,1,…,9)中,然后關(guān)閉PCA0中斷。對采集到的數(shù)據(jù)進(jìn)行處理,計(jì)算得到脈沖的占空比和脈寬,軟件執(zhí)行流程如圖3所示。
圖3 軟件執(zhí)行流程
在將C8051F121的系統(tǒng)時(shí)鐘設(shè)置為3種不同數(shù)值的情況下,測量得到的大量數(shù)據(jù),提取部分?jǐn)?shù)據(jù)形成數(shù)據(jù)表1~表3。表中的實(shí)際值是利用示波器測量獲得,測量值時(shí)由單片機(jī)C8051F121測量得到,其中表1的測試條件為C8051F121系統(tǒng)時(shí)鐘24.5 MHz,表2的測試條件為系統(tǒng)時(shí)鐘73.5 MHz,表3的測試條件為系統(tǒng)時(shí)鐘98 MHz。對表1的數(shù)據(jù)進(jìn)行分析發(fā)現(xiàn)當(dāng)測量脈沖的周期小于4 μs時(shí)無法測量得到準(zhǔn)確數(shù)值,例如表1中的第2、3項(xiàng)。說明在該測試條件下當(dāng)測量脈沖的周期小于4 μs時(shí)則無法測量。表3中的數(shù)據(jù)說明C8051F121測得的脈沖周期為1.2 μs,最小脈寬為400 ns。由于C8051F121的工作頻率最高為100 MHz,可以認(rèn)為C8051F121可以測量的最小脈寬為400 ns,最小周期為1.2 μs。將表1、表2和表3中的測量值和實(shí)際值進(jìn)行比較,正脈寬的測量值和實(shí)際值的最大誤差為62 ns,占空比的測量值和實(shí)際值的最大誤差為0.8%,該誤差完全可以滿足脈沖功率放大器調(diào)制脈沖脈寬和占空比的測量,充分證明了利用C8051F121的數(shù)字外設(shè)PAC測量脈沖脈寬和占空比的可行性和準(zhǔn)確性。
表1 24.5 MHz下脈寬和占空比的測量
表2 73.5 MHz下脈寬和占空比的測量
表3 98 MHz下脈寬和占空比的測量
本文提出的測量方法精確度高,易于實(shí)現(xiàn),可以測量的最小脈沖周期為1 μs,最小脈寬為400 ns,基本滿足脈沖功放中對調(diào)制脈沖占空比和正脈寬的測量。對于復(fù)雜的脈沖功放而言,不再占用控制電路的定時(shí)器資源,避免定時(shí)器資源緊張的局面。
參考文獻(xiàn)
[1] 潘琢金.C8051FF120/1/2/3/4/5/6/7 C8051F130/1/2/3 系列混合信號ISP Flash微控制器數(shù)據(jù)手冊[M].沈陽:沈陽航空工業(yè)學(xué)院,2004.
[2] 戚棟,王寧會,孫炳全.基于差動電壓放大器的占空比測量電路設(shè)計(jì)[J].儀表技術(shù),2004(4):65-66.
[3] 閆勇,楊紀(jì)明,吳培根,等.基于TMS320F2812DSP的高精度占空比測量[J].測控技術(shù), 2009,28(10):34-36.
[4] 鄭鋒,王巧芝,李英健,等.單片機(jī)應(yīng)用系統(tǒng)典型模塊開發(fā)大全[M].北京:中國鐵道出版社,2013.
[5] 徐愛鈞,徐陽.Keil C51單片機(jī)高級語言應(yīng)用編程與實(shí)踐[M].北京:電子工業(yè)出版社,2013.
[6] 徐愛鈞.智能化測量控制儀表原理與設(shè)計(jì)[M].3版.北京:北京航空航天大學(xué)出版社,2012.
[7] 陳進(jìn). C語言程序設(shè)計(jì)技巧及其應(yīng)用[M].上海:上海科學(xué)技術(shù)出版社,1992.
[8] 譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2001.
[9] 劉遠(yuǎn)社,王立偉,陳輝.基于調(diào)節(jié)振蕩頻率的脈沖占空比測量[J].電子測量技術(shù),2007,30(7): 14-15.
[10] 裴江南,劉寧.基于C8051F300的低成本占空比測量儀設(shè)計(jì)[J].電子質(zhì)量, 2015(2):34-36.
[11] 湯黎明,常本康,劉鐵兵,等.精密低頻信號頻率與占空比測量電路的設(shè)計(jì)與應(yīng)用[J].醫(yī)學(xué)研究生學(xué)報(bào),2002(2):351-352.
[12] 王偉,楊濟(jì)民,韓曉麗,等.基于C8051F060的自適應(yīng)高精度頻率計(jì)設(shè)計(jì)[J].電子測量技術(shù),2009,32(6):105-108.
[13] 毛志德,呂善偉.基于FPGA的等精度頻率計(jì)設(shè)計(jì)[J].電子測量技術(shù), 2006(4):85-88.
[14] 鐘波,孟曉峰.基于自適應(yīng)分頻的頻率測量方法及其實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用, 2005,31(9):29-32.
[15] 聶毅.單片機(jī)定時(shí)器中斷時(shí)間誤差的分析及補(bǔ)償[J].微計(jì)算機(jī)信息,2002,18(4): 37-40.
[16] 翁嘉民,周成虎,杜大軍,等.單片機(jī)典型系統(tǒng)設(shè)計(jì)與制作實(shí)例解析[M].北京:電子工業(yè)出版社, 2014.
[17] 祖一康,徐妙婧.基于單片機(jī)和nRF905的多點(diǎn)溫度無線采集系統(tǒng)[J].電子科技,2017, 30(7):99-102.