基于CPU卡的三相电子式多费率预付费电能表的设计与实现

基于CPU卡的三相电子式多费率预付费电能表的设计与实现

ID:36353812

大小:3.74 MB

页数:72页

时间:2019-05-09

上传者:U-145848
基于CPU卡的三相电子式多费率预付费电能表的设计与实现_第1页
基于CPU卡的三相电子式多费率预付费电能表的设计与实现_第2页
基于CPU卡的三相电子式多费率预付费电能表的设计与实现_第3页
基于CPU卡的三相电子式多费率预付费电能表的设计与实现_第4页
基于CPU卡的三相电子式多费率预付费电能表的设计与实现_第5页
资源描述:

《基于CPU卡的三相电子式多费率预付费电能表的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

基于CPU卡的三相电子式多费_率预付费电能表的设计与实现摘要多费率电价政策是我国近年来正在大力推广的电力计量制度,能够有效的缓解高峰期用电紧张的局面,调整用电负荷曲线。同时,CPU卡技术己经得到迅速的推广和广泛的应用,而应运而生的预付费用电方式可以很好的解决抄表繁杂,催交电费困难,用电信息不易统计等难题。本课题正是针对这一问题,开发一款各电力公司急需的三相电子式多费率预付费电能表,其所取得的成果也可以推广到其他工业领域。(1)分析了三相电的理论及经典的电能测量方法和CPU卡通信技术及其运行环境,并对3DES加密算法进行了分析。(2)阐述了三相电子式多费率预付费电能表的实现方案,系统采用高精度的电能计量DSP芯片ATT7026作为计量芯片,采用片内资源丰富、抗干扰能力较强的低功耗多费率专用控制芯片FM2307作为主控制器,并在其上扩展CPU卡通信功能,该表可以实现多事件记录、RS485和红外抄表功能。(3)设计开发了一款新型三相电子式多费率预付费电能表。硬件设计分为电源模块,计量模块,主控制模块及通讯模块,并对各个模块的接口和硬件抗干扰进行了设计;同时就当前开发工具和各个子程序的软件机构进行讨论和说明,其中涉及到了电能累加、时段控制算法、各种通讯方式的软件实现。(4)论述了三相电子式多费率预付费电能表的时钟准确性及抗干扰设计、校表方法等,给出了系统的运行结果,并且对仪表测量的准确度和运行可靠性进行了分析。本课题设计和开发的三相电子式多费率预付费电能表,可以实现精确的时段切换计量,并具有CPU卡先购电后用电,集中抄表功能。测量结果表明,该表具有较强的防攻击和抗干扰能力,主要技术性能达到并超过现行国家标准的要求,完成了预期的设计目标。关键词:CPU卡;多费率;预付费:FM2307;ATT7026II 硕t:学位论文=====!=========================!====================:=!==================:=AbstractThemulti—rateelectricchargepolicyisbroadlyusedinourcountryduringtheseyears.Itcaneffectivelyeasethesituationofpoweremergency,andregulatetheelectricpowerloadcurve.Atthesametime,CPUcardtechnologyisgettingpromptextensionandbroadapplication,andcomingintotheprepaymentelectricitywhichcallbeagoodwaytosolvesomecomplexproblems,suchasmeterreading,tariffreminders,thestatisticalpowerofinformation.Myresearchisspecificallymadeforthisisuue,todevelopathree-phasemulti-rateprepaymentwatt—hourmeterwhichismuch-needed,itsresultscouldbeexpandedtootherindustries.Firstly,thethree-phasepower,theclassictheoryofpowermeasurementandtheCPUcardcommunicationtechnologyanditsworkingenvironmentareanalysed,moreover,the3DESencryptionalgorithmisalsoconstrued.Secondly,thesolutionofthethree-phasemulti-ratedprepaymentwatt·hourmeterisexpatiatedindetail.Thesystemadoptsthehigh-accuracymeasurementofpowerDSPchip‘ATT7026asthemeasuringchip.Thenusemulti-ratespecialintegratedcircuitsFM2307whichiSrichinnaturalresourcesandhasgoodanti.interferenceabilityandlow·powerasthemaincontroller,andexpandsCPUcardcommunicationfunctiononthechip.Thiswatt-hourmeteriSabletorealizemulti.eventrecord.RS.485andinfraredfeature.Thirdly,athree—phasemulti·ratedprepaymentwatt-hourmeterisdeveloped.Thehardwaredesignisdividedintopowermodule,measuringmodule,themaincontrolmoduleandthecommunicationsmodule,andinterfacebetweenvariousmodulesandtheanti-jamminghardwaredesignisdiscussed.Andthecurrentexploitationimplementandsomesub-sectorofsoftwareinvolvingaccumulationpower,thetimecontrolalgorithm,variouscommunicationwaysaredescribed.Fourthly,theclockaccuracy,anti—interferencedesigning,hardwareandsoftwarecheckingmethodofthethree·phasemulti—ratedprepaymentwatt—hourmeterarediscussed,theresultsofrunningthesystemisgiven.Andinstrumentationformeasuringtheaccuracyandreliabilityoftheoperationisanalyzed.Thethree-phasemulti—ratedprepaymentwatt—hourmeterintroducedinthispaperworksfine,itcanachieveprecisemeasurementbetweentimeswitchandtakestheIn 基于CPU卡的三相电予式多费牢预付费电能表的设计与实现CPUcardasthecarriertodevelopeacollectmeterreadingsystem.Themeasurementresultsshowsthatthewatt—hourmeterhasstronganti-attackandanti-jammingability,itsmaintechnicalperformancenotonlymeetsbutalsoexceedsthecurrentnationalstandards,reachestheexpecteddesign.KeyWords:CPUcard;Multi—rate;Prepayment;FM2307;ATT7026 湖南大学学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:掷奁▲屯日期:p矽年17,月z?日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于l、保密口,在年解密后适用本授权书。2、不保密囹o(请在以上相应方框内打“√’’)作者签名:导师签名:日期:p富年-f月z7.E1日期:o伊年厂,月夕c)E1 硕上学位论文1.1选题背景第1章绪论随着我国国民经济的快速发展和人民生活水平的不断提高,各行业对电力能源的需求不断增长,电力供应十分紧张,国家在加大电力建设投入的同时,决定全面推行峰谷分时电价,调整用电曲线,用经济的手段引导、鼓励用户合理用引1】【21。如今,各地电网都在非居民用电领域实行了峰谷电价政策,有些电网的峰谷电价比可以达到5:l,居民用电领域的峰谷电价制度正在逐步落实当中【3】【41。在有些国家(例如美国)还发展出了根据人们生活、生产活动的不同安排而进行计时收费的电价制度,例如有周末电价、节假日电价、季节性电价等,称为二部电价制或多部电价制。许多工业发达的国家都有比较完善的峰谷电价政策15J。峰谷电价政策涉及到新的电能计量方法和计量装置。原有的单费率电能表不能满足其计量需求,新政策需要能够对费率数进行设置,划分时段,并包含辅助监测和计量功能的多费率电能表。工业企业是用电大户,对于调整用电曲线具有巨大的推动作用【3J。同时,由于我国电力系统普遍存在技术落后、设备陈旧等问题,所以电力系统的管理水平和配电自动化程度很低,长期以来一直靠人工抄表收费,并且对用户负荷情况也很难准确把握,导致系统运行效率较低。收电费难也就成了全国各地普遍存在的现象,让供电管理部门大伤脑筋。许多用户法律观念淡薄,用电不交费、迟交或拖欠,为催收电费,不仅使供电管理部门花费了大量的人力物力,也使整个电力工业的发展受到很大的影响,随着IC卡技术的发展及其相关行业服务意识的不断提高,在与居民用户日常生活相关的计量仪表中,IC卡技术已得到迅速的推广和广泛的应用,而应运而生的预付费方式用电可以很好的解决现实的矛盾16J。因此,设计高精度和高可靠性的三相电子式多费率预付费电能表,配合多费率电价制度的实施和IC卡自动抄表系统的应用,具有很好的应用前景和市场意义。1.2电能表技术的研究现状及发展趋势1.2.1国内外研究现状随着电力系统、以电能为动力的产业的发展,电能表的结构和性能经历了不断更新、优化的发展过程,大体上可分为感应式电能表和电子式电能表两个发展阶段[71。感应式电能表是利用处在交变磁场的金属圆盘中的感应电流与有关磁场形成力的原理制成的。它具有制造简便、可靠性高和价格便宜等特点。但由于其原理与结构等因素的制约,要进一步提高计测精度和扩展功能是有限度的。随着用电量的增长及能源供需 基于CPU卡的三相电子式多费率预付费电能表的设计与实现矛盾的加剧,加强电力负荷监控,以实现计划用电和合理配电,提高电网负荷率。功能单一的感应式电能表及其相关机械装置已不适应现代电能管理的要求。电子式电能表是国外在70年代发展起来的一种产品,它是应用现代电能测量技术、微电子技术、计算机软硬件技术及通信技术构成的一类全新系列的电能表。电子式电能表一般由电能测量机构和数据处理机构组成【8儿引。根据电能测量机构的不同,电子式电能表又分为机电脉冲式和全电子式两大类。其中机电脉冲式电子电能表出现较早,仍然延用了感应式电能表的测量机构,数据处理机构则由电子电路和计算机控制系统实现,因而它只是一种电子线路与机电转换单元相结合的半电子式电能表,而且由于感应式测量机构的制约,机电脉冲式电子电能表很难降低功耗、提高测量精度;而全电子式电能表由于没有使用感应式测量机构,而采用乘法器来完成对电功率的测量,不但提高了测量精度、降低了功耗,还增强了过载能力。显然,全电子式电能表是目前最为流行、也是技术最为先进的电能表。这种仪表一般采用前端电阻网络或者互感器直接变换外部电压和电流信号,通过专用的电能计量芯片,如ADE7755、ATT7026等来运算电能值及其它辅助参数,进而通过微控制器进行数据的计算和显示。全电子式电能表一般还具有电力线载波通信、红外通信、RS485通信等多种抄表接口,实现了电能数据的远传和集中化管理。该类电能表一般保留了电能脉冲输出,其还具有智能化、运行可靠、不易老化等优点【loJ。,国外电能表技术的发展主要集中在电子式电能表的计量芯片上,而计量芯片的核心是乘法算法的实现方式。目前,乘法器与相关算法的实现主要有三种方式:采用硬件搭建构成内部运算乘法器,通过外部软件编程实现乘法运算处理或采用专用计量芯片实现乘法处理,如采用计量软件或专用计量部件的解决方案【7J。我国起初使用的电子式电能表,几乎都是依靠进口。80年代初,我国开始研究电子式电能表,90年代开始研制全电子式电能表,众多人力及资金的投入,使我国电子式电能表的发展进入了一个新阶段。经过十多年的发展,现在我国的电能表技术水平在大部分领域已经达到国外同类产品的先进水平。在电能表的制造技术上,越来越多的新技术得到使用,如电子设计自动化、计算机辅助制造、计算机辅助测试、表面贴装技术等【9】【101。随着国内科技发展水平的日新月异,电能表技术也将更加成熟和完善。1.2.2电能表技术的发展趋势由于电子式电能表具有良好的扩展性,目前已由常规的全电子式电能表发展出了各种各样的电能表系列产品。电能表在计量方式上有单费率和多费率之分,多费率电能表通常设置多个费率和时段,通过不同时段不同价格的措施来达到削峰填谷的目的,平衡用电负荷,这非常符合解决当前中国电力供求矛盾的问题【l¨,因此多费率将是电能表的必然发展趋势。从多费率电能表时控模块内部结构的发展来看,早期的多费率电能表可以分为三种:机械式、电子式和机电混合式。机械式多费率电能表采用时控开关控制继电器动作来划分时段,2 硕士学位论文而电子式和机电混合式均采用石英振荡器作为时基电路,采用10分频、6分频电路等进行时段编码【12】。现代的电子式多费率电能表大部分采用专用电能计量芯片+MCU+实时时钟的解决方案,由控制器内部以软件算法的方式完成测量任务,使校准、补偿等功能更容易实现,同时测量功能也很容易扩充。多费率电能表正向智能化以及多功能的方向发展。电能管理方式也在不断完善、发展。已经从传统的人工管理方式逐步转向预购电管理方式,该方式避免了人工方式效率低,费时费力,易出差错,管理混乱等缺陷,是一种由电能管理部门集中管理的预先支付电费的用电管理方式Il引。如果用户要用电,就必须预先购买一定电量,然后将购电情况输入到电能计量与处理部分后方可开始用电;在预先购置的电量即将用完时,会向用户发出报警信号;在电量用完后,将自动切断电能供应;为了避免可能存在的紧急状况,一般允许用户在电量用完后,再超支使用少量电量。IC卡技术的不断发展以及国内相关行业服务意识的提高,在与居民日常生活相关的计量表中使用IC卡技术已经得到了迅速的推广和广范应用【l4J【151。当前对于预付费的方案有很多种实现的方式,随着IC卡技术朝着容量大,保密性好,可反复使用,携带方便等技术特点发展,预付费电能表也从存储器卡表,CPU卡表到非接触式射频卡表发展。可以说卡的迅速发展是预付费电能表发展的一大突破,并将会有更大的作为【l6】【l‘丌。三相电能表正向多功能方向发展,当前的三相电能表通常具有正、反向有功和无功功率计量、频率、电流和功率因素测量等多种功能,部分电能表还增加了复杂的数据分析功能,这些功能对于工业应用来说具有重要意义,三相电能表的多功能化是必然的发展趋势【191。此类方案需要具有较强的数据处理能力、复杂的软件设计等,采用MCU和DsP实现强大的计量、数据分析和系统控制等功能。在抄表方式上,存在有RS485、红外、GPRS和电力线载波等多种抄表方式,其中RS485抄表和红外抄表技术比较成熟。各种抄表方式具有各自的特点,RS485需要专门布线,但其抗干扰能力较强:红外抄表由于其通信距离的限制,不能实现远程监控的目的;电力线载波通信抄表技术无需专门的通信线,利用现有的电力线作为通信信道,信道建设工作量极少,但其技术较为复杂,通信出错率较高。目前还存在着GPRS无线抄表方式,GPRS是通用分组无线业务(GeneralPacketRadioService)的简称,是在现有GSM系统上发展出来的一种新的承载业务,目的是为GSM用户提供分组形式的数据业务。GPRS数据传输的优点如下:组网简单:GPRS系统可以通过Internet网络构建覆盖全中国的虚拟专用网络;覆盖面广:目前GSM网络已经覆盖大部分地区,省去了有线抄表方式需要重新布线的限制;综合管理:GPRS不仅可以实现电能数据的远程抄表,而且可在其上构建现代家庭水、电、气表的综合管理和安全监控。GPRS抄表技术将会有很广的应用ll引。有些科技文献上还提出了“虚拟电能表"的概念。这种“电能表”在变电站出线间隔处或用户配电屏上的硬件设备很少,不出现电能表实体,仅有一对Tv和TA,通过互感器采集用户的电流电压等用电信息,再通过电光转换器将用户的用电信息转换为光 基于cPu卡的三相电子式多费牢预付费电能表的设计与实现信号,然后通过光纤将信号直接传送到供电公司的数据中心,电费结算中心的大型计算机中进行运算,得出电费信息17J。综上所述,电能计量技术将会向着智能化、多功能、集中管理及网络化和虚拟化的方向发展。在信息化技术不断发展和成熟的现代社会,高效的电能计量和管理技术将是信息化家庭智能管理系统的一个重要组成部分。1.3课题的研究目的及意义本课题的目的在于研制一款基于专用电能计量芯片和专用控制芯片的三相电子式多费率预付费电能表,使其在技术指标上满足相关国家标准GB/T17883.19991201(0.5S级静止式交流有功电度表)和GB/T15284.200212l】(多费率电能表特殊要求)等相关标准。系统使用全电子式方案,采用了专用DSP芯片来计量电能,可以满足很好的精度和准确度要求。在控制环节,系统使用了内嵌时钟,EEPROM,并且包含红外抄表接口,可以通过掌上电脑对仪表数据进行抄收;RS485抄表接口,用电信息可以通过总线传递到上位机监控程序,进行集中管理,多个仪表构成一个网络:IC卡通信模块主要实现“先买后用"及以卡为载体,实现无线自动抄表功能【24J12引。系统设计完成后,可通过硬件和软件两方面进行校表。系统在硬件上预留了可调电阻校表方案,软件校表参数通过程序内部进行设置,从两方面确保了出厂时更好的准确·性【26l唧。,t·..本文阐述的三相电子式多费率预付费电能表的设计原理已通过实际产品验证,完全符合国家相关标准,并对IC卡抄表系统做了整体规划,希望能够对三相电子式多费率预付费电能表的设计技术有一定的促进作用,并获得好的性价比和市场应用价值。1.4主要研究内容本文分为六章,严格按照原理,硬件设计,软件设计的流程来组织全文。第1章,绪论。对本课题的背景进行阐述,并就项目中自己需要完成的内容做了归类。第2章,三相电子式多费率预付费电能表设计的技术基础。这部分简要介绍本课题需要的理论依据,主要包括电能计量原理,多时段的划分和控制,以及CPU卡通信技术及其运行环境,并对CPU卡通信的安全性做了分析,更一般性地结合当前项目来探讨原理方法的使用。第3章,系统总体方案设计及硬件的开发。通过分析三相电子式多费率预付费电能表的设计要求,提出三相电子式多费率预付费电能表的实现方案,系统采用高精度的电能计量DSP芯片ATT7026作为计量芯片,采用片内资源丰富、抗干扰能力较强的低功耗多费率专用控制芯片FM2307作为主控制器,并在其上扩展CPU卡通信功能,该表可以实现多事件记录、RS485和红外抄表功能。从硬件的各个模块分析了各个功能的实4 硕士学位论文现细节,其主要包括电源模块,计量模块,主控制模块及RS485,红外和CPu卡通讯模块,以及各个模块的接口实现和硬件抗干扰设计。第4章,三相电子式多费率预付费电能表的软件设计与实现。主要就当前开发工具和各个子程序的软件机构进行讨论和说明,涉及到了电能计量、时段控制、实时时钟控制、掉电检测及各种通信方式的软件实现,并对掌上电脑应用程序和RS485通讯上位机软件的开发做了介绍。采用3DES加密算法,CPU卡与电能表之间进行双重认证等实现CPU卡通信的安全。第5章,系统测试与误差调校。除了介绍调试环境及调试方法外,还通过对样表误差进行软硬件校调,样表功能及性能测试来验证本系统的可靠性,并给出了系统的运行结果。最后,对本文的研究工作进行了总结与展望。 基于CPU卡的三相电子式多费率预付费电能表的设计与实现第2章三相多费率预付费电能表设计的技术基础2.1多时段电能测量原理2.1.1三相电路电能的测量三相电路中每相负载有功功率的计算公式为:p(,)=u(t)i(t)cosW(t)(2.1)无功功率的计算公式为:口(f)=u(t)i(t)sinW(t)(2.2)式中:p(t)一一有功功率;g(r)一一无功功率;”(,),i(t)一一负载两端的电压和流过负载的电流;qJ(t)一一电压和电流的相位差。理论上,每相有功电能可以由有功功率对时间的积分得到:%(,)=,p(t)dt=Iu(t)i(t)cOsW(t)dt(2·3)无功功率也同样对时间积分:%(,)=,q(t)dt=,u(t)i(t)sinW(t)dt(2·4)对于三相电路,总能量可以表示为三个分相能量之和:W=%-I-%+%(2.5)三相电路分为三相三线制和三相四线制两种接法,下边分别讨论这两种电路的测量方法。测量三相三线电路有功电能可以采用一表法和二表法。一表法只能用于三相对称电路,实际中一般不会采用:工程中经常采用二表法计量三相电能。三相三线电路的瞬时功率可表示为:P=uAiA+‰‘+%乞=uasi』+‰芒(2.6)式中:以彻=uA一‰(2.7)甜∞=uC—u口(2.8)由式(2.6),可以用两只单相电能表测量三相三线电路的总电能,称为二表法,用这种方法测量三相三线有功电能的接线和原理见图2.1【101。两只单相电能表计量值相加即为三相总能量。测量三相四线电路的有功电能经常采用三表法或三相四线式有功电能表,三表法就是在三根相线与零线之间分别跨接三只单相有功电能表,总能量即为三只单相表计量值之和,三相四线式有功电能表可以直接通过外部接线计量三相电能。三相四线电路因为零线电流一般不为零,所以用二表法测量时会存在较大的测量误差【IOl。在电子式电能表成为主流的今天,越来越多的设计方案开始采用专用的三相电能IC6 硕士学位论文ABC厂、.Lj’L,7厂、.Lj’图2.1二表法测三相能量接线原理图芯片,例如ADE7752、ATT7026、TM7752等,这类芯片一般具有测量精度高、外围电路简单、校表容易等特点,并且在不改变电路设计的前提下,可同时适用于三相三线和三相四线方式,专用电能IC芯片已经成为三相电子式电能表设计的首选。2.1.2多时段的划分和控制尖峰平谷时段的划分需要考虑很多因素。进行时段划分的前提是发电方、供电方以及用户利益的平衡,实施目标是尽量减小峰谷负荷差,即“削峰填谷一。原来对于尖峰平谷时段的划分是根据用电曲线的特点估计得到,这样的划分方法有明显的不合理之处。例如,某种峰谷时段划分方法如下:峰时段为7:00.1l:00,17:00.21:00,谷时段为23:00.次日7:00,其余时间为平时段,峰、谷、平时段各为8小时。可以看到,将7:00划分为峰时段的起点不太合理,因为7:00的负荷是刚刚从低谷往上攀升,远远没有达到峰负荷的指标IIIJ【12l。针对上述时段划分方法的缺陷,一些学者提出了基于供电成本H1、系统动力学15】以及模糊理论【IlJ等的方法来分析电力负荷和划分峰谷时段,通过建立数学模型的方法分析用电曲线,并评估用电负荷的动态变化,产生了很多新颖的观点。例如基于供电成本的方法是根据发电机组的运行状况建立发电成本.负荷函数,根据该函数在负荷点的突变特征来划分峰谷时段;系统动力学的方法则是根据历史用电数据建立了一个模型结构图,根据该结构图的仿真分析进行电力负荷的中长期预测,从而引导电力政策的制定;模糊理论的优点是可以将天气、温度等敏感因素一并考虑在内,构造出不同季节的电力负荷预测模型,但其缺点是只能进行短期预测。可以看出,要将上述这些理论应用到实际的电价政策中,产生一种合理、稳定的时段划分方法,并且达到对社会、用户和电力行业都有利的效果,还需进行进一步的分析和测试。而且由于全国各地区产业结构、气候条件、发电方式等的不同,导致峰谷时段的划分具有很强的地域性特征,各地应该根据自身的特点来制定峰谷电价政策。时段控制是多费率电能表的主要设计任务之一,现在的多费率控制部件一般采用实时时钟芯片。实时时钟(RTC)是多费率电能表的重要功能部件之一,相关标准12lJ规定,多费率电能表在参比温度及电压工作范围内,内部时钟准确度应优于0.5秒/天,断电24小时后计时准确度应优于1秒/天,内部时钟温度变化系数≤0.15秒/摄氏度。市面上有7 基于CPU卡的三相电子式多费牢预付费电能表的设计与实现多种实时时钟芯片可供选择,如Philips公司的PCF8563、ST公司的M41TXX系列、Maxim公司的DSl3XX系列等。实时时钟芯片一般通过12C或者SPI接口与主控制器通信,具有宽电源电压范围,可以同时接主电源和备份电源,备份电源一般为可充电纽扣电池,电池通过芯片引脚直接充电。实时时钟芯片可以计算全套的日历功能,包括年、月、日、小时、分、秒等信息,有些芯片能够精确到百分之一秒,可以给系统提供非常精确的时间基准【l引。实时时钟为系统提供了硬件上的时间基准,具体时段的控制和管理必须通过软件实现。系统具有时段查询、时段修改、时间校正及分时累计等多费率电能表特有的软件模块,并且在软件中维护当前时段设置情况、电能历史冻结数据以及当前月份的电能累计量等,这些信息一般保存在微控制器的Flash或EEPROM存储器中。多费率电能表特有的软件模块与硬件时钟电路一起构成了其时段控制系统。2.2CPU卡技术以及COS操作系统2.2.1IC卡分类IC卡是集成电路卡(IntegratedCircuitCard)的英文简称,也称之为智能卡。它是将一个专用的集成电路芯片镶嵌于符合IS07816标准的PVC(或ABS等)塑料基片中,封装成外形与磁卡类似的卡片形式。IC卡较之以往的识别卡,具有以下特点:一是可靠性高,IC卡具有防磁、防静电、防机械损坏和防化学破坏等能力,信息可保持100年以上,读写次数在10万次以上,至少可使用lO年;二是安全性好;三是存储容量大:四是类型多。根据不同的分类标准,IC卡有多种分类方法。根据IC卡的内部结构可以分为非加密存储卡、加密存储卡、CPU卡和超级智能卡【m嵋】。(1)非加密存储卡这种IC卡卡内芯片一般为电可擦除可编程只读存储器EEPROM。它的特点是:存储容量大;信息可以长期保存,也可以在读写器中进行擦除和改写;读写速度快,操作简单。卡上数据的保护主要依赖于读写器中的软件口令以及向卡上写入的加密信息,软件读出时破译,因此这种IC卡的安全性能不高,主要用于对安全性要求不高的场合。(2)逻辑加密卡逻辑加密卡除了具有非加密存储卡的EEPROM外,还带有加密逻辑,每次读/写操作前要先进行密码验证。如果连续几次密码验证错误,卡片将会自锁,成为死卡。从数据管理、密码校验和识别方面来说,逻辑加密卡是一种被动型卡,采用同步通信方式。该类卡片存储量相对较小,价格相对便宜,适用于有一定保密要求的场合。(3)CPU卡’CPU卡内嵌芯片相当于一个特殊类型的单片机,内部除了带有控制器,存储器,时序控制逻辑等外,还带有算法单元和操作系统,CPU卡的容量有大有小,价格比逻辑加密卡要高,但CPU卡的良好处理能力和上佳的保密性能,使其成为IC卡发展的方向。8 硕士学位论文CPU卡适用于信息安全性要求特别高的场合。(4)超级智能卡卡上具有MCU和存储器,并装有键盘、液晶显示器和电源,有的卡上还具有指纹识别装置,主要用于高端应用。IC卡还有不同分类方法,例如按照数据读取方式的不同,可分为接触式IC卡、非接触式IC卡和双界面卡:按照IC卡与外界进行交换时的数据传输方式不同,分为串行IC卡和并行IC卡;按照IC卡的应用领域,可以分为金融卡和非金融卡【l丌。2.2.2CPU卡与ESAM模块预付费电能表是以电卡为媒介联系微机售电系统的,从而完成对电表的初始化、购电及数据查询等操作,实现对电表用电的过程管理。可见IC卡模块设计是本系统设计中的重要一环。目前,预付费电能表所使用的IC卡主要有存储器卡、逻辑加密卡和CPU卡等类型。存储器卡无硬件保密措施,内部数据很容易被截获且可以随意擦写,因此,需要借助软件加密的方法来提高其安全性。逻辑加密卡每次写操作前都要进行密码校验,只有密码校验成功才能改写数据,缺点是读数据时不需要校验密码,一旦加密逻辑被破译,将严重威胁系统安全。CPU卡芯片内部包含微处理撇CP奶、存储单元(RAM、ROM和EEPROM)和输,U输出接口单元。其中,RAM用于存放运算过程中的中间数据,ROM中固化片内操作系统COS(CardOperatingSystem),而EEPROM用于存放持卡人的个人信息以及发行单位的有关信息。采用CPU卡作为数据信息的传输介质后,密钥的安全使用是关键。以往的管理系统存在的弊端是由于卡表是由生产厂家提供,不论是密码认证还是密钥认证都是由用户卡和卡表中的微控制器之间完成的,而微控制器程序的设计不是由运行单位控制而是由表厂完成的,在编程过程中,设计人员显然要知道运行系统的密码或密钥以及安全认证算法才能编制正确的程序。这样当系统投入运行后,由于除管理方外还有其他渠道掌握系统安全的核心内容,一旦泄露,后果是严重的。即使管理得当,由于生产方知道密钥内容,就可以不经运行管理方的授权,在现场对运行表计的数据进行修改,或者未经许可更换现场故障表。这样就很容易造成现场电表装置与后台管理系统数据库数据不同而产生混乱,从而造成系统运行故障和不稳定。解决如上问题的一种办法就是在电表内添加一个ESAM安全模块(EmbeddedSecureAccessModule),用这一模块来负责完成安全认证和数据的存储,其通过控制器的控制来认证外部的CPU卡。该模块可以在运行管理方设置完毕后,提供给表厂安装在卡表中,之后的数据存取以及密钥的安全认证过程都在用户卡与卡表中的ESAM模块之间进行,与表中的微控制器无关,微控制器仍然由表厂负责设计,完成电表的功能。这样既实现了系统的安全性由运行管理方控制,又不妨碍表厂继续发展和完善卡表的功能和性能,是一种较理想的方案。ESAM模块其实就是CPU卡,只是把芯片封装成DIP8普通集成电路模块的形状,其特殊的安全属性使它可以嵌入到其他任何具有安全要求的智能9 基于CPU卡的三相电子式多费率预付费电能表的设计与实现设备中,完成文件和密钥的安全存储、数字签名、数据加密解密、双向身份认证、内部分散密钥、电子钱包、通讯线路保护等多种功能。2.2.3CPU卡的文件系统2.2.3.1CPU卡内COS操作系统应用原理CPU卡内嵌有COS(ChipOperationSystem)系统,对卡内系统的基本操作为:从接口设备接收一条命令,然后经过处理返回应答信息给接口设型18】。其处理过程见图2.2。命令处理过程:广————]广————]厂————]厂————]l传输管理器}刮加密运算器}剖命令解释器}二爿文件管理器l1..............................一【................................一【...............................一I................................一命令应答过程:厂————]厂————]厂————]广————]l传输管理器I引加密运算器I∈爿命令解释器矧文件管理器lI..........................一【.........................一【..........................一1...........................一图2.2命令处理及应答过程示意图每条命令的处理过程都应该经过上述4个模块,如果其中任一模块在处理中发现错误都将返回相应的出错信息。传输管理器负责智能卡和接口设备的数据通信,接收过程中要处理对输入数据的缓冲,响应过程数据的发送。通信使用的协议是IS07$16.3所规定的T=0的异步半双工字符传输协议。’’当接口设备给卡上电之后,首先由卡发送一个复位应答信息(A’rR)给接13设备,然后接口设备发送命令头来启动命令处理过程。传输管理器在正确地接收到命令后交给下一个功能模块进行处理,最后还要把该命令的执行结果返回给接口设备。数据在传输方式上有3种类型:明文方式、明文校验方式和密文校验方式。数据以明文方式进行传输的时候由数据管理器将数据直接送给命令处理模块,当数据以校验或密文校验方式传输时需要加密运算器对数据进行处理。命令解释器对外部输入的每条命令做语法分析,分析和检查命令参数是否正确,然后根据命令参数的含义执行相应的功能模块。如果发现参数有错,将从该模块直接返回错误信息。文件管理器控制对文件的操作和访问。在做数据操作之前,文件管理器将根据文件的安全属性检查卡的安全状态,以确定操作的可行性。文件的安全属性和文件结构一旦产生便处于文件管理器的控制之下。总之,COS系统的主要功能是控制智能卡和外界的信息交换,管理智能卡的存储器并在智能卡中进行各种命令的处理,与外界进行信息交换是COS最基本的要求。2.2.3.2CPU卡的文件结构及访问方式CPU卡的基本文件系统是由主控文件MF(MasterFile)、目录文件DF(DirectoryFile)和基本文件EF(ElementFile)组成。主文件MF在CPU卡中唯一存在,在MF下可以有lO 硕士学位论文多个目录文件DF和基本文件EF,每一个MF目录下的DF可以存放多个基本文件EF和多个下级目录文件DF,包含下级目录的目录文件为DDF,不含下级目录的目录文件为ADF。(1)m文件CPU卡中,MF文件唯~存在,是卡片文件系统的根。它相当于DOS的根目录,复位后,卡片自动选择MF文件为当前文件。(2)DF文件目录文件DF相当于DOS的子目录,每个DF下可建立一个目录文件,但不是强制的,任何一个DF在物理上和逻辑上都保持独立,都有自己的安全机制和应用数据,可以通过应用选择实现对其逻辑结构的访问。(3)EF文件基本文件EF用于存放用户数据或密钥,存放用户数据的文件称为工作基本文件,在满足一定的安全条件下用户可对文件进行相应的操作。存放密钥的文件称内部基本文件,不可由外界读出,但当获得许可的权限时可在卡内进行相应的密码运算,在满足写的权限时可以修改密码。EF文件分为KEY文件、二进制文件、定长记录文件、循环文件、钱包文件、交长记录文件。从应用角度来看,与支付系统应用相关的支付环境文件呈一种可通过目录结构访问的树形结构。树的每一分支是一个应用数据文件ADF。一个或多个应用基本文件EF的入口点。一个ADF及其相关数据文件处于树的同一分支上,图2.3给出了一个典型的卡片内部结构。用专用文件)5)图2.3CPU卡的应用文件结构图由图2.3可看出,CPU卡的内部文件采用目录管理的方式,即主文件管理多个目录文件,一个目录文件管理多个基本文件。而在主文件和目录文件下都有密钥文件,同时每个文件都有访问权限,即必须达到某一权限才能进行读取操作或修改操作。 基于CPU卡的三相电子式多费率预付费电能表的设计与实现2.2.43DES加密算法在IC卡的生命周期中,可能受到各种攻击。根据各种攻击所采用的手段和攻击对象的不同,一般分为三种:第一种行为是使用伪造的IC卡;第二种行为是冒用他人遗失的或者是使用盗窃所得的IC卡,以图冒充别的合法用户进入系统,对系统进行实质上未经授权的访问;第三种行为是一种主动攻击方式。它是直接对智能卡与外部通讯时所交换的数据和控制信息进行截听、修改等非法攻击,以谋取非法利益或破坏系统。针对上述攻击行为,我们应采取如下的防范措施以确保IC系统的安全性口3l【24】。在IC卡的制造过程中使用特定的复杂而昂贵的生产设备,同时制造人员还需要具备各种专业知识或技能,以增加伪造的难度;对IC卡制造和发行过程中所使用的一切参数都严格保密;在智能卡的内部安装监控程序,以防止对处理器/存储器数据总线及地址总线的截听;存储器加上保护层,防止非法对存储器内容进行直接分析:加强加密算法强度,例如采用3DES算法的密钥长度大于DES的密钥长度,增加了破译的难度;对于重要的IC卡应用,应将终端设备置于可监控的环境之内,以便能随时保证卡和终端设备之间的通信安全;在卡上增加防伪标志。虽然在IC的生产和使用过程中采用了以上的防范措施,但是使用IC卡技术并不是绝对安全的【25】。下面重点分析DES加密算法如何增强CPU卡通信的安全性。2.2.4.1DES算法的原理在IC卡特别是智能卡应用方面,信息安全的保密性、完整性及可获取性等都涉及到密码技术。密码技术已经有多年的发展历史,目前使用比较广泛的密码算法主要有对称密钥算法DES(DataEncryptionStandard),IDEA(InternationalDataEncryptionAlgorithm)和公共密钥算法RSA、DSA(DigitalSignatureAlgorithm)等。DES算法产生于20世纪70年代,是传统的分组密码学的典型代表,该算法对IC卡的存储容量和计算能力要求较低,只需要在IC卡上存储64bit的密钥,运算需时少,速度也快,但安全性已经受到质疑:RSA利用了著名的“大素数难分解”这一数学难题,安全程度虽高,但运算速度慢,需要IC卡上存放512bit的密钥,空间要求大,计算速度慢,约是DES的100倍以上,通常只适用于对长度较短的密钥进行加密。因此,考虑到运算速度的要求,以及IC卡存储容量的限制,DES算法非常适合对IC卡数据进行加密。DES在算法设计中采用了基本的信息隐蔽技术:散布和混乱;构成算法的基本单元是简单的置换、移位和“模2加”运算,可在任何普通的计算机上实现12引。DEShll密算法的结构流程见图2.4。首先,64bit的明文经过一个初始置换m后,比特重排产生了经过置换的输人。接下来的一个阶段是对明文进行16轮函数变换,该函数的变量包含明文变换后的32bit以及密钥变换后的子密钥。最后一个循环(第16个)的输出由64bit组成,它是输入明文和密钥的函数,这个输出的左边和右边两部分经过交换后就得到预输出。最后,预输出通过一个逆初始置换就生成了64bit的密文。12 硕士学位论文64bit明文初始设置一一一主K1第1轮函数变换h卜一1密钥置换选择256bn密钥吾葡蓟丽.主56bn-r蓓蔺主.眨一主第2轮函数变换h卜1密钥置换选择2hH循环左移夏.K16皇第16轮函数变换h卜1密钥置换选择2hH循环左移32bit对换逆初始置换84bit密文圈2.4DES,J0密算法的结构图2.2.4.2DES的强度及3DES算法的优势DES拥有很好的雪崩效应,即明文或密钥的一个比特的变化可以引起密文中大约一半的比特不同。对于64bit(实际为56bit)的密钥长度来说,一共有256可能的密钥,也就是说大约7.2X1016种密钥,这个看似不可能被穷举式攻击的数字,随着硬件技术和分散式计算技术的飞速发展,这种加密算法越来越不安全。美国RSA实验室在1997年1月29日发布竞赛,RockeVerse响应了这个比赛,编写了一个穷举式程序并通过因特网做了发布,每个计算机自愿者加人后,项目组就为这台计算机分配一部分DES密钥空间供它检验,结果96天之后找到了正确的密钥。由于DES可能易于受到穷举式攻击,所以可采用DES和多个密钥进行多次加密,即用Trinle.DES(3DES)取代DES,以两次或三次加密计算的办法模拟加长DES密钥的长度到112bit或是168bit来抵抗此分散式计算的攻击。加密时对原始明文进行3次DES处理,采用KI,K2,K3--个不同密钥长度均为8字节,即先用Kl加密,再用K2解密,最后用K3加密,形成最终的密文:解密时对密文按照相反的顺序,即硒解密,K2加密,Kl解密还原成原始明文。通常可将K1和K3设为相同值,K1和K2不能相同,即使用双长度(16字节)密钥娜L||KR)将8字节明文数据块加密成密文数据块,如下所示:Y=DES(KL)[DES叫(KR)[DES(KL)[X】】】解密的方式如下:X=DESq(KD[DES(KR)[DES叫(KL)【Ⅵ】】采用双密钥的3DES力11密解密算法,密钥长度为112bit,比DES算法增加了1倍。虽然在一定程度上降低了运算速度,但安全性得到了极大增强。3DES算法迄今为止尚无法被攻破,已成为一种国际公认的加密标准。2.2.4.33DES算法在CPU卡通信中的应用CPU卡和ESAM进行数据传输时,为了保护重要数据不被监听、截取和篡改,保证数据的有效性和完整性,有必要对传输数据进行加密和保护。线路保护是由CPU卡(或 基于CPU卡的三相电子式多费率预付费电能表的设计与实现ESAM)内的加密算法和线路保护密钥完成。线路保护密钥是由供电局在初始化时确定,密藏在CPU卡和ESAM中,3DES力I密算法的应用图解见图2.5。明文儿11l3DES卜^J线路保护H3DES加密算法H密钥H解密算法』上1TI密文图2.53DES加密算法的应用CPU卡具有目前最高的安全性,特别是在预付费电表中安装ESAM模块,安全性由CPU卡和ESAM模块进行相互认证,系统的管理性只与发卡方或管理方有关,而与生产厂家无关。CPU卡信息传输方式遵循IS07816.3国际标准,这样芯片升级时不需要对IC卡表内的微控制器程序进行改动,这是存储卡和逻辑加密卡所不能作到的。由于CPU卡采用文件方式对数据进行存储,用密钥进行管理,这样很容易实现一卡多用的方案,作到水、电、气、热表一卡通。由于CPU卡在安全性,兼容性和可扩展性上都具有优势,即使价格偏高,也将成为预付费领域的主流。14 硕卜学位论文第3章三相多费率预付费电能表总体设计及硬件开发3.1系统总体设计3.1.1需求分析和设计目标仪表的设计必须以实现一定的功能,达到国家规定的技术指标为目标。多费率预付费电能表有一些必须具备的功能,包括电能的累加、时段费率的划分、仪表参数的设置和管理以及数据显示,还有一些附加功能可方便用户的使用;同时,国家的相关标准规定了仪表运行的各项参数及工作环境等。经过市场调研和比较,本课题研制的三相电子式多费率预付费电能表将达到以下设计目标。1.功能需求(1)时间开关:每套日时段可编尖、峰、平、谷四种费率共8个时段,最小时段间隔1分钟:每月结算同期可编程,数据自动滚存;月末停电仍然能进行运算及数据滚存,确保计量准确。(2)多费率(分时)电能计量:总电能计量输出脉冲宽度及分频数可设定;计量正向总、尖、峰、平、谷和反向总累计电度及上月整点电量累计值。(3)多费率电能存储:存储上10个月的历史正向总、尖、峰、平、谷和反向总累计电量。(4)需量:计量当月和寄存上两个月最大需量值及最大需量发生时间。(5)记录:上10次的反向事件发生起始时间和结束时间,上lO次的停电事件发生起始时间和结束时间。(6)显示:专用汉化宽温度型LCD显示,正常时按键可显0.99项,不按键和停电时LCD自动循环显示数据,显示项目达16项,并且可在100项中自由选择。电池欠压或失压,通讯失败或顺利结束,非正常用户卡或卡内电量不足时均作提示。(7)编程及数据通讯:具有红外遥控器编程、掌上电脑编程、RS485远程通讯编程功能,最后编程日期及编程次数自动记录,编程操作具有开关(硬件)及密码(软件)双重加密保护,开放式数据通讯平台,便于多通讯规约转换。(8)报警:分为报警电量1、报警电量2。当电能表中剩余电量达到并低于报警电量l时,LCD下方的黄色报警灯发光报警,同时点亮背光灯。当剩余电量小于等于所设置的报警限值2时,跳闸继电器输出控制开关断电,此时可通过插卡闭合开关,有报警信号灯发光提醒用户购电。报警电量1和报警电量2可设置。(9)透支功能:可在允许的透支金额内使用,下次购电充值时电能表自动将上次的透支金额进行抵扣,保证交易的正确性。透支电量限额可设置。 基于CPU卡的三相电了式多费牢预付费屯能表的设计与实现(10)防电量囤积功能:当电能表中剩余电量大于等于表中囤积电量时,不接受本次所购电量,电表显示错误代码。只有当电能表中剩余电量小于囤积电量后才能接受用户所购买的电量,以免造成电量囤积。2.技术指标本课题设计的三相电子式多费率预付费电能表满足DL/T645.1997Il圳、GB/T17883.19991201及GB/T15284.2002[21】等国家标准,具体技术指标描述见表3.1。表3.1三相电子式多费率预付费电能表部分技术指标参数名称指标额定电压额定频率计量误差时钟准确度(日误差)电池容量停电后数据保存时间计度范围波特率红外通讯口有效距离红外通讯角度RS485通讯有效距离绝缘耐压工作温度范围相对湿度贮存和运输的温度3×220/380V50Hz有功l级,无功2级≤0.5S(23℃)≥1200mAh≥10年(用新电池)0,---999999.99kW·h1200bps不少于4m≥15o1200m≥4kV.25℃~+55℃≤85%.40℃~+70℃3.1.2系统组成原理本文将从系统原理和功能模块的角度论述一种新的三相电子式多费率预付费电能表研制方案,该方案采用了专用的三相电能计量芯片,保证了电能计量的准确度,并且选用具有强抗干扰能力的低功耗多费率专用控制芯片作为主控制器,使系统能够稳定可靠的运行。在CPU卡通信模块采用ESAM模块加CPU卡的方式,实现系统的管理只与发卡方或管理方有关,提高了系统的安全性。图3.1为三相多费率预付费电能表的总体硬件框图,图中标出了系统使用的关键元件和专用芯片。本系统采用专用电能计量芯片加专用微控制器的方式测量电能。电能计量采用芯片ATT7026,该芯片是珠海炬力公司的三相电能专用计量芯片,其内部集成了六路二阶sigma.delta型AD转换器,具有有功测量0.5级的测量精度。通过外部接线方式的选择,可同时适用于三相三线和三相四线模式。ATT7026具有三路电压输入和三路电流输入,大信号接入部分采用电压互感器和电流互感器进行隔离,使数据处理电路与信号输入电16 硕士学位论文大信号接入部分采用电压互感器和电流互感器进行隔离,使数据处理电路与信号输入电路没有电气上的连接【26】【271。hJ\计量电路M电量RrrC电源H计数监视1/(ATT7026)CPU卡通A芹甘咀流:互通瓯l看门狗I/O止^【hB丰目电流:感、J【器1,1C相电流:r卜叫讯信道h滤RS485通讯卜^UARTMEEPA相电盐:分波、r叫lCROM【压卜信道B市日电压:U丽/红外通讯¨UART—^LCD【网rLCD驱动..--/显示器C利电压:络信道HOy卜FM2307电源电路部分一圈3.1三相电子式多费率预付费电能表的总体硬件框图系统以FM2307为核心控制芯片,该芯片是上海复旦微电子公司为单相多费率电表设计的专用芯片,其由8位MCU和外围电路构成,MCU与外围电路的接口采用双向总线方式.外围电路包括:硬件实时时钟RTC,内置2kX8数据EEPROM、128×8NVRAM、双路异步串行通信口、锁相环电路、电源监视电路、硬件看门狗电路、脉冲采样计数电路、LCD驱动电路等【圳。。三相电流、三相电压分别通过电流互感器和电阻分压网络进行采样分别送给ATT7026处理,由ATr7026完成各种电能参数的测量,并将有功无功脉冲分别通过CFl和CF2送到FM2307的双光电采样信号输入口SENSORl和SENSOR2。FM2307通过软件设计能实现精确计时、时段管理、电量统计、数据维护、编程设置、脉冲输出、脉冲常数设置等功能,并通过使用两组异步串行通讯口来实现RS485和红外通讯功能,扩展RB口对IC卡通讯部分做出相应控制。各部分的动力由电源模块提供,正常时系统采用2路电源,分别给计量与控制模块、RS485通讯模块供电,停电时通过后备电源(电池)供电,该功能因FM2307内部有电源管理模块可自动进行切换。系统各个模块的功能及其实现细节下文将作介绍。3.2系统硬件设计3.2.1电源模块设计电源设计对于电能表来说至关重要,差的电源设计会使电能表工作在不稳定的状态,在一定的条件下(如雷击、高频干扰等)可能造成电能表显示混乱、数据丢失,甚至烧毁整个电能表等严重后果,所以本表在设计上特别重视电源的设计,共采用2路独立电源,l17 基于CPU卡的三相电子式多费率预付费电能表的设计与实现计量电路和FM2307控制部分共用一路电源与RS485通讯部分电源隔离,达到互不影响的目的。RS485通讯电源采用半波整流,用78L05稳压;FM2307单片机电源电路采用全波整流,用7805稳压。继电器的12V电压从7805前端直接引出。为了提高电源的抗干扰能力,在电表的电压采样端加设压敏电Efl(20K821),这对于高能和持续时间长的浪涌特别有效;在外部信号的输入端及变压器与脉冲计量部分的地平面之间增设热敏电阻,起过电流保护作用,具体见图3.2。B,C两相变压器分压和整流前电路与A相完全一致,整流后相应端子接在一处,详细可见附录C。Ul781nS+SVlIE图3.2A相电源接线图FM2307的电源包括工作电源和后备电源。后备电源支持断电显示和FM2307断电正常工作,采取的原则是:电网正常供电时,从电网吸收电能,但是不能进行对电池充电,电网停电时,电池对FM2307核心供电,但不提供RS485和红外通信电源。采用二极管或逻辑的方式,对5V和电池电压进行选择。MCU模块电源输出电压为5.7V,通过串接一个二极管后降为5V。当电网正常供电时,VDD的电压为5V,大于电池电压,由于FM2307内部的电源管理模块,VDD选择5V电源供电,并且由于二极管的单项导通特性,不会对外部电池进行充电;当电网停电时,VDD选择电池电源供电。3.2.2电能计量模块3.2.2.1电能计量芯片ATT7026及其参数测量原理本课题所设计的三相电子式多费率预付费电能表采用ATT7026测量电能,ATT7026是珠海炬力公司的高精度三相专用电能计量DSP,其有功测量满足0.5级(通过软硬件校表实现),支持IEC687(交流静止式有功电度表(o.2s和o.5s级))标准。ATT702;15支持电阻网络校表(硬件校表)和软件校表两种校表方式,电阻网络校表适用于电压输入通道具有电阻网络采样环节的系统,通过简单的调节电阻值就可以实现系统的误差校正;软件18 硕士学位论文校表是通过相关的校表寄存器对增益、相位等进行补偿,可以将系统误差校正在0.5级表的要求以内。ATT7026提供一个SPI接口,方便与外部MCU之间进行计量参数和校表参数的传递。ATT7026内部框图见图3.3【26】。OSC00SClSEL$1GIU!SETS0S1SCFVlPVlNV3PV3NV5PV5NV2PV2NV4PV4NV6PV6N图3.3A1-r7026内部框图ATT7026的内部结构主要包括电源监控电路、模数转换电路和计量模块。电源监控电路是对模拟电源(AVcc)进行监控。当电源电压低于4V~5V,芯片将被复位。这有利于电路上电和掉电时芯片的正确启动和正常工作。电源监控电路被安排在延时和滤波环节中,这在最大程度上防止了由电源噪声引发的错误。由该图可以看出,ATT7026具有六路信号输入通道,信号输入均采用差分方式,包含三路电流及三路电压,因此可以计量三相电能。芯片的内部具有高性能DSP核,负责电能及其他参数的运算,校表脉冲生成器用于将电能生成校表脉冲信号,校表脉冲再经过CFl和CF2分频器生成低频脉冲信号用于校表和送主控制器【26J【271。1.有功能量计量A'IT7026每相能量的测量与计算如图3.4所示。前端16位sigma-delta型ADC采用过采样技术,可充分保证采样速率,并包含高达21次谐波信息:数字高通滤波器主要用于去除电压和电流采样数据中的直流分量。ATT7026内部通过对去直流分量后的电流、电压信号进行乘法、加法、数字滤波等一系列数字信号处理,得到每相负载的有功功率,因为电压、电流采样值包含至少21次19 基于CPU卡的三相电子式多费率预付费电能表的设计与实现谐波信息,所以有功功率也至少包含21次谐波信息,最后根据有功功率对时间的积分计算出每相能量,即:纬=p(,)西(3.1)式中:p∥一一有功功率瞬时值。图3.4A:丌7026每相能量的测量框图ATT7026可以直接累计合相能量,包括代数加或者绝对值加两种模式,代数加或绝对值加的选择受合相能量累加模式选择寄存器EaddMode的控制,该寄存器可以在系统初始化时以校表数据的方式写入。代数加模式下,合相能量为:E厦=如+如+%(3.2)在代数加模式下,反向功率所消耗的电能使计量点的正向总能量减少。绝对值加模式下,合相能量为:%刊%⋯%⋯如I(3.3)式(3.2)和(3.3)中:翰一一合相总能量;如一一A相能量;Ee6一一B相能量;翰一一C相能量。在绝对值加模式下,反向功率所消耗的能量使计量点的正向总能量增加。有了ATT7026作为多费率电能表的电能计量芯片,主控制器在软件中对三相能量在多个时段内进行分别累加即可实现系统的分时累计功能。2.无功能量计量无功功率计量算法与有功类似,只是电压信号是采用移相90。后的,其测量带宽主要受到数字移相滤波器的带宽限制,所以无功功率的测量也可高达21次谐波。3.视在功率、功率因数、相角测量基于上述测量的有功功率和无功功率,通过开方、除法等运算就可以得到这些参数。4.有效值测量通过对电流、电压采样值进行平方、开方以及数字滤波等一系列运算得到,误差小于0.1%。3.2.2.2电能计量模块硬件设计本系统设计的电能表的额定电压输入为220V,额定电流输入为1.5A,如此大的电压和电流信号必须经过前端变换,才能送到电能计量芯片中进行处理。电能计量模块包含电流、电压的隔离,以及计量芯片前的信号调理电路。图3.5所示为单相电压输入通道信号变化电路,以A相为例,输入信号先经过一组 硕士学位论文降压电阻降压(RAl~RA4四个150k电阻),然后通过RA5一RAl4分压网络,每个电阻阻值成1/2公比成等比数列,硬件校表时通过并联的短接点短接相应阻值的电阻,调节输入计量芯片的电压值,最后通过滤波电路和输入信号调理电路,使ATe026I作在最佳状态。SAISAl0圈3.5A相电压输入通道信号变化电路本系统采用1.5(6)A/5Il请的电流互感器进行电流通路的电气隔离与参数变换。图3.6所示为单相电流采样电路图,以A相为例,电流互感器初级电流为1.5A时,次级输出5mA,经过如图所示的分压调整方案,此信号经过RC低通滤波器和相位电容补偿后,便可以送到ATT7026的信号输入端。图中并联的C7.C9主要用于轻载补偿,在轻载校表时同样通过添加相应电容来调节输入最佳电流。R’71.ZK图3.6A相电流输入通道信号变化电路VIP和VIN是送到ATT7026差分输入端的一组电流信号,V2P和V2N是送到ATT7026差分输入端的一组电压信号,REFO为ATT7026内部输出的基准电压,作为外部信号的直流偏置,其典型值为2.4V左右。各相信号经过上述的变换之后,送到ATT7026内部进行电能测量,因为计量三相电能需要三相电压和三相电流信号,系统的硬件电路中分别包含三路上述的电压变换环节和电流变换环节。3.2.3主控模块3.2.3.1FM2307芯片主要特性及功能框图2l 基于CPU卡的三相电子式多费率预付费电能表的设计与实现FM2307是单相居民多费率电能表专用芯片,采用QFP48封装,集成了多费率电表系统所需的绝大多数功能,同时支持机械与电子式电度表,主要功能如下:(1)400nA低功耗工作电流,保持SRAM及脉冲计数器中数据,并维持实时时钟继续运行。(2)具有年历功能的实时时钟电路,解决闰年问题。(3)256字节低功耗SRAM,系统掉电情况下,由后备电源维持数据不丢失。(4)硬件采样控制电路,对机械电度表的双光电信号进行去抖动、去摆动定向等处理,同时兼容电子电度表输出脉冲。(5)正、反向独立电量及功率脉冲计数器,实现双向计量,系统掉电时数据保持。(6)可编程IC卡时钟发生电路,支持预付费电能表。(7)不可屏蔽硬件看门狗电路。(8)电源监视功能,根据系统电源及后备电源的情况,控制电源的切换及MCU、外围电路的复位。(9)LED/LCD显示驱动电路。(10)四线$1JsPI串行接口。(11)内置高可靠MCU,8kX14bits程序存储器,368bytes通用数据存储器。图3.7FM2307功能框图其功能框图见图3.7,FM2307的外围电路通过总线控制相应的外围电路寄存器进行控制,并通过总线读取外围电路寄存器读取相应的外围电路的状态,由MCU的指令系统 硕士学位论文实现电路控制与逻辑功制28l。3.2.3.2主控模块功能设计主控模块负责完成系统的控制任务,主控模块的核心是FM2307。在三相电子式多费率预付费电能表中,主控模块负责电能各数据和事件的格式化计算和存储,液晶驱动及显示,RS485、红外和IC卡三个通信模块的控制,蜂鸣器,背光,按键等外围电路的控制及芯片的初始化操作等【291。图3.8为FM2307引脚连接图。图3.8FM2307引脚连接图该模块的设计主要是FM2307外围电路的设计,为了提高系统抗干扰能力,在PCB布局时把控制电路与计量电路、RS485接口电路在电气上实现隔离,而且隔离间距要足够大,与计量电路部分电气隔离的距离最好在8mm以上。采用光耦隔离,在光耦输入与输出之间的印刷线路板上做一镂空的开槽,明显提高线路的耐压。在电源部分提到的两路电源供电,在布线时为了减少干扰,布线时尽量使7805的输出、地与FM2307的VDD、GND形成的环面积最小,并尽量使10电源管脚与核心电源管脚的公共阻抗最小。为了减少接口数,电能表设计时将在线编程接口和时钟调校接口设计成一个端子。引出布线时这两根线要短,尽量用GND信号将连线包起来。FM2307的时钟源采用锁相环倍频方案,石英晶体应采用20ppm的32768Hz的晶体;51脚接锁相环滤波电容C48,参数为100nF。布线时晶体的管脚、滤波电容的焊盘应尽量靠近芯片的管脚【3¨21。1.显示接口FM2307片内集成了LCD/LED显示驱动,对于LCD显示可以将FM2307和LCD直接相连;对于LED显示,FM2307DIG管脚须经过驱动才能连接LED的DIG端,SEG管脚通过 基于CPU卡的三相电子式多费率预付费电能表的设计与实现限流电阻连LED的SEG端。LCD显示器件由于具有显示信息丰富、功耗低、体积小、质量小、无辐射等优点,得到了广泛的应用,其驱动有4种方法:静态驱动;2MUX或1/2占空比、1/2偏压;MUX或1/3占空比、1/3偏压;4MUX或1/4占空比、1/4偏压。对于不同系列、不同型号的液晶驱动原理,控制方法都是一样的,不同点在于驱动液晶的段数不一样,或可显示信息的多少不一样。在本设计中采用LCD显示,LCD扫描电路由FM2307内部完成,无需软件干预,大大简化了软件设计的复杂性【33】【341。本设计方案中选用的是从深圳晶象电子定制生产的字符式液晶显示器JX.5091,该显示器具有汉字显示和8位数字显示功能,满足单片机的液晶驱动显示模块需求。1/4占空比,1/3偏压,3V驱动电压,液晶显示界面见图3.9。厕庐号滨卡窜氨圜◎掴集厘霈始:圭周累计总粪蜂罪谷蕹街功厦阃需毫耋:黝画画瑚脚赫I魍案锚逢值鳓E③⑩⑦④鞫汹%图3.9液晶显示界面为了降低系统功耗,延长液晶显示器的使用寿命,FM2307处于休眠状态时,LCD处于关闭状态,只用当卡插入、RS485或红外通信、按键显示等设定情况时,LCD才开启并显示总电量、各费率时段电量、日期等相关信息。2.红外、RS485通信接口FM2307提供两路独立的UART接口用于实现电能表的通信接口需要。FM2307的UART0发送端(盯(D0)可选择38kHz调制输出,通信时发送的数字信号通过TxD0引脚叠加于调制信号之上,并由红外发送管将调制后的信号发送出去。三极管BGl用于接收串行信号并驱动红外发光管。在电路板的设计时加粗地线,增加去耦电容有效地防止因电源电压波动、闪电冲击、变压器产生的电磁场等干扰。红外接收管采用TSOP48,其接收频率为38kHz,它直接将38kHz的调制信号解调为基带信号,提供给CPU处理。接收器的输出端OUT接到FM2307的串行数据接收端(IU①0)。RS485通信芯片采用半双工通信芯片MAX3082。由于RS485通过接线直接与外部通信,受外部影响很大,所以该部分电路采用单独的隔离电源。在图4.9中用N4,N5及N6 硕士学位论文三个光耦,隔离RS485通信的发送(TXD)、切换(DE,RE)、接收(RXD)---个信号。这样,是为了防止外界的电气信号影响FM2307I作,也隔离外界突发的强电流损害FM2307。图3.10为红外和RS485通信接口电路。图3.10红外和RSRS485通信接口电路3.2.4CPU卡通信模块设计CPU卡通信模块主要包括断送电控制,CPU卡及卡座接口电路,ESAM模块及PTC热敏电阻模块。各模块的功能如下:CPU卡接口:用于表与CPU卡片进行数据交换和安全认证工作;ESAM模块:用于存放CPU卡状态数据并与CPU卡进行系统的密钥安全;PTC热敏电阻模块:提高IC卡读写器的卡口防攻击能力,承受来自外部的静电、强电、雷击、意外短路等各种攻击【35】【3们。图3.11为PTC热敏电阻模块与卡座连接图。l一2456789lOlSPTCM5图3.11PTC热敏电阻模块与卡座连接图本表所用的是北京握奇公司的CPU卡,它有多种存储容量可供选择,擦写次数大于50万次,数据保存期大于10年,卡内采用SMARTCOS操作系统,该系统符合《:中国金融集成IC卡规范》,其数据文件支持种类多,且支持DES、3DES等加密算法;支持线路加密,线路保密功能;防止通信数据被非法窃取或篡改。符合IS07816.3的标准的T=0通讯协议。卡座的触点与CPU卡的结构一一对应,卡座的电源VCC、双向数据线IO、复 基于CPU卡的三相电子式多费率预付费电能表的设计与实现位线RST、时钟CLK、触点KEY依次接PTC热敏电阻模块的输入端l、3、5、7、9。CPU卡正常读写状态下,PTC热敏电阻相当于一串接于线路的限流电阻,阻值不发生变化;异常时,导致流过PTC热敏电阻的电流增大,阻值上升四五个数量级而断开,从而保护卡座,使其能承受静电,强电等攻击。ESAM/JH密模块、PTC热敏电阻模块和主控制器FM2307直接相连,其连接见图3.12。ESAM模块和PTC热敏电阻模块的复位线RST、双向数据线分别连接表内FM2307的I/O口,两者的CLKiJI线同时接FM2307可编程分频输出I:IFOUT(RA0复用),作为数据传输的时钟信号CLK。PTC热敏电阻模块的触点KEY接FM2307的RB7,其电位在卡插入时,瞬时由高电平跳变为低电平,通知FM2307准备执行相应的命令。串行口满足国际标准IS07816同步传送协议,即以一根双向串行数据线I/O与一根串行时钟线CLK实现半双工的同步数据通信。ESAM模块焊接在电路板上,存储电能表运行过程中的所有重要参数,并密藏发卡时生成的用户卡权限认证主工作密码,是CPU卡通信模块较核心的部件,卡表和用户卡进行相互认证和信息交换实际上是表内ESAM模块和用户卡进行相互认证及信息交换,表内FM2307和CPU卡接口对于加密认证来说只是起传输数据作用。图3.12CPU卡通信模块与FM2307接口电路3.2.5继电器驱动电路设计该部分电路用于控制电供应的开关,可由FM2307输出控制信号对其进行闭合或断开操作。设计中使用磁保持继电器,使用六个NPN三极管组成的“H桥"式驱动电路,增加了驱动能力。见图3.13,F1为双向瞬变二极管,起保护作用。3.2.6干扰源分析及硬件抗干扰设计影响系统可靠安全运行的主要因素包括:系统结构设计、元器件选择、安装制造工艺以及系统外部条件。由于采用了单片机等控制芯片,电磁干扰是造成智能电能表故障的主要原因之一。我国在电力计量相关的国家标准中对智能电能表的试验条件有明确的规定,其中包括了电磁场、脉冲电压冲击等电磁兼容性试验【371。 硕士学位论文图3.13继电器驱动电路图电能表跨接在电网上,其正常运行时,干扰源主要来自于电网的电压波动、闪电冲击以及电磁场干扰。电网波动会带来高频及低频脉冲干扰,高频脉冲主要来源:一是低压电网中大容量熔断丝熔断时,电路中存储能量的释放,在电压恢复过程中导致的瞬时过电压;二是高压开关操作时,关断口电弧的熄灭和重燃引起的一系列高频振荡;三是小电感性负载切换所导致的快速瞬变脉冲干扰。低频脉冲的来源主要有:一是高压、中压和低压电网中偶尔产生的短路或接地故障,连续快速重合闸所产生的电压跌落和短时中断:二是连续的,但随机变化的大负载(如电弧炉)、大负载的投切(如电焊机、电动机)、电压阶变(如变压器抽头的调节)所引起的电压周期性波动或不规则的波动等。雷电干扰来自于电力线路遭受雷击或者感应雷击,雷电波沿电力线传播,产生极强的脉冲电场和磁场,通过电源线传入电能表,造成集成芯片的PN结击穿或造成整块芯片烧毁。辐射电磁场主要有两个来源:一是来自专门发射电磁能量的装置,如广播电视、通信、导航和雷达等无线电设备,二是在完成自身功能的同时附带产生电磁能量的发射,如交通车辆、架空输电线、照明器具、电动机械、以及工业或医用射频器械等,辐射电磁场主要通过电能表线路板上的导线发生作用,由于线路板的导线的天线效应,它不仅能发射电磁能量,而且能够接收电磁干扰,使线路对电磁干扰特别敏剧38J。各种干扰源所产生的干扰信号不仅会影响系统正常工作,导致计算错误、破坏程序流程、死机等情况发生,有时甚至会损坏系统的关键元件。为防止以上干扰,本系统做了如下硬件抗干扰设计:压敏电阻能有效地抑制和吸收瞬变电压,压敏电阻实际上是一种伏安特性呈非线性的敏感元件,在正常电压条件下,其相当于一只小电容器,对电路工作不发生影响,而当电路出现过电压时,它的内阻急剧下降并迅速导通,其工作电流增加几个数量级,起到分流的作用,从而有效地保护了电路中的其它元器件不至于过压而损坏,压敏电阻的伏安特性是对称的。本系统的220V主电源输入和电压互感器初级线圈两端均并接了压敏电阻增强系统的抗瞬间过电压冲击的能力。电能表内部具有电参数变换电路,涉及到大电流和大电压,可能威胁到仪表 基于CPU卡的三相电子式多费牢预付费电能表的设计与实现的安全工作。为此,系统在设计时采用了互感器隔离技术,将大电流和大电压信号与后续的信号处理电路,包括三相电能采集芯片、单片机等隔离。系统在设计上电源、控制分两块板,减少强电信号对弱电信号的干扰电源板包括变压器、整流、滤波、稳压、磁保持继电器驱动电路等。一块板放置信号变换电路,板上包含电流互感器、电源变压器以及压敏电阻等元件;另一块板包含ATT7026、主控制器FM2307、MAX3082、液晶接口及其它外围电路,两块板之间通过电缆线进行连接,使强电信号对IC芯片安全运行的影响大为减弱。在PCB设计的细节方面也考虑了抗干扰和电磁辐射的问题,例如在每片IC芯片的电源引脚并接0.01uF和10uF的滤波电容,提高芯片电源信号的稳定性,并且使芯片内门电路开关所产生的脉冲干扰不至于传递到电源网络上去。电能检测部分要单面走线,另一面铜铂即作电磁屏蔽用、又作地线用,以减少信号干扰。另外,电能表在安装时考虑周围的电磁环境,尽量远离电磁干扰源,如果外围环境具有很强且持续的电磁辐射,给仪表外壳增加电磁屏蔽。FM2307具有丰富的片上资源,只需很少的外围元件,使系统集成化程度很高,以及其出色的内部结构设计,具有优异的电磁兼容性能,确保了系统较强的抗干扰能力。 硕十学位论文第4章三相多费率预付费电能表软件设计与实现4.1系统软件结构本系统的软件结构见图4.1,因该表有RS485,红外和CPU卡三种通讯方式,其各自都有应用软件配合完成相应的通讯功能:电能表通过RS485转RS232接口接至电脑,并通过上位机RS485通讯软件进行抄表和设表;通过掌上电脑和电能表进行无线红外通讯:以CPU卡为载体,通过读卡器在电能表和供电部门售电系统间进行数据传递。图4.1系统软件结构三相电子式多费率预付费电能表控制芯片程序是该系统的核心,主要完成计量总电量及各时段电能量的累积、最大需量计算和超计划用电报警功能,并能完成月末电能量结算、转储电能量等功能,同时通过循环检测,负责控制并执行相应的通讯任务。其软件设计遵循结构化和模块化的原则,将软件大致分为以下模块进行处理:初始化程序在电能表上电后完成FM2307及电能表数据的初始化和整个程序各中断初始化;电量处理模块完成电量的小数事件和整数事件处理,以及各费率电量的计算和处理;电池检测和按键处理主要检测电池是否有欠压及外围是否有按键;校时及刷新处理主要对内部时钟及备份进行校时并进行日期时间处理更新及显示更新;通讯命令处理完成相应的RS485,红外以及CPU卡通讯处理部分,RS485和红外通讯共用一套通讯程序,同一时间只能进行一种通讯方式;继电器控制模块在FM2307将时段累积的电量和总电量进行费率处理并写入EEPROM对数据和时间进行保存和备份后,通过控制继电器的开断来断送电;最后程序进入低功耗节电模式。4.2编程资源及开发平台本系统设计的三相电子式多费率预付费电能表采用专用芯片FM2307作为系统的主控制器,FM2307内置PIC内核MCU,其指令兼容PICl6C6X,内部有8k×14bits可多次编程的程序存储器和368X8bits的数据存储器,使用时无需外扩存储芯片,简化了系 基于CPU卡的三相电子式多费率预付费电能表的设计与实现统设计成本的同时提高了系统运行的稳定性。除了某些电能表专用外设的编程外,FM2307软件设计与通用的MCU软件设计没什么区别。FM2307的专用外设通过并行总线与MCU相连。8位地址数据总线接至内置MCU的D13(RD[7:0】),MCU的E口中的RE0、REl和RE2分别作为读(rdb)、写(wrb)和地址/数据选择(a/db)控制信号。软件设计时,通常情况下需将数据总线在缺省状态下的输入输出特性设定为输出态,只有在MCU对外围电路读入数据操作时才设定为输入裂3¨11。在基于单片机的系统开发过程中,需要开发工具的支持,包括硬件和软件环境。本系统开发使用的硬件环境是南京伟福公司的PIC单片机全系列POD.PIC67X仿真头及配套M6仿真器,外加复旦微电子公司的FM2307专用仿真平台,其自带数据RAM、EEPROM等电路结构,模拟单片机的片内模块,调试程序时可进行断点设置、寄存器查看等操作,系统调试方便。软件环境使用MICROCHIP公司的MPLAB集成开发环境,配合UltraEdit编译器,与硬件仿真器共同完成系统设计任务。C语言作为中级语言,具有进度快,可读性强的优点,但由于FM2307的资源的局限,本方案仍采用汇编语言进行编程。4.3控制器主程序设计电能表主控制软件采用模块化设计,根据不同功能,定义了不同的功能模块,明确入口出口,相互之间的调用关系,以供调用。单片机上电复位后主程序采用顺序执行的方法,逐个扫描各个自定义标志位,检查是否有动作发生,若有发生则转入相应子程序处理,处理完后回到主程序,继续扫描其后的标志位,最后进入低功耗状态,等待下一次中断唤醒,唤醒后同样循环一遍,又进入低功耗状态。控制芯片的主程序流程见图4.2。上电后首先对系统进行初始化,初始化包括对内部存储器单元清零、特殊功能寄存器置初值、液晶显示的设置等。接着程序进入主循环,判断是否有脉冲,并进行相应的电量处理,接着判断故障、电源电压是否正常等,无论在什么情况下只要有低电压信号出现,系统就提示欠压,液晶报警显示,提示用户更换电池。接着判断是否时间事件到达,只要有秒信号到,则都要进行显示刷新,每分钟进行一次校时处理,每半小时进行一次费率检测及时钟配置,若无秒事件发生,就进行相应费率的电量处理和各通讯的处理,并判断继电器是否要动作,当剩余电量低于设定值时,系统液晶显示提醒用户“请购电”,如果用户没有及时购电重新插卡冲值,当剩余金额不足时,FM2307控制继电器关闭,停止供电。4.4电量计量处理电量计量程序是进行电量计量处理,电量处理的顺序依次为电量整数处理及存储、电量小数处理及存储、电量脉冲处理、电量整数低字节处理及存储、电量小数存储区域指针更新判断。流程见图4.3。30 硕士学位论文图4.2主程序流程图电量整数低字节处理及存储是为了在电源掉电中,防止程序在对电量整数加l并保存时,电量小数没有保存发生掉电,导致系统多计量lkWh的电能的可能,因此在系统电量恢复时检测到两个电量整数低字节不相等时,对电量小数清零处理,解决问题发生。电量小数储存区域指针更新判断是因为电量小数的存储区域频繁发生擦写现象,导致EEPROM的寿命减低,因此采取多区域的办法,当检测到当前储存区域损坏时,更换到下一个储存区域,延长电能表的寿命。 基于CPU卡的三相电子式多费率预付费电能表的设计与实现4.5多费率处理设计图4.3电量计量处理流程图4.5.1多费率时段控制设计FM2307读取到ATT7026电能寄存器中的数据之后,需要进行两方面的处理:首先,三相多费率电能表的核心问题之一是在多个时段下对电能的分时计量,主控制器需要判32 硕士学位论文断出当前的时间属于哪个时段和费率,并将电能脉冲累计到对应的费率中去;其次,用户需要的是以千瓦时表示的电能,因此每个时段的脉冲数必须转换成千瓦时表示,并且以可读的格式显示在电能表前端的LCD屏幕上。尖、峰、平、谷、总的有功、无功电能数据需要6个存储变量,在单片机中,电能数据仍然以脉冲数的形式存储,因为单个脉冲是ATr7026计量的最小单位,这样可以保持电能计量的最高准确度。时段表的结构按照D/L645规定具有如下的格式,分钟1小时1至分钟2小时2这一段时间的费率为Byte0定义的费率,分钟2d,时2至分钟3d,时3这一段时间的费率定义为Byte3定义的费率,依此类推,见表4.1。表4.1费率时段的字节划分Byte0BytelByte2Byte3Byte4B”e5Byte6Byte7Byte8费率分钟1小时1费率分钟2小时2费率分钟3小时3时段控制的软件设计主要完成日历数据的获取、时段的判断和划分、时段数据的存储和对时等功能。从R1rC获得日历数据之后,需要判断当前时间处于哪个时段,判断出时段之后,还要知道该时段属于尖、峰、平、谷的哪个费率段,时段数据需要保存在片内EEPROM存储器中,系统每次启动时,都会从EEPROM中读取时段设置数据,并赋值给内存区的存储变量。而当上位机监控程序传送新的时段设置命令时,电能表必须即时对EEPROM存储器和内存变量进行更新。这样即使系统突然断电,EEPROM中仍会保存有用户最近一次正确设置的时段信息。每个时段的起始时间、终止时间和所属费率共需5个字节的存储空间,三相多费率电能表被设计为最多8个时段,因此,在EEPROM中预留有40个字节的存储区给时段设置数据。在系统第一次运行时,需要进行时段初始化设置,以便三相多费率电能表具有合理的初始运行数据。4.5.2实时时钟控制与检测要实现一个多费率系统,时钟必不可少,因为多费率控制的主要依据就是实时时钟,FM2307内部集成了高精度低功耗硬件实时时钟(RTC),通过调校后可达到±1.525ppm。实时时钟控制主要包括实时时钟的读取、设置与调校,FM2307的时钟采用二级锁存结构,在时钟读取时必须先进行锁存操作将时钟读数器中数据锁存至寄存器中,然后再读取,若不进行锁存操作则本次读取的数据将是上次锁存的时钟数据,设置时同样必须先把要设置的数据写入寄存器中再启动以将时钟数据写入到时钟电路中,若寄存器中的数据有一个有错误则无法启动时钟电路读数。为了确保时钟的正确,对时钟数据在洲中进行双备份,每次读时钟时都要进行校验,具体的校验流程见图4.4。若RAM备份时钟和l乙W中的时钟全错,就要进行时钟调校。该功能通过每隔10秒,对时钟进行一定量的增减而实现,若不需对时钟进行调校,则可将增减量设为0。时钟调校的步长为1/32768,最大调校的范围为-63/3276819《3/32768s,其对应时钟的调校步长为3.05ppm,最大调校范围为.192.26ppm-192.26ppm。可实现最大的时钟精度为 基于CPU卡的三相电子式多费牢预付费电能表的设计与实现±1.525ppm,对应时间的误差为±O.132秒/天。(读时钟开∽0清时钟标志l一一<<醺b—\叫缱垫旷弋q芝眇]备份时钟l燃lI恢复主时钟高一参N‘r叫黼系统时钟均l错,进行校调r',清错误标志,结束图4.4时钟校验流程图4.5.3掉电检测电能表的掉电检测功能定义为:在电子式电能表中,当系统主控模块供电电源的电压值低于某一设定的数值时,系统主控制器能够检测到这种情况,并且标记为主电源故障。检测到这种情况以后,主控制器必须继续工作一段时间,至少能够继续执行几条指令,完成一些系统的紧急任务,如关键数据的保存等。一般系统主电源都并联有大容量的滤波电容,电容器储存的电荷量足够主控制器继续工作一段时间。电能数据是一种累积量,电能消耗的计量具有连续性,并且,在电能表主动离线或者电网故障导致电能表主电源无法供电时,原先累计的电能数据不能丢失,必须保存在系统内部,对于电子式电能表,这些数据一般保存在EEPROM存储器中。在下一次系统上电时,电能表从原先的电能值继续累加。FM2307芯片内部具有低电压检测模块,该电路由VDD直接供电,故在主电源停止供电的情况下该部分电路停止工作。相应监控电路设置寄存器由VDDI供电,故在主电源停止供电、电池继续供电的情况下,该寄存器内容保持不变。软件中通过设置监控电路设置寄存器(LVSET)来指定电压跳变点,当VDD低于指定电压值时,对低压检测中断标志置l,并且如果软件中使能了中断,则中断会被触发,使程序流程转移到中断入口,执行相应的中断处理程序。低压检测电路的开启与关断完全由软件控制,因此,如果不需此项功能,在软件中可以关断LVD模块,使器件的电流消耗减小。图4.5为低压检测功能示意图。监控电压由监控电路设置寄存器(LVSET)中的后三位VD2、VDl和VD0位选择7级阈值电平或外部输入电平,其数值幅度从最高4.8V到 硕士学位论文最低2.8V。当电源电压小于设置的监控电压或外部输入电平小于基准源(约1.25V)时,低电压检测电路输出信号pfb变低;反之当电源电压大于设置的监控电压或外部输入电平大于基准源时,低电压检测电路输出信号pfb变高。匝亚瑁图4.5低压检测功能示意图该电能表使用的供电电源为5V,因此将LVD跳变点设为4.2V,并通过下列代码定时检查监控电路设置寄存器。其io_read_w_pageI为读芯片外围数据。#definedefault——Ivset83hmovlwlvsetcallio_read_w_pageImovlwdefault—lvset‘xorwfio_data,fbtfssstatus,zcallio_wdte_w.._page1该程序段是初始化程序中初始化芯片内部寄存器的片段,在初始化芯片内部寄存器开始就每隔1分钟检查一些重要寄存器,在没有RS485和红外通讯的情况下,依次检查PLL控制寄存器,唤醒控制寄存器,监控电路设置寄存器,定时中断设置寄存器,定时检查时钟调校寄存器,脉冲计数器和双光电相关寄存器,显示相关寄存器,脉冲计数器。FM2307芯片特有的低压检测模块简化了电能表掉电检测电路的设计工作,使系统无需外扩专门的掉电检测电路或者芯片,并且模块的高度集成化保证了掉电检测电路更加稳定的工作。4.6CPU卡通讯程序设计4.6.1CPU卡操作过程4.6.1.1CPU卡操作总流程CPU卡与FM2307的数据交换是CPU卡电表工作中最重要的一环,CPU卡电表终 摹于CPU卡的三相电子式多费率预付费电能表的设计与实现端与卡之间的通信流程见图4.6。C面IY图4.6CPU卡操作过程总流程图4.6.1.2单片机激活,释放电路过程在CPU卡的操作过程中,首先FM2307必须控制接口设备来激活卡的电路,只有将卡里的电路激活才能让卡里的操作系统运转起来,控制器才能发送数据。而接口设备激活是靠FM2307的RB6口来控制的,具体的“激活"电路操作由以下顺序实现:(1)RST置为L状态;(2)VCC加电;(3)接口设备上的I/O处于接收方式;(4)CLK提供稳定的时钟,在复位应答期间,CLK的频率范围在IMHz~5MHz内。信息交换结束或异常终止(卡无响应或检测到卡已拔掉)时,接口设备“释放"电路,电路的释放操作应在卡的触点与卡座接口触点机械断开之前结束。接口设备“释放’’电路也必须按照一定的顺序使CPU卡中的电路断电,由以下操作顺序实现。(1)RST置为状态L;(2)CLK置为状态L(除非时钟已在状态L上停止);(3)I/O置为状态A(低电平);(4)VCC被释放。4.6.1.3卡的复位以及复位应答流程CPU卡的复位有冷复位和热复位两种:当CPU卡的电源电压和其他信号从静止状态按一定顺序加上时,称之为冷复位,CPU卡发回应答信号:电源电压VCC和时钟CLK处于激活状态下,接口设备发出的复位(Reset),称之为热复位,CPU卡发回应答信号[441。卡的复位应答是单片机通过接口设备在对卡片进行复位后等待卡片传回的信息,单片机程序会通过这些信息执行不同的操作。在复位后复位应答(ATR)子程序的流程见图36 硕士学位论文4.7。RST为高电平有效,允许重复测试3次,若都超时(或出错),说明卡无效。Y图4.7复位应答流程图4.6.2CPU卡串行通信CPU卡的串行通信是按位传送的,每一位的信息宽度(持续时间)定义为基本时间单位etu(elementarytimeunit)[46]。初始基本时间单元与工作基本时间单元相等,即:(4.1)其中F=372,为时钟速率转换因子;D=I,为比特速率调整因子;fs为时钟速率,通讯波特率为9600bps。复位应答信号以字符为单位进行传送,在传送字符前,I/O处于状态z(高电平)。每37 基于CPU卡的三相电子式多费率预付费电能表的设计与实现个字符由10位组成:1位起始位(状态A)、8位数据D1.D8、l位偶校验位。每一位在I/O线的持续时间为1个etu,字符帧结构见图4.8。Z二图4.8字符格式两个连续字符间的延时(两起始位下降沿之间)至少为12个etu,包括字符宽度的10个etu和一段保护时间(最少两个etu)。在复位应答期间,卡发出的两个连续字符起始位下降沿之间的延时不能超过9600etu,这个最大值称为初始等待时间。卡产生的复位应答信息按以下顺序传送:初始字符TS、格式字符T0、接口字符TAiTBiTCiTDi(i_l,2,⋯)、历史字符T1T2⋯TK(最多15个字符)以及校验字符TCK。其中TS和To是一定有的,其它是可选择的。在复位应答期间回送字符的个数和编码随传输协议和所支持的传输控制参数值而异,本系统采用的是T=0协议。发送数据时,首先按照CPU卡通信使用的波特率计算出发送的数据中两位之间的时间间隔t,通过定时器计时触发中断。数据位的输出则利用定时器输出单元的两种模式(置位和复位)进行,如果要发送的位为高电平,贝0输出单元设置为置位模式,否则设置为复位模式。定时器中断时,硬件自动按照所设置的输出模式输出电平,这样要发送的位就被自动发出去了。在中断程序中根据下一位要发送的数据的电平设置输出模式。如此反复,直到lO位(1起始位+8数据位+l停止位)数据全部发送完毕。接收数据时,先通过捕获起始位的下降沿,触发中断,接着按照通信的波特率计算出发送的数据中两位之间的时间间隔t,定时器定时1.5t时间到时,进行第一次采样,采样点在收到的第一个数据位中点。考虑到这样每次采样是在中断程序中进行的,进入中断会有一些延迟,因此,将定时时间缩短,稍微低于1.5t,这样能够尽量使采样点接近每一位数据的中点。因为数据发送的时间为t,所以除了第一次定时时间为1.5t,其他每次采样间隔都为t,这样可使每次都在数据位的中点采样,如此循环进行。接收示意图见图4.9。图4.9通信接收示意图38 硕f:学位论文4.6.3CPU卡通信的安全设计4.6.3.1CPU卡与电表的双重认证流程CPU卡与普通卡操作流程的一个关键不同点就是它的认证过程,普通卡和电能表的认证是卡和表内单片机之间的认证。而CPU卡电能表和用户卡进行相互认证和信息交换实际上是电能表内ESAM模块和用户卡进行相互认证及信息交换,电能表内和CPU卡接口对于加密认证来说只是起传输数据作用。用户CPU卡与电能表中的ESAM模块进行信息交换的工作流程图见图4.10。首先,将用户卡插入电表中读取用户号,若是首次插卡,则将该用户号存入ESAM模块中保存;若不是首次插卡,则将该用户号与ESAM模块中保存的用户号比较,如果比较结果不一致,则拒绝读卡,如果一致,则通过内部认证和外部认证确认一表一卡。若认证通过,则将最后一次写入的预付费数据存入ESAM模块,并返写数据到用户卡上,程序结束。Y图4.10用户CPU卡与ESAM模块信息交换流程图内部认证是电能表认证卡,检查CPU卡是否合法,认证步骤包括:(1)ESAM模块产生一个字节随机数送给FM2307,ESAM模块临时保存随机数在机具中:(2)FM2307程序把字节随机数送给CPU卡,用内部认证密钥计算随机数,得到字节随机数密文:(3)外部程序把字节随机数密文送给ESAM模块:(4)ESAM模块解密字节随机数得到随机数明文;(5)ESAM模块在内部把解密后的随机数和步骤1中临时存放的随机数比对,若相塞 摹于CPU卡的三相f乜予式多费牢预付费f乜能表的设计‘j实现等,则内部认证成功。外部认证是CPU卡认证电能表,检查电能表是否合法,认证步骤包括:(1)CPU卡产生一字节随机数送给FM2307,CPU卡临时保存随机数在CPU卡内;(2)FM2307控制程序把字节随机数送给模块,ESAM模块用密钥计算随机数,得到字节随机数密文,FM2307控制程序把字节随机数密文送给CPU卡;(3)CPU卡在卡片内部解密字节随机数得到随机数明文;(4)CPU卡在卡片内部把解密后的随机数和步骤1中临时存放的随机数比对,若相等,则外部认证成功。4.6.3.2CPU卡内部的系统设计CPU卡内部的安全设计主要是COS体系的密钥管理,其是通过COS的文件系统每层目录下存放密钥的一个KEY文件来实现的,它用于核对外部认证或口令等,改变安全状态寄存器的值,来转移安全状态。当且仅当当前安全状态寄存器的值大于或等于对某个文件的访问权限值时,才可对该文件进行相应的读写操作【47l。依据电表功能,规划设计了用户卡、查询卡、应急卡、密钥修改卡。不同功能的CPU卡,其文件系统层次和文件类型各不相同,每种卡都进行了细致的规划以确保其安全性。尤其是用户卡为用户持有,涉及充值缴费,它的安全性要求显得更为突出。以用户卡为例,表4.2列出了用户卡文件系统的定义与划分。其中用户卡密钥文件(Dl汀)包括四类密钥,分别为:电表内部认证密钥、电表购电外部认证密钥、电表反馈外部认证密钥、电量外部认证密钥。表4.2用户卡文件系统定义其中电表购电信息文件,从起始码(68H)开始,包括了电卡类型,电表表号,报警电量,透支电量限额等多种信息。开户购电卡的有效判断条件:如果返写二进制文件为空,说明是空白购电卡,电卡表在读入所有数据后首先判断开户卡中的电表表号和表中的是否相同,如果不同则立即退出,如果相同,则将读入的数据进行处理,并将相关数据返写到用户卡中,如果返写成功,完成一个正常的过程;如果再次将此卡插入电卡表,电卡表首先去读表号,表号如果和表内不同,拒绝该卡;如果相同,这次再根据购电次数决定此卡是否还有效。开户购电卡将用户号追加到CPU卡电表中,其它型式的用户卡都需要对用户号和电表表号进行比较。对用户号和电表表号进行判断购电卡和电 硕士学位论文卡表是否是一一对应。从IBH.2AH共16字节数据为密文数据,CPU卡电表首先将这16字节密文数据送ESAM模块用数据解密密钥进行数据解密,ESAM模块返回16字节解密后的明文数据,由CPU卡电表进行相关数据处理。4.6.3.3利用3DES算法对CPU卡加密的实现DES算法流程见图4.11,其运算过程可以简单地概括如下:1.初始输入从外部输入64bit原始密钥kl,k2,⋯,k64;其中k56是密钥位,k8是奇偶校验位;由kl,k2,⋯,k64依次计算出16个48bit密钥K(1),K(2),⋯,K(16)分别用于第l至第16次迭代;从外部输入64bit明码文t1,t2,⋯,t64;对t1,t2,⋯,t64做初始换位,然后分成各32bit的L(O),R(0);迭代计数器置1.2.迭代将扩充函数作用于R(i.1),得E(R(i·1));若执行加密操作,则选用K(i):若执行解密操作,则选用K(17一i);计算E(R(i-1))oK(i),得到48bit的数据区组Z(i)=zl(i),z2(i),⋯,‰(i)将Z(i)分组分别通过相应的S密盒里的值sj进行变换,得到32bit的数据区组Y(i)--ym(i),y2(i),⋯,y32(i),将换位函数P作用于Y(i),得x(i)=P(Y(i));计算R(i)=x(i)oL(i.1);令L(i)=R(i-1);迭代计数器加l;如果迭代计数器小于等于16,则重做迭代。否则,将(R(16),L(16))经逆初始换位作用之后输出。64bit明文数据输入L

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭