摘 要: 介紹了基于AT89S52單片機(jī)的一種新型多用戶(hù)單相電能表設(shè)計(jì)原理。給出了硬軟件設(shè)計(jì)及試驗(yàn)測(cè)試結(jié)果。經(jīng)測(cè)試與生產(chǎn)表明,該單相電能表設(shè)計(jì)技術(shù)新穎,具有計(jì)量準(zhǔn)確、智能卡預(yù)付費(fèi)、多用戶(hù)、用電管理靈活、低成本的特點(diǎn)。
??? 關(guān)鍵詞: 智能卡;預(yù)付費(fèi);多用戶(hù);單相電能表;AT89S52
?
?? 隨著電子技術(shù)應(yīng)用的快速發(fā)展,智能卡應(yīng)用越來(lái)越廣泛,校園內(nèi)一卡通管理應(yīng)用越來(lái)越多。為了解決學(xué)校洗衣房的自動(dòng)控制問(wèn)題,本文設(shè)計(jì)了基于AT89S52單片機(jī)的一種新型的多用戶(hù)電能表,用戶(hù)利用智能卡實(shí)現(xiàn)先買(mǎi)電后用電的預(yù)付費(fèi)方式,按照誰(shuí)插卡誰(shuí)用電的原則,插卡送電;用電結(jié)束后,再插卡取電,實(shí)現(xiàn)了一表多用戶(hù)的管理。該電能表采用AD7755單相電能計(jì)量芯片,電能計(jì)量精確,具有設(shè)計(jì)理念新穎、智能卡控制靈活、液晶顯示直觀、功耗低的特點(diǎn),特別適合于學(xué)校洗衣房等公共用電場(chǎng)所的多用戶(hù)用電計(jì)量與管理。
1 電能表的結(jié)構(gòu)與工作原理
多用戶(hù)電能表是基于AT89S52單片機(jī)研制而成的。AT89S52具有8 KB Flash閃速存儲(chǔ)器,三級(jí)加密程序存儲(chǔ)器,256 KB內(nèi)部RAM,32個(gè)可編程I/O 口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,1個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu)等。接口電路采用I2C總線結(jié)構(gòu),是一個(gè)比較適合于以開(kāi)關(guān)量信號(hào)輸入檢測(cè)的性?xún)r(jià)比較高的8位單片機(jī)。多用戶(hù)電能表結(jié)構(gòu)如圖1所示,包括單相電能計(jì)量電路AD7755、智能卡讀寫(xiě)控制電路、串行存儲(chǔ)與看門(mén)狗X25045電路、HT1621液晶顯示電路、繼電器控制、漏電檢測(cè)及掉電檢測(cè)6大模塊。電能表的工作原理是:把單相交流電壓和電流分別經(jīng)過(guò)分壓器和電流互感器轉(zhuǎn)換為小信號(hào)送到電能計(jì)量電路AD7755,由AT89S52對(duì)用電電能進(jìn)行計(jì)量和供電控制。利用智能卡實(shí)現(xiàn)先買(mǎi)電后用電的預(yù)付費(fèi)管理,通過(guò)插卡送電,再插卡取電,實(shí)現(xiàn)多用戶(hù)供電與斷電管理。該電能表可供數(shù)千戶(hù)用戶(hù)使用,當(dāng)用戶(hù)把智能卡插入電能表中時(shí),首先進(jìn)行智能卡密碼校驗(yàn),識(shí)別該用戶(hù)卡是否是本單位用戶(hù)卡,若是則進(jìn)行智能卡讀寫(xiě)和供電與斷電控制;若不是,則顯示不是本單位用戶(hù)卡。該表還具有液晶顯示清晰、直觀、停電檢測(cè)與存儲(chǔ)、余額不足預(yù)報(bào)警處理、漏電檢測(cè)和負(fù)荷控制等功能。
2 硬件電路設(shè)計(jì)
2.1 智能卡控制電路
智能卡采用SIEMENS公司的HD4442加密卡[1]。智能卡控制電路由HD4442卡座和保護(hù)電路構(gòu)成,如圖2所示(2個(gè)未使用的引腳略)。卡座的復(fù)位RST、時(shí)鐘CLK、數(shù)據(jù)線SD、卡輸入CIN引腳,分別與AT89S52的P20、P21、P22、P23引腳連接,AT89S52的P2端口內(nèi)部有上拉電阻,不需外加上拉電阻。卡座底端有一個(gè)微動(dòng)常開(kāi)開(kāi)關(guān),無(wú)卡插入開(kāi)關(guān)時(shí),斷開(kāi)CIN引腳為高電平,有卡插入開(kāi)關(guān)閉合時(shí),CIN引腳為低電平,AT89S52通過(guò)查詢(xún)P23引腳的電平判斷是否有智能卡。當(dāng)卡插入時(shí),智能卡的金屬卡片與卡座觸點(diǎn)緊密相連,AT89S52通過(guò)P21、P22實(shí)現(xiàn)對(duì)智能卡的讀寫(xiě)控制操作??ūWo(hù)電路由三極管Q1實(shí)現(xiàn),智能卡的電源VCC利用三極管Q1的輸出供電,這樣可以有效地防止卡座被人為插入片狀金屬物造成短路情況。為了可靠讀取卡中數(shù)據(jù)信息,當(dāng)檢測(cè)到有卡時(shí),可以延時(shí)10 ms去抖動(dòng),然后再進(jìn)行智能卡讀寫(xiě)。
?
2.2 電能計(jì)量
單相電能計(jì)量采用美國(guó)ADI公司的AD7755低功耗芯片實(shí)現(xiàn)[2-3]。AD7755內(nèi)部除了ADC和濾波、相乘電路外都采用了數(shù)字電路,有效地消除了尖脈沖等干擾信號(hào)。對(duì)單相交流電源回路中的電壓、電流信號(hào)采樣,計(jì)算出功率并積分將其轉(zhuǎn)換為電能脈沖輸出,輸出端CF的脈沖經(jīng)光電隔離器4N25后接入AT89S52的INT0中斷引腳,CPU進(jìn)行電能計(jì)量。利用S0和S1狀態(tài)組合調(diào)整CF輸出脈沖常數(shù)。電能與脈沖的關(guān)系為:W=M/C,式中W為電能(單位為千瓦時(shí)),M為脈沖累計(jì)個(gè)數(shù),C為電表脈沖常數(shù),選取C=3 200,每千瓦時(shí)為3 200個(gè)脈沖。
2.3 液晶顯示
? 采用HOLTEK公司HT1621的LCD顯示驅(qū)動(dòng)芯片,實(shí)現(xiàn)12位LCD數(shù)字顯示。HT1621是具有128段(32×4)、內(nèi)置存儲(chǔ)器的LCD驅(qū)動(dòng)器,片內(nèi)包括控制與計(jì)時(shí)電路、顯示RAM、LCD驅(qū)動(dòng)及偏置、監(jiān)視定時(shí)器等,具有體積小、功耗低的優(yōu)點(diǎn),非常適合應(yīng)用于電能表中。HT1621與AT89S52之間采用串行接口,只需3根線。AT89S52的P14、P15、P16引腳分別接到HT1621的CS片選、WR寫(xiě)允許、DATA串行數(shù)據(jù)3個(gè)引腳上,以控制刷新顯示RAM緩沖區(qū)。另外,應(yīng)用中,在VDD、VLCD之間接1個(gè)20 kΩ可調(diào)電阻,用來(lái)調(diào)節(jié)LCD顯示對(duì)比度,通過(guò)調(diào)節(jié)電阻,使得VDD=5 V、VLCD=4 V對(duì)比度較好。
2.4 串行存儲(chǔ)器
??? 串行存儲(chǔ)器采用XICOR公司的X25045低功耗芯片,它具有看門(mén)狗定時(shí)器WTD、電源電壓監(jiān)控和具有512 B的串行E2PROM存儲(chǔ)器3種功能。E2PROM的512 B分別用于存儲(chǔ)電能表的單位碼、電表編碼、累計(jì)電量、停電時(shí)的用戶(hù)信息等,可以暫存用戶(hù)信息達(dá)到128戶(hù),存儲(chǔ)次數(shù)可改寫(xiě)10萬(wàn)次,數(shù)據(jù)可保存100年。WTD設(shè)置為600 ms喂狗定時(shí)間隔,軟件編程寫(xiě)入X25045中。在程序運(yùn)行期間,WTD在定時(shí)間隔內(nèi)收到觸發(fā)信號(hào),以確保程序正常運(yùn)行。如果一端WTD在定時(shí)間隔內(nèi)沒(méi)有收到觸發(fā)信號(hào),X25045即通過(guò)RESET引腳輸出1個(gè)高電平信號(hào),觸發(fā)電能表復(fù)位來(lái)防止程序跑飛。X25045與AT89S52接口電路如圖2所示。
2.5 繼電器控制與漏電檢測(cè)
??? 利用AT89S52的P27引腳來(lái)實(shí)現(xiàn)繼電器控制,如圖2所示。P27經(jīng)過(guò)4N25光電隔離器直接控制繼電器,完成供電與斷電控制。漏電檢測(cè)采用交流電源的火線與零線穿過(guò)電流線圈取樣,經(jīng)過(guò)二極管全波整流和電容濾波后接入電壓比較器,比較器輸出接光電隔離器的1腳,檢測(cè)隔離器的4腳判斷其是否漏電。一旦檢測(cè)到漏電后,再次檢測(cè),2次確認(rèn)漏電立即斷電。掉電保護(hù)電路,用AT89S52的INT1中斷引腳檢測(cè)掉電信號(hào),當(dāng)突然發(fā)生斷電時(shí),INT1跳變?yōu)榈碗娖?,INT1中斷進(jìn)入掉電保護(hù)程序。在系統(tǒng)中,AD7755的脈沖輸出端、繼電器控制端、檢測(cè)漏電信號(hào)輸入端都使用了4N25光電隔離器。通過(guò)光的耦合作用傳遞電信號(hào),提高系統(tǒng)抗干擾的能力。
3 軟件程序設(shè)計(jì)
3.1 軟件程序資源分配
??? 智能卡多用戶(hù)單相電能表軟件程序包括:初始化及主程序、X25045讀寫(xiě)程序、智能卡讀寫(xiě)處理程序、中斷處理程序、定時(shí)器處理程序、HT1621顯示控制程序、電能計(jì)量與掉電處理程序、系統(tǒng)自檢與軟件抗干擾處理程序模塊。系統(tǒng)的中斷資源分配為:INT0中斷用于AD7755脈沖檢測(cè),INT1中斷用于掉電檢測(cè),定時(shí)器T0用于定時(shí)100 ms,T1用于定時(shí)1 s,T2未使用。
3.2 程序模塊的設(shè)計(jì)
電能表每次上電時(shí)都要進(jìn)行初始化,初始化程序包括對(duì)AT89S52單片機(jī)定時(shí)器、中斷等工作方式的設(shè)定,寫(xiě)入串行存儲(chǔ)芯片X25045的控制字以及串行液晶驅(qū)動(dòng)芯片HT1621的控制字。在子程序模塊中,INT0中斷處理程序完成電能計(jì)量、電量暫存儲(chǔ)于AT89S52的RAM存儲(chǔ)器中,然后累計(jì)電量每到1度時(shí)即寫(xiě)入到X25045相應(yīng)的地址中。電能表中電量分為用戶(hù)剩余電量和多用戶(hù)累計(jì)用電量,AT89S52根據(jù)用戶(hù)剩余電量余額大小進(jìn)行控制,當(dāng)余額不足時(shí),電能表LED指示燈閃爍,提醒用戶(hù)需要購(gòu)電。X25045讀寫(xiě)程序完成串行數(shù)據(jù)的寫(xiě)入與讀出。HT1621顯示控制程序?qū)崿F(xiàn)12位液晶顯示器輪流顯示用戶(hù)編碼和單位碼、剩余電量、累計(jì)用電量信息,輪流顯示間隔為5 s。
智能卡處理程序完成智能卡的密碼校驗(yàn)、讀寫(xiě)和卡的類(lèi)型判斷并進(jìn)行相應(yīng)操作。智能卡的類(lèi)型共分5種:清零卡用于電能表的出廠初始設(shè)置;設(shè)置卡用來(lái)設(shè)置電能表的單位碼和負(fù)荷門(mén)限;換表卡用來(lái)?yè)Q出表內(nèi)全部信息再送入新更換的信息到電能表中;抄表卡用來(lái)抄回表內(nèi)用戶(hù)信息和累計(jì)用電量,然后利用讀卡器傳送給上位計(jì)算機(jī)售電管理系統(tǒng);用戶(hù)卡用戶(hù)首先通過(guò)計(jì)算機(jī)售電管理系統(tǒng)進(jìn)行開(kāi)戶(hù)交費(fèi)充值,計(jì)算機(jī)售電管理系統(tǒng)根據(jù)電費(fèi)和水費(fèi)的總計(jì)價(jià),把充值金額換算成電能數(shù)值寫(xiě)于用戶(hù)卡中,然后用來(lái)向電能表送電與取電。前4種卡是用電管理部門(mén)使用,用戶(hù)僅持有用戶(hù)卡。當(dāng)前用戶(hù)正在用電時(shí),其他用戶(hù)插入用戶(hù)卡電能表指示有人正在用電,此時(shí)插入的用戶(hù)卡只取走本人的表內(nèi)信息,不影響他人正常使用。當(dāng)前無(wú)人用電時(shí),插入用戶(hù)卡則把卡中信息寫(xiě)入電能表中,并指示送入購(gòu)電量數(shù)值,拔出智能卡后立即供電;再次插入用戶(hù)卡則把電能表中本人信息寫(xiě)入卡中,并指示取走本人剩余電量,立即斷電。若當(dāng)前用戶(hù)正在用電突然停電時(shí),則電表進(jìn)入掉電處理程序,把當(dāng)前用戶(hù)剩余電量和累計(jì)用電量存入X25045中。若當(dāng)前用戶(hù)正在用電卻檢測(cè)到漏電時(shí),電能表存儲(chǔ)當(dāng)前信息后并立即斷電。若用電超負(fù)荷時(shí)則斷電。
系統(tǒng)自檢與軟件抗干擾處理程序用來(lái)完成數(shù)據(jù)校驗(yàn)與系統(tǒng)自診斷。電能表的工作過(guò)程主程序流程圖如圖3所示。
4 測(cè)試結(jié)果
??? 該電能表在淄博貝林電子有限公司進(jìn)行了誤差測(cè)試和運(yùn)行試驗(yàn),用1.0級(jí)標(biāo)準(zhǔn)電子式電能表校驗(yàn)臺(tái)作為標(biāo)準(zhǔn)表,多用戶(hù)單相電能表為被測(cè)表,電能表額定負(fù)荷為12 kW。貝林電子有限公司針對(duì)不同負(fù)荷的情況下進(jìn)行測(cè)試,限于篇幅僅列出負(fù)荷為1 kW、5 kW、12 kW時(shí)的實(shí)測(cè)數(shù)據(jù),如表1所示。測(cè)試結(jié)果表明,該智能卡電能表誤差小于1%,屬于1.0級(jí)標(biāo)準(zhǔn)。
??? 經(jīng)實(shí)驗(yàn),減小電能計(jì)量誤差方法有:(1)通過(guò)調(diào)節(jié)AD7755的取樣匹配電阻調(diào)整到精確值;(2)該匹配電阻阻值要求隨溫度變化阻值變化較小;(3)在電能計(jì)量過(guò)程中,當(dāng)送電和取電時(shí),計(jì)量電能的尾數(shù)部分不足0.01度的電能及余下的脈沖數(shù)值一并存取,避免了不足0.01度的電能丟失而造成累計(jì)電量有誤差。
??? 該電能表經(jīng)淄博貝林電子有限公司生產(chǎn)表明,設(shè)計(jì)技術(shù)新穎、計(jì)量準(zhǔn)確、智能卡控制靈活、液晶顯示直觀、功耗低。各項(xiàng)技術(shù)指標(biāo)均達(dá)到國(guó)家智能卡電能表的技術(shù)標(biāo)準(zhǔn),已經(jīng)在山東多所高校投入使用,具有廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1] 龐桂云.智能IC卡電能表設(shè)計(jì)[J].電測(cè)與儀表,2007(9).
[2] Anthony Collins.用AD7755設(shè)計(jì)的低成本電能表[J].電子技術(shù)應(yīng)用,2000,20(8).
[3] 彭衛(wèi)東.單相電子式電能表的竊電分析及防竊電措施[J].電測(cè)與儀表,2004(2).