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