仿真器—模拟系统的外在表现
仪器信息网 · 2012-08-16 09:08 · 50390 次点击
仿真器—模拟系统的外在表现
仿真器概述
在嵌入式系统的设计中,仿真应用的范围主要集中在对程序的仿真上。例如,在单片机的开发过程中,程序的设计是最为重要的但也是难度最大的一种最简单和原始的开发流程是:编写程序烧写芯片验证功能,这种方法对于简单的小系统是可以对付的,但在大系统中使用这种方法则是完全不可能的。
仿真器种类
1)软件仿真:这种方法主要是使用计算机软件来模拟运行,实际的单片机运行因此仿真与硬件无关的系统具有一定的优点。用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最终的设计。
2)硬件仿真:使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能。使用了附加硬件后用户就可以对程序的运行进行控制,例如单步,全速,查看资源断点等。硬件仿真是开发过程中所必须的。
仿真器原理
仿真器内部的P口等硬件资源和51系列单片机基本是完全兼容的。仿真主控程序被存储在仿真器芯片特殊的指定空间内,有一段特殊的地址段用来存储仿真主控程序,仿真主控程序就象一台电脑的操作系统一样控制仿真器的正确运转。仿真器和电脑上的上位机软件(即KEIL)是通过串口相连的,通过仿真器芯片的RXD和TXD负责接收电脑主机发来的控制数据,TXD负责给电脑主机发送反馈信息。控制指令由KEIL发出,由仿真器内部的仿真主控程序负责执行接收到的数据,并且进行正确的处理。进而驱动相应的硬件工作,这其中也包括把接收到的BIN或者其它格式的程序存放到仿真器芯片内部用来存储可执行程序的存储单元(这个过程和把程序烧写到51芯片里面是类似的,只是仿真器的擦写是以覆盖形式来做的),这样就实现了类似编程器反复烧写来试验的功能!不同的是通过仿真主控程序可以做到让这些目标程序做特定的运行,比如单步、指定断点、指定地址等,并且通过KEIL可时时观察到单片机内部各个存储单元的状态。仿真器和电脑主机联机后就象是两个精密的齿轮相互咬合的关系,一量强行中断这种联系(比如强行给仿真器手动复位或都拨支联机线等),电脑就会提示联机出现问题,这也体现了硬件仿真的特性,即"所见即所得"。这些都是编程器无法做到的。这些给调试、修改、以及生成最终程序创造了比较有力的保证,从而实现较高的效率。
总结
仿真器(emulator)以某一系统复现另一系统的功能。与计算机模拟(ComputerSimulation)的区别在于,仿真器致力于模仿系统的外在表现、行为,而不是模拟系统的抽象模型。