宁波IT培训
美国上市IT培训机构

400-111-8989

嵌入式调试里的接口标准JTAG


嵌入式开发中,大家免不了需要仿真调试代码,尤其是当应用工程功能逻辑复杂到一定程度时,免不了在写代码时会引入一些逻辑 bug,仅靠代码审查有时候并不一定能排除所有 bug,所以在线调试便成为排除 bug 最有效直接的方式,今天我们要聊的是调试里最基础的东西,即接口标准。ARM 内核原生支持 2 种业界通用的接口标准,分别是 JTAG 和 SWD。本节课先给大家详细讲讲 JTAG 接口。

一、JTAG 接口标准

JTAG 全称“Joint Test Action Group”,既是个标准也是个组织,这是个由几家主要的电子制造商(IBM、AT&T、TI、Philips 等)成立于 1985 年的组织,这个组织成立的目的是发起制订一种 PCB 和芯片测试标准。

JTAG 标准于 1990 年被 IEEE 批准为 IEEE1149.1 测试访问端口和边界扫描结构标准。JTAG 标准规定了进行边界扫描所需要的硬件和软件,主要应用于电路的边界扫描测试和可编程芯片的在线系统编程。

1.1 IEEE 1149.1 标准

IEEE 1149.1 工作组 #/groups/1149/1/

最初版手册 1149.1-1990 #/findstds/standard/1149.1-1990.html

最新版手册 1149.1-2013 #/findstds/standard/1149.1-2013.html

1.2 JTAG 接口信号

JTAG 接口,总称测试访问接口 TAP(Test Access Port),使用如下信号来实现边界扫描操作:

TCK(测试时钟):同步内部状态机操作的时钟信号。

TMS(测试模式选择):控制内部状态机转换的模式信号(TCK 上升沿采样)。

TDI(测试数据输入):移入器件测试或编程逻辑的数据(TCK 上升沿采样)。

TDO(测试数据输出):移出器件测试或编程逻辑的数据(TCK 下降沿采样)。

除了以上信号线外,还有 1 个可选的信号:

TRST(测试重置):重置 TAP 控制器的状态机的复位信号。

1.3 JTAG 系统内部构造

JTAG 系统内部最基本的单元是边界扫描单元(其扫描获取的值存在边界扫描寄存器 BSR(Boundary Scan Register)中),每个边界扫描单元都位于目标器件的边界上,所以很多时候 JTAG 测试也被称为边界扫描。

所有目标器件核心逻辑与针脚之间的信号都会被串联的边界扫描单元所拦截。正常运行时,这些边界扫描单元是不可见的。但是,在测试模式下这些单元可以被用来设置 / 读取目标器件针脚或核心逻辑的值。

除了上述 BSR 之外,JTAG 系统还需要以下 3 个寄存器:

指令寄存器:存储当前的指令,指令内容被 TAP 控制器用来决定如何处理接收到的信号。

旁路寄存器(BYPASS):把信息从 TDI 传到 TDO 的单位寄存器。

识别码寄存器(IDCODES):含有器件的识别码和版本序号,该信息可以使器件和它的边界扫描描述语言(BSDL)文件相关联。

JTAG 系统最核心的是 TAP 控制器,TAP 控制器被设计用来与 JTAG 系统内部寄存器相互动,TAP 控制器是一个被 TMS 信号控制转换的同步状态机,控制着 JTAG 系统的行为。

如上图所示,TAP 控制器的内部状态机一共 16 个状态,关于各个状态具体含义可查阅 IEEE1149.1 手册。TAP 控制器的基本功能是产生 BSR 和指令寄存器正常工作所需要的时钟和控制信号,其主要功能有以下几点:

提供信号将指令装入指令寄存器。

提供信号将输入数据从 TDI 管脚移入内部寄存器、把输出数据从内部寄存器移出到 TDO 管脚。

执行相应功能,如捕获、移位和更新数据等。

指令寄存器是用来存储需要解释执行的指令的,IEEE 1149.1 标准规定了 JTAG 兼容器件必须要具备的指令:

BYPASS:用单一单元旁路寄存器传送数据,缩短 JTAG 链上不必要的扫描链路。

EXTEST:将已知值(存在 BSR)驱动到芯片针脚上。

SAMPLE/PRELOAD:将捕获到的芯片针脚值装入 BSR。

除了必备的指令外,IEEE 1149.1 标准还规定了如下可选的指令:

IDCODE:将 IDCODES 寄存器中的数据移出。

INTEST:将已知值(存在 BSR)驱动到芯片核心逻辑上。

RUNBIST:当 TAP 进入测试运行空闲状态时,芯片进行自检。

预约申请免费试听课

怕钱不够?就业挣钱后再付学费!    怕学不会?从入学起,达内定制课程!     担心就业?达内多家实践企业供你挑选 !

【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与联系我们,我们会予以更改或删除相关文章,以保证您的权益!
上一篇:Java程序员多线程学习指南
下一篇:浅析光纤嵌入式微流控芯片

程序员想要拿高薪应该具备哪些技能

不到 20 人的互联网公司该去吗

成长6大关键词是什么

达内---面试真题思路解析

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
江西省

贵州省

广西省

海南省