Wavemcu.com - 健波硬件工作室

匿名投稿 投稿指南 RSS订阅 站长资讯通告:     2008年8月16日:新站点正在测试当中,如发现问题,请E-mail给站长!  [EasyWave  2008年8月16日]        
搜索: 您现在的位置: 健波硬件工作室 >> 编程器家园 >> Keil C编程 >> 正文

市场比较流行的51单片机仿真技术

2008-06-10 13:50:46 来源:本站原创 作者:佚名 【 点击:

核心提示:目前市场比较流行的51仿真技术主要有:Bondout仿真技术,HOOKS仿真技术,和嵌入式仿真技术。

目前市场比较流行的51仿真技术主要有:Bondout仿真技术,HOOKS仿真技术,和嵌入式仿真技术。下面分别加以讨论:
Bondout仿真技术

Bondout 即专用仿真芯片技术;一些公司如winbond为了仿真方便,设计了一些可以将一个特殊的总线单独接出来,不与P0,P2口复用的单片机,同时还引出了一些其他的专用控制线,这样,再加入了用于仿真的硬件电路,仿真时就不会占用标准芯片的I/O,P0,P2的总线也都可以提供给用户使用。
这种仿真技术在早几年非常流行,主要是winbond生产了一批可以用作Bondout仿真的专用芯片,如W78958,W78438,W77968等
Bondout仿真技术的优点主要是:
1 可以完全真实仿真,
2 仿真频率高,可以达到专用芯片的最高标准。
3 噪音小,IO和总线不易出现毛刺等现象。
Bondout仿真技术缺点主要是:
1 可仿真芯片种类少,只能仿真标准的51系列单片机,目前一些增强型单片机所带的特殊资源就不能仿真。
2 成本高;因为专用仿真芯片价格高

HOOKS仿真技术

HOOKS 是一种采用I/O复用的仿真技术,Philips公司的51系列单片机中大部分含有支持HOOKS技术的硬件电路。当含有HOOKS的单片机进入 HOOKS仿真状态后,P0、P2口将分时地输出/输入总线及P0、P2端口的值,仿真器用特殊的硬件电路将复用P0、P2口扩展为独立的仿真总线及用户 P0、P2口,用户也可以获得性能基本相同的P0P2口。hooks技术需要授权,内部的协议也不公开。

HOOKS仿真技术优点:
1 可仿真芯片种类较多;大部分的Philips的51系列单片机都可以仿真
2 成本低;不需专用仿真芯片,使用普通的51系列单片机即可

HOOKS仿真技术缺点:
1 由于P0、P2是重造的,因此P0、P2口与标准单片机的P0、P2口不是100%地相同
2 HOOKS技术的最高仿真频率不如Bondout技术高,噪音大于Bondout技术,仿真时IO容易出现毛刺,影响单片机的真正运行,特别是总线和IO操作等情况。
3.只能仿真标准51内核或者philips公司的增强型51单片机,对于其他公司的增强51 并不100%支持。

嵌入式仿真技术

嵌入式仿真技术有分MON51和ISD51。
嵌入式仿真需要把监控程序全部或者部分嵌入到用户的程序空间去执行,监控程序和用户程序使用同一个CPU。这种仿真方式使得这种技术理论上几乎可以仿真所有厂商的所有CPU,因为监控程序就是基于这个CPU工作,可以访问到它的所有资源。但是,正是由于监控程序和用户程序公用一个CPU,使得监控程序不可避免的会用到一些资源,使得这些资源难以仿真。比如仿真监控程序要和计算机的调试环境通讯,就必须使用串口,这样串口相关的资源加上波特率发生的定时器,串口所在的2条IO都无法仿真。另外监控程序和用户程序切换的过程中,为了保存用户程序工作时的工作状态,还要用到一些内存空间或者堆栈空间。这样一来,嵌入式仿真技术就很难做到51全部资源的仿真。

ISD51需要大幅度修改用户程序,占用更多的资源,和仿真速度极慢,在有断点的情况下全速运行比正常全速慢100倍!ISD51在实际场合很少得到应用。此处也不多介绍,有兴趣者可以去寻找相关文档。

mon51由于可以比较全面地仿真,仿真比较全面真实,得到了比较广泛的应用。早期的做法是使用一片52,将外部程序和数据空间合一,形成冯诺曼结构,监控程序放在52的rom中,用户程序则放在片外xram中,一般在8000H开始的地方。由于读写xram速度很快,下载和仿真速度都非常快,使用起来非常方便。在keil下的mon51目录下有详细的文档介绍了这个仿真方法。但是,由于这种仿真方法占用了串口,P30,P31,定时器2,7个堆栈,P0P2只能作为总线,程序和数据总线空间必须合一,用户程序不能从0地址开始,中断向量全部都得转移,仿真空间也不大,所以很多高级用户还是无法使用,只是在个人学习试验中广泛应用。后来有些大虾对这个仿真方法的硬件电路做了一些改进,在开始仿真时,将监控程序搬到高地址的空间,从而留出0地址的空间给用户,这样解决了不能从0地址开始仿真的问题,但是其他问题还是不少。

后来,sst公司推出了几款可以小扇区擦除,并且可以IAP的IC,sst89c54,sst89c58,之前还推过F系列,但是很快就换代了。 sst89c58的独特优势,就是可以很快地改写程序空间的flash,而且,它的程序区分两个block,都可以启动程序,也可以互相写对方,这些得天独厚的条件极其适合做前面所说的mon51仿真器。而且sst为了推广自己的芯片,也用这些芯片制作了这样仿真程序,放在网站供大家下载使用,这就是所谓的sst公版仿真程序,当然,他们并没有提供源代码,只是提供了hex文件,及仿真器的制作方法。最近两年,又推出了一些新的芯片,如sst89e564 等,功能更加强大,现在的许多没有改进直接拿来用的,以及少数改进过的,满天下叫卖的嵌入式微型仿真器基本上都是使用sst的版本。一些人更是直接使用,还胡乱吹嘘出不少本来没有的“先进功能”来。

sst公司发布的仿真器,由于他们是为了销售自己的芯片,并没有完全往通用的仿真器考虑。比较keil公司介绍的版本来说,增加了可以P2P0仿真 IO或者总线,程序可以从0地址运行。其他方面还是占用了串口,P30,P31,定时器2,和8个堆栈!而且,他们为了用户能否仿真IAP功能,开放了所有空间的读写,以至于用户很容易就误写了监控程序,导致监控失灵,无法仿真,其他如仿真之前必须按复位按钮以预先擦除flash,软复位的清除状态不干净,读取用户sfr寄存器速度过慢,全速停止时会跳出询问窗口,使用全速停止功能会占用串口中断入口,58以下芯片做的的仿真有时会干扰总线状态等.目前市场上存在的sst版本仿真器,基本上都有这些问题。

嵌入式仿真技术的优点:
1 成本低,几乎都可以自制!
2 结构简单,IO仿真100%真实,无噪音,因为就是自己的IO啊!
2 仿真频率高,基本上没有限制,因为就是自己的CPU在工作啊!
3 几乎可以仿真所有的CPU,特别是有总线的CPU,外接一块ram就可以仿真了!

嵌入式仿真技术的缺点:
1 无法仿真全部的资源,特别是串口相关资源,不过本站推出的dx仿真器已经对此做了改进。
2 仿真操作速度不快,特别是flash版本的仿真器,但是也在人类的反应范围中。
3 单步运行时定时器不准确,因为在用户程序和监控程序切换时定时器还在走动,所以不准,但是全速运行期间不受影响。
4 在某些情况下单步可能跑飞,特别是汇编代码的调试,不过并不会过分影响程序的调试,C51的断点和单步很少出现这样的问题。

Tags: Keil  
责任编辑:EasyWave
  • 调用插件
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】   
  • 上一篇文章: 没有了
  • 下一篇文章:
  • 姓 名: * Oicq:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用健波硬件工作室服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 帮助