DDSF系列电能表的设计方案
1.1 DDSF系列电能表设计方案概述
DDSF系列电能表的硬件电路设计由电源电路设计、计量电路设计、通讯电路设计、MCU及其它部分电路设计四大部分组成。其中核心部分是计量电路的设计,它是电能表计量准确性的关键部分,是电能表计量功能的体现,但是其他部分也是缺一不可的,特别是单片机控制器,它是电能表系统的灵魂,实现系统中各个部件协制,人机交互,多费率控制等等重要的功能。
MCU及其相关部分电源电路计量电源电路电源电路部分RS485通讯电源电路RS485通讯信道红外通讯信道电池欠压检测被测电压拾取电路计量芯片电路( ADE7755 )被测电流拾取电路通讯信道切换电路CD4066RS232及切换控制MCU部分( LPC931/922 )系统掉电检测ICP电路I2C总线LCD驱动器( PCF8566/PCF8576 )指示灯LCD显示器存储器EEPROM24WC08实时时钟R8025温度传感器LM75 图1.1 DDSF系列电能表硬件组成框图
由上图所示,电源电路为了提高系统的抗干扰性、可靠性,分为三个的电源,使计量电路,RS485通讯和MCU的电源相互隔离,达到互不影响的目的,但是它们使用同一个变压器,所以应注意变压器的选择。在计量电路部分,ADE7755芯片是一个数模混合的电路,因此设计较为困难,要到达良好的计量效果,要采取一定的抗干扰措施(比如数字地和模拟地应在PCB板上单点连接),特别是在对电流、电压采样的电路直接接在外部线路上,干扰比较严重。I2C总线在整个系统中占有重要的地位,它关系到LCD显示、电量数据存储、时间和日期的读取等等,它是MCU与外部设备的接口,是MCU获取信息的窗口,并且根据外部信息作出相应的判断和动作(比如冻结时间到,MCU作出冻结电量事件发生)。在通讯电路中,电能表有两个通讯信道(红外信道、RS485通讯信道),在通讯发生时MCU要判断是那个信道进行通讯,并且接收通讯帧,判断是否正确,并执行通讯命令。从上面可以看出
1
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
MCU的作用,它是系统的控制器,起着决定性的作用。
DDSF系列电能表的软件系统是整个电能表系统的灵魂,它是系统的神经中枢,它是整个系统的控制、指挥中心。电能表软件系统的算法设计在整个电能表系统设计中占有重要的一个环节,控制算法的优劣对整个系统正确、可靠的运行有决定性的影响,因此在进行电能表软件系统的算法设计时,要仔细、反复地进行设计、论证,考虑各个方面地因素,使控制算法正确、可靠。
程序数据结构内存数据结构EEPROM数据结构MCU初始化程序初始化电表部件初始化电量处理模块电量恢复处理电量脉冲累计处理时钟 、显示处理模块时钟及相关处理电能反向时间处理费率 、电量结算处理显示处理通讯处理模块通讯接收处理通讯命令执行处理通讯发送处理电量小数及整数累计处理电量掉电保护处理 图1.2 DDSF系列电能表的软件系统结构框图
DDSF系列电能表的软件系统包括程序数据结构模块、程序初始化模块、时钟及显示处理模块、通讯处理模块和电量处理模块五大部分组成,各个部分都其特殊的任务,在电表系统中完成它们相应的功能。
程序数据结构模块是对程序中的数据进行分析,合理的分配数据内存,定义程序涉及的变量。它是根据整个程序的算法来制定的,同时一个好的数据结构对整个程序的写作有非常重要的作用,因此根据电能表软件系列实现的功能及其算法制定合理的数据结构。DDSF系列电能表的数据结构包括两个部分:MCU内存数据结构和EEPROM数据结构。
程序初始化模块是对整个程序进行初始化,它包括两个部分:MCU初始化和电表各部件初始化。MCU初始化是对MCU各部件进行初始化,为各部件在程序工作时提供合适的初始状态,它包括配置I/O口工作模式、看门狗初始化、定时器初始化、键盘中断初始化、串口中断初始化、比较器中断初始化等等。电表各部件初始化是对电能表系统各部件进行配置工作状态,初始化它们的工作方式,为程序工作提供电表部件初始状态,它包括指示灯初始化、LCD显示初始化、实时时钟初始化、电量恢复、通讯信道、历史电量处理等等部件的初始化。
时钟、显示处理模块是程序系统中进行时钟和显示处理的模块,是通过对当前时钟的比较,对有关时钟事件是否发生进行判断,程序对时钟事件作出处理,可以说时钟就是这个程序模块的节奏,告诉程序哪个事件在什么时候发生。比如说显示数据刷新事件,它是1S的时间对显示数据进行刷新,当时间间隔1S时,显示数据刷新事件发生,程序进行显示数据刷新处理。它包括时钟及其相关处理、显示事件处理、电能反向时间事件处理、费率和电量
2
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
结算事件处理等等部分组成的。
通讯处理模块是电能表系统进行外界通讯的模块,它是依照国标的通讯规程编写的一个软件模块,它包括通讯接收处理、通讯命令处理及通讯发送处理,当通讯接收到一帧正确的数据时,通知程序通讯命令处理事件发生,执行通讯命令解释及执行命令操作,当命令要求发生通讯数据时,通讯发送事件发送,进行通讯数据发送。同时由于通讯信道有红外信道和RS485信道两个信道,在通讯时应判断是哪一个信道进行通讯的。
电量处理模块是电能表系统中实现电能计量的程序,是实现其基本功能的程序,这部分程序也是电能表软件系统中最为关键的程序,其计量的正确性,可靠性及电量数据储存的正确性是关乎到整个系统的成败,关系到全局,因此这部分计量的算法要设计正确、合理。它包括MCU上电对各电量值的恢复、对各电量脉冲的累计、对各电量小数整数累计、及对电量掉电保护等程序,在电量脉冲累计一定值是,电量小数加1事件发生,当电量小数累计一定值时,电量整数加1事件发生,执行电量整数累计程序。
由上可知,DDSF系列电能表的软件系统是由五大部分组成的,每一个部分完成其特定的任务,而且是缺一不可的,同时各个模块之间存在着一定的联系,存在着数据交换的可能,它们不是相互的,而是相互联系、统一,形成整个电能表软件系统。
1.2 DDSF系列电能表硬件系统
1.2.1
电源电路部分
DDSF系列电能表的电源电路分为三个部分:电量计量电源电路、RS485通讯电源电路、MCU及其相关部分电源电路。电源电路提供系统运行的能量,所以在进行电源电路设计时保证原理正确的前提下考虑电源容量并保证一定的工程余量,同时计算各个元件的电流、电压值,选择合适的元件参数。
TR1L_in1234N_in576D28178L05GNDVinVout3C14+5VRST3BD2801AZ1RH3560082MOV10D681KIN4007E4220uF/35VC130.1uFE50.1uF220uF/25VDGND
图1.3 电量计量电源电路
W378L051GNDVinVout3TR1L_in1234N_in876G485AB22W10E6C15V485BD2801A52MOV120D681KC16E7100uF/35V0.1uF0.1uF220uF/25VG485
图1.4 RS485通讯电源电路
以上两个电源电路是一种标准设计的电源电路,通过降压、整流、稳压和滤波四个环节,得到5V的直流电压。整个电源电路是以78L05这种稳压芯片进行设计的,是一种串联的稳压电路。
3
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
TR1L_in876121AB12W1015-30uHXJ1+123W1LM317TMOV120D681KN_in234V3.9Vout2VinAdjC1BD2801A5 TR2C2E110.1uF0.1uF470uF/35VR2240 1%C3E20.1uF470uF/16V(a)V3.9R1510 1%T18050VCCC100.1uFVD1BATCHKV3.9VDDV3.9U73VCCRESET1GNDMAX809C72R3C8C90.1uF0.1uF0.1uFR42KR53.3MR63.9ME3C11BAT1LS14250C12240R73KDAN202K0.1uF220uF/25VXJ2R100K(b)(c) 图1.5 MCU及其相关部分电源电路 1.a部分电路原理说明 通过电网输入220V的交流电源,通过变压器TR1降压,在5、6端产生12V的交流电源,通过AB1全波整流集成块及C1、TR2、C2、E1滤波(C1、TR2、C2构成差分滤波网络),产生一个带有一定脉动分量的直流电。在通过并联稳压集成电路LM317,同时调整R1、R2的比值,得到所需电压值(3.9V)。 2.b部分电路原理说明 LPC900系列单片机存在着一个问题:在电源上电的时候,如果上电缓慢时,单片机出现复位错误,程序不能正确运行。为了解决这个问题,采用快速上电的方法,利用MAX809电源监控芯片,当上电电源达到电压门槛时,T1三极管导通,开通电源通道,达到MCU快速上电的目的,VCC的电压为V3.9减0.7V得到3.3V电压值。 3.c部分电路原理说明 由于有后备电池的原因,要解决实时时钟芯片电源的问题,采取的原则是:电网正常供电时,从电网吸收电能,但是不能进行对电池充电,电网停电时,电池只对时时钟芯片供电。 采用二极管或逻辑的方式,对V3.9和电池电压进行选择。 当电网正常供电时,V3.9的电压为3.9V,大于电池电压,由于VD1器件的作用,VDD选择V3.9电源供电。当电网停电时,由于VD1器件的作用,VDD选择电池电源供电,同时电池通过R7限流对时钟芯片供电。 电路中有电池电压检测网络,检测网络有R5、R6和C10组成的,由于R5、R6远远大于R7,所以可以忽略R7的影响,检测网络的电流几乎等于零,也不消耗电池的能量。 1.2.2 计量电路部分 DDSF系列电能表的计量电路部分主要是针对ADE7755计量芯片的电路设计,主要包括:抗混滤波器的设计、电压通道电路设计、电流通道电路设计、其它电路部分设计。 4广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
J1J2J3J4J5R14R17KJ9R1624KJ8R17R181212121211100KR13120K12KJ76.2KJ6R22R21R20R19121212390R12120K7501.5K3KR11120K1234567101112U1DVDDF1AC/DCF2AVDDCFNC1DGNDV1PREVPAD7755V1NNCV2NCLKOUTV2PCLKINRESETG0REFG1AGNDS0SCFS1242322212019181716151413R10120KR2442.2KR2353.6KR25R26C2433nF/50V33nF/50V0.1uF1K 1%C171K 1%C18ADE7755+5V22
图1.6 电压通道电路图
从电路理论分析,电压通道电路实际上是一个分压电路,通过电阻分压,确保ADE7755电压通道中信号电压在其工作的范围内。由于电能表工作的实际环境和元件参数的误差,在电压衰减网络中,设计一个电阻调整网络,可在一定范围内调整信号电压的大小,校验ADE7755电能输出脉冲的频率,调整电能表的精度,因此电压衰减网络又称校验网络。
R271K 1%SI1211C203300pF/50VJL1U11234567101112DVDDF1AC/DCF2AVDDCFNC1DGNDV1PREVPAD7755V1NNCV2NCLKOUTV2PCLKINRESETG0REFG1AGNDS0SCFS1242322212019181716151413C19233nF/50VR281K 1%C2133nF/50VADE7755
图1.7 电流通道电路图
5
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
电流通道电路中,是一个PGA可编程的差动运算放大电路,外围电路设计主要是抗混滤波器的设计,R27C19和R28C21组成两个一阶低通滤波器,滤除电流通道的高频分量。C20是通过JL1跳线来选择是否作用于系统,它是补偿电流信号本身不平衡造成ADE7755计量电能出现比较大的误差,人为造成不平衡,使得系统达到平衡的目的。
VCCPULSE_OUTC230.1uFR29VCCC220.1uF+5VO3PS2501_1R3420KREVP10C270.1uFPULSE1234567101112O1PS2501_1R3320KU1DVDDF1AC/DCF2AVDDCFNC1DGNDV1PREVPAD7755V1NNCV2NCLKOUTV2PCLKINRESETG0REFG1AGNDS0SCFS1242322212019181716151413DGNDR322KDGNDC25DGNDL1d5mmO2PS2501_1R312KR301KDGNDPULSE_OUTJP112Y13.5795MHzC2622pF/50VDGNDC240.1uF22pF/50VDGND+5VADE7755+5V
图1.8 ADE7755其它电路部分
DVDD和AVDD通过C22、R23、R29组成的滤波电路连接在一起,同时AGND和DGND通过电感连接在一起,滤除干扰。选择内部基准电源,在基准电源输出端加上一个滤波电容C24,加强内部基准不受外界干扰。ADE7755芯片的接口电路主要是CF脚的输出脉冲和REVP脚的电能方向指示,它们是通过光藕器件和MCU电路进行隔离输出的。 1.2.3
通讯电路部分
DDSF系列电能表有两个通讯通道,一个是RS485通讯信道,另一个是。RS485通讯信道是用来和其他电能表组成RS485通讯网络,实现远程网络抄表;红外通讯信道是利用红外线为媒介,利用掌上抄表器进行抄表的,两个信道都是通过MCU的UART进行通讯的,判断通讯信道是一个问题。DDSF系列电能表通讯电路由红外通讯电路、RS485通讯电路、通讯信道切换电路组成,红外通讯电路完成红外通讯信道通讯的功能,RS485通讯电路完成RS485通讯的功能,通讯切换电路判断当前通讯信道的功能。
R352KHW38KV3.9R362KT28550V3.9R37U23RXDHW12VSGTXDV3.9C280.1uF2KR382KHD1EIR-305CR3939T38550TOP1838
图1.9 红外通讯电路
6
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
红外通讯电路的接收电路是由U2红外接收集成电路完成的,当外界有38k频率的红外信号时,U8通过内部接收电路的作用,在1脚输出低电平,否则为高电平。红外通讯电路的发射电路中,进行红外通讯时,HW38K端输入38K频率的脉冲信号,当TXD=1时,T3截止,HD1停止发射红外信号;当TXD=0时,T3导通,HD1加上38K频率的脉冲信号,发射红外信号,其实相当于对TXD信号进行38k脉冲调制。
V3.9RXD485O4PS2501_1R432KR4420KV485U3RS_RXD123RS_TXD48765V485R462KRS485AR4020KR412KTXDR422KCTRL485O6PS2501_1G485O5PS2501_1RVCCREBDEADGNDSP485EJP2TVS112R47G485RS485B2KR4520KG485
图1.10 RS485通讯电路
RS485通讯电路通过3个光藕器件对单片机电路和RS485总线电路进行隔离,提高系统的干干扰能力,电路中的TVS1管并联在RS485总线A、B线两端,对电路进行瞬态保护作用,R46和R47为偏置电阻,进行网络失效保护。但是这个电路没有匹配电阻,在通讯总线设计中应根据实际情况进行匹配电路的设计。RS485通讯电路中JP2接口是要进行瞬变脉冲和静电干扰的,在设计和选择485转换芯片要特别注意这个问题。
V3.914U4CRXDHW4GNVD3.93CD4066BM75RXDR4820KHWCTRLU4ACD4066BM12RXD48510U4BCD4066BM111312COMMSEL 图1.11 通讯信道切换电路
通讯信道的切换电路是判断当前的通讯信道,发射通讯信道由MCU主控器保证,通讯信道切换电路主要进行接收通讯信道的判断。
发射通讯时,当RS485通讯电路中CTRL485=1不允许发送,保证选择红外通道发送;当红外通讯电路中HW38K=1时,T2截止,不允许红外发送,保证选择RS485通道发送。
接收通讯时,通过CD4066电子开关切换通道。当COMMSEL=0时,U4A、U4B开关断开,HWCTRL由于R48上拉到V3.9电源为高电平,U4C开关接通,红外通道RXDHW和RXD连通,选择红外通道;当COMMSEL=1时,U4A、U4B开关接通,HWCTRL为低电平,U4C开关断开,RS485通道的RXD485和RXD连通,选择RS485通道。通道切换采用抢占式,默认通道为红外通道,当RS485接收通讯开始时,起始位为0,利用MCU键盘中断功能切换为RS485通讯信道。
7
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
1.2.4 MCU及其它相关电路部分
MCU是选用LPC931或922两种单片机,这部分电路由LCD显示电路、实时时钟电路、存储器和温度检测电路、ICP电路、掉电和电池检测电路等等组成。
S39S38S37S36S35S34S33S32S31S30S29S28S27S26S25S24S23S22S21S20S19S18S17S16S15S14S13S12S11S10S9S8S7S6S5S4S3S2S1S0VCCPCF8576DTU344474849505152535556123VCC123LED_FCOMMSEL4LED_G5RST67PROG8REVP9PULSE10SDA1112SCL1314U2PLPC931VCC2827262524232221201918171615VCCR6310KICB/P2.0OCD/P2.1KBI0/CMP2/P0.0OCC/P1.7OCB/P1.6 ____RST/P1.5VSSXTAL1/P3.1CLKOUT/XTAL2/P3.0 ____INT1/1.4 ____ SDA/INT0/P1.3SCL/T0/P1.2MOSI/P2.2MISO/P2.3P2.7/ICAP2.6/OCAP0.1/CIN2B/KBI1P0.2/CIN2A/KBI2P0.3/CIN1B/KBI3P0.4/CIN1A/KBI4P0.5/CMPREF/KBI5VDDP0.6/CMP1/KBI6P0.7/T1/KB17P1.0/TXDP1.1/RXDP2.5/SPICLK __P2.4/SSCOM1COM2COM3COM4LCDS1S2SDASCLSDASCLSYNCCLKVDDOSCA0A1A2SA0VSSVLCDBP0BP1BP2BP3R3820KSDAR3720KSCLSCLVDDS39S38S37S36S35S34S33S32S31S30S29S28S27S26S25S24S23S22S21S20S19S18S17S16S15S14S13S12S11S10S9S8S7S6S5S4S3S2S1S0S5S6S7S8S6S7434241403938373635343332313029282726252423222120191817161514131211109876BATCHKLED_CPWRCHKPDACTRL485RXD485HW38KTXDRXDVCCS3S4S8S9S10S11S12S13VCC
R4520K
U412345678025CLKOUT
SDASCL1234U10LM75SDASCLOTIGNDVDDA0A1A28765NCSCLFOUTNCTESTVDDFOENCSDAINTBGNDINTANCNC14SDA13121110CLKOUT98U9CSI24WC081234A0A1A2VSSVCCTESTSCLSDA8765S15S14S13S12S11S10S9S8S7S6S5S4S3S2S1S0COM4COM3COM2COM1VCCVCCSCLSDA12345671011121314151617181920
图1.12 LCD显示、实时时钟、储存和温度检测电路图
实时时钟选用8025时钟芯片,它是一个I2C总线接口的芯片,MCU通过I2C总线读写8025芯片的寄存器,设置芯片的工作状态,校正当前时间和日期,同时可以设置报警时间、日期,它的I2C地址是H。8025时钟芯片是一种低功耗、宽电压范围工作的芯片,在工作电源3V时,工作电流为0.48uA,在1.7V~5.5V正常工作,同时能够检测晶振的情况和微调晶振的频率。8025芯片应设置输出1S中的时钟脉冲信号,为了保证时间和日期工作的连续性,应保证电源不断电。
检测温度芯片选用LM75温度检测芯片,它是一个I2C总线接口的芯片,它内部是一个11位的AD温度转换器,内部包含四个数据寄存器:配置寄存器、温度寄存器、上限温度寄存器、下限温度寄存器,MCU通过指定地址指针的方式来操作指定寄存器。LM75工作电压范围是3.0~5.5V,工作电流典型值为250uA,温度寄存器的内容是补码的形式存储的,每个数字量代表0.5℃,芯片的I2C地址是90H。 存储器选用支持I2C总线可擦写E2PROM,型号是24WC08,存储容量为8K位,1K字节,10位地址线,其中最高2位地址是I2C地址A1A0位,因此在A2=0时,它的I2C地址为A0H、A2H、A4H,A6H。工作电压范围是1.8V~6.0V,采用低功耗CMOS技术,同时具有写保护功能,执行写操作时,在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中,
8
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
器件不应答主器件的请求,因此在执行存储器写操作之后,应延时一定的时间再对存储器进行操作。
V3.9V3.9+12R842.2KR912KICP1PWRCHKVCC16ICPNCVCCPCLPDAGNDRSTLED_FCTRL4852PDA3RSTR512KL4d5mmLED_GR502KL3d5mmLED_CR492KL2d5mmR5320KPROGS1SW-PBC120.1uF 图1.13 其它相关电路图
In Circuit Programing是在电路编程,简称ICP,是一种串行编程方式,其通过一根时钟线与一根数据线串行传输编程指令及数据,PLPC9××芯片在ICP的过程种需要用到5个脚:PCL,PDA,Reset,VDD和VSS。ICP功能完全由MCU硬件完成,不需要外部引导。在ICP接口电路设计当中,应注意是否有外界电路对ICP有影响,否则应断开其连接。
掉电检测电路是一个R8、R9组成的分压电路,C12用来滤波作用,提高抗干扰性能。通过MCU内部比较器,比较器内部参考电压和PWRCHK脚的电压比较,当电源电压下降到一定时,MCU比较器发生翻转,发生掉电事件。当发生掉电,由于电容的存在,MCU的电源不会马上消失,这时MCU应执行保护数据程序。
指示灯电路包括峰指示、谷指示、通讯指示,当MCU对应脚输出低电平时,电流经限流电阻,LED,流入MCU脚,指示灯亮。
1.3 DDSF系列电能表软件系统
1.3.1 DDSF系列电能表主程序算法分析
DDSF系列电能表软件系统主程序在电能表整个程序当中是最重要的部分,它是电能表的执行部分。它包括整个程序初始化部分、显示刷新处理部分、日期时间及与其相关操作处理部分、通讯帧命令处理部分、电量运算及储存部分、电量结算处理部分以及其他事件处理部分。整个程序是通过查询方式执行的,通过查询电表事件发生的条件情况,判断电能表事件是否发生,来执行相应的操作,这种执行方式只要保证CPU的执行速度足够快,是能够保证事件响应的时效性的。
在电量处理模块算法中,它包含电量小数事件和电量整数事件,当对应类型(总峰平谷反)电量脉冲累计到0.01kWh,电量小数事件发生,电量小数加1及保存电量小数数据,当电量小数发生进位时,电量整数事件发生同时应进行电量整数部分及相关事件处理。
在时钟和显示处理模块算法中,它包含秒事件、分钟事件、半小时事件及小时事件,秒事件是通过MCU中RTC定时器定时1S来激发的。
在通讯处理模块算法中,它包含通讯接收帧事件和通讯发送帧事件,当程序查询到通讯接收帧完标志置位时,通讯接收帧事件发生,程序进行通讯格式的判断,如果通讯格式正确,再进行通讯地址的比较,如果通讯帧中的地址域是本机地址或广播地址,表示是对本机通讯,则程序进行通讯命令的解释及执行,同时如果要返回数据帧,置通讯发送标志,准备好发送数据帧,则通讯发送数据帧事件发生,启动发送数据。
9
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
主程序开始程序初始化半小时事件发生N电量处理模块电量数据检测并修正数据Y置时段费率检测标志时钟配置设置N电量小数事件发生Y电量小数加1N小时事件发生N电量整数事件发生Y电量整数事件处理电量小数及其他相关事件处理Y置电量结算标志及温度补偿处理人工复位事件处理N总峰平谷反电量结算及时段费率检测处理电量运算完毕Y电池、 硬件状态检测, 编程开关处理N通讯接收帧事件发生通讯处理模块N时钟显示处理模块Y接收帧格式正确Y费率及控制参数错误检测及恢复本机地址和广播N秒事件发生NY通讯命令解释并执行命令操作NY通讯指示处理备份编程时间及次数Y显示刷新处理备份时间及数据反向事件处理分钟事件发生NN发送数据帧事件发生Y通讯数据帧准备启动发送数据帧Y分钟校时及时钟备份事件处理校时允许检测秒加1主程序结束 图1.14 DDSF系列电能表主程序流程图 10广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
1.3.2 DDSF系列电能表软件初始化算法分析
N初始化入口I/0工作模式配置MCU部件初始化
DIVM =0延时100 ~200ms看门狗初始化外部中断初始化比较器初始化 ,并延时以稳定RTC及定时器0 、1初始化串口初始化键盘中断初始化电表部件初始化
LCD全显看门狗复位YLCD数码域全显RTC配置初始化电量脉冲恢复各电量数据恢复时钟数据恢复费率检测喂狗历史电量处理显示控制参数恢复校时允许检测端口初始化初始化出口 图1.15 初始化流程图
MCU部件初始化是是整个程序初始化的一个部分,它是整个系统所用到的MCU资源的初始化,使程序在运行时能够正确的运行MCU部件,达到预定的目标。MCU部件初始化包括以下几个部分:
I/O控制模式配置及时钟分频器初始化 看门狗、外部中断1、比较器中断初始化 RTC及定时器0、1初始化 串口中断、键盘中断初始化
电表各部件初始化是对电表的相关部件、相关的变量进行初始化,特别是电量数据恢复非常重要,使电表正常工作。它包括以下几个部分:
端口初始化 显示初始化
外部时钟芯片初始化
剩余脉冲数据及各电量数据恢复 时钟数据及显示控制数据恢复 时段费率初始化处理 历史电量初始化处理 校时允许初始化处理
11
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
1.3.3 DDSF系列电能表软件的时钟、显示处理模块算法分析
时钟 、显示入口电池检测小时事件发生系统硬件检测编程开关处理温度补偿费率错误恢复显示控制参数错误恢复秒事件发生Y通讯指示处理显示刷新处理反向事件处理秒加1N分钟事件发生Y读取8025时间对时操作时间备份事件发生Y时钟备份校时允许检测半小时事件发生Y置时段费率检测标志时钟配置设置N电量结算事件检测发生Y电量结算检测时钟 、显示出口NN通讯通道默认恢复时段费率事件检测发生Y时段费率检测NNNY置软复位通讯事件发生N485通讯发生Y人工复位事件发生Y保存电量脉冲数据NY置电量结算标志N
图1.16 时钟、显示处理模块流程图
时钟、显示处理模块程序是根据时间进行程序处理的,当时间间隔1S时,秒事件发生,进行秒事件处理,当时间间隔为分钟时,分钟时间发生,进行分钟事件处理,同样在时间间隔半小时及小时时,半小时及小时事件发生,进行事件处理。它包含以下几个部分:
数据检测部分:对系统数据进行更新,错误进行恢复而进行的操作。 事件执行部分:当事件发生时,对相应的事件进行程序响应。
其他执行部分:包括通讯信道默认恢复、时段费率检测、电量结算检测等等。
12
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
1.3.4 DDSF系列电能表软件的通讯处理模块算法分析
通讯事件入口Y通讯接收帧事件发生Y通讯信道配置写命令通讯帧检测接收帧格式正确Y本机地址和广播Y通讯数据域减0x33Y校时处理N广播设置电表表号N广播扩展命令N密码修改命令Y密码检测Y保存清零密码Y保存编程密码NYN设置电表表号处理Y扩展命令处理NN备份校时时间Y备份校时时间N备份编程时间及次数Y备份编程时间及次数NNNY密码检测密码正确Y写命令解释并操作N读命令解释并操作读命令N广播校时发送数据帧事件发生Y恢复通讯默认设置通讯数据帧准备启动发送数据帧清零密码N编程密码通讯事件出口 图1.17 通讯事件处理流程图
通讯事件处理程序是通过判断通讯事件标志是否置位决定通讯事件是否发生,当通讯事件发生时,根据通讯规则,检测通讯帧格式是否正确,同时比较电表通讯地址是否进行本机通讯,当入口通讯帧格式正确和进行本机通讯和广播通讯时,则对通讯命令进行解释同时执行通讯命令操作。在通讯命令执行完毕后,程序检测是否要进行通讯发送数据帧,如果要进行通讯发送,则准备通讯数据,启动发送功能。
13
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
1.3.5 DDSF系列电能表软件的电量计量处理模块算法
电量计量入口总峰平谷反电量小数事件发生Y电量小数加1电量整数事件发生Y计算当前类型电量的地址及长度读取电量整数YNNNN计算电量小数数组校验和读取电量小数校验和错误或数据错误Y关闭掉电中断保存电量小数到正常及备份区域读取电量小数N校验和错误及地址正常N数据校验和错误Y电量整数数据恢复默认值电量整数加1保存电量整数到正常及备份区域准备电量小数数据及计算其地址 、长度保存电量小数到正常及备份区域更新电量脉冲数组及校验和N电量整数数据发生改变Y保存电量整数低字节到正常及备份区域N校验和错误或数据错误Y存储区域损坏 ,更新区域指针保存电量小数指针到正常及备份区域计算电量小数区域指针数组校验和保存电量小数到正常及备份区域打开掉电中断电量运算完毕Y电量计量出口 图1.18 电量计量处理模块流程图
电量计量程序是进行电量计量程序处理,电量处理的顺序依次为电量整数处理及储存、电量小数处理及存储、电量脉冲处理、电量整数低字节处理及储存、电量小数储存区域指针更新判断。电量整数低字节处理及储存是为了在电源掉电中,防止程序在对电量整数加1并保存时,电量小数没有保存发生掉电,导致系统多计量1kWh的电能的可能,因此在系统电量恢复时检测到两个电量整数低字节不相等时,对电量小数清零处理,解决问题的发生。电量小
14
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
数储存区域指针更新判断是因为电量小数的存储区域频繁发生擦写现象,导致EEPROM的寿命减低,因此采样多区域的办法,当检测到当前存储区域损坏时,更换下到一个存储区域,延长电能表的寿命。
比较器中断入口N比较器1中断Y清比较器1中断标志Y通讯发送NN掉电事件Y总线忙Y置停止总线命令并确认总线停止延时一定时间启动总线保存电量脉冲数据NN电源上电Y软复位清比较器2中断标志比较器中断出口
图1.19 比较器中断流程图(掉电保护)
比较器中断是用来进行电量脉冲数据保护,当电源电压下降引起比较器中断发生称为掉电,这时应当保护电量脉冲数据。当电源上电、电源掉电、比较器2的比较状态发生翻转、红外通讯导致电源电压下降都可以引起比较器中断发生,因此在设计程序时应分辨出电源掉电发生,从而真正进行保护数据,避免程序错误执行。
15
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务