针对MCS96系列单片机的段式管理的大容量数据存储器扩展技术

发布者:数字小巨人最新更新时间:2018-04-06 来源: eefocus关键字:MCS96系列  单片机  数据存储器  扩展技术 手机看文章 扫描二维码
随时随地手机看文章

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

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

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

    1.1 段的设置区域

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

    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。

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

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

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

    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。

    3 总结

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


关键字:MCS96系列  单片机  数据存储器  扩展技术 引用地址:针对MCS96系列单片机的段式管理的大容量数据存储器扩展技术

上一篇:80C196MC片内波形发生器在逆变电路中的应用
下一篇:基于LM35开发的温控系统设计

推荐阅读最新更新时间:2024-03-16 15:59

STM8L151C8单片机学习例程(1)——LED闪烁
STM8L_1_LED 1.User:工程及main文件 2.Hardware:LED,Delay头文件 3.STM8L15x_StdPeriph_Driver:STM8自带库文件 4.Debug:hex文件存放于EXE文件夹 5.Function: LED闪烁 IAR工程代码: /** ****************************************************************************** * @file main.c * @author Alex——小白 * @version V1.0 * @date 2019.5.1 * @br
[单片机]
STM8L151C8<font color='red'>单片机</font>学习例程(1)——LED闪烁
瑞萨副总裁:RX诞生十周年,未来将继续成为MCU主要业务来源
日前,瑞萨电子物联网平台业务部副总裁Sakae Ito借RX系列MCU诞生十周年之际,撰文介绍了RX的诞生始末,以及未来MCU的发展方向,以下是文章详情: 瑞萨电子RX 32位MCU系列诞生已经10周年。自从我35年前(1984年)加入公司以来,我一直致力于微控制器的开发和商业化。毫不夸张地说,过去十年来我在RX家族中经历了如此多的风风雨雨,充满了喜悦和痛苦。我参与了许多产品的开发和业务项目,其中RX是最令人难忘的产品。就个人而言,RX使我有机会与公司内部和外部的许多人建立联系。在我们庆祝RX 10周年这一里程碑之际,我要再次表示感谢。 2003年,三菱和日立的半导体部门合并成立了瑞萨半导体,2010年又和NEC电子合并。
[单片机]
基于AT89C52的汽车驾驶模拟器单片机系统设计
引言   汽车驾驶模拟器是一种能正确模拟汽车的驾驶操纵动作,获得实车驾驶感觉的仿真系统。目前的汽车驾驶模拟器集合了传感器、计算机三维实时动画、计算机接口、人工智能、数据通信、网络、多媒体等多种先进技术,主要用于驾驶员的培训,也可以对微观交通进行仿真,对汽车的控制特性进行研究 。汽车驾驶模拟器具有安全性高、再现性好的特点。利用驾驶模拟器来进行研究和训练,可方便地模拟各种道路环境、天气状况,分析汽车的技术性能指标,从而可以节省大量的自然资源,具有很高的经济价值 。   在汽车驾驶模拟器中,传感控制系统的性能直接影响到整个汽车驾驶模拟系统的交互性和实时性,是衡量汽车驾驶模拟器实用性能的重要指标。传感控制系统主要由各种传感器、数据采集
[单片机]
基于AT89C52的汽车驾驶模拟器<font color='red'>单片机</font>系统设计
DIY:给单片机写个实时操作系统内核!
为了进一步把单片机的潜能发挥到极限,我一直想写个程序把单片机的所有资源都用光,但是如果依照单道程序顺序执行的方式,很难把MCU的CPU时间都充分利用,比如使用软件延时函数实际上就是在无谓地消耗着CPU的时间什么事情都不做,因为CPU一直在循环等待着条件结束,这相当于函数被阻塞了。   为了更明显地验证这一点,你可以在WINDOWS下打开VC6.0或其他的C语言编译器,写段代码如下:   #include stdio.h void main(void) {while(1) ;}   意思是让CPU不做事情在等待,你猜,这句代码会消耗掉多少CPU时间?   答案会根据不同机型而不同,如果是单核CPU的话,这句话会
[单片机]
从LCD电极读数的单片机接口技术
通过测量仪表拾取被测信号是单片机前向通道设计中常用的数据采集方式。通常,接口电路从仪表电路中取得相关的模拟信号,经过A/D转换或V/F转换送人单片机;或者取得一个频率信号,经整形后送入单片机。然而,有些测量仪表电路中可能找不到这样的信号。以电容式压力传感器血压计为例,尽管从其振荡电路中可以取得一个与压强成线性关系的频率信号,送入单片机测得压强,但这个压强并不是所要拾取的收缩压、舒张压和心率;而普通的血压计又没有智能仪表那样的通信接口与单片机通信。显然,要想通过这样的仪表拾取被测信号只有直接读取其显示屏的读数了。 本文以一个全自动血压计为例,介绍将LCD显示器读数读入单片机的接口电路。该血压计显示器为61/2位段式LCD显示器,
[嵌入式]
配置PCA的一点总结12单片机
先看代码 #include stc12.h unsigned int Last_Capture_Data=0; unsigned int New_Capture_Data=0; unsigned int g_Period=0; unsigned int g_Frequency=0; unsigned char str1 ; unsigned char str2 ; bit Capture_over = 0; sbit KEY_1 = P2^7; extern void InitLcd1602(); extern void LcdShowStr(unsigned char x, unsigned ch
[单片机]
配置PCA的一点总结12<font color='red'>单片机</font>
基于单片机AT89C51的时间/位移换向控制器设计
在实际生产过程中,常常要用到具有自动换向功能的控制部件,如机械加工中的往返运行(位移),直流电源的正反向输出,电动机的正反转运行等现象,都是当正向(或反向)运行到一定时间或一定位置时,自动换为反向(或正向)运行,周而复始的过程。实现这一过程的自动化,就是设计一套控制电路,再配以位移传感器或时间继电器。目前市场现有的时间继电器虽然可以用多个组合来满足一些使用场合的要求,但仍存在着重复计时误差大,稳定可靠运行性不高,使用不方便灵活等问题。为此,笔者研发了以单片机为核心组成的时间/位移换向控制器SWHX-1,该系统具有成本低等特点,可完全且克服以上不足。 电路组成及工作原理 SWHX-1的内部电路如图1所示。该系统分为输入输出电信号转
[单片机]
基于<font color='red'>单片机</font>AT89C51的时间/位移换向控制器设计
一种基于单片机和PSD的数制化电源
    摘 要 根据单片机80C196KC和现场可编程系统器件PSD302的特性,设计了一种数制化电源装置,提供了程序框图,并对其进行了谐波分析。它是一种高性能的通用装置,可替代传统的PWM逆变电源。     关键词 电力电子器件 电源 单片机 现场可编程系统器件         随着现代工业的发展和社会进步,人类对电能种类的需求不断增加,如要求电能有多种制式:直流稳压电源、交流工频电源、中高频感应加热电源、高压电解电源等,而且需求的数量也在不断增加。要提供这些制式的电能,就要有许多不同的电源变换装置。此外,为满足各种电气设备对电源的特殊要求,也需要一些装置对电源进行变换和控制。这些装置品种繁多,其原理
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved