基于AT89C52的非接觸式IC卡預(yù)收費(fèi)電度表設(shè)計(jì)
用戶使用電量的計(jì)量手段的準(zhǔn)確程度取決于電互感器及電度表的精度?,F(xiàn)已出現(xiàn)了接觸式IC卡預(yù)收費(fèi)電度表,它使收費(fèi)從過去繁瑣的人工抄表、手工計(jì)價(jià)轉(zhuǎn)變?yōu)橛脩舫挚ㄙ忞?,?shí)現(xiàn)了電費(fèi)收繳管理自動(dòng)化。但它不能解決無源(卡中無電源)和免接觸等問題[2~8]。
非接觸式IC卡(又稱射頻卡)是國外近幾年發(fā)展起來的新技術(shù)[1],它成功地將射頻識(shí)別技術(shù)和IC卡技術(shù)結(jié)合起來,解決了無源和免接觸難題。射頻卡無需專門的供電電源;它與讀寫器間無機(jī)械接觸,避免了接觸故障;它的表面無裸露芯片,可防水,且不易產(chǎn)生靜電擊空及彎曲損壞等問題;射頻卡使用時(shí)沒有正反面??傊?,非接觸式IC卡具有可靠性高、使用方便、操作速度快等特點(diǎn)。本文采用非接觸式IC卡研制成功了智能預(yù)收費(fèi)電度表。
1 工作原理
1.1 非接觸式IC卡的工作原理
非接觸式IC卡系統(tǒng)由讀寫器和非接觸式IC卡兩部分組成。應(yīng)用系統(tǒng)通過讀寫器對卡進(jìn)行操作;讀卡器通過射頻信號同步進(jìn)行近距離通訊,并為卡上芯片提供能量;非接觸式IC卡響應(yīng)讀寫器的指令,并報(bào)告處理的結(jié)果。非接觸式IC卡通過連接IC芯片的線圈在特定交變磁場中耦合獲得高壓能量,非接觸式IC卡的讀寫器通過發(fā)射線圈發(fā)射交變強(qiáng)磁場,強(qiáng)予IC卡能量,通過磁場的斷、續(xù)編碼寫入數(shù)據(jù),并通過線圈感應(yīng)IC卡發(fā)生的磁場閱讀IC卡發(fā)來的數(shù)據(jù);IC卡通過交變磁場獲得能量,通過檢驗(yàn)磁場的數(shù)、續(xù)獲得讀寫頭寫來的數(shù)據(jù),并按設(shè)定的模式編碼、調(diào)制,向讀寫頭發(fā)出數(shù)據(jù)。
本系統(tǒng)采用上海華虹集成電路公司開發(fā)的SHC1701 RF讀寫模塊。它主要由射頻和SHC1501大規(guī)模集成電路構(gòu)成,共同安裝在PCB板上,同時(shí)安裝屏蔽罩,可完成讀寫器與IC卡之間的各種交互功能,包括調(diào)制/解調(diào)、加密/解密、認(rèn)證、讀寫、加/減等,并具有同微處理器的接口。其基本結(jié)構(gòu)如圖1所示。
非接觸式IC卡與讀寫器的通信內(nèi)容包括復(fù)位應(yīng)答、防沖突、選擇卡片、相互認(rèn)證、對數(shù)據(jù)塊的操作和中止。
1.2 預(yù)收費(fèi)電度表的工作原理
預(yù)收費(fèi)電度表可分為電子式和機(jī)電式兩種,它們的區(qū)別在于電能變換元件不同。前者將電壓、電流進(jìn)行A/D轉(zhuǎn)換,再將采樣值相乘并累計(jì),得到用戶消 耗的電度數(shù);后者借用原感應(yīng)式電度表的機(jī)芯,通過光電傳感器讀取轉(zhuǎn)盤數(shù)據(jù)數(shù)得到用戶消耗的電度數(shù)。為節(jié)省成本,選用機(jī)電式電度表。
本系統(tǒng)的工作原理為:
(1)用戶持IC卡到供電部門交款購電時(shí),供電部門把用戶的IC卡放在與PC機(jī)相連的讀寫器上,由寫卡程序在IC卡上寫入與用戶交款數(shù)相符的一定電度數(shù)。
(2)用戶把IC卡帶回家,將卡掠過家中預(yù)收費(fèi)電度表的讀定,卡中電度數(shù)被主機(jī)讀出,與預(yù)收費(fèi)電度表中來剩余的電度數(shù)相加。由于機(jī)內(nèi)采用備用電池,不怕掉電失去數(shù)據(jù)。
(3)電表表盤轉(zhuǎn)動(dòng)時(shí),由紅外發(fā)射接收管把表盤數(shù)變成電脈沖送入單片機(jī)。單片機(jī)記錄表盤的轉(zhuǎn)數(shù),當(dāng)轉(zhuǎn)數(shù)等于電表常數(shù)時(shí),通過單片機(jī)控制使內(nèi)存中的剩余電度數(shù)減去一度。
(4)單片機(jī)隨時(shí)監(jiān)測內(nèi)存中剩余電度數(shù)是否小于15度。如是,則點(diǎn)亮預(yù)告用電量將盡的發(fā)光二極管指示器,提示用戶持卡到供電部門重新購電。
(5)當(dāng)單片機(jī)發(fā)現(xiàn)用戶電表中剩余電量完全用完時(shí),控制繼電器切斷用戶供電電源。
(7)系統(tǒng)采用VB的通訊控件通過RS232與單片機(jī)進(jìn)行通訊。微機(jī)通過事先約定好的字符來實(shí)現(xiàn)對單片機(jī)的控制,如小區(qū)的管理中心定期通過 RS232串行通訊口讀取用戶電度表的使用電量和剩余電度數(shù),并制成數(shù)據(jù)庫加以保存。供電部門可通過Internet對小區(qū)采集的數(shù)據(jù)進(jìn)行訪問和管理,從 而實(shí)現(xiàn)了供電管理部門網(wǎng)絡(luò)化的管理手段。
(8)本裝置屬于二次儀表,精度主要取決于一次儀表。只要表盤轉(zhuǎn)動(dòng)正常,二次儀表不會(huì)引入誤差。
2 硬件電路
非接觸式IC卡 預(yù)收費(fèi)電度表的硬件電路結(jié)構(gòu)圖如圖2所示。圖中主控單元采用AT89C52單片機(jī),其內(nèi)有8K字節(jié)的快速擦寫存儲(chǔ)器(FLASH),無需外接程序存儲(chǔ)器 (EPROM)。外接電路主要包括:四位LED顯示電路、電表表盤檢測電路、控制供電的繼電器電路、振鈴控制電路、RS232串行通訊電路、看門狗復(fù)位電 路、電源控制電路以及控制非接觸式IC卡的SHC1701讀寫模塊。
SHC1701 RF模塊是IC卡讀寫器的核心單元,它由SHC1501專用電路和RF電路等組成,覆蓋了所有對非接觸式IC卡SHC1101的訪問操作。IC卡 讀寫模塊及顯示電路與單片機(jī)的接口如圖3所示。圖中采用4位共陽極的動(dòng)態(tài)數(shù)碼顯示管,顯示字符由單片機(jī)P0口送至鎖存器74LS374鎖存,再經(jīng)顯示驅(qū)動(dòng) 芯片ULN2003驅(qū)動(dòng)數(shù)據(jù)管顯示,P1.0~P1.3分別控制每一位的動(dòng)態(tài)顯示。顯示電路用顯示可供使用的電度數(shù)。當(dāng)讀卡發(fā)生錯(cuò)誤時(shí),將顯示錯(cuò)誤信息。 在供電部門存款時(shí),將顯示存入電卡中的電度數(shù)。
電表轉(zhuǎn)盤讀數(shù)頭(紅外發(fā)射接收管)產(chǎn)生的脈沖信號經(jīng)一個(gè)非門輸出到單片機(jī)的P1.4口,單片機(jī)實(shí)時(shí)對P1.4口進(jìn)行監(jiān)測。
RS232串行通訊電路采用MAX232芯片,實(shí)現(xiàn)單片機(jī)與微機(jī)的數(shù)據(jù)交換。微機(jī)主要采用VB的通訊控件通過RS232與單片機(jī)進(jìn)行通訊,通過事先約定好的字符對單片機(jī)實(shí)現(xiàn)控制。
看門狗電路由4538單穩(wěn)電路組成。初上電時(shí),CLR端為低電平,使輸出Q為低電平,從而使系統(tǒng)復(fù)位。正常工作時(shí),單片機(jī)在每個(gè)主程序循環(huán)時(shí)發(fā)出一個(gè)低電平脈沖,觸發(fā)單穩(wěn);當(dāng)程序受干擾跑飛時(shí),單穩(wěn)因得不到觸發(fā)脈沖而復(fù)位,此時(shí),輸出端Q=0,使系統(tǒng)復(fù)位。
振鈴控制電路由蜂鳴器、兩個(gè)三極管和電阻組成。當(dāng)單片機(jī)的P1.7端發(fā)出一個(gè)高電平時(shí),觸發(fā)蜂鳴器蜂鳴。為使系統(tǒng)在停電時(shí)也能正常工作,由兩組 電源給系統(tǒng)供電,一組是將220V/50Hz的市電經(jīng)變壓、整流、穩(wěn)壓得到5V直流電,另一組由12V/4A的可充電電流經(jīng)斬波、隱壓、穩(wěn)壓得到5V直流 電。一般由市電供電,并對可充電電池充電。市電停電時(shí)由電池供電,12V/4A的可充電電流能使系統(tǒng)連續(xù)工作24h以上。
3 軟件設(shè)計(jì)
本非接觸式IC卡 預(yù)收費(fèi)電度表的程序采用了模塊化的設(shè)計(jì),整個(gè)系統(tǒng)由用戶端電度表計(jì)費(fèi)程序和供電部門存未及管理程序兩部分組成。每部分程序又由單片機(jī)系統(tǒng)程序和VB用戶接 口程序兩部分組成,單片機(jī)程序和VB程序之間采用VB的通訊控件MSComm通過RS232進(jìn)行通訊,通訊協(xié)議使用基于ASCII碼的查詢命令、中斷收發(fā) 字符。微機(jī)通過事先約定好的字符對單片機(jī)實(shí)現(xiàn)控制,單片機(jī)通過判斷微機(jī)發(fā)來的不同字符,執(zhí)行不同的單片機(jī)子程序。
3.1 用戶端電度表計(jì)費(fèi)程序
3.1.1 單片機(jī)系統(tǒng)程序的主要功能
(1)讀取有效的非接觸式IC卡功能。對卡進(jìn)行防沖突、密碼認(rèn)證、卡號認(rèn)證等操作,并讀出卡中存儲(chǔ)的數(shù)據(jù),然后將卡清零、???。
(2)完成電度表的預(yù)收費(fèi)功能。將從IC卡中讀出的電度數(shù)與單片機(jī)內(nèi)存剩余的電度數(shù)相加,并存回內(nèi)存。
(3)顯示功能。系統(tǒng)周期性地掃描,動(dòng)態(tài)顯示機(jī)內(nèi)剩余的電度數(shù)。此外,當(dāng)讀寫IC卡發(fā)生錯(cuò)誤時(shí),顯示出錯(cuò)信號。
(5)電度計(jì)數(shù)功能。系統(tǒng)實(shí)時(shí)監(jiān)測電表轉(zhuǎn)盤讀數(shù)頭(紅外發(fā)射接收管)發(fā)來的脈沖信號,當(dāng)脈沖信號由高電平變?yōu)榈碗娖綍r(shí),計(jì)數(shù)器COUNT加1;而當(dāng)COUNT值等于電表常數(shù)(轉(zhuǎn)/度)時(shí),剩余電度數(shù)減1,用電量加1,同時(shí)COUNT清零。
(6)報(bào)警斷電功能。當(dāng)機(jī)內(nèi)剩余電度數(shù)小于15度時(shí),點(diǎn)亮預(yù)告用電量將盡的發(fā)光二極管指示器,提示用戶持卡到供電部門重新購電。而當(dāng)用戶電表中剩余電量完全用完時(shí),控制繼電器切斷用戶供電電源。用戶只有再次存入電度數(shù)后,才能繼續(xù)供電。
單片機(jī)系統(tǒng)程序由主監(jiān)控程序、IC卡處理子程序、電度計(jì)數(shù)子程序、串行中斷服務(wù)子程序等組成,其框圖分別見圖4(a)、(b)、(c)、(d)。
3.1.2 VB用戶接口程序的主要功能
(1)顯示。根據(jù)輸入的用戶編號,顯示相應(yīng)的用戶信息。
(2)采集。將用戶編號通過通訊控件發(fā)送給單片機(jī),單片機(jī)認(rèn)證用戶編號后,返回該用戶的用電量和剩余電度數(shù)。
(3)寫入。將采集來的數(shù)據(jù)。加上用戶編號和日期,一并寫入數(shù)據(jù)庫,以供查詢。
(4)查看。查看當(dāng)用各用戶的用電量情況及剩余電度數(shù);查看所有的用電情況。
3.2 供電部門存款及管理程序
3.2.1 單片機(jī)系統(tǒng)程序的主要功能
(1)系統(tǒng)初始化設(shè)置。設(shè)置寄存器地址、中斷源入口、加載IC卡認(rèn)證密碼以及設(shè)置串行口、定時(shí)器0和定時(shí)器1的工作模式等。
(2)接收微機(jī)發(fā)來的控制字符。執(zhí)行串行中斷服務(wù)子程序,如控制字符為R則執(zhí)行對IC卡的詢卡、防沖突、選卡、認(rèn)證等操作,并返回給微機(jī)卡號;如控制字符為W則將用戶購買的電度數(shù)寫入IC卡,再讀出寫入的電度數(shù),然后???。
(3)顯示功能。顯示IC卡中存入的電度數(shù),當(dāng)對IC卡操作過程中有任何錯(cuò)誤時(shí),將顯示錯(cuò)誤信息,提示用戶。
程序由主程序程序和串行中斷服務(wù)子程序等組成,它們的框圖見圖5(a)、(b)。
(1)IC卡 存款功能。用戶持卡到供電部門存款,工作人員將放在讀寫器上,按“讀卡”按鈕,微機(jī)發(fā)送字符“R”給單片機(jī),單片機(jī)執(zhí)行相應(yīng)的中斷處理后返回卡號。系統(tǒng)根 據(jù)返回的卡號顯示對應(yīng)的用戶信息,確認(rèn)無誤后,輸入用戶交納的金額,系統(tǒng)自動(dòng)轉(zhuǎn)化成電度數(shù)。按下“存款”按扭,將電度數(shù)存入IC卡,同時(shí)將存款的相關(guān)信息寫入數(shù)據(jù)庫,以供查詢。
(2)查詢功能。查詢用戶信息、IC卡信息以及用戶的用電情況,可以根據(jù)輸入的用戶編號或電卡號進(jìn)行有選擇地查詢。
(3)維護(hù)功能。對數(shù)據(jù)庫的維護(hù)包括添加新的記錄、刪除不需要的記錄以及對現(xiàn)有記錄的更新。本系統(tǒng)所使用的數(shù)據(jù)庫由MSAccess建立,通過VB的數(shù)據(jù)對象控件與用戶界面關(guān)聯(lián),對數(shù)據(jù)的所有操作都實(shí)時(shí)地更新所關(guān)聯(lián)的數(shù)據(jù)庫。
本文將非接觸式IC卡技術(shù)與計(jì)算機(jī)技術(shù)相結(jié)合,研制出多功能電量計(jì)量收費(fèi)裝置。該系統(tǒng)實(shí)現(xiàn)了用電收費(fèi)的電子化,改變了先用電后收費(fèi)的不合理狀況,促進(jìn)了用電計(jì)量、收費(fèi)的科學(xué)化管理。該裝置利用了老式機(jī)械表的功能和結(jié)構(gòu),降低了改造的成本,適于推廣使用。
評論