微控制器片上pwm脉冲波产生方法及系统的制作方法

文档序号:6581963阅读:260来源:国知局

专利名称::微控制器片上pwm脉冲波产生方法及系统的制作方法
技术领域
:本发明涉及一种基于IntelMCS-51指令体系的微控制器片上PWM脉冲波产生方法及系统,可应用于基于8051指令体系的单片微控制器,亦可应用于其它微控制器、微处理器等领域。
背景技术
:脉宽调制(PWMPulseWidthModulation)是一种可为电机,加热器甚至是音响等设备提供数字控制方法的技术,即产生一种可调占空比,相位,周期的波形用在电机驱动、D/A变换、电源控制等场合。PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。PWM脉冲波的产生方式1)分立电子元件组成的PWM信号发生器这种方法是用分立的逻辑电子元件组成PWM信号电路。它是最早期的方式,现在已经被淘汰。2)软件模拟法利用单片机的I/O引脚,通过软件对该引脚不断地输出高低电平来实现PWM波输出。这种方法要占用CPU大量时间,使单片机无法进行其它的工作,因此也逐渐被淘汰。3)专用PWM集成电路从PWM控制技术出现之日起,就有芯片制造商生产专用的PWM集成电路芯片。4)单片机的PWM口。由于基于IntelMCS-51架构的MCU是应用极为广泛的一类处理器,使用历史悠久,有丰富的第三方支持软件和仿真工具,为广大工程师所熟悉。因此在不改变指令体系的情况下,在8051IP核的基础上提供一种PWM脉冲发生方法,使得MCU具备动力驱动的可控性,将大大提高MCU的性能从而提高MCU的设计水平。
发明内容本发明的目的在于提供一种微控制器片上Pmi脉冲波产生方法及系统,在8051IP核的基础上提供一种Pmi脉冲发生方法,使得MCU具备动力驱动的可控性,能够产生两路独立的可调周期和占空比的P丽波,产生两路互补的P丽波并且可以自动插入死区时间。为实现上述目的,本发明的构思是本发明微控制器片上P觀脉冲波产生方法,兼容IntelMCS-51指令体系,能够产生两路独立的可调周期和占空比的P丽波,产生两路互补的PWM波并且可以自动插入死区时间。通过周期寄存器和脉宽寄存器设置PWM波的周期和脉宽宽度,计数器分别对PWM波的周期和脉宽计数,计数器溢出后P麵波的信号值做相应翻转从而产生预先定义的PWM波,当P丽互补输出时,首先产生主路P丽波,通过一个反相器产生另一路互补的P丽波,设置死区时间寄存器,设定死区时间的值,使两路PWM波的上升沿分别延迟一个死区时间的宽度,这样两路互补的PWM波插入了死区时间。根据上述发明构思,本发明采用下述技术方案一种微控制器片上PWM脉冲波产生方法,其特征在于兼容IntelMCS-51指令体系,能够产生两路独立的PWM波和两路互补的PWM波;其具体操作步骤为1.设置P丽波脉宽和周期,用于定义PWM波的周期和占空比;2.设置分频器,用于向定时/计数器提供计数时钟;3.设置定时/计数器,用于对PWM波脉宽和周期计数;4.设置PWM波产生单元,产生两路互补PWM波;5.设置死区时间寄存器,使互补的两路PWM波插入死区时间;上述PWM波脉宽和周期设置方法如下因为本发明有两路P丽输出所以要分别增设两路P丽的周期和脉宽特殊功能寄存器。P丽0路的周期寄存器和脉宽寄存器定义为周期寄存器UTLO,UTHO,占用片上RAM地址A2H和A3H,脉宽寄存器为UWLO,UWHO,占用片上RAM地址9AH和9BH。PWM1路的周期寄存器和脉宽寄存器定义为周期寄存器UTL1,UTH1,占用内存地址为A4H和A5H,脉宽寄存器UWLl,U冊l,占用内存地址为9CH和9DH。用户通过向周期寄存器和脉宽寄存器直接写数据的方式定义PWM波的频率和占空比。用户可以直接对周期和脉宽特殊功能寄存器写数据,从而定义P^I波的周期和脉宽,但还要设置寄存器用来存储写入的数据值。设置叩t0(16bit),存储UTL0、UTH0的值,opw0(16bit)存储UWLO、UWHO的值,叩tl(16bit),存储UTLl、UTH1的值,opwl(16bit),存储UTL1、UTH1的值上述分频器定义如下分频器用于向定时计数器提供计数时钟。本发明定义了两个分频寄存器TcaplCON和Tcap2C0N,片上RAM地址为96和97H,TcaplCON用于设定定时计数器T3时钟的分频值,Tcap2C0N用于设定定时计数器T4时钟的分频值。TcaplCON和Tcap2C0N两个寄存器各位定义是一样的,只是TcaplC0N与T3相关联,Tcap2C0N与T4相关联。Tc即lC0N各位的定义如表l所示表1分频寄存器TcaplCON各位定义<table>tableseeoriginaldocumentpage7</column></row><table>表中各位定义如下MODE:分频选择00:CLK01:2分频10:4分频11:12分频上述定时/计数器定义如下定时计数器用于对P丽波的周期和脉宽计数,在非PWM输出时也可以作普通的定时计数器使用。当定时计数器计到P碰波的周期宽度或脉宽宽度时会发出相应的溢出信号,等待PWM输出模块处理。本发明在定时/计数模块增加了两个16位定时计数器T3和T4。T3用于对PWM0路计数,周期计数溢出信号为t3—ov—opt,脉宽计数溢出信号t3—ov_叩w,T4用于对P画l路计数,周期溢出信号为t4—ov—opt脉宽溢出信号t4—ov—opw。上述PWM波产生单元定义如下该步骤用于产生PWM波。P丽波由相应的信号值表示,P丽O路用pwm—i表示,P丽l路用用信号pwm一i[l]表示;设置PWM方式寄存器PW画0D和P麵控制寄存器PWMC0N,片上RAM地址分别为91H和F8H。PWM方式寄存器PW羅0D,用于选择PWM工作方式,P丽控制寄存器PWMC0N,用于定时/计数器的开启,互补输出功能的开启。PWM方式寄存器PWMMOD各位定义如表2所示,PWM控制寄存器P丽C0N各位的定义如表3所示表2PWM方式寄存器(PWMMOD)<table>tableseeoriginaldocumentpage7</column></row><table>Bit0-1用于控制定时器3方式,Bit4-5用于控制定时器4方式。<table>tableseeoriginaldocumentpage7</column></row><table>T3M:定时器3时钟选择当丁31/1=1时,定时器时钟4分频,当T3M:0时,定时器时钟12分频。在PWM输出模式下无效,此时计数周期由Tc即lC0N中的MODE决定。T4M:定时器4时钟选择当T4M=1时,定时器时钟4分频,当T4M=0时,定时器时钟12分频。在PWM输出模式下无效,此时计数周期由Tc即2C0N中的MODE决定。表3PWM控制寄存器(PWMC0N)<table>tableseeoriginaldocumentpage8</column></row><table>TR3:定时器3运行控制位这一位由软件置1清0,用来控制定时器/计数器运行与否。TF3:定时器3溢出标志位定时器3溢出时此位置1,当定时器3中断复位程序生效,TF3自动清0。也可用软件置1清0。TR4:定时器4运行控制位这一位由软件置1清0,用来控制定时器/计数器运行与否。TF4:定时器4溢出标志位定时器4溢出时此位置1,当定时器4中断复位程序生效,TF4自动清0。也可用软件置1清0。CPWM::该位为O时,两路PWM工作在独立模式下,为1时工作在互补模式,在互补模式下,自动插入由死区时间寄存器(DT)定义的死区时间。PWMSEL:在互补输出时选择以哪路pwm为主路输出,0:pwmO路为主1:pwm1路为主上述在插入死区时间步骤定义如下在两路互补波形中插入死区时间,使两路PWM波的上升沿分别延迟一个死区时间的宽度到达。在该步骤中定义死区时间特殊功能寄存器DT(8bit),死区时间计数器dt(8bit),信号dt—zero,用于和互补的两路P麵做逻辑运算,从而插入死区时间。与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点本发明在不改变原有微控制器指令体系的情况下,提供一种PWM脉冲发生方法,使得微控制器具备动力驱动的可控性,大大提高微控制器的性能,并且不用单独的芯片去产生PWM脉冲,降低了产品的制造成本。图l:P丽脉冲波发生方法实现的系统结构图图2:定时/计数器T3设计流程图图3:pwmO波型产生设计流程图图4:死区时间插入方法实现流程图具体实施例方式本发明的一个优选实施例子结合附图详述如下参见图1,本PWM脉冲波产生方法用的系统包括8051IP核(l),其特征在于所述8051IP核(1)通过MCU总线连接周期脉宽寄存器(2)、死区插入时间寄存器(3)、PWM波产生单元(4)、定时计数器(5)和分频器(6);—个系统时钟(7)连接所述分频器(6);所述分频器(6)与定时计数器(5)连接;所述PWM波产生单元(4)与死区插入时间寄存器(3)连接。本实施例在8051IP核内提供一种脉冲发生方法,MCU能够产生两路独立的PWM波和两路互补的PWM波,PWM脉冲发生方法实现的整体结构如图1所示,MCU通过内部的数据总线和地址总线对特殊功能寄存器读写数据,设定相应的值,通过周期和脉宽特殊功能寄存器设定PWM波的频率和占空比,系统时钟经分频器分频后送定时计数器,分频值由用户设定,定时计数器计数,计数溢出后发出相应的溢出信号,如果产生互补的两路波形,则PWM脉冲信号送死区逻辑处理,插入死区时间后送PWM波产生单元。具体实施方案为1.设置PWM波周期和脉宽MCU通过地址总线选中周期和脉宽特殊功能寄存器的地址,然后通过数据总线将用户设置好的周期和脉宽值写入特殊功能寄存器,在系统实际工作的时候特殊功能寄存器的值由相应的寄存器存储,以方便处理。P丽O路optO={UTHO,UTLO},opwO={UWHO,UWLO};P丽l路optl-OJTHl,UTLlhopwl=UWHl,UWLl}P觀波的周期和脉宽设定好后P碰波占空比就确定下来,实际波形可能有毛刺产生。2.设置分频器分频器有两个特殊功能寄存器TcaplC0N和Tcap2C0N,TcaplCON用于设定定时计数器T3时钟的分频值,Tc邻2C0N用于设定定时计数器T4时钟的分频值。MCU直接向特殊功能寄存器写数据即可确定分频时钟。3.设计定时/计数器本发明中定时/计数器T3控制pwmO路,T4控制p誦l路,计数器的计数时钟由系统时钟分频得到,分频值可通过分频特殊功能寄存器设定。以定时/计数器T3低8位tl3为例介绍计数器的设计,设计流程图如图2所示U3为8位寄存器变量用于计数,t13—load—en是t13重载初值的使能信号,t3_ov—opt是P漏波周期宽度计数溢出信号,当计数器的值与当前周期寄存器的值相等时该位自动置1,、Timer—2XB—BIT为一常量,其值为2,bll,表示系统工作在P丽输出状态,t13—count—en是tl3的计数使能信号,相当于tl3的计数时钟,该信号由系统时钟分频得到。4.设置PWM波产生单元本发明中P丽发生的原理是计数器的值与当前脉宽寄存器和周期寄存器中的值相比较,如果计数器的值与当前脉宽寄存器或周期寄存器中的值相等,则pwm的值开始翻转,翻转的原则当周期计数溢出,p戰的值为l,当脉宽计数溢出pwm的值为0。以pwmO路为例介绍设计流程,设计流程如图3所示pwm一i是PWM波信号值,tr3为定时/计数器T3的运行控制位,通过PWMC0N寄存器的TR3bit位设置,t3一ov一opt为pwm0路周期计数溢出信号,当计数器的值与周期寄存器的值相等时该信号自动置1,t3—ov_opw为pwniO路脉宽计数溢出信号,当计数器的值与脉宽寄存器中的值相等时该信号自动置l。5.插入死区时间当产生两路互补的波形时要插入死区时间,互补输出由PWMCON寄存器的CP丽位设置,PWMSEL位用来选择以哪路P觀输出为主,另一路输出与其反相的波形,死区时间的值由死区特殊功能寄存器DT设置,当工作在互补输出状态时,系统会自动插入死区时间。没有插入死区时间的两路互补波形相位是完全相反的,而带有死区时间的两路互补波形它们的相位并不是严格相反,在死区时间内它们的相位都为0。死区插入方法的实现如图4所示,首先系统根据用户的定义产生主路P觀波PWM_H1,通过一个反相器产生另一路互补的PWM波PWM_L1,此时两路波形还没有插入死区时间。在PWM_H1和P丽波PWM_L1的上升沿启动死区时间计数器dt,该计数器是一个8位的向下计数器,直到计到0为止,计数器初值由死区特殊功能寄存器得到,设置dt—zero信号,该信号在在dt计数期间为0电平,当dt停止计数后该信号跳变为1电平,即该信号在PWM—Hl和P麵波P觀一L1的上升沿后维持死区时间宽度的0电平时间,在其它时刻保持高电平。当dt停止计数后,dt—zero信号分别与开始产生的两路互补的P丽波做逻辑与操作,相与后会使两路P丽波的上升沿分别延迟一个死区时间的宽度,通过该方法可以将死区时间插入到两路P丽波中。权利要求1.一种微控制器片上PWM脉冲波产生方法,其特征在于兼容IntelMCS-51指令体系,能够产生两路独立的PWM波和两路互补的PWM波;其具体操作步骤为1)设置PWM波脉宽和周期,用于定义PWM波的周期和占空比;2)设置分频器,用于向定时/计数器提供计数时钟;3)设置定时/计数器,用于对PWM波脉宽和周期计数;4)设置PWM波产生单元,产生两路互补PWM波;5)设置死区时间寄存器,使互补的两路PWM波插入死区时间。2.根据权利要求1所述微控制器片上PWM脉冲波产生方法,其特征在于所述步骤1)设置PWM波脉宽和周期中,因为产生两路PWM波,所以要分别增设两路PWM的周期和脉宽特殊功能寄存器,具体步骤如下(a)设置PWMO路的周期和脉宽特殊功能寄存器低8位周期寄存器UTL0,占用片上RAM地址A2H,高8位周期寄存器UTH0,占用片上RAM地址A3H;低8位脉宽寄存器UWL0,占用片上RAM地址9AH,高8位脉宽寄存器UWHO,占用片上RAM地址9BH;(b)设置存寄存器optO和opw0用于存储PWMO路周期和脉宽特殊功能寄存器写入的值;(c)设置P醫1路的周期和脉宽特殊功能寄存器低8位周期寄存器UTL1,占用片上RAM地址A4H,高8位周期寄存器UTH1,占用片上RAM地址A5H;低8位脉宽寄存器UWL1,占用片上RAM地址9CH,高8位脉宽寄存器UWH1,占用片上RAM地址9DH;(d)设置寄存器optl和叩wl用于存储P丽l路周期和脉宽特殊功能寄存器写入的值。3.根据权利要求1所述微控制器片上PWM脉冲波产生方法,其特征在于所述步骤2)设置分频器的具体方法是分频器用于设置时钟的分频数,映射关系如下MODE:分频选择00:CLK01:2分频10:4分频11:12分频。4.根据权利要求1所述微控制器片上PWM脉冲波产生方法,其特征在于所述步骤3)设置定时/计数器,有两路P觀,需要两个定时/计数器(a)设置PWM0路的定时/计数器T3,16位;(b)设置T3周期计数溢出信号t3—ov—叩t,脉宽计数溢出信号t3—ov—叩w;(C)设置P觀l路的定时/计数器T4,16位;(d)设置T4周期计数溢出信号t4一ov一叩t,脉宽计数溢出信号号t4—ov—opw。5.根据权利要求1所述微控制器片上PWM脉冲波产生方法,其特征在于所述步骤4)设置P丽波产生单元的方法是设置P丽0路脉冲信号p卿j,PWM1路脉冲信号pwm—i[1];设置PWM方式寄存器PWMM0D和P丽控制寄存器P丽C0N,片上RAM地址分别为91H和F8H。P丽方式寄存器PW丽0D各位定义如表1所示,P麵控制寄存器PWMC0N各位定义如表2所示表1PWM方式寄存器(PWMMOD)<table>tableseeoriginaldocumentpage3</column></row><table>T3M:定时器3时钟选择当T3M二1时,定时器时钟4分频,当T3M=0时,定时器时钟12分频。在PWM输出模式下无效,此时计数周期由Tc即lCON中的MODE决定;T4M:定时器4时钟选择当T4M^1时,定时器时钟4分频,当T4M二0时,定时器时钟12分频。在PWM输出模式下无效,此时计数周期由Tc即2C0N中的M0DE决定;表2PWM控制寄存器(PWMCON)<table>tableseeoriginaldocumentpage3</column></row><table>TR3:定时器3运行控制位这一位由软件置1清0,用来控制定时器/计数器运行与否;TF3:定时器3溢出标志位定时器3溢出时此位置1,当定时器3中断复位程序生效,TF3自动清0。也可用软件置1清0;TR4:定时器4运行控制位这一位由软件置1清0,用来控制定时器/计数器运行与否;TF4:定时器4溢出标志位定时器4溢出时此位置1,当定时器4中断复位程序生效,TF4自动清0。也可用软件置1清0;CPWM::该位为0时,两路PWM工作在独立模式下,为1时工作在互补模式,在互补模式下,自动插入由死区时间寄存器(DT)定义的死区时间;PWMSEL:在互补输出时选择以哪路pwm为主路输出,0:pwmO路为主,1:pwm1路为主。6.根据权利要求1所述微控制器片上PWM脉冲波产生方法,其特征在于所述步骤5)的插入死区时间方法(a)设置死区特殊功能寄存器DT(DeadTime),8bit宽度,用户可以通过MCU直接对该寄存器写数据,设置死区时间;(b)设置死区时间计数器dt,该计数器为8bit向下计数器;(c)设置信号dt—zero,当dt为零时该信号为1,当dt非零时该信号为0。当PWM互补输出时,首先产生主路PWM波,通过一个反相器产生另一路互补的P丽波,设置了一个8位的死区寄存器DT,片上RAM地址为FEH,使两路P丽波的上升沿分别延迟一个死区时间的宽度,这样两路互补的PWM波的相位并不是严格相反。7.—种微控制器片上PWM脉冲波产生方法用的系统,包括8051IP核(1),其特征在于所述8051IP核(1)通过MCU总线连接周期脉宽寄存器(2)、死区插入时间寄存器(3)、PWM波产生单元(4)、定时计数器(5)和分频器(6);—个系统时钟(7)连接所述分频器(6);所述分频器(6)与定时计数器(5)连接;所述PWM波产生单元(4)与死区插入时间寄存器(3)连接。全文摘要本发明涉及一种微控制器片上PWM脉冲波产生方法及系统。本方法通过周期寄存器和脉宽寄存器设置PWM波的周期和脉宽宽度,计数器分别对PWM波的周期和脉宽计数,计数器溢出后PWM波的信号值做相应翻转,从而产生预先定义的PWM脉冲,当PWM互补输出时,首先产生主路PWM波,通过一个反相器产生另一路互补的PWM波,设置死区时间寄存器,设定死区时间的值,使两路PWM波的上升沿分别延迟一个死区时间的宽度,这样,两路互补的PWM波插入了死区时间。本发明使得微控制器具备动力驱动的可控性,大大提高微控制器的性能。文档编号G06F1/00GK101661302SQ200910196559公开日2010年3月3日申请日期2009年9月27日优先权日2009年9月27日发明者徐晓勇,卫朱,炜汪,胡越黎,科闫申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1