<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式計算系統調測方法與技術(shù)綜述

嵌入式計算系統調測方法與技術(shù)綜述

作者: 時(shí)間:2004-12-10 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:敘述在開(kāi)發(fā)階段、生產(chǎn)環(huán)境和現場(chǎng)環(huán)境三種情況下的調測,以及如何在硬件和軟件設計中進(jìn)行可觀(guān)測性和可測試性設計。

關(guān)鍵詞:在線(xiàn)測試 可觀(guān)測性 可測試性 BDM JTAG

引言

對于含有微處理器的裝置來(lái)說(shuō),調測總是軟件和硬件結合的。在產(chǎn)品開(kāi)發(fā)的階段以排錯為主,在產(chǎn)品開(kāi)發(fā)后期以及生產(chǎn)和現場(chǎng)運行階段,則是以測試為主。不同的階段,調測的內容、手段和使用的工具不盡相同。

測試接口并不是功能的一部分,測試接口設計本身也需要成本。對于小型簡(jiǎn)單來(lái)說(shuō),沒(méi)有必要也不允許(成本考慮)設計測試接口;對于復雜系統來(lái)說(shuō),設計測試接口的花費是值得的。良好的測試接口設計可經(jīng)縮短產(chǎn)品的開(kāi)發(fā)周期,給產(chǎn)品維護、維修帶來(lái)便利。

對于系統來(lái)說(shuō),測試往往是軟件和硬件相結合的,既有借助于“正確”的軟件來(lái)測試硬件,也有借助于“正確”的硬件來(lái)測試軟件。由于軟件設計人員和硬件設計人員的隔膜,二者常常在出現問(wèn)題后相互指責,難以界定是軟件還是硬件問(wèn)題。對于系統的軟件設計人員來(lái)說(shuō),必須對硬件有足夠的了解。這一點(diǎn),和通用平臺上的軟件設計是不同的;反之,硬件人員也必須能夠編寫(xiě)一些測試軟件,以證明其設計的正確性。

1 開(kāi)發(fā)階段的調制

1.1 RAM版本的目標系統調試

通過(guò)ICE(In-Circuit-Emulate)來(lái)調試目標板是開(kāi)發(fā)人員最常用的手段。在產(chǎn)品開(kāi)發(fā)初期,由于各種軟件和硬件問(wèn)題很多,通過(guò)仿真器并結合邏輯分析儀、示波器等硬件信號測試工具能夠很好地發(fā)現問(wèn)題。

在仿真器環(huán)境下,通過(guò)仿真器的監控軟件來(lái)控制用戶(hù)軟件的運行,使用斷點(diǎn)、單步跟蹤和查看變量、CPU寄存器、存儲器的數值等手段來(lái)查找問(wèn)題。由于仿真器的軟件和硬件需要一定的CPU資源,用戶(hù)軟件在仿真器環(huán)境下運行和脫離仿真器后獨立運行是有區別的。好的仿真器能夠盡量減小這種區別。常見(jiàn)的仿真器從上區分有:?jiǎn)蜟PU仿真器、雙CPU仿真器和ROM仿真器。

在仿真器環(huán)境下,程序一般是在仿真器的RAM存儲器中運行的,所以這種階段也稱(chēng)為“RAM版本的目標系統調試”。

1.2 ROM版本的目標系統調試

在仿真器環(huán)境下,目標板運行調試正確后,一般的做法是將應用程序寫(xiě)入目標板的非易失性存儲器中,讓目標板單獨運行。在很多情況下,目標板系統往往不能運行或者運行結果和仿真器環(huán)境下不一致。而沒(méi)有連接仿真器,無(wú)法觀(guān)察各種軟件狀態(tài),給分析問(wèn)題造成一定困難。在目標板上設計指示電路有助于發(fā)現問(wèn)題;在電路板上增加1個(gè)LED是最簡(jiǎn)單也是很有效的。對于復雜系統,可以設計1個(gè)數碼管顯示輸出接口,或者設計1個(gè)調試用串口,將調試信息發(fā)送到PC機上顯示。

在使用PC機作為顯示輸出設備時(shí),一般的做法是使用Winodws自帶的超級終端軟件,無(wú)需另外編制程序。和前二種方法相比,該方法的接口信號是雙向的,調試者可以通過(guò)PC機輸入信息到目標板中,設定顯示信息的類(lèi)別。這一點(diǎn),對于復雜系統的調試是很有價(jià)值的,CISCO公司的很多路由器產(chǎn)品就使用這種方法來(lái)維護和調試。

2 生產(chǎn)階段的測試方法

生產(chǎn)階段的測試只是對硬件電路或者系統進(jìn)行測試。測試目的是為了對產(chǎn)品或者部件進(jìn)行分檢,找出有缺陷的產(chǎn)品。測試內容包括:

*裸板測試――檢查未安裝元器件的電路板上的開(kāi)路和短路缺陷;

*成品生產(chǎn)缺陷分析――檢查已安裝元器件的電路板上焊點(diǎn)的短路和開(kāi)路缺陷;

*成品電氣性能測試――認證每個(gè)單元器件的上電運作;

*產(chǎn)品功能測試――認證電路模塊的功能。

生產(chǎn)測試和開(kāi)發(fā)階段的硬件測試不同,需要測試方法快速、能成批測試,易于在制造生產(chǎn)線(xiàn)上安裝。在生產(chǎn)的不同階段使用的測試工具和技術(shù)也不相同。目前常用的測試工具和技術(shù)有:人工視覺(jué)檢查(MVI)、在線(xiàn)測試(ICT)、自動(dòng)光學(xué)測試(AOI)、自動(dòng)X(jué)射線(xiàn)測試(AXI)。其中人工視覺(jué)測試(MVI)只能用于小批量試制產(chǎn)品。

在線(xiàn)測試(ICT)是最常用的一種線(xiàn)路板測試方法:使用專(zhuān)門(mén)的針床與已焊接好的線(xiàn)路板上的元器件接觸,通過(guò)針床在線(xiàn)路板上施加微小電壓來(lái)測試線(xiàn)路通斷、元件是否正確安裝。由于需要為特定電路板設計專(zhuān)用夾具,適合于單一品種民用型家電線(xiàn)路板極大規模生產(chǎn)的測試;缺點(diǎn)是在高密度的SMT線(xiàn)路板測試困難。目前的替代解決辦法是使用光學(xué)方法測試(如AOI,AXI),或者使用邊界掃描技術(shù)(即基于IEEE1394標準的JTAG測試接口)測試。后者需要IC或者線(xiàn)路板支持此技術(shù)。

功能測試是生產(chǎn)過(guò)程的最后階段使用,測試線(xiàn)路板或者系統的功能指標,一般的功能測試需要設計專(zhuān)用測試設備和測試軟件。

3 現場(chǎng)測試技術(shù)

現場(chǎng)測試分為三種情況:一種是在線(xiàn)測試,測試設備不停止運行;一種是停機測試,被測試設備停止運行;第三種為脫機測試,將被測部件從運行現場(chǎng)取出,放到專(zhuān)用的測試裝備上進(jìn)行測試。從測試技術(shù)角度上說(shuō),后二者更容易進(jìn)行各種測試;對于復雜系統來(lái)說(shuō),往往故障和問(wèn)題需要在設備運行時(shí)才能發(fā)現和定位,必須進(jìn)行在線(xiàn)測試。究竟采取哪種方式進(jìn)行現場(chǎng)測試,取決于故障狀況和實(shí)際應用是否允許立即停機。

開(kāi)發(fā)階段產(chǎn)品和成熟產(chǎn)品的現場(chǎng)測試要求也不同:前者測試目的主要是發(fā)現設計中的問(wèn)題,由產(chǎn)品開(kāi)發(fā)人員進(jìn)行;后者側重于發(fā)現使用中的問(wèn)題和失效的部件,目的是更換部件,由產(chǎn)品使用人員進(jìn)行。(但測試方法和步驟也有可能是設計人員制定的。)

現場(chǎng)測試和試驗室測試的最大區別就是測試設備難以安裝和連接:線(xiàn)路板封閉在機箱中,測試信號線(xiàn)很難引入,即使設備外殼上留有測試插座,測試信號線(xiàn)也需要很長(cháng),傳統的在線(xiàn)仿真器在現場(chǎng)測試中無(wú)法使用。另一方面,現場(chǎng)往往沒(méi)有實(shí)驗室里的各種測試儀器和設備,因此,必須有更好的方法和手段來(lái)完成測試。

嵌入式處理器中目前有很多芯片具有類(lèi)似Motorola公司683XX系列處理器的BDM調試接口(詳見(jiàn)第5部分)。這種接口是串行的,處理器內部固化了調試微碼,為現場(chǎng)測試 帶來(lái)了方便。對于不具備這種接口的嵌入式計算系統,在系統設計時(shí)將關(guān)鍵信號點(diǎn)引出到一個(gè)測試接口插座上,通過(guò)該插座可輸入測試激勵信號和觀(guān)察輸出信號;對于軟件測試,可使用前文中所述的ROM板測試方法,外接顯示部件來(lái)觀(guān)察程序運行情況。

軟件現場(chǎng)調試的另外一個(gè)要求是程序應能夠現場(chǎng)下載,以便在發(fā)現問(wèn)題后能夠修改軟件?,F場(chǎng)在線(xiàn)下載程序的方法有兩種:一種是使用具有ISP功能的處理(如Philips公司的P89C51RD系列MCU等),另一種方案是將軟件設計成兩部分,一部分是應用功能軟件,另一部分是完成前者下載到系統中的下載通信軟件。無(wú)論哪種方法,下載的主機均是PC機。如果需要達到遠程調試和下載的目的,則要使用后一種方案。例如,在Echelon公司的Lonwork現場(chǎng)總線(xiàn)產(chǎn)品中,每個(gè)節點(diǎn)中的程序均可以通過(guò)網(wǎng)絡(luò )下載,這種功能為多節點(diǎn)網(wǎng)絡(luò )系統的現場(chǎng)調試帶來(lái)了極大方便。

4 可測試性設計

在產(chǎn)品開(kāi)發(fā)初期,產(chǎn)品測試的目的是驗證產(chǎn)品設計的正確性,而可測試性部件的存在則能加快測試速度,縮短產(chǎn)品開(kāi)發(fā)周期;在生產(chǎn)階段,通過(guò)測試來(lái)剔除有缺陷的產(chǎn)品和部件;在使用階段,測試則用于故障定位,找出失效的部件并更換或者維修??梢?jiàn),產(chǎn)品的測試在產(chǎn)品生命周期各階段均有十分重要的作用??蓽y試性設計應該在產(chǎn)品設計初期就加以考慮,結合測試在不同階段的作用來(lái)設計測試模塊和接口。

產(chǎn)品的可測試性設計要考慮的問(wèn)題有:測試的目的、測試部件的位置、測試部件的基本要素、內置測試部件與外部測試設備儀器之間的電氣和機械連接,添加測試部件對被測模塊功能和性能的影響、測試部件的成本以及何時(shí)使用測試功能等。

如前所述,測試在產(chǎn)品不同階段是有差別的。在產(chǎn)品開(kāi)發(fā)階段,很多參數需要定量和詳細地進(jìn)行測試,以驗證產(chǎn)品在各種不同情況下是否能正常工作;測試參數,測試點(diǎn)較多,可以方便地連接各種外部測試儀器,也不需要考慮添加測試部件所帶來(lái)的附加成本。在產(chǎn)品生產(chǎn)和使用階段,測試的節點(diǎn)和參數數量也相對減少,測試一般是定性的,無(wú)需借助于外部設備的自測試,成本因素也必須考慮。

測試部件一般位于被測部件的接口和邊界位置上,如圖上所示,用于產(chǎn)品控制被測部件的激勵信號和采樣被測部件的輸出信號。測試部件一般由測試信號源、信號傳輸通道、測試觀(guān)察裝置等組成。測試部件可以完全包含在被測部件中,也可部分位于外部(如外接信號源和示波器等)。對于自動(dòng)測試,測試部件還包括被測部件的預期輸出存儲部件比較部分。

在一個(gè)系統中,如何劃分模塊,確定測試位置(即模塊的邊界)是關(guān)系到可測試性設計是否合理的首要問(wèn)題。模塊間最小相關(guān)原則和模塊內最小相似原則是兩個(gè)重要依據:前者保證測試可以獨立進(jìn)行,不需要很多其它模塊的配合;后者可以使測試能正確反映被測模塊的大部分工況,不至于漏測很多工作狀態(tài)。

很多情況下,從被測模塊的邊界直接引出信號有困難,測試信號需要經(jīng)過(guò)其它模塊引入到被測模塊上。如果作為信號路徑的模塊對信號特征沒(méi)有改變,則稱(chēng)這種測試路徑是透明的,路徑模塊必須能在旁路模式和正常工作模式之間切換,實(shí)現起來(lái)有局限性。對于硬件來(lái)說(shuō),最簡(jiǎn)單的透明路徑是使用跳線(xiàn)。

對于簡(jiǎn)單嵌入式系統來(lái)說(shuō),測試一般包括上電自測試和人為測試。后者在故障出現時(shí)進(jìn)行。對于復雜系統來(lái)說(shuō),還包括定時(shí)自動(dòng)測試,比如在大型程控交換機和飛機機載電子設備的運行過(guò)程中,均定時(shí)進(jìn)行自檢。

可測試性設計還應考慮測試功能所使用對象的不同。產(chǎn)品設計人員、產(chǎn)品使用人員和產(chǎn)品維護人員對測試內容的要求是同的,需要進(jìn)行分層次的可測試性設計。

對于硬件和系統的可測試性設計已有IEEE1149.1/4/5等標準可以借鑒,對于單純的軟件測試,目前尚無(wú)具體和統一的標準,只有諸如代碼格式分析、白盒測試、黑盒測試、覆蓋測試等測試方法。軟件測試的途徑有兩個(gè)。一是在源代碼中增加大量測試代碼,使用條件編譯指令來(lái)控制形成調試、測試和最終發(fā)布等不同版本。調測版本的代碼規模要比最終的發(fā)布版本大很多,在問(wèn)題解決后,一般將臨時(shí)性測試代碼通過(guò)編譯開(kāi)關(guān)屏蔽。另外一個(gè)軟件測試途徑是使用專(zhuān)用的測試軟件(如法國Telelogic公司的LOGISCOPE測試工具),這些測試軟件能完成諸如覆蓋測試、代碼格式分析等功能,但均是針對特定的語(yǔ)言和操作系統環(huán)境,使用上一些限制。

還需要說(shuō)明的就是“可觀(guān)測”設計的概念??捎^(guān)測性和可測試性不同,不需要加入激勵信號,只觀(guān)察系統運行中某些內部狀態(tài),比如軟件中某個(gè)重要變量的數值變化,硬件電路中某個(gè)IC引腳的信號電平等。在設計中,應該保留這些觀(guān)察接口,以便需要時(shí)用它來(lái)判斷和分析系統的問(wèn)題。一個(gè)可測試的系統,一定是可觀(guān)測的,反之則不然。設計可測試性系統的目的是為了以后修改和改進(jìn)設計,而使系統具有可觀(guān)測性則是為了維護系統,判斷哪個(gè)是出故障的部件,以便更換??蓽y試性設計一般用于新產(chǎn)品,而可觀(guān)測性設計用于成熟產(chǎn)品。當然,在結構、安裝條件和成本允許的情況下,成熟產(chǎn)品也應具有可測試性。實(shí)際上,由于處理器技術(shù)和芯片的日新月異,已經(jīng)不存在真正意義上的成熟產(chǎn)品了。

在一類(lèi)產(chǎn)品中的可測試性設計應該具有一致性,例如,用紅色LED表示電源狀態(tài),所有電路板均應采用紅色LED,點(diǎn)亮的頻率也應該一致。作為企業(yè),應制定相關(guān)的測試接口標準,并且這些標準應符合行業(yè)習慣或者行業(yè)標準。

5 測試和調試接口標準

測試和調試接口標準:JTAG和BDM。

5.1 背景調試模式

在使用傳統的ICE來(lái)調試時(shí),使用ICE中的CPU來(lái)取代目標板中的CPU,目標板和ICE之間使用多芯扁平電纜來(lái)連接,而ICE在使用時(shí)一般還需要縮主機(一般來(lái)PC)來(lái)連接。

在一些高端微處理器內部已經(jīng)包含了用于調試的微碼,調試時(shí)仿真器軟件和目標板上的CPU的調試微碼通信,目標板 上的CPU無(wú)需取出。由于軟件調試指令無(wú)需經(jīng)過(guò)一段扁平電纜來(lái)控制目標板,避免了高頻操作限制、交流和直流的不匹配以及調試線(xiàn)纜的電阻影響等問(wèn)題。這種調試模式在Motorola公司產(chǎn)品68300系列中被稱(chēng)為背景調試模式BDM(Background Debug Mode)。在仿真器和目標之間使用8芯(或者10芯)的BDM接口來(lái)連接,其他公司的嵌入式處理器也有類(lèi)似功能,不過(guò)叫法不同,例如AMD公司在其X86微處理器上提供“AMDebug”的調試接口。

實(shí)際上,BDM相當于將ICE仿真器軟件和硬件內置在處理器,這使得我們直接使用PC機的并口來(lái)調試軟件,不再需要ICE硬件,大大節約了汽油發(fā)成本。一些調試器供應商也提供這種軟件產(chǎn)品(如XRAY)。對于用戶(hù)來(lái)說(shuō),為了調試一些特定問(wèn)題,可以直接使用BDM命令來(lái)調試目標系統,以彌補商業(yè)調試軟件的不足。

BDM接口有8根信號線(xiàn),也有為10根信號線(xiàn)的,如圖2所示。調試軟件通過(guò)4腳使CPU進(jìn)入背景調試模式,調試命令的串行信號則8通過(guò)腳輸入,同時(shí)4腳輸入信號步時(shí)鐘,而CPU中的微碼在執行命令后會(huì )在10腳輸出調試結果指示信號??梢?jiàn),BDM接口引線(xiàn)由并口和PC機相連,調試命令則是通過(guò)串行方式輸入的。

目前在CPU內置的調試接口和微碼方面,各廠(chǎng)家尚無(wú)統一標準。處理器廠(chǎng)家、工具開(kāi)發(fā)公司和儀器制造商曾于1998年組成了Nexus 5001 Forum(Nexus 5001論壇),成員包括Motorola、Infineon Technologies、日立、ETAS和惠普公司等,正致力于制定一個(gè)統一的片上通用調試接口。這方面的進(jìn)一步情況可查閱http://www.nexus-standard.org/網(wǎng)站。

5.2 邊界掃描測試技術(shù)和JTAG接口

邊界掃描測試技術(shù)(Boundary-Scan Test Architecture)屬于一種可測試性設計。其基本思想是在芯片引腳和芯片內部邏輯之間(即芯片邊界位置)增加串行連接的邊界掃描測試單元,實(shí)現對芯片引腳狀態(tài)的設定和讀取,使芯片引腳狀態(tài)具有可控性和可觀(guān)測性。

邊界掃描測試技術(shù)最初由各大半導體公司(Philips、IBM、Intel等)成立的聯(lián)全測試行動(dòng)小組JTAG(Join Test Action Group)于1988年提出,1990年被IEEE規定為電子產(chǎn)品可測試性設計的標準(IEEE1149.1/2/3)。目前,該標準已被一些大規模集成電路所采用(如DSP、CPU、FPGA等),而訪(fǎng)問(wèn)邊界掃描測試電路的接口信號定義標準被稱(chēng)為JTAG接口,很多嵌入式處理器內置了這種測試接口。在Cygnal公司的C8051F000系列單片機中和一些FPGA芯片中,JTAG接口不僅能用于測試,也是器件的編程接口。

IEEE1149.1標準支持以下3種測試功能:

*內部測試――IC內部的邏輯測試;

*外部測試――IC間相互連接的測試;

*取樣測試――IC正常運行時(shí)的數據取樣測試。

圖3給出了具有2個(gè)芯片的系統的邊界掃描測試原理。

圖3中,TCK為測試同步時(shí)鐘輸入,TMS為測試模式選中輸入,TDI為測試數據輸入,TDO為測試數據輸出,由測試移位寄存器產(chǎn)品。圖3中的小方框表示位于芯片外圍的邊界掃描測試邏輯單元,芯片每個(gè)引腳信號經(jīng)過(guò)邊界掃描單元和內部的功能單元相連接。

目前,邊界掃描技術(shù)的應用主要在數字IC的測試上,這種設計思想也可用于模擬系統、板級測試甚至系統測試上。IEEE也制定了和IEEE1149.1相類(lèi)似的標準IEEE P1149.4(數?;旌闲盘枩y試總線(xiàn)標準)、IEEE 1149.5(電路板測試和維護總線(xiàn)標準)。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>