2997.基于AVR单片机的电力谐波分析系统设计 毕业设计论文.doc
基于AVR单片机的电力谐波分析系统设计源代码联系本人摘要随着国民经济的发展,电网中各种非线性负荷及用户不断增长;各种复杂的、精密的,对电能质量敏感的用电设备越来越多。上述两方面的矛盾越来越突出,在这样的环境下,探讨电能质量的分析方法,可以为分析我国电能质量管理和控制的发展趋势提供必要的依据,具有很强的现实意义。本设计采用ATMEL公司的ATmega32L单片机完成一个电能质量检测系统。电压信号经过变压器隔离降压,幅值较低的交流信号再通过运算放大器构成的加法器变成可供A/D转换电路转换的直流信号。单片机使用内部的定时器每1/3200秒对电压信号采样一次,用片内自带的10位精度A/D转换器对每周波的电压信号采样64个点后,进行FFT运算,FFT的运算过程采取查表法进一步提高运算速度,分析出小于21次的各次谐波的含量,并计算出电压信号的有效值(RMS),将谐波分析结果通过RS-232串行接口上传到上位机并显示存储。通过对硬件软件的调整,使输出的结果达到相应的要求,然后对实际谐波信号分析,对结果进行进一步数据处理,以提高结果的准确性。最后本文简单介绍了一下提高谐波检测精度的硬件和软件措施。关键词:电能质量,谐波,单片机,FFTA Harmonic analysis system design based AVR MCUABSTRACTAlong with the development of national economy, and the highly automatization of the production process, so in the electrical network, all kinds of non-linear loads and users continuously growing; there are more and more kinds of electro-equipments which are complicated, precise, and sensitive to the electrical energy quality. Contradictions of these two aspects become more and more prominent, under such environment, exploring the analyzing methods which discussed electrical energy quality, may provides the necessary basis for analyzing the tendency of Chinas electrical energy quality management and control. It obviously has significance to the realism. This design uses the ATmega32L Microcontroller of ATMEL Corporation to complete an electrical energy quality examination system. The voltage signal steps down after the transformer isolation, the lower breadth Alternating signal re-passes the summing circuit, which constituted by operational amplifier, become the direct current signal, which may supply the A/D switching circuit transforms. MCU uses interior timer sample voltage signal every 1/3,200 second, uses the internal 10 bit precisions A/D switcher sample voltage signal of each cycle for 64 spots, carries on the FFT operation, the FFT operation process adopts look-up table method to enhance the operating speed, analyzes the Harmonic content which is smaller than 21 times, and calculates the RMS(Root-mean-square value) voltage of signal, upload the Harmonic analysis result through the RS-232 serial interface on Epigyny Computer and demonstrate the storage.Through the adjustment of the hardware and software to enable the outputresult achieve the corresponding request, then analyze the actual harmonicsignal and carry on the result for a further data processing in order toenhance the accuracy of result. Finally, this article briefly introducesthe hardware and software measures for harmonic examination.KEY WORDS:power quality, harmonics,Microcontroller,FFT目 录中文摘要IABSTRACTII1.绪论11.1课题背景11.2衡量电能质量的主要指标11.3电能质量问题的产生11.4电能质量的国家标准21.5本设计需要完成的主要任务22.谐波分析基础42.1傅立叶分析概要42.2傅立叶级数42.2.1周期函数傅立叶级数的三角函数形式42.2.2傅立叶级数的指数函数形式52.3采样信号的傅立叶变换62.3.1采样定理62.3.2采样信号的傅立叶变换62.4离散傅立叶变换(DFT)与快速傅立叶变换(FFT)72.4.1DFT72.4.2FFT82.5时抽选奇偶分解FFT计算的一般规则122.5.1基2时抽选奇偶分解FFT对输入序列的要求122.5.2输入序列的码位倒置122.5.3即位运算122.6时抽选奇偶分解FFT的C语言程序实现132.6.1变量的设置与定义132.6.2逆序部分132.6.3FFT计算133.谐波分析系统的硬件电路设计153.1硬件电路的系统设计任务153.2单片机选型153.3电源电路173.4最小系统设计173.4.1复位电路183.4.2时钟信号电路183.4.3A/D转换滤波电路193.4.4ISP接口193.4.5熔丝位设置193.5信号预处理电路213.6TTL与RS232电平转换电路与接口224.谐波分析软件设计244.1程序总体框架244.2常量与变量定义254.3寄存器初始化254.4A/D采集与存储264.5谐波分析处理264.5.1电压有效值264.5.2各次谐波含量274.6上位机通信284.7软件上的抗干扰设计305.提高分析精度方法的研究315.1计算结果的处理315.2提高信号检测的质量325.3采用更先进的数字信号处理技术33结 论34致 谢36参考文献37附 录A:英文翻译原文38附 录B:英文翻译译文48附 录C:谐波分析软件源程序55附 录D:谐波分析系统硬件电路图601. 绪论1.1 课题背景随着国民经济的发展,科学技术的进步和生产过程的高度自动化,电网中各种非线性负荷及用户不断增长;各种复杂的、精密的,对电能质量敏感的用电设备越来越多。上述两方面的矛盾越来越突出,用户对电能质量的要求也更高,在这样的环境下,探讨电能质量的分析方法,可以为分析我国电能质量管理和控制的发展趋势提供必要的依据,具有很强的观实意义。设计采用AVR单片机完成一个电能质量检测系统,性能要求可以测量谐波小于等于21次,将谐波分析结果通过RS-232接口上传到上位机并显示存储。1.2 衡量电能质量的主要指标由于所处立场不同,关注或表征电能质量的角度不同,人们对电能质量的定义还未能达成完全的共识,但是对其主要技术指标都有较为一致的认识。(1) 电压偏差(voltage deviation):是电压下跌(电压跌落)和电压上升(电压隆起)的总称。(2) 频率偏差(friquency deviation):对频率质量的要求全网相同,不因用户而异,各国对于该项偏差标准都有相关规定。(3) 电压三相不平衡(unbalance):表现为电压的最大偏移与三相电压的平均值超过规定的标准。(4) 谐波和间谐波(harmonics & inter-hamonics):含有基波整数倍频率的正弦电压或电流称为谐波。含有基波非整数倍频率的正弦电压或电流称为间谐波,小于基波频率的分数次谐波也属于间谐波。(5) 电压波动和闪变(fluctuation & flicker):电压波动是指在包络线内的电压的有规则变动,或是幅值通常不超出0.91.1倍电压范围的一系列电压随机变化。闪变则是指电压波动对照明灯的视觉影响。因社会进步,电力电子器件使用增长迅速,造成谐波问题严重,因此本设计考虑的主要是实现谐波的分析和电压有效值的测量。1.3 电能质量问题的产生电能质量问题是众多单一类型电力系统干扰问题的总称,其实质是电压质量问题。电能质量问题按产生和持续时间可分为稳态电能质量问题和动态电能质量问题。随着电力系统规模的不断扩大,电力系统电能质量问题的产生主要有以下几个原因。一电力系统元件存在的非线性问题 电力系统元件的非线性问题主要包括:发电机产生的谐波;变压器产生的谐波;直流输电产生的谐波;输电线路(特别是超高压输电线路)对谐波的放大作用。此外,还有变电站并联电容器补偿装置等因素对谐波的影响。其中,直流输电系统是目前电力系统最大的谐波源。二非线性负荷 在工业和生活用电负载中,非线性负载占很大比例,这是电力系统谐波问题的主要来源。电弧炉(包括交流电弧炉和直流电弧炉)是主要的非线性负载,它的谐波主要是由起弧的时延和电弧的严重非线性引起的。居民生活负荷中,荧光灯的伏安特性是严重非线性的,也会引起严重的谐波电流,其中3次谐波的含量最高。大功率整流或变频装置也会产生严重的谐波电流,对电网造成严重污染,同时也使功率因数降低。三电力系统故障 电力系统运行的内外故障也会造成电能质量问题,如各种短路故障、自然现象灾害、人为误操作、电网故障时发电机及励磁系统的工作状态的改变、故障保护装置中的电力电子设备的启动等都将造成各种电能质量问题。 1.4 电能质量的国家标准从80年代初开始,国家质量技术监督局(原国家表准局)将制定国家电能质量系列标准列为重点项目。至2000年低已颁布实施的标准共有5个,即GB12325-90供电电压允许偏差;GB12326-2000电压波动和闪变;GB/T 14549-93公用电网谐波;GB/T 15543-1995三相电压允许不平衡度;GB/T 15945-1995电力系统频率允许偏差。此外还有部分标准正在拟定和审批中16。1.5 本设计需要完成的主要任务一学习傅立叶变换的原理,掌握用傅立叶变换分析电力系统谐波的基本方法。二用C语言编写FFT的计算函数,并进一步研究提高运算速度的方法。三设计出以AVR单片机为核心的硬件系统,并考虑实际应用中可能会遇到的干扰问题以及抗干扰的方法。四用CVAVR等工具开发谐波测量完整的程序,计算出电压有效值和21次以下的各次谐波含量及总波形畸变率。五调试好系统的硬件和软件,测量结果达到一定的精度。六分析整个设计过程中遇到的问题并提出改善方法。2. 谐波分析基础2.1 傅立叶分析概要谐波分析的基础是傅立叶分析,傅立叶分析的实质是把信号看成一系列加权的基本信号的线性组合,用对这些基本信号的分析,叠加起来代替对原来信号的分析。对于连续周期函数,基本信号就是各个频率对基频成整数倍的正弦(包括余弦)函数,这种线性组合就是傅立叶级数,其权函数就是傅立叶系数。对于连续非周期函数,这种线性组合表现为一个积分,其中基本信号的频率作连续变化,这就是傅立叶积分,或称傅立叶变换。随着计算机、微处理器的广泛应用,数字技术在科学研究、工程技术中越来越多地被应用。上述变换方法推广应用至离散系统就出现了离散采样的傅立叶变换,称为离散傅立叶变换(DFT)。改技术由于快速算法的出现迅速的得到发展,从而产生的快速傅立叶变换(FFT)已经成为现代谐波测量技术和信息处理的主要数学工具7。2.2 傅立叶级数2.2.1 周期函数傅立叶级数的三角函数形式以为周期的周期函数如果满足狄利克雷条件【在区间连续或只有有限个第一类间断点(间断处左、右极限均存在的间断点);只有有限个极值点】,则可展开为傅立叶级数。傅立叶级数的三角级数形式为 (21)其中,为基波的角频率。h取整数,角频率为的项称为中的h次谐波,也可以看作角频率为零的零次谐波。其系数为: (22)称为傅立叶系数。上式也可以改写为具有初相的余弦形式(23)其中 (24)得知全部的与就得到非正弦周期函数的全部信息。2.2.2 傅立叶级数的指数函数形式傅立叶级数可以用指数形式来表示,通常可以写为 (25)其中当h0时,;对,有 (26)傅立叶级数指数形式的实质是将每一个正弦函数分解为角频率的两个指数项。2.3 采样信号的傅立叶变换2.3.1 采样定理假设一个频带有限的信号频谱的最高频率为,如果采样频率大于信号的两倍,则可以用采样信号恢复成原信号,而不产生失真,这就是采样定理。采样定理满足了最低取样速度,即当满足>2时,根据采样点上的样本值,可以唯一的确定原信号。这样,不必传送信号本身,只要传送信号的离散值,即可在接收端根据这些离散值恢复原来的连续信号。2.3.2 采样信号的傅立叶变换对函数进行采样,可以用图21所示的过程来表示。图21 采样原理连续信号经采样序列脉冲作用后产生采样信号,它是连续信号与采样序列脉冲p(t)的乘积,既:其傅立叶变换 (27)根据傅立叶变换的卷积性质,可写为 (28)2.4 离散傅立叶变换(DFT)与快速傅立叶变换(FFT)2.4.1 DFT对一个离散信号(或序列)进行傅立叶变换时,得到的是在频域中的连续频谱,这是一个由无限数据构成的连续函数。在数字系统中,不论使用计算机还是通过数字硬件来分析、处理时,只能对有限个数据的离散量进行。DFT就是适应这种要求发展起来的一种变换。通过DFT,将时域中有限长度的离散信号(仅含有限个数据)变换为频域中有限长度的离散信号(也仅含有限个数据)。这是一个一一对应的变换,值得注意的是DFT本身并不存在近似或逼近的概念。当时域中函数作周期变化时,其傅立叶变换的频谱呈现离散性;而当时域中函数是离散型的离散信号时,其傅立叶频谱则是周期性的。因此,仅有周期性的离散信号才具有周期性的离散频谱,他们在时域和频域中均可以用有限个数的数据来表示。严格地说,这实际上是一个离散傅立叶级数(DFS)的变换关系。对于一个有限时间段内的离散信号(或一个序列),可以用解析延拓地概念将它看为以此时间段为周期的不断重复的周期函数而应用DFS将它进行变换,所得就是可以代表该时间段信号的傅立叶频谱,它依然是一个具有有限个数数据的离散频谱。这种变换就称为离散傅立叶变换(DFT)。可见DFT是适用实际需要而定义的一种时域、频域离散函数之间的变换对。若是时域中取离散值的周期函数,既是在周期Tp之间N个等间隔Ts上给出数值序列(它也可以是一个采样的样本值或是本身就是由计算机或数字处理装置输出的离散函数)。样本间隔Ts=Tp/N,函数可写为,其中k取0,1,N1,或是简化为。的离散频谱以周期重复,谱线间隔为。故谱线数,与的样本数相等。频谱X(f)在(h0,1,N1)各频率上取值,故可写为Xp(hfp)或简写为Xp(h)。DFT的正变换对为 (29)从形式上看,式29的第二式类似取有限项的傅立叶级数,其中是第h次谐波的傅立叶系数。引用符号,DFT可以写成 (210)在DFT中,由于是离散周期函数,因此,DFT本质上是离散的傅立叶级数展开,并取指数形式的傅立叶级数。2.4.2 FFT在DFT中,每计算一个频谱的离散值X(h)就要作N次复数相乘运算和N-1次复数相加运算,全部N个频谱值就必须作个乘法和N(N-1)次加法运算。当样点数N很大时,对信号的实时处理就比较困难了,以至在实践工作中无法广泛应用,长时间仅停留在理论意义上。在1996年出现了第一个DFT的快速计算方法,以及相继出现了多种高效快速算法,使得DFT的计算时间缩短了一到二个数量级。这些算法统称为快速傅立叶变换,既FFT。FFT的出现大大推动了专用数字设备的发展,使得数字信号处理的面貌大为改观。它是数字信号处理的一个强有力的工具。提高DFT的计算速度目前主要采用一下两种方法。(1) 把长为N的DFT,逐次分解成长度较短的DFT来计算如果长为N的DFT,能分解成两个长为N/2的DFT来计算。需要次复数乘法,次复数加法运算。这样分解后DFT的计算工作量比直接计算DFT的工作量大约减少一半。(2) 利用的周期性和对称性,在DFT运算中进行归类,提高运算速度。周期性: r为任意整数(1) (211)对称性: (1) (212)的周期性和对称性如图22表示:图22 的对称性和周期性具有N个样点的DFT,可以根据k的奇、偶分为两组来取和。当N为偶数时,有 (213)式中,利用了,将此式写为 (214) (215)是两个DFT,具有的样点数各为N/2个。令N/2=p,由于,故在中有: (216)现在以信号流图(SFG)的方法来表示物理量之间的运算关系。图23(a)中,不带系数的线段表示右端物理量YX,X为左端物理量,如果线段上标以系数a,则YaX。如果某点左方有两线段在点上汇集,则有YXaZ。现在与之间建立一个流程关系如图23(b)所示,这是一个X形状的图形,称为蝴蝶形,其中包括2次复数乘法运算和2次复数加减运算;由于2个乘法仅有负号之差,故可将B(h)均乘以,然后一次与之相加,另一次则与其相减就可以得同样结果。这样运算可以减少一次乘法运算,而加减法运算次数则仍为2次不变。图23(c)是图23(b)另一种表示方法。图23 信号流图的表示方法当N4时FFT的流程图如图24表示,样点值通过中间量A、B而得到DFT的X值,即有 (217)图24 N4的FFT流程图DFT结果为 (218)通常将样点数取为2的乘方。当N2M(M为正整数)时,从样点值到DFT值将经过M个步骤。现认为DFT值X(h)(h=0,1,N)由流程左方量值经蝶形运算而得。前N/2个相当于前述的A(h);后N/2个相当于前述B(h)(在A(h)、B(h)中h取0,1,p/21,而在中,h取0,1,N)。前N/2个,即原来的A(h),表达式为: (219)相当于B(h)的后N/2个,可写为: (220)由于N2M,因此N/2(即p)仍为偶数,因此可以对两个部分的各作进一步奇偶分解写成类似式(214)、式(216)的形式,流程左侧的量可以称之为。而且可以看出,从求X、从求均由N/2个蝶形运算完成。这一过程可向流程左方再次重复,直至最左的量程是样点函数时才完成全部流程。共有M个重复步骤,每个步骤中均须完成N/2个蝶形运算。由于M,每个蝶形运算须做1次乘法、2次加法运算,因此共须做M×N/2()N/2次乘法运算,而通常DFT须做N2次乘法运算。当采样点数增大以后,DFT和FFT算法的乘法次数比值增长很快。例如当N2048时,运算量相差372.4倍,所以FFT算法提高运算速度是十分有效的。2.5 时抽选奇偶分解FFT计算的一般规则2.5.1 基2时抽选奇偶分解FFT对输入序列的要求如前文所述,输入序列长度为N=2M (M为正整数,将该序列按时间顺序的奇偶分解为越来越短的子序列,称为基2按时间抽取的FFT算法.也称为Coolkey-Tukey算法。其中基数2N=2M,M为整数.若不满足这个条件,可以人为地加上若干零值(加零补长)使其达到 N=2M。例如某一序列x(n) 的长度为L=9,应加零补长为N24 16,应补7个零值。在本应用中,程序设计中每次采样64个点再进行FFT分析,M6,因此程序中设计中不用再考虑补足数据的要求。2.5.2 输入序列的码位倒置进行N8时的FFT蝶形运算时,输入序列的排列顺序为x(0)、x(4)、x(2)、x(6)、x(1)、x(5)、x(3)、x(7),输出序列X(k)则为自然顺序。输入序列的排列顺序称为倒位序,即将序列号n写成二进制码,然后二进制码首尾倒置,将倒置的二进制码再译成十进制数的排列顺序。表21列出了N8时两种排列顺序的互换规律。表21 N8时的两种排列顺序规律自然顺序二进制表示倒位二进制数倒位序00000000100110042010010230111106410000115101101561100113711111172.5.3 即位运算即位运算是指当把数据存入输入存储器中后,每一级运算的结果都存在相应的输入存储器中,直到计算出最后计算结果。即位运算也称原位计算,主要优点是占用计算机内部RAM单元少,运算简单,容易实现。2.6 时抽选奇偶分解FFT的C语言程序实现2.6.1 变量的设置与定义本设计计划在交流信号的每个周波采样64个点的信号,因此FFT运算过程中需要64个存储单位存储实部,64个单位存储虚部。64个点的M6,要进行6次奇偶分解,6级计算。变量定义如下,作用由注释标明:float dataR64,dataI64;/分别存放采样点的实部和虚部double TR,TI,temp;/存储计算过程中的临时变量int i;/用于循环语句的计数控制int x0,x1,x2,x3,x4,x5;/码位倒置int xx;int L,j,k,b,p;/级数控制此外,由于求一个sin值或cos值需要大量的乘法计算,为提高运算速度,采用查表的方法来获得sin值或cos值,因此还需要存放sin值和cos值的两个常数表。2.6.2 逆序部分逆序部分中x0x5分别表示序列号i值转换成二进制格式后,各个位上值。然后逆序转换成十进制的倒位序xx,再用虚部的数组dataI临时存储倒位序列,逆序过程结束后,再将dataI数组的值按自然顺序赋值给dataR,同时将dataI清空。for(i=0;i<64;i+) x0=x1=x2=x3=x4=x5=0;x0=i&0x01; x1=(i/2)&0x01; x2=(i/4)&0x01; x3=(i/8)&0x01;x4=(i/16)&0x01; x5=(i/32)&0x01; xx=x0*32+x1*16+x2*8+x3*4+x4*2+x5;/xx为倒位序 dataIxx=dataRi;for(i=0;i<64;i+) dataRi=dataIi; dataIi=0; /将dataI中的数据倒会dataR,并将dataI清空2.6.3 FFT计算N点FFT运算可以分成LOGN2 级,每一级都有N/2个碟形。DIT FFT的基本思想是用3层循环完成全部运算(N点FFT)。第一层循环:由于N=2M需要M级计算,第一层循环对运算的级数进行控制。第二层循环:由于第L级有2L-1个蝶形因子(乘数),第二层循环根据乘数进行控制,保证对于每一个蝶形因子第三层循环要执行一次,这样,第三层循环在第二层循环控制下,每一级要进行2L-1次循环计算。第三层循环:由于第L级共有N/2L个群,并且同一级内不同群的乘数分布相同,当第二层循环确定某一乘数后,第三层循环要将本级中每个群中具有这一乘数的蝶形计算一次,即第三层循环每执行完一次要进行N/2L个碟形计算。在每一级中,第三层循环完成N/2L个碟形计算;第二层循环使第三层循环进行 2L-1次,因此,第二层循环完成时,共进行2L-1 *N/2L=N/2个碟形计算。实质是:第二、第三层循环完成了第L级的计算。几个要注意的数据: 在第L级中,每个碟形的两个输入端相距b=2L-1个点。 同一乘数对应着相邻间隔为2L个点的N/2L个碟形。 第L级的2L-1个碟形因子WPN 中的P,可表示为p = j*2m-L,其中j = 0,1,2,.,(2L-1-1)。这个是本程序采取查表法计算FFT的关键部分之一。64点DIT FFT函数:/* FFT */for(L=1;L<=6;L+) /* for (1)对运算级数进行控制 */b=1; i=L-1;while(i>0) b=b*2;i-; /* b= 2(L-1) */for(j=0;j<=b-1;j+) /* for (2) */ p=1; i=6-L;while(i>0) /* p=pow(2,7-L)*j; */p=p*2;i-;p=p*j;for(k=j;k<64;k=k+2*b) /* for (3) */* printf("p=%d ",p);*/TR=dataRk; TI=dataIk; temp=dataRk+b;dataRk=dataRk+dataRk+b*cos_tabp+dataIk+b*sin_tabp;dataIk=dataIk-dataRk+b*sin_tabp+dataIk+b*cos_tabp;dataRk+b=TR-dataRk+b*cos_tabp-dataIk+b*sin_tabp;dataIk+b=TI+temp*sin_tabp-dataIk+b*cos_tabp; /* END for (3) */ /* END for (2) */ /* END for (1) */3. 谐波分析系统的硬件电路设计3.1 硬件电路的系统设计任务单片机谐波检测系统设计任务是完成电力系统电压信号的采集存储,并在单片机内部完成FFT计算并分析出电压有效值和电压的谐波含量,最后通过RS232串口将结果上传给上位机显示,因此硬件电路主要由电源、复位、时钟、A/D采集、信号预处理电路等几部分组成。3.2 单片机选型常用单片机按照处理能力分为8位,16位,32位。32位单片机主要是应用在复杂的控制系统或是信号处理上,ARM系列的CPU是典型的代表;16位单片机中MSP430系列性能十分优秀,拥有12位分辨率的A/D,运算速度也比较高。这些MCU的性能都非常的好,虽然与DSP相比外围功能很强大,但同它一样,这些类型的CPU引脚数比较多,手工焊接不易,必须使用专门的开发工具才能进行学习开发。而一般的MCS51系列单片机,内部资源十分紧张,外围功能少,通常需要外接器件来扩充功能,因此本设计采用ATMEL公司AVR单片机进行开发。AVR单片机是ATMEL公司出品的新一代8位单片机,该单片机采用高性能的RISC内核,具有很低的功耗,并且有多种节能控制方式。AVR单片机内部为高级语言进行了优化,用高级语言编写的程序可以高效率的生成执行代码。内部集成了EEPROM用以保存数据,ISP功能提高了单片机开发的灵活性,也省去了购买并行编程器的费用,降低开发成本。AVR单片机内部的集成了可以编程的RC振荡器,要求不高时可以免去外接的石英振荡器。此外,AVR单片机集成了多种外设,如看门狗定时器、捕获器、串行接口(UART或USART),很多型号还集成了TWI(兼容I2C接口)、模拟比较器、ADC、低电压复位保护、PWM控制器。部分新的型号还集成了USB控制器、射频收发电路等,功能更为强大。本设计选用MEGA系列的ATmega32L单片机,ATmega32有如下特点:32K 字节的系统内可编程Flash(具有同时读写的能力,即RWW),1024 字节 EEPROM, 2K 字节 SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C), 片内/ 外中断,可编程串行USART,面向字节的两线串行接口, 8 路10 位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。 工作于空闲模式时CPU 停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。ATmega32片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW 操作。 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个芯片内,ATmega32 成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。ATmega32的片内结构如图31:图31 AVR单片机片内结构3.3 电源电路ATmega32L单片机在2.75.5V之间的电压下都能工作,但不稳定的电源可能会给A/D的转换结果带来误差或对单片机工作产生潜在的危害,此外,运算放大电路需要正负5V的稳压电源,因此需要做一个能输出正负5V的稳压电源。单片机、运算放大器、电平转换电路的用电电流仅为mA级,全部功耗不会超过1w,因此电源变压器选用次级中间抽头,双9V输出的5W变压器,经桥式整流电路整流后,通过7805和7905两块5V的稳压芯片输出±5V的稳压电压。Cs1Cs4四个电解电容的作用是滤波,而C7C10四个较小的瓷片电容是为了消除高频干扰。电源部分的电路32所示:图32 稳压电源电路3.4 最小系统设计ATmega32L单片机内部有32KB的FlashROM和2KB的SRAM,完全能满足信号采集、谐波分析要求,因此不需要扩展ROM或RAM(该单片机没有与51系列单片机一样的ALE地址锁存使能、PSEN程序存储器使能等信号的输出,内部设计上也不支持存储器的扩充)。直接用单片机、复位电路、时钟信号电路、A/D转换滤波电路、和ISP接口即可工作,最小系统的电路图部分如图33。图33 单片机最小系统电路图3.4.1 复位电路ATmega32L单片机已经内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电阻到VCC即可(R0)。为了可靠,再加上一只0.1uF的电容(C0)以消除干扰、杂波。D0(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V 左右,另一作用是系统断电时,将R0(10K)电阻短路,让C0快速放电,让下一次来电时,能产生有效的复位。当AVR在工作时,按下S0开关时,复位脚变成低电平,触发AVR芯片复位。实际应用时,如果不需要复位按钮,复位脚可以不接任何的零件,AVR芯片也能稳定工作。即这部分不需要任何的外围零件。但为了电路的标准和工作的可靠,设计中保留了复位电路。3.4.2 时钟信号电路ATmega32L单片机内置RC振荡线路,可以产生1M、2M、4M、8M的振荡频率。不过,内置的毕竟是RC振荡,受电源电压,系统温度的影响很大。在一些要求较高的场合,比如本设计需要用定时器每1/3200秒产生一个中断采集信号,同时与RS232通信也需要较精确的波特率时,所以必须使用外部的晶振线路。早期的90S系列,晶振两端均需要接22pF左右的电容。Mega系列实际使用时,这两只小电容不接也能正常工作。不过为了线路的规范化,设计中仍然保留这两个电容。3.4.3 A/D转换滤波电路系统设备内部及外部的数字电路都会产生电磁干扰(EMI),从而影响模拟测