汪選勝,陳真
(河海大學 能源與電氣學院,江蘇 南京 211100)
隨著大規模的集成電路技術朝著超深亞微米方向發展,芯片的內部結構變得日趨復雜。芯片的集成度也已達千兆位,時鐘頻率正朝著向千兆赫茲以上發展,芯片的引腳數量也在急劇上升。新型的芯片封裝技術如PGA,BGA,SMT,MCM 等被大量采用,同時電路板的布線層數和密度也大大增加,使得外部可以接觸的引腳越來越少,特別是如今正日益興起的片上系統(SOC),在一塊芯片上集成了整個系統,因此也就不能通過外部的物理探針對系統的內部節點進行訪問測試;而且,對于高密度的復雜電路板而言,采用物理探針可能會對電路板結構和布線造成損壞。可以看出,集成電路實現的功能是越來越強大,其內部結構的復雜度也日益增強,但是測試的費用卻呈指數遞增,測試的開銷在電路和系統總開銷中所占的比例日益變大。對電路板在線測試的傳統方法通常是通過測試探針或針床技術來實現的,它必須用金屬探針與PCB 電路板上的器件和走線產生直接的物理接觸。可以看出,用傳統的線路檢測設備(ICT)和針床測試需要付出很高的代價,有時甚至不能解決這些問題[1-2]。
針對傳統測試方法在測試復雜數字電路板過程中所遇到的阻礙,以及電路的板級、芯片級、乃至系統級等不同層次的測試實現的需求,本文提出并設計了一種基于FT2232H 的邊界掃描測試控制器,能顯著簡化電子設備的測試過程,縮短測試所需時間,增強測試設備的故障診斷能力,提高電子設備的可測性。
邊界掃描測試系統的要求是能夠根據測試人員提供的硬件描述文件(電路板網絡表文件和器件邊界掃描描述文件)產生合適的測試矢量集,將測試矢量加載到被測電路,完成對被測電路的測試,分析,診斷等功能,進一步要求測試系統具有友好的人機交互界面、精確的故障診斷能力等。其具體需求如下:
1)邊界掃描測試的時鐘頻率可調。由于邊界掃描測試時候,測試矢量是通過TDI 串聯加載到被測電路的,所以測試的速度是測試過程中考慮的重要因素,在這套系統中,測試速度主要取決于測試時鐘TCK 的頻率,但是,很多被測芯片對最高的TCK 頻率有限制,所以就要求邊界掃描測試系統的時鐘是可調的。
2)JTAG 接口的電平兼容問題。由于測試系統的輸出電平與被測電路的接口電平不一定完全相同,為了使系統具有更高的兼容性,需要將邊界掃描測試系統的輸出電平轉換為被測電路的需要的接口電平。
3)支持對具有多個掃描鏈的對象的測試。在實際的測試中,很多比較復雜的被測對象可能具備多個獨立的邊界掃描鏈,為了支持對這種復雜的對象的測試,就要求邊界掃描控制器能提供多個IEEE 1149.1 總線測試端口。
4)準確的故障覆蓋率和定位精度。邊界掃描測試系統的主要功能就是故障檢測和故障定位,良好的測試矢量集是保證故障覆蓋率和定位精度的關鍵。所以要求測試能夠根據各種經典測試算法產生測試矢量集。
5)軟件的通用化和模塊化。要求邊界掃描系統能夠根據被測電路的網表文件和器件的BSDL 文件,從中提取有用的信息,結合一定的測試測試矢量生成算法,生成相應的測試矢量。此外,為了方便后期軟件的維護與升級,把實現每個功能的模塊打包成動態庫形式。
邊界掃描測試技術為數字電路的測試與研究提供了一套完整的、標準化的方法。該測試系統主要包括兩個部分:主機控制部分和受控部分。主機控制部分提供符合IEEE1149.1 標準的信號,受控部分就是包含有邊界掃描結構的被測電路,主要是接受測試矢量,產生響應。這一部分可以是芯片,也可以是電路系統。
根據邊界掃描測試系統功能和性能需求,邊界掃描測試系統采用主/從結構設計,由主控計算機模塊、邊界掃描測試卡模塊和被測電路板模塊組成。系統總體結構如圖1 所示。

圖1 系統總體結構圖
圖1 中上位機控制模塊使用的是普通PC 機,主要運行邊界掃描測試軟件,完成測試任務、人機交互界面和數據的管理。邊界掃描測試卡模塊的任務是與主控計算機進行通訊,接收主機發過來的測試矢量集,產生符合JTAG標準的測試總線,通過TDI 將測試矢量加載到被測電路上進行測試;測試結束后,測試卡向主機發出通知,此時主控計算機將測試響應數據讀走。圖1 中被測電路模塊是完成可測試性設計的電路板,在設計電路板時一定要考慮可測性的要求,使電路板不僅能滿足功能需求,也可以使用邊界掃描測試系統對其進行測試。
邊界掃描測試控制器硬件可分為兩部分:一部分是USB接口通信控制芯片,另一部分是JTAG 主控芯片.綜合考慮芯片的傳輸速度,內部的硬件資源,功耗,開發工具包,與JTAG接口的連接等因素,選擇FTDI 公司的FT2232H[3]芯片。該芯片的最大特點是將整個USB 協議處理都做到芯片里,而且不需要編寫任何的固件程序,所有的數據收發和協議轉換工作全部由轉換器來獨立完成,開發過程簡單。控制器利用USB控制芯片實現USB 協議與PC 機進行通信,同時通過操作JTAG 主控芯片,使其輸出到JTAG 總線上的數據符合IEEE 1 149.1標準,從而達到由PC 機控制JTAG 總線的目的。在這里主控芯片就通過操作MPSSE(多協議同步串行機接口)來實現USB 到JTAG 的轉換。降低了開發難度。總體硬件框圖如圖2 所示。

圖2 系統硬件結構圖
在上面的系統中,有兩條數據通道,一條是流出主控計算機的通路,首先主控計算機通過USB 總線將數據輸出到FT2232H 的RX 緩沖區中,然后USB 芯片通過MPSSE 接口將數據轉換成合IEEE1 149.1 標準的數據,通過MPSSE 接口輸出測試信號;另一條是流入主控計算機的通路,首先是MPSSE 接口采集到測試響應,存放在FT2232H 的TX 緩沖區中,主控計算機通過發送命令,將數據從緩沖區中讀回,為故障診斷做準備。
USB 總線接口具有向外提供電源的能力,這樣在一定程度上可以滿足USB 設備的電源需求。USB 協議中規定,供電輸出電壓一般為4.75 V~5.25 V,每個USB 端口的最大輸出電流為500 mA,并且電流大小可以通過程序控制。鑒于測試控制器功耗低,對電流要求不高,USB 總線的驅動能力足以驅動測試卡,因此,測試控制器不需要外部電源供電,采用總線供電的方式即可。
在測試系統中,USB 控制芯片FT2232H 要求有一個+3.3 V的電壓供應。所以需要在電路中進行電壓轉換。本設計采用的TI 公司的TPS73 433 芯片是一款單路穩定輸出電壓為3.3 V 的低靜態電流低噪聲的穩壓器。可以穩定提供給FT2 232H 工作,具體電路圖如3 所示。

圖3 FT2232H 電源工作模塊
FT2 232H 的具體應用電路如圖4 所示,在FT2 232H的每個通道有兩個IO 引腳控制LED 狀態指示燈,分別用于指示傳輸和接收數據。傳輸/接收數據時,各自引腳從三態驅動至低電平,LED 燈閃爍指示數據正在傳輸。如果使用數字計時器,數據傳輸的百分之幾也可清楚傳輸至用戶終端。FT2 232H 外接12M 的晶體振蕩器,在XTDI,XTOUT 與GND 之間增加電容器,這將有利于晶體的起振,增加一個外部的E2PROM(93C46/56/66)可以允許將每個通道單獨的配置成串口或者并口的模式,這個E-2PROM 也可以用來定制USB 設備的VID,PID,串行號,設備描述符等信息,該E2PROM 必須是16 位寬,工作在4.3 V~5.25 V 范圍內,在FTDI 的網站上提供了MPROG V3.4 a 軟件可以對該E2PROM 編程[4],當然如果沒有外置E-2PROM,則FT2 232H 被缺省配置成一個雙向串行口,設備使用缺省的VID,PID,設備描述符等。

圖4 USB 到JTAG 轉換接口圖
FT2 232H 的通道被配置為輸出高電平是3.3 V,而被測電路的板的接口電平卻是多種多樣的,目前數字電路中廣泛使用的接口電平主要有1.8 V,2.5 V,3.3 V,5 V 等幾種。為了使本測試卡的JTAG 接口具有更高的電平兼容性,要求電平轉換芯片能把MPSSE 接口的3.3 V 電平轉換成被測電路板需要的接口電平,除此之外,從TDO 口返回的信號也要能從被測電路板的電平轉換成3.3 V。
從以上分析看出,接口電路對電平轉換要求比較高,需要支持幾種電平的雙向轉換,綜合考慮,選擇Maxim 公司的MAX3378 芯片[5],此款芯片有4 個I/O 通道。兩個基準電壓輸入腳VCC(1.25 V~5.5 V)和VL(1.65 V~5.5 V),通過在這兩個管腳上面施加不同的基準電壓,可以很方便地實現電平的雙向轉換,此外還有一個輸入管腳THREE-STATE,用來控制電平轉換的使能端,低電平有效,具體的電路如圖5 所示。
把JTAG 接口上TCK,TMS,TDI 和TDO 管腳都通過MAX3 378 連接到FT2 232D 的A 通道的可編程I/O 管腳。MAX3 378 的VL 腳連到JTAG 接口的4 管腳,由相應的被測電路板提供給這個基準電壓。同樣的道理,通道2的JTAG 的設計也是如此。

圖5 JTAG 接口電平轉換原理圖
據邊界掃描測試過程和系統的性能要求,測試應用軟件是運行在Windows XP 系統上,在Visual C++6.0 環境下,使用面向對象技術開發完成。根據測試系統的功能將整個軟件注意分為以下幾個模塊,分別為:測試文件生成模塊、USB 上下數據通信模塊、測試數據生成模塊、響應數據分析模塊、故障診斷模塊和輔助功能模塊。另外為了完善的數據的管理和方便各個模塊間的數據調用,測試軟件引入了Access 數據庫,數據庫將存儲BSDL 文件和電路網表文件的分析結果并且保存生成的測試矢量集和測試結果響應矢量集。軟件結構圖如圖6 所示。

圖6 系統軟件設計結構圖
測試軟件的主體分為5 個模塊,分別是測試矢量生成模塊、測試矢量施加模塊、USB 上下位機通信模塊故障分析模塊和輔助功能模塊。測試矢量生成模塊是通過分析電路的網絡表文件和BSDL 文件,提取其中的有用信息,再結合具體的算法生成測試矢量集,再將測試矢量集轉換為可以施加到掃描鏈上的測試數據。測試矢量加載模塊是負責配置測試卡,并將生成的測試數據加載到被測電路中。USB 數據通信模塊是負責根據驅動程序,初始化測試卡,為數據傳送做好準備。故障診斷模塊是根據獲得的響應數據,提取有用信息,根據板級測試理論進行故障的分析和定位。輔助功能模塊提供人機交互的界面,數據庫的測試工程的管理[6-7]。整個軟件的工作流程如圖7 所示。

圖7 軟件設計的流程圖
針對傳統電路測試中的阻礙,本文研究了一種的邊界掃描測試控制器,以FT2 232H 芯片為核心,能夠通過各種配置,快速方便地實現USB 接口道JTAG 接口之間的轉換,而且各種USB 協議的處理工作都是芯片內部自動完成;以計算機為平臺,利用微軟公司的Microsoft VC++6.0 通過面向對象的程序設計方法和可視化界面技術開發出軟件控制界面,以此完成測試矢量的生成與加載和響應數據的回收和數據分析,并最終完成故障診斷和結果顯示的功能。結果表明該測試控制器不僅具有測試時鐘可調,測試速度快、成本低、便于攜帶、開發難度較低等優點,還能縮短測試所需時間,增強測試設備的故障診斷能力,提高電子設備的可測性,具有很高的工程應用價值。
[1]陳光禹,潘中良.可測性設計技術[M].北京:電子工業出版社,1997.10-22,177-180,285-292,194-201.
[2]Plunkett,Domainic.Taking JTAG Testing Further Electronic Product Design[J],International Test Conference,2005,9(50):58-60.
[3]FTDI 公司.FT2232H Data sheet[DB].http://www.ftdichip.com/Documents/DataSheet/ DSFT2232H_V201.pdf .2008.
[4]王計元,王立勝,黃昶.新的FT2232C 型USB UART/FIFO 電路的特征及應用[J].電子設計工程,2005,13(8):44-46.
[5]Maxim.Max3378 Data Sheet[DB].http://pdfserv.maxim-ic.com/en/ds/MAX3372E-MAX3393E.pdf.2003.
[6]Hansen P.Testing Conventional Logic and Memory Cluster using Boundary Scan Devices as Virtual ATE Channels[J].Proc.of Intl.Test Conf.1989:200-209.
[7]王寧.基于邊界掃描的邏輯簇測試診斷軟件開發[J].半導體技術,2006,(4):276-279.