微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种通用型JTAG调试器的设计

一种通用型JTAG调试器的设计

时间:01-06 来源:互联网 点击:

System-ON-a-Programmable-Chip,即可编程片上系统。 用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。可编程片上系统(SOPC)是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。SOPC它是用可编程逻辑技术把整个系统放到一块硅片上,来用于嵌入式系统的研究和电子信息处理。 SOPC是一种特殊的嵌入式系统,它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能但它不是简单的SOC,它也是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。

SOPC设计技术涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以PCB和信号完整性分析为基础的高速电路设计技术以外,SOPC还涉及目前以引起普遍关注的软硬件协同设计技术。由于SOPC的主要逻辑设计是在可编程逻辑器件内部进行,而BGA封装已被广泛应用在微封装领域中,传统的调试设备,如:逻辑分析仪和数字示波器,已很难进行直接测试分析,因此,必将对以仿真技术为基础的软硬件协同设计技术提出更高的要求。同时,新的调试技术也已不断涌现出来,如Xilinx公司的片内逻辑分析仪Chip Scope ILA就是一种价廉物美的片内实时调试工具。

本文利用SOPC技术的特点,设计一种通用型调试器。根据待调试目标板的CPU型号,将相应的调试IPcore和其他通用IPcore一起编译生成一个嵌入式调试系统,下载到FPGA上,实现一个通用型调试器。在使用同一个硬件系统的情况下,可以选择不同的调试IPcore来调试不同的CPU,而不同的IPcore可以方便的互相替换。

1 JTAG调试原理

JTAG是英文“Joint Test Action Group(联合测试行为组织)”的词头字母的简写,该组织成立于1985 年,是由几家主要的电子制造商发起制订的PCB 和IC 测试标准。JTAG 建议于1990 年被IEEE 批准为IEEE1149.1-1990 测试访问端口和边界扫描结构标准。该标准规定了进行边界扫描所需要的硬件和软件。自从1990 年批准后,IEEE 分别于1993 年和1995 年对该标准作了补充,形成了现在使用的IEEE1149.1a-1993 和IEEE1149.1b-1994。JTAG 主要应用于:电路的边界扫描测试和可编程芯片的在线系统编程。

目前在线仿真调试器中使用最多的调试方法都是基于JTAG标准。1986年,联合测试行动组发表了最早的边界扫描测试规范(Boundary Scan Testing),经不断改进,1990年被批准为IEEE Std 1149.1a标准,简称JTAG标准。现在大多数复杂的IC芯片都带有JTAG调试接口。

JTAG调试原理的基础是边界扫描测试。它通过在芯片的每个I/0脚附加一个边界扫描单元(BoundaryScan Cell,BSC)以及一些附加的测试控制逻辑来实现。每个BSC有两个数据通道:一个是测试数据通道——测试数据输入TDI(Test Data Input)、测试数据输出TD0(Test Data 0utput);另一个是正常数据通道——正常数据输入NDI(Normal Data Input)、正常数据输出ND0(Normal Data Output)。在正常工作状态,输入和输出数据可以自由通过每个BSC,正常工作数据从NDI进,从NDO出。在测试状态,可以选择数据流动的通道:对于输入引脚,可以选择从NDI或从TDI输入数据;对于输出引脚,可以选择从BSC输出数据至NDO或至TDO。

JTAG控制器主要由3部分组成:测试端口控制器(Test Access Port,TAP)、指令寄存器和数据寄存器。其中,TAP控制器是JTAG的核心控制器,需要以下5个控制信号:TCK(边界扫描时钟)、TMS(JTAG测试模式选择)、TDI(串行边界扫描输入数据)、TDO(串行边界扫描输出数据)和TRST(JTAG测试逻辑复位)。TAP控制器的状态机如图1所示。

2 系统设计与实现

2.1 硬件设计与实现

本文采用A1tera的FPGA器件实现了图2所示的硬件结构。

上图列出了所需要的各类IPcore,其中大部分在Altera的开发包中可以找到,主要包括:

Nios II/f CPU,50 MHz,Altera提供的免费软核CPU。

Avalon总线,用于数据通信。

Flash控制器,用于控制和操作Flash芯片。Flash芯片中静态存放操作系统、1wIP协议栈及其他调试代码。本系统中使用的Flash芯片为Am29LVl60D,容量为2MB。

SDRAM控制器,用于控制和操作SDRAM芯片。SDRAM芯片用于动态执行调试程序。本系统中使用的SDRAM芯片为三星公司的K4S640432,容量为8 MB。

Ethernet控制器,用于控制和操作网卡芯片。仿真器使用这个以太

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top