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

OTPROM型单片机内内部存储器的使用研究

时间:2006/10/9 10:53:00  作者:  来源:ic72  浏览人数:1220
 
 

      随着变频调速以及微机控制技术的发展,适应电机控制的Intel 8XC196MC系列单片机应用越来越广泛。
 
      与80C196MC相比,87C196MC单片机带有16 KB的OTPROM(One Tline Programmable Read-Only Memory),可以进行片内编程操作,而且可以增强加密功能。对于普通的控制系统来说,其存储容量足够大,不必再使用外部扩展存储器。然而87C196MC单片机的OTPROM存在一个缺点:不可擦除,也就是说只能编程一次,不能实现重复编程,不利于大量普及使用。

      当程序从仿真器移植到单片机的OTPROM时,并不能保证程序的一次成功性,由于单片机的不可擦除性,若程序脱机一次就使用一片单片机,显然将造成巨大的资源浪费。另一方面,对于复杂系统,16KB的OTPROM容量如果不够,则需要采用扩展外部存储器,为了保证有效实现加密功能,应保留一部分程序在片内OTPROM,此时便涉及到单片机内、外存储器的衔接问题。

      本文针对Intel 87C196MC单片机内部存储器的不可擦除性,对两种情况下的使用问题提供了可以有效实现重复编程的方法,并可以推广至其他任何带有OTPROM的单片机系列的编程应用中。

      1 87C196MC单片机内部存储器的编程方式

      Intel 87C196MC单片机支持三种编程方式:自动编程方式(使87C196MC单片机不用EPROM编程器即可从外部EPROM对自己编程)、从机编程方式(给外部EPROM编程器提供了一个标准接口)和实时编程方式(运行中编程方式,可以在软件控制下实时对单个EPROM单元编程)。和其他方式不同,实时编程可以在不进入全EPROM编程方式下完成。

      对于Intel 87C196MC单片机的OTPROM只能编程,不能擦除,但在编程时可以验证是否已确实编程。对0TPROM可以采用2种编程方法:在从机编程方式下或在专门的OTPROM编程方式下编程。OTPROM为87C196MC单片机提供了辅助的存储器保护手段,它可以禁止总线控制器执行外部取指周期,若企图把一个外部地址装载到PC寄存器,芯片将复位。这种自动复位功能对跑飞的代码也提供了一种额外的恢复手段。使用时应根据实际需要采取不同的编程方式。

      2 87C196MC单片机内部存储器的重复编程方法

      单片机87C196MC的EA引脚(外部访问允许端,87C196MC PLCC84-36脚)用来控制访问内部存储器或外部存储器。当EA=O时,所有访问都是对片外存储器的;当EA=1时,对2000H~5FFFH单元的访问都是对片内OTPROM/ROM的。编程方式下,EA=12.5 V。由于复位时EA的电平被锁存,难以通过外部硬件电路来实现程序空间的选择。这里通过应用程序语句来控制程序地址范围,相当于EA的电平变化作用。本文主要应用了Intel汇编语言的长跳转指令UMP来实现控制访问内、外存储器的功能,下面介绍两种常用的方法。

      2.1片内编程操作方法

      所谓87C196MC单片机OTPROM的不可擦除性,实质上是不可实现从“0”到“1”的编程,而只能完成从“1”到“O”的编程。以下通过简单的程序实例来介绍这种方法。

      LJMP NEXTl

      CSEG AT 2600H

      NEXTl:……

      上述语句实际上代表的是LJMP2600H.其机器码为E79C04,当地址2600H变化时,得到一组对应的机器码,通过对这一组机器码进行分析,就可以得到该方法的原理,如表1所列。

ic72新闻中心

      机器码E79C04的后两个字节代表了汇编程序语句中的地址(04代表了2600H,14代表了3600H……)。当一个字节从4位全是“1”变成4位全是“O”,且每次只有一个“l”变为“0”时,可以有多种不同的变法,如表2所列。

ic72新闻中心

      由于87C196MC单片机的OTPROM只能完成从“1”到“O”的编程,而87C196MC单片机的程序从2000H开始执行,因此可以在程序从2000H执行一小段后进行跳转,例如首先跳至4100H(对应的机器码为E79C1F)再存储程序的其他部分。下一次使用时,把机器码E79C1F改为E79C1E(对应地址为4000H),程序则跳至4000H开始执行,4100H以后的程序段不再执行。再下一次使用时,把机器码E79C1E改为E79C1c(对应地址为3A00H),程序则跳至3A00H开始执行,4000H以后的程序段不再执行,以此类推(即机器码的最后一个字节变化为F→E→c,对应表2中第一组的变化),即可以重复使用同一片单片机进行多次编程操作。

      这种方法中,单片机87C196MC的引脚EA接高电平。它适用于程序简短且没有扩展外部存储器,只有内部存储器可用的情况。

      2.2片内、外编程操作方法

      如果内部存储器容量不够或因为其他方面需要,要求扩展外部存储器时,当然可以选择容量较大的外部存储器,而不使用内部存储器,但这样一来,程序的保密性将难以实现,而且浪费了单片机内部的存储器空间。使用内、外结合的方法既可以满足容量需求,叉能方便的实现加密操作。

      鉴于87C196MC单片机的程序从2000H开始执行,将单片机87C196MC的引脚丽置“1”,那么单片机程序将从内部2000H开始执行。可以在程序从2000H执行一小段后(根据实际需要任意设定)进行跳转,此处与片内跳转的操作有所不同,它将直接跳出单片机87C196MC片内OTPROM的2000H~5FFFH单元的范围。当命令被执行时,会自动转入外部存储器的地址范围内,例如:LJMP8000H,其中8000H是外部存储器的地址入口,这样就从片内存储器转入到外部存储器了。可以通过修改外部存储器(可重复擦写)的程序来进行程序的调试,非常方便。当然,如果需要从外部存储器转入内部存储器时,操作方法是类似的。

      结  语

      本文详细分析介绍了两种可以实现可重复编程的单片机的使用方法,而且这两种方法可以推广至其他任何带有0TPROM的单片机编程,编程的思路完全相同,具体实验证实了这两种方法具有切实可行性。

 
【相关文章】
·OTPROM型单片机内内部存储器的使用研究
·基于Flash存储器的嵌入式文件系统设计
 
 
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