非接觸式IC卡工業(yè)水表及其售水系統(tǒng)設(shè)計(jì)
3.1.2 基表(見圖4)。
圖4 基表電路描述圖
(2) 穩(wěn)壓電源及反饋電路:正常情況下,基表部分的電池通過刷卡機(jī)的12V 電源充電。它為基表部分的MCU 和閥門電機(jī)供電??紤]到電路中同時(shí)出現(xiàn)三種電壓:3.3V、5V、12V,若干電容被使用,用來去除高頻、低頻毛刺,保證各電源不受污染以及信號(hào)的有效性。穩(wěn)壓電源電路的設(shè)計(jì)與刷卡機(jī)部分類似?;聿糠质褂昧?2V - 7.0Ah/20HR 的可充點(diǎn)蓄電池,電池特性說明,實(shí)際電壓隨電量的有效值同步變化。反饋電路采樣電池電壓,并把實(shí)時(shí)采樣結(jié)果返回給MCU,MCU 根據(jù)采樣結(jié)果判斷電池電量是否足夠維持當(dāng)前系統(tǒng)的正常工作,并作出相應(yīng)處理。
(3) 閥門驅(qū)動(dòng)及反饋電路:兩條電源線分別接閥門電機(jī)的兩端,電機(jī)工作的條件是兩端有電壓差;繼電器配合采樣電路,準(zhǔn)確、及時(shí)地為電機(jī)提供接通、切斷電源的信號(hào)。實(shí)驗(yà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é)合查詢方式,很好的避免了上述意外情況。在確認(rèn)市電斷電后,系統(tǒng)報(bào)警,錯(cuò)誤指示燈閃爍。
(2) 漢字點(diǎn)陣LCD:該LCD 提供了漢字與ASCII 字符的顯示。
(3) IC 卡讀寫卡模塊:為了保證一戶一卡、一表一卡,IC 卡中添加了密碼與特定用戶信息,刷卡過程中,所有信息都吻合時(shí)才可以對(duì)其讀寫;從另一個(gè)角度來講,僅有系統(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ī)與閥門每隔約2.3 秒進(jìn)行一次通信握手,如有通信線故障,系統(tǒng)會(huì)立刻報(bào)警并給出提示。
3.2.2 基表部分。
基表由以下六部分組成。
(1) 時(shí)鐘模塊:該模塊有兩個(gè)用途:
①為防止閥門銹蝕,系統(tǒng)會(huì)定期轉(zhuǎn)動(dòng)閥門,該時(shí)間間隔是15 天;
②當(dāng)刷卡機(jī)部分的電源轉(zhuǎn)換器不能為基表電池充電,并且電池本身電量降到某一低限時(shí),MCU 也要記時(shí),并在一小時(shí)后關(guān)閉閥門。
(2) 水量記錄:水量記錄以中斷的方式觸發(fā),并及時(shí)給予處理。記錄信號(hào)的接收,需要考慮到了以下幾點(diǎn):①接收的方法:以低電平觸發(fā),一個(gè)下降沿代表一個(gè)記錄脈沖,軟件上為正確判斷,使用兩個(gè)引腳并以互補(bǔ)的方式接收下降沿,保證不丟失和添加任何一個(gè)記錄信號(hào);②屏蔽外接干擾:基表埋入地下,可以避免絕大多數(shù)干擾,另外自身提供了磁干擾的硬件判斷的電路,軟件上以中斷方式觸發(fā),一旦發(fā)現(xiàn)異常,閥門關(guān)閉。工業(yè)水表的口徑較大,單個(gè)記錄信號(hào)所需要的時(shí)間非常段,因此在單位時(shí)間內(nèi)會(huì)有若干記錄中斷信號(hào);在其他處理時(shí)間比較長(zhǎng)的過程中,肯定會(huì)出現(xiàn)記錄信號(hào)與此過程沖突的現(xiàn)象;基于上述兩種考慮,為了保證在刷卡時(shí)不丟失記錄信號(hào),程序除了在中斷中及時(shí)處理記錄信號(hào)外,必須還要支持該信號(hào)的累加,而后再處理的記錄方法。
(3) 水量計(jì)算:所有關(guān)于水量的計(jì)算、存儲(chǔ)都是以BCD 碼為基礎(chǔ)。程序上,提供了多位BCD 碼的加、減和比較的子程序,具有很好的通用性。
(4) 電源模塊:中斷與查詢相結(jié)合的方式判斷電池的供電情況,功能與刷卡機(jī)部分電源模塊相同。
(5) 閥門驅(qū)動(dòng)及反饋模塊:閥門設(shè)置了三種狀態(tài):堵塞、打滑、正常,程序根據(jù)開、關(guān)閥過程對(duì)閥門狀態(tài)做出判斷,在閥門動(dòng)作失敗后,程序會(huì)再一次嘗試其他方法完成上述動(dòng)作,并記錄最終的狀態(tài)。
(6) MCU:系統(tǒng)同樣采用消息驅(qū)動(dòng)的編程模式;基表部分MCU 的RAM 內(nèi)存放著當(dāng)前用戶的水量信息,記錄信號(hào)累加到RAM,并定期寫入FLASH;水表的水量和用戶信息存在于FLASH 內(nèi),掉電后數(shù)據(jù)不會(huì)丟失,可以保存十年以上的時(shí)間?;聿糠諱CU 內(nèi)程序的特殊考慮,使其具有很強(qiáng)的獨(dú)立性,并表現(xiàn)在這樣兩個(gè)方面:①任何一個(gè)刷卡機(jī)都可以與用戶特定的基表匹配;②基表可以脫離刷卡機(jī)單獨(dú)工作??紤]到用戶刷卡過程中交互的數(shù)據(jù)量大,操作時(shí)間相對(duì)比較長(zhǎng)的問題,MCU 在刷卡機(jī)與基表的通信和基表數(shù)據(jù)的更新上做了許多保護(hù)性措施,可在刷卡結(jié)束后判斷是否刷卡成功,支持失敗后的可以重新刷卡?;聿糠值腗UP 在初次上電并進(jìn)入正常工作后,MCU 內(nèi)RAM 和FLASH 內(nèi)記錄了用戶水量等重要信息,絕不允許其掉電,原則上不會(huì)出現(xiàn)掉電現(xià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í)帶來了許多困難,不適合取下重新寫入程序。因此,在開發(fā)前編寫了GB32 的監(jiān)控程序及其在線編程系統(tǒng),通過串口便可方便對(duì)開發(fā)板上的GB32 編程。
4 售水系統(tǒng)設(shè)計(jì)
售水系統(tǒng)包括售水系統(tǒng)軟件和讀寫卡器。軟、硬件結(jié)合
4.1 售水系統(tǒng)軟件
售水系統(tǒng)實(shí)現(xiàn)發(fā)行IC 卡(開戶)、售水、用戶信息查詢、售水信息查詢、圖表打印、系統(tǒng)維護(hù)等功能。同時(shí)含有發(fā)行清零卡、反讀卡、工作卡、清卡、讀取反讀卡等卡操作,和用戶過戶、數(shù)據(jù)備份等功能。系統(tǒng)分管理員、操作員兩種模式進(jìn)入。管理員主要實(shí)現(xiàn)查詢、特殊功能和系統(tǒng)維護(hù)等操作;操作員主要實(shí)現(xiàn)查詢、特殊功能、開戶和售水等操作。
系統(tǒng)提供了多種查詢方式:
①用戶信息查詢:可根據(jù)用戶號(hào)、姓名、開戶日期、公司地址四種方式查詢用戶信息;
②售水信息查詢:管理員可以查詢統(tǒng)計(jì)售水情況,該功能模塊有四個(gè)字功能模塊,即組合查詢模塊、收盤統(tǒng)計(jì)模塊、按用戶名稱查詢模塊和黑名單統(tǒng)計(jì)模塊。
特殊功能有用戶過戶、數(shù)據(jù)備份、數(shù)據(jù)導(dǎo)入、清卡、讀反讀卡,管理員模式下多一個(gè)修改操作員密碼的功能。系統(tǒng)維護(hù)包括參數(shù)設(shè)置(具體參數(shù)有:每表附加費(fèi)、每噸附加費(fèi)、水價(jià)類型、卡類型、口徑、報(bào)警水量、透支水量、管理員、操作員、單位名稱)、發(fā)行清零卡、發(fā)行反讀卡、發(fā)行工作卡。開戶和售水是用水的前提,也是售水系統(tǒng)最基本的功能;開戶或每次售水后,相應(yīng)的數(shù)據(jù)均寫入數(shù)據(jù)庫(kù);如果用戶卡丟失,系統(tǒng)可以根據(jù)之前記錄補(bǔ)卡。
售水系統(tǒng)基于客戶服務(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)功能。
圖5 售水系統(tǒng)軟件功能模塊圖(操作員)
評(píng)論