基于S3C4510B的存储系统原理与设计_第1页
基于S3C4510B的存储系统原理与设计_第2页
基于S3C4510B的存储系统原理与设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于S3C4510B的存储系统原理与设计摘要:S3C4510B是三星公司生产的基于ARM核的16/32位RISC微处理器,因其很高的性价比而得到广泛的应用。然而基于该芯片的存储系统中有些问题,如各种地址总线之间译码的问题和在硬件级别上的寻址问题以及其他问题,往往因为在现有的文献中没有讲到而令人感动迷惑,但它们对系统硬件和软件的设计却非常重要,因此本文试图把这些问题一一讲述清楚,然后在此基础上给出具体的存储接口电路,最后简要阐述了基于该电路的存储系统在uClinu摘要:S3C4510B是三星公司生产的基于ARM核的16/32位RISC微处理器,因其很高的性价比而得到广泛的应用。然而基于该芯片的存

2、储系统中有些问题,如各种地址总线之间译码的问题和在硬件级别上的寻址问题以及其他问题,往往因为在现有的文献中没有讲到而令人感动迷惑,但它们对系统硬件和软件的设计却非常重要,因此本文试图把这些问题一一讲述清楚,然后在此基础上给出具体的存储接口电路,最后简要阐述了基于该电路的存储系统在uClinux中的实现和配置。关键词:寻址,内部系统总线,外部地址总线,Bank地址1.引言 对于嵌入式系统的开发人员来说,深刻地理解其存储系统的寻址原理和有效的管理存储系统对正确高效地设计嵌入式系统的硬件和底层软件编程具有重要的意义。目前嵌入式系统中最常用的存储器包括有EEPROM、FLASH、NormalDRAM和

3、Sync.DRAM等。本文所采用的存储器包括有SDRAM和FLASH。S3C4510B(以下简称4510)微处理器是构建在ARM核ARM7TDMI之上的,ARM7TDMI的地址总线为32位的,4510的内部系统总线却是26bit:SA25:0,它的外部地址总线却是22bit:ADDR21:0,它们之间是如何译码的,而仅用14根外部地址总线为什么能够访问多达16MB的内存地址空间,本文就试图回答这些问题。最后还介绍了基于S3C4510B的存储系统在硬件级别上的设计即接口设计和uClinux中对存储系统编程的实现。2.基于S3C4510B的存储系统原理2.1.32位地址总线与26位内部系统总线的关

4、系 ARM7TDMI把存储器看作是从零向上增长的许多字节的线性集合,0字节到3字节为第一个字,4字节到7字节为第二个字如此等等,它的地址总线是32位的,而4510的内部系统总线却是26bit的,也就是说它能够寻址的最大空间是226byte,即64MB的地址空间0x00000000x3FFFFFF。很显然构建在ARM7TDMI上的RISC微控制器4510的内部地址总线仅用到了ARM7TDMI的32位地址总线的低26位,并且是一一对应的相连。2.2.4510寻址原理 以SDRAM芯片HY57V1620HG为例说明。该芯片的内部存储组织是4Banks*1M*16Bit,即共有4个Banks,每Ban

5、k中有1M个半字(16Bit)。因为该芯片引脚中有行地址锁存引脚RAS和列地址锁存引脚CAS,所以我们可以把每Bank看作如下图所示的一张存储单元阵列表格。其中每一个表格代表16Bit的数据存储单元。在实际工作中,首先Bank地址与相应的行地址是同时发出的,然后再同时发送列地址寻址命令与具体的操作命令(是读还是写),这时我们就先后选中了Bank、行地址和列地址,因此也就唯一确定了该存储单元阵列表格中的一个存储单元。至此我们就能明白了仅用它的12根地址线却能够访问8MB地址空间的问题。3.存储系统接口电路具体设计 从2.2节的分析可以知道所谓的片选信号对4510来说就是存储器组选择信号。4510

6、把nRCS<5:0用作FLASH的片选信号,把nSDCS3:0用作SDRAM的片选信号。从参考文献3看到HY57V1620的LDQM和UDQM两引脚是起到DataInput/OutputMask的作用。存储系统是如何利用这两个引脚的呢?当4510执行内存中半字数据读取指令LDRH、字节数据读取指令LDRB等指令时,这两个引脚就发挥作用了。例如当执行LDRB时,4510就会发出控制信号使得SDRAM1的UDQM、SDRAM2的LDQM和UDQM有效,就是它们把32位数据中的高24位屏蔽掉,从而进行字节读取。LDQM是Low(byte)DQMask的缩写。UDQM则是Upper(byte)D

7、QMask的缩写。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中。部分代码如下:.#defineDSR0(20)/

8、*ROMBank0数据宽度为半字*/.#defineDSD0(316)16)10)/*RAMBank0基指针是0x0100*/真正进行存储系统映射的代码在Linux-2.4.x/Arch/Armnommu/Boot/Compressed/head.S部分代码如下:.#ifdefCONFIG_ARCH_SAMSUNGldrr0,=SYSCFG/*设定系统寄存器的值*/ldrr1,=rSYSCFGstrr1,r0adrr0,SDRAM_SYSINIT_RESET/*设定初始化存储映射*/ldmiar0,r1-r12ldrr0,=SYS_INIT_BASE/*该宏定义位于上面提到的Hardware.h中,是外部存储寄存器组中第一个寄存器的地址*/stmiar0,r1-r125.结束语 本文阐述了本人在嵌入式系统设计过程中遇到的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论