(电路与系统专业论文)soc中嵌入式微处理器调试技术的研究与实现.pdf_第1页
(电路与系统专业论文)soc中嵌入式微处理器调试技术的研究与实现.pdf_第2页
(电路与系统专业论文)soc中嵌入式微处理器调试技术的研究与实现.pdf_第3页
(电路与系统专业论文)soc中嵌入式微处理器调试技术的研究与实现.pdf_第4页
(电路与系统专业论文)soc中嵌入式微处理器调试技术的研究与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(电路与系统专业论文)soc中嵌入式微处理器调试技术的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着s o c ( s y s t e mo nac h i p ,系统芯片) 的发展,嵌入式微处理 器已经成为s o c 的核心部分。由于s o c 集成度的不断提高以及芯片 封装尺寸和管脚数量的限制,传统的调试方法现在已经不能满足嵌入 式软件调试的要求。所以,使嵌入式微处理器或者s o c 在硬件上支 持调试功能就显得十分必要。 目前现有的片上调试系统都基于微处理器对调试模式的支持。针 对应用在p s t n 短消息终端s o c 设计中且没有调试功能支持的8 位 微处理器i p 核,本论文提出了一种为不支持调试模式的微处理器扩 展调试功能的系统设计方法,在不破坏c p ui p 结构完整的情况下, 通过对c p ui p 时钟的管理实现了指令数据断点、单步j 运行停止、 c p u 复位、查看c p u 核心寄存器、读取修改外部存储器以及在线编 程等功能,且调试命令的设置和执行完全独立于c p u ,保证了c p u 运行的实时性。 本论文还利用p s t n 短消息终端s o c 片上的u a r t ( u n i v e r s a l a s y n c h r o n o u sr e c e i v e ra n dt r a n s m i t t e r ,通用异步收发器,即串行口) 实现了不进行硬件扩展的软件调试方法。在不能设计使用片上实时调 试系统的情况下,例如由于时问因素,使用软件的方法进行调试也不 失为一种不错的选择。 最后,作为上述两种调试方法的应用,本论文还研究了p s t n 短 消息终端s o c 中系统软件设计的几项关键技术,并完成了从数据链 路层到应用层的各种程序,实现了p s t n 短消息终端s o c 的一个演 示系统。 本论文中所提出和实现的两种调试方法,以及演示系统的所有程 序,都在s p a r t a ni i ix c 3 s 2 0 0f p g a 平台上验证通过。 关键词s o c ,片一h 实时调试系统,串行口调试,p s t n 短消息终端系 统软件 a b s t r a c t n o wt h ee m b e d d e dp r o c e s s o r sh a v eb e e nt h ec e n t r a ip a r to fs o c s ( s y s t e mo nac h i p ) s i n c et h es o c s h a v ei n t e g r a t e dm o r ea n dm o r eu n i t s , a n dd u et ot h e1 i m i t a t i o no fs o c s f o o t p r i n ta n dp i nn u m b e r s ,t h e t r a d i t i o n a ld e b u g g i n gm e t h o d sa r eo b s o l e t ea n du n a b l et ob ea n yh e l p s o m a k i n gt h es o co rt h ee m b e d d e dp r o c e s s o rs u p p o r td e b u gf u n c t i o ni s a n e c e s s i t y m o s to ft h eo n c h i pd e b u gs y s t e m sa r eb a s e do no n ep r o p e r t y :d e b u g m o d es u p p o r t i n go fc p u b e c a u s ea n8 - b i tp r o c e s s o ri pc o r et h a td o e s n o ts u p p o r td e b u gm o d ei sa p p l i e di nt h ep s t ns h o r tm e s s a g et e r m i n a l s o c ,ad e s i g no fo n c h i pd e b u g g i n gf a c i l i t i e sf o rt h i sc p ui si n t r o d u c e d i tp r e s e r v e ss t r u c t u r a li n t e g r i t yo ft h ec p ub ym a n a g i n gt h ei t sc l o c k e x t e r n a l l ya n di m p l e m e n t sd e b u g f u n c t i o n ss u c ha si n s t r u c t i o n d a t a b r e a k p o i n t ,s t e p ,r u n s t o p ,c p ur e s e t ,r e a d c p uk e r n e l r e g i s t e r s , r e a d m o d i 匆e x t e r n a lm e m o r ya n di n c i r c u i tp r o g r a m m i n gw i t ho n l ya s m a l lh a r d w a r eo v e r h e a d t h e d e b u g c o m m a n dc o n f i g u r a t i o na n d e x e c u t i o na r et o t a l l yi n d e p e n d e n to ft h ec p us ot h a tt h ec p uc a nn l ni n r e a lt i m e a n o t h e r d e b u g g i n g m e t h o dt h a td o e sn o ta d d a n y a d d i t i o n a l h a r d w a r et ot h es o cb u tu t i l i z e st h eu a r t ( u n i v e r s a la s y n c h r o n o u s r e c e i v e ra n dt r a n s m i t t e r ) o ft h es o ci sa l s oi n t r o d u c e d w h e nt h e o n c h i pr e a lt i m ed e b u gs y s t e m - c a nn o tb ed e s i g n e df o rs o m er e a s o ns u c h a st i m ec o n s t r a i n t ,t h i sp u r e l ys o f t w a r ei m p l e m e n t e dd e b u gs y s t e mi sa l s o g o o de n o u g h u s i n gt h ea b o v et w od e b u g g i n gm e t h o d s ,s o m ek e ys o f t w a r ed e s i g n t e c h n i q u e si nt h ep s t ns h o r tm e s s a g et e r m i n a ls o ca r es t u d i e da n da d e m o n s t r a t i o ns y s t e mi n c l u d i n ga l lt h ep r o g r a m sf r o md a t al i n kl a y e rt o a p p l i c a t i o nl a y e ro r ec o m p l e t e d t h et w od e b u g g i n gm e t h o d sa n dt h ew h o l ed e m o n s t r a t i o ns y s t e m m e n t i o n e da b o v eh a v eb e e nv e r i f i e do nap l a t f o r mm a d eo fs p a r t a ni i i x c 3 s 2 0 0f p g a k e yw o r d s s o c ,d e b u g ,o n - c h i pr e a lt i m ed e b u gs y s t e m ,d e b u g u t i l i z i n gu a r t , s o f t w a r eo f p s t ns h o r tm e s s a g et e r m i n a l l i 硕士学位论文第一章综述 1 1s o o 与嵌入式系统 第一章综述 s o c 是s y s t e mo nac h i p ,即片上系统的简称。随着集成电路设计技术的进 步和半导体制造工艺的发展,越来越多的电路可以集成在一块芯片内,这大幅降 低了系统的成本并提高了系统的可靠性。通过使用i p ( i n t e l l e c t u a lp r o p e r t y ) ,在 单个芯片上可能集成了微控制器( m c u ) 、数字信号处理器( d s p ) 、存储器、 射频自口端、数模和模数转换器等硬件以及完成特定功能所必需的嵌入式软件,这 就是片上系统。s o c 的主要特点就是包含微处理器以及完成特定功能所必需的嵌 入式软件”。 嵌入式系统( e m b e d d e ds y s t e m ) 实际上是“嵌入式计算机系统”的简称,这 种计算机系统是作为某个专用系统中的一个部分而存在的,其本身的存在并非目 的而只是手段【2 】。嵌入式系统还有一个更为广泛的定义,即用于实现独立功能的 专用计算机系统都可以算作是嵌入式系统。嵌入式系统没有标准化的体系结构, 其硬件平台和运行在该平台上的软件系统都是根据需要定制的。嵌入式系统通常 用于关键设备的控制等,对系统的实时性、可靠性有着严格的要求,因此嵌入式 系统更强调软硬件的协同性与整合性。嵌入式系统还要同时满足系统对功能、成 本、体积以及功耗等多方面的要划3 1 。 可以说,s o c 就是单芯片的嵌入式系统。 1 2 嵌入式系统的调试方法 如果把嵌入式系统作为目标系统,那么其开发一般都需要在一台“宿主机” ( h o s tc o m p u t e r ) 上进行。在宿主机上进行编辑,交叉编译健接,并通过宿主 机把目标系统的可执行映像装载到目标系统中。调试同样需要在宿主机的控制下 进行。根据所使用的资源,调试可以分为两大类:硬件调试与软件调试 4 1 。 硬件调试是通过硬件实现调试功能的方法。硬件调试可以分为两类:在线仿 真器i c e ( i nc i r c u i te m u l a t o r ) 和在线调试器i c d ( i nc i r e u i td e b u g g e r ) 。 i c e 是一种专用的调试设备,配有专用于特定c p u 芯片的接头。将接头跨 接在c p u 芯片上并加以固定,使得它的每一条引线都与c p u 芯片的对应引脚接 硕士学位论文第一章综述 触,就可以把c p u 的所有引脚都接入i c e 。也可以不插入c p u 芯片,而将i c e 的接头直接插入c p u 的插座代替目标c p u 。这样既可以用i c e 监视c p u 引脚 的活动以及c p u 的外部环境,也可以用i c e 来仿真代替c p u 的运行。 随着c p u 设计技术的进步,i c e 的一些功能集成到了c p u 内部。在这些 c p u 中,有一组调试寄存器,可以用来设置各种断点以及读取特定寄存器的值 等。宿主机的调试器只需要访问这些寄存器就可以让c p u 本身实现调试功能。 为了更方便的进行调试,有些微处理器还在硬件上为c p u 开了一个“后门”, 使得宿主机的调试器可以从外部让c p u 暂时“挂起”,停止执行,并且可以任 意从外部察看和改变各个内部寄存器的内容,也可以对外部存储器进行操作,然 后再让c p u 从被“挂起”的地址恢复执行,或者通过改变p c 寄存器的值,使 c p u 转入其他的程序执行。c p u 内部这些为了实现调试功能而设计的硬件就是 在线调试器,或者叫做内置式i c e ( e m b e d d e di c e ) 1 5 1 。有些i c d 还可以做到完 全不影响c p u 的运行,实时地完成各种调试功能。 软件调试是通过让日标系统执行留驻在目标系统上的软件代码实现调试功 能的方法。软件调试在实现时,一般是用一条自陷指令替换原来地址处的指令, 并把原指令保存起来。在自陷异常处理中实现各种调试功能,并在执行完调试代 码后,再执行保存起来的原指令,从而恢复原程序的正常执行。目标系统上的留 驻代码接收宿主机发送的调试指令,向宿主机反馈调试结果和现场信息等。按照 对目标系统硬件和软件的控制能力,软件调试方法可以分为引导型软件调试和应 用型软件调试两类1 4 】。 引导型软件调试是一种具有启动系统、加载和调试包括内核在内的程序等功 能的监控程序,实际上是一个具有监控功能的微型操作系统。引导型监控器在启 动时就控制了目标系统。它先对目标系统进行通常的引导程序( b o o t - l o a d e r ) 所 做的例行启动工作,如对c p u 和r a m 进行初始化、在r a m 中建立r o m 某些 区域的映像、初始化串口、初始化中断向量、根据需要对其他外设进行初始化。 然后初始化程序的执行环境,建立任务列表,进入b o o t s t r a p 环境。最后,在 b o o t - s t r a p 环境中可以接受来自控制台的串i :z l 速率调整、程序映像下载、中断设 置、闪存操作、目标系统重启、目标系统状态报告、目标系统时钟设置等命令, 并可以加载操作系统。用户可以在宿主机上输入命令,通过某种通信方法如串行 口、局域网等发送给目标系统,控制其运行【4 】。 应用型软件调试是运行在目标机操作系统之上的调试软件,用于调试运行在 操作系统之上的应用程序。由于需要调试的是这些与硬件以及操作系统内核结合 不很紧密的应用程序,无须要求调试软件去监控操作系统内核,所以可以使用一 种依赖于操作系统的软件调试方法,为宿主机端的调试器提供非内核应用的调试 2 硕士学位论文 第一章综述 服务。由于其本身是基于操作系统支持的,所以只具有普通应用程序的优先级。 应用型软件调试不能调试内核程序以及实时应用1 4 i 。 还有一种常见的软件调试技术足“插桩”,即在目标系统程序中所关心的位 置,插入一些特定的操作语句,如自陷、发送字符等。这样,一旦目标程序执行 到这些特定的位置,就会执行某些特定的操作,宿主机就可以得到所需的目标系 统的现场信剧”。 1 3 调试所面临的困难 4 1 1 6 1 - 1 2 l 【2 0 】俐 随着c p u 的引脚不断增多、封装技术的不断改进以及时钟主频的不断提高, 使得采用仿真接头技术的i c e 调试越来越困难:比如采用b g a 封装且有几百个 管脚的芯片,就使得这种技术几乎不可能在其上面实现。更重要的是,微处理器 内部集成了越来越多的片上外设,或者整个微处理器作为s o c 的控制核心而存 在。由于此时的c p u 已经不再是标准结构,s o c 中更是集成了用户定制的功能, 所以用仿真接头替代微处理器或者s o c 就更为困难了。 i c d 符合了可调试性设计( d e s i g nf o rd e b u g ) 的设计思想,尤其是在微处 理器作为s o c 一部分的时候,i c d 就显得更为重要。不过i c d 一般都要求c p u 支持调试模式,即微处理器有专门的调试异常处理流程,有特殊的寄存器用以控 制自身的运行状态,有作为最高优先级中断的调试中断或者有专门的软件断点指 令等。对于某些不支持调试模式的微处理器i p 核,当它们应用在s o c 设计中的 时候,就会面临如何进行硬件调试的困难。 软件调试不管是引导型调试还是应用型调试,都不能调试对实时性要求比较 高的系统。由于软件调试要不断进入自陷异常处理或者是串行口中断处理来判断 是否满足了调试条件或者是否接收到了宿主机发出的调试命令,所以目标系统的 执行效率一般会下降1 0 1 0 0 倍( 根据异常处理或者中断处理的复杂程度,以及 c p u 本身异常处理或者中断处理流程的不同而不同) ,远远满足不了实时调试 的需要。并且软件调试要占用目标系统的硬件资源,要么要占用自陷异常,要么 占用串行口中断,并且一般要占用一个串行口用于和宿主机进行通信。其优点是 不需要进行任何的硬件改动,并且由于完全是软件实现,灵活性大,很容易对调 试系统进行修改。在不能对s o c 硬件进行改动,且目标系统的实时性要求不高 的情况下,软件调试也不失为一种不错的选择。 3 硕七学伊论文第一章综述 1 4p s t n 短消息终端s o c 的结构 p s t n 短消息终端s o c 是为固定电话网短消息业务 1 3 1 而设计的一种数字终 端处理芯片,片上集成了微控制器、r a m 、f s i ) t m f 调制解调器、l c d 接口、 键盘扫描、数据存储器扩展页面寻址接口以及线路状态控制接口,可以完成f s k 和d t m f 格式的短消息上传、下载,c i d ( c a l l i n gi d e n t i t yd e l i v e r y ,主叫识别信 息传送) 号码的接收,振铃信号检测,话机状态控制等功能,提供了p s t n 短消 息终端的单芯片解决方案。其中,使用了d w 8 0 5 1c o r e 固i p 核作为s o c 的微控 制器核心。 s o c 不仅指它的硬件平台,还包括了运行在其上的软件成分。因此p s t n 短 消息终端s o c 设计在硬件与软件功能划分上有着一个合理的权衡,并进行了协 同设计。系统任务按功能可以分为通信、人机交互、f l a s h 存储器管理、外设 管理四部分。通信的物理层功能即d t m f f s k 信号的调制解调,涉及插值、加 权、相关等d s p 运算,考虑到通信的实时性要求和所使用8 位微控制器的数据 处理能力,这些运算由专门设计的m o d e m 硬件逻辑实现;而在数据链路层, 比如建立和释放与服务器的连接、超时控制、接收f s k 数据帧、拆包、差错控 制、提取返回消息层的信息和相应标志位的建立等,都交给微处理器由软件实现; 人机交互中的键盘扫描要不断判断是否有按键动作发生,用软件实现效率低,这 里也用专门的硬件逻辑实现;其他人机交互功能如菜单操作、短信编辑等,则都 由软件实现:f l a s h 存储器管理和外设管理在硬件提供了接口寄存器的情况下, 由软件实现。 把实时性强、运算量大和重复性强的功能交给硬件去实现,然后在满足系统 性能要求的情况下,把尽可能多的任务留给片上的微控制器用软件实现,降低了 s o c 的硬件复杂度以及制造成本,同时系统也可以获得最大的灵活性。 d w 8 0 5 1 _ c o r e 9 是s y n o p s y s 公司提供的一个和8 0 5 x 指令兼容的8 位微控制 器i p 核。它采用四个时钟周期为一个指令周期的模式,在时钟周期相同的情况 下,处理能力是标准8 0 5 x 的3 倍。d w 8 0 5 1c o r e 营访问程序存储器和数据存储器 的m e m 地址总线是1 6 位总线,避免了传统8 0 5 x 结构中数据总线和地址总线低 位的时分复用问题【1 4 】。 由于d w 8 0 5 lc o r e 露是一个i p 软核( s o f tc o r e ) ,所以可以对它进行配置和 扩展。在综合( s y n t h e s i s ) 的时候,通过对参数文件的设置,可以选择配置内部 r a m 是1 2 8 字节还是2 5 6 字节;可以选择是否使用定s o 计数器2 ,使用一个串 4 硕士学位论文 第一章综述 1 3 还是两个串口等等。用户还可以按照d w 8 0 5 1c o r e 雪手册的要求使用硬件描述 语占编写硬件逻辑,扩展s f r 总线和中断系统( 最多可以扩展到1 3 级中断) 。 在s o c 设计中,只使用到了微控制器核的一个硬件定时器( t i m e r ) ) ,一个 外部中断( i n t e r r u p t o ) ,一个串行1 2 1 ( u a r t ) ,并没有使用d w s 0 5 1 部功能,那些冗余的功能只会增加系统的硬件负担。所以按照最精简的原则配置 d w 8 0 5 l 雪:使用内部字节 ,不使用定时计数器2 ,不使用内部_ c o r e 1 2 8r a m r o m ,只使用一个串1 3 ,不扩展中断。在d w 8 0 5 1 文件中,作如parametervhd 下的参数设定可以完成上述的配置【1 4 1 : p a c k a g ed w 8 0 5 l _ p a r a m e t e r i s c o n s t a n tr a m _ 2 5 6 :i n t e g e r :;o : c o n s l a n tl i m e r 2 :i n t e g e r :2o : c o n s t a n tr o m a d d r s i z e :i n t e g e r := 0 ; 。 c o n s t a n ts e r i a l :i n t e g e r := o : c o n s t a n te x t di n t r :i n t e g e r :2o : e n dd w 8 0 5 l _ p a r a m e t e r ; s o c 中的f s k 仍瞰f 调制解调器、l c d 接口、键盘扫描、数据存储器扩展 页面寻址接口以及线路状态控制接口等都作为片内外设连接在d w 8 0 5 l _ c o r e 所 特有的s f r 内部总线上。8 k 字节的片上r a m 和片外5 1 2 k 字节的f l a s h 存储 器a m 2 9 1 v 0 4 0 都连接在d w 8 0 5 1 c o r e 的m e m 总线上。如图1 1 所示。 图1 - 1 经过扩展的d w 8 0 5 1 _ c o r e 。s f r 总线以及s o c 的系统结构 1 5 论文的主要工作和结构 j t a g 是当今i c d 设计技术的基础。本论文首先在第二章中介绍了j t a g 的 结构和工作原理。然后介绍了应用于m i p sc p uc o r e 的e j t a g ,它利用了j t a g 5 硕士学位论文第一章综述 技术,同时基于c p u 支持调试模式而设计。 p s t n 短消息终端s o c 中所使用的微控制器i p 核d w s 0 51c o r e 。不支持调试 模式。针对d w 8 0 5 1c o r e 。( 以下可能简称为c p u ,c p ui p ,微处理器i p ,微控 制器”,微处理器或者微控制器) 在p s t n 短消息终端s o c 中的应用,本论文 提出了一种为不支持调试模式的微处理器扩展调试功能的系统设计方法,在保持 c p ui p 结构性和完整性的情况下,设计片上调试逻辑,通过对c p ui p 时钟的管 理,用较少的硬件开销实现了指令,数据断点、单步、运行停止、c p u 复位、查 看c p u 核心寄存器、读取修改微控制器m 内部r a m 、读取修改外部存储器以 及在线编程等功能,且调试命令的设置和执行完全独立于c p u ,保证了c p u 运 行的实时性。这一部分在论文的第三章中叙述。 本论文还利用p s t n 短消息终端s o c 片上的u a r t ( u n i v e r s a la s y n c h r o n o u s r e c e i v e ra n dt r a n s m i t t e r ,通用异步收发器,即串行口) 实现了不进行硬件扩展 的软件调试方法。通过5 0 0 多个字节的用户程序空间开销和l o 个字节左右的 r a m 数据空间开销( 根据软件断点数量的不同而有所差异) ,实现了软件指令断 点、单步、运行停止、查看,修改c p u 核心寄存器的值、读取修改微控制器i p 内部凡址外部数据存储器等功能。由于串行口调试功能的实现是作为串行口中 断服务而存在,所以不可能在与串行口中断有着相同或者更高优先级的中断函数 中设置断点或者单步执行。在使能了软件断点或者单步执行的情况下,由于每执 行一条指令都要检查是否遇到了断点地址或者是否收到了调试指令,所以用户程 序的执行速度会下降1 0 0 倍左右,不能进行实时调试。这一部分在论文的第四章 中进行叙述。 最后,作为上述两种调试方法的应用,本论文还研究了p s t n 短消息终端 s o c 中系统软件设计的几项关键技术。包括如何进行存储空间的地址映射,在使 用尽可能少的片上r a m 的情况下,解决基于f l a s h 的v o nn e u m a n n 存储结构 中无法对f l a s h 进行写操作的问题;通信核心状态机的设计;超时时钟的应用。 还有一些应用层的软件设计,包括文本编辑,短信的收发以及f l a s h 存储器的 管理策略等。这一部分在论文的第五章中叙述。 对论文中所提出和实现的两种调试方法以及s o c 系统软件设计的验证,在 论文的第六章中叙述。 6 硕士学位论文第二章j t a g 和e j t a g 2 1 关于j - a g t ”1 第二章j t a g 和e j a g 由于在。片上实时调试系统”的设计里面,借鉴使用了j t a g 的t a p 接口 时序( 并不声明与j t a g 完全兼容。因为按照j t a g 的规定,凡是声明与j t a g 兼容的设计,必须支持j t a g 三条必须的指令,而本设计扩展了j t a g 指令集, 为了降低硬件的复杂性,并不支持j t a g 这三条必须的指令,所以这里并不声明 与j t a g 完全兼容。) ,所以有必要对j t a g 进行简单的介绍。在第三章“片上实 时调试系统设计”中,凡是涉及到j t a g 的地方,将不再详细叙述。 j t a g ( j o i n tt e s ta c t i o ng r o u p ) 标准,即i e e es u t1 1 4 9 1 标准。它的全称 是i e e es t a n d a r d r e s t a c c e s sp o r ta n db o u n d a r ys c a n a r c h i t e c t u r e 。j t a g 是一种为 印刷电路板以及大规模集成电路芯片的测试而发展起来的技术,现在几乎所有的 大规模集成电路都支持j 1 a g 。j 1 a g 的应用并不局限于硬件测试,它还在软件 的开发和调试中起着重要的,甚至是不可替代的作用,例如实现数据的下载,以 及在调试中为宿主机与目标系统之间的通信与控制提供重要手段等。 2 1 1 b o u n d a r ys c a n b o u n d a r ys c a n 即边界扫描,是在芯片的每一个f o 引脚上都加上一个b s c ( b o u n d a r ys c a nc e l l ,边界扫描单元) ,构成一条扫描路径。通过对这条扫描路 径的控制和操作,可以把数据移位进入和移出芯片内部,达到对内部电路的控制 和观测,以及对各个芯片之间互连关系进行测试的目的。图2 - l 是一个边界扫描 最简单的例子。它有功能逻辑电路a p p l i c a t i o n l o g i c 和相应的输入n d i ( n o r m a l d a t ai n p u t ) ,输出n d o ( n o r m a ld a t ao u t p u t ) 引脚,边界扫描路径包括了每个 输入、输出引脚所对应的边界扫描单元b s c ,数据通过t d i 、t d o 串行移位进 入和移出芯片。 7 硕士学位论文第二章j t a g 和e j t a g 图2 - i 最简单的边界扫描例子 所有的b s c 都在t d i 和t d o 之间互连以形成扫描路径。在芯片正常的工 作模式下,b s c 对输入、输出信号没有任何影响,信号可以正常的从n d i 经过 a p p l i c a t i o nl o g i c 处理后到n d o 输出。进入边界扫描测试模式后,测试向量或 激励文件可以从t d i 移位进入n d i 的b s c ,并从n d i 的b s c 应用于a p p l i c a t i o n l o g i c ;测试响应可以被n d o 的b s c 捕获采集下来,并从t d o 移位输出。如果 测试向量或激励文件移位进入一个芯片的扫描路径后,并不应用于它的功能逻辑 电路,而是直接从t d o 移出,然后再进入另外一个芯片的t d i ,就可以完成通 过一个芯片测试另一个芯片或测试芯片问互连的功能。 2 1 2t a p t a p ( t e s ta c c e s sp o r t ,测试访问端口) 是j 1 a g 的控制单元以及与外界的 接口。其结构如图2 2 所示。 _ 妲i 图2 2t a p 的结构 t a p 的寄存器由一个指令寄存 i n s t r u c t i o n r e g i s t e r 和一些数据寄存器构成。 数据寄存器包括一个旁路数据寄存器b y p a s sr e g i s t e r ,一个边界扫描数据寄存器 b o u n d a r y s c a n r e g i s t e r 和一些用户定义的数据寄存器。指令寄存器用来控制对数 8 硕士学位论文 第二章j t a g 和e j t a g 据寄存器的选择,即把哪个数据寄存器连接到扫描链中。 t a p 与外界的接口由五个信号线构成:t c k ( t e s tc l k ) ,t m s ( t e s tm o d e s e l e c t ) ,t d i ( t e s t d a t a i n p u t ) ,t d o ( t e s t d a t a o u t p u t ) ,t r s t ( t e s t r e s e t ) ( 可 选) 。 t c k 驱动着t a p 状态的更新和指令寄存器、数据寄存器的移位。t c k 独立 于c p u 的时钟。 t m s 控制着t a p 状态的更新。在t c k 的上升沿采样t m s 。t c k 和t m s 一起控制着t a p 的运行。 t d i 是指令寄存器的指令和被选中的数据寄存器的数据输入端。在t a p 的 某些状态,在t c k 的上升沿采样t d i 。 t d o 是指令寄存器或被选中的数据寄存器的输出端。在t c k 的下降沿有效。 当t r s t 是低电平时,t d o 应该是三态。 。 t r s t 是t a p 的异步复位输入。当t r s t 是低电平时,t a p 进入 t e s t - l o g i c r e s e t 状态,指令寄存器加载i d c o d e 指令,t d o 变为三态。 图2 3 是控制t a p 运行的状态机。 图2 - 3 控制t a p 运行的状态机 在芯片工作在n o r m a l 模式时,通过把t m s 设置成高电平并经过5 个以上 的t c k 时钟后,t a p 进入t e s t - l o g i c - r e s e t 状态。在这个状态,t a p 对j t a g 中 影响芯片n o r m a l 模式的部分进行复位。当需要进行测试时,通过对t m s 和t c k 的适当操作,可以使t a p 离开t e s t - l o g i c - r e s e t 状态。从r u n - t e s t i d l e 状态开始, 9 硕士学位论文 第二章j t a g 和e j t a g 就可以进行指令寄存器或数据寄存器的扫描操作了。 c a p t u r e - i r 状态时,在指令寄存器的两个最低位加载二进制的0 1 ,其他位由 用户定义。在c a p t u r e i r 状态加载到指令寄存器的值作为移位操作开始时的初始 值,没有意义。 s h i f t i r 状态时,在t c k 的上升沿,寄存器的内容从m s b 向l s b 的方向移 位,同时t d i 移位进入m s b ,即移位进入新的指令;在t c k 的下降沿,指令寄 存器的l s b 输出到t d o 。寄存器中的值直到u p d a t e - i r 状态才会有效。 翼l f 磊二蕊茹婴- 。菇i 百耐 图2 _ 4 指令寄存器的移位操作 c a p t u r e - d r 状态时,被选中的数据寄存器的内容在t c k 的上升沿读入,以 便在s h i f t - d r 时移位输出。如果选中的是b o u n d a r ys c a nr e g i s t e r ,则捕获加载 的是所有n d i 的输入。 s h i f t - d r 状态时,在t c k 的上升沿,数据寄存器的内容从m s b 向l s b 的 方向移位,同时t d i 移位进入m s b ,即移位进入新的数据;在t c k 的下降沿, 选中的数据寄存器的l s b 输出到t d o 。移位进入数据寄存器中的值直到 u p d a t e - d r 状态才会有效。 m s 3 0 ;l s b 图2 - 5 数据寄存器的移位操作 在指令寄存器和数据寄存器扫描链中,被选中寄存器的影像锁存器( s h a d o w l a t c h ) 在c a p t u r e 和s h i f t 操作时都会保持它的值,直到t a p 进入u p d a t e 状态后, 移位进入扫描链的数据或指令才会通过影像锁存器输出。在u p d a t e 状态,影像 锁存器并行加载移入扫描链的新数据。 ;j i a p a u s e 状态是为了在需要的时候暂时停止对数据寄存器或指令寄存器的 移位。之后可以通过e x i t 2 继续进入s h i f t 状态,或通过e x i t 2 和u p d a t e 状态进 入r u n t e s t i d l e 状态来终止s h i f t 状态。 指令寄存器为访问扫描链中的某一个指定的数据寄存器提供地址和控制信 号。当加载的是b y p a s s 指令或i d c o d e 指令时,芯片工作在正常模式,j t a g 对芯片没有影响。 i e e es t d11 4 9 1 标准要求两个数据寄存器:b o u n d a r ys c a nr e g i s t e r 和b y p a s s r e g i s t e r 。另外,i d c o d er e g i s t e r 是可选的。用户还可以自定义其他的数据寄存 器。所有的数据寄存器都并联在t d i 和t d o 之间。当一个数据寄存器被扫描时, 其他的应该保持在它们的当前状态。 l o 硕士学位论文第二章j t a g 和e j t a g i e e e 为j t a g 制订了9 条指令,3 条必须的指令( r e q u i r e di n s t r u c t i o n s ) ,6 条可选的指令( o p t i o n a li n s t r u c t i o n s ) 。用户还可以根据自己的需要扩展指令。 3 条必须的指令如下所示: ( 1 ) b y p a s s 指令 选择b y p a s sr e g i s t e r 连接在t d i 和t d o 之间,串行数据在t d i 和t d o 之间移位,并不影响芯片的工作。b y p a s s 的指令格式被i e e e 指定为全l 。 ( 2 ) s a m p l e p r e l o a d 指令 在芯片正常工作的情况下,选择b o u n d a r ys c a nr e g i s t e r 连接在t d i 和t d o 之间,对芯片的输入、输出数据采样。这条指令还用于在应用 e x t e s t 之前预先加载测试向量到b o u n d a r ys c a nr e g i s t e r 。 s a m p l 聊r e l o a d 的指令格式由用户定义。 ( 3 ) e x t e s t 指令 用于测试芯片外部的电路,例如电路板的互连等。选择b o u n d a r y s c a n r e g i s t e r 连接在t d i 和t d o 之间,通过加载测试数据到b o u n d a r ys c a n r e g i s t e r ,从芯片输出端向外驱动测试数据,从芯片的输入端接收对外部 电路的测试响应。e x t e s t 的指令格式被i e e e 指定为全0 。 6 条可选的指令如下所示: ( 1 ) i n t e s t 指令 将芯片置于内部测试状态,并选择b o u n d a r ys c a nr e g i s t e r 连接在t d i 与t d o 之间,每次从t d i 移入一个测试向量,作用到芯片内部电路, 测试响应被捕获后从t d o 移位出来。i n t e s t 的指令格式由用户定义。 ( 2 ) r u n b i s t 指令 将芯片置于自测试状态,并选择一个用户自定义的数据寄存器连接 在t d i 与t d o 之间。在r u n b i s t 指令时,芯片的输入和输出都被加以 控制,以便外界不影响芯片内部的自测试且芯片的自测试也不对外界造 成影响。r u n b i s t 的指令格式由用户定义。 ( 3 ) c l a m p 指令 使芯片的输出电平由b o u n d a r ys c a nr e g i s t e r 的内容决定,并选择 b y p a s sr e g i s t e r 连接在t d i 与t d o 之间。在加载这条指令前,可以先使 用s a m p l e p r e l o a d 指令把数据加载到b o u n d a r ys c a nr e g i s t e r 中去。 数据经由b y p a s sr e g i s t e r 从t d i 移位到t d o ,对输出没有影响。c l a m p 的指令格式由用户定义。 ( 4 ) m g h z 指令 硕士学位论文 第二章j t a g 和e j t a g 把芯片的所有输出都设置成为高阻态,并选择b y p a s sr e g i s t e r 连接 在t d i 与t d o 之间。数据经由b y p a s s r e g i s t e r 从t d i 移位到t d o ,对 输出没有影响。h i g h z 的指令格式由用户定义。 ( 5 ) i d c o d e 指令 允许芯片在正常工作时,选择i d c o d er e g i s t e r 连接在t d i 和t d o 之问。对输出没有影响。i d c o d e 的指令格式由用户定义。 ( 6 ) u s e r c o d e 指令 允许芯片在正常工作时,选择i d c o d er e g i s t e r 连接在t d i 与t d o 之间。u s e r c o d e 指令执行时,i d c o d er e g i s t e r 捕获用户定义的芯片 信息。对输出没有影响。i d c o d e 的指令格式由用户定义。 图2 - 6 是j t a g 的一个整体结构。 蓄莩 图2 - 6 i t a g 的整体结构 2 2 一种c p u 支持调试模式的l c 口一e j l a g 【1 6 1 【1 7 1 m i p s 在j t a g 的基础上发展了针对m i p sc p uc o r e 的e j t a g 。一方面m i p s 的c p u 扩展了对调试操作的硬件支持;另一方面e j t a g 利用j t a g 的接口信号 和t a p 操作,做到和j t a g 兼容,同时还扩展了j t a g 指令和数据寄存器,并扩 展了对存储器和c p u 访问的硬件支持,使e j t a g 提供了运行控制、指令和数据 断点、实时p c 跟踪( t r a c e ) 等调试功能。 硕七学位论文 第二章j t a g 和e j t a g 图2 7e j t a g 结构 表2 1 是e y l a g 的t a p 指令,阴影部分的指令是e y i a g 对j t a g 的t a p 指令的扩展。 查! :! 里丝竺坠! 塑全 编码指令 功能 a l l o s ( f r e e f o r o t h e r u s c )用于选择其他的数据寄存器,比如j t a g b o u n d a r ys c a n o x o b a l l 司时选择a d d r e s s d a t a 和e y i a gc o n t r o lr e g i s t e r s o x o ce j t a g b o o t 使处理器在复位岳触发d c b u g e x c e p 蛀o n l 4o x 雌n o r m a l b o o t使处理嚣在复位石执行复位处理程序r e s e th a n d l e r ” 唑翌婴垒翌垄堡竺堂翌:型竺堕耋登 ! o x o f ( e j t a gr e s e r v e d ) r e s e r v e df o rf l l t u r ee j t a gl i s t a i l l kb y p a s s 选择b y p a s sm g i s t c r 表2 2 足e j t a g 的数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论