基于IAP在线仿真技术 提升单片机实验技术水平
2014-03-25丁向荣
丁向荣
(广东轻工职业技术学院 电子通信工程系,广东 广州 510300)
1 仿真与在线仿真
单片机仿真可分为软件模拟仿真与在线系统仿真。
软件模拟仿真是利用计算软件模拟单片机系统硬件环境,进行单片机系统应用程序的调试,目前主要有Keil C集成开发环境的软件模拟仿真与Proteus软件的模拟仿真。由于软件模拟仿真的系统环境是理想环境,因此,仿真效果与实际系统的运行效果还是有差距的[1]。
在线仿真(调试)是一种在线系统调试方案,它是利用实际的单片机应用系统环境,结合计算机仿真软件进行系统调试,仿真运行效果与实际系统的运行效果是一致的。它可以让单片机以单步、跟踪、执行到光标处、设置断点、全速运行等模式来执行程序。每执行一段或一行程序,就可以观察该程序执行完毕后的效果,并与写该段或该行指令时的预期效果进行比较。如果比较的结果一致,说明程序正确;如果不一致,说明程序或硬件出现问题,需作进一步修改和调试。因此,在线仿真是单片机应用系统开发过程中的重要步骤与重要调试手段[2-3]。
1.1 基于硬件仿真器的在线仿真
如图1所示,在线仿真需要设计专门的硬件仿真器,才能应用PC机对单片机目标系统进行仿真。虽然仿真器很贵,但在程序存储器只能用ROM、PROM与EPROM的时代,单片机硬件仿真器是单片机应用系统开发的必备工具,但对于单片机实验而言,就属于奢侈品了[4]。
图1 仿真器仿真连接线路图
随着集成电路技术的发展,诞生了可在线编程的Flash ROM程序存储器芯片,可实现在线编程,使擦除程序存储器的内容与编写程序可瞬间完成。传统的硬件仿真器淡出了开发工具的行列,单片机应用系统的开发模式改变为软件仿真+“写片”验证。这种模式虽然也很方便,但毕竟不能应用单步、断点等运行模式进行在线仿真调试,这会大大地降低单片机应用系统的开发效率[2]。
1.2 基于ISD51的在线仿真
ISD51在线仿真(调试)技术是Keil提供的一种在线调试技术。利用这种技术,可以在没有硬件仿真器的情况下,借用目标单片机的串口完成单步、断点运行等调试手段。ISD51在线仿真(调试)技术是在目标应用程序适当位置通过调用Keil提供的ISD51功能函数iskey(void)、ISDinit(void)、ISDwait(void)、ISDcheck(void)、ISDdisable(void)、ISDbreak(void)等来实现的。虽然ISD51在线仿真(调试)技术不需要硬件仿真器,但需要占用目标单片机的串口资源以及需要在目标应用程序放置ISD51功能函数,需要有较丰富的经验才能做到,否则,不但不能帮助调试程序,还会影响目标应用程序的功能。因此,采用ISD51在线仿真(调试)技术需要较高的门槛[5]。
2 可在线仿真、编程的IAP15F2K61S2单片机
IAP15F2K61S2单片机的可仿真技术是STC公司推出的最新技术,采用基于IAP(在线应用编程)的“软”核技术实现硬件仿真器的功能。IAP15F2K61S2单片机既可以作目标芯片,也可用作仿真芯片。利用STC-ISP编程软件的设置工具将一段在线仿真监控程序下载到IAP15F2K61S2单片机中,IAP15F2K61S2单片机就是1颗仿真芯片了,不需增加任何外围电路,就相当于传统的单片机硬件仿真器[6]。
2.1 在线仿真电路
在线仿真电路与STC单片机的在线编程电路是一致的,不需增加任何硬件开销,如图2所示。
图2 在线仿真电路
2.2 仿真芯片的设置
IAP15F2K61S2单片机设置为仿真芯片的设置界面如图3所示(设置界面在STC-ISP在线编程软件界面中的“Keil仿真设置”选项中),点击“将IAP15F2K60S2设置为2.0版仿真芯片”按钮,然后将单片机重新上电,即可将IAP15F2K61S2单片机设置为仿真芯片。
图3 仿真芯片的设置
2.3 Keil软件的在线仿真设置
Keil软件是8051单片机应用开发与学习的必会工具。Keil除可以编辑、编译ASM或C51应用程序,生成机器代码程序以外,还可以实施软件模拟仿真和在线仿真,所要做的只是进行在线仿真设置和运行:
(1) 选择“STC Mon51仿真”模式;
(2) 选择与在线编程电路一致的串口号;
(3) 选择与在线编程电路一致的串口波特率;
(4) 在线仿真的运行。
当按照以上要求设置好后,就可以利用Keil软件的单步、跟踪、断点、执行到光标、全速运行模式对目标程序进行在线仿真(调试)了。在线调试时,既可以在Keil软件的调试界面上观察目标程序的运行结果,又可以在目标单片机应用系统上直接观察程序的运行结果(与在系统调试一致)。经反复调试,系统无误后,利用在线编程软件将调试好的程序下载到IAP15F2K61S2单片机中,IAP15F2K61S2单片机就成为目标单片机了。
基于IAP15F2K61S2单片机的在线仿真,在不增加硬件开销的情况下,具有传统仿真器的仿真效果,可大大提高单片机应用系统的开发效率。
3 基于IAP在线仿真技术提升单片机实验教学水平
单片机课程是一门实践性、应用性很强的课程,提高单片机课程教学效果必须从单片机实验技术与实验手段方面着手[7]。为了提高单片机的教学效果,人们探讨采用项目教学、任务驱动的模式,实施“教、学、做”一体化教学方法,其根本在于实验教学模式的改变[8]。
目前,较为先进的单片机实验模式是“Proteus软件模拟仿真”与“单片机开发板的在系统验真”相结合。由于价格便宜,人人拥有一块单片机开发板已成为现实,其最大的意义是使单片机实验室得到了无限扩展。单片机开发板的在系统验真属于“写片”验证模式,虽然基于“Flash ROM”的在线编程技术已经非常成熟与简单了,“写片”已是一件很方便的事情,但如果不能利用Keil软件的单步、断点等调试功能来调试单片机应用程序,进行程序的差错与纠错,自然会降低实验效率,而且缺乏调试手段的实验不利于理解单片机应用程序,影响单片机的学习效率[9-10]。
基于IAP的在线仿真技术,即在在线编程电路的基础上,不需增加任何硬件开销,IAP15F2K61S2单片机即可设置为仿真单片机芯片,Keil软件可以很方便地实施在线硬件仿真,给单片机应用系统的技术开发注入了新的活力,它将使得单片机应用系统的开发过程变得更加简单与高效。单片机课程的实验教学时刻要与现实单片机应用开发技术接轨,将“单片机开发板的在系统验真”的实操模式提升为“在线系统仿真”,充分利用Keil软件的调试功能进行程序的分析与功能调试,有利于提高学生的程序分析能力与编程能力,有利于锻炼学生的综合分析能力与创新能力。采用基于IAP在线仿真技术除必须采用“IAP15F2K61S2单片机”或“IAP15L2K61S2单片机”外,不需对单片机开发板作任何改动。提升实验技术是一种实验理念的改变,一种实验习惯的改变。
4 结束语
基于IAP(IAP15F2K61S2单片机)的在线仿真技术,是目前最先进的一种在线仿真技术,1颗芯片即为一个硬件仿真器。在不增加任何硬件开销的情况下,可以具有传统的、比较昂贵的硬件仿真器所具备的调试功能。保持实验教学与市场同步,培养与社会“零衔接”的人才,是当代人才培养的教育理念,更是单片机应用技术人才培养过程所提倡和追求的[11]。
[1] 底群.单片机实验教学仿真软件设计[J].现代电子技术,2013(2):39-41,44.
[2] 丁向荣.增强型8051单片机原理与系统开发[M].北京:清华大学出版社,2013.
[3] 丁向荣.单片微机原理与单片机应用技术[M].北京:电子工业出版社,2012.
[4] 常淑俊,黄杰勇.单片机实验教学的探讨[J].实验科学与技术,2013(4):82-83.
[5] 周坚.单片机C语言轻松入门[M].北京:北京航空航天大学出版社,2011.
[6] 深圳宏晶科技有限公司.STC15F2K60S2系列单片机中文数据资料手册[M].深圳:深圳宏晶科技有限公司,2013.
[7] 李萍.以单片机实验教学改革探大学生实践与创新能力培养模式[J].中国现代教育装备,2012(11):49-50,59.
[8] 贾萍,丁向荣,胡美兰.“教、学、做”一体化单片机教学实验平台设计与应用[J].实验技术与管理,2012,29(6):139-142.
[9] 杨琳,高宏亮.以提高学习兴趣为导向的单片机实验课改革[J].实验室科学,2013(4):95-98.
[10] 黄克亚.基于虚拟仿真和ISP下载的AVR单片机实验模式研究[J].实验技术与管理,2013,30(8):81-85.
[11] 孟雷.应用型本科院校单片机实验教学改革探讨[J].现代商贸工业,2013(8):129-130.