μPSD中存储器系统的配置

发布者:星空行者最新更新时间:2011-09-21 来源: 电子产品世界关键字:存储器系统 手机看文章 扫描二维码
随时随地手机看文章

背景

  如果对ST公司的μPSD器件有一定了解,熟悉MCS-51系列单片机的内部结构及原理,使用过PSDSOFT EXPRESS和KEIL开发设计,将对理解本文有很大的帮助。

  MCS-51单片机采用哈佛结构的系统结构,即数据存储器空间与程序存储器空间互相独立。它有16根地址总线,最大寻址能力为64K,这决定程序或数据空间不能超过64K。以上两点是本文所有讨论的前提基础。

μPSD的存储器系统结构
  μPSD由标准8032核和ST公司的PSD(可编程系统器件)构成,存储器系统包含两个主要部分,一是8032的内部存储器资源:256B内部RAM和128B内部特殊功能寄存器SFR;二是PSD中的存储器模块:主/次FLASH存储器,扩展的SRAM及控制PSD的CSIOP(Chip-Select I/O Port,类似于8051的SFR)。μPSD的主/次FLASH是完全相同的存储介质(早期的PSD813F1中的次存储器是EEPROM结构的),是两个独立的存储器。主FLASH通常分4~8块,每块16~32kb;次FLASH通常分2~4块,一般每块为8kb。μPSD中使用译码可编程译码逻辑阵列(DPLD),页寄存器PAGE,存储器控制寄存器VM,联合实现对存储器系统的配置。

关于IAP和分页技术
  为什么μPSD中要有两个FLASH?简单地说,这是为了实现IAP而设计的。IAP就是 “在应用中编程或升级代码”,其原理是:单片机中装有一套用户程序和一套代码更新程序。正常情况下,单片机运行的是用户程序;在需要程序升级时,系统会切换到代码更新程序,通过串口或其他通信口下载新的用户程序代码,并写入到原来的用户程序存储器中,更新完成后,再切换回至用户程序。基于MCS-51系统结构特点,在同一个存储器中运行主程序和改写程序是不可能实现的。所有用MCS-51来实现IAP功能的系统都必须有两个独立的存储器。实现IAP的难点在于存储器的切换控制,体现在μPSD中主要就是如何使用VM寄存器以及如何对存储器的片选控制。

  此外,随着应用要求越来越高,代码长度不断增加,64K的限制已经成为设计中的瓶颈。许多软/硬件供应商都竭力推出自己的方案以实现MCS-51对大于64K的支持,分页技术应运而生。

  分页设计中最重要的就是公共区和分页区的设置,所谓公共区就是在所有的页面中均为有效的一块存储器区。在程序空间中,64K范围(1页)内的程序是连续的,一旦超过此范围,只保留低16位,最高位将被丢弃,程序会跳回开始处运行。保证程序在页面切换时不会“跑飞”就是通过公共区实现的。分页技术的实现方法是:当程序在调用位于分页区的程序时,首先保存返回地址,然后转跳到公共区执行,再修改页寄存器到新的页号实现页面的切换,调用程序,返回到公共区,恢复原来页号,最后从保存的返回地址返回。

  公共区的大小由用户自行设定,在μPSD中通常使用主/次FLASH中的一块或多块作为公共区,如使用1块次FLASH即8KB,2块次FLSAH即16KB,1块主FLASH则是32KB,若只想使用主FLASH中的20KB作公共区也是可行的,只要将主FLASH的地址范围只定义为20K的范围就可以了。当然,公共区的大小不能超过64K。公共区必须设在64K范围的低端,这是因为MCS-51中断入口地址的原因。公共区中保存所有的公用子程序,中断服务程序,全局常数表以及系统的初始化部分及页面切换程序。

μPSD存储器的空间配置
  μPSD中存储器系统配置主要是对程序空间的设置,相对而言数据空间的配置稍微简单一点。μPSD中主/次FLASH可设置为程序或数据空间,这是由VM寄存器决定的,VM寄存器的作用如表1所示。VM的内容可在运行时由MCU进行修改,这是实现IAP的关键。在PSDSOFT软件流程中可设置主/次FLASH为程序、数据存储器或程序/数据混合存储器,实际上就是对VM寄存器上电时的默认值进行设置,换句话说,就是确定上电时主/次FLASH分别位于什么空间。

                           表1  VM寄存器各位作用


  表中,“#RD可以/不能访问”是指此存储器是否位于数据空间,“#PSEN可以/不能访问”是指此存储器是否位于数据空间,因为在MCS-51系统中对外部数据/程序空间的访问就是通过#RD和#PSEN进行区分的。举例说明:

  VM=0CH,表示主FLASH位于程序空间,次FLASH位于数据空间;

  VM=16H,表示主FLASH位于数据和程序空间,次FLASH位于程序间。

  位0用来指定SRAM是否位于程序空间,因为SRAM只在数据空间有效。位7用来指示外设IO模式的允许与禁止,具体将在后面介绍。图1可帮助对VM寄存器作用的理解。

图1 μPSD中存储器系统结构

  如图1所示,VM位0~4与#RD、#PSEN联合实现对主/次FLASH及SRAM的选择。这里是通过输出允许#OE信号进行控制的,也就是说即使存储器的地址有效(CS有效),如果#OE无效,也不能访问到此存储器的内容。主/次FLASH的#OE有两个有效输入项,由VM位3/4控制#RD是否起作用,VM的1/2位来控制#PSEN是否起作用。在VM的各位确定后,可依图1画出简化的配置结构。这里的#OE信号是对主/次FLASH的每一块同时有效的。

  在实现IAP时,通过VM来实现对主/次FLASH的空间进行换,例如,主FLASH作用户程序,次FLASH用作升级程序;正常工作时,主FLASH作程序空间,运行用户代码,在进行程序升级时,将次FLASH切换作程序空间,并运行次FLASH中的升级程序,再把主FLASH换到数据空间,对主FLASH中的用户代码进行更新。

μPSD存储器的地址配置
  μPSD中对存储器地址分配需遵守以下规则:
  规则1.主/次FLASH块FS0~FS7,CSBOOT0~CSBOOT3的地址范围不能大于其物理尺寸;

  规则2.主FLASH块FS0~FS7之间地址不能重叠;

  规则3.次FLASH块CSBOOT0~CSBOOT3之间地址不能重叠;

  规则4.SRAM、I/O、外设I/O地址不能重叠;

  规则5.主FLASH,次FLASH和SRAM,I/O,外设I/O,若地址重叠,存储器有效优先级为SRAM、I/O、外设I/O最高,次FLASH次之,主FLASH最低。

  在PSDSOFT设计中,若违反规则2、3、4会出现错误,必须修改才能进行下一步;而违反规则1只会发出警告,如果忽略一定要小心。规则5属于解释型规则,不会提出任何提示,注意地址重叠情况下优先级低的存储器不能被访问。

  μPSD中通过DPLD对每个存储器的地址进行分配,DPLD的结构如图2所示。

图2 DPLD的结构

  DPLD包括“与”阵列和“或”阵列,“与”阵中有输入项共57项,“或”阵中有输出项共16项。输入项表示可参于地址译码的信号,输出项即每个存储器的CS信号。

  DPLD的输入项中最常用的是A0~A15,页寄存器PGR0~PGR7,#RD、#PSEN、#WR、ALE。PDN是在功率管理时使用,如果在地址中加入PDN,表示只有在电源有效时地址译码才有效,通常这项是自动加入的,使用者可不用管。

  DPLD的输入项和输出项不是必须全部配置的。在对μPSD的存储器进行地址配置时,一个最重要的原则是“不超过64KB就不要分页,没有使用到的块就不必配置”。对于小的项目中没有使用到所有存储器,不用去配置,这样既简单,减少出错,又方便调试和检查。除CSIOP是必须配置的外,其他项均可根据需要进行配置。

  PSEL由外设I/O模式控制,在PIO模式下,PA口的所有I/O被设置为三态、双向MCU数据缓冲器方式,与MCU的P0口有些类似。DPLD中必须声明PSEL0和/或PSEL1的有效地址范围,在访问此地址时,PA口进入PIO方式。前面所述的VM寄存器中第7位是PIO模式允许/禁止控制,PIO模式的内部控制结构如图3所示。为避免PSEL0和PSEL1所指定的范围在程序/数据空间都有效,应在PSEL0和PSEL1中加入“!#PSEN”信号,以保证PIO模式仅在访问数据空间时有效。

使用PSDSOFT对μPSD进行配置和编程
  μPSD中PAGE是一个8位寄存器,最多可实现256个页面,PAGE寄存器与地址范围的配置是同时起作用的。如果你的系统中不论是程序还是数据存储器的设计超出了64k,必须要分页。   μPSD的PAGE寄存器的8位可以独立使用,在PSDSOFT中可定义为两种方式,即PAGING和LOGIC。PAGING就是作为分页使用,LOGIC是作为一般逻辑输入功能,类似于PLD中的节点NODE,或者CPLD中的宏MACRO。作为PAGING时,必须从最低位开始,使用N位作为PAGING,可实现2N个页面的分配,即存储器的地址配置中有2N个页面可选择。使用作为LOGIG时必须从高位开始使用,可以为之定义一个名字,可用作DPLD的输入项。MCU在运行时可以对PAGE的进行读/写操作,但是不能按位操作,也就是说必须先屏蔽再修改。

  在程序和数据均不超过64K时,不必分页,PGR0~PGR7不参加译码。现在的PSDSOFT软件中不要求用户再写地址方程式,只需要填写地址范围可以了。不使用分页时,片选的PGAE NUMBER就不能填任何值,如果填“0”则表示位于页0。在PSDSOFT中对公共区的设置方法很简单,只要不填作为公共区的存储器的片选中的“PAGE NUMBE”就可以了。

μPSD存储器配置实例
   作为本文的结束,举一个典型的 μPSD应用实例,读者可参考其存储器的配置方案。

   使用μPSD3234A-40U6器件,将FS0~FS7用作程序/数据存储器,地址在8000H~0FFFFH,分别位于页0至页7;CSBOOT0~CSBOOT3作为程序存储器,作为公共区,地址是0000H~7FFFFH。扩展SRAM位于0000H~1FFFH,CSIOP位于7F00H~7FFFH,用户I/O空间定义为7E00H~7EFFH。

  这样的存储器配置能够满足大多数分页项目的设计要求,使用了μPSD的所有存储器,不仅最大化了程序空间和数据空间,也能实现IAP功能。此方案中程序空间可达256K+32K,数据空间是256K(FLASH)+8K(SRAM)。用户可根据实际应用项目对配置进行简单修改,去掉没有使用的存储器配置。

  如果用户项目中要求实现IAP或者对主FLASH数据存储器进行擦除/修改,请一定要注意,升级代码或对FLASH进行擦除/修改操作的程序必须放于公共区,即次FLASH中。
 

关键字:存储器系统 引用地址:μPSD中存储器系统的配置

上一篇:基于SRAM的可重配置电路PLD
下一篇:C645x的串行RapidlO息线通信系统设计

推荐阅读最新更新时间:2024-03-30 21:49

基于国产铁电存储器PB85RS128工程车辆数据采集系统设计
现代工程建设飞速发展,工程车辆使用广泛,作业频繁,其地位也更加重要,为了能够及时准确地掌握工程车辆的运行状态,本文介绍一种基于铁电存储器工程车辆的数据采集系统硬件方案: 工程车辆数据采集节点框图 数据采集节点由信号调理电路和主控、RS485接口电路等构成。信号由传感器或经变送器获得,经调理电路滤波调理后,进入模数转换和计算处理,然后铁电存储器实时存储数据。系统可以对工程车辆关键部位的工作状况和参数进行监视,同时具有记录所采集数据的功能,为工程车辆的故障判断、维护、维修提供依据,是及时发现隐患的重要手段。 铁电存储器介绍: 国产PB85RS128铁电存储器的核心技术是铁电工艺和硅栅CMOS工艺技术形成非易失性存储单元,不需要
[嵌入式]
基于国产铁电<font color='red'>存储器</font>PB85RS128工程车辆数据采集<font color='red'>系统</font>设计
KLA推出全新系统,可提高存储器和逻辑产品良率
KLA公司宣布推出两款全新产品:PWG5™ 晶圆几何系统与Surfscan® SP7XP晶圆缺陷检测系统。新系统专注解决先进的存储器与逻辑集成电路制造中遇到的极其困难的问题。 KLA全新的PWG5™ 图形晶圆几何量测系统和Surfscan® SP7XP无图案晶圆缺陷检测系统支持先进逻辑、DRAM和3D NAND产品的开发与生产。 功能最强大的闪存结构是建立在称为3D NAND的体系中,类似是分子世界中的摩天大楼,堆叠结构甚至更高。96层顶级存储芯片已经投放市场,应用在最先进的移动通讯设备中,而在不断寻求空间效率和成本效益的驱使下,它很快会被具有128层或更多层级结构的3D
[半导体设计/制造]
KLA推出全新<font color='red'>系统</font>,可提高<font color='red'>存储器</font>和逻辑产品良率
赛普拉斯低引脚数HyperRAM™存储器简化嵌入式系统的设计
美国加利福尼亚州圣何塞,2016年7月6日 嵌入式系统解决方案领域的领导者赛普拉斯半导体公司(纳斯达克股票交易代码:CY)今日宣布其基于低引脚数HyperBus 接口的全新高速自刷新动态RAM(DRAM)现开始提供样片。该款64Mb HyperRAM 可用作汽车、工业和消费等各类应用的外置便笺式存储器,用于渲染高分辨率图形或运行数据密集型固件算法。该器件 拥有高达333 MBps的读写带宽,并支持3V和1.8V供电电压。 与赛普拉斯的HyperFlash NOR闪存配合使用时,HyperRAM可通过让闪存和RAM共享同一个12引脚HyperBus,为嵌入式系统提供一个简约、经济高效的解决方案。配备SDRAM和Dual-Q
[嵌入式]
赛普拉斯低引脚数HyperRAM™<font color='red'>存储器</font>简化嵌入式<font color='red'>系统</font>的设计
汽车电子系统中非易失性存储器的选择及要求
汽车系统的设计变得越来越复杂,因为要不断的加入新的功能,如高级驾驶辅助,图形仪表,车身控制和车辆信息娱乐系统。为了确保可靠、安全的操作,每个子系统均需要使用特定的非易失性存储器,以便在复位操作和电源切换期间存储信息。非易失性存储器用于存储可执行代码或常量数据、校准数据、安全性能和防护安全相关信息等重要数据,以作将来检索用途。 目前市场上主要包含这几种不同类型的非易失性存储器,如NOR 闪存、NAND 闪存、EEPROM(可擦除的可编程只读存储器)、FRAM(铁电存储器),MRAM(磁性 RAM)和 NVSRAM(非易失性静态存储器)等。每种类型存储器在不同性能指标下具有各自的优势和劣势:存储器密度、读写带宽、接口频率、耐久性、
[嵌入式]
汽车电子<font color='red'>系统</font>中非易失性<font color='red'>存储器</font>的选择及要求
如何给汽车系统选择合适的非易失性存储器
汽车系统的设计变得越来越复杂,因为要不断的加入新的功能,如高级驾驶辅助,图形仪表,车身控制和车辆信息娱乐系统。为了确保可靠、安全的操作,每个子系统均需要使用特定的非易失性存储器,以便在复位操作和电源切换期间存储信息。非易失性存储器用于存储可执行代码或常量数据、校准数据、安全性能和防护安全相关信息等重要数据,以作将来检索用途。 目前市场上主要包含这几种不同类型的非易失性存储器,如NOR 闪存、NAND 闪存、EEPROM(可擦除的可编程只读存储器)、FRAM(铁电存储器),MRAM(磁性 RAM)和 NVSRAM(非易失性静态存储器)等。每种类型存储器在不同性能指标下具有各自的优势和劣势:存储器密度、读写带宽、接口频率、耐久性、
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved