?

多功能函數信號發生器設計

2017-12-05 02:52王國帥馬振興
自動化儀表 2017年11期
關鍵詞:正弦波矩形波形

王 珊,王 利,王國帥,楊 敏,馬振興

(中北大學機電工程學院,山西 太原 030051)

多功能函數信號發生器設計

王 珊,王 利,王國帥,楊 敏,馬振興

(中北大學機電工程學院,山西 太原 030051)

目前市場上的信號發生器產生的波形種類較少,主要有方波、正弦波、鋸齒波,且信號發生器價格昂貴,而試驗室等多種場合可能需要用到更復雜的波形來作為模擬試驗的輸入。針對該問題,設計了基于STM32的函數信號發生器。該信號發生器采用D/A轉換,通過軟件來實現對信號的類型、頻率、電壓等的控制。信號發生器以STM32作為控制核心,外部接入鍵盤,通過鍵盤的輸入來實現對波形和頻率的快速改變;利用函數庫math.h,不僅能輸出使用較多的正弦波、方波、鋸齒波、三角波,還能輸出指數函數、對數函數等任意函數的模擬信號,也可以產生頻率、電壓隨時間變化的波形。試驗表明:該信號發生器設計簡單,能夠實現對信號的波形、頻率等的靈活控制,系統穩定可靠,輸出信號失真小。該發生器具有低成本、低功耗的特點,能夠應用在試驗室等場合中。

STM32;D/A轉換;信號發生器;math.h庫;正弦函數;指數函數;對數函數;雙曲余弦函數

0 引言

隨著電子技術的發展,信號發生器的應用越來越廣泛,在科學研究、生產實踐和教學領域等都得到普遍應用[1-2]。特別是在通信系統的科研試驗中,常常需要用到各種頻率、相位的信號源。目前,信號發生器的設計主要有以下幾種方法:①由運算放大器及分立元件構成,通過比較器產生方波輸出,方波通過積分產生三角波輸出[3];②通過51單片機與D/A轉換器結合來設計產生信號,D/A轉換器以DAC0832為主[4-7];③利用直接頻率合成(direct digital synthesizer,DDS)技術來產生信號[8-12],通常,直接頻率合成器主要由相位累加器、加法器、波形存儲ROM、D/A轉換器和低通濾波器(low pass filter,LPF)構成。通過分析,方法一輸出頻率范圍窄,電路參數設定繁瑣,其頻率大小的測量往往需要通過硬件電路的切換來實現,因此操作不方便[13]。方法二操作方便,但51單片機主頻較低,內部所包含的數字模擬轉換器(digital to analog converter,DAC)一般為8位,精度較低,因此產生的波形不平滑,不能滿足使用要求。方法三所產生的波形平滑,頻率較高,理論上可產生任意形狀的波形,但使用較復雜。

本系統采用STM32結合內部所包含的12位DAC即可實現,產生的波形頻率較高,且波形平滑;利用math.h函數,可產生任意函數的波形,結構簡單,輸出信號失真小,具有低成本、低功耗的特點,可滿足試驗室等場合的使用。

1 系統整體方案設計

信號發生器系統結構框圖如圖1所示。系統主要由人機交互接口模塊、波形生成模塊、數模轉換輸出模塊3部分構成。人機交互接口模塊包括ARM系統、鍵盤輸入檢測、液晶顯示和JTAG接口。波形生成模塊主要由相關軟件構成,利用math.h函數可生成階梯波、正弦波、矩形波、三角波、鋸齒波以及雙曲線、指數曲線、對數曲線、圓等任意函數的波形,最后通過D/A轉換將離散的點連接,使其成為模擬量。

圖1 系統結構框圖Fig.1 Block diagram of the system stucture

2 系統硬件電路設計

2.1 STM32處理器

本設計采用ARM Cortex-M4內核的32位處理器STM32F407作為系統主控制器,處理器基于高性能的ARM Cortex-M4的32位精簡指令集計算機內核,工作頻率高達168 MHz,帶有32位浮點運算單元,支持多種數字信號處理指令集,具有很高的處理速度和運算能力。該處理器還具有2個12位DAC,能夠完成信號的數模轉換,并且能夠同時輸出2種不同的波形;2個直接存儲器存?。╠irect memory access,DMA)控制器,DMA傳輸方式無需CPU控制傳輸,其通過硬件直接開辟1條I/O到RAM的數據傳輸通道,加快了數據的處理速度;6個串口能夠完成控制器和計算機、無線傳輸模塊數據的交互。處理器含有16 KB的快速存儲空間、64 KB的非易失存儲器,方便數據的大容量、快速存儲。

2.2 人機交互模塊

人機交互模塊包括串口、按鍵、JTAG接口以及液晶顯示部分。通過按鍵輸入來設定參數項,同時也可通過串口輸入來設定具體的參數,如頻率、幅值等,同時將輸出的波形用液晶顯示屏顯示出來。

2.3 數模轉換模塊

對所要繪制的波形每周期取一定數量的點,將對應的值保存到存儲器中,然后通過直接DMA傳輸到DAC中,并通過DAC轉換輸出,這樣便可以產生相對應的波形。STM32芯片內部集成DAC,DAC模塊是12位電壓輸出數模轉換器。DAC可以按8位或12位模式進行配置,并且可與DMA控制器配合使用。在12位模式下,數據可以采用左對齊或右對齊。DAC有2個輸出通道,每個通道各有1個轉換器。在DAC雙通道模式下,每個通道可以單獨進行轉換;當2個通道組合在一起同步執行更新操作時,也可以同時進行轉換。通過1個輸入參考電壓引腳VREF+(與ADC共享)來提高分辨率。

3 系統軟件設計

本系統的硬件設計相對較簡單,信號的發生主要依靠軟件來實現。波形的產生是通過DAC變換來實現的(矩形波除外),所產生信號的頻率受DAC轉化速率的限制。對于STM32F407,如果未選擇硬件觸發,那么經過1個外圍總線低速預分頻器(簡稱APB1)時鐘周期后,DAC_DHRx寄存器中存儲的數據將自動轉移到DAC_DORx寄存器,即完成了D/A轉換。APB1時鐘最大頻率為42 MHz,完成A/D轉換需要1/42 μs;如果選擇硬件觸發,完成D/A轉換需要3個APB1時鐘周期,故完成模數轉換需要1/13 μs。若每個周期的波形用20個點來進行繪制,則信號發生器的最高頻率可達1.5 MHz。

3.1 矩形波的輸出

矩形波的輸出采用的是脈沖調制的方法,假定定時器工作在向上計數脈沖寬度調制(pulse width modulation,PWM)模式,當計數器值CNT小于捕獲/比較寄存器值 CCRx()時,I/O輸出低電平(0);當 CNT 大于等于CCRx時,I/O輸出高電平;當CNT達到自動重載值(TIMx_ARR)時,重新歸0,然后重新向上計數,依次循環。改變CCRx,就可以改變PWM輸出的占空比;改變TIMx_ARR,就可以改變PWM輸出的頻率。通過改變定時器的時鐘也可以改變頻率。此處定時器時鐘與APB1相同,為42 MHz。此信號發生器通過示波器輸出的方波(占空比為50%的矩形波)波形如圖2所示,其頻率為83.33 kHz。通過示波器輸出的占空比為10%的矩形波波形圖如圖3所示,其頻率為100 kHz。

圖2 方波波形圖Fig.2 Square waveform

圖3 矩形波波形圖Fig.3 Rectangula waveform

3.2 正弦波的產生

對于采用模數轉換生成的波形(除矩形波),其電壓值為0~3.3 V。經過線性轉換后,數字輸入會轉換為0~VREF+(基準電壓)之間的輸出電壓。各DAC通道引腳的模擬輸出電壓通過以下公式確定:

首先將信號的離散值保存到存儲器中(SDRAM和Flash均可),然后利用STM32的DMA功能將數據傳輸到DAC的存儲器中,再通過DAC進行模數轉換輸出。在這里采用了定時器TIM6,用來設置DAC的轉換時間。

正弦信號的離散值可直接由函數得到,并保存在數組 sinTable[]中,其值為:

式中:tableSize為所取得點數,點數越少,輸出波形頻率越高。

為保證圖形的準確度,點數最小取100個,n指第幾個點,n 取值為 0~99。

正弦波生成的流程如圖4所示。

圖4 正弦波生成流程圖Fig.4 Flowchart of sine wave generation

示波器輸出的正弦波波形如圖5所示。

圖5 正弦波波形Fig.5 Sine wave waveform

3.3 三角波及鋸齒波的產生

三角波、鋸齒波以及其他函數的波形產生原理與正弦波相同。將信號的離散值保存到存儲器中,然后利用STM32的DMA將數據傳輸到DAC的存儲器中,通過模數轉換后進行輸出。示波器輸出的鋸齒波波形如圖6所示。

圖6 鋸齒波波形Fig.6 Sawtooth wave waveform

3.4 指數函數與雙曲余弦函數的產生

本系統借助于math.h函數,可以產生包含于此頭文件下的任意函數的波形。產生的指數函數信號波形如圖7所示。

圖7 指數函數信號波形圖Fig.7 Exponential function signal waveform

指數分布是大多數電子設備的失效分布,在一定條件下,指數分布適用于某些機械及機電設備的可靠性及壽命的分析研究[14]。通過改變信號發生器產生的指數函數的特定參數,對機電系統壽命進行預估。

產生的雙曲余弦函數信號波形如圖8所示。

圖8 雙曲余弦函數信號波形圖Fig.8 Hyperbolic cosine function signal waveform

雙曲余弦函數在研究雙曲余弦高斯光束在左手平板材料中的傳輸特性中,可以起到輸入信號的作用[15]。其傳輸特性為:在同一傳輸面工作頻率越大,中心光強越強。通過改變頻率來進行試驗,以及其他需要進行此信號輸入的場合,可以將其作為信號源來產生多種頻率的信號。

4 結束語

本文設計了一種多功能函數信號發生器,利用STM32的高頻率特性、DMA功能以及芯片內部含有12位DAC來實現。通過按鍵操作或串口輸入的方式,可以識別所要產生波形的種類,并可以通過串口輸入設定其所產生的頻率、幅值等。由于系統所采用DAC具有較高的分辨率,所以輸出信號失真小。該系統結構簡單,能夠通過程序來靈活控制波形,利用math.h函數,能夠產生可用函數進行表示的任意波形。今后可以在此基礎上進一步完善,如產生調制波等。

[1]朱其新,李輝,楊輝,等.基于SOPC的三相信號發生器設計[J].自動化與儀表,2010,31(4):16-19.

[2]于萌,王超.基于單片機的函數信號發生器系統設計[J].電子制作,2015(24):13.

[3]曹一江,羅彬.集成CMOS正弦信號發生器的電路設計[J].哈爾濱理工大學學報,2007,12(3):123-125.

[4]張新.基于單片機的信號發生器系統設計[D].長春:東北師范大學,2011.

[5]田蛟,展文豪,張宏偉.基于單片機的信號發生器設計[J].信息技術,2011(5),87-90.

[6]張長峰,余道杰,王建民.基于單片機的函數信號發生器設計[C]//鄭州:河南省科學技術協會,2010.

[7]李偉龍.基于單片機的函數信號發生器設計[J].機械與自動化,2013(10):83-84.

[8]陳小橋,黃恩民,張雪濱,等.基于單片機與AD9851的信號發生器[J].實驗室探索與研究,2011,30(8):98-102.

[9]吳窮.嵌入式智能信號發生器的設計與實現[D].大連:大連理工大學,2014.

[10]杜丁丁,馬坤茹.數字信號發生器的設計[J].河北農業大學學報,2009,32(1):117-121.

[11]劉洋,韓鵬,喬占仙,等.基于ARM的DDS信號發生器設計[J].國外電子測量技術,2011,30(7):66-69.

[12]周研,劉祖深.基于雙DDS跳變的捷變頻率發生器的設計[J].電子測量與儀器學報,2010,24(6):590-593.

[13]張文軍.基于單片機的智能信號發生器設計[J].機電工程技術,2010,39(9):40-42.

[14]耿延鵬.基廣義指數分布的應力強度模型可靠度的估計[D].杭州:浙江工商大學,2017.

[15]黃永超,蔡達鋒,張廷蓉.雙曲余弦高斯光束在左手平板材料中的傳輸特性[J].光學技術,2015,41(5):430-432.

Design of the Multi-Functional Signal Generator

WANG Shan,WANG Li,WANG Guoshuai,YANG Min,MA Zhenxing
(School of Mechanical Engineering,North University of China,Taiyuan 030051,China)

At present,the commercial available signal generators only provide a few types of waveforms,mainly including square wave,sine wave and sawtooth wave,and these generators are expensive,while in laboratory and various other occasions,more complex waveforms may be necessary to be used as inputs in simulation experiments.Aiming at these problems,a function signal generator based on STM32 has been designed.In this signal generator,D/A conversion is used,and the control of signal type,frequency,voltage is achieved by software.With STM32 as the control core,the signal generator connects the keyboard externally to achieve therapid changes of wave shape and frequency through its input;by adopting math.h function library,besides the waveforms used frequently,such as sine wave,square wave,sawtooth wave,and triangular wave,this signal generator also outputs the analog signals of exponential function,logarithmic function and other functions as well as the waveforms which frequency and voltage are changing along with time.Experiments show that the signal generator is simple in design;it achieves the flexible control for signal waveform,frequency and etc.;the system is stable and reliable;the distortion of the output signal is small.The generator is low cost and low power consumption.This function signal generator can be applied in laboratory and other occasions.

STM32;D/A conversion;Signal generator;Math.h library;Sine function;Exponential function;Logarithmic function;Hyperbolic cosine function

TH7;TP2

A

10.16086/j.cnki.issn1000-0380.201711025

修改稿收到日期:2017-06-08

中北大學研究生科技立項基金資助項目(20161302)

王珊(1992—),女,在讀碩士研究生,主要從事機電控制系統方向的研究。E-mail:1256142954@qq.com。王利(通信作者),博士,教授,主要研究方向為機電系統控制。E-mail:2507865786@qq.com。

猜你喜歡
正弦波矩形波形
基于時域波形掩護的間歇采樣干擾對抗研究
基于Halbach陣列磁鋼的PMSM氣隙磁密波形優化
矩形面積的特殊求法
化歸矩形證直角
采用BC5016S的純正弦波逆變器設計及制作
用于SAR與通信一體化系統的濾波器組多載波波形
全新邁騰B7L車噴油器波形測試
從矩形內一點說起
基于STM32的風力擺控制系統的設計
Matlab環境下基于遺傳算法的正弦波信號參數提取
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合