首页 > 其他分享 >TAP控制器几个状态的说明-截取转载

TAP控制器几个状态的说明-截取转载

时间:2022-12-07 10:36:48浏览次数:47  
标签:状态 控制器 TMS TAP 截取 信道 TCK DR JTAG

 

 

 

第二眼看着附图,你会发现,其实整个状态机不过分为三个部分:信道选择部分、数据信道和指令信道。

所谓的信道选择,就是图中最顶上由四个状态组成的矩形,分别对应着四个状态:

1、JTAG TAP状态机复位状态

顾名思义,就是进入该状态,将导致整个硬件TAP控制器复位,所有的寄存器都将被初始化。在TCK的上升沿,TMS为低电平时,进入下一个状态;否则保持不变。

2、JTAG TAP的Run-Test/Idle状态

其实就是“开工”和“休息”的选择分支点。在TCK的上升沿,TMS的高电平将导致状态切换,进入数据信道的通讯状态;否则保持不变。

3、JTAG TAP的Select-DR Scan状态

Select DR Scan翻译成中文就是“选择数据移位寄存器进行移位操作”,简单说来,就是当我们在该状态下,TCK的上升沿读取到了TMS的低电平将直接进入数据信道的操作子状态机;在TCK的上升沿读取到了TMS的高电平,将切换到指令信道的通讯状态。

4、JTAG TAP的Select-IR Scan状态

Select-IR Scan翻译成中文就是“选择指令寄存器进行移位操作”,简单来说,就是当我们在该状态下,TCK的上升沿读取到了TMS的低电平将直接进入指令信道的操作状态机;在TCK的上升沿读取到了TMS的高电平,将重新回到JTAG的复位状态数据信道和指令信道对应着两个子状态机,从本质上数据和指令并没有任何不同,只是习惯上,指令的长度固定为4个二进制位(AVR32的JTAG是5个),而数据则随着不同的指令选择了不同长度的指令寄存器,这个就需要具体查阅相关的协议说明了,比如JTAG IDCODE的长度固定为32位,而AVR32的复位指令却有5位(很多情况下别指望是8的倍数)。根据阅读前面“选择部分4个状态机”的经验,大家应该对照着图片自己尝试去理解剩下的两个信道。下面,我只就常见的几个状态进行解释(以数据信道为例,指令信道可以参考其内容)。

1、Capture DR状态

前文说过,JTAG协议是基于移位寄存器的,其通讯具有“以物易物”的特性,在我们进入真正的数据传输之前,需要告知JTAG“准备通讯了哦?你有没有东西要给我哈?”,于是Capture DR就是一个给JTAG机会将需要传达给我们的数据放入指定的移位寄存器中的状态。

2、Shift DR状态

这个状态就是通过TDI和TDO进行数据传输的状态。需要说明的是,即便进入了该状态,TMS上的电平在TCK的上升沿也是会被读取的,从图中看到,一旦在TMS上读取到高电平,系统就会跳出Shift DR状态

如果此时数据没有传输完成,造成的后果是不确定的。请大家注意,我所说的是不确定,而不是“很严重”:同样是因为移位寄存的传输特性,有时候并不要求一定要将所有的数据都完整的进行传输,比如在AVR32中,针对SAB的数据操作,往往只需要进行最关键的部分,详细地内容可以参照相关的数据手册;

但有的时候,数据的不完整传输则会导致很严重的后果,这取决于具体的JTAG通讯协议。所以,为了保险起见,一旦进入Shift DR状态,在发送最后一个数据之前,请保持TMS为低电平,当要发送最后一个数据时,应该将TMS设置为高电平,这样,当TCK跳变为上升沿时,系统既完成了最后一个数据的传输,也成功的退出了Shift DR状态。

3、Exit1 DR状态

该状态提供了我们一个在刚才输入的数据生效前,重新修改的机会。一般情况下,我们直接保持TMS的高电平,并在TCK的上升沿驱动TAP状态机,直接进入Update-DR 状态。

4、Update-DR状态

顾名思义,就是使我们输入的数据生效——一般JTAG内部的动作就是触发一个锁存信号,将移位寄存器中的内容并行的读取到对应的寄存器中。Update-DR有两个出口,一个是,TMS的低电平对应Run-test/Idle,还有一个是TMS的高电平对应的Select-DR Scan。这两个操作看似区别不大,但是意义非凡。前者往往会导致JTAG内部产生额外的时序(比如发生一个信号,表示完成了一个特定的周期操作,在AVR的JTAG下载中有此实例);后者则表示完成了一次数据操作,将进行下一个数据的操作,但是这些操作属于同一个操作周期。当然有些情况下,这两种方法是没有区别的。

IR的相关指令类似

标签:状态,控制器,TMS,TAP,截取,信道,TCK,DR,JTAG
From: https://www.cnblogs.com/bushLing/p/16962313.html

相关文章

  • 基于RestAPI 使用ES
    ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址:https://www.elastic.co/guide/en/elasticsearch/clie......
  • FastApi (一)前端项目
    来自《PythonFastAPIWeb开发从入门到项目实战》一书的前端项目1.项目目录2.主文件main.js项目运行时执行的第一个文件,初始化运行环境,统一管理项目用到的模块import......
  • jmeter控制器之吞吐量控制器
    ThroughputController:吞吐量控制器,允许用户控制其子元件的执行频率。其参数提供了两种选择:TotalExecutions:按照次数执行PercentExecutions:按照百分比执行PerUser若勾选,......
  • 【jmeter逻辑控制器概览】
    一、说明Jmeter官网对逻辑控制器的解释是:“LogicControllersdeterminetheorderinwhichSamplersareprocessed.”。意思是说,逻辑控制器可以控制采样器(samplers)的执......
  • pytorch 使用DataParallel 单机多卡和单卡保存和加载模型的正确方法
    pytorch使用DataParallel单机多卡和单卡保存和加载模型的正确方法https://zhuanlan.zhihu.com/p/432698650 设置python环境PYTHONPATHhttps://blog.csdn.net/a58635......
  • 拆解硬件_LED灯带控制器_221206
    LED灯带控制器拆解日期:2022年12月06日拆解人:ZHOUTOP面全背面无元件MOS09N03ADataSheet:https://www.jianguoyun.com/p/DYFY1MwQ0erfChjLj-sEIAAEEROMAIM24C02D......
  • jquery ui-datapicker格式小结
    在jquerydataui-picker中,支持不同的格式,就是当用户选择了日历上的日期后,显示用户所选的日期格式,例子如下:<linkrel="Stylesheet"type="text/css"......
  • StoneDB 首席架构师李浩:如何选择一款 HTAP 产品?
    作者:李浩责编:宇亭当我们选择一款HTAP数据库时,总是先被其相关文档里所描述的优异性能所吸引。卓越的性能是我们选择一款产品的出发点,因为我们希望该款产品能够解决我......
  • jmeter控制器之仅一次控制器
    onceonlycontroller:顾名思义,也就是该控制器下的请求只会执行一次假设线程组中,循环次数为10执行结果:该请求只执行了一次......
  • thinkPHP6.0 开启多应用后无法获取控制器和方法名、返回空值
    首先开启多应用的方法:composerrequiretopthink/think-multi-app定义路由:<?phpusethink\facade\Route;Route::any('/user/login','\\app\\index\\controller\\U......