崔鳳新,廖明燕
(1.集美大學誠毅學院,福建 廈門 361021;2.中國石油大學,山東 青島 257061)
單片機的電氣干擾可謂無所不在,例如電磁干擾、電源干擾、接插件接觸不良干擾等等,要排除這些問題,最佳方案是提升單片機系統(tǒng)的抗干擾等級,不過在已經(jīng)成型了的電路板中,通過軟件方案提升抗干擾等級也是一個可行的和較好的解決方法。
CNG加氣環(huán)境中的防爆等級要求非常高,人機交互控制系統(tǒng)必須做到本安級別,對電路板中的電容和電感都有嚴格的控制標準,要提升抗干擾等級顯得非常困難。同時在眾多的引線和人機交互設備 (鍵盤、CPU卡讀卡器、液晶)等,都是干擾的來源地。
在中石化要求的CNG加氣系統(tǒng)中,必須支持當前人民銀行發(fā)布的PBOC金融CPU卡規(guī)范,在CPU卡操作中,灰鎖之后的CPU卡如果沒有計算出解扣簽名GMAC,意味著這張卡就被灰鎖了,然而在單片機受到干擾時,程序可能會獲得一些錯誤數(shù)據(jù),例如某些字節(jié)變化了,或者加氣機單片機與卡機之間的通訊無法正常返回或者無法正常獲取,因而系統(tǒng)就無法繼續(xù)執(zhí)行了,同時由于安全上的要求,GMAC無法重新計算,一旦這個時刻發(fā)生這樣問題,意味著這張卡就無法被解灰,從而系統(tǒng)就無法正常運行。
要解決這個問題,必須先做一個假設,把系統(tǒng)拆分為各個功能模塊,相互之間沒有關聯(lián)的模塊就必須認定其運行時可靠的可信任的,這個假設很重要,因為在軟件層面解決問題是不能一鍋端。也就是加氣機控制系統(tǒng)分為電源、控制系統(tǒng)、CPU卡讀寫器、CPU卡、液晶、鍵盤、電磁閥等功能模塊。
在受到干擾時,各個單元的表現(xiàn)各不一樣,針對液晶顯示來說,系統(tǒng)會不斷刷新液晶,干擾過去了就正常了;針對鍵盤來說,受到干擾時鍵盤有可能失效,干擾后由人工重新操作即可,系統(tǒng)僅需要在邏輯上不怎么表現(xiàn)出來即可,另一方面是鍵盤操作的時候,一般都是系統(tǒng)空閑的時候,因此干擾產(chǎn)生的負面影響不大;單片機與卡機的通訊都是發(fā)生在有業(yè)務產(chǎn)生的時候,并且CPU卡的某些操作有著不可重復的限制,因此受到干擾的影響最大,解決干擾問題首要解決的問題就是這個問題。
從軟件層面解決單片機與卡機之間的通訊問題的辦法就是制定一個完善的通訊協(xié)議。首先,每條通訊指令的CRC或者BCC校驗已經(jīng)是所有設備通訊中的必備,而且目前來說在不增加成本的前提下也沒有見到比CRC或者BCC校驗更加完善的校驗機制。因此在假設中必須認定通過了CRC或者BCC校驗的指令就是被完整接收了的指令。從系統(tǒng)與卡機之間的交互中,最敏感的問題是某些步驟被執(zhí)行了沒有返回,或者某些步驟沒有被執(zhí)行,而單片機對這個狀態(tài)并不清楚,因此讓卡機中增加查詢指令是最佳選擇。也就是系統(tǒng)在超時沒有接收到卡機指令之時,通過查詢卡機的狀態(tài)來判斷系統(tǒng)真正執(zhí)行的步驟狀態(tài)。
規(guī)劃卡機狀態(tài)查詢涉及指令如下:
上位機發(fā)送本條指令,卡機接收到后,首先判斷上次接收指令有沒有執(zhí)行,執(zhí)行的對不對,如果沒有執(zhí)行,卡機返回狀態(tài)字節(jié)0x6A;如果執(zhí)行成功,返回0x59并上次指令執(zhí)行的結果數(shù)據(jù);如果執(zhí)行錯誤,返回0x4E。
圖1 卡機狀態(tài)查詢程序流程圖
從系統(tǒng)與卡機之間的交互中,最敏感的問題是某些步驟被執(zhí)行了沒有返回,或者某些步驟沒有被執(zhí)行,而單片機對這個狀態(tài)并不清楚,因此讓卡機中增加查詢指令是最佳選擇。也就是系統(tǒng)在超時沒有接收到卡機指令之時,通過查詢卡機的狀態(tài)來判斷系統(tǒng)真正執(zhí)行的步驟狀態(tài)??C狀態(tài)查詢程序流程如圖1所示。
重讀之后返回的數(shù)據(jù)就是之前沒接收到的數(shù)據(jù),因此可以直接送入之前的程序處理流程繼續(xù)運行。
通過系統(tǒng)日志分析,在使用本方法之前,通訊錯誤發(fā)生概率為千分之十五,使用本方法之后,通訊錯誤發(fā)生概率為萬分之五,大大降低了鎖卡的數(shù)量,系統(tǒng)穩(wěn)定性得以提高。在工程實踐中,在提高硬件系統(tǒng)抗干擾能力的同時,軟件抗干擾設計靈活、節(jié)省硬件資源、可靠性好,細致周到地分析干擾源,硬件與軟件抗干擾相結合,完善系統(tǒng)監(jiān)控程序,設計一個穩(wěn)定可靠的單片機系統(tǒng)是完全可行的。
[1]岳科峰.單片機控制系統(tǒng)的軟件抗干擾技術[J].儀器儀表用戶,2001,22(6):18 -19
[2]段仁君.單片機CPU抗干擾技術[J].微型機與應用,1996,(9):73 -74