JTAG协议入门和状态机的编程

JTAG协议入门和状态机的编程

ID:40133150

大小:59.50 KB

页数:9页

时间:2019-07-22

JTAG协议入门和状态机的编程_第1页
JTAG协议入门和状态机的编程_第2页
JTAG协议入门和状态机的编程_第3页
JTAG协议入门和状态机的编程_第4页
JTAG协议入门和状态机的编程_第5页
资源描述:

《JTAG协议入门和状态机的编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.[准备知识]    A、基本的状态机知识    B、基本的C语言能力,包括位操作、常用宏定义、数组、指针等常见内容    C、会使用一种单片机    D、熟悉SPI协议的物理原理    E、对JTAG的好奇和兴趣[ 序  言 ]    JTAG协议是目前应用最广泛的下载和仿真协议,对协议的最初缔造者来说,这也许有点无心插柳柳成荫的感觉——最初的JTAG协议只是用来辅助专门的硬件质检部门对印刷电路进行检测的。这些老账现不再提了我们现在看到的各种JTAG下载和仿真协议都是各生产厂商在原有JTAG协议的思想上进行扩充的,并不具有通用性,甚至连最基本的电路检测部分功能也被加以改造——比如,一

2、个JTAG指令可能在大部分的版本中是4 位长度的,而对于AVR32来说,一个JTAG指令却是5位。总之,现在大行其道的JTAG协议,不变的部分就只有其核心TAP状态机了。ARM有ARM的JTAG,AVR有AVR的JTAG,51有51的JTAG……    在这样一个缺乏统一标准的“街头”JTAG时代,如果你想学好JTAG下载仿真协议的破解,就必须从TAP状态机开始。[原理解析]在你被复杂的时序图弄得眼花缭乱之前,你应该首先记住以下的断言:    A、JTAG协议的本质与SPI协议并没有什么不同,它等于一个复杂的SS状态机+变长的MOSI和MISO数据移位操作。不过所谓的变长,都是事先约定

3、好的。    B、JTAG协议是一个同步通讯协议,它是全双工的。它的通讯原则是“以物易物”——即你如果想得到某些东西,你必须先给与相同长度的内容;你如果只是想发送一些数据,也会自动获取相同长度的内容,至于交换的内容是否有意义,这是另外一回事了。    C、JTAG协议无论多么复杂,实际上只有4根线起作用(有时候还有两根鸡肋的nSRST和TRST),他们分别是TMS、TCK、TDI和TDO,他们分别对应SPI协议里面的SS、SCK、MOSI和MISO。在本质上,他们并没有什么不同。即便是ARM的JTAG那么多的引脚,实际上起作用JTAG的也就这4根线而已。    D、JTAG的数据操作都

4、是基于移位寄存器的。...    E、如果JTAG协议在某个下载仿真协议中只是用来发送控制信息和少量的数据,而大量的数据传输是通过额外的其它引脚进行的,即便这个协议被称为JTAG仿真其本质也早已超过JTAG了,严格来说,不应该称之为JTAG。因为JTAG协议中就只有4根线(有时候也算上nSRST和TRST)而已。典型的如NEXUS协议。    说了这么多,我们终于可以开始正式的讲解了。        一、从SPI到JTAG     如果熟悉SPI,你会发现SPI是如此的简单、和谐——一根用于二进制位同步的时钟线SCK,一根用于主机发送到从机的数据线MOSI(Master Out Sla

5、ve In),一根用于从机发送到主机的数据线MISO(MasterIn Slave Out),外加一根用于复位SPI从机控制器以达到通讯同步的控制信号SS(不妨理解为Slave Synchronization)。如果乐意,你很容易就通过消减MOSI和MISO的方法获得精简的单向通讯。    前面我们提到,JTAG的数据操作都是基于移位寄存器的,这一点和SPI是相同的。JTAG协议的核心在于能够有效地传输指令和数据,并且传输指令和数据的过程是能够明确的加以区别对待而不会造成歧义的。    如何实现这一功能呢?JTAG协议只是将原本用来复位从机的SS信号扩展为一个状态机。而该状态机每一个状

6、态都有两个状态触发——在TCK(也就是SCK)的上升沿,TMS(也就是SS)的电平决定了跳转的分支。    下图就是一个典型的TAP状态机,值得庆幸的是,该状态机所有JTAG协议中都会遵守的部分。    ...        如果这是你第一次研究TAP状态机,首先你不必去追究TAP究竟是哪些英文单词的缩写,因为Test Access Port已经是过去很久的事情了,现在的JTAG状态机虽然功能没变,但早就从事其它“高科技”行业了。    第二眼看着附图,你会发现,其实整个状态机不过分为三个部分:信道选择部分、数据信道和指令信道。所谓的信道选择,就是图中最顶上由四个状态组成的矩形,分别对

7、应着四个状态:...    1、JTAG TAP状态机复位状态    顾名思义,就是进入该状态,将导致整个硬件TAP控制器复位,所有的寄存器都将被初始化。在TCK的上升沿,TMS为低电平时,进入下一个状态;否则保持不变。    2、JTAG TAP的Run-Test/Idle状态    其实就是“开工”和“休息”的选择分支点。在TCK的上升沿,TMS的高电平将导致状态切换,进入数据信道的通讯状态;否则保持不变。    3、JTAG TAP的Se

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。