嵌入式計(jì)算系統(tǒng)調(diào)測(cè)方法與技術(shù)綜述
關(guān)鍵詞:在線測(cè)試 可觀測(cè)性 可測(cè)試性 BDM JTAG
引言
對(duì)于含有微處理器的裝置來說,調(diào)測(cè)總是軟件和硬件結(jié)合的。在產(chǎn)品開發(fā)的階段以排錯(cuò)為主,在產(chǎn)品開發(fā)后期以及生產(chǎn)和現(xiàn)場(chǎng)運(yùn)行階段,則是以測(cè)試為主。不同的階段,調(diào)測(cè)的內(nèi)容、手段和使用的工具不盡相同。
測(cè)試接口并不是系統(tǒng)功能的一部分,測(cè)試接口設(shè)計(jì)本身也需要成本。對(duì)于小型簡(jiǎn)單系統(tǒng)來說,沒有必要也不允許(成本考慮)設(shè)計(jì)測(cè)試接口;對(duì)于復(fù)雜系統(tǒng)來說,設(shè)計(jì)測(cè)試接口的花費(fèi)是值得的。良好的測(cè)試接口設(shè)計(jì)可經(jīng)縮短產(chǎn)品的開發(fā)周期,給產(chǎn)品維護(hù)、維修帶來便利。
對(duì)于嵌入式計(jì)算系統(tǒng)來說,測(cè)試往往是軟件和硬件相結(jié)合的,既有借助于“正確”的軟件來測(cè)試硬件,也有借助于“正確”的硬件來測(cè)試軟件。由于軟件設(shè)計(jì)人員和硬件設(shè)計(jì)人員的技術(shù)隔膜,二者常常在出現(xiàn)問題后相互指責(zé),難以界定是軟件還是硬件問題。對(duì)于嵌入式系統(tǒng)的軟件設(shè)計(jì)人員來說,必須對(duì)硬件有足夠的了解。這一點(diǎn),和通用計(jì)算平臺(tái)上的軟件設(shè)計(jì)是不同的;反之,硬件人員也必須能夠編寫一些測(cè)試軟件,以證明其設(shè)計(jì)的正確性。
1 開發(fā)階段的調(diào)制方法
1.1 RAM版本的目標(biāo)系統(tǒng)調(diào)試
通過ICE(In-Circuit-Emulate)來調(diào)試目標(biāo)板是開發(fā)人員最常用的手段。在產(chǎn)品開發(fā)初期,由于各種軟件和硬件問題很多,通過仿真器并結(jié)合邏輯分析儀、示波器等硬件信號(hào)測(cè)試工具能夠很好地發(fā)現(xiàn)問題。
在仿真器環(huán)境下,通過仿真器的監(jiān)控軟件來控制用戶軟件的運(yùn)行,使用斷點(diǎn)、單步跟蹤和查看變量、CPU寄存器、存儲(chǔ)器的數(shù)值等手段來查找問題。由于仿真器的軟件和硬件需要一定的CPU資源,用戶軟件在仿真器環(huán)境下運(yùn)行和脫離仿真器后獨(dú)立運(yùn)行是有區(qū)別的。好的仿真器能夠盡量減小這種區(qū)別。常見的仿真器從技術(shù)上區(qū)分有:?jiǎn)蜟PU仿真器、雙CPU仿真器和ROM仿真器。
在仿真器環(huán)境下,程序一般是在仿真器的RAM存儲(chǔ)器中運(yùn)行的,所以這種階段也稱為“RAM版本的目標(biāo)系統(tǒng)調(diào)試”。
1.2 ROM版本的目標(biāo)系統(tǒng)調(diào)試
在仿真器環(huán)境下,目標(biāo)板運(yùn)行調(diào)試正確后,一般的做法是將應(yīng)用程序?qū)懭肽繕?biāo)板的非易失性存儲(chǔ)器中,讓目標(biāo)板單獨(dú)運(yùn)行。在很多情況下,目標(biāo)板系統(tǒng)往往不能運(yùn)行或者運(yùn)行結(jié)果和仿真器環(huán)境下不一致。而沒有連接仿真器,無法觀察各種軟件狀態(tài),給分析問題造成一定困難。在目標(biāo)板上設(shè)計(jì)指示電路有助于發(fā)現(xiàn)問題;在電路板上增加1個(gè)LED是最簡(jiǎn)單也是很有效的方法。對(duì)于復(fù)雜系統(tǒng),可以設(shè)計(jì)1個(gè)數(shù)碼管顯示輸出接口,或者設(shè)計(jì)1個(gè)調(diào)試用串口,將調(diào)試信息發(fā)送到PC機(jī)上顯示。
在使用PC機(jī)作為顯示輸出設(shè)備時(shí),一般的做法是使用Winodws自帶的超級(jí)終端軟件,無需另外編制程序。和前二種方法相比,該方法的接口信號(hào)是雙向的,調(diào)試者可以通過PC機(jī)輸入信息到目標(biāo)板中,設(shè)定顯示信息的類別。這一點(diǎn),對(duì)于復(fù)雜系統(tǒng)的調(diào)試是很有價(jià)值的,CISCO公司的很多路由器產(chǎn)品就使用這種方法來維護(hù)和調(diào)試。
2 生產(chǎn)階段的測(cè)試方法
生產(chǎn)階段的測(cè)試只是對(duì)硬件電路或者系統(tǒng)進(jìn)行測(cè)試。測(cè)試目的是為了對(duì)產(chǎn)品或者部件進(jìn)行分檢,找出有缺陷的產(chǎn)品。測(cè)試內(nèi)容包括:
*裸板測(cè)試――檢查未安裝元器件的電路板上的開路和短路缺陷;
*成品生產(chǎn)缺陷分析――檢查已安裝元器件的電路板上焊點(diǎn)的短路和開路缺陷;
*成品電氣性能測(cè)試――認(rèn)證每個(gè)單元器件的上電運(yùn)作;
*產(chǎn)品功能測(cè)試――認(rèn)證電路模塊的功能。
生產(chǎn)測(cè)試和開發(fā)階段的硬件測(cè)試不同,需要測(cè)試方法快速、能成批測(cè)試,易于在制造生產(chǎn)線上安裝。在生產(chǎn)的不同階段使用的測(cè)試工具和技術(shù)也不相同。目前常用的測(cè)試工具和技術(shù)有:人工視覺檢查(MVI)、在線測(cè)試(ICT)、自動(dòng)光學(xué)測(cè)試(AOI)、自動(dòng)X射線測(cè)試(AXI)。其中人工視覺測(cè)試(MVI)只能用于小批量試制產(chǎn)品。
在線測(cè)試(ICT)是最常用的一種線路板測(cè)試方法:使用專門的針床與已焊接好的線路板上的元器件接觸,通過針床在線路板上施加微小電壓來測(cè)試線路通斷、元件是否正確安裝。由于需要為特定電路板設(shè)計(jì)專用夾具,適合于單一品種民用型家電線路板極大規(guī)模生產(chǎn)的測(cè)試;缺點(diǎn)是在高密度的SMT線路板測(cè)試?yán)щy。目前的替代解決辦法是使用光學(xué)方法測(cè)試(如AOI,AXI),或者使用邊界掃描技術(shù)(即基于IEEE1394標(biāo)準(zhǔn)的JTAG測(cè)試接口)測(cè)試。后者需要IC或者線路板支持此技術(shù)。
功能測(cè)試是生產(chǎn)過程的最后階段使用,測(cè)試線路板或者系統(tǒng)的功能指標(biāo),一般的功能測(cè)試需要設(shè)計(jì)專用測(cè)試設(shè)備和測(cè)試軟件。
3 現(xiàn)場(chǎng)測(cè)試技術(shù)
現(xiàn)場(chǎng)測(cè)試分為三種情況:一種是在線測(cè)試,測(cè)試設(shè)備不停止運(yùn)行;一種是停機(jī)測(cè)試,被測(cè)試設(shè)備停止運(yùn)行;第三種為脫機(jī)測(cè)試,將被測(cè)部件從運(yùn)行現(xiàn)場(chǎng)取出,放到專用的測(cè)試裝備上進(jìn)行測(cè)試。從測(cè)試技術(shù)角度上說,后二者更容易進(jìn)行各種測(cè)試;對(duì)于復(fù)雜系統(tǒng)來說,往往故障和問題需要在設(shè)備運(yùn)行時(shí)才能發(fā)現(xiàn)和定位,必須進(jìn)行在線測(cè)試。究竟采取哪種方式進(jìn)行現(xiàn)場(chǎng)測(cè)試,取決于故障狀況和實(shí)際應(yīng)用是否允許立即停機(jī)。
開發(fā)階段產(chǎn)品和成熟產(chǎn)品的現(xiàn)場(chǎng)測(cè)試要求也不同:前者測(cè)試目的主要是發(fā)現(xiàn)設(shè)計(jì)中的問題,由產(chǎn)品開發(fā)人員進(jìn)行;后者側(cè)重于發(fā)現(xiàn)使用中的問題和失效的部件,目的是更換部件,由產(chǎn)品使用人員進(jìn)行。(但測(cè)試方法和步驟也有可能是設(shè)計(jì)人員制定的。)
現(xiàn)場(chǎng)測(cè)試和試驗(yàn)室測(cè)試的最大區(qū)別就是測(cè)試設(shè)備難以安裝和連接:線路板封閉在機(jī)箱中,測(cè)試信號(hào)線很難引入,即使設(shè)備外殼上留有測(cè)試插座,測(cè)試信號(hào)線也需要很長(zhǎng),傳統(tǒng)的在線仿真器在現(xiàn)場(chǎng)測(cè)試中無法使用。另一方面,現(xiàn)場(chǎng)往往沒有實(shí)驗(yàn)室里的各種測(cè)試儀器和設(shè)備,因此,必須有更好的方法和手段來完成測(cè)試。
嵌入式處理器中目前有很多芯片具有類似Motorola公司683XX系列處理器的BDM調(diào)試接口(詳見第5部分)。這種接口是串行的,處理器內(nèi)部固化了調(diào)試微碼,為現(xiàn)場(chǎng)測(cè)試 帶來了方便。對(duì)于不具備這種接口的嵌入式計(jì)算系統(tǒng),在系統(tǒng)設(shè)計(jì)時(shí)將關(guān)鍵信號(hào)點(diǎn)引出到一個(gè)測(cè)試接口插座上,通過該插座可輸入測(cè)試激勵(lì)信號(hào)和觀察輸出信號(hào);對(duì)于軟件測(cè)試,可使用前文中所述的ROM板測(cè)試方法,外接顯示部件來觀察程序運(yùn)行情況。
軟件現(xiàn)場(chǎng)調(diào)試的另外一個(gè)要求是程序應(yīng)能夠現(xiàn)場(chǎng)下載,以便在發(fā)現(xiàn)問題后能夠修改軟件。現(xiàn)場(chǎng)在線下載程序的方法有兩種:一種是使用具有ISP功能的處理(如Philips公司的P89C51RD系列MCU等),另一種方案是將軟件設(shè)計(jì)成兩部分,一部分是應(yīng)用功能軟件,另一部分是完成前者下載到系統(tǒng)中的下載通信軟件。無論哪種方法,下載的主機(jī)均是PC機(jī)。如果需要達(dá)到遠(yuǎn)程調(diào)試和下載的目的,則要使用后一種方案。例如,在Echelon公司的Lonwork現(xiàn)場(chǎng)總線產(chǎn)品中,每個(gè)節(jié)點(diǎn)中的程序均可以通過網(wǎng)絡(luò)下載,這種功能為多節(jié)點(diǎn)網(wǎng)絡(luò)系統(tǒng)的現(xiàn)場(chǎng)調(diào)試帶來了極大方便。
4 可測(cè)試性設(shè)計(jì)
在產(chǎn)品開發(fā)初期,產(chǎn)品測(cè)試的目的是驗(yàn)證產(chǎn)品設(shè)計(jì)的正確性,而可測(cè)試性部件的存在則能加快測(cè)試速度,縮短產(chǎn)品開發(fā)周期;在生產(chǎn)階段,通過測(cè)試來剔除有缺陷的產(chǎn)品和部件;在使用階段,測(cè)試則用于故障定位,找出失效的部件并更換或者維修??梢姡a(chǎn)品的測(cè)試在產(chǎn)品生命周期各階段均有十分重要的作用。可測(cè)試性設(shè)計(jì)應(yīng)該在產(chǎn)品設(shè)計(jì)初期就加以考慮,結(jié)合測(cè)試在不同階段的作用來設(shè)計(jì)測(cè)試模塊和接口。
產(chǎn)品的可測(cè)試性設(shè)計(jì)要考慮的問題有:測(cè)試的目的、測(cè)試部件的位置、測(cè)試部件的基本要素、內(nèi)置測(cè)試部件與外部測(cè)試設(shè)備儀器之間的電氣和機(jī)械連接,添加測(cè)試部件對(duì)被測(cè)模塊功能和性能的影響、測(cè)試部件的成本以及何時(shí)使用測(cè)試功能等。
如前所述,測(cè)試在產(chǎn)品不同階段是有差別的。在產(chǎn)品開發(fā)階段,很多參數(shù)需要定量和詳細(xì)地進(jìn)行測(cè)試,以驗(yàn)證產(chǎn)品在各種不同情況下是否能正常工作;測(cè)試參數(shù),測(cè)試點(diǎn)較多,可以方便地連接各種外部測(cè)試儀器,也不需要考慮添加測(cè)試部件所帶來的附加成本。在產(chǎn)品生產(chǎn)和使用階段,測(cè)試的節(jié)點(diǎn)和參數(shù)數(shù)量也相對(duì)減少,測(cè)試一般是定性的,無需借助于外部設(shè)備的自測(cè)試,成本因素也必須考慮。
測(cè)試部件一般位于被測(cè)部件的接口和邊界位置上,如圖上所示,用于產(chǎn)品控制被測(cè)部件的激勵(lì)信號(hào)和采樣被測(cè)部件的輸出信號(hào)。測(cè)試部件一般由測(cè)試信號(hào)源、信號(hào)傳輸通道、測(cè)試觀察裝置等組成。測(cè)試部件可以完全包含在被測(cè)部件中,也可部分位于外部(如外接信號(hào)源和示波器等)。對(duì)于自動(dòng)測(cè)試,測(cè)試部件還包括被測(cè)部件的預(yù)期輸出存儲(chǔ)部件比較部分。
在一個(gè)系統(tǒng)中,如何劃分模塊,確定測(cè)試位置(即模塊的邊界)是關(guān)系到可測(cè)試性設(shè)計(jì)是否合理的首要問題。模塊間最小相關(guān)原則和模塊內(nèi)最小相似原則是兩個(gè)重要依據(jù):前者保證測(cè)試可以獨(dú)立進(jìn)行,不需要很多其它模塊的配合;后者可以使測(cè)試能正確反映被測(cè)模塊的大部分工況,不至于漏測(cè)很多工作狀態(tài)。
很多情況下,從被測(cè)模塊的邊界直接引出信號(hào)有困難,測(cè)試信號(hào)需要經(jīng)過其它模塊引入到被測(cè)模塊上。如果作為信號(hào)路徑的模塊對(duì)信號(hào)特征沒有改變,則稱這種測(cè)試路徑是透明的,路徑模塊必須能在旁路模式和正常工作模式之間切換,實(shí)現(xiàn)起來有局限性。對(duì)于硬件來說,最簡(jiǎn)單的透明路徑是使用跳線。
對(duì)于簡(jiǎn)單嵌入式系統(tǒng)來說,測(cè)試一般包括上電自測(cè)試和人為測(cè)試。后者在故障出現(xiàn)時(shí)進(jìn)行。對(duì)于復(fù)雜系統(tǒng)來說,還包括定時(shí)自動(dòng)測(cè)試,比如在大型程控交換機(jī)和飛機(jī)機(jī)載電子設(shè)備的運(yùn)行過程中,均定時(shí)進(jìn)行自檢。
可測(cè)試性設(shè)計(jì)還應(yīng)考慮測(cè)試功能所使用對(duì)象的不同。產(chǎn)品設(shè)計(jì)人員、產(chǎn)品使用人員和產(chǎn)品維護(hù)人員對(duì)測(cè)試內(nèi)容的要求是同的,需要進(jìn)行分層次的可測(cè)試性設(shè)計(jì)。
對(duì)于硬件和系統(tǒng)的可測(cè)試性設(shè)計(jì)已有IEEE1149.1/4/5等標(biāo)準(zhǔn)可以借鑒,對(duì)于單純的軟件測(cè)試,目前尚無具體和統(tǒng)一的標(biāo)準(zhǔn),只有諸如代碼格式分析、白盒測(cè)試、黑盒測(cè)試、覆蓋測(cè)試等測(cè)試方法。軟件測(cè)試的途徑有兩個(gè)。一是在源代碼中增加大量測(cè)試代碼,使用條件編譯指令來控制形成調(diào)試、測(cè)試和最終發(fā)布等不同版本。調(diào)測(cè)版本的代碼規(guī)模要比最終的發(fā)布版本大很多,在問題解決后,一般將臨時(shí)性測(cè)試代碼通過編譯開關(guān)屏蔽。另外一個(gè)軟件測(cè)試途徑是使用專用的測(cè)試軟件(如法國(guó)Telelogic公司的LOGISCOPE測(cè)試工具),這些測(cè)試軟件能完成諸如覆蓋測(cè)試、代碼格式分析等功能,但均是針對(duì)特定的語言和操作系統(tǒng)環(huán)境,使用上一些限制。
還需要說明的就是“可觀測(cè)”設(shè)計(jì)的概念??捎^測(cè)性和可測(cè)試性不同,不需要加入激勵(lì)信號(hào),只觀察系統(tǒng)運(yùn)行中某些內(nèi)部狀態(tài),比如軟件中某個(gè)重要變量的數(shù)值變化,硬件電路中某個(gè)IC引腳的信號(hào)電平等。在設(shè)計(jì)中,應(yīng)該保留這些觀察接口,以便需要時(shí)用它來判斷和分析系統(tǒng)的問題。一個(gè)可測(cè)試的系統(tǒng),一定是可觀測(cè)的,反之則不然。設(shè)計(jì)可測(cè)試性系統(tǒng)的目的是為了以后修改和改進(jìn)設(shè)計(jì),而使系統(tǒng)具有可觀測(cè)性則是為了維護(hù)系統(tǒng),判斷哪個(gè)是出故障的部件,以便更換??蓽y(cè)試性設(shè)計(jì)一般用于新產(chǎn)品,而可觀測(cè)性設(shè)計(jì)用于成熟產(chǎn)品。當(dāng)然,在結(jié)構(gòu)、安裝條件和成本允許的情況下,成熟產(chǎn)品也應(yīng)具有可測(cè)試性。實(shí)際上,由于處理器技術(shù)和芯片的日新月異,已經(jīng)不存在真正意義上的成熟產(chǎn)品了。
在一類產(chǎn)品中的可測(cè)試性設(shè)計(jì)應(yīng)該具有一致性,例如,用紅色LED表示電源狀態(tài),所有電路板均應(yīng)采用紅色LED,點(diǎn)亮的頻率也應(yīng)該一致。作為企業(yè),應(yīng)制定相關(guān)的測(cè)試接口標(biāo)準(zhǔn),并且這些標(biāo)準(zhǔn)應(yīng)符合行業(yè)習(xí)慣或者行業(yè)標(biāo)準(zhǔn)。
5 測(cè)試和調(diào)試接口標(biāo)準(zhǔn)
測(cè)試和調(diào)試接口標(biāo)準(zhǔn):JTAG和BDM。
5.1 背景調(diào)試模式
在使用傳統(tǒng)的ICE來調(diào)試時(shí),使用ICE中的CPU來取代目標(biāo)板中的CPU,目標(biāo)板和ICE之間使用多芯扁平電纜來連接,而ICE在使用時(shí)一般還需要縮主機(jī)(一般來PC)來連接。
在一些高端微處理器內(nèi)部已經(jīng)包含了用于調(diào)試的微碼,調(diào)試時(shí)仿真器軟件和目標(biāo)板上的CPU的調(diào)試微碼通信,目標(biāo)板 上的CPU無需取出。由于軟件調(diào)試指令無需經(jīng)過一段扁平電纜來控制目標(biāo)板,避免了高頻操作限制、交流和直流的不匹配以及調(diào)試線纜的電阻影響等問題。這種調(diào)試模式在Motorola公司產(chǎn)品68300系列中被稱為背景調(diào)試模式BDM(Background Debug Mode)。在仿真器和目標(biāo)之間使用8芯(或者10芯)的BDM接口來連接,其他公司的嵌入式處理器也有類似功能,不過叫法不同,例如AMD公司在其X86微處理器上提供“AMDebug”的調(diào)試接口。
BDM接口有8根信號(hào)線,也有為10根信號(hào)線的,如圖2所示。調(diào)試軟件通過4腳使CPU進(jìn)入背景調(diào)試模式,調(diào)試命令的串行信號(hào)則8通過腳輸入,同時(shí)4腳輸入信號(hào)步時(shí)鐘,而CPU中的微碼在執(zhí)行命令后會(huì)在10腳輸出調(diào)試結(jié)果指示信號(hào)??梢姡珺DM接口引線由并口和PC機(jī)相連,調(diào)試命令則是通過串行方式輸入的。
目前在CPU內(nèi)置的調(diào)試接口和微碼方面,各廠家尚無統(tǒng)一標(biāo)準(zhǔn)。處理器廠家、工具開發(fā)公司和儀器制造商曾于1998年組成了Nexus 5001 Forum(Nexus 5001論壇),成員包括Motorola、Infineon Technologies、日立、ETAS和惠普公司等,正致力于制定一個(gè)統(tǒng)一的片上通用調(diào)試接口。這方面的進(jìn)一步情況可查閱http://www.nexus-standard.org/網(wǎng)站。
5.2 邊界掃描測(cè)試技術(shù)和JTAG接口
邊界掃描測(cè)試技術(shù)(Boundary-Scan Test Architecture)屬于一種可測(cè)試性設(shè)計(jì)。其基本思想是在芯片引腳和芯片內(nèi)部邏輯之間(即芯片邊界位置)增加串行連接的邊界掃描測(cè)試單元,實(shí)現(xiàn)對(duì)芯片引腳狀態(tài)的設(shè)定和讀取,使芯片引腳狀態(tài)具有可控性和可觀測(cè)性。
邊界掃描測(cè)試技術(shù)最初由各大半導(dǎo)體公司(Philips、IBM、Intel等)成立的聯(lián)全測(cè)試行動(dòng)小組JTAG(Join Test Action Group)于1988年提出,1990年被IEEE規(guī)定為電子產(chǎn)品可測(cè)試性設(shè)計(jì)的標(biāo)準(zhǔn)(IEEE1149.1/2/3)。目前,該標(biāo)準(zhǔn)已被一些大規(guī)模集成電路所采用(如DSP、CPU、FPGA等),而訪問邊界掃描測(cè)試電路的接口信號(hào)定義標(biāo)準(zhǔn)被稱為JTAG接口,很多嵌入式處理器內(nèi)置了這種測(cè)試接口。在Cygnal公司的C8051F000系列單片機(jī)中和一些FPGA芯片中,JTAG接口不僅能用于測(cè)試,也是器件的編程接口。
IEEE1149.1標(biāo)準(zhǔn)支持以下3種測(cè)試功能:
*內(nèi)部測(cè)試――IC內(nèi)部的邏輯測(cè)試;
*外部測(cè)試――IC間相互連接的測(cè)試;
*取樣測(cè)試――IC正常運(yùn)行時(shí)的數(shù)據(jù)取樣測(cè)試。
圖3給出了具有2個(gè)芯片的系統(tǒng)的邊界掃描測(cè)試原理。
圖3中,TCK為測(cè)試同步時(shí)鐘輸入,TMS為測(cè)試模式選中輸入,TDI為測(cè)試數(shù)據(jù)輸入,TDO為測(cè)試數(shù)據(jù)輸出,由測(cè)試移位寄存器產(chǎn)品。圖3中的小方框表示位于芯片外圍的邊界掃描測(cè)試邏輯單元,芯片每個(gè)引腳信號(hào)經(jīng)過邊界掃描單元和內(nèi)部的功能單元相連接。
目前,邊界掃描技術(shù)的應(yīng)用主要在數(shù)字IC的測(cè)試上,這種設(shè)計(jì)思想也可用于模擬系統(tǒng)、板級(jí)測(cè)試甚至系統(tǒng)測(cè)試上。IEEE也制定了和IEEE1149.1相類似的標(biāo)準(zhǔn)IEEE P1149.4(數(shù)?;旌闲盘?hào)測(cè)試總線標(biāo)準(zhǔn))、IEEE 1149.5(電路板測(cè)試和維護(hù)總線標(biāo)準(zhǔn))。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論