一种基于JTAG协议的嵌入式调试接口设计方法
- 格式:pdf
- 大小:418.17 KB
- 文档页数:5
基于JTAG的CPLD测试配置方法研究摘要:在 CPLD的整个测试开发流程中,包括了静态和动态的测试。
CPLD测试系统有别于传统的元件测试环境,具有自身的特性。
测试平台要求有专门的EDA技术,其设计环境要求与当前主流 CPLD兼容,使用专用 EDA软件编写测试程序,再由 JTAG接口将其上传至 CPLD,再进行软硬件的测试。
关键词:JTAG;CPLD测试;配置方法引言JTAG (Joint Test Action Group)是 IEEE1149.1 (IEEE1149.1)的测试协议。
当前主流的 CPLD, FPGA, DSP等设备与传统的插头形式不同,都支持边缘扫描技术。
JTAG技术能够极大地提高测试效率,减少测试费用,因此 JTAG技术已被广泛地用于 LSI的检测与诊断。
在此基础上,采用 JTAG技术实现 CPLD的测试过程主要包括以下几个步骤:利用专用 EDA软件、先进的运动算法,实现对测试矢量的自动生成,并将其上传至 CPLD进行测试。
在实际应用中,要根据实际情况,选取适当的试验模型,对所需的测试矢量和所需矢量进行分析和处理,从而得出评价的结论。
一、CPLD整体结构分析第一,PLA模块。
PLA由“与门”阵列和“或门”阵列组成,可见 PLA中有56个“40”的“与门”数组和16个56输入的或门阵列。
PLA可以被配置成最多40个输入与或逻辑56个输入。
第二,MC模块。
MC的总体结构可以看作是一种具有设置/重置终端(包含 D、T、锁)的多功能触发器。
阵列和 PLA或数组。
特别的选择是由一个 SRAM dot的结构所控制的多路转换器来选择一个输入信号;时钟端还被 SRAM配置点所控制,它被选择为GCK0,GCK1,GCK2,或者 CTC,其中 PTC信号被作为 MC时钟的输入,而其输出被反馈到 AIM,而 other则被作为 I/OBLOCK的输入。
第三,输入输出I0模块。
I/O模块支持 LVTTL, LVCOMS, HSTL, SSTL等,这些标准的数据传输和接收。
jtag 20pin引脚定义JTAG是一种用于进行调试和测试的标准接口协议,它通常用于验证和调试嵌入式系统的硬件和软件。
JTAG接口通常使用20pin连接器进行连接,每个引脚都有特定的定义和用途。
下面是一些20pin JTAG引脚的常见定义:1. Vref: 该引脚用于提供调试器的电压参考,通常被连接到目标系统的电源电压。
2. TRST (Test Reset): 该引脚用于将被调试的目标系统恢复到初始状态,并清除所有触发器和逻辑单元的内部状态。
3. TDI (Test Data Input): 该引脚用于把调试器发送给目标系统的调试数据。
4. TMS (Test Mode Select): 该引脚用于选择和配置目标系统的调试模式。
5. TCK (Test Clock): 该引脚用于提供给目标系统的时钟信号,用于同步调试数据的传输。
6. TDO (Test Data Output): 该引脚用于将目标系统反馈给调试器的调试数据。
7. GND (Ground): 该引脚用于连接系统的地线,用于提供电路的参考地。
8. TDI0-TDI3: 这些引脚用于传输调试数据的低位。
9. TDO0-TDO3: 这些引脚用于接收目标系统反馈的调试数据的低位。
10. TRSTn: 该引脚是TRST的负逻辑信号,当悬空时,目标系统进入调试模式。
11. NC (No Connect): 该引脚没有连接,通常会短接到GND以防止电磁干扰。
13-20. 保留引脚: 这些引脚对于某些特定调试目标或配置来说是保留的,不作为通用引脚使用。
通过正确使用这些20pin JTAG引脚,调试器可以和目标系统进行正确的通信和数据传输,从而实现对目标系统硬件和软件的调试和测试。
有关20pin JTAG引脚的更深入的参考内容可以在各种嵌入式系统的调试文档、手册和规范中找到。
这些资料通常提供了详细的引脚定义和用途说明,以及与其他引脚和信号的关联性。
0 引言随着半导体工艺的迅速发展,嵌入式处理器和DSP的设计越来越复杂,其开发调试工作也日趋重要,因此处理器平台提供强大的调试系统已成为设计中必不可少的一部分。
嵌入式处理器调试系统使用硬件仿真器将调试软件与目标芯片接连起来。
仿真器与PC机之间通过标准的计算机通信接口(以太网、USB、串口等)进行通信;仿真器与目标芯片之间通过符合IEEEll49.1标准的JTAG(Joint Test Action Group)信号进行数据传输。
随着处理器和仿真器主频的不断提升,传统的JTAG接口设计以其缺乏对JTAG信号传输进行必要的时序匹配,而无法确保仿真器和目标芯片对JTAG信号进行稳定可靠的接收,因此不能满足高性能嵌入式系统的要求。
在此,提出一种双向同步自适应时钟技术,在仿真器与目标处理器之间稳定可靠地实现了跨时钟域JTAG信号的双向时序匹配,并在此基础上设计了一种TCK时钟信号产生算法,从而解决了调试系统软/硬件协同验证中JTAG信号交互时的时序匹配问题。
1 自适应时钟技术1.1 基本概念自适应时钟(Adaptive Clocking)是一种信号同步技术,其基本原理来源于异步电路设计中的自动调时(SelfTimed)技术,即采用类似应答机制来实现两个不同时钟域系统间信号的可靠传输,如图l所示。
图l中的发送与接收系统均工作在各自独立的时钟域下,并对异步输入信号进行采样同步。
发送系统(Transmit System) 以时钟clk_t为基准,向接收系统(Receive System)发送数据data_t。
接收系统将信号clk_t采样同步后产生clk_r,并作为应答信号反馈给发送系统,发送系统接收到clk_r信号,就认为接收系统已经完成了数据接收或处理,可以继续发送新的时钟和数据。
此外,如果接收系统也需要向发送系统传送数据data_r,则以clk_r为基准,便于发送系统采用同样的机制接收。
自适应时钟机制通常采用多级同步器实现,一般由几个D触发器构成,如图2所示。
选择题1.W3C制定了同步多媒体集成语言规范,称为____规范。
A. XMLB. SMILC. VRMLD. SGML##2.________完全把系统软件和硬件部分隔离开来,从而大大提高了系统的可移植性。
A. 硬件抽象层B. 驱动映射层C. 硬件交互层D. 中间层##A3.在C语言中,设有数组定义:char array[]="China"; 则数据array 所占用的空间为______。
A. 4个字节B. 5个字节C. 6个字节D. 7个字节##C4.对某一寄存器某几位清零,可用一条指令_______来实现。
A. ANDB. ORC. NOTD. AOR##A5.实时操作系统(RTOS)内核与应用程序之间的接口称为________。
A. 输入/输出接口B. 文件系统C. APID. 图形用户接口##C6.在操作系统中,Spooling技术是用一类物理设备模拟另一类物理设备的技术,实现这种技术的功能模块称做____。
A. 可林斯系统B. 斯普林系统C. 图灵机系统D. 虚拟存储系统##7.文件系统的主要功能是______。
A. 实现对文件按名称存取B. 实现虚拟存储器C. 提高外村的读写速度D. 用于保护系统文档##8.在CPU和物理内存之间进行地址转换时,________将地址从虚拟(逻辑)地址空间映射到物理地址空间。
A. TCBB. MMUC. CacheD. DMA##9.以下叙述中,不符合RISC指令系统特点的是______。
A. 指令长度固定,指令种类少B. 寻址方式种类丰富,指令功能尽量增强C. 设置大量通用寄存器,访问存储器指令简单D. 选取使用频率较高的一些简单指令##10.在操作系统中,除赋初值外,对信号量仅能操作的两种原语是____。
A. 存操作、取操作B. 读操作、写操作C. P操作、V操作D. 输入操作、输出操作11.在面向对象系统中,用______关系表示一个较大的“整体”包含一个或多个较小“部分”的类。
jtag工作原理详解JTAG(Joint Test Action Group)是一种用于测试和调试集成电路的标准接口。
它是一种通用的、标准化的接口,可以用于连接芯片或电路板上的各种测试和调试设备。
JTAG接口通常由一个标准的20针或14针连接器组成,用于连接测试和调试设备。
本文将详细介绍JTAG的工作原理。
一、JTAG接口的基本原理1.1 JTAG接口的引脚定义:JTAG接口通常由TCK(Test Clock)、TMS(Test Mode Select)、TDI(Test Data Input)、TDO(Test Data Output)四个引脚组成,用于控制和传输测试数据。
1.2 JTAG接口的工作模式:JTAG接口工作时,通过TCK引脚提供时钟信号,通过TMS引脚控制状态机状态转换,通过TDI引脚输入测试数据,通过TDO引脚输出测试结果。
1.3 JTAG接口的链路结构:JTAG接口可以连接多个芯片或电路板,形成一个链路结构,通过JTAG链路可以同时测试和调试多个设备。
二、JTAG接口的工作流程2.1 进入测试模式:在正常工作模式下,JTAG接口处于绕回状态,当需要进行测试时,通过TMS引脚切换到测试模式。
2.2 通过TCK引脚提供时钟信号:一旦进入测试模式,通过TCK引脚提供时钟信号,控制测试数据的传输和状态机的状态转换。
2.3 通过TDI和TDO引脚传输数据:在测试模式下,通过TDI引脚输入测试数据,通过TDO引脚输出测试结果,通过这种方式完成测试和调试过程。
三、JTAG接口的应用领域3.1 芯片生产测试:在芯片生产过程中,可以通过JTAG接口进行芯片的测试和调试,确保芯片的质量和性能。
3.2 电路板调试:在电路板设计和制造过程中,可以通过JTAG接口对电路板进行测试和调试,发现和修复故障。
3.3 嵌入式系统开发:在嵌入式系统开发过程中,可以通过JTAG接口对系统进行测试和调试,确保系统的稳定性和可靠性。
JTAG接口定义JTAG(Joint Test Action Group ,联合测试行动小组 ) 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试, JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的 J TAG 测试工具对内部节点进行测试。
目前大多数比较复杂的器件都支持 JTAG 协议,如 ARM 、 DSP 、 FPGA 器件等。
标准的JTAG 接口是 4 线: TMS 、 TCK 、 TDI 、 TDO ,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。
JTAG 测试允许多个器件通过 JTAG 接口串联在一起,形成一个 JTAG 链,能实现对各个器件分别测试。
JTAG 接口还常用于实现 ISP ( In-System Programmable 在系统编程)功能,如对 FLASH器件进行编程等。
通过 JTAG 接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。
目前 JTAG 接口的连接有两种标准,即 14 针接口和 20 针接口,其定义分别如下所示。
14 针JTAG 接口定义:14 针 JTAG 接口定义引脚名称描述1 、 13 VCC 接电源2 、 4 、 6 、 8 、 10 、 14 GND 接地3 nTRST 测试系统复位信号5 TDI 测试数据串行输入7 TMS 测试模式选择9 TCK 测试时钟11 TDO 测试数据串行输出12 NC 未连接20 针 JTAG 接口定义引脚名称描述VTref 目标板参考电压,接电源2 VCC 接电源3 nTRST 测试系统复位信号4、6、8、10、12、14、16、18、20 GND 接地5 TDI 测试数据串行输入7 TMS 测试模式选择9 TCK 测试时钟11 RTCK 测试时钟返回信号13 TDO 测试数据串行输出15 nRESET 目标系统复位信号17 、 19 NC 未连接。
第一章绪论1.什么是嵌入式系统嵌入式系统的特点是什么答:嵌入式系统是以应用为中心、以计算机技术为根底、软硬件可裁剪、能满足应用系统对功能、可靠性、本钱、体积、功耗等指标的严格要求的专用计算机系统。
特点:1.嵌入式系统得到多种类型的处理器和处理器体系结构的支持;2.嵌入式系统通常是形式多样、面向特定应用的;3.嵌入式系统通常极其关注本钱;4.嵌入式系统有实时性和可靠性的要求;5.嵌入式系统使用的操作系统一般是适应多种处理器、可剪裁、轻量型、实时可靠、可固化的嵌入式操作系统;6.嵌入式系统开发需要专门工具和特殊方法。
2.请说出嵌入式系统与其它商用计算机系统的区别。
答:特征通用计算机嵌入式系统形式和类型看得见的计算机。
看不见的计算机。
按其体系结构、运算速度和结构规模等分形式多样,应用领域广泛,按应用来分为大、中、小型机和微机组成通用处理器、标准总线和外设。
面向应用的嵌入式微处理器,总线和外部接口软件和硬件相对独立多集成在处理其内部。
软件和硬件紧密集成在一起开发方式开发平台和运行平台都是通用计算机采用交叉开发方式,开发平台一般是通用计算机,运行平台是嵌入式系统二次开发性应用程序可重新编制一般不能再编程嵌入式的关键技术有哪些答:1.嵌入式处理器;2.微内核结构;3.任务调度;4.硬实时和软实时;5.内存管理;6.内核加载方式4.请说明嵌入式系统技术的开展及开发应用的趋势。
答:开展趋势:1嵌入式应用软件的开发需要强大的开发工具和操作系统的支持;互联网成为必然趋势。
支持小型电子设备实现小尺寸、微功耗和低本钱。
提供精巧的多媒体人机界面。
开发应用的趋势:向经济性、小型化、可靠性、高速、低功耗、低本钱、高精度方向开展5.你知道嵌入式系统在我们日常生活中哪些设备中应用说明其采用的处理器是什么采用的哪一个嵌入式操作系统答:设备处理器操作系统开发环境ipad4AppleA6X ios6Xc ode三星GalaxyS5高通骁龙801AndroidOS〔2560MHz〕PDA PXA25XPalmOS/Windou sCE路由器ARM9ucLinux数码相机ARM9+DSP5000ucLinux6.开发嵌入式系统的计算机语言主要有哪几种分别用在什么场合答:C语言应用在开发操作系统,和硬件相关的一些应用程序。
使用过ARM芯片的人肯定都听过一个仿真器————JLINK,为什么ARM芯片现在能够这么流行?其中恐怕就有一个原因就是很多的ARM芯片都支持使用Jlink进行调试和仿真。
所以你只要有一个Jlink,不管是ARM7、ARM9、ARM11还是最新的ARM Cortex 系统都能下载和调试了。
以前的嵌入式开发者,可能使用什么公司的芯片就得买一个对应芯片的下载和仿真器,这样如果你只使用一种芯片,可能还好,不过恐怕没有那种芯片能够一直引领市场。
Jlink使用的是一种叫做JTAG的协议,JTAG原本是用于芯片内部测试的,现在大多用于芯片的程序下载和调试仿真。
由于现在Jlink用的比较多,所以有些人可能把Jlink就等同于JTAG了,实际上,JTAG是一种协议,只要满足这种协议的就可以叫做JTAG,比如H—JTAG、OpenJTAG、OSJTAG等等。
正版的Jlink是卖的很贵的。
大概是1000到2000RMB吧。
不过,中国的山寨能力是很强的,而且你硬件卖给别人了,你也没办法控制别人说你不许拆开我的东西看里面的电路是怎么样的。
所以Jlink就被破解了,破解之后的Jlink很便宜,网上五六十块钱就能买到一个能用的Jlink。
除了商业版的Jlink和H—JTAG,网上还有一些电子爱好者,他们参照开源软件的模式,设计了开源硬件,比如arduino。
还有人制作了开源版本的JTAG仿真器——OpenJTAG。
而一些芯片的开发商不像那些软件厂商,会给软件做很多的限制,他们对于开源硬件还是比较开明的,所以他们也支持了一些开源硬件。
比如TI公司的MSP430 LaunchPad、ST公司的STM Discovery 等等板子。
还有飞思卡尔公司的USBDM和OSJTAG。
他们把这些硬件的原理图、PCB还有固件都放在了网络上供人自由下载和制作,你也可以根据他的资料进行改进。
这样能使大家对于他们家的芯片有更多的了解,所以,他们也乐于开源一些评估板。
第6卷第5期2007年10月 江南大学学报(自然科学版)Journal of Jiangnan U niversity(N atural Science Edition) Vol.6 No.5Oct. 2007 文章编号:1671-7147(2007)05-523-05 收稿日期:2006-04-16; 修订日期:2006-06-08. 基金项目:国家863计划项目(2004AA1Z1020). 作者简介:游海量(1969-),男,上海人,电路与系统专业硕士研究生. 3通讯联系人:严晓浪(1947-),男,浙江兰溪人,教授,博士生导师.主要从事SoC/ASIC 设计验证自动化等研究.Email :yan @一种基于JTAG 协议的嵌入式调试接口设计方法游海量, 葛海通, 严晓浪3(浙江大学超大规模集成电路研究所,浙江杭州310027)摘 要:提出了一种新的嵌入式调试接口设计方法,设计者可以重用J TA G 标准的串行接口进行监视,跟踪并分析在嵌入式微处理器上运行的程序.通过采用调试接口电路的流水线映像寄存器组和特殊数据通路,可以避免在CPU 关键路径上插入扫描链实现“非侵入性”的调试功能.为了提高J TA G 接口的数据传输效率,指令寄存器和相关控制逻辑被重新设计.在J TA G 转换器的设计中,提出如何通过采用J TA G 调试代理协议来简化调试工具的移植,这种方法通过了硅验证,调试接口已被成功应用于C K510平台上.关键词:嵌入式调试接口;中央处理器;扫描链;映像寄存器;IEEE1149.1协议(J TA G )中图分类号:TP 334.7文献标识码:AA Method of Embedded Debug InterfaceB ased on JTAG ProtocolYOU Hai 2liang , GE Hai 2tong , YAN Xiao 2lang 3(Institute of VL SI Design ,Zhejiang University ,Hangzhou 310027,China )Abstract :A new design met hod for embedded debug interface is presented.Designers can reuse J TA G standard serial port to monitor ,t race ,and p rofile t he execution of t he programs running on an embedded microp rocessor.By using pipeline shadow registers and special data pat h in debug interface circuit ,scan chain is no longer needed to insert in t he critical pat h of CPU to facilitate non 2int rusive debug capability.To imp rove data t ransmission rate of J TA G interface ,inst ruction register and related co nt rol logic are redesigned.J TA G proxy debug p rotocol is also illust rated in J TA G p rotocol converter implementation to facilitate t he porting of debug tools.The solution has been p roven by silicon ,and debug interface is successf ully implemented in C K510platform.K ey w ords :embedded debug interface ;CPU ;scan chain ;shadow register ;IEEE1149.1(J TA G ) 随着芯片设计复杂度的不断提高,嵌入式系统调试已成为产品上市时间(Time to Market ,T TM )的重要组成部分[1].因此,一个功能强大而且使用方便的调试接口,对于缩短T TM 及保证开发产品的质量来说是必不可少的工具.现在工业界大多在嵌入式CPU 设计中集成了调试接口电路,利用J TA G 边界扫描协议[2],实现了系统级和芯片级的测试、诊断和调试[3].调试接口电路的传统实现方法是在需要观测的电路周围插入扫描链[4],通过J TA G 接口设置和读取CPU 的工作状态.A RM 公司在设计Embedded ICE 宏单元时采用了2条扫描链[5].这种方法的不足之处,是一些需要观察的状态可能处在CPU 的关键路径上,而在这些关键路径上插入扫描链会影响CPU 的性能.另外,这种机制缺乏灵活性,由于扫描链的数目和长度是固定的,通过J TA G 接口的数据传输速度不可避免地受到扫描链长度的限制.文中提出了一种新的基于J TA G 协议的嵌入式调试接口的设计方法,分别介绍了调试接口电路和J TA G 协议转换器的设计思路.在调试接口电路设计中,通过引入流水线映像寄存器组和特殊的数据通路,避免了在CPU 的关键路径插入扫描链.通过对指令寄存器的重新设计,调试接口电路的状态/控制寄存器可以有不同的地址,避免了由于受到扫描链长度的限制而影响J TA G 接口的数据传输速度.在J TA G 协议转换器设计中,通过采用J TA G 调试代理协议和调试主机通信,简化了调试工具的移植.1 调试系统的总体结构 调试系统是一种分布式的系统,调试工具运行在宿主机端,而被调试的可执行代码运行在目标机端[6].调试接口需要建立一种通信机制实现调试主机和目标硬件的底层通信[7].图1显示了调试系统的结构框图.调试系统由调试工具、调试主机、J TA G 协议转换器、调试接口电路和待调试CPU 组成.图1 调试系统的结构框图Fig.1 B lock diagram of debug system调试工具是调试系统与用户的接口,主要用于发出调试命令;调试主机是运行调试工具的计算机,通过J TA G 协议转换器与目标调试系统通信;协议转换器将调试命令转换为J TA G 接口协议的串行指令,送入目标调试系统的相关寄存器中;目标调试系统执行协议转换器发出的指令,从而完成1条调试命令的执行.2 调试接口电路 如图2所示,调试接口电路的控制逻辑由命令寄存器、译码器、调试逻辑的状态/控制寄存器等所构成.在1个符合J TA G 边界扫描协议的TA P 状态机的控制下,通过对指令寄存器和状态/控制寄存器的读写,来实现对CPU 片内集成的调试逻辑(跟踪逻辑、硬件断点逻辑、跳转目标地址FIFO 等硬件电路)的控制.图2 调试接口的控制逻辑电路Fig.2 Control logic diagram of debug interface 工作时指令寄存器作为TA P 状态机的指令寄存器(IR ),调试逻辑的状态/控制寄存器都作为TA P 控制机的数据寄存器(DR ).当TA P 状态机处于SHIF T 2IR 状态时,命令通过移位寄存器串行输入,当TA P 状态机处于U PDA TE 2IR 状态时,命令载入指令寄存器.当TA P 状态机处于CA P TU RE 2DR 、SHIF T 2DR 和U PDA TE 2DR 等状态时[2],指令寄存器选择调试逻辑的某一个或某一组状态/控制寄存器作为数据寄存器来进行存取.在传统的扫描链方式下,指令寄存器用来选定某一条扫描链[8].在这条扫描链上可能有很多状态/控制位,而只有一部分信息对本次操作是有意义的,这样移位操作会受到扫描链长度的限制,从而影响J TA G 接口的数据传输速度.在调试接口电路的设计中,指令寄存器的功能被重新定义.其中的寄存器选择位指定了读/写操作所要对应的寄存器,通过译码器产生相关状态/控制寄存器的选择信号,同时也指定了TA P 状态机的SH IF T 2DR 周期数.这种机制有很大的灵活性,每次对不同的状态/控制寄存器的存取操作,串行移位周期和相关的寄存器长度一致,这样可以极425 江南大学学报(自然科学版) 第6卷 大地提高J TA G 接口的数据传输效率.为了避免在CPU 关键路径插入扫描链,在设计中引入了一组保存了CPU 流水线状态信息的映像寄存器,通过特殊的数据通路,实现了对CPU 内部逻辑的调试功能,见图3.图3 含有调试接口电路的CPU 内部结构Fig.3 CPU internal block diagram with embeddeddebug interface circuit 映像寄存器组包括指令寄存器映像、操作数寄存器映像、PC 寄存器映像、调试控制/异常状态寄存器和CPU 状态寄存器映像.映像寄存器作为调试接口中的数据寄存器,调试主机可以通过J TA G 接口来设置和读取该映像寄存器组.其实现方法概括如下: 1)当CPU 进入调试模式时,CPU 直接将下一条指令的地址保存到PC 寄存器映像,将CPU 状态寄存器保存到调试模块中的CPU 状态寄存器映像;2)当CPU 进入调试模式之后,为了不增加额外的硬件开销,将由调试电路控制指令高速缓存,取得下一条指令代码,保存在指令寄存器映像中.如果访问指令告诉缓存产生异常,将异常写入调试控制/异常状态寄存器;3)CPU 可以不退出调试模式执行调试主机给出的指令,此时需要通过指令寄存器映像来设置CPU 将要执行的指令.同时,调试电路负责产生响应的控制信号,使得执行单元在完成该指令之后,让CPU 维持在调试模式下,而不执行其他的指令;4)当CPU 不退出调试模式执行调试主机给出的指令时,通过调试控制/状态寄存器将操作数寄存器映像设置为源操作数还是目标操作数;5)退出调试模式时,通过设置该寄存器组中的PC 寄存器映像来设置程序开始运行的起始地址;通过设置该寄存器组中的CPU 状态寄存器映像来设置CPU 运行的状态.由于这些寄存器工作在CPU 的时钟域中,可以在CPU 时钟的速度上执行调试指令;而且调试电路的逻辑不在CPU 的时序关键路径上,不影响CPU 运行最高频率.同时,这个机制可伸缩性强,当CPU 微结构复杂度提高之后,只需要增加相应的映像寄存器来观察CPU 的内部状态,而不会增加CPU 设计的复杂度.3 J TA G 协议转换器 由于调试工具并不实现对底层目标硬件的支持,在J TA G 协议转换器与调试主机的接口设计中采用了J TA G 调试代理协议.通过使用与目标硬件无关的调试代理协议,可以简化调试工具的移植.只要在调试主机中实现了对调试代理协议的支持,就可以实现对目标硬件的支持.在调试代理协议中,调试步骤被抽象成十几种原语操作(读/写内存、读/写CPU 寄存器、块读/写、设置硬件断点、单步执行和退出调试模式操作等),这些操作都是调试过程中通用的操作,与目标硬件无关.调试主机负责解析可执行文件,接收用户发出的调试指令,并且将其变成一系列调试原语操作.协议转换器接收用户的发来的调试原语操作,按照J TA G 协议发送相应指令到调试硬件接口,控制调试指令执行,读写调试数据,并将取得的调试数据返回给上层的用户接口.协议转换器的物理层需要支持双向通信能力以满足协议转换器和调试主机的数据交换.在设计中采用了增强型并行口(Enhanced Parallel Port ,EPP )协议,EPP 接口协议通过硬件自动握手,能达到500K B/s ~2MB/s 的高速数据通信[9].在开始调试进程后,调试主机与协议转换器的物理层协商进入EPP 模式.在EPP 模式下,物理层有4种工作模式:地址读/写操作和数据读/写操作,其中数据读/写操作实现了调试数据的双向通信.在结束调试进程前,调试主机会请求终止EPP 模式,引导协议转换器的物理层安全地退出EPP 模式.图4是EPP 模式的状态转换图. 协议转换器解析调试主机发送的调试原语操作.这十几种原语操作可以归结为2类:一类是设置硬件断点、单步执行、退出调试模式等操作,另一525 第5期游海量等:一种基于J TA G 协议的嵌入式调试接口设计方法类是读/写内存、读/写CPU寄存器、块读/写操作.图4 EPP模式状态转换Fig.4 EPP status transition diagram 对于第一类操作,协议转换器的工作主要是控制相关调试逻辑的状态/控制寄存器.比如在执行设置硬件断点操作时,协议转换器需要设置断点逻辑的地址寄存器、掩膜寄存器和计数器,然后通过流水线映像寄存器组保存CPU的状态信息,并退出调试模式.当断点条件满足时,断点逻辑会触发CPU重新进入调试模式.对于第二类操作,协议转换器需要通过执行CPU指令来完成对CPU内部寄存器和内存的读写操作.协议转换器通过对映像寄存器的设置,控制CPU在不退出调试模式的情况下执行指令.其具体的硬件操作过程是:1)需要执行的指令由指令寄存器映像给出,该指令只允许在调试模式下执行;2)当CPU已经处于调试模式下,而且指令提取单元不在提取PC地址的指令时,指令执行单元会执行指令寄存器映像的指令;3)当CPU不退出调试模式执行指令时,调试控制/异常状态寄存器的一个控制位会选择,是将操作数映像是作为源操作数还是目标操作数,如果是目标操作树,执行结果将写入操作数映像.协议转换器控制含有调试接口电路的CPU执行不退出调试模式指令的流程见图5.图5 CPU不退出调试模式执行指令的流程Fig.5 Flow diagram of CPU executing instructions in debug mode 通过采用上述机制,在协议转换器的设计中,只要增加少量的控制逻辑就可以实现代码下载加速的功能.这个功能对于嵌入式软件调试是非常重要的.因为在软件调试初期,需要经常修改代码并下载到目标硬件,如果J TA G协议转换器能提供较快的下载速度,就可以缩短软件的调试周期.625 江南大学学报(自然科学版) 第6卷 4 实验方法 介绍了基于J TA G 协议的嵌入式调试接口电路和J TA G 协议转换器的设计方法.所有硬件模块均成功地应用于中天微系统公司自行开发和移植的拥有自主知识产权的32位嵌入式CPU (C K510)和配套的调试器(GDB )上. 实验1选用了Dhrystone 基准测试程序,以及μcos 2II 和μClinux 2个嵌入式操作系统作为测试实例.分别采用GDB 模拟器和中天自行设计的评估板(C K ・EVB )作为测试平台.C K ・EVB 使用C K510处理器,提供J TA G 调试代理方式.GDB 模拟器和J TA G Proxy 的调试方式比较见表1.表1 G DB 模拟器和JTAG Proxy 调试方式的比较T ab.1 G DB simulator and JTAG proxy debug modecomparison Testbench Dhrystoneμcos 2II μClinux G DB 模拟器支持不支持不支持C K ・EVB支持支持支持 由表1可知,由于GDB 模拟器只能做到指令集模拟,无法仿真系统板上一些外围设备,所以对操作系统调试不予以支持.C K ・EVB 由于支持“非侵入性”的调试功能,能够支持对全部程序进行源码级调试.实验2选用了Bootloader 和μClinux 作为测试实例,统计了使用J TA G 协议转换器的代码下载速度,见表2. 由表2可以说明,使用协议转换器可以很好地满足嵌入式软件代码下载的速度要求.表2 JTAG 协议转换器代码下载速度T ab.2 Dow nload speed using JTAG protocol converter Testbench Size/K B Time/s Rate/(B/s )Bootloader92.4<0.5247127μClinux896.53.52497325 结 语 通过文中介绍的嵌入式调试接口,调试工具可以很方便地被移植,从而实现各种复杂的在线调试功能.由于其硬件设计的方法具有通用性,所以对于其他嵌入式CPU 调试接口的设计,具有很好的参考价值.参考文献:[1]J ung D Y ,Kwak S H ,L EE M K.Reusable embedded debugger for 32bit RISC processor using the J TA G boundary scanarchitecture ,Proceedings of 2002Asia 2Pacific Conference on ASIC [C].Taipei :IEEE SSCS ,2002:2092212.[2]IEEE.IEEE standard test access port and boundary scan architecture.IEE std 1149.122001[S ].Detroit USA :TheInstitute of Electrical and Electronics Engineers ,Inc.,2001:12208.[3]Bannatyne R.Debugging aids for system 2on 2a 2chip [C].USA :DesignCon ’1998,IEC ,1998:1072111.[4]吴皓,刘鹏.基于J TA G 的DSP 处理器嵌入式调试接口设计[J ].计算机工程,2005,31(1):2282230.WU Hao ,L IU Peng.Implementation of debug interface of DSP processor based on J TA G architecture [J ].Computer Engineering ,2005,31(1):2282230(in Chinese ).[5]Furber S.ARM SoC 体系结构[M ].田泽,于敦山,盛世敏,译.北京:北京航空航天大学出版社,2003:1982202.[6]Akgul T ,Kuacharoen P ,Mooney V ,et al.A debugger R TOS for embedded systems [C ].Poland :27th EuromicroConference 2001,2001:2642269.[7]Torre D L ,G arcia M ,Riesgo T ,et al .Nonintrusive debugging using the J TA G interface of FP GA 2based prototypes [J ].Industrial Electronics ,2002(3):6662671.[8]ARM Ltd.The ARM7TDMI debug architecture application note 28[EB/OL ].(2004211223)[2005212228]http ://www./20041123.html.[9]IEEE.IEEE standard signaling method for a bidirectional parallel peripheral interface for personal computers.IEEE Std128422000[S].Detroit USA :The Iustitute of Electrical and Electronics Engineers ,Inc.,2000:1277.(责任编辑:彭守敏)725 第5期游海量等:一种基于J TA G 协议的嵌入式调试接口设计方法。