DS12887在數(shù)據(jù)采集與監(jiān)控中的應(yīng)用
0 引言
低壓配電數(shù)據(jù)采集與監(jiān)控系統(tǒng)由現(xiàn)場變壓器遠程數(shù)據(jù)采集終端和監(jiān)控中心兩大部分組成。現(xiàn)場變壓器遠程數(shù)據(jù)采集終端安裝在變壓器現(xiàn)場,通過RS485通訊接口采集多功能電能表的數(shù)據(jù),對變壓器的電氣參數(shù)進行數(shù)據(jù)處理并存儲數(shù)據(jù),再通過RS232通訊接口控制GPRS通訊模塊實現(xiàn)遠程無線數(shù)據(jù)的采樣監(jiān)測,監(jiān)控中心的服務(wù)器主機上,安裝了低壓配電網(wǎng)臺區(qū)實時監(jiān)測軟件,通過GPRS Modem即可與數(shù)據(jù)采集終端進行通信。數(shù)據(jù)采集終端采用了定時、實時、故障三種數(shù)據(jù)傳輸模式,其中的定時和實時數(shù)據(jù)采集模式主要是通過實時時鐘DS12887來實現(xiàn)的。對實時數(shù)據(jù)采集模式是利用DS12887的分鐘寄存器的刷新來采集多功能電能表的當(dāng)前數(shù)據(jù);對定時數(shù)據(jù)采集模式是利用DS12887的分鐘寄存器是否為零來判斷每小時是否來到,每天采集存貯24組數(shù)據(jù),產(chǎn)生一個數(shù)據(jù)包。數(shù)據(jù)采集終端根據(jù)時、分是否為零,判斷每天是否來到,從而給新的一天數(shù)據(jù)存貯單元清零;數(shù)據(jù)采集終端根據(jù)DS12887日期的變化,存貯7天的數(shù)據(jù)。上述數(shù)據(jù)采集功能的實現(xiàn)與DS12887的時鐘和日歷分不開的,時鐘和日歷貫穿于整個數(shù)據(jù)采集中,起著至關(guān)重要的作用。具有定時精度高、掉電保護、功能強大、使用靈活等優(yōu)點,因此實時時鐘DS12887日益受到用戶的青睞。
1 DS12887的結(jié)構(gòu)和功能特點
DS12887美國DALLAS公司推出的8位并行接口實時時鐘/日歷芯片,利用CMOS技術(shù)制成。采用24引腳雙列直插式封裝,是由振蕩電路、分頻電路、周期中斷/方波選擇電路、14字節(jié)時鐘和控制單元、114字節(jié)的用戶非易失性RAM、十進制/二制累加器、總線接口電路、內(nèi)部鋰電池等部分組成?;贒S12887的內(nèi)部電路結(jié)構(gòu),其主要功能特點如下:
⑴ 內(nèi)置一個鋰電池,斷電后能運行十年以上而不丟失數(shù)據(jù)。
⑵ 具有計秒、分、時、日、月、年、星期信息,并有閏年補償功能。
⑶ 可編程用二進制碼或BCD碼來表示時間、日歷和鬧鐘。
⑷ 可編程設(shè)置時間是12小時制或24小時制。
⑸ 具有Motorola和intel兩種總線時序選擇方式。
⑹ 具有128字節(jié)RAM,其中10個時鐘寄存器,4個控制寄存器和114字節(jié)的通用RAM單元,所有RAM單元都具有掉電保護功能,可用作非易失性RAM。
⑺ 可編程方波信號輸出。
⑻ 具有定鬧中斷、周期性中斷、時鐘更新周期結(jié)束中斷,三個中斷源可分別由軟件屏蔽。
2 DS12887的4個控制寄存器的使用方法
2.1 寄存器A(除D7位只為讀外,其它位均可讀寫),如表1所列。
表1 寄存器A (table 1 a register)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
UIP | DV2 | DV1 | DV0 | RS3 | RS2 | RS1 | RS0 |
UIP:刷新標志。 UIP=1,表示正在進行刷新; UIP=0,表示刷新在244μs內(nèi)不會發(fā)生,此時可對RAM區(qū)進行讀寫操作。
DV2 DV1 DV0=010時,打開晶振,并允許時鐘開始計時。
RS3 RS2 RS1 RS0用于選擇周期中斷或輸出方波頻率,當(dāng)其分別為0111、1000、1001、1010、1011、1100、1101、1110、1111時,對應(yīng)輸出頻率為512Hz、256Hz、128Hz、64Hz、32Hz、16Hz、8Hz、4Hz、2Hz。當(dāng)RS3 RS2 RS1 RS0=0000時,禁止周期中斷和方波輸出。
2.2 寄存器B(可讀寫),如表2所列。
表2 寄存器B(table 2 b register)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
SET | PIE | AIE | UIE | SQWE | DM | 24/12 | DSE | |
SET=0,每秒計數(shù)一次;SET=1,禁止刷新。
PIE、AIE、VIE位均為1時,分別表示允許周期中斷、報警中斷和時鐘數(shù)據(jù)刷新結(jié)束中斷;
均為0時,表示禁止中斷產(chǎn)生。
SQWE=1,SQW端輸出由RS3~RS0位所設(shè)定的方波頻率信號;SQWE=0,SQW端保持低電平。
DM=1,日歷時鐘選用二進制形式;DM=0,選用BCD碼形式。
24/12=1,時間模式選用24小時制;24/12=0,選用12小時制。
DSE=1,允許夏時制發(fā)生;DSE=0,禁止。
2.3 寄存器C(只讀),如表3所列。
表3 寄存器C(table 3 c register)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
IRQF | PF | AF | UF | 0 | 0 | 0 | 0 |
PF、AF、UF位均為1時,分別表示有周期中斷、報警中斷和刷新結(jié)束中斷產(chǎn)生;均為0時,表示無中斷產(chǎn)生。
IRQF:中斷請求標志位。IRQF=PF×PIE+AF×AIE+UF×UIE
IRQF=0,無中斷請求產(chǎn)生;IRQF=1,有中斷請求產(chǎn)生。IRQ端輸出低電平,讀寄存器C或
復(fù)位之后其所有標志位均被清零。
2.4 寄存器D(只讀), 如表4所列。
表4 寄存器D(table 4 d register)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
VRT | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
VRT=0,表示DS12887芯片內(nèi)部鋰電池已耗盡,時間和RAM區(qū)信息無效;
VRT=1,信息有效。
3 硬件接口電路
DS12887在數(shù)據(jù)采集終端應(yīng)用中的結(jié)構(gòu)框圖如圖1所示。使用W77E58帶雙串口的高性能單片機,其中一個串口采用MAX487來實現(xiàn)與多功能電能表的RS485接口,獲取低壓配電參數(shù)的數(shù)據(jù);另一個串口采用MAX232來實現(xiàn)與GPRS Modem通訊,實現(xiàn)遠程數(shù)據(jù)的收和發(fā)。
AT28C256 EEPROM實現(xiàn)對歷史數(shù)據(jù)的存貯。8255并行擴展接口用于功能擴展備用以及實現(xiàn)正常工作指示、備用電源指示、正在數(shù)據(jù)采集指示、正在遠程通訊指示、事件報警指示。
圖1 數(shù)據(jù)采集終端的硬件結(jié)構(gòu)框圖
4 接口軟件
下面為DS12887時鐘芯片和77E58單片機的接口軟件,采用匯編語言編寫。低壓配電數(shù)據(jù)采集與監(jiān)控系統(tǒng)使用DS12887具有以下四種功能:一是以時間來存貯歷史數(shù)據(jù),如存貯某年、某月、某日開始的歷史數(shù)據(jù),可以連續(xù)保存7天的數(shù)據(jù),第8天則把最前面的一天的數(shù)據(jù)覆蓋掉;二是以小時的變化來實現(xiàn)定點數(shù)據(jù)采集;三是以分鐘的變化來實現(xiàn)當(dāng)前數(shù)據(jù)采集;四是以某日是否變化來判斷新的一天是否來到。如某日變化則表明新的一天來到,則對新的一天中AT28C256對應(yīng)的RAM單元初始化。
4.1 有關(guān)的常量定義和RAM單元注釋
;;;;;; 13H ……當(dāng)前分鐘值(BCD碼)
SZ_addm equ 0f700H ;秒寄存器地址
SZ_addf equ 0f702H ;分寄存器地址
SZ_adds equ 0f704H ;時寄存器地址
SZ_addr equ 0f707H ;日寄存器地址
SZ_addy equ 0f708H ;月寄存器地址
SZ_addn equ 0f709H ;年寄存器地址
SZ_adda equ 0f70aH ;A寄存器地址
SZ_addb equ 0f70bH ;B寄存器地址
SZ_addc equ 0f70cH ;C寄存器地址
SZ_addd equ 0f70dH ;D寄存器地址
4.2 初始化時鐘芯片或時鐘設(shè)置
在低壓配電數(shù)據(jù)采集與監(jiān)控系統(tǒng)中,具有通過GPRS Modem遠程通訊對DS12887進行初始化設(shè)置時鐘功能或讀時鐘等功能。單片機接收到的年、月、日、時、分、秒數(shù)據(jù)分別存于21H、22H、23H、24H、25H、26H RAM內(nèi)存單元中。
初始化時鐘設(shè)置子程序:
MOV DPTR,#SZ_addb ;寄存器B的SET置“1”,禁止芯片內(nèi)部的刷新周期
MOV A ,#82H ;
MOVX @DPTR,A ;
MOV DPTR,#SZ_addn ;寫入年寄存器的數(shù)據(jù)
MOV A , 21H ;
MOVX @DPTR,A ;
MOV DPTR,#SZ_addy ;寫入月寄存器的數(shù)據(jù)
MOV A , 22H ;
MOVX @DPTR,A ;
MOV DPTR,#SZ_addr ;寫入日寄存器的數(shù)據(jù)
MOV A , 23H ;
MOVX @DPTR,A ;
MOV DPTR,#SZ_adds ;寫入時寄存器的數(shù)據(jù)
MOV A , 24H ;
MOVX @DPTR,A ;
MOV DPTR,#SZ_addf ;寫入分寄存器的數(shù)據(jù)
MOV A , 25H ;
MOVX @DPTR,A ;
MOV DPTR,#SZ_addm ;寫入秒寄存器的數(shù)據(jù)
MOV A , 26H ;
MOVX @DPTR,A ;
MOV DPTR,#SZ_adda ;初始化寄存器A,打開晶振開始計時,禁止中斷,
MOV A , #20H ;禁止方波輸出。
MOVX @DPTR,A ;
MOV DPTR,#SZ_addb ;寄存器B的SET置“0”,
MOV A , #02H ;BCD碼格式,24小時制,允許時間刷新。
MOVX @DPTR,A ;
RET ;
4.3 從DS12887中讀取數(shù)據(jù)
讀數(shù)據(jù)子程序: MOV DPTR,#SZ_adda ;讀出寄存器A中的內(nèi)容
MOVX A, @DPTR ;查詢VIP位,判斷芯片是否處于更新周期
JB ACC.7 ,XIN ;
MOV DPTR,#SZ_addf ;讀分寄存器的值
MOVX A, @DPTR ;
CJNE A, 13H,SAMPLE ;判斷時間分寄存器是否更新,即1分鐘到否?
SJMP XIN ;未到
SAMPLE: 。。。。。。 ;到了,開始采集多功能表的數(shù)據(jù)
5 結(jié)束語
本文從實時時鐘DS12887結(jié)構(gòu)原理入手,講述了該芯片的功能特點,使用方法。重點以DS12887與單片機77E58的硬件接口電路和軟件編程兩個方面為例,講述了DS12887在低壓配電數(shù)據(jù)采集與監(jiān)控系統(tǒng)中是如何實現(xiàn)了定時和當(dāng)前數(shù)據(jù)采集功能的, 它應(yīng)用于江西省2002年省教育廳科技項目計劃課題《單相袖珍式多功能現(xiàn)場校驗儀》中, 課題編號為贛教科技[2002]01號1901,基金項目經(jīng)費為1萬元,已于2005年6月完成科技成果鑒定。本文的創(chuàng)新點是巧妙地利用了DS12887時鐘芯片的功能,以實時運行的時間為準則, 實現(xiàn)了瞬時、定點、一天、歷史數(shù)據(jù)的采集與存儲,并且通過GPRS網(wǎng)絡(luò)實現(xiàn)了遠程監(jiān)測。該系統(tǒng)經(jīng)供電局安裝運行證明,運行可靠,它能實現(xiàn)遠程抄收電廠變壓器電能表的各種數(shù)據(jù),值得推廣。
參考文獻
1 鄭仲明.利用DS12887設(shè)計的利率顯示屏[J].國外電子元器件,2002,10:17-19。
2 張松波,張東升.實時時鐘12887在嵌入式系統(tǒng)中的應(yīng)用[J]. 電測與儀表,2004,8:54-56。
3 李 濤,徐建政.基于GPRS無線技術(shù)的配電變壓器監(jiān)測系統(tǒng)[J].電測與儀表,2004,6:55-57。
4朱杰斌,余紅粒,潘自強.時鐘芯片在電壓監(jiān)測儀校驗裝置中的應(yīng)用[J]. 微計算機信息,
2006年12月上旬:288-290。
電能表相關(guān)文章:電能表原理
評論