基于AVR单片机的电力谐波分析系统设计全套_第1页
基于AVR单片机的电力谐波分析系统设计全套_第2页
基于AVR单片机的电力谐波分析系统设计全套_第3页
基于AVR单片机的电力谐波分析系统设计全套_第4页
基于AVR单片机的电力谐波分析系统设计全套_第5页
已阅读5页,还剩41页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于AVR单片机的电力谐波分析系统设计摘要随着国民经济的发展,电网中各种非线性负荷及用户不断增长;各种复杂的、精密的,对电能质量敏感的用电设备越来越多。上述两方面的矛盾越来越突出,在这样的环境下,探讨电能质量的分析方法,可以为分析我国电能质量管理和控制的发展趋势提供必要的依据,具有很强的现实意义。本设计采用ATMEL公司的ATmega32L单片机完成一个电能质量检测系统。电压信号经过变压器隔离降压,幅值较低的交流信号再通过运算放大器构成的加法器变成可供A/D转换电路转换的直流信号。单片机使用内部的定时器每1/3200秒对电压信号采样一次,用片内自带的10位精度A/D转换器对每周波的电压信号采样

2、64个点后,进行FFT运算,FFT的运算过程采取查表法进一步提高运算速度,分析出小于21次的各次谐波的含量,并计算出电压信号的有效值(RMS),将谐波分析结果通过RS-232串行接口上传到上位机并显示存储。通过对硬件软件的调整,使输出的结果达到相应的要求,然后对实际谐波信号分析,对结果进行进一步数据处理,以提高结果的准确性。最后本文简单介绍了一下提高谐波检测精度的硬件和软件措施。关键词:电能质量,谐波,单片机,FFTA Harmonic analysis system design based AVR MCUABSTRACTAlong with the development of natio

3、nal 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. Contra

4、dictions 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 si

5、gnificance 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 constit

6、uted 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 th

7、e 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 interfa

8、ce 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.

9、 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傅立叶级数4周期函数傅立叶级数的三角函数形式4傅立叶级数的指数函数形

10、式52.3采样信号的傅立叶变换6采样定理6采样信号的傅立叶变换62.4离散傅立叶变换(DFT)与快速傅立叶变换(FFT)7DFT7FFT82.5时抽选奇偶分解FFT计算的一般规则12基2时抽选奇偶分解FFT对输入序列的要求12输入序列的码位倒置12即位运算122.6时抽选奇偶分解FFT的C语言程序实现13变量的设置与定义13逆序部分13FFT计算133.谐波分析系统的硬件电路设计153.1硬件电路的系统设计任务153.2单片机选型153.3电源电路173.4最小系统设计17复位电路18时钟信号电路18A/D转换滤波电路19ISP接口19熔丝位设置193.5信号预处理电路213.6TTL与RS2

11、32电平转换电路与接口224.谐波分析软件设计244.1程序总体框架244.2常量与变量定义254.3寄存器初始化254.4A/D采集与存储264.5谐波分析处理26电压有效值26各次谐波含量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 课题背景随着国民经济的发展,科学技术的进步和生产过程的高度自动化,

12、电网中各种非线性负荷及用户不断增长;各种复杂的、精密的,对电能质量敏感的用电设备越来越多。上述两方面的矛盾越来越突出,用户对电能质量的要求也更高,在这样的环境下,探讨电能质量的分析方法,可以为分析我国电能质量管理和控制的发展趋势提供必要的依据,具有很强的观实意义。设计采用AVR单片机完成一个电能质量检测系统,性能要求可以测量谐波小于等于21次,将谐波分析结果通过RS-232接口上传到上位机并显示存储。1.2 衡量电能质量的主要指标由于所处立场不同,关注或表征电能质量的角度不同,人们对电能质量的定义还未能达成完全的共识,但是对其主要技术指标都有较为一致的认识。(1) 电压偏差(voltage d

13、eviation):是电压下跌(电压跌落)和电压上升(电压隆起)的总称。(2) 频率偏差(friquency deviation):对频率质量的要求全网相同,不因用户而异,各国对于该项偏差标准都有相关规定。(3) 电压三相不平衡(unbalance):表现为电压的最大偏移与三相电压的平均值超过规定的标准。(4) 谐波和间谐波(harmonics & inter-hamonics):含有基波整数倍频率的正弦电压或电流称为谐波。含有基波非整数倍频率的正弦电压或电流称为间谐波,小于基波频率的分数次谐波也属于间谐波。(5) 电压波动和闪变(fluctuation & flicker):

14、电压波动是指在包络线内的电压的有规则变动,或是幅值通常不超出0.91.1倍电压范围的一系列电压随机变化。闪变则是指电压波动对照明灯的视觉影响。因社会进步,电力电子器件使用增长迅速,造成谐波问题严重,因此本设计考虑的主要是实现谐波的分析和电压有效值的测量。1.3 电能质量问题的产生电能质量问题是众多单一类型电力系统干扰问题的总称,其实质是电压质量问题。电能质量问题按产生和持续时间可分为稳态电能质量问题和动态电能质量问题。随着电力系统规模的不断扩大,电力系统电能质量问题的产生主要有以下几个原因。一电力系统元件存在的非线性问题 电力系统元件的非线性问题主要包括:发电机产生的谐波;变压器产生的谐波;直

15、流输电产生的谐波;输电线路(特别是超高压输电线路)对谐波的放大作用。此外,还有变电站并联电容器补偿装置等因素对谐波的影响。其中,直流输电系统是目前电力系统最大的谐波源。二非线性负荷 在工业和生活用电负载中,非线性负载占很大比例,这是电力系统谐波问题的主要来源。电弧炉(包括交流电弧炉和直流电弧炉)是主要的非线性负载,它的谐波主要是由起弧的时延和电弧的严重非线性引起的。居民生活负荷中,荧光灯的伏安特性是严重非线性的,也会引起严重的谐波电流,其中3次谐波的含量最高。大功率整流或变频装置也会产生严重的谐波电流,对电网造成严重污染,同时也使功率因数降低。三电力系统故障 电力系统运行的内外故障也会造成电能

16、质量问题,如各种短路故障、自然现象灾害、人为误操作、电网故障时发电机及励磁系统的工作状态的改变、故障保护装置中的电力电子设备的启动等都将造成各种电能质量问题。 1.4 电能质量的国家标准从80年代初开始,国家质量技术监督局(原国家表准局)将制定国家电能质量系列标准列为重点项目。至2000年低已颁布实施的标准共有5个,即GB12325-90供电电压允许偏差;GB12326-2000电压波动和闪变;GB/T 14549-93公用电网谐波;GB/T 15543-1995三相电压允许不平衡度;GB/T 15945-1995电力系统频率允许偏差。此外还有部分标准正在拟定和审批中16。1.5 本设计需要完

17、成的主要任务一学习傅立叶变换的原理,掌握用傅立叶变换分析电力系统谐波的基本方法。二用C语言编写FFT的计算函数,并进一步研究提高运算速度的方法。三设计出以AVR单片机为核心的硬件系统,并考虑实际应用中可能会遇到的干扰问题以及抗干扰的方法。四用CVAVR等工具开发谐波测量完整的程序,计算出电压有效值和21次以下的各次谐波含量及总波形畸变率。五调试好系统的硬件和软件,测量结果达到一定的精度。六分析整个设计过程中遇到的问题并提出改善方法。2. 谐波分析基础2.1 傅立叶分析概要谐波分析的基础是傅立叶分析,傅立叶分析的实质是把信号看成一系列加权的基本信号的线性组合,用对这些基本信号的分析,叠加起来代替

18、对原来信号的分析。对于连续周期函数,基本信号就是各个频率对基频成整数倍的正弦(包括余弦)函数,这种线性组合就是傅立叶级数,其权函数就是傅立叶系数。对于连续非周期函数,这种线性组合表现为一个积分,其中基本信号的频率作连续变化,这就是傅立叶积分,或称傅立叶变换。随着计算机、微处理器的广泛应用,数字技术在科学研究、工程技术中越来越多地被应用。上述变换方法推广应用至离散系统就出现了离散采样的傅立叶变换,称为离散傅立叶变换(DFT)。改技术由于快速算法的出现迅速的得到发展,从而产生的快速傅立叶变换(FFT)已经成为现代谐波测量技术和信息处理的主要数学工具7。2.2 傅立叶级数2.2.1 周期函数傅立叶级

19、数的三角函数形式以为周期的周期函数如果满足狄利克雷条件【在区间连续或只有有限个第一类间断点(间断处左、右极限均存在的间断点);只有有限个极值点】,则可展开为傅立叶级数。傅立叶级数的三角级数形式为 (21)其中,为基波的角频率。h取整数,角频率为的项称为中的h次谐波,也可以看作角频率为零的零次谐波。其系数为: (22)称为傅立叶系数。上式也可以改写为具有初相的余弦形式(23)其中 (24)得知全部的与就得到非正弦周期函数的全部信息。2.2.2 傅立叶级数的指数函数形式傅立叶级数可以用指数形式来表示,通常可以写为 (25)其中当h0时,;对,有 (26)傅立叶级数指数形式的实质是将每一个正弦函数分

20、解为角频率的两个指数项。2.3 采样信号的傅立叶变换2.3.1 采样定理假设一个频带有限的信号频谱的最高频率为,如果采样频率大于信号的两倍,则可以用采样信号恢复成原信号,而不产生失真,这就是采样定理。采样定理满足了最低取样速度,即当满足>2时,根据采样点上的样本值,可以唯一的确定原信号。这样,不必传送信号本身,只要传送信号的离散值,即可在接收端根据这些离散值恢复原来的连续信号。2.3.2 采样信号的傅立叶变换对函数进行采样,可以用图21所示的过程来表示。图21 采样原理连续信号经采样序列脉冲作用后产生采样信号,它是连续信号与采样序列脉冲p(t)的乘积,既:其傅立叶变换 (27)根据傅立叶

21、变换的卷积性质,可写为 (28)2.4 离散傅立叶变换(DFT)与快速傅立叶变换(FFT)2.4.1 DFT对一个离散信号(或序列)进行傅立叶变换时,得到的是在频域中的连续频谱,这是一个由无限数据构成的连续函数。在数字系统中,不论使用计算机还是通过数字硬件来分析、处理时,只能对有限个数据的离散量进行。DFT就是适应这种要求发展起来的一种变换。通过DFT,将时域中有限长度的离散信号(仅含有限个数据)变换为频域中有限长度的离散信号(也仅含有限个数据)。这是一个一一对应的变换,值得注意的是DFT本身并不存在近似或逼近的概念。当时域中函数作周期变化时,其傅立叶变换的频谱呈现离散性;而当时域中函数是离散

22、型的离散信号时,其傅立叶频谱则是周期性的。因此,仅有周期性的离散信号才具有周期性的离散频谱,他们在时域和频域中均可以用有限个数的数据来表示。严格地说,这实际上是一个离散傅立叶级数(DFS)的变换关系。对于一个有限时间段内的离散信号(或一个序列),可以用解析延拓地概念将它看为以此时间段为周期的不断重复的周期函数而应用DFS将它进行变换,所得就是可以代表该时间段信号的傅立叶频谱,它依然是一个具有有限个数数据的离散频谱。这种变换就称为离散傅立叶变换(DFT)。可见DFT是适用实际需要而定义的一种时域、频域离散函数之间的变换对。若是时域中取离散值的周期函数,既是在周期Tp之间N个等间隔Ts上给出数值序

23、列(它也可以是一个采样的样本值或是本身就是由计算机或数字处理装置输出的离散函数)。样本间隔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

24、(h)就要作N次复数相乘运算和N-1次复数相加运算,全部N个频谱值就必须作个乘法和N(N-1)次加法运算。当样点数N很大时,对信号的实时处理就比较困难了,以至在实践工作中无法广泛应用,长时间仅停留在理论意义上。在1966年出现了第一个DFT的快速计算方法,以及相继出现了多种高效快速算法,使得DFT的计算时间缩短了一到二个数量级。这些算法统称为快速傅立叶变换,既FFT。FFT的出现大大推动了专用数字设备的发展,使得数字信号处理的面貌大为改观。它是数字信号处理的一个强有力的工具。提高DFT的计算速度目前主要采用一下两种方法。(1) 把长为N的DFT,逐次分解成长度较短的DFT来计算如果长为N的DF

25、T,能分解成两个长为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)的方法来表示物理量之间的运算关系

26、。图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

27、 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、从

28、求均由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为正整数,将该序列按时间顺序的奇偶

29、分解为越来越短的子序列,称为基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)则为自然顺序。输入序列的排列顺序称为倒位序,即

30、将序列号n写成二进制码,然后二进制码首尾倒置,将倒置的二进制码再译成十进制数的排列顺序。表21列出了N8时两种排列顺序的互换规律。表21 N8时的两种排列顺序规律自然顺序二进制表示倒位二进制数倒位序00000000100110042010010230111106410000115101101561100113711111172.5.3 即位运算即位运算是指当把数据存入输入存储器中后,每一级运算的结果都存在相应的输入存储器中,直到计算出最后计算结果。即位运算也称原位计算,主要优点是占用计算机内部RAM单元少,运算简单,容易实现。2.6 时抽选奇偶分解FFT的C语言程序实现2.6.1 变量的设置与

31、定义本设计计划在交流信号的每个周波采样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值,因此还需要存放s

32、in值和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

33、+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个蝶形因子(乘数),第二层循环根据乘数进行控制,保证对于每一个蝶形因子第三层循环要执行一次,这样,第三层循环

34、在第二层循环控制下,每一级要进行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

35、-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<

36、;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

37、) */ /* END for (2) */ /* END for (1) */3. 谐波分析系统的硬件电路设计3.1 硬件电路的系统设计任务单片机谐波检测系统设计任务是完成电力系统电压信号的采集存储,并在单片机内部完成FFT计算并分析出电压有效值和电压的谐波含量,最后通过RS232串口将结果上传给上位机显示,因此硬件电路主要由电源、复位、时钟、A/D采集、信号预处理电路等几部分组成。3.2 单片机选型常用单片机按照处理能力分为8位,16位,32位。32位单片机主要是应用在复杂的控制系统或是信号处理上,ARM系列的CPU是典型的代表;16位单片机中MSP430系列性能十分优秀,拥有12位分辨率

38、的A/D,运算速度也比较高。这些MCU的性能都非常的好,虽然与DSP相比外围功能很强大,但同它一样,这些类型的CPU引脚数比较多,手工焊接不易,必须使用专门的开发工具才能进行学习开发。而一般的MCS51系列单片机,内部资源十分紧张,外围功能少,通常需要外接器件来扩充功能,因此本设计采用ATMEL公司AVR单片机进行开发。AVR单片机是ATMEL公司出品的新一代8位单片机,该单片机采用高性能的RISC内核,具有很低的功耗,并且有多种节能控制方式。AVR单片机内部为高级语言进行了优化,用高级语言编写的程序可以高效率的生成执行代码。内部集成了EEPROM用以保存数据,ISP功能提高了单片机开发的灵活

39、性,也省去了购买并行编程器的费用,降低开发成本。AVR单片机内部的集成了可以编程的RC振荡器,要求不高时可以免去外接的石英振荡器。此外,AVR单片机集成了多种外设,如看门狗定时器、捕获器、串行接口(UART或USART),很多型号还集成了TWI(兼容I2C接口)、模拟比较器、ADC、低电压复位保护、PWM控制器。部分新的型号还集成了USB控制器、射频收发电路等,功能更为强大。本设计选用MEGA系列的ATmega32L单片机,ATmega32有如下特点:32K 字节的系统内可编程Flash(具有同时读写的能力,即RWW),1024 字节 EEPROM, 2K 字节 SRAM,32 个通用I/O

40、口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C), 片内/ 外中断,可编程串行USART,面向字节的两线串行接口, 8 路10 位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。 工作于空闲模式时CPU 停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运

41、行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。ATmega32片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(Application

42、Flash 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的稳压电源,因此需要做一个能输出正

43、负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程

44、序存储器使能等信号的输出,内部设计上也不支持存储器的扩充)。直接用单片机、复位电路、时钟信号电路、A/D转换滤波电路、和ISP接口即可工作,最小系统的电路图部分如图33。图33 单片机最小系统电路图3.4.1 复位电路ATmega32L单片机已经内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电阻到VCC即可(R0)。为了可靠,再加上一只0.1uF的电容(C0)以消除干扰、杂波。D0(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V 左右,另一作用是系统断电时,将R0(10K)电阻短路

45、,让C0快速放电,让下一次来电时,能产生有效的复位。当AVR在工作时,按下S0开关时,复位脚变成低电平,触发AVR芯片复位。实际应用时,如果不需要复位按钮,复位脚可以不接任何的零件,AVR芯片也能稳定工作。即这部分不需要任何的外围零件。但为了电路的标准和工作的可靠,设计中保留了复位电路。3.4.2 时钟信号电路ATmega32L单片机内置RC振荡线路,可以产生1M、2M、4M、8M的振荡频率。不过,内置的毕竟是RC振荡,受电源电压,系统温度的影响很大。在一些要求较高的场合,比如本设计需要用定时器每1/3200秒产生一个中断采集信号,同时与RS232通信也需要较精确的波特率时,所以必须使用外部的

46、晶振线路。早期的90S系列,晶振两端均需要接22pF左右的电容。Mega系列实际使用时,这两只小电容不接也能正常工作。不过为了线路的规范化,设计中仍然保留这两个电容。3.4.3 A/D转换滤波电路系统设备内部及外部的数字电路都会产生电磁干扰(EMI),从而影响模拟测量的精度。如果转换精度要求较高,那么可以通过以下方法来减少噪声:1. 模拟通路越短越好。保证模拟信号线位于模拟地之上,并使它们与高速切换的数字信号线分开。2. 如图33所示, AVCC 应通过一个LC (L1,C5)网络与数字电压源VCC 连接。3. 使用ADC 噪声抑制器来降低来自CPU 的干扰噪声。4. 如果有ADC 端口被用作

47、数字输出,那么必须保证在转换进行过程中它们不会有电平的切换。Mega16内带2.56V标准参考电压。也可以从外面输入参考电压,比如在外面使用TL431基准电压源。因为A/D的精度只有10为,所以一般使用内部自带的参考电压已经足够。习惯上在AREF脚接一只0.1uF的电容到地(C3)。实际应用时,为了简化线路,可以将AVCC直接接到VCC,AREF悬空。即这部分不需要任何的外围零件。本设计仍然保留这部分电路。3.4.4 ISP接口ISP下载接口,不需要任何的外围零件。使用双排2×5插座。由于没有外围零件,故PB5(MOSI)、PB6(MISO)、PB7(SCK)、复位脚仍可以正常使用,

48、不受ISP的干扰。3.4.5 熔丝位设置ATmega32L单片机提供了6个锁定位和两个熔丝位字节。出厂时熔丝位的设置是使用片内1MHZ,而系统需要精确时钟,必须使用外部的7.3728MHZ石英晶体振荡器,因此在使用单片机工作前必须对单片机的熔丝位进行配置。根据ATmega32L手册中给出的关于时钟源选择的设置如表31;时钟及启动时间的相关配置位在熔丝位的低字节,熔丝位低字节的功能如表32。表31 时钟源的选择芯片时钟选项CKSEL3.0外部晶体/ 陶瓷振荡器1111 - 1010外部低频晶振1001外部RC 振荡器1000 - 0101标定的内部RC 振荡器0100 - 0001外部时钟000

49、0表32 熔丝位低字节功能表熔丝位低位字节位号描述默认值BODLEVEL7BOD 触发电平1 ( 未编程)BODEN6BOD 使能1 ( 未编程)SUT15选择启动时1 ( 未编程)SUT04选择启动时0 ( 已编程)CKSEL33选择时钟源0 ( 已编程)CKSEL22选择时钟源0 ( 已编程)CKSEL11选择时钟源0 ( 已编程)CKSEL00选择时钟源1 ( 未编程)由此可以看出需要将熔丝位低位字节由出厂时默认的值0xE1改写为0xEE。熔丝位的设置相对比较繁琐,而且对熔丝位进行了错误的操作会导致单片机的死锁。为了简化操作,可以借助编程器提供的熔丝位配置功能,不仅方便,而且还可以避免熔

50、丝位误操作带来的损失。以双龙公司的SLISP(V.3)MCU在线编程软件为例,说明熔丝位的设置。运行SLISP软件,点击程序对话框上的“配置熔丝位”,弹出一个“配置熔丝设置”的对话框,可以看到各个熔丝位的设置状态,如图34所示,点击设置导航,选择"Ext.Crystal/Resonator High Freq.;Start-up time: 1K CK+0ms;CKSEL=1110 SUT=01"后再点击设置导航,返回到如图34的“配置熔丝设置”的设置状态,即为所需要的熔丝配置。图34 熔丝位配置界面 3.5 信号预处理电路电压信号经过隔离以后,可以再经电阻分压调整到单片机

51、可以接受的范围以内。但使用单片机的单输入通道时,ADC不能对电压信号的负半周识别,因此可以用静态偏置的办法将交流电压信号变成随交流信号变化的直流信号。图35信号预处理电路具体的做法如图35所示,由LM358N的一只运算放大器与R01,R02,R03构成一个加法电路,R03为负反馈电阻,根据运放的虚断、虚短性质,可以得到是5V电源电压经电位器R04分压得到的一个负的静态偏置电压;是交流信号经电位器R05分压后得到的一个幅值更低的交流信号;有效值约为9V,R04和R05的耗散功率可由公式得到,各为2.5mW和8.1mW,因此选用普通的1/8w可变电阻即可,不用再考虑耗散功率的问题。电路接好以后,先

52、粗略的调整电位器R04和R05,使和输出大概为1V左右,然后在输出端ADC1接上示波器细致的调整,使输出的电压波形谷值和峰值在0.252.35V之间。ADC能测量的电压范围是02.56V,留出来的10左右的裕量是因为供电系统的电压也可能会有10的波动,留出来的裕量不够,采样出来的波形会削掉波峰和波谷,会为谐波分析带来严重的影响。整个电路的工作过程可以用图36表示,图36(a)中交流信号和直流偏置为,加法运算并反相后得到如图36(b)所示的直流波形,虚线间的双向箭头标明了留出的裕量。图36信号处理过程示意图3.6 TTL与RS232电平转换电路与接口单片机与上位机通信需要用到串行接口,单片机的异

53、步串行口输出的是TTL电平,而普通计算机使用的是RS232协议标准的电平,因此单片机连接与上位机之间使用串行口通信时需要一个TTL与RS232电平转换的电路。TTL电平与RS232协议的电气特性如表33所示:表33 RS232与TTL电平EIARS232CTTL逻辑1(mark)3V15V>=2.4v逻辑0(space)3V15V<=0.4v电平的转换可以用分立元件实现,为了增加电路的抗干扰和可靠性,选用美信公司MAX232集成电路做电平转换。MAX232内部有两组电平转换电路,这里仅用到一对,接线电路按照美信公司提供的技术手册接线,如图37。图37 TTL与RS232电平转换电路

54、4. 谐波分析软件设计4.1 程序总体框架谐波分析软件部分是整个系统的灵魂,系统的数据采集,计算以及通信都通过软件程序实现。谐波分析程序通过定时器中断产生固定的采样时间,在定时器中断中将采样来的数据读出并存储。主程序控制整个过程的方向,通过判断F_done采集完成标记和I_average平均值计数变量的状态来决定是否进行FFT运算以及显示数据。谐波分析的主体程序流程如图41左,定时器中断程序流程如图41右。图41 谐波分析程序流程图4.2 常量与变量定义程序中的FFT计算部分采用了查表法求解来提高速度,因此在程序的中需要提供sin_table和cos_talbe两组常量数组,为了节约紧张的SR

55、AM空间,需要给两个常量加flash扩充字符。flash是CodeVisionAVR中的保留字符,是对ANSI C语言的扩充,编程程序会把flash修饰的常量存储到Flash ROM中,运行时不会在占用多余的SRAM空间。此外,程序中为了提示显示数据的类型,也定义了几个字符串常量,如"harmonics analysis result/:"表示“谐波分析结果”,为了节约SRAM空间,也用flash修饰。但存储在Flash ROM中的字符串不能直接调用,因此需要用"string.h"库中的char *strcpyf(char *dest,char flash *src

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论