推广 热搜: 西门子PLC  危化品安全,爆炸  变送器  培训  PLC  电机  变频器  触摸屏  服务机器人  阀门 

基于S3C2410的直流电机PWM调速系统

   日期:2013-03-23     来源:工控之家网    作者:工控之家    浏览:79    评论:0    
摘 要: 本文介绍了一种基于S3C2410微控制器的直流电机调速系统。文章在介绍PWM调速原理的基础上详细说明了S3C2410的PWM发生器的结构特点及其使用方法。并给出了实现调速的核心代码及调速系统的总体设计。

关键词: S3C2410; PWM; 调速

0 引言

  PWM(Pulse-Width Modulation)是脉宽调制技术的简称。PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术广泛应用的控制方式,也为高性能的直流电机数字化控制提供了基础。

1 PWM调速原理

  晶体管开关器件的导通时间也被称为导通角 ,通过控制晶体管的开通与关断时间来改变导通角 的大小,就可以调节加在负载上的平均电压的大小,以实现对直流电机的调速,这就是PWM变速控制技术的基本原理,如图一所示。调速控制常通过调节脉冲宽度的方法来实现。


图1 PWM调速原理

  

2 S3C2410的PWM发生器

  2.1 PWM发生器的结构和计时原理

  用分立器件组成PWM电路一般来说需要如下几个部分:三角波产生电路、脉冲调制电路、PWM信号延迟及分配电路。S3C2410做为一款功能强大的微处理器,其内部已经集成了包含上述三个部分的PWM发生器,只要对相关寄存器进行简单的设置,就可以产生需要的PWM信号。

  S3C2410的定时/计数器0~3都具有PWM输出功能,以定时/计数器0为例说明。时钟信号PCLK经过可编程的8位预分频器和时钟除法器分频后,驱动定时器内的逻辑控制器进行工作。逻辑控制器的核心,是一个16位的减法计数器。

  我们可以赋于计数缓冲寄存器(TCNTB0) 和比较缓冲寄存器(TCMPB0)不同的初始值,当定时器使能时,这两个寄存器中的数据将被分别载入到减法计数器(TCNT0)和比较寄存器(TCMP0)。计数缓冲寄存器和比较缓冲寄存器的设计思想在S3C2410中被称为“双缓冲”,它的优点是在频率或占空比改变时,定时器仍然能产生稳定的输出。

  计时过程如下:从PCLK过来的时钟信号到达逻辑控制器时,减法计数器的值自动减1,当减法计数器的值为0时,定时器会向CPU发送中断请求,一轮计时操作完成。在自动装载模式下,计数缓冲寄存器中的初始值会由硬件控制自动载入减法计数器,进行下一轮的计时操作。

  2.2 PWM发生器的原理

  比较缓冲寄存器(TCMPB0)中设定的初值是用来产生PWM信号的. 信号的产生规则是:每当TCNT0的值和TCMP0的值相等时,定时器的输出逻辑电平翻转。PWM脉冲频率由TCNT0决定,而脉冲宽度由TCMP0决定。TCMP0的值越大,PWM脉冲的占空比越大,也即平均输出电压越大,反之亦然。

  2.3 死区(Dead Zone)发生器

  为了能够控制较大功率的设备,PWM发生器中还集成了死区发生器。这一特性用于在开关设备的断开和另一个开关设备的闭合之间插入一个时间缺口,使它们不会处于同时闭合的状态。如图2所示:


图2 死区发生器的保护作用

  已知TOUT0是定时器0的PWM输出引脚,而TOUT1是TOUT信号的反相输出引脚,如果开启了死区发生器功能,那么TOUT0和TOUT1的输出波形就不可能同时为高电平了,这样就有效的防止了开关设备同时闭合时的输出短路情况。

3 PWM发生器程序

  PWM发生器的寄存器配置和控制过程如下:

  // 定义死区宽度和预标定值

  #define PRE_SCALER0 (2 << 0)

  #define DEAD_ZONE (20 << 16)

  // 和定时控制有关的宏定义

  #define START_TIMER0 (1 << 0)

  #define UPDATE_CFG (1 << 1)

  #define AUTO_RELOAD (1 << 3)

  #define ENABLE_DEADZONE (1 << 4)

  // 定时缓冲器初值1024,电机调速步长 2

  // 可进行1024/2 = 512级调速

  #define MOTOR_COUNT (1024)

  #define MOTOR_STEP (1)

  // 用来控制转速的静态变量

  static int nSpeed =0;

  /* 初始化PWM发生器 */

  void InitPWM()

  {

  /* TOUT0 对应着 GPB0,TOUT1对应着GPB1,因此初始化GPB0/1为第二功能端口 */

  rGPBCON = rGPBCON & 0x3FFFF0 | 0xA;

  /* 死区为24个计时单位,预分频器设置为 0,时钟除法器和MUX分配器取默认值 */

  rTCFG0 = DEAD_ZONE | PRE_SCALER0;

  /* 设置计数缓冲寄存器初值、比较缓冲寄存器初值*/

  rTCNTB0 = MOTOR_COUNT;

  rTCMPB0 = MOTOR_STEP * nSpeed;

  /* 计时器0停止,更新配置 */

  rTCON = (~ START_TIMER0) | UPDATE_CFG;

  /* 使能死区发生器,进入自动装载模式,计时器0启动 */

  rTCON = NABLE_DEADZONE | AUTO_RELOAD | START_TIMER0;

  }

  这样,TOUT0和TOUT1引脚上就会输出带有死区的PWM波形。通过控制变量nSpeed的值,就可以调节PWM的占空比,从而调节了电机的转速。

4 调速系统总体设计

  系统由S3C2410系统板、光耦、光电编码器、功率驱动电路和直流电机组成,如图3所示。


图3 调速系统结构框图

  S3C2410作为主控制器,通过TCP/IP协议和中央控制室通信,负责接收控制命令和报告系统状态。S3C2410的定时器0做为PWM发生器,光耦用于光电隔离,有效的抑制了后向通道的干扰,功率驱动电路提供给电机“H”桥式驱动,光电编码器将采样到的电机转速转化为数字信号,反馈给S3C2410,用来实现闭环控制。为减小误差,程序中应该对光电编码器传来的电机转速数据进行均值滤波处理。

5 结束语

  使用S3C2410的PWM发生器对小型直流电机的转速进行控制,电路简单,使用方便,并可以由软件实现灵活的控制算法以提高系统性能。S3C2410内建的强大通讯和I/O功能使得只需加入少量电路即可以方便的和外界以TCP/IP、无线射频、串口等方式通讯并加以LCD显示,使控制更加便利和可靠。

参考文献:

  [1] 李志宁,张英堂. PLC中PWM功能模块的应用研究 [J].微计算机信息,2006(25):42-45.

  [2] 于明. ARM9嵌入式系统设计与开发教程 [M]. 北京:电子工业出版社,2006.

  [3] 周立功.ARM嵌入式系统实验教程 [M]. 北京:北京航空航天大学出版社,2004.

  [4] 吕达昱,竺长安. 一种利用PIC实现PWM控制的方案 [J]. 机床与液压,2004(11):133-134.

  [5] 姜长泓,于万元. 基于AVR单片机的直流电动机的PWM调速系统设计 [J]. 仪器仪表用户,2006,2(42).

 
打赏
 
更多>同类技术
0相关评论

推荐图文
推荐技术
点击排行
网站首页  |  免责声明  |  联系我们  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  鲁ICP备12015736号-1
Powered By DESTOON