痞子衡随笔:ARM Cortex-M调试过程探析(1)- 4线协议标准(JTAG)

 大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是嵌入式调试里的接口标准JTAG

  在结束

  除了上述BSR之外,JTAG系统还需要以下3个寄存器:

  JTAG系统最核心的是TAP控制器,TAP控制器被设计用来与JTAG系统内部寄存器相互动,TAP控制器是一个被TMS信号控制转换的同步状态机,控制着JTAG系统的行为。

如上图所示,TAP控制器的内部状态机一共16个状态,关于各个状态具体含义可查阅IEEE1149.1手册。TAP控制器的基本功能是产生BSR和指令寄存器正常工作所需要的时钟和控制信号,其主要功能有以下几点:

  指令寄存器是用来存储需要解释执行的指令的,IEEE 1149.1标准规定了JTAG兼容器件必须要具备的指令:

  除了必备的指令外,IEEE 1149.1标准还规定了如下可选的指令:

1.4 JTAG调试工具pinout

  通常支持JTAG接口的调试编程工具其实只是利用了JTAG技术的四线TAP通信协议,而除了标准TAP信号线外,有时还加入其他辅助信号线构成完整pinout,对于ARM JTAG调试工具来说,有两种比较通用的pinout标准,即ARM20 JTAG header和ARM14 JTAG header:

  上述两种ARM JTAG header中除了标准TAP信号线外,其他辅助信号线含义如下:

信号名 ARM20-pin ARM14-pin 信号含义
Vref P1 P1,P13 JTAG接口电平参考电压。用于检查目标系统是否供电,该引脚通常与目标系统Vdd相连,中间不允许串接电阻。
Vsupply P2 N/A 电源输入
nSRST P15 P12 System Reset信号,与目标系统复位信号相连。可以直接对目标系统复位,同时可以检测目标系统的复位情况。为了防止误触发,应在目标端加上适当的上拉电阻。
RTCK P11 N/A Return Test Clock。由目标系统反馈给JTAG的时钟信号,用来动态控制TCK速率。不使用时可以直接接地。
GND P4,P6,P8,P10,P12,P14,P16,P18,P20 P2,P4,P6,P8,P10,P14 接地
DBGRQ P17 N/A 连接到目标系统的调试请求信号
DBGACK P19 N/A 由目标系统反馈回来的调试应答信号

Note:更多JTAG pinout详见JTAG test网站的整理 

  从上图可以看出TMS、TCK是一主多从并联的结构(设备过多时TMS,TCK电路需加缓冲器(如74LVC245)增加驱动能力);TDI、TDO是一主一从串联的结构,这种菊花链方式使得PCB上只需要一个JTAG接口便可以访问所有JTAG设备。

  至此,嵌入式调试里的接口标准JTAG痞子衡便介绍完毕了,掌声在哪里~~~

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信