關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于AT89C52的非接觸式IC卡預(yù)收費電度表設(shè)計

基于AT89C52的非接觸式IC卡預(yù)收費電度表設(shè)計

作者: 時間:2017-06-08 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://2s4d.com/article/201706/352488.htm

用戶使用電量的計量手段的準(zhǔn)確程度取決于電互感器及電度表的精度?,F(xiàn)已出現(xiàn)了接觸式IC卡預(yù)收費電度表,它使收費從過去繁瑣的人工抄表、手工計價轉(zhuǎn)變?yōu)橛脩舫挚ㄙ忞?,實現(xiàn)了電費收繳管理自動化。但它不能解決無源(卡中無電源)和免接觸等問題[2~8]。

  非接觸式IC卡(又稱射頻卡)是國外近幾年發(fā)展起來的新技術(shù)[1],它成功地將射頻識別技術(shù)和IC卡技術(shù)結(jié)合起來,解決了無源和免接觸難題。射頻卡無需專門的供電電源;它與讀寫器間無機械接觸,避免了接觸故障;它的表面無裸露芯片,可防水,且不易產(chǎn)生靜電擊空及彎曲損壞等問題;射頻卡使用時沒有正反面??傊?,非接觸式IC卡具有可靠性高、使用方便、操作速度快等特點。本文采用非接觸式IC卡研制成功了智能預(yù)收費電度表。

  1 工作原理

  1.1 非接觸式IC卡的工作原理

  非接觸式IC卡系統(tǒng)由讀寫器和非接觸式IC卡兩部分組成。應(yīng)用系統(tǒng)通過讀寫器對卡進(jìn)行操作;讀卡器通過射頻信號同步進(jìn)行近距離通訊,并為卡上芯片提供能量;非接觸式IC卡響應(yīng)讀寫器的指令,并報告處理的結(jié)果。非接觸式IC卡通過連接IC芯片的線圈在特定交變磁場中耦合獲得高壓能量,非接觸式IC卡的讀寫器通過發(fā)射線圈發(fā)射交變強磁場,強予IC卡能量,通過磁場的斷、續(xù)編碼寫入數(shù)據(jù),并通過線圈感應(yīng)IC卡發(fā)生的磁場閱讀IC卡發(fā)來的數(shù)據(jù);IC卡通過交變磁場獲得能量,通過檢驗磁場的數(shù)、續(xù)獲得讀寫頭寫來的數(shù)據(jù),并按設(shè)定的模式編碼、調(diào)制,向讀寫頭發(fā)出數(shù)據(jù)。

  本系統(tǒng)采用上海華虹集成電路公司開發(fā)的SHC1701 RF讀寫模塊。它主要由射頻和SHC1501大規(guī)模集成電路構(gòu)成,共同安裝在PCB板上,同時安裝屏蔽罩,可完成讀寫器與IC卡之間的各種交互功能,包括調(diào)制/解調(diào)、加密/解密、認(rèn)證、讀寫、加/減等,并具有同微處理器的接口。其基本結(jié)構(gòu)如圖1所示。

  

  非接觸式IC卡與讀寫器的通信內(nèi)容包括復(fù)位應(yīng)答、防沖突、選擇卡片、相互認(rèn)證、對數(shù)據(jù)塊的操作和中止。

  1.2 預(yù)收費電度表的工作原理

  預(yù)收費電度表可分為電子式和機電式兩種,它們的區(qū)別在于電能變換元件不同。前者將電壓、電流進(jìn)行A/D轉(zhuǎn)換,再將采樣值相乘并累計,得到用戶消 耗的電度數(shù);后者借用原感應(yīng)式電度表的機芯,通過光電傳感器讀取轉(zhuǎn)盤數(shù)據(jù)數(shù)得到用戶消耗的電度數(shù)。為節(jié)省成本,選用機電式電度表。

  本系統(tǒng)的工作原理為:

  (1)用戶持IC卡到供電部門交款購電時,供電部門把用戶的IC卡放在與PC機相連的讀寫器上,由寫卡程序在IC卡上寫入與用戶交款數(shù)相符的一定電度數(shù)。

  (2)用戶把IC卡帶回家,將卡掠過家中預(yù)收費電度表的讀定,卡中電度數(shù)被主機讀出,與預(yù)收費電度表中來剩余的電度數(shù)相加。由于機內(nèi)采用備用電池,不怕掉電失去數(shù)據(jù)。

  (3)電表表盤轉(zhuǎn)動時,由紅外發(fā)射接收管把表盤數(shù)變成電脈沖送入單片機。單片機記錄表盤的轉(zhuǎn)數(shù),當(dāng)轉(zhuǎn)數(shù)等于電表常數(shù)時,通過單片機控制使內(nèi)存中的剩余電度數(shù)減去一度。

  (4)單片機隨時監(jiān)測內(nèi)存中剩余電度數(shù)是否小于15度。如是,則點亮預(yù)告用電量將盡的發(fā)光二極管指示器,提示用戶持卡到供電部門重新購電。

  (5)當(dāng)單片機發(fā)現(xiàn)用戶電表中剩余電量完全用完時,控制繼電器切斷用戶供電電源。

  (7)系統(tǒng)采用VB的通訊控件通過RS232與單片機進(jìn)行通訊。微機通過事先約定好的字符來實現(xiàn)對單片機的控制,如小區(qū)的管理中心定期通過 RS232串行通訊口讀取用戶電度表的使用電量和剩余電度數(shù),并制成數(shù)據(jù)庫加以保存。供電部門可通過Internet對小區(qū)采集的數(shù)據(jù)進(jìn)行訪問和管理,從 而實現(xiàn)了供電管理部門網(wǎng)絡(luò)化的管理手段。

  (8)本裝置屬于二次儀表,精度主要取決于一次儀表。只要表盤轉(zhuǎn)動正常,二次儀表不會引入誤差。

  2 硬件電路

  非接觸式IC卡 預(yù)收費電度表的硬件電路結(jié)構(gòu)圖如圖2所示。圖中主控單元采用AT89C52單片機,其內(nèi)有8K字節(jié)的快速擦寫存儲器(FLASH),無需外接程序存儲器 (EPROM)。外接電路主要包括:四位LED顯示電路、電表表盤檢測電路、控制供電的繼電器電路、振鈴控制電路、RS232串行通訊電路、看門狗復(fù)位電 路、電源控制電路以及控制非接觸式IC卡的SHC1701讀寫模塊。

  

  SHC1701 RF模塊是IC卡讀寫器的核心單元,它由SHC1501專用電路和RF電路等組成,覆蓋了所有對非接觸式IC卡SHC1101的訪問操作。IC卡 讀寫模塊及顯示電路與單片機的接口如圖3所示。圖中采用4位共陽極的動態(tài)數(shù)碼顯示管,顯示字符由單片機P0口送至鎖存器74LS374鎖存,再經(jīng)顯示驅(qū)動 芯片ULN2003驅(qū)動數(shù)據(jù)管顯示,P1.0~P1.3分別控制每一位的動態(tài)顯示。顯示電路用顯示可供使用的電度數(shù)。當(dāng)讀卡發(fā)生錯誤時,將顯示錯誤信息。 在供電部門存款時,將顯示存入電卡中的電度數(shù)。

  

  電表轉(zhuǎn)盤讀數(shù)頭(紅外發(fā)射接收管)產(chǎn)生的脈沖信號經(jīng)一個非門輸出到單片機的P1.4口,單片機實時對P1.4口進(jìn)行監(jiān)測。

  RS232串行通訊電路采用MAX232芯片,實現(xiàn)單片機與微機的數(shù)據(jù)交換。微機主要采用VB的通訊控件通過RS232與單片機進(jìn)行通訊,通過事先約定好的字符對單片機實現(xiàn)控制。

  看門狗電路由4538單穩(wěn)電路組成。初上電時,CLR端為低電平,使輸出Q為低電平,從而使系統(tǒng)復(fù)位。正常工作時,單片機在每個主程序循環(huán)時發(fā)出一個低電平脈沖,觸發(fā)單穩(wěn);當(dāng)程序受干擾跑飛時,單穩(wěn)因得不到觸發(fā)脈沖而復(fù)位,此時,輸出端Q=0,使系統(tǒng)復(fù)位。

  振鈴控制電路由蜂鳴器、兩個三極管和電阻組成。當(dāng)單片機的P1.7端發(fā)出一個高電平時,觸發(fā)蜂鳴器蜂鳴。為使系統(tǒng)在停電時也能正常工作,由兩組 電源給系統(tǒng)供電,一組是將220V/50Hz的市電經(jīng)變壓、整流、穩(wěn)壓得到5V直流電,另一組由12V/4A的可充電電流經(jīng)斬波、隱壓、穩(wěn)壓得到5V直流 電。一般由市電供電,并對可充電電池充電。市電停電時由電池供電,12V/4A的可充電電流能使系統(tǒng)連續(xù)工作24h以上。

  3 軟件設(shè)計

  本非接觸式IC卡 預(yù)收費電度表的程序采用了模塊化的設(shè)計,整個系統(tǒng)由用戶端電度表計費程序和供電部門存未及管理程序兩部分組成。每部分程序又由單片機系統(tǒng)程序和VB用戶接 口程序兩部分組成,單片機程序和VB程序之間采用VB的通訊控件MSComm通過RS232進(jìn)行通訊,通訊協(xié)議使用基于ASCII碼的查詢命令、中斷收發(fā) 字符。微機通過事先約定好的字符對單片機實現(xiàn)控制,單片機通過判斷微機發(fā)來的不同字符,執(zhí)行不同的單片機子程序。

  3.1 用戶端電度表計費程序

  3.1.1 單片機系統(tǒng)程序的主要功能

  (1)讀取有效的非接觸式IC卡功能。對卡進(jìn)行防沖突、密碼認(rèn)證、卡號認(rèn)證等操作,并讀出卡中存儲的數(shù)據(jù),然后將卡清零、停卡。

  (2)完成電度表的預(yù)收費功能。將從IC卡中讀出的電度數(shù)與單片機內(nèi)存剩余的電度數(shù)相加,并存回內(nèi)存。

  (3)顯示功能。系統(tǒng)周期性地掃描,動態(tài)顯示機內(nèi)剩余的電度數(shù)。此外,當(dāng)讀寫IC卡發(fā)生錯誤時,顯示出錯信號。

  (5)電度計數(shù)功能。系統(tǒng)實時監(jiān)測電表轉(zhuǎn)盤讀數(shù)頭(紅外發(fā)射接收管)發(fā)來的脈沖信號,當(dāng)脈沖信號由高電平變?yōu)榈碗娖綍r,計數(shù)器COUNT加1;而當(dāng)COUNT值等于電表常數(shù)(轉(zhuǎn)/度)時,剩余電度數(shù)減1,用電量加1,同時COUNT清零。

  (6)報警斷電功能。當(dāng)機內(nèi)剩余電度數(shù)小于15度時,點亮預(yù)告用電量將盡的發(fā)光二極管指示器,提示用戶持卡到供電部門重新購電。而當(dāng)用戶電表中剩余電量完全用完時,控制繼電器切斷用戶供電電源。用戶只有再次存入電度數(shù)后,才能繼續(xù)供電。

  單片機系統(tǒng)程序由主監(jiān)控程序、IC卡處理子程序、電度計數(shù)子程序、串行中斷服務(wù)子程序等組成,其框圖分別見圖4(a)、(b)、(c)、(d)。

  

  

  3.1.2 VB用戶接口程序的主要功能

  (1)顯示。根據(jù)輸入的用戶編號,顯示相應(yīng)的用戶信息。

  (2)采集。將用戶編號通過通訊控件發(fā)送給單片機,單片機認(rèn)證用戶編號后,返回該用戶的用電量和剩余電度數(shù)。

  (3)寫入。將采集來的數(shù)據(jù)。加上用戶編號和日期,一并寫入數(shù)據(jù)庫,以供查詢。

  (4)查看。查看當(dāng)用各用戶的用電量情況及剩余電度數(shù);查看所有的用電情況。

  3.2 供電部門存款及管理程序

  3.2.1 單片機系統(tǒng)程序的主要功能

  (1)系統(tǒng)初始化設(shè)置。設(shè)置寄存器地址、中斷源入口、加載IC卡認(rèn)證密碼以及設(shè)置串行口、定時器0和定時器1的工作模式等。

  (2)接收微機發(fā)來的控制字符。執(zhí)行串行中斷服務(wù)子程序,如控制字符為R則執(zhí)行對IC卡的詢卡、防沖突、選卡、認(rèn)證等操作,并返回給微機卡號;如控制字符為W則將用戶購買的電度數(shù)寫入IC卡,再讀出寫入的電度數(shù),然后停卡。

  (3)顯示功能。顯示IC卡中存入的電度數(shù),當(dāng)對IC卡操作過程中有任何錯誤時,將顯示錯誤信息,提示用戶。

  程序由主程序程序和串行中斷服務(wù)子程序等組成,它們的框圖見圖5(a)、(b)。

  

  (1)IC卡 存款功能。用戶持卡到供電部門存款,工作人員將放在讀寫器上,按“讀卡”按鈕,微機發(fā)送字符“R”給單片機,單片機執(zhí)行相應(yīng)的中斷處理后返回卡號。系統(tǒng)根 據(jù)返回的卡號顯示對應(yīng)的用戶信息,確認(rèn)無誤后,輸入用戶交納的金額,系統(tǒng)自動轉(zhuǎn)化成電度數(shù)。按下“存款”按扭,將電度數(shù)存入IC卡,同時將存款的相關(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ù)的所有操作都實時地更新所關(guān)聯(lián)的數(shù)據(jù)庫。

  本文將非接觸式IC卡技術(shù)與計算機技術(shù)相結(jié)合,研制出多功能電量計量收費裝置。該系統(tǒng)實現(xiàn)了用電收費的電子化,改變了先用電后收費的不合理狀況,促進(jìn)了用電計量、收費的科學(xué)化管理。該裝置利用了老式機械表的功能和結(jié)構(gòu),降低了改造的成本,適于推廣使用。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉