- 深度探索嵌入式操作系统:从零开始设计、架构和开发
- 彭东
- 2001字
- 2023-02-02 14:32:44
2.1.2 mini2440平台的信息
mini2440开发板,是友善之臂公司基于三星公司的S3C2440A芯片,并结合了一系列的外围组件开发出来的一款嵌入式开发板。组件非常丰富,性能不错,也很常用,非常适合嵌入式系统的入门学习。
下面来看看mini2440开发板都有些什么,各自都有什么作用,即用来干什么的,mini2440开发板的概况如图2-2所示。
图2-2 mini2440物理视图(源自友善之臂公司)
哇,这看上去各种硬件接口、芯片……真不少。归纳如下。
1)Samsung S3C2440A CPU处理器,主频400MHz,最高533MHz。
2)由2片32MB的SDRAM芯片组成的64MB内存,32位的内存数据总线,SDRAM时钟频率高达100MHz。
3)Flash存储,板载,256MB/1GB Nand Flash,掉电非易失(用户可定制64MB/128MB/256MB/512MB/1GB)。
4)2MB Nor Flash,掉电非易失,已经安装superVIVI引导程序,相当于PC上的BIOS。
5)LCD显示接口,板上集成4线电阻式触摸屏接口,可以直接连接四线电阻触摸屏,支持黑白、4级灰度、16级灰度、256色、4096色的STN液晶屏,尺寸从3.5寸~12.1寸,屏幕分辨率可以达到1024×768像素。标准配置为3.5真彩LCD,分别率240×320,带触摸屏。
6)1个100M以太网RJ-45接口(采用DM9000网络芯片)。
7)3个串行口。
8)1个USB Host。
9)1个USB Slave B型接口。
10)1个SD卡存储接口。
11)1路立体声音频输出接口,一路麦克风接口。
12)1个2.0mm间距10针JTAG接口。
13)4个USERLED灯。
14)6个USER按键(带引出座)。
15)1个PWM控制蜂鸣器。
16)1个可调电阻,用于AD模数转换测试。
17)1个I2C总线AT24C08芯片,用于I2C总线测试。
18)1个2.0mm间距,20pin摄像头接口。
19)1个板载实时时钟电池。
20)电源接口(5V),带电源开关和指示灯。
21)系统时钟源,12MHz无源晶振。
22)内部实时时钟(带后备锂电池)。
23)1个34pin,2.0mm,GPIO接口。
24)1个40pin,2.0mm,系统总线接口。
24条,可真不少啊,还好我们开发操作系统内核时,并不需要关心这个开发板上全部的硬件资源。
现在把那些硬件提供的插口、小灯、按键、电池等都扔了,搅在一起可能看不清楚。看图2-3或许会清楚许多,心情也会愉悦不少。
图2-3 mini2440逻辑视图
根据图2-3可以把它们分为这几类:
1)处理器,这是用来执行程序的。
2)存储器,两个不同类型的Flash,当然它们也是存储器,2片32MB SDRAM的内存。
3)关于开发板电源的,不必过多关注。
4)网络,就是网卡。
5)音频。
6)串口,注意图2-3上的串口不是用于处理串口发送、控制等逻辑的串口芯片。
7)I2C总线,这个暂时不必关注。
上面这7种类型的部件,除第1类处理器外,其他部件功能和用途都相对单一,如Flash和SDRAM都是用于存储数据的、音频芯片就是用来处理声音的,它们不做其他的事。但是S3C2440A处理器就不同了,别看它只有指头大小,完成的功能却不容小觑,下面来掀开它神秘的面纱。
S3C2440A是三星公司生产的微处理器,这可不是通常我们认为的微处理器。S3C2440A基于ARM920T核心,ARM920T核心才是我们通常说的CPU、处理器,它支持16/32位精简指令集。它还实现了内存管理单元MMU。S3C2440A还提供了丰富的内部设备,为了组织和连接这些内部设备,它内部采用了先进的微控制总线构架AMBA。为了提高程序的执行速度,S3C2440A还采用了哈佛架构(高速缓冲体系结构),这一结构具有独立的16KB指令,高速缓存和16KB数据高速缓存,每个都是由具有8字长的行(line)组成的。
看了一大堆介绍,可能人都晕了,有时又不能不介绍。下面把S3C2440A内部的构件列举如下。
1)ARM920T CPU,即通常执行程序的CPU。
2)内存控制器,包括SDRAM控制和地址空间的片选逻辑。但本身不包含SDRAM存储芯片,只是用于控制SDRAM存储芯片的。
3)LCD控制器,最大支持4K色STN和256K色TFT,提供1通道DMA供LCD专用。
4)4通道DMA并有外部请求引脚。
5)3通道UART,支持64B发送FIFO和64B接收FIFO。
6)2通道SPI。
7)1通道IIC总线接口,支持多主机。
8)1通道IIS总线音频编码器接口。
9)AC97编解码器接口。
10)支持SD主接口协议1.0版和MMC卡协议2.11的兼容版。
11)2通道USB接口,1个主机通道,1个USB设备通道。
12)4通道PWM定时器和1通道内部定时器、看门狗定时器。
13)8通道10位ADC和触摸屏接口。
14)实时时钟RTC。
15)摄像头接口,最大支持4096×4096像素输入。
16)130个通用I/O口和24通道外部中断源。
17)电源管理,具有普通、慢速、空闲和掉电模式。
18)时钟,具有PLL片上时钟发生器。
19)中断控制器。
你一定在感叹人类的制造工艺,一定在努力地思考人类是怎么把这么多东西集成在一个指头大小的芯片内的,甚至还集成了总线,可以想象那得多复杂。的确,计算机系统是人类发展史上人类自己做过的最复杂的东西之一。
上面的文字也许不够形象,那么用一幅图来打开我们面前这个黑盒子——S3C2440A,如图2-4所示。
图2-4 S3C2440A逻辑结构视图
可以看到S3C2440A这个黑盒子里,还有很多黑盒子,我们不继续打开它们了,等到后面用到它们时,再一一打开。最后这个S3C2440A芯片提供了一大堆引脚,这些引脚各有各的功能,它们有的是输入信号的,有的是输出信号的。这个芯片就是这样和开发板上外围部件进行交互的,如从SDRAM内存芯片中读取程序指令执行、向Flash存储芯片中存入数据,控制音频芯片发出声音,用网卡访问网络等。
或许你还沉浸在漫无边际的思考中,在思考这么多设备和芯片都有些什么功能、又是怎么工作的、如何编程控制它们等,下面继续。