DSP课设PWM.docx

上传人:b****5 文档编号:11782163 上传时间:2023-04-01 格式:DOCX 页数:21 大小:729.89KB
下载 相关 举报
DSP课设PWM.docx_第1页
第1页 / 共21页
DSP课设PWM.docx_第2页
第2页 / 共21页
DSP课设PWM.docx_第3页
第3页 / 共21页
DSP课设PWM.docx_第4页
第4页 / 共21页
DSP课设PWM.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

DSP课设PWM.docx

《DSP课设PWM.docx》由会员分享,可在线阅读,更多相关《DSP课设PWM.docx(21页珍藏版)》请在冰豆网上搜索。

DSP课设PWM.docx

DSP课设PWM

一引言与概述

1.1DSP介绍

数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科

而又广泛应用于许多领域的新兴学科。

20世纪60年代以来,随着计算机和信息技术

的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

数字信号处理是一种通

过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列

表示。

在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应

用。

德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。

DSP(digitalsignalprocessor)是一种独特的微处理器,是以数字信号

来处理大量信息的器件。

其工作原理是接收模拟信号,转换为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.4DSP2407简介

2407开发板分为TI2000-011DSP2407增强型、DSP2407+CPLD开发板、

SHX-DSP2407A开发板。

引DSP2407+CPLD开发板套件是一套基TMS320LF2407A+EPM240

的DSP+CPLD的学习开发平台,充分发挥DSP2407和ALTERAMAXII的灵活性和功能强

大,用户手册详实易懂,大量源码轻松上手(分DSP和CPLD两部分),我们为用户提

供一个完整的IP核通过CPLD进行系统资源分配,用户可以根据需要进行裁剪或追加

功能。

由于我们的外设都是通过CPLD连接与DSP连接进行电平转换、隔离和总

线。

仲裁等先进技术,所以使用极为方便灵活、简洁、并且运行及其稳定。

种结构可以充分利用了CPLD的灵活性和功能强大的IP核进行功能更强的系统

应用。

是初学者和从事开发的科研工作者学习2407和CPLD的首选之品。

开发板供初学者学习使用,也可作为系统板嵌入到用户的产品供用户进行二次

开发以便缩短产品开发周期。

SHX-DSP2407A开发板是DSP2407系列产品中的重

要一员。

它的最大优点是直观简单明了,极为适于初学者。

此棋板采用统一的

系统结构、模块结构和机械结构,以多种典型DSP处理器构成的DSP基本系统、

标准总线和相同物理尺寸的DSP嵌入式控制模板,将2407的功能发挥的淋漓尽

致,为学习者提供了强大、有效的学习平台。

用户手册详实易懂,大量源码轻

松上手(分DSP和CPLD两部分),我们为用户提供一个完整的IP核通过CPLD

进行系统资源分配,用户可以根据需要进行裁剪或追加功能。

1.5事件管理器的引脚说明

1.6比较单元

1.7PWM基本原理

ØPWM控制基本原理

PWM(PulseWidthModulation)就是脉宽调制技术—矩形脉冲波形,可理解为占空比可调的方波。

即通过对一系列脉冲的宽度进行调制,来等效地获得所需要的波形(含形状和幅值)。

也就是说PWM信号(脉宽调制信号)是脉冲宽度根据某一寄存器内的值的变化而变化的脉冲序列;宽度是根据预定值来决定和调制的。

1.PWM信号产生

用一定时器重复产生与PWM周期相同的计数周期,一个比较寄存器保持着调制值,在相应的输出上会产生一个转换。

输出脉冲的开关时间会与比较寄存器的值成比例。

2.死区

在许多的运动/电机控制和功率电子应用场合中,两个功率器件(上级和下级)被串联在一个功率支路中,为避免击穿失效,在一个三极管的关断和另一个三极管导通之间经常要插入一个死区,这段时间延迟允许一个三极管在别的三极管导通之前完全关断。

ØPWM的基本思想

所以据面积等效原理,正弦波等效为下图中所示的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为当前定时器每计数一次所需时间。

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,写对它无影响。

表1数字数字I/O模块控制寄存器地址

地址

存储寄存器

说明

7090h

MCRA

I/O复用控制寄存器A

7092h

MCRB

I/O复用控制寄存器B

7094h

MCRC

I/O复用控制寄存器C

7098h

PADATDIR

I/O端口A数据和方向寄存器

709Ah

PBDATDIR

I/O端口B数据和方向寄存器

709Ch

PCDATDIR

I/O端口C数据和方向寄存器

709Eh

PDDATAIR

I/O端口D数据和方向寄存器

7095h

PEDATAIR

I/O端口E数据和方向寄存器

7096h

PEDATDIR

I/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)的配置,对寄存器的每个位的值做了详细的描述。

●I/O口复用控制寄存器A(MCRA)—地址7090h

注:

R=可读,W=可写,_0=复位后的值

表2I/O口复用控制寄存器A(MCRA)的配置

●I/O口复用控制寄存器B(MCRB——地址7092h)

注:

R=可读,W=可写,_0=复位后的值

表3I/O口复用控制寄存器B(MCRB)的配置

●I/O口复用控制寄存器C(MCRC——地址7094h)

注:

R=可读,W=可写,_0=复位后的值

表4I/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"

voidinlinedisable()//屏蔽中断程序

{asm("setcINTM");

}

intinitial()//系统初始化子程序

{asm("setcSXM");//符号位扩展有效

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;//禁止所有的等待状态

}

intpwminitial()//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为连续增计数模式

}

voidinterruptnothing()//该中断服务程序是为了防止干扰,不做任何其它操作

{return;//中断直接返回

}

main()//主程序

{disable();//总中断禁止

initial();//系统初始化

pwminitial();//PWM输出初始化

*T3CON=*T3CON|0x0040;//启动定时器3

while

(1){;}

}

4.3向量表程序(vectors.asm)

.ref_nothing;直接返回的中断服务程序符号

.ref_c_int0;复位向量符号

.sect".vectors"

RSVECTB_c_int0;PM0复位向量1

INT1B_nothing;PM2中断优先级14

INT2B_nothing;PM4中断优先级25

INT3B_nothing;PM6中断优先级36

INT4B_nothing;PM8中断优先级47

INT5B_nothing;PMA中断优先级58

INT6B_nothing;PMC中断优先级69

4.4存储器配置(2407CMD.cmd)

-w

-stack200

-heap200

-lrts2xx.lib

MEMORY

{PAGE0:

VECS:

ORIGIN=00000H,LENGTH=00040H/*中断向量存贮空间*/

PVECS:

ORIGIN=00044H,LENGTH=00100H/*外围中断向量*/

PM:

ORIGIN=00150H,LENGTH=07EAFH/*片内flash存储空间*/

PAGE1:

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寄存器,

则此为数据空间中的2KSARAM*/

PERIPH:

ORIGIN=7000H,LENGTH=1000H/*外围寄存器空间*/

EX2_DM:

ORIGIN=8000H,LENGTH=8000H/*外围数据RAM*/

PAGE2:

/*I/O存储空间*/

IO_EX:

ORIGIN=0000H,LENGTH=0FFF0H/*外部的I/O映射空间*/

IO_IN:

ORIGIN=0FFF0H,LENGTH=0FH/*片内的I/O映射空间*/

}

SECTIONS

{.reset:

>VECSPAGE0/*中断向量表*/

.vectors:

>VECSPAGE0

.pvecs:

>PVECSPAGE0

.text:

>PMPAGE0

.cinit:

>PMPAGE0

.bss:

>SARAM_DPAGE1

.usect:

>BLK_B0PAGE1

.data:

>BLK_B1PAGE1

.stack:

>SARAM_DPAGE1

}

五调试结果及其操作说明

5.1CCS集成开发环境

CCS提供了配置、建立、调试、跟踪和分析程序的工具,如图所示,它便于实时、嵌入式信号处理程序的编制和测试,能够加速开发进程,提高工作效率。

CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。

CCS支持如下所示的开发周期的所有阶段。

CCS的开发过程

5.2CCS的调试操作

1.设置断点。

将光标放置在需要设置断点的程序行前,选择Debug→Breakpoints,即完成可一个断点的设置。

2.CCS提供3种方法复位目标板

1)ResetDSP:

Debug→ResetCPU,初始化所有的寄存器内容并暂停运行中的程序。

使用此命令后,要重新装载.out文件后,再执行程序。

2)Restart:

Debug→Restart,将PC值恢复到当前载入程序的入口地址。

3)Gomain:

Debug→Gomain,将程序运行到主程序的入口处暂停。

3.CCS提供4种执行操作

1)全速执行:

Debug→Run,程序运行直到遇到断点为止。

2)暂停执行:

Debug→Halt,程序停止运行。

3)动画执行:

Debug→Animate,用户反复运行程序,直到遇到断点为止。

4)自由执行:

Debug→RunFree,禁止所有断点运行程序。

4.CCS提供4种单步执行操作

1)单步进入:

Debug→stepinto,快捷键F8,当调试语句不是基本汇编指令时,此操作进入语句内部。

2)单步执行:

Debug→stepOver,此命令将函数或子函数当作一条语句执行,不进入内部调试。

3)单步跳出:

Debug→stepOut,此命令作用为从子程序中跳出

4)执行到光标处:

Debug→RuntoCursor,快捷键crtl+F10,此命令作用为将程序运行到光标处。

5.内存、寄存器与变量的操作

1)查看变量使用view→WatchWindow命令

2)查看寄存器使用view→Registers→CPURegisters命令,如图3.4所示。

3)查看内存使用view→memory命令

六参考文献

1.刘和平等编著《DSP原理及电机控制应用》北京航空航天大学

出版社2006年11月

2.刘和平等编著《TMS320LF240xDSPC语言开发应用》北京航空航天大学

出版社2003年1月

3.赵世廉编著《TMS320x240xDSP原理及应用开发指南》北京航空航天大学

出版社2007年7月

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1