侵权投诉
当前位置:

OFweek电子工程网

MCU/控制技术

正文

基于MCU内部Flash的在线仿真器设计方案

导读: 提出了一种基于MCU内部Flash的仿真器设计方法,并完成了设计和仿真。

  由于市场对MCU功能的要求总是不断变化和升级,MCU应用的领域也不断扩展,因此往往需要对最初的设计进行修改。Flash MCU与以往OTP/MASK MCU相比,最大的优点就在于可进行高达上万次的擦写操作,顺应了MCU功能不断修改的需求;另一方面,Flash MCU市场价格也在不断下降。实际上,Flash MCU工作时Flash的延时、读写时充等特性是非常,程序存储在MCU外部仿真板上的SRAM中,由额外的硬件逻辑来模拟Flash的这些特性是费时低效的;同时将Flash和MCU内嵌的其他类型存储器如SRAM、ROM等区分开来也是十分重要的。如果在程序的调试阶段就可以反映出这特性,有且于实现程序从仿真器到商用MCU芯片的无缝转移。

  1 关于Flash MCU

  Flash MCU的构成如图1所示,主要由CPU核、Flash IP及其控制模块、SRAM IP及基控制模块、WatchDog、PMU(Power Manage Unit,功耗管理单元)、I/O端口以及ISP在线编程接口等组成。不同功能的Flash MCU还包含一些各自独特的应用模块单元,如用于寻呼的Flash MCU所包含的解码模块。对于用来构成在线仿真器的Flash MCU还可能包括仿真接口单元。本文在讨论Flash MCU的在线仿真时,指的都是包含仿真接口的Flash MCU。

  Flash存储器几乎拥有现今追求个性化的用户所需要的所有优点:掉电数据不丢失、快速的数据存取时间、电可擦除、容量大、在线(系统)可编程、价格低廉以及足够多的擦写次数的高可靠性等,已成为新一代嵌入式应用的首选存储器。与Flash MCU相比,MASK(掩膜)MCU尽管在大指生产时仍具备一定价格优势,但其升级不便的缺点,随着今后Flash成本的进步降低和MCU功能需求的逐渐增多,将表现得更为显着。

  2 基于外部SRAM的MCU在线仿真器

  SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,且功耗较大。所以在主板上SRAM存储器要占用一部分面积。

  一种是置于CPU与主存间的高速缓存,它有两种规格:一种是固定在主板上的高速缓存(Cache Memory );另一种是插在卡槽上的COAST(Cache ON A Stick)扩充用的高速缓存,另外在CMOS芯片1468l8的电路里,它的内部也有较小容量的128字节SRAM,存储我们所设置的配置数据。还有为了加速CPU内部数据的传送,自80486CPU起,在CPU的内部也设计有高速缓存,故在Pentium CPU就有所谓的L1 Cache(一级高速缓存)和L2Cache(二级高速缓存)的名词,一般L1 Cache是内建在CPU的内部,L2 Cache是设计在CPU的外部,但是Pentium Pro把L1和L2 Cache同时设计在CPU的内部,故Pentium Pro的体积较大。Pentium II又把L2 Cache移至CPU内核之外的黑盒子里。

  MCU仿真器的一种常见做法是,将用户的待调试程序(以下简称用户程序)存储在MCU外部仿真板的SRAM(以下简称外部SRAM)中,在bond-out MCU的外部结构仿真监控硬件(以下简称外部仿真逻辑),当用户程序在仿真器中调试完成后,编程到商用MCU芯片中,应用到用户系统。在商用MCU中,这些仿真接口信号不会出现在芯片封装的管脚上。

  在Flash MCU没有被广泛应用之前,仿真器设计公司通常将用户程序和监控程序都存储在外部SRAM中,这种做法基本上可以反映SRAM MCU真实的运行情况,对用户程序的调度效果影响不大。但是对于Flash MCU而言,则存在一定的问题。毕竞SRAM和Flash在工艺和读写时序上相去甚远,CPU运行存储在SRAM和Flash中的程序,情况是完全不同的。有可能出现程序存储的仿真器的外部SRAM中运行良好,但是编程到商用MCU中工作起来却不正常。随着Flash MCU在 MCU市场中的比重越来越大,这一问题显得越来越突出,有必要加以重视。

  本文介绍的Flash MCU仿真器的设计方法,几乎不增加MCU的仿真接口信号和芯片设计的复杂程度,就可以接近程序在商用MCU中的运行情况,实现用户程序从仿真器到商用MCU的良好转移。

  3 基于MCU内部Flash的在线仿真器的一种设计方法

  图2是Flash MCU仿真器系统构成示意图,其中的虚线接口信号是MCU的仿真接口,通常包括仿真使能信号,bond-out MCU中的CPU的地址、数据、读/写和取指等信号,以及少数几个用于仿真的控制信号。仿真接口是Flash MCU与外部仿真逻辑之间的桥梁,使得外部仿真逻辑能够监控MCU的内部状态。

  3.1 仿真器的工作原理

  仿真器内部的P口等硬件资源和51系列单片机基本是完全兼容的。仿真主控程序被存储在仿真器芯片特殊的指定空间内,有一段特殊的地址段用来存储仿真主控程序,仿真主控程序就象一台电脑的操作系统一样控制仿真器的正确运转。仿真器和电脑上的上位机软件(即KEIL)是通过串口相连的,通过仿真器芯片的RXD和TXD负责接收电脑主机发来的控制数据,TXD负责给电脑主机发送反馈信息。控制指令由KEIL发出,由仿真器内部的仿真主控程序负责执行接收到的数据,并且进行正确的处理。进而驱动相应的硬件工作,这其中也包括把接收到的BIN或者其它格式的程序存放到仿真器芯片内部用来存储可执行程序的存储单元(这个过程和把程序烧写到51芯片里面是类似的,只是仿真器的擦写是以覆盖形式来做的),这样就实现了类似编程器反复烧写来试验的功能!不同的是通过仿真主控程序可以做到让这些目标程序做特定的运行,比如单步、指定断点、指定地址等,并且通过KEIL可时时观察到单片机内部各个存储单元的状态。仿真器和电脑主机联机后就象是两个精密的齿轮相互咬合的关系,一量强行中断这种联系(比如强行给仿真器手动复位或都拨支联机线等),电脑就会提示联机出现问题,这也体现了硬件仿真的特性,即“所见即所得”。这些都是编程器无法做到的。这些给调试、修改、以及生成最终程序创造了比较有力的保证,从而实现较高的效率。

 

1  2  3  下一页>  
声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号