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

圖1 數字移相器系統組成
移相的原理是對信號進行采樣,把采樣點存放在緩沖器中,當脈沖到來時,輸出的采樣點是當前時刻對應的前一個或者后一個采樣點,從而達到移相的目的[4]。移相器主要由EC11回轉型編碼器和STM32F407芯片組成。信號輸入到移相器中,順時針和逆時針轉動EC11回轉型編碼器便可改變輸入波形的相位來移相。硬件電路如圖2所示。

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

圖3 軟件流程圖

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