基于S3C4510B的存储系统原理与设计

最新更新时间:2006-08-30来源: 微计算机信息关键字:寻址  总线  寄存器 手机看文章 扫描二维码
随时随地手机看文章

  1. 引言

  对于嵌入式系统的开发人员来说,深刻地理解其存储系统的寻址原理和有效的管理存储系统对正确高效地设计嵌入式系统的硬件和底层软件编程具有重要的意义。目前嵌入式系统中最常用的存储器包括有EEPROM、FLASH、Normal DRAM和Sync.DRAM等。本文所采用的存储器包括有SDRAM和FLASH。S3C4510B(以下简称4510)微处理器是构建在ARM核ARM7TDMI之上的,ARM7TDMI的地址总线为32位的,4510的内部系统总线却是26bit:SA[25:0],它的外部地址总线却是22bit:ADDR[21:0],它们之间是如何译码的,而仅用14根外部地址总线为什么能够访问多达16MB的内存地址空间,本文就试图回答这些问题。最后还介绍了基于S3C4510B的存储系统在硬件级别上的设计即接口设计和uClinux中对存储系统编程的实现。

2.基于S3C4510B的存储系统原理

2.1.32位地址总线与26位内部系统总线的关系

  ARM7TDMI把存储器看作是从零向上增长的许多字节的线性集合,0字节到3字节为第一个字,4字节到7字节为第二个字如此等等,它的地址总线是32位的,而4510的内部系统总线却是26bit的,也就是说它能够寻址的最大空间是226byte,即64MB的地址空间0x0000000~0x3FFFFFF。很显然构建在ARM7TDMI上的RISC微控制器4510的内部地址总线仅用到了ARM7TDMI的32位地址总线的低26位,并且是一一对应的相连。

2.2.4510寻址原理


  4510采用了统一编址的方式,将系统的片内、片外存储器、特殊功能寄存器和外部的I/O设备都映射到了64MB的地址空间,同时为便于管理,又将地址空间分为若干个存储器组(Bank),包括6个ROM Bank、4个DRAM Bank、内部SRAM和特殊寄存器组等,每一个存储器组都对应一个控制寄存器,可以通过配置其中的基指针(Base Pointer)和尾指针(End Pointer)来设定每个存储器组的大小和位置。上图是DRAM#(#取0~3)组的控制寄存器。[19:10]是DRAM组基指针,该设定值左移16位即为DRAM#组的起始物理地址。因此我们可以推出每个存储器组的位置是通过4510的26位系统地址总线中高10位SA[25:16]来设定和区分的。[29:20]是DRAM组尾指针,该设定值左移16位-1即为DRAM#组的结束物理地址。因此我们还可以推出只要设定了任意一组控制寄存器中的基指针和尾指针,也就确定了该组存储器在4510可寻址空间64MB中的位置和该组存储器的大小,另一方面还可以得出如下结论:对于任一要寻址的系统地址,可以通过该地址的高10位来判断它属于哪一个存储器组,而该地址的低16位就是它在所判断存储器组中的偏移地址。事实上4510正是通过这种机制来寻址的。4510把请求地址的高10位与所有的存储器组的基指针相减来实现组选择和计算偏移地址。当选定了组和计算出偏移地址,4510就会产生相应的组选择信号并且通过物理地址总线用偏移地址去寻址外部存储器,从而完成了寻址的全过程。

2.3.26位内部系统地址总线与22根外部地址总线的关系

  4510通过设定寄存器EXTDBWIHD的值可以支持同外部存储器的8、16、32位接口,而SA[25:0]到ADDR[21:0]的地址译码就是依赖于这个不同接口的数据宽度。当4510发出字访问信号时,存储系统忽略低2位SA[1:0],即SA[2]与ADDR[0]相连,依次类推,直到SA[23]与ADDR[21]相连,同理当发出半字访问信号时,存储系统忽略低位SA[0],即SA[1]与ADDR[0]相连,依次类推,这样做的目的就是在原理图设计时4510的地址总线可以方便地与存储器的地址总线一一对应连接即可。

2.4.SDRAM的寻址问题


  以SDRAM芯片HY57V1620HG为例说明。该芯片的内部存储组织是4Banks*1M*16Bit,即共有4个Banks,每Bank中有1M个半字(16Bit)。因为该芯片引脚中有行地址锁存引脚#RAS和列地址锁存引脚#CAS,所以我们可以把每Bank看作如下图所示的一张存储单元阵列表格。其中每一个表格代表16Bit的数据存储单元。在实际工作中,首先Bank地址与相应的行地址是同时发出的,然后再同时发送列地址寻址命令与具体的操作命令(是读还是写),这时我们就先后选中了Bank、行地址和列地址,因此也就唯一确定了该存储单元阵列表格中的一个存储单元。至此我们就能明白了仅用它的12根地址线却能够访问8MB地址空间的问题。

3.存储系统接口电路具体设计



  从2.2节的分析可以知道所谓的片选信号对4510来说就是存储器组选择信号。4510把nRCS<5:0>用作FLASH的片选信号,把nSDCS[3:0]用作SDRAM的片选信号。从参考文献3看到HY57V1620的LDQM和UDQM两引脚是起到Data Input/Output Mask的作用。存储系统是如何利用这两个引脚的呢?当4510执行内存中半字数据读取指令LDRH、字节数据读取指令LDRB等指令时,这两个引脚就发挥作用了。例如当执行LDRB时,4510就会发出控制信号使得SDRAM1的UDQM、SDRAM2的LDQM和UDQM有效,就是它们把32位数据中的高24位屏蔽掉,从而进行字节读取。LDQM是Low (byte)DQ Mask的缩写。UDQM则是Upper (byte) DQ Mask的缩写。DQ指SDRAM的输入/输出数据。

  上图是存储系统电路原理图。两片HY57V1620的并联设计是为了充分发挥32位MPU的性能

4.存储系统在嵌入式操作系统uClinux中的实现与配置
  所谓的存储系统在uClinux中的实现与配置实质上就是对4510的各个存储器组的控制寄存器进行设置。此处运用的是uClinux-Samsung-20020318.tar.gz版本。所谓配置存储系统所有的4510相关特殊寄存器的宏定义在Linux-2.4.x/Include/Asm-armnommu/Arch-samsung/Hardware.h中。部分代码如下:

…..

#define DSR0(2<<0)/*ROM Bank0数据宽度为半字*/

…..

#define DSD0(3<<12)/*RAM Bank0数据宽度为字*/

…..

#define ROM_BASE0_R((0x00000000>>16)<<10)/*ROM Bank0的基指针是0x000*/

…..

#define SDRAM_BASE0_R((0x01000000>>16)<<10)?/*RAM Bank0基指针是0x0100*/

真正进行存储系统映射的代码在Linux-
2.4.x/Arch/Armnommu/Boot/Compressed/head.S部分代码如下:

…….

#ifdef CONFIG_ARCH_SAMSUNG

ldr r0,=SYSCFG/*设定系统寄存器的值*/

ldr r1,=rSYSCFG

str r1,[r0]

adr r0,SDRAM_SYSINIT_RESET/*设定初始化存储映射*/

ldmia r0,{r1-r12}

ldr r0,=SYS_INIT_BASE/*该宏定义位于上面提到的Hardware.h中,是外部存储寄存器组中第一个寄存器的地址*/

stmia r0,{r1-r12}

……

5.结束语
  本文阐述了本人在嵌入式系统设计过程中遇到的关于存储系统方面问题,希望因同样问题感到迷惑的开发人员能从本文中获得启发和帮助,从而能够从更深的层次上理解和设计整个系统的硬件和软件。

参考文献:
[1]ARM7TDMI data sheet.pdf
[2]um_s3c4510b_rev1.pdf
[3]HY57V641620HG(L)T.pdf
[4]中关村在线,赵效民。理性VS激情,DDR内存的终极优化.2004-03-30
[5]李驹光、聂雪媛、江泽明、王兆卫。ARM应用系统开发详解--基于S3C4510B的系统设计[M].清华大学出版社.2003-12-01

关键字:寻址  总线  寄存器 编辑: 引用地址:基于S3C4510B的存储系统原理与设计

上一篇:FM20L08型铁电存储器的原理及应用
下一篇:基于FLASH介质嵌入式存储方案的设计与实现

推荐阅读最新更新时间:2023-10-13 10:44

安捷伦推适合多路数字总线测试的自动化开关解决方案
安捷伦科技公司宣布推出适合多路数字总线接口测试的自动化开关解决方案。自动化开关解决方案结合了Infiniium系列示波器,可用于多路总线一致性应用,包括DisplayPort、HDMI、PCI-Express®、MIPI™ D-PHY和M-PHY接口。 该解决方案包括适用于 Infiniium 一致性测试应用软件的开关矩阵软件选件,以及预先配置的、与该应用软件配合使用的开关矩阵硬件模型。支持的开关矩阵硬件模型包括 Agilent U3020AS26 和安捷伦合作伙伴BitifEye BIT-2100 系列。 该解决方案还为 SMA 和 SMP 连接测试接口以及使用 Agilent InfiniiMax 系列探头进行的直接探测
[测试测量]
PCI总线接口芯片9050及其应用
    1. 引言     PCI总线是目前应用最广泛、最流行的一种高速同步总线,具有32bit总线宽度,总线时钟频率为0~33MHZ,最大传输速率可以达到132Mbyte/s,远远大于ISA总线5Mbyte/s的速度。而且,它不象ISA总线那样把地址寻址和数据读写控制信号都交给微处理器来处理,而是独立于处理器,所以它可以支持突发传送。PCI总线与CPU无关,与时钟频率也无关,因此它可以应用于各种平台,支持多处理器和并发工作。 PCI总线协议比较复杂,因此它的接口电路实现起来也比较困难。它不但有着严格的同步时序要求,而且为了实现即插即用和自动配置,PCI接口还要求有许多的配置寄存器。对于一般的设计者来说,为了缩短开发周期,没
[嵌入式]
CAN总线在汽车领域的应用
    CAN总线是国际上应用较为广泛的现场总线之一,可实现对车辆本身的控制。对于汽车工业而言,它的实时性、灵活性、可靠性以及低成本,有着较大的市场空间。如发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN总线控制装置。 1 CAN总线的发展     在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发出来。由于这些系统之间通信所用的数据类型及对可靠性要求不尽相同,且因多条总线构成的情况复杂、线束数量增加。原以为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。此后,CAN通过IS01
[嵌入式]
基于ADSP-TS201S的图像采集处理系统
   引言 随着人们对实时信号处理要求的不断提高和大规模集成电路的迅速发展,作为数字信号处理核心和标志的数字信号处理器DSP芯片得到了快速的发展和应用。它不但可以广泛应用于通信系统、图形/图像处理、雷达声纳、医学信号处理等实时信号处理领域。就ADI公司而言,继16-bit定点ADSP21xx和32-bit浮点ADSP21xxx系列之后,日前又推出了TigerSHARC系列的新型器件。本文介绍使用该系列中的ADSP-TS201S芯片实现一个图像采集处理系统的设计方案。 系统总体方案 该系统可以完成图像的采集、处理和显示,从而实现目标识别与跟踪的智能信号处理。该系统是对摄像机数字,模拟
[应用]
基于无线现场总线网络的输煤仿真系统
1 引言        电厂的一个重要组成系统是输煤系统,目前我国的输煤系统一般都采用plc、dcs系统,输煤系统主要由翻车机给料带、轮斗机、皮带、犁煤器、碎煤机、除铁器等一系列设备组成,其中皮带系统占了重要组成部分,皮带的控制又可分为启动皮带、停止皮带、皮带跑偏报警、上下级皮带的联锁以及皮带电机的电流信号控制,皮带系统的仿真是输煤系统仿真中的一个重要方面,我们必须建立皮带系统的模型,利用此模型,可以做一些皮带正常启停,皮带故障的模拟,从而达到对工业现场的模拟,并可以用仿真系统实现模拟工业现场,调试输煤系统的目的。         就目前的情况看仿真系统一般为有线系统,在很大程度上限制了运用仿真系统在不同的地点对输煤系统进行调
[嵌入式]
M-BUS总线自动抄表系统所具有的功能特点
M-BUS总线自动抄表系统由以下几个部分组成:数据采集站(软件、硬件);M-BUS总线集中器;M-BUS总线电度表;电子远传水表(光电直读型);电子远传气表(光电直读型)骨髓炎。          M-BUS总线系统是一种专门用于用户热量测量装置的自动抄表总线结构,系统具有可靠性强、成本较低、易布线施工、维护简便等优点。以无极性的两芯数据线即可实现可靠地远传抄表、远传诊断、远程控制、定额供给、计量数据采集、数据统计分析等功能。   M-BUS总线系统具有以下特点:        ①可采用普通的双绞线电缆连接及任意总线拓扑结构(星形、树形等成都月嫂),使系统布线施工简单、扩展灵活。        ②最大的总线长度可
[嵌入式]
CAN总线系列讲座第二讲——CAN总线的结构
一  CAN 总线拓扑结构 CAN是一种分布式的控制总线,总线上的每一个节点一般来说都比较简单,使用MCU控制器处理CAN总线数据,完成特定的功能;通过CAN总线将各节点连接只需较少的线缆(两根线:CAN_H和CAN_L),可靠性也较高。 ISO11898定义了一个总线结构的拓扑:采用干线和支线的连接方式;干线的两个终端都端接一个120欧姆终端电阻;节点通过没有端接的支线连接到总线;对干线与支线的参数都进行了说明。     表1   干线与支线的网络长度参数 CAN-bus 位速率 总线长度 支线长度 节点距离 1Mbps
[嵌入式]
用单总线技术设计环境状态监控系统
    摘 要: 介绍美国达拉斯半导体(Dallas Semiconductor)公司近年推出的单总线技术及相应的芯片,具体说明了用其设计环境状态监控系统比采用传统的数据采集的方案具有更高的性能价格比。     关键词: 单总线 环境监控 计算机应用         环境状态监控系统通常用于程控机房、精密仪器室、图书馆、库房、无人值守站、变电站等场所,实时监测现场环境中的温度、湿度、烟雾、浸水及非法侵入等情况,根据设定值自动报警并驱动相关执行器。这是计算机在测控领域的典型应用的实例。通常的设计方案是选用一块性能符合要求的多路数据采集(A/D)卡,与PC机或单片机的并行口相联,然后把各种传感器送来的模拟信号经多路
[应用]
小广播
最新缓冲存储文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 综合资讯

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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