利用单片机定时器实现信号采样和PWM控制_第1页
利用单片机定时器实现信号采样和PWM控制_第2页
利用单片机定时器实现信号采样和PWM控制_第3页
利用单片机定时器实现信号采样和PWM控制_第4页
利用单片机定时器实现信号采样和PWM控制_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、利用单片机定时器实现信号采样和PWM控制李 宁 汪 燕 时间:2009年10月20日 字 体: 大 中 小关键词:单片机定时器/计数器信号采样PWMMSP430F413MotorolaMotorola摘 要: 一种利用单片机MSP430F413的定时器Time_A实现采样和脉冲宽度调节(PWM)的方法,并应用于精密温度控制系统。该系统采用时间量采样的模数转换方法,并设计了完全采用软件实现的PID调节程序,用PWM方式完成对精密温度的控制。关键词: PWM控制 单片机 定时器 MSP430F413PWM控制方式广泛应用于各种控制系统中,但对脉冲宽度的调节一般采用硬件来实现。如使用PWM控制器或在

2、系统中增加PWM电路1等,则成本高、响应速度慢,而且PWM控制器与系统之间存在兼容问题。另外,控制系统中的信号采样通常是由A/D转换器来完成,因此检测精度要求较高时,调理电路复杂,而且因A/D的位数高,从而使设计的系统成本居高不下。本文以应用于温度控制系统为例,介绍利用Motorola公司生产的新型单片机MSP430F413内的定时器Time_A设计可以用时间量进行温度采样以及实现PWM调节的方法。为了可在使用少量外围电路的情况下实现控制系统的高精度测量和控制,一方面用时间量采样,在省去1片A/D的情况下得到12位的高精度;另一方面在定时中断内完全用软件实现PWM调节,以易于进行数据的通信和显

3、示。该系统在中断内可以解决波形产生的实时在线计算和计算精度问题,可精确、实时地计算设定频率下的脉冲宽度。1单片机MSP430F413及定时器MSP430系列的单片机F413在超低功耗和功能集成上都有一定的特色,可大大减小外围电路的复杂性,它的实时处理能力及各种外围模块使其可应用在多个低功耗领域2。MSP430F413中通用16位定时器Timer_A有如下主要功能模块。(1)一个可连续递增计数至预定值并返回0的计数器。(2)软件可选择时钟源。(3)5个捕获/比较寄存器,每个有独立的捕获事件。(4)5个输出模块,支持脉宽调制的需要。定时器控制寄存器TACTL的各位可控制Timer_A的配置,并定义

4、16位定时器的基本操作,可选择原始频率或分频后的输入时钟源及4种工作模式。另外还有清除功能和溢出中断控制位。5个捕获/比较寄存器CCRx的操作相同,它们通过各自的控制寄存器CCTLx进行配置。2时间量采样及PWM控制的实现原理以应用于温度控制系统为例,介绍用定时器实现信号采样和PWM控制的方法。该温度控制系统包括单片机、温度测量电路、负载驱动电路及电源控制、低电压检测和显示电路等其他外围部分。单片机MSP430F413中用于测量和控制温度的主要I/O口有:P1.0:输出50Hz方波,用于产生三角波。P1.2:驱动温度控制执行元件,2kHz方波PWM输出。P2.0:脉宽捕捉。2.1 单片机端口的

5、中断设置温度控制系统的50Hz方波输出、PWM输出和输入捕捉都是由定时中断来实现。这3个中断分别由P0、P1和P2口的外围模块引起,属于外部可屏蔽中断。初始化时,对这3个I/O口进行中断设置,并对Time_A控制寄存器TACTL设置,包括输入信号2分频、选用辅助时钟ACLK等。当定义完捕获/比较寄存器后,重新赋值TACTL,启动定时器,开始连续递增计数。2.2 脉宽捕捉实现温度值的采样温度测量电路将温度值转换为电压值,同时单片机产生的50Hz方波经电容充放电电路变换得到同频率的三角波,其电压值切割三角波,从而将温度值转换为相应宽度的脉冲送入单片机。波形变化如图1所示。通过设置CCTLx中的模式

6、位,可将对应的捕获/比较寄存器CCRx设定为捕获模式,用于时间事件的精确定位。如果在选定的输入引脚上发生选定脉冲的触发沿,则定时器计数的值将被复制到CCRx中。根据这一原理,选定P2.0为输入引脚,设置CCTL2为捕获模式,所测温度值由模拟量经测量电路转换为脉冲后,P2.0捕捉脉冲下降沿,进入中断T2,得到与温度值一致的单位时间内的脉冲数,存入CCR2作进一步处理。这样,系统就在不使用A/D转换器的情况下完成了模数转换。因为单片机的时钟精确度高,而且时间量是一个相对精度极高的量,但本系统中用时间量进行温度采样可获得12位的高精度,同时采用50Hz脉冲,可以大大消除工频干扰。这些都为进行精确的温

7、度控制提供了必要的条件。2.3 PWM信号生成原理将捕获/比较寄存器CCR0和CCR1定义为比较模式,它们的输出单元OUT0和OUT1分别对应单片机引脚P1.0(TA0)和P1.2(TA1)。进入比较模式后,如果定时器CCRx的计数值等于比较寄存器x中的值,则比较信号EQUx输出到输出单元OUTx中,同时根据选定的模式对信号置位、复位或翻转。其中:设置EQU0将OUT0信号翻转,信号时钟与定时器时钟同步,这样就可以在P1.0引脚上得到50Hz的方波信号;设置EQU1输出模式为PWM复位/置位。设定模式下定时中断的输出如图2所示。根据设定的PWM复位/置位模式,若CCR1计数器溢出,则EQU1将

8、OUT1复位;若CCR0计数器溢出,则EQU0将OUT1置位。利用CCR0和CCR1计数起始点的差值,实现占空比的变化,从而在P1.2上完成PWM输出。系统对占空比的调节是通过改变CCR1的基数来实现的。定时器时钟为2MHz、CCR1和CCR0的计数值为1 000时,可获得2kHz的PWM输出频率。负载驱动电路将单片机P1.2引脚输出的PWM信号放大滤波,用于驱动大功率的执行元件。3 软件设计3.1 系统主程序在主程序中包括系统初始化、定时器的初始化、温度采样值的读入、负载驱动和显示等。系统进行温度值采样和PWM输出均在定时中断内完成,PWM输出脉冲的占空比则由PID算法得到。系统主程序流程图

9、如图3所示。3.2 PID脉宽调节系统对脉宽的调制由PID算法实现。根据算法原理,本系统设计了一套完全由软件实现的PID算法,并且在控制过程中完成参数的自整定。PID调节的控制过程:单片机读出数字形式的实际温度Tn,然后和设定温度Tg相比较,得出差值en=Tn-Tg,根据en的正负和大小,调用PID公式,计算得到与输出电压un一致的占空比,调节温度的升降,同时寻找最优条件,改变PID参数。增量式PID控制算法的输出量3:PID调节程序直接写入单片机内,根据得到的值改变计数器CCR1的基数值,从而改变输出脉冲的占空比,达到调节PWM的目的。3.3 定时中断定时中断子程序流程如图4所示。系统采用的

10、晶振频率为2MHz,T0中断的作用是得到频率为50Hz、占空比为90%的方波,用以产生三角波,并检查1个周期内是否有漏采的数据。T0模溢出翻转为高电平,输出比较间隔为18ms。其中,CCR0加了PWM的模,该值即为CCR0和CCR1的差值,用以产生输出所需的脉冲宽度。T1中断内处理的是控制端口的PWM输出,并检查1个周期内是否重复采集数据,T1输出比较产生低电平,输出比较间隔为20ms。T2中断捕捉温度测量端口的脉宽,得到所测的温度值。4 结束语利用单片机MSP430F413内的定时器Time_A进行温度采样以及实现PWM调节的方法,可以广泛用于具有端口捕捉功能的单片机中。与传统方法比较,它不仅可以简化测量和控制电路的硬件结构,而且可以方便地建立人机接口,实现用软件调整参数,使控制更精确、实时、可靠。经过实验,该方法应用于温度控制系统中获得了预期的精确PWM调节波

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论