基于多核芯片S698PM的JTAG应用
时间:04-20
来源:互联网
点击:
张志国,珠海欧比特控制工程股份有限公司, 珠海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.
摘要:
经过几十年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命令/地址寄存器
位 | 位名称 | 位描述 |
[34] | W/R | 0: 读操作; 1:写操作 |
[33 :32] | SIZE | 00:字节;01:半字;10:字; 11:保留 |
[31 : 0] | AHB ADDR | AHB访问地址 |
2.2. JTAG数据寄存器
位 | 位名称 | 位描述 |
[32] | SEQ | 当移入数据时,1:表示连续传输,地址自动加1; |
0:表示非连续传输; | ||
当移出数据时,1:表示访问完成; | ||
0:表示访问未完成; | ||
[31 : 0] | AHB data | AHB数据 |
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.
- 高带宽嵌入式应用中SoC微控制器的新型总线设计 (02-02)
- SoC前段(ARM)嵌入式系统开发实作训练(上) (02-28)
- SoC前段(ARM)嵌入式系统开发实作训练(下)(02-28)
- 采用灵活的汽车FPGA 提高片上系统级集成和降低物料成本(04-28)
- 开放源码硬件简史(05-21)
- 可配置处理器技术优势详解(05-15)