硬件知识扫盲(1):基础知识

一、Serial与UART的区别

Serial(串行通信)是一种将一个字节一个字节地进行传输的通信协议。UART(通用异步收发传输器)是一种用于处理串行通信的芯片或模块,可以将数据从并行格式转换为串行格式,并将其传输到其他设备。TTY(终端类型)是一种字符设备,允许用户通过终端或其他控制台进行交互式通信。

它们之间的区别如下:

  1. Serial(串行通信)是一种通信协议,用于在两个设备之间传输数据。UART(通用异步收发传输器)是一种芯片或模块,可处理串行通信。

  2. Serial(串行通信)是从串行端口发送和接收数据,而UART(通用异步收发传输器)是从计算机CPU接收并将其转换为串行格式的数据。

  3. TTY(终端类型)是一种字符设备,允许用户通过终端或其他控制台进行交互式通信。

  4. 虽然TTY和UART都可以被用于串行通信,但是它们处理的方式非常不同。TTY概念上是存在于用户空间的,而UART是存在于内核空间的。

总之,Serial、UART和TTY是三个不同的概念,每个概念都具有特定的功能和作用。Serial和UART都涉及串行通信,但Serial是传输数据的协议,而UART是一个芯片或模块,用于处理和转换串行通信数据。TTY是一种字符设备,用于允许用户与计算机进行交互式通信。

二、IIC总线、SPI总线和UART总线的区别及特点

IIC总线、SPI总线和UART总线是三种常见的串行通信总线,它们各自有自己的特点和应用场景。

  1. IIC总线(Inter-Integrated Circuit Bus):

IIC总线是NXP半导体公司提出的一种串行通信总线标准,用于连接集成电路,传输低速数据。IIC总线由两个双向线路组成,一条是数据线(SDA),一条是时钟线(SCL)。

IIC总线的主要特点:

  • 双向传输
  • 只需要两条线,数据线和时钟线
  • 支持多机通信
  • 传输速率较慢,通常在100 Kbps或400 Kbps左右
  • 支持从设备寻址

IIC总线常用于连接一些低速传感器和存储器等设备。

  1. SPI总线(Serial Peripheral Interface Bus):

SPI总线是Motorola公司提出的一种串行通信总线标准,用于连接主芯片和外设,例如存储器、ADC、LCD显示器等。SPI总线由四条线组成,分别是时钟线(SCK)、数据线(MISO和MOSI)和使能线(SS)。

SPI总线的主要特点:

  • 支持全双工或半双工传输
  • 支持点对点或多点通信
  • 传输速率较快,通常可达到几十Mbps到100Mbps
  • 不能自动寻址,需要手动选择从设备
  • 传输距离较短

SPI总线常用于连接一些需要高速数据传输的外设,例如Flash存储器和LCD显示器等。

  1. UART总线(Universal Asynchronous Receiver Transmitter):

UART总线是一种通用的串行通信标准,用于连接主芯片和外设,例如GPS接收器、无线模块等。UART总线只需要两条线,分别是传输线(TX)和接收线(RX)。

UART总线的主要特点:

  • 支持异步传输
  • 支持点对点通信
  • 传输速率较慢,通常在几十到几百Kbps之间
  • 不支持自动寻址,需要手动选择从设备
  • 可以对传输的数据进行校验

UART总线常用于连接一些低速数据传输的外设,例如GPS接收器、传感器等。

三、什么是总线

总线是计算机内部各部件之间数据传输的通道,它可以分为多种类型,包括指令总线、数据总线、地址总线等。其中指令总线和数据总线是计算机中两个重要的总线类型。

指令总线:指令总线是一种计算机内部所有指令传输的总线。它是计算机内部指令传输的主要通道,用于将处理器从内存或缓存中读取指令。指令总线的宽度决定了CPU可以一次读取的指令字节数,一般为16位或32位。

数据总线:数据总线是一种计算机内部数据传输的总线。它用于处理器、内存和输入/输出设备之间的数据传输。数据总线的宽度决定了CPU和内存之间可以传输的数据量。一般数据总线的位宽和CPU的位宽一致,可以是8位、16位、32位或更高。

通常,处理器与内存、输入输出设备之间的数据传输都通过总线进行传输。指令总线和数据总线通常是独立的,它们可以在不同的速率下运行,以满足不同的传输需求。

地址总线是计算机内部的一种总线,用于传输指示内存或外部设备的物理地址。它通常是单向的,从处理器输出地址信号到内存或外设。地址总线的宽度决定了处理器可以寻址的内存空间大小。

地址总线的位宽表示能够传输的物理地址的数量。例如,一个16位的地址总线可以传输2^16(即65536)个不同的地址,这意味着处理器可以寻址的内存空间大小为64KB。

当处理器需要访问内存中的数据或者与外设进行数据传输时,它会将目标地址放置在地址总线上。这个地址信号会经过总线传输到内存或外设,以指示要读取或写入的存储位置。

在计算机系统中,地址总线的位宽往往与内存地址宽度或者外设地址宽度相对应。较低位宽的地址总线限制了处理器能够寻址的内存空间大小,而较高位宽的地址总线可以支持更大的内存空间。

总之,地址总线是计算机内部的一种单向总线,用于传输指示内存或外设的物理地址。它的位宽决定了处理器能够寻址的内存空间大小。地址总线在计算机系统中起着重要的作用,支持数据的读取和写入操作。

四、中断简介

中断是指处理器暂停正在执行的任务,转而执行与此事件相关的例行程序或子程序,以响应发生的某个事件(例如硬件终端或软件中断)。中断机制用于提高CPU的利用率和响应能力,以处理常规任务和紧急事件。

中断流程大致如下:

  1. 事件发生:当CPU执行常规任务时,硬件设备或操作系统内核可能会发出中断请求信号,通知CPU中断事件的发生。

  2. 中断请求响应:CPU收到中断请求信号后,立即停止当前正在执行的任务,并跳转到具有高优先级的中断处理程序进行响应。

  3. 中断服务处理:中断处理程序执行针对中断请求的服务处理任务,如保存当前进程的上下文、执行中断服务程序、处理中断请求。如果存在多个中断请求,处理程序将按照优先级顺序依次进行处理。

  4. 中断请求完成:当中断服务例程完成后,处理器会恢复现场并从之前被中断的地址处继续执行程序。如果存在多个中断请求,处理程序将按照优先级顺序依次完成处理,直到所有请求被处理完成。

需要注意的是,中断处理程序通常具有比常规任务更高的优先级,并且必须在最短的时间内完成中断处理任务。如果中断处理程序因某种原因无法完成处理,它可能会导致系统故障或不稳定。

总之,中断是用于响应时间敏感事件的事件处理机制。中断流程包括中断请求响应、中断服务处理和中断请求完成三个阶段,它们共同组成了完成中断处理的完整流程。

IRQ(中断请求)是计算机硬件中的一种机制,用于向 CPU 发出请求,并请求中断当前的指令流程,以便 CPU 进行其他的处理。IRQ 能够在硬件设备需要处理数据时发送中断请求到 CPU,通知 CPU 需要进行响应的处理。IRQ 常被用于硬件事件的响应,例如键盘输入、鼠标移动、存储设备读写等。

当一个设备需要向 CPU 发出 IRQ 请求时,它会向 IRQ 控制器发出请求。IRQ 控制器是一个位于计算机主板上的芯片,负责管理所有 IRQ 请求。当一个设备需要发送 IRQ 请求时,IRQ 控制器会分配一个 IRQ 号给该设备,并将该 IRQ 号映射到一个中断处理程序(IRQ handler)上。当该设备发出 IRQ 请求时,CPU 会停止当前的指令执行,并调用对应的中断处理程序进行处理。中断处理程序通常是预先编写好的软件程序,用于对特定的 IRQ 请求进行响应。

在 Linux 操作系统中,IRQ 请求通常被称为中断(Interrupt),而中断处理程序则被称为中断处理函数(Interrupt Handler)。Linux 内核中有一个中断管理子系统(IRQ subsystem),负责管理所有的中断请求。Linux 内核为每个 IRQ 请求分配了一个唯一的 IRQ 号,IRQ 号有一个对应的中断处理函数。当硬件设备发送 IRQ 请求时,IRQ 控制器会将对应的 IRQ 号发送到 CPU,CPU 会根据 IRQ 号查找对应的中断处理函数,并执行该函数。中断处理函数通常需要响应 IRQ 请求,进行相应的处理,并向 IRQ 控制器发送中断结束信号,以便 CPU 继续执行原有的指令流程。
总的来说,IRQ 是一种用于向 CPU 发出请求,并请求中断当前指令流程的机制。它能够实现设备事件的响应,从而提高系统的性能和效率。IRQ 在计算机系统中发挥着重要的作用,是计算机硬件设计中必不可少的一部分。

五、NandFlash和NorFlash的区别

NandFlash和NorFlash的区别:
NandFlash是一种存储芯片,它是非易失性存储器(NVM)的一种,可以存储大量的数字信息。NandFlash通常用于闪存存储器、USB驱动器、MP3播放器、数码相机、手机等电子设备上。它与NorFlash不同,NorFlash可以按字节读取数据,但NandFlash只能按块读取。

NandFlash使用串行接口,这使得它的访问速度比NorFlash更快。此外,NandFlash也比NorFlash更便宜,因为它的制造成本更低。由于这些特点,NandFlash已成为许多消费电子产品中最常见的存储介质之一。

最根本的区别在于NorFlash可以进行程序,其数据总线和地址总线的分开的,可以实现按字节寻指的操作,而NandFlash则是数据总线和地址总线公用,无法按字节为单位读写数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值