摘? 要: 給出了一種以PIC單片機(jī)為核心的智能IC卡燃?xì)獗?/a>電控系統(tǒng)的設(shè)計(jì),介紹了該系統(tǒng)的控制模式、電控系統(tǒng)的硬件電路構(gòu)成,、系統(tǒng)軟件設(shè)計(jì)及其實(shí)際應(yīng)用情況,。
關(guān)鍵詞: PIC單片機(jī)?? 智能IC卡燃?xì)獗?? 電控系統(tǒng)
?
智能IC卡燃?xì)獗硎且环N根據(jù)用戶IC卡購氣量實(shí)現(xiàn)自動計(jì)量計(jì)費(fèi),、自動控制用氣的民用高技術(shù)產(chǎn)品,具有傳統(tǒng)人工抄表收費(fèi)式燃?xì)獗頍o可比擬的優(yōu)越性,。當(dāng)前,隨著國家“金卡工程”的深入開展和開發(fā)大西北“西氣東輸”計(jì)劃的正式啟動,智能IC卡燃?xì)獗硪殉尸F(xiàn)出十分廣闊的應(yīng)用前景。本文介紹了該產(chǎn)品的核心技術(shù)——基于PIC單片機(jī)的智能IC卡燃?xì)獗黼娍叵到y(tǒng)設(shè)計(jì),論述了智能IC卡燃?xì)獗淼目刂颇J?、電控系統(tǒng)的硬件電路構(gòu)成,、系統(tǒng)軟件設(shè)計(jì)及其實(shí)際應(yīng)用情況。
1 智能IC卡燃?xì)獗砜刂颇J?/STRONG>
智能IC卡燃?xì)獗硎窃诔R?guī)家用模式燃?xì)獗眢w上安裝智能測控系統(tǒng)而構(gòu)成的,該測控系統(tǒng)主要由IC卡,、計(jì)量電路,、電控系統(tǒng)以及氣路控制閥等組成,系統(tǒng)結(jié)構(gòu)如圖1所示。
?
當(dāng)用戶將含有購氣量(以加密數(shù)值形式表示)的IC卡插入表內(nèi)時(shí),控制閥在電控系統(tǒng)控制下開通氣路,。用戶每用一個(gè)計(jì)量單位,計(jì)量電路便發(fā)出一組等周期計(jì)量脈沖序列,該脈沖序列如經(jīng)電控系統(tǒng)判定為有效,即可從已購氣量中減去一個(gè)計(jì)量單位,并通過液晶模塊顯示表內(nèi)剩余氣量,。當(dāng)剩余氣量為零時(shí),控制閥自動關(guān)閉,氣路即被切斷,此時(shí)用戶須重新持卡購氣。在正常情況下控制閥處于接通態(tài),只有當(dāng)特殊事件發(fā)生時(shí)控制閥才從接通態(tài)變?yōu)殛P(guān)閉態(tài),。圖2示出了三種事件狀態(tài)下控制閥的通斷情況,。
2 系統(tǒng)電路構(gòu)成
智能IC卡燃?xì)獗黼娍叵到y(tǒng)電路由低功耗單片機(jī)、EEPROM存儲電路,、電源電壓監(jiān)測電路,、電池保護(hù)電路、液晶顯示及聲光報(bào)警電路,、IC卡讀寫控制電路等組成,下面結(jié)合圖3所示的電路原理圖作進(jìn)一步介紹,。
2.1? PIC單片機(jī)及電路組成
PIC單片機(jī)是Microchip公司近年來推出的新型單片機(jī)系列。它采用先進(jìn)的RISC技術(shù),具有低價(jià)格,、低功耗,、高性能、全靜態(tài),、易使用等特點(diǎn),目前已在儀器儀表,、工業(yè)自動化、計(jì)算機(jī)通訊以及民用產(chǎn)品等領(lǐng)域得到廣泛應(yīng)用,。本設(shè)計(jì)中采用了PIC系列中的主流型號PIC16C57作為電路系統(tǒng)的控制核心,。該單片機(jī)在靜態(tài)時(shí)處于低功耗睡眠狀態(tài),功耗小于3μA。當(dāng)接收到計(jì)量脈沖或有IC卡操作時(shí),單片機(jī)由睡眠態(tài)轉(zhuǎn)為工作狀態(tài),。在本系統(tǒng)中,單片機(jī)通過C5,、C6口以I2C 總線方式對IC卡進(jìn)行讀寫操作,以模擬I2C 方式與存儲器IC2進(jìn)行數(shù)據(jù)通訊,并通過B2、B4口分別獲取實(shí)時(shí)電池電壓及電源保護(hù)信號,通過輸出口B6、B7控制電控閥動作,通過輸出口A0,、A1驅(qū)動漢字液晶模塊,。
2.2 EEPROM存儲電路
EEPROM存儲器IC2采用24LC02B芯片,該芯片可以在無電源狀態(tài)下長期可靠存儲系統(tǒng)內(nèi)重要數(shù)據(jù),工作壽命可達(dá)106次。當(dāng)用戶卡插入系統(tǒng)時(shí),卡內(nèi)密碼,、卡號,、購氣量及用戶用氣記錄等關(guān)鍵數(shù)據(jù)將以密文形式存儲在24LC02B芯片中。
2.3 電壓監(jiān)測電路
系統(tǒng)采用S80751芯片進(jìn)行電壓實(shí)時(shí)監(jiān)測,當(dāng)系統(tǒng)電池電壓在正常值時(shí),,S80751的輸出1腳為高電平;當(dāng)電池電壓低于保護(hù)值時(shí),該芯片的1腳變?yōu)榈碗娖?單片機(jī)檢測到該信號后,即控制液晶模塊顯示欠壓,以提醒用戶更換電池,。
2.4 電源保護(hù)電路
為有效保護(hù)系統(tǒng)電源,本電路可對電池盒位置進(jìn)行高靈敏檢測。當(dāng)電池盒被拉開時(shí),保護(hù)電路輸出低電平,單片機(jī)監(jiān)測到該信號后,即控制閥門使其關(guān)斷,。直到電池安裝好并將電池盒推入表內(nèi)正常位置時(shí),單片機(jī)才會再次控制閥門使其重新開閥供氣,。
2.5 液晶顯示及聲光報(bào)警電路
液晶顯示電路采用PHILIP標(biāo)準(zhǔn)I2C通訊模塊制作,可漢字顯示欠壓、購氣,、關(guān)閥,、卡誤和氣量五種信息狀態(tài)及其任意組合。聲光報(bào)警電路采用高亮LED和高響蜂鳴器,由單片機(jī)控制發(fā)出聲光報(bào)警,。
2.6 IC卡及讀寫電路
IC卡由于具有存儲容量大,、數(shù)據(jù)保密性好、抗干擾能力強(qiáng),、操作速度快等突出優(yōu)點(diǎn),近年來在世界范圍內(nèi)得到廣泛應(yīng)用,。本系統(tǒng)采用符合ISO7816國際標(biāo)準(zhǔn)的IC卡,用于可靠存儲用戶密鑰、購氣量,、用氣記錄等關(guān)鍵數(shù)據(jù),。單片機(jī)通過IC卡讀寫電路完成對IC卡信息的讀寫,本讀寫電路在卡口保護(hù),、輔助偽卡識別,、確保準(zhǔn)確安全讀寫IC卡信息等方面都進(jìn)行了精心而合理的設(shè)計(jì)。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件采用PIC16C5X精簡指令集編寫,。軟件設(shè)計(jì)緊密結(jié)合智能IC卡燃?xì)獗淼目刂颇J?充分體現(xiàn)了對IC卡信息讀寫,、卡類型判斷、計(jì)量信號判斷與數(shù)據(jù)處理,、電壓監(jiān)測與電源保護(hù)等功能,并在IC卡信息安全性,、軟件運(yùn)行可靠性及抗干擾等方面進(jìn)行了精心設(shè)計(jì)。系統(tǒng)主程序框圖如圖4所示,。
?
下面給出IC卡讀,、寫的子程序:
R10BYTE?????? MOVF 8,0
???????????????????? MOVWF FSR
???????????????????? MOVLW .10???????? ,;讀10個(gè)存儲單元
???????????????????? MOVWF BCOUNT
???????????????????? CALL START
???????????????????? MOVLW CTRL_W
???????????????????? CALL TR1BYTE
???????????????????? CALL RACK
???????????????????? MOVLW? 8????????? ,;存于寄存器8中
???????????????????? CALL? TR1BYTE
???????????????????? CALL? RACK
???????????????????? CALL? START
???????????????????? MOVLW?? CTRL_R
???????????????????? CALL? TR1BYTE
???????????????????? CALL? RACK
READ???????????? CALL? RD1BYTE???? ;讀字節(jié)子程序
???? ???????????? INCF FSR
???????? ?????? DECFSZ BCOUNT
???????????????????? GOTO? READ11
???????????????????? CALL THACK
???????????????????? CALL STOP
???????????????????? RETLW 0????????????;子程序返回
READ11 ????? CALL TACK
???????????????????? GOTO READ
W8BYTE???? ? ??? MOVF? 8,,0
???????????????????? MOVWF? FSR
???????????????????? CALL? START
???????????????????? MOVLW? CTRL_W??? ?。籌C卡存放地址
???????????????????? CALL TR1BYTE
???????????????????? CALL RACK???????
???????????????????? MOVL W 8?? ????? ??;從寄存器8中讀取數(shù)據(jù)
???????????????????? CALL TR1BYTE
???????????????????? CALL RACK
WRITE ??? ?????? MOVF? 0,0?????????,;寫入IC卡
???????????????????? CALL? TR1BYTE
???????????????????? CALL? RACK
???????????????????? INCF? FSR
???????????????????? BTFSS? FSR,,3
???????????????????? GOTO? WRITE
???????????????????? CALL? STOP
DE10MS??? MOVLW?? .5??????? ,;寫延時(shí)
???????????????????? MOVWF? LOOPS
???????????????????? BCF? 3,,5
???????????????????? CALL? WAIT??
???????????????????? BSF 3,5
???????????????????? RETLW? 0????????????,;返回主程序
?
參考文獻(xiàn)
1 蔡純潔,邢 武. PIC16/17單片機(jī)原理和應(yīng)用.合肥中國科學(xué)技術(shù)大學(xué)出版社,,1997
2 何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1995
3 王愛英.智能卡技術(shù).北京:清華大學(xué)出版社,,1996