SA8281采用常用的对称的双边缘采样法产生全数字化PWM波形,无时漂,无温漂,具有很高的精度和温度稳定性。
有6个标准的TTL电平输出,用来驱动逆变器的6个功率开关器件。
工作频率范围宽,精度高,三角载波频率可调。
工作方式灵活,在电路不变的情况下,直接通过软件设定载波频率、调制频率、调制比、最小脉宽、死区时间等工作参数就可改变逆变器的性能指标,驱动不同负载或工作于不同工况。可通过改变输出SPWM脉冲的相序实现电机的正反转,通过调制达到输出频率为OHz而给电机绕组通一直流电,实现电机的“直流插入制动”。
独立闭锁端可瞬时闭锁输出SPWM脉冲,可处理电机突发情况的发生。
波形存储在内部ROM中,可以选择可删除的最小脉宽和死区时间。
4.2 控制硬件电路的实现
控制电路部分采用的单片机为ATMEL公司推出的AT89C51,它采用CMOS结构,耗能低,抗干扰能力强,与MCS一5l系列完全兼容,且功能比一般的51系列芯片要强大许多。其内部含有128字节的RAM和4K字节的EPROM完全满足系统需要,不用外加RAM或EPROM存放数据或程序,但需要设定和保存的参数则存放在一片EEPROM中[ 5]。
正弦波发生器的原理图如图7所示,它以SA828l作为三相正弦波的发生芯片,单片机AT89C51作为SA8281的控制芯片。SA828l将大部分外围电路都集成在芯片内部,可以看出SA8281与微处理器接口简单,控制电路非常简单,结构紧凑,这样做从另一方面来讲对芯片工作的稳定性有很大帮助,提高了可靠性。
从整个电路来说,实现对SA828l的控制是通过按键输入相应的信息。本电路的设计要对SA8281输入初始化参数和控制参数,所以用到了三个按键0#键、1#键和2#键。在主程序中判断键号用的是查询式,0#键按下转入初始化子程序:l#键按下转入加速子程序:2#键按下转入减速子程序。
AT89C51是地址与数据总线复用类的单片机,为了隔离潜在的噪音干扰,设置输出断开引脚SETTRIP在通常情况下接地,同时设置了开关,便于在紧急情况下迅速关断所有PWM输出;为使PWM输出处于有效状态,输出关断引脚 接高电平[ 6]。外部时钟CLK引脚接独立的12M有源晶振为SA8281芯片提供一时钟基准用于控制与PWM有关的各时序。
4.3控制电路软件设计
对SA8281芯片的控制是通过微处理器接口将相应的参数送入芯片内部两24位的寄存器R4、R3来实现的,它们是初始化寄存器和控制寄存器。数据先被读入一系列临时寄存器R0~R2中,然后通过一条虚拟的写操作将数据传送至相应的R4,R3寄存器。
初始化寄存器用于设定和电机及逆变器有关的一些基本参数。在正常情况下,这些参数在电机工作前就被初始化(例.在PWM输出允许前),并且在电机工作时一般不允许改变。
控制寄存器在工作过程中控制输出脉宽调制波的状态,从而进一步控制电机的运行,比如转速、正/反转、启动和停止等。通常在电机工作时该寄存器内容经常被改写以实现对电机的实时控制。程序流程图下面分别进行说明:
4.3.1主程序
主程序判断键号用的是查询式:
O#键按下转入初始化子程序;1#键按下转入加速子程序;2#键按下转入减速子程序。
另外为了防止误操作增加了延时去抖动的再次判断键号环节。主程序流程图如图8所示: