历史上的今天
返回首页

历史上的今天

今天是:2025年03月31日(星期一)

正在发生

2018年03月31日 | MCS96系列单片机的数据存储器扩展技术解析方案

2018-03-31 来源:eefocus

    MCS96系列单片机是一种16位字长,比MCS51系列单片机功能更全、性能更高的单片机,在仪器仪表、过程控制等领域应用极为广泛。在采用MCS96系列单片机的应用开发中,我们碰到一个难题:当需要大容量的数据存储时,数据存储器的扩展如采用与MCS51系列单片机同样的方法则无法工作。因为其内存体系结构采用程序存储器与数据存储器统一编址的普林斯顿结构,程序存储器的地址与数据存储器的地址不能相同;而MCS51系列单片机采用程序存储器与数据存储器分开编址的哈佛结构,程序存储器的地址与数据存储器的地址不冲突,可以相同,因而其数据存储器扩展容易,而且整个数据存储器地址空间连续。MCS96系列单片机的普林斯顿内存体系结构决定了不能简单采用与MCS51系列单片机相同的数据存储器扩展技术。本文针对MCS96系列单片机的内存体系结构特点给出一种段式管理的大容量的数据存储器扩展技术。

    1 段式管理的大容量数据存储器扩展技术

    设计思想概述:针对MCS96系列单片机的存储结构特点,可看出扩展的数据存储器的低16位地址不能与程序存储器的地址相同,因此,必须从MCS96系列单片机的内存体系结构中找出一个专门的区域。本文将此区域定义为段,对其进行扩展,通过各段的高地址来区分不同段。由于各段的实际物理地址是不相连的,从用户角度看,直接使用物理地址编程很麻烦,因此设计一个逻辑段表来管理,并且设计一个简单的子程序来完成逻辑地址与物理地址的转换,从而便于用户编程。具体过程如下。

    1.1 段的设置区域

    根据图1所示MCS96系列单片机的内存体系结构分配图可以看出,0100H~1FFDH,4000H~0FFFFH两个区域可以给外部存储器及I/O口使用。0100H~1FFDH的区域较小,考虑到一般应用系统的程序较短,只有同KB,I/O口地址更少,因而可以将此区域分析给外部程序存储器与I/O 口。4000H~0FFFFH区域分配给外部数据存储器。由于一般数据存储顺芯片的存储地址容量为2NKB(N为大于零的整数),因此,这48KB的区域可以划分为32KB与16KB的两个区间。如果要求大容量存储地址空间,则可以把以上48KB的区域整个看成一个段,或者将区域的一部分看成一个段,多设置几个这样的段就可以解决。

   /batchupload/articleimg/20120220/13297310507442.gif?imageView2/2/w/550

    1.2 段的存储空间的最佳设置

    由于段的空间的设置区域在4000H~0FFFFH的48KB的存储地址空间,因而有三种段的存储地址空间大小的设置方案。

    ①每段设为起始地址相同的32KB;

    ②每段都设为48KB;

    ③一些段设为48KB;一些段设为32KB。

    由于方案2与3采用32KB的存储区间与16KB的存储区间组成段,因而在硬件设计方面使地址译码器与存储器的连接复杂,更不便于对各段存取管理,尤其对于数据存储器采用单个大容量的EEPROM或FLASH RAM时,硬件设计更是困难;而方案1则只采用32KB的芯片组成段,而且起始地址相同,对于数据存储器采用多个32KB的RAM芯片,或者数据存储器采用单个大容量的EEPROM或FLASH RAM芯片中(可在其内部划分为多个32KB段),在硬件设计方面非常简单,也便于用逻辑段表进行存取管理。因而要用方案1,即段的存储空间大小的最佳设置为32KB。

    1.3 段的存取控制

    1.3.1 存储器逻辑段与物理段的关系

    由于段的存储地址空间大小的最佳设置为32KB,各段的实际物理地址为物理段号加上物理段内地址,因此,可设物理段号的存储单元为8bit。这样,整个扩展数据存储器容量为256×32KB,即8MB,对于一般的单片机应用系统已经远远满足了。由于各物理段之间地址不连续,用户直接使用物理地址编程不方便,因而要采用连续的逻辑地址供用户使用,来对各物理段访问。逻辑地址分为逻辑段号与逻辑偏移地址两部分,逻辑段号的存储单元也为8bit,但由于逻辑偏移地址为16bit,因而一个逻辑段的大小为64KB,地址从0000H~0FFFFH,即1个逻辑段与2个物理段相对应,所以逻辑段的个数为实际物理段的个数的一半。对物理段与逻辑段进行编号,设逻辑段的个数为N个,编号为0,1,2,…,N-1,可以用图2来表示二者的对应关系。

   /batchupload/articleimg/20120220/13297310508083.gif?imageView2/2/w/550


    1.3.2 逻辑段表设计与段的存取管理

    为了便于对段的存取管理控制,设计一个逻辑段表,表的内容为逻辑段号。因为1个逻辑段为64KB,它与2个物理段(每段32KB)相对应,因而逻辑段表示的长度为实际物理段总数的一半。设有N个段,逻辑段表如图3所示。例如:有8个32KB的物理段,逻辑段表的长度为4B,逻辑段表的内容为:0,1,2, 3。实际的物理段号为:0,1,2,3,4,5,6,7。每个逻辑段号与2个物理段号相对应。

 

    另外,为了便于存取控制,设计一个将逻辑地址自动转换成物理地址的子程序,子程序必须简单。经过分析,把每个32KB的物理段的起始地址都设为8000H,即每个32KB的物理段的段内地址都是从8000H~0FFFFH。根据逻辑地址与物理地址的对应关系,笔者设计了一个子程序,由于结构简单,只给出具体流程图,如图4所示。子程序的入口参数为逻辑段号与逻辑偏移地址,返回结果为物理段号与物理段内地址。这样,对段的存取访问可先查逻辑段表查出逻辑段号,再调用该子程序实现。

    2 设计举例:8096扩展128KB的RAM

    分析:由于地址空间为128KB,因此可以设置4个大小同为32KB的段,每段选用1个62256芯片。电路原理分析:8096的P3口输出直接作为数据总线使用,同时外接74LS373的输出,作为低地址总线A0~A7;P4口的P4.0~P4.6作为高地址总线A8~A14使用,P4.7经过一反相器连接74LS139(双2~4译码器)的1G(使能器);P1.1、P1.0分别与74LS139译码器的两个输入端1A1、1A0相接。P1.1、 P1.0、P4.7分别作为高地址总线A17、A16、A15使用。译码器的输出1Y3、1Y2、1Y1、1Y0分别与4个寄存器62256的片选信号 CS相接。这样可以得出:段0存储器的物理地址为08000H~0FFFFH,段1存储器的物理地址为18000H~1FFFFH,段2存储器的物理地址为28000H~2FFFFH,段3存储器的物理地址为38000H~3FFFFH;而逻辑地址为00000H~1FFFFH。逻辑段表的内容为0、1,具体电路如图5所示。

   7

    3 总结

    这种段式管理的数据存储器扩展技术简单方便,具有很大的优越性,具体体现在以下几方面:从应用角度看,此技术能够实现大容量的数据存储器的扩展,数据存储器可采用RAM、EEPROM、FLASH RAM等;最大的扩展容量为8MB,远远超出了一般应用系统的数据存储器扩展需求。从用户角度看,用户在编程时不必考虑实际物理数据存储器的地址空间是否连续,通过段式管理,使用连续的逻辑地址来编程,克服了不连续物理地址空间的缺陷,而且,对各段存储的数据提供了保护;在一般的大数据量的单路信号检测与处理系统中,此技术使得用户对连接采集数据的存取是透明的,不受硬件的局限,便于用各种高级语言开发设计。从硬件角度看,对于数据存储器采用多个32KB 的RAM芯片,各存储段相互独立,互不影响,各段的存储器芯片的故障也不会对整个系统造成很大影响;在一般的多数大数据量的信号检测与处理系统以及由单片机组成的集散式控制系统中,可以为每路采集的数据分酌情不同的段来存储,这样对各段存储的数据提供了保护,提高了整个系统的可靠性,应用效果是非常理想的。对于数据存储器采用单个大容量的EEROM或FLASH RAM芯片时,硬件电路更为简单,不需要译码器等电路。


推荐阅读

史海拾趣

Amerace Electronic Components公司的发展小趣事

随着公司技术的不断提升和产品质量的持续保证,Amerace Electronic Components公司开始积极拓展全球市场。公司通过与国际电子行业的领军企业建立战略合作关系,成功将产品打入国际市场。同时,Amerace还在全球范围内设立了多个生产基地和销售网络,以满足不同国家和地区的客户需求。这种全球化的战略布局使得Amerace在全球电子元件市场中占据了重要地位。

FRONTIER公司的发展小趣事

背景:此故事基于假设存在一个专注于超级计算机研发的FRONTIER公司。

发展故事:近年来,随着大数据和人工智能技术的飞速发展,超级计算机在科研、工业等领域的应用越来越广泛。FRONTIER Supercomputing作为该领域的佼佼者,成功研发出了世界上首台突破百亿亿次计算瓶颈的超级计算机——Frontier。该计算机以其卓越的性能和广泛的应用价值,在多个领域取得了突破性成就,如太空探索、气候建模、基因组学等。Frontier的成功不仅为公司赢得了国际声誉,也为全球科技进步贡献了重要力量。

Exar公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,Exar公司始终坚持以创新为核心竞争力。公司不断投入研发资金,加强技术创新和产品研发力度,推出了一系列具有自主知识产权的新产品。同时,Exar还积极关注行业发展趋势和市场动态,不断调整和优化产品线,以适应市场的变化和发展。在未来,Exar将继续坚持创新驱动的发展战略,努力成为电子行业的领军企业。

请注意,以上故事框架仅供参考,具体的故事内容需要根据实际情况进行补充和完善。

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

随着公司业务的不断拓展,Dongguan City Niuhang Electronics Co.LTD意识到技术创新的重要性。公司投入大量资金和技术人员,专注于芯片新技术、封装自动化的研究和开发。经过数年的努力,公司成功研发出一系列高性能的二极管、整流器等产品,其中多项技术获得国家级发明专利。这些创新产品不仅提升了公司的市场竞争力,也为公司赢得了业界的广泛认可。

Box Enclosures公司的发展小趣事

随着电子行业的快速发展,市场对机箱和外壳产品的要求也越来越高。Box Enclosures公司敏锐地捕捉到了这一市场变化,开始加大在技术研发上的投入。公司成功开发出一系列具有创新性的产品,不仅满足了市场的需求,还引领了行业的发展方向。这些技术创新为Box Enclosures公司带来了更多的商业机会和市场份额。

BusBoard公司的发展小趣事

BusBoard公司的创始人李明,是一位具有远见卓识的电子工程师。他看到电子行业正处于飞速发展的阶段,但市场上缺乏一种高效、灵活的电路板解决方案。于是,他毅然决然地创立了BusBoard公司,致力于研发和生产标准化的电路板总线板,为电子设备制造商提供便捷的定制和升级服务。通过不懈努力,BusBoard公司的产品在市场上获得了广泛认可,为公司的发展奠定了坚实基础。

问答坊 | AI 解惑

SPARC V8结构嵌入式微处理器开发环境的设计实现之三

2.2.3 调试环境设计 调试方式一般从距离主机的位置可以分为:基于主机的调试、远程调试两种。前者调试是基于桌面系统的指令集模拟器,如ARM的SKYEYES、SPARC 的TSIM和ATI的MNT等。调试方法都是将编译好的程序下载到模拟器上,在模拟器上运行程 ...…

查看全部问答>

vhdl语法错误

Error: Node instance \"u1\" instantiates undefined entity \"counter10\"怎么办?…

查看全部问答>

如何编写arm7挂载IDE硬盘驱动

各位兄台,小弟初学嵌入式,老师给一题目,要在arm7挂载IDE硬盘,驱动自己编写。对于本菜鸟实在是难,所以在此向各位高手请教,望予以支持,小弟没齿难忘。 小弟初到此,小小10分双手奉上~…

查看全部问答>

关于定时器的问题

我在做一个定时器,想要用lcd显示秒、毫秒、微秒。秒和毫秒都是3位显示,精确到0.1ms,在进行各个显示的时候,在微秒进位到秒的时候,显示到256后就自动清零了并且一直没有进位,如果小于256就没有问题,毫秒就会像秒进位。部分程序如下: #includ ...…

查看全部问答>

WinCE5.0操作系统定制

    我现在已经有了开发板和其相应的BSP,另外附加有几个I/O模块的板子(它们的驱动都有,还有SDK也有),在做系统定制(裁减)的时候,怎么处理才能个让这几块板子也能用?是不是得改BSP里面的一些东西(怎么设置中断什么的),或者其它 ...…

查看全部问答>

请教关于C8051F040+CP2200的问题 总是发现自动协商失败

我自己划的板子由C8051F040和CP2200组成 使用PM34-1006变压器进行输入网络信号  发现程序初始化没有问题 但是CP2200时钟无法完成自动协商 我曾经买了块C8051F020的网络开发板 使用Silabs成功使用了UDP通信 所以我把CP2201的四根网络输入 ...…

查看全部问答>

手机07版_杭州公交查询

手机支持MIDP2.0都能用,完全免费,要的发邮件给我 zhanghong504@163.com…

查看全部问答>

远程光传感

光电二极管将一种基本物理现象(光)转换为电形式(电流)。设计工程师系统地将光检测器电流转换为可用电压,让光电二极管信号的处理易于控制。处理光传感电路问题的方法有很多,但我碰到了一个特殊问题。如何用一种能够远程或者通过一个大寄生电容 ...…

查看全部问答>