1、来源
JTAG协议由飞利浦公司提出,目的是让芯片流片后依旧可以调试内核。
2、原理
JTAG实现原理是在芯片引脚和处理器内核间加入扫描单元。
当芯片处于调试模式时候,扫描单元把芯片引脚和处理器内核之间的输入or输出信号隔离开,并且可以根据指令读写这些信号的值。
当芯片处于工作模式时候,扫描单元不起作用。
3、实现
JTAG模块实现主要分为四个组成部分:测试访问通道TAP、TAP控制单元、指令寄存器IR、数据寄存器DR
3.1、TAP外部接口
TAP外部接口主要包括这几个引脚:TCK、TMS、TDI、TDO、TRST
3.2、TAP控制单元
TAP控制单元内部维护了一套状态机,主要用于时延控制、读取指令、反馈数据、复位
3、指令
JTAG指令包括公共指令部分和私有指令部分
公共指令包括:BYPASS、SAMPLE\PRELOAD、EXTEST、IDCODE、USERCODE、INTEST、RUNBIST
私有指令为芯片硬件定制化指令,具体型号具体分析
4、执行
4.1、载入指令
TAP控制单元内部状态机信号依次经历:
IDLE、SELECTDR、SELECTIR、CAPTUREIR、SHIFTID、UPDATEIR、IDLE
其中,在UPDATEIR环节载入指令
4.2、执行指令
TAP控制单元内部状态机信号依次经历:
IDLE、SELECTDR、CAPTUREDR、SHIFTDR、UPDATEIR、IDLE