学过嵌入式的都知道,要想学好嵌入式,仅仅靠书本上的知识是远远不够的,一定要结合大量实际新闻和实例,找资料是一个麻烦的过程。
1.了解嵌入式的软硬件。
1. 引言
随着
嵌入式相关技术的迅速发展,
嵌入式系统的功能越来越强大,应用接口更加丰富,根据实际应用的需要设计出特定的
嵌入式最小系统和应用系统,是
嵌入式系统设计的关键。目前在
嵌入式系统开发的过程中,开发者往往把大量精力投入到
嵌入式微处理器MPU(Micro Processing Unit)与众多外设的连接方式以及应用代码的开发之中,而忽视了对
嵌入式系统最基本、最核心部分的研究。
当前在
嵌入式领域中,ARM(Advanced RISC Machines)处理器被广泛应用于各种
嵌入式设备中。由于ARM
嵌入式体系结构类似并且具有通用的外围
威廉希尔官方网站
,同时ARM内核的
嵌入式最小系统的设计原则及方法基本相同,这使得对
嵌入式最小系统的研究在整个系统的开发中具有着至关重要的意义。本文以基于ARM的
嵌入式最小系统为平台,从硬件和软件两方面对
嵌入式最小系统的架构进行了研究,硬件方面主要介绍了ARM处理器与典型外部存储器的接口技术,软件方面重点就
嵌入式最小系统的启动架构做了详细分析。
2.
嵌入式最小系统
嵌入式最小系统即是在尽可能减少上层应用的情况下,能够使系统运行的最小化模块配置。对于一个典型的
嵌入式最小系统,以ARM处理器为例,其构成模块及其各部分功能如图1所示,其中ARM微处理器、FLASH和SDRAM模块是
嵌入式最小系统的核心部分。
时钟模块——通常经ARM内部锁相环进行相应的倍频,以提供系统各模块运行所需的时钟频率输入
Flash存储模块——存放启动代码、操作系统和用户应用程序代码
SDRAM模块——为系统运行提供动态存储空间,是系统代码运行的主要区域
JTAG模块——实现对程序代码的下载和调试
UART模块——实现对调试信息的终端显示
复位模块——实现对系统的复位
3. 外存储器接口技术
ARM处理器与外部存储器(Flash和SDRAM)的接口技术是
嵌入式最小系统硬件设计的关键。根据需要选择合理的接口方式,可以有效的提升
嵌入式系统的整体性能。
3.1常用外存储器简介
(1)Nor Flash与Nand Flash
Nor Flash也称为线性Flash,可靠性高、随机读取速度快,具有芯片内执行(XIP, eXecute In Place)的特点,这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。常用在擦除和编程操作较少而直接执行代码的场合。
Nand Flash则是高数据存储密度的理想解决方案,一般用于数据存储和文件存储,以块为单位进行擦除,具有擦除速度快的优点。
(2)同步动态存储器SDRAM
SDRAM(Synchronous Dynamic Random Access Memory)是在早期DRAM的基础上改进而来的,它是同步内存,并在接口信号中引入了CLK信号,所有数据、地址和控制信号都是和CLK上升沿对齐的。此外SDRAM还在内部引入了一个命令控制器,处理器访问SDRAM都是通过向命令控制器发送命令来实现的。
3.2 ARM处理器与Flash接口技术
3.2.1ARM处理器与Nor Flash接口技术
Nor Flash 带有SRAM接口,有足够的地址引脚,可以很容易的对存储器内部的存储单元进行直接寻址。在实际的系统中,可以根据需要选择ARM处理器与Nor Flash的连接方式。图2给出了
嵌入式最小系统在包含两块Nor Flash的情况下,ARM处理器与Nor Flash两种不同的连接方式。
1)双Flash独立片选
该方式是把两个Nor Flash芯片各自作为一个独立的单元进行处理。根据不同的应用需要,可以在一块Flash中存放启动代码,而在另一块Flash中建立文件系统,存放应用代码。该方式操作方便,易于管理。
(2)双Flash统一片选
该方式是把两个Nor Flash芯片合为一个单元进行处理,ARM处理器将它们作为一个并行的处理单元来访问,本例是将两个8bit的Nor Flash芯片SST39VF1601用作一个16bit单元来进行处理。对于N(N>2)块Flash的连接方式可以此作为参考。
3.2.2ARM处理器与Nand Flash接口技术
Nand Flash接口信号比较少,地址,数据和命令总线复用。Nand Flash的接口本质上是一个I/O接口,系统对Nand Flash进行数据访问的时候,需要先向Nand Flash发出相关命令和参数,然后再进行相应的数据操作。ARM处理器与Nand Flash的连接主要有三种方式,如图3所示:
运用GPIO管脚方式去控制Nand Flash的各个信号,在速度要求相对较低的时候,能够较充分的发挥NAND设备的性能。它在满足NAND设备时域需求方面将会有很大的便利,使得ARM 处理器可以很容易的去控制NAND设备。该方式需要处理器提供充足的GPIO。
(2)运用逻辑运算方式进行连接
在该方式下,处理器的读和写使能信号通过与片选信号CS进行逻辑运算后去驱动NAND设备对应的读和写信号。图3中b例为SamSung公司ARM7TDMI系列处理器S3C44B0与Nand Flash K9F2808U0C的连接方式。
(3)直接芯片使能
有些ARM处理器如S3C2410内部提供对NAND设备的相应控制寄存器,通过控制寄存器可以实现ARM处理器对NAND设备相应信号的驱动。该方式使得ARM处理器与NAND设备的连接变得简单规范,图3中c例给出了ARM处理器S3C2410与Nand Flash K9F2808U0C的连接方式。
3.3 ARM处理器与SDRAM接口技术
嵌入式最小系统的外部动态存储器模块一般采用SDRAM。现在的大多数ARM处理器内部都集成有SDRAM控制器,通过它可以很容易的访问SDRAM内部的每一个字节。在实际开发中可以根据需要选用一片或多片SDRAM。图4中给出了两种常用的接口方式。