Chapter4 嵌入式的存储系统
接下来我们学习本课的第四章——嵌入式的存储系统
在这一章中,我们需要掌握三个重要的考点:
- 存储器的组织及接口方式:ROM和RAM
- 各类存储器的特点:SRAM、DRAM和Flash
- 虚拟存储的基本原理,例如如何设计给定系统的存储器(如手持设备)
知道考点之后我们就可以重点性的进行本章的学习啦!开始吧~
目录
2. ARM芯片实例—LPC21xx(以LPC2138为例)
1.存储器的组织和分类
嵌入式的存储器目前采用分级的存储体系。
- 寄存器组是第一级存储器,一般是微处理器所内含的。速度较快,但容量很小
- Cache(高速缓存)是第二级存储器,速度足以与微处理器相匹配。一般透明使用,可减少内存平均访问时间。
- 内存储器(简称内存)是第三级存储器,运行的程序和数据都存放在内存中。分为RAM、ROM。
- 外存储器(简称外存)是第四级存储器,容量很大,嵌入式中常用闪存作为外存存储程序和数据。
—————————————————内存——————————————————
1.RAM的选择
SRAM(静态随机读写存储器)——具有容量小,功耗低,速度快,使用简单接口的特点。
DRAM(动态随机读写存储器)——具有容量大,功耗大,速度慢,使用专用控制器的特点。该控制器集成在ARM的内部。
2.ROM的选择
目前计算机或嵌入式计算机都是用Flash作为非易失性存储器。
Flash——具有固定不挥发性,高密度,低功耗,单晶体管单元以及在线可重写的特点。
Flash存储器又可细分为:
- Nor Flash 随机读取,适合作为内存,存放启动代码以及作为程序存储器使用。像单片机中程序存储器一般都是Nor Flash.
- Nand Flash 顺序读取,适合作为外层,存放数据以及文件。如作为U盘
—————————————————外存——————————————————
通用计算机中常使用硬盘、固态盘(flash电子盘),光驱,U盘等。
嵌入式计算机中常使用固态盘(flash电子盘)。
2.存储器接口设计
3.虚拟存储机制
在计算机发展的早起,由于程序所需的内存大于物理内存,人们发明了虚拟存储技术。可以为进程提供比物理内存大的多的寻址空间,不同进程的虚拟空间不会相互影响。另外,虚拟存储技术还提供了内存映射、公平的物理内存分配和共享虚拟内存等功能。
虚拟存储器的基本原理是:
CPU处理器访问内存时,预取指令使用的是虚拟地址,通过MMU(即存储器管理单元)快速的将虚拟地址映射为物理地址,然后送到内存中访问。在内存中,程序、数据、堆栈总的大小可以超过物理存储的大小,此时,操作系统会把当前使用的部分保留在内存中,而其他未被使用的部分换出保存在辅助存储器(如硬盘)上。这样在用户看来似乎有一个比实际内存大的多的内存,即虚拟内存。
注意:MMU在CPU内部。
Chapter5 嵌入式的接口设计
在本章,我们以LPC2138为例,掌握其硬件组成的特点
- 接口控制方式
- I/O接口的寻址
- 嵌入式系统的外围硬件设计(最小系统电路)
- 具体处理器的I/O系统编制方式及地址空间分配
- GPIO口的个数及裸机编程操作(实验)
在嵌入式计算机的硬件组成部分中,接口部分是最需要定制的。接口是负责CPU与外围设备之间数据交换的部件,它与CPU之间是总线连接,与外设之间是专用连接,可能会有驱动电路,以实现信号的匹配。
1. I/O接口控制方式
(1)什么是I/O控制方式?
I/O控制方式是指CPU与它所管理的各接口之间如何进行数据传输的控制。
(2)I/O控制方式的种类—5种
- 无条件传送——最简单、最直接的传输
- 程序循环方式——即领导逐个查询式,该方式的特点为:①编码简单②占用CPU太多时间
- 中断控制方式——即下级有事打扰方式,该方式的特点为:①程序复杂②CPU占用时间少
- DMA方式——即多级领导方式,该方式的特点为:①数据高速传输②数据原样传输
- I/O处理器控制方式——与MDA方式相同,但是对数据处理能力更强。该方式的特点为:①数据高速传输②在数据传输时可以对数据进行加工处理
2. ARM芯片实例—LPC21xx(以LPC2138为例)
该系列的芯片采用ARM7的内核,还包括丰富的片上资源:
- 片上程序存储器Flash(16-512k)
- 片上RAM存储器(8-32k)
- 可配置优先级的中断控制器(多达32)
- UART串口控制器
- 拥有两个定时器
- A/D、D/A转换器
- 低功耗等多种模式
- 贴片封装64引脚,芯片面积小
- 可通过JTAG下载,ISP/IAP下载,不用编程器
LPC21xx系列ARM地址空间分配
- ARM7的地址空间是冯诺依曼体系结构的,即程序寄存器和数据寄存器是一起的。
- 可分为3部分:Flash空间、ARM空间、I/O寄存器空间。
- 其中ARM和Flash的起始地址都是固定的,寄存器的地址是绝对固定的。
由上图,我们可以观察在keil中对LPC2138项目的参数配置(包括起始位置以及大小)
ARM内部总线有AHB、APB、VPB
- AHB——高性能总线,高速总线
- APB——外围总线,低速总线
- VPB——超大规模集成电路接口总线
I/O端口地址分配:(固定高端地址)
3. ARM的GPIO接口!!
ARM的外围引脚大多数是多功能引脚;
首先要选择合适的功能,然后由对应的接口寄存器(端口)实现操作。
3.1LPC2138的外围I/O引脚
我们以LPC2138为例,来看一下它的外围引脚
在LPC2138芯片中,有两个GPIO接口P0和P1,其中P0有31个引脚(P0.0~P0.31没有P0.24),P1有16个引脚(P1.16~P1.31),共47个引脚。
对同时我们可以看到每一个引脚都有很多的功能,不仅是作为GPIO引脚,而对于这些引脚到底是作为什么功能来使用,则需要通过管脚功能选择寄存器来进行选择。
3.2 管脚功能选择寄存器
在LPC2138中,管脚功能选择寄存器有三个,为PINSEL0、PINSEL1、PINSEL2。
上表中,复位值全为0即全部都是当做GPIO接口的功能使用。
具体其他的功能如何选择,我们以下图中的PINSEL0为例子进行说明,该寄存器是一个32位的,主要控制P0.0~P0.15这16个引脚。
上表中,我们可以看出PINSEL0的第0位和第1位,如果置位00则表示P0.0引脚的功能为GPIO接口的引脚,如果置位01则表示P0.0引脚的功能为TxD,如果置位10,则为PWM。以此,我们可以知道管脚功能选择寄存器选择引脚功能的原理。
3.3 GPIO口的控制寄存器
P0和P1各由4个寄存器控制,如下图所示:
---------------下面对P0口操作完成流水灯的程序举个栗子-----------------
4. ARM的A/D接口
ARM提供多路多通道的A/D接口,其内部由对应的寄存器实现操作;
AD转换过程包括:选择通信等参数-->启动转换-->等待转换结束-->读取转换结果。
4.1 A/D接口的基本知识
(1) ADC接口用于将连续变化的模拟信号转换成是数字量
(2)ADC主要的性能指标为:
- 分辨率——与位数有关,位数越多,分辨率越低
- 转换速度
- 精度——部分与分辨率有关,分辨率越高,精度越高;另一部分与其他误差有关
(3)ADC的操作步骤通常包括:启动转换,等待转换结束,读取转换结果
4.2 A/D接口寄存器
---------------下面对A/D转换举个栗子-----------------
5. UART接口驱动电路设计
5.1 UART接口与串行通信标准
(1)UART接口实现了串行数据的发送与接收,要实现设备间的通讯,可以按照一定的通信标准来进行。
(2)通信时分为两种电平:TTL/CMOS电平。
(3)串行通信标准常用的有:RS232标准,RS485标准,USB标准等。
- RS232标准
逻辑电平定义:
在TxD和RxD上,逻辑1(MARK)=-3V~15V;逻辑0(SPACE)=+3V~+15V
然而:
RS232的驱动电路为:(这里不理解)
- RS485标准
RS485采用差分信号负逻辑,+2V~+6V表示“0”,-2V~-6V表示“1”。
简单解释一下什么意思:差分信号不直接设置其高低,而且A-B的差作为信号,负逻辑就是,当A大于B超2V时,正常逻辑应该是“1”,但由于负逻辑,所以为“0”,即A-B=+2~+6时表示为“0”;同理可理解,A小于B超2V时,即A-B=-2~=6时表示为“1”。
以上的内容便是本课程第四章和第五章的内容啦!!!