基于USB的ARM仿真器的研究与设计

发布者:yunhao最新更新时间:2010-07-11 来源: 微型机与应用关键字:ARM仿真器  调试系统  USB接口  JTAG 手机看文章 扫描二维码
随时随地手机看文章

    基于JTAG仿真器的调试是目前ARM开发中采用最多的一种方式。大多数ARM设计采用了片上JTAG接口,并将其作为测试、调试方法的重要组成。JTAG仿真器通过ARM芯片的JTAG边界扫描口与ARM CPU核通信,实现了完全非插入式调试,不使用片上资源,不需要目标存储器,不占用目标系统的任何端口。由于JTAG调试的目标程序是在目标板上执行,使得仿真更加接近于目标硬件[1]。

    目前针对嵌入式系统开发的调试工具品种繁多,如ARM公司的AXD debugger软件与Mutil-ICE仿真器等。但是大部分嵌入式调试工具价格过高,因此设计实现一种速度快、性能稳定、价格低廉、易于实现的ARM调试工具是十分必要的。

1 ARM JTAG调试原理

    ARM典型的调试系统结构如图1所示。调试系统包括调试主机、仿真器和调试目标。

    调试主机是一台运行调试软件(例如ADS)的计算机。调试主机可以发出高层的调试命令,例如设置断点、访问内存等[2]。

    仿真器用来将调试主机发出的高层调试命令转换为底层的ARM JTAG调试命令。因为目标机无法识别调试主机发送来的高级命令,因此就需要仿真器将调试主机发出的高层调试命令转换为底层的ARM JTAG调试命令[3]。在整个调试系统中起到重要的作用,其性能也决定了整个调试系统性能。

2 方案设计

    本文提出了一种采用PHILIPS公司的ARM7芯片LPC2148设计,具有USB2.0通信方式、高速稳定的ARM仿真器实现方案,如图2所示。


    守护进程接收从IDE集成开发环境发送来的调试命令,将其通过USB总线转发到ARM仿真器,ARM仿真器再将调试命令转换成JTAG格式的信号并发送到I/O口,从而控制调试目标执行特定的操作,达到调试的目的。同理,从调试目标返回的数据,先经过ARM仿真器的译码,再经过守护进程返回到IDE开发环境,从而形成一个完整的调试系统。

3 硬件电路设计

    本设计的最大特点是采用了LPC2148作为主控芯片。该芯片内部集成了ARM7TDMI-S微控制器和完全兼容USB2.0的设备控制器,支持32个物理(16个逻辑)端点;支持控制、批量、中断和同步端点;所有端点都有一个双向的DMA通道。因为芯片内部集成了USB控制器,大大降低了电路板的设计难度和开发成本。其硬件电路框图如图3所示。

    (1)本机JTAG调试电路

    为了便于调试和烧写程序,将芯片LPC2148的JTAG接口接到一个20引脚的标准JTAG插口。本设计中使用引脚P0.8、P0.9、P0.10、P0.12、P0.14作为外部JTAG接口,尽量不用有其他接口功能的引脚,如P0.11、P0.14接口与I2C接口SCL1、SDA1功能复用,以便于将来的硬件升级。为了增强带负载能力,使用一片74HC244芯片,同时为了尽量兼容大部分ARM开发板上的不同JTAG插口,本设计提供了一个20引脚的JTAG插口和一个14引脚的JTAG插口。

    (2)USB电路(包括供电电路)

    USB接口电路如图4所示。为了使LPC2148的软件可以更灵活地控制USB设备与主机之间的连接,本接口电路使用P0.31(只能使用该引脚)来实现SoftConnect特性。当P0.31输出低电平时,D+线通过电阻上拉到VDD3.3,通知USB主机:USB设备与其建立连接;当P0.31输出高电平时,D+线断开与VDD3.3的连接,通知USB主机:USB设备已经断开与USB主机的连接。

    Q1选用的是P沟道MOS管,而不选用普通的PNP三极管,因为MOS管是电压驱动型,驱动电流几乎为0;而普通的PNP三极管是电流驱动,需要一定的驱动电流。导通时,P0.31_P17有可能被拉低,LPC2148要求该引脚在复位引脚为低电平期间不能被拉低,否则JTAG口将被禁止,因此必须选用P沟道的MOS管。LPC2148的P0.23引脚为USB设备控制器,用于检测USB总线是否插入检测引脚[4]。

4 仿真器固件程序设计

    仿真器LPC2148芯片中的固件程序实现的功能包括:通过USB与上位机软件进行通信,并将上位机发送过来的、经过封装的USB数据流转换为JTAG信号,并最终送到相应的引脚或者将相应引脚的数据经过封装后,通过USB传送到PC机中。图5为应用程序的流程图。

    主函数首先将作为JTAG接口使用的5个引脚设置成相应属性,并完成USB设备初始化,配置中断向量、开中断,然后进入无限循环函数。

    无限循环函数首先处理USB事件,如USB控制传输、USB总线复位等。然后判断标志位是否收到数据,如果未收到则继续执行无限循环;如果收到了数据,则将数据从端点缓冲区读出,再交给数据处理函数处理。数据处理函数按照上位机程序对数据封装方式进行解析,根据解析的命令(读取TDI、写TMS或TDO等),通过分支处理跳到相应的处理函数。在这个过程中如果上位机要读取调试目标数据,可将相应的值按同样格式进行封装,然后通过USB发送到上位机。数据封装格式如图6所示。

    C语言定义的命令码如下:
    #define UNKOWN_COMMAND     0x00    //未知指令
    #define PORT_DIRECTION     0x01       //设置端口方向为输入或输出
    #define PORT_SET     0x02              //将JTAG端口的引脚都设为高电平
    #define PORT_GET         0x03         //读JTAG端口的引脚数据
    #define PORT_SETBIT  0x04          //设置JTAG端口的某一位为1,由DATA[0]中数据决定设置的具体位数
    #define PORT_GETBIT  0x05        //读取JTAG端口的某一位为1,由DATA[0]中数据决定读取的具体位数
    #define WRITE_TDI     0x06            //写TDI信号命令
    #define READ_TDO     0x07               //读TDO信号命令
    #define WRITE_AND_READ     0x08    //读写指令,对TDI写一位,对TDO一位
    #define WRITE_TMS         0x09          //写TMS信号命令
    #define WRITE_TMS_CHAIN 0x0A      //写TMS扫描链命令

    本仿真器经实际测试下载速度稳定在30 KB/s左右,具有单步、全速、设置断点(两个硬断点和无数软断点)等功能。本文提出了一种具有硬件电路设计简单、价格低廉、调试速度快的ARM仿真器设计方案,是取代传统并口方式ARM仿真器的一种确实可行的方案。

关键字:ARM仿真器  调试系统  USB接口  JTAG 引用地址:基于USB的ARM仿真器的研究与设计

上一篇:OpenAT平台的GSM Modem通信协议报文设计
下一篇:基于SOPC的SPWM脉冲发生器的实现

推荐阅读最新更新时间:2024-05-02 21:05

STM32 关闭JTAG 使用相应GPIO口 简单记录
STM32 的PA13-PA14-PA15-PB3-PB4-PB5主要是用来JTAG调试用的,于是在默认下是启动后为JTAG模式,但是对于不需要JTAG而需要充分利用GPIO口时,就需要将JTAG关闭,设置为GPIO模式。 GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //打开PA时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //打开PB时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFI
[单片机]
PIC单片机的USB接口的应用 一个简单的USB CDC 测试程序
单片机的USB接口,通常用法, 1)HID 是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。(参考百度 https://baike.baidu.com/item/USB-HID ) 2)CDC 虚拟串口,可与PC机直接联机通讯,如同RS232。 3)USB MSC (Mass Storageclass) MSC是一种计算机和 移动设备 之间的传输协议,它允许一个通用串行总线(USB)设备来访问主机的计算设备,使两者之间进行文件传输。设备包括: 移动硬盘 ,移动光驱,U盘,S
[单片机]
PIC单片机的<font color='red'>USB接口</font>的应用 一个简单的USB CDC 测试程序
基于USB接口的数模转换系统设计
  0 引言   在控制系统中经常需要产生和控制一些模拟信号,而常用的微处理器外部总线接口为数字信号,无法直接产生需要的模拟信号,这就用到了D/A转换器。可以通过USB接口来控制D/A转换器,使其输出要求的模拟量电压或模拟量电流。   USB接口作为微处理器常用的外部总线接口,目前已经得到了广泛的应用,采用USB接口减少了开发的时间、风险以及费用,从而用最快捷的方法实现最经济的解决方案。   本文以USB接口芯片PDIUSBD12和电压输出型D/A转换芯片AD558为例,详细阐述了基于USB接口的DAC系统电路及程序设计方法。   1 USB接口芯片PDIUSBD12简介   本系统选用的USB接口芯片是Phi
[嵌入式]
ATmega88 片上调试系统
特性 * 完全的程序流控制 * 仿真芯片上所有的模拟和数字功能,除了RESET引脚 * 实时操作 * 支持符号调试(C 与汇编级,或其它 HLL) * 没有限制的程序断点数( 使用软件断点) * 非插入式操作 * 与实际器件相同的电气特性 * 自动配置系统 * 高速操作 * 编程非易失性存储器 概述 debugWIRE片上调试系统使用单线双向接口来控制程序流,在CPU中执行AVR指令,对 不同的非易失性存储器进行编程。 物理接口 当ATmega88的debugWIRE使能熔丝位DWEN被编程且锁定位未编程时,目标器件中的debugWIRE 系统被激活。RESET 端口引脚配置为上拉使能的线与 ( 开漏 ) 双向 I/O,成
[单片机]
ATmega88 片上<font color='red'>调试</font><font color='red'>系统</font>
带全速USB接口的PICl8F4550应用设计
  引 言   随着USB(Universal Scrial Bus)技术的发展,特别是高速(480 Mbps)USB2.0协议的出现,几乎所有的PC外设都可以移植到USB上,所以USB的PC外设的发展空间是巨大的,甚至在不久的将来,USB将完全取代异步串口和打印机并口,PC机厂商将不会再生产机箱上带异步串口和打印机并口的PC机了,机箱上也不会再有那么多的连线了。   USB是一种快速的、双向同步传输的、廉价并可以进行热插拔的串行接口。利用USB总线技术,开发适用于科学研究和工业生产的各种仪器仪表设备,借以取代传统计算机测控系统中采用串行RS232或并行接几的仪器仪表设备,使计算机测控系统更加高效实时,方便灵活。   利
[单片机]
带全速<font color='red'>USB接口</font>的PICl8F4550应用设计
SPCE061A在带USB接口功能的录音机中的应用
1 引言 通用串行总线(USB)是一种新兴的计算机外围串行通信接口标准,它克服传统计算机串/并口的缺陷,具有热插拔,即插即用,数据传输可靠,扩展方便,低成本等优点,已成为当前计算机必备的接口之一,同时也被广泛地应用于嵌入式系统设计中。 为了使USB开发者、爱好者轻松学习USB协议,开发USB设备,凌阳科技教育推广中心设计了USB接口模组。USB接口模组可以与任何满足资源条件的MCU连接,设计者可以使用它来完成自己的USB设备。本文正是介绍应用凌阳教育推广中心的USB接口模组结合SPCE061A单片机的语音特色完成带USB接口的录音系统。 2 芯片特性简介 2.1 SPCE061A特性简介 SPCE0
[单片机]
SPCE061A在带<font color='red'>USB接口</font>功能的录音机中的应用
基于FPGA的USB接口数据采集系统设计
摘 要: 介绍了一种高速实时数据采集系统的设计。该系统以FPGA作为逻辑控制的核心,以USB2.0作为与上位机数据传输的接口,能同时支持单端16路和差分8路模拟信号输入,最大采样率为200 kHz,12位的转换精度。描述了系统的主要组成和FPGA模块化设计的实现方法,并给出了其核心模块的时序仿真波形图。 关键词: FPGA; USB2.0; 数据采集; 转换精度 传统的数据采集系统中通常采用单片机或DSP作为控制模块,控制A/D转换、存储和其他外围电路的工作,利用PCI、ISA等接口与上位机进行通信。随着数据采集对速度、实时性、简易性的要求越来越高,传统数据采集系统的弊端也日趋明显。近年来随着FPGA技术和USB技术的
[嵌入式]
基于FPGA的<font color='red'>USB接口</font>数据采集<font color='red'>系统</font>设计
心电图机USB接口的热敏打印控制系统
  心电图机是描记心脏组织活动所产生的生物电信号以及现代医学科学研究和l临床诊断中使用非常广泛的一种精密电子医疗仪器。由于它诊断可靠,操作简便,对病人无损伤,故在临床上得到广泛的应用,而作为心电图检测结果直观的输出方式和手段,心电图机微型打印机是必不可少的。   目前,医院中使用的多为传统机械式心电打印机,存在着打印效率低、噪声污染严重、心电波形失真等缺点。近年来uSB技术有了飞速的发展,很多台式打印机已经应用了该技术。但是采用USB接口技术的心电图机热敏打印机却很少。本系统就采用了USB接口与心电图机相连,同时也可以与PC心电图机进行连接打印。    1 心电图热敏打印机的硬件设计   1.1 系统的总体结构   硬
[嵌入式]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved