摘? 要: 給出了一種以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)自動(dòng)計(jì)量計(jì)費(fèi)、自動(dòng)控制用氣的民用高技術(shù)產(chǎn)品,具有傳統(tǒng)人工抄表收費(fèi)式燃?xì)獗頍o可比擬的優(yōu)越性。當(dāng)前,隨著國(guó)家“金卡工程”的深入開展和開發(fā)大西北“西氣東輸”計(jì)劃的正式啟動(dòng),智能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上安裝智能測(cè)控系統(tǒng)而構(gòu)成的,該測(cè)控系統(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í),控制閥自動(dòng)關(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存儲(chǔ)電路、電源電壓監(jiān)測(cè)電路、電池保護(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è)自動(dòng)化、計(jì)算機(jī)通訊以及民用產(chǎn)品等領(lǐng)域得到廣泛應(yīng)用。本設(shè)計(jì)中采用了PIC系列中的主流型號(hào)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 總線方式對(duì)IC卡進(jìn)行讀寫操作,以模擬I2C 方式與存儲(chǔ)器IC2進(jìn)行數(shù)據(jù)通訊,并通過B2、B4口分別獲取實(shí)時(shí)電池電壓及電源保護(hù)信號(hào),通過輸出口B6、B7控制電控閥動(dòng)作,通過輸出口A0、A1驅(qū)動(dòng)漢字液晶模塊。
2.2 EEPROM存儲(chǔ)電路
EEPROM存儲(chǔ)器IC2采用24LC02B芯片,該芯片可以在無電源狀態(tài)下長(zhǎng)期可靠存儲(chǔ)系統(tǒng)內(nèi)重要數(shù)據(jù),工作壽命可達(dá)106次。當(dāng)用戶卡插入系統(tǒng)時(shí),卡內(nèi)密碼、卡號(hào)、購氣量及用戶用氣記錄等關(guān)鍵數(shù)據(jù)將以密文形式存儲(chǔ)在24LC02B芯片中。
2.3 電壓監(jiān)測(cè)電路
系統(tǒng)采用S80751芯片進(jìn)行電壓實(shí)時(shí)監(jiān)測(cè),當(dāng)系統(tǒng)電池電壓在正常值時(shí),S80751的輸出1腳為高電平;當(dāng)電池電壓低于保護(hù)值時(shí),該芯片的1腳變?yōu)榈碗娖?單片機(jī)檢測(cè)到該信號(hào)后,即控制液晶模塊顯示欠壓,以提醒用戶更換電池。
2.4 電源保護(hù)電路
為有效保護(hù)系統(tǒng)電源,本電路可對(duì)電池盒位置進(jìn)行高靈敏檢測(cè)。當(dāng)電池盒被拉開時(shí),保護(hù)電路輸出低電平,單片機(jī)監(jiān)測(cè)到該信號(hào)后,即控制閥門使其關(guān)斷。直到電池安裝好并將電池盒推入表內(nèi)正常位置時(shí),單片機(jī)才會(huì)再次控制閥門使其重新開閥供氣。
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卡由于具有存儲(chǔ)容量大、數(shù)據(jù)保密性好、抗干擾能力強(qiáng)、操作速度快等突出優(yōu)點(diǎn),近年來在世界范圍內(nèi)得到廣泛應(yīng)用。本系統(tǒng)采用符合ISO7816國(guó)際標(biāo)準(zhǔn)的IC卡,用于可靠存儲(chǔ)用戶密鑰、購氣量、用氣記錄等關(guān)鍵數(shù)據(jù)。單片機(jī)通過IC卡讀寫電路完成對(duì)IC卡信息的讀寫,本讀寫電路在卡口保護(hù)、輔助偽卡識(shí)別、確保準(zhǔn)確安全讀寫IC卡信息等方面都進(jìn)行了精心而合理的設(shè)計(jì)。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件采用PIC16C5X精簡(jiǎn)指令集編寫。軟件設(shè)計(jì)緊密結(jié)合智能IC卡燃?xì)獗淼目刂颇J?充分體現(xiàn)了對(duì)IC卡信息讀寫、卡類型判斷、計(jì)量信號(hào)判斷與數(shù)據(jù)處理、電壓監(jiān)測(cè)與電源保護(hù)等功能,并在IC卡信息安全性、軟件運(yùn)行可靠性及抗干擾等方面進(jìn)行了精心設(shè)計(jì)。系統(tǒng)主程序框圖如圖4所示。
?
下面給出IC卡讀、寫的子程序:
R10BYTE?????? MOVF 8,0
???????????????????? MOVWF FSR
???????????????????? MOVLW .10???????? ;讀10個(gè)存儲(chǔ)單元
???????????????????? 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?? ????? ?。粡募拇嫫?中讀取數(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??????? ?。粚懷訒r(shí)
???????????????????? MOVWF? LOOPS
???????????????????? BCF? 3,5
???????????????????? CALL? WAIT??
???????????????????? BSF 3,5
???????????????????? RETLW? 0????????????;返回主程序
?
參考文獻(xiàn)
1 蔡純潔,邢 武. PIC16/17單片機(jī)原理和應(yīng)用.合肥中國(guó)科學(xué)技術(shù)大學(xué)出版社,1997
2 何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1995
3 王愛英.智能卡技術(shù).北京:清華大學(xué)出版社,1996