小型风力发电控制器设计
3.6 看门狗电路的选型
89C51的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。只要在复位引脚RST出现两个机器周期以上的高电平时,单片机内部则初始复位。只要RST引脚保持高电平,则89C51循环复位。只有RST变成低电平时,它才从0000H地址开始执行程序[14]。21个特殊功能寄存器复位后的状态为确定值。表3.3中符号*为随机状态。
特殊功能寄存器
A B PSW SP DPL DPH P0~P3 IP IE
表3.3 特殊功能寄存器复位后的状态 初始状态 00H 00H 00H 07H 00H 00H FFH ***00000B ***00000B
特殊功能寄存器
TMOD TCON TH0 TL0 TH1 TL1 SCON SCON PCON
初始状态 00H 00H 00H 00H 00H 00H 不定 00H 0*******B
目前,监控电路在微处理器中已得到广泛的应用,它可以有效的防止程序的“跑飞”,并自动将系统复位。当外来干扰导致数据总线、I/O 总线或控制总线上的数字信号错乱时, 将引发一系列的后果 , 特别是程序指针计数器 PC 值受到干扰而改变时,将引起程序“跑飞”,使系统出现死机或其他一些不可预知的情况。
常用的看门狗主要有2种:软件狗和硬件狗。①软件狗实际上就是通常所说的软件陷阱,是纯软件的处理方法。它是在程序存储器的空余地址中全部填上1条跳转指令,一旦程序跑飞,只要程序指针指向这些地址,便立即被强行跳转至程序开头或其他指定地址处,从而使程序继续正常执行。②硬件狗现在更多地被采用。所谓硬件狗,就是一个能够发出“复位”信号的计数器或定时器电路。设计中看门狗复位电路的工作原理是:喂狗引脚P2.0每隔1.6s发出一个脉冲,计数器对脉冲进行计数。程序正常运行时,CPU在计数器溢出之前通过I/O口对计数器清,使计数器不能溢出。一旦程序运行出现异常,不能及时对计数器清零,计数器将发生溢出。此时,由于溢出端RES处于高电平与CPU的RST端相连接,所以使单片机系统“复位”,使其能够重新正常运行。单片机系统的供电电源有时候因为各种原因而不稳定,发生电压波动或瞬间掉电的现象,从而影响系统的正常工
11
小型风力发电控制器设计
作和数据保存。如果能对电源电压进行监视,当电源电压下降到某一特定值时,发出1个信号给单片机和电源切换电路,那么就能使CPU及时进行必要的操作和维持工作电源的稳定。
MAX813L 是美国 MAXIM 公司生产的低价格单片机监控电路。它减少了在微处理器系统中采用分离元件来实现监控功能所用的元器件数量和复杂性, 并能提高系统的可靠性和准确性。它除有看门狗作用以外,还有电源电压检测的功能。
图3.6 MAX813L
3.7 信号转换电路的选型
转换电路是数模信号和模数信号的转换,数模转换使用DAC0832;模数转换器使用ADC0809。
在单片机的实时控制和智能仪表等应用系统中,控制或测量的有关变量往往是一些连续变化的模拟量,如温度、压力、流量、速度等物理量[15]。这些模拟量必须转换成数字量后才能输入到单片机中进行处理。单片机处理的结果,也常常需要转换成模拟信号,若输入的是非电量模拟信号还需经过传感器或电位器转换成模拟电信号。实现模拟两转换成数字量的器件称为模拟转换器(ADC),数字量转换成模拟量的器件称为数模转换器(DAC)。
数/模转换器,也就是说单片机通过数据总线将某个数字量送入D/A,D/A就输出一个与数字量成比例的模拟电压或电流。那么,这种转换精度是多少呢?转换能在多快时间内完成呢?这就是我们在选择D/A时首先要考虑的问题。
D/A转换的精度主要决定于D/A的分辨率,但是其前提条件是电源及参考电源必须稳定,否则达不到应有的精度。此外应该说明的是,D/A实际输出值在满量程时比标称值小一个最小位。如一个10位D/A,参考电压为-5V,当10位输入全为1时,标称值为+5V?1023/1024=4.995V;当D/A输入的10位全部为0时,由于存在零点误差,D/A输出与OV有一定偏差,常采用片外调零电位器使之为零。
D/A器件中有电阻网络、模拟开关、驱动电路。从D/A输入数据到D/A输出模拟电压或电流是需要一定时间的,这个时间除了受器件本身特性制约外还和数字量的变化幅值有关。当输入数字量从全部为0到全部为1(或反之),输出建立时间最长,不同的器件,建立时间可以从几十纳秒到几十微秒不等,设计中应根据控制对象对时间响应的不同要求加以选择。在这里采用的是12位的ADC574和8位的DAC0832.因为在本系统中,最
12
小型风力发电控制器设计
高采样电流为50A,显示的精度为0.1A,50/2048=0.024,故选用的是ADC574满足精度。D/A输出的最大值为2.3V,2.3/256=0.009.故DAC0809满足精度。它是和单片机兼容的8位 D/A芯片,其输出电流建立时间为 1微秒,工作电源+5V~+15V,功耗为 20mw。
3.7.1 DAC0832及其转换电路
DAC0832引脚如图3.7所示。DI0~DI7:8位数据输入端;ILE:数据允许所存信号;WR1:输入寄存器写信号;XFER:数据传送信号;WR2:DAC寄存器写信号;Vref:基准电压输入引脚;Rfb:反馈信号输入端;Iout1:电流输出1端;Iout2:电流输出2端;VCC:电源;AGND:模拟地。
由于DAC0832是电流输出型的,而且与之相连接的芯片输入输出都是电压信号,所以常用运算放大器转换成电压信号。转换电路如图3.7所示:
图3.7 DAC0832管脚图及其连接图
3.7.2 A/D转换器及外围电路
ADC0809是National半导体公司生产CMOS材料的A/D转换器。它具有8个通道的模拟量输入线,可在程序控制下对任意通道进行A/D转换,得到8位二进制数字量。 引脚图如图3.8。
13
小型风力发电控制器设计
图3.8 ADC0809的引脚图
ADC0809是8位A/D转换芯片,它是采用逐次逼近的方法完成A/D转换的。ADC0809由单一+5V电源供电;片内带有锁存功能的8路模拟多路开关,可对8路0~5V的输入信号分时进行转换,完成一次转换需100μS;片内具有多路开关的地址译码器和锁存器、高阻抗斩波器、稳定的比较器,256R电阻T型网络和树状电子开关以及逐次逼近寄存器。输出具有TTL三态锁存缓冲器,可直接接到单片机数据总线上;通过适当的外接电路,ADC0809可对0~5V的双极性模拟信号进行转换[16]。
D7~D0: 8位数字量输出引脚;INT0~INT7:8路模拟量输入引脚;VCC:+5V工作电压;GND:地;REF(+):参考电压正端;REF(-):参考电压负端;START:A/D转换启动信号输入端;ALE:地址锁存允许信号输入端;EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平;OE:输出允许控制端,用以打开三态数据输出锁存器;CLK:时钟信号输入端。A、B、C:地址输入线,经译码后可选通INT0~INT7八通道中的一个通道进行转换。
ADC0809与AT89C51接口电路设计:
由于ADC0809片内无时钟,可利用AT89C51提供的地址锁存允许信号ALE经D触发器二分频后获得,ALE脚的频率是AT89C51时钟频率的1/6。单片机时钟频率采用6MHz,则ALE脚的输出频率为1MHz,再二分频后为500KHz,恰好符合ADC0809对时钟频率的要求。地址译码引脚A、B、C分别与地址总线的低三位A0、A1、A2相连,以选通IN0~IN7中的一个通路。将P2.6作为片选信号,在启动A/D转换时,由单片机的写信号和P2.6控制ADC的地址锁存和转换启动,由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时,启动并进行转换。由图3.9可知,P2.6与ADC0809的ALE、START和OE之间有如下关系:
ALE?START?WR?P2.1
14
小型风力发电控制器设计
OE?RD?P2.1
可见P2.6应设置为低电平。在工作过程中ADC0809处于随时选通的状态。
本设计采用的是查询方式的接法,图3.9所示为ADC0809与AT89C51的接口电路。
图3.9 ADC0809与AT89C51的接口电路
3.8 8155A接口电路
由于单片机I/O口有限,所以采用8155芯片扩展89C51单片机的I/O口,用8155芯片管理键盘和显示电路。8155内部RAM用于控制参数的存储,PA、PB口用于发光二极管示,PC口用于键盘输入。
图3.10 8155引脚图
15