引言
電壓監測統計儀是一種在線監測電網電壓質量、統計每分鐘瞬時電壓、每分鐘最大電壓、每分鐘最小電壓以及平均電壓、電壓合格率、電壓超上限率、電壓超下限率等功能的儀表。從以上功能可得出,電壓監測統計儀除了測量電壓精度這一因素外,還有一重要因素就是時間的準確性。利用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.4RD_NUM: LCALL ST
SDA BIT P1.5MOV
A, #0A0H
year EQU 10HLCALL WRI
month EQU 11HMOV A, #06H
date EQU 12HLCALL WRI
hours EQU 13HLCALL ST
minutes EQU 14HMOV A, #0A1H
seconds EQU 15HLCALL WRI
weekday EQU 16H
RD_BYTE: MOV R3, #8
⑵ 校準寫時鐘數據SETB SDA
WR_NUMBER: LCALL STRD_BYTE1: NOP
MOV A, #0A0HSETB SCL
LCALL WRIMOV C, SDA
MOV A , #00HRLC A
LCALL WRICLR SCL
MOV A, #80HDJNZ R3, RD_BYTE1
LCALL WRI LCALL STOP
MOV A , secondsRET
LCALL WRI?&nb
sp;⑷ 寫一個字節數據
mov a , minutesWRI: MOV R3, #8
lcall wriWRI1: RLC A
MOV A , hoursMOV SDA , C
ANL A , #3FHSETB SCL
MOV hours , ANOP
lcall wriCLR SCL
MOV A , YEARDJNZ R3, WRI1
SWAP ASETB SDA
RL ASETB SCL
RL ANOP
ORL A , DATECLR SCL
lcall wriRET
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 SCLSETB SCL
CLR SDASETB SDA
CLR SCLNOP
RETRET
6 、結束語
本文闡述的PCF8583時鐘芯片,應用于單相電壓監測儀校驗裝置,該裝置是江西省2003年科技廳重點科技計劃課題,編號為10220221,已于2005年6月完成科技成果鑒定。本文在闡述了PCF8583的基本功能特點、寄存器結構的基礎上,給出了PCF8583的硬件接口電路、程序設計格式以及相應的接口軟件。本文作者創新點是采用了內帶恒溫槽、高穩定度的DS32KHz晶體振蕩器,給PCF8583時鐘芯片提供穩定的頻率信號,從而實現了標準時鐘。雖然采用GPS全球定位系統同樣可實現標準時鐘,但是它的價格高。因此,本文這種方案的應用是一個提高了產品性價比的成功例子,值得推廣。
責任編輯:gt
-
芯片
+關注
關注
456文章
51121瀏覽量
426009 -
測量系統
+關注
關注
2文章
540瀏覽量
41466 -
總線
+關注
關注
10文章
2899瀏覽量
88270
發布評論請先 登錄
相關推薦
評論