嵌入式系统第七章 ARM的存储器系统及设计_第1页
嵌入式系统第七章 ARM的存储器系统及设计_第2页
嵌入式系统第七章 ARM的存储器系统及设计_第3页
嵌入式系统第七章 ARM的存储器系统及设计_第4页
嵌入式系统第七章 ARM的存储器系统及设计_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、第第7 7章章 ARMARM的存储器系统及设计的存储器系统及设计 1 存储器系统存储器系统S3C2410X支持大、小端模式,将存储空间分成支持大、小端模式,将存储空间分成8组(组(Bank),每组大小是),每组大小是128MB,共计,共计1GB。表表2.7 62.7 6组组/7/7组的存储器映射地址组的存储器映射地址各引脚功能:各引脚功能:特殊功能寄存器特殊功能寄存器 1内存控制器(内存控制器(Memory Controller)内存控制器为访问外部存储空间提供存储器控制信号,共有内存控制器为访问外部存储空间提供存储器控制信号,共有13个寄存器个寄存器。 表表2.8 内存控制器内存控制器 (1

2、)BWSCON 总线宽度控制寄存器总线宽度控制寄存器 用来控制各组存储器的总线宽度和访问周期,各位定义:用来控制各组存储器的总线宽度和访问周期,各位定义:n3131 ST7 ST7 确定存储器确定存储器7 7组对应组对应 UB/LB UB/LB 端接口,端接口,0 =0 =不使用不使用 UB/LB UB/LB ,UB/LBUB/LB端与端与nWBE3:0nWBE3:0相连;相连;1 = 1 = 使使用用UB/LB UB/LB ,UB/LBUB/LB端与端与nBE3:0nBE3:0相连。相连。n2727 ST6 ST6、2323 ST5 ST5、1919 ST4 ST4、1515 ST3 ST3

3、、11 11 ST2ST2、77 ST1 ST1同上,同上,n3030 WS7 WS7 确定存储器组确定存储器组7 7的的WAITWAIT状态,状态,0=0=禁止禁止WAITWAIT,1=1=使能使能 WAIT WAIT 。n2626 WS6 WS6、2222 WS5 WS5、1818 WS4 WS4、1414 WS3 WS3、1010 WS2WS2、6 WS16 WS1同上。同上。n0 = WAIT disable 1 = WAIT enable0 = WAIT disable 1 = WAIT enablen29:28 DW7 确定存储器确定存储器7组的数据总线宽度。组的数据总线宽度。00

4、=字节(字节(8位)、位)、01=半字(半字(16位)、位)、10=字(字(32位)、位)、11=保留。保留。n25:24 DW6、21:20 DW5、17:16 DW4、13:12 DW3、9:8 DW2、5:4 DW1。同上。同上。 n2:1 DW0 确定存储器确定存储器0组的数据总线宽度,只读位,由组的数据总线宽度,只读位,由OM1:0状态决定。状态决定。01=半字(半字(16位)、位)、10=字(字(32位)。位)。(2 2)BANKCONn BANKCONn 控制寄存器控制寄存器 BANKCONn 控制寄存器用于控制各组控制寄存器用于控制各组nGCS的时序,各位的时序,各位定义如下:

5、定义如下:n14:13 Tacs nGCSn有效前地址的建立时间。有效前地址的建立时间。00 = 0 个个时钟、时钟、01 = 1个个时钟、时钟、10 = 2个个时钟、时钟、11 = 4个个时钟时钟n12:1112:11 Tcos nOE Tcos nOE有效前芯片选择信号的建立时有效前芯片选择信号的建立时间。间。 00 = 0个个时钟、时钟、01 = 1个个时钟、时钟、10 = 2个个时钟、时钟、11 = 4个个时钟时钟n10:810:8 Tacc Tacc 访问周期访问周期000 = 1个个时钟、时钟、001 = 2个个时钟、时钟、010 = 3个个时钟、时钟、011 = 4个个时钟时钟1

6、00 = 6个个时钟、时钟、101 = 8个个时钟、时钟、110 =10个个时钟、时钟、111 =14个个时钟时钟n7:67:6 Tcoh nOE Tcoh nOE无效后芯片选择信号的保持时无效后芯片选择信号的保持时间。间。00 = 0个个时钟、时钟、01 = 1个个时钟、时钟、10 = 2个个时钟、时钟、11 = 4个个时钟时钟n5:45:4 Tcah nGCSn Tcah nGCSn无效后芯片地址信号的保无效后芯片地址信号的保持时间。持时间。00 = 0个个时钟、时钟、01 = 1个个时钟、时钟、10 = 2个个时钟、时钟、11 = 4个个时钟时钟n3:23:2 Tacp Tacp 页模式

7、的访问周期。页模式的访问周期。00 = 2个个时钟、时钟、01 = 3个个时钟、时钟、10 = 4个个时钟、时钟、11 = 6个个时钟时钟n1:01:0 页模式的配置(每次读写周期数)页模式的配置(每次读写周期数)00 = 1个个时钟、时钟、01 = 4个个时钟、时钟、10 = 8个个时钟、时钟、11 = 16个个时钟时钟 当当BANKCON6BANKCON6和和BANKCON7BANKCON7中的中的MT=11MT=11时,时,BANKCON0BANKCON0BANKCON5BANKCON5的的14:014:0定义与以上相同。定义与以上相同。BANKCON6BANKCON6和和BANKCON

8、7BANKCON7的的3:03:0定义有所变化,具体如定义有所变化,具体如下:下:n3:23:2 Trkd:RAS Trkd:RAS到到CASCAS的延时。的延时。00 = 2个个时钟、时钟、01 = 3个个时钟、时钟、10 = 4个个时钟时钟n1:01:0 SCAN SCAN:列地址数目:列地址数目00 = 8位、位、01 = 9位、位、10 = 10位位(3 3)REFRESH REFRESH 刷新控制寄存器刷新控制寄存器n23 REFEN 刷新使能刷新使能SDRAM:0 = 禁止禁止 1 = 使能使能SDRAM 的刷新的刷新n22 TREFMD 设置设置SDRAM 的刷新方式的刷新方式0

9、=自动刷新方式自动刷新方式 1=自刷新方式自刷新方式n21:20 Trp 控制控制SDRAM 的行周期的行周期 00 = 2个个时钟周期时钟周期 01 = 3个个时钟周期时钟周期 10 = 4个个时钟周期时钟周期 11 = 未定义未定义n19:18 Tsrc控制控制SDRAM 的列周期的列周期00 = 4个个时钟周期时钟周期 01 = 5个个时钟周期时钟周期 10 = 6个个时钟周期时钟周期 11 = 7个个时钟周期时钟周期n17:16 保留位保留位n15:11 保留位保留位n10:0 SDRAM 的刷新计数值。的刷新计数值。刷新周期刷新周期= (2= (21111 刷新计数值刷新计数值 +

10、1)/HCLK+ 1)/HCLK例如:如果刷新周期是例如:如果刷新周期是15.6 us15.6 us, HCLK HCLK 是是 60 60 MHz,MHz,则则: : 刷新计数器的值刷新计数器的值 = 2= 21111 + 1 - 60 x15.6 = 1113 + 1 - 60 x15.6 = 1113在在LinuxLinux系统的系统的/include/asm-arm/arch-/include/asm-arm/arch-s3c2410/S3C2410.hs3c2410/S3C2410.h头文件中定义了各寄存器,头文件中定义了各寄存器,其源代码如下:其源代码如下:n#define bME

11、MCON(Nb)#define bMEMCON(Nb)_REG(0 x48000000 + (Nb)_REG(0 x48000000 + (Nb)n#define BWSCON#define BWSCONbMEMCON(0)bMEMCON(0)n#define bBANKCON(Nb)#define bBANKCON(Nb)bMEMCON(Nb+1)bMEMCON(Nb+1)* *4)4)n#define BANKCON0#define BANKCON0bBANKCON(0)bBANKCON(0)n#define BANKCON1#define BANKCON1bBANKCON(1)bBANK

12、CON(1)n#define BANKCON2#define BANKCON2bBANKCON(2)bBANKCON(2)n#define BANKCON3#define BANKCON3bBANKCON(3)bBANKCON(3)n#define BANKCON4#define BANKCON4bBANKCON(4)bBANKCON(4)n#define BANKCON5#define BANKCON5bBANKCON(5)bBANKCON(5)n#define BANKCON6#define BANKCON6bBANKCON(6)bBANKCON(6)n#define BANKCON7#d

13、efine BANKCON7bBANKCON(7)bBANKCON(7)n#define REFRESH#define REFRESHbMEMCON(0 x24)bMEMCON(0 x24)n#define BANKSIZE#define BANKSIZEbMEMCON(0 x28)bMEMCON(0 x28)n#define MRSRB6#define MRSRB6bMEMCON(0 x2C)bMEMCON(0 x2C)n#define MRSRB7#define MRSRB7bMEMCON(0 x30)bMEMCON(0 x30)2 2Nand Flash Nand Flash 控制器控制

14、器S3C2410XS3C2410X支持支持Nand FlashNand Flash启动,启动代码存储在启动,启动代码存储在Nand Nand FlashFlash上。启动时,上。启动时,Nand FlashNand Flash的前的前4KB4KB(OM1:0=0OM1:0=0,地址,地址为为0 x000000000 x00000000) 将被装载到内部的固定地址中,然后开始将被装载到内部的固定地址中,然后开始执行其中的启动代码。一般情况下,该启动代码会把执行其中的启动代码。一般情况下,该启动代码会把Nand Nand FlashFlash中的内容拷贝到中的内容拷贝到SDRAMSDRAM中去,拷

15、贝完后,主程序将在中去,拷贝完后,主程序将在SDRAMSDRAM中执行。操作流程如图中执行。操作流程如图2.102.10所示。所示。 自动引导模式流程:自动引导模式流程: 复位;复位; 如果自动引导模式使能,如果自动引导模式使能,Nand Flash中的前中的前4KB代码拷贝到内部的小石头区域;代码拷贝到内部的小石头区域; 小石头映射到小石头映射到nGCS0; CPU开始执行小石头区域中的代码。开始执行小石头区域中的代码。Nand Flash模式:模式: 通过通过NFCONF寄存器设置寄存器设置Nand Flash配置;配置; 把把Nand Flash命令写入命令写入NFCMD寄存器;寄存器;

16、 把把Nand Flash地址写入地址写入NFADDR寄存器;寄存器; 读读/写数据同时通过写数据同时通过NFSTAT寄存器检测寄存器检测Nand Flash状态。读操作前或者程序执行后状态。读操作前或者程序执行后检查检查R/nB信号。信号。 (1) NFCONF (1) NFCONF 配置寄存器配置寄存器15 Enable/Disable15 Enable/Disable:NAND Flash NAND Flash 控制使能。控制使能。 0 =禁止禁止 NAND Flash 控制器控制器 1 = 使能使能 NAND Flash 控制器控制器 复位后该位自动清零,访问复位后该位自动清零,访问N

17、AND FlashNAND Flash,必须使,必须使该位置该位置1 1。14:13 14:13 保留位保留位12 12 初始化初始化ECC ECC 解码解码/ /编码编码 0 =0 =不初始化不初始化ECCECC,1= 1= 初始化初始化 ECCECC,因为,因为S3C2410 S3C2410 只支持只支持512512字节的字节的ECCECC检测检测, , 所以,每初始化所以,每初始化512512字节需初始化字节需初始化 ECC ECC 。11 NAND Flash11 NAND Flash存储器的存储器的nFCE nFCE 控制使能位:控制使能位:0= NAND flash nFCE0=

18、NAND flash nFCE(使能(使能) )、1=NAND flash 1=NAND flash nFCE (nFCE (无效无效) ),( (复位后复位后, nFCE , nFCE 自动为无效。自动为无效。) )10:810:8 TACLS TACLS :设置:设置TACLS CLE & ALE TACLS CLE & ALE 的持续时的持续时间,设置值为间,设置值为0 07 7。持续时间持续时间 = HCLK = HCLK * * (TACLS + 1) (TACLS + 1)77 保留位保留位6:46:4 TWRPH0TWRPH0 :设置:设置TWRPH0TWRPH0

19、的持续时间,设置的持续时间,设置值为值为0 07 7。持续时间持续时间 = HCLK = HCLK * * (TWRPH0 + 1) (TWRPH0 + 1)33 保留位保留位2:02:0 TWRPH1 TWRPH1 :设置:设置TWRPH1TWRPH1的持续时间,设置的持续时间,设置值为值为0 07 7 。持续时间持续时间 = HCLK = HCLK * * ( (TWRPH1TWRPH1 + 1) + 1)(2 2)NFCMD NFCMD 命令设置寄存器命令设置寄存器15:815:8 保留位保留位7:07:0 Command Command :NAND Flash NAND Flash 存

20、储器命令值。存储器命令值。(3 3)NFADDRNFADDR地址设置寄存器地址设置寄存器15:8 15:8 保留位保留位7:0 Address 7:0 Address :NAND flash NAND flash 存储器地址值。存储器地址值。(4 4)NFDATA NFDATA 数据寄存器数据寄存器15:815:8 保留位保留位7:07:0 Data Data :NAND FlashNAND Flash存储器的读出数据或写入编程数据。存储器的读出数据或写入编程数据。(5 5)NFSTAT NFSTAT 操作状态寄存器操作状态寄存器16:116:1 保留位保留位0 RnB0 RnB:NAND F

21、lashNAND Flash存储器就绪存储器就绪/ /忙标志位,由忙标志位,由R/nBR/nB引脚检测引脚检测0 = NAND Flash 0 = NAND Flash 存储器为存储器为“忙忙”, 1 = NAND Flash1 = NAND Flash存储器为存储器为“准备就绪准备就绪”。(6 6)NFECC NFECC 纠错码寄存器纠错码寄存器 23:16 ECC223:16 ECC2:纠错码:纠错码 #2#2。 15:8 ECC115:8 ECC1:纠错码:纠错码 #1#1。 7:0 ECC07:0 ECC0:纠错码:纠错码 #0#0。 在在LinuxLinux系统的系统的/includ

22、e/asm-arm/arch-/include/asm-arm/arch-s3c2410/S3C2410.hs3c2410/S3C2410.h头文件中定义了各头文件中定义了各Nand Nand FlashFlash控制寄存器控制寄存器. . 其源代码如下:其源代码如下:#define bNAND_CTL(Nb) _REG(0 x4e000000 + (Nb)#define bNAND_CTL(Nb) _REG(0 x4e000000 + (Nb)#define NFCONF#define NFCONF bNAND_CTL(0 x00) bNAND_CTL(0 x00)#define NFCMD

23、 bNAND_CTL(0 x04)#define NFCMD bNAND_CTL(0 x04)#define NFADDR bNAND_CTL(0 x08)#define NFADDR bNAND_CTL(0 x08)#define NFDATA bNAND_CTL(0 x0c)#define NFDATA bNAND_CTL(0 x0c)#define NFSTAT bNAND_CTL(0 x10)#define NFSTAT bNAND_CTL(0 x10)#define NFECC bNAND_CTL(0 x14)#define NFECC bNAND_CTL(0 x14)nFlash设

24、计3 3时钟和电源管理时钟和电源管理 S3C2410XS3C2410X的主时钟由外部晶振或者的主时钟由外部晶振或者外部时钟提供,选择后可以生成外部时钟提供,选择后可以生成3 3种时钟种时钟信号,分别是信号,分别是CPUCPU使用的使用的FCLKFCLK,AHBAHB总总线使用的线使用的HCLKHCLK和和APBAPB总线使用的总线使用的PCLKPCLK。时钟管理模块同时拥有两个锁相环,一时钟管理模块同时拥有两个锁相环,一个称为个称为MPLLMPLL,用于,用于FCLKFCLK、HCLKHCLK和和PCLKPCLK;另一个称为;另一个称为UPLLUPLL,用于,用于USBUSB设备。设备。(1

25、1)时钟源选择对时钟的选择是通过)时钟源选择对时钟的选择是通过OM3:2OM3:2实现的,如表实现的,如表2.102.10所示。所示。 表表2.10 时钟源选择时钟源选择 OM3:2=00B时,晶体为时,晶体为MPLL CLK和和UPLL CLK提供提供时钟源;时钟源;OM3:2=01B时,晶体为时,晶体为MPLL CLK提供时钟源,提供时钟源,EXTCLK为为UPLL CLK提供时钟源;提供时钟源;OM3:2=10B时,时,EXTCLK为为MPLL CLK提供时钟源,晶体为提供时钟源,晶体为UPLL CLK提供提供时钟源;时钟源;OM3:2=11B时,时,EXTCLK为为MPLL CLK和和

26、UPLL CLK提供时钟。提供时钟。 (2 2)时钟控制逻辑。)时钟控制逻辑。时钟控制逻辑决定了所使用的时钟源,是采用时钟控制逻辑决定了所使用的时钟源,是采用MPLL作为作为FCLK,还是采用外部时钟。复位后,还是采用外部时钟。复位后,Fin直接传递给直接传递给FCLK,即使不想改变默认的即使不想改变默认的PLLCON值,也需要重新写一遍。值,也需要重新写一遍。FCLK由由ARM920T核使用,核使用,HCLK提供给提供给AHB总线,总线,PCLK提供给提供给了了APB总线。总线。S3C2410X支持支持HCLK、FCLK和和PCLK的分频选的分频选择,其比率是通过择,其比率是通过CLKDIV

27、寄存器中的寄存器中的HDIVN和和PDIVN控制控制的,如表的,如表2.11所示。所示。表表2.11 分频设定表分频设定表 (3 3)电源管理。)电源管理。S3C2410X电源管理模块通过电源管理模块通过4种模式有效地控制功耗,即:种模式有效地控制功耗,即:Normal模式、模式、Slow模式、模式、Idle模式和模式和Power-off模式。图模式。图2.12所所示了示了S3C2410电源管理模式的转换关系。电源管理模式的转换关系。图图2.12 S3C2410电源管理转换模式电源管理转换模式 NormalNormal模式:模式:为为CPUCPU和所有的外设提供时钟,所和所有的外设提供时钟,所

28、有的外设开启时,该模式下的功耗最大。这种模式有的外设开启时,该模式下的功耗最大。这种模式允许用户通过软件控制外设,可以断开提供给外设允许用户通过软件控制外设,可以断开提供给外设的时钟以降低功耗。的时钟以降低功耗。SlowSlow模式:模式:采用外部时钟生成采用外部时钟生成FCLKFCLK的方式,此时的方式,此时电源的功耗取决于外部时钟。电源的功耗取决于外部时钟。IdleIdle模式:模式:断开断开FCLKFCLK与与CPUCPU核的连接,外设保持正核的连接,外设保持正常,该模式下的任何中断都可唤醒常,该模式下的任何中断都可唤醒CPUCPU。Power-offPower-off模式:模式:断开内

29、部电源,只给内部的唤醒断开内部电源,只给内部的唤醒逻辑供电。一般模式下需要两个电源,一个提供给逻辑供电。一般模式下需要两个电源,一个提供给唤醒逻辑,另外一个提供给唤醒逻辑,另外一个提供给CPUCPU和内部逻辑,在和内部逻辑,在Power-offPower-off模式下,后一个电源关闭。该模式可以通模式下,后一个电源关闭。该模式可以通过过EINT15:0EINT15:0和和RTCRTC唤醒。唤醒。 (4 4)时钟和电源管理寄存器)时钟和电源管理寄存器 S3C2410XS3C2410X通过控制寄存器实现对时钟和电源的管通过控制寄存器实现对时钟和电源的管理,相关寄存器如表理,相关寄存器如表2.122

30、.12所示。所示。表表2.12 时钟控制器时钟控制器表表2.12 时钟控制器时钟控制器( (续续) )#define Olocktime #define Olocktime 0 x000 x00 / /* * R/W, PLL lock R/W, PLL lock time count register time count register * */ /#define oMPLLCON#define oMPLLCON0 x040 x04 / /* * R/W, MPLL R/W, MPLL configuration register configuration register * */

31、/#define oUPLLCON#define oUPLLCON0 x080 x08 / /* * R/W, UPLL R/W, UPLL configuration register configuration register * */ /#define oCLKCON#define oCLKCON0 x0C0 x0C / /* * R/W, Clock R/W, Clock generator control reg. generator control reg. * */ /#define oCLKSLOW#define oCLKSLOW0 x100 x10 / /* * R/W,

32、Slow clock R/W, Slow clock control register control register * */ /#define oCLKDIVN#define oCLKDIVN0 x140 x14 / /* * R/W, Clock R/W, Clock divider control divider control * */ /在在Linux系统的系统的/include/asm-arm/arch-s3c2410/S3C2410.h头文件中定义了时钟和电源管理寄存器。头文件中定义了时钟和电源管理寄存器。其源代码如下:其源代码如下:/ /* * Registers Regi

33、sters * */ /#define LOCKTIME bCLKCTL(oLOCKTIME)#define LOCKTIME bCLKCTL(oLOCKTIME)#define MPLLCON#define MPLLCON bCLKCTL(oMPLLCON) bCLKCTL(oMPLLCON)#define UPLLCON#define UPLLCON bCLKCTL(oUPLLCON) bCLKCTL(oUPLLCON)#define CLKCON#define CLKCON bCLKCTL(oCLKCON) bCLKCTL(oCLKCON)#define CLKSLOW#define C

34、LKSLOW bCLKCTL(oCLKSLOW) bCLKCTL(oCLKSLOW)#define CLKDIVN#define CLKDIVN bCLKCTL(oCLKDIVN) bCLKCTL(oCLKDIVN)相关芯片引脚说明:相关芯片引脚说明:3.1 基本电路设计 3.1.1 电源电路设计 S3C2410X需要3.3V和1.8V两种供电电压,是由5V电源电压经 LM1085-3.3V和 AS1117-1.8V分别得到 3.3V和1.8V的工作电压。开发板上的芯片多数使用了 3.3V电压,而 1.8V是供给 S3C2410 内核使用的。5V电压供给音频功放芯片、LCD、电机、硬盘、CAN

35、总线等电路使用。具体如图3.1所示。RTC 电路的电压是电路的电压是 1.8V,实际是将电池,实际是将电池电压或电压或 3.3V电压经过两个电压经过两个 BAV99(等价于(等价于4 个个二极管串联)降压后得到的。如图二极管串联)降压后得到的。如图3.2所示。所示。图图3.2 RTC 电路的电压原理图电路的电压原理图n3.1.2 复位电路设计复位电路设计 n硬件复位电路实现对电源电压的监控和手动硬件复位电路实现对电源电压的监控和手动复位操作。复位操作。IMP811T 的复位电平可以使的复位电平可以使 CPU JTAG(nTRST)和板级系统()和板级系统(nRESET)全部)全部复位;复位;R

36、ESET反相后得到反相后得到nRESET信号。信号。图图3.3 系统的复位电路系统的复位电路n3.1.3 3.1.3 晶振电路设计晶振电路设计nS3C2410X微处理器的主时钟可以由外部时钟微处理器的主时钟可以由外部时钟源提供,也可以由外部振荡器提供,通过引脚源提供,也可以由外部振荡器提供,通过引脚OM3:2来进行选择。来进行选择。nOM3:2=00时,时,MPLL和和UPLL的时钟均选择的时钟均选择外部振荡器;外部振荡器;nOM3:2=01时,时,MPLL的时钟选择外部振荡器;的时钟选择外部振荡器;UPLL选择外部时钟源;选择外部时钟源;nOM3:2=10时,时,MPLL的时钟选择外部时钟源

37、;的时钟选择外部时钟源;UPLL选择外部振荡器;选择外部振荡器;nOM3:2=11时,时,MPLL和和UPLL的时钟均选择的时钟均选择外部时钟源。外部时钟源。 该系统中选择该系统中选择OM3:2均接地的方式,即采均接地的方式,即采用外部振荡器提供系统时钟。外部振荡器由用外部振荡器提供系统时钟。外部振荡器由12MHz晶振和晶振和2个个15pF的微调电容组成。如图的微调电容组成。如图3.4所示,所示, 图图3.4 晶振电路原理图晶振电路原理图 图图3.5所示的是所示的是S3C2410X应用系统所需的应用系统所需的RTC时时钟电路图,电路由钟电路图,电路由12MHz晶振和晶振和2个个15pF的电容组

38、成,的电容组成,振荡电路的输出接到振荡电路的输出接到S3C2410X微处理器的微处理器的XTlpll脚,脚,输入由输入由XTOpll提供。提供。12MHz的晶振频率经的晶振频率经S3C2410X内部内部PLL电路的倍频后可达电路的倍频后可达203MHz。 图图3.5 系统时钟的选择系统时钟的选择3.2 3.2 存储器系统设计存储器系统设计 在嵌入式应用系统中,通常使用在嵌入式应用系统中,通常使用3 3种存储种存储器接口电路,器接口电路,Nor FlashNor Flash接口、接口、Nand FlashNand Flash接口接口和和SDRAMSDRAM接口电路。引导程序既可存储在接口电路。引

39、导程序既可存储在Nor Nor FlashFlash中,也可存储在中,也可存储在Nand FlashNand Flash中。而中。而SDRAMSDRAM中存储的是执行中的程序和产生的数据。存储中存储的是执行中的程序和产生的数据。存储在在Nor FlashNor Flash中的程序可直接执行,与在中的程序可直接执行,与在SDRAMSDRAM执行相比速度较慢。存储在执行相比速度较慢。存储在Nand FlashNand Flash中的程序,需要拷贝到中的程序,需要拷贝到RAMRAM中去执行。中去执行。3.2.1 8位存储器接口设计位存储器接口设计 由于由于ARMARM微处理器的体系结构支持微处理器的

40、体系结构支持8 8位位/16/16位位/32/32位的存储器系统,相应地可以位的存储器系统,相应地可以构建构建8 8位的存储器系统、位的存储器系统、1616位的存储器系位的存储器系统或统或3232位的存储器系统,在采用位的存储器系统,在采用8 8位存储位存储器构成器构成8 8位位/16/16位位/32/32位的存储器系统时,位的存储器系统时,除数据总线的连接不同之处,其它的信除数据总线的连接不同之处,其它的信号线的连接方法基本相同。号线的连接方法基本相同。1 1构建构建8 8位的存储器系统位的存储器系统采用采用8 8位存储器构成位存储器构成8 8位的存储器系统。此时位的存储器系统。此时,在初始

41、化程序中还必须通过,在初始化程序中还必须通过BWSCONBWSCON寄存器中的寄存器中的DWnDWn 设置为设置为0000,选择,选择8 8位的总线方式。位的总线方式。 存储器的存储器的nOEnOE端接端接S3C2410XS3C2410X的的nOEnOE引脚;引脚; 存储器的存储器的nWEnWE端接端接S3C2410XS3C2410X的的nWEnWE引脚;引脚; 存储器的存储器的nCEnCE端接端接S3C2410XS3C2410X的的nGCSnnGCSn引脚;引脚; 存储器的地址总线存储器的地址总线A15A15A0A0与与S3C2410XS3C2410X的地的地址总线址总线ADDR15ADDR

42、15ADDR0ADDR0相连;相连; 存 储 器 的存 储 器 的 8 8 位 数 据 总 线位 数 据 总 线 D Q 7 D Q 7 D Q 0 D Q 0 与与S3C2410XS3C2410X的数据总线的数据总线DATA7DATA7DATA0DATA0相连。相连。2 2构建构建1616位的存储器系统位的存储器系统采用两片采用两片8 8位存储器芯片以并联方式可构成位存储器芯片以并联方式可构成1616位的存储器位的存储器系统,此时,在初始化程序中将系统,此时,在初始化程序中将BWSCONBWSCON寄存器中的寄存器中的DWn DWn 设置为设置为0101,选择,选择1616位的总线方式。位的

43、总线方式。 存储器的存储器的nOEnOE端接端接S3C2410XS3C2410X的的nOEnOE引脚;引脚; 低低8 8位的存储器的位的存储器的nWEnWE端接端接S3C2410XS3C2410X的的nWBE0nWBE0引脚,高引脚,高8 8位位的存储器的的存储器的nWEnWE端接端接S3C2410XS3C2410X的的nWBE1nWBE1引脚;引脚; 存储器的存储器的nCEnCE端接端接S3C2410XS3C2410X的的nGCSnnGCSn引脚;引脚; 存储器的地址总线存储器的地址总线A15A15A0A0与与S3C2410XS3C2410X的地址总线的地址总线ADDR16ADDR16ADD

44、R1ADDR1相连;相连; 低低8 8位的存储器的位的存储器的8 8位数据总线位数据总线DQ7DQ7DQ0DQ0与与S3C2410XS3C2410X的的数据总线数据总线DATA7DATA7DATA0DATA0相连,高相连,高8 8位的存储器的位的存储器的8 8位数据总线位数据总线DQ7DQ7DQ0DQ0与与S3C2410XS3C2410X的数据总线的数据总线DATA15DATA15DATA8DATA8相连。相连。3 3构建构建3232位的存储器系统位的存储器系统采用四片采用四片8 8位存储器芯片以并联方式可构成位存储器芯片以并联方式可构成3232位的位的存储器系统,如图存储器系统,如图3.8

45、3.8 所示,此时,在初始化程序中所示,此时,在初始化程序中将将BWSCONBWSCON寄存器中的寄存器中的DWn DWn 设置为设置为1010,选择,选择3232位的位的总线方式。总线方式。 存储器的存储器的nOEnOE端接端接S3C2410XS3C2410X的的nOEnOE引脚;引脚; 低低8 8位的存储器的位的存储器的nWEnWE端接端接S3C2410XS3C2410X的的nWBE0nWBE0引引脚,次低脚,次低8 8位的存储器的位的存储器的nWEnWE端接端接S3C2410XS3C2410X的的nWBE1nWBE1引脚,次高引脚,次高8 8位的存储器的位的存储器的nWEnWE端接端接S

46、3C2410XS3C2410X的的nWBE2nWBE2引脚,高引脚,高8 8位的存储器的位的存储器的nWEnWE端接端接S3C2410XS3C2410X的的nWBE3nWBE3引脚;引脚; 存储器的存储器的nCEnCE端接端接S3C2410XS3C2410X的的nGCSnnGCSn引脚;引脚; 存储器的地址总线存储器的地址总线A15A15A0A0与与S3C2410XS3C2410X的地址的地址总线总线ADDR17ADDR17ADDR2ADDR2相连。相连。图图3.8 32位存储器系统位存储器系统 3.2.2 SDRAM3.2.2 SDRAM接口电路设计接口电路设计 在在ARMARM嵌入式应用系

47、统中,嵌入式应用系统中,SDRAMSDRAM主要用于程序主要用于程序的运行空间、数据及堆栈区。当系统启动时,的运行空间、数据及堆栈区。当系统启动时,CPUCPU首先首先从复位地址从复位地址0 x00 x0处读取启动程序代码,完成系统的初始处读取启动程序代码,完成系统的初始化后,为提高系统的运行的速度,程序代码通常装入到化后,为提高系统的运行的速度,程序代码通常装入到SDRAMSDRAM中运行。在中运行。在S3C2410XS3C2410X片内具有独立的片内具有独立的SDRAMSDRAM刷刷新控制逻辑电路,可方便地与新控制逻辑电路,可方便地与SDRAMSDRAM接口。目前常用的接口。目前常用的SD

48、RAMSDRAM芯片有芯片有8 8位和位和1616位的数据宽度、工作电压一般为位的数据宽度、工作电压一般为3.3 V3.3 V。主要生产厂商有。主要生产厂商有HYUNDAIHYUNDAI、WinbondWinbond等,下面等,下面以以K4S561632C-TC75K4S561632C-TC75为例说明其与为例说明其与S3C2410XS3C2410X的接口方的接口方法,构成法,构成16M x 3216M x 32位的存储系统。位的存储系统。 K4S561632C-TC75K4S561632C-TC75存储器是存储器是4 4组组 4M 4M 16 16 位的动态存储位的动态存储器,工作电压为器,

49、工作电压为3.3 V3.3 V,其封装形式为,其封装形式为5454脚脚TSOPTSOP,兼容,兼容LVTTLLVTTL接口,数据宽度为接口,数据宽度为1616位,支持自动刷新(位,支持自动刷新(Auto-RefreshAuto-Refresh)和自)和自刷新刷新(Self-Refresh)(Self-Refresh)。其引脚如图。其引脚如图3.93.9所示,引脚功能如表所示,引脚功能如表3.13.1所示。所示。 图图3.9 K4S561632C-TC75引脚图引脚图 引脚引脚名名 称称说说 明明CLK时钟时钟时钟输入时钟输入CKE时钟使能时钟使能片内时钟信号使能片内时钟信号使能CS*片选片选为

50、低电平时芯片才能工作为低电平时芯片才能工作BA0、BA1组地址选择组地址选择用于片内用于片内4个组选择个组选择A12A0地址总线地址总线为行、列的地址线为行、列的地址线RAS*行地址锁存行地址锁存低电平时锁存行地址低电平时锁存行地址CAS*列地址锁存列地址锁存低电平时锁存列地址低电平时锁存列地址WE*写使能写使能使能写信号和允许列改写,使能写信号和允许列改写,WE*和和CAS*有效时锁存数据有效时锁存数据LDQM、UDQM数据数据I/O屏蔽屏蔽在读模式下控制输出缓冲,写模式下屏蔽输入数据在读模式下控制输出缓冲,写模式下屏蔽输入数据DQ15DQ0DQ0数据总线数据总线数据输入数据输入/输出引脚输

51、出引脚VDD/VSS电源电源/地地内部电源及输入缓冲电源内部电源及输入缓冲电源/地地VDDQ/VSSQ电源电源/地地输出缓冲电源输出缓冲电源/地地NC空空空引脚空引脚表表3.1 K4S561632C-TC75引脚功能表引脚功能表 采用两片采用两片K4S561632C-TC75K4S561632C-TC75存储器芯片可组成存储器芯片可组成16M 16M 32 32位位SDRANSDRAN存储器系统,其片选信号存储器系统,其片选信号CSCS* *接接S3C2410XS3C2410X的的nGCS6 nGCS6 引脚,引脚,具体连线如图具体连线如图3.103.10所示。所示。 图3.10 K4S561

52、632C-TC75组成的32位SDRAM存储器系统 3.2.3 Flash接口电路设计接口电路设计 FlashFlash闪存是非易失存储器,可以对称为块的存储闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。目前所做用的器单元块进行擦写和再编程。目前所做用的FlashFlash芯片芯片主要有主要有NorFlashNorFlash和和Nand FlashNand Flash两种。但这两种两种。但这两种FlashFlash芯片芯片在某些方面存在一定的差异,如:在某些方面存在一定的差异,如:NandNand器件执行擦除器件执行擦除操作简单,而操作简单,而NorNor则要求在进行写入前先

53、将目标块内所则要求在进行写入前先将目标块内所有的位都写为有的位都写为0 0; NorNor的读速度比的读速度比NandNand稍快一些;稍快一些; NandNand的写入速度比的写入速度比NorNor快很多,快很多,NandNand需需4ms4ms擦除,而擦除,而NorNor需要需要5s5s快。快。Nand FlashNand Flash的单元尺寸几乎是的单元尺寸几乎是NorNor器件器件的一半,由于生产过程更为简单,其价格低。在的一半,由于生产过程更为简单,其价格低。在NandNand闪存中每个块的最大擦写次数是一百万次,而闪存中每个块的最大擦写次数是一百万次,而NorNor的擦的擦写次数是

54、十万次。写次数是十万次。 Nor Nor具有具有XIPXIP(eXecute In PlaceeXecute In Place,芯片内执,芯片内执行)特性,应用程序可以直接在行)特性,应用程序可以直接在FlashFlash闪存内运闪存内运行,不必再把代码读到系统行,不必再把代码读到系统RAMRAM中。中。NorNor的传的传输效率很高,在输效率很高,在14MB14MB的小容量时具有很高的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大的成本效益,但是很低的写入和擦除速度大大影响了它的性能。影响了它的性能。NandNand结构能提供极高的单结构能提供极高的单元密度,可以达到高存储密度,并

55、且写入和擦元密度,可以达到高存储密度,并且写入和擦除的速度也很快。在接口方面,除的速度也很快。在接口方面,Nor FlashNor Flash和和Nand FlashNand Flash也存在着差别。也存在着差别。Nor FlashNor Flash带有带有SRAMSRAM接口,接口,NandNand器件使用复杂的器件使用复杂的I/OI/O口来串口来串行存取数据。行存取数据。1 1Nor FlashNor Flash与与S3C2410XS3C2410X微处理器接口设计微处理器接口设计SST39LF/VF160SST39LF/VF160是是1M X 161M X 16位的位的CMOSCMOS芯片

56、,芯片,SST39LF160SST39LF160工作电压为工作电压为3.03.03.6V3.6V,SST39VF160SST39VF160工作工作电压为电压为2.72.73.6V3.6V,采用,采用4848脚脚TSOPTSOP封装或封装或TFBGATFBGA封封装,装,1616位数据宽度,以字模式(位数据宽度,以字模式(1616位数据宽度)的方位数据宽度)的方式工作。式工作。SST39VF160SST39VF160的在系统编程和编程操作仅需的在系统编程和编程操作仅需3.3V3.3V电压,通过命令可以对芯片进行编程(烧写)、电压,通过命令可以对芯片进行编程(烧写)、擦除(整片擦除和按扇区擦除)以及其他操作。擦除(整片擦除和按扇区擦除)以及其他操作。SST39LF/VF160SST39LF/VF160的引脚图如图的引脚图如图3.113.11所示,引脚功能如所示,引脚功能如表表3.23.2所示。所示。 图图3.11 SST39LF/VF160的引脚图的引脚图 表3.2SST39LF160/SST39VF160引脚功能表引脚引脚名名 称称说说 明明CE*片选片选为低电平时芯片才能工作为低电平时芯片才能工作OE*输出使能输出使能用于片内用于片内4个组选择个组选择A

温馨提示

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

评论

0/150

提交评论