刘 斌,刘春茂,尹社会
(河南工业职业技术学院,河南 南阳 473000)
单片机C语言仿真调试系统研究
刘斌,刘春茂,尹社会
(河南工业职业技术学院,河南南阳473000)
摘要:目前国内单片机实验系统绝大部分采用的是专用硬件仿真器,专用硬件仿真器约占单片机实验系统总体成本的20%~40%,如果单片机加入在线仿真技术,将大幅度地降低产品的采购和维护成本,非常有利于单片机技术在国内的普及。文章开发以MC68HC9008系列MCU为载体的片内监控的基于C语言的在线仿真技术就具有尤为重要的意义。
关键词:单片机;MCU;Bootloader
MCU,即微控制器,又称单片机。MCU没有自开发能力,必须借助MCU开发系统进行软件的编写、开发,以及对电路功能进行检测和调试。
基于芯片内监控的在线仿真技术仅依靠MCU内植入的特殊监控代码就可以实现专用硬件仿真器的大部分仿真功能,成为当前研究的热点。相关研究表明,采用基于芯片内监控的在线仿真系统可以以专用硬件仿真20%的成本,实现其80%以上的功能,而且由于片内监控方式不需要添加任何仿真硬件,所以可靠性较高,不需要进行后续维护。目前国内单片机实验系统绝大部分采用的是专用硬件仿真器,专用硬件仿真器约占单片机实验系统总体成本的20%~40%,如果单片机加入在线仿真技术,将大幅度地降低产品的采购和维护成本,非常有利于单片机技术在国内的普及。Freescale公司的8位MCU具有高性能以及低功耗的特点。正是它的这些特性,使其在相应需求的电子产品中占有很大的应用市场。到目前为止已推出217种不同的产品。所以综上所述,研究开发以MC68HC9008系列MCU为载体的片内监控的基于C语言的在线仿真技术就具有尤为重要的意义。
(1)采用芯片内驻留的监控程序提供MCU程序单步、断点、全速运行控制功能,存储器、寄存器读写和代码下载能力,不需要任何附加的硬件设备。这种调试器/ROM监控程序方式为代码开发、调试提供了功能强大而低价的解决方案。(2)用户可以对自编程序进行100%的在线仿真与监测。(3)在线仿真系统可与第三方IDE软件(Code Warrior)接口,可实现对C/C++、汇编等多种开发语言的支持。
为了兼顾MCU的在线仿真开发及正常运行的要求,MCU设计为可以工作在2种模式:用户模式和监控模式。用户模式是指加电复位后,转向复位矢量所指向的地址,执行MCU中的用户程序。监控模式是指加电复位以后,执行监控ROM里面的程序,并通过接口实现半双工通信,为连接主机提供服务,主机通过串行口给从机发送监控指令,从机接收指令后通过执行Flash中的监控程序对微控制器内部地址进行读取、写入、程序运行控制等基本操作。要进入监控模式,在复位时有几个特定的通用引脚必须处于某种特定的状态,并且还需要在引脚上提供一高电压。一旦条件满足,FLASH中的监控程序将会取代应用程序而被执行。
MCU不同工作模式的进入需要由BootLoader程序引导完成。BootLoader是位于MCU引导区固件中的一段代码,当系统复位时它首先加载到RAM中执行。在监控程序写入到芯片内部之后,在上电复位时BootLoader通过判断ROM保护字节及引脚IRQ的电平决定是进入用户模式还是监控模式。BootLoader的整体流程如图1所示。
图1 BootLoader的整体流程
如果选择用户模式,BootLoader引导MCU取指机构直接跳转到FLASH中用户程序区首址取指执行。如果正常则写入用户预置的工作参数。完成上述工作后,还要对上位机发送过来的安全字符串进行验证。在监控模式下,监控程序执行上位机指令可以对芯片进行任意的读写及运行控制,从而实现在线仿真调试功能。
综合以上分析,写入BootLoader的FLASH存储器的最后80BYTES中的许多高地址字节是被用来存放复位和中断矢量的,还有一部分是为特殊目的而保留的。$FFBE是FLBPR寄存器,用于存放块保护的地址。当进入监控程序以后由于这80BYTES是被保护起来的,既不能写入,也不能被擦除,但是可以通过程序提供的转向矢量来来完成中断。也就是当运行监控模式的时候,程序已经写入了中断向量的地址,用户只需用程序提供的中断向量代替原来的中断向量即可。
基于芯片内监控的C语言在线仿真技术可以省掉复杂、昂贵的专用仿真器硬件,可以在专用仿真器20%成本的基础上实现其80%以上的功能。专用仿真器比较复杂,可靠较差,很容易出现损坏,影响实验设备完好率,后续的维护成本比较高。使用基于芯片内监控的实验系统后,除了芯片和实验资源硬件平台,不需其他仿真硬件,系统整体的可靠性较高,节省大量时间和经费。如果按仿真设备的年损坏率为10%计,每年累计将可节省约1200多套设备的更新成本120万元左右。如果再加上其他社会渠道(公司、研究机构等)的单片机实验系统设备的采购和维护需求,将会有更加可观的经济效益。
[参考文献]
[1]张培仁,张志坚,高修峰.十六位单片微处理器原理及应用[M].北京:清华大学出版社,2005.
[2]薛钧义.凌阳十六位单片机原理及应用[M].北京:北京航天航空大学出版社,2003.
[3]王庆利,刘奎,袁建敏.单片机设计标准教程[M].北京:北京邮电大学出版社,2008
Research on Simulation and Debugging System of Single Chip Microcomputer C Language
Liu Bin, Liu Chunmao, Yin Shehui
(Henan Polytechnic Institute, Nanyang473000, China)
Abstract:The current domestic microcontroller experimental system of most of the dedicated hardware simulator, dedicated hardware simulator accounts for about 20% to 40% of the total cost of SCM experimental system, if the microcontroller to join the online simulation technology, greatly reduce product procurement and maintenance, is very conducive to the popularization of the SCM technology in the domestic. Research and development of MC68HC9008 series MCU as the carrier of the on-chip monitoring of online simulation technology based on C language is of great signifcance.
Key words:single chip microcomputer; MCU; Bootloader
作者简介:刘斌(1982-),男,河南南阳,硕士,助教;研究方向:自动控制。