Linux设备驱动开发之硬件基础

中央处理器的体系结构

中央处理器的体系结构可以分为两种:冯诺依曼结构、哈佛结构。采用冯诺依曼结构的中央处理器有intel公司的中央处理器、arm家族的arm7、mips公司的mips等处理器。采用哈佛结构的有avr、arm9、arm10、arm11、cortexA系列等。

冯诺依曼结构

冯诺依曼结构也称普林斯顿结构,是一种将存储指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理地址,因此程序指令和数据的宽度一定是相同的。

哈佛结构

哈佛结构将程序指令和数据分开存储,因此程序指令和数据的宽度可以不一样。哈佛结构采用了独立的程序总线和数据总线,分别作为CPU与每个存储器之间的专用通信路径,具有较高的执行效率。

冯诺依曼与哈佛结构的对比图:
在这里插入图片描述

改进的哈佛结构

改进的哈佛结构具有独立的地址总线和数据总线,两条总线由程序存储器和数据存储器分时共用。因此哈佛结构没有真正独立的总线,而是使用公用数据总线来完成程序存储模块或数据存储模块与CPU之间的数据传输,公用的地址总线来寻址程序和数据。
改进的哈佛结构如图:
在这里插入图片描述

中央处理器指令集

从指令集的角度来看,中央处理器可以分为两类:RISC(精简指令集)、CISC(复杂指令集)。CISC强调增强指令的能力、减少目标代码的数量,但是指令复杂,指令周期长;而RISC强调尽量减少指令集、指令单周期执行,但是目标代码会更大。arm、mips、powerpc等cpu内核都采用了RISC指令集。

一般的处理器分类如图:
在这里插入图片描述

存储器

存储器主要可分为只读存储器(ROM)、闪存(flash)、随机存取存储器(RAM)、光/磁介质存储器。
ROM还可以细分为不可编程ROM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)和电可擦除可编程ROM(E2PROM)。
NOR(或非)和NAND(与非)是市场上主要的两种flash闪存技术。

NOR Flash

NOR Flash和CPU的接口属于典型的类SRAM接口,不需要增加额外的控制电路。NOR Flash的特点是可以芯片内部执行,程序可以直接在NOR内运行。类SRAM接口如图:
在这里插入图片描述
公共闪存接口(Common Flash Interface,CFI)是一个从NOR Flash读取的数据的公开标准接口。它可以使系统软件查询已安装的Flash器件的各种参数,包括器件阵列结构参数、电气和时间参数以及器件支持的功能等。

NAND Flash

NAND Flash以块方式进行访问,不支持芯片内执行。

RAM

RAM可以分为静态RAM(SRAM)和动态RAM(DRAM)。DRAM以电荷方式进行存储,数据存储在电容器中。由于电容器是会漏电的,所以DRAM器件需要定期刷新。SRAM是静态的,只要供电,它的值就不会变。DRAM中有SDRAM和DDR SDRAM区分,通常情况下,DDR的数据传输速率是SDRAM的2倍。下面介绍一些特定类型的RAM。

DPRAM:双端口RAM

DPRAM的特点是可以通过来个端口同时访问,具有两套完全独立的数据总线、地址总线和读写控制线,通常用于两个处理器之间数据交换。如图:
在这里插入图片描述

CAM:内容寻址RAM

CAM是以内容进行寻址的存储器,是一种特殊的存储阵列RAM,它的工作机制就是同时将一个输入数据项与存储在CAM中的所有数据项自动进行比较,判别该输入数据项与CAM中存储的数据项是否相匹配,并输出该数据项对应的匹配信息。

FIFO:先进先出队列

FIFO存储器的特点是先进先出,多用于数据缓冲。
下面看存储器的分类图:
在这里插入图片描述

接口与总线

串口

一般说串口我们通常指的是RS-232、RS-422与RS_485等。这些串口常用的就是RxD和TxD这两根数据线。其中RxD是用来接收数据的,TxD是用来发送数据的。

IIC

IIC总线是由飞利浦公司开发的两线式串行总线。组成IIC总线的两个信号为数据线SDL和时钟线SCL。为了避免总线信号的混乱,要求各设备连接到总线的输出端必须是开漏输出或集电极开漏输出的结构。因为IIC总线的开始信号是检测到下降沿开始的,所以之前总线空闲时都要是开漏输出外接上拉电阻状态。时序图如下:
在这里插入图片描述

SPI

SPI总线系统是一种同步串行外设接口,它可以使得CPU与各种外围设备以串行方式进行通信交换信息。一般主控Soc作为SPI的主,而外设作为SPI的从。SPI一般有4个条线,串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS。SPI线连接图如下:
在这里插入图片描述

USB

usb即通用串行总线,它具有数据传输率高、易扩展、支持即插即用和热插拔的优点。USB协议有多种,有USB1.1协议、USB2.0协议、USB3.0协议。下面由USB主机、设备、和Hub组成的USB系统的物理拓扑图如下所示:
在这里插入图片描述

USB支持多种传输方式,有控制传输、有同步传输、有中断传输、有批量传输方式等。

以太网接口

以太网接口由MAC(以太网媒体接入控制器)和PHY(物理接口收发器)组成。以太网MAC由IEEE802.3以太网标准定义,实现了数据链路层。常用的MAC支持10Mbit/s或100Mbit/s两种速率。MAC和PHY之间采用MII(媒体独立接口)连接。一个以太网接口的硬件电路原理是从CPU到最终接口依次为CPU、MAC、PHY、以太网隔离变压器、RJ45插座。如图所示:
在这里插入图片描述

PCI和PCI-E

PCI是一种局部总线。一个典型的基于PCI总线的计算机系统逻辑示意图:系统的各个部分通过PCI总线和PCI-PCI桥连接在一起。CPU和RAM通过PCI桥连接到PCI总线0(即主PCI总线),而具有PCI接口的显卡则可以直接连接到主PCI总线上。PCI-PCI桥是一个特殊的PCI设备,它负责将PCI总线0和PCI总线1(即从PCI主线)连接在一起,通常PCI总线1称为PCI-PCI桥的下游(Downstream),而PCI总线0则称为PCI-PCI桥的上游(Upstream)。为了兼容旧的ISA总线标准,PCI总线还可以通过PCI-ISA桥来连接ISA总线,从而支持以前的ISA设备。当PCI卡刚加电时,卡上配置空间即可以被访问。PCI配置空间保存着该卡工作时所需的所有信息,如厂家、卡功能、资源要求、处理能力、功能模块数量、主控卡能力等。如图:
在这里插入图片描述

SD和SDIO

SD(Secure Digital)是一种关于Flash存储卡的标准,也就是一般常见的SD记忆卡,在设计上与MMC(Multi-Media Card)保持了兼容。SD(Secure Digital)是一种关于Flash存储卡的标准,也就是一般常见的SD记忆卡,在设计上与MMC(Multi-Media Card)保持了兼容。eMMC就是NAND Flash、闪存控制芯片和标准接口封装的集合,它把NAND和控制芯片直接封装在一起成为一个多芯片封装(Multi-Chip Package,MCP)芯片。

CPLD和FPGA

CPLD(复杂可编程逻辑器件)由完全可编程的与或门阵列以及宏单元构成。与CPLD不同,FPGA(现场可编程门阵列)基于LUT(查找表)工艺。

原理图分析

略。

芯片数据手册阅读方法

略。

仪器仪表使用

略。

总结

上述的部分是摘抄宋宝华老师的书上内容,详情请参考宋宝华老师的设备驱动开发书。

猜你喜欢

转载自blog.csdn.net/m0_38099380/article/details/89647287