《DSP课设PWM.doc》由会员分享,可在线阅读,更多相关《DSP课设PWM.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流DSP课设PWM.精品文档.目 录一 引言与概述21.1 DSP介绍21.2DSP的应用:21.3问题描述31.4 DSP2407简介31.5事件管理器的引脚说明41.6比较单元41.7 PWM基本原理4二 系统总体设计与工作原理62.1总体设计与分析62.2基本理论7三 各单元硬件设计及工作原理12四 软件设计与说明124.1程序文件说明124.2主程序(pwm.c)134.3向量表程序(vectors.asm)144.4存储器配置(2407CMD.cmd)14五 调试结果及其操作说明155.1 CCS 集成开发环境155.2 CCS 的调
2、试操作15六 参考文献16一 引言与概述1.1 DSP介绍数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。 DSP (digital signal processor)是一种独特的微处
3、理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或l的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。DSP微处理器(芯片)一般具有如下主要特点:(1)在一个指令周期内可完成一玖乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无
4、开销循环及跳转的硬件支持;(5)快速的中断处理和硬件1/0支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以熏叠执行。1.2DSP的应用: 语音处理:语音编码、语音合成、语音识别、语音增强、语音邮件、语音 储存等。 图像图形:二维和三维图形处理、图像压缩与传输、图像识别、动画、机 器人视觉、多媒体、电子地图、图像增强等。 军事、保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜 索和反搜索等。 仪器仪表:频谱分析、函数发生、数据采集、地震处理等。 自动控制:控制、深空作业、自动驾驶、机器人控制、磁盘控制等。
5、 医疗:助听、超声设备、诊断工具、病人监护、心电图等。 家用电器:数字音响、数字电视、可视电话、音乐合成、音调控制、玩具 与游戏等。 生物医学信号处理举例: CT:计算机X射线断层摄影装置。(其中发明头颅CT英国EMI公司的豪斯菲尔德获诺贝尔奖。) CAT:计算机X射线空间重建装置。出现全身扫描,心脏活动立体图形,脑肿瘤异物,人体躯干图像重建。1.3问题描述输入输出端口(1/0)是DSP芯片内部电路与外部世界交换信息的通道。输入端口负责从外界接收检测信号键盘信号等各种开关量信弓;输出端口负责向外界输送有内部电路产生的处理结果显示信息,控制命令驱动信号。 使用中断和定时器延时循环程序,设计DSP
6、的流水灯控制器,在事件管理器中应用EV中断。1.4 DSP2407简介2407开发板分为TI 2000-011 DSP2407增强型、DSP2407+CPLD开发板、SHX-DSP2407A开发板。引DSP2407+CPLD开发板套件是一套基TMS320LF2407A+EPM240的DSP+CPLD的学习开发平台,充分发挥DSP2407和ALTERA MAX II的灵活性和功能强大,用户手册详实易懂,大量源码轻松上手(分DSP和CPLD两部分),我们为用户提供一个完整的IP核通过CPLD进行系统资源分配,用户可以根据需要进行裁剪或追加功能。由于我们的外设都是通过CPLD连接与DSP连接进行电平
7、转换、隔离和总线。 仲裁等先进技术,所以使用极为方便灵活、简洁、并且运行及其稳定。这种结构可以充分利用了CPLD的灵活性和功能强大的IP核进行功能更强的系统应用。是初学者和从事开发的科研工作者学习2407和CPLD的首选之品。 本开发板供初学者学习使用,也可作为系统板嵌入到用户的产品供用户进行二次开发以便缩短产品开发周期。SHX-DSP2407A开发板是DSP 2407系列产品中的重要一员。它的最大优点是直观简单明了,极为适于初学者。此棋板采用统一的系统结构、模块结构和机械结构,以多种典型DSP处理器构成的DSP基本系统、标准总线和相同物理尺寸的DSP嵌入式控制模板,将2407的功能发挥的淋漓
8、尽致,为学习者提供了强大、有效的学习平台。用户手册详实易懂,大量源码轻松上手(分DSP和CPLD两部分),我们为用户提供一个完整的IP核通过CPLD进行系统资源分配,用户可以根据需要进行裁剪或追加功能。1.5事件管理器的引脚说明1.6比较单元1.7 PWM基本原理 PWM控制基本原理PWM (Pulse Width Modulation)就是脉宽调制技术矩形脉冲波形,可理解为占空比可调的方波。即通过对一系列脉冲的宽度进行调制,来等效地获得所需要的波形(含形状和幅值)。也就是说PWM信号(脉宽调制信号)是脉冲宽度根据某一寄存器内的值的变化而变化的脉冲序列;宽度是根据预定值来决定和调制的。1. P
9、WM信号产生用一定时器重复产生与PWM周期相同的计数周期,一个比较寄存器保持着调制值,在相应的输出上会产生一个转换。输出脉冲的开关时间会与比较寄存器的值成比例。2. 死区在许多的运动/电机控制和功率电子应用场合中,两个功率器件(上级和下级)被串联在一个功率支路中,为避免击穿失效,在一个三极管的关断和另一个三极管导通之间经常要插入一个死区,这段时间延迟允许一个三极管在别的三极管导通之前完全关断。 PWM的基本思想重要理论基础面积等效原理冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。冲量窄脉冲的面积效果基本相同环节的输出响应波形基本相同图6-1 形状不同而冲量相同的各种窄脉冲d
10、)单位脉冲函数f (t)d (t)tOa)矩形脉冲b)三角形脉冲c)正弦半波脉冲tOtOtOf (t)f (t)f (t)所以据面积等效原理,正弦波等效为下图中所示的PWM波。二 系统总体设计与工作原理2.1总体设计与分析1. DSP直接可以输出PWM波,所以不需要额外的硬件连接。但是DSP输出的驱动能力有限,驱动电机必须额外加放大驱动电路。2. 以DSP的EVA单元为例子,EVA的2个通用定时器可以产生2路独立的PWM波,3个比较单元能够产生6对带死区的PWM波。1) T1CNT为连续计数模式产生不对称的PWM波,此时PWM的周期为(t1pr+1)/tclk,t1pr为周期寄存器值,TCLK
11、为当前定时器每计数一次所需时间。2) T1CNT为连续增减计数产生对称的PWM波。周期为2T1PR/tclk.为了产生一个PWM信号,DSP的定时器定时周期应该和PWM的周期相等。另外需要对DSP的EVA/EVB模块中的比较单元的比较寄存器设定数值,这样该数值一直与定时器的计数器值相比较,按照一定的比较方式,PWM即产生跳变。通过此种方式,DSP的PWM管脚就会产生一个宽度与比较寄存器数值成比例的脉冲信号。在定时器重复定时的过程中就产生了PWM信号。使用DSP比较单元产生PWM波形不需要硬件连接图,只需对DPS的相关寄存器进行配置就可以在输出端得到相应的PWM波形,其具体操作过程如下:1. 设
12、置比较方式控制寄存器ACTRx2. 如有必要,使能死区功能,配置死区控制寄存器DBTCONx3. 对比较寄存器CMPRx赋值4. 设置定时器寄存器T1CON(T3CON)并启动定时5. 通过更新CMPRx的数值改变PWM占空比的大小2.2工作原理EV模块中的每个比较单元均可产生非对称和对称的PWM波形。另外这三个比较单元一起可产生三相对称空间向量PWM输出。用GP定时器产生PWM输出已介绍,下面仅介绍用比较单元产生PWM。(1)非对称PWM波形产生用一个比较单元产生一个非对称的PWM波形。见下图。GP定时器1必须设置为连续递增计数模式,其周期寄存器必须载入一个与所需的PWM载波周期相对应的值。
13、(2)对称的PWM波形产生对称的PWM波形是其调制脉冲在每个PWM周期是对称的。如下图所示。对称的与非对称PWM波形相比,优点在于在每个PWM周期的开始和结束它有两个相同长度的无效区,这种对称性表现为当正弦调制使用时,它在一个交流电机的相电流中比非对称的PWM信号引起更少的谐波。2.2基本理论指导实验的基本理论是DSP的数字I/O端口以及其寄存器的配置。通过对这些理论的掌握和运用,达到了解和熟悉一般DSP数字I/O的知识。(1)数字I/O端口TMS320LF2407系列有多达41个通用、双向的数字I/O(GPIO)引脚,其中大多数是基本功能和一般I/O复用引脚,TMS320LF2407系列的大
14、多数都可以用来实现其他功能。数字I/O端口模块采用了一种灵活的方法,以控制专用I/O和复用I/O引脚的功能,所有I/O和复用引脚的功能可以通过9个16位控制寄存器来设置,这些寄存器可以分为两类:l I/O口复用控制寄存器(MCRx):用来控制选择I/O引脚作为基本功能或一般I/O引脚功能。l 数据和方向控制寄存器(PxDATDIR):当I/O引脚作为一般I/O引脚功能时,用数据和方向控制寄存器可控制数据和I/O引脚的数据方向,这些寄存器直接和I/O引脚相连。(2)数字I/O端口寄存器图1给出了TMS320LF2407系列I/O端口复用引脚配置简图,从图上可以看出一些寄存器单元的配置对应于实际I
15、/O引脚的内部结构之间的联系。图1 复用引脚配置图表1中所列的是数字I/O模块可用的寄存器单元,和其他240xA外设一样,这些寄存器被存储器映射到数据空间,地址从7090h到709Fh。寄存器单元中保留的位所是无效的,读时为0,写对它无影响。表1 数字数字I/O模块控制寄存器地址地址存储寄存器说明7090hMCRAI/O复用控制寄存器A7092hMCRBI/O复用控制寄存器B7094hMCRCI/O复用控制寄存器C7098hPADATDIRI/O端口A数据和方向寄存器709AhPBDATDIRI/O端口B数据和方向寄存器709ChPCDATDIRI/O端口C数据和方向寄存器709EhPDDAT
16、AIRI/O端口D数据和方向寄存器7095hPEDATAIRI/O端口E数据和方向寄存器7096hPEDATDIRI/O端口F数据和方向寄存器下面介绍I/O口复用输出控制寄存器。下面描述了I/O口复用控制寄存器A(MCRA)I/O口复用控制寄存器B(MCRB),I/O口复用控制寄存器C(MCRC),其中表2是I/O口复用控制寄存器A(MCRA)的配置,对寄存器的每个位的值做了详细的描述;表3是I/O口复用控制寄存器B(MCRB)的配置,对寄存器的每个位的值做了详细的描述。表4是I/O口复用控制寄存器C(MCRC)的配置,对寄存器的每个位的值做了详细的描述。l I/O口复用控制寄存器A(MCRA
17、)地址7090h注:R=可读,W=可写,_0=复位后的值表2 I/O口复用控制寄存器A(MCRA)的配置l I/O口复用控制寄存器B(MCRB地址7092h)注:R=可读,W=可写,_0=复位后的值表3 I/O口复用控制寄存器B(MCRB)的配置l I/O口复用控制寄存器C(MCRC地址7094h)注:R=可读,W=可写,_0=复位后的值表4 I/O口复用控制寄存器C(MCRC)的配置以下介绍DSP的I/O口数据和方向寄存器。TMS320LF2407系列总共有6个数据和方向控制寄存器(PxDATADIR),当I/O口用作一般I/O引脚功能时,用数据和方向控制寄存器,可控制数据和到双向I/O引脚
18、的数据方向。这些寄存器直接和双向I/O引脚相连。当I/O用作基本功能时,这些寄存器的设置对相应的引脚无影响。l 端口A数据和方向控制寄存器A(PADATADIR)地址7098h注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口B数据和方向控制寄存器(PBDATDIR)地址709Ah注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口C数据和方向控制键寄存器(PCDATDIR)地址709Ch注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口D数据和方向控制键寄存器(PDDATDIR)地址709Eh
19、注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口E数据和方向控制键寄存器(PEDATDIR)地址7094h注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口F数据和方向控制键寄存器(PFDATDIR)地址7096h注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值三 各单元硬件设计及工作原理事件管理器A和B的引脚描述四 软件设计与说明 4.1程序文件说明程序主要文件:(1) vectors.asm: 包含了LF2407中断矢量的文件,中断向量表文件。(2) pwmc: 这是实验的主程序C源文件,包含
20、了系统的初始化及对片外扩展的高32K数据控件的操作。(3) 2407CMD.cmd: DSP 的链接文件,声明了系统的存贮器配置与程序各段的连接关系,它的主要功能是将DSP 的每段的程序链接到相应的DSP 的存贮区中。(4) rts2xx.lib 是一个库文件,主要包含了有关C 的运行环境与相应的函数的代码。 4.2主程序(pwm.c) / 该程序利用EVB模块的PWM7-PWM12引脚产生不同占空比的方波#includeregister.hvoid inline disable() / 屏蔽中断程序asm( setc INTM);int initial()/ 系统初始化子程序asm( set
21、cSXM);/ 符号位扩展有效asm( clrcOVM);/ 累加器中结果正常溢出asm( clrcCNF);/ B0被配置为数据存储空间*SCSR1=0x80FE;/ CLKIN=10M,CLKOUT=4*CLKIN=40M*WDCR=0x0E8;/ 不使能看门狗,因为SCSR2中的WDOVERRIDE / 即WD保护位复位后的缺省值为1,故可以 / 用软件禁止看门狗*IMR=0x0000;/ 禁止所有中断*IFR=0x0FFFF;/ 清除全部中断标志,写1清0WSGR=0X0FFFF;/ 禁止所有的等待状态int pwminitial()/ EVB模块的PWM初始化程序*MCRC=*MCR
22、C|0X007E;/ IOPE1-6被配置为基本功能方式,PWM7-12*ACTRB=0X0666;/ PWM12,10,8 低有效,PWM11,9,7 高有效*DBTCONB=0xFFC;/ 不使能死区控制*CMPR4=0X1000;*CMPR5=0X3000;*CMPR6=0X5000;*T3PER=0X6000;/ 设置定时器3的周期寄存器,并设置CMPR4-6,/以确定不同的输出占空比*COMCONB=0X8200;/ 使能比较操作*T3CON=0X1000;/ 定时器3为连续增计数模式voidinterrupt nothing()/ 该中断服务程序是为了防止干扰,不做任何其它操作re
23、turn;/ 中断直接返回main( ) / 主程序disable();/ 总中断禁止initial();/ 系统初始化pwminitial();/ PWM输出初始化*T3CON=*T3CON|0x0040;/ 启动定时器3while(1) ; 4.3向量表程序(vectors.asm).ref _nothing;直接返回的中断服务程序符号.ref _c_int0;复位向量符号.sect .vectorsRSVECT B _c_int0 ; PM 0复位向量 1INT1 B _nothing; PM 2中断优先级14INT2 B _nothing; PM 4中断优先级25INT3 B _not
24、hing; PM 6中断优先级36INT4 B _nothing; PM 8中断优先级47INT5 B _nothing; PM A中断优先级58INT6 B _nothing; PM C中断优先级69 4.4存储器配置(2407CMD.cmd)-w-stack 200-heap 200-l rts2xx.lib MEMORYPAGE 0:VECS:ORIGIN=00000H,LENGTH=00040H/*中断向量存贮空间*/PVECS:ORIGIN=00044H,LENGTH=00100H/*外围中断向量*/PM:ORIGIN=00150H,LENGTH=07EAFH/*片内flash存储空
25、间*/PAGE 1: REGS:ORIGIN=0H,LENGTH=60H/*存储器映射的寄存器和保留地址*/BLK_B2:ORIGIN=60H,LENGTH=20H/*块B2*/BLK_B0:ORIGIN=200H,LENGTH=100H/*块B0,如果CNF=0,则分配为片内ARAM*/BLK_B1:ORIGIN=300H,LENGTH=100H/*块B1*/SARAM_D: ORIGIN=800H,LENGTH=800H/*如果正确培植SCSR2寄存器,则此为数据空间中的2K SARAM*/PERIPH:ORIGIN=7000H,LENGTH=1000H/*外围寄存器空间*/EX2_DM:
26、ORIGIN=8000H,LENGTH=8000H/*外围数据RAM*/ PAGE 2:/*I/O存储空间*/IO_EX:ORIGIN=0000H,LENGTH=0FFF0H/*外部的I/O映射空间*/IO_IN:ORIGIN=0FFF0H,LENGTH=0FH/*片内的I/O映射空间*/ SECTIONS.reset:VECSPAGE 0/*中断向量表*/.vectors:VECSPAGE 0.pvecs:PVECSPAGE 0.text:PMPAGE 0.cinit:PM PAGE 0.bss:SARAM_DPAGE 1.usect:BLK_B0PAGE 1.data:BLK_B1PAGE
27、 1.stack:SARAM_D PAGE 1五 调试结果及其操作说明5.1 CCS 集成开发环境CCS 提供了配置、建立、调试、跟踪和分析程序的工具,如图所示,它便于实时、嵌入式信号处理程序的编制和测试,能够加速开发进程,提高工作效率。CCS 提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS 支持如下所示的开发周期的所有阶段。CCS的开发过程5.2 CCS 的调试操作1 设置断点。将光标放置在需要设置断点的程序行前,选择DebugBreakpoints,即完成可一个断点的设置。2 CCS 提供 3 种方法复位目标板1) Reset DSP: Debug Reset CPU,初
28、始化所有的寄存器内容并暂停运行中的程序。使用此命令后,要重新装载.out 文件后,再执行程序。2) Restart: Debug Restart ,将 PC 值恢复到当前载入程序的入口地址。3) Go main: Debug Go main ,将程序运行到主程序的入口处暂停。3 CCS 提供 4 种执行操作1) 全速执行: Debug Run ,程序运行直到遇到断点为止。2) 暂停执行: Debug Halt ,程序停止运行。3) 动画执行: Debug Animate,用户反复运行程序,直到遇到断点为止。4) 自由执行: Debug Run Free ,禁止所有断点运行程序。4 CCS 提供
29、 4 种单步执行操作1) 单步进入:Debugstep into,快捷键F8,当调试语句不是基本汇编指令时,此操作进入语句内部。2) 单步执行:Debugstep Over,此命令将函数或子函数当作一条语句执行,不进入内部调试。3) 单步跳出:Debugstep Out,此命令作用为从子程序中跳出4) 执行到光标处:DebugRun to Cursor,快捷键crtl+F10,此命令作用为将程序运行到光标处。5 内存、寄存器与变量的操作1) 查看变量 使用 view Watch Window 命令2) 查看寄存器 使用 view Registers CPU Registers 命令,如图3.4所示。3) 查看内存 使用 view memory 命令六 参考文献1. 刘和平等编著DSP原理及电机控制应用北京航空航天大学出版社2006年11月2. 刘和平等编著TMS320LF240xDSP C语言开发应用北京航空航天大学出版社2003年1月3. 赵世廉编著TMS320x240x DSP原理及应用开发指南北京航空航天大学出版社2007年7月