數字移相技術的分析和實現
要實現移相,通常有兩個途徑:
本文引用地址:http://www.104case.com/article/3001.htm一是直接對模擬信號進行移相,如阻容移相,變壓器移相等,早期的移相通常采用這種方式。采用這種方式制造的移相器有許多不足之處,如:輸出波形受輸入波形的影響,移相操作不方便,移相角度隨所接負載和時間等因素的影響而產生漂移等.在此不予討論.另一個是隨電子技術的發展,特別是單片機技術的發展而興起的數字移相技術,是目前移相技術的潮流。數字移相技術的核心是:先將模擬信號或移相角數字化,經移相后再還原成模擬信號。
數字移相主要有兩種形式:
一種是先將正弦波信號數字化成,并形一張數據表存入ROM芯片中,此后可通過兩片D/A轉換芯片在單片機的控制下連續地循環輸出該數據表,就可獲得兩路正弦波信號,當兩片D/A轉換芯片所獲得的數據序列完全相同時,則轉換所得到的兩路正弦波信號無相位差,稱為同相。當兩片D/A轉換芯片所獲得的數據序列不同時,則轉換所得到的兩路正弦波信號就存在著相位差。相位差的值與數據表中數據的總個數及數據地址的偏移量有關。這種處理方式的實質是將數據地址的偏移量映射為信號間的相位值。
另一種是先將參考信號整形為方波信號,并以此信號為基準,延時產生另一個同頻的方波信號,再通過波形變換電路將方波信號還原成正弦波信號。以延時的長短來決定兩信號間的相位值。這種處理方式的實質是將延時的時間映射為信號間的相位值。
圖1給出了一個設計實例。單片機為8031,D/A轉換芯片采用兩片8位字長的DAC0832,由于DAC0832的輸出信號為電流型,故需加運算放大器將電流型信號轉換成電壓型信號。該設計中運算放大器采用雙極型雙運放4558。轉換所用的數據為256個8位字長的數據,隨程序一起存入ROM存儲器中,即一個信號周期有256個轉換值。
在進行D/A轉換的程序中,數據表中數據共有256個,每兩個相鄰數據之間的相位差為360o÷256=1.4o。我們只需改變R1中的值就可改變兩路正弦波的相位差。程序中R1=8,故第一路正弦波滯后第二路正弦波1.4o×8=11.2o。
利用單片機進行方波信號的移相則是數字移相的另一個途經,已有多種成功之作,有些偏重硬件,有些偏重軟件。總體說來,偏重硬件的精度較高,但制造及調試較復雜;偏重軟件,的結構簡單,成本較低,但往往精度受影響。本文介紹一種己獲得較為理想效果的設計。設計的原理框圖如圖2所示。
工作原理:作為參考信號的A,經整形后得到方波信號a,再利用鎖相技術對a作3600倍頻,并將此倍頻信號作為單片機中CTC的計數脈沖,以此來產生相移和測量移相的實際值。由于計數脈沖是通過鎖相環產生的,在鎖相環允許的頻率范圍內,計數脈沖始終是a信號的3600倍,因此,可以看成是將a信號的一個信號周期分為了3600份,且允許a的頻率可在一個小的范圍內波動。若一個信號周期為360o,那么在一個信號周期內每個計數脈沖即代表0.1o。我們只需以a信號為參考,延時若干個計數脈沖的時間來產生c信號即可做到移相,改變延時計數脈沖的個數即可改變移相值,亦可記錄兩個信號的上沿(或下沿)間的脈沖個數來獲得兩信號的相位差。正是由于鎖相環的存在,才使得移相信號B與參考信號A的頻率完全相同。比起由軟件測得A信號的周期后再來產生B信號的方式來,其精度要高得多。鎖相環倍頻的頻率愈高則移相的最小單位愈小,若作7200倍頻,那么在一個信號周期內每個計數脈沖即代表0.05o。
圖3是以上述方式進行移相的時序圖,設計數脈沖的頻率是a信號的360o倍,那么從a信號的上沿開始經N個計數脈沖后產生c信號的上沿,則有a信號超前c信號 N×0.1o。但我們需要的是A信號與B信號之間的移相。A信號與a信號的相位是相同的,但c信號與B信號的相位,由于波形轉換電路的存在而不相同,其相位差視波形轉換電路的參數而定。故A信號與B信號之間的實際移相值無法由N×0.1o來計算。要獲得A信號與B信號之間的實際移相值,可將B信號整形成b信號(兩信號相位相同)后反饋給單片機,由單片機測量出a信號與b信號之間的計數脈沖個數n即可,實際移相值為n×0.10。改變N的值即可改變移相值。
要實現上述設計,除需要用鎖相環產生計數脈沖外,還需要三個16位的計數器,分別用來計N,n及180o的值。筆者將8032中的計數器作如下分配:T0計N的值、T1計n的值、T2計180o的值。T0、T1及T2的啟停全部由中斷服務程序控制。接線如圖2所示。具體是:
① a信號的上沿產生INT0中斷,其中斷服務程序分別將-N及0賦給TH0TL0和TH1TL1;然后使T0、T1開始計數。
② T0歸零,其中斷服務程序關閉T0;置P3.0;-1800賦TH2TL2;使T2開始計數。
③ T2歸零,其中斷服務程序清P3.0;關閉T2。
④ b信號的上沿產生INT0中斷,其中斷服務程序關閉T1;讀取TH1TL1的計數值n。
通過以上介紹,我們可以看出:以D/A轉換方式實現的移相,雖然所用元件少,但輸出信號的頻率難以細調,特別是移相的最小單位太大(1.4o/步)。在50Hz頻率下,要達到0.1o/步移相細度難以辦到。因此,該方式只適合于對頻率要求不高,且移相角度固定的場合。
以延時輸出方波的方式實現的移相,其硬件電路比較復雜(鎖相及波形變換電路)。輸出信號的頻率以參考信號的頻率為準,而參考信號的頻率則可以精確給定。移相的最小單位可小于0.1o/步,這就為無級移相提供了基礎。因此,該方式可用于對頻率要求高,且需360o無級移相的場合。■
參考資料
1王秉時.移相技術的發展與移相器產品的進步.電測與儀表,1998(3)
2 沈德金.陳粵初. MCS-51系列單片機接口電路與應用程序實例.北京航空航天大學出版杜
鎖相環相關文章:鎖相環原理
評論