简述系统总线
目录
总线的基本概念
总线的分类
总线特性及其性能指标
机械特性
电气特性
功能特性
时间特性
带宽(Bandwidth)
延迟(Latency)
传输速率(Transfer Rate)
总线宽度(Bus Width)
时钟频率(Clock Frequency)
数据传输模式(Data Transfer Mode)
总线控制
总线判优控制
链式查询(菊花链仲裁)
计数器定时查询
独立请求方式
总线通信控制
同步通信
异步通信
一、非互锁应答(Non-interlocked Handshake)
二、半互锁应答(Semi-interlocked Handshake)
三、全互锁应答(Fully-interlocked Handshake)
基本原理
半同步通信
分离式通信
计算机硬件系统由中央处理器,存储器,I/O系统以及连接它们的系统总线组成。
总线的基本概念
计算机系统的五大部件之间连接的方式有两种,一种是各个部件之间的单独连线,称为分散连接;另外一种是将各个部件连接到一组公共信息传输线上,称为总线连接。
早期的计算机大都采用分散连接的方式,如典型的冯诺依曼计算机结构:
其以运算器为中心,内部连线十分复杂,尤其是当I/O与存储器交换信息的时候,都需要经过运算器,导致运算器停运,严重影响CPU的工作效率。
虽然后面改进为以存储器为中心的分散连接结构,I/O与主存之间交换信息不需要经过运算器,又采用了中断,DMA等技术,使得CPU工作效率提升,但是还是无法解决I/O设备与主机之间连接的灵活性。
因此随着计算机的不断发展,出现了总线连接方式。总线是连接多个部件的信息传输线,是各部件共享的传输介质。当多个部件和总线相连的时候,如果出现两个或者多个部件向总线发送信息,势必会导致总线的信号冲突,传输无效。所以在某一时刻,只允许一个设备向总线发送信息,但是多个部件可以同时从主线接收相同的信息。
总线实际上是由许多传输线或通路组成,每条线可以一位一位地传输二进制代码,一串二进制代码可以在一段时间内逐一传输完成。
按总线数量与功能划分我们简单分为单总线结构,双/多总线结构。
单总线结构使用一条单一总线(如系统总线)连接所有部件,包括 CPU、内存、硬盘、显卡、I/O 设备等。所有设备共享同一组数据、地址和控制总线。
虽结构简单、成本低,易于实现和扩展,适合低成本嵌入式系统或早期微型计算机(如早期的 8 位 / 16 位微机),但是总线带宽成为瓶颈,所有部件竞争同一总线,尤其当 CPU 与内存、I/O 设备同时传输数据时,易导致性能下降,且传输效率低,需通过总线仲裁机制(如轮询、优先级调度)协调设备访问,延迟较高。
双总线结构将总线分为两类,缓解单总线的瓶颈问题,常见方案有两种,其核心差异在于数据传输的核心枢纽和外设通信方式:
以 CPU 为中心的双总线结构
- 内存总线(M 总线):连接 CPU 与主存,负责高速数据传输(指令、运算数据读写)。
- I/O 总线:连接 CPU 与 I/O 设备(通过接口),处理低速外设通信,I/O 与主存的数据传输需 CPU 中转(无 DMA 时)。
CPU 需同时管理两条总线,I/O 操作易阻塞 CPU,导致性能较低,内存总线与 I/O 总线无法并行,同一时间 CPU 只能处理一项任务,总线利用率低。
以存储器为中心的双总线结构
- 存储总线(内存总线):连接 CPU 与主存,确保高速交互。
- 系统总线:连接主存与 I/O 设备(通过接口),I/O 可通过 DMA 直接与主存通信(无需 CPU 中转)。
CPU 访问内存、I/O 设备访问主存可同时进行,提升了系统吞吐量,并行性高。DMA 技术使 I/O 与主存通信独立,CPU 专注计算,解放了CPU。系统总线专为显卡、高速存储设计,突破传统瓶颈,支持高速外设。
以存储器为中心的双总线是现代计算机的主流架构基础,通过 DMA、高速串行总线等技术,满足了大数据、高并发场景的需求,是理解现代硬件互联(如 PCIe、DDR)的核心框架。
如果把速率不同的I/O设备进行分类,将双总线的单一 I/O 总线拆解为多条专用总线,然后把它们连接到不同的通道上,那么双总线结构就会拓展为多总线结构。
总线的分类
我们按照连接部位的不同,我们简单把总线逻辑划分为三类:片内总线,系统总线以及通信总线。
片内总线(On-Chip Bus),又称内部总线,是集成在单个芯片内部的总线,用于连接芯片内部的各个功能模块,在芯片内部的数据传输、信号交互以及功能模块协同工作中发挥着关键作用。
系统总线是计算机主板上连接各主要组件的公共通信通道,用于在 CPU、内存、显卡、硬盘等硬件之间传输数据、地址和控制信号,是计算机系统的核心通信枢纽。
系统总线主要由数据总线、地址总线和控制总线三部分组成。
数据总线是双向的,既可以从内存传向 CPU 等设备,也可以从 CPU 等设备传向内存。其用于传输实际的数据,比如 CPU 从内存中读取的指令或数据,以及 CPU 向内存写入的数据等。数据总线的宽度决定了计算机在一个时钟周期内能够传输的数据量,例如 32 位数据总线一次可以传输 32 位(4 字节)的数据,64 位数据总线一次能传输 64 位(8 字节)的数据。
地址总线是单向的,只能由 CPU 发出地址信号。其用来传输内存单元或 I/O 设备的地址信息。CPU 通过地址总线指定要访问的内存地址或 I/O 设备,从而实现对特定存储单元或设备的数据读写操作。地址总线的宽度决定了计算机系统的最大寻址空间,比如 32 位的地址总线,其最大寻址空间为 2的32次方=4GB ;64 位地址总线则能支持更大的寻址范围。
控制总线中的信号有单向的,也有双向的 ,不同的控制信号有不同的传输方向。其传输各种控制信号,用于协调系统中各部件的操作,如读写命令、中断请求、总线仲裁信号、复位信号等。例如,CPU 通过控制总线发出读命令,通知内存将指定地址的数据传送到数据总线上;内存完成数据传输后,也会通过控制总线向 CPU 发送响应信号。
当 CPU 需要访问内存中的数据时,会先通过地址总线将目标数据的内存地址发送出去,内存接收到地址信号后,根据该地址找到对应的数据;接着,CPU 通过控制总线发出读命令,内存根据读命令将数据通过数据总线传输给 CPU。如果是 CPU 向内存写入数据,过程类似,只是控制总线发出的是写命令,CPU 将数据通过数据总线传送给内存,内存再将数据存储到指定地址。对于 I/O 设备,也是通过系统总线与 CPU 进行数据交互,只是可能需要通过相应的 I/O 接口进行适配。
通信总线是用于实现计算机系统与外部设备、网络设备或不同计算机系统之间数据传输和通信的通路,是计算机与外部世界交互的 “桥梁”。它不仅涵盖计算机内部组件间的通信(如系统总线),还包括计算机与外部设备(如打印机、传感器、其他计算机)通过各种接口和协议进行的数据传输。其通过标准化的协议以及接口(如USB,HDMI/DP接口等),实现跨设备通信。
总线特性及其性能指标
从物理角度来看,总线由许多导线直接印制在电路板上,延伸到各个部件。
将 CPU 插板、主存插板和 I/O 插板分别插入主板上对应的插槽中,确保插板与插槽之间的金属触点紧密接触,完成物理连接。之后,通过连接电源线、数据线等线缆,将外部设备与 I/O 插板相连,以及将电源与主板相连,最终构成一个完整的计算机硬件系统,实现数据在 CPU、主存和 I/O 设备之间通过总线进行高效传输和交互。
在计算机总线系统中,机械特性、电气特性、功能特性、时间特性是描述总线物理接口和通信规则的核心要素。
机械特性
总线的机械特性聚焦于物理连接的规范,定义了接口的外形、尺寸、引脚排列等物理参数。例如,PCI-E 插槽的长条形结构、USB Type-C 的对称接口设计,确保设备插拔的物理兼容性;DDR 内存插槽的 284 针布局,通过金手指与主板触点的精准匹配,实现电气连接的稳定性。这些设计不仅保证了硬件的物理适配,还通过防呆结构(如插槽缺口)避免插错,提升系统组装的可靠性,是不同厂商设备互联互通的基础。
电气特性
电气特性规定总线信号的电参数,包括电平标准、信号方向和阻抗匹配。单端信号(如传统 ISA 总线的 TTL 电平)适用于低速场景,而差分信号(如 PCI-E 的 ±0.3V 差分对)通过抗干扰设计支持高速传输(如 32GT/s 的 PCI-E 5.0)。数据总线双向传输数据,地址总线单向传输地址,控制总线则根据信号类型(如读写命令、中断请求)定义方向。阻抗匹配(如 DDR 内存的 ODT 终端电阻)减少信号反射,确保高频信号(如 10GHz 以上)在长距离传输中不失真,是高速数据通信(如 NVMe SSD 的 PCI-E 通道)的核心保障。
功能特性
功能特性划分总线信号线的功能,明确数据、地址、控制信号的分工。数据总线传输指令、运算结果等实际数据,宽度(如 64 位)决定单次传输量;地址总线传输内存 / 外设地址,宽度(如 64 位)决定寻址空间(16EB);控制总线传输读写命令、中断等控制信号,协调设备操作(如 CPU 通过控制总线触发内存读取)。这种功能分离使 CPU、内存、外设等部件通过总线有序交互,例如显卡通过 PCI-E 的控制总线接收 CPU 的渲染指令,数据总线传输图形数据,地址总线定位显存地址,实现硬件协同工作。
时间特性
时间特性规范总线信号的时序逻辑,包括同步与异步传输、传输周期等。同步传输(如 DDR 内存的 DQS 时钟同步)通过统一时钟(如 100MHz 的 PCI-E 时钟)确保信号时序一致,适合高速场景;异步传输(如 USB 的握手信号)通过 “请求 - 应答” 机制(如 REQ/ACK)适应不同速度设备(如低速传感器与高速 CPU),避免时钟依赖。传输周期(如 PCI-E Gen4 的每个周期传输 16 字节)决定数据吞吐效率,影响系统性能(如游戏显卡的高帧率依赖 PCI-E 的低延迟时序)。时间特性确保设备间信号同步,避免因时序错位导致的数据错误(如内存读写时序不匹配引发的 CRC 校验失败),是总线稳定运行的时序基础。
总线性能指标是衡量其数据传输能力、效率和稳定性的关键参数,主要包括:
带宽(Bandwidth)
总线单位时间内传输的数据量,由总线宽度(数据总线位数,如 64 位)和时钟频率(总线工作频率,如 100MHz)决定,公式为 带宽 = 总线宽度 × 时钟频率
(单位:bit/s)。例如,64 位总线以 100MHz 运行时,带宽为 6.4Gbps。高带宽(如 PCI-E 5.0 的 128GB/s)支持高速设备(如 NVMe SSD、显卡)的数据吞吐,是高性能计算和图形渲染的核心需求。
延迟(Latency)
数据从源到目标的传输时间,包括信号传播延迟(物理介质耗时,如 PCB 走线长度)、仲裁延迟(多设备竞争总线的等待时间)和处理延迟(总线控制器解析信号的时间)。低延迟(如 DDR 内存的 CL16 参数)对实时应用(如游戏、工业控制)至关重要,可减少操作响应时间(如鼠标卡顿)。
传输速率(Transfer Rate)
总线每秒传输的信号变化次数,与时钟频率直接相关。采用编码技术(如 DDR 的双倍数据速率,每个时钟周期传输两次数据)可提升有效速率(如 DDR4 的 5332MT/s)。高速传输(如 PCI-E 5.0 的 32GT/s)决定存储设备(如 NVMe)和网络接口的性能,影响数据加载和传输效率。
总线宽度(Bus Width)
数据总线一次传输的位数(如 8、32、64 位),决定并行传输能力。宽度越大,单次传输数据量越多(如 64 位总线比 32 位翻倍),但增加硬件复杂度(更多引脚、更高功耗)。现代 CPU 系统总线多为 64 位,支持高效数据并行(如内存与 CPU 的批量数据交换)。
时钟频率(Clock Frequency)
总线同步操作的基准频率(如 MHz/GHz),决定基本速度。高频时钟(如 DDR5 的 5600MHz)提升带宽和速率,但需先进工艺(低功耗晶体管)和信号完整性设计(阻抗匹配、屏蔽)以抗干扰。例如,PCI-E 的 100MHz 差分时钟支持高速串行传输,是显卡、网卡等设备的性能基石。
数据传输模式(Data Transfer Mode)
包括单工(单向,如串口)、半双工(双向分时,如以太网)、全双工(双向同时,如 PCI-E)。全双工(如 USB4 的 40Gbps 双向)提升带宽利用率,适合高速设备(如显卡与 CPU 的双向交互)。还涉及突发传输(内存连续地址数据传输,减少开销)和流水线操作(多阶段并行,提升效率)。
总线控制
总线控制是指在计算机系统中,对总线上数据传输、设备访问及通信过程进行协调和管理的机制。其核心目标是确保多个设备(如 CPU、内存、输入输出设备等)能够有序、高效地共享总线资源,避免冲突并提升传输效率。它主要包括判优控制(或称仲裁逻辑)和通信控制。
总线判优控制
总线上连接的各个设备,按照其对总线有没有控制功能,我们可以将其分为主设备和从设备。主设备对总线有控制权,从设备只能响应从主设备发来的总线命令,对总线没有控制权。当多个设备同时请求使用总线时,仲裁机制需要决定哪个设备优先获得总线控制权,以解决竞争冲突。总线上的信息是由主设备启动的,只有获得总线控制权的主设备才能开始传输数据。
总线判优控制可以分为集中式和分布式两种,集中式仲裁通过一个独立的仲裁器(如中央控制器)统一管理所有设备的请求,设备需向仲裁器发送请求信号,由仲裁器按预定规则(如优先级、轮转法等)分配总线使用权;分布式仲裁则无需独立仲裁器,各设备通过总线接口中的仲裁逻辑自行协商,通常通过发送优先级信号或令牌传递的方式确定主控设备。
在计算机总线系统中,集中式仲裁是最常见的控制优先仲裁方式,其通过一个中央仲裁器来协调多个设备的总线请求。根据仲裁逻辑的不同,集中式仲裁又可分为以下几种典型方式:
链式查询(菊花链仲裁)
其中有三条线用于总线控制(BS总线忙,BR总线请求,BG总线同意)设备按优先级顺序(如离仲裁器越近优先级越高)串联在响应线上,形成 “菊花链” 结构。当设备请求总线时,通过 BR 线向仲裁器发送请求;仲裁器收到请求后,通过 BG 线从优先级最高的设备开始依次传递响应信号。第一个接收到 BG 信号且有请求的设备获得总线控制权,并建立总线忙BS信号,后续设备的请求被忽略。这种方式硬件简单,但优先级固定,低优先级设备可能长期无法获得总线(“饥饿” 问题)。对电路敏感,菊花链中任一设备的故障可能导致后续设备无法响应,仲裁速度依赖设备数量,设备越多延迟越长。
计数器定时查询
与链式查询相比较,多了一组设备地址线,少了一根总线同意线BG。仲裁器通过一个 计数器 和 设备地址线 来确定优先级。设备通过 BR 线统一请求总线,仲裁器接收到请求后,启动计数器从某个初始值(如 0 或上次终止值)开始计数,并通过地址线广播当前计数值。与计数值匹配的设备若有请求,则获得总线控制权,计数器暂停并记录当前值。下次仲裁时,计数器可从当前值继续递增(循环优先级)或重新从 0 开始(固定优先级)。
计数器定时查询优先级可动态调整:若计数器循环计数,各设备优先级平等,避免 “饥饿”。,仲裁速度较快,不依赖设备物理位置。但需要额外的设备地址线和计数器逻辑,硬件复杂度高于链式查询,计数过程仍需一定时间,总线空闲时可能存在延迟。
独立请求方式
每个设备拥有 独立的请求线(BRi) 和 批准线(BGi),直接与仲裁器连接。设备通过各自的 BRi 线独立向仲裁器发送请求。仲裁器根据预设的 优先级逻辑(如固定优先级、动态优先级、循环优先级等),通过编码电路选中优先级最高的设备,并通过对应的 BGi 线发送批准信号。
独立请求响应速度最快,仲裁器可直接选中目标设备,无需依次查询。优先级灵活可调,支持动态优先级(如按任务紧急程度调整),设备间独立请求,某一设备故障不影响其他设备。但硬件复杂度最高,控制线数量随设备数呈线性增长(n 个设备需 n 根 BRi 和 n 根 BGi)且仲裁器逻辑复杂,需实现优先级编码和译码电路。
总线通信控制
众部件共享总线,在争夺总线控制权的时候,应该按照各部件的优先级来解决。在通信时间上,则应该按分时来处理,哪一个部件获得使用权,此刻就由它来传输,下一个部件获得使用权,接着下一时刻传输,这样一个接一个轮流交替传输。其核心目标是确保总线在多设备竞争下的有序通信,优化传输效率,保证数据完整性,并兼容不同速度和类型的设备。
总线周期(Bus Cycle)是指通过总线完成一次数据传输(如内存读写、I/O 操作)所需的完整流程。通常可归纳为以下典型阶段:
一、总线请求与仲裁阶段(Bus Request & Arbitration):解决多设备竞争总线的问题,确定当前总线主设备。
二、寻址阶段(Addressing Phase):确定数据传输的对象(内存单元或 I/O 设备),并传递操作类型(读 / 写)。
三、数据传输阶段(Data Transfer Phase):在主设备与从设备之间完成数据的实际传输。
四、总线释放阶段(Bus Release Phase):主设备完成传输后释放总线控制权,使总线回归空闲状态或供其他设备使用。
总线通信控制主要解决总线上主设备与从设备之间协调数据传输的控制机制,通常可分为四种典型方式:同步通信,异步通信,半同步通信和分离式通信,其核心区别在于时序控制和握手机制的不同。
同步通信
同步通信以统一的系统时钟信号作为时序基准,所有数据传输操作(如地址、数据、控制信号)均在时钟周期的固定边沿(上升沿 / 下降沿)同步完成。
同步式数据输入
-
时钟(Clock)
作为全局同步信号,每个时钟周期(T₁-T₄)定义操作节拍。信号边沿(如上升沿)触发状态变化,确保主从设备(如 CPU 与内存)时序严格对齐,无异步握手延迟(典型同步通信特性)。 -
地址(Address)
- T₁:主设备(CPU)在时钟上升沿后发送目标地址(如内存单元地址),地址信号在 T₁内稳定,供从设备(内存控制器)译码。
- T₂-T₄:地址持续有效,直至 T₄结束后总线释放(地址总线高阻态),确保从设备有足够时间定位存储单元。
-
读命令(Read Command)
- T₂:主设备发送读命令(低电平有效,图示中信号下降沿表示命令生效),通知从设备读取目标地址数据。
- T₃:读命令保持有效,从设备(内存)完成数据读取并驱动数据总线(如 DRAM 的列读取操作)。
- T₄:读命令在时钟上升沿后失效(信号上升沿),总线释放控制信号,准备下一次传输。
-
数据(Data)
- T₃:从设备将数据输出到数据总线,主设备(CPU)在时钟边沿采样数据(如存入寄存器)。
- T₁-T₂、T₄:数据总线无效(图示空白部分),仅 T₃阶段传输有效数据(读操作中数据由从设备驱动,区别于写操作)。
流程总结(读操作):地址建立(T₁) → 读命令发送(T₂) → 数据返回(T₃) → 总线释放(T₄)
同步式数据输出
-
时钟(Clock)
与读操作一致,通过时钟边沿同步所有信号(地址、数据、命令),确保时序统一。 -
地址(Address)
- T₁:主设备发送目标地址(如内存单元地址),从设备译码(同读操作 T₁)。
- T₂-T₄:地址持续有效,直至总线释放。
-
写命令(Write Command)
- T₂:主设备发送写命令(低电平有效,图示中信号下降沿生效),通知从设备准备接收数据。
- T₃:写命令保持有效,主设备(CPU)驱动数据总线(如运算结果),从设备(内存)接收并写入目标地址(如 DRAM 的行写入操作)。
- T₄:写命令在时钟上升沿后失效,总线释放。
-
数据(Data)
- T₂-T₃:主设备将数据输出到数据总线(写操作中数据由主设备驱动,区别于读操作)。
- T₁、T₄:数据总线无效,仅 T₂-T₃阶段传输有效数据。
流程总结(写操作):地址建立(T₁) → 写命令与数据发送(T₂) → 数据写入(T₃) → 总线释放(T₄)
同步通信时序简单,传输效率高(无等待延迟),硬件设计简单,适合高速短距离传输(如 CPU 内部总线)。但是所有设备需严格匹配时钟频率,灵活性差,若从设备速度较慢,需提前设计最长时钟周期,会导致资源的浪费。
异步通信
无统一时钟,依赖 握手信号(Handshake Signals)实现主从设备间的双向确认,传输时序由设备自身速度动态决定。
异步通信的应答方式(握手方式)主要分为以下三种,基于请求(REQ
)与应答(ACK
)信号的互锁关系进行区分:
一、非互锁应答(Non-interlocked Handshake)
- 原理:
主设备发送请求后,无需等待从设备应答,超时后直接撤销请求;从设备接收请求后,无需确认主设备是否接收应答,超时后自动撤销应答。双方信号无依赖,通信过程 “无反馈闭环”。 - 特点:
- 硬件极简:仅需基本信号线路,无复杂握手逻辑;
- 容错性差:若信号延迟或丢失(如从设备未收到
REQ
),数据传输可能失败,且无重试机制; - 适用场景:对可靠性要求低的简单外设(如早期 LED 指示灯控制,主设备发送亮灯指令后直接释放总线,不检查外设是否执行)。
二、半互锁应答(Semi-interlocked Handshake)
- 原理:
- 主设备侧互锁:主设备发送
REQ
后,必须等待从设备的ACK
才能撤销REQ
(确保从设备已接收请求); - 从设备侧非互锁:从设备发送
ACK
后,无需等待主设备的REQ
撤销,超时后自动撤销ACK
(不确认主设备是否收到应答)。
- 主设备侧互锁:主设备发送
- 特点:
- 单向可靠性:主设备有应答确认(避免请求丢失),但从设备应答可能丢失(如主设备未收到
ACK
,但从设备已撤销),导致持续高电平死锁; - 中等复杂度:比非互锁增加主设备的应答等待逻辑;
- 适用场景:多主设备共享资源(如多 CPU 访问共享内存,主 CPU 发送访问请求后,需等待内存控制器的 “空闲”
ACK
,但内存控制器无需确认 CPU 是否收到ACK
)。
- 单向可靠性:主设备有应答确认(避免请求丢失),但从设备应答可能丢失(如主设备未收到
三、全互锁应答(Fully-interlocked Handshake)
- 原理:
- 双向互锁:主设备发送
REQ
后,等待从设备的ACK
并确认后撤销REQ
;从设备发送ACK
后,等待主设备的REQ
撤销并确认后撤销ACK
。形成 “REQ
→ACK
→REQ
撤→ACK
撤” 的闭环握手。
- 双向互锁:主设备发送
- 特点:
- 最高可靠性:任何信号丢失或延迟都会被检测(如主设备未收到
ACK
会重发REQ
,从设备未检测到REQ
撤会保持ACK
有效); - 硬件复杂:需双方实现严格的握手时序和错误处理(如超时重传、状态机控制);
- 适用场景:
- 高速总线:如 PCIe(通过
ACK/NACK
包实现全互锁,确保 128GB/s 带宽下的数据无错传输); - 网络通信:如 TCP 三次握手(本质是全互锁的逻辑扩展,确保连接建立与数据传输的可靠性);
- 关键外设:如 UART 串口的流控(CTS/RTS 信号,通过全互锁避免数据溢出)。
- 高速总线:如 PCIe(通过
- 最高可靠性:任何信号丢失或延迟都会被检测(如主设备未收到
异步通信是一种无需全局时钟同步,通过数据自身的起始位、停止位等标识实现收发双方协调的通信方式。
基本原理
- 无全局时钟:发送方(如 CPU)和接收方(如外设)使用独立时钟,频率允许一定误差(如 ±10%),通过数据帧内的同步信号(起始 / 停止位)而非外部时钟线实现时序对齐。
- 数据分帧传输:以字符或帧为单位,每帧包含:
- 起始位(1 位,低电平):标记数据开始,触发接收方采样;
- 数据位(5~9 位,如 ASCII 码):传输实际信息,低位在前;
- 校验位(可选,如奇偶校验):检测传输错误;
- 停止位(1~2 位,高电平):标记数据结束,接收方复位。
- 非阻塞通信:发送方在任意时刻发送数据,接收方持续监听起始位,无需等待对方响应。
异步串行通信的数据传输速率用波特率来衡量,波特率是单位时间内传输的码元符号数量,用于衡量数据通信的速率,描述信号波形的变化速率。
而比特率指单位时间内传输的二进制比特总数,单位为 bps(bit per second),描述实际数据传输速率。(易混淆).
在异步通信中,波特率需结合字符格式(起始位、数据位、校验位、停止位)计算 实际有效数据传输速率。
单个字符总长度 = 起始位(1 位) + 数据位(n 位) + 校验位(0/1 位) + 停止位(1/1.5/2 位)。例如:
异步通信以简单可靠、低硬件成本为核心,通过 “起始 - 数据 - 停止” 的自同步机制,解决了低速设备、长距离传输的通信需求
半同步通信
半同步通信使用统一的系统时钟信号协调数据传输,但在时钟周期基础上增加了异步应答机制。发送端和接收端通过时钟信号保持基本同步,同时允许接收端根据自身速度动态调整传输节奏,从而兼容不同速度的设备。为此增设了一条等待信号(WAIT)响应信号线。接收端若未准备好,置 WAIT 为低电平,强制延长当前时钟周期(类似 “暂停”)。
- T_W(多个周期):从设备(内存)若未准备好数据(如处理延迟),置
WAIT
为低电平(图示中下降沿),强制延长当前时钟周期(主设备暂停,不进入下一时钟周期)。 - 当从设备准备好数据后,
WAIT
置高电平(图示中上升沿),主设备继续后续操作,体现半同步通信的异步适配能力(兼容低速设备)。
半同步通信所有传输均在时钟周期内完成,时序严格对齐,避免异步通信的不确定性。通过 WAIT 信号动态延长周期,允许低速设备 “请求等待”,解决同步通信中 “速度刚性” 问题。但每次传输可能因 WAIT 信号延长周期,导致平均传输速率低于纯同步通信。且依赖主从架构,通常由主设备(如 CPU)主导时钟,从设备被动响应,灵活性受限。
分离式通信
分离式通信是一种高效的总线通信机制,通过分解传输周期为独立子周期,实现总线在不同设备间的时间重叠复用,显著提升总线利用率。
在传统的通信传输中,从模块按照命令对数据进行读取准备的时候,这一段其实是没有实质性的信息传输的,总线纯属空闲等待。
分离式通信将传统总线传输拆分为 控制传输(主设备→从设备) 和 数据传输(从设备→主设备) 两个独立子周期,中间插入总线空闲期(从设备准备数据时,总线可被其他设备使用)。
- 子周期 1(控制阶段):主设备(如 CPU)发地址、命令,完成后立即释放总线。
- 子周期 2(准备阶段):从设备(如内存)内部准备数据(不占总线,总线可被其他设备复用)。
- 子周期 3(数据阶段):从设备发数据,主设备接收,完成传输。
传统总线在从设备准备时空闲,分离式通信通过子周期拆分,使总线在任何时刻都用于有效传输,利用率接近 100%。其同步与异步结合,实现并行事务处理,同时对设备硬件友好,利用现有同步时钟技术,兼容高速串行总线,降低设计复杂度,其高吞吐量和低延迟推动硬件通信向更高效、更灵活的方向发展。
📡📡📡.