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