广州周立功单片机发展有限公司
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
DDSF系列电能表的设计方案
1.1 DDSF系列电能表设计方案概述
DDSF系列电能表的硬件电路设计由电源电路设计,计量电路设计,通讯电路设计,
MCU及其它部分电路设计四大部分组成.其中核心部分是计量电路的设计,它是电能表计
量准确性的关键部分,是电能表计量功能的体现,但是其他部分也是缺一不可的,特别是单
片机控制器,它是电能表系统的灵魂,实现系统中各个部件协调控制,人机交互,多费率控
制等等重要的功能.
MCU及其相关
部分电源电路
计量电
源电路
RS485通讯
电源电路
电源电路部分
MCU部分
() 89LPC931/922
被测电压
拾取电路
被测电流
拾取电路
计量芯片电路
() ADE7755
LCD显
示器
LCD驱动器
() PCF8566/PCF8576
指示灯
存储器
EEPROM
24WC08
实时时钟
R8025
温度传感
器LM75
通讯信道
切换电路
CD4066
RS485通讯
信道
红外通讯
信道
电池欠压
检测
系统掉电
检测
ICP电路
I2C总线
RS232及切换控制
图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及其相关部分电源电路.电源电路提供系统运行的能量,所以在进行电源电路设计时
保证原理正确的前提下考虑电源容量并保证一定的工程余量,同时计算各个元件的电流,电
压值,选择合适的元件参数.
+5V
C13
0.1uF
E5
220uF/25V
Vin
1
GND
2
Vout
3
78L05D2
IN4007
C14
0.1uF
E4
220uF/35V
Z1
RH356008
DGND
MOV1
0D681K
2
3
4
8
6
7
1
5
TR1
BD2801AN_in
L_in
RST3
图1.3 电量计量电源电路
AB2
2W10
Vin
1
GND
2
Vout
3
W378L05
G485
V485
C15
0.1uF
C16
0.1uF
E7
220uF/25V
E6
100uF/35V
G485
MOV1
20D681K
2
3
4
8
6
7
1
5
TR1
BD2801AN_in
L_in
图1.4 RS485通讯电源电路
以上两个电源电路是一种标准设计的电源电路,通过降压,整流,稳压和滤波四个环节,
得到5V的直流电压.整个电源电路是以78L05这种稳压芯片进行设计的,是一种串联的稳
压电路.
3
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
VCC
C7
0.1uF
C8
0.1uF
C9
0.1uF
R73K
V3.9
VDD
VD1
DAN202K
BAT1
LS14250C
R63.9MR53.3M
E3
220uF/25V
BATCHKC100.1uF
C11
0.1uF
1
2XJ2
T1
8050
R3
240
R4
2K
R1510 1%
R2
240 1%
V3.9
E2
470uF/16V
C3
0.1uF
E1
470uF/35V
C2
0.1uF
AB1
2W10
1
2
XJ1
TR2
C1
0.1uF
+1215-30uH
Vin
3
Adj
1
Vout
2
W1
LM317T
MOV1
20D681K
2
3
4
8
6
7
1
5
TR1
BD2801AN_in
L_in
R54
100K
V3.9
V3.9
(a)
(b)(c)
2
3
1
VCC
GND
RESET
U7
MAX809
图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
R13
120K
R14
100K
R12
120K
R15
47K
R16
24K
R17
12K
R18
6.2K
1
2
J1
1
2
J2
1
2
J3
1
2
J4
1
2
J5
R19
3K
R20
1.5K
1
2
J6
R21
750
1
2
J7
1
2
J8
DVDD
1
AC/DC
2
AVDD
3
NC1
4
V1P
5
V1N
6
V2N
7
V2P
8
RESET
9
REF
10
AGND
11
SCF
12
S1
13
S0
14
G1
15
G0
16
CLKIN
17
CLKOUT
18
NC
19
REVP
20
DGND
21
CF
22
F2
23
F1
24
AD7755
U1
ADE7755
R25
1K 1%C17
33nF/50V
C18
33nF/50V
R26
1K 1%C24
0.1uF
+5V
R24
42.2K
R23
53.6K
R22
390
1
2
J9
R11
120K
R10
120K
图1.6 电压通道电路图
从电路理论分析,电压通道电路实际上是一个分压电路,通过电阻分压,确保ADE7755
电压通道中信号电压在其工作的范围内.由于电能表工作的实际环境和元件参数的误差,在
电压衰减网络中,设计一个电阻调整网络,可在一定范围内调整信号电压的大小,校验
ADE7755电能输出脉冲的频率,调整电能表的精度,因此电压衰减网络又称校验网络.
DVDD
1
AC/DC
2
AVDD
3
NC1
4
V1P
5
V1N
6
V2N
7
V2P
8
RESET
9
REF
10
AGND
11
SCF
12
S1
13
S0
14
G1
15
G0
16
CLKIN
17
CLKOUT
18
NC
19
REVP
20
DGND
21
CF
22
F2
23
F1
24
AD7755
U1
ADE7755
R27
1K 1%
R28
1K 1%
C19
33nF/50V
C21
33nF/50V
1
2
SI1
C203300pF/50V
1
2
JL1
图1.7 电流通道电路图
5
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
电流通道电路中,是一个PGA可编程的差动运算放大电路,外围电路设计主要是抗混
滤波器的设计,R27C19和R28C21组成两个一阶低通滤波器,滤除电流通道的高频分量.
C20是通过JL1跳线来选择是否作用于系统,它是补偿电流信号本身不平衡造成ADE7755
计量电能出现比较大的误差,人为造成不平衡,使得系统达到平衡的目的.
R34
20K
REVP
DVDD
1
AC/DC
2
AVDD
3
NC1
4
V1P
5
V1N
6
V2N
7
V2P
8
RESET
9
REF
10
AGND
11
SCF
12
S1
13
S0
14
G1
15
G0
16
CLKIN
17
CLKOUT
18
NC
19
REVP
20
DGND
21
CF
22
F2
23
F1
24
AD7755
U1
ADE7755
C24
0.1uF
+5V
C22
0.1uF
R29
10
C23
0.1uF
+5V
Y1
3.579545MHz
C26
22pF/50V
C25
22pF/50V
R30
1K
1
2
JP1
+5V
R32
2K
R31
2K
L1
d5mm
VCC
R33
20K
VCC
PULSE
O1PS2501_1
O3PS2501_1
O2PS2501_1
C27
0.1uF
DGND
DGND
DGND
DGND
DGND
DGND
PULSE_OUT
PULSE_OUT
图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通讯的功能,通讯切换电路判断当前通讯信道的功能.
T2
8550
V3.9
T3
8550
R39
39
HD1
EIR-305C
R36
2K
HW38K
TXDR38
2K
V
3
S
1
G
2
U2
TOP1838
V3.9
RXDHW
C28
0.1uF
R35
2K
V3.9R37
2K
图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脉冲调制.
R41
2K
R42
2K
R45
20K
R44
20K
CTRL485
TXD
G485
G485
V3.9V485
R40
20K
R43
2KRXD485
G485
V485
RS485A
RS485B
RS_RXD
RS_TXD
R46
2K
R47
2K
TVS11
2
JP2
O4
PS2501_1
O5
PS2501_1
O6
PS2501_1
R
1
RE
2
DE
3
D
4
GND
5
A
6
B
7
VCC
8
U3
SP485E
图1.10 RS485通讯电路
RS485通讯电路通过3个光藕器件对单片机电路和RS485总线电路进行隔离,提高系
统的干干扰能力,电路中的TVS1管并联在RS485总线A,B线两端,对电路进行瞬态保护
作用,R46和R47为偏置电阻,进行网络失效保护.但是这个电路没有匹配电阻,在通讯总
线设计中应根据实际情况进行匹配电路的设计.RS485通讯电路中JP2接口是要进行瞬变脉
冲和静电干扰的,在设计和选择485转换芯片要特别注意这个问题.
RXDHW
RXD485
HWCTRL
RXD
R48
20K
COMMSEL
V3.9
43
5
V3.9
14
GND
7
U4C
CD4066BM
1110
12
U4B
CD4066BM
12
13
U4A
CD4066BM
图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是选用89LPC931或922两种单片机,这部分电路由LCD显示电路,实时时钟电
路,存储器和温度检测电路,ICP电路,掉电和电池检测电路等等组成.
S15
S14
S13
S12
S11
S10
S9
S8
S7
S6
S5
S4
S3
S2
S1
S0
COM4
COM3
COM2
COM1
SCLSDA
VDD
VCC
8
TEST
7
SCL
6
SDA
5
A0
1
A1
2
A2
3
VSS
4
U9CSI24WC08
CLKOUT
VCC
SCL
SDA
SDA
1
SCL
2
GND
4
OTI
3
A2
5
A1
6
A0
7
VDD
8
U10LM75VCC
SDA
SCL
NC
1
SCL
2
FOUT
3
NC
4
TEST
5
VDD
6
FOE
7
NC
8
NC
9
INTA
10
GND
11
INTB
12
SDA
13
NC
14
U48025
COM3
COM2
1
SCL
SDA
COM4
COMVCC
S0
4
S1
5
S2
6
S11
15
S3
7
S10
14
S4
8
S9
13
S5
9
S8
12
S6
10
S7
11
S12
16
S13
17
S39
43
S14
18
S38
42
S15
19
S37
41
S16
20
S36
40
S17
21
S35
39
S18
22
S34
38
S19
23
S33
37
S20
24
S32
36
S21
25
S31
35
S22
26
S30
34
S23
27
S29
33
S24
28
S28
32
S25
29
S27
31
S26
30
SDA
44
BP3
3
BP2
2
SCL
45
BP1
1
SYNC
46
BP0
56
CLK
47
VLCD
55
VDD
48
VSS
54
OSC
49
SA0
53
A0
50
A2
52
A1
51
U3
PCF8576DT
S0
S20
S1
S19
S2
S18
S4
S17
S5
S16
S6
S7
S8
S9
S3
S10
S11
S12
S13
S14
S15
S21
S22
S23
S25
S26
S27
S28
S29
S30
S31
S32
S33
S34
S35
S36
S24
S37
S38
S39
VCC
R37
20K
R38
20KSDA
SCL
ICB/P2.0
1
MISO/P2.3
14
OCD/P2.1
2
MOSI/P2.2
13
KBI0/CMP2/P0.0
3
SCL/T0/P1.2
12
OCC/P1.7
4
SDA/INT0/P1.3
11
OCB/P1.6
5
INT1/1.4
10
RST/P1.5
6
CLKOUT/XTAL2/P3.0
9
VSS
7
XTAL1/P3.1
8
P2.7/ICA
28
P2.6/OCA
27
P0.1/CIN2B/KBI1
26
P0.2/CIN2A/KBI2
25
P0.3/CIN1B/KBI3
24
P0.4/CIN1A/KBI4
23
P0.5/CMPREF/KBI5
22
VDD
21
P0.6/CMP1/KBI6
20
P0.7/T1/KB17
19
P1.0/TXD
18
P1.1/RXD
17
P2.5/SPICLK
16
P2.4/SS
15
____
____
____
__
U2P89LPC931
RST
TXD
RXD
SDA
SCL
PULSE
REVP
PWRCHK
BATCHK
PROG
CTRL485
COMMSEL
LED_G
LED_F
HW38K
RXD485
LED_C
VCC
PDA
VCC
R45
20K
CLKOUT
VCC
R63
10K
VCC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
S1
S2S3S4
S5
S6
S7
S8
S6
S7
S8
S9
S10
S11
S12
S13
LCD
图1.12 LCD显示,实时时钟,储存和温度检测电路图
实时时钟选用8025时钟芯片,它是一个I2C总线接口的芯片,MCU通过I2C总线读写
8025芯片的寄存器,设置芯片的工作状态,校正当前时间和日期,同时可以设置报警时间,
日期,它的I2C地址是64H.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
器件不应答主器件的请求,因此在执行存储器写操作之后,应延时一定的时间再对存储器进
行操作.
R53
20K
PROG
V3.9V3.9
R50
2K
L3
d5mm
R51
2K
LED_F
LED_G
L4
d5mm
L2
d5mm
R49
2K
LED_C
S1
SW-PB
NC
1
PCL
2
GND
3
RST
4
PDA
5
VCC
6
ICP1
ICP
RST
PDA
CTRL485
VCC
C12
0.1uF
+12
PWRCHK
R9
12K
R8
42.2K
图1.13 其它相关电路图
In Circuit Programing是在电路编程,简称ICP,是一种串行编程方式,其通过一根时钟
线与一根数据线串行传输编程指令及数据,P89LPC9××芯片在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
主程序开始
程序初始化
电量运算完毕
电量小数事件发生
电量小数加1
电量整数事件发生
电量整数
事件处理
电量小数及其他
相关事件处理
,电池 硬件
,状态检测
编程开关处理
费率及控制参数
错误检测及恢复
秒事件发生
通讯指示处理
分钟事件发生
分钟校时及时钟
备份事件处理
校时允许检测
半小时事件发生
置时段费率
检测标志
时钟配置设置
人工复位
事件处理
显示刷新处理
反向事件处理
电量结算及时段
费率检测处理
通讯接收帧事件发生
接收帧格式正确
电量数据检测并
修正数据
小时事件发生
置电量结算标志
及温度补偿处理
本机地址和广播
通讯命令解释并
执行命令操作
备份编程时间及次数
备份时间及数据
发送数据帧事件发生
通讯数据帧准备
启动发送数据帧
主程序结束
秒加1
总峰平谷反
电量处理模块
时钟显示
处理模块
通讯
处理模块
Y
N
Y
N
Y
N
N
Y
N
Y
N
Y
Y
N
N
Y
Y
N
N
Y
Y
Y
N
N
图1.14 DDSF系列电能表主程序流程图
10
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
1.3.2 DDSF系列电能表软件初始化算法分析
初始化
入口
I/0工作模式配置
=DIVM 0
~延时100 200ms
看门狗初始化
外部中断初始化
,比较器初始化
并延时以稳定
,RTC及定时器0 1
初始化
串口初始化
键盘中断初始化
端口初始化
电量脉冲恢复
RTC配置初始化
各电量数据恢复
时钟数据恢复
费率检测
喂狗
历史电量处理
显示控制
参数恢复
校时允许检测
看门狗复位
LCD数码域全显LCD全显
初始化
出口
MCU部件初始化
电表部件
初始化
Y
N
图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系列电能表软件的时钟,显示处理模块算法分析
,时钟 显示入口
电池检测
系统硬件检测
编程开关处理
费率错误恢复
显示控制参数错误
恢复
秒事件发生
通讯指示处理
显示刷新处理
反向事件处理
分钟事件发生
校时允许检测
时钟备份
读取8025时间
对时操作
时间备份事件发生
秒加1
半小时事件发生
置时段费率
检测标志
时钟配置设置
小时事件发生
置电量结算标志
温度补偿
人工复位事件发生
保存电量脉冲数据
置软复位
通讯事件发生
通讯通道默认恢复
485通讯发生
时段费率事件检测发生
时段费率检测
电量结算事件检测发生
电量结算检测
,时钟 显示出口
N
Y
Y
N
N
Y
Y
N
Y
N
Y
N
N
Y
Y
Y
N
N
N
Y
图1.16 时钟,显示处理模块流程图
时钟,显示处理模块程序是根据时间进行程序处理的,当时间间隔1S时,秒事件发生,
进行秒事件处理,当时间间隔为分钟时,分钟时间发生,进行分钟事件处理,同样在时间间
隔半小时及小时时,半小时及小时事件发生,进行事件处理.它包含以下几个部分:
数据检测部分:对系统数据进行更新,错误进行恢复而进行的操作.
事件执行部分:当事件发生时,对相应的事件进行程序响应.
其他执行部分:包括通讯信道默认恢复,时段费率检测,电量结算检测等等.
12
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
1.3.4 DDSF系列电能表软件的通讯处理模块算法分析
通讯事件入口
通讯接收帧事件发生
通讯信道配置
通讯帧检测
接收帧格式正确
本机地址和广播
通讯数据域减0x33
广播校时
校时处理
广播设置电表表号
设置电表表号处理
广播扩展命令
扩展命令处理
密码修改命令
密码检测
清零密码
保存清零密码
编程密码
保存编程密码
读命令
读命令解释并操作
写命令
密码检测
密码正确
写命令解释并操作
备份编程时间及次数
备份编程时间及次数
备份校时时间
备份校时时间
发送数据帧事件发生
通讯数据帧准备
启动发送数据帧
恢复通讯默认设置
通讯事件出口
N
Y
Y
N
N
Y
N
Y
Y
N
Y
Y
Y
Y
N
N
N
N
N
Y
Y
N
Y
Y
N
Y
N
N
Y
图1.17 通讯事件处理流程图
通讯事件处理程序是通过判断通讯事件标志是否置位决定通讯事件是否发生,当通讯事
件发生时,根据通讯规则,检测通讯帧格式是否正确,同时比较电表通讯地址是否进行本机
通讯,当入口通讯帧格式正确和进行本机通讯和广播通讯时,则对通讯命令进行解释同时执
行通讯命令操作.在通讯命令执行完毕后,程序检测是否要进行通讯发送数据帧,如果要进
行通讯发送,则准备通讯数据,启动发送功能.
13
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
1.3.5 DDSF系列电能表软件的电量计量处理模块算法
电量计量入口
电量运算完毕
电量小数事件发生
电量小数加1
电量整数事件发生
计算当前类型电
量的地址及长度
读取电量整数
校验和错误及地址正常
数据校验和错误
电量整数数据
恢复默认值
电量整数加1
保存电量整数到
正常及备份区域
保存电量小数到
正常及备份区域
准备电量小数数据及
,计算其地址 长度
更新电量脉冲数组
及校验和
电量整数数据发生改变
保存电量整数低字节
到正常及备份区域
计算电量小数数组
校验和
读取电量小数
校验和错误或数据错误
关闭掉电中断
保存电量小数到
正常及备份区域
读取电量小数
校验和错误或数据错误
,存储区域损坏 更新
区域指针
保存电量小数指针到
正常及备份区域
计算电量小数区域指
针数组校验和
保存电量小数到
正常及备份区域
打开掉电中断
电量计量出口
N
Y
Y
N
N
Y
Y
N
Y
N
Y
N
Y
N
N
Y
总峰平谷反
图1.18 电量计量处理模块流程图
电量计量程序是进行电量计量程序处理,电量处理的顺序依次为电量整数处理及储存,电量
小数处理及存储,电量脉冲处理,电量整数低字节处理及储存,电量小数储存区域指针更新
判断.电量整数低字节处理及储存是为了在电源掉电中,防止程序在对电量整数加1并保存
时,电量小数没有保存发生掉电,导致系统多计量1kWh的电能的可能,因此在系统电量恢
复时检测到两个电量整数低字节不相等时,对电量小数清零处理,解决问题的发生.电量小
14
广州周立功单片机发展有限公司 Tel:(020)38730977 38730977 Fax:38730925 http://www.zlgmcu.com
数储存区域指针更新判断是因为电量小数的存储区域频繁发生擦写现象,导致EEPROM的
寿命减低,因此采样多区域的办法,当检测到当前存储区域损坏时,更换下到一个存储区域,
延长电能表的寿命.
比较器中断入口
比较器1中断
清比较器1中断标志
通讯发送
掉电事件
总线忙
置停止总线命令
并确认总线停止
延时一定时间
启动总线
保存电量脉冲数据
电源上电
软复位
清比较器2中断标志
比较器中断出口
N
Y
Y
N
N
Y
Y
N
N
Y
图1.19 比较器中断流程图(掉电保护)
比较器中断是用来进行电量脉冲数据保护,当电源电压下降引起比较器中断发生称为掉
电,这时应当保护电量脉冲数据.当电源上电,电源掉电,比较器2的比较状态发生翻转,
红外通讯导致电源电压下降都可以引起比较器中断发生,因此在设计程序时应分辨出电源掉
电发生,从而真正进行保护数据,避免程序错误执行.
15
立刻下载此文档