汪選勝,陳真
(河海大學 能源與電氣學院,江蘇 南京 211100)
隨著大規(guī)模的集成電路技術(shù)朝著超深亞微米方向發(fā)展,芯片的內(nèi)部結(jié)構(gòu)變得日趨復(fù)雜。芯片的集成度也已達千兆位,時鐘頻率正朝著向千兆赫茲以上發(fā)展,芯片的引腳數(shù)量也在急劇上升。新型的芯片封裝技術(shù)如PGA,BGA,SMT,MCM 等被大量采用,同時電路板的布線層數(shù)和密度也大大增加,使得外部可以接觸的引腳越來越少,特別是如今正日益興起的片上系統(tǒng)(SOC),在一塊芯片上集成了整個系統(tǒng),因此也就不能通過外部的物理探針對系統(tǒng)的內(nèi)部節(jié)點進行訪問測試;而且,對于高密度的復(fù)雜電路板而言,采用物理探針可能會對電路板結(jié)構(gòu)和布線造成損壞??梢钥闯觯呻娐穼崿F(xiàn)的功能是越來越強大,其內(nèi)部結(jié)構(gòu)的復(fù)雜度也日益增強,但是測試的費用卻呈指數(shù)遞增,測試的開銷在電路和系統(tǒng)總開銷中所占的比例日益變大。對電路板在線測試的傳統(tǒng)方法通常是通過測試探針或針床技術(shù)來實現(xiàn)的,它必須用金屬探針與PCB 電路板上的器件和走線產(chǎn)生直接的物理接觸??梢钥闯觯脗鹘y(tǒng)的線路檢測設(shè)備(ICT)和針床測試需要付出很高的代價,有時甚至不能解決這些問題[1-2]。
針對傳統(tǒng)測試方法在測試復(fù)雜數(shù)字電路板過程中所遇到的阻礙,以及電路的板級、芯片級、乃至系統(tǒng)級等不同層次的測試實現(xiàn)的需求,本文提出并設(shè)計了一種基于FT2232H 的邊界掃描測試控制器,能顯著簡化電子設(shè)備的測試過程,縮短測試所需時間,增強測試設(shè)備的故障診斷能力,提高電子設(shè)備的可測性。
邊界掃描測試系統(tǒng)的要求是能夠根據(jù)測試人員提供的硬件描述文件(電路板網(wǎng)絡(luò)表文件和器件邊界掃描描述文件)產(chǎn)生合適的測試矢量集,將測試矢量加載到被測電路,完成對被測電路的測試,分析,診斷等功能,進一步要求測試系統(tǒng)具有友好的人機交互界面、精確的故障診斷能力等。其具體需求如下:
1)邊界掃描測試的時鐘頻率可調(diào)。由于邊界掃描測試時候,測試矢量是通過TDI 串聯(lián)加載到被測電路的,所以測試的速度是測試過程中考慮的重要因素,在這套系統(tǒng)中,測試速度主要取決于測試時鐘TCK 的頻率,但是,很多被測芯片對最高的TCK 頻率有限制,所以就要求邊界掃描測試系統(tǒng)的時鐘是可調(diào)的。
2)JTAG 接口的電平兼容問題。由于測試系統(tǒng)的輸出電平與被測電路的接口電平不一定完全相同,為了使系統(tǒng)具有更高的兼容性,需要將邊界掃描測試系統(tǒng)的輸出電平轉(zhuǎn)換為被測電路的需要的接口電平。
3)支持對具有多個掃描鏈的對象的測試。在實際的測試中,很多比較復(fù)雜的被測對象可能具備多個獨立的邊界掃描鏈,為了支持對這種復(fù)雜的對象的測試,就要求邊界掃描控制器能提供多個IEEE 1149.1 總線測試端口。
4)準確的故障覆蓋率和定位精度。邊界掃描測試系統(tǒng)的主要功能就是故障檢測和故障定位,良好的測試矢量集是保證故障覆蓋率和定位精度的關(guān)鍵。所以要求測試能夠根據(jù)各種經(jīng)典測試算法產(chǎn)生測試矢量集。
5)軟件的通用化和模塊化。要求邊界掃描系統(tǒng)能夠根據(jù)被測電路的網(wǎng)表文件和器件的BSDL 文件,從中提取有用的信息,結(jié)合一定的測試測試矢量生成算法,生成相應(yīng)的測試矢量。此外,為了方便后期軟件的維護與升級,把實現(xiàn)每個功能的模塊打包成動態(tài)庫形式。
邊界掃描測試技術(shù)為數(shù)字電路的測試與研究提供了一套完整的、標準化的方法。該測試系統(tǒng)主要包括兩個部分:主機控制部分和受控部分。主機控制部分提供符合IEEE1149.1 標準的信號,受控部分就是包含有邊界掃描結(jié)構(gòu)的被測電路,主要是接受測試矢量,產(chǎn)生響應(yīng)。這一部分可以是芯片,也可以是電路系統(tǒng)。
根據(jù)邊界掃描測試系統(tǒng)功能和性能需求,邊界掃描測試系統(tǒng)采用主/從結(jié)構(gòu)設(shè)計,由主控計算機模塊、邊界掃描測試卡模塊和被測電路板模塊組成。系統(tǒng)總體結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
圖1 中上位機控制模塊使用的是普通PC 機,主要運行邊界掃描測試軟件,完成測試任務(wù)、人機交互界面和數(shù)據(jù)的管理。邊界掃描測試卡模塊的任務(wù)是與主控計算機進行通訊,接收主機發(fā)過來的測試矢量集,產(chǎn)生符合JTAG標準的測試總線,通過TDI 將測試矢量加載到被測電路上進行測試;測試結(jié)束后,測試卡向主機發(fā)出通知,此時主控計算機將測試響應(yīng)數(shù)據(jù)讀走。圖1 中被測電路模塊是完成可測試性設(shè)計的電路板,在設(shè)計電路板時一定要考慮可測性的要求,使電路板不僅能滿足功能需求,也可以使用邊界掃描測試系統(tǒng)對其進行測試。
邊界掃描測試控制器硬件可分為兩部分:一部分是USB接口通信控制芯片,另一部分是JTAG 主控芯片.綜合考慮芯片的傳輸速度,內(nèi)部的硬件資源,功耗,開發(fā)工具包,與JTAG接口的連接等因素,選擇FTDI 公司的FT2232H[3]芯片。該芯片的最大特點是將整個USB 協(xié)議處理都做到芯片里,而且不需要編寫任何的固件程序,所有的數(shù)據(jù)收發(fā)和協(xié)議轉(zhuǎn)換工作全部由轉(zhuǎn)換器來獨立完成,開發(fā)過程簡單??刂破骼肬SB控制芯片實現(xiàn)USB 協(xié)議與PC 機進行通信,同時通過操作JTAG 主控芯片,使其輸出到JTAG 總線上的數(shù)據(jù)符合IEEE 1 149.1標準,從而達到由PC 機控制JTAG 總線的目的。在這里主控芯片就通過操作MPSSE(多協(xié)議同步串行機接口)來實現(xiàn)USB 到JTAG 的轉(zhuǎn)換。降低了開發(fā)難度??傮w硬件框圖如圖2 所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)圖
在上面的系統(tǒng)中,有兩條數(shù)據(jù)通道,一條是流出主控計算機的通路,首先主控計算機通過USB 總線將數(shù)據(jù)輸出到FT2232H 的RX 緩沖區(qū)中,然后USB 芯片通過MPSSE 接口將數(shù)據(jù)轉(zhuǎn)換成合IEEE1 149.1 標準的數(shù)據(jù),通過MPSSE 接口輸出測試信號;另一條是流入主控計算機的通路,首先是MPSSE 接口采集到測試響應(yīng),存放在FT2232H 的TX 緩沖區(qū)中,主控計算機通過發(fā)送命令,將數(shù)據(jù)從緩沖區(qū)中讀回,為故障診斷做準備。
USB 總線接口具有向外提供電源的能力,這樣在一定程度上可以滿足USB 設(shè)備的電源需求。USB 協(xié)議中規(guī)定,供電輸出電壓一般為4.75 V~5.25 V,每個USB 端口的最大輸出電流為500 mA,并且電流大小可以通過程序控制。鑒于測試控制器功耗低,對電流要求不高,USB 總線的驅(qū)動能力足以驅(qū)動測試卡,因此,測試控制器不需要外部電源供電,采用總線供電的方式即可。
在測試系統(tǒng)中,USB 控制芯片F(xiàn)T2232H 要求有一個+3.3 V的電壓供應(yīng)。所以需要在電路中進行電壓轉(zhuǎn)換。本設(shè)計采用的TI 公司的TPS73 433 芯片是一款單路穩(wěn)定輸出電壓為3.3 V 的低靜態(tài)電流低噪聲的穩(wěn)壓器??梢苑€(wěn)定提供給FT2 232H 工作,具體電路圖如3 所示。
圖3 FT2232H 電源工作模塊
FT2 232H 的具體應(yīng)用電路如圖4 所示,在FT2 232H的每個通道有兩個IO 引腳控制LED 狀態(tài)指示燈,分別用于指示傳輸和接收數(shù)據(jù)。傳輸/接收數(shù)據(jù)時,各自引腳從三態(tài)驅(qū)動至低電平,LED 燈閃爍指示數(shù)據(jù)正在傳輸。如果使用數(shù)字計時器,數(shù)據(jù)傳輸?shù)陌俜种畮滓部汕宄鬏斨劣脩艚K端。FT2 232H 外接12M 的晶體振蕩器,在XTDI,XTOUT 與GND 之間增加電容器,這將有利于晶體的起振,增加一個外部的E2PROM(93C46/56/66)可以允許將每個通道單獨的配置成串口或者并口的模式,這個E-2PROM 也可以用來定制USB 設(shè)備的VID,PID,串行號,設(shè)備描述符等信息,該E2PROM 必須是16 位寬,工作在4.3 V~5.25 V 范圍內(nèi),在FTDI 的網(wǎng)站上提供了MPROG V3.4 a 軟件可以對該E2PROM 編程[4],當然如果沒有外置E-2PROM,則FT2 232H 被缺省配置成一個雙向串行口,設(shè)備使用缺省的VID,PID,設(shè)備描述符等。
圖4 USB 到JTAG 轉(zhuǎn)換接口圖
FT2 232H 的通道被配置為輸出高電平是3.3 V,而被測電路的板的接口電平卻是多種多樣的,目前數(shù)字電路中廣泛使用的接口電平主要有1.8 V,2.5 V,3.3 V,5 V 等幾種。為了使本測試卡的JTAG 接口具有更高的電平兼容性,要求電平轉(zhuǎn)換芯片能把MPSSE 接口的3.3 V 電平轉(zhuǎn)換成被測電路板需要的接口電平,除此之外,從TDO 口返回的信號也要能從被測電路板的電平轉(zhuǎn)換成3.3 V。
從以上分析看出,接口電路對電平轉(zhuǎn)換要求比較高,需要支持幾種電平的雙向轉(zhuǎn)換,綜合考慮,選擇Maxim 公司的MAX3378 芯片[5],此款芯片有4 個I/O 通道。兩個基準電壓輸入腳VCC(1.25 V~5.5 V)和VL(1.65 V~5.5 V),通過在這兩個管腳上面施加不同的基準電壓,可以很方便地實現(xiàn)電平的雙向轉(zhuǎn)換,此外還有一個輸入管腳THREE-STATE,用來控制電平轉(zhuǎn)換的使能端,低電平有效,具體的電路如圖5 所示。
把JTAG 接口上TCK,TMS,TDI 和TDO 管腳都通過MAX3 378 連接到FT2 232D 的A 通道的可編程I/O 管腳。MAX3 378 的VL 腳連到JTAG 接口的4 管腳,由相應(yīng)的被測電路板提供給這個基準電壓。同樣的道理,通道2的JTAG 的設(shè)計也是如此。
圖5 JTAG 接口電平轉(zhuǎn)換原理圖
據(jù)邊界掃描測試過程和系統(tǒng)的性能要求,測試應(yīng)用軟件是運行在Windows XP 系統(tǒng)上,在Visual C++6.0 環(huán)境下,使用面向?qū)ο蠹夹g(shù)開發(fā)完成。根據(jù)測試系統(tǒng)的功能將整個軟件注意分為以下幾個模塊,分別為:測試文件生成模塊、USB 上下數(shù)據(jù)通信模塊、測試數(shù)據(jù)生成模塊、響應(yīng)數(shù)據(jù)分析模塊、故障診斷模塊和輔助功能模塊。另外為了完善的數(shù)據(jù)的管理和方便各個模塊間的數(shù)據(jù)調(diào)用,測試軟件引入了Access 數(shù)據(jù)庫,數(shù)據(jù)庫將存儲BSDL 文件和電路網(wǎng)表文件的分析結(jié)果并且保存生成的測試矢量集和測試結(jié)果響應(yīng)矢量集。軟件結(jié)構(gòu)圖如圖6 所示。
圖6 系統(tǒng)軟件設(shè)計結(jié)構(gòu)圖
測試軟件的主體分為5 個模塊,分別是測試矢量生成模塊、測試矢量施加模塊、USB 上下位機通信模塊故障分析模塊和輔助功能模塊。測試矢量生成模塊是通過分析電路的網(wǎng)絡(luò)表文件和BSDL 文件,提取其中的有用信息,再結(jié)合具體的算法生成測試矢量集,再將測試矢量集轉(zhuǎn)換為可以施加到掃描鏈上的測試數(shù)據(jù)。測試矢量加載模塊是負責配置測試卡,并將生成的測試數(shù)據(jù)加載到被測電路中。USB 數(shù)據(jù)通信模塊是負責根據(jù)驅(qū)動程序,初始化測試卡,為數(shù)據(jù)傳送做好準備。故障診斷模塊是根據(jù)獲得的響應(yīng)數(shù)據(jù),提取有用信息,根據(jù)板級測試理論進行故障的分析和定位。輔助功能模塊提供人機交互的界面,數(shù)據(jù)庫的測試工程的管理[6-7]。整個軟件的工作流程如圖7 所示。
圖7 軟件設(shè)計的流程圖
針對傳統(tǒng)電路測試中的阻礙,本文研究了一種的邊界掃描測試控制器,以FT2 232H 芯片為核心,能夠通過各種配置,快速方便地實現(xiàn)USB 接口道JTAG 接口之間的轉(zhuǎn)換,而且各種USB 協(xié)議的處理工作都是芯片內(nèi)部自動完成;以計算機為平臺,利用微軟公司的Microsoft VC++6.0 通過面向?qū)ο蟮某绦蛟O(shè)計方法和可視化界面技術(shù)開發(fā)出軟件控制界面,以此完成測試矢量的生成與加載和響應(yīng)數(shù)據(jù)的回收和數(shù)據(jù)分析,并最終完成故障診斷和結(jié)果顯示的功能。結(jié)果表明該測試控制器不僅具有測試時鐘可調(diào),測試速度快、成本低、便于攜帶、開發(fā)難度較低等優(yōu)點,還能縮短測試所需時間,增強測試設(shè)備的故障診斷能力,提高電子設(shè)備的可測性,具有很高的工程應(yīng)用價值。
[1]陳光禹,潘中良.可測性設(shè)計技術(shù)[M].北京:電子工業(yè)出版社,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 電路的特征及應(yīng)用[J].電子設(shè)計工程,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]王寧.基于邊界掃描的邏輯簇測試診斷軟件開發(fā)[J].半導體技術(shù),2006,(4):276-279.