RM新时代网站-首页

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式調(diào)試?yán)锏慕涌跇?biāo)準(zhǔn)JTAG詳細(xì)介紹

Wildesbeast ? 來(lái)源:與非網(wǎng) ? 作者:與非網(wǎng) ? 2020-02-12 16:03 ? 次閱讀

嵌入式開發(fā)中,大家免不了需要仿真調(diào)試代碼,尤其是當(dāng)應(yīng)用工程功能邏輯復(fù)雜到一定程度時(shí),免不了在寫代碼時(shí)會(huì)引入一些邏輯 bug,僅靠代碼審查有時(shí)候并不一定能排除所有 bug,所以在線調(diào)試便成為排除 bug 最有效直接的方式,今天我們要聊的是調(diào)試?yán)镒罨A(chǔ)的東西,即接口標(biāo)準(zhǔn)。ARM 內(nèi)核原生支持 2 種業(yè)界通用的接口標(biāo)準(zhǔn),分別是 JTAG 和 SWD。本節(jié)課痞子衡先給大家詳細(xì)講講 JTAG 接口。

一、JTAG 接口標(biāo)準(zhǔn)

JTAG 全稱“Joint Test Action Group”,既是個(gè)標(biāo)準(zhǔn)也是個(gè)組織,這是個(gè)由幾家主要的電子制造商(IBM、AT&T、TI、Philips 等)成立于 1985 年的組織,這個(gè)組織成立的目的是發(fā)起制訂一種 PCB芯片測(cè)試標(biāo)準(zhǔn)。

JTAG 標(biāo)準(zhǔn)于 1990 年被 IEEE 批準(zhǔn)為 IEEE1149.1 測(cè)試訪問(wèn)端口和邊界掃描結(jié)構(gòu)標(biāo)準(zhǔn)。JTAG 標(biāo)準(zhǔn)規(guī)定了進(jìn)行邊界掃描所需要的硬件和軟件,主要應(yīng)用于電路的邊界掃描測(cè)試和可編程芯片的在線系統(tǒng)編程。

1.1 IEEE 1149.1 標(biāo)準(zhǔn)

IEEE 1149.1 工作組 http://grouper.ieee.org/groups/1149/1/

最初版手冊(cè) 1149.1-1990 http://standards.ieee.org/findstds/standard/1149.1-1990.html

最新版手冊(cè) 1149.1-2013 http://standards.ieee.org/findstds/standard/1149.1-2013.html

1.2 JTAG 接口信號(hào)

JTAG 接口,總稱測(cè)試訪問(wèn)接口 TAP(Test Access Port),使用如下信號(hào)來(lái)實(shí)現(xiàn)邊界掃描操作:

TCK(測(cè)試時(shí)鐘):同步內(nèi)部狀態(tài)機(jī)操作的時(shí)鐘信號(hào)。

TMS(測(cè)試模式選擇):控制內(nèi)部狀態(tài)機(jī)轉(zhuǎn)換的模式信號(hào)(TCK 上升沿采樣)。

TDI(測(cè)試數(shù)據(jù)輸入):移入器件測(cè)試或編程邏輯的數(shù)據(jù)(TCK 上升沿采樣)。

TDO(測(cè)試數(shù)據(jù)輸出):移出器件測(cè)試或編程邏輯的數(shù)據(jù)(TCK 下降沿采樣)。

除了以上信號(hào)線外,還有 1 個(gè)可選的信號(hào):

TRST(測(cè)試重置):重置 TAP 控制器的狀態(tài)機(jī)的復(fù)位信號(hào)。

1.3 JTAG 系統(tǒng)內(nèi)部構(gòu)造

JTAG 系統(tǒng)內(nèi)部最基本的單元是邊界掃描單元(其掃描獲取的值存在邊界掃描寄存器 BSR(Boundary Scan Register)中),每個(gè)邊界掃描單元都位于目標(biāo)器件的邊界上,所以很多時(shí)候 JTAG 測(cè)試也被稱為邊界掃描。

所有目標(biāo)器件核心邏輯與針腳之間的信號(hào)都會(huì)被串聯(lián)的邊界掃描單元所攔截。正常運(yùn)行時(shí),這些邊界掃描單元是不可見(jiàn)的。但是,在測(cè)試模式下這些單元可以被用來(lái)設(shè)置 / 讀取目標(biāo)器件針腳或核心邏輯的值。

除了上述 BSR 之外,JTAG 系統(tǒng)還需要以下 3 個(gè)寄存器:

指令寄存器:存儲(chǔ)當(dāng)前的指令,指令內(nèi)容被 TAP 控制器用來(lái)決定如何處理接收到的信號(hào)。

旁路寄存器(BYPASS):把信息從 TDI 傳到 TDO 的單位寄存器。

識(shí)別碼寄存器(IDCODES):含有器件的識(shí)別碼和版本序號(hào),該信息可以使器件和它的邊界掃描描述語(yǔ)言(BSDL)文件相關(guān)聯(lián)。

JTAG 系統(tǒng)最核心的是 TAP 控制器,TAP 控制器被設(shè)計(jì)用來(lái)與 JTAG 系統(tǒng)內(nèi)部寄存器相互動(dòng),TAP 控制器是一個(gè)被 TMS 信號(hào)控制轉(zhuǎn)換的同步狀態(tài)機(jī),控制著 JTAG 系統(tǒng)的行為。

如上圖所示,TAP 控制器的內(nèi)部狀態(tài)機(jī)一共 16 個(gè)狀態(tài),關(guān)于各個(gè)狀態(tài)具體含義可查閱 IEEE1149.1 手冊(cè)。TAP 控制器的基本功能是產(chǎn)生 BSR 和指令寄存器正常工作所需要的時(shí)鐘和控制信號(hào),其主要功能有以下幾點(diǎn):

提供信號(hào)將指令裝入指令寄存器。

提供信號(hào)將輸入數(shù)據(jù)從 TDI 管腳移入內(nèi)部寄存器、把輸出數(shù)據(jù)從內(nèi)部寄存器移出到 TDO 管腳。

執(zhí)行相應(yīng)功能,如捕獲、移位和更新數(shù)據(jù)等。

指令寄存器是用來(lái)存儲(chǔ)需要解釋執(zhí)行的指令的,IEEE 1149.1 標(biāo)準(zhǔn)規(guī)定了 JTAG 兼容器件必須要具備的指令:

BYPASS:用單一單元旁路寄存器傳送數(shù)據(jù),縮短 JTAG 鏈上不必要的掃描鏈路。

EXTEST:將已知值(存在 BSR)驅(qū)動(dòng)到芯片針腳上。

SAMPLE/PRELOAD:將捕獲到的芯片針腳值裝入 BSR。

除了必備的指令外,IEEE 1149.1 標(biāo)準(zhǔn)還規(guī)定了如下可選的指令:

IDCODE:將 IDCODES 寄存器中的數(shù)據(jù)移出。

INTEST:將已知值(存在 BSR)驅(qū)動(dòng)到芯片核心邏輯上。

RUNBIST:當(dāng) TAP 進(jìn)入測(cè)試運(yùn)行空閑狀態(tài)時(shí),芯片進(jìn)行自檢。

1.4 JTAG 調(diào)試工具 pinout

通常支持 JTAG 接口的調(diào)試編程工具其實(shí)只是利用了 JTAG 技術(shù)的四線 TAP 通信協(xié)議,而除了標(biāo)準(zhǔn) TAP 信號(hào)線外,有時(shí)還加入其他輔助信號(hào)線構(gòu)成完整 pinout,對(duì)于 ARM JTAG 調(diào)試工具來(lái)說(shuō),有兩種比較通用的 pinout 標(biāo)準(zhǔn),即 ARM20 JTAG header 和 ARM14 JTAG header:

上述兩種 ARM JTAG header 中除了標(biāo)準(zhǔn) TAP 信號(hào)線外,其他輔助信號(hào)線含義如下:

二、JTAG 接口進(jìn)階

前面講完了 JTAG 基礎(chǔ)知識(shí),下面痞子衡再給大家多介紹一些 JTAG 相關(guān)的“黑科技”。

2.1 BSDL 文件

現(xiàn)如今支持 JTAG 接口的芯片越來(lái)越多,為了統(tǒng)一各芯片廠商的具體 JTAG 實(shí)現(xiàn),促進(jìn)整個(gè)電子行業(yè)的一致性,IEEE1149.1 標(biāo)準(zhǔn)制訂了 BSDL 語(yǔ)言規(guī)范。BSDL 是 JTAG 設(shè)備的標(biāo)準(zhǔn)建模語(yǔ)言,它的語(yǔ)法是 VHDL 的子集,是對(duì) JTAG 器件的邊界掃描特性的描述,主要用來(lái)溝通芯片廠商、用戶與測(cè)試工具之間的聯(lián)系。

開源的 JTAG BSDL 庫(kù)網(wǎng)站(http://bsdl.info/),涵蓋主流廠商的主流芯片的 BSDL 文件

痞子衡隨便找一款芯片的 BSDL 文件(Freescale K60_1M(K24_144QFP))簡(jiǎn)單分析下:

2.2 JTAG 菊花鏈

當(dāng)你的系統(tǒng)中有多個(gè) JTAG 設(shè)備時(shí),為解決 JTAG 口過(guò)多占用 PCB 的問(wèn)題,JTAG 支持如下菊花鏈方式連接(在 FPGA 應(yīng)用尤其廣泛):

從上圖可以看出 TMS、TCK 是一主多從并聯(lián)的結(jié)構(gòu)(設(shè)備過(guò)多時(shí) TMS,TCK 電路需加緩沖器(如 74LVC245)增加驅(qū)動(dòng)能力);TDI、TDO 是一主一從串聯(lián)的結(jié)構(gòu),這種菊花鏈方式使得 PCB 上只需要一個(gè) JTAG 接口便可以訪問(wèn)所有 JTAG 設(shè)備。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304796
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8575

    瀏覽量

    151014
  • JTAG
    +關(guān)注

    關(guān)注

    6

    文章

    399

    瀏覽量

    71673
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式C開發(fā)中的JTAG接口定義及主要特點(diǎn)

    JTAG(聯(lián)合測(cè)試行動(dòng)組)是測(cè)試和調(diào)試集成電路的標(biāo)準(zhǔn),廣泛用于嵌入式系統(tǒng)開發(fā)。
    的頭像 發(fā)表于 12-12 11:08 ?1743次閱讀
    <b class='flag-5'>嵌入式</b>C開發(fā)中的<b class='flag-5'>JTAG</b><b class='flag-5'>接口</b>定義及主要特點(diǎn)

    四種嵌入式arm調(diào)試方法介紹

    復(fù)雜的設(shè)計(jì)和工藝,因而其價(jià)格比較昂貴。在線仿真器通常用在 arm 的硬件開發(fā)中,在軟件的開發(fā)中較少使用,其價(jià)格高昂也是在線仿真器難以普及的因素?! ∩线呄虼蠹揖唧w介紹嵌入式arm的幾種調(diào)試方法,之后
    發(fā)表于 05-11 16:53

    嵌入式系統(tǒng)交叉調(diào)試原理和方法

    嵌入式系統(tǒng)交叉調(diào)試方法一般分為兩種,一種是基于JTAG的片上調(diào)試方法,一種是基于調(diào)試代理的遠(yuǎn)程調(diào)試
    發(fā)表于 12-18 10:55

    串口串行數(shù)據(jù)接口標(biāo)準(zhǔn)介紹

    RS-232C;嵌入式系統(tǒng)中應(yīng)用最廣泛的串行接口RS-422;命名為TIA/EIA-422-A標(biāo)準(zhǔn);單機(jī)發(fā)送、多機(jī)接收的單向、平衡傳輸規(guī)范RS-485;命名為TIA/EIA-485-A標(biāo)準(zhǔn)
    發(fā)表于 12-17 08:29

    JTAG接口標(biāo)準(zhǔn)是什么?

    JTAG接口標(biāo)準(zhǔn)是什么?JTAG系統(tǒng)內(nèi)部構(gòu)造是怎樣的?
    發(fā)表于 12-24 07:34

    嵌入式JTAG調(diào)試方法步驟

    嵌入式JTAG調(diào)試方法步驟 嵌入式系統(tǒng)JTAG調(diào)試步驟1. 將PC與
    發(fā)表于 03-01 16:24 ?34次下載

    一種嵌入式系統(tǒng)實(shí)現(xiàn)的JTAG調(diào)試

    一種嵌入式系統(tǒng)實(shí)現(xiàn)的JTAG調(diào)試JTAG 作為一個(gè)通用的標(biāo)準(zhǔn)器件功能測(cè)試接口, 具有靈活高
    發(fā)表于 10-06 09:53 ?1202次閱讀
    一種<b class='flag-5'>嵌入式</b>系統(tǒng)實(shí)現(xiàn)的<b class='flag-5'>JTAG</b><b class='flag-5'>調(diào)試</b>器

    DVI接口標(biāo)準(zhǔn)介紹

    DVI接口標(biāo)準(zhǔn)介紹,可以了解DVI接口的一些知識(shí),適合初級(jí)人員查看。
    發(fā)表于 09-06 16:03 ?63次下載

    jtag接口是什么_jtag接口定義

    JTAG(JointTestActionGroup,聯(lián)合測(cè)試行動(dòng)小組)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,主要用于芯片內(nèi)部測(cè)試及對(duì)系統(tǒng)進(jìn)行仿真、調(diào)試JTAG技術(shù)是一種
    發(fā)表于 01-11 09:45 ?3.1w次閱讀
    <b class='flag-5'>jtag</b><b class='flag-5'>接口</b>是什么_<b class='flag-5'>jtag</b><b class='flag-5'>接口</b>定義

    兩種遠(yuǎn)程調(diào)試嵌入式系統(tǒng)的介紹

    調(diào)試嵌入式系統(tǒng)與桌面操作系統(tǒng)差別很大,本文向您介紹調(diào)試嵌入式系統(tǒng)的兩種推薦方案,插樁和片上調(diào)試,
    發(fā)表于 04-14 07:43 ?2581次閱讀
    兩種遠(yuǎn)程<b class='flag-5'>調(diào)試</b><b class='flag-5'>嵌入式</b>系統(tǒng)的<b class='flag-5'>介紹</b>

    嵌入式教程之嵌入式系統(tǒng)基礎(chǔ)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是嵌入式教程之嵌入式系統(tǒng)基礎(chǔ)的詳細(xì)資料說(shuō)明主要內(nèi)容包括了:1.系統(tǒng)概
    發(fā)表于 12-06 17:31 ?30次下載
    <b class='flag-5'>嵌入式</b>教程之<b class='flag-5'>嵌入式</b>系統(tǒng)基礎(chǔ)的<b class='flag-5'>詳細(xì)</b>資料說(shuō)明

    嵌入式軟件的開發(fā)流程_嵌入式軟件的調(diào)試

    本文首先介紹嵌入式軟件的發(fā)展,其次闡述了嵌入式軟件的開發(fā)流程,最后介紹嵌入式軟件的調(diào)試。
    發(fā)表于 08-31 16:02 ?6287次閱讀

    調(diào)試接口SWD和JTAG的區(qū)別

    作者 | strongerHuang 微信公眾號(hào) | strongerHuang 作為嵌入式工程師,下載調(diào)試器都應(yīng)該知道,但你真正了解其SWD 和 JTAG接口的含義和區(qū)別嗎? 1 什
    的頭像 發(fā)表于 10-27 09:29 ?1.7w次閱讀
    <b class='flag-5'>調(diào)試</b><b class='flag-5'>接口</b>SWD和<b class='flag-5'>JTAG</b>的區(qū)別

    下載調(diào)試接口SWD和JTAG的區(qū)別

    作為嵌入式工程師,下載調(diào)試器都應(yīng)該知道,但你真正了解其 SWD 和 JTAG 接口的含義和區(qū)別嗎? 1、什么是下載調(diào)試器 簡(jiǎn)單來(lái)說(shuō),下載
    的頭像 發(fā)表于 11-28 11:44 ?4587次閱讀

    jtag接口和swd接口區(qū)別

    它們都可以用于嵌入式設(shè)備調(diào)試,但在設(shè)計(jì)、功能和性能方面存在一些區(qū)別。以下是關(guān)于 JTAG 和 SWD 接口詳細(xì)比較。 1.
    的頭像 發(fā)表于 12-07 15:29 ?6463次閱讀
    RM新时代网站-首页