DSP技术典型应用实例.ppt

上传人:max****ui 文档编号:6338464 上传时间:2020-02-23 格式:PPT 页数:46 大小:1.78MB
返回 下载 相关 举报
DSP技术典型应用实例.ppt_第1页
第1页 / 共46页
DSP技术典型应用实例.ppt_第2页
第2页 / 共46页
DSP技术典型应用实例.ppt_第3页
第3页 / 共46页
点击查看更多>>
资源描述
2020年2月23日 第8章DSP技术典型应用实例 8 1DSP最小系统电路设计8 2正弦波信号发生器设计8 3语音信号采集8 4步进电动机的DSP控制8 5Matlab语言在DSP设计中的应用本章小结习题 2020年2月23日 8 1DSP最小系统电路设计 C5490内部具有16K 16bit的ROM和32K 16bit的RAM 芯片内部RAM和ROM可根据PMST寄存器中的OVLY DROM位灵活设置 数据区 00H 5FH为存储器映射寄存器 60H 70H为双寻址RAM DARAM 80H 1FFFH为DARAM 2000H 7FFFH为单寻址RAM SARAM 当DROM 1时 内部的C000H FFFFH同时被映射在数据区 当OVLY 1时 内部的80H 1FFFH和2000H 7FFFH同时被映射为程序区 FF80H开始存储固有的中断矢量 当芯片工作在微计算机模式时 起始地址为C000H的16K 16bitROM也被映射到程序区 8 1 1TMS320C5409芯片 C5409具有一个可屏蔽存储器保护选项 用来保护片内存储器的内容 当选定此项时 所有外部产生的指令都不能访问片内存储器空间 2020年2月23日 JTAG仿真口连接需要和仿真器上给出的端子一致 8 1 2JTAG仿真口的连接 如果DSP和仿真器之间的连接电缆超过6in 采用如图所示接法 在数据传输端加一驱动 在大多数情况下 只要板子和仿真器之间的连接电缆不超过6in 数据传输端可不加驱动 DSP的EMU0和EMU1端需要用电阻上拉 推荐阻值为4 7k 或10k 2020年2月23日 在TI公司的DSP系列中 C2xx系列 C54x采用单一5V电源供电 而C54xx采用3 3V和1 8V电源供电 其中I O采用3 3V电源供电 芯片内核电压采用1 8V电源供电 而实际常用的只有5V电源 所以必须采用电源转换芯片 TPS73xx系列是TI公司为了配合DSP而设计的电源转换芯片 下面着重介绍TPS7301的应用 其硬件接线如图所示 8 1 3电源转换芯片 2020年2月23日 图8 4晶振的接线图 8 1 4时钟信号的接入 C54xx系列时钟端子为X1和X2 CLKIN 如果采用无源晶振 用这两个端子就可以了 接法如图8 4 a 所示 如果采用有源晶振 直接连接X2端子 接法如图8 4 b 所示 2020年2月23日 8 2正弦波信号发生器设计 正弦波信号发生器已被广泛地应用于通信 仪器仪表和工业控制等领域的信号处理系统中 用DSP实现正弦波信号发生器通常有三种方法 1 查表法将某个频率的正弦 余弦值计算出来后制成一个表 通过查表的方式来实现正弦波 主要用于对精度要求不很高的场合 2 泰勒级数展开法根据泰勒展开式进行计算来实现正弦信号 它能精确地计算出一个角度的正弦和余弦值 且只需要较小的存储空间 3 迭代法利用数字震荡器通过迭代方法产生正弦信号 本节主要介绍用泰勒级数展开法来实现正弦波信号 2020年2月23日 8 2 1产生正弦波的算法 取泰勒级数的前5项 得近似计算式 正弦函数和余弦函数可以展开成泰勒级数 其表达式 2020年2月23日 由式 3 和由式 4 可推导出递推公式 5 6 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 2020年2月23日 计算一个角度x的正弦值 可利用泰勒级数的展开式 采用子程序的调用方式来实现 在调用前先在数据存储器d xs单元中存放x的弧度值 计算结果存放在d sinx单元中 1 计算一个角度的正弦值 程序中要用到一些存储单元存放数据和变量 存储单元的分配如下 d xs x d squr xs x2d temp s 暂存 d sinx 计算结果sinxc 1 s 7FFFh 数值1 d coef s 泰勒系数 8 2 2正弦波的DSP实现 2020年2月23日 图8 3计算正弦值存储单元的分配 程序清单sinx asm title sinx asm mmregs defstart refsin start d xs d sinxSTACK usect STACK 10 定义符号 定义符号 建立堆栈 2020年2月23日 start STM STACK 10 SPLD d xs DPST 6487H d xsCALLsin startend Bendsin start defsin startd coef s usect coef s 4 datatable s word01C7H word030BH word0666H word1556Hd xs usect sin vars 1d squr xs usect sin vars 1d temp s usect sin vars 1d sinx usect sin vars 1c 1 s usect sin vars 1 设置堆栈指针 设置页指针 x d xs 调用子程序 子程序 定义符号 定义数据空间存放系数 定义程序空间存放系数 c1 1 8 9 c2 1 6 7 c3 1 4 5 c4 1 2 3 定义1个数据空间存放x 定义1个数据空间存放x2 定义1个暂存单元 定义数据空间存放结果 定义数据空间存放数值1 2020年2月23日 textSSBXFRCTSTM d coef s AR4RPT 3MVPD table s AR4 STM d coef s AR2STM d xs AR3STM c 1 s AR5ST 7FFFH c 1 sSQUR AR3 ASTA AR3 LD AR5 BMASR AR3 AR2 B AMPYAA 设置小数运算 设置系数表首地址 设置重复操作次数 向系数表传送泰勒系数 系数表首地址送AR2 x单元地址送AR3 数值1地址送AR5 将数值1送c l s单元 求x的平方值 x2值存入d squr xs单元 B 1 A 1 x2 72 T x2 A T A x2 1 x2 72 2020年2月23日 STHA AR3MASR AR3 AR2 B AMPYA AR3 STB AR3 LD AR5 BMASR AR3 AR2 B AMPYA AR3 STB AR3 LD AR5 BMASR AR3 AR2 B AMPYAd xsSTHB d sinxRET end d temp s x2 1 x2 72 A 1 x2 42 1 x2 72 T x2 1 x2 72 B x2 1 x2 42 1 x2 72 d temp s x2 1 x2 42 1 x2 72 B 1 A 1 x2 20 1 x2 42 1 x2 72 B x2 1 x2 20 1 x2 42 1 x2 72 d temp s B B 1 A 1 x2 6 1 x2 20 1 x2 42 1 x2 72 B x 1 x2 6 1 x2 20 1 x2 42 1 x2 72 计算sinx结果存入d sinx单元 子程序返回 2020年2月23日 计算一个角度x的余弦值 可利用泰勒级数的展开式 8 4 并采用子程序的调用方式来实现 计算余弦值与计算正弦值相同 存储单元分配图 2 计算一个角度的余弦值 2020年2月23日 实现步骤如下 3 正弦波的实现 1 利用sin start和cos start子程序 计算0 45 间隔为0 5 的正弦和余弦值 2 利用sin 2x 2sin x cos x 公式 计算0 90 的正弦值 间隔为1 3 通过复制 获得0 359 的正弦值 4 将0 359 的正弦值重复从PA口输出 便可得到正弦波 2020年2月23日 正弦波源程序清单sin asm title sinx asm mmregs defstart refd xs sinx d sinx d xc cosx d cosxsin x usect sin x 360STACK usect STACK 10k theta set286 theta pi 360 0 5deg PA0 set0 2020年2月23日 start textSTM STACK 10 SPSTM 0 AR0STMk theta AR1STM sin x AR7STM 90 BRCRPTBloop1 1LDMAR0 ALD d xs DPSTLA d xsSTLA d xc 主程序 设置堆栈 AR0 x 0 设置增量 AR7指向sin x 设置重复次数 计算sin0至sin90 取x值 设置页指针 将x值送入d xs单元 将x值送入d xc单元 2020年2月23日 CALLsin startCALLcos startLD d sinx DPLD d sinx 16 AMPYA d cosxSTHB 1 AR7 MAR AR0 0 调用sinx子程序 计算x的正弦值 调用cos子程序 计算x的余弦值 切换到正弦指数据区 求得正弦值sin x 加载累加器A 完成sin x cos x 运算 将结果存入B 完成2 sin x cos x 运算 结果存入AR7指定单元 修改AR0 2020年2月23日 loop1 STM sin x 89 AR6STM 88 BRCRPTBloop2 1LD AR6 ASTLA AR7 loop2 STM 179 BRCSTM sin x AR6RPTBloop3 1LD AR6 ANEGASTLA AR7 loop3 STM sin x AR7STM 1 AR1STM 360 BKloop4 PORTW AR7 0 PA0Bloop4 end AR6指向sin x 89单元 设置重复次数 计算sin91至sin179 设置重复次数 计算sin180至sin359 AR6指向sin x单元 AR7指向sin x单元 设置缓冲区长度 输出正弦值 循环输出 产生正弦波 2020年2月23日 产生正弦波链接命令文件sin cmd vectors objsin obj osin out msin map estartMEMORY PAGE0 EPROM org 0E000H len 1000HVECS org 0FF80H len 0080HPAGE1 SPRAM org 0060H len 0020HDARAM1 org 0080H len 0010HDARAM2 org 0090H len 0010HDARAM3 org 0200H len 0200H 2020年2月23日 SECTIONS text EPROMPAGE0 data EPROMPAGE0STACK SPRAMPAGE1sin vars DARAM1PAGE1coef s DARAM1PAGE1cos vars DARAM1PAGE1coef c DARAM2PAGE1sin x align 512 DARAM3PAGE1 vectors VECSPAGE0 2020年2月23日 若用simulator执行正弦波程序 就可产生正弦波数据 并生成out dat 再利用作图程序 就可以观察所生成的正弦波波形了 用drawhex exe画出out dat 输出正弦波数据文件 波形的命令如下 drawhexout dat ys33000 xs1000所得到的正弦波波形如图所示 2020年2月23日 8 3 1语音接口芯片TLC320AD50C简介TLC320AD50C是TI公司生产的音频接口芯片 集成16位A D和D A转换器 可工作在主 从两种方式 由上电时M S管脚的电平决定 当M S为高电平时 TLC320AD50C工作在主设备方式 当M S为低电平时 TLC320AD50C工作在从设备方式 在与DSP的McBSP连接时 一般TLC320AD50C配置为主方式 而McBSP为从方式 支持主通信和辅助通信两种通信模式 主通信用于正常的ADC或DAC的数据传输 辅助通信用于控制寄存器的读写 辅助通信模式可由硬件和软件两种方式触发 8 3语音信号采集 2020年2月23日 8 3 2TLC320AD50C与DSP的连接在实际应用中 一般将TLC320AD50C接至DSP的同步串行口 并将TLC320AD50C设置在主动工作方式 即由TLC320AD50C提供帧同步信号和移位时钟 图8 8TLC320AD50C与TMS320C54x系列DSP的连接 2020年2月23日 8 3 3语音采集和回放程序实现初始化DSP后 打开McBSP串口 初始化AD50C 然后使串口在AD50C的控制下接受数据 主函数用C语言编写 其中InitC5402 void 是初始化DSP OpenMcBSP void 是初始化串口和初始化AD50C READAD50 void 用来读取数据 程序如下 externvoidInitC5402 void externvoidOpenMcBSP void externvoidCloseMcBSP void externvoidREADAD50 void externvoidWRITEAD50 void VOidmain VOid InitC5402 OpenMcBSP while 1 READAD50 2020年2月23日 以下为McBSP串口利用TLC320AD50C实现语音采集和回放的汇编实现程序 2020年2月23日 2020年2月23日 2020年2月23日 2020年2月23日 8 4步进电动机的DSP控制 1 控制换相顺序步进电动机的通电换相顺序是严格按照步进电动机的工作方式进行的 通常把通电换相这一过程称为 脉冲分配 例如 三相步进电动机的单三拍工作方式 其各相通电的顺序为A B C 通电控制脉冲必须严格地按照这一顺序分别控制A B C相的通电和断电 8 4 1步进电动机的基本控制 2 控制步进电动机的转向如果按给定的工作方式正序通电换相的话 步进电动机就正转 如果按反序通电换相 则电动机就反转 例如四相步进电动机工作在单四拍方式 通电换相的正序是A B C D 电动机就正转 如果按反序A D C B 电动机就反转 2020年2月23日 3 控制步进电动机的速度如果给步进电动机发一个控制脉冲 它就转一个步距角 再发一个脉冲 它会再转一个步距角 两个脉冲的间隔时间越短 步进电动机就转得越快 因此 脉冲的频率决定了步进电动机的转速 步进电动机的转速可由下式计算 Nf 7 当步进电动机的工作方式确定之后 调整脉冲的频率 就可以对步进电动机进行调速 2020年2月23日 实现脉冲分配的方法有两种 软件法和硬件法 8 4 2步进电动机的脉冲分配 1 通过软件实现脉冲分配软件法是完全用软件的方式 按照给定的通电换相顺序 通过DSP的PWM输出口向驱动电路发出控制脉冲 下图是用这种方法控制五相步进电动机的硬件接口例子 2020年2月23日 2 通过硬件实现脉冲分配硬件法实际上是使用脉冲分配器芯片来进行通电换相控制 8713脉冲分配器与DSP的接口如图8 10所示 选用单时钟输入方式 8713的3脚为步进脉冲输入端 4脚为转向控制端 这两个引脚的输入由DSP的PWMl和PWM2提供和控制 选用对四相步进电动机进行八拍方式控制 所以5 6 7脚均接高电平 图8 108713脉冲分配器与DSP的接口 2020年2月23日 步进电动机的速度控制是通过控制DSP发出的步进脉冲频率来实现的 周期值越大 步进脉冲的频率就越低 步进电动机的速度越慢 对于软脉冲分配方式 DSP定时器的周期值决定了周期中断的时刻 因此也决定了执行换相的时刻 控制中只要改变定时器的周期值就可以改变电动机的速度 8 4 3步进电动机的速度控制 对于硬脉冲分配方式 由于要在PWM口发出等宽步进脉冲方波 所以还要对比较寄存器的比较值进行设置 比较值应该等于1 2周期值 即占空比为50 因此 在电动机调速时 除了要改变DSP定时器的周期值外 还要改变相应的比较寄存器的比较值 以保证输出等宽步进脉冲方波 2020年2月23日 步进电动机的位置控制指的是控制步进电动机带动执行机构从一个位置精确地运行到另一个位置 位置控制是步进电动机的一大优点 它可以用不着借助位置传感器而只需简单的开环控制就能达到足够的位置精度 因此应用很广 8 4 4步进电动机的位置控制 对步进电动机位置控制的一般作法是 步进电动机每走一步 步数减1 如果没有失步存在 当执行机构到达目标位置时 步数正好减到0 因此用步数等于0来判断是否移动到目标位 作为步进电动机停止运行的信号 下面给出一个例子 其硬件连接如图8 10所示 每次定时器周期中断都表示步进电动机已经走了一步 因此 需要对相对位置进行减1操作 根据转向对绝对位置进行加1或减1操作 并且还要判断绝对位置是否越界 相对位置是否为0 位置控制子程序在每次定时器周期中断调用一次 位置控制子程序框图见图8 12 2020年2月23日 图8 12位置控制子程序框图 2020年2月23日 8 5MATLAB语言在DSP设计中的应用 8 5 1MATLAB简介 MATLAB MatrixLaboratary 是国际上最流行的电子仿真计算机辅助设计的大型数学计算工具软件 MATLAB的语言结构很简单 一般格式如下 MATLAB语言结构 窗口命令 M文件在Commandwindow输入的MATLAB语句称为窗口命令 用以调用并执行M文件 M文件在编辑窗口建立 扩展名为 m M文件可以有很多个 它们可以互相调用 也可调用自己 在功能上 M文件可以分为两种类型 文本文件和函数文件 文本文件包括一系列的MATLAB命令 当命令窗口调用它时 自动执行这些命令 文本文件的语句在工作空间对全局变量进行运算 MATLAB控制语句较少 但功能很强 主要有for while if和break几种 2020年2月23日 8 5 2IIR滤波器设计 从实现数字滤波器的网络结构或者从单位脉冲响应分类 可分为无限脉冲响应 IIR 滤波器和有限脉冲响应 FIR 滤波器 两种滤波器的设计方法有较大区别 下面的仅介绍如何设计IIR滤波器 1 滤波器概述 常用的数字滤波器一般属于选频滤波器 假设滤波器的传输函数H ej 用下式表示 H ej H ej ejQ 8 8 式中 H ej 和Q 分别为幅频特性和相频特性 幅频特性表示滤波器对信号各频率成分的衰减情况 决定滤波器的选频指标 相频特性反映各频率成分通过滤波器后在时间上的延时情况 2020年2月23日 2 IIR滤波器原理 当给定滤波器指标 P s RP AS时 IIR数字滤波器的设计步骤如下 1 选T 通常选T 1 在数字滤波器的设计中 必须给出抽样频率 按照奈奎斯特抽样定理 频率特性只能限于范围 2 对 P s做预畸变 使 3 按 P s RP AS 计算出模拟滤波器的阶数和 3dB截止频率 4 按截止频率设计模拟滤波器的传递函数Ha s 5 通过变换将Ha s 转换为数字滤波器的传递函数H z 2020年2月23日 3 MATLAB仿真实现 在MATLAB编辑窗口 建立iir butterworth m文件 内容为 2020年2月23日 2020年2月23日 执行iir butterworth m文件 得如图所示的频率特性 2020年2月23日 8 5 3信号的谱分析 FFT 利用MATLAB的fft函数 进行谱分析 在MATLAB编辑窗口 建立fft m文件 内容如下 m 5 n 2 m fft运算点数t 0 n 1 a sin 16 pi t n 2 sin 4 pi t n b fft a c abs b 2 figure subplot 2 1 1 plot a title 信号a subplot 2 1 2 stem c title 频谱 xlabel 以pi为单位的频率 2020年2月23日 执行fft m得到图8 15的分析结果 输出数字序列的第0点对应直流分量 第1点为基波分量 其后为谐波分量 FFT算法的输出以点数N的一半对称 即频谱分布以N 2对称 除直流分量以外 图8 15FFT进行谱分析 2020年2月23日 本章小结 通过本章的学习 要学会应用程序的设计 掌握数字信号处理中常用算法的DSP实现方法 本章讨论了DSP应用程序的设计 首先阐述了DSP最小系统电路设计 接着详细分析了用DSP实现正弦信号发生器 语音信号采集 步进电动机的控制等典型实例 最后以IIR滤波器设计和信号的谱分析为例 介绍了Matlab语言在DSP设计中的应用 2020年2月23日 习题 8 1参照8 2节正弦波信号发生器程序 编写实现余弦信号的程序 8 2在第1题的基础上 新建一个工程文件 使用TMS320vC5402的定时器1产生余弦信号 同时使用定时器0产生正弦信号 8 3请编写一个128点的实数FFT程序 8 4试用TMS320VC5402芯片设计一个DSP应用系统 该系统应包括一个128千字的EPROM和A D D A转换器 8 5试用TMS320VC5402芯片设计一个DSP应用系统 该系统应包括程序存储器 89C5l单片机 A D和D A转换器 并要求DSP的HPI 8主机接口与单片机相连 8 6试用TMS320C54x A D和D A等芯片 设计一个音频信号采集与处理系统 要求用McBSP口实现 8 7试用TMS320C54x的HPI接口 实现89C5l单片机与DSP芯片之间的通信
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!