0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

硬件接口協(xié)議技術:JTAG內部狀態(tài)機——TAP控制器

電子設計 ? 來源:硬件助手 ? 作者:硬件助手 ? 2020-11-27 14:13 ? 次閱讀

本文主要介紹JTAG總線的引腳定義、接口標準、邊界掃描和TAP控制器。

JTAG(Joint Test Action Group;聯(lián)合測試行動小組)是一種國際標準測試協(xié)議(IEEE 1149.1兼容),主要用于芯片內部測試。現(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如ARMDSP、FPGA等。標準的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。

JTAG最初是用來對芯片進行測試的,JTAG的基本原理是在器件內部定義一個TAP(TestAccess Port;測試訪問)通過專用的JTAG測試工具對進行內部節(jié)點進行測試。JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,能實現(xiàn)對各個器件分別測試?,F(xiàn)在,JTAG接口還常用于實現(xiàn)ISP(In-System Programmable;在線編程),對Flash等器件進行編程。

JTAG內部有一個狀態(tài)機,稱為TAP控制器。TAP控制器的狀態(tài)機通過TCK和TMS進行狀態(tài)的改變,實現(xiàn)數(shù)據(jù)和指令的輸入。

1、引腳定義

含有JTAG口的芯片種類較多,如CPU、DSP、CPLD等。都有如下JTAG引腳定義(信號方向都是針對CPU來說的):

TCK——測試時鐘輸入。TMS和TDI的數(shù)據(jù)在TCK的上升沿被采樣。數(shù)據(jù)在時鐘的下降沿輸出到TDO。建議下拉。

TDI——測試數(shù)據(jù)輸入。輸入到指令寄存器(IR)或數(shù)據(jù)寄存器(DR)的數(shù)據(jù)出現(xiàn)在TDI輸入端,在TCK的上升沿被采樣。建議上拉,上拉電阻阻值不能小于1K。

TDO——測試數(shù)據(jù)輸出。來自指令寄存器或數(shù)據(jù)寄存器的數(shù)據(jù)在時鐘的下降沿被移出到TDO。不用上下拉,懸空時,盡量引出測試點,同時應避免將TDO作為I/O使用。

TMS——測試模式選擇。TMS用來設置JTAG口處于某種特定的測試模式,用于控制TAP狀態(tài)機。必須上拉。

VTref——目標板參考電壓,接電源。用來確定CPU的JTAG接口使用的邏輯電平。

可選引腳TRST——測試復位,輸入引腳,低電平有效。TRST可以用來對TAP Controller進行復位(初始化)。因為通過TMS也可以對TAPController進行復位(初始化)。所以有四線JTAG與五線JTAG之分。

可選引腳RTCK——測試時鐘返回信號。RTCK由目標端反饋給仿真器的時鐘信號,用來同步TCK信號的產生,不使用時直接接地。

可選引腳nSRST——目標系統(tǒng)復位信號。與目標板上的系統(tǒng)復位信號相連,可以直接對目標系統(tǒng)復位。同時可以檢測目標系統(tǒng)的復位情況,為了防止誤觸發(fā)應在目標端加上適當?shù)纳侠娮琛?/p>

另外還有一些控制器會有如下一些額外信號:

TDIS

PD或TVD——(Presence Detect, Target Voltage Detect),和VTref的功能一樣。

EMU[0:n]或ET[0:n]——(EMUlation, Emulation Test)

EMU pins are bi-directional multifunctional pinsthat provide support for the following features:

Boot Modes

Cross Triggers

Core Trace

System Trace

HS-RTDX (high speed RTDX,deprecated functionality)

In the case of Boot Modes, the EMU0/1 pin state is driven by the XDS. HS-RTDX provides bi-directional data transport. Both Core and System Trace transport event history and timing data from the target to the XDS. Crosstriggers are bi-directional triggers that allow an event in one device to causea debug action in other devices.

2、JTAG接口標準

目前JTAG接口的連接有三種標準,即10針、14針接口和20針接口,其定義分別如下所示。

★由于JTAG經常使用排線連接,為了增強抗干擾能力,在每條信號線間加上地線,偶數(shù)針腳都是地信號。

3、邊界掃描(Boundary-Scan

邊界掃描技術的基本思想是在靠近芯片的輸入輸出管腳上增加一個移位寄存器單元。因為這些移位寄存器單元都分布在芯片的邊界上(周圍),所以被稱為邊界掃描寄存器(Boundary-Scan Register Cell)。

當芯片處于調試狀態(tài)的時候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開來。通過這些邊界掃描寄存器單元,可以實現(xiàn)對芯片輸入輸出信號的觀察和控制。對于芯片的輸入管腳,可以通過與之相連的邊界掃描寄存器單元把信號(數(shù)據(jù))加載到該管腳中去;對于芯片的輸出管腳,也可以通過與之相連的邊界掃描寄存器“捕獲”該管腳上的輸出信號。在正常的運行狀態(tài)下,這些邊界掃描寄存器對芯片來說是透明的,所以正常的運行不會受到任何影響。這樣,邊界掃描寄存器提供了一個便捷的方式用以觀測和控制所需要調試的芯片。另外,芯片輸入輸出管腳上的邊界掃描(移位)寄存器單元可以相互連接起來,在芯片的周圍形成一個邊界掃描鏈(Boundary-Scan Chain)。一般的芯片都會提供幾條獨立的邊界掃描鏈,用來實現(xiàn)完整的測試功能。邊界掃描鏈可以串行的輸入和輸出,通過相應的時鐘信號和控制信號,就可以方便的觀察和控制處在調試狀態(tài)下的芯片。

4、TAP(TEST ACCESS PORT)

TAP是一個通用的端口,通過TAP可以訪問芯片提供的所有數(shù)據(jù)寄存器(DR)和指令寄存器(IR)。對整個TAP的控制是通過TAP Controller來完成的。TAP總共包括5個信號接口TCK、TMS、TDI、TDO和TRST:其中4個是輸入信號接口和另外1個是輸出信號接口。一般,我們見到的開發(fā)板上都有一個JTAG接口,該JTAG接口的主要信號接口就是這5個。

通過保持TMS為高電平(邏輯1)并在TCK端輸入至少5個選通脈沖(變高后再變低)后TAP邏輯被復位。這使TAP狀態(tài)機的狀態(tài)從任何其它狀態(tài)轉到測試邏輯復位狀態(tài)對,JTAG口和測試邏輯復位,該狀態(tài)不復位CPU和外設。

通過TAP接口,對數(shù)據(jù)寄存器(DR)進行訪問的一般過程是:

通過指令寄存器(IR),選定一個需要訪問的數(shù)據(jù)寄存器。

把選定的數(shù)據(jù)寄存器連接到TDI和TDO之間。

由TCK驅動,通過TDI,把需要的數(shù)據(jù)輸入到選定的數(shù)據(jù)寄存器當中去;同時把選定的數(shù)據(jù)寄存器中的數(shù)據(jù)通過TDO讀出來。

下圖是TAP控制器的16-states有限狀態(tài)機圖示:

TAP控制器的狀態(tài)在TCK的上升沿變化。

在上電時進入邏輯復位狀態(tài)(Test-Logic Reset),在該狀態(tài)下,測試部分的邏輯電路全部被禁用,以保證芯片核心邏輯電路的正常工作。通過TRST信號也可以對測試邏輯電路進行復位,使得TAP Controller進入Test-Logic Reset狀態(tài)。前面我們說過TRST是可選的一個信號接口,這是因為在TMS上連續(xù)加5個TCK脈沖寬度的“1”信號也可以對測試邏輯電路進行復位,使得TAP Controller進入Test-Logic Reset狀態(tài)。所以,在不提供TRST信號的情況下,也不會產生影響。

Shift-DR state掃描DR,TDO輸出有效。

Shift-IR state掃描IR,TDO輸出有效。

其他狀態(tài)下TDO輸出無效。

如果需要捕獲芯片某個管腳上的輸出,首先需要把該管腳上的輸出裝載到邊界掃描鏈的寄存器單元里去,然后通過TDO輸出,這樣我們就可以從TDO上得到相應管腳上的輸出信號。如果要在芯片的某個管腳上加載一個特定的信號,則首先需要通過TDI把期望的信號移位到與相應管腳相連的邊界掃描鏈的寄存器單元里去,然后把該寄存器單元的值加載到相應的芯片管腳。

指令寄存器的訪問過程:系統(tǒng)上電,TAP Controller進入Test-Logic Reset狀態(tài),然后依次進入:Run-Test/Idle→Select-DR-Scan→Select-IR-Scan→Capture-IR→Shift-IR→Exit1-IR→Update-IR,最后回到Run-Test/Idle狀態(tài)。在Capture-IR狀態(tài)中,一個特定的邏輯序列被加載到指令寄存器當中;然后進入到Shift-IR狀態(tài)。在Shift-IR狀態(tài)下,通過TCK的驅動,可以將一條特定的指令送到指令寄存器當中去。每條指令都將確定一條相關的數(shù)據(jù)寄存器。然后從Shift-IR→Exit1-IR→Update-IR。在Update-IR狀態(tài),剛才輸入到指令寄存器中的指令將用來更新指令寄存器。最后,進入到Run-Test/Idle狀態(tài),指令生效,完成對指令寄存器的訪問。

數(shù)據(jù)寄存器的訪問:當前可以訪問的數(shù)據(jù)寄存器由指令寄存器中的當前指令決定。要訪問由剛才的指令選定的數(shù)據(jù)寄存器,需要以Run-Test/Idle為起點,依次進入Select-DR-Scan→Capture-DR→Shift-DR→Exit1-DR→Update-DR,最后回到Run-Test/Idle狀態(tài)。在這個過程當中,被當前指令選定的數(shù)據(jù)寄存器會被連接在TDI和TDO之間。通過TDI和TDO,就可以將新的數(shù)據(jù)加載到數(shù)據(jù)寄存器當中去,同時,也可以捕獲數(shù)據(jù)寄存器中的數(shù)據(jù)。具體過程如下。在Capture-DR狀態(tài)中,由TCK的驅動,芯片管腳上的輸出信號會被“捕獲”到相應的邊界掃描寄存器單元中去。這樣,當前的數(shù)據(jù)寄存器當中就記錄了芯片相應管腳上的輸出信號。接下來從Capture-DR進入到Shift-DR狀態(tài)中去。在Shift-DR狀態(tài)中,由TCK驅動,在每一個時鐘周期內,一位新的數(shù)據(jù)可以通過TDI串行輸入到數(shù)據(jù)寄存器當中去,同時,數(shù)據(jù)寄存器可以通過TDO串行輸出一位先前捕獲的數(shù)據(jù)。在經過與數(shù)據(jù)寄存器長度相同的時鐘周期后,就可以完成新信號的輸入和捕獲數(shù)據(jù)的輸出。接下來通過Exit1-DR狀態(tài)進入到Update-DR狀態(tài)。在Update-DR狀態(tài)中,數(shù)據(jù)寄存器中的新數(shù)據(jù)被加載到與數(shù)據(jù)寄存器的每個寄存器單元相連的芯片管腳上去。最后,回到Run-Test/Idle狀態(tài),完成對數(shù)據(jù)寄存器的訪問。

以上就是針對JTAG的相關介紹,詳細可參見標準《IEEE Std 1149.1 Test Access Port and Boundary-Scan Architecture》。

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    15879

    瀏覽量

    175343
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10698

    瀏覽量

    209329
  • JTAG
    +關注

    關注

    6

    文章

    393

    瀏覽量

    71424
收藏 人收藏

    評論

    相關推薦

    通過JTAG接口使用SimpleLink?MSP432E4微控制器

    電子發(fā)燒友網站提供《通過JTAG接口使用SimpleLink?MSP432E4微控制器.pdf》資料免費下載
    發(fā)表于 09-14 10:23 ?0次下載
    通過<b class='flag-5'>JTAG</b><b class='flag-5'>接口</b>使用SimpleLink?MSP432E4微<b class='flag-5'>控制器</b>

    觸發(fā)狀態(tài)機的關系是什么

    觸發(fā)狀態(tài)機在數(shù)字電路設計中有著緊密的關系,它們共同構成了時序邏輯電路的基礎,用于實現(xiàn)數(shù)據(jù)的存儲、處理和傳輸。
    的頭像 發(fā)表于 08-12 11:24 ?238次閱讀

    如何在FPGA中實現(xiàn)狀態(tài)機

    在FPGA(現(xiàn)場可編程門陣列)中實現(xiàn)狀態(tài)機是一種常見的做法,用于控制復雜的數(shù)字系統(tǒng)行為。狀態(tài)機能夠根據(jù)當前的輸入和系統(tǒng)狀態(tài),決定下一步的動作和新的
    的頭像 發(fā)表于 07-18 15:57 ?260次閱讀

    玩轉Spring狀態(tài)機

    說起Spring狀態(tài)機,大家很容易聯(lián)想到這個狀態(tài)機和設計模式中狀態(tài)模式的區(qū)別是啥呢?沒錯,Spring狀態(tài)機就是狀態(tài)模式的一種實現(xiàn),在介紹S
    的頭像 發(fā)表于 06-25 14:21 ?745次閱讀
    玩轉Spring<b class='flag-5'>狀態(tài)機</b>

    基于FPGA的SPI Flash控制器的設計方案

    ,wr}值,接收第3字節(jié)數(shù)據(jù)值,同理,可讀出SPI Flash內部所有數(shù)據(jù)。 當狀態(tài)機處于wait8狀態(tài)而用戶想退出讀數(shù)據(jù)操作時,可向控制器輸入NOP指令強制結束當前讀數(shù)據(jù)操作。
    發(fā)表于 06-03 10:13

    在Verilog中實現(xiàn)Moore型和Mealy型狀態(tài)機的方法簡析

    編寫能夠被綜合工具識別的狀態(tài)機,首先需要理解狀態(tài)機的基本概念和分類。狀態(tài)機(FSM)是表示有限個狀態(tài)以及在這些狀態(tài)之間轉換的邏輯結構。
    的頭像 發(fā)表于 05-01 11:38 ?1042次閱讀

    Verilog狀態(tài)機+設計實例

    在verilog中狀態(tài)機的一種很常用的邏輯結構,學習和理解狀態(tài)機的運行規(guī)律能夠幫助我們更好地書寫代碼,同時作為一種思想方法,在別的代碼設計中也會有所幫助。 一、簡介 在使用過程中我們常說
    的頭像 發(fā)表于 02-12 19:07 ?3160次閱讀
    Verilog<b class='flag-5'>狀態(tài)機</b>+設計實例

    關于JTAG口,你了解多少?

    JTAG的芯片內部,會有個JTAG TAP控制器。TAP控制
    發(fā)表于 01-19 21:19

    狀態(tài)機該怎么監(jiān)控

    狀態(tài)機卡住的場景——通過狀態(tài)跳轉條件的DFX信號去判斷卡住的原因
    的頭像 發(fā)表于 01-15 10:03 ?315次閱讀
    <b class='flag-5'>狀態(tài)機</b>該怎么監(jiān)控

    Spring狀態(tài)機的實現(xiàn)原理和使用方法

    說起 Spring 狀態(tài)機,大家很容易聯(lián)想到這個狀態(tài)機和設計模式中狀態(tài)模式的區(qū)別是啥呢?沒錯,Spring 狀態(tài)機就是狀態(tài)模式的一種實現(xiàn),在
    的頭像 發(fā)表于 12-26 09:39 ?1707次閱讀
    Spring<b class='flag-5'>狀態(tài)機</b>的實現(xiàn)原理和使用方法

    SaberRD狀態(tài)機建模工具介紹(一)什么是狀態(tài)機建模

    狀態(tài)機建模是使用狀態(tài)圖和方程式的手段,創(chuàng)建基于混合信號的有限狀態(tài)機模型的一種建模工具。
    的頭像 發(fā)表于 12-05 09:51 ?1288次閱讀
    SaberRD<b class='flag-5'>狀態(tài)機</b>建模工具介紹(一)什么是<b class='flag-5'>狀態(tài)機</b>建模

    狀態(tài)機怎么上來就錯了?怎么解決?

    狀態(tài)機本身很簡單,default也寫了,然后進行仿真時看到了這樣的波形:
    的頭像 發(fā)表于 12-04 10:43 ?296次閱讀
    <b class='flag-5'>狀態(tài)機</b>怎么上來就錯了?怎么解決?

    簡單認識JTAG接口

    JTAG接口至少包括3個輸入端口(TDI、TMS、TCK)和1個輸出端口(TDO),統(tǒng)稱測試訪問端口(TAP)。TRST可選。當TAP Controller在上電時不能復位,則TRST
    的頭像 發(fā)表于 11-14 16:24 ?2465次閱讀
    簡單認識<b class='flag-5'>JTAG</b><b class='flag-5'>接口</b>

    什么是狀態(tài)機?狀態(tài)機的種類與實現(xiàn)

    狀態(tài)機,又稱有限狀態(tài)機(Finite State Machine,F(xiàn)SM)或米利狀態(tài)機(Mealy Machine),是一種描述系統(tǒng)狀態(tài)變化的模型。在芯片設計中,
    的頭像 發(fā)表于 10-19 10:27 ?8041次閱讀

    有限狀態(tài)機分割設計

    有限狀態(tài)機分割設計,其實質就是一個狀態(tài)機分割成多個狀態(tài)機
    的頭像 發(fā)表于 10-09 10:47 ?531次閱讀