基于RFID的預(yù)付費(fèi)電能表的研制
引言
本文引用地址:http://m.butianyuan.cn/article/21443.htm隨著人均用電量的大幅度增加,推動(dòng)了一戶一表制的使用。傳統(tǒng)的機(jī)械式電能表測量精度有限,會(huì)帶來較大誤差;當(dāng)用電量很大時(shí),誤差將讓人難以接受。本文介紹的電子式預(yù)付費(fèi)電能表是通過電能測量集成電路對(duì)電壓電流的取樣信號(hào)進(jìn)行處理,并輸出與有功功率成正比的頻率信號(hào);微處理器通過對(duì)脈沖計(jì)數(shù)來計(jì)算所消耗的電量。用戶將rfid卡片(預(yù)先在電力部門購買,卡片上充有定額的現(xiàn)金)靠近電能表,這時(shí)mcu通過射頻芯片讀取卡的金額,將其存儲(chǔ)到eeprom,同時(shí)此卡清零。電能表將通過聲音和lcd顯示來提醒用戶充值。
1 硬件電路總體設(shè)計(jì)
通過對(duì)ad7755的電能測量,與以低功耗著稱的msp430 mcu接口,再用ds1302作為時(shí)鐘,將數(shù)據(jù)儲(chǔ)存在24lc16 eeprom中。用工作于13.56 mhz的mfrc500芯片來實(shí)現(xiàn)預(yù)付費(fèi)卡片數(shù)據(jù)的讀取。硬件框圖如圖1所示。
1.1 電能計(jì)量模塊ad7755的特點(diǎn)和接口
ad7755是analog devices公司生產(chǎn)的電量計(jì)量集成電路,技術(shù)指標(biāo)超過了iec1036規(guī)定的準(zhǔn)確度要求。值得一提的是,國內(nèi)現(xiàn)有替代產(chǎn)品,上海貝嶺的bl0932可以很好地替代ad7755。這里的ad7755工作于這種方式:電流和電量通過其互感器送入各輸入通道。電壓和電流通道上額定值要設(shè)計(jì)在最大輸出電壓的半刻度上,使電表能滿足過壓和過流的要求。把cf頻率輸出端接到單片機(jī)的端口,設(shè)置scf=0,s1=0,s0=1,cf的最高輸出頻率為21.76 hz,mcu對(duì)輸入脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)值的大小即反映電能消耗的多少。本設(shè)計(jì)中,分流器電阻在340 μω條件下,表常數(shù)為3 200脈沖/kwh,即每kwh電產(chǎn)生3 200脈沖。從cf經(jīng)光耦輸出到mcu計(jì)數(shù)。
1.2 mcu模塊msp430msp430 mcu是ti公司的超低功耗16位單片機(jī);采用精簡指令集;具有豐富的片內(nèi)外設(shè),功能強(qiáng)大,并且具有很低的電能消耗,特別適用于三表設(shè)計(jì)。在此選用帶有l(wèi)cd驅(qū)動(dòng)和i/o豐富的msp430f435。msp430f435有80和100兩種封裝形式(在此選用小型化的80封裝)。mcu作為電路的核心模塊,要與各個(gè)外設(shè)打交道,不僅要負(fù)責(zé)計(jì)出ad7755所輸出的計(jì)量脈沖值,還要將其轉(zhuǎn)換為金額,并對(duì)各種外擴(kuò)的接口芯片進(jìn)行協(xié)調(diào)和處理。
1.3 時(shí)鐘模塊ds1302
要保證電能表時(shí)間的準(zhǔn)確性,時(shí)鐘電路還是必需的。在此選用dallas公司推出的高性能、低功耗、帶ram的實(shí)時(shí)時(shí)鐘芯片ds1302,可以對(duì)年、月、周、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償功能,工作電壓寬達(dá)2.5~5.5 v。ds1302采用三線接口與msp430單片機(jī)進(jìn)行通信。這部分主要是對(duì)ds1302的串行信號(hào)和時(shí)鐘的模擬以及掉電保護(hù)電路設(shè)計(jì)。
1.4 外擴(kuò)存儲(chǔ)器模塊24lc16
作為計(jì)量儀表需要有許多數(shù)據(jù)(如電流電壓的系數(shù)、分時(shí)計(jì)費(fèi)表、累計(jì)計(jì)費(fèi)表等)是變動(dòng)的或可以通過正常手段修改的,但不能因系統(tǒng)中的干擾而改寫,更不能因停電等事件而丟失。串行eeprom是當(dāng)前儀表設(shè)計(jì)中最合適的器件。這里選用microchip公司生產(chǎn)的24lc16來實(shí)現(xiàn)這種功能。24lc16是具有i2c接口的eeprom。其容量為2048×8位,分為8個(gè)頁面,每頁256字節(jié)。由于msp430f435不帶i2c接口,所以在此要對(duì)其進(jìn)行i2c總線模擬。其主要困難還是延時(shí)。
液晶模塊和鍵盤以及rs232通信相對(duì)簡單,各個(gè)模塊之間通過mcu來控制。
2 rfid實(shí)現(xiàn)預(yù)付費(fèi)的過程
rfid(radio frequency identification,射頻識(shí)別),是一種非接觸式的自動(dòng)識(shí)別技術(shù)。它通過射頻信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù),識(shí)別工作無須人工干預(yù),可工作于各種惡劣環(huán)境;操作快捷方便。根據(jù)頻段不同,rfid分為低頻和高頻系統(tǒng): 低頻近距離rfid系統(tǒng)主要集中在125 khz、13.56 mhz頻段;高頻遠(yuǎn)距離rfid系統(tǒng)主要集中在頻段(902 mhz~928 mhz)915 mhz、2.45 ghz、5.8 ghz。
本設(shè)計(jì)采用philips公司的13.56 mhz mfrc500 rfid芯片,mifare standard 1k智能卡的核心是philips公司的mifare1 ic s50系列微芯片。mifare 1 ic智能卡內(nèi)建有高速的cmos eeprom和mcu等??ㄆ薸c微芯片及一副高效率天線外,無任何其他元件??ㄆ瑹o電池,工作時(shí)的電源能量由卡片讀寫器天線發(fā)送電載波信號(hào)耦合到卡而產(chǎn)生電能,一般可達(dá)2 v以上,供卡片ic工作。mifare1射頻卡所具有的獨(dú)特的mifare rf非接觸接口標(biāo)準(zhǔn)已被制定為國家標(biāo)準(zhǔn)——iso/iec 14443 type a標(biāo)準(zhǔn)。
mfrc500采用總線時(shí)序和單片機(jī)接口。由于msp430總線不外擴(kuò),所以還要對(duì)其模擬總線時(shí)序,典型接法如圖2所示。
mfrc500采用寄存器寫數(shù)據(jù)和寫命令的形式來控制卡片數(shù)據(jù)的讀和寫。大概有以下步驟:① 請(qǐng)求之應(yīng)答。answer to request(atr) . mifare卡片處在天線范圍內(nèi)時(shí),讀寫器向卡發(fā)出request all(或request std)命令后,卡片atr啟動(dòng),將卡片block0的卡片類型(tagtype)號(hào)共2字節(jié)傳送到讀寫器,這樣建立第一步聯(lián)系??ㄆ祷?cái)?shù)據(jù)0004h?! 、? anticollision模塊。防止卡片重疊,當(dāng)多張卡片一起放入天線范圍時(shí),anticollision模塊的防重疊功能將被啟動(dòng)。mfrc500將與每張卡片進(jìn)行通信,取得每張卡的序列號(hào)。由于每張mifarel卡片都具有唯一的序列號(hào),不會(huì)相同,因此mfrc500可以通過序列號(hào)來區(qū)別,區(qū)分選中的卡片。anticollision模塊啟動(dòng)時(shí),卡片讀寫器將得到卡片的序列號(hào)(serial number)。序列號(hào)存儲(chǔ)在卡片的block0中,共有5字節(jié)(實(shí)際用的是4字節(jié),另一個(gè)字節(jié)為序列號(hào)的校驗(yàn)字節(jié))。返回值為卡片序列號(hào)?! 、? select application模塊,主要用于卡片選擇。當(dāng)卡片與讀寫器完成了上述2個(gè)步驟,讀寫器要對(duì)卡片讀寫操作,必須對(duì)卡片進(jìn)行“select”操作,使卡片真正被選中。被選中的卡片將卡片上存儲(chǔ)在block 0中的卡片容量“size”字節(jié)傳送到讀寫器。當(dāng)讀寫器收到這一字節(jié)后,將明確對(duì)卡進(jìn)行深入操作。讀寫器收到的字節(jié)可能是88h?! 、? authentication&access control模塊,認(rèn)證及存取模塊。在確認(rèn)了上述3個(gè)步驟后,確認(rèn)已經(jīng)選擇了一張卡后,在對(duì)卡進(jìn)行讀寫之前,必須對(duì)其進(jìn)行驗(yàn)證。如果匹配,則允許進(jìn)行下一步的read/write操作。mifare 1卡片有16個(gè)扇區(qū),每個(gè)扇區(qū)都可分別設(shè)置各自的密碼,互不干涉,采用三重認(rèn)證方式。
做完上述所要求的步驟就可以對(duì)卡片進(jìn)行讀寫了(以上步驟參看圖3便一目了然)。在這個(gè)電路中,天線的設(shè)計(jì)和寄存器操作是值得一提的,也是mfrc500的難點(diǎn)所在。mfrc500的這種卡片安全性很高,不大可能破解,所以用于電能表是很安全的。rfid讀卡程序順序如下:
char pcdreset()//復(fù)位 char pcdconfig()//配置 void init_reg()//初始化寄存器 char picc_reguest(unsigned char cmd ,unsigned char snr_num[])//發(fā)送請(qǐng)求到卡 char picc_selectcard(unsigned char cmd ,unsigned char snr_cardsnr[]);//選擇卡 char picc_anticoll(unsigned char cmd ,unsigned char snr_num[])//防沖突 char picc_auth(unsigned char data block,unsigned char data secret_key)//認(rèn)證 char picc_read(unsigned char data addr,unsigned char data dataum);//讀數(shù)據(jù) char picc_write(unsigned char data addr,unsigned char data content);//寫數(shù)據(jù)到卡
(詳細(xì)程序見本刊網(wǎng)站www.mesnet.com.cn——編者注)結(jié)語
完成了硬件的設(shè)計(jì)后,主要就是如何協(xié)調(diào)各個(gè)子程序的工作了,在這里采取中斷方式來處理各種模塊。本課題已經(jīng)完成第1版的設(shè)計(jì),且運(yùn)行良好。
電能表相關(guān)文章:電能表原理
評(píng)論