安全基础--16--嵌入式基础之嵌入式系统

1、嵌入式系统的逻辑组成

嵌入式的主要组成有中央处理器、存储器、I/O接口、数据总线、软件等。

处理器:

概念: 能按照指令的要求高速度完成二进制数据和逻辑运算的部件。负责运行系统软件和应用软件的主处理器为中央处理器(CPU),其余的都是协处理器。
嵌入式CPU使用的主要是8位、16位、32位、64位。普通计算机CPU主要是64位。
CPU的性能体现在程序执行速度的快慢,影响程序执行速度的因素有:主频、指令系统、高速缓冲存储器的容量与结构、包含的定点运算器和浮点运算器数目、有无协处理器、流水线级数和条数、有无指令预测和数据预读取功能等。

存储器:

分为: 易失性存储器和非易失性存储器两大类
易失性存储器(RAM,随机存取存储器): 分为动态随机存取存储器(DRAM,工作存储器)、静态随机存取存储器(SRAM,高速缓冲存储器,通常与CPU内核集成在同一芯片内)。易失性存储器在关机或断电时,存储的数据将随之丢失。
非易失性存储器(ROM,只读存储器): 分为电可擦可编程只读存储器(EEPROM,存储固件)、闪存存储器(Flash ROM,存储固件/数据)、磁盘或光盘存储器(辅助存储器)。非易失性存储器在关机或断电时,存储的数据不会丢失。

I/O接口:

I/O接口用于连接(包括电器连接和物理连接)和控制I/O设备的工作。

分类:
通用串行总线式接口: USB2.0/3/0、IEEE 1394、以太网接口等
异步串行接口: RS-232-C、RS-485等
视频信号接口: 视频图形阵列接口(VGA)、数字视频接口(DVI)、高清晰度多媒体接口(HDMI)等
工业总线接口: 控制器局域网接口(CAN)、1553B接口、局域网接口(LIN)等
无线接口: 红外线接口、超宽带接口(UWB)、蓝牙接口、Zigbee接口、Wi-Fi接口等

数据总线:

概念: 嵌入式系统中各组件之间进行数据传输的一个传输通路。
内部总线: 将系统内部的组件连接在一起的总线。有AMBA总线、I2C总线、串行外设接口总线、通用异步接收/发送装置总线、PC104工业控制总线等
外部总线: 与外部组件(包括与其他嵌入式系统)进行连接使用的总线。通用串行总线(USB)、CAN总线、LIN总线(汽车用总线)等

软件:

低端嵌入式系统: 配置一个监控程序、若干设备驱动程序、事件处理程序即可
高端嵌入式系统: 有板级支持包(BSP)、设备驱动程序、实时操作系统、中间件、嵌入式应用软件等组成

2、嵌入式处理芯片

概念: 使用嵌入式系统的CPU芯片、包含有CPU内核的微控制器芯片、系统级芯片(SOC,片上系统)称为嵌入式处理芯片。其分为4中类型:

微处理器:
分为4位、8位、16位、32位、64位
嵌入式微处理器主要有:PowerPC、MC68000、MIPS、AMD x86系列等

数字信号处理器(DSP):
哈佛结构:使用分开的存储器分别存储程序和数据,指令系统中增加单指令多数据并行处理的特殊指令等
分类:DSP分为定点DSP和浮点DSP

微控制器(MCU,单片机):
概念:将整个计算机硬件的大部分甚至全部电路集成在一块芯片中。
除CPU外,芯片内还集成了ROM/EEPROM、RAM、总线、定时/计数器、看门狗定时器、I/O接口、A/D转换器、D/A转换器、网络通信接口等

片上系统(SOC):
概念:能够把计算机或其他一些电子系统的全部电路都集成在一个芯片上,即片上系统。单个芯片就能够实现数据的采集、转换、存储、处理、输入输出等多种功能(即单个芯片包含了存储器、CPU、DSP、MPEG)。是功能更加强大的嵌入式芯片
可编程片上系统:SOC和PLD/FPGA相结合,用可编程逻辑把系统制作在一块芯片上

3、嵌入式系统分类

类型硬件特征软件特征应用举例
低端系统4位/8位单片机不使用操作系统,由监控程序对系统进行监控工控领域或白色家电
中端系统8位/16位单片机或32位处理器使用小型嵌入式操作系统,应用程序规模较小,用户界面简单普通手机、摄像机、录像机
高端系统32位/64位处理器,支持连接网络操作系统功能齐全,使用图形用户界面,应用软件可更新和扩展智能手机、掌上计算机、高端数码相机

4、模拟通信与数字通信

模拟信号:

通过连续变化的物理量(例如电平的幅度或电流的强度)来表示信息。模拟信号在传输过程中容易受到噪音信号的干扰,传输质量不够稳定

数字信号:

电平的高低或电流的大小只有有限个状态(通常是两个状态),它们在时间上有时也是不连续的。数字信号的抗干扰能力强,差错可控制,还可以对信号进行加密。

5、数字通信的传输技术

调制解调技术:

调制: 高频振荡的正弦波信号可以远距离传输,因此可以将高频正弦波作为携带的的载波,信息传输时,利用信源信号去调整载波的某个参数(幅度、频率、相位)。该过程即调制
解调: 调制后的载波携带被传输的信号在信道中进行远距离传输,到达目的地时,接收方将其复原为原始信号,该过程即解调
调制器: 对载波进行调制所使用的设备,在发送端使用
解调器: 恢复被传输的原始信号的设备
调制解调器: 大多数情况下通信时双向的,所以调制解调器通常做在一起

多路复用技术:

分为时分多路复用和频分多路复用
时分多路复用: 各通信终端以事先规定的顺序轮流使用同一传输线路进行信号或数据的传输
频分多路复用: 将每个信源发送的信号调制的不同频率的载波上,通过多路复用器将它们复合成一个信号,然后在同一传输线路上进行传输。信号到达接收端后,借助分路器把不同频率的载波送到不同的接收设备

分组交换技术:

源计算机把需要传输的数据划分为若干块,为每块数据附加上源计算机和目的计算机的地址、数据块编号、校验信息等(称为头部),组成一个一个的包(称为分组),然后以包为单位通过传输网络向目的计算机发送。到达目的计算机后,再由目的计算机接收和处理。

6、CISC处理器与RISC处理器

复杂指令集结构(CISC):
指令数目多且结构比较复杂,包含许多很少使用的专用指令,不同指令的长度并不相等,执行时间长短不一。CISC处理器结构复杂,功耗较大。

精简指令集结构(RISC):
指令数目少,指令字长统一,格式规整,寻址模式较为单纯,指令操作简单,执行时间短

现状:
RISC和CISC并不是对立的。现在RISC指令集也达到几百条,指令执行时间也不再固定。CISC对常用的简单指令也以硬接线逻辑进行加速,不常用的复杂指令则由微程序实现。

7、冯诺伊曼存储结构与哈佛存储结构

冯诺伊曼存储结构:
CPU与存储器的连接只有一套总线。即一套数据线、控制线、接地线连接了CPU与存储器,存储器中既可以存放数据又可以存放程序。

哈佛存储结构:
使用两个独立的存储器分别存储指令和数据,不允许指令和数据并存。使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

现状:
使用多层次的存储器架构,即在处理器与主存储器之间增加缓冲器(cache存储器),第一级cache存储器采用哈佛结构,分为指令cache和数据cache,第2、3级cache以及主存储器都采用冯氏结构,指令存储器和数据存储器不再分开。以此兼顾两者优点。

8、ARM处理器指令集

ARM指令集:
全部是32位的指令,其基本指令主要用于进行8位、16位、32位整数的运算,通过扩展的协处理器(最多16个),可以扩充浮点运算指令、数字信号处理(DSP)指令、单指令多数据(SIMD)指令等,使处理器的功能大大扩展。

Thumb指令集:
全部是16位字长的指令,可以看作是ARM指令的压缩格式。是为了减少代码量而设计。Thumb指令集并不完备,它只支持通用功能,必要时仍需要使用ARM指令。

Thumb-2指令集:
既有16位又有32位指令,是一个混合的指令集。它是16位Thumb指令集的超集,功能强大、完备、效率高。用于实现代码密度和处理器性能的最佳平衡,可以在不牺牲性能的情况下节省存储成本。

9、ARM处理器分类

经典ARM x处理器:
ARM 1-ARM 6已经淘汰不使用,ARM 7-ARM 11称为经典ARM处理器。
型号中的T表示支持Thumb指令集,D表示支持片上调试,M表示具有快速的64位乘法,I表示提供片内在线仿真(ICE),-S表示该处理器以IP软核的形式提供授权,让客户根据自己的半导体工艺进行再开发。

ARM Cortex-M嵌入式处理器:
Cortex-M0 - Cortex M4,面向微控制器的32位处理器。属于低端处理器
只支持Thumb-2指令集的子集

ARM Cortex-R实时嵌入式处理器:
Cortex-R4 - Cortex R7,面向实时控制应用的处理器。属于中端处理器
特点:高性能、实时处理、安全、低成本

ARM Cortex-A应用处理器:
Cortex-A5 - Cortex A57,面向高端应用的处理器。除了A50系列使用64位字长,采用ARM v8A架构外,其他均为32位字长,基于ARM v7A 架构。属于高端处理器。

ARM v7A 架构支持传统的ARM、Thumb指令集、高性能紧凑型Thumb-2EE指令集,具有完全的应用兼容性;提供Java字节码加速执行的Jazelle技术;提供可信计算的TrustZone安全扩展;采用最多可达13级的深度流水线技术,处理器时钟频率可达2GHz左右。

10、ARM处理器的工作状态及切换

ARM状态:
ARM处理器工作于32位指令的状态,即32位状态,所有指令均为32位宽度

Thumb状态/Thumb-2状态:
ARM处理器工作于16位指令的状态,即16位状态
Cortex-M处理器只有Thumb-2指令集,因此只有Thumb状态和调试状态两种。除此外的处理器,在复位后开始执行代码时总是只处于ARM状态,需要时才会切换到Thumb状态

调试状态:
处理器停机调试时进入调试状态

工作状态切换:
由ARM状态切换到Thumb状态:通过BX指令,将操作数寄存器最低位设置为1,即可将ARM状态切换到Thumb状态。

R0[0] = 1        //执行BX R0指令将进入Thumb状态

由Thumb状态切换到ARM状态:通过BX指令,将操作数寄存器最低位设置为0,既可将Thumb状态切换到ARM状态。

R0[0] = 0        //执行BX R0指令将进入ARM状态

11、ARM处理器的工作模式

工作模式功能说明CPRS [M4 : M0]
用户模式User程序正常执行工作模式10000
快速中断模式FIQ处理高速中断,用于高速数据传输或通道处理10001
外部中断模式IRQ用于普通中断处理10010
管理模式SVC操作系统的保护模式,处理软中断SWI10011
中止模式ABT处理存储器故障,实现虚拟存储器和存储器保护10111
未定义指令模式UND处理未定义的指令陷阱,用于支持硬件协处理器仿真11011
系统模式SYS运行特权级的操作系统任务11111

12、ARM状态下的寄存器组织

ARM处理器共有37个寄存器,包括31个通用寄存器(含PC)和6个状态寄存器。

通用寄存器中不分组的寄存器共有8个:R0-R7;R8-R12共2组计10个寄存器,标有fiq的寄存器代表快速中断模式专用,与其他模式地址重叠但寄存器内容并不冲突;R13-R14除了用户模式和系统模式分别为堆栈指针(SP)和程序链接寄存器(LR)之外,其他模式下均有自己独特的标记方式,是专门用于特定模式的寄存器,共6组计12个。加上作为PC的R15,这样通用寄存器共31个。所有通用寄存器均为32位。
在这里插入图片描述

状态寄存器:
共6个,除了共用的当前程序状态寄存器CPSR外还有分组的备份程序状态寄存器SPSR(5组共5个)。
状态寄存器的条件码标志:
在这里插入图片描述

状态寄存器的控制位含义:
I 为中断禁止控制位,I=1禁止外部IRQ中断,I=0允许IRQ中断。
F 为禁止快速中断FIQ的控制位,F=1禁止FIQ中断,F=0允许FIQ中断。
T 为ARM与Thumb指令切换,T=1时执行Thumb指令,否则执行ARM指令。
M4-M0 为模式选择位,决定处理器工作于何种模式

13、Thumb状态下的寄存器组织

Thumb状态下的寄存器组是ARM状态下寄存器组的子集,Thumb/Thumb-2状态下的寄存器组如下:
R8-R12只有在32位指令状态下才可以当作通用寄存器使用。
在这里插入图片描述

14、ARM处理器的异常

在程序正常执行的过程中,每执行一条ARM指令PC值增加4,每执行一条Thumb指令PC值增加2,通常指令按顺序执行。
在这里插入图片描述
复位异常发生后,系统自动从0x00000000开始重新执行程序,执行完无需返回。其他所有异常处理完毕后,必须返回到原来的程序处继续向下执行。

15、ARM的两种存储字的格式

大端模式/大端序(big-Endian)和小端模式/小端序(little-Endian)

大端模式:高子节(如同个十百千万的万)存储在低地址(前面)中,符合常规数学
小端模式:低字节存储在低地址中。

16bit宽的数0x1234在Little-endian模式(以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址小端模式存放内容大端模式存放内容
0x40000x340x12
0x40010x120x34

32bit宽的数0x12345678在Little-endian模式以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址小端模式存放内容大端模式存放内容
0x40000x780x12
0x40010x560x34
0x40030x340x56
0x40040x120x78
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武天旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值