黃明俊,秦碩,王緯國
(1.國營蕪湖機(jī)械廠,安徽蕪湖,241007;2.空軍航空維修技術(shù)學(xué)院,湖南長沙,410200)
為降低成本和提高信號發(fā)生器的通用性,通過采用頻率合成技術(shù),生成基本的正弦波、方波和三角波,再通過乘法器對各種波形進(jìn)行相乘運(yùn)算,實現(xiàn)將需要傳遞的信息調(diào)制到正弦波上進(jìn)行傳遞,既降低了程序設(shè)計的難度,又提高了可靠性。

圖1 信號生成框圖
本文利用STM32芯片和自帶的模擬輸出,通過編程直接進(jìn)行頻率合成生成標(biāo)準(zhǔn)的正弦波和三角波直接輸出至信號輸出端口,正弦波和三角的參數(shù)可根據(jù)測試需求進(jìn)行設(shè)定。
頻率合成技術(shù)的理論起源于二十世紀(jì)30年代左右,早期的頻綜是由一組晶振組成,能輸出多少個輸出頻點,由晶體的數(shù)目所決定。需要由人工來實現(xiàn)頻率切換,主要由晶體來決定頻率的準(zhǔn)確度和穩(wěn)定度,很少與電路有關(guān)。
隨著數(shù)字技術(shù)的飛速發(fā)展,特別是集成電路集成度的快速上升,使得直接數(shù)字頻率合成(Direct Digital Frequency Synthesize)技術(shù)的實現(xiàn)成為可能。直接數(shù)字頻率合成技術(shù)是一種基于全數(shù)字技術(shù),從相位概念出發(fā)直接合成所需波形的一種頻率合成技術(shù)。通過采用非常高速的D/A轉(zhuǎn)換和數(shù)字電路,在帶寬、分辨率、連續(xù)性和轉(zhuǎn)換時間等指標(biāo)方面極大的超過了一般的數(shù)字合成技術(shù)。
直接數(shù)字頻率合成器中除了數(shù)模轉(zhuǎn)換器和濾波器之外,幾乎所有的部件都屬于數(shù)字器件,因此便于集成,且調(diào)整方便靈活,電路功耗低、體積小和可靠性高。
對于較為復(fù)雜的波形通過乘法器進(jìn)行處理,接下來重點闡述將正弦波與三角波相乘,得到航空測試用周期性幅值變化中頻信號的設(shè)計過程。為了將傳輸信息通過正弦波進(jìn)行傳遞,設(shè)計一個中頻(400Hz)正弦波與一個低頻(0.5Hz)的三角波相乘獲得一個幅值可變的正弦波信號,也就是將三角波表示的信息調(diào)制到正弦波上進(jìn)行傳遞。正弦波和三角波采用STM32單片機(jī)通過DDS頻率合成技術(shù)實現(xiàn),乘法運(yùn)算采用AD633芯片實現(xiàn),并進(jìn)行功率輸出。
STM32系列單片機(jī)是由意法半導(dǎo)體公司設(shè)計的32位微控制器,采用了ARM公司的Cortex-M3核心架構(gòu),適用于高性能、低成本、低功耗的嵌入式應(yīng)用場合,具有以下特點:(1)基本型時鐘頻率為36MHz;互聯(lián)型、增強(qiáng)型系列時鐘頻率為72MHz。(2)32k 到 128k 的閃存。(3)功耗低。(4)豐富的內(nèi)置資源(寄存器和外設(shè)功能)。(5)GPIO輸入模式包括浮空輸入、下拉輸入、上拉輸入、模擬輸入等;輸出模式包括開漏復(fù)用輸出、推挽輸出、推挽復(fù)用輸出、開漏輸出等。(6)外圍接口豐富。(7)輸出功率可以通過軟件編程來進(jìn)行控制。(8)數(shù)據(jù)處理快,效率高:中央處理單元采用了零等待處理器,在運(yùn)行過程中能實現(xiàn)無響應(yīng)時間的數(shù)據(jù)處理。(9)實用價值高:在數(shù)據(jù)接口的設(shè)計方面,采用了引腳和接口等設(shè)計,通過這樣的設(shè)計使其可以完全滿足單片機(jī)實際應(yīng)用的需求。(10)數(shù)據(jù)采集功能強(qiáng):在內(nèi)部接口方面,其實現(xiàn)了溫度傳感器的集成,并設(shè)置了模數(shù)轉(zhuǎn)換器。(11)用高級定時器代替了現(xiàn)有的傳統(tǒng)通用性定時器。(12)數(shù)據(jù)傳輸效率高,內(nèi)部結(jié)構(gòu)設(shè)置了存取寄存器,能夠在不影響中央處理單元的運(yùn)行效率的情況下實現(xiàn)數(shù)據(jù)的雙向傳輸。

圖2 選型說明
根據(jù)本文的實際需求,具體型號上選用了STM32F103 RCT6,即基礎(chǔ)型、64&66引腳、256Kb閃存容量、QFP(方型扁平式)封裝、-40℃~+85℃溫度范圍。
AD633乘法器是由亞德諾半導(dǎo)體公司(ADI)設(shè)計的一款功能完整的四象限模擬乘法器,包括高阻抗差分X和Y輸入以及高阻抗求和輸入(Z)。低阻抗輸出電壓為10V標(biāo)稱滿量程,由一個嵌入式齊納二極管提供。AD633經(jīng)過激光校準(zhǔn),保證總精度為滿量程的2%。在10Hz至10kHz帶寬內(nèi),Y輸入的非線性典型值小于0.1%,折合到輸出端的噪聲典型值低于100μV均方根。AD633具有1MHz帶寬和20V/μs壓擺率,并且能驅(qū)動容性負(fù)載,使用方便靈活,成本較低。另外,AD633的簡單易用并不影響其多功能性。可以通過Z輸入訪問輸出緩沖放大器,從而可以將兩個或更多乘法器的輸出相加,提高乘法器增益,將輸出電壓轉(zhuǎn)換為電流,以適合各種配置應(yīng)用。
AD633的應(yīng)用場合包括乘法、除法、平方運(yùn)算,調(diào)制/解調(diào)、相位檢測,電壓控制放大/衰減/濾波等。

圖3 AD633乘法器的原理框圖與引腳定義
本文首先利用STM32自帶的DAC轉(zhuǎn)器模塊實現(xiàn)正弦波形和三角波形輸出。該DAC模塊12位電壓輸出數(shù)模轉(zhuǎn)換器。DAC可以按8位或12位模式進(jìn)行配置,本方法按12位配置,并且與DMA控制器配合使用。在12位模式下,數(shù)據(jù)可以采用左對齊或右對齊。DAC有兩個輸出通道,每個通道各有一個轉(zhuǎn)換器。在DAC雙通道模式下,每個通道可以單獨進(jìn)行轉(zhuǎn)換;當(dāng)兩個通道組合在一起同步執(zhí)行更新操作時,也可以同時進(jìn)行轉(zhuǎn)換。可通過一個輸入?yún)⒖茧妷阂_VREF+來提高分辨率。
以三角波為例闡述波形生成方法。進(jìn)行DAC輸出編程時,首先需要將GPIO時鐘、DAC時鐘使能,配置GPIO引腳功能,初始化DAC配置。將DAC_CR寄存器中的相ENx位置1,即可接通對應(yīng)DAC通道。采用12位左對齊的方式,利用軟件將數(shù)據(jù)加載到DAC_DHR12Lx[15:4]位,存儲到加載寄存器DHRx,通過該寄存器傳輸?shù)紻AC通道x。經(jīng)過一個APB1時鐘周期后,DAC_DHRx寄存器中存儲的數(shù)據(jù)將自動轉(zhuǎn)移到DAC_DORx寄存器,當(dāng)DAC_DORx加載了DAC_DHRx內(nèi)容時,模擬輸出電壓將在一段時間tSETTLING后產(chǎn)生,具體時間取決于電源電壓和模擬輸出負(fù)載。模擬輸出電壓的大小介于0和VREF之間,由DAC_DORx寄存器內(nèi)的數(shù)字決定,計算公式如下。

式(1)中,VREF表示參考電壓,DORX表示寄存器內(nèi)的數(shù)值。V輸出表示模擬輸出電壓。當(dāng)根據(jù)定時器的要求,將三角波的波形建立一個數(shù)據(jù)庫,每間隔一定的時間,就將數(shù)據(jù)庫里的數(shù)值輸入DORX,那么輸出就會產(chǎn)生對應(yīng)的輸出電壓,形成三角波輸出。
當(dāng)建立正弦波的參數(shù)表,或者根據(jù)正弦波的計算公式,在定時器的控制下,每間隔一定時間,就將正弦波的波形數(shù)據(jù)輸入到DORX寄存器,那么波形輸出端就會產(chǎn)生正弦波信號。
STM32輸出的正弦波信號X接AD633的1號引腳,三角波信號Y接AD633的3號引腳,AD633的6號引腳接地,輸出信號表示為:

AD633接線關(guān)系如下圖4所示。

圖4 AD633乘法應(yīng)用電路
具體電路如下圖5所示。

圖5 信號生成電路原理圖
為驗證電路設(shè)計的正確性,本文使用Protues 8.0仿真器進(jìn)行實驗仿真。Proteus是英國Labcenter Electronics公司開發(fā)的一款電路仿真軟件,包括電路仿真、PCB設(shè)計和虛擬模型仿真,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086、MSP430、Cortex和DSP等系列處理器。
Proteus可提供30多種元件庫,超過8000種模擬、數(shù)字元器件。可按照設(shè)計的要求選擇不同生產(chǎn)廠家的元器件。此外,對于元器件庫中沒有的元件,設(shè)計者也可以通過軟件自己創(chuàng)建。
Proteus還提供各種虛擬儀器,如常用的電流表,電壓表,示波器,計數(shù)/定時/頻率計,SPI調(diào)試器等虛擬終端。支持圖形化的分析功能等。
Proteus特別適合對嵌入式系統(tǒng)進(jìn)行軟硬件協(xié)同設(shè)計與仿真,其包含強(qiáng)大的調(diào)試工具,具有對寄存器和存儲器、斷點和單步模式IAR C-SPY,Keil、MPLAB等開發(fā)工具的源程序進(jìn)行調(diào)試的功能;能夠觀察代碼在仿真硬件上的實時運(yùn)行效果;對顯示,按鈕,鍵盤等外設(shè)的交互可視化進(jìn)行仿真。
仿真電路如下圖6所示。

圖6 AD633乘法器仿真電路
上圖中,兩個信號發(fā)生器組件分別產(chǎn)生正弦波和三角波輸入信號,U1表示AD633,兩個信號發(fā)生器分別產(chǎn)生正弦波和三角波,示波器顯示輸入信號和輸出信號。通過乘法器將正弦波調(diào)制到三角波上面,實現(xiàn)正弦波信號的幅值周期性變化,最終實現(xiàn)信號的傳遞。
設(shè)計正弦波的頻率為400Hz,三角波為0.5Hz,將頻率高的正弦波調(diào)制到低頻的三角波,實現(xiàn)信號的傳遞。

圖7 輸入波形

圖8 輸出波形
上圖中黃色部分為正弦波,紅色為三角波,通過乘法器后得到橘紅色的有效值變化的波形。通過調(diào)節(jié)三角波信號的頻率可以使產(chǎn)生信號的幅值變換速度改變。當(dāng)三角波的頻率增加時,幅值改變的頻率也增加,當(dāng)三角波的頻率減少時,幅值改變的頻率也減少,該信號已經(jīng)成功應(yīng)用在某型飛機(jī)測試設(shè)備中,取得了很好的測試效果。