嵌入式硬件系统结构

嵌入式硬件系统可分为:CPU子系统(控制器和运算器)、存储子系统、输入/输出子系统。并通过总线互联。



1、总线

总线(Bus)是计算机各种功能部件之间,各模块之间传送信息的公共通信干线。

在这里的总线是指内部总线,它是cpu内存、I/O设备传递信息的公用通道,主机的各个部件通过总线相连接,I/O设备通过相应的接口电路再与总线相连接,从而形成了硬件系统

(1)、按照计算机所传输的信息种类,计算机的总线可以划分为数据总线(DB)地址总线(AB)和控制总线(CB)

分别用来传输数据、数据地址和控制信号

(2)、按照传输数据的方划分,可以分为行总线并行总线

串行总线中,二进制数据逐位通过一根数据线发送到目的器件;常见的串行总线有SPI、I2C、USB及RS232等;

并行总线的数据线通常超过2根。如AMBH总线

(3)、按照时钟信号是否独立,可以分为同步总线和异步总线。

同步总线的时钟信号独立于数据,SPI、I2C是同步串行总线,

异步总线的时钟信号是从数据中提取出来的,RS232采用异步串行总线。

(4)、按照所处的位置,分为片内总线(芯片级总线)、系统总线(板卡级总线)  系统外总线

片内总线:连接处理器芯片内部各个功能模块的总线。如arm的 AMBA总线的AHB、ASB、APB

系统总线:连接处理器芯片与存储器芯片、外设接口芯片等的总线。

系统外总线:连接微机系统与系统只之间、微机系统与外部设备之间的总线。如USB等。


2、存储子系统

四级结构:寄存器 +Cache +主存(内存、SRAM/DRAM和ROM)+ 辅存

(1)寄存器:数据寄存器、控制寄存器、状态寄存器三大类。

(1)主存(RAM和ROM)

编址方式:字节编址
  信息存放方式:大/小端(big/small endianness)系统

在大端存储系统中:数据的最高字节存储在最低地址中; 小端存储系统中:数据的最高字节存储在最高地址


3、输入输出子系统(外设)

(1)计算机与直接相联的外围设备进行数据交换的过程通常称为输入/输出(In/Out)

远方设备进行数据交换的过程习惯上称为数据通信(data communication)

(2)IO接口

由于外设和处理器在信号,速度等方面存在很大的差异,因此,要在中间加一个中间环节,以解决差异,这就是I/O接口(接口电路,I/O控制器)

端口的区别:端口指接口电路中的一些寄存器,与寄存器相对应有数据端口,控制端口,状态端口。

分类:

a、按传输方式分,串行接口,并行接口

b、按时钟分,同步接口,异步接口

c、按主机访问IO设备的控制方式分:程序查询接口,程序中断接口,DMA接口等

d、还分为:CPU外围接口,外设IO接口

编址:CPU为了访问接口电路中的端口,要进行寻址。

a、统一编址:将存储器和I/O端口统一编址。如s3c2440等处理器

此时,cpu,存储器,I/O接口都改在统一总线上

b、独立编址:存储器和I/O端口分开编址


注:

第一、寄存器和内存的区别

1、寄存器和内存都是可以用来读写的,但寄存器的操作时有副作用,称之为(side effect 边际效果)

2、读取一个寄存器可能导致寄存器中的内容发生变化,比如在一些设备的中断状态寄存器中,读取了寄存器后会自动清零

 

第二、IO空间和内存空间

1、并不是所有的体系结构都有IO空间这个定义的,我所了解的只有X86体系上有,而ARM体系结构就没有这种区别,在X86上,IO空间和内存是独立的,他们各自有各自的总线,并且IO空间一般是64K,即16位,内存空间为4G

可见他们的差别是很大

 

第三、IO 端口和IO内存

在有了IO空间的概念后,就有IO端口和IO内存

当一个寄存器或内存位于IO空间时候,称之为IO端口

当一个寄存器或内存位于内存空间时候,称之为IO内存

这种映射是通过OS的MMU来把虚拟地址映射为物理地址的


设备驱动程序要直接访问外设或其接口卡上的物理电路,这部分通常都是以寄存器的形式出现。外设寄存器称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把 CPU分成两大类。

一类CPU(如M68K,Power PC,ARM,Unicore等)把这些寄存器看作内存的一部分寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种CPU没有专门用于设备I/O的指令(可以以此判定体系为哪种)。这就是所谓的“I/O内存”方式。

另一类CPU(如X86)将外设的寄存器看成一个独立的地址空间,所以访问内存的指令不能用来访问这些寄存 器,而要为对外设寄存器的读/写设置专用指令,如IN和OUT指令。这就是所谓的” I/O端口”方式 。但是,用于I/O指令的“地址空间”相对来说是很小的。事实上,现在x86的I/O地址空间已经非常拥挤。


最小硬件系统(S3C2440A最小硬件系统模块框图)

ARM微处理器;
电源模块,包括CPU内核和I/O接口电源电源;
时钟模块,包括系统主时钟和实时时钟;
复位模块,包括系统上电复位、手动复位和内部复位;
存储器模块,包括程序保存存储器和程序运行存储器;
JTAG调试接口模块

嵌入式硬件系统结构_第1张图片

你可能感兴趣的:(嵌入式硬件系统结构)