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