當?shù)谝慌?strong>電路板樣板放在硬件工程師桌面的時候,在測試時他會感到非常困擾。工程師耗費幾個星期的時間設(shè)計電路圖和布板,現(xiàn)在電路板做出來了,上面也安裝好了元器件并拿在手上,現(xiàn)在必須確定它能否工作。工程師插上板子,加電并觀察。但沒有辦法檢測BGA下面微小到得用放大鏡才能看清楚的芯片引腳,工程師應(yīng)該怎么辦?
BGA因為具有很多優(yōu)點,所以應(yīng)用非常普遍。然而我們不能靠剝離器件來探測BGA下面的連線。X射線是一種可選的測試方案,但是,它們僅僅 呈現(xiàn)焊點的靜態(tài)圖像,而不是提供確保連接性所需的動態(tài)電氣報告,因而極難判斷虛焊和可靠焊點之間的差異。人們總是希望一換掉BGA,問題就會消失。這通常 是一種昂貴和耗時間的選擇方案,并且生產(chǎn)率非常低。
傳統(tǒng)的邊界掃描是另一種選擇方案,但是這通常需要一些昂貴的工具,并要創(chuàng)建測試向量和測試執(zhí)行,整個過程要花很長時間。所花費的時間長短取決于設(shè)計文檔的穩(wěn)定性和精度。此外,測試結(jié)果不是動態(tài)的,它們通常是對電路板上所發(fā)現(xiàn)問題的匯總。
最佳測試方案是存在于現(xiàn)有設(shè)計中的快速、簡單和廉價的方案。許多BGA和大多數(shù)高端嵌入式處理器都支持通過IEEE 1149.1 JTAG接口進行邊界掃描。
核心問題在于:信號線是否被正確地連接到物理上無法用探頭接觸的BGA器件的某一引腳?該信號線可能是時鐘線、地址線、數(shù)據(jù)總線或任何感興趣的信號線。關(guān)鍵是對其在電路中進行測試,以觀察其狀態(tài)是高、低或正發(fā)生狀態(tài)跳變,以及信號線是否連通。
基于JTAG的邊界掃描能以非傳統(tǒng)的方式獲得這些信息。概念很簡單,即IC獲取其所有引腳的狀態(tài)并通過邊界掃描鏈重復(fù)地把這些狀態(tài)移出,并在個人電腦上同步顯示結(jié)果。用戶可以觀察BGA器件下面每一個可掃描引腳的動態(tài)行為指示。
從顯示器可以實時觀察振蕩器是否連接到G17腳或者地址或數(shù)據(jù)總線的行為,與此同時,電路板上的電路可以不受干擾而保持正常運行。該技術(shù)的 最好之處在于電路不知道你在進行測試,測試對電路的工作是完全透明的。測試應(yīng)用程序以全速運行,在JTAG掃描鏈上的每一個器件都受到監(jiān)測。
完成這類測試的工具非常依賴于圖形用戶接口(GUI)。一旦電路板被描述到應(yīng)用軟件中,屏幕上顯示的芯片圖就類似于電路版圖中的封裝。因 為芯片的JTAG接口可能以菊花鏈排列,版圖可能僅包含一個處理器或一些BGA器件,或者可能包含許多器件,諸如處理器、門陣列、輸入/輸出控制器等。引 腳在屏幕上以彩色編碼顯示實時狀況,如引腳現(xiàn)在的邏輯電平或是否在發(fā)生狀態(tài)跳變。這就使測試非常直觀。當測試目的是簡單的連通性和狀態(tài)檢查時,就消除了創(chuàng) 建測試向量或測試執(zhí)行的需要。
圖1:目前市場上常見的JTAG調(diào)試工具
每一個器件都被發(fā)送JTAG指令EXTEST,以容許對器件上的每一根引腳進行完全的控制。應(yīng)用程序然后可以驅(qū)動地址總線或切換到一根到連接器或LED的線,以檢查整個電路的連通性,所有這一切只要點擊鼠標就能完成。
所有具備JTAG端口的集成電路都將內(nèi)建邊界掃描功能,其組成部分包括:圍繞被掃描器件邊界的較長的移位寄存器和控制移位寄存器行為的狀態(tài)機。在邊界寄存器中的每一個寄存器位捕獲或控制器件上每一個引腳的某些方面。如果該位是緩沖器使能的,該寄存器位就可能控制若干引腳。
軟件應(yīng)用程序引導(dǎo)狀態(tài)機把每一個引腳的狀態(tài)捕獲到邊界寄存器之中,然后將其移出JTAG端口。重復(fù)這個過程,并把結(jié)果顯示在屏幕上,就可以實時顯示在掃描鏈中的每一個器件的每一個引腳的行為。因為與測試向量法相比,通過顯示圖像可以做可視化分析,所以掃描速度不是問題。
對于典型的門陣列,一個這樣的寄存器通常有300到400位;而對于處理器,最多有幾千位。邊界掃描描述語言文件(BSDL)定義了寄存器中每一位的含義。這些文件常見于IC供應(yīng)商的網(wǎng)站,它們非常詳細、精確地描述了邊界掃描鏈中每一個單元的含義以及它與物理引腳的關(guān)系。
在器件中與每一個引腳相關(guān)的典型掃描單元有三種:1. 捕獲/控制進入器件的信號;2. 捕獲/控制流出器件的信號;3. 捕獲/控制輸出緩沖器使能。如果引腳是一個專用的“輸入”引腳,它通常具有單個掃描單元。
JTAG接口只有4條線:測試數(shù)據(jù)輸入(TDI)、測試數(shù)據(jù)輸出(TDO)、測試時鐘(TCK)和測試模式選擇(TMS)。TCK是用于把數(shù)據(jù)讀入TDI引腳并把數(shù)據(jù)讀出TDO引腳的異步時鐘。TMS引腳被用于轉(zhuǎn)換TAP控制器的狀態(tài)機。
BSDL文件是免費的,邊界掃描電路已經(jīng)被構(gòu)建在你的JTAG器件之中,而JTAG接頭在你的目標板上。接下來做的事就是編制合適的診斷應(yīng)用程序,并開始觀察BGA器件下面的情況。
Macraigor、XJTAG和Corellis等公司提供了很多工具,幫助硬件工程師最大限度地利用目標板內(nèi)建的JTAG功能。面對價 格和功能各異的各種工具,你需要找到最適合你的測試要求的工具。所幸大多數(shù)可由JTAG解決的硬件問題都可以采用合適的工具方便和快速地加以解決。
市場上存在廉價的工具,它不僅完全支持JTAG調(diào)試,而且配備極易使用的GUI。Macraigor Systems公司最近剛推出一種稱為JSCAN的 工具,它除了能夠完成所有上述工作之外,還能完成許多其它測試任務(wù)。在應(yīng)用程序中,包含各種虛擬LED和開關(guān),它們可以虛擬連接到BGA器件的引腳以幫助 監(jiān)測和控制被測信號。它具有一個腳本記錄器,所以,你可以創(chuàng)造包含循環(huán)、用戶提示和查詢的簡單測試腳本。該腳本被存儲在工業(yè)標準的SVF文件中,可以在 JSACN工具或任何SVF播放器上播放。這就容許你快速地測試多個電路板并即時了解哪塊板有問題及其問題的根源。
此外,該產(chǎn)品無論板上的處理器是否在運行,都能對閃存進行編程。只要選擇一些選項,提供一個數(shù)據(jù)文件并點擊“編程”項,就能把信號信息 (地址、數(shù)據(jù)和控制)填入空位。JSCAN控制被測器件的所有引腳,并使用這些引腳對閃存編程。當然這需要假定你的閃存已經(jīng)連接到JTAG鏈中的一個或多 個器件。
JTAG Commander是一種較低級的工具,它直觀地輔助JTAG掃描鏈本身被診斷,并為硬件工程師提供了SVF和JAM目標代碼文件的播放器。
除了電路板測試外, Macraigor Systems公司還提供高端和低端調(diào)試工具,使軟件監(jiān)測操作系統(tǒng)和運行在你的目標系統(tǒng)上的所有應(yīng)用程序。