基于RFID的預(yù)付費電能表的研制
文章出處:http://srpd123.com 作者:單片機與嵌入式系統(tǒng)應(yīng)用 人氣: 發(fā)表時間:2011年10月30日
摘要
運用保密性好且物美價廉的RFID技術(shù)實現(xiàn)預(yù)付費電能表;著重介紹RFID本身及其與電能表的接口。作為核心部分的電能表,采用全數(shù)字電路來實現(xiàn),有效地提高了測量精度;同時采用可視化的液晶屏和交互式的鍵盤等,改善了人機界面。RFID和電能表的集合,改變了現(xiàn)在的電表付款方式,可以提高電力部門的工作效率,安全、可靠;是當(dāng)前電子式電能表的一種發(fā)展方向。
引言
隨著人均用電量的大幅度增加,推動了一戶一表制的使用。傳統(tǒng)的機械式電能表測量精度有限,會帶來較大誤差;當(dāng)用電量很大時,誤差將讓人難以接受。本文介紹的電子式預(yù)付費電能表是通過電能測量集成電路對電壓電流的取樣信號進(jìn)行處理,并輸出與有功功率成正比的頻率信號;微處理器通過對脈沖計數(shù)來計算所消耗的電量。用戶將RFID卡片(預(yù)先在電力部門購買,卡片上充有定額的現(xiàn)金)靠近電能表,這時MCU通過射頻芯片讀取卡的金額,將其存儲到EEPROM,同時此卡清零。電能表將通過聲音和LCD顯示來提醒用戶充值。
1 硬件電路總體設(shè)計
通過對AD7755的電能測量,與以低功耗著稱的MSP430 MCU接口,再用DS1302作為時鐘,將數(shù)據(jù)儲存在24LC16 EEPROM中。用工作于13.56 MHz的MFRC500芯片來實現(xiàn)預(yù)付費卡片數(shù)據(jù)的讀取。硬件框圖如圖1所示。
1.1 電能計量模塊AD7755的特點和接口
AD7755是Analog Devices公司生產(chǎn)的電量計量集成電路,技術(shù)指標(biāo)超過了IEC1036規(guī)定的準(zhǔn)確度要求。值得一提的是,國內(nèi)現(xiàn)有替代產(chǎn)品,上海貝嶺的BL0932可以很好地替代AD7755。這里的AD7755工作于這種方式:電流和電量通過其互感器送入各輸入通道。電壓和電流通道上額定值要設(shè)計在最大輸出電壓的半刻度上,使電表能滿足過壓和過流的要求。把CF頻率輸出端接到單片機的端口,設(shè)置SCF=0,S1=0,S0=1,CF的最高輸出頻率為21.76 Hz,MCU對輸入脈沖進(jìn)行計數(shù),計數(shù)值的大小即反映電能消耗的多少。本設(shè)計中,分流器電阻在340 μΩ條件下,表常數(shù)為3 200脈沖/kWh,即每kWh電產(chǎn)生3 200脈沖。從CF經(jīng)光耦輸出到MCU計數(shù)。
圖1 硬件框圖
1.2 MCU模塊MSP430
MSP430 MCU是TI公司的超低功耗16位單片機;采用精簡指令集;具有豐富的片內(nèi)外設(shè),功能強大,并且具有很低的電能消耗,特別適用于三表設(shè)計。在此選用帶有 LCD驅(qū)動和I/O豐富的MSP430F435。MSP430F435有80和100兩種封裝形式(在此選用小型化的80封裝)。MCU作為電路的核心模塊,要與各個外設(shè)打交道,不僅要負(fù)責(zé)計出AD7755所輸出的計量脈沖值,還要將其轉(zhuǎn)換為金額,并對各種外擴(kuò)的接口芯片進(jìn)行協(xié)調(diào)和處理。
1.3 時鐘模塊DS1302
要保證電能表時間的準(zhǔn)確性,時鐘電路還是必需的。在此選用Dallas公司推出的高性能、低功耗、帶RAM的實時時鐘芯片DS1302,可以對年、月、周、日、時、分、秒進(jìn)行計時,且具有閏年補償功能,工作電壓寬達(dá)2.5~5.5 V。DS1302采用三線接口與MSP430單片機進(jìn)行通信。這部分主要是對DS1302的串行信號和時鐘的模擬以及掉電保護(hù)電路設(shè)計。
1.4 外擴(kuò)存儲器模塊24LC16
作為計量儀表需要有許多數(shù)據(jù)(如電流電壓的系數(shù)、分時計費表、累計計費表等)是變動的或可以通過正常手段修改的,但不能因系統(tǒng)中的干擾而改寫,更不能因停電等事件而丟失。串行EEPROM是當(dāng)前儀表設(shè)計中最合適的器件。這里選用Microchip公司生產(chǎn)的24LC16來實現(xiàn)這種功能。 24LC16是具有I2C接口的EEPROM。其容量為2048×8位,分為8個頁面,每頁256字節(jié)。由于MSP430F435不帶I2C接口,所以在此要對其進(jìn)行I2C總線模擬。其主要困難還是延時。
液晶模塊和鍵盤以及RS232通信相對簡單,各個模塊之間通過MCU來控制。
2 RFID實現(xiàn)預(yù)付費的過程
RFID(Radio Frequency Identification,射頻識別),是一種非接觸式的自動識別技術(shù)。它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù),識別工作無須人工干預(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è)計采用Philips公司的13.56 MHz MFRC500 RFID芯片,Mifare Standard 1k智能卡的核心是Philips公司的Mifare1 IC S50系列微芯片。Mifare 1 IC智能卡內(nèi)建有高速的CMOS EEPROM和MCU等??ㄆ薎C微芯片及一副高效率天線外,無任何其他元件??ㄆ瑹o電池,工作時的電源能量由卡片讀寫器天線發(fā)送電載波信號耦合到卡而產(chǎn)生電能,一般可達(dá)2 V以上,供卡片IC工作。Mifare1射頻卡所具有的獨特的Mifare RF非接觸接口標(biāo)準(zhǔn)已被制定為國家標(biāo)準(zhǔn)——ISO/IEC 14443 TYPE A標(biāo)準(zhǔn)。
MFRC500采用總線時序和單片機接口。由于MSP430總線不外擴(kuò),所以還要對其模擬總線時序,典型接法如圖2所示。
圖2 MFRC500接口圖
MFRC500采用寄存器寫數(shù)據(jù)和寫命令的形式來控制卡片數(shù)據(jù)的讀和寫。大概有以下步驟:
?、?請求之應(yīng)答。Answer to Request(ATR) . Mifare卡片處在天線范圍內(nèi)時,讀寫器向卡發(fā)出REQUEST all(或REQUEST std)命令后,卡片ATR啟動,將卡片Block0的卡片類型(TagType)號共2字節(jié)傳送到讀寫器,這樣建立第一步聯(lián)系??ㄆ祷財?shù)據(jù) 0004H。
?、?AntiCollision模塊。防止卡片重疊,當(dāng)多張卡片一起放入天線范圍時,AntiCollision模塊的防重疊功能將被啟動。MFRC500將與每張卡片進(jìn)行通信,取得每張卡的序列號。由于每張Mifarel卡片都具有唯一的序列號,不會相同,因此MFRC500可以通過序列號來區(qū)別,區(qū)分選中的卡片。AntiCollision模塊啟動時,卡片讀寫器將得到卡片的序列號(Serial Number)。序列號存儲在卡片的Block0中,共有5字節(jié)(實際用的是4字節(jié),另一個字節(jié)為序列號的校驗字節(jié))。返回值為卡片序列號。
③ Select Application模塊,主要用于卡片選擇。當(dāng)卡片與讀寫器完成了上述2個步驟,讀寫器要對卡片讀寫操作,必須對卡片進(jìn)行"Select"操作,使卡片真正被選中。被選中的卡片將卡片上存儲在Block 0中的卡片容量"Size"字節(jié)傳送到讀寫器。當(dāng)讀寫器收到這一字節(jié)后,將明確對卡進(jìn)行深入操作。讀寫器收到的字節(jié)可能是88H。
?、?nbsp; Authentication&Access Control模塊,認(rèn)證及存取模塊。在確認(rèn)了上述3個步驟后,確認(rèn)已經(jīng)選擇了一張卡后,在對卡進(jìn)行讀寫之前,必須對其進(jìn)行驗證。如果匹配,則允許進(jìn)行下一步的Read/Write操作。Mifare 1卡片有16個扇區(qū),每個扇區(qū)都可分別設(shè)置各自的密碼,互不干涉,采用三重認(rèn)證方式。
做完上述所要求的步驟就可以對卡片進(jìn)行讀寫了(以上步驟參看圖3便一目了然)。在這個電路中,天線的設(shè)計和寄存器操作是值得一提的,也是 MFRC500的難點所在。MFRC500的這種卡片安全性很高,不大可能破解,所以用于電能表是很安全的。RFID讀卡程序順序如下:
char PcdReset()//復(fù)位
char PcdConfig()//配置
void Init_reg()//初始化寄存器
char Picc_Reguest(unsigned char cmd ,unsigned char snr_num[])//發(fā)送請求到卡
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ù)到卡
圖3 RFID程序操作流程
結(jié)語
完成了硬件的設(shè)計后,主要就是如何協(xié)調(diào)各個子程序的工作了,在這里采取中斷方式來處理各種模塊。本課題已經(jīng)完成第1版的設(shè)計,且運行良好。