摘 要:隨著使用軟件和微處理器控制各種嵌入式設備的增加,對嵌入式系統的快速測試變得越發重要,根據統計,當前嵌入式系統的硬件故障率曾下降的趨勢,同時軟件的故障率卻不斷的攀升。本文介紹了嵌入式軟件測試關鍵技術,通過對軟件和硬件的結合、加強對其監控、進行總體優化設計等措施,提高嵌入式系統運行的可靠性。
關鍵詞:嵌入式系統;控制系統;可靠性設計
1 嵌入式系統的可靠性
國際電機工程師協會提出嵌入式系統是控制、監視或者輔助裝置、機器和設備運行的裝置。嵌入式系統是軟件、硬件的組合,同時包括機械附屬裝置。硬件系統是軟件運行的基礎,硬件系統的質量好壞容易通過直觀判斷,一般通過對其外觀檢查和測試,對其質量、性能進行評估。軟件系統的研發受研發人員對需求認識、對硬件系統掌握的程度、實踐的經驗積累、編程設計能力等方面影響,所以對軟件系統的可靠性評估工作較為困難。嵌入式系統運行失效會導致災難性的后果,由于大批量生產從而使生產企業遭受一定的經濟損失,在產品出產前必須對對嵌入式系統,包括硬件、軟件和系統進行嚴格的測試 [1]。
2 程序總體結構的優化設計
嵌入式系統是以控制為主,軟硬件結合緊密,功能性操作復雜,模塊互相調頻繁,外部工作環境多樣,容易干擾別和被干擾,且執行錯誤會導致整個系統的崩潰。在嵌入式軟件的設計過程中注重軟件、硬件之間接口的冗余性、預防性設計。設計時采用看門狗電路、狀態保存等技術設計。軟件鎖和程序陷阱設計等抗干擾技術以,通過備份技術進行系統容錯的設計。系統的有序運行,取決于頂層軟件程序協調和控制下級單元一起工作,低層軟件保持與頂層軟件同步可靠的運行。
嵌入式微處理器控制系統軟件、硬件相輔相成,硬件是軟件的基礎,軟件使硬件充分高效地運行,以完成自動化、智能化控制。提高軟件運行的可靠性,編寫軟件中對硬件作深入全面的研究、科學、合理地規劃各個軟件模塊,使其在不同的時間使用硬件資源,盡量避免不同程序模塊同時使用同一硬件資源。開始軟件編寫工作要深入學習硬件結構及其提供的資源,使軟件編寫更加合理性、規劃性和科學性,最終形成高質量的軟件系統。人性化設計指軟件執行過程中的人機交互符合計算機使用者的心理特點,明確系統使用者心理特點的基礎上,分析低層次的界面人性化設計中界面元素與幫助的人性化及高層次的功能結構人性化設計等方面。系統目標細化,設計人員根據總體任務需求,將現有的硬件條件和工作環境,將任務分解成數個相互聯系、獨立運行的控制單元模塊,每個控制單元模塊完成有自己的主要任務及配屬任務,使各個控制單元模塊負荷平均。以上為系統重點設計部分,可將一個復雜問題分解為幾個簡單易解的問題,并行運行的提高系統能力,從而現用幾個簡單運算解決復雜問題的能力,這樣可以大大提高系統的工作效率,還可以大大減輕中央處理器的負擔,同時全面提高系統的可靠性。每個控制單元模塊同單元模塊之間具有獨立性,最大程度的減少彼此之間的依賴性,每當其中一個控制單元模塊工作不正常時,不會影響系統正常運行,每個控制單元模塊的功能設計不易太大,需考慮每個控制單元模塊之間的負荷保持均衡,控制單元模塊對系統硬件資源的占用的時間不能太常,但采取冗余設計是非常必要的。硬件資源中加入節能控制設計,比如運行中改變中央處理器運行頻率、中央處理器空閑模式等。節能設計可減少系統電能的消耗,在減少電能損耗時,可降低中央處理器和硬件電路中電子元器件的溫度,從而延長系統硬件的使用壽命,同時可以大大提高軟件運行的可靠性。
3 程序設計中的具體措施
軟件系統中,子程序運行會受到本身設計的缺陷、內外部電磁干擾、工作環境的溫度等因素的影響。如果系統程序本身設計存在缺陷,可采用備用子程序進行替換,如果是系統硬件電路運行不可靠,軟件設計做出相關的預警,提示操作人員及時進行排除。在系統子程序運行中的狀態參數通過硬件的特定位置做出標識,供給系統監控函數和系統主程序使用。運行狀態標志位是根據系統電路結構、硬件資源進行設計。雖然在高性能微處理器、優化電路的設計情況下,軟件程序的可靠性較強,但程序可能還會出現一些不可意料的問題,即使硬件系統進行高水平的設計,其軟件程序運行過程中的監控設計作為提高軟件系統可靠性的要點。當多個子程序共同完成一目標協調工作時,不可避免的存在不協調的情況,只要科學合理的處理,一般不影響太大。對于受到內外環境的電磁干擾、偶然發生的子程序運行失效問題,改進軟件算法進行解決,比如采用多次運算,去掉最大值部分和最小值部分,進行平均值計算等算法。當頻繁出現運行失效情況時,分析是程序設計存在缺陷還是硬件資源沖突或硬件本身出現故障。如果軟件程序設計存在一定缺陷,可通過調用備用程序予以解決。當因硬件資源存在沖突,可重新掃描硬件資源,調整硬件資源占用的時間與空間。動態軟件缺陷測試技術是發現和消除軟件缺陷的重要手段。在對軟件程序存在缺陷進行檢測時,可采用混合執行測試初始輸入評估和選擇方法,該方法結合部分控制流敏感的細粒度污點分析、符號執行。可通過識別、計算不同備選初始輸入覆蓋容易觸發缺陷的危險路徑的能力,來為混合執行測試評估和選擇合適的初始輸入,可有效的提高混合執行測試的缺陷檢測效果[2]。
嵌入式軟件既是系統的核心,作為硬件系統的有效補充,需要具備防錯、判錯、糾錯和容錯等功能,具備了這些功能,可以保證系統可靠性要求在軟件分系統設計中的實現。但是軟件可靠性又不同于硬件電路,它不會隨時間的推移而降低,其可靠性保障全部在設計過程中實現。
參考文獻
[1]徐忠兵.嵌入式軟件可靠性測試用例自動生成技術的研究與實現[D].國防科學技術大學,2009.
[2]孫輝.嵌入式軟件質量體系和軟件質量自動評價系統的研究[D].東華大學,2010.
(作者單位:中國航空工業集團公司洛陽電光設備研究所)