摘要 介紹了IC卡智能水表的硬件設計和軟件流程。該表具有較高的可靠性、穩(wěn)定性和使用壽命,可實現(xiàn)預付費供水、遠程傳輸和遠程控制。
0 引言
IC卡預付費水表是以傳統(tǒng)水表為母表,用單坐上琴心機實現(xiàn)用水控制的新型儀表。該儀表的單坐上琴心機控制電路需在原水表的基礎上重新設計控制盒并與水閥組裝在一起。為了提高IC卡水表精密性、可靠性和穩(wěn)定性,在設計中采用了人性化設計理念。在降低功耗、提高使用壽命、降低成本的同時,不但能實現(xiàn)預付費,還能實現(xiàn)遠程控制和信息的遠程傳輸。
采用Microchip公司新推出的單片機PIC16C72,以實現(xiàn)水表的智能化,該水表具有自動計數(shù)、自動供水斷水、自動保存數(shù)據(jù)、自動報警、限制日用水量等功能。
1 硬件設計
圖1是系統(tǒng)的硬件原理框圖,主要包括PIC16C72單片機、掉電檢測電路、脈沖采樣電路、存儲器、IC卡接口、閥門控制電路、顯示電路和電源電路等。為了降低功耗,芯片全部選用CMOS低功耗器件。
圖1硬件原理框圖
1.1 單片機
PIC16C72 是一種帶2K存儲器的低電壓、高性能8位單片機,低功耗的閑置和掉電工作模式。該芯片的主要特征是:2.0-6.0V寬工作電壓,低功耗狀態(tài)電流小于5 A,自還上電復位電路,內設電子看門狗,配有異步串行通信口,提供2個定時計數(shù)器,全部指令為單字節(jié)指令,采用ASIC結構;內部有程序加密形狀,保密性高。一次性編程芯片價格十分低廉,適用于研制與批量生產(chǎn)。
1.2 掉電存儲器
EEPROM電可擦除存儲器是系統(tǒng)中的關鍵電路。它不僅可保證停電時系統(tǒng)所有數(shù)據(jù)的可靠保存,還能防止程序意外跑飛造成RAM區(qū)數(shù)據(jù)丟失,它是提高系統(tǒng)可靠性的關鍵。本系統(tǒng)EEPROM采用AT93C46,它的存儲容量為1024位,內部為128×8位或64×16位。93C46為串行三線SPI操作芯片,在時鐘時序的同步下接收數(shù)據(jù)口的指令。指令碼為9位十進制碼,具有7個指令,人心所向讀、擦寫使能、擦除、寫、全擦、全寫及擦除禁止。該芯片擦寫時間快,有擦寫使能保護,可靠性高,擦寫次數(shù)可達100萬次,非常適用于數(shù)據(jù)量不大的水表系統(tǒng)。圖2給出了93C46與單片機的接線圖。
圖2 93C46與單片機接線圖
1.3 IC卡接口電路
IC卡選用西門子公司生產(chǎn)的SLE4442,該芯片內部設有硬件邏輯判斷電路,數(shù)據(jù)區(qū)分為用戶區(qū)、密碼區(qū)、存儲區(qū)等,存儲區(qū)數(shù)據(jù)訪問需先比較密碼,在密碼比較錯誤4次后芯片自鎖,有較高的安全等級。
圖3為CPU與IC卡的接線圖,圖中采用I2C總線形式,支持ISO/7816-3同步輿協(xié)議。在實際使用中,為防止插入鐵片等異物,VDD應用CPU口單獨控制。IC卡存儲器內可存儲用戶碼。購水度數(shù)或金額等數(shù)據(jù),在每次拉入IC卡時,開關S被閉合,通過中斷口單片機被喚醒并讀IC卡。在確認IC卡為合法時,讀取其中水度數(shù)并與表內相加,這樣IC卡就代替了過去人工抄表收費的全部工作。
圖3 CPU與IC卡接線圖
1.4 顯示電路
系統(tǒng)為降低功耗,采用LCD顯示,而PIC16C72沒有驅動LCD能力,因此采用HT162LCD驅動專用芯片。該芯片可在靜態(tài)或動態(tài)方式下工作,最大可驅動128像素,睡眠狀態(tài)電流小于9 A,與單片機連接只需3個口線。
1.5 其它
①脈沖采樣。水表中有機械轉輪,采用于簧管與磁鐵配合,可完成脈沖采樣,CPU在測試脈沖時需加軟件防抖動程序。
②掉電檢測電路。采用HT7039芯片,只需消耗1 A電流可完成電池失壓檢測。這里也可使用MAX810等芯片。
③電源。系統(tǒng)采用外接三節(jié)5號電池供電。其內部備用1.2Ah鋰電池,使用時外接電池接好后,系統(tǒng)供水,若外接電池失壓,立即關閥,備用電池確保閥門安全關閉。單片機睡眠后靜態(tài)電流在10 A以下,普通電池可使用1年以上。
2 軟件設計
軟件由主程序、掉電中斷程序、脈沖中斷程序和IC卡中斷程序組成,圖4、圖5、圖6和圖7分別為4個程序的軟件流程圖。
圖4 主程序流程圖
圖5 掉電中斷流程圖
圖6 脈沖中斷流程圖
圖7 IC卡中斷流程圖
主程序主要完成水量多少及關閥判斷,平時處于睡眠狀態(tài)。當表內剩余水量秋5m3時,表內蜂鳴器發(fā)出提示音,以提醒用戶水量剩余不多,請速購水。表內剩余量為0時,切斷閥門,停止供水,從而完成用水必須先交費的方式。掉電中斷程序是CPU在檢測到電池失壓后,將RAM區(qū)的所有數(shù)據(jù)寫入EEPROM中,以保證下次上電安全讀出。IC卡中斷程序在用戶插入IC卡時,讀取卡中數(shù)據(jù),并對數(shù)據(jù)的合法性進行判別后,執(zhí)行購水量的累加,并打開閥門恢復供水。脈沖中斷是最簡單的程序,保證水量的正確計算。3個中斷均可喚醒CPU,主程序在被喚醒后,執(zhí)行一次程序后進入睡眠狀態(tài)。
在設計中注意了低功耗設計??蓪⒋鎯ζ?、IC卡電源口用CPU控制,每當讀寫時才供電,不僅可降低功耗,而且防止IC卡口插入鐵片造成電源短路情況發(fā)生。
為防止水閥長時間不工作造成銹死,可每隔一段時間CPU自動形狀閥一次,防止閥門生銹。