基于DSP的PWM波

更新时间:2024-03-22 19:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于DSP的PWM波形发生器设计

学生姓名: 学生学号:

专 业:

二〇一五年十月

摘 要

PWM波形发生器在20世纪70年代有了飞速的发展,20世纪80年代,PWM波形发生器已应用到各个工程技术领域,例如在工业控制中可以用它来控制各种电机、电力电子设备、逆变器等,它不管在军用还是在民用系统中都发挥了积极的作用。

本文首先对PWM波形发生器的基本原理和目前国内外的发展状况做了简单介绍,然后介绍了基于DSP的应用系统的开发流程,并对DSP的相关知识做了全面介绍,最后针对目前波形发生器的发展状况和实际生活中的应用,提出了基于DSP的PWM波形发生器的设计方法。

论文完成了基本的硬件电路设计和软件算法设计。硬件设计方面,基于DSP芯片的相关特点,采用了DSP的LF2407芯片来完成本课题的硬件电路设计。软件算法方面,根据要求采用了汇编语言进行程序设计,并给出了相关的源程序以及调试过程,最后对本设计的可行性和性能误差进行了分析。

关键词 波形发生器,LF2407芯片,PWM,DSP

目 录

摘 要 .......................................................................................................................................... ...Ⅰ 1 绪论 ............................................................................................................................................. 1

1.1 引言 .................................................................................................................................. 1 1.2 课题背景 .......................................................................................................................... 1 1.2.1课题的研究目的和意义 ........................................................................................ 3

1.2.2 本文的主要研究内容 ........................................................................................... 3

2 DSP开发流程 ............................................................................................................................ 4

2.1 DSP简介 ........................................................................................................................... 4 2.2 DSP开发方案的设计与选择 ........................................................................................... 5 2.3 DSP系统设计开发流程 ................................................................................................... 7 2.4 DSP处理器软、硬件开发工具简介................................................................................ 9

3 PWM波形发生器的设计方法 .............................................................................................. 13

3.1 常见的设计方法简介..................................................................................................... 13 3.2 本文所采用的设计方法................................................................................................. 15

4 PWM波形发生器的硬件设计 .............................................................................................. 17

4.1 PWM波形发生器硬件结构 ............................................................................................. 17

4.1.1 PWM波形产生原理 .............................................................................................. 17 4.1.2 TMS320LF2407的介绍 ........................................................................................ 17 4.1.3 系统硬件组成 ..................................................................................................... 18 4.2 PWM波形产生器的DSP电路设计.................................................................................. 20

5 PWM波形发生器的软件设计 .............................................................................................. 22

5.1 主程序流程图................................................................................................................. 22 5.2 PWM波形产生器的DSP程序设计.................................................................................. 22

参考文献 ...................................................................................................................................... 33

1 绪论

1.1 引言

DSP(即数字信号处理器)自20世纪90年代后半期开始,逐渐成为人们关注的焦点。DSP是将模拟信号变换为数字信号,并进行高速处理的专用处理器,从算法上说,它具有乘法和加法两种特殊运算功能。它主要针对代表连续信号的数字进行数学运算,以得到相应的处理结果。这种数学运算是以快速傅里叶变换(FFT)为基础,对数字信号进行实时处理。目前常见的DSP芯片有TI的TMS320系列,ADI公司的ADSP2100系列,Lucent的16000系列,Motorola公司的DSP 56602和56603系列等。用DSP芯片实现数字信号处理具有很强的通用性和灵活性,因为DSP芯片体积小,运算速度极快,精度高,接口方便,特别适合处理复杂的数字信号处理算法。DSP将是未来集成电路中发展最快的电子产品,并成为电子产品更新换代的决定因素,它将彻底变革人们的工作、学习和生活方式。本文所阐述的是PWM波形发生器所产生的PWM波形在工业控制中的应用。

1.2 课题背景

随着电子产业的飞速发展,DSP(数字信号处理器)将越来越广泛的运用在我们的日常生活中,尤其是在通信领域,DSP更是一种不可缺少的工具。而DSP在工业中也得到了广泛的应用,其中基于DSP的PWM波形发生器在工业控制中尤为常见,可以用它来控制各种电机、电力电子设备、逆变器等。

1.2.1课题的研究目的和意义

各种波形发生器已广泛应用于我们的日常生活中,无论是民用还是军用,它的出现都各给人们带来了方便。其中PWM波形发生器的应用更为广泛,据日本电气协会1992年发表的一项关于PWM波形发生器的调查报告表明,到2001年,PWM波形发生器的需求平均年增长率为12.7%,其中通信领域的需求增长率超过15%,全球PWM波形发生器市场规模从92年的82亿增加到99年的166亿美元,平均年增长率为10%,到03年全球开关电源规模超过288亿美元。因此,普及PWM

3

波形发生器的应用,己经成为电力电子技术中的一个重大课题。同时,为了保证通信领域和工业控制领域的安全经济运行,目前许多工业国家和组织都开始了对PWM波形发生器的深入研究,我国从20世纪以来就开始了对PWM波形发生器的研究,目前,我国在这方面的发展已经取到了许多重大突破。总之,对PWM波形发生器的工程应用研究还有待继续深入。

1.2.2 本文的主要研究内容

本文在进行大量有关PWM波形发生器的文献研究和资料分析的基础上,主要完成以下工作:

(1)首先阅读了大量关于PWM波形发生器的文章,对该系统及其控制系统有了一定的了解。通过对各种PWM波形发生器的工作原理进行比较详细的分析,建立了PWM波形发生器的数学模型,为后面的分析提供了理论基础。

(2)并对DSP的相关概念和DSP芯片的发展与应用做了简单的介绍。 (3)采用DSP的LF2407芯片的通用定时器,设计了系统的硬件电路。 (4)基于软件实现方案,利用汇编和C语言的混合编程,编写了其实现程序,完成了对PWM波形发生器的数字控制。

2 DSP开发流程

2.1 DSP简介

①DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算

1

的微处理器件,其主机应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有以下主要特点: (1)在一个指令周期内可完成一次乘法和一次加法; (2)程序和数据空间分开,可以同时访问指令和数据;

(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持; (5)快速的中断处理和硬件I/O支持;

(6)具有在单周期内操作的多个硬件地址产生器; (7)可以并行执行多个操作;

(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

2.2 DSP开发方案的设计与选择

十多年前,DSP以其高速、低功耗和高集成度在军事、航天等领域大显身手,随着半导体工艺的进步和工业民用领域的大量采用,近几年来,DSP价格大幅下调,而性能却不断提高,以不可阻挡的趋势进入通信、工业控制和消费领域,DSP正日渐成为现代信息产业的重要基石。

从DSP应用范围看,DSP可分为通用DSP和专用DSP两种。其中专用DSP往往是实现信号处理的某些专项功能,实现方式则往往是通用DSP的掩模版本,生产通用DSP的主要厂家有TI公司,AD公司,Motorola, Lucent,其中TI公司著名的TMS320系列占据了国际市场接近一半的市场份额。当我们确定了采用DSP方案以后,首先要做的就是DSP系统的功能需求分析,根据需求选择合适的DSP芯片和相应的开发、仿真工具。

2.2.1 DSP系统的功能需求分析

在确定了某个具体应用以后,我们要做的第一件事就是构造出一个DSP系统功能框图(图略)。DSP系统设计中要考虑如下几个重要方面:

(1)DSP系统处理的模拟带宽。根据这个带宽,选择合适的A/D采样率,A/D采样频率必须服从采样定理。语音信号一般为几kHz到几十kHz,图像信号则可达几MHz;

(2)实时性要求。系统设计中实时性与非实时性对系统要求的差异非常之大;

4

(3)算法的复杂度。为了获得较好的系统处理性能,往往要采用复杂算法,而算法越复杂,对DSP处理器的要求也就越多。有时需要在算法的复杂度和处理速度之间进行折衷;

(4)DSP系统处理精度要求。一般而言,在高精度要求中往往采用专业浮点DSP,其它场合采用定点DSP就足够了。在实际应用中采用块浮点方法能有效提高定点DSP的处理精度;

(5)成本要求。在军事和航天用途中,为了高性能、高可靠性和留有发展余地,往往尽量采用高性能DSP处理器,甚至不计成本。而在工业和消费领域中,为了保持最终产品在市场上的竞争力,往往要寻找性能、价格比最好的产品;

(6)可靠性要求。DSP处理系统所有器件的选择,必须考虑产品的最后应用场合,原则上是星载系统采用宇航级,军事应用采用军品,工业场合选用工业级器件,民用选用商品级即可。最后所选用的器件要考虑是否对应级别;

(7)方便开发和使用。为了方便开发仿真,DSP系统设计师最好选用带JTAG硬件仿真接口的DSP芯片,既能方便开发,又便于此后生产中的测试;

2.2.2 DSP算法的验证与模拟

一个实际的DSP处理系统必然要使用各种算法,要求DSP系统设计者在选择某种算法前就精通各种算法的细节是不现实的。DSP处理系统所选用的算法无非是各种通用算法的组合和改进。革命性的算法不是DSP设计师的任务,DSP系统设计师应尽量选用成熟可靠、经过时间考验的算法,而支持各种通用算法的DSP模拟软件市场上已有不少。我们对其中的一些优秀产品作简单介绍:

(1)SPW工作站:cadence公司产品,含有大量的算法库,对通信系统设计尤其适合。

(2)Matlab工具包:该软件在国内高校中已经开始流行,该软件矢量矩阵处理功能很强,最新版本中信号处理功能大大加强。

(3)Dalisp软件:优秀的信号处理软件包,网上有免费的高校版读者,可自行下载使用。在用如上的工具模拟挑选出了合适的算法组合以后,设计师就可应用高级语言在PC机上进行实际编程验证,设计出DSP的软件处理流程,并给出最终可实现的软件需求分析。

4

2.2.3 DSP开发工具的选择

在选定了DSP器件型号后,则应进行DSP开发工具的选择,DSP必备的开发工具有如下几种:

(1)ASM/LINK;汇编/链接器;

(2)JTAG硬件仿真器,可全透明地访问DSP的所有资源而不占用用户任何资源;

(3)Debugger调试器;

其他选件还有:C编译器、实时操作系统和算法库。

下面以TMs320cZxx/c24x系列为例,介绍国内外DSP开发系统简况。①汇编/链接器:该软件由TI公司的产品提供,型号为TMD32485002。②JTAG硬件仿真器:TI公司型号为XDS510,TI公司正式认证的国内第三方合作伙伴也能提供JTAG硬件仿真器。但用户选择国内产品时,应注意有的仿真器无法与TI公司的XDS510兼容,而北京闻亭等公司的产品却能与XDS510兼容得非常好。兼容意味着用户的很多投资可得到保护。

③Debugger调试软件:与XDS510配合使用,通过该软件能访问用户DSP系统的所有资源。

最新的调试软件应该基于Win95平台,能够图形化,有效地显示存储器的波形和频谱。另外,将C编译、汇编/链接调试集成在一起的集成调试环境是新一代调试软件的必备功能。

2.2.4 DSP系统调试

在选择了合适的DSP开发工具后,设计师就会做具体的硬件设计和软件设计。硬件设计应注意如下要点: ①认真处理好复位和时钟信号。

②在DSP电路中,对所有的输入信号必须有明确的处理,不能悬浮和置之不理。 ③模拟电路和数字电路独立布线,最后单点连接电源和地。软件设计则应严格按照软件工程的方法进行管理。一个实际的DSP系统的调试总要经过多次反复,需要设计者和调试者有足够的耐心,坚强的意志和九死一生的精神。做一个现代设计师非常辛苦,必须不断的纠正自己所犯下的各种设计错误。只有当系统可靠地

6

运行并得到市场和社会承认后,才能松一口气,美美的睡上一觉,然后又充满信心地开始下一轮的设计。

2.3 DSP系统设计开发流程

在设计需求规范,确定设计目标时,其实要解决二个方面的问题:即信号处理方面和非信号处理方面的问题。信号处理的问题包括:输入、输出结果特性的分析,DSP算法的确定,以及按要求对确定的性能指标在通用机上用高级语言编程仿真。非信号处理问题包括:应用环境、设备的可靠性指标,设备的可维护性,功耗、体积重量、成本、性能价格比等项目。算法研究与仿真这是DSP实际应用系统设计中重要的一步。系统性能指标能否实现,以及何种算法和结构能够满足需求,这些都是在这一步考虑的。这种仿真是在通用机上用高级语言编程实现的,编程时最好能模仿DSP处理器形式运行,以达到更好的真实性。

在DSP芯片选择中通常有以下几条注意事项:

(1)精度:表数格式(定点或浮点),通常可以用定点器件解决的问题,尽量用定点器件,因为它经济、速度快、成本低,功耗小。但是在编程时要关注信号的动态范围,在代码中增加限制信号动态范围的定标运算。

(2)字长的选择:一般浮点DSP芯片都用32位的数据字,大多数定点DSP芯片是16位数据字。而MOTOROLA公司定点芯片用24位数据字,以便在定点和浮点精度之间取得折中。字长大小是影响成本的重要因素,它影响芯片的大小、引脚数以及存储器的大小,设计时在满足性能指标的条件下,尽可能选用最小的数据字。

(3)存储器安排:包括存储器的大小,片内存储器的数量,总线寻址空间等。片内存储器的大小决定了芯片运行速度和成本,例如TI公司同一系列的DSP芯片,不同种类芯片存储器的配置等硬件资源各不相同。

6

2.4 DSP处理器的软、硬件开发工具简介

随着DSP处理器的功能不断强化和系统开发周期不断缩短,设计和调试DSP系统越来越依赖于DSP开发系统和开发工具,图2-2为DSP处理器开发流程图。虽然厂家不同,但提供的开发调试工具大致类同,一般有下列几种: (1)C语言编译器(C Compiler)

一般厂家为了开发DSP系统方便、减小编写汇编程序的难度,都提供了高级语言设计方法:一般是C语言。开发系统针对DSP库函数、头文件及编写的C 程序,自动生成对应的汇编语言,这一步称为C编译。C编译器通常符合ANSI C标准,可以对编写的程序进行不同等级的优化,以产生高效的汇编代码;C编译器还具有对存储器的配置、分配及部分链接功能,并具有灵活的汇编语言接口等多种功能。C编程方法易学易用,但编译出的汇编程序比手工汇编程序长得多,因而效率一般只有20%~40%。为了克服C编译器低效率,在提供标准C库函数同时,开发系统也提供了许多针对DSP运算的高效库函数,例如FFT、FIR、IIR、相关、矩阵运算等,它们都是手工汇编的。

10

44字的双口RAM(DARAM)和2K字的单口RAM(SARAM);而本系统的程序仅有几Kb,且所用RAM也不多,因此不用考虑存储器的扩展问题,而对于TMS320LF2407的I/O扩展问题,由于TMS320LF2407器件有多达40个通用、双向的数字I/O(GPIO)引脚,且其中大多数的基本功能和一般I/O复用的引脚,而实际上,本系统只需要17路I/O信号,这样,就可以为系统剩余50%多的I/O资源,因此可以说该方案既不算浪费系统资源,也为系统今后的升级留有余地。 (2)输出D/A通道部分

本系统的输出通道部分主要负责实现波形的输出,此通道的入口为TMS320LF2407的PWM8口,可输出SPWM等幅脉冲波形,出口为系统的输出端,这样,经过一系列的中间环节,便可将PWM脉冲波转化为交流正弦波形,从而实现正弦波的输出。

图4-2中的缓冲电路的作用是对PWM口输出的数字量进行缓冲,并将电压拉高到5V左右,以供后级模拟电路滤波使用。这一部分电路由两个芯片组成。一片用三态缓冲器,由于PWM口的输出为3.3V的TTL电平,这样,在设计时就应当选用输入具有5V的TTL输入,CMOS输出电平的转换芯片(如TI公司的74HCT04);另一片则可选用TOSHIBA公司出品的光电耦合器6N137;输出端连接的5V精密稳压电源可选用BURR-BROWN公司生产的REF02型精密稳压电源,以输出标准的5V电压。

系统中减法电路的主要作用是把0-10V直流脉动信号转换成-5~+5V的正弦交流信号,并使其电压增益为1。设计时可利用差分式电路来实现其功能,为了简化电路,可以选用较为常用的AD公司的AD524,并将AD524接成电压跟随器的形式,同时适当的选取电阻以满足要求,此外,为了使产生的正弦波信号具有2-5mA的驱动能力,可选用AD624来构成末级的信号放大电路。AD624是高精度低噪声放大器,若外接一只增益电阻,即可得到1-1000之间的任意增益值,其误差小于1%。由于AD624的建立时间只有15μs,所以它非常适宜在高速数据采集系统中使用。 (3)驱动器设计

位驱动器电路由两片集成电路组成,即由位驱动的CMOS芯片和将TTL电平转换成CMOS电平的电平转换芯片组成,电平转换芯片可以和输出通道的电平转

19

换芯片共用一片74HCT244(本部分使用4路,输出通道使用3路),其主要作用是对DSP输出的3.3V TTL电平与5V CMOS电平进行匹配,从而带动具有CMOS电平的位驱动器,根据动态扫描显示的要求,位驱动器需要选用每路输出吸收电流都要大于200mA的芯片,因此,本设计选用了TI公司的74LS06来做LED的大电流驱动器件。 (4)键盘设计

本系统选用四个独立式按键,分别接入PF3-PF6口,并使用四个220Ω上拉电阻接VCC。所谓独立式,就是将每一个独立键按一对一地直接接到I/O输入线上,而在读键值时,直接读I/O口,每一个键的状态通过读入键值的一位(二进制位)来反应,所以这种方式也称为一维直读方式,这种方式的查键软件比较简单,但占用I/O线较多,一般在键的数量较少时采用,不过,由于DSP芯片有足够的I/O接口可供使用,因而可大大方便设计,设计时可以充分利用这一特点来连接硬件,至于按键的削抖动措施,则可在软件中完成。

4.2 PWM波形发生器的DSP电路设计

基于LF2407的采用通用定时器GPT1产生PWM波形的电路原理如图4-3所示。从图4-3中可以看出,在DSPLF2407的16引脚(T1PWM/T1CMP/IOPB4)输出一个PWM波,其载波由通用定时器的周期寄存器控制,其有效的PWM脉宽由通用定时器的比较寄存器控制。LF2407的地Vss(CPU核的地)和Vsso(I/O端口和缓冲器的地)要正确接地,这是保证DSP正常工作的前提。DSP的时钟由石英晶体提拱,一定要保证DSP时钟的正确性,它是输出PWM波的前提。

19

图4-3 采用通用定时器GPT1产生PWM波形的电路

基于LF2407的采用脉宽调制电路产生PWM波形的电路如图4-4所示。

图4-4 采用脉宽调制电路产生PWM波形的电路

从图4-4中可以看出,DSP LF2407的脉宽调制电路的输出端(PWM7—PWM12)一共产生了3组(6个)PWM波,它是由通用定时器GPT3控制的,在每一对PWM波输出中都可采用死区控制,并且其极性也是受控制的,在线调节十分方便。在DSP的CPU和通用定时器初始化后,在没有CPU管理的情况下,LF2407的脉宽调

21

制电路的输出端将输出实时正确的波形。

5 PWM波形发生器的软件设计

5.1主程序流程图

脉冲发生器的核心元件是一片TMS320C32的数字信号处理器。脉冲发生就是通过对这个器件的编程来实现的。在软件中,首先初始化DSP,扩展脉冲波形数据,再由扩展后得到的数据生成地址表。发脉冲时,根据控制器所给的调制比m 查询地址表,得到对应于特定m 的脉冲加载角度和状态字节的地址,最后在中断服程序中计算加载时间并输出脉冲状态,主程序流程如图5-1所示。

开始 DSP初始化 调入脉冲数据并扩展,生成地址表 接收第一个m和f,输出第一个脉冲状态字节 定时器中断和全局中断使能,启动定时器 循环接收新的m和f,等待中断,以输出脉冲序列

图5-1 主程序流程图

19

5.2 PWM波形发生器的DSP程序设计

采用DSP的LF2407芯片的事件管理器的脉宽调制电路来产生PWM波形,DSP LF2407的两个事件管理器可以产生多达6对(即12个)PWM波形输出,并且这些输出的极性均可在线控制,还带有可编程的死区控制寄存器,能够满足大多数电机控制和电力电子的应用系统.它在通用定时器的比较匹配时也能产生非对称和对称的PWM波的输出。该方法也不占用CPU的资源。

以下程序代码是用通用定时器(GPT1)产生PWM波形发生器的主程序和系统初始化程序,在程序代码后都添加了详细的解释说明。请注意产生PWM波时事件管理模块中各个寄存器的配置方法和配置顺序,特别是定时器的寄存器的配置顺序不能颠倒,否则将无法产生程序所需要的PWM波形。 采用通用定时器(GPT1)产生可在线调整的PWM脉冲波 本程序的文件名:GPT1_pwm_generate.asm

.title “GPT1_pwm_generate.asm” .include “if2407_regs.h” .include “pwm_generate_vec.asm” .def _cy_begin .data

Input_Carrier .word 00h Input_PWM .word 00h .text _cy_begin: NOP

CALL system_init CALL GPT1_PWM_init

22

cy_WAIT: NOP NOP

B cy_WAIT System_init:

SETC INTM CLRC OVM CLRC SXM CLRC CNF LDP #DP_PF1 SPLK #081FEH,SCSR1 SPLK #0E8h, WDCR LDP #0 SPLK #0002h,IMR SPLK #0FFFFh,IFR RET GPT1_PWM_init:

LDP #DP_PF2 LACL MCRA OR #1000H SACL MCRA LDP #DP_EVA SPLK #0FFFFH,EVAIFRA SPLK #0FFFFH,EVAIFRB SPLK

SPLK #0042H,GPTCONA

SPLK #0, T1CNT

SPLK

#0FFFFH,EVAIFRC

#375, T1PR

24

SPLK

SPLK SPLK

SPLK SPLK

#187, T1CMPR

#0100H, EVAIMRA #0000H, EVAIMRB #0000H, EVAIMRC #0C46H, T1CON

CLRC INTM RET GISR2:

LDP #DP_PF1 LACC PIVR, 1 ADD #PVECTORS BACC TICINT_ISR:

LDP #6

LACL Input_Carrier LDP #DP_EVA SACL T1PR LDP #6 LACL Input_PWM LDP #DP_EVA SACL T1CMPR

CLRC INTM RET

PHANTOM:

LDP #DP_PF1

SPLK #05555h, WDKEY

26

SPLK #0AAAAh, WDKEY RET .end

以下程序代码是采用LF2407的脉宽调制电路产生PWM波形的主程序和系统初始化程序。该程序在DSP的输出端(PWM7~PWM12)一共产生了3组(6个)PWM波,它是由通用定时器GPT3控制的,在每一对PWM波输出中都可采用死区控制,并且其极性也是受控制的,程序如下:

采用脉宽调制电路来产生可在线调整的并带死区控制的PWM脉冲波 本程序的文件名:PWM_pwm_generate.asm .title “PWM__pwm_generate.asm” .include “If2407_regs.h”

.include “pwm_ generate_vec.asm” .def _cy_begin Input_Carrier .word 00h Input_PWM_7_8 .word 00h Input_PWM_9_10 .word 00h Input_PWM_11_12 .word 00h Input_DeadBand .word 00h .text _cy_begin NOP

CALL system_init CALL PWM_PWM_init cy_WAIT: NOP NOP

B cy_WAIT System_init:

SETC INTM

27

CLRC OVM CLRC SXM CLRC CNF LDP #DP_PF1

SPLK #081FEh, SCSR1 SPLK #0E8h, WDC R LDP # 0 SPLK #0002h, IMR SPLK #0FFFFh, IFR RET

PWM_PWM_init:

LDP #DP_PF2 LACL MCRC OR #007Eh SACL MCRC LDP #DP_EVB

SPLK #0FFFFh, EVBIFRA SPLK #0FFFFh, EVBIFRB SPLK #0FFFFh, EVBIFRC SPLK

SPLK #0F94h, DBTCONB

SPLK #1200, CMPR4 SPLK #750, CMPR5 SPLK

SPLK

#0666h, ACTRB

#300, CMPR6 #1499, T3PR

27

SPLK #0A600h, COMCONB SPLK #0, T3CNT SPLK #41h, GPTCONB SPLK SPLK SPLK SPLK

#0080h, EVBIMRA #0000h, EVBIMRB #0000h, EVBIMRC #144Eh, T3CON

CLRC INTM RET

GISR2:

LDP #DP_PF1 LACC PIVR, 1 ADD #PVECTORS BACC T3GB_ISR:

LDP #6

LACL Input_Carrier LDP #DP_EVB SACL T3PR LDP #6

LACL Input_PWM_7_8 LDP #DP_EVB SACL CMPR4 LDP #6

LACL Input_PWM_9_10 LDP #DP_EVB SACL CMPR5

27

LDP #6

LACL Input_PWM_11_12

LDP #DP_EVB SACL CMPR6

CLRC INTM RET

PHAB\\NTOM:

LDP#DP_PF1

SPLK#05555h, WDKEY SPLK#0AAAAh, WDKEY RET .end

以下程序代码是本实例程序的系统配置命令文件,该文件实现对程序存储空间和数据存储空间的分配,从该配置文件中可以看到本实例的存储器空间和配置方法。 -stack 40 MEMORY {

PAGE0:

VECS: origin=0000h, length=0040h PVECS: origin=0044h, length=0100h PM: origin=0150h, length=7EB0h PAGE1:

BLOCK_B2: origin=0060h, length=0020h BLOCK_B0: origin=0200h, length=0100h BLOCK_B1: origin=0300h, length=0100h SARM:

origin=0800h, length=0800h

28

EX_DM: origin=8000h, length=8000h } SECTIONS {

.vectors: {}>VECS PAGE 0 .pvecs: {}>PVECS PAGE0 .text: {}>PM PAGE0 .data : {}>BLOCK_B1 PAGE1 }

5.2.2程序说明及仿真结果

(1)对于一个实际的DSP系统来说,系统的中断管理是不可缺少的,因为目前任何DSP实时系统都有中断,中断是DSP系统和外部世界发生实时联系的一个重要手段。作为TI公司的C2000系列DSP,它是偏向于控制的DSP芯片,因此它的中断管理更丰富和先进,读者理解起来也比较困难。LF2407支持6个一级可屏蔽中断,采用集中化的中断扩展设计来满足大量的外设中断请求,所以每一级中断又有多个中断源,例如一级中断INT2包含的中断源有比较器1、2、3、4、5、6中断,定时器1、3的周期、比较、下溢、上溢中断等。为了正确地响应外设中断,应该分两步来完成中断服务子程序。在本例的程序GPT1_pwm_generate.asm中,采用通用定时器1的比较器中断来产生PWM波,当CPU响应该中断时,首先转移到一级中断INT2中,也即GISR2处执行,在一级中断INT2中读取外设中断向量寄存器(PIVR)的值,它是个偏移量,再加上中断子向量的首地址,程序就可以转移到二级中断子向量T1CINT_ISR(定时器1比较中断)子程序中,执行相应的操作后即完成了一次中断调用。

(2)LF2407通过外设中断扩展控制器(PIE)来实现集中化的中断扩展管理,这可以实现在占用及少资源情况下,大大扩展可用的中断源。因此在实际的DSP程序中,中断向量表和中断子向量表程序是不可缺少的,读者在自行编程序时一定要在主程序中用.include汇编伪指令把本实例介绍的向量表文件pwm_generate_vec.asm包括进来。

28

(3)假中断向量LF2407的一个特有的概要,它是保持中断系统完整性的一个特性。在向量表文件pwm_generate_vec.asm中可以发现,中断子向量表的地址是从00h到42h,而中断源却没有那么多,并且其入口地址又是固定的,所以在中断子向量表的没有中断源的地方就要插入假中断向量以保证中断系统的完整性。当一个中断已经被响应,但却没有 外设将中断向量的地址偏移量装入中断向量寄存器(PIVR)中时,假中断向量的地址就被装入PIVR中。

假中断向量的子程序如下所示,一般都是复位看门狗电路。 B PHANTOM PHANTOM:

LDP#DP _PF1

SPLJK #05555h, WDKEY SPLK #0AAAAh, WDKEY RET

(4)在程序GPT1_pwm_generate.asm中,是采用通用定时器(GPT1)的比较匹配中断来产生可在线调整的PWM脉冲波。每个定时器都有一个相关的比较寄存器TXCMPR和一个PWM输出引脚TXPWM,通用定时器的值总是和相关的比较寄存器的值进行比较,当定时器的计数值和比较寄存器的值相等时,就产生比较匹配中断,可以设置TXCON寄存器的位1为1来使能比较操作。

图5-2 连续增/减计数模式下的定时器的T1PWM/T1CMP引脚

从图5-2中可以看出,在连续增/减模式下,PWM波的载波周期是定时器周

28

期寄存器的2倍,即Tc=2×T1PR×(定标的定时器的时钟周期)。PWM波的有效脉冲宽度,也即由占空比决定的PWM脉宽Tc=(T1PR-T1CMPup+T1PR-T1CMPRdown)×(定标的定时器的时钟周期),其中T1CMPup表示在增计数的比较值,而T1CMPRdown表示在减计数时的比较值,它们都可以在比较匹配中断子程序中设置,在本程序中两者是相等的。

PWM输出分为高有效和低有效,它在寄存器GPTCONA的位[1-0]设置,01表示低有效,10表示高有效,当发生第一次比较匹配时,如果设置的是高有效,则输出为高电平,如果设置的是低有效,则输出为低电平,无效时则反之,具体设置如下:

SPLK #0042H, GPTCONA SPLK #0, T1CNT SPLK #375, T1PR SPLK #187, T1CMPR SPLK #0C46h, T1CON

(6)在程序PWM_pwm_generate.asm中,是采用脉宽调制电路产生可在线调整的并带死区控制的PWM脉冲波。在定时器(GPT3)的控制下,在DSP的6个PWM

输出引脚上输出3组PWM波,每组中的2个PWM波的极性相反,由寄存器CMPR4控制的输出PWM7、8输出的PWM波的占空比是20%;受寄存器CMPR5控制的输出PWM9、10输出的PWM波的占空比是50%;受寄存器CMPR6控制的输出PWM10、11输出的PWM波的占空比是80%,并带有死区控制。但3种PWM载波都是一样的,载波频率是1KHZ,载波周期是1ms。其中PWM7、9、11引脚输出设置为高有效,PWM8、10、12引脚输出设置为低有效,它们是在比较方式控制寄存器B中定义的。

(7)由于本程序采用连续增计数模式,所以输出的PWM波是非对称的PWM波,此时定时器的比较寄存器的值的改变只影响PWM脉冲波的单边。在连续增计数模式下,PWM波的载波周期Tc=(T1PR+1)×(定标的定时器的时钟周期)。PWM波的有效脉冲宽度Tq=(T1PR+1-T1CMPR)×(定标的定时器的时钟周期)。而本程序的输入时钟是6MHZ,经过PLL后的机器时钟是24MHZ,定时器的输入时钟预定标系数是16,因此,(定标的定时器的时钟周期)=16÷24us。

30

(8)死区单元用于保证在任何情况下,每个比较单元相关的两路PWM波输出控制一对正向和负向导通的设备时没有重叠,也即在一个器件还没有完全关断时,另一个器件一定不导通。控制死区单元在许多电机和电力电子设备控制中用得非常广泛,它可以避免发生短路而击穿功率器件,经常用一对无重叠PWM波输出去正确地开启和关断两个功率器件,死区控制程序如下:

SPLK #0666h, ACTRB SPLK #0F49h, DBTCONB

(9)程序PWM_pwm_generate.asm是采用脉宽调制电路产生可在线调整的并带死区控制的6路(3对)PWM脉冲波,它们在DSP引脚PWM7—12上的输出如图5-3所示:

图5-3 连续增计数模式下的PWM7-12引脚的PWM输出

5.2.3 总结

本文介绍了两种在没有CPU参与的情况下,产生连续PWM波的方法及其程序实现。连续的、载波周期和占空比可调的PWM波在实际工业控制场合用得很多,它可以用于控制三相感应电机和直流无刷电机,通过比较方式控制寄存器(ACTRx)和死区控制寄存器的设置,DSPLF2407的PWM输出可以容易地控制应用广泛的开关磁组电机、同步磁组电机、直流有刷电机。

工业控制中对PWM波的要求是准确,而要保证PWM波的准确性,必须对DSP的定时器进行准确的设置,因为PWM波的时基是由定时器产生的。此外,定时器的计数模式也是需要考虑的,采用连续增计数模式将产生一个非对称PWM波,而

30

采用连续增/减计数模式将产生一个对称PWM波。非对称的PWM波的特性由PWM周期中心非对称的调制脉冲决定,每个PWM的脉冲宽度只能从脉冲的一边开始变化,参考上图,对称的PWM波的特性由PWM周期中心对称的调制脉冲决定,对称PWM波比非对称PWM波的优势在于它在一个周期内有两个无效的区段,对称PWM信号比非对称PWM信号引起的谐波失真更小。

结论

本文根据当前各种波形发生器存在的实际问题,提出了基于DSP的PWM波形发生器设计的必要性和紧迫性,分析了当前一些常用波形发生器存在的问题和解决问题的技术难点。简要介绍了PWM波形发生器的基本原理,并结合DSP芯片的特点,分析了它在控制系统中的应用优势,将其应用于日常生活中的各种控制领域。论文取得的成果:

1.完成了PWM波形发生器的硬件电路设计。充分发挥了DSP芯片的数字信号处理优势,在实现系统中的复杂软件算法时,运算速度得到了很大的提高,显著地提高了系统的处理效率,并且使硬件系统具有很高的性能价格比。

2.进行了相关的软件算法设计,实现了其控制功能。系统采用了汇编语言程序设计,并利用CCS软件进行了仿真。在满足实时性要求的情况下,可以实现PWM波形发生器的基本功能。

3.对装置进行了调试和初步的实验,并对实验结果进行了分析。

31

参 考 文 献

[1] 赵红怡,DSP技术与应用实例[M],北京:电子工业出版社,2003 [2] 周霖,DSP系统设计与实现[M],北京:国防工业出版社,2003 [3] 汪安民,DSP应用开发实用子程序[M],人民邮电出版社,2002

[4] 王金龙,沈良,无线通信系统的实现[M],北京:人民邮电出版社,2002

[5] 陈亮,DSP芯片原理与开发应用(第3版)[M],2003北京:电子工业出版社,2003 [7] 江思敏.TMS320LF240X DSP硬件开发教程[M].北京:机械工业出版社,2003

[8] 刘和平,严利平,张学锋, 等.TMS320LF240X DSP结构、原理及应用[M].北京:北京航空航

天大学出版社,2002

[9] 徐光辉,DSP集成开发与应用实例,[M],北京:电子工业出版社,2002

[10] 欧光军,DSP集成开发环境CCS开发指南,[M],北京航空航天大学出版社,2003

33

本文来源:https://www.bwwdw.com/article/tg88.html

Top