ATmega8有如下特点:8K字节的系统内可编程Flash(具有同时读写的能力),512字节的EEPROM,1K字节的SRAM,支持片内调试与编程,两个具有比较模式的带预分频器( Separate Prescale)的 8位定时/计数器,一个带预分频器,具有比较和捕获模式的 16位定时/计数器,三个PWM通道,可实现任意<16位、相位和频率可调的PWM脉宽调制输出,片内/外中断,一个可编程的串行USART接口,支持同步、异步以及多机通信自动地址识别,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个支持主/从(Master/Slave)、收/发的SPI同步串行接口。[17]
本课题中首先由单片机、复位电路、晶振电路以及ISP程序下载接口组成节点的单片机最小系统,单片机及基本外围电路如图3.1所示。
图3.1 节点单片机及外围电路
3.1.2 复位电路
在上电或复位过程中,要控制单片机的复位状态,复位状态要保持一段时间,而不是一上电或刚复位完毕单片机就工作,防止单片机发出错误的指令、执行错误操作。
单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
该最小系统采用RC上电复位电路,同时利用按键给出手动复位功能,由电容串联电阻及一个按键组成,由于ATmega8单片机的复位电平为低电平,由电容电压不可突变的性质可知,当上电后RESET引脚会出现低电平,其持续时间为电容C9的充电时间,RC的值可以决定RESET引脚低电平持续的时间选R3为10K,C9为10μF即可使单片机可靠复位。
3.1.3 晶振电路
本系统中节点的主要功能是对数据的采集和传输,而对时间的精度要求并不很高。晶振的选取会影响到数据传输的波特率和时间精度,因此在晶振选取是主要考虑的是怎样可以得到准确的波特率,本系统中通讯采用的是USART异步正常模式,波特率具体计算方法如下:
BAUD=fOSC/16(UBRR+1)
式中BAUD为波特率,fOSC为晶振频率,UBRR为波特率寄存器。在通讯过程中采用9600bps波特率。若采用12 MHz晶振时计算UBRR为77.125,由于UBRR只能为整数因此取77,这样会有2%的误差。采用11.0592MHz晶振则计算出来的UBRR为71,此时误差为0。因此选用11.0592MHz晶振作为系统的外部时钟源。
3.1.4 ISP程序下载接口电路设计
ISP(In-System Programming)在线系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或者再编程[13],同时该接口还有对其熔丝位进行配置的功能,ATmega8单片机就具有在系统可编程的功能,因此在使用时非常方便。
在ATmega8中有两个熔丝位字节,对这两个字节的配置可以设置单片机不同的功能模式,例如时钟源的选择,启动时间的选择,WDT的开关选择等等。在为单片机烧写程序之前需要对时钟源进行配置,因为单片机默认的情况下使用的是内部晶振,而在本系统中要使用的是11.0592MHz的外部晶振。
3.2 信号电平转换电路设计
在节点系统的调试过程中需要单片机与电脑通讯,由于电脑的串口通讯协议标准采用的是RS232电平标准,而单片机的输出电平是TTL电平标准,两者不匹配,因此需要信号电平转换电路进行转换,在本硬件设计中选用MAXIM公司生产的MAX232CPE作为RS-232C数据收发器。MAX232CPE是MAXIM公司专门为RS232标准串口设计的单电源电平转换芯片,其内部有2个发送驱动器(TX),2个接收器(RX)和两个充电泵,充电泵的作用是把+5V直流电压转换成±l0V直流电眼。MAX232CPE低功耗,抗干扰能力强,具有±15KV ESD保护,并且能支持到120K波特率的数据传输,能很好地解决PC机和单片机电平不匹配问题,并且它的集成度高,片外只需4个电容就可工作。电路如图3.2所示。 ATmega8单片机温室环境多参数测控系统无线节点软硬件设计(7):http://www.youerw.com/tongxin/lunwen_3961.html