基于PCF8583时钟芯片实现电压监测仪测量系统的设计

描述

引言

电压监测统计仪是一种在线监测电网电压质量、统计每分钟瞬时电压、每分钟最大电压、每分钟最小电压以及平均电压、电压合格率、电压超上限率、电压超下限率等功能的仪表。从以上功能可得出,电压监测统计仪除了测量电压精度这一因素外,还有一重要因素就是时间的准确性。利用PCF8583串行时钟芯片成功的应用在电压监测仪校验装置中,既实现了电压的可程控信号输出,从而可测量电压监测统计仪的电压精度指标,又实现了一个标准时钟,从而可对电压监测统计仪的时间进行比对,实现校准。

1、 PCF8583的基本功能特点

PCF8583是飞利浦公司推出的I2C总线接口实时时钟芯片,它可独立于CPU工作,不受CPU主晶振及共电容的影响,且计时准确。具有4年日历时钟,12或24小时格式,时基可用32.768KHz或50Hz,带可编程的闹钟,定时和中断功能的日历时钟芯片。芯片具有体积小、硬件连线少、带有256字节的静态RAM等特点。对于PCF8583在电压监测仪校验装置中的应用,主要是用它的实时时钟计数功能,以及标准脉冲输出功能。

2、PCF8583的寄存器结构

在时钟方式下,PCF8583中的寄存器结构地址分配为:00H~07H为时间寄存器地址编码; 08H~0FH为定时器起闹寄存器地址编码,作起闹时间或通用RAM之用;10H~FFH为通用静态RAM。其中00H为控制状态寄存器,01H为1/100秒寄存器,02H为秒寄存器,03H为分寄存器,04H为时寄存器,05H为年/日寄存器,06H为星期/月寄存器,07H为定时寄存器。有关控制寄存器、时寄存器、年/日寄存器、星期/月寄存器的内部格式详述如下:

数据格式为:

⑴ 控制寄存器(00H)

D7位:计数、停止计数位。D7=0,启动对脉冲计数;D7=1,停止计数。

D6位:保持最新计数位。D6=0,计数;D6=1,保持和存储最新计数值到捕捉寄存器中。

D5D4位:功能方式选择位。D5D4=00,选择32.768KHz时钟方式。

D5D4=01,选择50Hz时钟方式。

D5D4=10,事件计数方式。

D5D4=11,测试方式。

总线

D3位:标志位。D3=0,读05H、06HRAM单元时不屏蔽。

D3=1,对05H、06HRAM单元只读出月、日计数值。

D2位:起闹使能位。D2=0,不能起闹;D2=0,允许起闹寄存器使能。

D1位:起闹标志位。D1=0,占空比为50%的分标志 。

D0位:定时器标志位。D0=0,占空比为50%的秒标志 。

⑵ 时寄存器(04H)

D7位:计时格式。D7=0,24小时制,AM、PM标志不变。

D7=1,12小时制,AM、PM标志更新。

D6位:上午(AM)、下午(PM)标志。D6=0,AM;D6=1,PM。

D5D4位:钟点十位(二进制0~2)。

D3D2D1D0位:钟点个位(BCD码)。

⑶ 年/日寄存器(05H)

D7D6位:年份(二进制0~3)。

D5D4位:日期十位(二进制0~3)。

D3D2D1D0位:日期个位(BCD码0~9)。

⑷ 星期/月寄存器(06H)

D7D6D5位:星期(二进制0~6)。

D4位:月份十位( 0~1)。

D3D2D1D0位:月份个位(BCD码0~9)。

3、 硬件接口电路

PCF8583作为I2C总线接口芯片,采用二线通信传输方式。即主要通过时钟线SCL和数据线SDA进行双向传输。由于I2C总线是同步串行数据传输总线,其内部为双向传输电路,端口输出为开漏结构,故总线上必须有上拉电阻,通常可取5~10KΩ。PCF8583与AT89C52单片机的硬件接口电路如图1所示。采用了内带恒温槽、高稳定度的DS32KHz标准晶体振器,代替了使用32.768KHz普通晶振的方案。虽然这二种方案都能产生PCF8583时钟芯片所需要的频率,但是利用DS32KHz产生的晶振频率精度为±1分钟/年。而PCF8583时钟芯片时间的准确性完全取决于晶振频率的准确稳定性。因此,经过图1电路改进后的方案确保了电压监测仪校验装置的时间标准,同时还可把32.768KHz频率输出,作为利用比较法校验电压监测统计仪的标准脉冲。由于考虑到PCF8583内部不带锂离子电池,故外带锂离子电池来保证PCF8583的时钟供电。图1中R1和R2为I2C总线所需要的上拉电阻。P1.4口作为发送时钟信号,P1.5口作为发送或接收数据信号。

总线

4、 PCF8583接口程序设计格式

4.1 PCF8583I2C总线上的信号说明

由于PCF8583为I2C总线接口芯片,因此它的数据操作格式是完全按照I2C总线上的信号读、写操作进行的。其中,I2C总线上的信号如图2所示。启动信号(S)出现在时钟脉冲SCL为高电平,且数据线SDA由高电平到低电平的变化时;停止信号(P)出现在时钟脉冲SCL为高电平,且数据线SDA由低电平到高电平的变化时;应答信号(A)出现在I2C总线上的第9个时钟脉冲SCL为高电平,且相应的数据线SDA为低电平时;非应答信号(/A)出现在I2C总线上的第9个时钟脉冲SCL为高电平,且相应的数据线SDA为高电平时;数据位传送为I2C总线启动后或应答信号启动后的第1~8个时钟脉冲所对应的一个字节的8位数据传送。数据传送按照先高后低位的原则进行读或写

总线

4.2 PCF8583读、写操作格式

PCF8583一次数据操作格式包括起始信号(S)、发送读或写寻址字节、 应答信号、发送数据字节、应答信号……直到发送停止信号(P)。在本文应用中,是按以下两种操作格式来编写程序的。

⑴ PCF8583 写操作格式

PCF8583 写操作格式如下所示,是指从指定单元首地址(word address)开始依次写入几个字节数据。其中slave address1为PCF8583器件写地址,date1~daten为n个字节数据。

总线

⑵ PCF8583 读操作格式

PCF8583 读操作格式如下所示,先写入要读出的n个字节数据存入指定单元首地址(word address)开始的RAM单元中,然后才开始读数据,其中slave address2为PCF8583器件读地址。

总线

5、 PCF8583软件编程

根据图1所示的接口电路,PCF8583的写地址为#0A0H,读地址为#0A1H。在对PCF8583进行数据写入时,应先将日历时钟信息存放于单片机内部从10H开始的8个RAM单元,而从PCF8583读出的数据同样需存放在其中。下面是根据图1电路编制的读写PCF8583时钟的部分软件:

⑴ 变量定义              ⑶ 读时钟数据

SCL BIT P1.4             RD_NUM: LCALL ST

SDA BIT P1.5             MOV

A, #0A0H

year EQU 10H             LCALL WRI

month EQU 11H            MOV A, #06H

date EQU 12H             LCALL WRI

hours EQU 13H             LCALL ST

minutes EQU 14H            MOV A, #0A1H

seconds EQU 15H            LCALL WRI

weekday EQU 16H

RD_BYTE: MOV R3, #8

⑵ 校准写时钟数据             SETB SDA

WR_NUMBER: LCALL ST        RD_BYTE1: NOP

MOV A, #0A0H             SETB SCL

LCALL WRI               MOV C, SDA

MOV A , #00H             RLC A

LCALL WRI               CLR SCL

MOV A, #80H             DJNZ R3, RD_BYTE1

LCALL WRI LCALL STOP

MOV A , seconds           RET

LCALL WRI?&nb

sp;         ⑷ 写一个字节数据

mov a , minutes           WRI: MOV R3, #8

lcall wri               WRI1: RLC A

MOV A , hours            MOV SDA , C

ANL A , #3FH            SETB SCL

MOV hours , A            NOP

lcall wri               CLR SCL

MOV A , YEAR            DJNZ R3, WRI1

SWAP A               SETB SDA

RL A                 SETB SCL

RL A                 NOP

ORL A , DATE            CLR SCL

lcall wri               RET

MOV A , WEEKDAY

SWAP A

RL A

ORL A , month

lcall wri

LCALL STOP

RET

⑸ 启动I2C总线           ⑹ 停止I2C总线

ST:&nbs

p; SETB SDA        STOP: CLR SDA

SETB SCL             SETB SCL

CLR SDA              SETB SDA

CLR SCL              NOP

RET                 RET

6 、结束语

本文阐述的PCF8583时钟芯片,应用于单相电压监测仪校验装置,该装置是江西省2003年科技厅重点科技计划课题,编号为10220221,已于2005年6月完成科技成果鉴定。本文在阐述了PCF8583的基本功能特点、寄存器结构的基础上,给出了PCF8583的硬件接口电路、程序设计格式以及相应的接口软件。本文作者创新点是采用了内带恒温槽、高稳定度的DS32KHz晶体振荡器,给PCF8583时钟芯片提供稳定的频率信号,从而实现了标准时钟。虽然采用GPS全球定位系统同样可实现标准时钟,但是它的价格高。因此,本文这种方案的应用是一个提高了产品性价比的成功例子,值得推广。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分