基于S3C2440A的直流电机转速控制系统设计
扫描二维码
随时随地手机看文章
直流电机作为一种动力产生装置,在工业及日常生活中得到了广泛应用。对直流电机的控制有两方面:转速与转向。ARM是近年来发展非常迅速的处理器,有着很好的应用前景。将ARM处理器应用于直流电机的转速控制,有极大的使用价值。本文将S3C2440A处理器应用于直流电机的控制,对系统的工作原理及工作流程进行了研究与设计。
1 PWM功能简介
PWM(Pulse Width Modulation,脉宽调制器)功能是由处理器提供的一种定时器。通过对PWM功能寄存器的设置,就可以设定占空比的大小、定时频率的高低,这样就可以通过控制电路来实现PWM输出。
PWM的一个优点是从处理器到被控制系统的信号都是数字形式的,无需进行数/模转换。让信号保持为数字形式可以将噪声影响降到最小,噪声只有在强到足以将逻辑1改变为逻辑0或者将逻辑0改变为逻辑1时,才能对数字信号产生影响。
对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除用于调制的高频方波并将信号还原为模拟形式。
PWM广泛应用在多种系统中。这里将其应用于直流电机的转速控制。
2 硬件设计
由ARM公司设计的采用RISC架构的ARM处理器性能强,功耗低,体积小,支持Thumb(16位)/ARM(32位)双指令集,指令执行速度快。目前ARM系列微处理器在32位RISC嵌入式产品中已经占据75%以上的市场份额。现在ARM已经发展到了ARM11系列,不过市场上应用最多的还是ARM9系列,其性价比也占有优势。
2.1 S3C2440A简介
S3C2440A是由Samsung公司推出的基于ARM920T内核的16/32位RISC处理器。此款处理器提供了丰富通用的片上外设,大大减少了系统电路中除处理器以外的元器件配置。S3C2440A有4路PWM定时器,1路内部定时器,8路ADC和触摸屏接口,130个通用I/O,24个外部中断源。最高工作频率可以达到400 MHz,完全能够完成设计要求。
2.2 硬件实现
为提高系统效率,降低功耗,功放驱动电路采用基于双极型H桥型脉宽调制方式(PWM)的集成电路L298N。L298N是SGS公司的产品,内部包含两个H桥高电压大电流桥式驱动器,接收标准TTL逻辑电平信号,可以驱动46 V,2 A以下的电机,工作温度范围-25~+130℃。L298N的内部结构如图1所示。
L298N可以同时驱动2个直流电机,在这里只需要用到1个,将电机放在OUT1与OUT2之间即可。其中EnA是控制使能端,控制OUT1和OUT2之间电机的停转。IN1,IN2脚接入控制电平,控制OUT1和OUT2之间直流电机的转动方向。当使能端EnA有效,IN1为低电平IN2为高电平时,三极管T2,T3导通,T1,T4截止,电机反转;相反当IN1为高电平IN2为低电平时,三极管T1,T4导通,T2,T3截止,电机正转。当IN1,IN2电平相同时,电机停转。
由于S3C2440A本身就带有4个PWM输出口,直接输出控制信号到L298N即可,无须另加电路。系统原理框图如图2所示。系统中选用了工作在中断模式下的定时器1作为产生PWM的定时器。通过编程设定I/O口GPB0作为定时器1输出PWM的端口,接入L298N的EnA端口,根据定时器1输出的PWM频率分别控制2个直流电机的转速。端口IN1连接GPB5,IN2连接GPB6。通过改变GPB5与GPB6电平的高低实现电机的正转与反转。电机的停止操作可以通过调制脉冲宽度为0即占空比为0或者关闭定时器的使能位实现。为保证L298N驱动芯片正常工作,还要在其与直流电机之间加入两对续流二极管用以将电机中反向电动势产生的电流分流到地或电源正极,以免反向电动势对L298N产生损害。
3 系统的软件设计
S3C2440A有5个16位的定时器。定时器0,1,2,3有脉宽调制功能。定时器4有一个没有输出引脚的内部定时器,定时器0有一个用于大电流设备的死区生成器。
定时器0和1共用一个8位预分频器,定时器2,3,4共用另一个8位预分频器。每个定时器有1个时钟分频器,可以生成5种不同的分频信号:1/2,1/4,1/8,1/16和TCLK。每个定时器模块从时钟分频器接收自己的时钟信号,其分频器从相应的8位预分频器接收时钟。8位预分频器是可编程的并且根据装载的值来分频PCLK,它的值存储在TCFG0和TCFG1寄存器。
3.1 定时器工作方式
在S3C2440A中,每个定时器都有自己的16位减法计数器,由定时器时钟驱动。当定时器使能,定时器计数缓存寄存器(TCNTBn)得到一个被装载到递减计数器中的初始值。定时器比较缓存寄存器(TCMPBn)有一个被装载到比较寄存器中用来和递减计数器的值作比较的初始值。TC-NTBn和TCMPBn的双缓存特点使得当频率与负荷比发生改变时,定时器可以有1个稳定的输出。
定时器的启动步骤如下:
(1)写初始值到TCNTBn和TCMPBn。
(2)设置对应定时器的手动更新位,反相器设置为off状态。
(3)设置对应定时器的启动位开启定时器,同时清除手动更新位。
此时定时器开始倒数,当定时器计数器为0时,定时器发出中断请求,通知处理器定时结束。此时,对应TCNTBn的值将自动载入计数器,从而可以进入下一个操作。如果定时器已经停止,清除TCONn中的定时器使能位,则TCNTBn中的值将不会被载入到计数器中。
3.2 PWM脉宽调制
对于定时器来说,其时钟源输入频率一般不变。电动机的转速与电机两端的电压成正比,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成正比,占空比越大,电机转速越快。而S3C2440A系统中PWM频率由TCNTBn决定,PWM脉冲宽度由TCMPBn决定,占空比即为TCMPBn/TCNTBn。
如果使电机转速下降,可以减少TCMPBn的值;相反可以增加TCMPBn的值。由于双缓冲的特性,为了获得下一个正确的PWM周期,可以在当前PWM周期的任意点通过ISR或其他程序来写TCMPBn。
S3C2440A设置PWM的流程图如图3所示。
具体实现方法与步骤:
(1)I/O口设置是对PE口的工作方式进行设置,使之工作在定时器输出状态。
(2)对定时器时钟源频率进行设定。
(3)设置输出波形频率。
(4)设置占空比。
(5)设置定时器控制寄存器并启动定时器,定时器启动后可以采用示波器观察输出波形是否满足要求。
3.3 实验结果
在实验中设置PWM输出频率为1 000 Hz时,电机能平稳转动。此时改变占空比,电机的转速能随之改变。用数字示波器观察,频率为1000 Hz占空比为80%的PWM输出调制波形如图4所示,修改占空比为40%时的输出波形如图5所示。在图4与图5中,横坐标表示时间,单位:μs;纵坐标表示电压,单位:V。同样,也可以用数字示波器观察其他占空比时的调制波形。
4 结论
从整体上看,本文设计的直流调速系统可以很方便地实现对电机转速以及转向的控制。但为了实现更精确的控制,可以采用转速与电流双闭环结构。通过实验表明,利用S3C2440A的PWM控制部分完全可以实现对直流电机转速的控制,采用在ARM嵌入式系统上的C语言编程实现,充分利用了现有的集成芯片的强大功能,省去了许多硬件电路,使整个控制系统得到了大大的简化。