梁曉芬
(國營蕪湖機械廠,安徽 蕪湖 241007)
隨著技術的發展,新裝備中大規模集成電路的應用越來越廣泛,大批以CPU、CPLD、DSP、FPGA 等作為核心器件的電路單元的使用,使電路網絡拓撲復雜、元器件引腳密集。采用傳統的設備測試方法已經難以滿足測試需求。另一方面,邊界掃描測試(JTAG 測試)的功能逐漸強大和完善,從而在更多的領域得到越來越廣泛地應用,并已成為國際上通用的電路板測試方法。
本文對邊界掃描控制器及軟件、被測板進行了簡單介紹,以被測板(UUT)為例簡要介紹了其測試方案和測試方法。
本項目中選擇美國ASSET 公司的ScanWorks 邊界掃描控制器。該控制器完全支持相關IEEE 標準,功能強大,在電子測試領域內應用非常廣泛。
ScanWorks 測試系統包括軟件和硬件兩部分。軟件圖片如圖1 所示。

圖1 ScanWorks 邊界掃描測試環境
1.1.1 邊界掃描控制器硬件功能
邊界掃描控制器硬件將程序中的測試數據串(脈沖序列代碼)轉換成實際的脈沖序列,輸出給待測電路板,并且接收測試數據回到測試系統中,從而實施測試。
ScanWorks 測試系統硬件基本包括:
(1)1 臺PC,Windows XP、2000 or NT 的操作系統;
(2)卡式JTAG 控制器(PCI-400 PCI card);
(3)接口適配盒;
(4)電纜。
1.1.2 邊界掃描控制器軟件功能
ScanWorks 測試系統軟件主要實現2 個功能:
(1)根據網絡表和JTAG 芯片的BSDL 文件,產生包含所需要的測試數據串(脈沖序列代碼)的測試程序;
(2)生成存儲器和可編程器件在線燒錄數據。
ScanWorks 測試系統軟件基本功能包括:
(1)生成測試系統覆蓋率報告;
(2)測試錯誤的分析診斷(管腳級)及圖形顯示;
(3)程序調試;
(4)執行存儲器測試;
(5)可編程器件程序燒錄。
1.1.3 邊界掃描控制器及軟件開發流程
ScanWorks 測試系統軟件開發電路板測試診斷TPS 的流程如下:
(1)輸入電路板網表;
(2)輸入相關邊界掃描器件的BSDL 文件;
(3)設置掃描鏈;
(4)生成鏈路測試序列;
(5)生成互聯測試序列;
(6)生成存儲器、Flash 等器件的測試序列;
(7)測試執行并生成測試報表。
被測電路板(以下簡稱UUT 模塊)主要進行鏈路通信協議管理、ID 地址匹配、信息分類、流量控制,同時實現多路參數等回傳信息的控制。嵌入式計算機CPU 模塊是該UUT 模塊的核心。
該UUT 模塊主要包含2 個邊掃器件,1 個為微控制器PowerPC603R,具體型號為MPC603RRX200LC,主頻160 MHz;另一個為APA300(D10)FPGA 芯片,主要硬件資源如下。
(1)處理器:PowerPC603R,主頻160 MHz。
(2)FPGA:APA300,與處理器配合完成通信控制。
(3)存儲器:32 MB SDRAM 讀寫零等待,64 MB Flash 存儲器。
(4)雙口RAM:16 KB,用于模塊數據交換。
(5)看門狗:看門狗定時為1.6 s。
(6)定時器:3 個獨立的可編程定時器,最小精度為10 μs。
(7)中斷處理機:總線中斷和局部中斷。
(8)串行接口:4 路RS422,2 路RS232。
(9)設備內總線接口電路:實現自定義總線接口。
(10)調試狀態接口:提供COP 接口,提供運行、調試和程序固化狀態選擇接口。
(1)對電路板中的所有邊掃鏈路完成鏈路測試,UUT 模塊共包括2 條邊掃鏈路,微控制器MPC603(D1)組成邊掃鏈路1(圖2),FPGA APA300(D10)組成邊掃鏈路2(圖3)。

圖2 邊掃鏈路1 測試圖

圖3 邊掃鏈路2 測試圖
(2)對電路板中邊掃器件和邊掃器件之間或者邊掃器件和非邊掃器件有連接關系的,完成互聯測試如圖4 所示。

圖4 MPC603 和APA300 互聯測試示意圖
(3)完成電路板中所有Memory 測試,能準確地測試出數據線、地址線和控制線的短路或斷路故障,UUT模塊Memory 測試具體包括SRAM 芯片、PROM 芯片測試。SRAM 測試示意圖如圖5 所示。

圖5 SRAM 測試示意圖
(4)完成電路板中所有Flash 測試,能準確地測試出數據線、地址線和控制線的短路或斷路故障,要求能讀取Flash 中的數據,并存放到指定的文件中。
(5)完成電路板中所有數據驅動器電路的測試,如圖6 所示。

圖6 單向驅動器測試圖
(6)編寫邊掃測試程序,完成UUT 模塊電路中RS232 通信電路和RS422/RS485 通信電路的測試,能檢測出電路故障,定位出故障芯片。
(7)編寫邊掃測試程序,完成UUT 模塊電路中定時器電路的測試,能檢測出電路故障芯片。
測試所需硬件資源包括供電電源DC+5V,1 路;ScanWorks 邊掃控制器,1 個;ScanWorks 邊掃軟件,1個;DLP 模塊適配板,1 塊;邊掃控制器配套線纜,4 條;DLP 板連接邊掃的線纜,2 條。
將Protel 格式的網表轉換成ScanWorks 測試需要的Allegro 格式的網表。使用網表轉換軟件OMNINET For Windows(如圖7 所示),需要注意的是Protel 或者Altium 原理圖中如果有用Port 連接的網絡,需要改成Net Label,否則使用邊掃測試時會認為該點沒有網絡連接。

圖7 網表轉換
從官網查找所需測試邊掃器件的BSDL 模型文件,本項目中需要用到的模型文件分別為D1(MPC603R.bsd),D10(APA300_BGA 456.bsd)及適配板中的D1(07128SQ100.bsd)文件。
創建一個工程文件和設計文件,單擊菜單欄“project”→“new”,進行工程創建。
將BSDL 模型文件添加到“scan path files”,并設置掃描鏈路創建掃描鏈路上的器件和順序。
在“define a netlist”界面,導入網表格式為Allegro,模網表與模型導入完成。
掃描鏈路測試可以檢測邊掃框架的物理故障,比如測試總線、tap 控制器等;同時還可以驗證工程建立之初所描述的掃描鏈路順序是否正確。ScanWorks 自動產生鏈路測試集,來報告故障位置。
互聯測試允許測試邊掃器件互聯或者邊掃器件與非邊掃器件的互聯。互聯測試可以檢測開路、短路、固高固低或者橋接故障。
雙擊“creat an action”下的“Flash”,在彈出的“select target”中可以定義板子上的Flash 設備;匹配板子上的Flash 器件。
利用被測板DLP 的D10 和適配板的UX2 可以完成對被測板串口通信相關的芯片D13~D21、D23、D27~D30、D33、D35A 進行測試,該部分測試主要通過D10、UX2 的數據收發來控制串口接口芯片XR88C681(即D13、D15~D18)來實現。測試時,通過D10 的P24、A19 引腳置高,使D11、D37A 數據輸出端高阻,避免影響 DLP_XR88C681 的并行數據 D0~D7。針對XR88C681 的測試主要分為3 個部分。
并行數據與控制端測試:通過寫入并讀出串口接口芯片XR88C681 模式寄存器MR1A、MR2A,實現對寄存器地址引腳A3~A0、并行數據引腳D7~D0、讀引腳RD、寫引腳WR、片選CS 引腳以及復位引腳RESET 的測試。
A、B 兩通道收發測試:通過往串口接口芯片XR88C681 的模式寄存器MR2A、MR2B 的高兩位寫入11,使其工作在遠程循環模式,進而通過UX2 的數據發送和接收實現對TXDA、RXDA、TXDB、RXDB 的測試。
輸出端口OP 測試:通過往串口接口芯片XR88C681的OP 端口的設置寄存器SOPBC、COPBC 寫入數據來控制OP 引腳輸出高低電平,進而通過UX2 的數據采集來實現對OP 引腳的測試。
本文介紹的基于ScanWorks 邊界掃描軟件的電路板測試方法通過在軟件平臺中調用ScanWorks 相關驅動程序,實現對ScanWorks 軟件生成的測試序列或測試項目的配置和調用執行,并可將測試執行的結果以對話框的形式返回到執行界面,測試系統接收測試數據顯示到報表中,從而實現邊掃軟件與軟件平臺的融合。本文主要應用ASSET 公司的測試開發平臺ScanWorks,搭建邊界掃描測試系統,并開發邊界掃描測試程序,對被測電路板進行測試驗證。圖8 為板件測試報告。

圖8 DLP 板測試TP 報表