位置:51电子网 » 技术资料 » 存 储 器

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

发布时间:2008/5/26 0:00:00 访问次数:523

        

    

    

    来源:微计算机信息 作者:袁夫全

    

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

    

    关键词:寻址,内部系统总线,外部地址总线,bank地址

    

    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[

        

    

    

    来源:微计算机信息 作者:袁夫全

    

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

    

    关键词:寻址,内部系统总线,外部地址总线,bank地址

    

    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[

相关IC型号

热门点击

 

推荐技术资料

循线机器人是机器人入门和
    循线机器人是机器人入门和比赛最常用的控制方式,E48S... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!