摘要:介绍采用Intel8253型微型计算机接口电路产生脉冲宽度调制波,并使用L298N型桥式驱动器,实现对直流电机的一种简单有效的PWM调速方法。
关键词:Intel8253; L298N: 脉冲宽度调制:PWM
1 引言
脉冲宽度调制(Pulse Width Modulation—PWM)是指将输出信号的基本周期固定,通过调整基本周期内工作周期的大小来控制输出功率。原理就是开关管在一个周期内的导通时间为t,周期为T,则电机两端的平均电压U=Vcc t/T=aVcc。其中,a=t/T(占空比),Vcc是电源电压。电机的转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空比越大,电机转得越快。
PWM常取代数/模转换器(DAC)用于功率输出控制,其中,直流电机与交流电机的速度控制是最常见的应用。通常PWM配合桥式驱动电路实现直流电机调速,非常简单,且调速范围大。
图1
2 Intel8253的内部结构及工作模式
2.1 Intel8253的内部结构
Intel8253是微型计算机外围接口电路,内部包含3个彼此独立的16位减法计数器。每个计数器都可由软件确定为16位二进制减法计数器或者十进制4位BCD减法计数器。每个计数器都有6种不同的工作模式,也由软件确定。每个计数器都有一个时钟输入端(CLK)、一个门控信号输入端(GATE)和输出端(OUT)。读写由A1、.A0、RD、WR和CS等引脚加以控制,主要用以控制Intel8253的数据与命令的写入、读取与禁止。Intel8253的引脚排列如图l中的U3所示。
2.2与PWM有关的工作模式
与PWM有关的工作模式是模式l和模式2。
(1)模式1
当某计数器设置在模式1以后,微型计算机可以通过二条输出指令将16位数据M送入该计数器。这时该计数器的输出端并无任何响应。一旦该计数器的门控输入端脉冲上升沿到时,它的输出端立刻输出一个宽度为MT的负向脉冲,如图2所示。
(2)模式2
当某计数器设置在模式2以后,微型计算机可以通过二条输出指令将16位数据Ⅳ送入该计数器。输出指令结束后,该计数器立即输出周期为NT的连续方波,如图3所示。
如果将8253的计数器0和计数器1分别设置在模式2和模式1,并按图4所示连接,就可以得到一个十分简单的脉宽调制发生器。工作开始前,先将常数Ⅳ送入计数器0,再将常数M送入计数器1中(M<N),于是计数器0将输出周期为NT的连续方波。计数器1的门控输入端每隔NT时间接到一次正跳变信号。因此,每隔NT时间计数器l将输出一个宽度为Mr的负向脉冲。因此,通过改变M与N可以得到一个占空比可调的PWM波。
2.3 PWM程序
Intel8253的读写控制逻辑由A1、A0、RD、WR和CS等引脚加以控制,其中,端口选择信号A1、A0决定3个计数器、控制寄存器中哪一个进行工作,A1,A0:00—10 CPU选择加一#2计数器进行读/写,11 CPU将控制字写入Intel8253。
Intel8253的控制寄存器如下:
SC1 |
SC0 |
RW1 |
RW0 |
M2 |
M1 |
M0 |
BCD |
M2,M1,MO:000—101选择工作模式0-5
SCl,SC0:00-10选择计数器#o-#2,11回读命令
BCD:0对应二进制计数,1对应BCD计数
RWl,RW0:00锁住计数器稳定读数,01只读/写低8位字节,10只读/写高8位字节,1l先读/写低8位字节,后读/写高8位字节。
…….
mov dptlr,#Ofe03h:对8253控制寄存器初始化
nov a,#34h 选择计数器0、工作模式2
movx@dotr,a 先读/写低8位后读/写高8位
mov dptr,#0fe00h:向计数器0送低8位数据80H
nov a,#80h
movx@dptr,a
mov dptr,#0fe00h:向计数器0送高8位数据00H
nov a,#00h
movx@dptr,a
nov dotr,#Ofe03h:对8253控制寄存器初始化
mov a,#72h 选择计数器1、工作模式l
movx@dptr’,a
mov dpu,#0fe01h;向计数器1送低8位数据20H
nOV a,#20h
movx@dptr,a
nov dptr,#Ofe01h:向计数器1送高8位数据00H
nov a,#00h
movx@dptr,a
……
根据以上程序,可以得到占空比为
a=t/T=0020H/0080H=25%
同理。将Intel8253的计数器0和计数器2分别设置在模式2和模式1,并按图4的连接方法也可以得到另一个PWM2。
3 L298N型驱动器的原理及应用
L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其引脚排列如图1中U4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信
表1 1298N的逻辑功能
ENA(B) |
INl(IN3) |
IN2(IN4) |
电机运行情况 |
H |
H |
L |
正转 |
H |
L |
H |
反转 |
H |
同IN2(IN4) |
同INl(IN3) |
快速停止 |
L |
X |
X |
停止 |
号。L298可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。1298的逻辑功能如表1所列。
如图1所示,:Intel8253输出二组PWM波,每一组PWM波用来控制一个电机的速度.另外二个I/O口可以控制电机的正反转.控制方法与控制电路都比较简单。即P10、P11控制第一个电机的方向,输入的:PWMl控制第一个电机的速度;P12、P13控制第二个电机的方向,输入的PWM2控制第二个电机的速度。
由于电机在正常工作时对电源的干扰很大,只用一组电源时会影响单片机的正常工作。所以选用双电源供电。一组5V电源给单片机和控制电路供电,另外一组5V、9V电源给L298N的+VSS、+VS供电。在控制部分和电机驱动部分之间用光耦隔开,以免影响控制部分电源的品质。
图1就是一个实现智能小汽车的应用电路。D1、Q1是一对红外发射接收对管,与LM324构成光电传感检测电路。通过Intel8253和1298N可实现汽车的加速、减速、刹停,并可通过两个电机的不同转速实现左转和右转等功能。