中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 嵌入系统 >>电子行业新闻正文

单片机的单CPU仿真器的设计

时间:2006/7/13 9:02:00  作者:  来源:ic72  浏览人数:1581
 
 

引 言

      单片机以它的廉价、体积小、可塑性强、稳定性高的特性,有着广阔的市场前景。 在用单片机开发产品时,虽然许多厂家设计了可编程ISP单片机,但是从安全与便捷方面考虑,单片机仿真器仍然是开发人员不可或缺的工具。单片机仿真器在产品开发阶段可用来替代单片机进行软硬件调试,从而迅速发现、纠正程序中的错误,大大缩短单片机开发的周期。但实际中仿真器过于昂贵,因此,设计制作出一款廉价且实用的仿真器有着广泛的市场。

      传统的单片机仿真器硬件系统一般有三种实现方法。一、采用专用仿真的单片机。二、采用两套单片机,一个单片机用于仿真,并完成诸如通讯,中断等功能;另一个单片机则用于目标单片机,这样其资源不会被占用。三、用目标单片机作为仿真器,单片机即仿真器也作目标机的单片机用,其实质是一种ROM监控器。第三种方法会占用单片机的部分资源,但结构简单,对于特定的开发者来说,实用性强,性价比高,且易于自行制作。本文开发设计的仿真器正是基于第三种原理,巧妙实现了数据空间与程序空间的互换,设计出一款实用廉价的仿真器,工程实践性强。

原理及系统结构

      仿真器工作时,要把程序从PC机下载到仿真器的存储器中。在此先详细分析51单片的存储器结构和寻址方法,再分析片外存储器的扩展,最后给出设计原理并分析系统结构。

ic72 嵌入系统
图1 存储空间分布

51单片机存储器结构分析

      8051单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器、片外程序存储器以及片内数据存储器、片外数据存储器空间。这种程序存储和数据存储分开的结构形式被称为哈佛结构。但从用户的角度,8051存储器地址空间可分为3类:片内、片外统一编址0000H~FFFFH的64KB程序存储器地址空间(用16位地址);64KB片外数据存储器地址空间,地址也从0000H~FFFFH(用16位地址)编址;256B片内数据存储器地址空间(用8位地址)。

      上述4个存储空间地址是重叠的,如图1所示。8051的指令系统设计了不同的数据传送指令以区别这4个不同的逻辑空间:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。

      程序存储器用于存放编好的程序和表格常数。程序通过16位程序计数器寻址,寻址能力为64KB。这使得指令能在64KB的地址空间内任意跳转,但不能使程序从程序存储器空间转移到数据存储器空间。

      实际上,当引脚EA接高电平时,8051的程序计数器PC执行片内ROM中的程序,当指令地址超过片内ROM地址时,就自动转向片外ROM中去取指令。当引脚EA接低电平(接地)时,8051片内ROM不起作用,CPU只能从片外ROM中取指令,地址可以从0000H开始编址。8051从片内程序存储器和片外程序存储器取指时的执行速度相同。

存储器外扩 

      用P0口作地址/数据复用总线,用P2口的口线作高位地址线,最多可以扩展64KB的存储器。控制信号线包括:使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存;以PSEN信号作为扩展程序存储器的读选通信号;以EA信号作为内、外程序存储器的选择信号;以EA和作为扩展数据存储器和I/O端口的读、写选通信号。执行MOVX指令时,RD和WR信号分别自动有效。片外数据存储器RAM的读和写由8051的RD(P3.7)和WR(P3.6)信号控制,而片外程序存储器的输出允许(OE)由读选通PSEN信号控制。尽管片外数据存储器和片外程序存储器共处同一地址空间,但由于控制信号及使用的数据传送指令不同,故不会发生总线冲突。

ic72 嵌入系统

图2 仿真器原理图

仿真器原理与结构

      由于现在以8051为内核的单片机几乎都带有内部的FLASH程序存储器。如本设计中要用到的AT89C51或AT89S51均自带4KB的FLASH程序存储器,有的单片机带有20KB甚至更大容量的程序存储器。因此在单片机开发中,很少用专门的程序存储器芯片来扩展外部程序存储器,通常也没有必要。基于以上这些因素,下面分析本文中的仿真器实现的原理。

      下载程序时,EA接高电平,单片机执行内部ROM中的程序,把PC机的程序数据下载到片外的RAM62256中;当程序数据下载完后,在保持RAM62256不掉电的情况下,将单片机的EA接低电平,并把单片机复位。这样单片机就只能从片外存储器中读数据。然后利用RD与PSEN相“与”来选通RAM62256的读允许片选端OE,使得单片机能够从RAM62256中读出程序。这样就实现了仿真功能。因为单片机从片内程序存储器和片外程序存储器取指时的执行速度相同,所以这个设计方案下的仿真器性能比起传统仿真器毫不逊色。

      总系统电路原理如图2所示,系统由单片机AT89C51、地址锁存器74LS373、片外存储器62256、接口电平转换芯片MAX232和相关控制电路组成。

      其中AT89C51就是仿真器的核心部件,晶体振荡电路和复位电路与普通单片机系统相同。不同的是:EA接一个单刀双投开关,表面上没有扩展ROM。RAM62256的与OE普通单片机系统的接法有所不同,系统中把RD与PSEN相“与”,令其选通RAM62256的读允许片选端OE,就能促成RAM(注意:整个过程中RAM不掉电)由数据空间的角色向程序空间的角色转换。在执行MOVX指令时,产生RD,WR信号,写入程序信息。在执行RAM中的程序时,由PSEN信号与RD信号选通RAM62256的OE端,实现从RAM62256中程序的读入。

软件设计

      PC机(上位机)软件可以参考Windows驱动程序开发、串口调试助手等相关书籍;也可以利用现成的KEIL C51的Windows集成开发环境~VISION51和软件仿真器DSCOPE51完成。

      下位机软件的主要任务就是设置串口和接收上位机串口发送来的数据,并将数据存入外部“数据”存储器中。

      单片机主程序如下:
      MOV  SCON,#50H  ;串口方式 1
      MOV  TMOD,#20H  ;T1 方式 1
      MOV  TL1,#0FDH  ;波特率 9600 的常数
      MOV  TH1,#0FDH
      SETB  TR1          ;开中断
      SETB   ET1
      SETB    ES
      SETB    EA
      系统“写”时用如下指令:
      MOVX  @DPTR,A
      MOVX  @Ri, A
      在中断服务子程序中,为区别所接收的信号是联络信号还是字节数、是数据还是校验和,需要设立不同的标志位如下:
       FLAG0  BIT  00H ;接收联络信号标志位
       FLAG1  BIT  01H ;接收字节数标志位
       FLAG2  BIT  02H ;接收数据标志位
       FLAG3  BIT  03H ;接收文件结束标志位     
      程序流程如图3所示,其中R7为接收到的字节数,接收的数据一定要存入片外RAM从0000H开始的单元中。当单片机复位后,把RAM当作程序存储器时,PC是从0000H开始的。

ic72 嵌入系统

图3 单片机接收中断服务子程序流程图

几点讨论

      (1) 系统中不需要单独的仿真器电源,也不需要晶振电路。
      (2) 下位机的片外存储器在重复写数时不用擦除,每次重新下载程序时,总是用覆盖的方式。新下载的程序都有END为结束,就算新下载的程序比原来的短,也不会执行多余的代码。
      (3) 在实际中,可以进一步改进电路,当文件下载完之后,通过串口备用的信号线产生控制信号来控制和复位,从而使得全过程均由上位机控制。
      (4) 由于内部结构的限制,被仿真的产品不能扩展片外的程序存储器,但由于片外可以扩展64KB的数据存储器,文中只用了32KB,因此还可以扩展一定的外设。 
      (5) 被仿真产品的E(--)A(--)的接法有一定的限制,不能直接接地或接电源正极,实际中只要加上一个合适的限流电阻(如10K?)就可以了。实际上这种方案可以适用于任何可以外扩存储器的单片机。

结束语

      对以上的设计进行分析不难发现,整个系统各个功能模块技术非常成熟:在硬件方面,各子电路均有现存的电路套用,而且各个元器件的参数容易确定;在软件方面,仅涉及到COM口的串行通信程序及上位机的界面程序。在实际的制作过程中,系统的元器件数目少且价格低廉,容易调试,成功率高,性能稳定。

 
【相关文章】
·一种基于A/D和DSP的高速数据采集技术
·基于T6963CFG的LCD在嵌入式系统中的应用
·单片机和MCP2510的CAN总线通信模块设计
·DSP在卫星测控多波束系统中的应用
·移动WiMax参数指标及射频测试浅析
·基于P89C61x2和ISP1581的USB接口电路的设计
·多频GSM/GPRS功率放大控制器
·基于PM50RSAl20的小型通用变频器实用电路设计
·基于AVR单片机的卫星地面测控系统设计
·ARM7系统中实现CF卡存储的文件系统设计
·单片机的单CPU仿真器的设计
·Rowley为Luminary MCU提供配套的评估工具套件
·SafeNet推出最新版本客户端和服务器端开发工具
·Chipidea发布支持DVB-H、DMB和ISDB-T的调谐器IP
·打破窠臼,用12位色彩像素编码即可实现24位色彩图像质量
·NI ELVIS实现USB即插即用并新增LabVIEW 8 Express VI
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9