由于S3C2410是32位处理器(指令一次能够操作32位数据(运算器一次可以处理32位数据);通用寄存器多是32位寄存器;处理器内部数据通道也是32位的;处理器外部数据总线宽度通常是32位的,地址总线宽度只是代表CPU寻址范围大小,与CPU是多少位的无关,也即32位CPU的地址总线不一定是32根的,例如对于s3c2410,每一个Bank对应27根地址线,寻址能力为128MB,全部8个Bank总的寻址能力为1GB),所以为了最大限度的发挥其性能,内存最好也是32位(指数据宽度)的,(当然,在s3c2410的8个bank中,除了Bank0只能选择16/32数据位宽外,其余的7个Bank均可以单独选择8/16/32位宽的存储系统)然而市面上很少有32位宽度的单片SDRAM,所以一般都采取两片16位的SDRAM进行位扩展得到32位的SDRAM
低16位数据SDRAM连接图
高16位数据SDRAM连接图
由上两图可见,本系统扩展后的内存系统为16M×32Bit的(此处32Bit是指数据位宽度,而非地址位,可以理解SDRAM数据位宽度与地址线的条数无关,明白数据线和地址线的区别,对于下面地址线的连接方式的理解非常重要)。
一、A0~A12地址线
首先要明白这一点,在CPU的寻址空间中,字节(8位)是表示存储容量的唯一单位。(所以为什么对于51单片机来说,其16根地址线的寻址能力为64KB,注意:其单位是Byte—字节)
而对于上述已经进行扩展了的32位SDRAM存储系统,可以认为它的每一个存储单元都是4个字节的(单位是4个字节=1个字),因此当它的地址线A1:A0=01时,处理器上对应的地址线应为A3:A2=01(因为CPU的寻址空间是以Byte为单位的)。
正因为如此,SDRAM的A0引脚接到了S3C2410的A2地址线上。
以此类推,SDRAM的A12~A1引脚依次接到了2410的A14~A3地址线上。
可以认为将CPU地址线左移两位,即乘以4(32/8)。
同样的,对于16位数据位宽的SDRAM系统而言,需要将SDRAM的A0引脚连接到2410的A1地址线上面。
二、BA0~BA1地址线
K4S561632D是4M×16Bit×4Banks,共32MB
DRAM芯片在构造上的特点是,芯片上的地址引脚是复用的。(在存取DRAM芯片的某单元时,其操作过程是将存取的地址分两次输入到芯片中,每一次都由同一组地址线输入。两次送到芯片上去的地址分别称为行地址和列地址,它们被锁存到芯片内部的行地址锁存器和列地址锁存器中。可以想象,在芯片内部,各存储单元是按照矩阵结构排列的。行地址信号通过片内译码选择一行,列地址信号通过片内译码选择一列,这样就决定了选中的单元)。 /RAS是行地址锁存信号,该信号将行地址锁存在芯片内部的行地址锁存器中;/CAS是列地址锁存信号,该信号将列地址锁存在芯片内部的列地址锁存器中。
K4S561632D共有13根地址线(A0~A12)。行地址线为A0~A12,共13根;列地址线为A0~A8,共9根,可见K4S561632D一个Bank的存储容量为213×29=222=4M。(对于DRAM来说,13根地址线的最大编址空间为226=64M,可见此处K4S561632D还是留有余量的,其最大容量可以扩充到64M)
BA0~BA1是Bank选择地址线。Banks可以理解为一片16M×16Bit 的K4S561632D内部是由4片容量为4M的16Bit SDRAM扩展而成的,即16M×16Bit =4M×4Banks×16Bit。 BA0~BA1即为该4片SDRAM的片选信号。可见BA0~BA1代表了K4S561632D的最高位。
K4S561632D芯片管脚说明
综上,BA0~BA1代表了SDRAM的最高地址位。因为CPU的寻址空间是以字节(Byte)为单位的,本系统SDRAM容量为16MWord=64MByte,那就需要A25~A0(64M=226)地址线来寻址,所以BA1~BA0地址线应该接到2410的A25~A24引脚上。
当然,由上面分析可知,DRAM内存的地址线是行地址线与列地址线复用的,所以地址线的数目并不需要26条。
三、DQM信号
如前所述,32位的SDRAM存储单元以4Byte为单位进行数据访问的时候,内存会忽略CPU的A1和A0地址线(事实上,2410的A1和A0地址线也根本没接到SDRAM的芯片上)。
但是处理器如果需要访问地址偏移量为01的单个字节,就需要DQM(Data Mask)信号进行帮助,这个信号接在2410的nWEB线上。DQM信号由处理器根据当前的访问情况发出,如果当前的访问只需要低16字节,那么nWEB0和nWEB1线就会有效。
关键字:S3C2410 扩展SDRAM
引用地址:
S3C2410扩展SDRAM
推荐阅读最新更新时间:2024-03-16 14:38
一种基于ARM S3C2410X和Linux的嵌入式网络摄像机设计
引言 基于同轴电缆的视频监控系统结构复杂、稳定性差、可靠性低且价格昂贵,因而出现了嵌入式网络摄像机等远程Web视频监控系统。本嵌入式网络摄像机,采用高性能的ARM9芯片作微处理器,内置嵌入式Web服务器—Boa,通过嵌入式多任务操作系统—Linux采集摄像机视频数据;摄像机采集的视频信号数字化后经MJPEG算法压缩,压缩后的视频流再通过内部总线送到内置的Web服务器;通过在网页中嵌入图像播放器,用户可以直接通过浏览器观看Web服务器上的摄像机图像;通过通用网关接口CGI,授权用户还可以控制摄像机、云台和镜头的动作或直接通过Web实现对系统进行配置。 1 嵌入式网络摄像机系统原理及组成结构 嵌入式网络摄像机的基本原理:在嵌入式L
[单片机]
基于S3C2410 的MDK 例程移植
移植所关注的要点如下所示: 1.分散加载文件 关于散加载文件的具体内容介绍,可参考附录1“Realview MDK 中链接脚本详细解析”,这里只针对S3C2410 以及开发板的特点,给出具体的代码参考。 之前提到的S3C2410 及其开发板的一些基本参数,这里我们要关心的是SDRAM 和Nor Flash 的编址问题。通过阅读S3C2410 用户指南可知,地址分布如下: 0x0000 0000 ~~ 0x0100 0000 :32M Nor Flash 0x8000 0000 ~~ 0x8100 0000 :32M Nor Flash 0x3000 0000 ~~ 0x0200 0000 :64M SDRAM 因此,针对
[单片机]
基于ARM9芯片S3C2410实现测量监控系统的应用方案
1. 概述 目前嵌入式系统发展非常迅速,各类基于 ARM 处理器的应用开发更是如火如荼,这主要是由于嵌入式系统的高性价比和较短的开发周期短,并且可以实现于多种多样的应用系统中。本文介绍了基于三星公司的 ARM9 嵌入式芯片 S3C2410 构建的测量监控系统,以该 ARM 芯片为主 CPU,实现了交流、直流电压、电流的测量,本地及附近温度的测量以及光敏度的测量,将测量的结果存储于本地 MIB 数据库中,并通过 IP 网络协议实现远程访问监控。系统设计方案先进,集成度较高,在实践中得到了广泛的应用。 2. 嵌入式 ARM9 S3C2410X 简介 S3C2410X 是三星公司提供的基于 ARM920T 内核的 32 位 RISC
[单片机]
S3C2410 MMU(存储器管理单元)详述
MMU,全称Memory Manage Unit, 中文名——存储器管理单元。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片段。覆盖块0首先运行,结束时他将调用另一个覆盖块。虽然覆盖块的交换是由OS完成的,但是必须先由程序员把程序先进行分割,这是一个费时费力的工作,而且相
[单片机]
s3c2410/s3c2440串口波特率的计算
要正确计算串口波特率,首先要搞清楚芯片的时钟工作原理,这部分在s3c2410/s3c2440datasheet上写的比较详细,但对新手来说结合thisway同志“s3c2410完全开发流程”中的TIMER和CLOCK两个实验,边做实验边看资料,更容易理解。 我这里只根据我的失败经验谈一下设置波特率寄存器UBRDIVn的值的计算要注意的一个问题。 datasheet上UBRDIVn寄存器部分写着: UART BAUD RATE DIVISOR REGISTER There are three UART baud rate divisor registers including UBRDIV0, UBRDIV1 and U
[单片机]
S3C2410启动代码详解(2)
;======================================================================================== //在这里用IMP ORT伪指令(和c语言的extren一样)引入|Image$$RO$$Base|,|Image$$RO$$Limit|... //这些变量是通过ADS的工程设置里面设定的RO Base和RW Base设定的,最终由编译脚本和连接程序导入程序. //那为什么要引入这玩意呢,最简单的用处是可以根据它们拷贝自已 ,从把RW和ZI变量从加载域中复制到运行域中 //一个arm由RO,RW,ZI三个断组成 其中RO为代码段,RW是已经初始化的
[单片机]
基于ARM芯片S3C2410的TFT-LCD驱动方法
S3C2410是三星公司生产的基于ARM920T内核的RISC微处理器,主频率可达203MHz,适用于信息家电、Smart Phone、Tablet、手持设备、移动终端等领域。其中,集成的LCD控制器具有通用性,可与大多数的LCD显示模块接口。
PD064VT5是一种用非晶硅TFT作为开关器件的有源矩阵液晶显示器,该模块包括TFT-LCD显示屏、驱动电路和背光源,其接口为TTL电平。分辨率为640 x480像素,可通过18bit数据信号显示262 144种色彩。
1 S3C2410的LCD控制器
S3C2410中的LCD控制器可用于传输视频数据并产生必要的控制信号(像VFRAME、VLI
[嵌入式]
采用S3C2410和Linux系统的指纹识别管理系统
作者Email: newtonian@263.net
摘要:随着ARM系列处理器性能的不断提高,过去一些专属于DSP领域的运算密集型的应用,例如指纹识别等,也能够在ARM处理器上得以很好的实现。并且由于MCU的强大控制功能,以及操作系统的巨大灵活性,使得这种系统有DSP平台不可比拟的优势。本文着重介绍了基于S3C2410和Linux操作系统的指纹识别管理系统的实现方法,以及这种实现方法与传统DSP系统的异同。
指纹识别技术在金融、交通、安全等领域以及日常工作和生活中被越来越广泛地应用。指纹识别的算法中通常有大量的矩阵运算,域变换,三角函数运算等等,属于典型的运算密集型的应用,因此通常采用DSP来实现嵌入式应用。不过近期情
[嵌入式]