NJUSE-嵌入式期末复习
已经放弃整理。仅标题有一定参考价值。
2024-2025 第一学期嵌入式期末复习
1. 嵌入式系统概述
定义
- IEEE定义:用于控制、监控或者辅助操作机器和设备的装置
- 国内定义:嵌入式系统是以应用为中心以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专业计算机系统
术语
- 泛在计算(ubiquitous computing) 预言任何时间、任何地点的计算
- 不可见计算机(invisible computer) 预言计算机将被集成到物件中
- 普适计算(pervasive computing) 计算设备对日常生活的渗透
- 环境智能(ambient intelligence) 主要强调了未来家庭或智能楼宇中的通信技术
组成
- 嵌入式系统一般由嵌入式硬件和软件组成
- 硬件以微处理器为核心集成存储器和系统专用的输入/输出设备
- 软件包括:初始化代码及驱动、嵌入式操作系统和应用程序等,这些软件有机地结合在 一起,形成系统特定的一体化软件。
特点
- 形式多样,面向特定应用
- 得到多种类型处理器和处理器体系结构的支持
- 极其关注成本
- 有实时性和可靠性要求
- 使用的操作系统使用多种处理器、可裁剪、轻量型、实时可靠、可固化的嵌入式操作系统
- 需要专门工具和特殊方法
特征
- 嵌入式系统通常是形式多样、面向特定应用的
- 嵌入式系统得到多种类型的处理器和处理器体系结构的支持
- 嵌入式系统通常极其关注成本
- 嵌入式系统有实时性和可靠性的要求
- 嵌入式系统使用的操作系统一般是适应多种处理器、可剪裁、轻量型、实时可靠、可固 化的嵌入式操作系统
- 嵌入式系统开发需要专门工具和特殊方法
分类
- 按处理器位数:4位、8位、16位、32位、64位
- 按应用:信息家电、汽车电子、通信、移动终端、工业控制
- 按速度:强实时系统、一般实时系统、弱实时系统
- 按确定性:硬实时系统、软实时系统
- 按复杂程度:循环轮询系统、有限状态机系统、前后台机系统、单处理器多任务系统、多处理器多任务系统
典型应用
工控设备、军用电子设备、航空航天、汽车电子、信息家电、通信、智能玩具、可穿戴设备。
发展趋势
2. 嵌入式微处理器
分类
按结构区分,有冯诺依曼结构和哈佛结构。
- 冯诺依曼结构:数据和程序放在同一个存储单元,统一编制,指令和数据通过同一个总线访问
- 哈佛结构:程序和数据存储在不同的空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问。与之相对应的是系统中设置的两条总线(程序总线和数据总线),从而使数据的吞吐量提高了一倍(更大存储代管和更大可预测带宽)
- 哈佛结构不能使用自修改代码
按指令集区分,有 CISC 和 RISC
- CISC:复杂指令集(许多地址格式,许多操作)
- RISC:精简指令集(流水型指令)
- RISC机器用来减少指令周期的一种技术,可提高处理器和总线使用率
CISC | RISC | |
---|---|---|
价格 | 由硬件完成部分软件功能,硬件复杂性增加,芯片成本高 | 由软件完成部分硬件功能,软件复杂性增加,芯片成本低 |
性能 | 减少代码尺寸,增加指令的执行周期数 | 使用流水线降低指令的执行周期数,增加代码尺寸 |
指令集 | 大量的混杂指令集,有简单快速的指令,也有复杂多周期指令,符合HLL | 简单的单周期指令,在汇编指令方面有相应的SISC伪代码指令 |
高级语言支持 | 硬件完成 | 软件完成 |
寻址模式 | 复杂的寻址模式,支持内存到内存寻址 | 简单的寻址模式,仅允许LOAD和STORE指令存取内存,其他所有的操作都基于寄存器到寄存器 |
寄存器数目 | 寄存器较少 | 寄存器较多 |
特点
流水线清空
分支预测技术
设备分类
根据能力与性能分类
3. 存储器架构
复杂
易失性存储器
- RAM RAM也称随机存储器,那么随机是什么意思?所谓随机,指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置无关(任何位置读写速度一样)。
- DRAM DRAM(Dynamic Random Access Memory,动态随机存储器)是最为常见的系统内存。我们使用的电脑和手机的运行内存都是DRAM。DRAM使用电容存储,DRAM 只能将数据保持很短的时间。
- SRAM SRAM(Static Random Access Memory,静态随机存储器),它是一种具有静止存取功能的内存,其内部机构比DRAM复杂,可以做到不刷新电路即能保存它内部存储的数据。
- SDRAM SDRAM:(Synchronous Dynamic Random Access Memory,同步动态随机存取存储器),为DRAM的一种,同步是指Memory工作需要同步时钟,内部命令的发送与数据的传输都以时钟为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。
- 还有DDR SDRAM、DDR2 SDRAM、DDR3SDRAM不做过多赘述,感兴趣可以自己百度。
非易失性存储器
- ROM
只读存储器(Read-Only Memory)是一种只能读取资bai料的存储器。在制造过程中,将资料以一特制光罩(mask)烧录于线路中,其资料内容在写入后就不能更改,所以有时又称为“光罩式只读内存”(mask ROM)。
- PROM
可编程程序只读存储器(Programmable ROM,PROM)之内部有行列式的熔丝,是需要利用电流将其烧断,写入所需的资料,但仅能写录一次。 PROM在出厂时,存储的内容全为1,用户可以根据需要将其中的某些单元写入数据0
- EPROM
可抹除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)可利用高电压将资料编程写入,抹除时将线路曝光于紫外线下,则资料可被清空,并且可重复使用。通常在封装外壳上会预留一个石英透明窗以方便曝光。
- OTPROM
一次编程只读存储器(One Time Programmable Read Only Memory,OTPROM)之写入原理同EPROM,但是为了节省成本,编程写入之后就不再抹除,因此不设置透明窗。
- E2PROM
电子式可抹除可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)之运作原理类似EPROM,但是抹除的方式是使用高电场来完成,因此不需要透明窗
- 快闪存储器
快闪存储器(Flash memory)的每一个记忆胞都具有一个“控制闸”与“浮动闸”,利用高电场改变浮动闸的临限电压即可进行编程动作。
在嵌入式系统中的应用
固件、可固化(ROMable)
存储器系统的层次结构
Flash 存储器访问时间难以预测
4. 基于总线的计算机系统
IO设备分类
- 单总线结构
使用一条单一的系统总线来链接CPU、主存和IO设备。总线只能分时工作,是信息的传送的吞 吐量受到限制
- 双总线结构
在CPU和主存之间专门设置了一组高速的存储总线,使CPU可通过专用总线与存储器交换信息,并减轻了系统总线的负担。主存仍可通过系统总线与外设之间实现DMA操作,而不经过CPU
- 多总线结构
在双总线系统的基础上增加IO总线,其中系统总线使CPU、主存和通道(IOP)之间进行数据传送的公共通路,而IO是多个外部设备与通道之间进行数据传送的公共通路。通道实际上是一台具有特殊功能的处理器,他分担了一部分CPU的功能,以实现对外设的统一管理及外设与主存之间的数据传送。
可编程I/O
在通信过程中三种方法来选择控制寄存器和数据缓存:
- Independent I/O port
- memory-mapped I/O
- Hybrid solution. the hybrid model include memory-mapped I/O data buffers and separate I/O ports for the control registers.
中断
可重入
竞态条件
总线,分类,常用总线
5.嵌⼊式软件系统
嵌入式软件与桌面软件的对比
- 独特的实用性
嵌入式软件是为嵌入式系统服务的,这就要求它与外部硬件和设备联系紧密。嵌入式系统以应用为中心,嵌入式软件是应用系统,根据应用需求定向开发,面向产业、面向市场,需要特定的行业经验。每种嵌入式软件都有自己独特的应用环境和实用价值
- 灵活的适用性
嵌入式软件通常可以认为是一种模块化软件,它应该能非常方便灵活地运用到各种嵌入式系统中,而不能破坏或更改原有的系统特性和功能。嵌入式软件要使用灵活,应尽量优化配置,减小对系统的整体继承性,升级更换灵活方便
- 程序代码精简
由于嵌入式系统本身的应用有小体积、小存储空间、低成本、低功耗等要求,嵌入式软件和大型机上的软件相比,具有代码精简、执行效率高等特点
- 可靠性、稳定性高
嵌入式系统应用要求一般较为苛刻,特别是在涉及安全相关的领域,如汽车电子、工业控制、航空航天等,这些领域的嵌入式系统不仅要求硬件可靠,还对嵌入式软件提出了更高的要求。嵌入式软件需要运行可靠、稳定,具有错误处理及故障恢复等功能
软件主导硬件、软硬件权衡
嵌入式软件系统层次结构
驱动层
板级初始化程序
与系统启动相关的驱动
与应用软件相关的驱动
与应用软件相关的驱动不一定需要与操作系统连接,这些驱动的设计和开发由应用决定。
操作系统层
操作系统层包括嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌入式GUI系统和电源管理等部分
其中嵌入式内核是基础和必备的部分,其他部分要根据嵌入式系统的需要来确定
中间件层
目前在一些复杂的嵌入式系统中也开始采用中间件技术,主要包括嵌入式CORBA、嵌入式Java、嵌入式DCOM和面向应用领域的中间件软件
如基于嵌入式CORBA的应用于软件无线电台的应用中间件SCA(Software Core Architecture)等
应用层
应用层软件主要由多个相对独立的应用任务组成
每个应用任务完成特定的工作,如I/O任务、计算的任务、通信任务等,由操作系统调度各个任务的运行