淺論嵌入式系統(tǒng)離線測試
引言
隨著嵌入式系統(tǒng)的發(fā)展,迫切需要在嵌入式系統(tǒng)開發(fā)階段對嵌入式系統(tǒng)進(jìn)行離線測試與分析,以保證系統(tǒng)的軟件應(yīng)用程序、硬件具有兼容性、高可靠性和高可用性,迅速發(fā)現(xiàn)并準(zhǔn)確定位系統(tǒng)中存在的問題。本文結(jié)合上海貝爾阿爾卡特股份有限公司開發(fā)的寬帶交換系統(tǒng),討論離線單板硬件測試方法和系統(tǒng)測試方法。
離線單板硬件測試概述
在寬帶交換機(jī)系統(tǒng)中,離線測試包括自檢測試和一般的離線測試。自檢測試是單板初始化完成后為了保證板子的正確運(yùn)轉(zhuǎn)進(jìn)行的測試。它主要包括看門狗測試、快速硬件器件測試和下載通路測試??焖儆布y試完成寄存器測試和單板上單個(gè)硬件設(shè)備測試,其中又包括許多測試項(xiàng)。如果某一測試項(xiàng)測試失敗,整個(gè)測試就會(huì)停止直到看門狗超時(shí)重啟系統(tǒng)。下載測試是為了保證軟件下載功能能正常工作而進(jìn)行的測試。這項(xiàng)測試主要完成通信接口收發(fā)數(shù)據(jù)測試、中斷功能測試。而一般的離線測試是在出廠檢驗(yàn)、開發(fā)階段中的檢測和維修診斷時(shí)對上述的各測試項(xiàng)進(jìn)行更具體的測試,以定位單板上的出錯(cuò)位置。
看門狗測試
在做任何一項(xiàng)硬件測試之前必須完成看門狗測試。這是因?yàn)橐豁?xiàng)硬件測試失敗之后需要重啟系統(tǒng),而硬件測試的失敗通常是以看門狗超時(shí)為判斷條件的。這就需要看門狗在硬件測試時(shí)能正常工作??撮T狗測試方法是設(shè)置并激活一個(gè)1秒的看門狗,等待1秒后系統(tǒng)重啟。
Flash測試
在Flash中可存放程序,也可以存放數(shù)據(jù)。在燒錄Flash時(shí),可存放預(yù)先計(jì)算好的checksum值。要測試Flash時(shí),程序重新計(jì)算checksum,然后與預(yù)先存放的值進(jìn)行比較。
數(shù)據(jù)Flash的測試方法有兩種。一種是非破壞性的基本測試,主要是checksum測試。另一種是破壞性的擴(kuò)展測試,包括讀寫測試和地址/數(shù)據(jù)總線測試,具體方法與內(nèi)存測試一致?;緶y試可在系統(tǒng)自檢時(shí)使用,擴(kuò)展測試可在維修診斷時(shí)采用。
內(nèi)存測試
內(nèi)存測試可分為三類:
1. 數(shù)據(jù)總線測試: 將0001循環(huán)左移并寫入內(nèi)存,然后讀出并比較測試。
2. 內(nèi)存區(qū)測試: 對內(nèi)存所有存儲(chǔ)單元進(jìn)行讀寫測試(讀寫5555H和AAAAH測試)。
3. 地址總線測試:對內(nèi)存所有存儲(chǔ)單元進(jìn)行地址累加測試。從RAM的基地址起,在每一個(gè)存儲(chǔ)單元(按照總線寬度)中寫入不同的值(遞增值),地址遞增,直至所有的存儲(chǔ)單元都保存不同的內(nèi)容,然后讀出并進(jìn)行檢驗(yàn)。
地址總線測試還可采用快速測試的方法:對0x1地址的內(nèi)存單元寫入地址值0x1,地址值循環(huán)左移,依次將相應(yīng)的地址值寫入相應(yīng)的內(nèi)存地址,最后檢驗(yàn)。
在本文的系統(tǒng)中,自檢測試時(shí)只包括內(nèi)存區(qū)測試。并且,由于測試時(shí)間的限制,只是隨機(jī)選擇內(nèi)存的一些頁面進(jìn)行讀寫測試。對于其它的內(nèi)存測試方法,可以用于出廠檢驗(yàn)、開發(fā)階段中的檢測和維修診斷。
主控芯片測試
主控芯片測試主要是對主控芯片進(jìn)行定時(shí)器測試、寄存器測試、中斷測試和片內(nèi)RAM測試。寄存器測試是對一些特殊寄存器的功能進(jìn)行測試,以驗(yàn)證CPU寄存器是否能正常工作。中斷測試是人為產(chǎn)生一些硬件中斷,檢測主控芯片對中斷的反應(yīng),是否能及時(shí)標(biāo)志中斷寄存器的相應(yīng)標(biāo)志位。片內(nèi)內(nèi)存測試則遵循一般內(nèi)存測試規(guī)則。
PLD/FPGA簡單測試
在寬帶交換機(jī)系統(tǒng)中,較大的FPGA常實(shí)現(xiàn)較復(fù)雜的功能。在測試時(shí)要對相關(guān)的功能進(jìn)行詳細(xì)的功能測試。而對于其它簡單的小型PLD/FPGA則尋求自測的方法,在PLD或FPGA的編制過程中,適當(dāng)?shù)募尤胍恍┳詼y手段。當(dāng)主控芯片要測試它們時(shí),設(shè)置和讀取相應(yīng)的PLD或FPGA的測試接口,從而獲得測試結(jié)果。
PCI總線測試
PCI總線常用于連接處理器和各類外設(shè)。它提供了一個(gè)低時(shí)延路徑,使處理器能夠直接存取任何映射在存儲(chǔ)器或I/O地址空間的PCI設(shè)備。它還提供一個(gè)高帶寬路徑,允許PCI主設(shè)備直接到主存儲(chǔ)器存取。測試方法是先測試是否能正確讀寫PCI配置空間寄存器,然后測試內(nèi)存映射是否可以在兩端正確讀寫。
嵌入式系統(tǒng)離線測試方法
增量測試模型
在單板測試完成后,系統(tǒng)集成在一起之后有可能仍不能正常工作。主要原因是,模塊相互調(diào)用時(shí)接口會(huì)引入許多新問題。例如,數(shù)據(jù)經(jīng)過接口可能丟失;一個(gè)模塊對另一模塊可能造成不應(yīng)有的影響;模塊之間的硬件連接不正確也可能造成通信不暢;誤差不斷積累達(dá)到不可接受的程度等等。所以需要通過綜合測試來發(fā)現(xiàn)各種錯(cuò)誤。
如果把所有模塊按設(shè)計(jì)要求一次全部組裝起來,然后直接運(yùn)行系統(tǒng)軟件,這稱為非增量式集成。這種方法易出現(xiàn)混亂,在改正一個(gè)錯(cuò)誤時(shí)又可能引入新的錯(cuò)誤,新舊錯(cuò)誤混雜,更難斷定出錯(cuò)的原因和位置。增量式集成方法通過測試軟件一段一段地?cái)U(kuò)展,測試的范圍一步一步地增大,來逐步定位錯(cuò)誤和糾正。根據(jù)系統(tǒng)的不同特點(diǎn)可以采用兩種增量式集成模型:自底向上集成和自頂向下集成。
寬帶機(jī)架系統(tǒng)由主控板和其它單板組成,離線系統(tǒng)測試軟件采用自頂向下集成的方法。由主控板將各個(gè)單板的系統(tǒng)測試程序通過網(wǎng)絡(luò)下載到目的板,然后主控板通過深度優(yōu)先策略搜索單板。首先主控板發(fā)送消息到直連的單板,如果主控板、單板之間連線正確,且單板硬件及軟件工作正常,單板收到消息后將自己的相關(guān)信息返回給主控板。接著主控板再通過直連的單板獲取下層單板的相關(guān)信息,直到獲得所有單板的相關(guān)信息(位置,單板類型等),然后就可以開始整個(gè)系統(tǒng)的綜合測試。
綜合測試方法
目前大型的嵌入式系統(tǒng)大部分是分布式處理系統(tǒng),由多個(gè)模塊協(xié)同工作完成復(fù)雜的功能,模塊之間通過網(wǎng)絡(luò)互聯(lián)。一般將整個(gè)系統(tǒng)分成3個(gè)不同的層次:設(shè)備層、系統(tǒng)層和應(yīng)用層。針對這3個(gè)層次,系統(tǒng)的離線綜合測試可以通過互通性測試、功能測試和性能測試來進(jìn)行。
互通性測試
互通性測試包括物理連通性和一致性的測試,確保系統(tǒng)中的各模塊之間進(jìn)行互聯(lián)時(shí)不會(huì)出現(xiàn)問題。物理連通性和一致性的測試是最基本的網(wǎng)絡(luò)系統(tǒng)測試內(nèi)容,其中主要是線纜測試, 用以查明所測線纜及布線是否符合設(shè)計(jì)要求和國際標(biāo)準(zhǔn)。在寬帶交換機(jī)系統(tǒng)中,互通性測試由主控板按照網(wǎng)絡(luò)連接的層次,依次發(fā)送消息給各塊PBA單板,等待它們的回復(fù)。如果主控板能在規(guī)定時(shí)間內(nèi)收到回復(fù),說明從主控板到該單板的網(wǎng)絡(luò)連線正確。同時(shí),主控板從PBA的回復(fù)中也獲取了有關(guān)單板的相關(guān)信息,為下一步的功能測試和性能測試奠定了基礎(chǔ)。
功能測試
在整個(gè)系統(tǒng)內(nèi)部的互通性測試完成之后,接著要進(jìn)行功能測試,目的是檢驗(yàn)設(shè)備能否完成它應(yīng)該具備的功能。設(shè)備不同,其所要進(jìn)行的功能測試也相應(yīng)變化。如果單板硬件工作沒有異常,再由主控板啟動(dòng)單板,執(zhí)行其所具有的特定功能。
性能測試
完成系統(tǒng)設(shè)備測試和網(wǎng)絡(luò)互通性測試之后就可以在系統(tǒng)上加載各種應(yīng)用。性能測試是綜合測試中最高層次的測試內(nèi)容,主要測試系統(tǒng)對應(yīng)用的支持水平。性能測試有不同的分類方法。在寬帶交換機(jī)系統(tǒng)中采用了仿真的方法,在實(shí)際的機(jī)架環(huán)境中,由測試集中的第一塊單板主動(dòng)發(fā)送數(shù)據(jù)包,進(jìn)行環(huán)回測試,主要進(jìn)行的是數(shù)據(jù)鏈路層的測試,包括流量分析、錯(cuò)誤數(shù)據(jù)統(tǒng)計(jì)等。
結(jié)語
以上介紹了寬帶交換機(jī)系統(tǒng)中實(shí)現(xiàn)單板硬件測試的一些方法和系統(tǒng)離線集成測試模型。在具體的開發(fā)中,用這些測試在設(shè)計(jì)階段盡早地檢查出了設(shè)計(jì)方面的問題。在維護(hù)階段,這些測試有效地定位了現(xiàn)場發(fā)現(xiàn)的問題。這些測試對寬帶交換機(jī)系統(tǒng)的可靠性起到了非常重要的作用,保證了系統(tǒng)在現(xiàn)場安全穩(wěn)定的工作。
參考文獻(xiàn)
1 PCI Local Bus Specification Revision 2.2 December 18, 1998 Copyright 1992, 1993, 1995, 1998 PCI Special Interest Group
2 VxWorks Programmer’s Guide 5.4 Edition 1 Copyright 1984 -1999 Wind River Systems, Inc.
3 MPC860 PowerQUICCTM User’s Manual Motorola Inc. 1998
評論