← 返回 计组与微机控制

计组与微机控制

8.2 外总线简介

8.2 外总线简介

一、AGP 的后半部分

前面已经讲过,AGP 是专门给显卡用的高速接口。传统 PCI 是多个设备共享一条总线,而 AGP 是显卡和芯片组之间的点对点连接,所以更适合图形数据传输。

1. AGP 的 1×、2×、4×、8×模式

教材这里继续讲 AGP 的传输倍率。

AGP 基本频率是:66 MHz

数据总线宽度是:32 位 = 4 字节

所以 AGP 1× 的理论传输率是:66 MHz × 4 B = 266 MB/s

然后:

这里的“等效频率”不是说总线时钟真的一直变成那么高,而是通过在一个时钟周期内传输多次数据来提高吞吐量。

你可以这样记:

1×:一个周期传 1 次 2×:一个周期传 2 次 4×:一个周期传 4 次 8×:一个周期传 8 次

所以带宽依次翻倍:266 → 533 → 1066 → 2133 MB/s

2. 上升沿和下降沿传输

表中写:

1×:上升沿 2× / 4× / 8×:上升沿和下降沿,什么意思?

时钟信号是一个方波:

低电平 → 高电平:上升沿 高电平 → 低电平:下降沿

1× 模式只在上升沿传数据。

2× 开始,不仅上升沿传,下降沿也传,相当于一个时钟周期内传两次。

所以 2× 比 1× 快一倍。

4×、8×则通过更复杂的多倍速技术继续增加每周期的数据传输次数。

3. AGP 的 DIME 技术

教材写了:DIME:Direct Memory Execute

可以理解成:显卡可以直接使用主存中的一部分数据,尤其是纹理数据。

以前显卡处理 3D 图形时,需要把大量纹理数据放到显存中。显存容量有限,价格也比普通内存贵。

AGP 的想法是:让显卡可以通过 AGP 直接访问主存中的纹理数据。

这样,主存的一部分就像“显卡可用的扩展纹理存储区”。

4. DIME 和 UMA 的区别

书上提到 AGP 把纹理数据放入主存,也可以看成一种 UMA:

UMA:Unified Memory Architecture,统一内存体系结构

但是它又强调,AGP 的 DIME 和低端机的 UMA 不完全一样。

区别是:

AGP 的主存只是作为显存的扩展和补充; 低端 UMA 常常是显卡没有独立显存,直接把主存当显存用。

换句话说:

AGP DIME:显卡有自己的显存,主存主要用来补充存放纹理。 低端 UMA:显卡基本直接共享主存,速度较慢。

所以不能简单认为“AGP 就是 UMA”。AGP 的性能比低端 UMA 通常更好。

5. 地址信号和数据信号分离

教材说 AGP 采用:Demultiplexing,多路信号分离

以及:SBA:Side Band Address,边带寻址

这个点非常重要。PCI 总线里,地址和数据共用 AD 总线:先传地址,再传数据

这叫地址/数据复用。

AGP 为了提高速度,使用边带地址线 SBA,把地址信息和数据信息分开传。

这样就可以:一边传当前数据,一边准备下一次访问的地址。

这类似流水线思想。

对比一下:

PCI: 地址阶段 → 数据阶段 → 地址阶段 → 数据阶段 AGP: 数据传输时,旁边的 SBA 可以提前给出后续地址

所以 AGP 访问图形数据更快。

6. AGP 的并行操作

书上说:

CPU 访问系统 RAM 的同时,AGP 显卡可以访问 AGP 内存。

意思是,AGP 让显卡和 CPU 的数据通路更加独立。

传统 PCI 中,如果显卡大量占用 PCI 总线,会影响其他 PCI 设备,比如网卡、声卡、磁盘控制器。

AGP 则让显卡有自己的专用通道:

显卡通过 AGP 访问主存/图形数据; 普通外设继续通过 PCI 工作。

这样可以减轻 PCI 总线负担,提高系统整体性能。

二、AGP 的工作模式总结

AGP 的工作模式可以这样记:

AGP 1×:266 MB/s,3.3 V AGP 2×:533 MB/s,3.3 V AGP 4×:1066 MB/s,1.5 V AGP 8×:2133 MB/s,1.5 V

需要特别注意电压兼容问题:

AGP 1× / 2× 是 3.3 V AGP 4× / 8× 是 1.5 V

所以老显卡不能随便插到新插槽里,新显卡也不一定能插老插槽。电压不兼容可能损坏主板或显卡。

考试简答可以写:

AGP 通过提高工作模式倍率、采用流水线操作、边带寻址、地址数据分离和直接内存执行 DIME 技术,提高了图形数据传输能力。

三、PCI 和 AGP 的比较

可以整理成:

重点不是背表格,而是理解:

PCI 是通用外设总线; AGP 是图形显示专用接口。

PCI 可以挂多个设备:网卡、声卡、SCSI 卡、采集卡等

AGP 基本只给显卡用,并且一般只有一个 AGP 插槽。

所以:AGP 不能取代 PCI。

因为 AGP 只是图形接口,不是系统通用扩展总线。

补一个串行总线的概念:

8.2 外总线简介 图 1

四、外总线的概念

外总线外总线用于连接:

计算机主机 ↔ 外部设备

比如:

串口设备 打印机 仪器仪表 移动存储 扫描仪 键盘鼠标 工业控制设备

它和系统总线、局部总线不一样。

系统总线/局部总线更多在主板内部或扩展槽内部使用;外总线更偏向于外部设备接口。

五、RS-232-C 总线

1. RS-232-C 是什么?RS-232-C 是一种串行物理接口标准。

它是 EIA 制定的标准:

RS:Recommended Standard,推荐标准 232:标准编号 C:修订版本

RS-232-C 常见于老式串口,比如:

COM 口 调制解调器 工控设备 早期鼠标 单片机串口通信

2. RS-232-C 的信号线

教材说标准有 25 条信号线,包括:

一个主通道,一个辅助通道

但实际很多情况下不需要全部信号线。

最简单的双工通信只需要:

发送线 TXD 接收线 RXD 地线 GND

所以最常见的串口通信就是三根线:TXD、RXD、GND

如果要硬件流控,还会使用 RTS、CTS 等控制线。

3. RS-232-C 的波特率

书上列了一些标准波特率:

50、75、100、150、300、600、1200、2400、4800、9600、19200

常见的是:

9600 bps 19200 bps 115200 bps

虽然书上只列到 19200,但实际现代串口经常用更高的波特率。

4. RS-232-C 的缺点

教材重点说了 RS-232-C 的距离限制。

原因有两个:

1. 电缆电容负载限制 2. 单端信号抗干扰能力差

RS-232 是单端信号:信号线相对地线传输

问题是,一旦地线上有干扰,或者两端地电位不同,信号就容易出错。

所以 RS-232 一般适合:短距离、点对点通信

书上说通常用于:20 m 以内

六、RS-485 总线

1. RS-485 为什么比 RS-232 更适合远距离?

RS-485 采用:平衡发送,差分接收

也就是它不是用“信号线对地”的方式传输,而是用两根线之间的电压差表示 0 和 1。

例如:

A - B 为正:一种逻辑状态 A - B 为负:另一种逻辑状态

因为外界干扰通常同时加到两根线上,接收端只看两根线的差值,所以能抵消很多共模干扰。

这就是:差分传输抗干扰能力强。

2. RS-485 的特点

书上讲了几个关键点:

1. 适合几十米到上千米通信 2. 抗共模干扰能力强 3. 半双工工作方式 4. 适合多点互连 5. 可构成分布式系统

半双工的意思是:同一时刻只能有一个节点发送,其他节点接收。

不是不能双向通信,而是不能同时双向通信。

3. RS-485 的节点数量

传统 RS-485 最多并联 32 个驱动器和 32 个接收器。

后来芯片驱动能力增强,可以更多,比如:

128 个驱动器和 128 个接收器

这个点考试可能会问:

RS-485 适用于多点通信,而 RS-232 一般用于点对点通信。

4. RS-232 和 RS-485 对比

RS-232:短距离、点对点、单端 RS-485:长距离、多点、差分

七、IEEE-488 总线

IEEE-488 是一种并行总线接口标准。

它主要用于:仪器仪表系统

比如:数字电压表 信号发生器 示波器 频谱仪 数据采集设备

它也常被称为:GPIB

教材说它的特点:

1. 双向异步传输 2. 总线方式连接 3. 最多可连接 15 台设备 4. 最大传输距离约 20 m 5. 一般传输速度 500 KB/s 6. 最大可达 1 MB/s

它和 RS-232/RS-485 不一样。

RS-232/485 偏向串行通信;IEEE-488 是并行总线,主要用于实验室仪器控制。

八、SCSI 总线

1. SCSI 是什么?

SCSI 全称:Small Computer System Interface 小型计算机系统接口

它是一种连接主机和外设的接口。

常见设备包括:

硬盘 磁带机 光驱 扫描仪 服务器存储设备

2. SCSI 的特点

教材说 SCSI 的速度、性能、稳定性比 IDE 好,所以主要用于:

服务器 工作站 高性能存储系统

SCSI 不是简单的“线缆接口”,它的控制器比较强。

书上说:

SCSI 控制器相当于一块小型 CPU,有自己的命令集和缓存。

这说明 SCSI 外设的智能化程度比普通 IDE 高。

3. SCSI 设备数量

在 SCSI 总线中,控制器本身也算一个设备。

所以:实际最大可连接设备数 = 理论最大设备数 - 1

例如理论支持 8 个 ID,那么因为控制器占一个,外设最多 7 个。

九、USB 总线概述

USB 是这几页重点中的重点。

USB 全称:Universal Serial Bus通用串行总线

它是为了解决传统外设接口混乱、接口数量不足、配置麻烦的问题。

以前的 PC 后面有很多接口:

串口 COM 并口 LPT PS/2 键盘鼠标口 游戏口 专用扫描仪接口 打印机接口

USB 的目标是:用一种统一、方便、可扩展、低成本的接口连接多种外设。

1. USB 的主要特点

教材总结 USB 特点:

易于使用 速度较快 可靠性高 低成本 低功耗 可给外设供电 支持热插拔 支持多个设备连接

USB 的一个非常重要的优点是:设备插上之后,系统可以自动识别并配置。

这和 PCI 的即插即用思想类似。

2. USB 的引脚

USB 有 4 根线:

8.2 外总线简介 图 2

可以记成:两根电源线:+5V、GND,两根数据线:D+、D-

D+ 和 D- 是差分数据线。

所以 USB 不仅传数据,还能给设备供电。

3. USB 1.1 和 USB 2.0 指标

注意单位是:Mb/s,不是 MB/s,小写 b 是 bit,比特;大写 B 是 Byte,字节。

8.2 外总线简介 图 3

所以:480 Mb/s = 60 MB/s 理论值

十、USB 的拓扑结构

1. USB 是星形多层结构

图 7.7 是 USB 的逻辑拓扑结构。

8.2 外总线简介 图 4

USB 不是像 RS-485 那样一根总线挂一堆设备,而是:

主机 | 根集线器 Root Hub | 普通集线器 Hub | USB 设备

它是一种:多层星形结构

每个星形中心是一个集线器 Hub。

一个 Hub 可以有多个端口,通常 2 到 7 个端口。

2. USB 连接都是点对点

虽然叫 USB 总线,但它的物理连接不是所有设备并在一根线上,而是:

主机 ↔ Hub Hub ↔ 设备 Hub ↔ 下一级 Hub

每一段连接都是点对点的。

但从逻辑上看,主机统一管理所有 USB 设备,所以教材仍然称它为总线。

3. USB 设备的两大类

USB 设备可以分成:

1. 集线器 Hub 2. 功能设备 Function

Hub 的作用是:扩展 USB 端口

Function 的作用是:真正完成某种外设功能

例如:

鼠标 键盘 打印机 U 盘 摄像头 MODEM 移动硬盘

4. 复合设备 Composite Device

有些 USB 设备既有功能设备,又带 Hub 功能,或者一个物理设备内部包含多个功能。

这种设备叫:复合设备

比如:

带 USB Hub 的键盘 带读卡器的显示器 多功能打印机 带声卡和麦克风的 USB 摄像头

对主机来说,它可能表现为多个 USB 设备或多个 USB 功能。

十一、USB 是主从式协议

这一点非常重要。

USB 是主—从式总线协议。

意思是:USB 通信由主机发起; 设备不能随便主动占用总线发送数据。

也就是说,USB 设备一般要等主机来问:

你有没有数据? 你准备好了吗? 我要给你发数据。设备再响应。

这和 PCI 不同。PCI 设备可以通过总线主控成为 Master,而普通 USB 设备不能主动成为主机。

十二、USB 主机的职责

教材列了 USB 主机的几个职责。

1. 检测设备接入和断开

当 USB 设备插入或拔出时,主机要发现这个事件。

插入后,主机会:

1. 检测设备存在 2. 给设备分配地址 3. 读取设备描述符 4. 确认设备类型 5. 加载或匹配驱动 6. 配置设备

这个过程叫:枚举 Enumeration

虽然教材这页没有直接突出这个词,但它描述的就是 USB 枚举过程。

2. 管理 USB 数据流

主机负责安排总线上的数据传输。

如果多个 USB 设备都要传数据,主机会把时间分成帧,然后给每个设备分配传输机会。

USB 把数据通道分为 1 ms 的帧。

在每一帧里,主机给不同设备安排传输时间。

对于必须固定速率的设备,比如音频设备,主机要保证它们每帧能得到足够时间。

如果带宽不够:主机就不允许该设备进行通信或不接受该配置。

3. 错误检查

主机在发送的数据中加入错误校验码。

接收方收到后重新计算校验码,和收到的校验码比较。

如果不一致:说明数据传输有错

USB 可以要求重新传输,或者报告错误。

不过教材也提到,USB 有些传输类型可能不允许重传,目的是保持稳定的传输速率。

比如音频/视频实时数据,有时候宁可丢一点数据,也不能一直等重传。

4. 提供电源

USB 除了两根数据线,还有:+5 V,GND

所以 USB 可以给外设供电。

每个 USB 设备最多可从总线获得:500 mA

但低功耗设备或某些端口可能限制在:100 mA

所以有些外设需要外接电源,比如:

大功率移动硬盘 打印机 扫描仪 部分 USB Hub

十三、USB 设备的职责

USB 设备也有自己的职责。

1. 检测和自己相关的通信

USB 设备会监视总线上的通信。

如果主机发来的地址不是自己的,设备忽略。

如果地址是自己的,设备就接收数据或响应请求。

2. 对标准请求作出响应

设备连接后,主机会发标准请求,比如:

你是什么设备? 你支持哪些配置? 你需要多少电流? 你有几个端点? 你属于哪种设备类?

设备必须回答这些请求。

设备的回答信息存在描述符中,比如:

设备描述符 配置描述符 接口描述符 端点描述符 字符串描述符

这部分是 USB 驱动和枚举的核心。

3. 错误检查

USB 设备也要进行错误检测。

如果发现数据错误,可以请求重传,或者不确认该数据。

4. 电源管理

如果设备不是总线供电,就必须自己供电。

如果总线进入低功耗状态,设备也要进入挂起状态。

没有远程唤醒能力的设备,挂起时从总线取电不能超过 500 μA; 有远程唤醒能力并被主机使能后,限制为 2.5 mA。

十四、USB 设备类型

教材表 7.11 列了一些 USB 设备类。

其中最常见、最容易考的是:

8.2 外总线简介 图 5

HID:Human Interface Device,人机接口设备

键盘、鼠标都属于 HID。

U 盘、移动硬盘属于:Mass Storage,大容量存储设备

十五、USB 通信流

1. USB 是基于令牌包的协议

教材说:USB 是 token-based,总线协议。

也就是说,USB 通信不是设备想发就发,而是主机先发一个令牌包。

令牌包相当于主机发出的命令:

哪个设备? 哪个端点? 这次是读还是写?

设备收到令牌后,才按照主机要求传数据或接收数据。

2. 地址字段

USB 令牌包里有 7 位地址字段。

7 位可以表示:2^7 = 128

也就是地址范围:0 ~ 127

但地址 0 是默认地址,用于刚接入、还没有正式分配地址的设备。

所以实际最多可连接:127 个 USB 设备

这就是教材表里写的:连接的设备数:127

3. 端点 Endpoint

USB 里非常重要的概念是:Endpoint,端点

端点是 USB 设备内部的通信入口或出口。

可以这样理解:

设备地址:找到哪个 USB 设备 端点号:找到该设备内部哪个通信通道

比如一个 USB 摄像头可能有:

控制端点 视频数据端点 音频数据端点 状态端点

一个 USB 键盘可能有:

控制端点 按键数据输入端点

端点是主机和设备通信的终点。

4. 端点号

教材说令牌包中包含 4 位端点地址。

4 位可以表示:2^4 = 16

也就是端点号:0 ~ 15

并且端点还分方向:

输入 IN 输出 OUT

所以一个设备理论上可以有:16 个输入端点 + 16 个输出端点

共:32 个端点方向

注意端点 0 很特殊,一般用于控制传输,是每个 USB 设备必须有的默认控制端点。

十六、USB 中“设备、端点、管道”的关系

教材开始提到“管道”的概念。

可以这样理解:

设备 Device:一个 USB 外设 端点 Endpoint:设备内部的通信口 管道 Pipe:主机软件和设备端点之间建立的逻辑通信通道(也是操作系统第八章里面进程之间通讯的通道)

举例:

U 盘是一个 USB 设备; U 盘里面有接收命令的端点、传输数据的端点; 操作系统和这些端点之间建立管道来完成读写。

所以:主机不是直接“随便往设备发数据”,而是通过特定管道和特定端点通信。

十七、这几页最重要的对比总结

1. RS-232、RS-485、IEEE-488、SCSI、USB 对比

2. PCI、AGP、USB 的区别

十八、考试简答模板

题 1:RS-232-C 和 RS-485 有什么区别?

RS-232-C 采用单端信号传输,通信距离较短,抗干扰能力较弱,一般用于点对点短距离串行通信。RS-485 采用平衡发送和差分接收,具有较强的抗共模干扰能力,适合几十米到上千米的远距离通信,并且支持多点互连,常用于工业控制和分布式系统。

题 2:USB 的主要特点是什么?

USB 是一种通用串行总线,具有使用方便、速度较快、可靠性高、低成本、低功耗等特点。USB 支持热插拔和即插即用,可以通过集线器构成多层星形拓扑结构,最多连接 127 个设备。USB 使用 4 芯电缆,其中包括两根差分数据线和 +5V 电源线、地线,因此还可以向外设供电。

题 3:USB 的拓扑结构是什么?

USB 采用多层星形拓扑结构。整个 USB 系统中只有一个主机,主机通过根集线器连接普通集线器或功能设备,普通集线器又可以继续连接下一级集线器或 USB 设备。每个集线器可以提供多个下行端口,所有连接都是点对点的,但逻辑上由主机统一管理整个 USB 总线。

题 4:USB 主机的主要职责是什么?

USB 主机负责检测 USB 设备的连接和断开,为新接入设备分配地址并读取配置描述信息;负责管理总线上的数据流和带宽分配;负责进行错误检测和必要的重传控制;同时还通过 USB 电源线为外部设备提供电源,并进行电源管理。

题 5:USB 设备的主要职责是什么?

USB 设备负责监视总线通信,识别与自己地址相符的传输请求;对主机发出的标准请求作出响应,并提供设备能力和资源需求等配置信息;进行数据的错误检查;在需要时进行电源管理,进入挂起状态或响应远程唤醒。

题 6:什么是 USB 端点?

端点是 USB 设备中可以被主机识别的通信终点,是主机与设备进行数据传输的基本对象。USB 设备通过设备地址被主机选中,而设备内部的具体通信通道则通过端点号确定。令牌包中包含 4 位端点号,因此一个方向最多可有 16 个端点。端点分为输入端点和输出端点,端点 0 通常作为默认控制端点。

十九、复习

1. AGP 是显卡专用接口,解决 PCI 图形带宽不足。 2. AGP 通过 1×/2×/4×/8×、流水线、SBA、DIME 提高性能。 3. RS-232 适合短距离点对点,RS-485 适合远距离多点通信。 4. USB 是主从式、令牌包协议,主机控制所有通信。 5. USB 采用多层星形拓扑,通过 Hub 扩展端口。 6. USB 设备最多 127 个,端点是设备内部通信终点。

最容易混的地方是:

USB 不是设备主动发起通信,而是主机主动管理通信。 AGP 不是通用总线,而是图形专用接口。 RS-485 比 RS-232 抗干扰强,因为它是差分传输。