基于多核芯片S698PM的JTAG应用
发布时间:2016-4-20 15:39
发布者:eechina
张志国,珠海欧比特控制工程股份有限公司, 珠海519085 摘要: 经过几十年SoC系统设计技术的快速发展, SOC芯片内部频率越来越快,编写及运行程序越来越大。在测试及调试过程中,用传统UART串口下载及调试程序,在速度、打印等方面呈现出诸多不便;而且该端口在SOC/FPGA研发领域中不通用,而JTAG接口却圆满地解决了上述两个问题。 引言 本应用手册主要讲解JTAG口的基本原理及与欧比特最新四核芯片S698PM的连接方法和注意事项;目的方便用户尽快地熟悉和掌握S698PM开发系统的JTAG调试环境。 1. JTAG简介 JTAG(Joint Test Action Group)是一种国际标准测试协议,与IEEE 1149.1标准高度兼容,主要应用于芯片功能内部测试及软件程序调试两大功能。 JTAG接口主要由4根信号线组成:TCK、TDI、TDO、TMS,不同的公司还添加几根辅助信号线,例如:NTRST、VERF、GND等信号。TCK是JTAG模块外部输入时钟;TDI是JTAG模块外部数据输入信号;TDO是JTAG模块外部输出信号;TMS是JTAG模块的模式选择信号; 1.1. JTAG传输协议 1.1.1. JTAG传输状态机 基于S698PM芯片JTAG的状态机主要分两种子状态机,分别是数据传输状态机和命令传输状态机,并且自定义SHIFT-DR 与SHIFT-IR的循环次数不同,从而写入或是读出的数值宽度不同而已。而S698PM芯片定义的数据寄存器宽度为33位,而命令寄存器宽度为35位,在下面的章节里有详细介绍寄存器上每位的功能和意义。 下图一展示JTAG模块里状态机的流转过程。 图一、JTAG模块状态机 1.1.2. JTAG时序图 JTAG主要有四个信号,TCK作为协议的时钟信号,一般默认以100ns为周期变化,而TMS/TDI则一般是在时钟下降沿给出,TDO则是TCK时钟上升沿移位出来。 图二、JTAG时序图 2. S698PM芯片内部JTAG模块 在S698PM芯片内部JTAG模块是由三个子模块组成,分别是TAP(Test Access Port)、Communication Interface、AHB主设备模块组成。该JTAG调试端口提供访问S698PM芯片内部AMBA总线的功能,并通过简单的读写协议实现AMBA总线上寄存器的读写操作。 图一 JTAG控制器框图 基于S698PM芯片的JTAG调试口带有两种寄存器(命令/地址寄存器、数据寄存器),并支持JTAG读写两种指令;AHB读操作主要是通过JTAG信号线把读写命令位、AHB传输类型、AHB传输地址等信息移位到命令/地址寄存器里,然后读操作试行,并把相应的数据保存到数据寄存器里,并通过TDO信号移位输出来;AHB写操作主要是通过JTAG信号线把读写命令位、AHB传输类型、AHB传输地址等信息移位到命令/地址寄存器里,然后把数据信息移位到数据寄存器里后,开始执行AHB总线写操作。 2.1. JTAG命令/地址寄存器
2.2. JTAG数据寄存器
3. JTAG调试 硬件主要有两部分组成:一个是S698PM – DKIT开发板,另外一个是FTDI公司的USB Hi-Speed FT4232 MINI MODEL开发板。 S698PM – DKIT开发板是芯片S698PM快速开发的系统环境,详细资料查看该开发板的配套 资料。 FT4232H MINI MODEL开发板主要完成JTAG下载器的功能。详细资料查看FTDI公司的网站。 通过JTAG端口,并按照JTAG协议发送命令或是数据就可以调试和运行S698PM的程序,并且可以查看任意地址寄存器的数值。 3.1. JTAG命令及参数 4. 结论 通过FTDI公司的JTAG下载器,能够成功下载嵌入式系统VXWORKS代码,并快速执行,从反馈结果可以看出JTAG模块功能正常,以此表明:基于S698PM芯片的JTAG控制器符合国际IEEE 1149.1标准,该JTAG调试口满足芯片的边界扫描测试及程序调试的需求;同时程序的下载速度提高了7倍以上,大大缩短了调试等待时间。 参考文献 [1]. 颜军. SPARC嵌入式系统设计与开发-S698系列处理器实用教程[M]. 北京:中国标准出版社, 2013. |
网友评论