网站大量收购闲置独家精品文档,联系QQ:2885784924

JTAGChain上多器件编程的实现.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JTAGChain上多器件编程的实现

JTAG Chain上多器件编程的实现 1. JTAG协议 1.1 JTAG信号 标准的 JTAG 接口是 4 线: TMS 、 TCK 、 TDI 、 TDO ,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。 1.2 TAP状态机 JTAG协议的核心在于能够有效地传输指令和数据,并且传输指令和数据的过程是能够明确的加以区别对待而不会造成歧义的。如何实现这一功能呢?JTAG协议用TMS信号和TCK信号组成一个状态机,该状态机每一个状态都有两个状态触发——在TCK)的上升沿,TMS的电平决定了跳转的分支。图1.1是典型的TAP状态机。 图1.1 TAP状态机 TAP状态机中只有四个状态是稳态,Test-Logic-Reset,Run-Test/Idle,Shift-DR,Shift-IR。个状态具体的含义参考[1]。 1.3寄存器 JTAG的数据操作都是基于移位寄存器,JTAG协议规定两类寄存器:数据寄存器(DR) 和指令寄存器(IR),其中指令寄存器只有一个,数据寄存器有多个。 图1.2 典型的JTAG结构 1.3.1数据寄存器 JTAG??议规定三个数据寄存器,Bypass Register,Boundary-Scan Registers,Device Identification Register。其中所有遵守JTAG协议的器件都必须有一个1位的Bypass Register和不定长(取决于器件管脚数)的Boundary-Scan Registers,Device Identification Register是可选的。器件厂商还会根据用途定义其它需要的寄存器。 1.3.2指令寄存器 JTAG协议规定指令寄存器只能有一个,长度不少于2位,有器件厂商定义。协议中规定了JTAG器件通用的指令如:BYPASS, SAMPLE/PRELOAD, d EXTEST等,具体含义参考[1]。器件厂商都会定义其需要的指令。JTAG协议规定指令寄存器全1为BYPASS指令。 1.4 JTAG菊花链 JTAG 测试允许多个器件通过 JTAG 接口串联在一起,形成一个 JTAG 链,能实现对各个器件分别测试。图1.3为典型的JTAG菊花链,通常称最靠近TDI输入的器件为链首。 图1.3 JTAG菊花链 2 一个JTAG Chain上多器件指令执行的实例 JTAG Chain上多器件编程的关键是如何跳过其它器件选定待烧写器件。JTAG协议中的BYPASS指令和BYPASS寄存器提供解决之一为题的方法。因为在JTAG菊花链中所有器件共用TMS和TCK,器件都处于TAP的同一个状态下,所以可以再Shift-IR状态下向器件输入不同的指令,使待烧写的芯片获得要执行的指令,要跳过的芯片获得BYPASS指令。再跳转到Shift-DR状态时要跳过的器件就相当于一位的移位寄存器。下面的实例[2]中详细描述了上面的过程。考虑三个器件组成的JTAG菊花链,链首至链尾依次为XC18V02,XC9572XL,XCV150,要执行的操作是读取JTAG链中第二块芯片(XC9572XL)的Device ID。 2.1 TAP 进入Shift_IR状态。 XC18V02的指令寄存器8位,XC9572XL的指令寄存器8位XCV150的指令寄存器5位,如图2.1所示。 图2.1 TAP状态和移位前的指令寄存器 TDI顺序输入(TCK上升沿采样)21bit数据1fffdf,移位后的指令寄存器如图2.2所示。 图2.2 TAP状态和移位后的指令寄存器 可以看出XC18V02指令寄存器为0x11,为BYPASS指令;XC9572XL指令寄存器为0xfe,是器件定义的读取ID的IDCODE;XCV150指令寄存器为0x1f,为BYPASS指令。 2.2 TAP 进入Shift_DR状态。 根据之前写入的指令,连接XC18V02的TDI与TDO的是1位的BYPASS寄存器,连接XC9572XL的TDI与TDO的是32位的IDCODE Register,连接XC18V02的TDI与TDO的是一位的BYPASS寄存器,如图2.3所示。从TDI输入34个bit后TDO输出34bit,其中去掉MSB和LSB两位得到的32bit即为XC9572XL的Device ID。 图2.3 TAP状态和移位后的数据寄存器 3 SuperPro编程器上实现JTAG链多器件编程 3.1特殊JTAG算法 由第2节的实例看出,JTAG链上级联多个器件相当于扩展了移位寄存器的位数,待编程的器件所需的数据位于移位寄存器的特定位置上。要在SuperPro编程器上实现JTAG链多器件编程,关键是对移位寄存器中位置参数的确定。这里做如下规定,JTAG链上器件数目为N,链首器件编号为J1,链尾器件编号为JN。器件

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档