杜威,孟麗囡,寧武
(遼寧工業(yè)大學(xué) 電子與信息工程學(xué)院,遼寧錦州,121000)
寬頻函數(shù)信號發(fā)生器是一種能夠產(chǎn)生寬帶正弦、三角波、方波及脈沖等多種函數(shù)波形,且其頻率、幅度等參數(shù)可進(jìn)行調(diào)整輸出的儀器。寬頻函數(shù)信號發(fā)生器的研究與設(shè)計(jì)對生產(chǎn)與生活都具有重要的意義[1]。目前,DDS 技術(shù)作為信號發(fā)生器設(shè)計(jì)的關(guān)鍵性新技術(shù),具有輸出波形頻率分辨率高、穩(wěn)定性好和便于數(shù)字化控制等優(yōu)勢,因此在信號發(fā)生器領(lǐng)域中具有重要的地位和廣泛的應(yīng)用[2]。
直接頻率合成技術(shù)作為目前信號發(fā)生器設(shè)計(jì)的關(guān)鍵性技術(shù),在信號發(fā)生器領(lǐng)域中具有重要的地位。目前大多數(shù)的信號發(fā)生器都采用CPU 作為函數(shù)信號發(fā)生器的控制核心,操作和控制DDS 芯片產(chǎn)生函數(shù)信號波形。伴隨微處理器技術(shù)和微波集成電路的進(jìn)步,信號發(fā)生器逐漸采用液晶顯示屏、觸摸式鍵盤取代模擬的度盤、表頭、旋鈕控制和顯示方式,構(gòu)成良好的人機(jī)交互界面。相比于以往功耗數(shù)百瓦的函數(shù)信號發(fā)生器,采用DDS 技術(shù)的信號發(fā)生器功耗極低僅為數(shù)十瓦。信號的頻率穩(wěn)定性能夠達(dá)到晶體振蕩器實(shí)現(xiàn)的水平,采用直接頻率數(shù)字合成的信號發(fā)生器可以實(shí)現(xiàn)多臺模擬式信號發(fā)生器才能實(shí)現(xiàn)的功能[3]。
本設(shè)計(jì)實(shí)現(xiàn)函數(shù)信號發(fā)生器的周期性函數(shù)波形信號的產(chǎn)生,通過STM32F103C8T6 單片機(jī)讀取輸入的鍵盤信息,經(jīng)過程序處理后送入AD9833 波形產(chǎn)生單元以及D/A 轉(zhuǎn)換器實(shí)現(xiàn)波形的調(diào)頻和調(diào)幅功能,并且通過OLED 顯示屏實(shí)時顯示相關(guān)函數(shù)波形的類型、頻率以及幅度參數(shù)。通過單片機(jī)技術(shù)實(shí)現(xiàn)函數(shù)信號的波形、頻率、幅度參數(shù)調(diào)節(jié),主控單片機(jī)、AD9833 波形生成電路、程控放大電路、按鍵電路、顯示電路、D/A 轉(zhuǎn)換等組成;系統(tǒng)軟件程序主要包括鍵盤讀取,波形類型、頻率、幅度選擇,OLED 顯示相關(guān)的程序設(shè)計(jì)。系統(tǒng)整體框圖如圖1 所示。
圖1 整體結(jié)構(gòu)框圖
0~10MHz 多功能函數(shù)信號發(fā)生器的系統(tǒng)硬件電路由主控電路、AD9833 波形產(chǎn)生電路、程控放大電路、D/A 轉(zhuǎn)換電路、顯示電路以及按鍵電路等組成。
STM32F103C8T6 單片機(jī)最小系統(tǒng)核心部分主要由時鐘電路、復(fù)位電路、供電電源電路三個部分構(gòu)成[4]。利用該最小系統(tǒng)就可以實(shí)現(xiàn)寬頻函數(shù)信號發(fā)生器的控制目的,完成矩陣鍵盤掃描、OLED 顯示、函數(shù)波形信號切換、頻率以及幅度參數(shù)調(diào)整等基本功能。
系統(tǒng)最小系統(tǒng)電路由時鐘電路、復(fù)位電路、調(diào)試下載電路、啟動方式選擇以及核心微處理器組成。
系統(tǒng)的復(fù)位電路采用10k 的上拉電阻和0.1μF 的電容以及獨(dú)立按鍵構(gòu)成,與單片機(jī)的NRST 引腳連接,一般的復(fù)位電路來說,只要在單片機(jī)的NRST 管腳上保持10ms 及以上的低電平信號,單片機(jī)就可以有效地復(fù)位[5]。
系統(tǒng)時鐘電路的外部高速時鐘源利用是4MHz~16MHz晶體振蕩器,一般取典型值8MHz 大小的晶振和22pF 大小的電容組成,分別與單片機(jī)的OSC_IN 引腳和OSC_OUT 引腳連接,給外設(shè)提供時鐘,通過STM32F103C8T6內(nèi)部倍頻器設(shè)置為9 倍頻,使其最高工作主頻率為72MHz,這樣能使單片機(jī)快速地處理外部事件。外部低速時鐘電路由32.768kHz 的晶體振蕩器和15pF 大小的電容組成[6],用來給RTC 提供實(shí)時時鐘。主控電路原理圖如圖2 所示。
圖2 主控電路原理圖
AD9833 是一款采用DDS 技術(shù)、低功耗、可編程波形發(fā)生器,器件采用MSOP 封裝,非常小巧,外圍電路較為簡單,僅需要1 個外部參考時鐘、一個低精度電阻器和一個解耦電容器,通過SPI 接口和單片機(jī)相連,通過編程可生成正弦波、三角波、方波[7]。輸出頻率和相位都可通過軟件編程,易于調(diào)節(jié)。AD9833 的主頻時鐘為25MHz 時,精度為0.1Hz,主頻時鐘為1MHz 時,精度可以達(dá)到0.004Hz。AD9833的內(nèi)部電路主要有數(shù)控振蕩器(NCO)、頻率和相位調(diào)節(jié)器、正弦查找表(Sine ROM)、數(shù)模轉(zhuǎn)換器(DAC)、電壓調(diào)整器。AD9833 有3 根串行接口線,與SPI、QSPI、MICROWIRE 和DSP 接口標(biāo)準(zhǔn)兼容,在串口時鐘SCLK 的作用下,數(shù)據(jù)是以16 位的方式加載到設(shè)備上,F(xiàn)SYNC 引腳是使能引腳,電平觸發(fā)方式,低電平有效。進(jìn)行串行數(shù)據(jù)傳輸時,F(xiàn)SYNC 引腳必須置低,要注意FSYNC 有效到SCLK 下降沿的建立時間的最小值。FSYNC 置低后,在16 個SCLK的下降沿數(shù)據(jù)被送到AD9833 的輸入移位寄存器,在第16個SCLK 的下降沿FSYNC 可以被置高,但要注意在SCLK下降沿到FSYNC 上升沿的數(shù)據(jù)保持時間ts 的最小和最大值。當(dāng)然,也可以在FSYNC 為低電平的時候,連續(xù)加載多個16位數(shù)據(jù),僅在最后一個數(shù)據(jù)的第16 個SCLK 的下降沿的時候?qū)SYNC 置高,最后要注意的是,寫數(shù)據(jù)時SCLK 時鐘為高低電平脈沖,但是,在FSYNC 剛開始變?yōu)榈蜁r,SCLK必須為高電平。
AD9833 的外圍電路如圖3 所示。用矩陣鍵盤設(shè)定頻率大小以數(shù)字信號方式從單片機(jī)的3 個I/O 口和AD9833 連接。采用DDS 芯片AD9833 作為寬頻函數(shù)信號發(fā)生器的波形產(chǎn)生核心器件,采用數(shù)控方式調(diào)整頻率。通過FSYNC、SCLK、SDATA 三個口寫入數(shù)據(jù)。當(dāng)FSYNC 引腳為低電平時,數(shù)據(jù)在串行時鐘(SCLK)的控制下作為16 位字載入AD9833 器件具體的寄存器之中。頻率值的改變由寫入頻率寄存器中的頻率碼決定。通過程序控制,將寄存器中的值送入相位累加器輸入端,相位累加器的輸出經(jīng)過正弦查詢表將數(shù)字相位信息作為查找表的地址并將其相位信息轉(zhuǎn)換成幅度,得到階梯狀的波形信號。
圖3 波形產(chǎn)生電路原理圖
VCA821 是一款直流耦合,具有高帶寬,以線性分貝連續(xù)可變電壓控制的增益放大器,它提供了一個高阻抗差動輸入單端轉(zhuǎn)換增益控制輸入,使用時會因?yàn)樗O(shè)定的最大增益值而變化,它的最大增益倍數(shù)設(shè)定是由增益電阻(RG)和反饋電阻(RF)共同決定的[8]。VCA821 內(nèi)部體系最大增益的設(shè)置基于兩個外部電阻,它們分別被稱為增益電阻(RG)和反饋電阻(RF),VCA821的增益放大倍數(shù)由增益電阻(RG)和反饋電阻(RF)共同決定,根據(jù)計(jì)算增益放大倍數(shù)的公式如式(1)所示:
VCA821 電路的增益放大倍數(shù)為10。AD9833 將以確定好頻率和波形種類經(jīng)過1k 電阻輸入到VCA821 的VIN 引腳,由于是程控放大,需要的放大倍數(shù)可通過編程經(jīng)過AD5320把數(shù)據(jù)傳給VCA821。最終確定頻率和幅值的各種波形經(jīng)過濾波電路輸出到示波器上。程控放大電路如圖4 所示。
圖4 程控放大電路原理圖
由于輸出電壓幅值是0~5V 可調(diào),AD9833 理論上最大輸出幅值為0.65V,據(jù)此,預(yù)設(shè)將增益放大電路總的放大倍數(shù)設(shè)置為10 倍,以確保AD9833 輸出幅值無法達(dá)到理論值時可以通過放大來達(dá)到任務(wù)要求。函數(shù)信號發(fā)生器為了可以輸出高性能的波形,采用通用型運(yùn)算放大器和乘法型D/A轉(zhuǎn)換器來實(shí)現(xiàn)幅度放大,其對乘法型D/A轉(zhuǎn)換器的轉(zhuǎn)換速度要求高,成本代價較高。綜合設(shè)計(jì)的難易程度與成本,最終選取數(shù)字電位器與固定增益的放大器結(jié)合實(shí)現(xiàn)波形的幅度連續(xù)可調(diào)。
AD5320 是單片12 位電壓輸出D/A 轉(zhuǎn)換器,單電源工作,電壓范圍為+2.7V~5.5V。片內(nèi)高精度輸出放大器提供滿電源幅度輸出,AD5320 利用一個3 線串行接口,時鐘頻率可高達(dá)30MHz,能與標(biāo)準(zhǔn)的SPI、QSPI、MICROWIRE和DSP 接口標(biāo)準(zhǔn)兼容[9]。單片機(jī)4 個輸出端口分別連接AD5320 的SCLK、DIN、SYNC 和VDD,以進(jìn)行輸入數(shù)字信號,最后通過VOUT 引腳輸出模擬信號通過外部電路傳給放大電路來實(shí)現(xiàn)D/A 轉(zhuǎn)換。D/A 轉(zhuǎn)換電路如圖5 所示。
圖5 D/A 轉(zhuǎn)換電路原理圖
在本設(shè)計(jì)中利用0.96 寸I2C 通信OLED 屏作為函數(shù)信號發(fā)生器的顯示設(shè)備,實(shí)現(xiàn)函數(shù)波形種類、頻率、幅度等參數(shù)的顯示。
顯示電路作為本次設(shè)計(jì)中的人機(jī)交互設(shè)備,其作用主要完成輸出函數(shù)信號的波形種類、信號幅度以及頻率值的顯示。當(dāng)使用者通過矩陣鍵盤輸入所設(shè)定的頻率、波形種類等參數(shù)信息時,經(jīng)過單片機(jī)處理數(shù)據(jù)控制AD9833 波形產(chǎn)生電路與幅度放大電路調(diào)整波形參數(shù),通過OLED 顯示屏實(shí)時顯示設(shè)定的參數(shù)信息。使用者根據(jù)顯示屏顯示的參數(shù)信息結(jié)果,可以判斷所設(shè)置的參數(shù)信息是否正確,適當(dāng)?shù)剡M(jìn)行參數(shù)信息調(diào)整。顯示電路如圖6 所示。
圖6 顯示電路原理圖
在本次設(shè)計(jì)中,需要為單片機(jī)提供3.3V 電源、為AD9833 提供5V 電源、為VCA821 提供±5V 電源。電源電路為單片機(jī)或其他外部硬件分別提供穩(wěn)定的3.3V 電源和±5V 電源,電源電路如圖7 所示。
圖7 電源電路原理圖
當(dāng)STM32F103C8T6 單片機(jī)一上電即進(jìn)行OLED 顯示初始化、AD9833 波形產(chǎn)生電路初始化、幅度放大電路初始化操作,OLED 顯示預(yù)先設(shè)定好的頻率、幅度、波形等參數(shù)信息,AD9833 波形生成電路以及幅度控制電路實(shí)時響應(yīng)。當(dāng)使用者未按下按鍵S1時,進(jìn)入步進(jìn)的頻率設(shè)置界面。首先,通過按鍵S2 進(jìn)行頻率值的加減操作,步進(jìn)值為1kHz。然后,通過按鍵S3 進(jìn)行幅度值的加減操作,步進(jìn)值為0.1V。最后通過按鍵S4 實(shí)現(xiàn)波形的切換,實(shí)現(xiàn)所有的參數(shù)設(shè)定。整體系統(tǒng)的軟件設(shè)計(jì)實(shí)現(xiàn)了寬頻函數(shù)信號發(fā)生器的設(shè)計(jì)要求。
主程序軟件流程圖如圖8 所示。通過單片機(jī)協(xié)調(diào)控制外圍的AD9833波形生成電路、幅度調(diào)理電路實(shí)現(xiàn)了寬頻函數(shù)信號發(fā)生器的設(shè)計(jì)。采用按鍵鍵盤配合OLED 顯示屏實(shí)現(xiàn)相關(guān)的波形種類、頻率、幅度的顯示和參數(shù)設(shè)定。
圖8 主程序流程圖
單片機(jī)經(jīng)過三線式SPI 方式將所要實(shí)現(xiàn)的波形、頻率參數(shù)寫入AD9833的內(nèi)部寄存器。當(dāng)FSYNC 引腳被置為低電平時,16 位串行數(shù)據(jù)字(SDATA)在串行時鐘的作用下通過AD9833 的SDATA引腳寫入具體的內(nèi)部寄存器之中。頻率值的改變由寫入頻率寄存器中的頻率字決定。由于AD9833 串行方式傳輸需要16位字節(jié),而單片機(jī)每次以8 位字節(jié)傳送數(shù)據(jù),每個周期內(nèi)只有8 個SCLK 下降沿。因此在第一批傳送數(shù)據(jù)結(jié)束時,P2.1應(yīng)該仍保持低電平,同時啟動第二次的寫操作來傳輸數(shù)據(jù)的第二個字節(jié)。AD9833 首先接收MSB 寫入目標(biāo)寄存器,4 個MSB 為控制信息,接下來的4 個為地址,最后的8 個LSB將包含數(shù)據(jù)信息。
以SPI 串行方式向AD9833內(nèi)部的控制寄存器寫入數(shù)據(jù),設(shè)置AD9833 的工作模式。采用PSEL 和FSEL 控制位方式選取具體的頻率寄存器和相位寄存器。有兩種數(shù)據(jù)源可以選擇,當(dāng)Freq_SFR 為0 時將數(shù)據(jù)分兩次寫入頻率寄存器0,首先寫入低14 位數(shù)據(jù),然后寫入高14 位數(shù)據(jù),最后設(shè)置相位,頻率寄存器0輸出波形。當(dāng)Freq_SFR 為1 時將數(shù)據(jù)分兩次寫入頻率寄存器1,首先寫入低14 位數(shù)據(jù),然后寫入高14 位數(shù)據(jù),最后設(shè)置相位,頻率寄存器1 輸出波形。在設(shè)置的8 個時鐘周期后,內(nèi)部的D/A 轉(zhuǎn)換器將產(chǎn)生數(shù)據(jù)輸出[10]。如果想改變波形的相位或者頻率時,通過向AD9833 重新寫入16 位新數(shù)據(jù)完成。向AD9833 寫入0x2000 輸出正弦波;向AD9833 寫入0x2002 輸出三角波;向AD9833 寫入0x2028 輸出方波。實(shí)現(xiàn)波形生成電路流程圖如圖9 所示。
圖9 波形生成程序流程圖
AD9833 波形生成電路與單片機(jī)通過SPI 三線式連接。單片機(jī)的TXD 驅(qū)動AD9833 的SCLK 引腳,RXD 驅(qū)動串行數(shù)據(jù)線SDATA。FSYNC 信號通過單片機(jī)的位可編程引腳P2.1獲得。波形生成電路測試包括正弦波、三角波以及方波三種波形信號的輸出頻率、幅度、失真等參數(shù),具體測試如下。
AD9833 內(nèi)部的正弦查詢表將來自頻率和相位寄存器的相位信息轉(zhuǎn)換成幅度信息,從而在輸出端產(chǎn)生正弦波。將Bit Mode 位清0,AD9833 的輸出口IOUT 與IOUTB 將提供正弦波輸出,正弦波參數(shù)數(shù)據(jù)記錄表如表1 所示。1MHz的正弦波如圖10 所示。
表1 正弦波參數(shù)數(shù)據(jù)記錄表
圖10 正弦波波形測試
對記錄的10 組正弦波數(shù)據(jù)進(jìn)行計(jì)算得頻率、幅度精度平均值。計(jì)算結(jié)果表明:正弦波的頻率精度達(dá)到0.20%,幅度平均精度達(dá)到0.89%。在高頻段由于放大器的帶寬所限,幅度輸出精度略有下降。
轉(zhuǎn)換器將產(chǎn)生10 位的線性三角波。將Bit Mode 位置1,AD9833 的輸出口IOUT 與IOUTB 將提供三角波輸出。三角波參數(shù)數(shù)據(jù)記錄表如表2 所示。1MHz 三角波的測試結(jié)果如圖11 所示。
表2 三角波參數(shù)數(shù)據(jù)記錄表
圖11 三角波波形測試
對記錄的10 組三角波數(shù)據(jù)進(jìn)行計(jì)算得頻率、幅度精度平均值。計(jì)算結(jié)果表明:三角波的頻率精度達(dá)到0.16%,幅度精度達(dá)到2.20%。設(shè)計(jì)的7 階巴特沃思低通濾波器和放大器在高頻段受到帶寬所限是導(dǎo)致誤差的主要原因。
DAC 輸出后經(jīng)過低通濾波電路來改善波形的抖動性能,然后將平滑的正弦波施加于AD9833 內(nèi)部比較器的輸入端VIN 引腳。當(dāng)控制寄存器中的Bit OPBITEN 和Bit SIGN/PIB置1 時,在SIGN BIT OUT 引腳將輸出方波信號。方波參數(shù)數(shù)據(jù)記錄表如表3 所示。1MHz 方波測試結(jié)果如圖12 所示。
圖12 方波波形測試
對記錄的10 組方波數(shù)據(jù)進(jìn)行計(jì)算得頻率、幅度精度平均值。計(jì)算結(jié)果表明:方波的頻率精度達(dá)到0.48%,幅度精度達(dá)到0.59%。
本文設(shè)計(jì)了基于DDS 的0~10MHz 多功能函數(shù)信號發(fā)生器設(shè)計(jì),運(yùn)用電子技術(shù)、單片機(jī)控制技術(shù)及DDS 技術(shù)實(shí)現(xiàn)周期性函數(shù)波形的產(chǎn)生。利用按鍵與液晶屏構(gòu)成良好的人機(jī)交互界面,通過按鍵設(shè)定輸出函數(shù)波形的種類、頻率、幅度等參數(shù),并通過液晶顯示屏OLED 實(shí)時顯示設(shè)置的參數(shù)。通過各部分硬件電路分模塊調(diào)試及軟件調(diào)試,最終完成寬頻函數(shù)信號發(fā)生器樣機(jī)制作?;贒DS 的0~10MHz 多功能函數(shù)信號發(fā)生器設(shè)計(jì)實(shí)現(xiàn)了正弦波、三角波、方波等周期性函數(shù)波形輸出功能,輸出波形的頻率在0~10MHz 范圍內(nèi)連續(xù)可調(diào)以及幅度0~5V范圍連續(xù)可調(diào)。本設(shè)計(jì)的創(chuàng)新之處在于采用DDS 技術(shù)具有頻率分辨率高、穩(wěn)定度好的優(yōu)勢,該寬頻函數(shù)信號發(fā)生器可廣泛應(yīng)用于現(xiàn)代科研、教學(xué)試驗(yàn)、儀表測量等領(lǐng)域,裝置具有低功耗、低成本的特點(diǎn),實(shí)現(xiàn)了綠色環(huán)保、低碳節(jié)能。