基于STM32的多功能电能表的设计(毕业设计)_第1页
基于STM32的多功能电能表的设计(毕业设计)_第2页
基于STM32的多功能电能表的设计(毕业设计)_第3页
基于STM32的多功能电能表的设计(毕业设计)_第4页
基于STM32的多功能电能表的设计(毕业设计)_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

****************自动化学院本科毕业设计〔论文〕题目:基于STM32的多功能电能表的设计专业:自动化班级:自动化111学号:**********学生姓名:******指导教师:************起止日期:2023.2~2023.6设计地点:GraduationDesign(Thesis)TheDesignofThree-phaseMulti-functionalPowerMeterBasedonSTM32By**********SupervisedbyProf.******SchoolofAutomation*******************June,2023摘要电能表作为测量电能的工具,是连接电力用户和电能之间的一座“桥梁〞,随着电能在人们生活中的地位越来越重要,它与人们生活之间的联系也更加地紧密。虽然电能表也在不断地开展,但是局限于功能单一,传统的电能表已经满足不了用户对其越来越高的要求。本文采用STM32F103RC型号的微控制器作为主控芯片,设计了一款实用性强、结构简单的多功能电能表。在设计电能表硬件和软件的过程中,都采用了模块化的设计思想。其中,多功能电能表的硬件局部主要包括主控模块、电源转换模块、电压电流采样模块、EEPROM存储模块、LCD段码显示模块、按键输入模块和RS485通讯接口模块。并且利用软件编译平台MDK进行了软件局部的设计,主要包括主程序、系统初始化程序、电量处理程序、键盘中断程序以及LCD段码显示程序。本文最后完成了多功能电能表的系统调试,对经过采样和调理得到的电压、电流信号进行计算,并完成显示,而且通过按键的选择实现了显示屏的切换,根本实现了多功能定能表的预期功能。关键词:电能表;STM32F103;段码LCD;RS485ABSTRACTElectricitymeterconnectsa"bridge"betweenpowerusersandpowerthatusedasakindofmeasurementtool.Thelinkbetweenitandthepeople'slivesmoretoclosewiththepowerpositioninpeople'slivesincreasinglyimportant.Whilethemeterisconstantlyevolving,butlimitedtoasinglefunction,theconventionalmetershasfailedtomeetthegrowingdemandsofitsusers.Inthispaper,usingthetypemicrocontrollerofSTM32F103RCasthemasterchip,designedapractical,simplestructureofmulti-functionmeter.Intheprocessofthedesignofmeterinhardwareandsoftware,haveadoptedamodulardesignthinking.Amongthem,thehardwarepartofthemulti-functionmeterincludescontrolmodule,powerconversionmodules,voltageandcurrentsamplingmodule,EEPROMmemorymodule,LCDsegmentdisplaymodule,akeyinputmoduleandRS485communicationinterfacemodule.AndusingsoftwareplatformMDKdesignsthesoftwarepart,includingthemainprogram,thesysteminitializationprocedure,powerhandlerprogram,akeyboardinterruptprogramandLCDsegmentdisplayprogram.Finallycompletedthesystemdebuggingofthemulti-functionmeter,thevoltageandcurrentsignalsobtainedthroughsamplingandconditioningwerecalculated,andcompletethedisplay,butalsothroughtheselectbuttontoswitchthedisplay.Thebasicrealizationofthemulti-functionwillbeabletowatchtheintendedfunction.Keywords:PowerMeter;STM32F103;segmentLCD;RS485目录第一章绪论11.1电能表1电能表的概念1电能表的开展11.1.3电能表的开展现状21.2多功能电能表3多功能电能表的现状3多功能电能表存在的问题31.3电能表的开展前景41.4课题研究背景及内容4课题研究背景4课题研究内容4第二章多功能电能表硬件设计62.1整体方案设计62.2主控芯片的选择62.2.1STM32F芯片简介72.2.2STM32F芯片优势72.3硬件电路设计72.3.1主控电路设计72.3.2采样电路设计102.3.3按键显示电路设计122.3.4RS485通讯电路设计132.3.5存储电路设计142.4本章小结15第三章多功能电能表软件设计163.1软件设计163.1.1软件开发平台MDK163.1.2软件设计流程163.2主程序设计173.3初始化子程序设计183.4采样程序设计203.5计量程序设计213.5.1计量算法的介绍213.5.2ADC数据转换原理223.5.3计量算法程序设计233.6显示程序设计233.7按键处理程序设计243.8本章小结25第四章系统测试及实验264.1采样电路模块测试264.1.1采样电路仿真测试264.1.2采样电路测试284.2ADC模块调试294.3显示模块调试304.4本章小结31第五章总结与展望325.1工作总结325.2展望33致谢34参考文献35附录A:硬件设计原理图与PCB图37第一章绪论1.1电能表电能表的概念从概念上来说,电能表就是用来计算一段时间内消耗电量值的专用仪表,通常也被叫做电度表和火表。电能表根据其他差异的方面也可以被划分到不同的范畴,比方按照使用途径进行分类,就可以将其分为单相电能表、有功电能表以及多功能电能表等等。此外还可以按照电能表的工作原理、接入电源的性质以及接入的相线数来进行仔细的分类。电能表的开展随着科技的快速进步,电能表在不断地更新换代,以应对人们对于功能和性能越来越高的要求。总结其开展的脚步,大致可以概括如下:(1)感应式电能表在人们还没开始对于交流电进行开发和应用的时期,第一台直流电能表就被科学家利用电解原理创造出来。尽管其测量精度不尽人意,并且只能局限于测量直流电,但是对于推动电能计量表的开展而言,意义重大。在人们掌握了交流电利用方法后,科学家们就依照旋转磁场理论创造出了用于计量交流电量的感应式电能表。由于感应式电能表具有较为简单的结构,制造本钱低,平安性高,寿命长久,易于维修等特点,因而得到了普遍的应用。并且在接下来的很长时间里,人们都致力于感应式电能表性能和功能的完善。但是,随着现代电力系统的不断开展,高次谐波的出现对传统感应式电能表提出了挑战。在高次谐波的影响下,感应式电能表的优点被“淡化〞,原先“隐藏〞在暗处的缺点得以放大。不仅测量精度和测量频率不能满足现代工业的要求,而且由于感应式电能表制作原理的局限性,功耗问题已经变成一个不容无视的事实。功能单一的感应式电能表渐渐被现代工业和现代的电力用户所“抛弃〞。(2)机电式电能表在人们对电能表功能和性能要求不断提高的情况下,发现可以将电子电路应用到感应式电能表,保持制作的根本工作原理不变,使得感应式电能表功能得到进一步的改善,创造出机电式电能表。机电式的电能表又常常因为它的工作原理被称为脉冲式的电能表,它是利用机体发出电脉冲,依据光电转化原理进行工作,从而完成电能测量的。机电式电能表在传统感应式电能表的根底上进行了改良,突破了原先存在的局部局限性,使用寿命延长,抗干扰能力进一步加强。但是由于其制作和利用的工作原理及理论在本质上与感应式电能表一致,因而仍然没有方法克服测量频率范围窄、测量精度缺乏的缺点。但是机电式电能表的出现和应用,激发了人们创造全电子式电能表的动力,并且提供了新的思路。(3)电子式电能表电子式电能表的创造得益于功率测量原理,这个原理是由日本科学家首先提出,并且很快就将其应用到实践中。由于电子式电能表是在机电式电能表提出旋转结构的根底上得以实现的,因而又被叫做静止式电能表。由于制作和工作原理得到了改良,电子式电能表能够突破以往电能表的很多局限之处。测量精度得到了大幅度的提高,寿命进一步延长,测量的频率范围已经从开始的窄频带得到了很大的拓展,可以实现几千赫兹的频率跨度。同时,对于高次谐波的抗干扰能力得到了大幅度的提高,高功耗问题也得到了一定的解决,迎合了现代工业的要求,因而电子式电能表很快就取代了其他的电能表,在全球范围内都得到了广泛的应用,并且性能在不断地得到改善。全球科技竞争愈演愈烈,电力电子技术以及通讯技术“全面开花〞,科技越兴旺,电能表的性能越优越。如今,电子式电能表有了更长久的寿命,更精巧的外形,更精确的测量精度,更强大的抗干扰能力。实用电能表向功能多元化开展前进是不可逆转的一个大趋势。1.1.3电能表的开展现状由于开展中国家和兴旺国家的科技开展水平不同,电子式电能表在兴旺国家的应用更为普遍。日本早在上个世纪70年代就首先研制出电子式电能表,欧美兴旺国家更是紧跟其后不断研制出性能更加完善的电子式电能表,并且仅仅用了十年的开展时间,就推出了性能优越、功能完善的全电子式多功能电能表。现在的事实就是,工业兴旺的国家在电能表市场上占据了绝对性的不可撼动的位置。中国作为一个开展中国家,由于经济和科技的双重原因,在电能表的自主研发领域起步较晚。直到上个世纪90年代,我国自主研发电能表的事业才真正起步。近年来,我国创新意识被唤醒,科技得到快速的开展。能够自主研制电能表的企业,无论是在数目上还是在技术上都有了质的飞跃,在技术的改良与创新的过程中,已经出现了少数可以在技术和口碑都领先于国际水平的企业。但是从整体角度出发,我国的科技创新水平还是落后于兴旺国家和工业兴旺的西方国家,在电能表的研制方面还要做出更多的努力和创新。1.2多功能电能表多功能电能表的现状剧烈的市场经济下,电能表只有不断地改良和完善工作性能才能立足。单一功能的电能表早已不能满足市场和用户的需求,为了适应市场的开展、用户的期望,多功能电能表很快就被创造出来并得到应用。从功能上讲,多功能电能表就是指除根本电压、电流等电量的测量、有功和无功功率的计量外,还应具有分时、通讯等两种以上的功能,并且还要具有存储、显示、传递数据以及和上位机之间进行通讯的功能。多功能电能表在我国起步较晚,近几年才开始有了长足的进步。另外我国地域广阔,南北、东西经济开展水平差距大,在一些经济兴旺的主干城市已经开始普及多功能电能表。但是在经济较为落后的农村仍然沿用传统的单一功能的电能表,负责抄表的工作人员工作强度大、工作量多,并且工作效率低,特别在外部环境恶劣的情况下。这就迫切要求制作电能表的厂商应该从实际出发,研制出更加实用方便的多功能电能表,加大多功能电能表普及的力度。多功能电能表存在的问题尽管,我国大城市已经在普遍使用多功能电能表,但是仍然存在一些问题。〔1〕本钱高。多功能电能表使用方便,但是对于用户来说价格却偏高。随着功能的进一步扩展,制作本钱也在不断抬升,销售价格随着制作成“水涨船高〞。本钱对于电能表生产商是一个负担,而价格更是电力用户考虑的因素。过高的制造本钱使得制作商“望而却步〞,阻碍了厂商扩展多功能电能表生产规模的决策,不利于产品在市场上的大规模推广。近几年,由于电力电子器件的开展,制作本钱不断下降,本钱的问题也会慢慢地得到解决。〔2〕平安性。多功能电能表需要实现的功能较多,传输的数据相应增多,如今市场自由竞争剧烈,信息的平安性尤为重要。这对于传输数据的通信方式是一个严峻的考验。为了保障电力用户的利益,防窃电技术也将成为将来电能表开展的一种重要的技术支持。〔3〕灵活性差。多功能电能表早就宣称已经朝着智能化和网络化的方向开展,但是智能化也只不过是人们事先将“预见〞的可能事件写入程序,不断地进行实时的检测,当发现此类事件发生时才会做出相应的响应,并“自行处理〞出现的问题,排除潜在的危险。当出现人们无法预知的事件发生时,“有大脑〞的电能表也就无能为力,失去抵抗的能力。1.3电能表的开展前景电子技术的迅速开展,拉动了信息通讯、传感器等技术的开展。快速开展的技术在满足了电力用户各种期望的同时,也使得其对于电能仪表的要求越来越高,这就要求电能表要在精度、可靠度、便捷性方面有进一步新的改良。未来多功能电能表的开展方向大致就是高精度化、高可靠性化、网络化和智能化。(1)高精度。精度是评判电能表功能好坏的重要指标,精度的上下直接影响到电能表反应信息的准确性。市场上大量流通的电能表的精度一般都位于0.2S的水平。在日程生活中,电能表是要作为测量电能的工具发挥作用的,需要长时间不间断工作。因而在不同的外界环境下、不同的电能频率下,保持电能表测量精度的稳定性也是十分重要的。(2)高可靠性。电子式电能表的制造主要基于电力电子器件,因而电力电子器件的性能直接影响甚至决定了电能表的性能。因而要保证和提高电能表的可靠性,就必须解决电力电子器件的可靠性问题。电力电子器件的性能,将是攻破电能表在开展过程中“瓶颈〞问题的关键因素。多功能电能表正在朝着高精度、高平安性、智能化和网络化的方向上开展,关键的技术支持是必不可少的。这些技术主要有谐波测量技术,通讯技术,软硬件冗余设计技术,抗饱和技术和线性补偿技术等。1.4课题研究背景及内容课题研究背景社会经济的开展,带动电能的迅猛开展;现如今电力系统的开展又成为了国家经济开展和国民生活质量提高的决定性因素。作为测量电能的仪表,电能表的开展就变成了关系国家百姓生活舒适度的一个重要的工具。高精度的三相多功能电能表的研制和应用,是适应时代开展的重大工程,并且可以拉动整个仪器仪表业的开展,拥有不可估量的经济价值。研制功能强大、使用方便、功耗低的电能表也和国家建设“资源节约型、环境友好型〞的社会理念相契合。课题研究内容本课题旨在从实际需求出发,设计一款经济实用且结构简单的多功能电能表。首先要了解电能表的工作原理和在国内外的开展历程,从工作原理出发分析电能表存在的优缺点;然后依照本课题要实现的功能,从实现功能的可行性、可能性和使用方便性等方面进行考虑,进行整体设计方案的选择和论证。再依照模块化思想的设计原那么,将整个硬件设计方案分解为主控模块、显示和按键模块、电流电压采样模块以及RS485通讯接口模块等模块进行单独地设计,最后通过连线将不同的板子进行整合,建立各个电路板之间的联系,完成整个课题的硬件局部设计。同时要对软件开发平台进行认真地了解,同样采用模块化的思想,编写各个模块的软件程序,实现相应模块的预期功能。最后进行软硬件局部之间的测试和实验,如果发现存在问题,就及时地解决问题,不断地完善软件的程序设计和硬件电路设计。最终完成整个课题的设计工作。第二章多功能电能表硬件设计2.1整体方案设计本文设计的三相多功能电能表的硬件,在整体结构上主要由主控模块、电源转换模块、电流电压采样调理模块、LCD段码显示模块、RS485通讯接口模块、按键输出模块以及EEPROM存储模块组成。其中系统的总体结构框图,如图2.1所示。图2.1系统总体结构框图本文中主控芯片采用型号为STM32F103RC的微控制器,在保证电流、电压采样精度的前提下,使得结构尽可能的简洁,防止了复杂多变的电路布局,更加方便PCB板的制作,并且本钱较为低廉。其中,在采样调理电路的设计中,采用电流互感器进行电流信号的采样,而电压采样局部使用高精度电阻分压网络进行采样设计。2.2主控芯片的选择在设计多功能电能表的过程中,确定主控芯片时,一般有两种选择方案。片上系统SoC往往会成为设计者的选择,这是一种专用的电能计量芯片,内部集成了CPU和一系列电能计量的功能模块,自行对采集到的电量进行转换和计算,软件设计局部简单,易于实现。但是片上系统Soc价格昂贵,会使得整个设计的本钱大增,因而这种片上系统不适用本课题进行设计。本文选择使用型号为STM32F103RC的微控制器作为主控芯片,其中电量计算的任务需要在软件里完成,虽然加大了软件编程的难度,但是在很大程度上控制了课题的设计本钱,并且该型号的芯片也具有一系列显著的优点。2.2.1STM32F芯片简介基于ARM7和ARM9内核进行设计是微控制器开展的一个典型趋势,2006年第一个基于ARMCortex-M3内核的微控制器STM32由意法半导体〔STMicroelectronics,简称ST〕推出。Cortex系列主要拥有3个不同的分支,分别是A分支,R分支和M分支。STM32隶属于M分支,属于微控制器系列产品,同时在结构组成上STM32也分为根本型和增强型两个不同的版本。其中STM32的根本型外挂的设备数目少,最高只能承受36MHz的时钟频率,而增强型的STM32拥有完整的外部设备,同时CPU可以在最高72MHz的时钟频率下运行2.2.2STM32F芯片优势最初研制STM32系列的微控制器就是以提高系统的性能和降低工作时的功率损耗为目标的,STM32的出现是微控制器领域的一个新的飞跃,与以往的微控制器相比拟,具有突出的优越性。(1)精密性。STM32是比拟高端的一种微控制器,集中分布着完备的外设,布局精巧,器件放置紧密且不失独特性。比方STM32具有两个12位高精度的ADC转换器,并且在一定的条件下可以实现同时工作,衍生出多种转换模式,功能强大。(2)可靠性。STM32的外设布局越来越精密,但是对于可靠性的要求并没有因此降低。为了在外挂的器件越来越多的情况下,依旧能够保持高可靠性,STM32配备充足的硬件电路,主要包括低电压监测器、时钟管理器和看门狗等。比方时钟管理系统负责监测外部时钟的工作,一旦外部时钟源发生问题,系统就会自动将内部振荡器切换为主时钟源。(3)平安性。信息时代,最为剧烈的就是信息竞争,确保信息在传递过程中的保密性,是实现信息平安的必要步骤。一旦数据中包含的信息泄露,整个信息的传递就没有继续下去的意义。STM32可以通过锁定Flash引脚来确保信息不会泄露和被窃取,一旦出现想要获取芯片内部信息的行为,引脚状态就会被拉高,STM32会自动去除芯片内部信息。从而最终确保信息的平安性。(4)在线调试。STM32支持Thumb-2指令,可以在C语言环境下完成软件的编译、仿真和调试。在软件平台上编写的程序可以通过下载口,下载到STM32芯片内部,进行在线调试,方便实时发现错误并进行及时的修改,实用性强。2.3硬件电路设计2.3.1主控电路设计本课题以型号为STM32F103RC的微控制器作为主控芯片。要实现多功能电能表的预期功能,主控芯片必不可少,电量计量的任务、显示和显示屏切换的功能以及RS485的通讯功能都需要在主控芯片内设计和进行。STM32F103RC微控制器的最小系统由复位电路、时钟电路、电源转换电路和下载电路组成。其中,复位电路就负责主控芯片的初始化;时钟电路负责为系统提供时钟基准,但是在本课题中,系统利用的是内部时钟,因而并没有特意设计外部时钟电路;电源转换电路负责对给定的电源进行转换,然后作为系统运行时的驱动源;下载端口是连接硬件和软件的“桥梁〞,负责将编写的程序下载到制作好的电路板中,进行调试和验证。其中主控芯片的原理图,如图2.2所示。图2.2主控芯片原理图STM32芯片自身携带内部RC振荡器,为芯片提供时钟基准,本课题中采用的主控芯片属于增强型的范畴,可以在72MHz的时钟下运行。但是内部RC振荡器的缺乏之处是:准确性不够,而且稳定性不好,所以在设计时常采用外部的晶振时钟源。通常情况下,外部时钟源可以分为高速外部振荡器、低速外部振荡器和时钟输出。在本课题中,主控芯片选择外接晶振电路,属于高速外部振荡器。该电路由C9、C10、Y1组成,由它为主控芯片提供时钟基准。同时原理图中分布的电容C8~C16存在的意义就是稳定电源,使得整个系统的稳定性得以提高。因为STM32F103RC的引脚可以承受的最高电压的范围为2.0V~3.6V,一般情况下选择+3.3V,因此需要对给定的电源进行转换。本课题中,设计的电源转换电路采用的芯片型号是ASM1117-3.3,此电平转换器件具有体积小、损耗低并且稳定性能好等优点,同时它最高可以输出1A大小的电流,这一特性使得该芯片几乎可以和全部的电子网络芯片进行匹配,因此得到了普遍的应用。该系统中电源转换电路的原理图,如图2.3所示。图2.3电源转换电路原理图STM32F103RC型号的微控制器的驱动电源为+3.3V,实际中可以提供的是+5V的直流电源,所以本电源转换电路实现的功能就是将+5V的直流电源通过芯片AMS1117-3.3转化为+3.3V的直流电源,实现为主控芯片进行供电的功能。另一方面,电量计量单元作为多功能电能表的核心局部,计量的准确度和精度将直接影响电能表最终功能实现的程度,所以在硬件电路的设计中一定要排除影响采样和计量精度的内外部因素。如图2.3所示,数字地GNDD和模拟地GNDA采用磁珠来进行连接,抑制电源线中涌动的高频噪声和干扰信号,使得系统更加稳定。同时设计由0.1μF和10μF电容组成的并联电路,将该电路置于电路输出端,具有滤波和稳定电压的作用,进一步提高了输出电压的稳定性。STM32F10XX系列的单片机支持系统复位、上电复位、备份区域复位三种复位模式。STM32F103RC芯片同时具有内部复位的功能,当系统检测到供电引脚上的电压低于2V时,就会自动复位,但是会存在迟滞问题的局限性。故在进行本课题的设计时,为了保证平安性采用外部复位电路来实现系统的复位,最小系统的复位电路如图2.4所示。图2.4复位电路原理图该复位电路属于系统复位范畴的外部复位方式,当送入芯片引脚NRST的信号为低电平时,芯片进行复位。通常情况下,CPU在上电后需要处于一个确定的初始状态,并且经历短时间的复位后,芯片就要从这个初始状态开始工作,这项工作要由复位电路得以实现。如图2.4的复位电路所示,阻值为10K的电阻R5使得流入主控芯片引脚的电流只有0.33mA,保证芯片的平安,防止了电流过大将芯片毁坏的情况发生。系统启动时,按下按键KEY_rst时,Reset处的信号被拉低,芯片引脚NRST信号为低,芯片复位;当按键抬起时,Reset处的信号便会拉高,芯片引脚NRST信号为高,芯片不会复位。复位电路中的电容C17,有稳定电路的作用,使电路性能更加的优越。STM32支持不同的启动模式,并且在进行软硬件调试时离不开下载端口,系统的启动模式和下载端口的电路原理图如图2.5所示。图2.5启动模式和下载端口原理图首先,STM32主控芯片具有不同的启动方式,启动模式由BOOT0和BOOT1的取值组合决定,不同的启动方式决定了主控芯片在进行复位后,从某一特定区域开始执行系统程序。当编程完成,电路板制作结束后,就可以对程序进行下载,STM32支持的仿真和下载方式有两种,分别为JTAG模式和SWD模式。其中,JTAG模式要用到5个I/O口,而SWD模式只要用到2个I/O口。考虑到节省资源以及结构的简化,本设计采用SWD模式进行下载,下载端口只需要将2根线连到主控芯片,另外2根线连接到电源和地,这样就可以进行程序的下载。2.3.2采样电路设计电量的采样是实现电能表功能的关键技术,只有保证采样的精度和准确度才能确保电能表功能实现的准确性。电流采样调理原理图如图2.6所示。图2.6电流采样调理原理图本课题采用电流互感器进行大电流的采样过程,之所以选择电流互感器而不选择采样线性范围比拟广的电阻网络取样,是因为电阻在经历过长期工作后,阻值会受到温度以及其他一些外部因素的影响而发生变化;而采用电流互感器的方案就可以保证在长期工作条件下,其阻值稳定性较好。图2.6中的电流信号是取自电路中的大电流经过电流互感器变换后产生的小电流信号。其中,经过电源转换电路后得到的+3.3V直流电源,再经过分压电路后变成+1.65V,得到基准电压Vref,该信号用于抬升电流信号的基准。采集到的小电流信号I经过LM358的输出信号的计算公式〔3-1〕为:Ua_c=Vref其中Vref为+1.65V,由于I的值是毫安等级的,所以从LM358端输出的信号会处于0~+3.3V的电压范围内,处于芯片可以承受的信号范围内,保证了芯片的平安性。图中电容C1的作用就是滤除采样点的干扰信号,稳定由分压电路得到的电压信号,去除杂波信号;最终将经过调理的采样电流送进STM32内部自带的A/D转换通道口,之后的计量算法中,在减去基准电压的根底上,再进行相应电量计算的处理。涉及到算法选择的局部,参照本论文软件局部关于算法的详细说明。系统要处理的电压信号属于大电压,如果直接将大的电压接到芯片引脚上,很容易就会将芯片主板烧毁,造成损失。所以要对采样得到的电压信号进行处理,这就需要电压的调理电路,本篇论文运用电阻分压网络进行电压采样调理电路的设计,其中电压采样电路原理图如图2.7所示。图2.7电压采样原理图本课题中设计的电能表是三相多功能电能表,需要采集三相的电压信号。以其中的A相电压作为实例进行阐述。如上图2.7所示,A相电压采样电路〔以220V交流电为例〕中,电阻R10~R14是分压电阻,阻值都为200K。其中采用多电阻串联代替单个大电阻的原因主要有:防止产生大的电压降,更好地保证电路的平安性;降低电阻在工作时承受的电压大小,减小电阻工作时的功率,因此就可以选取小功率的电阻。R15为采样电阻,阻值为2K,接在放大器的正向输入端。同时将经过分压处理的基准电压接入放大器反向输入端,从运算放大器输出端引出的信号就是要送入主控芯片引脚的电压信号。其中A_v的计算公式〔3-2〕为:A_v=A_v信号类似于经过调理的电流信号,直接送到STM32F芯片自带的A/D转换通道口,进行模拟量到数字量的转换,然后将基准电压1.65V减去后,按照制定的计量算法在软件中进行电量的计算。本分压电路网络中,用于分压场合的电阻一般情况下阻值位于欧姆级和千欧姆级之间,采用的封装也比拟小,不用担忧占据电路板太多的空间。同时通过阻值为200K的电阻的电流计算公式〔3-3〕为:I=Av-其中Av的最大值可以到达220×2≈311V,Vref为1.65V,那么通过200K分压电阻的最大电流约为0.31mA,所以每个电阻承受的功率计算公式〔3-4P=I2×R≈0.02w〔可知只要选用四分之一功率的电阻即可。2.3.3按键显示电路设计显示模块电路的作用就是将经过采样、调理和计算后得到的电流、电压和功率在显示屏上进行显示,因而显示功能的完成是电能表功能实现的重要指标;而按键电路的作用就是进行显示屏切换和变量的设置,其中,按键电路的原理图如图2.8所示。图2.8按键电路原理图本课题在进行原理图设计的过程中用到四个独立按键,其中阻值为10K的电阻R1~R4,作为上拉电阻具有限流、保护电路的作用,而电容C3~C6的作用就是进行按键抖动的消除,抑制电路中的低频干扰。其中K1键作为PageUp按键,进行向上翻页的动作;K2键作为PageDown按键,进行向下翻页的动作。K3和K4键作为预留的按键,用于以后的功能扩展。按键功能属于显示模块的拓展功能,显示模块的电路原理图如图2.9所示。图2.9显示电路原理图在图2.9显示电路原理图中,由10uF和0.1uF的电容组成的并联电路的作用就是:稳定电压,消除存在的干扰信号,并联的电容值存在倍数的差异,可以扩大抑制的干扰信号的频率宽度,提高系统的稳定性能。本课题采用了段码LCD方式进行显示功能的设计,LCD段码显示方式由来已久,在液晶显示屏应用早期,段码液晶的称呼就已兴起,它的出现主要是为了替代LED数码管,LED数码管主要应用于计算器、钟表等简单的仪器,结构简单,功能易于实现。开展至今,非点阵类液晶显示屏都被称为段码液晶屏。段码LCD显示和LCD液晶显示的主要区别就在于LCD液晶显示利用点阵进行编码显示,而LCD段码显示那么是以段码的形式进行编码显示。LCD段码显示屏一般可以采用HT1621系列的芯片进行驱动。由显示电路的电路图可知,HT1621B的结构简单,和主控芯片的连线十分简洁,只需要将CS,WR,DATA几个引脚连接到主控芯片即可。下载程序方便可靠,并且HT1621B内部自带节电程序,在很大程度上降低了功率的消耗。由本芯片驱动的液晶屏显示的主要内容有电流有效值、电压有效值、三相电的功率消耗情况。2.3.4RS485通讯电路设计RS485是一种双向半双工的通信协议,具有经济高效、抗干扰能力强、传输速率快、传输距离远的特点。通讯接口一般分为串行接口和并行接口,RS485接口隶属于串行接口,在近距离传输数据领域应用较为成熟,特别是在平常的工业设计中应用更加广泛。本文采用MAX13085E低功耗收发器,该芯片内部集成驱动器和接收器,其中驱动器负责建立电气特性电平和数字信号电平之间的联系和转换。RS485通讯电路原理图,如图2.10所示。图2.10RS485通讯电路原理图图2.10中的6N137是高速光耦合器芯片,用于电源和信号的隔离。该电路中采用独立于主板的电源转换电路设计,使得电路的运行更加的平安稳定。MAX13085E的性能优越,工作可靠,具有一个信号接收器和一个驱动器,为了保证芯片的抗干扰能力,在A、B端分别接有上拉电阻和下拉电阻,用来保护芯片的可靠运行。当RE端为低电平时,如果引脚端A-B≥-50mA,那么RO端为高,接收信号;反之,RO端为低,DI端为高,发送信号。其中RO为数据接收端,通过光耦合芯片6N137接到主控芯片的RXD引脚,DI为数据发送端,通过光耦合器接到主控芯片的TXD引脚,A、B端负责接收和发送总线上传送需要进行说明的一点是,为了方便功能的扩展和二次开发,本课题在设计过程中只是预留了RS485的通讯接口。2.3.5存储电路设计因为检测到的信号以及计算得到的数据都是以变量的形式储存在STM32F的RAM区内,而RAM又是掉电易失性的,一旦电能表在运行的过程中失电,再次运行时,数据就已丧失,所以必须设计外部存储电路进行数据的掉电保护。本课题选用24C02芯片进行EEPROM存储电路的设计,24C02在仪器仪表和工业自动化设计中应用最为广泛,主要得益于其具有电路简单,接口方便,占用面积少,掉电数据不丧失等特点。EEPROM存储电路如图2.11所示。图中的电容C14的作用是稳定电压。图2.11EEPROM存储电路原理图2.4本章小结本章进行的介绍主要是围绕多功能电能表硬件电路的设计。首先对课题的整体方案进行介绍,并且针对所用的主控芯片的选择进行了论述,然后针对硬件电路的设计进行了大概的阐述,包括主控电路设计、电源转换电路设计、采样电路设计、显示和按键电路设计、RS485通讯电路设计以及EEPROM存储电路设计。并对其中几个重要的电路进行了详细的介绍和分析。第三章多功能电能表软件设计3.1软件设计3.1.1软件开发平台MDKKeilMDK是著名的软件公司Keil研制并开发的微控制器软件开发平台。Keil公司是一家在微控制器〔MCU〕软件开发领域地位卓越的国际公司,并且于2005年被ARM公司收购,是目前针对ARM内核单片机开发的主流平台产品。Keil提供了一整套完整的开发方案,主要包括C语言编辑器、连接器、宏汇编、文件库和一个功能强大的在线仿真调试器。这些功能通过uVision集成开发环境被集结在一起,目前正在使用的最高版本就是uVision4,该平台所依附的编译界面和C语言研发平台的界面比拟相似,界面环境设计人性化,易于初学者学习和应用,更适合深一步的研究和开发。不仅如此,在软件在线调试和仿真方面功能也很强大。一般情况下,致力于ARM开发的工程师都将此开发平台作为首选。KeilMDK软件开发平台的开发周期和其他的一些软件开发平台的周期大同小异,一般包括以下几个步骤:首先创立一个新的工程,选择相应的芯片型号,同时将创立工程所需要的固定配置提前设置好。编写工程源代码,一般采用C语言或者汇编语言,在本课题中采用的是C语言。编译程序,查找程序中的语法和逻辑错误。修改在编译过程中出现的问题。编译通过后,可以将程序下载到硬件开发板中,进行软硬件的联机调试。这就是利用MDK软件开发平台进行开发的主要周期。3.1.2软件设计流程为了提高系统的运行速度,改善系统的性能,在进行软件设计时,也采用了模块化的思路,本文中的软件编程采用了调用固件库函数的设计方法。不管使用的微处理器开展到何种地步,进行设计时,最终还是要对存放器进行操作,但是STM32拥有数百个存放器,要想对每个存放器都了如指掌是及其困难的。调用固件库函数进行编程就可以解决这个困难,STM32的固件库就是函数的一种集合,固件库函数的作用就是一方面负责直接与存放器建立联系,另一方面为用户提供函数调用的接口〔API〕。其中软件整体的设计框图如图3.1所示。图3.1软件整体设计框图在设计多功能电能表的主控电路时,考虑到外部晶体振荡器速率较低,能够更好地保证系统稳定性,因而选用8MH的晶体振荡器,同时在软件中选用7倍频的设置,很好地提高了系统处理程序的速度。3.2主程序设计软件的主程序负责整个系统初始化、各个模块的固件库函数以及中断函数的调用,其中主函数的流程图如图3.2所示。由图3.2可知主程序的设计思路为:系统上电后,首先进行各个模块配置的初始化,设置100ms的定时刷新时间,实时监测定时时间是否到达,如果定时时间到,进行数据的处理和保存;数据保存后,实时监测显示屏刷新时间是否到达,如果刷新时间到,就进行刷新显示;同时,要不间断地检查是否有按键动作或者是否需要进行通信,只要检测到有相应事件发生,就立即进入到相应程序里,进行处理。比方检测到按键动作就要转入相应的按键处理程序,进行页面切换的选择;检测到通信请求信号时,就要转入RS485通讯程序处进行处理,在本课题中,下位机并没有实现和上位机的连接,同时为了功能的扩展,预留了RS485的通讯接口,方便以后功能的二次拓展。图3.2主程序流程图3.3初始化子程序设计系统在运行之前需要进行初始化,包括系统时钟的配置、定时器的初始化、ADC初始化、GPIO口的配置、显示初始化和键盘初始化。〔1〕系统时钟配置和定时器初始化:TIM_TimeBaseInitTypeDefTIMBaseStruct;TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//去除TIM2的中断源;TIMBaseStruct.TIM_Period=12500;//1.25ms的采样时间周期;TIMBaseStruct.TIM_Prescaler=72-1;//72分频;TIMBaseStruct.TIM_ClockDivision=0;//未设置时钟分割;TIMBaseStruct.TIM_CounterMode=TIM_CounterMode_Up;//向上计数;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//挂接定时器2;TIM_TimeBaseInit(TIM2,&TIMBaseStruct);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//使能定时器2;TIM_Cmd(TIM2,ENABLE);//使能TIM2;〔2〕ADC和GPIO初始化子程序:ADC_InitTypeDefADC_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);//使能ADC1通道时钟;RCC_ADCCLKConfig(RCC_PCLK2_Div6);//设置ADC分频因子6,72M/6=12,ADC最大时间不能超过14M;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;//六路信号输入;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//模拟输入引脚;GPIO_Init(GPIOA,&GPIO_InitStructure);//选择A通道管脚;ADC_DeInit(ADC1);//复位ADC1,将外设ADC1的全部存放器重设为缺省值;ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC工作模式:ADC1和ADC2工作在独立模式;ADC_InitStructure.ADC_ScanConvMode=DISABLE;//模数转换工作在单通道模式;ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//模数转换工作在单次转换模式;ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//转换由软件而不是外部触发启动;ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right; //ADC数据右对齐;ADC_InitStructure.ADC_NbrOfChannel=1;//顺序进行规那么转换ADC通道的数目;ADC_Init(ADC1,&ADC_InitStructure);//根据ADC_InitStruct中指定的参数初始化外设ADCx的存放器;ADC_Cmd(ADC1,ENABLE);//使能指定的ADC1;ADC_ResetCalibration(ADC1);//使能复位校准;while(ADC_GetResetCalibrationStatus(ADC1));//等待复位校准结束;ADC_StartCalibration(ADC1);//开启AD校准;while(ADC_GetCalibrationStatus(ADC1));//等待校准结束;〔3〕显示初始化程序:LCD_CS=1;LCD_DATA=0;LCD_WR=0;Init_HT1621();〔4〕键盘初始化:GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;//键盘接在GPIOB12、B13、B14、B15管脚上;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//上拉输入;GPIO_Init(GPIOB,&GPIO_InitStructure);3.4采样程序设计本课题使用六路通道采样,将通过硬件电路调理得到的信号送进A/D转换口进行处理,在程序执行的过程中选择中断子程序调用的方式进行A/D对信号的采集过程,其设计流程图如图3.3所示。图3.3采样流程图ADC采样程序:staticu8s_sampTim=0;g_volA[s_sampTim]=Get_Adc(ADC_Channel_1)*(3.3/4095)-1.65; //通道1,A相电压;g_curA[s_sampTim]=Get_Adc(ADC_Channel_4)*(3.3/4095)-1.65; //通道4,A相电流;g_volB[s_sampTim]=Get_Adc(ADC_Channel_2)*(3.3/4095)-1.65; //通道2,B相电压;g_curB[s_sampTim]=Get_Adc(ADC_Channel_5)*(3.3/4095)-1.65; //通道5,B相电流;g_volC[s_sampTim]=Get_Adc(ADC_Channel_3)*(3.3/4095)-1.65; //通道3,C相电压;g_curC[s_sampTim]=Get_Adc(ADC_Channel_6)*(3.3/4095)-1.65;//通道6,C相电流;s_sampTim++;if(s_sampTim>=16) s_sampTim=0;本采样程序中,一个周期进行16组的数据采样,每次得到最新一组的采样数据时,就替换掉数组中最原始的那组数据,保证进行计算的数据是最新的16组采样数据。上述程序完成了六路信号的采样。程序中减去1.65的原因是在设计采样的硬件电路时,抬高了调理得到的信号基准,基准电压采用的电压是分压得到的+1.65V。3.5计量程序设计在本课题中,经过采样调理电路得到的调理信号,送进A/D转换接口后得到一系列离散的电流、电压数字序列,按照以下的算法处理得到真正的测量值。3.5.1计量算法的介绍〔1〕电压电流有效值计算本课题中的采样电压电路所用的方法为电阻分压网络,从A/D转换口得到的电压数字序列是经过分压过后的电压信号u,电压的有效值就等于其在一个周期内的方均根值,用公式〔3-1〕来表示为:U=1T0T将其离散化得到公式〔3-2〕:U=1Tn=1N等式中的是采样时间间隔,un为在第n采样点得到的瞬时电压值,N是在采样区间内的总的采样点个数。在计算过程中将∆Tn默认为一个不变的值Tn,同时又有N=T∆T,可以得到公式U=1Nn=1N即得到电压的有效值。同理可以得到电流有效值的公式〔3-4〕为:I=1Nn=1N〔2〕功率因数测量交流电路中,功率因数在数值上等于有功功率和视在功率的比值,而视在功率可以用公式〔3-5〕来表示:S=P2+Q所以功率因数的表示公式〔3-6〕为:cos∅=cosP〔3〕无功功率测量对采样到的电流进行数字式移相90度,再用类似于求取有功功率的方法进行计算就可以得到无功功率的值,单相的无功功率就等于公式〔3-7〕:Q=1Nn=1N那么三相的无功功率的值就等于公式〔3-8〕:Q=1Nuan其中的un和i〔4〕有功功率测量有功功率的计算就是通过电压、电流周期性的乘机获得。其中单相有功功率的计算公式〔3-9〕为:P=1Nn=1N那么三相总的有功功率的计算公式〔3-10〕就为:P=1Nn=1其中的un和i3.5.2ADC数据转换原理STM32FXXX系列的微控制器自带12位高精度的ADC转换通道,是一种模拟数字转换器,总共拥有18个转换通道,可以分别用来测量外部信号〔16路〕和内部信号〔2路〕。每一路A/D通道都具有单次、连续和间断转换模式三种,进行工作时,可以在三种模式中根据实际情况自由选取其中的一种模式进行工作,在本课题设计的过程中采用的是单次转换模式。ADC转换的数据结果有左对齐和右对齐两种对齐方式。其中ADC的特征主要有:支持双通道同时进行数据转换;具有自校准功能;具有单次和连续转换模式;12位高精度分辨率;数据转换结束以及发生模拟看门狗事件时,自动产生中断;注入组和规那么组均可由外部信号触发;从通道0到通道X的自动扫描模式;ADC最高频率为14MHz,要求2.4V~3.6V范围内的电源进行供电;将经过采样和调理过程得到的电压、电流信号,送进ADC转换通道,要在转换通道内进行模拟信号到数字信号的转换。在本课题的设计中,因为要完成对三相电压、电流的采样,所以要采用6路ADC转换通道,每隔1.25ms就进行一次采样,在工频50Hz的情况下,每经过一个电压、电流周期,就要设置16个信号采样点,按照上文中介绍的算法进行有效值的转换。ADC的基准电压为+3.3V,那么表示采样得到的模拟信号和经过AD转换过后的数字信号之间关系的公式〔3-11〕为:D=A×Vref+其中,n为ADC的位数,取值为12;Vref+为ADC的正参考电压,取+3.3V;Vref-为ADC的负参考电压,取0V,那么公式〔3-11〕可以化简为公式〔3-12D=A×3.34095(3.5.3计量算法程序设计在上文节中介绍的计量算法,需要通过编写程序的方式进行实现,主要是对ADC采集转化过的数字信号进行计算,得到电量的有效值、需要显示的功率值和功率因数的大小。计量算法的程序设计如下所示。计算有效值:doublevirVal=0.0,square=0.0,sum=0.0;u8i=0;for(i=0;i<16;i++){square=pow((*(pt+i)),2);//求平方; sum=sum+square;//求平方和;}virVal=sqrt(sum/16.0);//开平方;开平方之后,转化得到的电流和电压信号分别乘以不同的系数的到真正采样到的电量值。计算有功功率:doubleP=0.0,sum=0.0,product=0.0; u8i;for(i=0;i<16;i++){product=vol[i]*cur[i];sum=sum+product;}使用类似的方法可以求得无功功率、和功率因数。3.6显示程序设计本文中采用的显示屏在进行显示工作时,使用型号为HT1621B的芯片进行驱动,在进行写操作时主要有一般写模式和连续写模式,本文采用连续写模式,其时序图如图3.4所示。图3.4连续写模式时序图在进行写操作时,首先要使能芯片,然后写入三位指令码101进入写模式,随后给定6位内存地址,再写进4位数据;当采用连续写模式进行数据输入时时,地址会自动加一,不用重新写进6位内存地址。显示程序的设计如下:LCD_CS=0;//使能芯片;delay_us(1);//延迟1us;addr<<=2;//地址左移2位;Send_H_Bit(0xa0,3);//发送写数据模式101;Send_H_Bit(addr,6);//发送地址的高6位;Send_L_Bit(byte,4);//发送低4位数据;delay_us(1);//延迟1us;LCD_CS=1;//失能芯片;本课题中在显示屏上呈现的是三行数字,每行四位数字,每位数字都有对应的段码,其段码程序如下所示,三行程序分别代表从上到下的三行0到9的数字代码。u8Digital1[10]={0xaf,0x06,0x6d,0x4f,0xc6,0xcb,0xeb,0x0e,0xef,0xcf};u8Digital2[10]={0xaf,0x06,0x6d,0x4f,0xc6,0xcb,0xeb,0x0e,0xef,0xcf};u8Digital3[10]={0xf5,0x60,0xb6,0xf2,0x63,0xd3,0xd7,0x70,0xf7,0xf3};特定位置的特定数字的编写代码是有规律可循的,其中局部地址分配和代码编写规律,见表3.1所示。表3.1HT1621B局部管脚分配PIN1234567COM0COM0T11F1ACOM1COM1T21G1BCOM2COM2T31E1CCOM3COM3T4P11D例如现在进行第三行的第一个数字9的代码编写,先写出它的首地址为0X01,再写出其数字编码为11110011,即0XF3。3.7按键处理程序设计按键输出模块主要实现的功能就是进行显示屏的切换,本设计原理图中总共放置了四个按键,在按键被按下时,对应的GPIO口处的状态被拉低,检测到其状态的变化后,进入按键处理程序处,产生相应的动作。在功能实现的过程中仅仅使用其中的两个按键,分别设置为PageUp键和PageDown键,其他按键用于多功能电能表的功能扩展。其按键处理程序如下所示。if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)==0)//假设键产生按下动作;{delay_ms(10);//延时消抖;if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)==0)//确定该键被按下;{//按键处理程序;if(g_keySta<2)g_keySta++;//按顺序进行从第1页到第3页的向上翻页动作elseg_keySta=0;}//从第3页向上翻页时,自动跳转到第1页;LCDUpdate();//LCD屏刷新; while(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12));}3.8本章小结本章涉及多功能电能表的软件设计过程,首先进行了软件开发平台的介绍,然后概述了主程序的设计流程和电能计量的数学算法,针对其中主要局部的程序编写进行了设计。其中,对于电能的数学计量算法进行了重点的介绍。同时针对ADC的采样原理和芯片HT1621B的写操作格式进行了简要的介绍。第四章系统测试及实验4.1采样电路模块测试4.1.1采样电路仿真测试课题中设计电压、电流采样电路的目的,是防止接入电路板的电压、电流信号过大,对电路板和操作人员造成伤害。从上文的论述中可知,采样电路要实现的功能就是将大的电压、电流信号转换为主控芯片引脚可以承受的小信号。一般在进行实物连接和测试之前,为了保证系统设计的平安可靠性,都会采用仿真软件进行功能测试,本课题中针对重要的采样模块,利用PSIM仿真软件进行了功能测试。电流采样调理电路的仿真过程主要包括:〔1〕首先在仿真软件平台上,按照原理图中设计的电流采样电路进行创立,如图4.1所示。图4.1创立电流采样电路〔2〕设置给定信号的参数,该仿真电路中给定有效值为5A的正弦电流信号,设置频率为50Hz,如图4.2所示。图4.2设置电流信号参数〔3〕完成电路搭建和参数设置后,进行仿真运行,其中图4.2中的电流互感器的变比是1:2000,基准电压设置为1.65V,该电路运行得到应该是围绕1.65上下波动的正弦波,运行结果如图4.3所示。图4.3电流采样仿真结果电压采样电路的仿真过程与上述电流的仿真步骤相似,首先搭建电压采样电路,如图4.4所示。图4.4创立电压采样电路然后进行给定信号参数的设置,运行后得到结果。给定的电压信号波形,如图4.5所示。图4.5给定电压信号当基准电压Vref=1.65V时,运行后得到的仿真结果是围绕1.65上下波动的正弦波,如图4.6所示。图4.6仿真结果4.1.2采样电路测试进行电流采样电路的测试,假设测试的电流信号最大为+10A,在进行测试时,将+10A的电流信号经过变比为1:2000的电流互感器引出,送入电流采样调理电路后,从LM358芯片输出端引出的电压信号为0V;如果将从电流互感器两端引出的电流信号,经过反向器反向后的电流再接进电流采样调理电路,发现从LM358芯片输出端引出的电压信号约等于+3.3V。说明经过电流采样调理电路得到的电压信号在0~+3.3V的范围内变化,功能可以按照预期得以实现。进行电压采样电路的测试,假设测试的电压信号的最大值约为311V〔三相交流电源的相电压有效值为+220V,那么每相电压的峰值就约为311V〕。将该值的大电压接入电阻分压网络,结合给定的基准电压,最终得到送入芯片引脚的电压信号在0.925V~2.275V的范围内变化,是主控芯片可以承受的范围,说明电压采样调理电路的设计也是根本符合要求的。采样电路模块测试的结果如图4.7所示。图4.7采样电路模块测试4.2ADC模块调试进行ADC模块的软件调试时,首先将ADC模块的程序编写完整,然后当程序编译通过后,将程序下载到硬件电路板中,采用单步调试Debugging方式进行调试。根据原理图进行程序的编写,选择端口A1到A6的6个通道分别作为ADC1到ADC6转换口,因为是对ADC转换模块的测试,可以选择分别将A1到A6的六个接口分别接到+3.3V和GND端,比方将A1代表的ADC1口接到高电平+3.3V,将A2代表的ADC2口接到低电平GND。当电路板接线完成后,进行单步调试后,在Watch窗口里就能实时观察到变量的值,说明ADC转换模块是能完成其功能的。ADC模块单步调试如图4.8所示。图4.8ADC模块单步调试结果4.3显示模块调试显示模块就是将通过ADC转换通道转换过的数据在显示屏里进行显示。在进行显示程序的测试时,首先禁用其他局部的程序,只将ADC转换模块和显示模块的程序进行编译,编译无误后,将程序下载到已经和电脑连接好的硬件电路板中,本设计中采用的ADC转换通道总共有6个,这里以通道ADC1为例进行说明,当A1口接到GND时,显示屏显示0.000;当A1口接+3.3V时,显示屏显示3.299,显示数据保存3位小数点,说明采样精度比拟高,满足设计指标的要求。当A1口悬空处理后,显示屏显示的数据稳定,一般显示的结果会在1.800V附近不断跳跃。为了进一步测试显示屏的效果,可以将ADC口出来的信号通过滑动变阻器后再接到硬件板中,改变滑动变阻器的阻值后,LCD显示屏显示的内容就会发生改变。测试说明,LCD显示模块的功能根本符合要求。LCD显示屏电流显示的测试结果如图4.9所示。图4.9LCD段码显示测试结果4.4本章小结电能表的功能测试和软硬件的联合测试是整个设计的关键环节,只有调试通过,才能根本保证电能表功能的实现。本章针对多功能电能表的软硬件联合调试进行了说明,重点介绍了采样电路模块、A/D转化模块和LCD段码显示模块的功能调试过程,并且调试结果说明重点模块实现的功能是根本符合要求的。第五章总结与展望5.1工作总结设计基于STM32F103RC的多功能电能表的这一课题,具有真正的实用价值。正如前文所论述的内容,电能是人们生活中不可或缺的能源之一,现代生活节奏的加快更加促进了电能的开展,并且加大了人们对电能的依赖,很难想象没有电的现代生活应该如何继续下去。一旦停止电能的供给,即使时间短暂,也会引起巨大的恐慌,造成经济上不可估量的损失。然而,如今又是提倡“节能减排,绿色消费〞观念的社会,作为测量电能的仪表,电能表的作用更是显而易见。本论文就此方面进行了设计,根本完成了预期的电能表的功能,虽然不是令人非常的满意,但是不能因此否认作者在本设计中做出的努力,现将本论文作者在设计过程中的主要工作做出如下总结:〔1〕在工作初期,收集了很多相关文献,就其中的整体思路进行了深入的阅读,得到初步的设计思想,并且不断得到修改,最终确定本论文中采用的整体结构架造。同时,对于电能表的设计所涉及到的关键技术,也进行了阅读,有了大概的思路。〔2〕在本文第一章中,作者就电能表的定义、开展历程和电能表在生活中的重要意义,做出了详细的介绍。并且,举例说明了电能表在中国的开展现状,以及存在的问题。〔3〕在本文第二章中,作者就本设计选用的主控芯片进行了简要的介绍,并且也阐述了芯片的优越性能。然后对设计过程中采用的总体方案进行了论证。并且详细介绍了课题中各个模块的硬件设计电路,主要包括主控电路的设计、采样电路的设计、显示按键电路的设计、RS485通讯接口原理图的电路设计和电源转换电路的设计。〔4〕在本文第三章中,简要介绍了软件局部的设计。首先介绍了本课题利用的软件开发平台KeilMDK,大概查阅了该平台的优势。然后利用模块化的思想进行软件程序的编写,这样更加提高了软件编写的效率,并且使得软件的结构更加的清晰和简洁,易于理解。〔5〕在本文的第四章中,将编写好的程序下载到硬件开发平台,进行软硬件的测试和实验,针对调试中出现的问题,发现错误存在的原因并且进行软件编程的修改,直到问题得到解决;如果在调试的过程中发现硬件存在的问题,也要尽最大的努力,将问题排除。5.2展望虽然本课题名称叫做多功能电能表的设计,但是并没有完全真正的实现电能表的多功能化,本次的毕业设计工程主要实现的功能有电压、电流和功率的显示,并且预留了RS485的通讯接口,但是,并没有真正实现电能表和上位机之间的信息交流。如今多功能化的开展方向和前景是面向智能化,很多智能电表的一个根本指标就是采用多费率的计费功能,更好地“迎合〞国家的电力系统的用电峰谷分时的政策,这也是响应国家“节能减排〞的号召。电能表性能的好坏,其实间接地影响到人们用电习惯的养成;电能表数据反应的准确性,也影响到电能用户对国家电力系统的评价,综合考虑多功能电能表还可以有以下方面的改良:〔1〕完善软件算法。在本文中的计量算法中,并没有消除在AD口采样转换时由于电流、电压的相角移动带来的误差;也没有对波形可能存在的畸变进行校正。算法得到完善后,可以结合RS485通讯,在完成下位机和上位机之间的数据传递的同时,省去人工抄表的步骤,节省人力物力,这样的设计更加具有人性化;另外还可以在算法中添加预付费功能,预先将电费存储在系统里,直到预付的电费接近完结时,会在显示屏上进行显示;〔2〕显示屏的数据显

温馨提示

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

评论

0/150

提交评论