1、脉宽调制摘 要本文简要阐述了PWM占空比调整在DSP上的实现的基本原理。实验TMS320C5509芯片为主处理芯片,时钟为300MHz,片外为16MB SDRAM。然后在CCS中以TMS320C55x芯片的汇编语言编程实现了PWM占空比调整在DSP上的实现。另外文中还介绍CCS开发环境。关键词:DSP;PWM占空比调整;Code Composer Studio(CCS);TMS320C55x1.PWM脉冲调制技术概述 42.理论设计 62.1脉宽调制技术原理 62.1.1模拟电路 62.1.2 数字控制 62.1.3 硬件控制器 72.2 PWM技术 82.2.1 PWM控制的基本原理 92.
2、2.2 PWM相关概念 113.DSP可调脉宽PWM系统硬件电路设计 123.1 DSP5509技术参数 123.1.1 C55X的CPU体系结构 123.1.2 指令缓冲单元(I) 123.1.3 程序流程单元(P) 123.1.4 地址程序单元(A) 133.1.5 数据计算单元(D) 133.2 电路框图及整体设计思路 134.DSP可调脉宽PWM系统软件设计 144.1 简述CCS环境 144.1.1 CCS主要特点 154.1.2 DSP/BIOS和API函数以及RTDX插件 154.2 CCS配置 154.3 CCS环境中工程文件的使用 164.3.1 建立工程文件 164.3.2
3、 创建新文件 174.4 编译链接和运行目标文件174.4.1 对程序进行编译链接 174.4.2 装载.out文件 184.5 程序流程设计 184.5.1主函数流程 184.5.2 占空比设置按键检测函数流程18 4.5.3 延时器中断函数流程21结 论24参考文献251.PWM脉冲调制技术概述PWM控制技术一直是变频技术的核心技术之一。1964年A.Schonung和H.stemmler首先提出把这项通讯技术应用到交流传动中,从此为交流传动的推广应用开辟了新的局面。从最初采用模拟电路完成三角调制波和参考正弦波比较,产生正弦脉宽调制SPWM信号以控制功率器件的开关开始,到目前采用全数字化方
4、案,完成优化的实时在线的PWM信号输出,可以说直到目前为止,PWM在各种应用场合仍在主导地位,并一直是人们研究的热点。由于PWM可以同时实现变频变压反抑制谐波的特点。由此在交流传动及至其它能量变换系统中得到广泛应用。PWM控制技术大致可以为为三类,正弦PWM(包括电压,电流或磁通的正弦为目标的各种PWM方案,多重PWM也应归于此类),优化PWM及随机PWM。正弦PWM已为人们所熟知,而旨在改善输出电压、电流波形,降低电源系统谐波的多重PWM技术在大功率变频器中有其独特的优势(如ABB ACS1000系列和美国ROBICON公司的完美无谐波系列等);而优化PWM所追求的则是实现电流谐波畸变率(T
5、HD)最小,电压利用率最高,效率最优,及转矩脉动最小以及其它特定优化目标。在70年代开始至80年代初,由于当时大功率晶体管主要为双极性达林顿三极管,载波频率一般最高不超过5kHz,电机绕组的电磁噪音及谐波引起的振动引起人们的关注。为求得改善,随机PWM方法应运而生。其原理是随机改变开关频率使电机电磁噪音近似为限带白噪音(在线性频率坐标系中,各频率能量分布是均匀的),尽管噪音的总分贝数未变,但以固定开关频率为特征的有色噪音强度大大削弱。正因为如此,即使在IGBT已被广泛应用的今天,对于载波频率必须限制在较低频率的场合,随机PWM仍然有其特殊的价值(DTC控制即为一例);别一方面则告诉人们消除机械
6、和电磁噪音的最佳方法不是盲目地提高工作频率,因为随机PWM技术提供了一个分析、解决问题的全新思路。随着电压型PWM变频器在高性能的交流传动系统中应用日趋广泛,PWM技术的研究越来越深入。PWM利用功率半导体器件的高频开通和关断,把直流电压变成按一定宽度规律变化的电压脉冲序列,以实现变频、变压并有效地控制和消除谐波。PWM技术可分为三大类:正弦PWM、优化PWM及随机PWM。正弦PWM包括以电压、电流和磁通的正弦为目标的各种PWM方案。正弦PWM一般随着功率器件开关频率的提高会得到很好的性能,因此在中小功率交流传动系统中被广泛采用。但对于大容量的电力变换装置来说,太高的开关频率会导致大的开关损耗
7、,而且大功率器件如GTO的开关频率目前还不能做得很高,在这种情况下,优化PWM技术正好符合装置的需要。特定谐波消除法(Selected Harmonic Elimination PWMSHE PWM)、效率最优PWM和转矩脉动最小PWM都属于优化PWM技术的范畴。普通PWM变频器的输出电流中往往含有较大的和功率器件开关频率相关的谐波成分,谐波电流引起的脉动转矩作用在电动机上,会使电动机定子产生振动而发出电磁噪声,其强度和频率范围取决于脉动转矩的大小和交变频率。如果电磁噪声处于人耳的敏感频率范围,将会使人的听觉受到损害。一些幅度较大的中频谐波电流还容易引起电动机的机械共振,导致系统的稳定性降低。
8、为了解决以上问题,一种方法是提高功率器件的开关频率,但这种方法会使得开关损耗增加;另一种方法就是随机地改变功率器件的导通位置和开关频率,使变频器输出电压的谐波成分均匀地分布在较宽的频带范围内,从而抑制某些幅值较大的谐波成分,以达到抑制电磁噪声和机械共振的目的,这就是随机PWM技术。2.理论设计脉宽调制PWM是开关型稳压电源中的术语。这是按稳压的控制方式分类的,除了PWM型,还有PFM型和PWM、PFM混合型。脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。2.1脉宽调制技术原理2.1.1模拟电路模拟信号的值可以连续变
9、化,其时间和幅度的分辨率都没有限制。9V电池就是一种模拟组件,因为它的输出电压并不精确地等于9V,而是随时间产生变化,并可取任何实数值。与此类似,从电池吸收的电流也不限定在一组可能的取值范围之内。模拟信号与数字信号的区别在于后者的取值通常只能属于预先确定的可能取值集合之内,例如在(0V, 5V)这一集合中取值。模拟电压和电流可直接用来进行控制,如对汽车收音机的音量进行控制。在简单的模拟收音机中,音量旋钮被连接到一个可变电阻。拧动旋钮时,电阻值变大或变小;流经这个电阻的电流也随之增加或减少,从而改变了驱动扬声器的电流值,使音量相应变大或变小。与收音机一样,模拟电路的输出与输入成线性比例。尽管模拟
10、改变电流值的大小控制看起来可能直观而简单,但它并不总是非常经济或可行的。其中一点就是,模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。模拟电路还有可能严重发热,其功耗相对于工作组件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会。2.1.2 数字控制由以数字方式控制模拟电路,可以大幅度降低系统的成本和功耗。此外,许多微控制器和DSP已经在芯片上包含了PWM控制器,这使数字控制的实现变得更加容易了。简而言之,PWM是一种对模拟信号电平进行数字编码的方法。由高分辨率计数器的使用,方波的占空比被调变
11、用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要频宽足够,任何模拟值都可以使用PWM进行编码。下图中显示了三种不同的PWM信号。图a是一个占空比为10%的PWM输出,即在信号周期中,10的时间通,其余90的时间断。图b和图c显示的分别是占空比为50%和90%的PWM输出。这三种PWM输出编码的分别是强度为满度值的10%、50%和90%的三种不同模拟信
12、号值。例如,假设供电电源为9V,占空比为10%,则对应的是一个幅度为0.9V的模拟信号。 图2.1 PWM信号图例:用一块9V电池连接一个灯泡,使用PWM进行驱动的简单电路。如果将连接电池和灯泡的开关闭合50ms,灯泡在这段时间中将得到9V供电。如果在下一个50ms中将开关断开,灯泡得到的供电将为0V。如果在1秒钟内将此过程重复10次,灯泡将会点亮并像连接到了一个4.5V电池(9V的50%)上一样。这种情况下,占空比为50%,调变频率为10Hz。 大多数负载(无论是电感性负载还是电容性负载)需要的调变频率高于10Hz。设想一下如果灯泡先接通5秒再断开5秒,然后再接通、再断开。占空比仍然是50%
13、,但灯泡在头5秒钟内将点亮,在下一个5秒钟内将熄灭。要让灯泡取得4.5V电压的供电效果,通断循环周期与负载对开关状态变化的响应时间相比必须足够短。要想取得调光灯(但保持点亮)的效果,必须提高调变频率。在其它PWM应用场合也有同样的要求。通常调变频率为1kHz到200kHz之间。2.1.3 硬件控制器许多微控制器内部都包含有PWM控制器。例如,Microchip公司的PIC16C67内含两个PWM控制器,每一个都可以选择接通时间和周期。占空比是接通时间与周期之比;调变频率为周期的倒数。执行PWM作业之前,这种微处理器要求在软件中完成以下工作:设置提供调变方波的片上定时器/计数器的周期在PWM控制
14、缓存器中设置接通时间设置PWM输出的方向,这个输出是一个通用I/O管脚启动定时器使能PWM控制器虽然具体的PWM控制器在编程细节上会有所不同,但它们的基本方向通常是相同的。PWM广泛应用在多种系统中。作为一个具体的例子,我们来考察一种用PWM控制的制动器。简单地说,制动器是紧夹住某种东西的一种装置。许多制动器使用模拟输入信号来控制夹紧压力(或制动功率)的大小。加在制动器上的电压或电流越大,制动器产生的压力就越大。可以将PWM控制器的输出连接到电源与制动器之间的一个开关。要产生更大的制动功率,只需藉由软件加大PWM输出的占空比就可以了。如果要产生一个特定大小的制动压力,需要藉由测量来确定占空比和
15、压力之间的数学关系(所得的公式或查找表藉由变换可用于控制温度、表面磨损等等)。例如,假设要将制动器上的压力设定为100P,软件将作一次反向查找,以确定产生这个大小的压力的占空比应该是多少。然后再将PWM占空比设置为这个新值,制动器就可以相应地进行响应了。如果系统中有一个传感器,则可以借由死循环控制来调节占空比,直到精确产生所需的压力。总之,PWM既经济、节约空间、抗噪性能强,是一种值得广大工程师在许多设计应用中使用的有效技术。2.2 PWM技术脉宽调制(PWM:(Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通
16、信到功率控制与变换的许多领域中。简而言之,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在
17、强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。2.2.1 PWM控制的基本原理 冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。冲量指窄脉冲的面积。效果基本相同,是指环节的输出响应波形基本相同。低频段非常接近,仅在高频段略有差异。图2.2.1形状不同而冲量相同的各种窄脉冲 面积等效原理: 分别将如图1所示的电压窄脉冲加
18、在一阶惯性环节(R-L电路)上,如图2a所示。其输出电流i(t)对不同窄脉冲时的响应波形如图2b所示。从波形可以看出,在i(t)的上升段,i(t)的形状也略有不同,但其下降段则几乎完全相同。脉冲越窄,各i(t)响应波形的差异也越小。如果周期性地施加上述脉冲,则响应i(t)也是周期性的。用傅里叶级数分解后将可看出,各i(t)在低频段的特性将非常接近,仅在高频段有所不同。图2.2.2冲量相同的各种窄脉冲的响应波形用一系列等幅不等宽的脉冲来代替一个正弦半波,正弦半波N等分,看成N个相连的脉冲序列,宽度相等,但幅值不等;用矩形脉冲代替,等幅,不等宽,中点重合,面积(冲量)相等,宽度按正弦规律变化。SP
19、WM波形脉冲宽度按正弦规律变化而和正弦波等效的PWM波形。图2.2.3用PWM波代替正弦半波要改变等效输出正弦波幅值,按同一比例改变各脉冲宽度即可。PWM电流波: 电流型逆变电路进行PWM控制,得到的就是PWM电流波。PWM波形可等效的各种波形:直流斩波电路,等效直流波形,SPWM波,等效正弦波形,还可以等效成其他所需波形,如等效所需非正弦交流波形等,其基本原理和SPWM控制相同,也基于等效面积原理。2.2.2 PWM相关概念占空比:就是输出的PWM中,高电平保持的时间 与 该PWM的时钟周期的时间 之比如,一个PWM的频率是1000Hz,那么它的时钟周期就是1ms,就是1000us,如果高电
20、平出现的时间是200us,那么低电平的时间肯定是800us,那么占空比就是200:1000,也就是说PWM的占空比就是1:5。分辨率也就是占空比最小能达到多少,如8位的PWM,理论的分辨率就是1:255(单斜率), 16位的的PWM理论就是1:65535(单斜率)。频率就是这样的,如16位的PWM,它的分辨率达到了1:65535,要达到这个分辨率,T/C就必须从0计数到65535才能达到,如果计数从0计到80之后又从0开始计到80.,那么它的分辨率最小就是1:80了,但是,它也快了,也就是说PWM的输出频率高了。双斜率 / 单斜率假设一个PWM从0计数到80,之后又从0计数到80. 这个就是单
21、斜率。假设一个PWM从0计数到80,之后是从80计数到0. 这个就是双斜率。可见,双斜率的计数时间多了一倍,所以输出的PWM频率就慢了一半,但是分辨率却是1:(80+80) 1:160,就是提高了一倍。 假设PWM是单斜率,设定最高计数是80,我们再设定一个比较值是10,那么T/C从0计数到10时(这时计数器还是一直往上计数,直到计数到设定值80),单片机就会根据你的设定,控制某个IO口在这个时候是输出1还是输出0还是端口取反,这样,就是PWM的最基本的原理了。 3.DSP可调脉宽PWM系统硬件电路设计3.1 DSP5509技术参数3.1 .1 C55X的CPU体系结构C55X有1条32位的程
22、序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和1条24位的程序地址总线及5条23位地址总线,这些总线分别与CPU相连。总线通过存储单元接口(M)与外部程序总线和数据总线相连,实现CPU对外部存储器的访问。这种并行的多总线结构,使CPU能在一个CPU周期内完成1次32位程序代码读、3次16位数据读和两次16位数据写。C55X根据功能的不同将CPU分为4个单元,指令缓冲单元(I)、程序流程单元(P)、地址流程单元(A)、和数据计算单元(D)。读程序地址总线(PDA)上传送24位的程序代码地址,由读程序总线(PB)将32位的程序代码送入指令缓冲单元进行译码1。3.1.2 指
23、令缓冲单元(I)C55X的指令缓冲单元有指令缓冲队列IBQ和指令译码器组成。在每个CPU周期内,I单元将从程序数据接收的4B程序代码放入指令缓冲队列,指令译码器从队列中取6B程序代码,根据指令的长度可对8位、16位、24位、32位和48位的变长指令进行译码,然后把译码数据送入P单元、A单元和D单元去执行。3.1.3 程序流程单元(P)程序流程单元有程序地址产生电路和寄存器组凑成。程序流程单元产生所有程序空间的地址,并控制指令的读取顺序。程序地址产生逻辑电路的任务是产生读取空间的24位地址。一般情况下,它产生的是连续地址,如果指令要求读取非连续地址的程序代码时,程序地址产生逻辑电路能够接收来自I
24、单元的立即数和来自D单元的寄存器值,并将产生的地址传送到PAB。在P单元中使用的寄存器分为5种类型。 程序流寄存器:包括程序计数器、返回地址寄存器和控制流程关系寄存器。 块重复寄存器:包括块重复寄存器0和1(BRC0、BRC1)BRC1的保存寄存器(BRS1)、块重复起始地址寄存器0和1以及块重复结束地址寄存器0和1。 单重复寄存器:包括单重复寄存器和计算单重复寄存器。 中断寄存器:包括中断标志寄存器0和1、中断使能寄存器0和1以及调试中断使能寄存器0和1。 状态奇存期:包括状态寄存器0,1,2和3。3.1.4 地址程序单元(A)地址程序单元包括数据地址产生电路、算术逻辑电路和寄存器组构成。数
25、据地址产生电路能够接收来自I单元的立即数和来自A单元的寄存器产生读取数据空间的地址。对于使用间接寻址模式的指令,有P单元向DAGEN说明采用的寻址模式。A单元包括一个16位的算术逻辑单元,它既可以接收来自I单元的立即数也可以与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信。A单元包括的寄存器有以下几种类型。 数据页寄存器:包括数据页寄存器和接口数据页寄存器; 指针:包括系数数据指针寄存器、堆栈针寄存器和8个辅助寄存器; 循环缓冲寄存器:包括循环缓冲大小寄存器、循环缓冲起始地址寄存器; 临时寄存器:包括临时寄存器。3.1.5 数据计算单元(D)数据计算单元由移位器、算数
26、逻辑电路、乘法累加器和寄存器组构成。D单元包含了CPU的主要运算部件。D单元移位器能够接收来自I单元的立即数,能够与存储器、I/O单元、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信,此外,还可以向D单元的ALU和A单元的ALU提供移位后的数据。移位可以完成以下操作: 对40位的累加器可以完成向左最多32位的移位操作,移位数乐意从零食寄存器读取或由指令中的常数提供; 对于16位寄存器、存储器或I/O空间数据可完成左移31位或32位的移位操作; 对于16位立即数可完成向左移最多15位的移位操作。3.2 电路框图及整体设计思路图3.1电路框图XF:输出信号。指令BSET XF可以使XF输出电
27、平为高,指令BCLR XF可以使XF输出电平为低。或者加载ST1.XF位可以控制XF输出电平。XF用于配置其他处理器的复用状态或者作为通用输出引脚。此PMW系统只能进行10%,20%,30%.100%这几个占空比进行调整,也就是说只能从10%开始以10%的幅度进行调整。1) KEY1闭合一次,计数器加一,若闭合10次后,则计数器记为10,若再次闭合则计数器清零,计数器上的数字(0-10)乘以10%就是占空比,然后KEY2确认。2) KEY3按下后即启动定时器(因为延时器误差太大所以选用定时器),定时器中断的频率是200khz,则计十次后每次的中断即为20khz,每次中断前先检查,如果计数器不大
28、于,则XF=1,从而输出高电平并且计数器自加1,否则,XF=0即产生低电平;如果计数器等于10,则将计数器清零。3) KEY4闭合时,系统停止工作。4.DSP可调脉宽PWM系统软件设计4.1 简述CCS环境 CCS,即Code Composer Studio,是TI公司在1999年推出的一个开放、具有强大集成开发环境。它最初是由GO DSP公司为TI的C6000系列DSP开发的。在TI收购了GO DSP后,将CCS扩展到了其它系列。现在所有TI的DSP都可以使用CCS进行开发,但是其中的DSPBIOS功能只有C5000和C6000的CCS中才提供。以前的DSP软件开发都是在一个分散的开发环境下
29、进行,程序的编写、代码的生成以及调试等都是要通过命令来完成,类似于以前的DOS,十分烦杂。而CCS的出现是DSP开发软件的一次革命性的变化。CCS主要由代码生成工具、CCS集成开发环境、DSPBIOS和API函数以及RTDX组成。4.1.1 CCS主要特点集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h文件、.cmd文件等。集成代码生成工具,包括汇编器、优化的C编译器和连接器等。具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗口、存储器窗口和变量窗口、反汇编窗口等,支持在C源代码级进行调试。支持多片DSP联合调试。断点工具,支持硬件断点、数据空间读/写断点、条件断点等
30、。探针工具,用于进行算法仿真,数据监视等。剖析工具,用于评估代码执行的时间。数据图形显示工具,可绘制时域/频域波形、眼图、星座图等,并可以自动刷新。提供GEI工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数。4.1.2 DSP/BIOS和API函数以及RTDX插件DSP/BIOS(Basic Input Output System)和API(Application Program Interface)函数为CCS的主要插件之一。DSPBIOS可以看作是一个准实时操作系统,支持TI DSP芯片的各种实时操作系统都是以DSP/BIOS作为底层软件,为嵌入式应用提供基
31、本的运行服务。并且,它还能实时获取目标机的信息,并将其传递给主机上的BIOSCOPE工具,对应用程序进行实时分析RTDX (Real Time Data Exchange)插件是CCS中另一个十分重要的插件。实时数据交换技术为CCS提供了一个实时、连续的可视环境,开发人员可以看到DSP应用程序工作的真实过程。RTDX允许系统开发者在不停止运行目标应用程序的情况下在计算机和DSP芯片之间传输数据,同时还可以在主机上利用对象链接嵌入(OLE)技术分析和观察数据。RTDX可以在DSPBIOS中使用,也可以脱离DSP/BIOS使用。由于CCS中的Simulator不支持RTDX,所以必须在连接有硬件仿真器或目标板的Emulator下使用。4.2 CCS配置 击桌面图标的“setup CCStudio v3.1”图标,运行CCS设置程序,如图5.1所示:点击AddSave&quit完成设置。图4.1 用标准配置文件设置系统配置4.3 CCS环境中工程文件的使用4.3.1 建立工程文件在CCS集成环境下开发汇编程序或者C/C+程序,首先要建立一个工程项目文件(*.pjt),再向工程项目文件中添加汇编程序源文
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1