新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 數字移相技術的分析和實現

        數字移相技術的分析和實現

        作者:武漢理工大學 沈維聰 長江輪船總公司職工大學 劉義菊 時間:2001-07-04 來源: 收藏

        要實現移相,通常有兩個途徑:

        本文引用地址:http://www.104case.com/article/3001.htm

        一是直接對模擬信號進行移相,如阻容移相,變壓器移相等,早期的移相通常采用這種方式。采用這種方式制造的移相器有許多不足之處,如:輸出波形受輸入波形的影響,移相操作不方便,移相角度隨所接負載和時間等因素的影響而產生漂移等.在此不予討論.另一個是隨電子技術的發展,特別是單片機技術的發展而興起的數字移相技術,是目前移相技術的潮流。數字移相技術的核心是:先將模擬信號或移相角數字化,經移相后再還原成模擬信號。

        數字移相主要有兩種形式:

        一種是先將正弦波信號數字化成,并形一張數據表存入ROM芯片中,此后可通過兩片DA轉換芯片在單片機的控制下連續地循環輸出該數據表,就可獲得兩路正弦波信號,當兩片DA轉換芯片所獲得的數據序列完全相同時,則轉換所得到的兩路正弦波信號無相位差,稱為同相。當兩片DA轉換芯片所獲得的數據序列不同時,則轉換所得到的兩路正弦波信號就存在著相位差。相位差的值與數據表中數據的總個數及數據地址的偏移量有關。這種處理方式的實質是將數據地址的偏移量映射為信號間的相位值。

        另一種是先將參考信號整形為方波信號,并以此信號為基準,延時產生另一個同頻的方波信號,再通過波形變換電路將方波信號還原成正弦波信號。以延時的長短來決定兩信號間的相位值。這種處理方式的實質是將延時的時間映射為信號間的相位值。

        1給出了一個設計實例。單片機為8031DA轉換芯片采用兩片8位字長的DAC0832,由于DAC0832的輸出信號為電流型,故需加運算放大器將電流型信號轉換成電壓型信號。該設計中運算放大器采用雙極型雙運放4558。轉換所用的數據為2568位字長的數據,隨程序一起存入ROM存儲器中,即一個信號周期有256個轉換值。

        在進行D/A轉換的程序中,數據表中數據共有256個,每兩個相鄰數據之間的相位差為360o÷256=1.4o。我們只需改變R1中的值就可改變兩路正弦波的相位差。程序中R18,故第一路正弦波滯后第二路正弦波1.4o×811.2o

        利用單片機進行方波信號的移相則是數字移相的另一個途經,已有多種成功之作,有些偏重硬件,有些偏重軟件。總體說來,偏重硬件的精度較高,但制造及調試較復雜;偏重軟件,的結構簡單,成本較低,但往往精度受影響。本文介紹一種己獲得較為理想效果的設計。設計的原理框圖如圖2所示。

        工作原理:作為參考信號的A,經整形后得到方波信號a,再利用鎖相技術對a3600倍頻,并將此倍頻信號作為單片機中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系列單片機接口電路與應用程序實例.北京航空航天大學出版杜

        鎖相環相關文章:鎖相環原理


        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 昌平区| 江北区| 汨罗市| 牡丹江市| 西安市| 托克托县| 庄浪县| 福鼎市| 紫金县| 舞阳县| 八宿县| 阿合奇县| 龙江县| 六安市| 定南县| 金溪县| 通榆县| 沙河市| 色达县| 茌平县| 汉沽区| 延川县| 莱西市| 定兴县| 兖州市| 房产| 九江县| 白河县| 临猗县| 清远市| 疏附县| 赤峰市| 岳阳县| 昌宁县| 海伦市| 尤溪县| 湖北省| 永顺县| 禹州市| 荥阳市| 铁力市|