欢迎来到天天文库
浏览记录
ID:45745312
大小:234.75 KB
页数:7页
时间:2019-11-17
《[交流][jtag]跟我学jtag协议破解——第一弹初识jtagtap状态机》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、[准备知识]A、基本的状态机知识B、基本的C语言能力,包括位操作、常用宏定义、数组、指针等常见内容C、会使用一种单片机D、熟悉SPI协议的物理原理E、对JTAG的好奇和兴趣JTAG协议是目前应用最广泛的下载和仿真协议,対协议的最初缔造者來说,这也许有点无心插柳柳成荫的感觉一一最初的JTAG协议只是用来辅助专门的硬件质检部门对卬刷电路进行检测的。这些老账现不再提了我们现在看到的各种JTAG下载和仿真协议都是各生产厂商在原有JTAG协议的思想上进行扩充的,并不具有通用性,甚至连最基本的电路检测部分功能也被加以改造一一比如,一个JTAG指令可能在大部分的版本中是
2、4位长度的,而对于AVR32來说,一个JTAG指令却是5位。总乙现在大行具道的JTAG协议,不变的部分就只有具核心TAP状态机了。ARM有ARM的JTAG,AVR有AVR的JTAG,51有51的JTAG......在这样一个缺乏统一标准的"街头〃JTAG时代,如果你想学好JTAG下载仿真协议的破解,就必须从TAP状态机开始。[原理解析]在你被复杂的时序图弄得眼花缭乱Z前,你应该首先记住以下的断言:A、JTAG协议的本质与SPI协议并没有什么不同,它等于一个复杂的SS状态机+变长的MOSI和MISO数据移位操作。不过所谓的变长,都是事先约定好的。B、JTAG
3、协议是一个同步通讯协议,它是全双工的。它的通讯原则是“以物易物〃一一即你如果想得到某些东四,你必须先给与相同长度的内容;你如果貝是想发送一些数据,也会自动获取相同长度的内容,至于交换的内容是否有意义,这是另外一冋事了。C、JTAG协议无论多么复杂,实际上只有4根线起作用(有时候还有两根鸡肋的nSRST和TRST),他们分别是TMS、TCK、TDI和TDO,他们分别对应SPI协议里面的SS、SCK、MOSI和MISOo在木质上,他们并没有什么不同。即便是ARM的JTAG那么多的引脚,实际上起作用JTAG的也就这4根线而已。D、JTAG的数据操作都是基于移位寄
4、存器的。E、如果JTAG协议在某个下载仿真协议中只是用來发送控制信息和少量的数据,而大量的数据传输是通过额外的具它引脚进行的,即便这个协议被称为JTAG仿真其本质也早已超过JTAG7,严格来说,不应该称之为JTAG。因为JTAG协议屮就只有4根线(有时候也算上nSRST和TRST)而已。典型的如NEXUS协议。说了这么多,我们终于可以开始正式的讲解了。一、从SPI到JTAG如果熟悉SPI,你会发现SPI是如此的简单、和谐一一一根用于二进制位同步的时钟线SCK,—根用于主机发送到从机的数据线MOSI(MasterOutSlaveIn),—根用于从机发送到主机
5、的数据线MISO(MasterlnSlaveOut),外加一根用于复位SPI从机控制器以达到通讯同步的控制信号SS(不妨理解为SlaveSynchronization)o如果圧意,你很容易就通过消减MOSI和MISO的方法获得精简的单向通讯。前面我们提到,JTAG的数据操作都是基于移位寄存器的,这一点和SPI是相同的。JTAGI-办议的核心在于能够有效地传输指令和数据,并且传输指令和数据的过程是能够明确的加以区别对待而不会造成歧义的。如何实现这一功能呢?JTAG协议只是将原木用来复位从机的SS信号扩展为一个状态机。而该状态机每一个状态都冇两个状态触发一一在
6、TCK(也就是SCK)的上升沿,TMS(也就是SS)的电平决定了跳转的分支。下图就是一个典型的TAP状态机,值得庆幸的是,该状态机所有JTAG协议中都会遵守的部分。如果这是你笫一次研究TAP状态机,首先你不必去追究TAP究竟是哪些英文单词的缩写,因为TestAccessPort已经是过去很久的事情了,现在的JTAG状态机虽然功能没变,但早就从事其它“高科技〃行业了。第二眼看着附图,你会发现,其实整个状态机不过分为三个部分:信道选择部分、数据信道和指令信道。所谓的信道选择,就是图中最顶上由四个状态组成的矩形,分别对应着四个状态:1、JTAGTAP状态机复位状
7、态顾名思、义,就是进入该状态,将导致整个硬件TAP控制器复位,所冇的寄存器都将被初始化。在TCK的上升沿,TMS为低电平时,进入下一个状态;否则保持不变。2、JTAGTAP的Run-Test/ldle状态其实就是“开工〃和“休息〃的选择分支点。在TCK的上升沿,TMS的高电平将导致状态切换,进入数据信道的通讯状态;否则保持不变。3、JTAGTAP的Select-DRScan状态SelectDRScan翻译成中文就是“选择数据移位寄存器进行移位操作〃,简单说来,就是当我们在该状态下,TCK的上升沿读取到了TMS的低电平将直接进入数据信道的操作子状态机;在TC
8、K的上升沿读取到了TMS的高电平,将切换到指令信道的通讯状态。4、
此文档下载收益归作者所有