DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 178|回复: 0
打印 上一主题 下一主题

利用单片机定时器实现信号采样和PWM控制

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 17:31:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      PWM控制方式广泛应用于各种控制系统中,但对脉冲宽度的调节一般采用硬件来实现。如使用PWM控制器或在系统中增加PWM电路[1]等,则成本高、响应速度慢,而且PWM控制器与系统之间存在兼容问题。另外,控制系统中的信号采样通常是由A/D转换器来完成,因此检测精度要求较高时,调理电路复杂,而且因A/D的位数高,从而使设计的系统成本居高不下。
  本文以应用于温度控制系统为例,介绍利用Motorola公司生产的新型单片机MSP430F413内的定时器Time_A设计可以用时间量进行温度采样以及实现PWM调节的方法。为了可在使用少量外围电路的情况下实现控制系统的高精度测量和控制,一方面用时间量采样,在省去1片A/D的情况下得到12位的高精度;另一方面在定时中断内完全用软件实现PWM调节,以易于进行数据的通信和显示。该系统在中断内可以解决波形产生的实时在线计算和计算精度问题,可精确、实时地计算设定频率下的脉冲宽度。
  1 单片机MSP430F413及定时器
  MSP430系列的单片机F413在超低功耗和功能集成上都有一定的特色,可大大减小外围电路的复杂性,它的实时处理能力及各种外围模块使其可应用在多个低功耗领域[2]。MSP430F413中通用16位定时器Timer_A有如下主要功能模块。
  (1)一个可连续递增计数至预定值并返回0的计数器。
  (2)软件可选择时钟源。
  (3)5个捕获/比较寄存器,每个有独立的捕获事件。
  (4)5个输出模块,支持脉宽调制的需要。
  定时器控制寄存器TACTL的各位可控制Timer_A的配置,并定义16位定时器的基本操作,可选择原始频率或分频后的输入时钟源及4种工作模式。另外还有清除功能和溢出中断控制位。5个捕获/比较寄存器CCRx的操作相同,它们通过各自的控制寄存器CCTLx进行配置。
  2 时间量采样及PWM控制的实现原理
  以应用于温度控制系统为例,介绍用定时器实现信号采样和PWM控制的方法。该温度控制系统包括单片机、温度测量电路、负载驱动电路及电源控制、低电压检测和显示电路等其他外围部分。
  单片机MSP430F413中用于测量和控制温度的主要I/O口有:
  P1.0:输出50Hz方波,用于产生三角波。
  P1.2:驱动温度控制执行元件,2kHz方波PWM输出。
  P2.0:脉宽捕捉。
  2.1 单片机端口的中断设置
  温度控制系统的50Hz方波输出、PWM输出和输入捕捉都是由定时中断来实现。这3个中断分别由P0、P1和P2口的外围模块引起,属于外部可屏蔽中断。初始化时,对这3个I/O口进行中断设置,并对Time_A控制寄存器TACTL设置,包括输入信号2分频、选用辅助时钟ACLK等。当定义完捕获/比较寄存器后,重新赋值TACTL,启动定时器,开始连续递增计数。
  2.2 脉宽捕捉实现温度值的采样
  温度测量电路将温度值转换为电压值,同时单片机产生的50Hz方波经电容充放电电路变换得到同频率的三角波,其电压值切割三角波,从而将温度值转换为相应宽度的脉冲送入单片机。波形变化如图1所示。






  3? 软件设计
  3.1 系统主程序
  在主程序中包括系统初始化、定时器的初始化、温度采样值的读入、负载驱动和显示等。系统进行温度值采样和PWM输出均在定时中断内完成,PWM输出脉冲的占空比则由PID算法得到。系统主程序流程图如图3所示。






  PID调节程序直接写入单片机内,根据得到的值改变计数器CCR1的基数值,从而改变输出脉冲的占空比,达到调节PWM的目的。
  3.3 定时中断
  定时中断子程序流程如图4所示。系统采用的晶振频率为2MHz,T0中断的作用是得到频率为50Hz、占空比为90%的方波,用以产生三角波,并检查1个周期内是否有漏采的数据。T0模溢出翻转为高电平,输出比较间隔为18ms。其中,CCR0加了PWM的模,该值即为CCR0和CCR1的差值,用以产生输出所需的脉冲宽度。






  T1中断内处理的是控制端口的PWM输出,并检查1个周期内是否重复采集数据,T1输出比较产生低电平,输出比较间隔为20ms。T2中断捕捉温度测量端口的脉宽,得到所测的温度值。
  4? 结束语
  利用单片机MSP430F413内的定时器Time_A进行温度采样以及实现PWM调节的方法,可以广泛用于具有端口捕捉功能的单片机中。与传统方法比较,它不仅可以简化测量和控制电路的硬件结构,而且可以方便地建立人机接口,实现用软件调整参数,使控制更精确、实时、可靠。经过实验,该方法应用于温度控制系统中获得了预期的精确PWM调节波形。该方法同样可以用于其他单片机控制系统中。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-18 02:54 , 耗时 0.080484 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表