新闻中心

EEPW首页>嵌入式系统>设计应用> 基于SOPC的M8051嵌入式调试器设计

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

作者: 时间:2012-08-08 来源:网络 收藏

2.2 调试器的硬件设计
目前,市场上流行的基于USB接口的调试器,硬件一般以一个USB2.0控制芯片为核心,完成数据通信和调试协议数据解析,同时配置一个可编程器件实现边界扫描链读写时序。本文出于成本和系统复杂度的考虑,并结合FPGA的优势,创新地使用单独的FPGA芯片实现调试器的全部功能,简化电路板和系统设计,降低系统成本。硬件结构如图4所示。

h.JPG

调试器的主要硬件包括:Xilinx公司高性价比的Spartan-6 FPGA,Flash配置芯片XCF04S,缓冲器芯片74LCX245作为接口的电气隔离及电源转换芯片。USB控制器、8051处理器、片内SRAM和控制器等功能模块均以IP核的彤式在FPGA上实现。USB控制器采用Mentor公司的MUSB全速(12 Mhps)控制器IP核,8051处理器采用Mcntor公司的EW IP核。系统上电后,配置芯片自动完成对FPGA的配置,保证系统的非易失性。
JTAG控制器模块是本系统硬件部分的核心模块。本文中JTAG控制器是基于的OCI模块实现的,主要任务接收调试固件发送过来的调试协议数据,转化为OCI模块可识别的底层调试命令集,具体说就是一系列对于OCI模块的IR和DR的读写操作;再使用JTAG边界扫描链读写时序将这些底层命令发送给目标机。所以JTAG控制器模块分为两个部分:调试命令解析模块和JTAG边界扫描时序生成模块。JTAG控制器的结构如图5所示。

a.JPG

以系统运行控制操作中的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所示。

b.JPG

2.3.1 PC端软件设计
PC端调试软件由Keil C51编译器、AGDI调试接口函数和USB驱动程序三部分组成。通用的AGDI调试接口函数是独立于处理器体系结构的函数集,它将上层调试操作分别转化为独立于处理器的调试命令。一般来说,AGDI捌试接口函数实现的调试操作有以下儿类:系统运行控制、寄存器读写、存储器读写操作以及断点操作。
AGDI调试接口函数设计是PC端软件设计的重点。主要工作是在通用AGDI接口函数的基础上,实现针对处理器的调试接口,将来自编译器的调试操作转换为针对M8051的调试协议数据。本文中调试协议数据采用调试命令加上调试数据的形式。以系统运行控制操作中的Halt80 51操作为例:AGDI调试接口函数将Halt8051操作转化为基于M8051处理器的调试协议数据0x0069,即调试命令0x00和调试数据0x69。最后由USB驱动层将调试协议数据0x0069打包发送给调试器。
2.3.2 调试器固件设计
调试器固件的功能分成两个方面:一方面是下行数据发送,在完成USB设备的枚举过程后,接收USB接口的调试协议数据,解析得到的调试命令和调试数据,再将调试命令和调试数据分别写入JTAG控制器模块的命令寄存器和数据寄存器;另一方面监控目标机的返回信息,并将返回信息通过USB接口发送给调试主机。



评论


相关推荐

技术专区

关闭