提高單片機(jī)系統(tǒng)可靠性的設(shè)計方法
目前,大量的嵌入式系統(tǒng)均采用了單片機(jī),并且這樣的應(yīng)用正在更進(jìn)一步擴(kuò)展;但是多年以來人們一直為單片機(jī)系統(tǒng)的可靠性問題所困惑。在一些要求高可靠性的控制系統(tǒng)中,這往往成為限制其應(yīng)用的主要原因。 1 單片機(jī)系統(tǒng)的失效分析一個單片機(jī)系統(tǒng)的可靠性是其自身軟硬件與其所處工作環(huán)境綜合作用的結(jié)果,因此系統(tǒng)的可靠性也應(yīng)從這兩個方面去分析與設(shè)計。對于系統(tǒng)自身而言,能不能在保證系統(tǒng)各項功能實現(xiàn)的同時,對系統(tǒng)自身運(yùn)行過程中出現(xiàn)的各種干擾信號及直接來自于系統(tǒng)外部的干擾信號進(jìn)行有效的抑制,是決定系統(tǒng)可靠性的關(guān)鍵。有缺陷的系統(tǒng)往往只從邏輯上去保證系統(tǒng)功能的實現(xiàn),而對于系統(tǒng)運(yùn)行過程中可能出現(xiàn)的潛在的問題考慮欠缺,采取的措施不足,在干擾信號真正襲來的時候,系統(tǒng)就可能會陷入困境。任何系統(tǒng)的可靠性都是相對的,在一種環(huán)境下能夠很好工作的系統(tǒng)在另一種環(huán)境下卻有可能是很不穩(wěn)定的。這就充分說明環(huán)境對系統(tǒng)可靠運(yùn)行的重要性。在針對系統(tǒng)運(yùn)行環(huán)境去設(shè)計系統(tǒng)的同時,應(yīng)盡量采取措施改善系統(tǒng)運(yùn)行的環(huán)境,降低環(huán)境干擾,但這樣的措施往往比較有限。 2 提高可靠性的措施提高單片機(jī)系統(tǒng)可靠性的方法與措施很多。一般地,應(yīng)根據(jù)系統(tǒng)所面臨的具體的可靠性問題,針對引起或影響系統(tǒng)不可靠的因素采取不同的處理措施。這些措施一般從這樣兩個目的出發(fā):第一,盡量減少引起系統(tǒng)不可靠或影響系統(tǒng)可靠的外界因素;第二,盡量提高系統(tǒng)自身抗干擾能力及降低自身運(yùn)行的不穩(wěn)定性。例如,為了抑制電源的噪聲和環(huán)境干擾信號而采用的濾波技術(shù)、隔離技術(shù)、屏蔽技術(shù)等都是出于第一個目的;另外,針對系統(tǒng)自身而采用的看門狗電路、軟件抗干擾技術(shù)、備份技術(shù)等均是出于第二個目的而采取的措施。其中第一類的措施較常使用,其使用簡單而且效果也較好,但其對系統(tǒng)可靠性的提高是有限的,許多情況下不能滿足系統(tǒng)的要求。第二類措施的使用可以更進(jìn)一步提高系統(tǒng)的可靠性,往往在高可靠性的系統(tǒng)設(shè)計中被廣泛使用。下面就第二類技術(shù)使用中的一些相關(guān)問題作進(jìn)一步的分析。2.1 用監(jiān)視定時器技術(shù)提高系統(tǒng)的可靠性監(jiān)視定時器(watchdog)技術(shù)現(xiàn)在使用得非常廣泛,技術(shù)已較為成熟,這一技術(shù)的支持手段也很多。目前,各處理器的生產(chǎn)廠家?guī)缀醵荚谏a(chǎn)內(nèi)置有看門狗定時器的單片機(jī)產(chǎn)品,市場上還有許多獨(dú)立的看門狗定時器芯片可供選擇。要實現(xiàn)這樣的電路已經(jīng)較為容易,因此這里對于如何實現(xiàn)這一技術(shù)的一般細(xì)節(jié)不作詳細(xì)的論述,僅就采用此技術(shù)所導(dǎo)致的可重人性問題進(jìn)行分析。采用監(jiān)視定時器技術(shù)后,一旦程序跑飛,系統(tǒng)立即會被監(jiān)視定時器復(fù)位掉,從頭重新啟動系統(tǒng),從而退出不正常的運(yùn)行狀態(tài),但是這樣使用時必須注意系統(tǒng)的可重人性。所謂系統(tǒng)的可重人性可以這樣來定義:當(dāng)一個微處理器系統(tǒng)在重新復(fù)位啟動以后,系統(tǒng)對外的執(zhí)行操作不因重新啟動而改變,或者說這種改變是能夠容忍的,從而保證整個系統(tǒng)對外操作的連續(xù)性和順序性,也就是系統(tǒng)最終的安全性和可靠性。對于一個系統(tǒng),如果它對外的控制操作只與系統(tǒng)當(dāng)前的輸入狀態(tài)有關(guān),那么這個系統(tǒng)就幾乎具有完全的重入性能;相反,如一個系統(tǒng)對外的輸出操作不僅與系統(tǒng)當(dāng)前的輸入相關(guān),而且與系統(tǒng)的歷史狀態(tài)有關(guān),那么如果系統(tǒng)重入時系統(tǒng)的歷史狀態(tài)沒有保留或者歷史狀態(tài)被破壞,那么此時系統(tǒng)對外的操作就可能完全是錯誤的,這樣的系統(tǒng)雖然在看門狗定時器的作用下退出了不正常的運(yùn)行狀態(tài),但重入的狀態(tài)也不會正常,那么這樣的系統(tǒng)也只能是病態(tài)的系統(tǒng),不能使用。因此,對于采用了看門狗電路來提高可靠性的系統(tǒng),必須嚴(yán)格保證系統(tǒng)的可重入性。對于與歷史狀態(tài)相關(guān)的系統(tǒng),為保證其重入性能,可以把其歷史狀態(tài)保存在系統(tǒng)的ram中,即在單片機(jī)系統(tǒng)的內(nèi)存或其擴(kuò)展的外部存儲器中,開辟出專用于保存歷史狀態(tài)的緩沖區(qū)。在確保系統(tǒng)不掉電的情況下,這些歷史數(shù)據(jù)在系統(tǒng)重入時可以被重新使用。如果不能保證系統(tǒng)的電源穩(wěn)定,還必須考慮采用備用電池供電,以保證ram數(shù)據(jù)的安全穩(wěn)定;對于時間不是太敏感的系統(tǒng),還可以采用e2prom或flash rom來保存歷史數(shù)據(jù)。2.2軟件抗干擾技術(shù)一個系統(tǒng)可能由于存在著各種干擾及不穩(wěn)定因素而出現(xiàn)運(yùn)行故障。為解決這一問題,可以從程序的設(shè)計方面采取一些措施。傳統(tǒng)的為抑制系統(tǒng)的干擾信號而經(jīng)常采用的軟件濾波技術(shù)、軟件冗余設(shè)計就是這一類的典型應(yīng)用。根據(jù)設(shè)計經(jīng)驗,通常還可以采用軟件鎖設(shè)計、程序陷阱設(shè)計。這一類方法主要是針對程序跑飛的情況而采用的。當(dāng)系統(tǒng)在干擾信號的作用下