第二章 浅谈JTAG与微电子
前言
带你走进电子世界,微观和应用方面讲述单片机,本章主要讲述单片机JTAG,微电子中JTAG运行过程。全文以C8051F02x系列单片机为例作简单描述。
一、JTAG是什么?
JTAG是联合测试工作组(Joint Test Action Group)的简称,是在名为标准测试访问端口和边界扫描结构的IEEE的标准1149.1的常用名称。此标准用于验证设计与测试生产出的印刷电路板功能。
每个 MCU 都有一个片内 JTAG 接口和逻辑,提供生产和在系统测试所需要的边界扫描功能,支持 FLASH 的读和写操作以及非侵入式在系统调试。
二、详细介绍JTAG
1.JTAG接口
如上图所示为51单片机原理框图,JTAG接口使用MCU上四个专用引脚,分别是TCK、TMS、TDI和TDO,其中TCK测试时钟(即时钟信号),TMS测试模式选择(即状态机状态选择),TDI测试数据输入,TDO测试数据输出。
相对于JTAG比较重要的就是寄存器,需要直接控制寄存器read/write,MCU中有三个与JTAG边界扫描相关的数据寄存器和四个与FLASH读写相关的寄存器,如下表格所示:(有些单片机不使用FLASH定时寄存器,)
2.状态机简介
状态机状态变化如下:
- IR-指令寄存器,主要输入寄存器指令,即寄存器的ID,从而向寄存器写入先关数据。(目的是输入寄存器地址,找到对应的寄存器)
- DR-数据寄存器,主要发送寄存器数据
前面介绍了JTAG四个引脚,此时状态机就是靠四个引脚输入的信号进行运行,TCK引脚输入时钟信号,主要给状态机提供时钟,每一个脉冲输入就会按照TMS模式选择数据进行模式选择,TDI可以输入数据,TDO输出相关数据,主要做测试用。
下面举个例子来说明状态机工作的过程:
首先通过TCK引脚输入时钟信号,通过TMS进行模式选择,打开对应模式后再进行TDI数据输入或地址输入,或者TDO进行数据读取。TMS输入模式选择,如果输入1状态保持在Test-Logic-Reset,输入0进入下一状态