第四章 微机总线与接口标准

75
1 第第第 第第第第第第第第第

Upload: hiram-spence

Post on 31-Dec-2015

120 views

Category:

Documents


3 download

DESCRIPTION

第四章 微机总线与接口标准. 第一节 总线与接口概述. 一、总线和接口及其标准的概念. 总线: 是在模块之间或设备之间的一组进行互连和传输信息的 信号线 ,信息包括指令、数据和地址。. 总线标准: 指芯片之间、扩展卡之间以及系统之间,通过总线进行连接和传输信息时,应该遵守的一些协议与规范。. 接口标准: 指与 外设接口的规范,涉及接口信号线定义、信号传输速率、传输方向和拓扑结构,以及电气特性和机械特性等多个方面。. 总线与接口的区别:. 二、总线的分类. 1 、按总线功能或信号类型划分. 数据总线、地址总线、控制总线. 2 、按总线的层次结构分. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第四章 微机总线与接口标准

1

第四章 微机总线与接口标准

Page 2: 第四章 微机总线与接口标准

2

第一节 总线与接口概述 一、总线和接口及其标准的概念 总线:是在模块之间或设备之间的一组进行互连和传输信息的信号线,信息包括指令、数据和地址。 总线标准:指芯片之间、扩展卡之间以及系统之间,通过总线进行连接和传输信息时,应该遵守的一些协议与规范。 接口标准:指与外设接口的规范,涉及接口信号线定义、信号传输速率、传输方向和拓扑结构,以及电气特性和机械特性等多个方面。

Page 3: 第四章 微机总线与接口标准

3

总线与接口的区别:

总线 接口通用性 公用 专用物理特性 扩展槽形式 插座 ( 头 ) 形式传输类型 并行传输 并行或串行传输信号线数量 多 少

信号线类型 分离的控制、数据、地址线

共用 ( 有时分离 ) 的数据、控制线

Page 4: 第四章 微机总线与接口标准

4

二、总线的分类1 、按总线功能或信号类型划分 数据总线、地址总线、控制总线

2 、按总线的层次结构分 CPU 总线、局部总线、系统总线、通信总线

思考:局部总线与系统总线的根本区别是什么?

Page 5: 第四章 微机总线与接口标准

5

三、总线的主要性能参数1 、总线频率2 、总线宽度

3 、总线数据传输率 总线数据传输率 =( 总线宽度 /8 位 )× 总线频率

例: PCI 总线的总线频率为 33.3MHz ,总线宽度为64 位的情况下,总线数据传输率为 266MB/s 。

Page 6: 第四章 微机总线与接口标准

6

四、总线标准的特性1 、物理特性 包括总线根数,插头及插座的尺寸、排列等。2 、功能特性 包括每根信号线的功能。3 、电气特性 包括驱动功率、有效电平等。4 、时间特性 包括每根信号线的有效时间及信号线间的时序等。注意:总线的功能特性不能代表总线标准。

Page 7: 第四章 微机总线与接口标准

7

五、总线操作与控制1 、总线操作过程

1 )总线请求和仲裁阶段 2 )寻址阶段3 )数据传送阶段 4 )结束阶段

2 、总线传送控制1 )同步方式 2 )异步方式 3 )半同步方式 4 )分离方式思考: 1 )同步方式与半同步方式的区别? 2 )异步方式的 4 个步骤?

Page 8: 第四章 微机总线与接口标准

8

第二节 系统总线 一、 ISA 总线1 、 ISA 总线的信号 支持 24 位地址, 16 位数据线,总线频率≤ 8MHz ,最大数据传输率≤ 16MB/s(=8×16

位 /8) 。2 、 ISA 总线扩展卡的设计 1 ) ISA 总线扩展卡的物理尺寸 2 ) ISA 总线扩展卡的地址分配和中断号分配

Page 9: 第四章 微机总线与接口标准

9

二、其他总线1 、 EISA 总线 EISA 总线支持 32 位地址、 32 位数据总线,总线频率 8.33MHz ,最大数据传输率 33.3MB/s(8.33

×32 位 /8) 。 结构与 ISA 兼容, EISA 总线插槽与 ISA 插槽等长等宽,内部被设计成为双层引脚。2 、 PC104 总线 采用超小尺寸插卡,自叠总线结构,总线驱动电流小,功耗低。3 、 STD 总线

Page 10: 第四章 微机总线与接口标准

10

第三节 PCI 总线 一、 PCI 总线特点

1) 独立于处理器2) 传输效率高3) 多总线共存4) 支持突发传输 5) 支持总线主控方式

突发传输原理:启动机制、停止机制是关键

地址期 数据期 地址期 数据期 ( a )常规传输

( b )突发传输

地址期 数据期 数据期 数据期

6) 采用同步操作 7) 支持两种电压下的扩展卡 8) 具有即插即用功能 9) 合理的管脚安排 10) 预留扩展空间

Page 11: 第四章 微机总线与接口标准

11

PCI 总线标准知识点: 功能→命令( I/O 、 MEM 、配置等) 空间→ I/O 、 MEM 、配置空间,字节对齐单 CPU 启动控制 寻址 操作 响应 →协议(信号时序) 数据 终止多 CPU 控制→总线请求与仲裁

回 17 页 回 18 页 回 22 页 回 29 页

Page 12: 第四章 微机总线与接口标准

12

二、 PCI 总线信号定义 主设备、从设备使用的信号有一部分不同。1 、系统接口信号 CLK IN : PCI 系统总线时钟

PCI 大部分信号在 CLK 的上升沿有效。2 、地址与数据接口信号 AD[31:00] T/S :地址、数据多路复用信号 地址期为 A[31:00] ,数据期为 D[31:00] 。 C/BE#[3:0] T/S :总线命令、字节使能复用信号 地址期内表示总线命令,数据期内表示字节使能信号。 PAR T/S :针对 AD[31:00] 和 C/BE[3:0]# 进

行奇偶校验的校验位 回下页

Page 13: 第四章 微机总线与接口标准

13

3 、接口控制信号 FRAME# S/T/S :帧周期信号 FRAME# 信号无效→有效,表示一帧传输开始; FRAME# 有效的第 1 个时钟为地址期,其后为若干数据期; FRAME# 信号有效→无效,表示传输进入最后一个数据期。 IRDY# S/T/S :主设备准备好信号 TRDY# S/T/S :从设备准备好信号 STOP# S/T/S :从设备发出的要求主设备终止当前的数据传送信号

LOCK# S/T/S :锁定信号 IDSEL IN :初始化设备选择 ( 配置片选 ) 信号 DEVSEL# S/T/S :设备选择信号

回 16 页转上页

Page 14: 第四章 微机总线与接口标准

14

4 、仲裁接口信号 REQ# T/S :总线占用请求信号 GNT# T/S :总线占用允许信号5 、错误报告接口信号 PERR# S/T/S :数据奇偶校验错误报告信号 SERR# O/D :系统错误报告信号 6 、中断接口信号 PCI 有 4条中断线,分别是 INTA# 、 INTB# 、INTC# 、 INTD#

回 16 页

Page 15: 第四章 微机总线与接口标准

15

7 、 64 位总线扩展信号 AD[63:32] T/S :扩展的 32 位地址和数据多路

复用 线 C/BE[7:4]# T/S :总线命令和字节使能多路复用

扩展信号线 REQ64# S/T/S , 64 位传输请求信号 ACK64# S/T/S : 64 位传输允许信号 PAR64 T/S :奇偶双字节校验

Page 16: 第四章 微机总线与接口标准

16

8 、主、从设备连接 PCI 信号线示意图

转 14 页 转 13 页 回 30 页 回 36 页

主设备1

PC

I

总线控制器

AD[31:0]

C/BE#[3:0]

从设备

FRAME#IRDY#LOCK#

AD[31:0]

IDSEL

DEVSEL# TRDY#STOP#

未连接信号线: REQ# 、 GNT# 、 IDSEL

REQ#

GNT#

频率发生器

CLK

AD15AD14AD13AD12AD11 IDSEL

AD24…

AD16

PC

I

共用信号线

INTA~H#PCI 中断控制器

控制 /状态地址 / 数据

主设备2 REQ#

GNT#

控制 /状态地址 / 数据

设备ID

译码器 …

总线号

译码器 P

CI

从设备

Page 17: 第四章 微机总线与接口标准

17

三、 PCI 总线命令 C/

BE#[3:0] 命令类型 C/BE#[3:0] 命令类型

0000 中断响应 1000 保留

0001 特殊周期 1001 保留

0010I/O读

( 从 I/O端口地址中读数据 )1010 配置读

0011I/O写

( 向 I/O端口地址中写数据 )1011 配置写

0100 保留 1100 存储器多行读0101 保留 1101 双地址周期

0110存储器读

( 从内存空间映像中读数 )1110 存储器行读

0111存储器写

( 向内存空间映像中写 )1111 存储器写并无效转 11 页 回 21 页

Page 18: 第四章 微机总线与接口标准

18

四、 PCI 总线协议之一 -- PCI 总线的寻址1 、字节对齐 AD[31:00] 一次只能进行 32 位数据交换 ( 不能进行字节交换 );有 64 位通道的主设备可进行 64 位数据交换。 字节交换办法: 主设备在每个新数据期开始的时钟前沿改变字节使能信号 (见 I/O 寻址 ) ,且在该数据期中保持不变。 对可缓冲的存储器的数据可不考虑字节使能信号,而传送所有的字节 ( 总线宽度 ) 。

转 11 页 回下页

Page 19: 第四章 微机总线与接口标准

19

2 、 I/O 地址空间 32 位 AD 线表示的地址空间 (A31~A16 表示总线号 ); 最低寻址 ( 或访问 )精度为字节。 从设备的处理: 地址期对 AD[15:0]译码 ,决定是否产生DEVSEL#; 数据期检查 AD[1:0] 和 C/BE#[3:0]校验传输的最低有效字节和数据宽度:AD[1:0

]C/

BE#[3:0]

00 ××× 0

01 ×× 0 1

10 × 0 1 1

11 0 1 1 1

如:当 AD[1:0]=01 时; 若 C/BE#[3:0]=1101 ,为字节传输; 若 C/BE#[3:0]=1001 ,为字传输; 若 C/BE#[3:0]=1011 等,操作错误,中止传输。

转上页

Page 20: 第四章 微机总线与接口标准

20

3 、内存地址空间 最低寻址 ( 或访问 )精度为双字。 A1A0必须为 00( 或不译码 ) ,可作它用!

31

双字边界对齐的起始地址2 1 0

00 地址递增01 Cache 行切换1X 保留

00000000H

00000004H

00000008H

4 字节

MEM 地址空间

4 、配置地址空间 最低寻址 ( 或访问 )精度为双字。

7

双字边界对齐的起始地址2 1 0

00 选择该设备01 选择该桥路后 设备1X 保留

回 32 页 回下页

Page 21: 第四章 微机总线与接口标准

21

思考:软件层次如何访问三种地址空间?

MEM I/O

232-1

0

216-1

0 I/O1 配置255

0I/On 配置

255

0…

总线命令: 0110/0111 0010/0011 1010/1011

转 17 页

接口识别: 命令 + 地址 命令 + 地址 配置空间片选① + 地址

①配置空间片选:同一配置命令,只有一个接口响应总线命令

软件指令: MOV IN/OUT IN/OUT②

②IN/OUT :配置命令使用频率较低,借用 I/O 指令通过间接访问实现

采用特殊方法区分地址对应的不同空间,如在 I/O 空间中开辟特殊区域

转上页

Page 22: 第四章 微机总线与接口标准

22

1 、 PCI 总线的传输控制规则 (1) FRAME# 和 IRDY# 定义了总线的忙 /闲状态。 11 空闲、 00 数据、 10 最后一个数据、 01 启动或等待状态

( 0 表示低电平信号有效)(2) 一旦 FRAME# 信号被置为无效,在该传输期

(帧 ) 不能重新设置。(3) 除非设置 IRDY# 信号有效,一般情况下不能设置 FRAME# 信号无效 ( 即 FRAME# 在 IRDY#有效时设置 ) 。(4) 数据期内设置 IRDY# 或 TRDY# 信号无效,表示主或从设备插入了等待周期。

五、 PCI 总线协议之二 -- 传输控制协议

转 11 页

Page 23: 第四章 微机总线与接口标准

23

2 、 PCI 总线的驱动与过渡

在每个地址 ( 数据 ) 期中,所有 AD 线 ( 包括字节使能信号表明无效字节所对应的 AD 线 )都必须被驱动到稳定的状态,才可进行交换。

一个设备驱动总线到另一个设备驱动总线之间需设置一个过渡期,又称为交换周期,以防止总线访问冲突。 (例如读操作)

Page 24: 第四章 微机总线与接口标准

24

3 、设备选择 CLK

FRAME#

IRDY#

TRDY#

DEVSEL#

1 2 3 4 5 6 7 8

FAST MED SLOW……

所有从设备共用 PCI 总线的 DEVSEL# 信号。 从设备设置 DEVSEL#后,传输完成前不能撤消它。

Page 25: 第四章 微机总线与接口标准

25

4 、总线上的读操作传输过程 CLK

FRAME#

1 2 3 4 5 6 7 8 9

AD

C/BE#

IRDY#

TRDY#

DEVSEL#

ADDRESS DATA1 DATA2 DATA3

BUSCMD BE#s

地址期 数据期 数据期 数据期

一帧中最多只有一个从设备设置 DEVSEL# 有效; TRDY#无效,表示从设备插入了等待周期。

Page 26: 第四章 微机总线与接口标准

26

5 、总线上的写操作传输过程 CLK

FRAME#

1 2 3 4 5 6 7 8 9

AD

C/BE#

IRDY#

TRDY#

DEVSEL#

ADDRESS DATA2DATA1 DATA3

BUSCMD

地址期 数据期 数据期 数据期

BEs1 BEs2 BEs3

Page 27: 第四章 微机总线与接口标准

27

1 、由主设备提出的终止

2 、由从设备提出的终止

原因:传输结束,或超时 (DEVSEL#无效 )

处理: 传输结束—建立 IRDY# ,撤消 FRAME# ,直到TRDY# 有效后传输完最后一个数据后,撤消IRDY#; 超时—建立 IRDY# ,撤消 FRAME# ,撤消IRDY# 。 原因:死锁,或 8 个时钟内来不及响应 处理:发 STOP#

六、 PCI 总线协议之三 -- 传输中止协议

Page 28: 第四章 微机总线与接口标准

28

⑴当 STOP# 有效时, FRAME# 应在其后 2~3

个 TC 内撤消 (撤消时应使 IRDY# 有效 );从设备应无条件地保持 STOP# 有效直到 FRAME#撤消为止 (STOP#紧跟着撤消 ) 。

PCI 总线上传输终止遵循的规则:

⑵在任何时钟的上升沿,若 STOP# 和 TRDY#

同时有效,就表示是传输的最后周期, IRDY# 要在下一个时钟的上升沿之前撤消,表示传输的结束。 ⑶对于被目标设备终止的传输,主设备若要继续完成它,就必须用下一个未传输的数据的地址来重试访问。

Page 29: 第四章 微机总线与接口标准

29

七、 PCI 总线协议之四 --PCI 总线仲裁 CLK

FRAME#

1 2 3 4 5 6 7

AD

GNT#-B

IRDY#

TRDY#

GNT#-A

地址 数据

A 存取 B 存取

REQ#-B

REQ#-A

地址数据

c

a b

d e

f g

主设备必须等到总线空闲时,方可置 FRAME# 。

转 11 页

Page 30: 第四章 微机总线与接口标准

30

九、 PCI 总线配置 1 、 PNP 过程 ⑴BIOS检查所有 PNP 卡的 ID 及所需资源; ⑵系统配置程序检查非 PNP 卡 ID 及所需资源; ⑶管理程序汇总信息构成硬件树; ⑷统一配置资源到卡。 基础知识: ①一个扩展卡 (PCI 物理设备,简称设备 )可包含多个功能

设备 (简称功能, PCI 总线标准规定最多有 8 个功能 );

②每个设备 (所有功能 )只有一个 IDSEL 引脚信号。

转 16 页回下页

Page 31: 第四章 微机总线与接口标准

31

2 、 PCI 设备及其配置空间 存在问题: ①所有设备均没有 I/O 地址 (尚等待管理程序分配 ) ,如何

选择某个设备以读取资源需求和分配资源? ②在没有 I/O 地址时,如何选择某个功能? ③在没有 I/O 地址时,如何读取不同厂家功能设备的资源需

求? 处理方法: ①通过 IDSEL选择设备 ( 同一时刻只有一个设备被选择 ); ②选择设备的同时,用功能号选择具体功能; ③每个功能有一个配置空间,前面部分的格式统一。

转 16 页转上页

Page 32: 第四章 微机总线与接口标准

32

配置空间: 大小— 256B ,前 64B(称头区域 )格式统一; 寻址精度—双字 (32 位 ) , A1A0可作他用。

功能 1255

0

… 功能 n255

0

功能 1255

0

… 功能 m255

0

设备 1 设备 k

关键问题: ①如何实现配置空间选择 ( 总线、设备和功能 ); ②如何利用 I/O 空间命令进行配置空间访问; ③如何实现配置空间信息的读取与分配。

转 20 页

Page 33: 第四章 微机总线与接口标准

33

3 、 PCI 设备的配置空间选择方法—总线级

PCI桥

PCI桥

一级总线00000000

二级总线 000000 10

000000 01

HOST-PCI桥

CPU

PCI桥

PCI桥三级总线 0000

01010000 1001

I/O 命令 (IN/OUT 指令 )配置命令

目标桥

目标桥的中间桥

目标总线

回下页 回 35 页 回 36 页 回 39 页

PCI桥应具有功能: ( 总线号译码 功能 ) 根据命令中地址 , 识别目标总线是否包含在自己桥下; 根据命令中地址,识别目标是否在本级桥总线上。

Page 34: 第四章 微机总线与接口标准

34

HOST-PCI桥发出的配置命令地址期总线信号: C/BE#[3:0]=1010/1011;—配置读 /写操作码 AD[31:0]= AD[31:24]—保留; AD[23:16]—选择的目标总线号; AD[10:8]—所选目标设备的功能号; AD[7:2]— 配置空间 REG 地址 (精度为双字 ); AD[1:0]—00 表示目标设备在一级总线上, 01 表示目标设备在下级总线上。

转上页

总线号编码规则: 采用分段式编码表示各级总线号,段 i值为 0 时表示该总线为 i级总线 (硬件习惯于从右开始编号 )

总线号 n级总线号 … 二级总线号 一级总线号

Page 35: 第四章 微机总线与接口标准

35

( 1 ) PCI桥对是否被选中的检测 选中类型:自己为目标桥,或目标桥的中间桥。 选中检测:

PCI桥的上级总线信号AD[23:16]=cdA 、 AD[1:0

]

PCI桥包含的总线号(efB)

目标桥 B=A 、 cd=ef ,且AD[1:0]=01

目标桥的中间桥 B=A 、 cd≠ef ,且AD[1:0]=01

未选中 B≠A ,或 AD[1:0]=00

被选中时的处理:

目标桥 对上级总线信号,将 AD[1:0]改为 00后,传至所连总线上

目标桥的中间桥 直接将上级总线信号传至所连总线上未选中 无任何动作 (忽略本次操作 )

转 33 页回 38 页

Page 36: 第四章 微机总线与接口标准

36

( 2 ) PCI 设备对是否被选中 ( 作为目标设备 ) 的检测 选中条件 ( 地址期 ) : ① C[3:0] 为配置操作; ②它的 IDSEL 引脚信号有效; ③AD[1:0]=00 。 检测原理: ①所连总线为目标总线,即 AD[1:0]=00; ②在目标总线上被选中 (目标总线上所有设备的 IDSEL 引脚信号应只有一个有效 ) 。

IDSEL 引脚连接方法: ①AD[15:11] 分别连接到同一总线上各设备的 IDSEL引脚 ( 即总线上设备数≤ 5); ②PCI桥对 AD[15:11]译码 ,产生分离信号到同一总线上各设备 IDSEL 引脚 ( 即总线上设备数≤ 32 , PC 机采用该方案 ) 。 转 33 页 转 16 页

Page 37: 第四章 微机总线与接口标准

37

( 3 ) PCI 设备对某功能是否被选中的检测 选中条件 ( 地址期 ) : C[3:0] 为配置操作、 IDSEL 引脚信号有效、 AD[1:0]=00; 它具备的功能 ( 功能设备 ) 数> AD[10:8] 。

PCI桥用AD[23:16] 、 AD[1:0] 判断是否为目标桥 / 中间桥

PCI 设备用 C/BE#[3:0] 、 AD[15:11] 、 AD[1:0]判断是否为目标设备

PCI桥

PCI桥

HOST-PCI桥

CPU

PCI桥

PCI桥

I/O 命令 (IN/OUT 指令 )配置命令 (C/BE#[3:0] 、 AD[31:0])

PCI 设备用AD[10:8]选择目标功能及有无

PCI桥用 AD[1:0]指明对应总线是否为目标总线 ( 设备判断需用 )

Page 38: 第四章 微机总线与接口标准

38

( 4 )配置空间访问的类型 0 类配置空间访问( AD[1:0]=00 ) 对当前 PCI 总线上的目标设备的功能设备的配置 REG 进行访问。

1 类配置空间访问( AD[1:0]=01 ) 通过 PCI桥对下一级 PCI 总线上的目标设备的功能设备的配置 REG 进行访问。 PCI桥处理:到达目标总线前,转发 1 类访问操作 到达目标总线时, 1 类访问→ 0 类访问操作 HOST-PCI桥发出的配置访问类型: 对一级总线上的设备用 0 类访问类型; 对二级以后 (含二级 ) 总线上的设备用 1 类访问类型。

转 35 页

Page 39: 第四章 微机总线与接口标准

39

例: PCI 总线操作地址期总线信号如下: C/BE#=1011 ,AD=00011005H ,该操作访问几号桥下几号设备何REG ? 解: C/BE#=1011 ,表示总线操作为配置写操作, AD=00000000 00000001 00010 000 000001

01 ,表示访问 1# 总线上、 2 号设备、 0 号功能配置空间的从 000001 00B开始的 32 位寄存器。

( 5 ) PNP 时取得所有设备配置信息的过程 对所有总线 ( 最多 28 个 ) 处理 {

对当前总线的所有设备 ( 最多 5 个 ) 处理 {

对当前设备的所有功能 ( 最多 8 个 ) 处理 {

对当前功能头区域所有 REG(16 个 ) 处理 {

配置访问 ( 一级总线为 0 类访问 )}}}}

注:配置访问 8 个 Clock 内 DEVSEL#无效时,进行下一个访问 转 33 页

Page 40: 第四章 微机总线与接口标准

40

4 、配置空间访问的实现—总线级和指令级( 1 ) HOST-PCI桥访问配置空间的实现—直接访问 C/BE#[3:0]= 配置读 / 配置写 (1010/1011); AD[31:24]=保留; AD[23:16]=选择的目标总线 (目标设备所在的总线 ); AD[15:11]=选择的目标设备 IDSEL(只有一个有效 ); AD[10:8]=选择的目标设备的功能; AD[7:2]=选择的目标功能的配置空间中 REG 的索引; AD[1:0]=目标设备在一级总线上时为 00 , 目标设备在其他总线上时为 01 。

Page 41: 第四章 微机总线与接口标准

41

( 2 ) CPU访问配置空间的实现—间接访问 访问配置空间的指令: (OUT+IN/OUT 指令对 )

先用 OUT 指令写总线级配置访问地址期的地址; 再用 IN/OUT 指令传送总线级配置访问的数据。 I/O 指令的端口地址: (0CF8H~0CFFH)

配置地址端口 (OUT 指令的地址 ) 为 0CF8H; 配置数据端口 (IN/OUT 指令的地址 ) 为0CFCH 。 I/O 指令到 PCI 总线配置命令的转换: HOST-PCI桥中的配置机构保存配置操作所需的地址和数据,第二个 I/O 指令时进行配置转换。

回下页

Page 42: 第四章 微机总线与接口标准

42

( 3 )配置机构工作原理 ①保存配置信息;②实现配置转换。

HOST-PCI桥中配置机构

过滤器

0000H

FFFFH

I/O 地址空间…

00H

FFH

目标功能设备配置空间

3FH

头区域

自由区域

目标物理设备 IDSEL

……

OUT DX ,EAXOUT DX ,EAX

DX=0CF8HDX=0CFCH

DX 在 0CF8H-0CFFH 间Y

N 产生总线的 I/O 操作

操作为 OUT , EAX 最高位为 1

N

Y

配置数据REG←EAX

D31-D0

配置地址REG←EAX

配置地址 REG:

配置数据 REG:

产生总线的配置操作 命令结束

A31-A16 A15-A11 A10-A8 A7-A0

转上页

Page 43: 第四章 微机总线与接口标准

43

5 、配置空间头区域信息的读取与分配(1) 设备识别信息 厂商、设备、版本、分类等(2) 设备控制信息 I/O访问、 MEM访问、特殊周期、错误响应、等待周期等(3) 设备状态信息 运行环境、错误标志、 DEVSEL#时序等

回 48 页

Page 44: 第四章 微机总线与接口标准

44

(4)基址寄存器 31 01

基地址2

规范规定:每个 I/O基地址下的端口数不得大于 256 。

I/O 空间映射保留

1

思考:如何利用一个 REG解决请求和分配问题?31(63) 01

基地址2

存储空间映射预取使能

0

00 32 位地址空间任意映射01 32 位地址空间 1M 字节以内映射 (已不用 )10 64 位地址空间任意映射 11 保留

3

回下页 回下二页

Page 45: 第四章 微机总线与接口标准

45

例 1 :基址寄存器的值=FFF00000h

D0=0— 表示是一个 MEM 地址空间映射 D[2:1]=00B— 表示使能 32 位 MEM映射 D3=0— 表示该功能设备不是预取MEM

D[31:4]— 第一个为 1 的位是 D20 ,表示映射的 MEM 空间为 1MB=220;即将分配的 MEM 空间的基址应该为 1MB 的整数倍 系统管理程序经过权衡后再向该基址寄存器写入实

际映射的空间基址 (满足边界对齐原则 ) 。 基址寄存器是为简化设备配置过程、达到配置空间的映射与设备无关的目标而设计的。

转上页

Page 46: 第四章 微机总线与接口标准

46

例 2 :基址寄存器的值=FFFFFF01H

D0=1— 表示是一个 I/O 地址空间映射 D[31:2]— 第一个为 1 的是 D8 ,表示映射的

I/O 空间为 256B;即将分配的 I/O

空间的基地址应该为 256 的整数倍

最大 / 最小存储映射地址空间— 最小存储映射地址空间 =16 字节 最大存储映射地址空间 =2GB

最大 / 最小 I/O映射地址空间— 最小 I/O映射地址空间 =4 字节 最大存储映射地址空间 =256 字节

转上二页

Page 47: 第四章 微机总线与接口标准

47

(5) 扩展 ROM基地址寄存器

扩展 ROM访问允许

31 01

基地址11

保留10

例 3 :扩展 ROM基址寄存器的值=FFFF0001H

D0=1— 表示扩展 ROM访问允许 D[31:11]— 第一个为 1 的是 D16 ,表示映射的

ROM 空间为 64K;即将分配的ROM 空间的基地址应该为 64K 的整数倍(6) 头区域中其它寄存器

Cache 、中断引脚、中断请求 REG 等。

Page 48: 第四章 微机总线与接口标准

48

例 4 :读 0 号 PCI 总线的 1 号扩展槽设备的 2

号功能的基址 REG0 。MOV DX , 0CF8H MOV EAX , 80000A10HOUT DX , EAXMOV DX , 0CFCHMOV EAX , FFFFFFFFHOUT DX , EAXMOV DX , 0CF8H MOV EAX , 80000A10HOUT DX , EAXMOV DX , 0CFCHIN EAX , DX

例 5 :给 2 号 PCI 总线的 3 号扩展槽设备的 0

号功能的基址 REG0 分配从 1A00H开始的 8 个地址 I/O 空间。MOV

DX , 0CF8HOUT DX , 80022011HMOV DX , 0CFCHOUT DX , 00001A00H

转 43 页

Page 49: 第四章 微机总线与接口标准

49

十、 PCI BIOS 初始化程序只能通过 PCI BIOS才能访问 PCI 配置寄存器。 PCI BIOS再通过配置地址端口寄存器和配置数据口寄存器实现其功能。1 、 16 位 PCI BIOS 的调用 通过 INT 1AH实现: AH=B1H , AL 为子功能号。2 、 32 位 PCI BIOS 的调用 确认 32 位 BIOS 是否存在; 确认 BIOS 是否支持 PCI BIOS ,并取得 PCI

BIOS入口地址; 通过 INT 1AH实现: AH=B1H , AL 为子功能号。

Page 50: 第四章 微机总线与接口标准

50

第四节 通用串行总线 USB

一、 USB 系统的组成1 、 USB 系统连接模式( 1 )拓扑结构:树型结构,最多可连接 127 个设备。

主机USB 主控制器 / 根Hub

全速电话

高速

显示器 (含集线器 )

高速集线器

扬声器扬声器 键盘 (含集线器 )

低速麦克风 麦克风

低速高 速→ 480Mb/s全 速→ 12Mb/s低 速→ 1.5Mb/s

MEMUSB总线

USB端口

PCI 总线

回下页 回 52 页 回 53 页

Page 51: 第四章 微机总线与接口标准

51

( 2 )基本概念 USB 总线:由 VCC 、 GND 、 D+ 、 D- 四根线组成, D+ 和 D- 通过差分方式作为一根数据线 ( 半双工 ) 使用; USB事务: USB 总线上最基本的一次数据交换操作; USB逻辑地址:—逻辑地址不通过连线实现 每个 USB集线器和 USB 设备 ( 不连接到 PCI 总线 ) ,均不占用 I/O 地址空间 (无 I/O 地址 ) ,只具有一个惟一的 USB逻辑地址 (USB 系统自动配置所分配 ); USB端口:连接 USB 总线的连接器; USB端点:集线器或设备的内部寄存器 (仿照 I/O

端口起名,又要与 USB端口区分 ) ,编号在 0~15

之间。转上页

Page 52: 第四章 微机总线与接口标准

52

2 、 USB 系统的硬件 ( 1 ) USB 主控制器 / 根集线器 (Host Ctrl/Root

Hub)

由主控制器和根集线器组成。 主控制器: —连接到 PCI 总线 可作为主设备通过 PCI 总线直接与 MEM交换数据; 功能—实现并 - 串转换、创建USB事务、管理USB事务传输过程 ( 在根集线器与主机 MEM 间传递结果 ) 。 占用一定数量 I/O 地址空间,受 CPU 控制。

根集线器:—连接到主控制器 功能—控制 USB端口电源、启用 /禁止 USB端口、识别连接的设备、设置和报告端口的状态等。 只占用一个 USB逻辑地址 (0) ,受主控制器控制。 转 50 页

Page 53: 第四章 微机总线与接口标准

53

( 2 ) USB集线器 (USB Hub)

由控制器和中继器组成,最多支持 4 个 USB端口; 有高速 ( 支持 USB2.0) 和全速 (USB1.x)2 种类型; 可集成在 USB 设备内部,不作为独立硬件出现。 每个 USB HUB占用一个 USB逻辑地址; 每个 USB HUB 具有一定数量 (≤16) 的 USB端点。

( 3 ) USB 设备 可分为 HUB 设备 (USB集线器 ) 和功能设备两种。 功能设备类型:有高速、全速或低速三种类型。 每个 USB 设备占用一个 USB逻辑地址; 每个 USB 设备具有一定数量 (≤16) 的 USB端点。 转 50 页

Page 54: 第四章 微机总线与接口标准

54

3 、 USB 系统的软件( 1 ) USB 设备驱动程序 将某用户操作请求转换成几个 IRP(I/O 请求包 ) ,以 IRP 形式送给USB 驱动程序。( 2 ) USB 驱动程序 功能:将 I/O 系统的操作转换成 USB 系统的操作; 实现:根据 USB 设备特性、 IRP 类型等特征,将IRP 组织 (转换 ) 成几个 USB事务 ( 用 USB事务的传输描述符表示 ) ,送给USB 主控制器驱动程序。 传输描述符— 包括 USB 设备地址、 USB事务类型 (I/O/S 等 ) 、传输数据大小、处理速度 ( 传输速度 ) 、内存缓冲区位置等回下页

Page 55: 第四章 微机总线与接口标准

55

( 3 ) USB 主控制器驱动程序 将这些 USB事务调度到一系列事务列表中; USB 主控制器定时读取一个列表信息并执行。 a.调度思想: 各USB 设备在一定时长内得到服务的机会均等。 b.调度方法: 一定时长—USB 1.x 为 1ms , USB 2.0 为125μs; 定义:该时长称为帧 / 微帧 机会均等—一定时长内的事务可为不同设备的事务,即各事务占时有限 (1 个 IRP→ 多个 USB事务的原因 ) 。 c.调度依据: 设备速度和事务类型、已等待事务类型和数量等。

转上页

Page 56: 第四章 微机总线与接口标准

56

二、 USB 系统的通信1 、 USB 系统的通信模型 I/O 系统通信→ USB 系统通信,并行通信→串行通信。

USB 设备驱动程序

USB 驱动程序USB 主控制器驱动程

主机系统USB 功能设

USB 设备

USB 功能设备

USB逻辑设备

USB逻辑设备

USB 总线USB 总线

非USB格式数据

USB格式数据

USB格式数据

缓冲区

事务描述符

调度与传递

主控制器

根集线器帧内处理

USB格式

…USB线

缺省管道

管道

总线层

设备层

功能层

通信核心: USB 主控制器 --DMA 方式与 MEM交换数据; 串行处理帧内各事务。回下页 回 58 页

Page 57: 第四章 微机总线与接口标准

57

2 、 USB 系统的通信原理 ①USB 驱动程序将 IRP 分解为几个 USB事务 (描述符 ); 每个事务所用时长不能太长 (≤800ns)

USB 驱动程序

USB 设备驱动程序

IRP1 IRP2

IRP1事务 1-0 事务 1-1

IRP2事务 2-0 事务 2-1 事务 2-2

②USB 主控制器驱动程序将这些事务调度到各帧中; 调度依据—根据已请求事务特征 ( 类型和速度等 ) 、当前事务特征等进行调度; 帧内事务数量—根据各事务耗时的多少确定(数量不固定),保证每帧执行时长≤ 1ms 。

主控制器驱动程序帧 1(事务列表

1)事务 1-0 事务 2-0帧 2(事务列表

2)事务 1-1 事务 2-1…… ……

转上页

Page 58: 第四章 微机总线与接口标准

58

③USB 主控制器在规定时间内串行执行完帧中事务; 每帧内从根 HUB各端口→ HUB→ 设备的空闲时间越来越长

USB 设备1

USB 设备2

USB 设备3

1-0 空闲 3-0 空闲 1-1 空闲 …根集线器 端口 0端口 1

主控制器 时间帧 1 帧 2

空闲 2-0 空闲 … 2-1 空闲

1-0 空闲 1-1 空闲空闲 2-0 空闲 2-1 空闲空闲 3-0 空闲

1-0 2-0 3-0 … 1-1 2-1 …

④每个事务的执行通过 1~3 个包交换完成。 包类型:有标志包、数据包、握手包、特殊包四种; 事务与包:每个事务均有标志包或特殊包,全部由主控制器发出; 设备与事务:只有标志包具有USB 设备地址、端点号、事务类型。

USB 主控制器

①标志包或特殊包

USB设备

②数据包

③握手包

转 56 页

Page 59: 第四章 微机总线与接口标准

59

3 、 USB 设备端点、管道与数据流类型 USB 系统能够实现即插即用 (PNP 方式 ) 。 USB 设备端点: 每个设备最多有 16 个端点; 配置前,端点 0 为默认端点。 管道:—设备驱动程序与设备端点间的逻辑连接 管道类型 (端点类型 ) 有流管道、消息管道 2 种。 数据流类型: 有控制信号流、块数据流、中断数据流、实时数据流 4 种; 不同数据流类型采用不同类型管道进行通信。

回下页

Page 60: 第四章 微机总线与接口标准

60

4 、 USB 的基本传输类型 ( 流类型 )

( 1 )控制传输:双向,用于配置设备或特殊用途,出错时重传。

( 2 )批传输:单 / 双向,用于大批量数据传输,要求准确,出错时重传,时间性不强。

( 3 )中断传输:单向,用于查询USB 设备有无中断请求,出错时在下一查询周期重传。( 4 )等时传输:单 / 双向,用于连续实时数据传输,

时间性强,出错时不重传,速率固定。

转上页

所有传输类型均为主、从式传输 ( 主控制器发起 ) 。 思考:两个 PCI 机的 USB端口能否通信?

Page 61: 第四章 微机总线与接口标准

61

三、 USB 总线的接口信号和电气特性 1 、接口信号线

高 / 低速USB收发器( 主机或集线

器端口 )

高速 USB收发器 ( 主机端口或高速

设备 )

+5vdc

D+

D-

地15KΩ

15KΩ

+3.0~3.6vdc

1.5KΩD+

D-

高 / 低速USB收发器( 主机或集线

器端口 )

低速 USB收发器 ( 低速

设备 )

+5vdc

D+

D-

地15KΩ

15KΩ

+3.0~3.6vdc

1.5KΩD+

D-USB 数据线

USB 数据线

回下页

Page 62: 第四章 微机总线与接口标准

62

2 、电气特性 ( 1 )供电特性 HUB收发器:提供 4.75~5.25V 电压、 500mA 电流, D+ 、 D- 上不加电压; USB 设备:高 /全速设备在 D+ 线加 3.0~3.6V电压, 低速设备反之 (D- 线 ) 。( 2 ) D+ 、 D- 线电压特性 (低速设备反之) 发送端:VOH(max)=3.6V , VOH(min)=2.8V; VOL(max)=0.3V , VOL(min)=0.0V 。 接收端:VIHZ(min)=2.7V , VIH(min)=2.0V; VIL(max)=0.8V , VIL(min)=0.0V 。

转上页 回下页

Page 63: 第四章 微机总线与接口标准

63

3 、 USB 总线状态 (低速设备反之)发送端 ( 高速设备 ) 接收端 ( 高速设备 )

差动信号“ 1”

VD+> VOH(min)且 VD-<VOL(max)

VD+- VD-> 200mV且VD+> VIH(min)

差动信号“ 0”

VD-> VOH(min)且 VD+<VOL(max)

VD-- VD+> 200mV且 VD-

> VIH(min)单端零(SE0)

VD+ 和 VD-< VOL(max) VD+ 和 VD-< VIL(max)

数据 J状态 差动信号“ 1”数据 K状态 差动信号“ 0”空闲状态 NA VD+> VIHZ(min)且 VD-<

VIL(max)

连接状态NA

VD+> VIHZ(min)且 VD-<

VIL(max) ,时间> 2.5μs断开 (未连接 )状态

NA SE0 ,时间> 2.5μs

重置状态 SE0 ,时间> 10ms SE0 ,时间> 2.5μs包起始符SOP

从空闲状态转换到 K状态

包结束符EOP

2 位 SE0+1 位 J状态 ≥1 位 SE0+1 位 J状态

转上页 回下页

Page 64: 第四章 微机总线与接口标准

64

( 1 )总线状态转换 未连接状态、连接状态、空闲状态均针对接收端而言。

重置状态未连接状态

空闲状态

连接状态

工作状态安全删除

( 2 ) USB 设备包含状态 连接状态,重置状态,上电状态,地址默认状态 , 地址状态,配置状态,空闲状态,工作状态 。

转上页 回下页

Page 65: 第四章 微机总线与接口标准

65

4 、 USB 设备状态和总线枚举 主机

HUB

连接状态上电状态地址默认状态地址状态

配置状态工作 / 空闲状态

US

B

设备

1.1 设备接入 [ 连接状态 ]

1.2 通知有设备接入2 检测Hub,确认有接入

3 使能该端口,发 RESET 命令

4 发 RESET 信号,供电 [重置状态 ]

5.2 读设备的描述器信息 [工作状态 ]

5.1读设备的描述器信息6.1 给设备分发地址

6.2 分发地址 [工作状态 ]

7.1 按地址读设备配置信息

7.2 读配置信息 [工作状态 ]

8.1 按地址写设备配置信息

8.2 写配置信息 [工作状态 ]

[工作 / 空闲状态 ]

转上页

Page 66: 第四章 微机总线与接口标准

66

5 、数据位表示 --NRZI编码 ( 双向不归零编码 )

无独立时钟,需通过数据变化反映时钟宽度。 数据表示: 逻辑 0— 在时钟宽度内,电平产生跳变 ( 从差动信号“ 1”/“0”到差动信号“ 0”/“1”); 逻辑 1— 在时钟宽度内,电平不变。 时钟宽度确定:信息包的开始几位为逻辑“ 0” 。 填充规则: 发送方在数据的连续 6 个“ 1”后插入 1

个“ 0”; 接收方将所收数据的连续 6 个“ 1”后 1

个“ 0”去掉。 目的: 提高信号的准确性 (防止漂移 ) 。

回下页 回 69 页

Page 67: 第四章 微机总线与接口标准

67

NRZI编码示 例:原始数据

(TTL 电平 )空闲

填充数据(TTL 电平 )

填充位

USB 总线数据

(NRZI码 )0 0 0 1 1 1 1 1 1 0 1 1 0 1 1

0 0 0 1 1 1 1 1 1 0 1 1 0 1 1

0 0 0 1 1 1 1 1 1 1 1 0 1 1

转上页

Page 68: 第四章 微机总线与接口标准

68

四、 USB交换的包格式 USB事务的执行通过包交换 ( 一次传输 )完成。 一个 USB事务由 1~3 个 USB 包组成,包的数量由传输类型决定。

IRP 请求

事务

标志包

IRP 请求 IRP 请求

事务 事务

数据包 握手包

通信帧 ( 定长 ) :由帧开始包和若干事务的包组成。

帧开始包 标志包 数据包 握手包 标志包 数据包 …

事务 1 事务 2

1ms 或125μs

Page 69: 第四章 微机总线与接口标准

69

1 、包的一般格式

SYNC PID 包正文信息 CRC 包结束符8 位 8 位 n 位 5 位或 16 位 ≥ 2 位

所有信息段 (CRC除外 )均是从低位→高位发送; 如 SYNC 、 PID 、包正文信息等的各字符均从 bit0→bit

x SYNC :同步序列,并行数据为 10000000;

NRZI编码:

(D+ 、 D-线 )

空闲 0 0 0 0 0 0 0 1 x x x串行数据:

PID :包分类码,由 PID 类型码及其反码组成,串行数据如下图所示;

PID0 PID1 PID2 PID3 PID0# PID1# PID2# PID3#

PID PID反码回 71 页转下页 转 66 页

Page 70: 第四章 微机总线与接口标准

70

PID 类型

PID名称 PID[3:0]

描述

Token

OUT 0001b 具有 PID 、类型检查、设备地址、端点号和 CRC域的宿主到功能设备的发送包

IN 1001b 功能设备到宿主的接收包,具有和发送包一样的域SOF 0101b 帧开始包SETUP 1101b 主机发给设备的设置包,用于控制传输的设置

Data

DATA0 0011b 数据包 0

DATA1 1011b 数据包 1

DATA2 0111b 在微帧中高速、高带宽的等时交换的数据包MDATA 1111b 为分离的高速和高带宽等时交换中的数据包

Hand-shake

ACK 0010b 接收设备发的接受数据正确的应答包NAK 1010b 接收设备无法接受数据或没有数据返回个宿主STALL 1110b 设备已经被挂起,需要主机插手解决故障NYET 0110b 接收器无应答

Special

PRE 1100b(Token) 预告包,预告将以低速方式与低速设备通信

ERR 1100b (Handshake) 分离交换错误的握手信号SPLIT 1000b 高速分离交换标志PING 0100b 为批或控制端点传输而设置的高速流控制探测Reserved 0000b 保留

回上页

Page 71: 第四章 微机总线与接口标准

71

2 、标志包 类 型:帧开始包、接收包、发送包、设置包。 发送方:主机 ( 主控制器 ) 。(1)帧开始包 (SOF)

发送方:主机

SYNC PID FRAME NUMBER CRC 包结束符

8 位 8 位 11 位 5 位 ≥ 2 位

NRZI编码:

0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1数 据:

每一帧均以主机广播帧开始包表示一帧的开始。

转 69 页 回下页 回 74 页 回 75 页

Page 72: 第四章 微机总线与接口标准

72

(2) 接收包 (IN)

发送方:主机

SYNC PID ADDR ENDP CRC 包结束符

8 位 8 位 7 位 4 位 5 位 ≥ 2 位

说明: ADDR—USB 设备的 USB 地址; ENDP—USB 设备端点编号

控制、批、中断传输交换 (事务 ) :主机: 空闲设备: 空闲

接收包数据包

握手包 空闲空闲

等时传输交换 (事务 ) :主机: 空闲设备: 空闲

接收包数据包

空闲空闲

回下页转上页

Page 73: 第四章 微机总线与接口标准

73

(3) 发送包 (OUT)

发送方为主机,包格式与接收包一致, PID 不同。 控制、批、等时传输交换 : (批传输才有握手包,中断传输归接收包)

主机: 空闲设备: 空闲

发送包 数据包握手包

空闲空闲

(4) 设置包 (SETUP)

发送方为主机,包格式与接收包一致, PID 不同。 控制传输交换: (无批、等时、中断传输)

主机: 空闲设备: 空闲

设置包 数据包握手包

空闲空闲

转上页

Page 74: 第四章 微机总线与接口标准

74

3 、数据包 发送方:主机或设备。

SYNC PID DATA CRC 包结束符8 位 8 位 0~1023 位 16 位 ≥ 2 位

USB 1.1 数据包格式

SYNC PID DATA CRC 包结束符8 位 8 位 0~8191 位 16 位 ≥ 2 位

USB 2.0 数据包格式 注意: CRC 为 16 位,标志包中为 5 位 ( 数据长

度 ) 。 思考:为什么数据包中无USB 设备地址?

转 71 页

Page 75: 第四章 微机总线与接口标准

75

4 、握手包 发送方:主机或设备,即数据的接收方发送。

SYNC PID 包结束符

8 位 8 位 ≥ 2 位

5 、特殊包 发送方:主机。 包格式:与握手包相同, PID 不同。

转 71 页