多功能波形发生器.docx
《多功能波形发生器.docx》由会员分享,可在线阅读,更多相关《多功能波形发生器.docx(24页珍藏版)》请在冰豆网上搜索。
多功能波形发生器
1.设计选题及任务2.
2•相关背景以及现状的介绍2
2.1研究背景2..
2.2国内外现状3.
3.系统概述及硬件简介4.
4.相关原理的概述5..
4.1DAC单元5..
4.2LCD单元乙.
4.3DDS单元9..
4.3.1DDS原理分析9.
4.3.2DDS基本结构10
4.3.3DDS原理11
4.3.4DDS技术特点15
5•波形发生器的软件设计17
5.1软件设计的原理17
5.2Matlab产生波形数据19
6.波形的生成结果21
1.设计选题及任务
设计题目:
多功能波形发生器
任务与要求:
设计一个由Tivaclanuchpad控制的波形发生器。
运用其控制产生多种波形,这些波形包括方波、三角波、锯齿波、正弦波。
然后在LCD上显示波形的菜单,通过菜单能够选择不同的波形。
基本要求:
1.产生方波、三角波、锯齿波、正弦波
2.在LCD上显示波形的菜单
3.通过菜单来实现对波形的选择。
2.相关背景以及现状的介绍
2.1研究背景
任意波形发生器是一种能产生任意波形的信号源,它是近年来发展起来的一
种信号发生器。
区别于早先的函数波形发生器,任意波形发生器使用到了微处理器及数模转换器等数字器件。
它不仅能完成函数波形发生器的功能产生正弦、角、锯齿等基本波形,还提供了方便的波形设置方法以便产生用户所需要的任意波形。
随着科技研究的不断深入和领域扩展,要求用电信号模拟的信号更加复杂、
多样。
例如,通信的每一步发展,都要求不同的测试信号;而生物学上的研究,
也常常需要使用神经信号和脑波信号等各种特别的电信号;材料科学、生命科学
等诸多领域,都要求用任意波形发生器产生复杂的信号。
另外,现代科技要求信
号更加准确、逼真,而不仅仅满足于大体合适。
因此,在不少测试方案和自动化系统的组成中,在信号源部分已明确指定为任意波形发生器。
在电类和非电类的应用中,对这类仪器的需要都日益迫切。
任意波形发生器目前主要有两种实现方法:
一种是传统的任意波形发生器,但是由于采用的是模拟和模数混合的方法,限制了其频率稳定度,并且系统比较复
杂。
另一种是基于直接数字频率合成(DDS)技术的任意波形发生器,采用这种技术的AWG具有很高的频率分辨率和快速的输出频率转换能力,并且输出频率范围宽。
2.2国内外现状
目前,市场上常见的任意波形发生器主要有普源RIGOL、优利德。
从功能上
看,普源的任意波形发生器比较完善,但价格偏高。
其他厂家的任意波形发生器虽然也可以产生任意波形,但波形来源往往是较简单的波形合成,并不是真正意义上的“任意”波形。
如今,虽然国内外的任意波形发生器研究上已经趋于完善,但实际运用上还存在不尽人意的地方。
例如:
有的可视化界面仅能显示文字数据,不能直接显示输出波形;有的任意波形数据的产生只能连接上位机获取;任意波形编辑功能不够全面,仅能满足特定的场合。
即使有较完善功能的任意波形发生器,但其高昂的价格却让人望而止步。
当然,在高校中对于各种任意波形发生器的研制也有不少,例如东莞理工学院的可视化多功能DDS任意信号源,但其可视化也是建立在用Delphi来开发图形上位机软件的基础上的。
3.系统概述及硬件简介
随着科技的发展和现代科研的需要,信号发生器已经成为了很多行业进行研究
测试不可或缺的工具,但目前使用波形发生器大部分体积大,可靠性差,准确度
低。
因此为了实验研究方便,研制一种体积小、可靠性强、准确性高的波形发生器显得尤为重要。
图3.1.1
4.相关原理的概述
4.1DAC单元
DAC(DigitaltoAnalogConventer)数模转换器可以把处理器运算处理后
输出的数字信号转换成模拟信号,完成对数字信号的复原工作。
DA转换,即把数字信号转换为模拟信号输出。
简单的说,就是把数字信号按照一定的参考电压转换成电压值输出。
例如,12位分辨率时,数据0XFFF值对应满程参考电压,那么0x7FF就会输出半程参考电压。
TM4C123G的DAC7512模块的控制位较多,可以满足多种输出需求
TM4C123G没有自带的DAC(模数转换器),DY-Tiva-PB板上扩展了一片
DAC,并可用于任意波形发生器(AWG)。
采用TI的12位DAC器件DAC7512,
实现DAC及任意波形的产生。
产生的信号可以在AWG端子上通过示波器观看,
还可以通过PE2的ADC读入CPU,经过处理后显示在LCD上。
DAC7512是一种低功耗、单电源、12位缓冲电压输出的数字到模拟转换器
(DAC)。
其内置的精密输出放大器允许轨到轨输出,接口为通用的三线串行
SPI,兼容QSPI和DSP接口,时钟速率达30MHz。
DAC7512集成了上电复位电
路,确保DAC的输出0V时还能保持数据,直到下一个有效的数据下进来。
DAC7512的主要特点:
⑴微功耗,5V时工作电流消耗为135uA(DAC7512);
⑵在掉电模式时,如果采用5V电源供电,其电流消耗为135nA,而采用
3V供电时,其电流消耗仅为50nA;
⑶供电电压范围为+2.7V〜+5.5V;
(4)上电输出复位后输出为0V;
⑸具有三种关断工作模式可供选择,5V电压下功耗仅为0.7mW;
(6)带有低功耗施密特输入串行接口;
(7)内置满幅输出缓冲放大器;
(8)具有SYNC中断保护机制。
DAC单元的原理图如图4.1.1所示
=C21
ICOeF
4.1.1单元原理图
其中,
VOUT――模拟电压输出
GND——接地
VDD——电源
DIN――串行数据输入
SCLK――串行时钟输入
SYNC――电平触发输入
4.2LCD单元
TM4C123G芯片没有专用的LCD接口,但是芯片的速度较快,自身功能比较强大,所以先择一个点阵的LCD是最好的,可以显示任意的文字和图形。
同时由于TM4C123GLP上的I/O资源很有限,并口的LCD会占用很多I/O资源,所以选择一个串口的LCD是最合适的。
DY-Tiva-PB口袋板上选择了一个128x64点阵的串行接口LCD。
背光通过PA5来控制。
LCD显示单元PCB板上的位置如图422
所示。
128x64
PAS
Q】
S8050
图422LCD显示单元的原理图
12864点阵液晶显示模块(LCM)就是由128*64个液晶显示点组成的一
个128列*64行的阵列。
每个显示点对应一位二进制数,1表示亮,0表示灭。
存储这些点阵信息的RAM称为显示数据存储器。
要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。
图形或汉字的点阵信息由自己设计,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间
的关系。
每屏有一个512*8bits显示数据RAM。
左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。
显示点在128*64液晶屏上的位置由行号
(line,0~63)与列号(column,0~63)确定。
512*8bitsRAM中某个存储单
元的地址由页地址(Xpage,0~7)和列地址(Yaddress,0~63)确定。
每个存储单元存储8个液晶点的显示信息。
为了使液晶点位置信息与存储地址的对应关系更直观关,将128*64液晶
屏从上至下8等分为8个显示块,每块包括8行*64列个点阵。
每列中的8行点阵信息构成一个8bits二进制数,存储在一个存储单元中。
(注意:
二进制的高低有效位顺序与行号对应关系因不同商家而不同)存放一个显示块的RAM区称为存储页。
即128*64液晶屏的点阵信息存储在8个存储页中,每页64个字节,每个字节存储一列(8行)点阵信息。
因此存储单元地址包括页地址
(Xpage,0~7)和列地址(Yaddress,0~63)。
例如点亮128*64的屏中(20,
30)位置上的液晶点,因列地址30小于64,该点在左半屏第29列,所以CS1有效;行地址20除以8取整得2,取余得4,该点在RAM中页地址为2,在字节中的序号为4;所以将二进制数据00010000(也可能是00001000,高低
30)上的液晶点
字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是
用数字的各位信息来记载英文或汉字的形状,如英文的’A'在字模的记载方式如
图所示:
423“A”字模图
在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。
对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。
而对于中文,常用却有6000以上,于是我
们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。
而剩下的低128位则留给英文字符使
用,即英文的内码。
4.3DDS单元
4.3.1DDS原理分析
1973年,J.Tiemey和C.M.Tader等人在《ADigitalFrequency
Synthesizer》一文中首次提出了DDS的概念,但限于当时的技术条件,DDS并没有引起人们的足够重视。
上世纪90年代以来,随着数字集成电路和微电子
技术的发展,DDS技术的优越性才日益体现出来。
4.3.2DDS基本结构
DDS与大多数的数字信号处理技术一样,它的基础仍然是奈圭斯特采样定理。
奈圭斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个
带限的模拟信号经抽样变成离散值后可不可以由这些离散值恢复原始模拟信号的问题。
奈圭斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散信号无失真地恢复出原始模拟信号。
只不过在DDS技术中,这个过程被颠倒过来了。
DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。
DDS电路一般由参考时钟、相位累加器、波形存储器、D/A转换器(DAC)和低通滤波器(LPF)组成。
其结构框图如图431所示。
图431DDS基本结构框图
其中,fc为参考时钟频率,K为频率控制字,N为相位累加器位数,A为波形存储器位数,D为波形存储器的数据位字长和D/A转换器位数。
DDS系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成部分的同步时钟。
频率控制字(FrequencyControlWord,FCW)实际上是二进制编码的相位增量值,它作为相位累加器的输入累加值。
相位累加器由加法器和寄存器级联构成,它将寄存器的输出反馈到加法器的输入端实现累加的功能。
在每一个时钟脉冲fc,相位累加器把频率字K累加一次,
累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出
数据实质上是以K为步长的线性递增序列(在相位累加器产生溢出以前),它反映了合成信号的相位信息。
相位累加器的输出与波形存储器的地址线相连,相当
于对波形存储器进行查表,这样就可以把存储在波形存储器中的信号抽样值(二
进制编码值)查出。
在系统时钟脉冲的作用下,相位累加器不停的累加,即不停的查表。
波形存储器的输出数据送到D/A转换器,D/A转换器将数字量形式的
波形幅度值转换成所要求合成频率的模拟量形式信号,从而将波形重新合成出来。
若波形存储器中存放的是正弦波幅度量化数据,那么D/A转换器的输出是
近似正弦波的阶梯波,还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦波信号。
图43..2所示为DDS各个部分的输出信
号。
由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。
相位累加器的溢出频率即为合成信号的频率。
可见,频率控制字K越大,相位累加器产生溢出的速
度越快,输出频率也就越高。
故改变频率字(即相位增量),就可以改变相位累
加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率
图432DDS各部分输出波形
4.3.3DDS原理
根据傅立叶变换定理,任何满足Dirichlet条件的周期信号都可以分解为一系列正弦或者余弦信号之和。
为了不失一般性,下面以正弦信号的产生为例来说明DDS的基本原理。
我们知道,正、余弦信号用可以用复数形式表示为:
式(4-2)
cos(2ft)ReExp(j2ft)式(4-1)
sin(2ft)ImExp(j2ft)
图433信号的复数表示形式
图433描述了矢量R绕原点沿正方向(逆时针)旋转时,其模值R与x轴
uvu
夹角(t)(相位角)及R在y轴上的投影S三者之间的关系。
当R连续地绕原点旋转,S将取R~R之间的任意值,(t)将以2为模取0~2之间的任意值。
如果将S看作我们欲重构正弦信号的幅度值,则相位角(t)和S的关系为:
SRsin(t)。
现将相位数字化(采样、量化),将2量化成M等份,则相位量
化的最小间隔为2/M,这样造成的结果是重构信号的幅度值S也相应离
散化:
2
SRsin(n)Rsin(n)0000n1,2,...,M式(4-3)
M
图4.3.4相位数字化示图
如图4.3.4所示,设此时R不是绕原点连续旋转,而是在系统时钟fc的控制
下以相位增量进行阶跃式旋转,很容易可以看出来,在相位周期变化的同时,
输出信号的幅度S也在周期重复着,因此,重构信号的周期在幅度中也就体现出来了。
为了进一步探讨相位增量对输出信号频率的影响,我们分别以相位增量为
/4和/8重构信号幅度,分别如图4.3.5和4.3.6所示。
在此,我们假设相位累加是在相同的系统时钟fc的进行的,即对于不同的相位增量,fc是固定不变的,这是理解相位增量和重构信号频率关系的基础。
图4.3.5相位增量为/4时相位幅度的映射关系
I
相位增量为/4相位增量为/8
图437相位增量不同对重构信号频率的影响(仿真)
现以采样频率fc对该信号进行抽样,得到离散序列为:
其中Tc1/fc为采样周期。
习惯上将式(4-5)写成式(4-6)的形式:
式(4-6)对应的相位序列为:
该序列的显著特性是线性,即相邻样值之间的相位增量是一常数,且仅与信
号频率f有关,当式(4-7)中的n取1时得到量化相位增量为:
式(4-8)
式(4-10)
然后完成(n)到另一个序列S(n)的映射,即由(n)构造序列:
式(4-12)
22
s(n)sin(n)sin(2MnK)
将式(4-10)代入式(4-12)可得:
对比式(4-6)跟式(4-13),我们不难发现,S(n)其实就是信号S(t)经过采样
频率fc抽样后的离散时间序列。
在满足奈圭斯特采样定律的的条件下,即:
式(4-14)
S'(n)可以经过D/A转换和低通平滑滤波唯一地恢复出S(t)。
可见,通过上述变换,变量K将唯一地确定一个单频模拟正弦信号S(t):
S(t)sin(2
K
—fct)式(4-15)
M
该信号的频率为:
式(4-16)
f兰
foM
式(4-16)就是DDS的基本方程,是利用DDS进行频率合成的立足点。
在实
际的DDS应用中,一般取M2n,N为正整数,于是DDS的基本方程可写成:
fo匚fcOOOOOK1,2,...,2n1式(4-17)
2n
由式(4-17)可以看出,当K1时,DDS系统输出信号频率fo最小,而这个
最小频率同时也是DDS系统的频率分辨率:
fomin1
才式(4-18)
对于DDS系统从波形存储器中读数据的过程,我们可以将其看作是对波形存储器中的波形数据再次采样的过程,也就是说,DDS系统查表的过程就是从
波形存储器中二次采样过程,一个周期内查表的点数即为采样的点数。
DDS系
式(4-19)
统要恢复出原始波形,其在一个周期内至少要取样两点,这是受我们一直都在强调的奈圭斯特采样定理的限制。
那么DDS系统在理论上能输出的最大频率是:
f—
omax
2
经过以上的分析,我们得出以下几点结论:
(1)DDS系统的输出频率fo只与频率控制字K、系统时钟频率fc、相位累加器位数N有关。
在系统时钟频率fc和相位累加器位数固定时,通过改变频率控制字K的值,就可以方便地改变输出信号的频率。
(2)DDS系统的频率分辨率只与系统的系统时钟频率fc和相位累加器位数N有关。
想要提高系统的分辨率,可以增加相位累加器位数或者是降低系统时
钟频率。
(3)DDS理论上最大输出频率不会超过系统时钟频率fc的二分之一,但在实际应用中,由于DDS系统中的低通滤波器非理想特性,由通带到阻带之间存在着一个过渡带,工程中DDS最高输出频率只取到40%仁左右。
4.3.4DDS技术特点
DDS这一新技术特点鲜明,优点很突出,缺点也很明显。
DDS系统的优点有很多,它的很多特性是其他频率合成技术所没有的,其中最主要的特性有以下三点:
(1)DDS技术可以用于产生任意波形
基于前面对DDS系统的基本结构分析,很容易理解,只要改变存储在波形存储器中的波形数据,就可以改变输出波形。
所以对于任何周期性波形,只要满足采样定理,都可以利用DDS技术来实现。
(2)DDS系统具有很高的频率分辨率
DDS系统输出频率的分辨率和频点数随相位累加器的位数成指数增长,由
式(4-18)可知,在系统时钟频率不变的情况下,只要增大相位累加器的位数N,
就可以得到几乎是任意小的频率分辨率,可以满足精细频率控制的要求。
DDS
如此精细的频率分辨率,使其输出频率已十分逼近连续变化。
(3)输出频率切换速度快且相位保持连续
与锁相频率合成相比,由于DDS系统是一个开环系统,所以当一个新的频
率控制字送到时,它会迅速合成这个新的频率,实际的频率切换时间可以达ns
级。
同时,频率切换时,DDS系统的输出波形的相位是连续的。
DDS系统的频率字改变时,输出波形的变化过程可以用图438描述。
图438频率控制字改变时累加器的输出值和输出波形的变化(仿真)
在波形输出到P点时,频率字发生了改变(变小),相位累加器的累加值即相位步进变小,其输出值斜率也变小,系统的输出波形的频率也在同时刻变小。
DDS系统在频率字发生改变后的一个时钟周期,其输出频率就可以就转换到了新的频率上,也即在频率字的值改变以后,累加器在经过一个时钟周期后就按照新的频率字进行累加,开始合成新的频率。
所以我们可以认为DDS的频率切换
是在一个系统时钟周期内完成的,系统时钟频率越高,切换速度越快。
另外,从前面对DDS技术原理的分析可知,要改变输出频率,实际上改变的是频率字,也就是相位增量。
当频率字的值从Ki改变为K2之后,相位累加器是在已有的累积相位上,再对K2进行累加,相位函数曲线是连续的。
由于DDS采用数字化技术,最终合成信号是经过D/A转换得到的,所以不可避免的存在着以下缺点:
(1)DDS在工程中的最高输出频率一般只能达到系统时钟频率的40%,要
想获得较高的频率,就必须提高系统时钟频率,也就是说DDS的相位累加器、
波形存储器和D/A转换器都将工作在较高的时钟频率下,它的实现依赖于高速数字电路和高速D/A转换器。
这也是DDS系统在早期没有受到重视,而直到最近几年才迅速发展的原因。
(2)DDS系统采用数字合成技术,先离散信号再变换成模拟信号输出,这其中导致了各种误差,尤其是相位截断误差,因此各种杂波是不可避免的。
为了具有较高的输出频率,DDS系统的参考时钟频率一般都比较高,根据式(4-18),在较高的时钟频率下,要想获得较高的频率分辨率,只有通过增加相位累加器的位数N,故一般N的取值都较大。
如果相位累加器的所有输出都用来作为波形存储器的寻址地址,那么存储器的容量会大得惊人。
例如,如果32
位累加器的所有位都用来作为存储器的地址,那么需要4G个存储单元,而如果
换成48位的累加器,那么就需要256T(仃=1024G)个存储单元,这样的设计显然是没有办法接受的。
因此存储器的地址线位数A一般都小于N。
这样存
储器的地址线就只能接到相位累加器的输出的高A位上,而低NA位则要舍
弃,也就产生了相位截断误差,表现在输出频谱上就是杂散分量。
5.波形发生器的软件设计
5.1软件设计的原理
软件系统的设计部分采用“自顶向下”的设计方法,其系统控制流程为:
系统初
始化,用户控制输入。
具体的流程图如下:
[IE雹外设及编口引翼
系绫初始化
串口初始化
晌应上位PC机
处理PC晌应.下戦数据*
1•除数■出波形
对于DDS中ROM中存储的波形数据我们使用Matlab来产生。
因为在DDS信号发生器的设计中,会用到诸如三角波、方波、正弦波等简单波的波形数据,如果手动计算,会比较繁琐,所以在这里,我利用Matlab的文件读写函数,将生成的波形数据写到一个特定的txt文件中,并且符合C中数组的格式要求。
具体的我们可以使用公式法,根据用户输入的公式或者函数语句产生波形信号,
这种方法比较科学,精度较高。
例如,sin(2*pi*x)+sin(4*pi*x),其中变量x的
范围为0到1。
这样,根据公式的不同能够产生不同的波形数据。
用Matlab产生波形数据以后,我们把波形数据存储到DDS的ROM中,然后把该数据发送给DAC模块,通过D/A转化,把数字信号转化为模拟信号,这样就可以产生我们想要的波形,该波形可以通过示波器来观看。
Matlab端和tiva端的关系用下图来表示:
5.2Matlab产生波形数据
%以三角波数据为例
tridata=uint8(round([0:
499]./500*255));%三角波上升沿数据
tridata2=uint8(round([499:
-1:
0]./500*255));%三角波下降沿数据
dataa=[tridatatridata2];
filelD=fopen('data.txt','w');%新建一个名为'data.txt'的文件
fprintf(filelD,'%s','tridata={Ox');%以十六进制格式写入文件,文件头
fprintf(fileID,'%X',dataa
(1));
fprintf(fileID,'%s0',',')fori=2:
length(dataa)-1
:
((!
)EElEp:
X%8|0|!
4)HU!
」dj
(1xO111s%11ai9|!
4)WUudjpue
(171s%11ai9|!
4)Wuudj
:
((!
)EElEp:
X%8|0|!
4)HU!
」dj
(1xO111s%11ai9|!
4)Wuudjpue
!
(.?
.u\s%11ai9|!
4)Wuudj
6.波形的生成结果
所以下面的图是找的一些波
波形可以通过示波器看到,由于实验室没有示波器,
形图片
正弦波
三角波
方波
锯齿波