一种基于CPLD的高速JTAG调试器的设计与实现
2014-08-07张红余建
张红余建
(常州信息职业技术学院电子与电气工程学院 江苏常州 213164)
0 引言
随着信息技术的发展,越来越广泛地用到嵌入式处理器。通常,嵌入式处理器上运行的操作系统都没有完善的调试软件,需要通过主机来控制才能进行调试。由于嵌入式处理器千差万别,这就导致每一个SOC芯片都需要移植操作系统。工程师通常使用JTAG接口来调式操作系统而使其能正常工作。
最初,设计JTAG作为芯片的边界扫描接口。后来有厂商开始在嵌入式处理器内部集成调试控制模块,该模块可以用来控制CPU的停止和单步执行,而JTAG接口就用来作为主机和这个调试控制模块的通信接口[1-2]。通常把这个调试控制模块称为OCD,而把JTAG接口控制模块称为TAP(TEST ACCESS PORT)。图1所示的是一个完整的基于JTAG的调试方案。

图1 JTAG调试方案
主机用来运行调试软件,调试软件通过USB等接口与JTAG协议转换器通信。JTAG协议转换器则用来将调试软件发送的调试命令转换为对TAP控制器的控制信号并控制OCD模块来调试CPU。
本文主要研究图1中的JTAG协议转换器,用来实现USB到JTAG的信号转换。主机软件则采用开源的GDB调试器。
1 系统设计
JTAG接口总共包括5个信号TCK,TMS,TDI,TDO和TRST:其中4个是输入信号,另外1个是输出信号接口。作用如下:
Test Clock Input(TCK):为TAP提供一个独立的时钟,TAP的所有操作都基于这个时钟。
Test Mode Select Input(TMS):TMS信号用来控制TAP状态机的转换,TMS信号在TCK的上升沿有效。
Test Data Input(TDI):TAP的数据输入接口,在TCK的上升沿有效。
Test Data Output(TDO):TAP的数据输出接口,在TCK的下降沿有效。
Test Reset Input(TRST):TAP复位控制输入。
JTAG协议转换器通过对TMS信号的控制,可实现……p>
