1、2022-7-221嵌入式系统原理与应用技术嵌入式系统原理与应用技术 袁志勇袁志勇 王景存王景存章登义章登义 刘树波刘树波 北京北京:北京航空航天大学出版社北京航空航天大学出版社,2009.11PPT教学课件教学课件2022-7-22第第5 5章章 存储器与存储器与I/OI/O接口原理接口原理 5.1 存储器概述5.2 存储系统机制 5.3 S3C2410存储系统 5.4 S3C2410 I/O端口 2022-7-225.1 5.1 存储器概述存储器概述5.1.1 5.1.1 存储器基本概念存储器基本概念5.1.2 SRAM5.1.2 SRAM和和DRAMDRAM5.1.3 NOR FLASH
2、5.1.3 NOR FLASH和和NAND FLASHNAND FLASH2022-7-2245.1.1 5.1.1 存储器概述存储器概述存储器的一般概念和分类存储器的一般概念和分类按存取速度和在计算机系统中的地位存储器分为两大类:按存取速度和在计算机系统中的地位存储器分为两大类:主存储器:主存储器:速度较快,容量较小,价格较高,用于存储当前计算机速度较快,容量较小,价格较高,用于存储当前计算机运行所需要的程序和数据,运行所需要的程序和数据,可与可与CPUCPU直接交换信息,直接交换信息,习惯上称为主存,习惯上称为主存,又称内存又称内存(内部存储器内部存储器)。辅存储器:辅存储器:速度较慢,容
3、量较大,价格较低,用于存放计算机当前速度较慢,容量较大,价格较低,用于存放计算机当前暂时不用的程序、数据或需要永久保持的信息暂时不用的程序、数据或需要永久保持的信息,辅存又称外存辅存又称外存(外部存外部存储器储器)或海量存储器。或海量存储器。外存要配备专门的设备才能完成对外存的读写外存要配备专门的设备才能完成对外存的读写。通常,将外存归。通常,将外存归入到计算机外设一类。入到计算机外设一类。2022-7-225存储器分类n主存储器的分类按存储功能分只读存储器(ROM)随机存储器(RAM)按制造工艺分双极性MOS型2022-7-227半半导导体体存存储储器器ROMROM静态静态RAMRAM(SR
4、AMSRAM)动态动态RAMRAM(DRAMDRAM)RAMRAM掩膜型掩膜型ROMROM可编程可编程ROMROM(PROMPROM)紫外线可擦除可编程紫外线可擦除可编程ROMROM(EPROMEPROM)电可擦除可编程电可擦除可编程ROMROM(EEPROMEEPROM)组合组合RAMRAM(IRAMIRAM)闪速存储器(闪速存储器(Flash MemoryFlash Memory)通常用于计算机的通常用于计算机的CacheCache主要用于计算机的内存条主要用于计算机的内存条将刷新电路与将刷新电路与DRAMDRAM集成在一起集成在一起n主存储器的分类2022-7-228只读存储器分类只读存
5、储器分类:掩膜ROM:出厂后内部存储的数据不能改动,只 能读出。PROM:可编程,只能写一次。EPROM:用紫外线擦除,擦除和编程时间较慢,次数也不宜多。E2PROM:电信号擦除,擦除和写入时需要加高电压脉冲,擦、写时间仍较长。快闪存储器(Flash Memory):吸收了EPROM结构简单,编程可靠的优点,又保留了E2PROM用隧道效应擦除的快捷特性,集成度可作得很高。只读存储器(只读存储器(ROM)2022-7-229优点:电路结构简单,断电后数据不丢失,具有非易失性。缺点:只适用于存储固定数据的场合。电路结构Read Only Memory2022-7-2210随机存储器(RAM)优点:
6、读、写方便,使用灵活。缺点:一旦停电所存储的数据将随之丢失(易失性)。基本结构:地址译码器、存储矩阵和读写控制电路构成。Random Access Memory.2022-7-2211存储系统的层次结构存储系统的层次结构1)1)存储器是用来存储信息的部件,是嵌入式系统硬件中的重存储器是用来存储信息的部件,是嵌入式系统硬件中的重要组成部分。在复杂的嵌入式系统中,存储器系统的组要组成部分。在复杂的嵌入式系统中,存储器系统的组织结构按作用可以划分为织结构按作用可以划分为4 4级:级:寄存器;寄存器;cache cache;主存储器;主存储器;辅助存储器辅助存储器;寄存器cache主存储器 DRAM辅
7、助存储器 FALSH ROM 磁盘访问速度快慢容量大小存储系统的层次结构存储系统的层次结构n越靠近CPU的存储器速度越快而容量越小2022-7-2212 CPUCache主存储器辅助存储器大容量存储器外存储器内存储器2022-7-22131、RAM:随机存取存储器 2、SRAM:静态随机存储器3、DRAM:动态随机存储器1)SRAM读/写速度比DRAM读/写速度快;2)SRAM比DRAM功耗大;3)DRAM的集成度可以做得更大,则其存储器容量更大;4)DRAM需要周期性的刷新,而SRAM不需要 5.1.2 SRAM5.1.2 SRAM和和DRAMDRAM静态静态RAMRAM的结构的结构2022
8、-7-2214地地址址反反相相器器X X译译码码器器驱驱动动器器3232323210241024存储单元存储单元I/OI/O电路电路Y Y译码器译码器地址反相器地址反相器输出输出驱动驱动控制控制电路电路A A0 0A A1 1A A2 2A A3 3A A4 4A A5 5 A A6 6 A A7 7 A A8 8 A A9 9读读/写写 CSCS输入输入输出输出1 12 2313132321 12 2313132321 132321 2 1 2 31 31 3232由存储矩阵,地址译码器,控制逻辑和三态数据缓冲器组成。由存储矩阵,地址译码器,控制逻辑和三态数据缓冲器组成。典型典型SRAMSR
9、AM芯片芯片1 1)各)各SRAMSRAM芯片的引脚信号基本相同。芯片的引脚信号基本相同。2 2)其存储容量不同)其存储容量不同,则地址线的根数不同;则地址线的根数不同;3 3)其存储位数不同)其存储位数不同,则数据线的根数不同。则数据线的根数不同。2022-7-2215A71A62A53A44A35A26A17A08D09D110D211GND12242322212019181716151413VCCA8A9WEOEA10CSD7D6D5D4D3行译码128128存储矩阵A10A4列I/O列译码输入数据控制逻辑D7D0CSWEOEA3A0SRAMSRAM工作过程工作过程1 1)读出:)读出:
10、n 地址线地址线A A1010A A0 0送来的地址信号经译码后选中一个存储单元送来的地址信号经译码后选中一个存储单元(其中有其中有8 8个存储位个存储位),由,由CSCS、OEOE、WEWE构成读出逻辑构成读出逻辑(CS=0CS=0,OE=0OE=0,WE=1)WE=1),打开右面的打开右面的8 8个三态门,被选中单元的个三态门,被选中单元的8 8位数据经位数据经I/OI/O电路和三态门送到电路和三态门送到D D7 7D D0 0输出。输出。2 2)写入:)写入:n 地址选中某一存储单元的方法和读出时相同,不过这时地址选中某一存储单元的方法和读出时相同,不过这时CS=0CS=0,OE=1OE
11、=1,WE=0WE=0,打开左边的三态门,从打开左边的三态门,从D D7 7D D0 0端输入的数端输入的数据经三态门和输入数据控制电路送到据经三态门和输入数据控制电路送到I/OI/O电路,从而写到存储电路,从而写到存储单元的单元的8 8个存储位中。个存储位中。3 3)当没有读写操作时,当没有读写操作时,CS=1CS=1,即片选处于无效状态,输入输即片选处于无效状态,输入输出三态门至高阻状态,从而出三态门至高阻状态,从而使存储器芯片与系统总线使存储器芯片与系统总线“脱离脱离”2022-7-2216SRAM的读时序2022-7-2217 ADD CS I/O t t t RC ACS AA(地址
12、)读出单元的地址 输出数据 SRAM的写时序2022-7-2218 t WC 写入单元的地址 ADD t WP CS R/W I/O 写入数据 AS t WR t DW t DH t 存储容量的扩展2022-7-2219CSA0A91 K4 bI/O3CSA0A91 K4 bWR/CSA0A9RAMRAMI/O2I/O1I/O0I/O3I/O2I/O1I/O0WR/WR/D7D6D5D4D3D2D1D02022-7-22202022-7-2221SRAM与CPU接口 1)一般的CPU都具有和SRAM存储器接口相连的总线,因此连接方法也比较简单。微处理器与随机存储器接口的信号线一般有:2)片选信
13、号线CE:用于选中该芯片。3)读/写控制信号线OE和WE:控制芯片数据引脚的传送方向。4)地址线:用于指明读/写单元的地址。5)数据线:双向信号线,用于数据交换。2022-7-2222SDRAM存储器及其接口 1)DRAM是动态存储器Dynamic RAM的缩写,SDRAM是Synchronous DRAM的缩写,即同步动态存储器的意思。2)BA0、BAl是块地址引脚,在RAS有效时,所选中的存储块被激活,在CAS有效时,所选中的存储块可进行读写操作;CS、WE、RAS、CAS分别是片选、写、行地址选通、列地址选通;LDQM、UDQM是用于控制输入输出数据的;CLK是时钟信号引脚,SDRAM的
14、所有输入是在CLK上升沿有效,CKE是时钟信号使能引脚,当其无效时,SDRAM处于省电模式。动态随机存储器(SDRAM)2022-7-2223动态随机存储器是需要刷新存储器。动态随机存储器是需要刷新存储器。单管动态存储器是最典型的动态随机存储器,其存储单元的结构如图。SDRAM结构结构2022-7-2224自刷新逻辑行控制器控制逻辑地址行译码列译码列地址计数器地址寄存器模式寄存器阵发计数器数字输出控制4M 16 块34M 16 块24M 16 块1X译码存储单元阵列Y译码4M 16 块0输入/输出门输入/输出逻辑CLKCKEUDQMLDQMCSRASCASWEA0A1A12BA0BA1DQ0D
15、Q1DQ14DQ15行有效块选择SDRAM工作时序工作时序2022-7-2225R AH C L KS C K En S C Sn S R A Sn S C A SA D D RB AA 1 0/A PA T A(C L 2)A T A(C L 3)n W ED Q MC aC bC cC dC eB AB AB AB AB AB AB AR AD aD bD cD dD eD aD bD cD dD er pTr c dT预 处 理行 有 效写 操 作读 操 作C L=2,C L=3,B L=1Tr p=2 周 期Tr c d=2 周 期SDRAM存储器及其接口 1)片选信号线CE:用于选中
16、该芯片。若CE=0时,该芯片的数据引脚被启用;若CE=1时,该芯片的数据引脚被禁止,对外呈高阻状态。2)读/写控制信号线OE和WE:控制芯片数据引脚的传送方向。若是读有效,则数据引脚的方向是向外的,CPU从其存储单元读出数据;若是写有效,则数据引脚的方向是向内的,CPU向其存储单元写入1数据。3)地址线:用于指明读/写单元的地址。地址线是多根,应与芯片内部的存储容量相匹配。4)数据线:双向信号线,用于数据交换。数据线上的数据传送方向由读/写控制信号线控制。2022-7-22262022-7-2227SDRAM存储器及其接口 2022-7-22281)NOR和NAND是现在市场上两种主要的非易失
17、闪存技术。2)NOR Flash的读取速度比NAND Flash稍快一些,NAND Flash 的擦除和写入速度比NOR Flash快。3)NOR Flash带有SRAM接口,NAND Flash器件使用复杂的I/O口来串行的存取数据,。4)NAND Flash结构可以在给定的尺寸内提供更高的存储容量。5)NAND Flash中每个块的最大擦写次数是一百万次,而NOR Flash的擦写次数是十万次。NOR FLASH和NAND FLASH NAND Flash简介1)以页为单位进行读和编程操作,以块为单位进行擦除操作。2)数据、地址采用同一总线。实现串行读取。随机读取速度慢且不能按字节随机编程
18、。3)芯片尺寸小、引脚少,是位成本最低的固态存储器。4)芯片包含有失效块。失效块不会影响有效块的性能,但设计者需要将失效块在地址映像表中屏蔽起来。2022-7-2229NAND Flash结构2022-7-2230NAND Flash结构2022-7-2231NAND Flash操作1)K9F1208芯片有4096个Block,每个Block有32个Page,每个Page有528个Byte,Block是Nand Flash中最大的操作单元,擦除是以Block为单位完成的,而编程和读取是以Page为单位完成的。因此,对NAND Flash的操作要形成以下三类地址:2)块地址(Block Addr
19、ess);3)页地址(Page Address);4)页内地址(Column Address);5)由于NAND Flash的数据线和地址线是复用的,因此,在传送地址时要用4个时钟周期来完成。2022-7-2232NAND Flash写块操作流程2022-7-22332022-7-2234n5.2.1 存储器接口方式存储器接口方式n5.2.2 高速缓存机制高速缓存机制(CACHE)n5.2.3 存储管理单元存储管理单元(MMU)5.2 5.2 存储系统机制存储系统机制存储器接口方式存储器接口方式1)SRAM型的全地址/数据总线接口:这种类型的地址线数目和片内存储单元数一一对应,接口比较简单。拥
20、有此类接口的存储器有SRAM、EPROM、EEPROM、Nor Flash等。2)DRAM型动态存储器接口:存储单元需要定期地刷新。CPU与其接口的信号线除了有与SRAM相同的信号线外,还有RAS(行地址选择)信号线和CAS(列地址选择)信号线。一般和具有动态存储器控制器的CPU相连接。拥有此类接口的存储器有DRAM、SDRAM、DDR SDRAM等。3)串行存储器接口:与CPU以串行的方式传送地址和数据,传送速度相对较慢,多用于嵌入式系统的辅助存储器。拥有此类接口的存储器有Nor Flash、串行EEPROM、串行SRAM等。2022-7-22352022-7-22361)高速缓存控制器是微
21、处理器用于控制访问高速缓存及主存系统的桥梁,它处于微处理器和高速缓存及主存系统之间 2)用于解决主存访问速度与CPU处理速度不相匹配的一种部件(由集成于CPU芯片中的专门的高速存取电路实现)。3)或用于解决辅存访问速度与CPU处理速度不相匹配的一种部件(由主存的一部分实现)。4)需要解决缓存内容与原内容不一致的问题高速缓存机制高速缓存机制(CACHE)(CACHE)高速缓存机制高速缓存机制(CACHE)(CACHE)2022-7-2237微处理器高速缓存控制器高速缓存主存系统数据地址数据2022-7-2238存储管理单元存储管理单元(MMU)(MMU)n存储管理单元(MMU)是集成在微处理器芯
22、片内部、专门管理外部存储器总线的一部分硬件。主要用来完成虚实地址之间的转换。目前,越来越多的微处理器芯片均带有存储管理单元(MMU)。MMU完成的主要功能有:1)将主存地址从虚拟存储空间映射到物理存储空间。2)存储器访问权限控制。3)设置虚拟存储空间的缓冲特性等。微处理器MMU主存逻辑地址物理地址数据辅助存储器对换MMU管理方式1)分段方式:分段方式支持较大的、任意大小的内存区域2)分页方式:分页方式支持较小的、固定大小的内存区域3)段页方式:段页方式介于分段方式和分页方式之间。等。每种方式都有其特点2022-7-2239分页虚拟存储管理n虚拟存储空间分成一个个固定大小的页,把物理主存储的空间
23、也分成同样大小的一个个页。通过查询存放在主存中的页表,来实现虚拟地址到物理地址的变换。2022-7-2240页表第 i 页基址逻辑地址拼接物理地址页号偏移量2022-7-2241n5.3.1 S3C2410存储空间存储空间n5.3.2 S3C2410存储器接口存储器接口设计设计5.3 S3C24105.3 S3C2410存储系统存储系统S3C2410存储空间存储空间nS3C2410芯片采用的是ARM920T核,使用单一的平板地址空间.该地址空间的大小为232个8位字节,这些字节单元的地址是一个无符号的32位数值,其取值范围为0到232-1。地址空间总共为4GB,其中,1GB地址空间用于支持外部
24、存储器的连接,另外的空间有一小部分用于I/O端口或部件的寻址,其他的地址空间没有用到。2022-7-2242S3C2410存储空间存储空间2022-7-22431GB1GB1GB1GB(连接外部存储器)未使用内部控制寄存器0X0000 00000XFFFF FFFFS3C2410存储空间存储空间1)S3C2410整个地址空间(寻址范围)为4GB。2)S3C2410芯片可连接外部存储器的可寻址空间是1GB。3)有一部分地址微处理器内部占用。用于控制寄存器和I/O端口使用。4)有大部分地址空间未被使用或不能使用。2022-7-22442022-7-2245外部存储器的可寻址空间S3C2410存储空
25、间特点存储空间特点1)支持小端大端模式(可通过软件选择)。2)8个存储块中,6个用于SRAM或ROM,另2个用于SDRAM、SRAM、ROM。3)8个存储块中,7个存储块有固定起始地址,1个存储块起始地址可变。4)支持异步定时,可用nWAIT(等待)信号来扩展外部存储器的读写周期。5)可编程的总线访问宽度8/16/32位,但Bank0不能通过软件编程方式设置。6)在SDRAM中支持自主刷新和省电模式。7)所有存储器Bank可编程访问周期。8)存储器相关寄存器(见书)2022-7-22462022-7-2247存储器的控制寄存器存储器的控制寄存器内存控制器为访问外部存储空间提供存储器控制信号内存
26、控制器为访问外部存储空间提供存储器控制信号,S3C2410X存储器控制器共有存储器控制器共有13个寄存器。个寄存器。寄存器寄存器地地 址址功功 能能操作操作复位值复位值BWSCON0 x48000000总线宽度和等待控制总线宽度和等待控制读读/写写0 x0BANKCON00 x48000004BANK0控制控制读读/写写0 x0700BANKCON10 x48000008BANK1控制控制读读/写写0 x0700BANKCON20 x4800000CBANK2控制控制读读/写写0 x0700BANKCON30 x48000010BANK3控制控制读读/写写0 x0700BANKCON40 x4
27、8000014BANK4控制控制读读/写写0 x0700BANKCON50 x48000018BANK5控制控制读读/写写0 x0700BANKCON60 x4800001CBANK6控制控制读读/写写0 x18008BANKCON70 x48000020BANK7控制控制读读/写写0 x18008REFRESH0 x48000024SDRAM刷新控制刷新控制读读/写写0 xAC0000BANKSIZE0 x48000028可变的组大小设置可变的组大小设置读读/写写0 x0MRSRB60 x4800002CBANK6模式设置模式设置读读/写写xxxMRSRB70 x48000030BANK7模
28、式设置模式设置读读/写写xxx2022-7-22481、总线宽度和等待控制寄存器总线宽度和等待控制寄存器3130 29 28 27 26 25 24 23 22 21 20 19 18 17 16ST7 WS7DW7ST6 WS6DW6ST5 WS5DW5ST4 WS4DW415 14 13 12 11109876543210ST3 WS3DW3ST2 WS2DW2ST1 WS1DW1XDW0XSTn:控制存储器组:控制存储器组n的的UB/LB引脚输出信号引脚输出信号。1:使:使UB/LB与与nBE3:0相连;相连;0:使:使UB/LB与与nWBE3:0相连相连WSn:使用:使用/禁用存储器组
29、禁用存储器组n的的WAIT状态状态1:使能:使能WAIT;0:禁止:禁止WAITDWn:控制存储器组:控制存储器组n的数据线宽的数据线宽00:8位;位;01:16位;位;10:32位;位;11:保留:保留2022-7-2249Tacs:设置:设置nGCSn有效前地址的建立时间有效前地址的建立时间00:0个个;01:1个;个;10:2个;个;11:4个时钟周期个时钟周期Tcos:设置:设置nOE有效前片选信号的建立时间有效前片选信号的建立时间00:0个个;01:1个;个;10:2个;个;11:4个时钟周期个时钟周期Tacc:访问周期:访问周期000:1个;个;001:2个;个;010:3个;个;
30、011:4个时钟个时钟100:6个:个:101:8个;个;110:10个;个;111:14个个15 14 13 12 11 109876543210TacsTcosTaccTcohTcahTacpPMC2、BANKn-存储器组控制寄存器存储器组控制寄存器(n=0-5)31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 162022-7-2250Tcoh:nOE无效后片选信号的保持时间无效后片选信号的保持时间00:0个个;01:1个;个;10:2个;个;11:4个时钟个时钟Tcah:nGCSn无效后地址信号的保持时间无效后地址信号的保持时间00:0个个;01
31、:1个;个;10:2个;个;11:4个时钟个时钟Tacp:页模式的访问周期:页模式的访问周期00:2个个;01:3个;个;10:4个;个;11:6个时钟个时钟PMC:页模式的配置,每次读写的数据数:页模式的配置,每次读写的数据数00:1个个;01:4个;个;10:8个;个;11:16个个注:注:00为通常模式。为通常模式。注:紫色为实验箱上的配置注:紫色为实验箱上的配置,其值为,其值为0 x07002022-7-2251MT:设置存储器类型设置存储器类型00:ROM或者或者SRAM,3:0为为Tacp和和PMC;11:SDRAM,3:0为为Trcd和和SCAN;01、10:保留保留Trcd:由
32、行地址信号切换到列地址信号的延时时钟数:由行地址信号切换到列地址信号的延时时钟数00:2个时钟;个时钟;01:3个时钟;个时钟;10:4个时钟个时钟 SCAN:列地址位数:列地址位数00:8位;位;01:9位;位;10:10位位 14 13 12 11 109876543210TacsTcosTaccTcohTcahTacp/TrcdPMC/SCAN3、BANK6/7-存储器组存储器组6/7控制寄存器控制寄存器3117 16 15保留保留MT2022-7-2252REFEN:刷新控制:刷新控制。1:使能刷新;使能刷新;0:禁止刷新:禁止刷新TREFMD:刷新方式:刷新方式。1:自刷新:自刷新0
33、:自动刷新自动刷新Trp:设置:设置SDRAM行刷新时间行刷新时间(时钟数)(时钟数)00:2个时钟;个时钟;01:3个;个;10:3个;个;11:4个时钟个时钟Tsrc:设置:设置SDRAM行操作时间行操作时间(时钟数)(时钟数)00:4个时钟;个时钟;01:5个;个;10:6个;个;11:7个时钟个时钟注:注:SDRAM的行周期的行周期=Trp+Tsrc。Refresh_count:刷新计数值:刷新计数值15 14 13 12 11 109876543210保保 留留Refresh_count4、REFRESH-刷新控制寄存器刷新控制寄存器3124232221 20 19 18 17 16
34、保保 留留REFEN TREFMDTrpTsrc保留保留2022-7-2253Refresh_count:刷新计数器值:刷新计数器值计算公式:计算公式:刷新周期刷新周期=(211-Refresh_count+1)/HCLK例子:设刷新周期例子:设刷新周期=15.6s,HCLK=60MHz则则刷新计数器值刷新计数器值=211+1-6015.6=11131113=0 x459=0b100010110012022-7-2254高高24位未用。位未用。BURST_EN:ARM突发操作控制突发操作控制0:禁止突发操作;:禁止突发操作;1:可突发操作:可突发操作SCKE_EN:SCKE使能控制使能控制SD
35、RAM省电模式省电模式0:关闭省电模式;:关闭省电模式;1:使能省电模式:使能省电模式SCLK_EN:SCLK省电控制省电控制,使其只在,使其只在SDRAM访问周期内访问周期内使能使能SCLK0:SCLK一直有效;一直有效;1:SCLK只在访问期间有效只在访问期间有效BK76MAP:控制:控制BANK6/7的大小及映射的大小及映射76543210BURST_ENXSCKE_EN SCLK_ENXBK76MAP5、BANKSIZE-BANK6/7组大小控制寄存器组大小控制寄存器2022-7-2255BK76MAP:控制:控制BANK6/7的大小及映射的大小及映射100:2MB;101:4MB;1
36、10:8MB 111:16MB;000:32MB;001:64MB010:128MB2022-7-2256WBL:突发写的长度:突发写的长度。0:固定长度;:固定长度;1:保留:保留TM:测试模式:测试模式。00:模式寄存器集;其它保留:模式寄存器集;其它保留CL:列地址反应时间:列地址反应时间000:1个时钟;个时钟;010:2个时钟;个时钟;011:3个时钟;其它保留个时钟;其它保留BT:猝发类型:猝发类型0:连续;:连续;1:保留:保留BL:猝发时间:猝发时间000:1个时钟;其它保留个时钟;其它保留6、MRSRB6/7-BANK6/7模式设置寄存器模式设置寄存器15 14 13 12
37、11 109876543210WBLTMCLBTBL2022-7-22572022-7-2258Nand Flash 控制器的寄存器控制器的寄存器寄存器寄存器地地 址址功功 能能操作操作复位值复位值NFCON0 x4E000000Nand Flash配置配置读读/写写-NFCMD0 x4E000004Nand Flash命令命令读读/写写-NFADDR 0 x4E000008Nand Flash地址地址读读/写写-NFDATA 0 x4E00000CNand Flash数据数据读读/写写-NFSTAT0 x4E000010Nand Flash状态状态读读/写写-NFECC0 x4E000014
38、Nand Flash纠错纠错读读/写写-2022-7-2259NFEN:NF控制器使能控制控制器使能控制0:禁止使用;:禁止使用;1:允许使用:允许使用IECC:初始化:初始化ECC编码编码/解码器控制位解码器控制位0:不初始化:不初始化ECC;1:初始化:初始化ECCNFCE:NF片选信号片选信号nFCE控制位持续时间设置控制位持续时间设置0:nFCE为低有效;为低有效;0:nFCE为高无效为高无效TACLE:CLE/ALE持续时间设置值(持续时间设置值(0-7)持续时间持续时间 HCLK*(TACLS+1)CLE/ALE:命令:命令/地址锁存允许地址锁存允许151413 121110 98
39、76543210NFENXIECC NFCETACLEXTWRPH0XPWRPH10-000-0-01、NFCON-Flash配置寄存器配置寄存器2022-7-2260TWRPH0:写信号:写信号持续时间设置值持续时间设置值(07)持续时间持续时间 HCLK*(TWRPH01)TWRPH1:写信号无效后:写信号无效后CLE/ALE保保持时间设置值持时间设置值(07)持续时间持续时间 HCLK*(TWRPH11)15 14 13 12 11 109876543210保保 留留命令字命令字2、NFCMD-Flash命令寄存器命令寄存器2022-7-2261高高24位未用,低位未用,低8位为读入或者
40、写出的数据位为读入或者写出的数据15 14 13 12 11 109876543210保保 留留地址值地址值3、NFADDR-Flash地址寄存器地址寄存器15 14 13 12 11 109876543210保保 留留输入输入/输出数据输出数据4、NFDATA-Flash数据寄存器数据寄存器高高24位未用,低位未用,低8位为位为Flash存储器地址值存储器地址值2022-7-2262RnB:Nand Flash存储器状态位存储器状态位0:存储器忙;:存储器忙;1:存储器准备好:存储器准备好15 14 13 12 11 109876543210保保 留留RnB5、NFSTAT-Flash状态寄
41、存器状态寄存器15 14 13 12 11 109876543210错误校正码错误校正码#1#1错误校正码错误校正码#0#06、NFECC-Flash错误校正码寄存器错误校正码寄存器31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16保保 留留错误校正码错误校正码#2#22022-7-2263S3C2410S3C2410启动方式启动方式两种启动方式:1)非NAND Flash启动方式,S3C2410访问0X0000 0000地址,因此,启动代码应该放在0X0000 0000地址上,BOOT ROM的总线宽度可以由OM1:0确定。2)NAND Flash
42、启动方式,此时,CPU将从NAND Flash中读取代码来启动。S3C2410S3C2410启动方式启动方式nBank0存储块可以外接SRAM类型的存储器或者具有SRAM接口特性的ROM存储器(如NOR Flash),其数据总线宽度应设定为16位或32位中的一种。当0号存储块作为ROM区,完成引导装入工作时(从0 x00000000启动),Bank0存储块的总线宽度应在第一次访问ROM前根据OM1、OM0在复位时的逻辑组合来确定2022-7-2264OM1OM0引导ROM数据的宽度00NANDFlash模式0116位1032位11测试模式2022-7-2265非NAND Flash启动方式设计
43、EEPROM/FlashA21:0DQ7:0nWEnOEnCEEEPROM/FlashA21:0DQ7:0nWEnOEnCEEEPROM/FlashA21:0DQ7:0nWEnOEnCEEEPROM/FlashA21:0DQ7:0nWEnOEnCEDATA7:0DATA15:8DATA23:16DATA31:24nWBE3nWBE2nWBE1nWBE0S3C2410XOM1OM0ADDR24:2DATA31:0nGCS0nOEnWBE3:0VCC8位ROM/Flash设计32位BOOT ROM 2022-7-2266非NAND Flash启动方式设计用16位ROM设计16位BOOT ROM 2
44、022-7-2267NAND Flash启动方式启动方式 S3C2410存储器接口设计存储器接口设计1)与2片8位的ROM连接方法2022-7-2268S3C2410存储器接口设计存储器接口设计2)与1片16位的ROM连接2022-7-2269S3C2410存储器接口设计存储器接口设计3)与2片8位FLASH的连接方法2022-7-2270S3C2410存储器接口设计存储器接口设计4)与1片16M的SDRAM的连接方法2022-7-2271S3C2410存储器接口设计存储器接口设计5)与2片16M的SDRAM的连接方法2022-7-2272I/O接口的编址方式端口映射2022-7-22731)
45、I/O接口独立编址端口映射方式n这种编址方式是将存储器地址空间和I/O接口地址空间分开设置,互不影响。设有专门的输入指令(IN)和输出指令(OUT)来完成I/O操作。I/O设备10X00000XFFFFI/O设备2I/O地址空间0X0000系统地址空间0XFFFF主要优点:主要优点:内存地址空间与内存地址空间与I/OI/O接口地址空间分开,互不影响,译码电接口地址空间分开,互不影响,译码电路较简单,并设有专门的路较简单,并设有专门的I/OI/O指令,所以编程序易于区分,且执行时间指令,所以编程序易于区分,且执行时间短,快速性好。短,快速性好。缺点:缺点:只用只用I/OI/O指令访问指令访问I/
46、OI/O端口,功能有限且要采用专用端口,功能有限且要采用专用I/OI/O周期和专周期和专用用I/OI/O控制线,使微处理器复杂化。控制线,使微处理器复杂化。I/O接口的编址方式内存映射2022-7-22741)2)I/O接口与存储器统一编址方式内存映射n这种编址方式不区分存储器地址空间和I/O接口地址空间,把所有的I/O接口的端口都当作是存储器的一个单元对待,每个接口芯片都安排一个或几个与存储器统一编号的地址号。也不设专门的输入/输出指令,所有传送和访问存储器的指令都可用来对I/O接口操作。I/O设备10X00000XFFFFI/O设备2保留I/O地址空间I/O设备硬件系统地址空间应用使用地址
47、空间应用使用地址空间主要优点:主要优点:访问内存的指令都可用于访问内存的指令都可用于I/OI/O操作,数据处理功能强;同时操作,数据处理功能强;同时I/OI/O接口可与存储器部分共用译码和控制电路。接口可与存储器部分共用译码和控制电路。缺点:缺点:一是一是I/OI/O接口要占用存储器地址空间的一部分;二是因不用专门接口要占用存储器地址空间的一部分;二是因不用专门的的I/OI/O指令,程序中较难区分指令,程序中较难区分I/OI/O操作。操作。2022-7-22755.4 S3C2410 I/O5.4 S3C2410 I/O端口端口内存映射1)S3C2410有117个有复用功能的I/O端口引脚:2
48、)PortA(GPA)23个输出端口;3)PortB(GPB)11个I/O端口;4)PortC(GPC)16个I/O端口;5)PortD(GPD)16个I/O端口;6)PortE(GPE)16个I/O端口;7)PortF(GPF)8个I/O端口;8)PortG(GPG)16个I/O端口;9)PortH(GPH)11个I/O端口;2022-7-2276端口寄存器及引脚配置端口寄存器及引脚配置每一个端口都有每一个端口都有4个寄存器,它们是:引脚配个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。置寄存器、数据寄存器、引脚上拉寄存器等。Register Address R/W Desc
49、ription Reset Value GPXCON0 x560000 x0 R/W 端口端口X配置寄存器配置寄存器 X GPXDAT 0 x560000 x4 R/W 端口端口X数据寄存器数据寄存器X GPXUP0 x560000 x8 R/W 端口端口X上拉寄存器上拉寄存器X RESERVED0 x560000 xC R/W 端口端口X保留寄存器保留寄存器-2022-7-2277GPADAT寄存器为准备输出的数据寄存器为准备输出的数据其值为其值为23位位22:0注意注意:(1)当当A口引脚配置为非输出功能时,其输出无意义;口引脚配置为非输出功能时,其输出无意义;(2)从)从引脚输入没有意义
50、。引脚输入没有意义。1、端口、端口A寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPACON0 x56000000 R/W 端口端口A引脚配置寄存器引脚配置寄存器 0 x7FFFFF GPADAT 0 x56000004 R/W 端口端口A数据寄存器数据寄存器-RESERVED 0 x56000008-端口端口A保留寄存器保留寄存器-RESERVED 0 x5600000C-端口端口A保留寄存器保留寄存器-2022-7-22781、端口、端口A寄存器及引脚配置寄存器及引脚配置位号位号 位位 名名 位值位值:0 1位号