DSPA/D采样分析的精确性实验分析与设计

AD转换实验报告_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
AD转换实验报告
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢文档分类:
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
下载文档到电脑,查找使用更方便
还剩?页未读,继续阅读
播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表硕士学位论文--基于DSP控制的高频开关电源PFC研究与设计.pdf
文档介绍:
开关电源具有体积小、重量轻、效率高、发热量低、性能稳定等优点,广泛应用于电子整机与设备中,在以往的AC-DC电路中,由二极管组成的不可控整流器与电力网相接,为在电网中会产生大量的电流谐波和无功功率而污染电网,使得功率因数较低。为了提高AC—DC电路输入端的功率因数,采用了功率因数校正。本文采用TMS320F2812实现开关电源的功率因数校正,分析了DSP实现功率因数校正的控制方法和具体实现,对于软件中参数的标么值实现进行了理论推导,为了使输出功率在输入电压变化的一定范围内保持不变,采用了前馈电压,对于数字PI调节环采用了抑制积分饱和的方法,以防止系统失控。论文中通过对AC-DC整流电路和加入Boost功率因数校正后的电路进行了Matlab的仿真,通过输入电压和输入电流波形的比较,可以很容易地看到功率因数的提高。在具体的电路实现中,采用霍尔元件检测输入电感电流、输入电压和输出电压,经过DSP的A/D采样后,在DSP内部经过程序计算,输出PWM波形驱动MOSFET的开通与关断;使输入电感电流波形与输入电压波形一致。本文实现了系统仿真,给出了仿真波形,分析了硬件设计电路并完成了电路的局部仿真,软件编程方面给出了主程序和各个子程序的软件流程图,提出了以后研究的方向。关键词:开关电源功率因数校正(PFC)数字控制ABSTRACTTheswitchingpowersupplyiswidelyusedinelectricmachineandequipmentforitsexcellentcharacteristicofsmall,light,highefficiency,lowheatandconstantcapability.InthetraditionalAC-DCcircuits,work,work,thepowerfactorislow.ToincreasethepowerfactorofAC-DCinput,themethodofpowerfactorcorrectionisused.ThispaperimplementhighfrequencyswitchingpowersupplypowerfactorcorrectionbyTMS320F282,analysesthecontrolmethodandrealizationofPFC.Theequationabouttheper-unitvalueofparameterinthesoftwareprogramisdeducted.Inordertoremaintheoutputpowerataspecifiedlevelwhichdeterminedbyload,theinputvoltagefeed-forwardisused.Inthevoltageandcurrentloopcontrollers,ponentcorrectionisimplemented.paresthesimulationresultofAC—DCrectifiercircuitandBoostpowerfactorcorrectioniSadded,thesimulatedwaveformSclearlyshowtheimprovementofpowerfactor.Inthehardwarecircuits,LEMsenseandconditioninputinductorcurrent,inputvoltageandtheoutputvoltage.putedtomakethewaveformsofinputcurrentandvoltageconsistent.Thispaperrealizethesystemsimulation,indicatesimulationwave,pletethepartsimulation,depictprogramflowchartsofmainprogramandinterruptprogrametc,pointoutthedirectionoffurtherresearch.KEYWORDS-switchingpowersupply,powerfactorcorrection(PFC),digitalcontrol天津大学硕士学位论文第一章绪论第一章绪论开关电源广泛应用于各种系统的直流电源。为了使开关电源轻小化,应采用高开关频率;为了实现高速响应控制,通常采用模拟电路进行控制。然而,采用模拟电路需要解决偏差等参数的初期调整和由于漂移造成控制性能下降等问题。为了解决这些问题,近来提出了基于硬件逻辑电路控制的开关电源数字控制方法o1.1开关电源发展简介1.1.1开关电源发展背景电源是利用电能变换技术将市电、蓄电池、太阳能、化学能、生物能等一次电能转换成适合用电对象的二次电能的系统或装置。传统的晶体管串联调整稳压电源是连续控制的线性稳压电源。这种传统稳压电源技术比较成熟,并且已有大量集成化的线性稳压电源模块,具有稳定性能好、输出纹波电压小、使用可靠等优点,但其通常都需要体积大且笨重的工频变压器与体积和重量都大的滤波器,其电源效率只有45%左右。开关电源是做为线性稳压电源的替代物出现的,它因具有体积小、重量轻、效率高、发热量低、性能稳定的特点而广泛应用于电子整机与设备中。开关电源是用半导体功率器件作为开关,并以某一频率开(通)、关(断)状态进行电能变换,变换过程中采用自动控制闭环稳定输出量并具有保护环节的电能装置。目前除了对直流输出电压的纹波要求极高的场合外,开关电源已经全面取代了线性稳压电源,尤其是中小功率直流电源几乎全都采用开关电源。开关电源的高频化是电源技术发展的创新技术,高频化带来的效益是使开关电源装置空前地小型化,并使开关电源进入更广泛的领域,特别是在高新技术产品的小型化轻便化。高频化、小型化、模块化、数字化、信息化及绿色电源是开关电源的重要发天津大学硕士学位论文第一章绪论展方向。在电力电子技术的各种应用系统(如逆变焊机、通信电源、高频加热电源、激光器电源、电力操作电源等)中,开关电源技术始终处于核心地位。对于大型电解、电镀电源,传统的装置非常庞大而笨重,如果采用高频开关电源,其体积和重量都会大幅度下降,而且可提高电源效率、节省材料、降低成本。本文采用的开关电源的开关频率为80KHz。高频化是小型化和模块化的基础。理论分析和实践经验表明,电气产品的变压器,电感和电容的体积重量与供电频率的平方根成反比。由于功率电子器件工作频率上限的逐步提高,目前开关频率达到数兆赫的开关电源已有使用,在节能、节约原材料方面带来显著的经济效益。在传统功率电子技术中,控制部分是按模拟信号来设计和工作的。但是现在数字信号、数字电路的优势变得越来越突出,数字信号处理技术日趋完善成熟,显示出越来越强的生命力——便于计算机处理、控制,能够避免模拟信号的畸变失真,减小杂散信号的干扰(提高抗干扰能力),便于软件调试和遥感、遥测、遥调,也便于自诊断、容错等技术的植入。所以在20世纪80&---90年代,对1
内容来自淘豆网转载请标明出处.DSP A.D实验报告_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
DSP A.D实验报告
&&DSP A.D实验报告
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢当前位置: >>
DSP实验指导书
百科融创科技有限公司DSP- II+实验指导书目    录目    录...................................................................................................... 1 第一章 §1.1 §1.2 §1.3 第二章 §2.1 §2.2 §2.3 第三章 §3.1 §3.2 §3.3 §3.4 §3.5 §3.6 第四章 §4.1 §4.2 §4.3 §4.4 §4.5 §4.6 §4.7 实验平台说明...................................................................................... 3 系统总览.............................................................................................. 4 使用方法.............................................................................................. 6 模块说明.............................................................................................. 7 开发软件 ( CCS ) 介绍 ..................................................................... 20 CCS 简介 .......................................................................................... 20 CCS 的安装与配置 ............................................................................. 22 CCS 的使用........................................................................................ 40 基本指令实验.................................................................................... 45 [实验 3.1] 循环操作 ........................................................................... 45 [实验 3.2] 双操作数乘法 .................................................................... 47 [实验 3.3] 并行运算 ........................................................................... 49 [实验 3.4] 小数运算 ........................................................................... 51 [实验 3.5] 长字运算 ........................................................................... 53 [实验 3.6] 浮点运算 ........................................................................... 55 常见算法实验.................................................................................... 57 [实验 4.1] 卷积运算 ........................................................................... 57 [实验 4.2] 相关运算 ........................................................................... 59 [实验 4.3] 快速傅里叶变换 (FFT) 实现 .............................................. 61 [实验 4.4] 离散余弦变换 (DCT) 实现................................................. 65 [实验 4.5] 有限冲击响应滤波器 (FIR) 实现........................................ 68 [实验 4.6] 无限冲击响应滤波器 (IIR) 实现 ........................................ 75 [实验 4.7] 自适应滤波器 (LMS) 实现 ................................................ 77-1- 百科融创科技有限公司DSP- II+实验指导书第五章 §5.1 §5.2 §5.3 §5.4 §5.5 §5.6 §5.7 §5.8 §5.9接口及控制实验 ................................................................................ 80 [实验 5.1] 数码管控制实验................................................................. 80 [实验 5.2] 交通灯控制实验................................................................. 81 [实验 5.3] 液晶显示屏 (LCD)实验...................................................... 82 [实验 5.4] 键盘扫描实验 .................................................................... 84 [实验 5.5] 通用异步串行接口 (UART) 实验 ....................................... 85 [实验 5.6] 通用串行总线 (USB) 接口实验.......................................... 88 [实验 5.7] 普通语音 A/D 与 D/A 转换实验 .......................................... 93 [实验 5.8] 高精度音频 A/D 与 D/A 转换实验 ....................................... 97 [实验 5.9] 直流电机控制实验(选做).................................................. 106§5.10 [实验 5.10] 步进电机控制实验(选做) ................................................ 107 §5.11 [实验 5.11] 以太网卡与 TCP/IP 协议实验 ......................................... 109§5.12 [实验 5.12] FIR 滤波器实时处理实验..................................................115 §5.13 [实验 5.13] 利用信号发生模块的 FFT 实验 ........................................119 §5.14 [实验 5.14] TMS32C5410 的 Bootloader 实验 ...................................... 123 §5.15 [实验 5.15] AIC23 的数字录音机实验 ................................................ 128 §5.16 [实验 5.16] TMS320LF2407A FLASH 烧写实验 .................................. 130 §5.17 [实验 5.17] 数字图像基本处理实验(选做)..................................... 133 第六章 §6.1 §6.2 附录 ................................................................................................ 137 [附录 1] TMS320C5410 DSP 芯片简介 ............................................... 137 [附录 2] TMS320C54X 指令速查表.................................................... 144-2- 百科融创科技有限公司DSP- II+实验指导书第一章实验平台说明本实验箱以 TI 公司的 TMS320C5410(可选配 TMS320C5416)和 TMS320LF2407 两种 DSP 芯片为中心,附加开发了多个功能模块,可以使实验者方便有效地完成各种 常用的 DSP 开发实验。 TMS320C5410 是 TI 公司 54 系列 DSP 芯片中相当优秀的一个型号,除了有强大的 运算能力外,还集成了丰富的片内资源。基于该芯片的出色性能,它在各种 DSP 应用 场合中发挥着重要作用。本实验箱就提供了这样一个平台,使实验者能在最短的时间内 了解并掌握该 DSP 芯片的基本开发技术。 TMS320C5416 是 TI 公司 54 系列 DSP 芯片中另一款优秀的型号,片内资源比 5410 丰富,HPI 提供 16BIT 模式,外设与 5410 相近。 实验者可以在 5410 主控板(或 5416 主控板)上进行各种指令实验和算法实验。把 5410 主控板(或 5416 主控板)插接在实验箱主电路板上的接口后,实验者就可以借助已 设计好的外部电路进行 USB 接口、A/D 与 D/A 转换等实验。本实验箱的 USB 模块主芯 片采用功能强大的 PHILIPS ISP1362 芯片,它支持 USB2.0 和最新的 OTG(On The Go) 协议,因此实验者可以充分学习到最先进的 USB 技术。 A/D 与 D/A 转换是传统的实验 内容,本实验箱配置了两个 A/D 与 D/A 模块,它们有不同的性能和特点,适合不同的 应用场合。把 5410(或 5416)与 A/D 与 D/A 模块配合起来,实验者甚至可以进行声音文 件的 MP3 编解码实验。 本实验箱的另一块主控板采用 TMS320LF2407 DSP 芯片,这也是一个应用非常广 泛的型号。 配合实验箱主电路板上的各个模块, 实验者可以进行通用异步串行口 ( UART ) 的实验,电机控制实验,以太网卡实验,液晶显示屏实验,数码管控制实验,信号灯控 制实验和键盘扫描实验。另外实验箱上还有一个信号发生模块可供实验。 除了已设计好的实验之外,实验者还可以发挥创造性,充分利用实验箱的资源进行 其它实验。-3- 百科融创科技有限公司DSP- II+实验指导书§1.1   系统总览 一、实验箱资源分布本实验箱采用模块化设计,直接与实验相关的,一共有 13 个模块,另有负责总线 控制的 CPLD 模块和一个负责为各个部分供电的电源模块。每一个模块都有独立的电源 开关控制。 实验系统中有三个模块是采用外插形式的, 在实验箱主电路板上预留了插槽, 包括 5410 主控板(或 5416 主控板),2407 主控板以及电机控制模块。而其余各模块都设 计在主电路板上。整个实验箱的资源分布如下图。(图 1-1-1) 实验箱整体说明图(1)  TMS320C5410 主控板(或 5416 主控板)位置(外插) (2)  TMS320LF2407 主控板位置(外插) (3)  CPLD 模块 (4)  A/D 与 D/A 转换模块一(普通语音)-4- 百科融创科技有限公司DSP- II+实验指导书(5)  A/D 与 D/A 转换模块二(高精度音频) (6)  信号发生模块 (7)  USB2.0 OTG 接口模块 (8)  UART 接口模块 (9)  以太网卡模块 (10) 电机控制模块插槽 (11) 4×4 键盘模块 (12) 液晶显示屏模块 (13) 数码管模块 (14) 信号灯模块 (15) 电源模块-5- 百科融创科技有限公司DSP- II+实验指导书§1.2   使用方法 1.电源本实验箱内部自带变压器,使用时不需另配低压电源,可直接用普通三相插头接入 220V 电源。 接上电源后,由电源模块输出 ±12V,5V,3.3V 和 2.5V,分别送至实验箱的各个 模块。另外为方便单独使用,两个主控板上都设有独立的电源输入端口,可以接入 5V 的直流电源。2.仿真器接口在做实验时,需要一个 DSP 仿真器,把在计算机上编译并生成的执行代码下载到 5410 或 2407 芯片上。仿真器有两端接口,其中一端与计算机的并行口或 USB 口相连, 这取决于仿真器的类型;另一端与 DSP 芯片的 JTAG 接口相连,这是一个 14 针的接口, 在两块主控板上都可以找到。仿真器连接好后才能对主控板上的 DSP 芯片进行读写控 制。3.外插模块的使用本实验箱有三个模块单独成板,以外插形式与主电路板连接。其中两个 DSP 主控板 在主电路板上留有专门的位置(请见资源分布图) ,使用时把主控板上的接口对准主电 路板上的相应插槽插牢即可。 在做电机控制实验时, 应先把电机控制模块的小电路板架在以太网卡模块的位置上, 插好四个支脚,然后通过连接线把电机小电路板上的接口与主电路板上的电机模块插槽 (请见资源分布图中的标号“10” )相连。4.计算机的配置DSP 实验中的代码编写,下载仿真和程序调试都必须在计算机上完成。计算机上需 要安装 DSP 集成开发环境软件 CCS (推荐使用 2.0 版本) 。 计算机应具备最少 32M 内存, 100M 硬盘空间和奔腾处理器,显示器分辨率不能低于 800*600。另外,部分模块的实 验还要求计算机配有标准的 USB 接口,DB9 串行接口以及 RJ-45 网卡接口。5.其它配件包括 USB 连接线,串行口连接线,网线,排线,以及耳机。-6- 百科融创科技有限公司DSP- II+实验指导书§1.3   模块说明 1. TMS320C5410 主控板 该板上实现了一个最小系统, 可以单独运行。 板上主要资源包括一个 TMS320C5410 型号的 DSP 芯片,一个 CY7C1021 型号的 64K×16 位的 SRAM 芯片,以及一个 TE39LV800 型号的 8M 容量 FLASH 芯片。如图:(图 1-3-1) 5410 主控板说明图板上有一个 14 针的 JTAG 接口,是与 DSP 仿真器连接的。有一个 6 位拨码开关分 别对应 HPIENA,BIO,MP/MC,CLKMD3,CLKMD2,CLKMD1,拨到” ON” 位置为 “1” “OFF” , 位置为”0“,另外该主控板通过三排接口与实验箱的主电路板相连,在主电路板上设 有相应的插槽。各接口引脚的连接情况如下:-7- 百科融创科技有限公司DSP- II+实验指导书(图 1-3-2) 5410 主控板接口说明2.TMS320C5416 主控板 板上 DSP 芯片为 TMS320C5416, 一个 CY7C1021 型号的 64K×16 位的 SRAM 芯片,以及一个 TE39LV800 型号的 8M 容量 FLASH 芯片。3.TMS320LF2407 主控板 该板上实现了一个最小系统,可以单独运行。板上主要资源包括一个TMS320LF2407 型号的 DSP 芯片,以及一个 CY7C1021 型号的 64K×16 位的 SRAM 芯-8- 百科融创科技有限公司DSP- II+实验指导书片。如图:(图 1-3-3) 2407 主控板说明图板上有一个 14 针的 JTAG 接口,是与 DSP 仿真器连接的。另外该主控板通过六排 接口与实验箱的主电路板相连,在主电路板上设有相应的插槽。各接口引脚的连接情况 如下:-9- 百科融创科技有限公司DSP- II+实验指导书- 10 - 百科融创科技有限公司DSP- II+实验指导书(图 1-3-4) 2407 主控板接口说明4.CPLD 模块 该模块主要包含有一个 Xilinx 公司的 XC95144 可编程芯片。本模块主要负责实验系统中的总线控制工作。- 11 - 百科融创科技有限公司DSP- II+实验指导书5.USB2.0 OTG 接口模块 该模块主要包含有一个 USB 主控芯片(IPS1362),一个 USB 通用端口(H-A),两个为实现 OTG 协议而用的 OTG 端口, 分别是作 Host 时的 OTG-B 和作 Device 时的 OTG-A。 如下图:(图 1-3-5) USB 模块说明图模块中设置了一排接口, 包含了该模块对外的所有数据和控制线, 其引脚定义如下:(图 1-3-6) USB 模块接口定义模块接口也可以作调试时观察所用,除此之外,模块中还设置了其它若干探测点,如下:- 12 - 百科融创科技有限公司DSP- II+实验指导书CON302:(1) D+ CON304:(1) OTG_DP CON306:(1) OTG_D+ TP301:CLKOUT(2) D_(3) H_OC2 (3) H_OC1 (3) V_BUS(2) OTG_DM (2) OTG_D_6.高精度音频 A/D 与 D/A 转换模块 该模块上的主要芯片是 AIC23,这是一个双通道的 A/D 与 D/A 转换芯片。因此,在该模块上设有四个插口,一组是 Line-In 和 Line-Out,另一组是 Mic-In 和 Phone-Out。 如下图:(图 1-3-7) 音频模块说明图模块接口的定义如下:(图 1-3-8) 音频模块接口定义除接口外,还有若干探测点定义如下:TPb01:Signal Power TPb02:VDD TPb11:CLKOUT- 13 - 百科融创科技有限公司DSP- II+实验指导书TPb12:Lineout right TPb15:Phone leftTPb13:Lineout left TPb16:Linein rightTPb14:Phone right TPb17:linein left7.普通语音 A/D 与 D/A 转换模块 该模块所使用的主要芯片是 AD50CDW 。该模块只提供一对信号输入 / 输出插口。如下图:(图 1-3-9) 语音模块说明图该模块的探测点设置如下:(图 1-3-10) 语音模块探测点定义8.UART 接口模块 该模块主要包括两个芯片,其中进行 UART 控制的是 SC16C550 芯片,而完成电平转换的是 MAX3232 芯片。本模块带有一个 9 针的串行连接口。如下图:- 14 - 百科融创科技有限公司DSP- II+实验指导书(图 1-3-11) UART 模块说明图本模块的接口定义如下:(图 1-3-12) UART 模块接口定义本模块还有一个探测点是 TP401:CLK9.以太网卡模块 本模块主要包括一个 Ethernet 控制芯片 RTL8019AS 。模块上设有一个 RJ-45 的网线插口。如下图:- 15 - 百科融创科技有限公司DSP- II+实验指导书(图 1-3-12) 以太网卡模块说明图该模块的接口定义如下:(图 1-3-13) UART 模块接口定义模块上还有 7 个探测点,其意义如下:- 16 - 百科融创科技有限公司DSP- II+实验指导书(图 1-3-14) 以太网卡模块探测点定义10. 信号发生模块本模块通过信号发生芯片 ICL8038 可以产生三种不同波形的音频信号,包括方波, 三角波和正弦波。欲产生的信号类型可用模块上的旋转按钮进行选择。如下图:(图 1-3-15) 信号发生模块说明图该模块独立工作,不需与 DSP 的接口。11. 4×4 键盘模块 本模块上的键盘电路采用交叉扫描方式,即共有 8 个引脚。12. 液晶显示屏模块 本模块主要器件是一个液晶显示屏,该 LCD 有 16 个引脚,都已引出,各引脚的信 号意义如下:- 17 - 百科融创科技有限公司DSP- II+实验指导书(图 1-3-16) LCD 接口定义本模块上也有一个独立的电源开关。13. 数码管模块 本模块共有 8 个七段数码管。另有独立的电源开关。14. 信号灯模块 本模块共有 8 个发光二极管,分为四组,每组各有一个红灯和一个绿灯。四组 LED 以东西南北的位置排布,模仿十字路口的交通信号灯。该模块中用到一个锁存芯片,而 且引出其片选引脚(CS)作为探测点。如下图:(图 1-3-17) 信号灯模块说明图- 18 - 百科融创科技有限公司DSP- II+实验指导书15. 电机控制模块 本模块设计在一块独立的小电路板上,该小电路板可以插在以太网卡模块位置的四 个支脚上。小电路板上有一 16 针接口,在使用时要用排线把这个接口与实验箱主电路 板上的“电机接口总线”相连。如下图:(图 1-3-18) 电机模块与主电路板连接示意图- 19 - 百科融创科技有限公司DSP- II+实验指导书第二章开发软件 ( CCS ) 介绍§2.1   CCS 简介 CCS (Code Composer Studio )代码调试器是一种合成开发环境。 它是一种针对标 准 TMS320 调试器接口的交互式方法。CCS 目前有 CCS1.1, CCS1.2 和 CCS2.0 等三 个不同时期的版本,又有 CC2000 ( 针对 C2XX ), CCS5000 ( 针对 C54XX )和 CCS6000 (针对 C6X )三个不同的型号。我们所使用的是 CCS50002.0 的版本。CCS5000 具有以下特性: ? TI 编译器的完全集成的环境: CCS5000 目标管理系统,内建编辑器,所有的调试和分析能力集成在一个 Windows 环境中。 ? 对 C 和 DSP 汇编文件的目标管理: 目标编辑器保持对所有文件及相关内容的跟踪。它只对最近一次编译中改变过的文 件重新编译,以节省编译时间。 ? 高集成的编辑器调整 C 和 DSP 汇编代码: CCS5000 的内建编辑器支持 C 和汇编文件的动态语法加亮显示。使用户能很容易 地阅读代码和当场发现语法错误。 ? 编辑和调试时的后台编辑: 用户在使用编译器和汇编器时没有必要退出系统到 DOS 环境中,因为 CCS5000 会 自动将这些工具装载在它的环境中。在其窗口中,错误会加亮显示只要双击错误就可以 直接到达出错处。 ? 在含有浮点并行调试管理器(PDM) 的原有的 MS 窗口下支持多处理器 CCS5000 在Windows95 和 Windows-me 中支持多处理。PDM 允许将命令传播给所有的或所选择的 处理器。 ? 在任何算法点观察信号的图形窗口探针: 图形显示窗口使用户能够观察时域或频域内的信号。对于频域图,FFT 在主机内执 行,这样就可以观察所感兴趣的部分而无须改变它的 DSP 代码。图显示也可以同探针 连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就可以迅速- 20 - 百科融创科技有限公司DSP- II+实验指导书地观察到信号。 ? 文件探针在算法处通过文件提取或加入信号或数据: CCS5000 允许用户从 PC 机读或写信号流。而不是实时的读信号,这就可以用已知 的例子来仿真算法。 ? 图形分析: CCS5000 的图形分析能力在其环境中是集成的。 ? 在后台(系统命令)执行用户的 DOS 程序: 用户可以执行 CCS5000 中的 DOS 程序,并将其输出以流水方式送到 CCS5000 的 输出窗口。且允许用户将应用程序集成到 CCS5000。 ? 技术状态观察窗口: CCS5000 的可视窗口允许用户进入 C 表达式及相关变量。结构、数组、指针都能 很简单地递归扩展和减少,以便进入复杂结构。 ? 代数分解窗口: 允许用户选择查看写成代数表达式的 C 格式,提高可读性 。 ? 目标 DSP 上的帮助: DSP 结构和寄存器上的在线帮助可以使用户不必查看技术手册。 ? 用户扩展: 扩展语言(GEL) 使得用户可以将自己的菜单项加到 CCS5000 的菜单栏中。 - 21 - 百科融创科技有限公司DSP- II+实验指导书§2.2   CCS 的安装与配置    一、CCS 软件的安装  1、 打开光驱,将带有 DSP 软件的光盘放入其中。  2、 打开其中的“DSP 软件”目录显示如下:        在 C2000V2。2 目录下是 CCS2000 的安装软件;C5000V2。2 目录下是 CCS5000 的安 装软件。工具软件目录下是一些常用的工具软件;驱动程序目录下是 EPP(并口) 和 USB 接口的仿真器的驱动程序。  3、 先安装 CCS2000 的软件,打开“C2000V2。2”目录,点其目录下的“SETUP”应用程 序。安装开始。如下图:                              在 INSTALL 下面有两个可选的安装项目,第一个是“CODE COMPOSER STUDIO”这是 CCS2000 软件的安装目录。第二个是“ ADOBE   ACROBAT  READER”是其帮助文件的 应用软件。选第一项进行 CCS2000 软件的安装。  4、 按照其安装提示进行安装,出现如下提示:     - 22 - 百科融创科技有限公司DSP- II+实验指导书                          在下方选择“YES,I DO accept all the terms of the preceding License  Agreement”点击“Next”继续进行安装,直至出现如下图所示画面:                                  在上图中有两个可选项,上面一个是 CCS2000 的安装软件(CODE COMPOSER  STUDIO) ,下面一个是其软件的帮助文件的安装(Online  Manuals) 。将两个项目- 23 - 百科融创科技有限公司DSP- II+实验指导书都选择,即在两个项目前的方框内打上“ √” ;或者点击“Select All”点击“Next” 继续进行安装。出现如下图所示画面: 在上图中选择“Browse”对软件的安装目录进行设置。因为还有 CCS5000 的软 件要进行安装,所以最好对其安装目录进行设置如 D:/TI/2000,以示对 CCS5000 的区别。点击“Next”继续进行安装,按照安装提示直至安装完成。安装完成后会 出现如下所示: 点击“确定”按钮,出现如下图所示的窗口:- 24 - 百科融创科技有限公司DSP- II+实验指导书这两项是安装完成后,其软件的网上资料和安装生成的一些介绍。可以选择的来进 行设置。最后点击“Finish”完成软件的安装。点击完成后,如果选择了前面的两 项,则会出现其网页资料,关闭这些网页后,出现如下窗口:选择“重新启动计算机” (Yes,I want to restart my computer now)来重启 你的计算机,以便使你的设置生效(默认选项) 。选择下面一项则不重新启动你的- 25 - 百科融创科技有限公司DSP- II+实验指导书计算机。选择这两项中的其中一项,点击“ FINISH”完成整个软件的安装。 CCS5000 的安装过程和 CCS2000 的安装过程基本上是一致的,只是其安装文件不一样,另 外在安装目录的选择上 CCS5000 建议安装在 TI/5000 目录下以示同 CCS2000 的区 别。二、EPP(并口)仿真器的驱动安装  要在 CCS 开发环境下使用 EPP 并口仿真器,首先安装的是 EPP 仿真器的驱动程 序。打开光盘中的驱动程序目录下的 EPP_Driver(即 EPP 并口仿真器的驱动程序) 出现两个子目录,如下图: C2000DRV 是其在 CCS2000 软件开发环境下的驱动程序。CCS5000DRV 是其在 CCS5000 开发环境下的驱动程序,如安装 CCS2000 开发环境的驱动则运行其目录下 的“SETUPCC2XX”程序,按照其提示进行驱动的安装,直至出现如下图所示窗口:  上图所示是对其驱动程序的安装目录进行设置,选择“ BROWSE”选择安装目录。 如果是对 CCS2000 开发环境进行驱动安装,其目录最好在 CCS2000 软件所在的目录 下,如 TI/2000/目录下;同样如果是对 CCS5000 开发环境进行驱动安装,其目录最 好有 CCS5000 软件所在的目录之下,如 TI/5000/目录下。点击“NEXT”按照提示信 息继续进行驱动的安装直至出现如下窗口: - 26 - 百科融创科技有限公司DSP- II+实验指导书上图所示是对 NT 下的安装进行提示,选择“是”安装 NT 的驱动程序。最后 按照提示完成整个驱动的安装。其在 CCS5000 开发环境下的驱动安装与 CCS2000 开发环境下的驱动安装基本是一致的。三、EPP 并口仿真器在 CCS 环境下的设置 CCS 软件安装完成后,会在桌面上出现两个“ CCS2(`2000 )或 CCS2( `5000) 和 SETUP CCS2( `2000)或 SETUP CCS2(`5000) ”两个图标。分别对应 CCS 的 应用软件和 CCS 的配置程序。 只有对其进行了正确的设置才能执行 CCS 开发环境。 除非用户改变 CCS 应用平台类型(如软件仿真) 。 运行 CODE COMPOSER STUDIO SETUP 软件(以 CCS2000 为例) ,即桌面上 的 CCS 的配置程序图标。出现如下窗口:  - 27 - 百科融创科技有限公司DSP- II+实验指导书在上图中将中间的对话窗口关闭,点击 Install a Device Driver,进行设置。 出现如下窗口: 上图是对仿真器的驱动进行选择,其文件在安装驱动时所选择的目录下的 Drivers 子目录下。选择 Sdgo2XX.drv,点击上图中的“打开”出现如下窗口: 点击上图中的“ OK”按钮。此时,中间一栏( Available  Board/Simulator  Type) 会出现相应的驱动图标,如下图显示的: - 28 - 百科融创科技有限公司DSP- II+实验指导书把该图标拖动到最左边的 SYSREM CONFIGURATION 一栏是,则会出现 BOARD PROPERTIES 对话框。如下图所示:然后点击上图中的 sdgo2xx, 右上脚新出来两个选项: “Uninstall” 和 “ Add to System” , 点击“Add to System”出现下图:在 Board Name & Data File 栏中,点击 Next,进入下一页,会显示硬件仿真 器的 I/O 口值,如下图所示: - 29 - 百科融创科技有限公司DSP- II+实验指导书将上图中的硬件仿真器的 I/O 口值由 0X240 改为 0X378,再点击 Next,继续进 行设置则会出现如下图所示的“Processor Configuration”页面。 在 Processor Configuration 页 面 下 , 在 Available Processor 选项中选择 TMS320C2400(在 CCS5000 开发环境下为 TMS320C5400) ,然后,点击其中间的 Add  Single 按钮,其右边出现 CPU-1 图标。如下图所示: - 30 - 百科融创科技有限公司DSP- II+实验指导书点击“Next”按钮,出现下面的对话框。点击上图所标示的的位置,对 CPU 进行类型的选择,出现如下图所示的窗口:- 31 - 百科融创科技有限公司DSP- II+实验指导书基于实验箱中的 CPU 选择 F2407A.GEL 文件, 这个文件也在前里安装驱动程序所 选择的目录下的 Drivers 子目录下。单击“打开”按钮。点击“Finish”完成其设 置。对其设置进行保存后,退出其配置程序。  对于 EPP 仿真器在 CCS5000 开发环境下的设置其步骤与 CCS2000 开发环境下的 基本一致。只是在相应的配置文件的选择上略的不同。  在对仿真器驱动程序选择是 CCS5000 开发环境下选择的是“Sdgo5XX.drv” , 相应的出现的图标则为 Sdgo5XX 的图标;另外在对其 CPU 类型进行选择时根据实 验箱选择 C5410.GEL 或 C5410A.GEL。 这些文件都在其驱动安装程序所在目录下的 Drivers 子目录下。 设置完成后,将仿真器与计算机通过并口电缆边接起来,仿真器的下载口与目 标板相连(注意:连接时其方向一定要正确,否则可能烧毁仿真器;与仿真器相连 的 14P 下载电缆上红色的那一边与目标板下载口的 1,2 脚那一端相接) ,仿真器与 目标板接上电源后, 根据目标板上芯片的型号来打开相应的 CCS 开发软件 (CCS2000 或 CCS5000) ,就可以进行 DSP 的开发了。 - 32 - 百科融创科技有限公司DSP- II+实验指导书四、USB 仿真器驱动程序的安装 USB 仿真器驱动程序的安装与 EPP 仿真器的安装基本是一致的,首先打开光盘 中的驱动程序目录下的 USB_Driver(即 USB 仿真器的驱动程序) ,运行其目录下的 SETUP。EXE 程序,按照其提示进行驱动的安装,如下图所示窗口: 上图的提示窗口是进行选择其驱动程序的安装目录对话框。如果选择“是”则 安装在 C:/TI 目录下,一般情况下不安装有这一个目录下安装在 CCS 安装的目录 下。选择“否”则是对安装目录进行设置,如下图所示:选择“Browse”选择安装目录,建议安装在 CCS 软件安装的目录下, (如 CCS2000 软件所在的目录下 TI/2000) 。 选择好安装目录后,依照提示信息完成其驱动程序的 安装。用同样的方法将驱动程序也安装有另外一个 CCS 开发环境下(如 CCS5000 软 件所在的目录下 TI/5000) 。 - 33 - 百科融创科技有限公司DSP- II+实验指导书五、USB 仿真器在 CCS 环境下的设置  USB 仿真器在 CCS 开发环境下的设置与 EPP 仿真器的在其开发环境下的设置基 本是一致的。运行 CODE COMPOSER STUDIO SETUP 软件(以 CCS5000 为例) ,即桌面 上的 CCS 的配置程序图标。出现如下窗口:   在上图中将中间的对话窗口关闭,点击“Install a Device  Driver”进行设置。 出现如下窗口: - 34 - 百科融创科技有限公司DSP- II+实验指导书上图是对仿真器的驱动进行选择,其文件在安装驱动时所选择的目录下的 Drivers 子目录下。选择 TIXDS54X. DVR,点击上图中的“打开”出现如下窗口: 点击上图中的“OK”按钮。此时,中间一栏(Available  Board/Simulator  Type)会出现相应的驱动图标,如下图: 把该图标拖动到最左边的“System  Configuration”一栏是,则会出现“Board  Properties”对话框。如下图所示:         - 35 - 百科融创科技有限公司DSP- II+实验指导书 如上图所示在第一项下拉菜单中选择中间的一条“Auto-generate board data  file with extra configuration” 。在第二项中“Configuration File”选项中选 择“Browse”按钮,出现如下对话框: 选择上图中的 TCETEK.cfg 文件, 其文件也在 CCS 软件目录下的 Drivers 子目录 下。点击“Next”出现如下图所示的窗口: - 36 - 百科融创科技有限公司DSP- II+实验指导书将上图中的硬件仿真器的 I/O 口值由 0X240 改为 0X000,再点击 Next,继续进 行设置则会出现 “Processor  Configuration”页面。在 Processor Configuration 页面下,在 Available Processor 选项中选择 TMS320C5400(在 CCS2000 开发环境 下为 TMS320C2400) ,然后,点击其中间的 Add Single 按钮,其右边出现 CPU-1 图 标。点击“Next”按钮,出现下面的对话框:   - 37 - 百科融创科技有限公司DSP- II+实验指导书点击上图所标示的的位置,对 CPU 进行类型的选择,出现如下图所示的窗口:  基于实验箱中的 CPU 选择 C5410.GEL 或 C5410A.GEL 文件,这个文件也在前里 安装驱动程序所选择的目录下的 Drivers 子目录下。 单击 “打开” 按钮。 点击 “Finish” 完成其设置。对其设置进行保存后,退出其配置程序。  对于 USB 仿真器在 CCS2000 开发环境下的设置其步骤与 CCS5000 开发环境下的 基本一致。只是在相应的配置文件的选择上略的不同。  在对仿真器驱动程序选择是 CCS2000 开发环境下选择的是 “TIXDS24X.DVR” , 相 应的出现的图标则为 TIXDS24X 的图标;另外在对其 CPU 类型进行选择时根据实验- 38 - 百科融创科技有限公司DSP- II+实验指导书箱选择 F2407A.GEL 这些文件都在其驱动安装程序所在目录下的 Drivers 子目录下。   设置完成后,将仿真器与计算机通过 USB 电缆接起来,此时电脑硬件会显示找 到新的硬件, 如果提示要安装驱动,则按电脑的安装向导安装 USB 驱动目录下 USBDevice 文件夹里的 mdpjtag.inf 驱动文件。     电脑如果找到了驱动程序则在硬件列表里会出现一个红色的仿真器的图标。   - 39 - 百科融创科技有限公司DSP- II+实验指导书§2.3   CCS 的使用 一、创建或打开工程 打开 CCS5000 主程序,打开的主界面如下:(图 2-3-1) CCS 程序主窗口本节使用工程“ V olume1”为例做一个实验,该实验开发并运行一个简单的程序, 指导读者如何新建一个工程,如何向工程添加源文件并修改代码,编译并且运行程序。 1. 准备工作 在以下各节之前,为了便于学习,我们事先准备好实验文件。在 CCS 的安装目录下, 找到“\myprojects”目录,在这里新建一个名为“volume1”的目录,再到 CCS 安装目 录下找到“\tutorial\sim54xx\volume1”目录,把下表的 7 个文件复制到刚才新建的目录 下: 需要复制的文件 volume.c load.asm vectors.asm volume.h volume.cmd sine.dat volume.gel 文件说明 实验用 C 源文件 实验用汇编源文件 实验用中断向量表文件 C 函数使用的头文件 内存定位文件 实验用数据文件 实验用 GEL 控制文件- 40 - 百科融创科技有限公司DSP- II+实验指导书2. 新建工程文件 文件复制完成以后,启动 CCS ,再主菜单中单击“ Project” ,会有“ new ”和“open” 选项,创建新工程使用“new ”选项。程序会提问新建工程的名字以及保存位置,指定 后单击“确定”即可。(图 2-3-2) 新建工程窗口3. 向工程添加各类型文件 可以使用两种方式向工程添加源文件、CMD 文件和库文件。 (1)  添加源文件 在主菜单中单击“ Project” ,选择“Add Files to Project”命令,在弹出的添加文件对 话框中找到目录“ volume1” ,选择文件“ volume.c” ,单击“打开”按钮,如下面左图所 示。 另一个方法示在工程名“volume.pjt ”上单击鼠标右键,选择“Add Files ”命令。在 弹出的添加文件的对话框中,找到目录“ volume1” ,再在添加文件对话框中单击“文件 类型” ,选择“ Asm Source Files(*.a*;*.s*) ” ,这样在添加文件对话框里就只显示指定类 型的文件。同时选择“ load.asm”和“vectors.asm” ,单击“打开” 按钮(通过这种方法 也可添加 C 代码文件“volume.c” ) ,如右下图所示。(图 2-3-3) 添加文件方式(2) 接着添加必需的内存定位文件“ *.cmd” ,使用上述任一方式,向工程里添- 41 - 百科融创科技有限公司DSP- II+实验指导书加“ volume.cmd” ,注意在添加文件对话框的“文件类型”下拉列表中要选择“ Link Command File(*.cmd)” ,该文件定义了各代码段和数据段在存储器中的位置。 (3)  因为本实验工程是基于 C 语言编写的, 因此还需要添加运行时支持库 (Run-Time-Support Library 如果基于汇编的就不需要) 。 使用上述任何一种方式,向工程添 加“rts.lib ”文件,该文件存放在 CCS 的安装目录“\c5400\cgtools\lib”下。注意在添加 文件对话框的“文件类型”下拉列表中要选择“Object Library Files (*.o*,*.l* ) ” 。 (4)  添加头文件。在工程名“volume.pjt ”上单击鼠标右键,选择“Scan AllDependencies ” ,这样 volume.c 文件所包含的头文件“ volume.h”将出现在工程浏览窗中 的“Iclude”文件夹中。头文件实际不用人工添加,在 Build 工程时,CCS 本身就会自 动完成扫描。 4. 查阅代码 在继续完成实验之前,先阅读一下源代码。明白各文件内容:在工程浏览窗里的 “volume.c”文件名上双击鼠标,即可在 CCS 的编辑窗口看到源代码,注意该文件的以 下三个部分: (1)  在主函数输出消息&volume example started &后, 主函数进入一个无限循环,在循环内部调用了两个函数 dataIO()与 processing()。 (2)  函数 processing()对输入缓冲区的每个采样值乘以一个增益值“gain” ,并将结果存放到输出缓冲区中。 改函数同时调用汇编程序 load(), 该函数会根据 processing() 传递过来的参数 processingLoad 来消耗指令周期,模拟复杂信号处理算法在时间上的消 耗。 (3)  函数 dataIO()在本实验中不作任何实际操作而直接返回。5. 建造和运行程序 建造( Building )在这里指编译、汇编、链接三个独立步骤按顺序联合运行。在主 菜单中单击“Project” ,选择“Rebuild All” ,或者单击工具条图标 ,CCS 将重新对工程中所有文件进行编译、汇编、链接,并同步在底部窗口中显示编译连接信息。连接 完毕,CCS 生成一个“ .out”文件,默认存放在目录“ volume1 ”下的“debug ”目录中。 建造完毕后, 再完成装载程序的步骤: 在主菜单中单击 “File” , 选择 “ Load Program” , 在弹出对话框中,找到目录“volume1”下的“debug”目录,选择“volume.out” ,并打 开。 CCS 装载完毕该文件到目标 DSP 以后,会自动弹出“ Dissassembly ”窗口,显示构 成源代码的反汇编指令。同时,CCS 还会在底部弹出“stdout”栏,用于显示程序在运 行时的输出信息。- 42 - 百科融创科技有限公司DSP- II+实验指导书(图 2-3-4) 反汇编窗口现在可以运行我们的程序:在主菜单中单击“ Debug” ,选择“Go Main ” ,让程序从 主函数开始运行。程序会停在 main ()处,并会有一个黄色的箭头 标记当前要执行的 C 语言代码。如果希望同时看到 C 语言代码和对应编译生成的汇编代码,在主菜单 中单击“View” ,选择“Mixed Source/ASM” ,此时会有一个绿色箭头 行的汇编代码,如图所示: 标记当前要执(图 2-3-5) C 代码与对应的反汇编代码在主菜单中单击“Debug” ,选择“Run” ,或单击工具条图标,让程序全速运行。- 43 - 百科融创科技有限公司DSP- II+实验指导书如果能在底部的 stdout 标准输出窗口看到程序运行的输出信息“ volume example started” ,证明程序能够正常运行。在主菜单中单击“Debug” ,选择“Run” ,或单击工 具条图标 ,让程序停止运行。常用的按钮如下: à à à  à à à à 单步执行; 不进入子程序中; 从子程序中执行出; 执行到子程序开始处; 运行程序; 停止运行; 全速运行程序。6.多种观察窗口帮助调试。 查看寄存器:在 CCS 中选择 View 菜单中的 CPU Registers 命令。 查看数据:选择 View 菜单中的 Memory… 命令,弹出设置窗口,按实际需要指定 其中的参数,如起始地址等,就可以观察到数据单元中的值,该值可以以多种格式表示。 查看程序中变量的当前值:可以在程序中用光标选中变量名,在鼠标右键菜单中选 择 Add to Watch Window 命令就可以把该变量添加到 Watch 窗口。随着程序的运行,可 以在 Watch 窗口看到该变量的值的变化。 显示图形:如果要观察的变量太多,例如要观察一个数组的值,那么可以用一种更 直观的方法,就是把数据用图形的方式表现出来。选择 View 菜单中的 Graph 命令,会 有不同类型的图形可供选择。常用的是时域/频域波形,即 Time/Frequency… 项。在弹出 的 Graph Property 对话框中,可以设定图形的标题、数据的起始地址、采集缓冲区的大 小、显示数据的大小、数据类型等属性。- 44 - 百科融创科技有限公司DSP- II+实验指导书第三章基本指令实验§3.1   [实验 3.1] 循环操作 一、实验目的 1.  掌握循环操作指令的运用; 2.  掌握用汇编语言编写 DSP 程序的方法。二、实验设备   1.一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理   TMS320C54x 具有丰富的程序控制与转移指令,利用这些指令可以执行分支转移、 循环控制以及子程序操作。本实验要求编写一程序完成  y = ∑ xi 的计算。这个求和运i =1 5算可以通过一个循环操作指令 BANZ 来完成。BANZ 的功能是当辅助寄存器的值不为 0 时转移到指定标号执行。 例如: STM  loop: ADD BANZ #4,  AR2*AR3+, A loop, *AR2C   ;当 AR2 不为零时转移到 loop 行执行。假设 AR3 中存有 x1 到 x5 五个变量的地址, 则上述简单的代码就完成了这五个数的求和。四、实验步骤 1.  学习有关指令的使用方法; 2.  在 CCS 环境中打开本实验的工程(Ex3_1.pjt ) ,阅读源程序; 3.  编译并重建 .out 输出文件(Rebuild All… 下载到 DSP 芯片中; ) ,然后通过仿真器把执行代码- 45 - 百科融创科技有限公司DSP- II+实验指导书4.  在“end:B end”代码行设置断点(当光标置于改行时,单击工具条上的 Toggle Breakpoint 图标,此时该行代码左端会出现一个小红点), 单击运行 ;5. 选择“View”-&“memory” ,起始地址设为“0x0060” ,观察内存数值的变化。 应能看到五个加数的值及其求和值。6.停止程序的运行(单击) ;7.  尝试改变对变量的初始赋值,或者增加或减少变量数目,重复上述 3~6 步过程, 验证程序运行结果。五、思考题 1.  总结迭代次数与循环计数器初值的关系(在本实验的代码中,用 AR2 作为循环 计数器,设其初值为 4,共执行了 5 次加法。 ) ; 2.  学习其它转移指令。- 46 - 百科融创科技有限公司DSP- II+实验指导书§3.2   [实验 3.2] 双操作数乘法 一、实验目的   1.  掌握 TMS320C54x 中的双操作数指令; 2.  掌握用汇编语言编写 DSP 程序的方法。二、实验设备   1.一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 TMS320C54x片内的多总线结构,允许在一个机器周期内通过两个 16 位数据总线 (C 总线和 D 总线)寻址两个数据和系数。双操作数指令是用间接寻址方式获得操作数 的,并且只能用 AR2 到 AR5 的辅助寄存器。双操作数指令占用较少的程序空间,而获 得更快的运行速度。 现举一例说明双操作数指令的用法。试求 y=mx+b,则用单操作数指令的代码应该 如下: LD MPY ADD STL @m, @x, @b, A, T A A @  单操作数乘法指令若用双操作数乘法指令则改为: STM STM MPY ADD STL @m, @x, *AR2, @b, A, AR2 AR3 *AR3, A @y A ; 双操作数乘法指令表面上从代码的行数来看,用双操作数乘法指令似乎没有什么显著优势,但是双操作数 指令可以节省机器周期,这在某些迭代运算过程中是十分有用的;迭代次数越多,节省 的机器时间越多。 本实验要计算的乘法累加 z = ∑ ai xi 就是双操作数指令的一种应用场合。i =1 10- 47 - 百科融创科技有限公司DSP- II+实验指导书四、实验步骤   1. 学习有关双操作数乘法指令的使用方法;2.  在 CCS 环境中打开本实验的工程(Ex3_2.pjt ) ,阅读源程序; 3.  编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到 DSP 芯片中; 4.  在“end:B end”代码行设置断点, 单击运行 ;5.  选择“View”-&“memory” ,起始地址设为“ 0x0060” ,观察内存数值 a,x 和 z 的变化。注意窗口中显示的结果是十六进制数。 6. 停止程序的运行(单击 ) ;7.  改变对变量 ai 和 xi 的初始赋值,重复上述过程,验证程序运行结果。五、思考题 1.  试用单操作数指令完成上述计算; 2.  学习其它双操作数指令。- 48 - 百科融创科技有限公司DSP- II+实验指导书§3.3   [实验 3.3] 并行运算 一、实验目的   1.  掌握 TMS320C54x 中的并行运算指令; 2.  掌握用汇编语言编写 DSP 程序的方法。二、实验设备   1.一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 TMS320C54x 片内有 1 条程序总线,3 条数据总线和 4 条地址总线。这 3 条数据总 线(CB、DB 和 EB)将内部各单元连接在一起。其中,CB 和 DB 总线传送从数据存储 器读出的操作数,EB 总线传送写到存储器中的数据。并行运算就是同时利用 D 总线和 E 总线。其中,D 总线用来执行加载或算术运算,E 总线用来存放先前的结果。 并行指令有并行加载和乘法指令,并行加载和存储指令,并行存储和乘法指令,以 及并行存储和加/减法指令 4 种。所有并行指令都是单字单周期指令。并行运算时存储 的是前面的运算结果,存储之后再进行加载或算术运算。这些指令都工作在累加器的高 位,且大多数并行运算指令都受 ASM(累加器移位方式位)影响。 现举一个并行指令为例: ST src, Y Ymem = src && (ASM-16) ; dst = Xmem &&16|| LD Xmem, dst这个并行加载和存储指令实现了存储 ACC 和加载累加器并行执行。其它的并行指令 请读者查阅相关资料。 本实验中要求用并行运算指令编写程序完成 z = x + y 和 f = e + d 的计算。四、实验步骤 1.  学习有关并行指令的使用方法; 2.  在 CCS 环境中打开本实验的工程(Ex3_3.pjt ) ,阅读源代码 Ex3_3.asm; 3.  编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到 DSP 芯片中; 4.  单击运行 ;- 49 - 百科融创科技有限公司DSP- II+实验指导书5.  选择“View”-&“memory” ,起始地址设为“0x0060” ,观察内存数值的变化。 应能看到 z=x+y 和 f=d+e 的结果。6.停止程序的运行(单击) ;7.  尝试改变对变量 x, y, d 和 e 的初始赋值,重复上述过程,验证程序运行结果。五、思考题 1.  学习其它并行指令,理解其工作原理。- 50 - 百科融创科技有限公司DSP- II+实验指导书§3.4   [实验 3.4] 小数运算 一、实验目的   1.  掌握 TMS320C54x 中小数的表示和处理方法; 2.  掌握用汇编语言编写 DSP 程序的方法。二、实验设备   1.一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 两个 16 位整数相乘,乘积总是“向左增长” ,这意味着多次相乘后乘积将会很快超 出定点器件的数据范围。而且要将 32 位乘积保存到数据存储器,就要开销 2 个机器周 期以及 2 个字的程序和 RAM 单元;并且,由于乘法器都是 16 位相乘,因此很难在后 续的递推运算中,将 32 位乘积作为乘法器的输入。然而,小数相乘,乘积总是“向右 增长” ,这就使得超出定点器件数据范围的是我们不太感兴趣的部分。在小数乘法下, 既可以存储 32 位乘积,也可以存储高 16 位乘积,这就允许用较少的资源保存结果,也 便于用于递推运算中。这就是为什么定点 DSP 芯片都采用小数乘法的原因。 小数的表示方法: TMS320C54x 采用 2 的补码表示小数,其最高位为符号位,数值范围为 (C1~1) 。 一个十进制小数(绝对值)乘以 32768 后,再将其十进制整数部分转换成十六进制数, 就能得到这个十进制小数的 2 的补码表示,例如:0.5 乘以 32768 得 16384,再转换成 十六进制就得到 4000H,这就是 0.5 的补码表示形式。在汇编语言程序中,由于不能直 接 写 入 十 进 制 小 数 , 因 此 如 果 要 定 义 一 个 小 数 0.707 , 则 应 该 写 成 word 00,而不能写成 。 在进行小数乘法时, 应事先设置状态寄存器 ST1 中的 FRCT 位 (小数方式位) 为 “1” , 这样,在乘法器将结果传送至累加器时就能自动地左移 1 位,从而自动消除两个带符号 数相乘时产生的冗余符号位。使用的语句是 SSBX FRCT4 i =1在本实验中,要求编写程序完成   y = ∑ aixi   的计算,其中的数据均为小数: a1=0.1 a2=0.2 a3=C0.3 a4=0.2- 51 - 百科融创科技有限公司DSP- II+实验指导书x1=0.8x2=0.6x3=C0.4x4=C0.2注意源代码中小数的表示。四、实验步骤 1.  在 CCS 环境中打开本实验的工程(Ex3_4.pjt ) ,阅读源代码 Ex3_4.asm; 2.  编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到 DSP 芯片中; 3.  单击运行 ;4.  选择“View”-&“memory” ,起始地址设为“0x0060” ,观察内存数值的变化。其中计算结果为 y=0.24=1EB7H; 5. 停止程序的运行(单击 ) ;6.  尝试改变变量的赋值,重复上述过程,验证程序运行结果。五、思考题 1.  以  0.5 × ?0.375 为例分析两个带符号数相乘时的冗余符号位是如何产生的,理 解为什么要设定 FRCT 位。- 52 - 百科融创科技有限公司DSP- II+实验指导书§3.5   [实验 3.5] 长字运算 一、实验目的   1.  掌握 TMS320C54x 中的长字指令; 2.  掌握用汇编语言编写 DSP 程序的方法。二、实验设备   1.一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 TMS320C54x 可以利用 32 位的长操作数进行长字运算。长字指令如下: DLD DST DADD DSUB Lmem, src, Lmem, Lmem, dst Lmem src [,dst] src [,ds t] src [,dst]DRSUB Lmem,除了 DST 指令外,都是单字单周期指令,也就是在单个周期内同时利用 C 总线和 D 总 线得到 32 位操作数。DST 指令存储 32 位数要用 E 总线 2 次,因此需要 2 个机器周期。 长操作数指令中的一个重要问题是, 高 16 位和低 16 位操作数在存储器中如何排列。 一般情况下,高 16 位操作数放在存储器中的低地址单元,低 16 位操作数放在存储器中 的高地址单元。例如一个长操作数 H,它在存储器中的存入方式是: (0060H) =1678H(高字) , (0061H)=2345H(低字) 。 本实验利用长字指令完成两个 32 位数的相加。四、实验步骤   1. 在 CCS 环境中打开本实验的工程(Ex3_5.pjt ) ,阅读源代码 Ex3_5.asm;2.  编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到 DSP 芯片中; 3.  单击运行 ;4.  选择“View”-&“memory” ,起始地址设为“0x0060” ,观察内存数值的变化。- 53 - 百科融创科技有限公司DSP- II+实验指导书5.停止程序的运行(单击) ;6.  尝试改变变量的赋值,重复上述过程,验证程序运行结果。五、思考题   1.  试给出不用长字指令实现上述计算的代码。- 54 - 百科融创科技有限公司DSP- II+实验指导书§3.6   [实验 3.6] 浮点运算 一、实验目的   1.  掌握 TMS320C54x 中浮点数的表示和处理方法; 2.  掌握用汇编语言编写 DSP 程序的方法。二、实验设备   1.一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 在数字信号处理中, 为了扩大数据的范围和精度, 需要采用浮点运算, TMS320C54x 虽然是个定点 DSP 器件,但它支持浮点运算。 浮点数的表示方法: 在 TMS320C54x 中浮点数用尾数和指数两部分组成,它与定点数的关系是“定点数 =尾数* 2 exp(C指数)  ”例如:定点数 0x2000(即 0.25)用浮点数表示时,尾数为 0x4000(即 0.5) ,指数为 1,即 0.25=0.5*2C1 。 定点数到浮点数的转换: TMS320C54x 通过 3 条指令可将一个定点数转化成浮点数(设定点数存放在累加器 A 中) 。这 3 条指令分别是“EXP (1) “EXP (2) “ST T, A” , “ST T, EXPONENT ”和“NORM A” 。A” :这是一条提取指数的指令,指数保存在 T 寄存器中。 EXPONENT ” : 这条紧接在 EXP 后的指令是将保存在 T 寄存器中的指数存放到数据存储器的指定单元中。 (3) “NORM A” : 这是一条按 T 寄存器中的内容对累加器 A 进行归一化处理 (左移或右移) ,T 中为正数时左移,为负数时右移,移动的位数就是 T 中的指数值。但这 条指令不能紧跟在 EXP 指令后面,因为此时 EXP 指令还没有来得及把指数值送至 T 。 本实验中,要求编写浮点乘法程序,完成 x1 * x2 = 0.3 * (C0.8)的运算。源程序中 保留了 10 个存储单元:x1(被乘数) ,x2(乘数) ,e1(被乘数的指数) ,m1(被乘数的 尾数) ,e2(乘数的指数) ,m2(乘数的尾数) ,ep(乘积的指数) ,mp(乘积的尾数) , product(乘积) ,temp(临时单元) 。- 55 - 百科融创科技有限公司DSP- II+实验指导书四、实验步骤 1.  在 CCS 环境中打开本实验的工程(Ex3_6.pjt ) ,阅读源代码 Ex3_6.asm; 2.  编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到 DSP 芯片中; 3.  单击运行 4. 选择“View”-&“memory” ,起始地址设为“0x0060” ,观察内存数值的变化。其中计算结果即乘积的尾数为 8520H,指数为 0002H,乘积的定点数为 E148H,对应的 十进制数约等于C0.24; 5. 停止程序的运行(单击 ) ;6.  尝试改变变量的赋值,重复上述过程,验证程序的运行结果。  五、思考题 1.  试分析指数提取指令“EXP  A”和归一化指令“NORM  A”的工作原理; 2.  浮点数到定点数应如何转换。 3.  说明两个浮点数相乘的过程。- 56 - 百科融创科技有限公司DSP- II+实验指导书第四章常见算法实验§4.1   [实验 4.1] 卷积运算 一、实验目的 1. 2. 掌握卷积运算的基本原理; 掌握用 C 语言编写 DSP 程序的方法。二、实验设备 1. 2. 3. 一台装有 CCS 软件的计算机; DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 卷积是数字信号处理中经常用到的运算。其基本的表达式为:y (n ) =∑ h (m )x (n ? m )m =0n写实现程序时需要注意两点: (1)序列数组长度的分配,尤其是输出数组 y (n) 要有足 够的长度; (2)循环体中变量的位置,即 n 和 m 的关系。四、实验步骤 1.  复习卷积的基本原理; 2.  在 CCS 环境中打开本实验的工程( Ex4_1.pjt ) ,编译并重建 .out 输出文件,然 后通过仿真器把执行代码下载到 DSP 芯片中; 3. 把 x , h 和 y 添加到 Watch 窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“Add Watch Window ”命令) ;- 57 - 百科融创科技有限公司DSP- II+实验指导书4. 5.单击运行;观察三个数组从初始化到卷积运算结束整个过程中的变化(可单击变量名前的 ) ;“+”号把数组展开6.修改输入序列的长度或初始值,重复上述过程,观察卷积结果。五、思考题 1.  试用汇编语言编写实现卷积运算的程序; 2.  考虑如何实现复数的卷积运算。- 58 - 百科融创科技有限公司DSP- II+实验指导书§4.2   [实验 4.2] 相关运算 一、实验目的   1.  掌握相关系数的估计方法;   2.  掌握用 C 语言编写 DSP 程序的方法。二、实验设备 1. 2. 3. 一台装有 CCS 软件的计算机; DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 相关系数是数字信号处理中的一个重要概念,包括自相关系数和互相关系数。它们 的定义是:? xx (k ) = E[x(n)x(n + k )] ,k 为相关系数的阶数;和γ xy (k ) = E[x (n) y(n + k )] 。根据相关系数的定义,需要求输入信号的期望值,这在实际上是不可能实现的。因此, 通常只根据一定长度的已知输入信号求相关系数的一个估计, 这时采用以下的公式: (设 N 为已知信号的长度)? ? xx (k ) = γ? xy (k ) =1 N ? k ?1 ∑ x(n )x(n + k )   N n =0 1 N ? k ?1 ∑ x (n) y(n + k ) N n= 0和 既然是估计值,那么就存在一致性和有效性的问题,可以证明上面两式的估计是有偏估 计,而以下的则是无偏估计:? ? xx (k ) = γ? xy (k ) =1 N ? k ?1 ∑ x(n )x(n + k )   (无偏估计) , N ? k n= 0 1 N ? k ?1 ∑ x(n) y(n + k )   (无偏估计) N ? k n =0本实验在上面公式的基础上实现各阶相关系数的估计。- 59 - 百科融创科技有限公司DSP- II+实验指导书四、实验步骤 1.  在 CCS 环境中打开本实验的工程(Ex4_2.pjt ) ,编译并重建 .out 输出文件,然 后通过仿真器把执行代码下载到 DSP 芯片中; 2.  在 Watch 窗口中添加相关系数数组 r 作为观察对象; 3.  运行程序,观察数据值的变化;4.  修改估计模式 mode,重复上述过程,观察有偏估计与无偏估计的差别; 5.  修改输入数组 x[ ]和 y[ ] 的初始赋值函数、参与估计的数组长度、输出数组的长 度等参数,重复上述过程,观察运行结果;五、思考题 1.  试证明上面给出的第二组相关系数估计公式的无偏性; 2.  在本实验程序的基础上,修改代码,实现自相关系数的估计; 3.  分析阶数对相关系数的影响。- 60 - 百科融创科技有限公司DSP- II+实验指导书§4.3   [实验 4.3] 快速傅里叶变换 (FFT) 实现 一、实验目的 1. 2. 掌握 FFT 算法的基本原理; 掌握用 C 语言编写 DSP 程序的方法。二、实验设备 1. 2. 3. 一台装有 CCS 软件的计算机; DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理   傅里叶变换是一种将信号从时域变换到频域的变换形式,是信号处理的重要分析工 具。离散傅里叶变换(DFT)是傅里叶变换在离散系统中的表示形式。但是 DFT 的计 算量非常大, FFT 就是 DFT 的一种快速算法 , FFT 将 DFT 的 N2 步运算减少至 ( N/2 )log2 N 步。 离散信号 x(n)的傅里叶变换可以表示为 nk ? j 2π / N X (k ) = ∑ x[n ]W N ,  WN = e N =0 N ?1式中的 WN 称为蝶形因子,利用它的对称性和周期性可以减少运算量。一般而言,FFT 算法分为时间抽取(DIT)和频率抽取(DIF)两大类。两者的区别是蝶形因子出现的 位置不同,前者中蝶形因子出现在输入端,后者中出现在输出端。本实验以时间抽取方 法为例。 时间抽取 FFT 是将 N 点输入序列 x(n) 按照偶数项和奇数项分解为偶序列和奇序列。 偶序列为:x(0), x(2), x(4),… , x(N-2);奇序列为:x(1), x(3), x(5),… , x(N-1)。这样 x(n) 的 N 点 DFT 可写成:2 nk (2 n +1)k X (k ) = ∑ x(2n)WN + ∑ x(2n + 1)WN n =0 n =0 N / 2 ?1 N / 2?1考虑到 WN 的性质,即WN2 = [e ? j (2π ) / N ]2 = e? j 2π /(N / 2) = WN / 2因此有:- 61 - 百科融创科技有限公司DSP- II+实验指导书nk k nk X (k ) = ∑ x (2n)WN WN / 2 + WN ∑ x(2n + 1) /2 n= 0 n =0N / 2 ?1N / 2?1或者写成:k X (k ) = Y (k ) + WN Z (k )由于 Y(k) 与 Z(k) 的周期为 N/2,并且利用 WN 的对称性和周期性,即:k+ N / 2 k WN = ?WN可得:k X (k + N / 2) = Y (k ) ? WN Z (k )对 Y(k) 与 Z(k) 继续以同样的方式分解下去,就可以使一个 N 点的 DFT 最终用一组 2 点的 DFT 来计算。在基数为 2 的 FFT 中,总共有 log2 (N) 级运算,每级中有 N/2 个 2 点 FFT 蝶形运算。 单个蝶形运算示意图如下:以 N=8 为例,时间抽取 FFT 的信号流图如下:x(0) W0 x(4) W x(2) W0 x(6) x(1) W0 x(5) W0 x(3) W x(7)0 0X(0) X(1) X(2) W2W0 W1 W2 W3 W2X(3) X(4) X(5) X(6) X(7)从上图可以看出,输出序列是按自然顺序排列的,而输入序列的顺序则是“比特反 转”方式排列的。也就是说,将序号用二进制表示,然后将二进制数以相反方向排列, 再以这个数作为序号。如 011 变成 110,那么第 3 个输入值和第六个输入值就要交换位 置了。本实验中采用了一种比较常用有效的方法完成这一步工作__雷德算法。- 62 - 百科融创科技有限公司DSP- II+实验指导书四、实验步骤 1.  以 8 点 FFT 的信号流图为例,理解 FFT 算法的过程; 2.  在 CCS 环境中打开本实验的工程(Ex4_3.pjt ) ,编译并重建 .out 输出文件,然 后通过仿真器把执行代码下载到 DSP 芯片中; 3.  运行程序; 4.   选择 view-&graph-&time/frequency…   。 设置对话框中的参数 : 其中“ Start Address”设为“x_re” , “Acquisition buffer size”和“Display Data size”都设为“64” , 并且把“DSP Data Type”设为“32-bit floating point” (如图) ,设置好后观察输入信号序列的波形(单边指数函数,如图) ;同样方法观察经 DFT 变换后的输出序列“ y_re”的波形, “Start Address”改为“y_re” , 其余参数不变(如图) ;- 63 - 百科融创科技有限公司DSP- II+实验指导书5. 在 Watch 窗口中添加 i, j, k, m, n, a, b ,c 等变量,在 Debug 菜单中先“Restart” 然后 “Go main ” , 单步运行程序,跟踪 FFT 算法的过程; (可以跳过程序开始部分对 各个数组的赋值代码,方法是在雷德算法的第一行代码前设置断点,然后先单击运行 ,待程序停在该断点后再单步执行后面的代码,见下图。 )6.   修改 N 的值(应为 2 的整数次幂,如 8,16,32 等,最大不超过 256) ,或者修 改输入信号 x 的函数,如直流、正弦、三角等,观察程序运行结果。注意观察图形时, 数据块大小要相应更改为当前 N 值。五、思考题 1.  分析本实验程序中完成位倒序排列的“雷德算法”的原理; 2.  参考资料,了解 TMS320C5000 系列专门为 FFT 运算提供的“比特反转寻址方 式” ; 3.  思考如何实现实数序列的 FFT,它在复数序列的算法基础上还能作哪些优化, 从而进一步降低运算量和所需的存储空间。- 64 - 百科融创科技有限公司DSP- II+实验指导书§4.4   [实验 4.4] 离散余弦变换 (DCT) 实现 一、实验目的   1.  掌握离散余弦变换的概念和实现方法;   2.  掌握用 C 语言编写 DSP 程序的方法。二、实验设备   1.  一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 尽管傅里叶变换具有很多优点,得到了广泛的应用,但是它也有缺点。例如:傅里 叶变换需要计算的是复数而不是实数,一般进行复数运算要比进行实数运算费时得多。 如果采用其它合适的完备正交函数系来代替傅里叶变换所利用的正、余弦函数构成的完 备正交函数系,就可以避免这种复数运算。离散余弦变换就是基于实数的正交变换。 一维的离散余弦变换的定义如下:F (0) =1 NN ?1 x =0∑ f (x )F (k ) =2 N ?1 (2 x + 1)kπ ∑ f (x ) cos N x =0 2N式中 F(k)为第 k 个余弦变换系数,f(x)为时域中的 N 点序列。 要进行离散余弦变换可以从它的定义出发,但这样做的计算量相当大,在实际应用 中非常不便,因此需要一种快速算法。 首先,将 f(x)进行延拓:? f (x ) ? f e (x ) = ? ? 0 ?x = 0 ,1, 2 ,... N ? 1 x = N , N + 1,.., 2 N ? 1按照一维离散余弦变换的定义有:F (0) =1 N ?1 ∑ f e (x ) N x= 0- 65 - 百科融创科技有限公司DSP- II+实验指导书F (k ) = =(2 x + 1)kπ 2 N ?1 ∑ fe (x ) cos N x=0 2Nkπ 2 xkπ ? ? ?j 2 ? ? j 2N N ?1 ? Re ?e ∑ fe ( x )e 2 N ? x=0 N ? ? ? ?(2 x +1)k π ? ? ?j 2 ? N ?1 ? 2N Re ? ∑ fe ( x )e ?= N ? x=0 ? ? ??j 2 xkπ 2N由于 ∑ f e(x )ex =0N ?1是 fe(x)的 2N 点离散傅里叶变换,因此,在作离散余弦变换时,可以把长度为 N 的序列 f(x)的长度延拓为 2N 的序列,然后对延拓的结果进行离散傅里叶 变换,最后提取离散傅里叶变换的实部便是离散余弦变换的结果。在作离散傅里叶变换 时可以采用快速傅里叶变换方法(FFT)。 本实验就是在实验 5.4 的基础上完成的,程序主体部分利用了上一个实验的 FFT 算 法,最后对 FFT 变换的结果提取实部并乘上系数即可。四、实验步骤 1.  在 CCS 环境中打开本实验的工程( Ex4_4.pjt ) ,编译并重建 .out 输出文件,然 后通过仿真器把执行代码下载到 DSP 芯片中; 2.  运行程序; 3.  在 Watch 窗口中添加 ck 变量,观察离散余弦变换的结果,当要把 ck 展开时, 程序会提示输入要显示的范围,源程序中 N=8,因此只需显示 0-7  如图);4.  修改 N 的值(可以是 16,32,64… 256) ,或者修改输入信号 x 的函数,重复上述 过程,观察程序运行结果。- 66 - 百科融创科技有限公司DSP- II+实验指导书五、思考题 1. 了解二维离散余弦变换的定义; 2. 把源程序改写成纯实数运算。- 67 - 百科融创科技有限公司DSP- II+实验指导书§4.5   [实验 4.5] 有限冲击响应滤波器 (FIR) 实现 一、实验目的   1.  掌握 FIR 滤波器的原理和窗函数设计法;   2.  掌握用 C 语言编写 DSP 程序的方法。二、实验设备   1.  一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 数字滤波是 DSP 的最基本的应用领域之一。对于许多应用来说,数字滤波一般具 有如下的差分方程形式:y(n) = ∑ ak x(n ? k ) + ∑ bk y(n ? k )k=0 k =0N ?1N ?1式中, X(n) 为输入序列, Y(n)为输出序列, A k 和 B k 为滤波器系数, N 是滤波器的阶数。 若式中所有的 B k 均为零,且通常把系数 A k 记为 h k ,   则有:y(n) = ∑ hk x(n ? k )k =0N ?1上式就是 FIR 滤波器的差分方程了。FIR 滤波器的最主要的特点是没有反馈回路,因此 它是无条件稳定系统。它的单位脉冲响应 h(n)是一个有限长序列。由上面的方程可见, FIR 滤波算法实际上是一种乘法累加运算,它不断地输入样本 x(n) ,经延时 (zC1 ),做乘 法累加,再输出滤波结果 y(n) 。 要设计一个 FIR 滤波器就是要求出它的冲击响应系数 h(n),设计方法主要有窗函数 法和频率抽样法,本实验要求掌握窗函数法,这也是最基本的方法。 理想的低通滤波器的频率响应 Hd (w)是一个矩形, 这意味着它在时域上是无限长的 序列,这在实际上是不可能实现的。因此我们要采取某种方法截断 Hd(n),可以用一个 有限长度的窗函数序列 w(n)与之相乘。 这个窗函数序列的形状和长度都会对最后系统的 频率响应特性产生影响,因此对窗函数的分析和选择是设计 FIR 滤波器的关键问题所 在。 本实验举了五种常用的窗函数为例,通过设置参数可以得到加上不同窗后的冲击响- 68 - 百科融创科技有限公司DSP- II+实验指导书应序列 h(n),并且可以观察到其幅频响应图。 关于根据给定频率要求进行 FIR 滤波器设计的详细原理,以及在求得符合要求的 h(n)后如何对输入信号序列进行滤波,请读者参考数字信号处理的有关资料。四、实验步骤 1.  复习有关 FIR 滤波器的原理; 2.  在 CCS 环境中打开本实验的工程( Ex4_5.pjt ) ,编译并重建 .out 输出文件,然 后通过仿真器把执行代码下载到 DSP 芯片中; 3.  阅读源代码,记下各种窗函数的公式; 4.  运行程序  (执行需要一定时间); 5.   选择 view-&graph-&time/frequency…   。 设置对话框中的参数 : 其中“ Start Address”设为“hd” , “Acquisition buffer size”和“Display Data size”都设为“21” (因 为源程序中 n=21) ,并且把“DSP Data Type”设为“32-bit floating point” ,设置好后观 察理想冲击响应序列的波形示意图,可与公式对照分析;7.观察其它序列的波形示意图,包括所用窗函数 w ,加窗后响应序列 h 和输出对数幅频响应 db 的图形,这时的“Start Address”应分别设为“w ”和“h”和“db” ,其 中观察前两者时数据块大小设为“ 21” (同 n 值) ,观察“db”时数据块大小设为“100” (同 l 值) ,所观察到的图形应大致如下面五组图所示;?m=1 时: 矩形窗函数- 69 - 百科融创科技有限公司DSP- II+实验指导书加窗后序列加窗后的幅频响应 db?m=2 时: 三角窗函数- 70 - 百科融创科技有限公司DSP- II+实验指导书加窗后序列加窗后的幅频响应 db?m=3 时: 汉宁窗函数- 71 - 百科融创科技有限公司DSP- II+实验指导书加窗后序列加窗后的幅频响应 db?m=4 时: 汉明窗函数- 72 - 百科融创科技有限公司DSP- II+实验指导书加窗后序列加窗后的幅频响应 db?m=5 时: 布莱克曼窗函数- 73 - 百科融创科技有限公司DSP- II+实验指导书加窗后序列加窗后的幅频响应 db  7.  从 1-5 依次修改 m 的值,按上面步骤观察各图形。五、思考题   1.  总结窗函数法的设计步骤和关键问题。  - 74 - 百科融创科技有限公司DSP- II+实验指导书§4.6   [实验 4.6] 无限冲击响应滤波器 (IIR) 实现 一、实验目的 1. 2. 掌握 IIR 滤波器的原理与设计方法; 掌握用 C 语言编写 DSP 程序的方法。二、实验设备 1.  一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理 数字滤波器的输入 x[k]和输出 y[k]之间的关系可以用如下常系数线性差分方程及其 z 变换描述:     N My[ k ] = ∑ ai x[ k ? i ] + ∑ bi y[ k ? i]i=0 i =1系统的转移函数为:MY (z) k H (z) = = X ( z) 1 +∑=1 Nbk z ak? kk = 0∑z? k设计一个 IIR 滤波器就是要根据所给定的指标确定上式中的分子和分母系数。 设计 IIR 数字滤波器可以先设计一个合适的模拟滤波器,然后变换成满足给定指标 的数字滤波器。这种方法很简便,因为模拟滤波器有多种设计方法,如巴特沃思型滤波 器、切比雪夫型滤波器、椭圆函数型滤波器等,并且已经具有很多简单而又现成的设计 公式。采用这种方法需要把 s 平面映射到 z 平面,使模拟系统函数 H(s)变换成所需的数 字滤波器的系统函数 H(z) 。映射方法主要有冲激响应不变法、阶跃响应不变法和双线性 变换法。 前两种方法会因为多值映射关系产生混叠失真, 双线性变换法克服了这一缺点。 双线性变换法的映射关系式是:s=c1 ? z ?1 1 + z ?1本实验采用的是巴特沃思型滤波器,并用双线性变换法转换成数字滤波器。- 75 - 百科融创科技有限公司DSP- II+实验指导书四、实验步骤 1. 在 CCS 环境中打开本实验的工程( Ex4_6.pjt ) ,编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到 DSP 芯片中; 2. 3. 运行程序; 在 Watch 窗口观察系统函数 H(z) 的分子和分母系数 ptr_b,ptr_a。写出该滤波器的系统函数。 4. 选择 view-&graph-&time/frequency…   。 设置对话框中的参数: 其中 “ StartAddress”设为“hwdb” , “Acquisition buffer size”和“Display Data size”都设为“50” , 并且把“DSP Data Type”设为“32-bit floating point” ,观察幅频响应的波形(如图);5.修改滤波器的设计参量 fp,fr,fs,ap,ar 等,重复上述过程,观察设计结果。五、思考题 1. 总结巴特沃思型滤波器的设计方法。- 76 - 百科融创科技有限公司DSP- II+实验指导书§4.7   [实验 4.7] 自适应滤波器 (LMS) 实现 一、实验目的 1. 2. 3. 掌握自适应滤波器的原理; 掌握 LMS 算法的原理; 掌握用 C 语言编写 DSP 程序的方法。二、实验设备 1.  一台装有 CCS 软件的计算机; 2. 3. DSP 实验箱的 TMS320C5410 主控板; DSP 硬件仿真器。三、实验原理图1 (图 1)为自适应滤波器结构的一般形式,图中 x(k) 为输入信号,通过参数可调的数 字滤波器后产生输出信号 y(k) , 将输出信号 y(k) 与标准信号 (或者为期望信号) d(k) 进 行比较,得到误差信号 e(k) 。e(k) 和 x(k) 通过自适应算法对滤波器的参数进行调整, 调整的目的是使误差信号 e( k ) 最小。反复进行上面过程,使滤波器逐渐掌握了输入信 号和噪声的统计规律,并以此为根据自动调整自己的参数,从而达到最佳的滤波效果。 一旦输入信号的统计规律发生了变化,滤波器能够自动跟上输入信号的变化,自动调整 滤波器的参数,这就是自适应滤波的原理。 自适应滤波器的结构可以采用 FIR 型或 IIR 型,由于 IIR 滤波器存在稳定性问题, 因此一般采用 FIR 滤波器作为自适应滤波器的结构。 自适应 FIR 滤波器结构又可分为三- 77 - 百科融创科技有限公司DSP- II+实验指导书种结构类型: 横向型结构 (Transversal Structure) 、 对称横向型结构 (Symmetric Transversal Structure) 、格型结构(Lattice Structure) 。本实验所采用的是自适应滤波器设计中最常 用的 FIR 横向型结构。设 w(i) 为横向滤波器的一组系数,滤波器的输出与输入信号间的 关系可以表示为:y (n) = W T (n) X (n) = ∑ wi (n)x(n ? i)i =0N ?1自适应滤波器除了包括一个按照某种结构设计的滤波器,还有一套自适应的算法。 滤波器的参数就是依照这种自适应算法来自动调整的,最常用的自适应算法是最小均方 误差算法,即 LMS 算法(Least Mean Square) 。LMS 算法的目标是通过调整系数,使输 出误差序列 e(n)=d(n) ?y(n) 的均方值最小化,并且根据这个判据来修改权系数。当均方 误差达到最小时,得到最佳系数 w *。为了较快地求得近似的最佳系数,可以采用最快 下降法,也叫梯度算法,这是一种迭代运算。在采用种种近似和代替后,最后可以导出 如下公式:W (n + 1) = W (n ) + 2ue( n) X (n )式中的 u 是由系统稳定性和迭代运算收敛速度决定的自适应步长, u 越小,则收敛越慢, 但是 u 太大则会导致系统的不稳定性。本实验就是以这个公式为基础实现自适应滤波器 的。 关于算法的详细推导过程及参数的选择原则, 请读者参考数字信号处理的有关资料。四、实验步骤 1. 在 CCS 环境中打开本实验的工程( Ex4_7.pjt ) ,编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到 DSP 芯片中;   2.  运行程序; 3. 选择 view-&graph-&time/frequency…   。 设置对话框中的参数: 其中 “ StartAddress”设为“x” , “Acquisition buffer size”和“Display Data size”都设为“500” ,并 且把“DSP Data Type”设为“32-bit floating point” ,观察输入信号的波形(如图 2) ;同 样方法观察输出波形“y”(如图 3)和输出误差“e”(如图 4)的波形;体会“自适应”的 过程。- 78 - 百科融创科技有限公司DSP- II+实验指导书(图 2)(图 3)(图 4) 4. 修改信号长度 L、滤波器级数 N、自适应步长 u、输入信号函数 x 等内容,重复上述过程,观察程序运行结果。五、思考题 1. 2. 试推导梯度算法的公式; 自适应步长 u 对自适应滤波过程有何影响,应如何决定 u 的值?- 79 - 百科融创科技有限公司DSP- II+实验指导书第五章接口及控制实验§5.1   [实验 5.1] 数码管控制实验 一、实验目的 1. 2. 熟悉 2407 的指令系统; 熟悉 74HC573 的使用方法。二、实验设备 1. 2. 3. 一台装有 CCS2000 软件的计算机; 插上 2407 主控板的 DSP 实验箱; DSP 硬件仿真器。三、实验原理 此模块由数码管和八个锁存器组成 。数码管为共阴极型的。数据由 2407 模块的低 八位输入,锁存器的控制信号由 2407 模块输出,但经由 CPLD 模块译码后再控制对应 的八个锁存器。四、实验步骤 1. 把 2407 模块小板插到大板上;打开数码管模块的电源开关;2. 在 CCS2000 环境中打开本实验的工程编译(.\shuzi\shuzi.pjt ) ,生成输出文件, 通过仿真器把执行代码下载到 DSP 芯片; 3. 运行程序数码管会显示 1~8 的数字。 4. 参考源代码自行修改程序改变显示样式,如:一个个分别显示。 - 80 - 百科融创科技有限公司DSP- II+实验指导书§5.2   [实验 5.2] 交通灯控制实验 一、实验目的 1.熟悉 2407 的指令系统; 2.熟悉 74HC573 的使用方法。二、实验设备 1. 2. 3. 一台装有 CCS2000 软件的计算机; 插上 2407 主控板的 DSP 实验箱; DSP 硬件仿真器。三、实验原理 此模块由发光二极管和一个锁存器组成。 数据由 2407 模块的低八位输入, 锁存器的控制信号由 2407 模块输出, 但经由 CPLD 模块译码后再控制锁存器。四、实验步骤 1. 把 2407 模块小板插到大板上;打开交通灯模块的电源开关;2. 在 CCS2000 环境中打开本实验的工程编译(.\jiaotong\jiaotong.pjt),生成输出文 件,通过仿真器把执行代码下载到 DSP 芯片; 3. 运行程序,发光二极管按交通灯方式点亮熄灭。 4. 参考源代码,自行修改程序,实现不同的交通灯控制方式。 - 81 - 百科融创科技有限公司DSP- II+实验指导书§5.3   [实验 5.3] 液晶显示屏 (LCD)实验 一、实验目的 1. 2. 掌握液晶的使用方法; 掌握液晶信号之间时序的正确识别和引入。二、实验设备 1. 2. 3. 一台装有 CCS2000 软件的计算机; 插上 2407 主控板的 DSP 实验箱; DSP 硬件仿真器。三、实验原理 1. 液晶简介1 2 3 4 5 6/CS1 /CS2 GND VDD VO D/IH/L H/L 0 5V ----H/LL:选择芯片(左半屏)信号 L: 选择芯片(右半屏)信号电源地 +5V 液晶驱动电压 D/I=’ H’ ,表示DB7 ――DB0 为显示数据; D/I=’ L’ ,表示DB7 ――DB0 为显示指令 数据7R/WH/LR/W=’ H’ , E=’ H’ 数据被读到DB7 ―DB0 R/W=’ L’ , E=’ H’ ― >’ L’ ,数据被写到IR 或 DR8EH/LR/W=’ L’ , E信号的下降沿锁存DB7-DB0 R/W=’ H’ ,

我要回帖

更多关于 实验室采样员 的文章

 

随机推荐