吃透 “多脚一线、分时复用”,彻底搞懂总线通信的底层特点

1.BUS 总线的历史由来

早期的计算机体积庞大、连线复杂,所有数据都通过实际的电缆传输,如下图所示:

这是世界上第一台可以进行编程的通用计算机 ENIAC 埃尼阿克,诞生于 1946 年 2 月 14 日的美国宾夕法尼亚大学,ENIAC 长 30.48 米,宽 6 米,高 2.4 米,占地面积约 170 平方米,30 个操作台,重达 30 英吨,包含了 17,468 根真空管(电子管)7,200 根水晶二极管,1,500 个中转,70,000 个电阻器,10,000 个电容器,1500 个继电器,6000 多个开关。可以看到其连线混乱,对于检修维护而言非常麻烦。

在电脑后来的发展中,人们将这些大捆的杂乱的电缆线并行仿制到一个公共线排上,这个具有多个硬件连接的并行电线排被称之为“总线”,用 BUS 表示(BUS 这个单词命名与拉丁语“omnibus”相关,意思是“为所有人)。它们也被称为“​digit trunk数字干线​”,以电力总线或母线命名。这些总线用于在 CPU、存储器和输入输出设备间进行数据传输。几乎总是有一条总线用于内存,以及一条或多条单独的总线用于外设。这些是通过单独的指令访问的,具有完全不同的时间和协议。

维基百科中关于 BUS 的定义:

2.BUS 总线的现代含义

在现代计算机体系结构中,总线 BUS 是一种在计算机内部组件之间或计算机之间传输数据的通信系统。该表述涵盖了所有相关的硬件组件(电线、光纤等)和软件,包括通信协议。计算机系统一般由三个主要部分组成:处理数据的中央处理单元(CPU)、保存要处理的程序和数据的存储器以及作为与外界通信的外设的 I/O(输入/输出)设备。总线则是负责在这三者间进行数据高速传输的公共电路,拿我们使用的电脑举例而言,多核 CPU、用于内存的 DDR4 SDRAM、硬盘驱动器、显示屏、键盘鼠标等均是通过总线和 CPU 进行通信的。
image.png
计算机通过系统总线将各部件连接到一起,实现了微型计算机内部各部件间的信息交换。一般情况下,CPU 提供的信号需经过总线形成电路形成系统总线。系统总线按照所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据信息、地址信息和控制信号。可以认为,计算机就是以 CPU 为核心,其它部件全“挂接”在与 CPU 相连接的系统总线上。

image.png

3.BUS 总线的特点

以上为 DDR3 的原理图,可以看到有三组总线,并且这三组均有多根导线构成。

回到上面我们列举的关于计算机的例子,一根导线把每个器件相对应的某个数据引脚都连在一起,因此这根导线就成为了一根数据线;所有器件都分时轮流占用并控制这根数据线来传输数据,因此这根数据线就成为了一根数据总线;像这样的数据线有多根,多根数据线构成多根数据总线,多个数据总线被称之为一组(束)数据总线。控制总线和地址总线定义也类似。

计算机的中央处理器 CPU 要实现对存储器、显示器、键盘、鼠标、硬盘等外围设备的控制和管理,需要所有数据线全部连接在一组线上,所有的地址线全部连在一组线上,所有控制线全部连在一组线上,这就构成了数据总线、地址总线和控制总线,这三路总线是相互独立的。

每一个外围设备分时轮流占用数据总线和中央处理器进行数据传输,分时轮流占用地址总线和中央处理器进行地址传输,分时轮流占用控制总线和中央处理器进行控制信号传输。

在总线通信的场景中,参与通信的设备会被明确划分为两种核心角色:

  • 主机​:主动发起总线通信请求的设备,负责发起地址传输、数据传输的请求,同时掌握总线的占用控制权;比如树莓派 Pico 的 CPU,在与片上的 UART、SPI 外设通信时,CPU 就作为主机。
  • 从机​:被动响应总线通信请求的设备,不会主动发起通信,只有在被主机选中后,才会与主机进行数据交互;比如 Pico 的 UART 外设、外接的 SPI 传感器,在与 CPU 通信时,这类设备就作为从机。

通过上述内容,我们可以总结出 BUS 总线特点如下:

  • 总线是一种用于多个设备共同使用的互连传输信号的导线;
  • 总线可以应用于一主多从、多主一从以及多主多从的情况;
  • 总线通信时,无论是主机器件还是从机器件,同一个时刻,只能有一个器件占用并控制总线对外发送数据,一个器件从外接收数据,也就是一发一收的模式进行数据传输(某些广播信息、握手协议等可以一发多收)

可以用八个字概括:多脚一线、分时复用,即多个设备同一类功能的引脚相互连接,各个器件分开时间段占用总线进行数据传输。


posted @ 2026-08-31 17:05  FreakStudio  阅读(11)  评论(0)    收藏  举报