1 引言
近幾年,智能IC卡的應(yīng)用在我國(guó)已經(jīng)十分普遍。在水表行業(yè)中,機(jī)械式工業(yè)水表已逐漸被嵌入式IC卡智能水表所取代。后者的出現(xiàn),促進(jìn)了水資源管理部門(mén)對(duì)水資源的科學(xué)管理,同時(shí)提高了工業(yè)用戶(hù)對(duì)水資源的利用率。非接觸式IC卡工業(yè)水表,改革傳統(tǒng)抄表與收費(fèi)問(wèn)題,改用非接觸式IC卡實(shí)現(xiàn)預(yù)付費(fèi),完成“先付費(fèi)再用水”和持卡消費(fèi)的先進(jìn)模式,減少勞動(dòng)強(qiáng)度,節(jié)約勞動(dòng)力;水量記錄、計(jì)費(fèi)由計(jì)算機(jī)完成,準(zhǔn)確、可靠、及時(shí);鼓勵(lì)用戶(hù)節(jié)約用水。此外該款工業(yè)水表更具有自己的特點(diǎn)和優(yōu)勢(shì),彌補(bǔ)當(dāng)前因工業(yè)水表少而帶來(lái)的功能不健全,系統(tǒng)不穩(wěn)定等弱點(diǎn)。隨著社會(huì)發(fā)展的需求,工業(yè)水表的智能化程度還將會(huì)有更大的提高。
2 設(shè)計(jì)概述
非接觸式IC卡工業(yè)水表包含兩塊設(shè)備。一塊連接水管并埋入地下,另一塊放置于操作臺(tái)上,兩者通過(guò)串行線(xiàn)相連。系統(tǒng)中定義地下部分為“基表”,而與其相連的操作設(shè)備為“刷卡機(jī)”?;碡?fù)責(zé)記錄、計(jì)算用水水量,刷卡機(jī)負(fù)責(zé)信息查看,兩者共同完成用戶(hù)的購(gòu)水操作。
2.1 基表
基表記錄用戶(hù)剩余水量、報(bào)警水量、透支水量,這些水量信息會(huì)隨著用戶(hù)用水情況實(shí)時(shí)更新;同時(shí),再結(jié)合系統(tǒng)工作情況共同控制送水閥門(mén)的開(kāi)、關(guān)操作;基表定時(shí)更新記錄在FLASH 中的水量信息。圖1 給出了基表的功能框圖。
2.2 刷卡機(jī)
刷卡機(jī),與售水系統(tǒng)、讀寫(xiě)卡器一起提供刷卡使能;它的LCD 顯示用戶(hù)的剩余水量和系統(tǒng)當(dāng)前的工作情況;刷卡機(jī)的電源模塊同時(shí)給基表與自身供電。圖2 給出了刷卡機(jī)的功能框圖。
2.3 讀寫(xiě)卡器與售水系統(tǒng)軟件
讀寫(xiě)卡器與售水系統(tǒng)軟件提供給水資源管理部門(mén)使用。用戶(hù)開(kāi)戶(hù)、購(gòu)水、注銷(xiāo)帳號(hào)等操作由售水系統(tǒng)完成,同時(shí)售水系統(tǒng)軟件提供了日、月、年報(bào)表以及一些特殊功能,比如用戶(hù)過(guò)戶(hù);軟件系統(tǒng)的維護(hù)可以在本地計(jì)算機(jī)完成。系統(tǒng)內(nèi)有多個(gè)數(shù)據(jù)庫(kù),記錄用戶(hù)相關(guān)信息。
系統(tǒng)工作原理是:用戶(hù)先到水資源管理部門(mén)購(gòu)買(mǎi)非接觸式IC 卡并開(kāi)戶(hù)或者持原有卡購(gòu)水;售水系統(tǒng)將相應(yīng)信息寫(xiě)入IC 卡;用戶(hù)在刷卡機(jī)上刷卡,并與基表一起完成用戶(hù)身份的核對(duì),成功后將購(gòu)買(mǎi)水量累加到水表的剩余水量,作為新的用戶(hù)可用水量。
用戶(hù)用水過(guò)程中,卡內(nèi)剩余水量會(huì)相應(yīng)減少;當(dāng)降到報(bào)警水量時(shí)(由用戶(hù)與水資源管理部門(mén)商定),系統(tǒng)會(huì)報(bào)警,提示水量不足;繼續(xù)使用到透支水量(同樣由用戶(hù)與水資源管理部門(mén)商定),系統(tǒng)會(huì)自動(dòng)關(guān)閉閥門(mén),停止供水。系統(tǒng)在遇到因客戶(hù)操作不當(dāng)而導(dǎo)致的錯(cuò)誤的時(shí)候,會(huì)給出錯(cuò)誤操作提示,必要時(shí)候會(huì)關(guān)閉閥門(mén)。如此可以同時(shí)保證客戶(hù)與水資源管理部門(mén)的利益不受到侵犯。
3 刷卡機(jī)與基表
針對(duì)圖1 和圖2 的系統(tǒng)功能框圖,以下從軟、硬件上講述刷卡機(jī)與基表的各個(gè)模塊或部分的細(xì)節(jié)。
3.1 硬件設(shè)計(jì)
3.1.1 刷卡機(jī)(見(jiàn)圖3)。
(1) 穩(wěn)壓電源電路:該模塊直接與220V 交流連接。作為水表的電源供給模塊,不僅直接給刷卡機(jī)供電,還為基本部分的電池充電。針對(duì)220V 的市電掉電,刷卡機(jī)部分提供了報(bào)警與故障提示。電壓轉(zhuǎn)換器和電池的輸出電壓均為12V,電路中標(biāo)準(zhǔn)電壓為3.3V 和5V,為得到系統(tǒng)工作的穩(wěn)定電源,模塊中使用了兩套精確的穩(wěn)壓電源計(jì)算電路;此外,考慮到刷卡、錯(cuò)誤指示燈、顯示、報(bào)警等大功耗元件重疊工作帶來(lái)的大電流,電路在這方面作了充分的考慮,或者分時(shí)操作,或者限制連續(xù)的無(wú)意義操作,并最終有效地避免了個(gè)別元件滿(mǎn)負(fù)載工作。
(2) 漢字點(diǎn)陣LCD:122×32 點(diǎn)陣液晶顯示屏,分為上下兩行。
(3) IC 卡讀寫(xiě)卡模塊:見(jiàn)4.2。
(4) MCU:微處理器選用Freescale 剛剛推出的8 位MCU MC9S08GB32,該芯片性能與16 位MCU 相當(dāng)。正常工作電壓時(shí),CPU 速率和總線(xiàn)速率最高分別可達(dá)40MHz 與20MHz;RAM 和FLASH 分別為2K和32K;最多可大56個(gè)通用I/O口;采用"零元件"設(shè)計(jì)實(shí)現(xiàn)MCU 從"stop"模式的自動(dòng)激活,從而降低了成本,也使電流降低到0.7mA;具有溫度和電壓補(bǔ)償(典型漂移< 2%)的可編程內(nèi)部時(shí)鐘發(fā)生器,能提高通信的可靠性、加快啟動(dòng)時(shí)間和減少系統(tǒng)成本;通過(guò)第三代0.25 微米的閃存技術(shù),提供應(yīng)用程序的重復(fù)編寫(xiě)和數(shù)據(jù)存儲(chǔ)能力;高度集成了4 個(gè)串行通信端口(SCI x 2、SPI、I2C/IIC)、最多8個(gè)定時(shí)器/PWM、1個(gè)8通道的10位A/D轉(zhuǎn)換器(工作電壓最低為1.8V)。
(5) 蜂鳴器:水表出現(xiàn)故障時(shí)報(bào)警用。
3.1.2 基表(見(jiàn)圖4)。
(1) 水量記錄:水表中有機(jī)械轉(zhuǎn)輪,通過(guò)干簧管與磁鐵配合完成采樣;內(nèi)部提供了強(qiáng)磁場(chǎng)干擾的判別處理,再加之基表埋入地下,基本可以忽略外部環(huán)境的影響。
(2) 穩(wěn)壓電源及反饋電路:正常情況下,基表部分的電池通過(guò)刷卡機(jī)的12V 電源充電。它為基表部分的MCU 和閥門(mén)電機(jī)供電??紤]到電路中同時(shí)出現(xiàn)三種電壓:3.3V、5V、12V,若干電容被使用,用來(lái)去除高頻、低頻毛刺,保證各電源不受污染以及信號(hào)的有效性。穩(wěn)壓電源電路的設(shè)計(jì)與刷卡機(jī)部分類(lèi)似?;聿糠质褂昧?2V - 7.0Ah/20HR 的可充點(diǎn)蓄電池,電池特性說(shuō)明,實(shí)際電壓隨電量的有效值同步變化。反饋電路采樣電池電壓,并把實(shí)時(shí)采樣結(jié)果返回給MCU,MCU 根據(jù)采樣結(jié)果判斷電池電量是否足夠維持當(dāng)前系統(tǒng)的正常工作,并作出相應(yīng)處理。
(3) 閥門(mén)驅(qū)動(dòng)及反饋電路:兩條電源線(xiàn)分別接閥門(mén)電機(jī)的兩端,電機(jī)工作的條件是兩端有電壓差;繼電器配合采樣電路,準(zhǔn)確、及時(shí)地為電機(jī)提供接通、切斷電源的信號(hào)。實(shí)驗(yàn)證明閥門(mén)驅(qū)動(dòng)及反饋信號(hào)電路均能支持正常工作。
(4) MCU:微處理器選用Freescale 公司的8 位MCU MC68HC908JL8。
3.2 軟件設(shè)計(jì)
3.2.1 刷卡機(jī)部分。
刷卡機(jī)由以下5 部分組成。
(1) 穩(wěn)壓電源及反饋:程序中主要以中斷的方式判斷220V 電源的供電情況是否正常,但MCU 在工作時(shí),會(huì)有其他中斷和需要關(guān)閉中斷進(jìn)行長(zhǎng)時(shí)間操作的程序塊,因此存在丟失220V 中斷的情況;程序?qū)崿F(xiàn)時(shí),結(jié)合查詢(xún)方式,很好的避免了上述意外情況。在確認(rèn)市電斷電后,系統(tǒng)報(bào)警,錯(cuò)誤指示燈閃爍。
(2) 漢字點(diǎn)陣LCD:該LCD 提供了漢字與ASCII 字符的顯示。
(3) IC卡讀寫(xiě)卡模塊:為了保證一戶(hù)一卡、一表一卡,IC 卡中添加了密碼與特定用戶(hù)信息,刷卡過(guò)程中,所有信息都吻合時(shí)才可以對(duì)其讀寫(xiě);從另一個(gè)角度來(lái)講,僅有系統(tǒng)設(shè)計(jì)人員才能更改其中的內(nèi)容。
(4) MCU:系統(tǒng)采用消息驅(qū)動(dòng)的編程方式,上述任何一部分在發(fā)生或需要的時(shí)候,相應(yīng)功能模塊才會(huì)被執(zhí)行;同時(shí)考慮到各模塊及其他程序執(zhí)行時(shí)間的先后順序,系統(tǒng)給出了有效合理的安排。
(5) 串行通信:刷卡機(jī)與閥門(mén)每隔約2.3 秒進(jìn)行一次通信握手,如有通信線(xiàn)故障,系統(tǒng)會(huì)立刻報(bào)警并給出提示。
3.2.2 基表部分。
基表由以下六部分組成。
(1) 時(shí)鐘模塊:該模塊有兩個(gè)用途:
①為防止閥門(mén)銹蝕,系統(tǒng)會(huì)定期轉(zhuǎn)動(dòng)閥門(mén),該時(shí)間間隔是15 天;
②當(dāng)刷卡機(jī)部分的電源轉(zhuǎn)換器不能為基表電池充電,并且電池本身電量降到某一低限時(shí),MCU 也要記時(shí),并在一小時(shí)后關(guān)閉閥門(mén)。
(2) 水量記錄:水量記錄以中斷的方式觸發(fā),并及時(shí)給予處理。記錄信號(hào)的接收,需要考慮到了以下幾點(diǎn):①接收的方法:以低電平觸發(fā),一個(gè)下降沿代表一個(gè)記錄脈沖,軟件上為正確判斷,使用兩個(gè)引腳并以互補(bǔ)的方式接收下降沿,保證不丟失和添加任何一個(gè)記錄信號(hào);②屏蔽外接干擾:基表埋入地下,可以避免絕大多數(shù)干擾,另外自身提供了磁干擾的硬件判斷的電路,軟件上以中斷方式觸發(fā),一旦發(fā)現(xiàn)異常,閥門(mén)關(guān)閉。工業(yè)水表的口徑較大,單個(gè)記錄信號(hào)所需要的時(shí)間非常段,因此在單位時(shí)間內(nèi)會(huì)有若干記錄中斷信號(hào);在其他處理時(shí)間比較長(zhǎng)的過(guò)程中,肯定會(huì)出現(xiàn)記錄信號(hào)與此過(guò)程沖突的現(xiàn)象;基于上述兩種考慮,為了保證在刷卡時(shí)不丟失記錄信號(hào),程序除了在中斷中及時(shí)處理記錄信號(hào)外,必須還要支持該信號(hào)的累加,而后再處理的記錄方法。
(3) 水量計(jì)算:所有關(guān)于水量的計(jì)算、存儲(chǔ)都是以BCD 碼為基礎(chǔ)。程序上,提供了多位BCD 碼的加、減和比較的子程序,具有很好的通用性。
(4) 電源模塊:中斷與查詢(xún)相結(jié)合的方式判斷電池的供電情況,功能與刷卡機(jī)部分電源模塊相同。
(5) 閥門(mén)驅(qū)動(dòng)及反饋模塊:閥門(mén)設(shè)置了三種狀態(tài):堵塞、打滑、正常,程序根據(jù)開(kāi)、關(guān)閥過(guò)程對(duì)閥門(mén)狀態(tài)做出判斷,在閥門(mén)動(dòng)作失敗后,程序會(huì)再一次嘗試其他方法完成上述動(dòng)作,并記錄最終的狀態(tài)。
(6) MCU:系統(tǒng)同樣采用消息驅(qū)動(dòng)的編程模式;基表部分MCU 的RAM 內(nèi)存放著當(dāng)前用戶(hù)的水量信息,記錄信號(hào)累加到RAM,并定期寫(xiě)入FLASH;水表的水量和用戶(hù)信息存在于FLASH 內(nèi),掉電后數(shù)據(jù)不會(huì)丟失,可以保存十年以上的時(shí)間。基表部分MCU 內(nèi)程序的特殊考慮,使其具有很強(qiáng)的獨(dú)立性,并表現(xiàn)在這樣兩個(gè)方面:①任何一個(gè)刷卡機(jī)都可以與用戶(hù)特定的基表匹配;②基表可以脫離刷卡機(jī)單獨(dú)工作。考慮到用戶(hù)刷卡過(guò)程中交互的數(shù)據(jù)量大,操作時(shí)間相對(duì)比較長(zhǎng)的問(wèn)題,MCU 在刷卡機(jī)與基表的通信和基表數(shù)據(jù)的更新上做了許多保護(hù)性措施,可在刷卡結(jié)束后判斷是否刷卡成功,支持失敗后的可以重新刷卡?;聿糠值腗UP 在初次上電并進(jìn)入正常工作后,MCU 內(nèi)RAM 和FLASH 內(nèi)記錄了用戶(hù)水量等重要信息,絕不允許其掉電,原則上不會(huì)出現(xiàn)掉電現(xiàn)象,但為了避免不可能中的萬(wàn)一,系統(tǒng)還是設(shè)置了冷熱復(fù)位的判斷和處理,該操作既可以保證RAM 區(qū)水量正確,更保證了水量的一致性,也即累計(jì)用水、剩余水量、本次購(gòu)水之間的數(shù)值關(guān)系。
3.2.3 監(jiān)控程序
Freescale 公司的MC9S08GB32 是剛剛推出的一款具有16 位單片機(jī)性能的8 位單片機(jī)。它的封裝形式從傳統(tǒng)MCU 的DIP 轉(zhuǎn)為L(zhǎng)QFP,焊接時(shí)帶來(lái)了許多困難,不適合取下重新寫(xiě)入程序。因此,在開(kāi)發(fā)前編寫(xiě)了GB32 的監(jiān)控程序及其在線(xiàn)編程系統(tǒng),通過(guò)串口便可方便對(duì)開(kāi)發(fā)板上的GB32 編程。
4 售水系統(tǒng)設(shè)計(jì)
售水系統(tǒng)包括售水系統(tǒng)軟件和讀寫(xiě)卡器。軟、硬件結(jié)合
4.1 售水系統(tǒng)軟件
售水系統(tǒng)實(shí)現(xiàn)發(fā)行IC 卡(開(kāi)戶(hù))、售水、用戶(hù)信息查詢(xún)、售水信息查詢(xún)、圖表打印、系統(tǒng)維護(hù)等功能。同時(shí)含有發(fā)行清零卡、反讀卡、工作卡、清卡、讀取反讀卡等卡操作,和用戶(hù)過(guò)戶(hù)、數(shù)據(jù)備份等功能。系統(tǒng)分管理員、操作員兩種模式進(jìn)入。管理員主要實(shí)現(xiàn)查詢(xún)、特殊功能和系統(tǒng)維護(hù)等操作;操作員主要實(shí)現(xiàn)查詢(xún)、特殊功能、開(kāi)戶(hù)和售水等操作。
系統(tǒng)提供了多種查詢(xún)方式:
①用戶(hù)信息查詢(xún):可根據(jù)用戶(hù)號(hào)、姓名、開(kāi)戶(hù)日期、公司地址四種方式查詢(xún)用戶(hù)信息;
②售水信息查詢(xún):管理員可以查詢(xún)統(tǒng)計(jì)售水情況,該功能模塊有四個(gè)字功能模塊,即組合查詢(xún)模塊、收盤(pán)統(tǒng)計(jì)模塊、按用戶(hù)名稱(chēng)查詢(xún)模塊和黑名單統(tǒng)計(jì)模塊。
特殊功能有用戶(hù)過(guò)戶(hù)、數(shù)據(jù)備份、數(shù)據(jù)導(dǎo)入、清卡、讀反讀卡,管理員模式下多一個(gè)修改操作員密碼的功能。系統(tǒng)維護(hù)包括參數(shù)設(shè)置(具體參數(shù)有:每表附加費(fèi)、每噸附加費(fèi)、水價(jià)類(lèi)型、卡類(lèi)型、口徑、報(bào)警水量、透支水量、管理員、操作員、單位名稱(chēng))、發(fā)行清零卡、發(fā)行反讀卡、發(fā)行工作卡。開(kāi)戶(hù)和售水是用水的前提,也是售水系統(tǒng)最基本的功能;開(kāi)戶(hù)或每次售水后,相應(yīng)的數(shù)據(jù)均寫(xiě)入數(shù)據(jù)庫(kù);如果用戶(hù)卡丟失,系統(tǒng)可以根據(jù)之前記錄補(bǔ)卡。
售水系統(tǒng)基于客戶(hù)服務(wù)器模式(C/S)設(shè)計(jì)的,后臺(tái)數(shù)據(jù)庫(kù)用的是Microsoft SQLServer2000,適用于基于分布式網(wǎng)絡(luò)售水的應(yīng)用。同時(shí),根據(jù)公司要求,考慮到本售水系統(tǒng)也能適用于規(guī)模比較小的單點(diǎn)售水,在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),使其兼容ACCESS 2000。這樣,售水系統(tǒng)管理軟件在實(shí)際應(yīng)用時(shí),可以根據(jù)應(yīng)用規(guī)模的大小,選擇不同的后臺(tái)數(shù)據(jù)庫(kù)管理軟件,增強(qiáng)了軟件的適應(yīng)性,可擴(kuò)充性,使之具有更大的靈活性。
圖5 描述了售水系統(tǒng)中操作員可執(zhí)行的系統(tǒng)功能。
4.2 讀寫(xiě)卡器
以PHILIPS 公司的MF-RC500 作為讀寫(xiě)卡模塊,F(xiàn)REESCALE 公司的M68HC08JL8 作為主控芯片,設(shè)計(jì)了一款非接觸式IC 卡讀寫(xiě)卡器。讀寫(xiě)卡器還包括非接觸式IC 卡和射頻發(fā)射天線(xiàn)。讀寫(xiě)卡器與PC 機(jī)通過(guò)串行口相連,提供售水系統(tǒng)操作卡的硬件平臺(tái);刷卡機(jī)中的讀寫(xiě)卡模塊,讀取經(jīng)售水系統(tǒng)售水后的IC 卡,并將其中相應(yīng)信息記錄到MCU 中。數(shù)據(jù)讀寫(xiě)的過(guò)程中,時(shí)刻需要驗(yàn)證密碼,只有獲得正確的密碼才可以操作卡的內(nèi)容,因此卡中的數(shù)據(jù)具有非常好的保密性。刷卡機(jī)中的讀寫(xiě)卡模塊同樣有讀寫(xiě)卡的功能,但更主要是讀卡中內(nèi)容,并傳送給基表,基表返回固定信息再寫(xiě)入卡中相應(yīng)區(qū)域,所以不會(huì)對(duì)超出其范圍的區(qū)域有寫(xiě)數(shù)據(jù)的操作。售水系統(tǒng)則可以提供讀寫(xiě)卡器,實(shí)現(xiàn)對(duì)卡的完全操作,包括清卡。
5 關(guān)鍵技術(shù)
閥門(mén)驅(qū)動(dòng)及反饋模塊雖然能完成驅(qū)動(dòng)和反饋的功能,但是存在如下問(wèn)題:閥門(mén)操作完成時(shí)刷卡機(jī)串行通信指示燈偶爾持續(xù)閃爍的現(xiàn)象。指示燈閃爍說(shuō)明基本有數(shù)據(jù)發(fā)送到刷卡機(jī),而閥門(mén)操作時(shí)不會(huì)有雙方的數(shù)據(jù)傳輸,因此初步分析為基本MCU 復(fù)位(啟動(dòng)代碼現(xiàn)象)。
雖不是每次出現(xiàn),但此現(xiàn)象的嚴(yán)重性不可忽略,MCU 復(fù)位前一次水量記錄到復(fù)位時(shí)刻所用水量會(huì)丟失。根據(jù)反饋信號(hào)采樣電路可知,閥門(mén)操作完成時(shí)的電路功耗比較大,于是軟件上把采樣的時(shí)間間隔縮短,硬件上在添加了大容量電容穩(wěn)定電壓,并經(jīng)過(guò)示波器顯示波形平穩(wěn),說(shuō)明MCU 的供電正常。再一次做閥門(mén)試驗(yàn),發(fā)覺(jué)仍然存在上述問(wèn)題,而且沒(méi)有任何改善。
用PC 機(jī)接收串行線(xiàn)上的數(shù)據(jù),分析得出為MCU 上電復(fù)位的通信握手信號(hào),至此可以確定上述現(xiàn)象是由基本MCU 復(fù)位造成。MCU 的復(fù)位情況有看門(mén)狗復(fù)位, RESET 鍵復(fù)位,程序死鎖復(fù)位,低電壓復(fù)位。進(jìn)一步的試驗(yàn)排除了前三者的可能性,問(wèn)題的確出自低電壓,這說(shuō)明閥門(mén)關(guān)閉的最后時(shí)刻功耗非常大,導(dǎo)致MCU 供電不足。硬件上要解決此問(wèn)題,有兩種方法:① MCU 電源直接從串行線(xiàn)的12V 轉(zhuǎn)換得來(lái);② MCU 電源由另外的電池提供,脫離現(xiàn)有的電池和串行線(xiàn)。兩種方法雖然能暫時(shí)解決問(wèn)題,但考慮到其他各種以外情況,上述方法均不能徹底解決該問(wèn)題。軟件上解決的辦法是禁止低電壓。系統(tǒng)復(fù)位狀態(tài)寄存器上LVD位控制著MCU 低電壓時(shí)復(fù)位是否允許,置1 則允許低電壓情況下的復(fù)位,置0 則不復(fù)位?,F(xiàn)置LVD 位為0。問(wèn)題解決后,用示波器顯示原電路MCU 管腳上電壓,結(jié)果與原先一樣,仍然看不出明顯變化。可以分析閥門(mén)操作完成的瞬間,有毛刺影響了MCU 的工作。
前文提到的刷卡正常,是指刷卡過(guò)程中不隨便挪開(kāi)卡,直到最好刷卡結(jié)束,這樣的刷卡過(guò)程能夠完成一次正確的卡操作;但如果在刷卡過(guò)程中把卡拿開(kāi),即使是一會(huì)兒,也可能導(dǎo)致刷卡失敗。刷卡過(guò)程是卡、刷卡機(jī)、基本三方通信的過(guò)程,除了三者之間交互的信息量大之外,還有寫(xiě)卡、寫(xiě)FLASH 操作,它們之間在時(shí)間上有先后順序,并且是分步進(jìn)行,一旦前面操作完成而后面操作不能正常完成,那刷卡肯定就不會(huì)成功,而且先前的寫(xiě)卡或?qū)慒LASH 操作必然導(dǎo)致下次刷卡不成功。要解決此問(wèn)題,必須把寫(xiě)卡和寫(xiě)FLASH 操作推遲到刷卡結(jié)束前一刻?;鞰CU 程序首先開(kāi)辟一塊FLASH 空間,專(zhuān)門(mén)用作存儲(chǔ)FLASH 中即將被修改的信息;不改變刷卡過(guò)程,而只是在刷卡結(jié)束前判斷是否刷卡成功,如果成功則結(jié)束,如果不成功則把原先備份的數(shù)據(jù)還原,系統(tǒng)又回復(fù)到刷卡前的狀態(tài)。對(duì)于寫(xiě)卡,把表示是否刷卡的標(biāo)志位和購(gòu)水次數(shù)的寫(xiě)入放到刷卡機(jī)與卡通信的最后第二步(最后一步發(fā)送成功與否的標(biāo)志)。試驗(yàn)證明上述方法非常有效,無(wú)數(shù)次測(cè)試過(guò)程中沒(méi)有出現(xiàn)一次錯(cuò)誤。
6 結(jié)束語(yǔ)
非接觸式IC 卡工業(yè)水表已經(jīng)完成開(kāi)發(fā)。售水系統(tǒng)界面友善、操作簡(jiǎn)便,操作員只需要輸入購(gòu)水金額或者水量,系統(tǒng)便可完成數(shù)據(jù)庫(kù)更新、寫(xiě)卡、打印發(fā)票等工作;正常的刷卡,補(bǔ)卡后的刷卡,多次水量累積的刷卡,都不會(huì)丟失任何一次所購(gòu)水量或者添加額外水量,刷卡后系統(tǒng)會(huì)顯示“本次購(gòu)水”、“剩余水量”,如果此刻剩余水量較少,“水量報(bào)警”、“水量透支”或“透支關(guān)閥”也會(huì)相應(yīng)顯示,如果購(gòu)水后水量較多,上述內(nèi)容會(huì)相應(yīng)不顯示;用水、購(gòu)水等水量的計(jì)算完全正確;用水過(guò)程中,當(dāng)水量超過(guò)之前設(shè)定的透支限額,閥門(mén)會(huì)自行關(guān)閉,直到剩余水量恢復(fù)到該限額內(nèi);電池電量降到設(shè)定值時(shí),閥門(mén)也會(huì)自行關(guān)閉,直到電池電量恢復(fù);拔斷刷卡機(jī)與基表之間的串行線(xiàn),系統(tǒng)會(huì)立刻識(shí)別到“通信故障”,重新接好,系統(tǒng)也能立刻消除該錯(cuò)誤標(biāo)志;當(dāng)出現(xiàn)用戶(hù)持續(xù)刷卡的不正當(dāng)操作,系統(tǒng)會(huì)給予識(shí)別并提示“請(qǐng)正確刷卡”,同時(shí)根據(jù)情況考慮是否終止接收用戶(hù)刷卡;上述任何一種錯(cuò)誤或非正常情況的發(fā)生,都會(huì)伴隨刷卡機(jī)上紅色LED 的閃爍,告知用戶(hù)系統(tǒng)出現(xiàn)故障,一切正常時(shí),該LED 不發(fā)光。
非接觸式IC 卡工業(yè)水表吸收其他同類(lèi)產(chǎn)品的優(yōu)點(diǎn),進(jìn)一步完善不足,從功能、可靠性上給予提高。工業(yè)水表智能化是發(fā)展的必然趨勢(shì),智能化水表的推出,不僅改變了逐月入戶(hù)驗(yàn)表的收費(fèi)方式,而且其科學(xué)性、可靠性,為水資源管理部門(mén)實(shí)現(xiàn)計(jì)算機(jī)的全面管理提供了堅(jiān)實(shí)的基礎(chǔ),能從根本上杜絕遲繳、欠繳、漏繳水費(fèi)的現(xiàn)象,提供準(zhǔn)確的用水信息,因此必將帶來(lái)良好的經(jīng)濟(jì)效益和社會(huì)效益。