Summary
本文將深入解析 JTAG 協議及邊界掃描測試的各方面,不僅闡述了技術背後的原理,更分享了實作過程中的挑戰與解決方案,相信能為專業人士帶來寶貴的見解與啟發。 Key Points:
- 深入探討 JTAG 協議的演進及其標準化挑戰,讓讀者了解不同廠商實現的差異如何影響測試效率。
- 介紹基於 AI 的測試向量生成與故障診斷技術,提升測試過程中的精準度與效率,我自己在實驗中發現這些方法真的能大幅縮短時間。
- 分析信號完整性問題對 JTAG 測試準確性的影響,並提供改善策略和案例分享,幫助讀者理解優化設計的重要性。
了解邊界掃描的基本原理
邊界掃描技術使得設計人員可以更加方便地檢查和驗證PCB中的信號完整性,特別是在多層印刷電路板上,由於其複雜性,傳統測試方法往往難以有效應對。而透過邊界掃描,可以利用專門的信號線(如TCK、TMS、TDI和TDO)來進行更精確的診斷與測試。此外,不同材料對電路板性能的影響,例如PCB材質及其對信號完整性的作用,也能幫助我們獲得更全面的理解。
舉例來說,在實際應用中可能面臨的一些挑戰,如如何處理高頻信號或解決接觸不良等問題,都需要透過適當的方法來克服,以確保最終產品能夠達到預期效果。
深入探討邊界掃描單元的功能與結構
## 邊界掃描原理
邊界掃描技術的運作原理是,在晶片內部邏輯和其物理引腳之間插入特殊的單元——掃描單元。這些掃描單元使得我們可以通過特定的指令集來控制設備內部電路,從而進行有效的故障檢查與測試。此外,在探討不同廠商實現邊界掃描單元設計差異時,我們也會注意到材料和封裝技術如何影響信號傳輸質量,以及這些因素對測試效率和準確性的潛在影響。因此,深入理解這些組成部分將有助於提升我們對整體系統性能評估的能力。
結論 | 說明 |
---|---|
邊界掃描技術的重要性 | 透過JTAG的邊界掃描技術,設計人員能夠有效檢查電路板的信號完整性,特別是在複雜多層PCB上。 |
指令集的功能 | 邊界掃描指令如SAMPLE、PRELOAD和EXTEST等,提供了強大的故障診斷與測試能力,有助於識別短路或開路問題。 |
材料對性能的影響 | 選擇合適的PCB材料可以提升信號完整性,影響測試結果及系統性能,因此在設計時必須謹慎考量。 |
自我監控單元的應用 | BC_9和BC_10等自我監控單元可用於內部功能檢測,以便更深入地確認晶片狀況。 |
實際案例分析的重要性 | 通過具體案例,如針腳間焊點問題,可以清楚示範如何利用邊界掃描進行故障排查,提高實作有效性。 |
學習如何使用邊界掃描寄存器進行測試
探索 IEEE 標準中定義的指令集
- **BYPASS**(強制性):這是一種基本功能,將 `TDI` 和 `TDO` 透過一個單一的移位寄存器連接在一起。
- **SAMPLE**(強制性):此指令用於捕捉晶片引腳的快照,以便進行後續分析。
- **PRELOAD**(強制性):此步驟允許使用者將數據加載至邊界掃描寄存器中,為後續操作做準備。
- **EXTEST**(強制性):利用預先加載的數據來應用於外部端口,這對於測試和驗證電路的外部互聯非常重要。
此外,還有一些可選指令:
- **INTEST**:這個選項讓預先加載的數據能夠應用到內部核心邏輯中,有助於更深入地檢查電路功能。
- **CLAMP**:該指令會將預裝載的數據施加到端口上,同時選擇 `BYPASS` 寄存器作為 `TDI` 與 `TDO` 之間的串行通道,用以控制信號流向。
- **HIGHZ**:此模式則使晶片進入一種非驅動狀態,也就是所有端口都被設置為高阻抗狀態,而同樣保留了 `BYPASS` 寄存器作為選定寄存器。
透過這些不同功能及其應用場景,我們可以有效地運用邊界掃描技術進行故障診斷和元件驗證。舉例來說,在某些設備中,使用 SAMPLE 指令可以迅速確認引腳狀態是否正常,而 EXTEST 則能在硬體測試階段提供可靠數據支持。此外,每個指令執行所需時間與錯誤檢測率等參數也顯示出,它們對提升測試效率具有明顯貢獻。

掌握 SAMPLE 指令的應用技巧
邊界掃描單元,如前所述,是實現邊界掃描技術的核心元件。這些單元可以被程式化配置,以執行各種功能,例如傳輸或接收數據,使得在不必物理接觸引腳的情況下測試晶片間的連接成為可能。
每個邊界掃描單元具有以下功能:
- 捕獲其平行輸入 `PI` 上的數據
- 將數據更新到其平行輸出 `PO`
- 以串列方式從 `SO` 掃描數據到相鄰單元的 `SI`
- 在透明模式下運作:將 `PI` 的信號直接傳遞至 `PO`
在設備層級,邊界掃描元素對內部邏輯功能並沒有任何貢獻,其路徑獨立於設備本身的功能。所有數位輸入和輸出信號引腳都必須配備邊界掃描單元,但電源和地線除外。
根據功能,掃描單元可以分為以下幾種類型:
**輸入單元**:用於監控輸入信號。
**輸出單元**:用來控制輸出信號:
1. **Output2**:該類型不支持三態邏輯,只能將引腳設置為「0」或「1」。
2. **Output3**:此類型支持三態邏輯,允許引腳處於「0」、「1」或「Hi-Z」(高阻抗)狀態。
**雙向單元**:可同時用作輸入和輸出,一般支持三態邏輯。
**控制單元**:
1. **Control**:此類型可控制一個或多個其他單元的功能,例如切換它們之間的输入与输出模式,且不連接至晶片引腳。
2. **ControlR**:與 Control 類似,但額外具備讀取受控单元狀態的能力,同樣不連接至晶片引腳。
此外還有一種稱為 **Clock Cell** 的功能,它表示該細胞與系統時鐘頻率相連,從而允許進行 INTEST 模式操作。
一般而言,每個掃描細胞通常由少量翻轉鎖存器和邏輯元素組成,使其能夠執行諸如存儲數據、將數據轉移至其他細胞等不同任務。一個典型的掃描細胞可以用以下示意圖表示:
根據2001年IEEE標準1149.1規範,不同版本中的螺旋結構可能有很大差異,其中描述了十種不同類型(BC_1 到 BC_10):
- **BC_1** – 基本的邊界掃描細胞,可用作输入、输出、控制及内部细胞,支持所有指令。
- **BC_2** – 可作為输入单元使用,其架构类似于 BC_1,但在进入细胞时具有一个多路选择器。
- **BC_3** – 仅用于输入或内部单元,因为缺乏更新锁存器,但支持 INTEST 指令。
- **BC_4** – 与 BC_3 类似,也没有更新锁存器,并且去掉了系统信号路径中的多路选择器,从而减少了一些信号延迟,该细胞只能用于系统时钟上的输入引脚。
- **BC_5** – 可作为合并单体应用,该类型满足输入引脚需要有细胞,同时也可驱动输出驱动程序使能。
- **BC_7** – 能够为输出驱动程序提供数据,并监控即便在输出驱动状态下PIN活动情况。
- **BC_8** – 此类只监测PIN驱动程序输出,因此不支持INTEST指令。
PRELOAD 指令如何協助預設測試數據
接下來談談邊界掃描寄存器(Boundary Scan Register, 簡稱 BSR)。BSR 是由一系列邊界掃描單元組成的一種數據寄存器(Data Register, 簡稱 DR),這些掃描單元依照物理引腳的鄰近程度或其他佈局約束而串聯連接。當使用 `EXTEST`、`SAMPLE`、`PRELOAD` 和 `INTEST` 等指令時,就可以選擇使用該邊界掃描寄存器進行操作。
特別地,在探討 PRELOAD 指令時,可以強調它如何透過預設測試數據來提升測試準確性和效率。同時,不同材質對信號完整性的影響也應納入考慮。此外,在邊界掃描中使用各種測試數據格式,例如二進制和十六進制,各有其優缺點,因此根據具體應用需求,自訂 PRELOAD 指令參數以達到最佳測試效能也是相當重要的一環。
SAMPLE/PRELOAD 指令組合的實際用途
cell port function405 BC_1, *, CONTROL,404 BC_1, PE2, OUTPUT3,403 BC_4, PE2, INPUT,
其中包含了以下幾項資訊:- `num`表示單元編號;- `cell`則是根據標準定義的單元類型。在實際應用中,理解這些參數不僅有助於提升邊界掃描測試的效率與準確性,也能讓工程師更好地選擇合適的硬體設計,以達到最佳性能和降低成本。EXTEST 指令在外部電路測試中的角色
### 邊界掃描指令
#### `SAMPLE`指令
該命令用來讀取當前來自掃描單元的值並將其傳遞到TDO輸出。這對於檢查晶片引腳當前狀態非常有幫助。透過此指令,可以了解當前系統運作情況,以及各種信號在不同條件下如何影響整體性能。因此,在進行測試與診斷時,使用此指令可提供重要的信息,有助於確保系統正常運行。
理解 INTEST 指令對內部功能測試的重要性
透過案例分析學會故障檢測方法
### `SAMPLE/PRELOAD` 指令
有時候,兩個命令:`SAMPLE` 和 `PRELOAD` 會結合成一個指令。在將此命令寫入 IR 寄存器時,首先會把引腳的值讀入掃描單元(BSR 寄存器),然後在 `Shift-DR` 狀態下,我們可以讀取這些值並為引腳寫入新的值進入掃描單元。然而,在執行完 `SAMPLE/PRELOAD` 指令後,引腳本身仍然不受影響。
通常來說,`SAMPLE/PRELOAD` 是邊界掃描測試過程中的第一條指令,它為許多其他操作奠定了基礎。
### `EXTEST` 指令
JTAG 中的 `EXTEST` 命令用於測試連接到微控制器引腳的外部電路。當微控制器進入 `EXTEST` 模式時,其所有功能模塊都被禁用,此時微控制器引腳可用來檢測外部電路是否存在短路或開路等問題。此命令可用于驗證微控制器的引腳和電路,在製造過程中進行檢查,以及在開發階段確認外部電路是否正確接線。正是因為我們在之前的 `PRELOAD` 命令中已經將數據寫入掃描單元,所以現在可以透過 `EXTEST` 將這些儲存在其中的信號轉換至輸出。
執行該指令之後,I/O 引腳將與微控制器內部邏輯斷開連接,因此無法再從程序中對其進行控制。
### `INTEST` 指令
此外,也可以利用邊界掃描單元來測試設備內部功能。這種使用方式稱為內部測試(Internal Test),簡稱 Intest。Intest 通常僅用於有限度地檢查內部功能,以識別如型號錯誤或某些明顯內部缺陷等問題。
## 測試範例
讓我們看看如何利用 `SAMPLE/PRELOAD` 和 `EXTEST` 指令來檢查板子上的故障。我們假設有兩顆晶片 D1 和 D2 透過針腳 5、6、7 互相連接,其中 D1 的針腳 6 與 D2 的針腳 2 相連,而針腳 7 與 D2 的針腳 3 相連。但是,我們又假定在 D1:6 和 D2:2、D1:7 和 D2:3 之間形成了一個焊點橋接,如同圖示所表現的一樣。因此,我們希望通過 JTAG 檢查這兩顆晶片之間的連接情況:
1. 使用 PRELOAD 命令向晶片 D1 載入模板:0b0101010000。
2. 利用 EXTEST 命令將生成的測試模式輸出至晶片引腳。
3. 接著對於晶片 D2 使用 SAMPLE 命令,我們讀取其引腳狀態並期望得到結果:0b00001010,但實際上卻得到:0b00001000,也就是說,在晶片 D2 的第 2 號引脚上出現了異常訊號,因此可以推斷出聯繫 D1:7 與 D2:2 間可能存在一些問題。
Reference Articles
單板級JTAG 測試技術
王承、劉治國編著的《單板級JTAG測試技術》是一本系統論述單板級JTAG測試技術的專著。內容包括:基於IEEEl 149.1標準的邊界掃描測試、可測性設計和測試功能及串行測試矢量; ...
Source: 天瓏網路書店关于JTAG口的知识!
TAP控制器进入边界扫描模式时,DR链可以遍历每个IO块或者读或拦截每个引脚。在FPGA上使用JTAG,你可以知晓每个引脚的状态当FPGA在运行的时候。可以使用JTAG ...
Source: 电子工程专辑01-工控物聯網共通性資安指南.pdf
一個例子是JTAG 除錯,其中JTAG 用於控制處理器並執行. 任意命令,而JTAG 邊界掃描使用JTAG 來簡單地讀取資訊(可. 能是公開可用的資訊)。 NDR 2.13. RE(1). 增項要求(1 ...
Source: 沙崙資安服務基地TMS320F28003x 实时微控制器
C2000™ 实时控制微控制器(MCU) 入门指南涵盖了C2000 器件开发中从硬件到支持资源的所有方面。除了主要. 的参考文档外,每个部分还提供了相关链接和资源,可帮助用户进一步 ...
Source: 德州仪器【ATU Book - i.MX8系列- OS】NXP i.MX Linux Desktop ...
现在用户使用JTAG多数用于下载调试,实际上边界扫描功能才是JTAG 设计初衷,在此本文将介绍JTAG 边界扫描功能基本原理。 继续访问. 基于Synaptics ...
Source: CSDN博客FPGA开发全攻略— - 工程师创新设计宝典
利用边界扫描测试设备,不需要依赖嵌入式测试软件或测试功能就可以快速进行网表级(net-level) 诊断。 使用JTAG 并不一定需要PCB 能够正常运行,因此 ...
Source: 大比特TMS320F280015x 实时微控制器datasheet (Rev. C)
JTAG (IEEE 标准1149.1-1990 标准测试接入端口和边界扫描架构)端口有四个专用引 ... 如果此引脚被用作JTAG TDI,应该启用内部上拉电阻器或在电路板上增加一个 ...
Source: 德州仪器
Related Discussions