基于SOPC的M8051嵌入式调试器设计

引言
在嵌入式系统开发过程中,上位机通过调试器完成对目标机软件的开发、下载、调试。早期的调试器与上位机之间通过串口或并口通信,存在速度慢、通用性差等缺陷。相比之下,usb接口优势明显,具备速度快、易插拔、支持多个调试器同时工作等优势。但目前的usb接口调试器一般采用usb芯片和可编程器件结合的实现方式,成本和复杂度较高。
m8051是mentor公司的嵌入式8051处理器,凭借良好的性能和功耗控制,占据了大量的 soc(system on a chip)市场。该处理器集成了oci(on-chip instrumentation,片上调试单元)来完成程序的调试。fs2公司设计的system navigator是一款针对m8051的调试器,但该产品价格过于昂贵。本文通过研究m8051的调试结构,设计一款基于sopc(system on a programmable chip)的m8051调试器,实现对m8051核心的高效、低成本的开发。
1 m8051片上调试技术的研究
1.1 典型的ocd调试系统
目前,嵌入式调试领域的趋势是在mcu上集成一个专门用于调试的功能模块,并且提供一个专用接口开放给用户。用户通过该调试控制模块来实现停止/继续cpu 的运行,并访问目标机上的各种资源,这就是ocd(on-chip debug,片上调试)技术。同时,jtag作为应用最广泛的系统级测试技术,控制逻辑简单、实现方便,常作为片上调试模块的测试接口。
一个完整的ocd调试系统通常包括调试主机、调试协议转换器(或调试器)、目标机三个部分。调试主机运行调试软件,并通过调试器与目标机相连;调试器将主机发出的调试命令和数据转换为基于目标机ocd模块和jtag接口的调试数据;目标机的ocd模块接收到调试器发来的jta g数据,完成对cpu的逻辑控制。典型的ocd调试系统如图1所示。
1.2 m8051的片上调试结构
m8051核心的调试功能由其片上的oci模块完成。oci模块通过jtag口与外部通信,其实现完全符合ieee-1149.1。具体来说,tap控制器接收一系列的jtag边界扫描链读写时序,完成对扫描链上的ir和dr的读写。oci模块内部的tracc模块、trigger模块和dcbug模块根据ir和dr的内容,产生相应的控制信号给处理器,达到控制m8051处理器的运行或者读取处理器信息的目的。以上就是oci模块的基本调试原理。m805 1oci模块的体系结构如图2所示。
2 基于sopc的m8051调试器的设计
2.1 调试系统的总体设计
在研究了ocd测试技术和m8051片上调试结构oci的基础上,本文提出了m8051调试系统的总体设计方案。该方案通过usb接口与上位机通信,调试器主体由一个fpga芯片实现。其总体结构图如图3所示。
上位机运行调试软件,将编译器的各种调试操作,通过调试接口函数转化为各种调试协议数据;再将这些调试协议数据通过底层通信模块发送给 m8051调试器。本设计的底层通信接口是usb接口。编译器选择应用最为广泛的且具备开放调试接口函数agdi的keil c51编译器。
m8051 调试器本身主要由usb控制器模块、8051处理器和jtag控制器模块组成。ush控制器在8051处理器的控制下接收来自上位机的调试协议数据;jtag控制器模块负责将这些调试协议数据转化为基于oci结构的底层调试命令集,并以jtag边界扫描链读写时序发送出来。
m8051目标机通过oci模块的jtag接口,接收m8051调试器发送的底层调试命令,完成对m8051目标机的调试,并将返回值通过jtag接口送回m8051调试器。
2.2 调试器的硬件设计
目前,市场上流行的基于usb接口的调试器,硬件一般以一个usb2.0控制芯片为核心,完成数据通信和调试协议数据解析,同时配置一个可编程器件实现 jtag边界扫描链读写时序。本文出于成本和系统复杂度的考虑,并结合fpga的优势,创新地使用单独的fpga芯片实现调试器的全部功能,简化电路板和系统设计,降低系统成本。硬件结构如图4所示。
调试器的主要硬件包括:xilinx公司高性价比的spartan-6 fpga,flash配置芯片xcf04s,缓冲器芯片74lcx245作为jtag接口的电气隔离及电源转换芯片。usb控制器、8051处理器、片内 sram和jtag控制器等功能模块均以ip核的彤式在fpga上实现。usb控制器采用mentor公司的musb全速(12 mhps)控制器ip核,8051处理器采用mcntor公司的m8051ew ip核。系统上电后,配置芯片自动完成对fpga的配置,保证系统的非易失性。
jtag控制器模块是本系统硬件部分的核心模块。本文中jtag控制器是基于m8051的oci模块实现的,主要任务接收调试固件发送过来的调试协议数据,转化为oci模块可识别的底层调试命令集,具体说就是一系列对于 oci模块的ir和dr的读写操作;再使用jtag边界扫描链读写时序将这些底层命令发送给目标机。所以jtag控制器模块分为两个部分:调试命令解析模块和jtag边界扫描时序生成模块。jtag控制器的结构如图5所示。
以系统运行控制操作中的halt8051操作为例,由oci的结构可知,该操作由向oci模块的ir中写入0x69来实现。在上位机中该操作的调试协议数据为0x0069。
调试器固件在接收到来自上位机的调试协议数据后,将0x00和0x69分别写入调试命令解析模块的命令寄存器和数据寄存器。调试命令解析模块将该调试协议数据解析为向oci的ir中写入0x69,即jtag_cmd=ir,jtag_din=0x69;再由jtag边界扫描时序生成模块产牛向ir写入 0x69的jtag时序。
与传统的软件方法相比,由fpga硬件实现调试命令解析和jtag边界扫描时序牛成,不但减轻了调试器上的8051处理器的负担,而且有效提高了jtag调试速度。
2.3 调试系统的软件设计
本文中的软件设计分为两部分:pc端调试软件和调试器固件。两部分通过usb接口进行交互。具体的软件构架如图6所示。
2.3.1 pc端软件设计
pc端调试软件由keil c51编译器、agdi调试接口函数和usb驱动程序三部分组成。通用的agdi调试接口函数是独立于处理器体系结构的函数集,它将上层调试操作分别转化为独立于处理器的调试命令。一般来说,agdi捌试接口函数实现的调试操作有以下儿类:系统运行控制、寄存器读写、存储器读写操作以及断点操作。
agdi 调试接口函数设计是pc端软件设计的重点。主要工作是在通用agdi接口函数的基础上,实现针对m8051处理器的调试接口,将来自编译器的调试操作转换为针对m8051的调试协议数据。本文中调试协议数据采用调试命令加上调试数据的形式。以系统运行控制操作中的halt80 51操作为例:agdi调试接口函数将halt8051操作转化为基于m8051处理器的调试协议数据0x0069,即调试命令0x00和调试数据 0x69。最后由usb驱动层将调试协议数据0x0069打包发送给调试器。
2.3.2 调试器固件设计
调试器固件的功能分成两个方面:一方面是下行数据发送,在完成usb设备的枚举过程后,接收usb接口的调试协议数据,解析得到的调试命令和调试数据,再将调试命令和调试数据分别写入 jtag控制器模块的命令寄存器和数据寄存器;另一方面监控目标机的返回信息,并将返回信息通过usb接口发送给调试主机。
本文中的软件部分主要负责调试协议数据的生成和传送,具体的调试命令解析和jtag边界扫描时序的产生,全部由硬件实现,保证了调试效率的最大化。
3 m8051调试系统的测试
3.1 测试环境
测试环境包括软件环境和硬件环境。软件环境包括kell c51编译器和xilinx ise design suite;硬件环境包括pc机、本文开发的调试器电路板和基于m8051处理器的目标板。测试环境如图7所示。
3.2 调试系统的功能测试
功能测试的项目主要包括:涮试开始/停止、单步运行、断点、读写寄存器、渎写存储器等。经测试,以上调试操作稳定可靠。以断点操作为例,断点操作是软件调试过程中最重要的手段之一,本文断点功能经测试完全可靠。测试结果如图8所示。cpu从pc指针为零处开始执行,到达断点地址0x0006处停止执行,并将处理器的最新状态更新到用户界面上。
3.3 调试器的主要参数
本调试器采用usb2.0全速(12 mbps)接口,调试器内部m8051处理器主频为48 mhz,jtag协议数据收发速度达到8 mbps。采用spartan-6 xc6slx16 fpga芯片实现,fpga资源使用情况如下:可配置逻辑单元slice1439个,占该资源总数的63%;嵌入式存储模块blockram 144 kb,占该资源总数的14%;i/o接口数24个,占该资源总数的13%;时钟管理模块dcm 1个,占该资源总数的25%。
结语
本文给出的基于usb接口、以单一fpga芯片实现的m8051嵌入式渊试器系统,不仅突破了传统调试器的速度瓶颈,而且大大简化了系统的复杂度。经测试,本调试器系统能够高效地完成m8051处理器的软件开发,是一种易于被开发者接受的高性价比、实用的调试器方案。

塑料MEMS或成未来技术热点 主因是硅成本太高
Rigol DM3058/DM3058E台式万用表技术参数
多谐振荡器电路图大全(温控报警/555/自激振荡电路/压控TTL对称多谐振荡器)
江西康佳半导体高科技产业园暨第三代化合物半导体项目落户经开区
MediaTek携手英特尔合推5G PC方案 高通如芒在背
基于SOPC的M8051嵌入式调试器设计
动力电池出货量与日俱增 新能源汽车环保能否保持初衷?
如何使用DonkeyCar平台构建一个自主机器人
了解两级电流并联负反馈放大电路
华为推出Mate RS保时捷手机“靓号套餐版”售价16999元
箱式变压器基础施工标准和注意事项
小米员工最新爆料小米6大部分细节,手机绝对惊艳!
从不同的角度对最近的对话系统的进展进行概述以及未来研究方向
小米5s意外走火,小米note2和小米mix却无人问津
中科仪主营产品陷入价格战,毛利率极低
多光子显微镜成像技术:大视场多区域脑成像技术
高速连接器全球专利布局特点
苹果引入Micro LED屏幕成消费电子新看点
诺基亚8110评测 或改变现代人看待手机的视角
随着资本市场的介入 人工智能在医疗领域的应用呈现出“燎原之势”