51单片机的自调试与在线编程
传统的单片机系统开发中总是离不开仿真器和编程器。随着电子和计算机技术的迅猛发展,单片机技术也得到了空前的发展。部分16位单片机和32位ARM微控制器都带有JTAG接口,通过各自不同的专用硬件工具在指定的软件集成开发环境中进行在线调试和编程。某些片内集成Flash存储器、基于MCS-51增强内核的8位单片机可以通过专用接口和独有的专用硬件工具在指定的软件集成开发环境中进行在线调试和编程。如果能够在众多单片机中找到一款在通用接口下实现在线调试和编程的单片机,将对简化MCS-51内核的8位单片机系统开发和进一步普及具有极其重要的意义。
NXP公司(原Philips半导体公司)是最早获得MCS-51技术授权的公司,也是后继发展MCS-51内核8位单片机产品最多、最系统的公司。P89V51RD2单片机是其推出的新一代基于MCS-51内核的8位单片机,内部集成64 KB Flash程序存储器和1 KB RAM数据存储器,具有自调试(SoftICE)、在系统编程(ISP)和在应用编程(IAP)功能,这些功能都是在RS-232标准串口下实现。采用P89V51RD2单片机,可以通过UART标准接口在KeilμVision编程环境下用KeilMonitor-51 Driver直接连接系统硬件来调试程序。完成调试后,在FlashMagic工具软件下进行编程。
本文介绍了采用P89V51 RD2的最新技术在单片机系统开发中的应用思想和方法。采用这种方法可省去传统单片机系统开发中必需的仿真器和编程器,提高了开发过程中的程序设计效率,增强了最终系统的软件维护和升级能力。
1 在线调试和编程功能的硬件电路设计
P89V51RD2单片机SoftICE和ISP功能的电路接口较为简单,但为了兼容NXP公司其他能够在+5 V下实现ISP功能的Flash单片机的在系统编程功能,实现在线调试和在系统编程的接口电路原理图如图1所示。
在图1所示的电路中,通过标准的串口通信线将PC与其相连,当SELECT开关将P89V51RD2单片机的PSEN引脚连接到+5 V时,单片机处于正常工作状态;当SELECT开关将PSEN引脚连接到地时,单片机处于ISP状态,FlashMagic工具软件对+5 V可编程的Flash单片机进行在线编程。
2 程序调试仿真的实现
P89V51RD2单片机在激活SoftICE功能后就可以实现对程序的单步仿真调试、多步仿真调试及全速运行下的仿真调试。仿真调试主要分为3步:激活P89V51RD2的SoftICE功能、设置硬件仿真环境和调试程序。
2.1 SoftICE功能
SoftICE功能的激活需要FlashMagic软件的支持,FlashMagic软件可从NXP公司或其他相关网站下载。目前支持51单片机的FlashMagic的最高版本为V3.54,高版本主要用于支持NXP公司的ARM器件,对该公司的51器件不支持。
在含有图1所示接口电路的单片机应用系统中,首先用SELECT开关将单片机的PSEN引脚连接到+5 V,然后启动FlashMagic软件,在主界面中配置各参数为:COMPort——根据具体连接而定,通常为COM1或COM2;BaudRate——9 600,这是由P89V51RD2内部固件所确定的;Device——P89V51RD2;Interface——None(ISP)。在ISP菜单下选择“Enable SoftICE”命令项,进行SoftICE功能的激活。
2.2 设置硬件仿真环境
单片机应用系统程序的编译和仿真在。KeilμVision环境下进行,在调试程序之前,需要对工程进行Debug设置,选择软件仿真或硬件仿真。软件仿真使用计算机来模拟程序的运行,不需要建立硬件平台就可以快速得到某些运行结果;硬件仿真是最准确的仿真方法,必须建立硬件平台,通过PC机→硬件仿真器→用户目标系统进行系统调试。采用硬件仿真的方法,硬件平台即为带有图1所示接口电路的单片机应用系统,设置硬件仿真环境的具体操作步骤如下:
首先,点击所建工程:Project菜单中的Options for Target‘Targer 1’,出现工程的配置窗口,点击Debug设置,选择KeilMcmitor-51 Driver,具体参数设置如图2所示。
然后,设置仿真器参数。建议波特率设置范围300~38 400。为避免程序中的中断和Keil硬件仿真环境中的中断互相冲突,不选择“Stop ProgramExecution with SerialInterrupt”。仿真器参数的设置如图3所示。
完成P89V51RD2单片机的SoftICE功能激活和在Keil μVision环境中的硬件仿真环境设置后,可以进行程序的调试仿真。
3 在系统编程的实现
当激活SoftICE功能的单片机完成程序调试后,就可将最终的程序代码下载到NXP公司的其他具有ISP功能的Flash单片机中。这里需要注意:只有未曾激活Soft-ICE功能P89V51RX2系列单片机才支持ISP功能,因为激活SoftICE功能的单片机已取消了ISP功能。P89V51RX和P89LV51RX系列单片机的在系统编程相对比较简单,只需在FlashMagic主界面进行如图4所示的设置后,点击图中的Start按钮,就可以完成单片机的编程。完成编程后,按系统复位按钮,单片机应用系统就可以正常运行。
NXP公司推出的80C51单片机除了以上2种系列以外,还有P89C51Rx2Hxx、P89C51Rx2xx、P89C60X2/61X2和P89C66x等系列Flash单片机,这些单片机都可以采用图1所示的接口电路进行在系统编程。只是编程时,需要通过SELECT开关将单片机的PSEN引脚接地,使单片机在复位后能够直接进入ISP状态,然后再进行上述编程。在使用这些系列单片机的在线编程时,还应注意启动向量(BOOT VECTOR)和状态字(STATUS BYTE)的设置问题,具体情况可以查阅具体型号单片机的使用手册。
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)