新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 提高單片機(jī)應(yīng)用系統(tǒng)可靠性的軟件技術(shù)

提高單片機(jī)應(yīng)用系統(tǒng)可靠性的軟件技術(shù)

作者: 時間:2012-03-21 來源:網(wǎng)絡(luò) 收藏

1 設(shè)計(jì)模型與概述

本文引用地址:http://www.butianyuan.cn/article/171822.htm

設(shè)計(jì)模型表達(dá)了從激勵到響應(yīng)的唯一性過程。設(shè)計(jì)模型如圖1所示,按照可靠性設(shè)計(jì)模型,軟件設(shè)計(jì)的主要任務(wù)是保證在過程空間中,程序按照給定順序有序地運(yùn)行。軟件設(shè)計(jì)的可靠性保障是軟件設(shè)計(jì)中的本質(zhì)可靠性與可靠性控制。它保障了最少的軟件錯誤以及在軟件出錯后仍保證系統(tǒng)能正常運(yùn)行或安全運(yùn)行。

2 本質(zhì)可靠性的軟件設(shè)計(jì)

2.1 最大限度地減少錯誤及缺陷

在應(yīng)用軟件中,唯一的有序性(編程指定的)與無限的激勵因素,導(dǎo)致了軟件測試仿真的不完全性,其結(jié)果是軟件的缺陷與軟件并存。軟件的缺陷與錯誤通??煞譃轱@性與隱性兩大類。顯性缺陷與錯誤發(fā)生在程序正常運(yùn)行中。這些缺陷和錯誤大部分都可通過仿真調(diào)試進(jìn)行糾正;隱性缺陷與錯誤通常都在系統(tǒng)非正常運(yùn)行中顯露出來。容錯能力弱的系統(tǒng)存在較多的隱性錯誤。

2.2 要有足夠的時序余度

時序是程序設(shè)計(jì)中必須考慮的問題。在應(yīng)用程序設(shè)計(jì)應(yīng)考慮的時序有系統(tǒng)復(fù)位時序、狀態(tài)時序、器件工作時序及總線運(yùn)行時序。

(1)系統(tǒng)復(fù)位時序

①M(fèi)CU復(fù)位時序要求。MCU有上電復(fù)位(冷啟動復(fù)位,如開機(jī))與信號復(fù)位(熱啟動,如按鍵復(fù)位)。上電復(fù)位有電源建立及時鐘系統(tǒng)起振過程和電路狀態(tài)復(fù)位。信號復(fù)位是在MCU工作狀態(tài)下的復(fù)位,沒有電源建立及時鐘起振過程的時序要求。

中多個復(fù)位端的時序要求。當(dāng)一個系統(tǒng)中,除外,還有其他可編程外圍器件,如8155有復(fù)位要求時,系統(tǒng)中便出現(xiàn)了多個復(fù)位控制要求。解決系統(tǒng)中多個器件復(fù)位時序的原則是:保證MCU在系統(tǒng)中最后復(fù)位或MCU對外圍可編程器件的初始化,必須確保在該器件復(fù)位后進(jìn)行。

③程序設(shè)計(jì)中的復(fù)位處理原則。

·MCU上電后延遲片刻,確保外圍器件復(fù)位完畢,再對外圍器件初始化。

·在確保MCU對有復(fù)位控制端口的外圍器件初始化是完全初始化操作時,可將外圍器件的復(fù)位端接成非復(fù)位狀態(tài)。

(2)器件工作時序

器件工作時序是器件應(yīng)用程序設(shè)計(jì)的基礎(chǔ)。程序設(shè)計(jì)中必須保證時序工作的正確性,而且要有足夠的余度。在考慮器件運(yùn)行時序時,MCU的操作必須保證時序信號的銜接控制和時序信號的時序余度。

(3)狀態(tài)轉(zhuǎn)換時序

在狀態(tài)轉(zhuǎn)換的程序設(shè)計(jì)中,應(yīng)根據(jù)狀態(tài)轉(zhuǎn)換的時序特點(diǎn),進(jìn)行精心的時序控制設(shè)計(jì)。通常,MCU本身的狀態(tài)轉(zhuǎn)換,如復(fù)位、ID、PD方式的進(jìn)入或退出,片內(nèi)外圍集成電路單元的關(guān)斷與運(yùn)行,都有自動監(jiān)視、自動運(yùn)行管理功能。程序設(shè)計(jì)只須按MCU數(shù)據(jù)手冊及指令系統(tǒng)的操作要求進(jìn)行即可。對于有較長過渡時間的外圍狀態(tài)轉(zhuǎn)換過程,可采取足夠的延時等待或設(shè)置提前轉(zhuǎn)換狀態(tài)的辦法。

(4)總線時序

應(yīng)用系統(tǒng)中,有并行總線與串行總線。串行總線中又有通信總線和擴(kuò)展總線。這些總線在規(guī)范化操作時,其時序由數(shù)據(jù)通信協(xié)議保證。在非規(guī)范運(yùn)行,例如在虛擬總線方式下,其虛擬總線運(yùn)行的可靠性在于時序的準(zhǔn)確模擬。在并行總線中要保證讀、寫操作指令運(yùn)行下的讀、寫時序;同步串行總線要保證時鐘線控制下的同步運(yùn)行時序;串行異步時序則要考慮波特率對數(shù)據(jù)傳送的影響。

2.3 足夠的容錯設(shè)計(jì)

(1)超時管理的容錯設(shè)計(jì)

在系統(tǒng)程序中,除了專門設(shè)置的循環(huán)等待程序外,系統(tǒng)中的許多操作都是時間有界的。由于非正常激勵的入侵,導(dǎo)致任務(wù)操作無法結(jié)束,形成超時現(xiàn)象。解決措施:在程序設(shè)計(jì)中采用超時管理辦法,使程序從非正常激勵造成的“死機(jī)”中退出。

(2)超界管理的容錯設(shè)計(jì)

系統(tǒng)中實(shí)際運(yùn)行的參數(shù)都是有界的。系統(tǒng)運(yùn)行中要考慮的超界管理參數(shù)有:

①物理參數(shù)。這些參數(shù)主要是系統(tǒng)的輸入?yún)?shù),它包括激勵參數(shù)、采集處理中的運(yùn)行參數(shù)和處理結(jié)束的結(jié)果參數(shù)。合理設(shè)定這些邊界,將超出邊界的參數(shù)都視為非正常激勵或非正常響應(yīng)進(jìn)行出錯處理。

②資源參數(shù)。這些參數(shù)主要是系統(tǒng)中的電路、器件、功能單元的資源,如存儲器容量、存儲單元長度、堆棧深度。在程序設(shè)計(jì)中,對資源參數(shù)不允許超界使用。

③應(yīng)用參數(shù)。這些應(yīng)用參數(shù)常表現(xiàn)為一些器件、功能單元的應(yīng)用條件。如E2PROM的擦寫次數(shù)與數(shù)據(jù)存儲時間等應(yīng)用參數(shù)界限。

④過程參數(shù)。指系統(tǒng)運(yùn)行中的有序變化的參數(shù)。

(3)有序化的容錯設(shè)計(jì)

有序化是程序正常運(yùn)行的重要標(biāo)志,是程序設(shè)計(jì)人員賦予的。有序化的容錯設(shè)計(jì)是要保證在眾多的非正常激勵和出現(xiàn)非正常響應(yīng)時,要最大限度地保證原來程序設(shè)計(jì)時給定的有序的正常程序操作。

3 可靠性控制的軟件設(shè)計(jì)

3.1 噪聲失敏控制技術(shù)

(1)噪聲失敏與噪聲失敏率

噪聲失敏是利用CPU停止運(yùn)行或關(guān)閉MCU外圍電路,使其對外界噪聲干擾失去響應(yīng)能力的可靠性控制技術(shù)。噪聲失敏率NTOUT是在實(shí)際系統(tǒng)中,采取噪聲控制后,系統(tǒng)或電路對噪聲失敏的時間概率,

NTOUT可由下式估算:

TLOP為系統(tǒng)運(yùn)行總時間,通常為系統(tǒng)開機(jī)時間;TOP為MCU中CPU的運(yùn)行時間或電路系統(tǒng)的工作狀態(tài)時間;

TLOP-TOP為單片機(jī)CPU停止運(yùn)行或外圍電路被關(guān)斷的時間。

(2)噪聲失敏控制的

①按噪聲失敏設(shè)計(jì)最有效的程序結(jié)構(gòu)。盡量減少應(yīng)用程序中的循環(huán)等待;盡量集中安排任務(wù)和任務(wù)中的有效運(yùn)行時間;及時關(guān)斷不在有效運(yùn)行的電路單元。

②MCU的休眠與掉電。通常,與CPU停止運(yùn)行的低功耗方式主要有關(guān)斷CPU時鐘的休閑ID方式和關(guān)斷系統(tǒng)時鐘的掉電PD方式。

③外圍電路關(guān)斷。外圍電路可通過電源供電的關(guān)斷控制。具有關(guān)斷功能的外圍電路,可采取引腳控制關(guān)斷或編程控制的辦法,使之進(jìn)入失敏狀態(tài)。

3.2 程序失控的回復(fù)技術(shù)

(1)程序失控后的快速凍結(jié)與回復(fù)

①WDT(Watch Dog Timer)的失控回復(fù)。如圖2所示。在程序失控后,程序跳逸出正常路徑,無法對WDT清零,致使WDT溢出。溢出端輸出信號使MCU復(fù)位。

②指令的失控恢復(fù)。如89C51中采用LJMP0000H的軟件陷阱時,將輸入陷阱的失控程序強(qiáng)行跳轉(zhuǎn)到復(fù)位入口0000H處。

(2)失控回復(fù)后的處理

①回復(fù)狀態(tài)檢測?;貜?fù)是指程序失控后又轉(zhuǎn)回到正常路徑的起點(diǎn),即復(fù)位入口地址。程序失控回復(fù)后要進(jìn)行回復(fù)狀態(tài)檢測,以判斷是上電復(fù)位還是WDT復(fù)位或指令拉回。通常采用的檢測方法是利用上電標(biāo)志。有些單片機(jī)內(nèi)沒有上電標(biāo)志,可利用上電復(fù)位時SRAM的隨機(jī)態(tài)與信號復(fù)位或程序拉回時,SRAM中數(shù)據(jù)不變的特點(diǎn)來判別。系統(tǒng)上電后,在SRAM區(qū)寫入特殊上電標(biāo)志數(shù)據(jù)。待回復(fù)后先檢查上電標(biāo)志是否存在,若存在即為WDT復(fù)位或指令拉回。

②回復(fù)后的初始化處理。圖3是上電復(fù)位與程序失控回復(fù)初始化處理框圖。0000H是MCU的復(fù)位入口,程序啟動后,首先判斷是上電復(fù)位(冷啟動),還是程序失控回復(fù)(熱啟動)。上電復(fù)位是開機(jī)操作,要建立上電標(biāo)志,并進(jìn)行系統(tǒng)的完全初始化。程序失控回復(fù)應(yīng)進(jìn)行相關(guān)資源的檢查與修復(fù),以防止運(yùn)行出錯。另外根據(jù)系統(tǒng)的特點(diǎn),需要保留一些過程數(shù)據(jù)。

不得進(jìn)行完全初始化時,只進(jìn)行部分初始化。

3.3 安保、自檢與修復(fù)技術(shù)

在高可靠性等級的單片機(jī)應(yīng)用系統(tǒng)中,軟件設(shè)計(jì)中應(yīng)有安保、自檢與自修復(fù)軟件。

(1)安保程序設(shè)計(jì)。安保設(shè)計(jì)要求有非正常響應(yīng)時,對象的完全性保障和系統(tǒng)的可持續(xù)運(yùn)行。為了能在系統(tǒng)出現(xiàn)非正常響應(yīng)時,立即獲得安全保護(hù),應(yīng)設(shè)置關(guān)鍵部位的失控檢測,如I/O口輸出狀態(tài)實(shí)時檢測;機(jī)器人軌跡檢測等。檢測到非正常響應(yīng)后,應(yīng)快速進(jìn)入安保狀態(tài)設(shè)置,首先使系統(tǒng)進(jìn)入安全態(tài),然后保護(hù)系統(tǒng)的關(guān)鍵資源不受侵害,以保證系統(tǒng)具有后續(xù)運(yùn)行的操作的能力。

(2)實(shí)際系統(tǒng)中的自檢。在實(shí)際的單片機(jī)應(yīng)用軟件中,應(yīng)充分利用其智能化特點(diǎn),設(shè)置各種自檢程序以其可靠性與安全性。通常,應(yīng)用系統(tǒng)中的自檢程序有自診斷,失控后的回復(fù)檢查和程序關(guān)鍵處的查驗(yàn)。程序自診斷通常是開機(jī)后對系統(tǒng)的例行檢查;失控回復(fù)后的檢查重點(diǎn)是數(shù)據(jù)區(qū),I/O狀態(tài),SFR狀態(tài),外圍電路的狀態(tài)等。程序關(guān)鍵處的查驗(yàn)有界限檢查、冗余性檢查與邏輯性檢查。

3.4 系統(tǒng)的結(jié)構(gòu)冗余

由于系統(tǒng)結(jié)構(gòu)的簡化,電路的集成趨勢,器件成本的下降,邏輯控制能力的,在關(guān)鍵部位可采取冗余的備份結(jié)構(gòu)來系統(tǒng)的可靠性。圖4為實(shí)際應(yīng)用中某監(jiān)控系統(tǒng)的具有獨(dú)立仲裁器的雙機(jī)冗余系統(tǒng)。仲裁器的輸入邏輯接收兩個系統(tǒng)的輸出數(shù)據(jù)與故障信息;輸出邏輯接收比較器A、B的比較結(jié)果和故障處理信號發(fā)生器的切換信號。仲裁器的故障判斷原理如下:對兩個同步工作系統(tǒng)輸出的數(shù)據(jù)進(jìn)行比較,比較結(jié)果一致表明兩個系統(tǒng)均無故障;比較結(jié)果不同表明,必有一個系統(tǒng)出現(xiàn)故障,然后強(qiáng)令兩個系統(tǒng)進(jìn)入自檢程序,用預(yù)先設(shè)定的參數(shù)進(jìn)行測試,并與預(yù)定結(jié)果比較,相符者為正常開機(jī),不符者為故障機(jī)。若為暫時性故障,重新復(fù)位即可排除,若為永久性故障則輸出故障信號并進(jìn)入單機(jī)運(yùn)行。

4 結(jié)束語

可靠性是一個綜合性、經(jīng)驗(yàn)性較強(qiáng)的問題,是單片機(jī)控制器能否成功應(yīng)用的關(guān)鍵問題。上述提高單片機(jī)應(yīng)用系統(tǒng)可靠性的與方法應(yīng)用于多項(xiàng)應(yīng)用工程,使多項(xiàng)工程在高可靠性硬件基礎(chǔ)上,保障了最少的軟件錯誤以及在軟件出錯后仍保證系統(tǒng)正常運(yùn)行或安全運(yùn)行。

參考文獻(xiàn):
[1]楊華舒,復(fù)濤.單片計(jì)算機(jī)系統(tǒng)抗干擾的軟件途徑[J].電子技術(shù)應(yīng)用,2001,(3).
[2]何立民.單片機(jī)高級教程[M].北京:北京航空航天出版社,2001.



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉