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

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

圖2 系統(tǒng)硬件結(jié)構(gòu)圖
在上面的系統(tǒng)中,有兩條數(shù)據(jù)通道,一條是流出主控計(jì)算機(jī)的通路,首先主控計(jì)算機(jī)通過(guò)USB 總線將數(shù)據(jù)輸出到FT2232H 的RX 緩沖區(qū)中,然后USB 芯片通過(guò)MPSSE 接口將數(shù)據(jù)轉(zhuǎn)換成合IEEE1 149.1 標(biāo)準(zhǔn)的數(shù)據(jù),通過(guò)MPSSE 接口輸出測(cè)試信號(hào);另一條是流入主控計(jì)算機(jī)的通路,首先是MPSSE 接口采集到測(cè)試響應(yīng),存放在FT2232H 的TX 緩沖區(qū)中,主控計(jì)算機(jī)通過(guò)發(fā)送命令,將數(shù)據(jù)從緩沖區(qū)中讀回,為故障診斷做準(zhǔn)備。
USB 總線接口具有向外提供電源的能力,這樣在一定程度上可以滿足USB 設(shè)備的電源需求。USB 協(xié)議中規(guī)定,供電輸出電壓一般為4.75 V~5.25 V,每個(gè)USB 端口的最大輸出電流為500 mA,并且電流大小可以通過(guò)程序控制。鑒于測(cè)試控制器功耗低,對(duì)電流要求不高,USB 總線的驅(qū)動(dòng)能力足以驅(qū)動(dòng)測(cè)試卡,因此,測(cè)試控制器不需要外部電源供電,采用總線供電的方式即可。
在測(cè)試系統(tǒng)中,USB 控制芯片F(xiàn)T2232H 要求有一個(gè)+3.3 V的電壓供應(yīng)。所以需要在電路中進(jìn)行電壓轉(zhuǎn)換。本設(shè)計(jì)采用的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的每個(gè)通道有兩個(gè)IO 引腳控制LED 狀態(tài)指示燈,分別用于指示傳輸和接收數(shù)據(jù)。傳輸/接收數(shù)據(jù)時(shí),各自引腳從三態(tài)驅(qū)動(dòng)至低電平,LED 燈閃爍指示數(shù)據(jù)正在傳輸。如果使用數(shù)字計(jì)時(shí)器,數(shù)據(jù)傳輸?shù)陌俜种畮滓部汕宄鬏斨劣脩艚K端。FT2 232H 外接12M 的晶體振蕩器,在XTDI,XTOUT 與GND 之間增加電容器,這將有利于晶體的起振,增加一個(gè)外部的E2PROM(93C46/56/66)可以允許將每個(gè)通道單獨(dú)的配置成串口或者并口的模式,這個(gè)E-2PROM 也可以用來(lái)定制USB 設(shè)備的VID,PID,串行號(hào),設(shè)備描述符等信息,該E2PROM 必須是16 位寬,工作在4.3 V~5.25 V 范圍內(nèi),在FTDI 的網(wǎng)站上提供了MPROG V3.4 a 軟件可以對(duì)該E2PROM 編程[4],當(dāng)然如果沒(méi)有外置E-2PROM,則FT2 232H 被缺省配置成一個(gè)雙向串行口,設(shè)備使用缺省的VID,PID,設(shè)備描述符等。

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

圖5 JTAG 接口電平轉(zhuǎn)換原理圖
據(jù)邊界掃描測(cè)試過(guò)程和系統(tǒng)的性能要求,測(cè)試應(yīng)用軟件是運(yùn)行在Windows XP 系統(tǒng)上,在Visual C++6.0 環(huán)境下,使用面向?qū)ο蠹夹g(shù)開(kāi)發(fā)完成。根據(jù)測(cè)試系統(tǒng)的功能將整個(gè)軟件注意分為以下幾個(gè)模塊,分別為:測(cè)試文件生成模塊、USB 上下數(shù)據(jù)通信模塊、測(cè)試數(shù)據(jù)生成模塊、響應(yīng)數(shù)據(jù)分析模塊、故障診斷模塊和輔助功能模塊。另外為了完善的數(shù)據(jù)的管理和方便各個(gè)模塊間的數(shù)據(jù)調(diào)用,測(cè)試軟件引入了Access 數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)將存儲(chǔ)BSDL 文件和電路網(wǎng)表文件的分析結(jié)果并且保存生成的測(cè)試矢量集和測(cè)試結(jié)果響應(yīng)矢量集。軟件結(jié)構(gòu)圖如圖6 所示。

圖6 系統(tǒng)軟件設(shè)計(jì)結(jié)構(gòu)圖
測(cè)試軟件的主體分為5 個(gè)模塊,分別是測(cè)試矢量生成模塊、測(cè)試矢量施加模塊、USB 上下位機(jī)通信模塊故障分析模塊和輔助功能模塊。測(cè)試矢量生成模塊是通過(guò)分析電路的網(wǎng)絡(luò)表文件和BSDL 文件,提取其中的有用信息,再結(jié)合具體的算法生成測(cè)試矢量集,再將測(cè)試矢量集轉(zhuǎn)換為可以施加到掃描鏈上的測(cè)試數(shù)據(jù)。測(cè)試矢量加載模塊是負(fù)責(zé)配置測(cè)試卡,并將生成的測(cè)試數(shù)據(jù)加載到被測(cè)電路中。USB 數(shù)據(jù)通信模塊是負(fù)責(zé)根據(jù)驅(qū)動(dòng)程序,初始化測(cè)試卡,為數(shù)據(jù)傳送做好準(zhǔn)備。故障診斷模塊是根據(jù)獲得的響應(yīng)數(shù)據(jù),提取有用信息,根據(jù)板級(jí)測(cè)試?yán)碚撨M(jìn)行故障的分析和定位。輔助功能模塊提供人機(jī)交互的界面,數(shù)據(jù)庫(kù)的測(cè)試工程的管理[6-7]。整個(gè)軟件的工作流程如圖7 所示。

圖7 軟件設(shè)計(jì)的流程圖
針對(duì)傳統(tǒng)電路測(cè)試中的阻礙,本文研究了一種的邊界掃描測(cè)試控制器,以FT2 232H 芯片為核心,能夠通過(guò)各種配置,快速方便地實(shí)現(xiàn)USB 接口道JTAG 接口之間的轉(zhuǎn)換,而且各種USB 協(xié)議的處理工作都是芯片內(nèi)部自動(dòng)完成;以計(jì)算機(jī)為平臺(tái),利用微軟公司的Microsoft VC++6.0 通過(guò)面向?qū)ο蟮某绦蛟O(shè)計(jì)方法和可視化界面技術(shù)開(kāi)發(fā)出軟件控制界面,以此完成測(cè)試矢量的生成與加載和響應(yīng)數(shù)據(jù)的回收和數(shù)據(jù)分析,并最終完成故障診斷和結(jié)果顯示的功能。結(jié)果表明該測(cè)試控制器不僅具有測(cè)試時(shí)鐘可調(diào),測(cè)試速度快、成本低、便于攜帶、開(kāi)發(fā)難度較低等優(yōu)點(diǎn),還能縮短測(cè)試所需時(shí)間,增強(qiáng)測(cè)試設(shè)備的故障診斷能力,提高電子設(shè)備的可測(cè)性,具有很高的工程應(yīng)用價(jià)值。
[1]陳光禹,潘中良.可測(cè)性設(shè)計(jì)技術(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]王計(jì)元,王立勝,黃昶.新的FT2232C 型USB UART/FIFO 電路的特征及應(yīng)用[J].電子設(shè)計(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]王寧.基于邊界掃描的邏輯簇測(cè)試診斷軟件開(kāi)發(fā)[J].半導(dǎo)體技術(shù),2006,(4):276-279.