快来趴一趴JTAG那些事(下)

你以为你不知道,其实它一直就在你身边,JTAG是嵌入式开发中在熟悉不过的一个名词了,但是你真的很了解他吗,来一块趴一趴JTAG的那些事,今天来学习JTAG指令

JTAG指令

JTAG控制器执行IEEE 1149.1-2001标准定义的指令,下图是指令列表。

IDCODE 指令

IDCODE指令在TDI和TDO之间选择32位的设备识别寄存器作为移动路径,这条指令允许MCU的询问,以决定版本号和其他部分的识别数据,当JTAG控制器复位时,IDCODE指令被装载放置到指令寄存器。

SAMPLE/PRELOAD 指令

从名字看顾名思义有另个功能

这条指令的SAMPLE部分得到在边界扫描寄存器单元格出现在输出引脚之前得到系统数据和出现在MCU输入引脚上的控制信号的采样。当指令激活,且在Capture-DR状态时,在TCK的上升沿采样,在shift-DR状态下,采样数据通过边界扫描寄存器移位到TDO输出观测。

PRELAOD部分在EXTEST或者CLAMP指令执行边界扫描测试之前,初始化边界扫描寄存器单元格。在Update-DR状态下,在TCK的上升沿,初始化数据传送给并行输出的边界扫描寄存器单元格,

EXTEST指令

EXTEST选择边界扫描寄存器作为在TDI和TDO之间的移动路径,通过驱动边界扫描寄存器中的预装载数据可以允许支持及测试片外电路和板级连接的测试。通常在选择EXTEST之前,使用SAMPLE/PRELOAD指令将预装载数据装载到边界扫描寄存器。

HIGHZ指令

HIGHZ选择旁路寄存器作为在TDI和TDO之间的移动路径,当HIGHZ指令激活时,所有的输出驱动都处在非活跃状态。

CLAMP指令

当旁路寄存器被选择作为TDI和TDO之间的路径时候,CLAMP指令允许MCU管脚信号的状态由边界扫描寄存器决定。当经过边界扫描寄存器执行EXTEST指令时,CLAMP通过减少整体移位到旁路寄存器,增强提高了测试效率。

BYPASS 指令

BYPASS指令选择旁路寄存器在TDI和TDO之间创造一个单个位的移位寄存器路径。当MCU没有测试操作请求时,BYPASS指令通过减少整体的移位路径提高了测试效率。

更多详细的指令操作以及测试访问接口的状态机部分请详细参考IEEE标准,这里不在赘述。更多官方详解可以访问www.jtag.com网站

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2015-10-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习那些事儿

WordPress中实现Markdown编辑的终极解决方案

之前我在这篇文章中简单介绍过如何利用Markdown在wordpress中进行写作:https://oldpan.me/archives/wordpress-m...

2063
来自专栏沃趣科技

Oracle并行基础

Oracle并行基础 概述 ? Oracle企业版有一项非常厉害的技术:并行查询,也就是说一个语句可以雇佣多个服务器进程(parallel slaves也叫PX...

4677
来自专栏专注数据中心高性能网络技术研发

[RoCE]网络QoS总结

 1.什么是QoS QoS是一种机制,它给一个网络流赋予一个优先级,并且管理它的最低需求(guarantees),极限能力(limitations)和它相比其他...

3725
来自专栏Golang语言社区

【译】用Go实现一个静态博客生成器

静态站点生成器是一种工具,给一些输入(例如,markdown),使用HTML,CSS和JavaScript生成完全静态的网站。 为什么这很酷?一般来说,搭建一个...

6454
来自专栏七夜安全博客

IPProxyPool4月6号更新。。。

963
来自专栏Java3y

操作系统第五篇【死锁】

3054
来自专栏FreeBuf

基于Django的双因子认证实现

双因子简介 对于网络信息系统来说,能否识别使用者的身份,是能否确保安全的基础和关键。在实际应用中,许多网络信息系统都会要求使用者在使用系统之前,提供一些相关信息...

39210
来自专栏程序员的碎碎念

用AJAX实现二级分类联动

今天学习到一个不错的内容,那就是分类联动。前面文章有说到ajax的基础知识,今天刚好强化一下所学内容。 ? 来看下效果: ? 当你选择了“地方网站”的时候就会自...

5085
来自专栏机器之心

资源 | Parris:机器学习算法自动化训练工具

3509
来自专栏技术随笔

[实用] 简书中如何编辑Latex数学公式公式示例

41311

扫码关注云+社区

领取腾讯云代金券