張嬌
(西安石油大學(xué)光電油氣測(cè)井與檢測(cè)教育部重點(diǎn)實(shí)驗(yàn)室,陜西西安,710065)
移相器是一種用于改變信號(hào)的相位的器件,用于產(chǎn)生與輸入信號(hào)存在相位差的同頻信號(hào),是相位計(jì)量,測(cè)試中常用儀器之一,廣泛應(yīng)用于航空、電網(wǎng)、通訊和儀表測(cè)量等方向[1]。不僅僅如此,在某些測(cè)量與控制電路中,也需要用到同頻率而相位不一樣的信號(hào),以適應(yīng)測(cè)量及控制的需要。本文提出了一種操作簡(jiǎn)單方便,可根據(jù)需要手動(dòng)連續(xù)可變的數(shù)字移相器。采用了片上資源豐富的STM32F407作為主控單片機(jī),可大大節(jié)省外部硬件連接,節(jié)約了成本,具有發(fā)展前景。
本系統(tǒng)組成主要分為3個(gè)部分,主控芯片STM32F407,4.3寸LCD顯示屏,EC11回轉(zhuǎn)編碼器。整個(gè)系統(tǒng)的工作流程是由STM32F407的ADC采集外部信號(hào),然后將信號(hào)數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)緩沖區(qū),其中數(shù)據(jù)存儲(chǔ)的過程采用的是ADC觸發(fā)DMA的方式,即用ADC每次采集數(shù)據(jù)以后觸發(fā)DMA,直接將數(shù)據(jù)送至緩沖區(qū),并沒有經(jīng)過CPU處理,通過這種方式直接提高了系統(tǒng)的工作效率[2]。系統(tǒng)組成框圖如圖1所示。
在本設(shè)計(jì)中,首先由STM32F407內(nèi)部ADC獲取外部信號(hào),然后將獲取到的信號(hào)通過DMA送至數(shù)據(jù)緩沖區(qū),在本次設(shè)計(jì)中,數(shù)據(jù)緩沖區(qū)的長(zhǎng)度為4000,要發(fā)送的數(shù)據(jù)指針始終指向數(shù)據(jù)的原始序列的中位值,之后再將原始數(shù)據(jù)送至STM32F407內(nèi)部DAC,由DAC輸出移相信號(hào)。需要將信號(hào)左右移位的時(shí)候,只需要根據(jù)回轉(zhuǎn)編碼器的信號(hào)改變數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)指針位置即可。這種移相方式的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,不需要過多的硬件[3]。

圖1 數(shù)字移相器系統(tǒng)組成
移相的原理是對(duì)信號(hào)進(jìn)行采樣,把采樣點(diǎn)存放在緩沖器中,當(dāng)脈沖到來時(shí),輸出的采樣點(diǎn)是當(dāng)前時(shí)刻對(duì)應(yīng)的前一個(gè)或者后一個(gè)采樣點(diǎn),從而達(dá)到移相的目的[4]。移相器主要由EC11回轉(zhuǎn)型編碼器和STM32F407芯片組成。信號(hào)輸入到移相器中,順時(shí)針和逆時(shí)針轉(zhuǎn)動(dòng)EC11回轉(zhuǎn)型編碼器便可改變輸入波形的相位來移相。硬件電路如圖2所示。

圖2 系統(tǒng)的硬件電路
EC11編碼器的A和B引腳需要外接兩個(gè)10K的電阻作為上拉電阻給這兩個(gè)引腳提供高電平,它的C引腳和E引腳接低電平,那么在旋轉(zhuǎn)旋鈕的時(shí)候就會(huì)產(chǎn)生脈沖來保證信號(hào)可以實(shí)現(xiàn)的相位調(diào)節(jié)。
整個(gè)系統(tǒng)軟件的執(zhí)行過程為:首先,對(duì)整個(gè)系統(tǒng)進(jìn)行初始化,包括ADC,DMA,DAC,定時(shí)器,LCD顯示屏等。初始化完成之后再在LCD顯示屏上設(shè)置ADC采樣頻率。之后由ADC把信號(hào)采樣數(shù)據(jù)通過DMA存至緩沖隊(duì)列,在ADC的轉(zhuǎn)換過程中,根據(jù)回轉(zhuǎn)編碼器的移相信號(hào),DAC輸出數(shù)據(jù)隊(duì)列中的值,完成數(shù)字移相器的實(shí)現(xiàn)。系統(tǒng)軟件流程圖3如圖所示。
整個(gè)數(shù)字移相器的關(guān)鍵就在于EC11回轉(zhuǎn)編碼器。EC11回轉(zhuǎn)編碼器是由一個(gè)中心有軸的光電碼盤,其上有環(huán)形通和暗的刻線,有光電發(fā)射和接納器件讀取,取得四組正弦波信號(hào)組合成A、B、C、D,每個(gè)正弦波信號(hào)相差相位差,本設(shè)計(jì)只采樣了A,B兩路信號(hào),將C信號(hào)作為了參考信號(hào),疊加在A、B兩相上。由于A、B亮相相差,能夠經(jīng)過比擬A相在前還是B相在前,借此判別編碼器的正轉(zhuǎn)和反轉(zhuǎn)。經(jīng)過編碼器的正轉(zhuǎn)和反轉(zhuǎn)不同可以得到不同的脈沖,如表1所示。
本設(shè)計(jì)提出的基于STM32F407單片機(jī)可程控的數(shù)字移相器,采用回轉(zhuǎn)編碼器調(diào)整移相角度,數(shù)據(jù)采集和信號(hào)輸出均利用STM32F407的片上A/D和D/A,可以節(jié)省成本。同時(shí)利用DMA存儲(chǔ)數(shù)據(jù),節(jié)省了CPU占用,提高了系統(tǒng)的工作效率。

圖3 軟件流程圖

表1 輸出脈沖與旋轉(zhuǎn)方向的關(guān)系
參考文獻(xiàn)
[1]孟獻(xiàn)儀,楊朔.基于STC89C52的程控移相器的設(shè)計(jì)[J].電子制作,2016(23):11-13.
[2]葉愛華,趙明鏡,程宜凡.基于單片機(jī)的數(shù)字移相技術(shù)[J].科技廣場(chǎng),2004(08):61-62.
[3]沈維聰,劉義菊.數(shù)字移相技術(shù)的分析和實(shí)現(xiàn)[J].電子產(chǎn)品世界,2001(10):38-39.
[4]鄒立華,趙巍.基于單片機(jī)控制的數(shù)字移相器設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2003(03):46-47,49.