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