DSP课设PWM
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一引言与概述_________________________________________________________ 2 1.1 DSP介绍 _______________________________________________________________ 2 1.2DSP的应用:____________________________________________________________ 2 1.3问题描述_______________________________________________________________ 3 1.4 DSP2407简介 ___________________________________________________________ 3 1.5事件管理器的引脚说明___________________________________________________ 4 1.6比较单元_______________________________________________________________ 4 1.7 PWM基本原理__________________________________________________________ 4二系统总体设计与工作原理_____________________________________________ 6 2.1总体设计与分析_________________________________________________________ 6 2.2基本理论_______________________________________________________________ 7三各单元硬件设计及工作原理__________________________________________ 12四软件设计与说明____________________________________________________ 12 4.1程序文件说明__________________________________________________________ 12 4.2主程序(pwm.c) _________________________________________________________ 13 4.3向量表程序(vectors.asm) _________________________________________________ 14 4.4存储器配置(2407CMD.cmd) ______________________________________________ 14五调试结果及其操作说明______________________________________________ 15 5.1 CCS 集成开发环境_____________________________________________________ 15 5.2 CCS 的调试操作_______________________________________________________ 15六参考文献__________________________________________________________ 16
一引言与概述
1.1 DSP介绍
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科
而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。
DSP (digital signal processor)是一种独特的微处理器,是以数字信号
来处理大量信息的器件。
其工作原理是接收模拟信号,转换为0或l的数字信
号。
再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解
译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可
达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界
中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道
的两大特色。
DSP微处理器(芯片)一般具有如下主要特点:
(1)在一个指令周期内可完成一玖乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件1/0支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以熏叠执行。
1.2DSP的应用:
语音处理:语音编码、语音合成、语音识别、语音增强、语音邮件、语音
储存等。
图像/图形:二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。
军事、保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜
索和反搜索等。
仪器仪表:频谱分析、函数发生、数据采集、地震处理等。
自动控制:控制、深空作业、自动驾驶、机器人控制、磁盘控制等。
医疗:助听、超声设备、诊断工具、病人监护、心电图等。
家用电器:数字音响、数字电视、可视电话、音乐合成、音调控制、玩具
与游戏等。
生物医学信号处理举例:
CT:计算机X射线断层摄影装置。
(其中发明头颅CT英国EMI公司的豪斯
菲尔德获诺贝尔奖。
)
CAT:计算机X射线空间重建装置。
出现全身扫描,心脏活动立体图形,脑
肿瘤异物,人体躯干图像重建。
1.3问题描述
输入输出端口(1/0)是DSP芯片内部电路与外部世界交换信息的通道。
输入端
口负责从外界接收检测信号.键盘信号等各种开关量信弓;输出端口负责向外界输送有内部电路产生的处理结果.显示信息,控制命令.驱动信号。
使用中断和定时器延时循环程序,设计DSP的流水灯控制器,在事件管理器中应用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连接进行电平转换、隔离和总
线。
仲裁等先进技术,所以使用极为方便灵活、简洁、并且运行及其稳定。
这
种结构可以充分利用了CPLD的灵活性和功能强大的IP核进行功能更强的系统
应用。
是初学者和从事开发的科研工作者学习2407和CPLD的首选之品。
本
开发板供初学者学习使用,也可作为系统板嵌入到用户的产品供用户进行二次
开发以便缩短产品开发周期。
SHX-DSP2407A开发板是DSP 2407系列产品中的重
要一员。
它的最大优点是直观简单明了,极为适于初学者。
此棋板采用统一的
系统结构、模块结构和机械结构,以多种典型DSP处理器构成的DSP基本系统、
标准总线和相同物理尺寸的DSP嵌入式控制模板,将2407的功能发挥的淋漓尽
致,为学习者提供了强大、有效的学习平台。
用户手册详实易懂,大量源码轻
松上手(分DSP和CPLD两部分),我们为用户提供一个完整的IP核通过CPLD 进行系统资源分配,用户可以根据需要进行裁剪或追加功能。
1.5事件管理器的引脚说明
1.6比较单元
1.7 PWM基本原理
PWM控制基本原理
PWM (Pulse Width Modulation)就是脉宽调制技术—矩形脉冲波形,可理解为占空比可调的方波。
即通过对一系列脉冲的宽度进行调制,来等效地获得所需要的波形(含形状和幅值)。
也就是说PWM信号(脉宽调制信号)是脉冲宽度根据某一寄存器内的值的变化而变化的脉冲序列;宽度是根据预定值来决定和调制的。
1.PWM信号产生
用一定时器重复产生与PWM 周期相同的计数周期,一个比较寄存器保持着调制值,在相应的输出上会产生一个转换。
输出脉冲的开关时间会与比较寄存器的值成比例。
2. 死区
在许多的运动/电机控制和功率电子应用场合中,两个功率器件(上级和下级)被串联在一个功率支路中,为避免击穿失效,在一个三极管的关断和另一个三极管导通之间经常要插入一个死区,这段时间延迟允许一个三极管在别的三极管导通之前完全关断。
PWM 的基本思想
所以据面积等效原理,正弦波等效为下图中所示的PWM 波。
窄脉冲的面积
环节的输出响应波形基本相同 图6-1 形状不同而冲量相同的各种窄脉d)单位脉冲函数
t t a)矩形脉冲 b)三角形脉冲 c)正弦半波脉冲
(f 重要理论基础——面积等效原理
二系统总体设计与工作原理
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为当前定时器每计数一次所需时间。
2)T1CNT为连续增减计数产生对称的PWM波。
周期为2T1PR/tclk.
为了产生一个PWM信号,DSP的定时器定时周期应该和PWM的周期相等。
另外需要对DSP的EVA/EVB模块中的比较单元的比较寄存器设定数值,这样该数值一直与定时器的计数器值相比较,按照一定的比较方式,PWM即产生跳变。
通过此种方式,DSP的PWM管脚就会产生一个宽度与比较寄存器数值成比例的脉冲信号。
在定时器重复定时的过程中就产生了PWM信号。
使用DSP比较单元产生PWM波形不需要硬件连接图,只需对DPS的相关寄存器进行配置就可以在输出端得到相应的PWM波形,其具体操作过程如下:
1.设置比较方式控制寄存器ACTRx
2.如有必要,使能死区功能,配置死区控制寄存器DBTCONx
3.对比较寄存器CMPRx赋值
4.设置定时器寄存器T1CON(T3CON)并启动定时
5.通过更新CMPRx的数值改变PWM占空比的大小2.2工作原理
EV模块中的每个比较单元均可产生非对称和对称的PWM波形。
另外这三个比较单元一起可产生三相对称空间向量PWM输出。
用GP定时器产生PWM 输出已介绍,下面仅介绍用比较单元产生PWM。
(1)非对称PWM波形产生
用一个比较单元产生一个非对称的PWM波形。
见下图。
GP定时器1必须
设置为连续递增计数模式,其周期寄存器必须载入一个与所需的PWM载波周
期相对应的值。
(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系列的大多数都可以用来实现其他功能。
数字I/O端口模块采用了一种灵活的方法,以控制专用I/O和复用I/O引脚的功能,所有I/O和复用引脚的功能可以通过9个16位控制寄存器来设置,这些寄存器可以分为两类:
●I/O口复用控制寄存器(MCRx):用来控制选择I/O引脚作为基本功能或一般I/O引脚
功能。
●数据和方向控制寄存器(PxDATDIR):当I/O引脚作为一般I/O引脚功能时,用数据和
方向控制寄存器可控制数据和I/O引脚的数据方向,这些寄存器直接和I/O引脚相连。
(2)数字I/O端口寄存器
图1给出了TMS320LF2407系列I/O端口复用引脚配置简图,从图上可以看出一些寄存器单元的配置对应于实际I/O引脚的内部结构之间的联系。
图1 复用引脚配置图
表1中所列的是数字I/O模块可用的寄存器单元,和其他240xA外设一样,这些寄存器被存储器映射到数据空间,地址从7090h到709Fh。
寄存器单元中保留的位所是无效的,读时为0,写对它无影响。
复用控制寄存器B(MCRB),I/O口复用控制寄存器C(MCRC),其中表2是I/O口复用控制寄存器A(MCRA)的配置,对寄存器的每个位的值做了详细的描述;表3是I/O口复用控制寄存器B(MCRB)的配置,对寄存器的每个位的值做了详细的描述。
表4是I/O口复用控制寄存器C(MCRC)的配置,对寄存器的每个位的值做了详细的描述。
●I/O口复用控制寄存器A(MCRA)—地址7090h
注:R=可读,W=可写,_0=复位后的值
表2 I/O口复用控制寄存器A(MCRA)的配置
●I/O口复用控制寄存器B(MCRB——地址7092h)
注:R=可读,W=可写,_0=复位后的值
表3 I/O口复用控制寄存器B(MCRB)的配置
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引脚的数据方向。
这些寄存器直接和双向I/O引脚相连。
当I/O用作基本功能时,这些寄存器的设置对相应的引脚无影响。
●端口A数据和方向控制寄存器A(PADATADIR)—地址7098h
注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值
●端口B数据和方向控制寄存器(PBDATDIR)——地址709Ah
注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值
●端口C数据和方向控制键寄存器(PCDATDIR)——地址709Ch
注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值
●端口D数据和方向控制键寄存器(PDDATDIR)——地址709Eh
注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值
●端口E数据和方向控制键寄存器(PEDATDIR)——地址7094h
注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值
●端口F数据和方向控制键寄存器(PFDATDIR)——地址7096h
注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值
三各单元硬件设计及工作原理
事件管理器A和B的引脚描述
四软件设计与说明
4.1程序文件说明
程序主要文件:
(1) vectors.asm: 包含了LF2407中断矢量的文件,中断向量表文件。
(2) pwm.c: 这是实验的主程序C源文件,包含了系统的初始化及对片外扩展的高
32K数据控件的操作。
(3) 2407CMD.cmd: DSP 的链接文件,声明了系统的存贮器配置与程序各段的连接
关系,它的主要功能是将DSP 的每段的程序链接到相应的DSP 的存贮区中。
(4) rts2xx.lib 是一个库文件,主要包含了有关C 的运行环境与相应的函数的代码。
4.2主程序(pwm.c)
// 该程序利用EVB模块的PWM7--PWM12引脚产生不同占空比的方波
#include "register.h"
void inline disable() // 屏蔽中断程序
{ asm(" setc INTM");
}
int initial() // 系统初始化子程序
{ asm(" setc SXM"); // 符号位扩展有效
asm(" clrcOVM"); // 累加器中结果正常溢出
asm(" clrcCNF"); // B0被配置为数据存储空间
*SCSR1=0x80FE; // CLKIN=10M,CLKOUT=4*CLKIN=40M
*WDCR=0x0E8; // 不使能看门狗,因为SCSR2中的WDOVERRIDE
// 即WD保护位复位后的缺省值为1,故可以
// 用软件禁止看门狗
*IMR=0x0000; // 禁止所有中断
*IFR=0x0FFFF; // 清除全部中断标志,"写1清0"
WSGR=0X0FFFF; // 禁止所有的等待状态
}
int pwminitial() // EVB模块的PWM初始化程序
{ *MCRC=*MCRC|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为连续增计数模式
}
void interrupt nothing() // 该中断服务程序是为了防止干扰,不做任何其它操作{ return; // 中断直接返回
}
main( ) // 主程序
{ disable(); // 总中断禁止
initial(); // 系统初始化
pwminitial(); // PWM输出初始化
*T3CON=*T3CON|0x0040; // 启动定时器3
while(1) { ; }
}
4.3向量表程序(vectors.asm)
.ref _nothing ;直接返回的中断服务程序符号
.ref _c_int0 ;复位向量符号
.sect ".vectors"
RSVECT B _c_int0 ; PM 0 复位向量 1
INT1 B _nothing ; PM 2 中断优先级1 4
INT2 B _nothing ; PM 4 中断优先级2 5
INT3 B _nothing ; PM 6 中断优先级3 6
INT4 B _nothing ; PM 8 中断优先级4 7
INT5 B _nothing ; PM A 中断优先级5 8
INT6 B _nothing ; PM C 中断优先级6 9
4.4存储器配置(2407CMD.cmd)
-w
-stack 200
-heap 200
-l rts2xx.lib
MEMORY
{ PAGE 0:
VECS: ORIGIN=00000H,LENGTH=00040H /*中断向量存贮空间*/
PVECS: ORIGIN=00044H,LENGTH=00100H /*外围中断向量*/
PM: ORIGIN=00150H,LENGTH=07EAFH /*片内flash存储空间*/ 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: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: >VECS PAGE 0 /*中断向量表*/
.vectors: >VECS PAGE 0
.pvecs: >PVECS PAGE 0
.text: >PM PAGE 0
.cinit: >PM PAGE 0
.bss: >SARAM_D PAGE 1
.usect: >BLK_B0 PAGE 1
.data: >BLK_B1 PAGE 1
.stack: >SARAM_D PAGE 1
}
五调试结果及其操作说明
5.1 CCS 集成开发环境
CCS 提供了配置、建立、调试、跟踪和分析程序的工具,如图所示,它便于实时、嵌入式信号处理程序的编制和测试,能够加速开发进程,提高工作效率。
CCS 提供了基本的代码生成工具,它们具有一系列的调试、分析能力。
CCS 支持如下所示的开发周期的所有阶段。
CCS的开发过程
5.2 CCS 的调试操作
1.设置断点。
将光标放置在需要设置断点的程序行前,选择Debug→Breakpoints,即完成可一个断点的设置。
2.CCS 提供3 种方法复位目标板
1) Reset DSP:Debug →Reset CPU,初始化所有的寄存器内容并暂停运行中的程序。
使用此命令后,要重新装载.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 提供4 种单步执行操作
1) 单步进入:Debug→step into,快捷键F8,当调试语句不是基本汇编指令时,此操作进入语句内部。
2) 单步执行:Debug→step Over,此命令将函数或子函数当作一条语句执行,不进入内部调试。
3) 单步跳出:Debug→step Out,此命令作用为从子程序中跳出
4) 执行到光标处:Debug→Run 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月。