5關鍵技術閥門驅動及反饋模塊雖然能完成驅動和反饋的功能,但是存在如下問題:閥門操作完成時刷卡機串行通信指示燈偶爾持續(xù)閃爍的現象。指示燈閃爍說明基本有數據發(fā)送到刷卡機,而閥門操作時不會有雙方的數據傳輸,因此初步分析為基本MCU復位(啟動代碼現象)。雖不是每次出現,但此現象的嚴重性不可忽略,MCU復位前一次水量記錄到復位時刻所用水量會丟失。根據反饋信號采樣電路可知,閥門操作完成時的電路功耗比較大,于是軟件上
5 關鍵技術
閥門驅動及反饋
模塊雖然能完成驅動和反饋的功能,但是存在如下問題:閥門操作完成時刷卡機串行通信
指示燈偶爾持續(xù)閃爍的現象。指示燈閃爍說明基本有數據發(fā)送到刷卡機,而閥門操作時不會有雙方的
數據傳輸,因此初步分析為基本
MCU復位(啟動代碼現象)。
雖不是每次出現,但此現象的嚴重性不可忽略,MCU 復位前一次水量記錄到復位時刻所用水量會丟失。根據反饋信號采樣電路可知,閥門操作完成時的電路功耗比較大,于是軟件上把采樣的時間間隔縮短,硬件上在添加了大容量
電容穩(wěn)定電壓,并經過
示波器顯示波形平穩(wěn),說明MCU 的供電正常。再一次做閥門試驗,發(fā)覺仍然存在上述問題,而且沒有任何改善。
用PC 機接收串行線上的數據,分析得出為MCU 上電復位的通信握手信號,至此可以確定上述現象是由基本MCU 復位造成。MCU 的復位情況有看門狗復位, RESET 鍵復位,程序死鎖復位,低電壓復位。進一步的試驗排除了前三者的可能性,問題的確出自低電壓,這說明閥門關閉的最后時刻功耗非常大,導致MCU 供電不足。硬件上要解決此問題,有兩種方法:① MCU 電源直接從串行線的
12V 轉換得來;② MCU 電源由另外的
電池提供,脫離現有的電池和串行線。兩種方法雖然能暫時解決問題,但考慮到其他各種以外情況,上述方法均不能徹底解決該問題。軟件上解決的辦法是禁止低電壓。系統(tǒng)復位狀態(tài)寄存器上LVD位控制著MCU 低電壓時復位是否允許,置1 則允許低電壓情況下的復位,置0 則不復位,F置LVD 位為0。問題解決后,用示波器顯示原電路MCU 管腳上電壓,結果與原先一樣,仍然看不出明顯變化?梢苑治鲩y門操作完成的瞬間,有毛刺影響了MCU 的工作。
前文提到的刷卡正常,是指刷卡過程中不隨便挪開卡,直到最好刷卡結束,這樣的刷卡過程能夠完成一次正確的卡操作;但如果在刷卡過程中把卡拿開,即使是一會兒,也可能導致刷卡失敗。刷卡過程是卡、刷卡機、基本三方通信的過程,除了三者之間交互的信息量大之外,還有寫卡、寫
FLASH操作,它們之間在時間上有先后順序,并且是分步進行,一旦前面操作完成而后面操作不能正常完成,那刷卡肯定就不會成功,而且先前的寫卡或寫FLASH 操作必然導致下次刷卡不成功。要解決此問題,必須把寫卡和寫FLASH 操作推遲到刷卡結束前一刻;鞰CU 程序首先開辟一塊FLASH 空間,專門用作存儲FLASH 中即將被修改的信息;不改變刷卡過程,而只是在刷卡結束前判斷是否刷卡成功,如果成功則結束,如果不成功則把原先備份的數據還原,系統(tǒng)又回復到刷卡前的狀態(tài)。對于寫卡,把表示是否刷卡的標志位和購水次數的寫入放到刷卡機與卡通信的最后第二步(最后一步發(fā)送成功與否的標志)。試驗證明上述方法非常有效,無數次測試過程中沒有出現一次錯誤。
6 結束語
非接觸式
IC卡工業(yè)水表已經完成開發(fā)。售水系統(tǒng)界面友善、操作簡便,操作員只需要輸入購水金額或者水量,系統(tǒng)便可完成數據庫更新、寫卡、打印**等工作;正常的刷卡,補卡后的刷卡,多次水量累積的刷卡,都不會丟失任何一次所購水量或者添加額外水量,刷卡后系統(tǒng)會顯示“本次購水”、“剩余水量”,如果此刻剩余水量較少,“水量報警”、“水量透支”或“透支關閥”也會相應顯示,如果購水后水量較多,上