基于STM32的简易信号发生器汇总.docx

上传人:b****5 文档编号:3437234 上传时间:2022-11-23 格式:DOCX 页数:16 大小:1.35MB
下载 相关 举报
基于STM32的简易信号发生器汇总.docx_第1页
第1页 / 共16页
基于STM32的简易信号发生器汇总.docx_第2页
第2页 / 共16页
基于STM32的简易信号发生器汇总.docx_第3页
第3页 / 共16页
基于STM32的简易信号发生器汇总.docx_第4页
第4页 / 共16页
基于STM32的简易信号发生器汇总.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于STM32的简易信号发生器汇总.docx

《基于STM32的简易信号发生器汇总.docx》由会员分享,可在线阅读,更多相关《基于STM32的简易信号发生器汇总.docx(16页珍藏版)》请在冰豆网上搜索。

基于STM32的简易信号发生器汇总.docx

基于STM32的简易信号发生器汇总

绍兴文理学院

数理信息学院

课程设计报告书

题目基于STM32的简易信号发生器

电子信息工程专业1班

姓名xxx

指导教师xxx

时间2014年7月12日

课程设计任务书

班级

电信111

姓名

xx

题目

基于STM32的简易信号发生器

技术参数、设计要求、

检测数据等

要求采用DDS方法:

(1)该信号发生器应能产生三角波、正弦波、方波、锯齿波

(2)该信号发生器为单极性输出,0V~3.3V

(3)该信号发生器发生信号的基本频率1KHZ,频率可调(1KHZ~5KHZ,步进10HZ)

(4)该信号发生器信号初始相位可调(0-360度,步进1度)

(5)功能选择由按键完成

设计进度安排或工作计划

2014.7.3~2014.7.5:

教师布置课题,学生查询相关资料,完成方案选择、确定验证方案。

2014.7.6~2014.7.7:

设计模块划分、实现及各模块仿真图设计。

2014.7.8~2014.7.10:

设计整体实现、调试及验证,并开始撰写报告。

2014.7.11~2014.7.12:

课程设计报告撰写并定稿,上交。

其它

认真阅读智能仪器仪表课程设计报告撰写规范;课题小组经协商好要指定组长并明确分工,形成良好团队工作氛围;基于课题基本要求,各小组与指导老师讨论,再将课题细化、增加要求;课题小组每成员均需各自撰写一份课程设计报告。

基于STM32的简易波形发生器

摘要

函数信号发生器是一种能够产生多种波形,如正弦波、方波、三角波、锯齿波等的电路。

函数信号发生器在电路实验和设备检测中具有十分广泛的用途。

通过对函数波形发生器的原理以及构成分析,可设计一个能变换出以上波形的波形发生器。

本课题采用STM32[1]为控制芯片,采用DDS[2]的设计方法,可将采样点经D/A[3]转换后输出任意波形,可通过调节D/A转换的频率来调节输出波形的频率,也可通过改变取点的起始位置来调节波形的初始相位。

关键词信号发生器STM32DDS

目录

课程设计任务书I

摘要……………………………………………………………………………………………….II

1设计概述1

2设计方案2

3设计实现3

3.1设计框图及流程图3

3.2MCU控制模块5

3.3按键控制模块5

3.4信号输出模块6

3.5LCD显示模块8

4设计验证8

5总结11

1设计概述

信号发生器作为一种历史悠久的测量仪器,早在20年代电子设备刚出现时就产生了。

随着通信和雷达技术的发展,40年代出现了主要用于测试各种接收机的标准信号发生器,使得信号发生器从定性分析的测试仪器发展成定量分析的测量仪器。

同时还出现了可用来测量脉冲电路或作脉冲调制器的脉冲信号发生器。

自60年代以来信号发生器有了迅速的发展,出现了函数发生器。

这个时期的信号发生器多采用模拟电子技术,由分立元件或模拟集成电路构成,其电路结构复杂,且仅能产生正弦波、方波、锯齿波和三角波等几种简单波形。

自从70年代微处理器出现以后,利用微处理器、模数转换器和数模转换器,硬件和软件使信号发生器的功能扩大,产生比较复杂的波形。

这时期的信号发生器多以软件为主,实质是采用微处理器对D/A的程序控制,就可以得到各种简单的波形。

在80年代以后,数字技术日益成熟,信号发生器绝大部分不再使用机械驱动而采用数字电路,从一个频率基准有数字合成电路产生可变频率信号。

90年代末出现了集中真正高性能的函数信号发生器,HP公司推出了型号为HP770S的信号模拟装置系统,它是由HP8770A任意波形数字化和HP1770A波形发生软件组成。

信号发生器技术发展至今,引导技术潮流的仍是国外的几大仪器公司,如日本横河、Agilent、Tektronix等。

美国的FLUKE公司的FLUKE-25型函数发生器是现有的测试仪器中最具多样性功能的几种仪器之一,它和频率计数器组合在一起,在任何条件下都可以给出很高的波形质量,能给出低失真的正弦波和三角波,还能给出过冲很小的快沿方波,其最高频率可达到5MHz,最大输出幅度可达到10Vpp。

国内也有不少公司已经有了类似的仪器。

如南京盛普仪器科技有限公司的SPF120DDS信号发生器,华高仪器生产的HG1600H型数字合成函数\任意波形信号发生器。

国内信号发生器起步晚,但发展至今,已经渐渐跟上国际的脚步,能够利用高新技术开发出达到国际水平的高性能多功能信号发生器。

信号发生器在生产实践和科技领域中有着广泛的应用,各种波形曲线均可用三角函数方程式来表达。

函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信、测量

雷达、控制教学等领域应用十分广泛。

不论是在生产、科研还是在教学上,信号发生器都是电子工程师信号仿真实验的最佳工具。

而且,信号发生器的设计方法多,设计技术也越来越先进,随着我国经济和科技的发展,对对应的测试仪器和测试手段也提出了更高的要求,信号发生器已成为测试仪器中至关重要的一类,因此,开发信号发生器具有重大意义。

2设计方案

方案一:

模数结合实现,一般是在模拟电路上产生函数信号波形,而用数字方式改变信号的频率和幅度。

如采用D/A装换器与压控电路改变信号频率,用数控放大器或数控衰减器改变信号幅度等。

方案二:

模拟电路实现,全采用模拟电路,可用正弦波发生器产生正弦波信号,然后过零比较产生方波,再经积分电路产生三角波。

这种方法电路简单,并具有良好的正弦波和方波信号。

但要通过积分器电路产生同步的三角波信号,存在较大难度。

原因是积分电路的积分时间常数通常不变,而随着方波频率改变,积分器输出的三角波幅度将同时改变。

若要保持三角波幅度,就得同时改变积分时间长度的大小,要实现这点会很难。

方案三:

数字电路实现,采用DDS方法,任何频率的波形都可看做由一系列的取样点所组成,可事先将各波形的数据点存储在ROM中,再通过时钟的控制顺序从ROM中读出,再经D/A转化器进行逐点恢复。

这种方案的波形精度主要取决于函数信号波形的存储点数、D/A转换器的转换速度、以及整个电路的时序处理等。

设取样时钟频率为

,一个正弦波由N个取样点构成,频率控制字为K,则输出正弦波信号的频率为

公式2-1

其信号频率的高低,是通过改变D/A转换器输入数字量的速率或是取点数量来实现的。

这种方案在信号频率较低时,具有较好的波形质量。

随着信号频率提高,需要提高输入数字量的速率,或减少波形点数。

波形点数的减少,将直接影响函数型号波形的质量,而数字量的输入速率的提高也是有限。

因此,该方案比较适合低频信号,而较难产生高频(如1MHz以上)信号。

经上各方案比较,为切合本次课题,故采用方案三。

3设计实现

本课题硬件原理图较为简单,仅有一单片机STM32F103ZET6及相应的一些外围器件,每种波形在ROM中都存了360个点,在保持波形失真不太明显的条件下,最高频率时可取点40个,此时需要外加RC低通滤波器,使得输出波形较为平滑。

系统时钟频率为72MHz,理论上取40个点的输出波形频率为1.8MHz,但在不同频率下,经过RC低通滤波后的波形会有幅值上的衰减,衰减程度在不同频率下也各不相同,此时可在RC滤波后加入放大器提高幅值,由于此次设计不对5KHz以上频率的波形有过多要求,所以幅值的变化不做太多的关注,仅尝试提高频率。

显示部分采用LCD12864,此LCD与MCU连接较易,仅需片选线、电源线、时钟线及串行数据线,用法也较简单,内置中文字库,4*16点阵完全够实现本次课题所需显示。

本设计原理图见附录。

3.1设计框图及流程图

本设计由四个模块组成:

MCU控制模块、按键模块、信号输出模块和LCD显示模块。

如图3-1所示:

图3-1系统框图

本设计的流程图如图3-2,主要需要完成的任务有:

按键扫描、LCD的显示和D/A转换。

因此在主程序中对各个模块进行初始化。

图3-2主函数流程图

程序主函数包括时钟树、GPIO口、中断的初始化。

本设计利用定时器触发DAC转换器的DMA传输,事先将各波形的取样点存在ROM中,在定时器作用下,将点取出,由DMA传输至D/A转换,输出,由于DMA传输不受主程序控制,因此主程序无需保持其运行。

按键控制信号的变换,每个按键对应一个IO口,当按键按下时电平触发外部中断,此时打开定时器,产生一个20ms的延时去抖动,进入定时器中断后判断IO口的电平是否与记录的键值相同,若相同则说明确有按键按下。

相同的按键有有着不同的键值,不同的键值搭配在程序内对应不同的状态。

此时根据不同的键值所对应的不同的状态选择将要执行的操作。

在波形结构体中保存了“波形”、“幅值”、“频率”和“相位”四个参数信息,利用按键更改其中的值,按下“完成”键后确定修改状态,接着将目前状态的各个参数信息显示在LCD上,由此可完成对波形的自由修改。

通过LCD显示波形信息,可提高操作的可视性和便捷性。

STM32F103ZET6硬件资源丰富,具有512KB的FLASHROM和64KB的SRAM,具有144个引脚和105个GPIO口,因此采用独立按键边沿触发的方法来检测按键。

LCD12864采用串行方式传输数据,只需三根数据线。

DAC外设具有两个输出通道,通道1相位可调,通道2用作与通道1对比相位衡为0°。

因此采用如表3-1引脚分配表。

表3-1引脚分配表

引脚

功能

PA0

“减”键

PB10

“加”键

PB11

“确定”键

PB12

“右”键

PB13

“左”键

PB14

“上”键

PB15

“下”键

PE15

LCD12864片选

PE11

LCD12864数据

PE7

LCD12864时钟

PA4

信号输出通道1

PA5

信号输出通道2

3.2MCU控制模块

系统的MCU采用STM32F103ZET6作为控制模块,主要完成按键扫描、信号输出、LCD显示等。

STM32系列单片机具有内置DAC转换器和DMA控制器,并有最高72MHz的主频,可完成较高频率信号的稳定输出。

3.3按键控制模块

系统采用一个摇杆(包含“上”、“下”、“左”、“右”、“选择”键)和两个独立按键(“加”键、“减”键)来控制输出波形的特征。

由于STM32单片机的定时器资源丰富,因此按键消抖延时采用定时器中断的方式。

按键扫描模块的程序流程图如图3-3、图3-4所示:

图3-3外部中断流程图图3-4定时器中断流程图

当确定有按键按下时,判断键值并完成相应的动作。

其中“上”、“下”、“左”、“右”键切换将要更改的波形特征,“加”键和“减”键修改波形特征的值,如“幅值”、“频率”和“相位”。

3.4信号输出模块

单片机的DAC外设、DMA控制器和定时器共同协作完成信号波形的输出。

信号输出采用定时器触发DMA传输数据到DAC寄存器的方式,可大大降低信号输出对CPU的占用率并提高波形的精准性。

DAC信号输出的流程图如图3-5所示:

图3-5D/A转换流程图

输出波形分别为:

正弦波、方波、三角波、锯齿波。

程序中采用四个常数数组保存波形值。

为了方便相位的变换,每个数组保存了360个波形数据。

通过将常数数组中的固定值乘以一个比例系数后保存到新数组中,并将新数组的地址与DAC转换寄存器的地址通过DMA控制器关联,完成幅值的变换。

初始相位的更改,只需更改数据的起始取样点即可。

本设计的难点是频率的提高。

根据公式2-1

可得出,要改变信号的频率,可以通过改变频率控制字K或改变DAC频率

实现。

到达一定值时,完成一次DAC转换的时间将大于DMA传输的时间间隔,此时会出现部分值无法被转换的情况,因此

不可太高。

通过调整频率控制字K也可提高信号的频率,即波形数据中每K个点取样一个点,可使频率大大提高。

但是由于频率控制字K的提高会造成波形的明显失真,所以波形的输出采用一级RC低通滤波器进行滤波,平滑波形。

综上所述,当频率低于课题的基本要求5KHz时,通过改变

实现频率的变换。

当频率大于5KHz时,通过改变频率控制字K提高信号的频率,并将波形通过RC低通滤波器滤波。

RC滤波网络如图3-6所示:

图3-6RC滤波网络原理图

根据RC滤波网络截止频率公式

公式3-1

根据输出波形的频率适当调节R4的阻值可较好地实现低通滤波,平滑波形输出。

3.5LCD显示模块

本设计通过LCD12864显示波形信息,MCU与LCD12864通过串行方式传输数据,当波形发生变化时立即更新LCD显示信息,实现了人机界面的交互。

4设计验证

在RVMDK上编写程序,编译无误后下载到MCU,将LCD与MCU连接,用示波器观察D/A输出波形,并通过相关的按钮操作,观察LCD上功能切换的显示,各波形的输出频率相位的调节显示,对应示波器的各波形参数是否一致。

调试结果如下。

图4-1正弦波

图4-2方波

图4-3三角波

图4-4锯齿波

如图4-1、4-2、4-3、4-4所示,调节各功能按钮,选择波形,可在示波器上观察相应的波形输出,也可通过按钮操作改变输出波形的幅值及频率,参数信息可在LCD上观察。

幅值的步进值最小为10mv,频率的最小步进值为10Hz。

初始相位调节功能验证如图4-5所示:

图4-5初始相位调节

上方是初始相位为0度的正弦波,下方为初始相位180度的正弦波,相位最小步进值为1度。

设计中通过多次调试,在保持每次定时时间内能完成DMA传输和D/A转换条件下,定时器的最大速率能做到3MHz左右,此种情况下最大频率在滤波器后失真不明显能做到160KHz。

大频率输出波形如图4-6所示:

图4-6大频率正弦波

上方是D/A输出波形,下方是经RC滤波器后的输出波形。

可见在此频率上,失真并不明显。

本次设计基本满足课题的各项要求。

5总结

这学期的课程设计中,我的任务是资料的查阅和收集,和数据的制作,并在程序编写的过程中提供一定的思路和方向,参加了调试工作,提高了课程设计的进程。

我认为,在这学期的课程设计中,我不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

更重要的是,我们学会了很多学习的方法。

而这是日后最实用的,真的是受益匪浅。

参考文献

[1]刘火良杨森.STM32库开发实战指南[M].第一版.978-7-111-42637-0.北京:

机械工业出版社,2013.2

[2]赵茂泰.智能仪器仪表原理及应用[M].第三版.978-7-121-08062-3.北京:

电子工业出版社,2012.230

[3]康华光.电子技术基础数字部分[M].第五版.978-7-04-017790-9.北京:

高等教育出版社,2012.431

附录

电路图

教师评语

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1