嵌入式调试里的接口标准JTAG
yund56 2025-04-23 17:41 18 浏览
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是嵌入式调试里的接口标准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 工作组
http://grouper.ieee.org/groups/1149/1/
最初版手册 1149.1-1990
http://standards.ieee.org/findstds/standard/1149.1-1990.html
最新版手册 1149.1-2013
http://standards.ieee.org/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 进入测试运行空闲状态时,芯片进行自检。
1.4 JTAG 调试工具 pinout
通常支持 JTAG 接口的调试编程工具其实只是利用了 JTAG 技术的四线 TAP 通信协议,而除了标准 TAP 信号线外,有时还加入其他辅助信号线构成完整 pinout,对于 ARM JTAG 调试工具来说,有两种比较通用的 pinout 标准,即 ARM20 JTAG header 和 ARM14 JTAG header:
上述两种 ARM JTAG header 中除了标准 TAP 信号线外,其他辅助信号线含义如下:
二、JTAG 接口进阶
前面讲完了 JTAG 基础知识,下面痞子衡再给大家多介绍一些 JTAG 相关的“黑科技”。
2.1 BSDL 文件
现如今支持 JTAG 接口的芯片越来越多,为了统一各芯片厂商的具体 JTAG 实现,促进整个电子行业的一致性,IEEE1149.1 标准制订了 BSDL 语言规范。BSDL 是 JTAG 设备的标准建模语言,它的语法是 VHDL 的子集,是对 JTAG 器件的边界扫描特性的描述,主要用来沟通芯片厂商、用户与测试工具之间的联系。
开源的 JTAG BSDL 库网站(http://bsdl.info/),涵盖主流厂商的主流芯片的 BSDL 文件
痞子衡随便找一款芯片的 BSDL 文件(Freescale K60_1M(K24_144QFP))简单分析下:
2.2 JTAG 菊花链
当你的系统中有多个 JTAG 设备时,为解决 JTAG 口过多占用 PCB 的问题,JTAG 支持如下菊花链方式连接(在 FPGA 应用尤其广泛):
从上图可以看出 TMS、TCK 是一主多从并联的结构(设备过多时 TMS,TCK 电路需加缓冲器(如 74LVC245)增加驱动能力);TDI、TDO 是一主一从串联的结构,这种菊花链方式使得 PCB 上只需要一个 JTAG 接口便可以访问所有 JTAG 设备。
至此,嵌入式调试里的接口标准 JTAG 痞子衡便介绍完毕了,掌声在哪里~~~
相关推荐
- 七夕前学起来,程序员的浪漫:三十行代码实现用她的名字作幅画
-
hello,各位小伙伴们大家早上|中文|晚上|凌晨好,相信看这篇文章的有很多新朋友,估计也有少量的老朋友,首先做个简短的自我介绍,我是一灰灰,码农界的资深搬运工;今天呢,没有站在我身边的捧哏老师,那就...
- 127.手摇计算机的收藏(我的民间收藏笔记)
-
1970年代前后,我国生产的手摇计算机,主要有上海飞鱼牌和通用牌手摇计算机,天津文化牌手摇计算机。这几种手摇计算机的收藏价,目前很不统一。品相好又能使用的收藏价大概为1500—7000元。品相不好又...
- 计算机毕业设计Hadoop+Hive+PySpark小说推荐系统 小说可视化
-
基于Spark+hadoop大数据小说数据分析推荐系统(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)直拍源码包部署爬虫可用基于用户协同过滤算法开发技术介绍编辑器:Pychar...
- win7系统exe病毒文件夹怎么删除
-
Win7系统中exe病毒文件夹如何删除?下面为大家提供解决办法,快来了解吧!1、按下Win+R快捷键,输入gpedit.msc,所示,即可打开组策略编辑器。2、依次展开计算机配置下的管理模板,进入...
- Windows 10 网络搜索设计太反人类?教你如何彻底关闭它
-
来源:太平洋电脑网我们知道微软在Windows10中,特别加强了系统的搜索功能,但Windows10的搜索的确很难称得上好用。抛开效率低下、呈现结果少、造成系统卡顿等老生常谈的问题不论,在功能设计...
- win7系统exe病毒文件夹怎么删除?
-
经常遇到病毒文件夹,它们通常是带有exe后缀的文件夹名称,双击后会复制病毒。今天就教大家如何删除这些病毒文件夹。1、打开开始菜单,点击运行按钮;或者按下Win+R键,即可开启运行对话框。2、运行窗...
- 通过代码编写电脑关机程序
-
大家好,我是Anyday这期给大家分享的电脑小知识是通过代码编写程序进行关机。首先在桌面右键新建一个文本文档双击打开新建文档,在里面输入shutdown–s–t0,这就是我们上一期的关机代码(聪...
- 可视化程序设计必备书:从零开始Qt可视化程序设计
-
“可视化程序设计”是理工科极为重要的一门专业课程,实践性很强。其教学目标是使学生掌握可视化程序设计的基本方法、编程技能并具备上机调试能力,熟悉界面设计,掌握各种常用类(有些开发工具称控件,实...
- 重要通知!25年公务员专业参考目录已出!
-
大家关心的2025年江苏省公务员考试消息有了!一年一度江苏省公开征求对《江苏省2025年度考试录用公务员专业参考目录》的意见和建议公告出了!各地的公务员专业参考目录其实都查不多,江苏针对今年的具体情况...
- 计算机二级考试中的一些注意事项
-
科教武汉【计算机二级考试中的一些注意事项】1、要合理安排做题时间可以先通过观察整个题目的题形,判断整个试卷的难点,通过观察题型然后确定自己的应对策。选择题建议用时15-20分钟为好。自己要有一个时间...
- 天津专升本计算机知识点 选定文件和文件夹
-
在Windows7系统中,进行选定,包括多种,考试重点内容有三种。①选定多个连续的文件或文件夹,可用Shift键配合鼠标进行选定②选定多个不连续的文件或文件夹,可用Ctrl键配合鼠标进行选定③撤销某...
- 最新发布!四川这些岗位急需紧缺人才
-
12月17日,《四川省人力资源服务业急需紧缺人才目录》发布。据介绍,《四川省人力资源服务业急需紧缺人才目录》采集600余家用人单位信息,调查整理了40余家用人单位需求,从收集的上千条岗位信息中分析出3...
- 最新!普通高等学校本科专业目录(2024年)!共816种本科专业
-
高考成绩已定,目前最重要的,就是填报高考志愿了!!!(点击查看:广西2024高考分数线、一分一档表公布!今天开始填志愿!附前3年高考分数线、一分一档表)除了要在1308所本科大学中选出自己(孩子)喜欢...
- cad文件夹加密
-
我学计算机辅助设计,常用CAD绘制图纸并存入文件夹。有时担心关机后设计被窃,便在网上寻找解决办法,最终找到了一种加密CAD文件夹的实用方法,有效保护了我的设计成果。1、首先,我们需要安装一款保护文件...
- 文件夹加密大师使用方法:快速加密文件指南
-
不想让他人看到私密文件?以下几种隐藏文件的方法各有优缺点,快来看看哪种最适合你!1、隐藏的文件夹2、首先,右击文件夹选择属性,在常规选项卡勾选隐藏,然后点击确定。3、若文件夹为隐藏状态,打开我的...
- 一周热门
- 最近发表
- 标签列表
-
- filter函数js (37)
- filter函数excel用不了 (73)
- 商城开发 (40)
- 影视网站免费源码最新版 (57)
- 影视资源api接口 (46)
- 网站留言板代码大全 (56)
- java版软件下载 (52)
- java教材电子课本下载 (48)
- java技术的电子书去哪看 (33)
- 0基础编程从什么开始学 (50)
- java是用来干嘛的 (51)
- it入门应该学什么 (55)
- java线上课程 (55)
- 学java的软件叫什么软件 (38)
- 程序开发软件有哪些 (53)
- 软件培训 (59)
- 机器人编程代码大全 (50)
- 少儿编程教程免费 (45)
- 新代系统编程教学 (61)
- 共创世界编程网站 (38)
- 最容易入门的编程语言 (33)
- 亲测源码 (36)
- tan sin cos 图 (33)
- 三角函数积分公式表 (35)
- 函数的表示方法 (34)