《基于s3c2410的嵌入式系统硬件结构设计课件》由会员分享,可在线阅读,更多相关《基于s3c2410的嵌入式系统硬件结构设计课件(302页珍藏版)》请在金锄头文库上搜索。
1、1,Part 5 基于S3C2410的硬件系统设计(一),1,3,2,4,S3C2410X简介 存储器接口设计 I/O接口设计 UART设计 IIC接口设计 中断接口 时钟和功耗管理 PWM定时器,5,6,看门狗定时器 日历时钟 DMA LCD控制器 A/D转换与触摸屏 USB接口 SPI,7,8,10,9,11,12,13,14,15,2,5.1 S3C2410X概述,主要内容 主要特性 系统结构 引脚信号,3,5.1 S3C2410X概述,S3C2410X是韩国三星公司推出的16/32位RISC微控制器,其CPU采用的是ARM920T内核,加上丰富的片内外设,为手持设备和其它应用,提供了低
2、价格、低功耗、高性能微控制器的解决方案。,4,系统结构 主要由两大部分构成: ARM920T内核 片内外设。,5,1、ARM920T内核 由三部分:ARM9内核ARM9TDMI、32KB的Cache、MMU( CP15及它的寄存器C13) 、总线接口单元。,6,2、片内外设 分为高速外设和低速外设,分别用AHB总线和APB总线。,7,主要特性,具有16KB指令Cache、 16KB数据Cache和存储器管理单元MMU。 外部存储器控制器,可扩展8组,每组128MB,总容量达1GB;支持从Nand flash存储器启动。 55个中断源,可以设定1个为快速中断,有24个外部中断,并且触发方式可以设
3、定。 4通道的DMA,并且有外部请求引脚。 3个通道的UART,带有16字节的TX/RX FIFO,支持IrDA1.0功能。 具有2通道的SPI、1个通道的IIC串行总线接口和1个通道的IIS音频总线接口。 有2个USB主机总线的端口,1个USB设备总线的端口。 有4个具有PWM功能的16位定时器和1个16位内部定时器。,8,芯片体系结构,主要特性 8通道的10位A/D转换器,最高速率可达500kB/s;提供有触摸屏接口。 具有117个通用I/O口和24通道的外部中断源。 兼容MMC的SD卡接口。 具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作。 看门狗定时器。 具有
4、日历功能的RTC。 有LCD控制器,支持4K色的STN和256K色的TFT,配置有DMA通道。 具有PLL功能的时钟发生器,时钟频率高达203MHz。 双电源系统:1.8/2.0V内核供电,3.3V存储器和I/O供电。,9,三、引脚信号 S3C微控制器是272-FBGA封装。 其信号可以分成: addr0-addr26、 Data0-data31、 GPA0-GPA22 GPB10、GPC15、 GPD15、GPE15、 GPF7、GPG15、 GPH10、EINT23、 nGCS0nGCS7、 AIN7、IIC、SPI、 OM0-OM3 等,大部分都是复用的,BACK,10,5.2 S3C2
5、410X的存储器,主要内容 存储器配置 存储器概述 控制寄存器 Flash及控制器 Flash控制器概述 控制器主要特性 控制器的寄存器 控制器的工作原理,11,ARM9 内核,存储器 控制器,存储器,存储器及存储器映射I/O,ARM9定义了局部总线的接口时序,各芯片厂商制定了自己的接口时序,ARM9局部总线,一般在两者之间加入存储器控制器,12,5.2.1 S3C2410X的存储器配置,一、概 述 S3C2410X的存储器管理器提供访问外部存储器的所有控制信号:27位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等。 S3C2410X的存储空间分成8组,最大容量是1GB,bank
6、0-bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,并且bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等。 bank0可以作为引导ROM,其数据线宽只能是16位和32位,复位时由OM0、OM1引脚确定;其它存储器的数据线宽可以是8位、16位和32位。 S3C2410X的存储器格式,可以为大端格式,也可以为小端格式。,13,14,二、存储器的控制寄存器 内存控制器为访问外部存储空间提供存储器控制信号, S3C2410X存储器控制器共有13个寄存器。,15,1、总线宽度和等待控制寄存器 back,STn:控
7、制存储器组n的UB/LB引脚输出信号。 1:使UB/LB与nBE3:0相连; 0:使UB/LB与nWBE3:0相连 WSn:使用/禁用存储器组n的WAIT状态 1:使能WAIT;0:禁止WAIT DWn:控制存储器组n的数据线宽 00:8位;01:16位;10:32位;11:保留,16,Tacs:设置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个;011:4个时钟 100:6个:101:8个;
8、110:10个;111:14个,2、BANKn-存储器组控制寄存器(n=0-5),17,Tcoh:nOE无效后片选信号的保持时间 00:0个;01:1个;10:2个;11:4个时钟 Tcah: nGCSn无效后地址信号的保持时间 00:0个;01: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 x0700,back,18,MT:设置存储器类型 00:ROM或者SRAM,3:0为Ta
9、cp和PMC; 11:SDRAM, 3:0为Trcd和SCAN; 01、10:保留 Trcd:由行地址信号切换到列地址信号的延时时钟数 00:2个时钟;01:3个时钟;10:4个时钟 SCAN:列地址位数 00:8位;01:9位;10:10位,3、BANK6/7-存储器组6/7控制寄存器,back,19,REFEN:刷新控制。1:使能刷新;0:禁止刷新 TREFMD:刷新方式。1:自刷新0:自动刷新 Trp:设置SDRAM行刷新时间(时钟数) 00:2个时钟;01:3个;10:3个;11:4个时钟 Tsrc:设置SDRAM行操作时间(时钟数) 00:4个时钟;01:5个;10:6个;11:7个
10、时钟 注: SDRAM的行周期= Trp + Tsrc。 Refresh_count:刷新计数值,4、REFRESH-刷新控制寄存器,20,Refresh_count:刷新计数器值 计算公式: 刷新周期=(211- Refresh_count+1)/HCLK 例子:设刷新周期=15.6s,HCLK=60MHz 则刷新计数器值=211+1-6015.6=1113 1113=0 x459=0b10001011001,back,21,高24位未用。 BURST_EN:ARM突发操作控制 0:禁止突发操作;1:可突发操作 SCKE_EN:SCKE使能控制SDRAM省电模式 0:关闭省电模式;1:使能省
11、电模式 SCLK_EN:SCLK省电控制,使其只在SDRAM访问周期内使能SCLK 0:SCLK一直有效;1:SCLK只在访问期间有效 BK76MAP:控制BANK6/7的大小及映射,5、BANKSIZE-BANK6/7组大小控制寄存器,22,BK76MAP:控制BANK6/7的大小及映射 100:2MB;101:4MB; 110:8MB 111:16MB; 000:32MB;001:64MB 010:128MB,back,23,WBL:突发写的长度。0:固定长度;1:保留 TM:测试模式。00:模式寄存器集;其它保留 CL:列地址反应时间 000:1个时钟;010:2个时钟; 011:3个时
12、钟;其它保留 BT:猝发类型 0:连续;1:保留 BL:猝发时间000:1个时钟;其它保留,6、MRSRB6/7-BANK6/7模式设置寄存器,24,head.s ENTRY(memsetup) movr1, #MEM_CTL_BASE adrlr2, mem_cfg_val/取址指令mem_cfg_val对应的地址给R2 addr3, r1, #52 1:ldrr4, r2, #4 strr4, r1, #4 cmpr1, r3 Bne 1b /循环操作,直到13个寄存器赋值完成 movpc, lr mem_cfg_val: .longvBWSCON .longvBANKCON0 .long
13、vBANKCON1 .longvBANKCON2 .longvBANKCON3 .longvBANKCON4 .longvBANKCON5 .longvBANKCON6 .longvBANKCON7 .longvREFRESH .longvBANKSIZE .longvMRSRB6 .longvMRSRB7 13个变量,52个地址单元,smdk2410.h /* initial values for DRAM */ #define MEM_CTL_BASE 0 x48000000 #define vBWSCON0 x22111110 #define vBANKCON00 x00000700 #
14、define vBANKCON10 x00000700 #define vBANKCON20 x00000700 #define vBANKCON30 x00000700 #define vBANKCON40 x00000700 #define vBANKCON50 x00000700 #define vBANKCON60 x00018005 #define vBANKCON70 x00018005 #define vREFRESH0 x008e0459 #define vBANKSIZE0 xb2 #define vMRSRB60 x30 #define vMRSRB70 x30,VIVI
15、For s3c2410中Bootloader之存储器初始化,25,;Tacc 10:8 存取周期 110 = 10 clocks 111 = 14 clocks,;Bank1,3 16位,其余32位,For 44b0 x中Bootloader之存储器初始化,26,5.2.2 Flash,FLASH存储器又称闪存,是一种可在线多次擦除的非易失性存储器,即掉电后数据不会丢失。FLASH存储器还具有体积小、功耗低、抗振性强等优点,是嵌入式系统的首选存储设备。 FLASH存储器主要分为两种,一种为NOR型FLASH,另一种为NAND型FLASH 。,一、概述,27,(1) 接口差别 NOR型FLASH
16、采用的是SRAM接口,提供有足够的地址引脚来寻址,可以很容易地存取其片内的每一个字节; NAND型FLASH使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。通常是采用8个引脚来传送控制、地址和数据信息。 (2) 读写的基本单位 NOR型FLASH操作是以“字”为基本单位; NAND型FLASH操作是以“页面”为基本单位,页的大小一般为512字节。 (3) 性能比较 NOR型FLASH的地址线和数据线是分开的,传输效率很高,程序可以在芯片内执行。NOR型的读速度比NAND型稍快一些; NAND型的写入速度比NOR型快很多(由于NAND型读写的基本单位为“页面”,所以对于小量数据的写入,总体速度要比NOR型慢);,二、NOR型与NAND型FLASH的区别,28,(4) 容量和成本 NAND型FLASH具有极高的单元密度,容量可以做得比较大,加上其生产过程更为简单,价格也就相应地降低了。 NOR主要应用在代码存储介质中,NAND适合于