基于DSP的信号发生器
院 系:班 级:学 号:姓 名:老 师:
——正弦信号
2015年12月15日
一、 DSP简介
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。
图1是数字信号处理系统的简化框图。此系统先将模拟信号转换为数字信号,经数字信号处理后,再转换成模拟信号输出。其中抗混叠滤波器的作用是将输入信号x(t)中高于折叠频率的分量滤除,以防止信号频谱的混叠。随后,信号经采样和A/D转换后,变成数字信号x(n)。数字信号处理器对x(n)进行处理,得到输出数字信号y(n),经D/A转换器变成模拟信号。此信号经低通滤波器,滤除不需要的高频分量,最后输出平滑的模拟信号y(t)。
x(t) 抗混叠 滤波器 x(n) A/D 数字信号处理y(n) y(t) 低通滤波器 D/A
图1数字信号处理系统简化框图
数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。例
1
如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
二、信号发生器简介
信号源有很多种分类方法,其中一种方法可分为混和信号源和逻辑信号源两种。其中混和信号源主要输出模拟波形,逻辑信号源输出数字波形。混和信号源又可分为函数信号发生器和任意波形/函数发生器,其中函数信号发生器输出标准波形,如正弦波、方波等,任意波/函数发生器输出用户自定义的任意波形;另外,信号源还可以按照输出信号的类型分类,如射频信号发生器、扫描信号发生器、频率合成器、噪声信号发生器、脉冲信号发生器等等。信号源也可以按照使用频段分类,不同频段的信号源对应不同应用领域。
函数信号发生器:
函数发生器是使用最广的通用信号源,提供正弦波、锯齿波、方波、脉冲波等波形,有的还同时具有调制和扫描功能。
函数波形发生器在设计上分为模拟和数字合成式。众所周知,数字合成式函数信号源(DDS)无论就频率、幅度乃至信号的信噪比(S/N)均优于模拟式,其锁相环(PLL)的设计让输出信号不仅是频率精准,而且相位抖动(phase Jitter)及频率漂移均能达到相当稳定的状态,但数字式信号源中,数字电路与模拟电路之间的干扰始终难以有效克服,也造成在小信号的输出上不如模拟式的函数信号发生器,如今市场上的大部分函数信号发生器均为DDS信号源。
任意信号发生器:
任意波形发生器,是一种特殊的信号源,不仅具有一般信号源波形生成能力,而且可以仿真实际电路测试中需要的任意波形。
由于任意波形发生往往依赖计算机通讯输出波形数据,在计算机传输中,通过专用的波形编辑软件生成波形,有利于扩充仪器的能力,和更进一步的仿
2
真实验。另外,内置一定数量的非易失性存储器,随机存取编辑波形,有利于参考对比,或通过随机接口通讯传输到计算机作更进一步分析与处理。有些任意波形发生器有波形下载功能,在作一些麻烦费用高或风险性大的实验时,通过数字示波器等仪器把波形实时记录下来,通过计算机接口传输到信号源,直接下载到设计电路,更进一步实验验证。
正弦信号发生器是信号中最常见的一种,它能输出一个幅度可调、频率可调的正弦信号,在这些信号发生器中,又以低频正弦信号发生器最为常用,在科学研究及生产实践中均有着广泛应用。
目前,常用的信号发生器绝大部分是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积大和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵。利用DSP运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的数字式信号发生器具有速度更快,且实现更加简便。正弦信号发生器是信号中最常见的一种,可输出一个幅度可调、频率可调的正弦、三角、方波等信号,在这些信号中,低频正弦信号最为常用,在科学研究及生产实践中均有着广泛应用。
DDS在相对带宽、频率转换时间、高分辨率、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。
1)输出频率相对带宽较宽
输出频率带宽为50%fs(理论值)。但考虑到低通滤波器的特性和设计难度以及对输出信号误差的抑制,实际的输出频率带宽仍能达到40%fs。
2)频率转换时间短
DDS是一个开环系统,无任何反馈环节,这种结构使得DDS的频率转换时间极短。事实上,在DDS的频率控制字改变之后,需经过一个时钟周期之后按照新的相位增量累加,才能实现频率的转换。因此,频率时间等于频率控制字的传输,也就是一个时钟周期的时间。时钟频率越高,转换时间越短
3)频率分辨率极高
若时钟fs的频率不变,DDS的频率分辨率就是则相位累加器的位数N决定。只要增加相位累加器的位数N即可获得很小的分辨率。目前,大多数DDS的分辨
3
率在1Hz数量级,许多小于1mHz甚至更小。
4)相位变化连续
改变DDS输出频率,实际上改变的每一个时钟周期的相位增量,相位函数的曲线是连续的,只是在改变频率的瞬间其频率发生了突变,因而保持了信号相位的连续性。
正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。
泰勒级数法:
泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间,但因其运算量较大, 所以适用于对速度要求不严格的场合。一个角度为θ的正弦和余弦函数,都可以展开成泰勒级数,取其前五项进行近似:
sin(x)?x?x33!?x55!?x77!?x99! ?x(1?2?3(1?4?5(1?6?7(1?8?9))))x2x2x2x2x2x4x6x8 cos(x)?1????2!4!6!8!2222xxxx ?1?(1?(1?(1?)))23?45?67?8递推公式:
sin(nx) = 2cos(x)sin[(n-1)x]-sin[(n-2)x] cos(nx) = 2cos(x)sin[(n-1)x]-cos[(n-2)x]
由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x)、sin(n-1)x、sin(n-2)x和cos(n-2)x。
式中x为?的弦度值,x=2?×f/fs,其中f是要发生的信号频率,fs是采样频率。
正弦波可以看成是无数个点组成的,这些点与x轴的每个角度值对应,通过
4
给x赋不同的值就得到每一点的正弦波幅度值。
查表法:
正弦波是一个周期信号,因此相隔一个周期的角度值最后得到的波形幅度值是一样的。同时在数字电路中正弦波可以看成是无数个点组成的,这些点连接成一条曲线就是我们平时看到的正弦波。每个点与x轴的每个角度值对应,通过赋给x不同的值就得到每一点的正弦波幅度值。
查表法的基本思想是预先在一片存储空间里存储一个正弦波的离散信号,存储的点数需要根据设计要求而定,需要产生信号时,根据设定的频率字改变相位,由相位值转化为对应的地址,得到相应的幅度值送至D/A转换器进行转换,得到模拟正弦波。
查表法的优点是可以不需要进行计算就可以得到相应的数据,合成正弦波的速度极快,适合于对实时性要求非常严格的场合。它的缺点是需要很大的存储空间来存储波形数据,对波形的精确度越高,需要存储的点数就越多,所消耗的存储空间就越大。
5
三、设计并实现正弦信号发生器
本文所设计的信号源是基于DSP芯片的,由于DSP具有高速运算性能,由于初学DSP,采用泰勒级数展开法得到正弦信号,虽然耗费时间多,精度相对较低,但是容易操作。
基于DSP的信号发生器的硬件结构图如图2所示,它主要由DSP主控制器,输出D/A通道和人机界面等几个主要部分组成。
电源(自带复位功能) Clock Circuit 四位LED 段驱动器 2*SN74LS07 DSP微控制器 TMS320LF 2407 PGE 位驱动器 74LS07 减法电路 缓冲及电平转换电路 有源滤波 电路 独立式四 键功能键 输出三相 正弦波 放大电路 AD624
图2 基于DSP的信号发生器系统框图
6
采用TI公司的TMS320LF2407 DSP处理器,该器件具有外设集成度高,程序存储器容量大,A/D转换精度高,运算速度高,I/O口资源丰富等特点,芯片内部集成有32KB的FLASH程序存储器、2KB的数据/程序RAM,两个事件管理器模块(EVE和EVB)、16通道A/D转换器、看门狗定时器模块、16位的串行外设接口(SPI)模块、40个可单独编程或复用的通用输入输出引脚(GPIO)以及5个外部中断和系统监视模块。
TMS320LF2407芯片中的事件管理模块(EV)是一个非常重要的组成部分。SPWM波形的产生和输出就是由这一部分完成的,它由两个完全相同的模块(EVA和EVB)组成,每个模块都含有2个通用定时器、3个比较器、6至8个PWM发生器、3个捕获单元和2个正交脉冲编码电路(QEP)。由于TMS320LF2407有544字的双口RAM(DARAM)和2K字的单口RAM(SARAM);而本系统的程序仅有几KB,且所用RAM也不多,因此不用考虑存储器的扩展问题,而对于TMS320LF2407的I/O扩展问题,由于TMS320LF2407器件有多达40个通用、双向的数字I/O(GPIO)引脚,且其中大多数的基本功能和一般I/O复用的引脚,而实际上,本系统只需要17路I/O信号,这样,就可以为系统剩余50%多的I/O资源,因此可以说,该方案既不算浪费系统资源,也为系统今后的升级留有余地。
输出通道部分主要负责实现波形的输出,此通道的入口为TMS320LF2407的PWM8口,可输出SPWM等幅脉冲,出口为系统的输出端,这样,经过一系列的中间环节,便可将PWM脉冲波转化为交流正弦波形,从而实现正弦波的输出,其原理框图如图3所示。
DSP的 PWN 输出 缓冲 电路 电平转换电路 低通 滤波 电路 减法 电路 输出
图3 输出通道的原理结构
图3中的缓冲电路的作用是对PWM口输出的数字量进行缓冲,并将电压拉高到5V左右,以供后级模拟电路滤波使用。这一部分电路由两个芯片组成。一片
7
用三态缓冲器,由于PWM口的输出为3.3V的TTL电平,这样,在设计时就应当选用输入具有5V的TTL输入,CMOS输出电平的转换芯片(如TI公司的74HCT04);另一片则可选用TOSHIBA公司出品的光电耦合器6N137;输出端连接的5V精密稳压电源可选用BURR-BROWN公司生产的REF02型精密稳压电源,以输出标准的5V电压。
系统中的减法电路的主要作用是把0-10V直流脉动信号的转换成-5~+5V的正弦交流信号,并使其电压增益为1。设计使可利用差分式电路来实现其功能,为了简化电路,可以选用较为常用的AD公司的AD524,并将AD524接成电压跟随器的形式,同时适当的选取电阻以满足要求,此外,为了使产生的正弦波信号具有2-5mA的驱动能力,可选用AD624来构成末级的信号放大电路。AD624是高精度低噪声仪用放大器,若外接一只增益电阻,即可得到1-1000之间的任意增益值,其误差小于1%。由于AD624的建立时间只有15μs,所以它非常适宜在高速数据采集系统中使用。
位驱动器电路由两片集成电路组成,即由位驱动的CMOS芯片和将TTL电平转换成CMOS电平的电平转换芯片组成,电平转换芯片可以和输出通道的电平转换芯片共用一片74HCT244(使用4路,输出通道使用3路),其主要作用是对DSP输出的3.3V TTL电平与5V CMOS电平进行匹配,从而带动具有CMOS电平的位驱动器,根据动态扫描显示的要求,位驱动器需要选用每路输出吸收电流都要大于200mA的芯片,因此,选用了TI公司的74LS06来做LED的大电流驱动器件。
选用四个独立式按键,分别接入PF3-PF6口,并使用四个220Ω上拉电阻接VCC。所谓独立式,就是将每一个独立按键一对一地直接接到I/O输入线上,而在读键值时,直接读I/O口,每一个键的状态通过读入键值的一位(二进制位)来反应,所以这种方式也称为一维直读方式,这种方式的查键软件比较简单,但占用I/O线较多,一般在键的数量较少时采用,不过,由于DSP芯片有足够的I/O接口可供使用,因而可大大方便设计,设计时可以充分利用这一特点来连接硬件,至于按键的削抖动措施,则可在软件中完成。
按照模块化设计思想来编写,包括主程序、常数计算程序、占空比计算程序和相应的一些功能子程序,主程序用于调用各功能子程序、初始化变量、查询键盘、判断显示数据是否需要刷新、同时判断一个脉冲是否完成发送等工作,下图4流程图:
8
主程序中的循环子程序开始 判断20ms是否到? 判断0.1s是否到? 刷新显示输出寄存器,奇次显示 频率,偶次频率,偶次显示幅值 判断脉冲发出标志寄存器=1? 清脉冲发出标志寄存器, 调计算占空比程序 判断是否在延时程序中调用本程序 返回
图4流程图
在程序中,应在第N-1个脉冲周期里计算占空比,并在第N个脉冲周期里输
9
出波形,这就要求在设计时要在一个脉冲周期内完成计算,如果选用20MHz的晶振,那么,在一倍频下,执行一条执行只需50ns,若输出400Hz的正弦波,即每一个周期(即2.5ms)要输出200个脉冲,这样,也就是说,一个脉冲需要12.5μs(相当于12500/50=250条指令)。而执行一个占空比的计算程序只需要几十条指令,这种算法实际是很容易实现的。
四、测试结果
测试结果:
10
五、结果分析
设计时间虽短,但是这次我也基本熟悉了一种新的集成开发环境CCS,在学习新的知识的过程中培养与提升了自己学习能力。对仿真器驱动程序的安装以及相应的配置流程也有了一定的了解。从仿真环境的配置,到工程的建立,文件的加载,在到程序的仿真,以及目标板的链接与调试,通过不断地摸索修改,逐渐熟悉软件的使用。对已有程序进行修改,重复相应的过程也能实现预定的功能,在短时间里能掌握这些软件的基本功能,由于所需要的配置的文件缺失,无法完成对相应工程的配置设置,有时候会采用的参考例程里的程序,完成相应的过程,这也是一个学习的过程。之前所学的相关课程是一个个基础,在此基础之上对相应的硬件与软件结合,切实去体验一个芯片所能实现的各种功能,去发现所学的知识会在哪些方面用到,是如何应用,有怎样可以改进的方法,更深层次去掌握与其他相关课程的交叉点,将理论知识与实际相结合,提升了自己的学习能力。
本设计采用泰勒级数法,且只需要较小的存储空间,但因其运算量较大, 所以适用于对速度要求不严格的场合。也可以采用查表发,查表法不需要进行计
11
算就可以得到相应的数据,合成正弦波的速度极快,适合于对实时性要求非常严格的场合。它的缺点是需要很大的存储空间来存储波形数据,对波形的精确度越高,需要存储的点数就越多,所消耗的存储空间就越大。
在设计中遇到一些问题,通过自己网络查找资料和与师兄的交流,提升了自己的设计能力。并在设计中也提高了自身的创作、创新水平。通过设计使我对数字信号处理有了更深一步的了解和掌握,对利用CCS软件编程的数字信号处理方法有了进一步的了解。在理论课的基础上进行实际电路设计,更能深入学习和掌握DSP,在以后的工作学习中,数字信号的处理都是采用计算机仿真的方法进行测试,因此,掌握基于计算机的数字信号处理方法对以后的工作和学习有很大的帮助。
12