当前位置:首页 > 智能硬件 > 智能硬件
[导读]然而基于该芯片的存储系统中有些问题,如各种地址总线之间译码的问题和在硬件级别上的寻址问题以及其他问题,因此本文试图把这些问题一一讲述清楚,然后在此基础上给出具体的存储接口电路,最后简要阐述了基于该电路的存储系统在uClinux中的实现和配置。

摘要: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[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
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶

推进卓越制造,扩大产能并优化布局 苏州2025年9月5日 /美通社/ -- 耐世特汽车系统与苏州工业园区管委会正式签署备忘录,以设立耐世特亚太总部苏州智能制造项目。...

关键字: 智能制造 BSP 汽车系统 线控

慕尼黑和北京2025年9月4日 /美通社/ -- 宝马集团宣布,新世代首款量产车型BMW iX3将于9月5日全球首发,9月8日震撼亮相慕尼黑车展。中国专属版车型也将在年内与大家见面,2026年在国内投产。 宝马集团董事...

关键字: 宝马 慕尼黑 BSP 数字化

北京2025年9月4日 /美通社/ -- 在全球新一轮科技革命与产业变革的澎湃浪潮中,人工智能作为引领创新的核心驱动力,正以前所未有的深度与广度重塑各行业发展格局。体育领域深度融入科技变革浪潮,驶入数字化、智能化转型快车...

关键字: 人工智能 智能体 AI BSP

上海2025年9月2日 /美通社/ -- 近日,由 ABB、Moxa(摩莎科技)等八家企业在上海联合发起并成功举办"2025 Ethernet-APL 技术应用发展大会"。会议以"破界•融合...

关键字: ETHERNET 智能未来 BSP 工业通信

传感器模块能实现便捷无接触的后备箱或侧滑门开启,适配各种车辆架构 该24 GHz雷达传感器可集成于保险杠或底盘上,并通过特定的手势或脚部动作触发响应 已为多家欧洲主流车企启动量产交付 德国布尔2025...

关键字: 传感器 BSP 触发 保险杠

以高效节能方案绘制AI算力绿色未来 上海2025年8月29日 /美通社/ -- 8月28日,台达受邀出席"2025中国智算产业绿色科技大会",全方位分享台达在智算领域的前沿洞见与绿色解决方...

关键字: AI 可持续发展 数据中心 BSP

淄博2025年8月29日 /美通社/ -- 8月26日至27日,TÜV南德意志集团(以下简称"TÜV南德")受邀参加由淄博市...

关键字: BSP 人工智能 信息安全 新加坡

北京2025年8月28日 /美通社/ -- 近日,北京亦庄创新发布消息,北京经济技术开发区(简称北京经开区,又称北京亦庄)以"高效办成一件事"为抓手,围绕企业信用修复的全流程全环节,打造经开区特色的&...

关键字: 数字化 集成 BSP 数据共享

深圳2025年8月27日 /美通社/ -- 2025年8月27日,华测检测认证集团股份有限公司(简称CTI华测检测,股票代码300012)与北京戴纳实验科技股份有限公司(简称戴纳科技)在华测集团上海基地完成战略签约,双方...

关键字: TI AI BSP 智能化
关闭