嵌入式的存储系统、接口设计——嵌入式系统学习笔记(边学边记版)

Chapter4 嵌入式的存储系统

接下来我们学习本课的第四章——嵌入式的存储系统

在这一章中,我们需要掌握三个重要的考点:

  • 存储器的组织及接口方式:ROM和RAM
  • 各类存储器的特点:SRAM、DRAM和Flash
  • 虚拟存储的基本原理,例如如何设计给定系统的存储器(如手持设备)

知道考点之后我们就可以重点性的进行本章的学习啦!开始吧~

目录

Chapter4 嵌入式的存储系统

1.存储器的组织和分类

2.存储器接口设计

3.虚拟存储机制

Chapter5  嵌入式的接口设计

1. I/O接口控制方式

2. ARM芯片实例—LPC21xx(以LPC2138为例)

3. ARM的GPIO接口!!

3.1LPC2138的外围I/O引脚

3.2 管脚功能选择寄存器

3.3 GPIO口的控制寄存器

4. ARM的A/D接口

4.1 A/D接口的基本知识

4.2 A/D接口寄存器

5. UART接口驱动电路设计

1.存储器的组织和分类

0f300677b74a4e9183e0b2005dd64d16.jpg

嵌入式的存储器目前采用分级的存储体系。

  1. 寄存器组是第一级存储器,一般是微处理器所内含的。速度较快,但容量很小
  2. Cache(高速缓存)是第二级存储器,速度足以与微处理器相匹配。一般透明使用,可减少内存平均访问时间。
  3. 内存储器(简称内存)是第三级存储器,运行的程序和数据都存放在内存中。分为RAM、ROMe64928a23f9c4391a7db8a2326b9d682.jpg
  4. 外存储器(简称外存)是第四级存储器,容量很大,嵌入式中常用闪存作为外存存储程序和数据。 

—————————————————内存——————————————————

1.RAM的选择

SRAM(静态随机读写存储器)——具有容量小,功耗低,速度快,使用简单接口的特点。

DRAM(动态随机读写存储器)——具有容量大,功耗大,速度慢,使用专用控制器的特点。该控制器集成在ARM的内部。

f4a2a6c9d24c4f8bb11146eee8f69e6c.jpg

 2.ROM的选择

目前计算机或嵌入式计算机都是用Flash作为非易失性存储器。

Flash——具有固定不挥发性,高密度,低功耗,单晶体管单元以及在线可重写的特点。

d1e57ef9c6b1402890d81964f3346135.jpg

 Flash存储器又可细分为:

  • Nor Flash  随机读取,适合作为内存,存放启动代码以及作为程序存储器使用。像单片机中程序存储器一般都是Nor Flash.
  • Nand Flash  顺序读取,适合作为外层,存放数据以及文件。如作为U盘

—————————————————外存——————————————————

通用计算机中常使用硬盘、固态盘(flash电子盘),光驱,U盘等。

嵌入式计算机中常使用固态盘(flash电子盘)。

2.存储器接口设计

f312f4ea75114f62bea9c1d109ef1260.jpg

3.虚拟存储机制

在计算机发展的早起,由于程序所需的内存大于物理内存,人们发明了虚拟存储技术。可以为进程提供比物理内存大的多的寻址空间,不同进程的虚拟空间不会相互影响。另外,虚拟存储技术还提供了内存映射、公平的物理内存分配和共享虚拟内存等功能。

57378ffa63e04d699fb449847ff1e69d.jpg

 虚拟存储器的基本原理是:

CPU处理器访问内存时,预取指令使用的是虚拟地址,通过MMU(即存储器管理单元)快速的将虚拟地址映射为物理地址,然后送到内存中访问。在内存中,程序、数据、堆栈总的大小可以超过物理存储的大小,此时,操作系统会把当前使用的部分保留在内存中,而其他未被使用的部分换出保存在辅助存储器(如硬盘)上。这样在用户看来似乎有一个比实际内存大的多的内存,即虚拟内存。

注意:MMU在CPU内部。

Chapter5  嵌入式的接口设计

在本章,我们以LPC2138为例,掌握其硬件组成的特点

  • 接口控制方式
  • I/O接口的寻址
  • 嵌入式系统的外围硬件设计(最小系统电路)
  • 具体处理器的I/O系统编制方式及地址空间分配
  • GPIO口的个数及裸机编程操作(实验)

在嵌入式计算机的硬件组成部分中,接口部分是最需要定制的。接口是负责CPU与外围设备之间数据交换的部件,它与CPU之间是总线连接,与外设之间是专用连接,可能会有驱动电路,以实现信号的匹配。

1. I/O接口控制方式

(1)什么是I/O控制方式?

I/O控制方式是指CPU与它所管理的各接口之间如何进行数据传输的控制。66cd9d5196244264a3e520616db572ad.jpg

 (2)I/O控制方式的种类—5种

1ae9c59a0ab04a46973e67d4d52101d0.jpg

  1. 无条件传送——最简单、最直接的传输
  2. 程序循环方式——即领导逐个查询式,该方式的特点为:①编码简单②占用CPU太多时间
  3. 中断控制方式——即下级有事打扰方式,该方式的特点为:①程序复杂②CPU占用时间少
  4. DMA方式——即多级领导方式,该方式的特点为:①数据高速传输②数据原样传输
  5. I/O处理器控制方式——与MDA方式相同,但是对数据处理能力更强。该方式的特点为:①数据高速传输②在数据传输时可以对数据进行加工处理485b054dd071417f83f4eba7e8a55043.jpg

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的起始地址都是固定的,寄存器的地址是绝对固定的。

ffad27a8c33e4c858f5acd2237c2cf0c.jpg

 由上图,我们可以观察在keil中对LPC2138项目的参数配置(包括起始位置以及大小)

befe18f767504385b8c96717ad4a2728.jpg


ARM内部总线有AHB、APB、VPB

  • AHB——高性能总线,高速总线
  • APB——外围总线,低速总线
  • VPB——超大规模集成电路接口总线

I/O端口地址分配:(固定高端地址)

373d300b4a7e461c9a1e373d39662f99.jpg

3. ARM的GPIO接口!!

ARM的外围引脚大多数是多功能引脚;

首先要选择合适的功能,然后由对应的接口寄存器(端口)实现操作。

3.1LPC2138的外围I/O引脚

我们以LPC2138为例,来看一下它的外围引脚

bd362d911c0341348e4e53852487a227.jpg

 在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

aa119e376288497bad4c6d50730929c8.jpg

 上表中,复位值全为0即全部都是当做GPIO接口的功能使用。

具体其他的功能如何选择,我们以下图中的PINSEL0为例子进行说明,该寄存器是一个32位的,主要控制P0.0~P0.15这16个引脚。

b49d59b333a94ad5bcecdd3aff6a22d3.jpg

 上表中,我们可以看出PINSEL0的第0位和第1位,如果置位00则表示P0.0引脚的功能为GPIO接口的引脚,如果置位01则表示P0.0引脚的功能为TxD,如果置位10,则为PWM。以此,我们可以知道管脚功能选择寄存器选择引脚功能的原理。


3.3 GPIO口的控制寄存器

P0和P1各由4个寄存器控制,如下图所示:

edfcab4d5f4247988b1ccf0678d88762.jpg


---------------下面对P0口操作完成流水灯的程序举个栗子-----------------

857bfa84020e474db8d88b5a79402f41.jpg

4. ARM的A/D接口

ARM提供多路多通道的A/D接口,其内部由对应的寄存器实现操作;

AD转换过程包括:选择通信等参数-->启动转换-->等待转换结束-->读取转换结果。

4.1 A/D接口的基本知识

040ab6a9e36e4993ac8e30e3681bfd45.jpg

(1) ADC接口用于将连续变化的模拟信号转换成是数字量

(2)ADC主要的性能指标为:

  • 分辨率——与位数有关,位数越多,分辨率越低
  • 转换速度
  • 精度——部分与分辨率有关,分辨率越高,精度越高;另一部分与其他误差有关

(3)ADC的操作步骤通常包括:启动转换,等待转换结束,读取转换结果

5e52ff4437334f169342c9caa0852310.jpg


4.2 A/D接口寄存器

123347a79d3a463e8d77fa0d03b8aba0.jpg

 ---------------下面对A/D转换举个栗子-----------------

fdfab650a82f446ebebcba78be1f870e.jpg

5. UART接口驱动电路设计

5.1 UART接口与串行通信标准

23778eb01fa44203bca8c9e67225109c.jpg

 (1)UART接口实现了串行数据的发送与接收,要实现设备间的通讯,可以按照一定的通信标准来进行。

(2)通信时分为两种电平:TTL/CMOS电平。

(3)串行通信标准常用的有:RS232标准,RS485标准,USB标准等。

  • RS232标准

逻辑电平定义:

在TxD和RxD上,逻辑1(MARK)=-3V~15V;逻辑0(SPACE)=+3V~+15V

然而:

3ce5753a63f346e89bc94023f2f1c882.jpg

RS232的驱动电路为:(这里不理解)

4a45fba7e92c484ca475b07db1d43c5c.jpg

  • 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”。

3b371a1b2b5648d799992ecd945bb6ee.jpg

以上的内容便是本课程第四章和第五章的内容啦!!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 嵌入式系统设计与应用是指在特定应用领域中,使用嵌入式处理器和相关硬件资源,结合嵌入式操作系统和软件开发工具,设计和开发满足特定需求的嵌入式系统。 ARM Cortex-A8是一款高性能的嵌入式处理器,广泛应用于手机、平板电脑、智能电视等嵌入式设备中。它具有强大的计算能力和低功耗特性,能够提供快速、高效的数据处理和多任务处理能力。 Linux是一种开源的嵌入式操作系统,提供了丰富的软件资源和开发工具,可以满足各种嵌入式应用的需求。在使用ARM Cortex-A8和Linux进行嵌入式系统设计和应用时,可以借助Linux的强大功能和丰富的软件生态系统,快速开发出满足特定需求的嵌入式应用。 设计和开发嵌入式系统时,首先需要选择合适的硬件平台和操作系统。选择ARM Cortex-A8作为处理器可以得到高性能和低功耗的优势,而选择Linux作为操作系统可以借助其丰富的软件资源和开发工具。 然后,根据具体的嵌入式应用需求,对系统进行架构设计和软件模块划分。在嵌入式系统设计中,需要考虑系统的实时性、功耗控制、硬件接口与外设的驱动、应用程序的开发等方面。 在应用开发阶段,可以使用C/C++等编程语言,结合相应的开发工具,编写应用程序和驱动程序。同时,可以借助Linux的丰富资源,如网络协议栈、文件系统、数据库等,快速实现系统的功能。 最后,在系统调试和测试阶段,可以使用调试工具和仿真平台进行系统性能测试和调试,以确保系统的稳定性和可靠性。 综上所述,嵌入式系统设计与应用基于ARM Cortex-A8和Linux可以提供高性能、低功耗和丰富软件资源的优势,能够快速开发出满足特定需求的嵌入式应用。 ### 回答2: 嵌入式系统设计与应用是指将计算机系统嵌入到特定的电子设备中,以完成特定的功能。基于ARM Cortex-A8和Linux的嵌入式系统设计与应用是指利用ARM Cortex-A8处理器和Linux操作系统来设计和开发嵌入式系统。 ARM Cortex-A8是一种高性能、低功耗的32位RISC处理器。它采用精简指令集架构,具有较高的运算能力和较低的能耗。Cortex-A8处理器广泛应用于嵌入式领域,可用于智能手机、平板电脑、汽车导航系统等各种嵌入式设备。 Linux是一种开源的操作系统内核,具有广泛的硬件支持和强大的软件生态系统。在嵌入式系统设计中,Linux提供了丰富的功能和驱动支持,能够提供稳定可靠的操作环境。同时,Linux还可以方便地进行定制和扩展,以满足各种应用需求。 在基于ARM Cortex-A8和Linux的嵌入式系统设计中,我们可以利用Linux提供的运行时库、工具链以及开发环境来进行系统开发。可以利用C/C++编程语言来进行应用程序的开发,使用Linux提供的设备驱动程序来进行硬件的控制和交互。同时,我们还可以利用Linux的网络支持和文件系统功能来实现网络连接和数据存储。 综上所述,基于ARM Cortex-A8和Linux的嵌入式系统设计与应用具有高性能、低功耗、可定制和可扩展等优势,可以适用于各种嵌入式设备的开发和应用。它在智能手机、平板电脑、汽车导航系统等领域具有广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值