510 likes | 661 Views
ARM 嵌入式系统结构与编程. 大连理工大学软件学院 邱铁 办公楼 409 Tel : 87571521 E_mail: qiutie@dlut.edu.cn 参考教材: 《ARM 嵌入式系统结构与编程 》 清华大学出版社 2009 年 3 月出版.
E N D
ARM嵌入式系统结构与编程 • 大连理工大学软件学院 邱铁 办公楼409 Tel:87571521 E_mail: qiutie@dlut.edu.cn 参考教材:《ARM嵌入式系统结构与编程》 清华大学出版社2009年3月出版
S3C44B0是基于ARM7TDMI架构的,S3C2410是基于ARM920T架构的。当前,这两款芯片在嵌入式开发领域广泛应用。本章主要介绍S3C44B0和S3C2410的硬件资源和整体架构,对其存储控制器、NAND Flash控制原理、时钟电源管理、通用I/O接口和中断控制器作了详细介绍,并通过一定的实例来加深读者对关键技术的理解。 第9章S3C44B0/S3C2410硬件结构与关键技术分析
内容提要 • 9.1 处理器简介 • 9.2 S3C44B0/ S3C2410存储控制器 • 9.3 S3C2410 NAND Flash控制器 • 9.4 S3C44B0/ S3C2410时钟电源管理 • 9.5 S3C44B0/ S3C2410通用 I/O端口 • 9.6 S3C44B0/S3C2410中断机制
9.1 处理器简介 • S3C44B0 和 S3C2410为手持设备和普通应用提供了低成本、低功耗、高性能微控制器的解决方案。 • 为了降低整个系统的成本,S3C44B0 和S3C2410分别提供了很多内置功能部件,大大缩短了工程应用的开发周期。
9.1.1 S3C44B0微控制器 • 带8KB Cache的ARM7TDMI核。 • 内置系统存储控制器(片选逻辑,支持ROM、SRAM、Flash、FP/EDO/SDRAM)。 • LCD控制器(支持256色的STN,集成1个DMA控制器)。 • 2个通用DMA控制器(ZDMA)/2个外围DMA控制器(BDMA)。 • 2个带硬件握手的UART控制器(符合550标准)/1个SIO。 • 1个支持多主设备的I2C控制器。 • 1个IIS总线控制器。
5个PWM定时器和1个内部定时器。 • 看门狗定时器Watch Dog。 • 71个通用可编程的I/O口和8个外部中断源。 • 具有8通道输入的10位ADC。 • 具有日历功能的实时时钟RTC。 • 功率控制模式:Nomal、Slow、Idle和Stop。 • 带锁相环PLL的片内时钟发生器。
S3C44B0内部结构下页图所示(教材《ARM嵌入式系统结构与编程》217页图9-1),它采用了ARM7TDMI 内核,0.25um 工艺的CMOS 标准宏单元和存储编译器以及一种新的总线结构SAMBAII(三星ARM CPU 嵌入式微处理器总线结构)。 • ARM7TDMI 体系结构的特点是它集成了Thumb 代码压缩器,片上的ICE断点调试支持和一个32 位的硬件乘法器。
9.1.2 S3C2410微控制器 • 与S3C44B0相比,基于ARM920T核架构的微控制器S3C2410具有更强大的功能,如图9-2 (教材《ARM嵌入式系统结构与编程》218页)所示,其主要特点如下: • 独立的16KB指令Cache和16KB数据Cache。 • 系统存储控制器(片选逻辑,支持ROM、SRAM、Flash、FP/EDO/SDRAM)。 • LCD控制器(支持STN,TFT液晶显示屏,集成1个DMA控制器)。 • 内置系统存储控制器(片选逻辑,支持ROM、SRAM、Flash、FP/EDO/SDRAM)。 • NAND Flash控制器 。
4个通道的DMA,支持存储器与IO之间的数据直接传输。4个通道的DMA,支持存储器与IO之间的数据直接传输。 • 3个带硬件握手的UART控制器。 • 1个支持多主设备的I2C控制器。 • 1个IIS总线控制器。 • 2个SPI接口 • 2个USB主机接口,1个USB设备接口。 • SD卡接口和MMC接口。 • 4个具有PWM功能的16位定时/计数器和1个16位内部定时器,支持外部的时钟源。
看门狗定时器Watch Dog。 • 117个通用可能编的I/O口和24个外部中断源。 • 具有8通道输入的10位ADC。 • 具有日历功能的实时时钟RTC。 • 功率控制模式:Nomal、Slow、Idle和Stop。 • 带锁相环PLL的片内时钟发生器。
9.2 S3C44B0/ S3C2410存储控制器 • 存储器是嵌入式系统的重要组成部分,在嵌入式开发中,扩展存储器是重要的一步。S3C44B0和S3C2410的存储器控制器提供访问外部存储器所需要的存储器控制信号,便于扩展外部存储器。
9.2.1 S3C44B0存储控制与地址空间 • 存储格式小/大端选择
9.2.2 S3C2410存储控制与地址空间 • 地址空间分布
9.2.3 S3C44B0/ S3C2410存储位宽控制 • S3C44B0/S3C2410存储器数据宽度选择
9.2.4 S3C44B0/ S3C2410存储器接口时序分析 • 1.管脚时序分析 • (1)S3C2410 nWAIT引脚操作:
(4)S3C2410 • SDRAM引脚时序 • 见教材《ARM嵌入式系统结构与编程》224页图9-8
ROM接口 • 4片8位ROM存储器接口
SDRAM接口 • 单片16位 SDRAM存储器接口
2片16位 SDRAM 存储器接口
9.2.5 S3C44B0/ S3C2410存储控制寄存器 • 总线宽度和等待控制寄存器(BWSCON) • 详细信息见教材《ARM嵌入式系统结构与编程》227页表9-6
2.总线控制寄存器 • (1)(BANKCONn:nGCS0-nGCS5): • 总线控制寄存器BANKCON0~ BANKCON5位信息如表9-7所示。详细信息见教材227页表9-7
BANK控制寄存器(BANKCONn :nGCS6-nGCS7): • 总线控制寄存器BANKCON6、BANKCON7位信息如表9-8所示。 • 详细信息见教材《ARM嵌入式系统结构与编程》229页表9-8
3.刷新控制寄存器(REFRESH) • 刷新控制寄存器REFRESH位信息如表9-9所示。 • 详细信息见教材《ARM嵌入式系统结构与编程》230页表9-9
4.BANKSIZE 寄存器(BANKSIZE) • BANKSIZE 寄存器位信息如表9-10所示。 • 详细信息见教材《ARM嵌入式系统结构与编程》231页表9-10
9.2.6 SDRAM接口电路设计 • SDRAM的行地址线和列地址线是分时复用的,也就是地址线要分两次送出,先送行地址线,再送列地址线。 • HY57V561620是现代公司生产的容量为32MB(4M x 16bit x 4Bank)的SDRAM
S3C2410与HY57V561620的接口电路如图9-12所示 .详细信息见教材《ARM嵌入式系统结构与编程》233页表9-12
9.2.7 S3C44B0存储器初始化实例 • 使用一条STM指令完成13个控制寄存器的初始化。 • LDR R0, =SMRDATA • LDMIA R0, {R1-R13} • LDR R0, =0x01C80000 ; BWSCON 寄存器地址 • STMIA R0, {R1-R13} • SMRDATA DATA • DCD 0x22221210 ; BWSCON • DCD 0x00000600 ; GCS0 • DCD 0x00000700 ; GCS1 • DCD 0x00000700 ; GCS2 • DCD 0x00000700 ; GCS3
DCD 0x00000700 ; GCS4 • DCD 0x00000700 ; GCS5 • DCD 0x0001002A ; GCS6, EDO DRAM(Trcd=3, Tcas=2, Tcp=1, CAN=10bit) • DCD 0x0001002A ; GCS7, EDO DRAM • DCD 0x00960000 + 953 ; Refresh(REFEN=1, TREFMD=0, Trp=3, Trc=5, Tchr=3) • DCD 0x0 ; Bank Size, 32MB/32MB • DCD 0x20 ; MRSR 6(CL=2) • DCD 0x20 ; MRSR 7(CL=2)
9.3 S3C2410 NAND Flash控制器 • NAND Flash结构强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口进行升级。 • NAND Flash则是高数据存储密度的理想解决方案。
9.3.1 S3C2410 NAND Flash控制器原理 • S3C2410 的启动代码可以在NOR Flash中运行。 • 为了支持NAND Flash 启动方式,S3C2410内置了一个SRAM缓冲区,叫做“SteeppingStone”。 • 当系统启动时,Steppingstone 内的代码会被执行。通常,启动代码会从NAND Flash 拷贝到SDRAM。
S3C2410在用NAND启动时,要对NAND Flash进行配置。 • 首先OM[1:0] = 00b来 使能NAND Flash控制器的自启动模式,NAND Flash的存储器页大小应为 521字节,设置NCON对NAND Flash内存地址步进选择。
9.3.2专用功能寄存器 • NAND Flash配置寄存器(NFCONF) 、命令设置寄存器(NFCMD) 、数据寄存器(NFDATA) 、操作状态寄存器(NFSTAT) 、 ECC寄存器(NFECC) 的功能描述见教材《ARM嵌入式系统结构与编程》235页-237页
9.3.3典型NAND flash芯片 • K9F5608是Samsung半导体生产的NAND flash芯片