基于STM32的新型信号发生器设计①

2017-11-01 11:27姜建国王梦谦王海星
化工自动化及仪表 2017年3期
关键词:正弦波方波寄存器

姜建国 王梦谦 王海星

(东北石油大学电气信息工程学院)

基于STM32的新型信号发生器设计①

姜建国 王梦谦 王海星

(东北石油大学电气信息工程学院)

给出信号发生器的硬件组成,阐述DDS芯片AD9833的工作原理,SPI通信过程,正弦波、三角波、方波3种信号的软件实现方法。搭建控制平台验证信号发生器的性能,结果表明:该信号发生器信号输出高频噪声少、频率精度高。

信号发生器 STM32 DDS芯片AD9833 C语言

信号发生器又叫函数信号源,广泛应用于自动控制、电子电路及科学试验等领域[1]。信号发生器按工作原理可分为模拟和数字两种类型,随着科技的进步,由模拟器件组成的信号发生器已经极少了,取而代之的是电路简洁、功能多样、功耗低的数字型信号发生器。由数字电路组成的信号发生器一般由单片机控制数模转换芯片,但存在噪声大、功耗大、高频性能差及频率不准等缺点。目前,最先进的信号发生技术是直接数字频率合成技术(Direct Digital Synthesizer,DDS),该技术具有成本低、功耗低、分辨率高及转换时间短等优点,广泛应用于电信与电子仪器领域,是一种实现设备全数字化的关键技术[2]。由DDS芯片组成的信号发生器可以把其输出频率的稳定度、准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节,采用这种方法设计的信号源可工作于调制状态。据此,笔者利用DDS集成芯片AD9833实现了一个基于STM32的函数信号发生器,通过按键选择波形种类和输出频率,实现高精度的波形输出。

1 硬件部分

基于STM32的信号发生器(图1)由4部分组成:STM32最小系统,负责控制DDS和DAC芯片;按键电路,负责人机交互,控制输出波形的类型和频率;DAC8830,负责输出直流信号;集成DDS芯片AD9833,负责输出正弦波、方波等多种信号。

图1 信号发生器结构框图

STM32是一种基于Cortex-M3内核的32位ARM处理器,具有价格便宜、功耗低及性能优越等优点[3]。STM32内部集成了3个SPI通信接口,与普通的51单片机相比,可极大地简化系统设计。STM32最小系统由电源电路、时钟电路、复位电路和程序下载电路组成。

DAC8830是一个16位超低功耗、电压输出的数模转换器,具有精确度高、干扰小、噪声低及快速稳定等优点[4],广泛应用于工业过程控制、数据采集系统、便携式设备及自动测试设备等领域。DAC8830采用SPI通信方式,SPI接口速度最高可达50MHz。DAC8830的电路原理如图2所示,在输出端加入OPA188运放可组成电压跟随器,以保证输出波形的带负载能力并起到隔离作用。

图2 DAC8830的电路原理

DDS芯片AD9833是一个完全集成的DDS电路,无需外接其他元件,仅需一个外部参考时钟、解耦电容就能产生高达12.5MHz的正弦波,同时输出频率、相位等可通过软件编程设置[5]。主控制器通过SPI接口将数据写入AD9833,工作频率最高可达40MHz。AD9833采用5.0V电源供电,与STM32通过SPI1引脚相连。AD9833外部时钟由10MHz有源晶振提供,利用220Ω阻尼电阻可改善时钟波形。AD9833正弦波发生电路如图3所示。

图3 AD9833正弦波发生电路

2 软件部分

通过信号发生器软件的设计实现扫描键盘的输入,控制芯片输出相应的波形。STM32与AD9833和DAC8830之间选择SPI通信方式。程序使用C语言编程,在MDK5编程环境下实现编译。

AD9833的核心是28位相位累加器(由加法器和相位寄存器组成),每来一个时钟信号,相位寄存器步长增加,相位寄存器的输出与相位控制字相加后输入到正弦查询表地址中。正弦查询表包含一个周期正弦波的数字幅度信息,每个地址对应正弦波中0~360°的一个相位点[6]。查询表把输入的地址相位信息映射成正弦波幅度的数字量信号,驱动 DAC输出模拟量。相位寄存器每经过228/M个外部时钟后回到初始状态,相应地,正弦查询表经过一个循环也回到初始位置,这样就输出了一个正弦波[7]。正弦波的输出频率fout为:

其中,M为频率控制字,由编程给定,0≤M≤228-1;fMCLK为外部晶振频率。当外部晶振频率为25MHz时,若输出400Hz正弦波,则计算得到M为0x10C7。因为AD9833的频率控制器是28位的,STM32的SPI最多可发送16位数据,所以需要发送两次,每次发送14位数据。低14位LSB为0x10C7,高14位MSB为0。

根据AD9833数据手册进行SPI通信设置:SPI为单向传输、主模式、16位数据传输、空闲状态SCLK为高、第2个沿捕获、软件控制、波特率256、数据传输时高位在前[8]。外部晶振为10MHz时发生10kHz的正弦波需要发送以下控制字:0x2100(将一个完整控制字通过两次连续写入频率寄存器)、0x5893(频率寄存器0的LSB)、0x4010(频率寄存器0的MSB)、0xC000(相位寄存器0设置为0)、0x2000(退出复位,在RESET置0后的7个SCLK周期内DAC输出端出现信号)。输出直流量相对容易,通过STM32输出对应的数字信号给DAC8830即可。

程序流程如图4所示,首先扫描键盘来判断输出的波形,当选择函数信号时,初始化SPI1,来准备控制AD9833,再通过控制字求取方法求出对应波形频率的控制字;当选择非函数信号时,初始化SPI2,来控制DAC8830输出对应的直流信号。选择两个SPI口是因为AD9833和DAC8830对SPI的通信设置是不同的。

图4 程序流程

3 结果分析

结合软硬件设计,组成基于STM32的信号发生器,通过按键设置发出1kHz的正弦波、三角波、方波,结果如图5~7所示。可以看出,信号输出高频噪声少、频率精度高。方波信号的振铃现象是鉴别信号发生器品质的一个重要标志,从图7中可以看出,方波信号振铃小,表明信号发生器具有高精度的特点。应用在实际工程中时,可以通过在信号发生器后端加入信号放大环节来增加其驱动能力。

图5 正弦波

图6 三角波

图7 方波

4 结束语

笔者利用DDS芯片AD9833设计了一个基于STM32的函数信号发生器,完成了硬件部分的制作与测试、软件部分的编程。波形输出结果表明,笔者设计的信号发生器精度高、系统集成度高、功耗低,具有很好的工程应用价值和借鉴意义。

[1] 张美仙,王红亮,丁海飞.基于DDS芯片的信号源设计[J].仪表技术与传感器,2010,(9):54~56.

[2] 刘伟,胡仁杰,王峥.基于AD9850芯片的信号发生器的研究[J].电工电气,2009,(11):19~21.

[3] 周立功,王祖麟,陈明计,等.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2008.

[4] 张逢雪,王香婷,王通生,等.基于STM32单片机的无线智能家居控制系统[J].自动化技术与应用,2011,30(8):98~101.

[5] 毛敏,张玲娜.基于DDS的高精度信号发生器设计[J].电子科技,2009,22(7):37~40.

[6] 刘朝军,许人灿,陈曾平.DDS输出信号频谱结构的系统分析[J].国防科技大学学报,2005,27(6):53~56.

[7] 李海松,张奇荣,权海洋.DDS的相位截断及相应的杂散信号分析[J].微电子学与计算机,2006,23(2):141~143.

[8] 杨国渝,粟显义.采用DDS+PLL技术实现S波段频率合成的一种方法[J].电子科技大学学报,1999,28(4):388~391.

DesignofNewSignalGeneratorBasedonSTM32

JIANG Jian-guo, WANG Meng-qian, WANG Hai-xing

(CollegeofElectricalEngineeringandInformation,NortheastPetroleumUniversity)

The hardware structure of the signal generator was presented and the working principle of AD9833 chip (DDS) was expounded, including the SPI communication process and the software implementation of sine signals, triangle signals and square wave signals. Verifying the performance of waveform generator on the control platform established shows that, this signal generator has less high-frequency noise in signals output and higher frequency accuracy.

signal generator, STM32, DDS AD9833 chip, C language

姜建国(1966-),教授,从事电力电子与电力传动的研究。

TH89

A

1000-3932(2017)03-0273-04

联系人王海星(1991-),硕士研究生,从事电力电子与电力传动的研究,whx1237@163.com。

2016-11-07)

猜你喜欢
正弦波方波寄存器
便携式多功能频率计的设计与实现
STM32和51单片机寄存器映射原理异同分析
单相正弦波变频电源设计与实现
Lite寄存器模型的设计与实现
测绘技术在土地资源管理中的应用
一种基于555定时器的方波产生电路设计
采用BC5016S的纯正弦波逆变器设计及制作
移位寄存器及算术运算应用
基于STM32的风力摆控制系统的设计
一种防垢除垢的变频电磁场发生装置