電能計(jì)量裝置的無線抄表系統(tǒng)
關(guān)鍵詞:無線抄表系統(tǒng) AT90S2313 單片機(jī) 電能計(jì)量
引言
電能表自動(dòng)抄表簡(jiǎn)稱ARM(Automatic Reading Meter),是供電部門將安裝在用戶處的電能表所記錄的用電量等數(shù)據(jù)通過遙測(cè)、傳輸和計(jì)算機(jī)系統(tǒng)匯總到營(yíng)業(yè)部門,代替人工抄表及一連串后續(xù)工作。
隨著經(jīng)濟(jì)體制改革的深入,電能計(jì)量、電費(fèi)核算及收繳的及時(shí)性和準(zhǔn)確性已成為用電企業(yè)的重要課題;而目前我國(guó)電能數(shù)據(jù)的采集基本上為手工抄表,需要抄表人員走家串戶,每月或每?jī)稍鲁淮?,再通過微機(jī)或手工制作的電費(fèi)單催繳用戶電纜,存在著錯(cuò)抄、漏抄、估抄等問題。自動(dòng)抄表系統(tǒng)的研制與應(yīng)用是解決上述問題的有效途徑之一,而無線抄表系統(tǒng)則是自動(dòng)抄表系統(tǒng)中 種較優(yōu)的方式。該系統(tǒng)的實(shí)現(xiàn)是邁向配電自動(dòng)化的第一步,并有助于提高電力系統(tǒng)用電管理的水平。
一、系統(tǒng)硬件構(gòu)成
這套電能計(jì)量裝置無線抄表系統(tǒng)包括2塊SA68D11無線數(shù)傳模塊和1片ATMEL公司生產(chǎn)的AVR系列AT90S2313單片機(jī)。模塊有來實(shí)現(xiàn)無線數(shù)據(jù)傳遞;單片機(jī)用來進(jìn)行數(shù)據(jù)采集作一些相應(yīng)的處理。系統(tǒng)硬件框圖如圖1所示。
圖1中,8路脈沖輸入信號(hào)來自8個(gè)單相脈沖電能表。工作時(shí),單片機(jī)只需定時(shí)測(cè)量輸入的脈沖,再根據(jù)脈沖數(shù)與用電量之間的比例關(guān)系即可得到用戶的用電量。
圖1中虛線框內(nèi)的單片機(jī)數(shù)據(jù)采集部分是整個(gè)系統(tǒng)的核心部分,通過軟件的編輯可實(shí)現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)保存、數(shù)據(jù)發(fā)送和控制命令的接收以及其他數(shù)據(jù)掉電保護(hù)等重要功能。本系統(tǒng)采用的AT90S2313單片機(jī)構(gòu)成圖1中虛線框內(nèi)所有功能模塊。它內(nèi)含2KB的FLASH存儲(chǔ)器;128字節(jié)片內(nèi)EEPROM、128字節(jié)片內(nèi)RAM和片內(nèi)模擬比較器;8位和16位可預(yù)分頻定時(shí)器各一個(gè);中斷源11個(gè)(中斷優(yōu)先級(jí)已定);全雙工的UART以及可編程的WatchDog定時(shí)器等。在本系統(tǒng)中,單片機(jī)的資源分配為:T1作為時(shí)器,實(shí)現(xiàn)單片機(jī)對(duì)脈沖量的定時(shí)采集。模擬比較器檢測(cè)系統(tǒng)交換電源工作是否正常。一旦發(fā)生掉電情況,模擬比較器中斷標(biāo)志位就被置1,在主程序中不斷檢測(cè)這一位;一旦檢測(cè)到該位為1,則立即將數(shù)據(jù)寫入EEPROM中保存。從掉電到保存時(shí)間很短,在這段時(shí)間內(nèi)靠濾波大電容儲(chǔ)能供電。在儲(chǔ)能放完之前,將保存數(shù)據(jù)工作完成即可。EEPROM存儲(chǔ)器用來保存單片機(jī)所測(cè)的脈沖數(shù)和單片機(jī)的地址等一些重要裝飾。Watch Dog定時(shí)器防止單片機(jī)“死機(jī)”或“跑飛”。串行口UART實(shí)現(xiàn)單片機(jī)發(fā)射/接收模塊之間的數(shù)據(jù)交換。
在本系統(tǒng)中,數(shù)據(jù)的無線傳遞是通過無線數(shù)傳模塊實(shí)現(xiàn)的。為了使模塊與單片機(jī)、計(jì)算機(jī)之間的數(shù)據(jù)傳送正確,必須嚴(yán)格按照計(jì)算機(jī)(單片機(jī))與模塊間的傳輸格式進(jìn)行數(shù)據(jù)傳送。模塊的輸出電平為TTL電平,它可與AT90S2313單片機(jī)直接連接。與計(jì)算機(jī)連接時(shí)間需接一個(gè)RS-232C電閏轉(zhuǎn)換芯片。模塊與單片機(jī)、計(jì)算機(jī)之間的通信速率為9600b/s,采用1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)停止位的格式,與AT90S2313單片機(jī)的通信接口方式完全相同。計(jì)算機(jī)和模塊之間的數(shù)據(jù)傳輸格式為:
標(biāo)志字節(jié)D7H | 控制字節(jié)M | 數(shù)據(jù)或參數(shù)字節(jié) |
第一個(gè)字節(jié)為標(biāo)志字節(jié),其值為十六進(jìn)制數(shù)D7,作用是標(biāo)志數(shù)據(jù)傳送的開始。第二字節(jié)為控制字節(jié),當(dāng)?shù)诙止?jié)小于等于48(30H)時(shí),其值代表傳送數(shù)據(jù)長(zhǎng)度。后面字節(jié)為數(shù)據(jù),當(dāng)?shù)诙止?jié)大于48(30H)時(shí)為控制字,后面不再跟數(shù)據(jù)和參數(shù)。模塊傳給計(jì)算機(jī)時(shí)帶CRC校驗(yàn)字節(jié)防誤措施。
二、系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的軟件主要包括二大部分:一是數(shù)據(jù)采集部分,是以AT90S2313單片機(jī)與核心的匯編語(yǔ)言的設(shè)計(jì);二是PC機(jī)通信軟件的設(shè)計(jì)部分。這里要介紹AT90S2313單片機(jī)的匯編語(yǔ)言設(shè)計(jì)問好。其軟件設(shè)計(jì)思想是采用模塊化編程,即系統(tǒng)的總體功能由各子程序完成。主要的子程序有定時(shí)器中斷、數(shù)據(jù)算是和接收發(fā)送中斷服務(wù)程序等。
1.單片機(jī)初始化部分
主程序部分首先對(duì)單片機(jī)進(jìn)行初始化,其包括堆棧指針設(shè)置;端口的工作方式設(shè)置;定時(shí)器的預(yù)分頻系數(shù)和初值設(shè)置;串行通信的控制寄存器和波特率寄存器的設(shè)置;看門狗定時(shí)器的周期及初值設(shè)置;單片機(jī)的地址設(shè)置;開全局中斷等,其流程圖如圖2所法。初始化子程序如下:
start:
ldi tmp,$d9 ;設(shè)置堆棧指針
out spl,tmp
clr tmp ;設(shè)置B口、D口為輸入且不帶上拉
out ddrb,tmp
out ddrd,tmp
out portb,tmp
ldi tmp,2 ;設(shè)置定時(shí)器分頻系數(shù)及定時(shí)器賦初值
out timsk,tmp ;定時(shí)周期為6.4ms,開定時(shí)器中斷
ldi tmp,timer T
out tccr0,tmp
ldi tmp,$d8 ;允許接收中斷和發(fā)送中斷
out ucr,tmp
ldi tmp,baud ;設(shè)置波特率為9600baud
out ubrr,tmp
ldi tmp,watchT ;設(shè)置看門狗定時(shí)器的周期及初值
out wdtcr,tmp
ldi tmp,$0a ;設(shè)置模塊比較器工作方式
out acsr,tmp
ldi r26,address ;給單片機(jī)賦初始地址
ldi tmp,$2d
st x+,tmp
ldi tmp,$d0
st x+,tmp
ldi tmp,$77
st x+,tmp
ldi tmp,$07
st x+,tmp
ldi tmp,$02
st x,tmp
ldi r26,figa0 ;清所有標(biāo)志位
clr tmp
st x+,tmp
st x,tmp
sei ;開全局中斷
2.定時(shí)器中斷服務(wù)程序
定時(shí)器中斷服務(wù)程序主要是測(cè)量各電表的脈沖數(shù)。由于電表輸出脈沖寬度為80ms,其誤差為20%,即最窄脈沖寬度約為64ms,最寬脈沖寬度約為96ms。因而本系統(tǒng)設(shè)計(jì)的定時(shí)時(shí)間為6.4ms,為了抗以免發(fā)生脈沖誤計(jì),采用了數(shù)字濾波的方法,要求脈沖輸入的引腳電平連續(xù)保持10次為高電平時(shí)才計(jì)1次脈沖,避免了窄脈沖的干擾引起的誤計(jì)。
3.串行通信接收和發(fā)送中斷服務(wù)程序
串行通信的接收中斷和發(fā)送中斷服務(wù)程序主要完成單片機(jī)和上位機(jī)之間的數(shù)據(jù)交換。其中接收中斷服務(wù)程序主要是接收從上位機(jī)傳來的各種命令,發(fā)送中斷服務(wù)程序是單片機(jī)對(duì)上位機(jī)的各種命令的響應(yīng),如上位機(jī)叫單片機(jī)發(fā)送地址等。接收和發(fā)送中斷服務(wù)程序流程圖如圖3和圖4所示。
4.數(shù)據(jù)處理子程序
數(shù)據(jù)處理子程序是軟件設(shè)計(jì)中的重要部分。它通過對(duì)串行通信接收到的數(shù)據(jù)進(jìn)行分析、比較、判斷并轉(zhuǎn)入相應(yīng)的子程序。由于要實(shí)現(xiàn)上位機(jī)對(duì)單片機(jī)的控制,自行規(guī)定了一些控制命令。為了不與模塊和計(jì)算機(jī)(單片機(jī))之間的控制命令傳輸格式相沖突,自行規(guī)定的一些控制命令都采用數(shù)據(jù)傳送的方式傳送,有別于命令傳送方式,因此開始字符小于30H。
5.片內(nèi)EEPROM操作子程序
片內(nèi)EEPROM操作子程序包括對(duì)EEPROM的讀操作和寫操作。其中讀操作是在主程序初始化后進(jìn)行的,寫操作是在掉電時(shí)由模擬比較器產(chǎn)生的標(biāo)志被主程序查詢到而進(jìn)入的。這一部分內(nèi)容雖然不多,但對(duì)于數(shù)據(jù)的保存和恢復(fù)非常重要,因?yàn)橄到y(tǒng)一旦開始工作后,它所記錄的數(shù)據(jù)是絕對(duì)不能丟失的。
EEWrite_seq: ;對(duì)EEPROM的寫操作
.def EEwtmp =r24
.def EEdwr_s=r18
.def counter=r22
sbic EECR,EEWE
rimp EEWrite_seq
out EEAR,Eewtmp
out EEDR,Eedwr_s
sbi EECR,EEMWE
sbi EECR,EEWE
in Eewtmp,EEAR
inc Eewtmp
ret
EERead_seq; ;對(duì)EEPROM的讀操作
.def EErtmp=r24
.def EEdrd_s=r0
sbic EECR,EEWE
rjmp EERead_seq
out EEAR,Eertmp
sbi EECR,EERE
in EEdrd_s,EEDR
in EErtmp,EEAR
inc EErtmp
ret
值得注意的是,AT90S2313單片機(jī)的片內(nèi)EEPROM被分隔為一些連續(xù)的單元。對(duì)EEPROM的讀寫都必須從每個(gè)單元的初始地址開始,否則不能正確完成對(duì)EEPROM的讀寫。因此,在主程序中要進(jìn)行EEPROM的讀寫操作時(shí),都是從EEPROM的00地址單元開始。
三、系統(tǒng)可靠性設(shè)計(jì)
無線抄表系統(tǒng)必須在電力系統(tǒng)中準(zhǔn)確、可靠地長(zhǎng)期運(yùn)行??煽啃允窍到y(tǒng)成功的關(guān)鍵,因此本系統(tǒng)設(shè)計(jì)時(shí)著重考慮了以下方面的可靠性設(shè)計(jì):
(1)數(shù)據(jù)傳輸采用CRC校驗(yàn),可驗(yàn)出傳輸中的絕大部分錯(cuò)誤;
(2)數(shù)傳模塊采用金屬封裝,抗干擾能力強(qiáng);
(3)AT90S2313單片機(jī)片內(nèi)帶EEPROM,掉電時(shí)可以保護(hù)數(shù)據(jù);
(4)AT90S2313單片機(jī)片內(nèi)帶看門狗電路,防止系統(tǒng)鎖死。
(5)單片機(jī)所有功能模塊均在芯片內(nèi),其總線不出芯片,不需外擴(kuò)任何器件,提高了系統(tǒng)可靠性。
結(jié)論
本系統(tǒng)最大特點(diǎn)是充分應(yīng)用了單片機(jī)的硬件資源,成本低、體積小、攜帶方便,能方便、快捷、準(zhǔn)確、可靠地進(jìn)行自動(dòng)抄表。目前,本系統(tǒng)的設(shè)計(jì)和樣機(jī)調(diào)試已經(jīng)完成,可以預(yù)計(jì)它的運(yùn)算將為合理用電提供高效、科學(xué)的管理手段,為電力部分的電能表管理網(wǎng)絡(luò)化、抄表自動(dòng)化提供一種可選擇的有效方法。
電能表相關(guān)文章:電能表原理
評(píng)論