logo资料库

基于DSP的正弦信号发生器.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
1 DSP简介
第2章 总体方案的分析和设计
2.1 总体方案设计
2.2正弦波信号发生器
第3章 硬件设计
3.1硬件组成
3.2控制器部分
3.4人机接口部分
第4章 软件设计
4.1流程图
4.2 正弦信号发生器程序清单
第5章 总结
参考文献
目录 第 1 章 绪论 .............................................. 1 1 DSP 简介 ................................................1 第 2 章 总体方案的分析和设计 .............................. 2 2.1 总体方案设计 .......................................... 2 2.2 正弦波信号发生器 ...................................... 2 第 3 章 硬件设计 .......................................... 3 3.1 硬件组成 .............................................. 3 3.2 控制器部分 ............................................ 4 3.4 人机接口部分 ..........................................5 第 4 章 软件设计 .......................................... 6 4.1 流程图 ................................................6 4.2 正弦信号发生器程序清单 ............................... 7 第 5 章 总结 ............................................. 12 参考文献 ................................................ 12
第 1 章 绪论 1 DSP 简介 数字信号处理(Digital Signal Processing,简称 DSP)是一门涉及许多学科而 又广泛应用于许多领域的新兴学科。20 世纪 60 年代以来,随着计算机和信息技 术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是 一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信 号由数字序列表示。在过去的二十多年时间里,信号处理已经在通信等领域得 到极为广泛的应用。 图一是数字信号处理系统的简化框图。此系统先将模拟信号转换为数字信号,经 数字信号处理后,再转换成模拟信号输出。其中抗混叠滤波器的作用是将输入信号 x (t)中高于折叠频率的分量滤除,以防止信号频谱的混叠。随后,信号经采样和 A/D 转换后,变成数字信号 x(n)。数字信号处理器对 x(n)进行处理,得到输出数字信号 y (n),经 D/A 转换器变成模拟信号。此信号经低通滤波器,滤除不需要的高频分量,最 后输出平滑的模拟信号 y(t)。 x(t) 抗混叠 滤波器 A/D x(n) y(t) 低 通 滤 波器 数 字 信 号 处 理 y(n) D/A 图 1.1 数字信号处理系统简化框图 数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。例如,在 数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具, 与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。近来新兴的 一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。可以 说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为 一系列新兴学科的理论基础。 1
第 2 章 总体方案的分析和设计 2.1 总体方案设计 1.基于 DSP 的特点,本设计采用 TMS320C54X 系列的 DSP 作为正弦信号发生器的 核心控制芯片。 2.用泰勒级数展开法实现正弦波信号。 3.设置波形时域观察窗口,得到其滤波前后波形变化图; 4.设置频域观察窗口,得到其滤波前后频谱变化图。 2.2 正弦波信号发生器 正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处 理系统中。 通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。 查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。 泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个 角度的正弦和余弦值,且只需要较小的存储空间。 本次主要用泰勒级数展开法来实现正弦波信号。 产生正弦波的算法正弦函数和余弦函数可以展开成泰勒级数,其表达式: sin( x )  x cos( x 1)  3 x !3 2 x !2   5 x !5 4 x !4   7 x !7 6 x !6   9 x !9 8 x !8   取泰勒级数的前 5 项,得近似计算式: sin( x )  x 3 x !3  ( 1 x   5 x !5 2 x 32   7 x !7  9 x !9 ( 1 ( 1  2 x 54   2 x 76  ( 1  2 x 98  )))) 2
cos( x 1)  1  2 x !2 2 x 2 递推公式:  4 x !4  ( 1  2 x 43   6 x !6 ( 1 8 x !8  2 x 65  ( 1  2 x 87  ))) 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。 第 3 章 硬件设计 3.1 硬件组成 基于 DSP 的信号发生器的硬件结构图如图 3.1 所示,它主要由 DSP 主控制器, 输出 D/A 通道和人机界面等几个主要部分组成。 独立式四 键功能键 DSP 微控制器 TMS320LF 2407 PGE 段驱动器 2*SN74LS07 四位 LED 位驱动器 74LS07 缓冲及电平 转换电路 有源滤波 电路 减法电路 输出三相 正弦波 放大电路 AD624 电源(自带 复位功能) Clock Circuit 图 3.1 基于 DSP 的信号发生器系统框图 3
3.2 控制器部分 本系统采用 TI 公司的 TMS320LF2407 DSP 处理器,该器件具有外设集成度高, 程序存储器容量大,A/D 转换精度高,运算速度高,I/O 口资源丰富等特点,芯片内 部集成有 32KB 的 FLASH 程序存储器、2KB 的数据/程序 RAM,两个事件管理器模 块(EVE 和 EVB)、16 通道 A/D 转换器、看门狗定时器模块、16 位的串行外设接口 (SPI)模块、40 个可单独编程或复用的通用输入输出引脚(GPIO)以及 5 个外部中 断和系统监视模块。 TMS320LF2407 芯片中的事件管理模块(EV)是一个非常重要的组成部分。SP WM 波形的产生和输出就是由这一部分完成的,它由两个完全相同的模块(EVA 和 E VB)组成,每个模块都含有 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 复用的引脚,而实际上,本系统只需要 1 7 路 I/O 信号,这样,就可以为系统剩余 50%多的 I/O 资源,因此可以说,该方案既 不算浪费系统资源,也为系统今后的升级留有余地。 3.3 微输出 D/A 通道部分 本系统的输出通道部分主要负责实现波形的输出,此通道的入口为 TMS320LF2 407 的 PWM8 口,可输出 SPWM 等幅脉冲波形,出口为系统的输出端,这样,经过 一系列的中间环节,便可将 PWM 脉冲波转化为交流正弦波形,从而实现正弦波的输 出,其原理框图如图 3.2 所示。 DSP 的 PWN 输出 缓冲 电路 电平 转换 电路 低通 滤波 电路 减法 电路 输出 图 3.2 中的缓冲电路的作用是对 PWM 口输出的数字量进行缓冲,并将电压拉高 图 3.2 输出通道的原理结构 4
到 5V 左右,以供后级模拟电路滤波使用。这一部分电路由两个芯片组成。一片用三 态缓冲器,由于 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,所以它非常适宜在高速数据采集系统中使用。 3.4 人机接口部分 3.4.1 驱动器设计 位驱动器电路由两片集成电路组成,即由位驱动的 CMOS 芯片和将 TTL 电平转 换成 CMOS 电平的电平转换芯片组成,电平转换芯片可以和输出通道的电平转换芯 片共用一片 74HCT244(本部分使用 4 路,输出通道使用 3 路),其主要作用是对 DS P 输出的 3.3V TTL 电平与 5V CMOS 电平进行匹配,从而带动具有 CMOS 电平的位 驱动器,根据动态扫描显示的要求,位驱动器需要选用每路输出吸收电流都要大于 2 00mA 的芯片,因此,本设计选用了 TI 公司的 74LS06 来做 LED 的大电流驱动器件。 3.4.2 键盘设计 本系统选用四个独立式按键,分别接入 PF3-PF6 口,并使用四个 220Ω上拉电阻接 VCC。所谓独立式,就是将每一个独立键按一对一地直接接到 I/O 输入线上,而在读 键值时,直接读 I/O 口,每一个键的状态通过读入键值的一位(二进制位)来反应, 所以这种方式也称为一维直读方式,这种方式的查键软件比较简单,但占用 I/O 线较 多,一般在键的数量较少时采用,不过,由于 DSP 芯片有足够的 I/O 接口可供使用, 因而可大大方便设计,设计时可以充分利用这一特点来连接硬件,至于按键的削抖动 措施,则可在软件中完成。 5
第 4 章 软件设计 4.1 流程图 本系统软件可以按照模块化设计思想来编写,包括主程序、常数计算程序、占空 比计算程序和相应的一些功能子程序,主程序用于调用各功能子程序、初始化变量、 查询键盘、判断显示数据是否需要刷新、同时判断一个脉冲是否完成发送等工作,具 体方案见图 4.1 所示的流程图。 主程序中的循环子程序开始 判断 20ms 是否到? 判断 0.1s 是否到? 刷新显示输出寄存器,奇次显示 频率,偶次频率,偶次显示幅值 判断脉冲发出标 志寄存器=1? 清脉冲发出标志寄存器, 调计算占空比程序 判断是否在延时程 序中调用本程序 返回 图 4.1 主程序流程图 6
在程序中,应在第 N-1 个脉冲周期里计算占空比,并在第 N 个脉冲周期里输出 波形,这就要求在设计时要在一个脉冲周期内完成计算,如果选用 20MHz 的晶振, 那么,在一倍频下,执行一条执行只需 50ns,若输出 400Hz 的正弦波,即每一个周 期(即 2.5ms)要输出 200 个脉冲,这样,也就是说,一个脉冲需要 12.5μs(相当于 12500/50=250 条指令)。而执行一个占空比的计算程序只需要几十条指令,这种算法 从软件开销上考虑是可以实现的。 4.2 正弦信号发生器程序清单 ;This function generates the sine wave of angle using the Taylor expansion ;sin(theta)=x(1-x^2/2*3(1-x^2/4*5(1-x^2/6*7(1-x^2/8*9)))) ;cos(theta)=1-x^2/2*3(1-x^2/4*5(1-x^2/6*7(1-x^2/8*9))) ;sin(2*theta)=2*sin(theta)*cos(theta) series sin_x: STACK: k_theta PA0 _c_int00 "sin.asm" .title .mmregs .def .ref .usect _c_int00 sinx,d_xs,d_sinx,cosx,d_xc,d_cosx "sin_x",360 .usect "STACK",10 .set .set 286 0 .text STM STM STM STM STM RPTB LDM #STACK+10,SP k_theta,AR0 0,AR1 #sin_x,AR6 #90,BRC loop1-1 AR1,A 7
分享到:
收藏