ARM嵌入式系统集成开发环境的设计与实现.doc

上传人:精*** 文档编号:837159 上传时间:2023-09-07 格式:DOC 页数:49 大小:587.19KB
下载 相关 举报
ARM嵌入式系统集成开发环境的设计与实现.doc_第1页
第1页 / 共49页
ARM嵌入式系统集成开发环境的设计与实现.doc_第2页
第2页 / 共49页
ARM嵌入式系统集成开发环境的设计与实现.doc_第3页
第3页 / 共49页
ARM嵌入式系统集成开发环境的设计与实现.doc_第4页
第4页 / 共49页
ARM嵌入式系统集成开发环境的设计与实现.doc_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、 第 45 页 共 49 页摘 要由于受到速度、功耗、体积、上市时间等诸多因素的限制,嵌入式系统设计变得越来越复杂。传统的反复试验法(try - and - error) 已经不能适应嵌入式系统设计的要求,迫切需要各种计算机辅助软件的支持。集成开发环境( IDE - Integrated Development Environment) 近年来发展迅速并得到广泛应用。它在嵌入式系统设计的各个阶段都可以发挥重要作用,为加快系统设计步伐,降低系统设计成本,提高系统设计一次成功率(first - time - right) 提供了有力的支持。大力推广应用IDE ,不仅能够大大提高产品开发一次成功率,

2、而且对推动我国嵌入式技术的发展有积极意义。目前嵌入式方面的IDE主要是SDT、ADS等国外产品,国内的此类自主产品很少,因此对这方面的研究将有具有很大的价值。本文针对ARM7 CPU设计了一个嵌入式集成开发环境。文中介绍了嵌入式集成开发环境的总体设计方案、整体结构模型、软件和硬件设计方案及具体实现。硬件部分主要是一个JTAG仿真器的设计;软件设计包括工程管理、编辑、编译和调试三个部分。软件调试模块是整个系统的关键和难点,在文中进行了详细论述,其中主要涉及到边界扫描调试技术,对 Embedded ICE-RT控制链的控制技术和对扫描链1的控制技术。基于理论和技术的讨论,文章最终设计出了一个JTA

3、G仿真器模型和一个具有工程管理、编辑、编译和调试功能的ARM7集成开发环境。并用它开发了一个LED嵌入式应用程序,经测试,系统能正常工作且性能稳定。关键词:嵌入式;IDE;ARM;JTAG;边界扫描AbstractRegarding embedded system, the environment for development and debugging is very important, it affects directly the popularization of system. Outstanding embedded operating system to need a fun

4、ction formidable development kit to support the user establishment application system. The domestic this kind of independent product are very few. The research for this aspect will have the extremely significance. In this paper, an embedded IDE is designed to the ARM CPU.This paper firstly introduce

5、s the embedded IDE which includes system design project, holistic structure model, the design project and implement for software and the hardware. The hardware design mainly is a self-made JTAG emulator. But software design then divides into the edition, compiling and debug three partial narrations.

6、 The pivot of paper is the development of software debugging module. In it, the Boundary-Scan debugging technology and the ARM7TDMI JTAG debugging module which completed in IDE development has the very important research and use value. Based on the theory and the technical, an ARM IDE which includes

7、 edit, compile and debug function has been completed. The paper finally developed an embedded application of LED. Through testing, the software can work well and achieved a stable performance.Key words:Embedded; IDE; ARM; JTAG; Boundary-Scan目 录1 绪论11.1 引言11.2 嵌入式IDE的现状11.2.1 国外现状11.2.2 国内现状21.3 嵌入式I

8、DE研究的意义21.4 论文工作内容21.5 论文的组织22 嵌入式IDE设计方案42.1 设计目标42.2 整体结构模型42.3 硬件设计方案42.3.1 嵌入式开发板42.3.2 JTAG接口52.4 软件设计方案52.4.1 编辑模块52.4.2 编译模块62.4.3 调试模块63 系统实现的关键技术74 硬件具体实现85 软件具体实现95.1 软件开发环境95.2 编辑模块的研制95.2.1 界面介绍95.2.2 工程的组织与实现105.3 编译模块的研制115.3.1 编译环境的构建115.3.2 GNU 工具链使用125.3.3 编译模块的实现135.4 ARM7TDMI JTAG

9、调试模块的研制135.4.1 IEEE 1149.1135.4.2 ARM7TDMI处理器结构205.4.3 ARM7TDMI常用JTAG指令215.4.4 ARM7TDMI扫描链2 - EmbeddedICE-RT扫描链245.4.5 ARM7TDMI扫描链1275.4.6 读写寄存器305.4.7 读写内存335.4.8 断点和观察点355.4.9 暂停和恢复ARM7TDMI356 系统的测试与使用427 结束语43谢 辞44参考文献451 绪论1.1 引言对于嵌入式系统,开发调试环境是至关重要的,直接影响系统的推广。优秀的嵌入式操作系统需要一个功能强大的开发工具来支持用户建立应用系统。嵌

10、入式系统开发环境与通用操作系统软件开发环境是完全不同的。由于嵌入式系统往往缺乏键盘、显示器、硬盘、充足的内存等有效的交互手段和基本的本地硬件开发资源,决定了它的设计通常涉及目标环境和宿主环境等两方面的内容。其运行一定是需要交叉编译支持的远端控制模式。嵌入式操作系统厂商各自提供了针对具体处理器的开发环境,价格昂贵且不具通用性。嵌入式处理器芯片厂家提供的开发环境一般不支持嵌入式操作系统,需采用第三方的开发工具进行操作系统的移植,为自主开发嵌入式系统带来众多不便。所以本课题以自由软件组织GNU体系下的GCC系列开发工具为基础,初步研发并建立了一个针对ARM核的嵌入式系统集成开发环境。由于GNU GC

11、C可以完成几乎所有知名CPU以及DSP的交叉C编译和调试,故大大提高了自主开发嵌入式系统的灵活性。1.2 嵌入式IDE的现状1.2.1 国外现状在国外,对RTOS的研究起步较早。二十世纪70年代中期,针对实时语言PEARL (Process and Experiment Automation Real-Time Language)的特殊要求,德国支持开发了功能强大的实时操作系统;八十年代初,美国就出现了商业化的RTOS产品,如Ready公司1981年发布的RTOS产品VRTX。经过二十多年的发展,国际市场上出现了以VRTX,VxWorks,pSOS,Windows CE,EPOC,PalmOS

12、等为代表的近四十个实时操作系统家族,支持不同处理器的200多个产品,广泛应用于信息家电、数字通信、工业控制、航空航天、医疗设备、军事电子等领域。 RTOS应用程序的开发一般首先需要在主机平台(如Unix或Windows)上配备相应的嵌入式软件集成开发环境,完成编辑、交叉编译和交又调试等编码阶段的任务,支持C、C+、Ada,、Java等高级实时语言的编程。这类集成开发环境起初主要由第三方工具公司提供,为不同操作系统的不同处理器版本专门定制,如美国Metrowerks公司的产品CodeWarrior。随着用户对嵌入式软件开发平台需求大增,RTOS供应商也纷纷投入巨资发展本系列RTOS产品的集成开发

13、环境,如WindRiver公司的产品Tornado,ISI公司(该公司目前己被WindRiver公司兼并)的产品pRISM+等。 国际上,嵌入式软件集成开发环境的另一支重要的研发队伍是自由软件协会(GNU),他们在Internet上免费提供有关研究和开发成果,如RTOS eCos,针对特定处理器的GCC(本地编译器)和CGCC(交叉编译器)。目前一些公司已在GNU软件的基础上,经过集成、优化和测试,推出更加成熟、稳定的商业化版本的嵌入式软件集成开发环境,如Cygnus(该公司目前已被RedHat公司兼并)公司推出的商业化产品GNUPro Toolkit(gcc编译器系列的商业版)和Source

14、-Navigator(集成化编辑器和源代码浏览器)。这两种Cygnus工具中功能更强大的是Source-Navigator,虽然它们可以集成在一起,但实际上它们并不能算是一个真正的IDE。 Cygnus计划发布一个用于Linux的真正的IDE,称为Code Fusion。Code Fusion将把GNUPro Toolkit和Source -Navigator集成起来,增加一些新特性,并且将取代Source-Navigator Professional Edition for Linux。1.2.2 国内现状国内的RTOS,从上世纪90年代初开始经过一些单位多年的攻关,己经突破了主要关键技术,

15、并开发出具有一定先进水平、自主版权的RTOS产品,如电子科技大学的CRTOS、中国科学院北京软件工程中心的Hopen和浙江大学的HBOS等RTOS产品。而北京科泰公司的和欣OS更是对嵌入式操作系统采用了中间件技术。 国内使用的嵌入式软件集成开发环境,多数从国外引进,自主研究和开发成果较少,与国际先进水平相比尚存在一定差距,除了针对和欣OS的和欣IDE外,目前比较流行的是深圳英培特公司的Embest IDE。1.3 嵌入式IDE研究的意义在嵌入式IDE研制方面,国内与国际存在着较大的差距,我们现在大都采用国外IDE软件。而这种方式限制了我们对IDE核心技术的掌握,同时我们也不能对它进行改进和优化

16、,从而影响了相关的嵌入式系统的开发。所以我们必须要对这个技术进行研究,开发自己的IDE。另外,通过这次的研究,加深了我们对整个ARM嵌入式开发的编译调试过程的了解,对于以后编写优秀的嵌入式系统软件打下了很好的基础。1.4 论文工作内容论文分硬件和软件两个方面。硬件方面:自制JTAG仿真器,使用现有ARM开发板,搭建硬件测试平台。软件方面:研制针对ARM7核的嵌入式系统集成开发环境,实现工程管理,、编辑、编译、调试功能,并创建测试工程对系统进行测试。1.5 论文的组织第一部分介绍了嵌入式IDE的国内外现状、研究的意义和论文的工作内容。第二部分介绍了嵌入式IDE的设计方案。首先分析了设计目标,然后

17、给出整体设计模型,再分别介绍硬件设计和软件设计方案。第三部分详细说明了嵌入式IDE下载调试过程所需的JTAG仿真器的硬件实现。第四部分是嵌入式IDE软件的具体实现。详细说明了工程管理、编辑、编译、调试模块的实现,尤其调试模块的实现是论文的精华部分所在。第五部分介绍嵌入式IDE的测试情况。描述了对一个具体的LED测试工程的创建、开发和调试过程。第六部分结束语总结了本次毕业设计的工作,并阐述了对软件的进一步设想。2 嵌入式IDE设计方案目前,嵌入式系统的集成化的开发环境(嵌入式IDE ),都采用交叉开发方法,在UNIX或 WINDOWS开发环境下开发嵌入式目标系统。本系统也采用同样的方法。IDE开

18、发环境一般包括可裁剪的微内核实时多任务操作系统,宿主机上的编译、调试、查看等工具,以及调试目标机的仿真工具。2.1 设计目标本课题主要实现ARM体系结构下的应用程序的编辑、编译和调试功能。其主要实现以下几个部分的内容:(1)新建工程并向工程添加文件;(2)编辑文件;(3)编译工程并生成二进制可执行文件;(4)将可执行文件下载到目标板内存;(5)运行可执行文件并调试。2.2 整体结构模型根据设计目标,设计了IDE的整体结构模型,以及具体的硬件和软件解决方案。整个系统由硬件和软件两大部分组成:硬件部分包括ARM开发板,用于下载调试的JTAG协议转换器(也称JTAG仿真器)。软件部分包括编辑、编译和

19、调试三大功能模块。整体结构模型如图2.1:图2.1 ARM IDE整体结构模型如图2.3 硬件设计方案2.3.1 嵌入式开发板开发板由CPU、SDRAM内存、FLASH存储器组成,并设计了JTAG接口。CPU采用SAMSUNG公司的ARM7系列芯片S3C44B0X。,它能方便的实现比较复杂的控制。SDRAM采用比较通用的hynix公司的HY57V641620HC,它是1M16bit4bank的同步DRAM。FLASH采用SST39LV160,它是一种通用NOR类型的FLASH,容量为2MB。2.3.2 JTAG接口自制JTAG协议转换器。通过底层ICE(In Circuit Emluator)

20、的支持,我们采用一片74HC244对S3C44B0的JTAG接口做一下5V到3V的电平转换,然后接到PC机的并口。并口与TAP的5个信号连接如下所示:data port (Out)status port (In)bit7 - pin9 (Out)bit7 - pin11 (In), busy (Hardware Inverted)bit6 - pin8 (Out) TDIbit6 - pin10 (In), Ackbit5 - pin7 (Out)bit5 - pin12 (In), Paper outbit4 - pin6 (Out)bit4 - pin13 (In), Select - T

21、DObit3 - pin5 (Out)bit3 - pin15 (In), Errorbit2 - pin4 (Out) TRSTbit2 - IRQ(Not)bit1 - pin3 (Out) TMSbit1 - Reservedbit0 - pin2 (Out) TCKbit0 - Reserved具体JTAG信号的说明在调试模块的研制小节中讲述。2.4 软件设计方案2.4.1 编辑模块编辑模块主要负责工程文件的组织和源代码文件的编辑。实现工程的新建、打开、关闭和设置;源代码文件的新建和添加功能。,如图2.2:图2.2 ARM IDE 图形用户接口2.4.2 编译模块编译模块主要负责编译整

22、个工程的源代码,并生成ARM可执行文件。实现编译功能。2.4.3 调试模块调试模块主要负责与硬件的连接、ARM可执行文件的下载和调试。实现硬件的连接、断开、下载;设置断点和单步运行;ARM寄存器和开发板内存的查看功能。如图2.3: 调试菜单 内存查看窗口寄存器查看窗口图2.3 ARM IDE调试菜单和控件3 系统实现的关键技术 论文的IDE主要有工程管理、编辑、编译和调试功能。工程管理采用XML技术;编辑功能采用VC的Richedit控件实现;编译采用GNU GCC具链;调试功能涉及到ARM体系结构、ARM指令分析和软件调试技术,这是最复杂,最关键的部分。在具体实现中要掌握以下几个关键技术:

23、(1)边界扫描(JTAG)技术:根据IEEE1149.1标准,通过ARM7TDMI核的TAP控制器实现TAP指令寄存器和测试芯片数据寄存器的扫描。 (2)JTAG调试指令的实现。具体有获取CPU芯片的标识指令、选择扫描链指令和内部测试指令。 (3)对ARM7TDMI EmbeddedICE-RT扫描链的控制。实现ICE寄存器的读写、断点和观察点的设置、调试状态的进入和监控模式下的通讯等主要调试功能。 (4)通过对ARM7TDMI扫描链1的控制、ARM7TDMI流水线结构、指令系统和指令执行周期的分析,实现ARM CPU寄存器的读写、内存的读写、内核状态的保存和恢复、以及调试状态的退出。4 硬件

24、具体实现JTAG仿真器根据2.3.2节的设计方案,图4.1就是自制JTAG仿真器的原理图:图4.1 JTAG仿真器原理图图中用一片74HC244对S3C44B0的JTAG接口中的TCK、TMS、TDI、TRST 4个信号做了5V到3V的电平转换,然后分别接到了PC机并口的数据端口bit0(PIN2)、bit1(PIN3)、bit6(PIN8)、bit2(PIN4)。而TDO则接到了并口状态端口的SELECT引脚bit4(PIN13),注意这个引脚电平没有倒向。5 软件具体实现5.1 软件开发环境软件是在Microsoft Visual C+ 6.0 SP5下编译、调试完成的,运行平台是Wind

25、ows Server 2003。其中使用了微软公司的MFC库、MSXML组件(用于处理工程文件);Yariv Kaplan的WinIo库(用于并口I/O);Codejock Software的Xtreme Toolkit v2.00MFC扩展界面库(用于GUI);以及GNU GCC系列开发工具链(用于编译工程)。5.2 编辑模块的研制5.2.1 界面介绍整个IDE的编辑界面主要包括有工程管理窗口、文件编辑窗口、build/debug输出窗口、ARM寄存器查看窗口和ARM开发板内存查看窗口。而主要的两个菜单“工程”和“调试”,通过它们可以进行工程管理和编译以及调试。如图5.1: 工程菜单 调试菜

26、单图5.1 ARM IDE 编辑界面5.2.2 工程的组织与实现编辑模块主要实现为GUI部分的各个控件和一个用于工程管理的类CPrjManager。工程管理器是一个比较重要的部分,由于工程中包含着源文件以及编译和调试所用到的各种信息,而这些信息必须方便地构建、添加、提取和保存,所以用于保存工程信息的工程文件的组织和实现就是CPrjManager实现的关键。在经过仔细考虑后,我们决定采用XML对工程文件进行描述。用XML有很多好处:(1)XML的特性使得用它描述工程信息十分方便,而且对XML工程文件的扩充和转换不会对原有系统产生影响;(2)XML所获得的支持足够多,可轻易获得强大的解析器;(3)

27、XML的可扩展性非常强,这点对于以后的系统升级非常重要。本系统具体的XML工程文件描述如下: - led - F:projectsArmIdeledMain.c F:projectsArmIdeled44binit.s F:projectsArmIdeleduchar.h F:projectsArmIdeledOPTION.h F:projectsArmIdeledMEMCFG.h - 0x0c000000 - F:projectstoolsxgcc-arm-elf 文件中描述了工程名ProjectName、工程文件ProjectFiles、GNU工具链目录的路径等信息。由于采用了XML格式,

28、所以可以轻松的对其各个部分进行读/写和转换。在具体工程管理器的实现中时,用DOM将XML格式的工程文件在内存中解析成树以供整个开发过程的各个模块使用。5.3 编译模块的研制5.3.1 编译环境的构建5.3.1.1 Cygwin和GNU交叉编译工具Cygwin是运行在Windows平台上的一个UNIX/Linux模拟环境。它由两部分组成:(1)动态链接库Cygwin1.dll。它是Windows环境下的UNIX/Linux模拟层,提供标准的UNIX/Linux API函数。(2)一组UNIX/Linux工具集。使得用户可以在Windows环境下使用UNIX/Linux环境所提供的各种工具。Cyg

29、win提供的一组功能强大的工具可以帮助开发人员将应用程序从UNIX/Linux移植到Windows平台上,它提供了标准自由软件GNU GCC编译器和GDB调试工具。除此之外,它还为Windows提供一个包括API和命令SHELL在内的标准UNIX/Linux开发环境。通过使用Cygwin,开发人员可以对不同的系统环境进行一致而有效的管理。Cygwin可以从其网站上下载并安装最新版本(网络安装)。GNU编译工具是开放源代码的,它包括三个部分:GNU编译器GCC、GNU调试工具GDB和包括GNU汇编器和链接器在内的GNU二进制工具(GNU Binary Utility)。这些交叉编译工具源码可以从

30、GNU网站上下载:http:/gcc.gnu.org/。(1)GCC。GCC核心编译器和C+编译器。(2)Newlib。为C+运行库的编译提供支持。(3)GNU二进制工具binutils。5.3.1.2 Cygwin下ARM体系结构的GNU交叉编译工具的编译GNU提供了交叉编译工具的源代码,必须对它们进行编译来生成所需要的编译工具,这里用的是:gcc-core-3.2.1.tar.bz2gcc-g+-3.2.1.tar.bz2newlib-1.11.0.tar.gzbinutils-2.13.2.1-tar.bz2如果Internet上有已编译好的二进制文件,可以直接使用。在Cygwin环境下

31、的编译步骤:(1)首先解压所有文件到/src,产生下面的源代码目录:/src/binutils-2.13.2.1/src/gcc-3.2.1/src/newlib-1.11.0将newlib-1.11.0的内容移至gcc-3.2.1目录下:$mv newlib-1.11.0/newlib gcc-3.2.1$mv newlib-1.11.0/libgloss gcc-3.2.1(2)编译GNU Binary Utilities首先进行配置:$configure -target=arm-elf -prefix=/gnutools -v 2 &1 | tee configure.out如果配置过程

32、出现错误,可以查看configure.out文件中的详细信息。配置成功后,接着进行编译:make -w all 2 &1 | tee make.out详细编译信息存放在make.out文件内,如果编译出现错误,可以查看该文件。编译产生的二进制应用程序位于/gnutools/bin目录下。(3)编译GCC在编译GCC之前,应该将前面生成的GNU Binary Utilities工具路径包含在环境变量PATH内:$PATH=/gnutools/bin:$PATH;export PATH然后再对GCC进行配置,如下:$configure -target=arm-elf -prefix=/gnutoo

33、ls -enable-languages=c,c+ -with-gnu-as -with-gnu-ld -with-newlib -with-gxx-include-dir=/gnutools/arm-elf/include -v 2 &1 | tee configure.out配置成功后,继续编译:$make -w all 2 &1 | tee make.out至此,基于ARM体系结构的开发工具全部编译完毕,所有的这些工具存放的目录是/gnutools/bin。本课题将不运行Cygwin而直接使用它们进行工程的编译,所以要将cygwin1.dll复制到/gnutools/bin下。如此就得到

34、了一个Windows平台上使用的用于ARM体系结构的GNU工具链,工具链目录为gnutools。5.3.2 GNU 工具链使用arm-elf-as,ARM汇编代码编译器。-gdwarf2命令表示生成dwarf格式的调试信息文件。本课题具体用例:arm-elf-as -gdwarf2 44BINIT.S -o.debug44BINIT.oarm-elf-gcc,ARM C语言代码编译器。-gdwarf命令同上;-c命令表示只生成目标代码,不进行链接。本课题具体用例:arm-elf-gcc -gdwarf -c Main.c -o.debugMain.oarm-elf-ld,ARM 目标代码链接器

35、。-T命令一般指定一个链接脚本文件;-L命令指定要链接的库的路径。本课题具体用例:arm-elf-ld -Tldscript -Lc:gnutoolsarm-elflib -Lc:gnutoolslibgcc-libarm-elf3.0.2 -o.debugLED.elf .debug44BINIT.o .debugMain.o -lc -lgcc5.3.3 编译模块的实现编译模块的实现主要通过一个build文件生成模块用工程配置文件来生成GNU工具链的调用序列,即build文件。再使用这个build文件通过操作系统间接调用GNU工具链来完成编译操作。如图5.2所示:图5.2 编译模块内部过程

36、5.4 ARM7TDMI JTAG调试模块的研制5.4.1 IEEE 1149.1JTAG是JOINT TEST ACTION GROUP的简称。IEEE 1149.1标准就是由JTAG这个组织最初提出的,最终由IEEE批准并且标准化的。由此,IEEE 1149.1标准俗称JTAG调试标准。5.4.1.1 边界扫描在JTAG调试当中,边界扫描(Boundary-Scan)是一个很重要的概念。边界扫描技术的基本思想是在靠近芯片的输入输出管脚上增加一个移位寄存器单元。因为这些移位寄存器单元都分布在芯片的边界上(周围),所以被称为边界扫描寄存器(Boundary-Scan Register Cell

37、)。当芯片处于调试状态的时候,这些边界扫描寄存器可以将芯片和外围的输入输出隔离开来。通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。对于芯片的输入管脚,可以通过与之相连的边界扫描寄存器单元把信号(数据)加载倒该管脚中去;对于芯片的输出管脚,也可以通过与之相连的边界扫描寄存器“捕获”(CAPTURE)该管脚上的输出信号。在正常的运行状态下,这些边界扫描寄存器对芯片来说是透明的,所以正常的运行不会受到任何影响。这样,边界扫描寄存器提供了一个便捷的方式用以观测和控制所需要调试的芯片。另外,芯片输入输出管脚上的边界扫描(移位)寄存器单元可以相互连接起来,在芯片的周围形成一个边界扫描

38、链(Boundary-Scan Chain)。一般的芯片都会提供几条独立的边界扫描链,用来实现完整的测试功能。边界扫描链可以串行的输入和输出,通过相应的时钟信号和控制信号,就可以方便的观察和控制处在调试状态下的芯片。 5.4.1.2 TAP利用边界扫描链可以实现对芯片的输入输出进行观察和控制,而对边界扫描链的控制主要是通过TAP(Test Access Port)Controller来完成的。在IEEE 1149.1标准里面,寄存器被分为两大类:数据寄存器(DRData Register)和指令寄存器(IRInstruction Register)。边界扫描链属于数据寄存器中很重要的一种。边界

39、扫描链用来实现对芯片的输入输出的观察和控制。而指令寄存器用来实现对数据寄存器的控制。 TAP是一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。对整个TAP的控制是通过TAP Controller来完成的。TAP总共包括5个信号接口TCK、TMS、TDI、TDO和TRST :其中4个是输入信号接口和另外1个是输出信号接口。一般,我们见到的开发板上都有一个JTAG接口,该JTAG接口的主要信号接口就是这5个。 Test Clock Input (TCK) TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。TC

40、K在IEEE 1149.1标准里是强制要求的。 Test Mode Selection Input (TMS) TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。TMS信号在TCK的上升沿有效。TMS在IEEE 1149.1标准里是强制要求的。 Test Data Input (TDI) TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。TDI在IEEE 1149.1标准里是强制要求的。 Test Data Output (TDO) TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过

41、TDO接口一位一位串行输出的(由TCK驱动)。TDO在IEEE 1149.1标准里是强制要求的。 Test Reset Input (TRST) TRST可以用来对TAP Controller进行复位(初始化)。不过这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。因为通过TMS也可以对TAP Controller进行复位(初始化)。 事实上,通过TAP接口,对数据寄存器(DR)进行访问的一般过程是: 通过指令寄存器(IR),选定一个需要访问的数据寄存器; 把选定的数据寄存器连接到TDI和TDO之间; 由TCK驱动,通过TDI,把需要的数据输入到选定的数据寄存器当中去;同时

42、把选定的数据寄存器中的数据通过TDO读出来。 TAP的使用流程由TAP的状态机来描述。如图5.3所示,TAP状态机总共有16个状态。在图中,每个六边形表示一个状态,六边形中标有该状态的名称和标识代码。图中的箭头表示了TAP Controller内部所有可能的状态转换流程。状态机由TCK来驱动,状态的转换由TMS控制。图5.3 TAP Controller State Transitions 5.4.1.3 指令寄存器和数据寄存器扫描的一般过程指令寄存器扫描:系统上电,TAP Controller进入Test-Logic Reset状态,然后依次进入:Run-Test/Idle - Select

43、-DR-Scan - Select-IR-Scan - Capture-IR - Shift-IR - Exit1-IR - Update-IR,最后回到Run-Test/Idle状态。在Capture-IR状态中,一个特定的逻辑序列被加载到指令寄存器当中;然后进入到Shift-IR状态。在Shift-IR状态下,通过TCK的驱动,可以将一条特定的指令送到指令寄存器当中去。每条指令都将确定一条相关的数据寄存器。然后从Shift-IR - Exit1-IR - Update-IR。在Update-IR状态,刚才输入到指令寄存器中的指令将用来更新指令寄存器。最后,进入到Run-Test/Idle状

44、态,指令生效,完成对指令寄存器的访问。 数据寄存器扫描:当前可以访问的数据寄存器由指令寄存器中的当前指令决定。要访问由刚才的指令选定的数据寄存器,需要以Run-Test/Idle为起点,依次进入Select-DR-Scan - Capture-DR - Shift-DR - Exit1-DR - Update-DR,最后回到Run-Test/Idle状态。在这个过程当中,被当前指令选定的数据寄存器会被连接在TDI和TDO之间。通过TDI和TDO,就可以将新的数据加载到数据寄存器当中去,同时,也可以捕获数据寄存器中的数据。具体过程如下。:在Capture-DR状态中,由TCK的驱动,芯片管脚上的

45、输出信号会被“捕获”到相应的边界扫描寄存器单元中去。这样,当前的数据寄存器当中就记录了芯片相应管脚上的输出信号。接下来从Capture-DR进入到Shift-DR状态中去。在Shift-DR状态中,由TCK驱动,在每一个时钟周期内,一位新的数据可以通过TDI串行输入到数据寄存器当中去;同时,数据寄存器可以通过TDO串行输出一位先前捕获的数据。在经过与数据寄存器长度相同的时钟周期后,就可以完成新信号的输入和捕获数据的输出。接下来通过Exit1-DR状态进入到Update-DR状态。在Update-DR状态中,数据寄存器中的新数据被加载到与数据寄存器的每个寄存器单元相连的芯片管脚上去。最后,回到Run-Test/Idle状态,完成对数据寄存器的访问。5.4.1.4 实

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922