本帖最后由 autopccopy 于 2013-9-6 13:45 编辑
STC单片机片上仿真法
文/杜洋
(该文同时刊登在《无线电》杂志2013年07期)
有单片机初学者问了我这样一个问题:单片机真是个好东西,可以实现我的很多想法,就是在编程开发的时候太麻烦,每次改动都要重新编译、下载,再等待着问题的出现。仅调试一个参数就要花上几个小时的时间。对于我们这些没什么经验的编程菜鸟来说太麻烦了。我想单片机技术发展至今,应该有更便捷的开发工具吧。杜老师你平时是怎么开发单片机软件的?有什么秘诀传授一下呗!
我的回答是:当然有秘诀,那就是使用“仿真功能”。什么是仿真?它如何实现更快捷的开发呢?详见下文。
【什么是仿真】
什么是仿真?我们举一个汽车设计的例子来说明一下吧。大家一定在影视剧或电视广告中看过这样的镜头:在一个大大的厂房里,一辆崭新的小汽车正在以很高的速度撞向一面厚厚的水泥墙。坐在车上的两个人面不改色心不跳,一动不动地等待着死亡。他们为何如此冷静,因为“他们”是实验用的假人。说时迟那时快,汽车已经撞到了墙上,巨大的声响夹杂着飞溅的碎片充满了空间,汽车在撞击中破了相。旁边的几台高速摄像机记录下了这一切。这是一次真实的撞击实验,目的是为了得出这款车型在出现意外时,是否能保住人的小命。安装在假人身上的传感器所得出的数据,能帮助工程师们发现安全隐患,改进汽车的设计。可以说以上就是一次仿真,一辆真车和两个假人有计划地撞墙,模拟了真实车祸情况。仿真让实验变得可能,因为没有一个真人愿意坐在车里参与这场实验。当真实情况很难在开发时再现时,仿真就可以帮助开发者完成必要的实验。这就如同单片机开发中,我们在自己的实验板上去开发一款产品一样。当我们设计好了一个产品的功能,我们要在实验板上模拟用户的操作,看看操作是否正常,产品的反应速度和稳定性如何。这些都是在仿真——模仿用户使用的真实情况。
有朋友会问了:如果这就是仿真,那还有什么好讲的呢?嗯,如上所说的仿真只是广义上的仿真,凡是在实验室里用实验板或工程样机模拟用户使用的过程,都可以算是仿真。而还有一种狭义的仿真,就是下面要重点介绍的内容。再说回到汽车撞击的实验吧。后来呀,汽车公司的老板在办公室里坐不住了。因为每当从外面传来一声巨响,他就知道又有一辆新车被撞得稀巴烂,一阵痛苦涌上心头。虽然理性上明白,这是为了开发出更安全的汽车,可是感性上还是不喜欢这种烧钱的行为。人们常说利益推动科技进步,当老板的利益受损,自然就会有高科技问世。不久,工程师们用上了一种电脑仿真软件,它采用了虚拟现实的技术,只要在电脑上按几个钮,输入一些汽车的参数,一台虚拟的汽车就出现在屏幕上。这辆虚拟车能和真车一样撞击、飞溅,然后得出一大堆接近真实的数据。不仅能模拟真实的撞,还能歪着撞,倒着撞,飞起来撞,飞起来转体360度地撞。还能暂停时间,一步一步撞,或者只看撞击中某一秒的数据。这一技术完全超越了真实实验,撞击再也不用耗人耗时了,新车的开发速度也快了很多,大大降低了成本。
汽车公司的遭遇在单片机公司也同样发生着,各种仿真软件如雨后的水泡子般越来越多。有的直接在电脑上虚拟仿真,还有的用一种叫仿真器的东西,让实验板与电脑连接,给实验板或工程样机增加了单片机实物所不能达到的仿真功能。其中最重要的一个功能就是“单步运行”了。在仿真软件里,把单片机从上电开始以正常的速度一直运行下去的过程叫“全速运行”。相对的,如果单片机只运行程序中的某一条或几条程序就是单步运行了。在非仿真的情况下,单片机是不能单步运行的。那单步运行有什么用呢?呵呵,单步运行非常有用呀,甚至可以说是一项单片机开发的重大进步,就如同录音带和MP3的区别一样。录音带在听歌的时候必须从头听到尾,如果想换歌就得花时间倒带,而且你也不能精准地倒到下一首歌的开始处。而MP3不是连续的线性存储,你可以随意换歌,还能把任意的一段反复听。在单片机的开发中,我们为了测试某个部分的功能,必然要从头运行,再跳过不必要部分才能达到。大把的时间浪漫在多余的劳动上面了,现在有了单步运行,你想到哪就到哪,你想反复运行某段程序也没问题。期间你还能修改大部分参数,不仅能模拟真实的运行,还能歪着运行,倒着运行,飞起来运行,飞起来转体360度地运行。好玩吧!?
而本文要介绍的是仅使用单片机的“片上传真”。片上仿真是基于单片机本身的仿真,也就是说只要一片单片机,不需要额外购买别的东西,就可以实现仿真。对于单片机爱好者来说,片上仿真是最高性价比的选择,你甚至不需要修改电路,用给单片机下载HEX文件的电路就能实现仿真。各大单片机公司都已开发出不同性能的支持片上仿真的单片机。其中STC公司有一款性能很不错的片上仿真单片机——IAP15F2K61S2。下面我就给大家介绍一下片上仿真环境的建立,还有进入仿真界面的操作流程,最后以一个实例告诉大家如何进行仿真调试。这是一些非常简单的操作,只要按照本文的步骤操作,就一定能顺利学会。
全文在:http://www.doyoung.net/articles/STC15IAP/index.html
全文汇总在附件PDF:《宏晶STC单片机片上仿真法_杜洋STC15IAP.pdf》
(摘者注:STC单片机如何仿真、STC单片机仿真操作指南)
|