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