嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含
Cache、主存
和辅助存储器。
(1)Cache
Cache 是一种容量小、速度快的存储器阵列它位于主存和嵌入式微处理器内核之间,
存放的是最近一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作
时,微处理器尽可能的从
Cache 中读取数据,而不是从主存中读取,这样就大大改善
了系统的性能,提高了微处理器和主存之间的数据传输速率。
Cache 的主要目标就是:
减小存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈,使处理速
度更快,实时性更强。
在嵌入式系统中
Cache 全部集成在嵌入式微处理器内,可分为数据 Cache、指令
Cache 或混合 Cache,Cache 的大小依不同处理器而定。一般中高档的嵌入式微处理
器才会把
Cache
集成进去。
(2)
主存
主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。
它可以位于微处理器的内部或外部,其容量为
256KB-1GB,根据具体的应用而定,一
般片内存储器容量小,速度快,片外存储器容量大。
常用作主存的存储器有:
ROM 类 NOR Flash、EPROM 和 PROM 等。ROM 中的信息在一次写入后只能被读出,
而不能被操作者修改或删除,一般由芯片制造商对存储器进行掩膜写入信息,其价格便宜
适合于大量的应用,一般用于存放固定的程序,如监控程序、汇编程序等,以及存放各种表
格。
RAM 类 SRAM、DRAM 和 SDRAM 等。主要用来存放各种现场的输入、输出数据,中间
计算结果,以及与外部存储器交换信息和作堆栈用。它的存储单元根据具体需要可以读出,
也可以写入或改写。
RAM 只能用于暂时存放程序和数据,一旦关闭电源或发生断电,其中
的数据就会丢失。现在的
RAM 多为 MOS 型半导体电路,分为静态和动态两种。静态 RAM
是靠双稳态触发器来记忆信息的;动态
RAM 是靠 MOS 电路中的栅极电容来记忆信息的,
由于电容上的电荷会泄漏,需要定时给与补充,所以动态
RAM 需要设置刷新电路。动态
RAM 比静态 RAM 集成度高、功耗低,从而成本也低,适于做大容量存储器。所以主内存通
常采用动态
RAM,而高速缓冲存储器(Cache)则使用静态 RAM。
其中
NOR Flash 凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌
入式领域内得到了广泛应用。
(3)
辅助存储器
辅助存储器用来存放大数据量的程序代码或信息,它的容量大、但读取速度与主存
相比就慢的很多,用来长期保存用户的信息。
嵌入式系统中常用的外存有:硬盘、
NAND Flash、CF 卡、MMC 和 SD
卡等。
2.2.3 通用 设 备 接口 和 I/O 接口
嵌入式系统和外界交互需要一定形式的通用设备接口,如
A/D、D/A、I/O 等,外设
通过和片外其他设备的或传感器的连接来实现微处理器的输入
/输出功能。每个外设通常
都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简
单的串行通信设备到非常复杂的
802.11
无线设备。
目前嵌入式系统中常用的通用设备接口有
A/D(模/数转换接口)、D/A(数/模转
换接口),
I/O 接口有 RS-232 接口(串行通信接口)、Ethernet(以太网接口)、
USB(通用串行总线接口)、音频接口、VGA 视频输出接口、I2C(现场总线)、SPI(串
行外围设备接口)和
IrDA
(红外线接口)等。