历史上的今天
今天是:2025年02月14日(星期五)
2020年02月14日 | ARM总线架构(S3C2440)
2020-02-14 来源:eefocus
S3C2440集成了丰富了外设控制器(LCD控制器、USB Device控制器、USB Host控制器、NAND FLASH控制器、I2C控制器、SPI控制器等)。要控制这些外设就要设置相应控制器的寄存器以产生相应的驱动时序。学习S3C2440,主要是如何配置寄存器。下面是S3C2440特殊功能寄存器地址:
#define rBANKCON0 (*(volatileunsigned *)0x48000004) //Boot ROM control
#define rBANKCON1 (*(volatileunsigned *)0x48000008) //BANK1 control
#define rBANKCON2 (*(volatileunsigned *)0x4800000c) //BANK2 cControl
#define rBANKCON0 (*(volatileunsigned *)0x48000004) //Boot ROM control
#define rBANKCON1 (*(volatileunsigned *)0x48000008) //BANK1 control
#define rBANKCON2 (*(volatileunsigned *)0x4800000c) //BANK2 cControl

图1 内存映射
下面就来详细分析。

图2 S3C2440结构框图
先介绍一下AMBA(Advanced Micro-Controller Bus Architecture)是由ARM Limited公司推出的On-Chip Bus片上总线规范,是目前芯片总线的主流标准。一开始AMBA 1.0只有ASB和APB,为了节省面积,这时候的总线协定都是采用3态的总线,到后来的AMBA 2.0版本,新增了AHB总线,共定义了3组总线:高性能总线(AdvancedHigh Performance Bus,AHB)、系统总线(AdvancedSystem Bus,ASB)和外设总线(Advanced PeripheralBus,APB)。

图3 典型的基于AMBA总线的系统
关于AMBA总线的更多的内容可上网查看,中文的资料都有很多。由图2可知AHB总线上挂载了LCD控制器、中断控制器、USB Host控制器、电源管理、NAND控制器、Camera控制器、存储器控制器以及AHB to APB桥和DMA控制器。APB总线上挂载了UART控制器、I2C控制器、USB Device控制器、I3S控制器SDI/MMC控制器、GPIO、Watchdog/定时器、RTC、ADC、SPI、AC97。下面这段话是摘自S3C2440芯片手册:
"The S3C2440A holds 13 bus masters. They include DRAMrefresh controller, LCD_DMA, CAMIF DMA, DMA0,DMA1, DMA2, DMA3, USB_HOST_DMA,EXT_BUS_MASTER, Test interface controller (TIC) and ARM920T."
S3C2440A有13个主设备。当AHB总线上的主设备读写从设备时,发出的地址经过AHB总线的译码器(通过内存映射表) 产生该地址所对应从设备的选择信号,选中从设备;这样就可以对从设备进行读写啦。

图4 AHB译码器

图5 译码器的具体实现代码
译码器的内存映射表具有相对的独立性。如果AHB总线上的从设备发生了变化,必须对内存映射表进行修改以确保每个地址都对应正确的从设备。下面是内存映射表的一个例子。

图6 内存映射表
使用了两种内存映射表:正常工作下的内存映射表和重新启动时的内存映射表。在正常工作时,微处理器的从设备包括内部RAM、外部RAM、外部ROM和AHB/APB桥;当系统重新启动时,系统的内存映射不包括内部RAM,而是将0x0000—0000至0x0000—03FF的内存地址段映射为nash。这个部分包含系统的启动和初始化代码。当系统启动完成初始化后,AMBA总线将产生一个Remap信号,送入译码器,将译码器的当前内存映射表改为正常工作状态下的内存映射表。
下面是S3C2440的地址映射
AHB Memory Map
Memory control 0x48000000 0x48000030
USB HOST 0x49000000 0x49000058
INTERRUPT 0x4a000000 0x4a00001c
DMA 0x4b000000 0x4b0000e0
CLOCK & POWER MANAGEMENT 0x4c000000 0x4c000018
*LCD CONTROLLER 0x4d000000 0x4d000060 0x4d000400(Palettestart address)
Nand Flash 0x4E000000 0x4E00003C
Camera Interface 0x4F000000 0x4F0000A0
APB Memory Map
UART0 0x50000000 0x50000028
UART1 0x50004000 0x50004028
UART2 0x50008000 0x50008028
PWM TIMER 0x51000000 0x51000040
USB DEVICE 0x52000140 0x5200026c
WATCH DOG TIMER 0x53000000 0x53000008
IIC 0x54000000 0x54000010
IIS 0x55000000 0x55000010
AC97 0x5b000000 0x5b00001C
I/O PORT
A 0x56000000 0x56000004
B 0x56000004 0x56000018
C 0x56000020 0x56000028
D 0x56000030 0x56000038
E 0x56000040 0x56000048
F 0x56000050 0x56000058
G 0x56000060 0x56000068
H 0x56000070 0x56000078
J 0x560000d0 0x560000d8
other 0x56000080 0x560000cc
RTC 0x57000040 0x57000088
ADC 0x58000000 0x58000014
SPI 0x59000000 0x59000034
SD Interface 0x5a000000 0x5a000040
总结:AHB总线上的译码器根据地址产生相应的片选信号,选中对应的设备。AHB总线上有一个AHB to APB 桥,桥是AHB总线的从设备,是APB总线上唯一的主设备。桥是一个协议转换器(AHB协议到APB协议的转换),它还要完成APB总线的地址译码工作。
史海拾趣
|
国内用得较多的是xilinx, altera和lattice的片子。 xilinx的产品系列较多,还算好使,但开发环境稍显复杂。 XILINX的东东内部是用三态连线的,虽然实现总线容易,但延迟特性不太好。 altera的开发环境我感觉最为简洁,但片子 ...… 查看全部问答> |
|
首先申明这绝不是歧视。 而是看到zqzq501311的回贴说自己家在农村,而且坚决不啃老,很感动。也希望自己的帖子能够帮到那些同样家在农村的。 面试前要明白自己的优势和劣势所在。 ...… 查看全部问答> |
|
现在家庭有很多都装了报警系统了的,但有好多都说不太好用。我一个亲戚家去年也是,装了报警系统了,但还是被小偷光顾了,可气的是小偷居然把一个报警器都给偷走了,后来去找商家,他说这不是他的问题。他还告诉说现在有小偷能自制一种反报警器材, ...… 查看全部问答> |
|
请教硬件专家:配合P4 CPU(2.4G)的最高档主板是什么型号,其所用的内存条是什么型号,内存最多能扩充到多少G 请教硬件专家:配合P4 CPU(2.4G)的最高档主板是什么型号,其所用的内存条是什么型号,内存最多能扩充到多少G … 查看全部问答> |
|
电机连着主轴,主轴带个增量式旋转编码器,已知编码器为1600线,主轴直径为150mm, 主轴为变速转动。 求1、主轴的当前时刻转速是多少?2、编码器一个脉冲所对应的长度是多少?3、当长度为2000mm时,编码器输出多少个脉冲? 如果所列的已知条件不充分 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 手机屏幕作为手机组成中重要的一部分,其显示效果会直接影响到整机的体验。目前关于屏幕的概念名词非常多,让人难以区分。比如:IPS、 Retina、ASV等,很多人会认为它们代表屏幕的材质,其实不 ...… 查看全部问答> |
|
有25年的工作经验的TI 电源工程师讲WEBENCH 设计工具(中文) 有25年的工作经验的TI 电源工程师讲WEBENCH 设计工具(中文) 数秒间向您展示数十亿个完整的电源供应器设计选择,这个视频将指导您如何迅速地修改设计参数,并实时审视该DC-DC电源供应器设计的性能变化,以便从系统物料成本、方案大小及效率间获得 ...… 查看全部问答> |
|
学习电路保护基础,可以对以后进行电子设计时对电路做一些电路保护设计,防止重要设备的损坏,是比较实用的一门课程。通过对这门课程,学习到电路保护的内容非常多,保护浪涌控制、带热电插拔、电流限制、电子电路断路保护、软启动等。这些保护中每 ...… 查看全部问答> |




