slide1
Download
Skip this Video
Download Presentation
第四章 微机总线与接口标准

Loading in 2 Seconds...

play fullscreen
1 / 75

第四章 微机总线与接口标准 - PowerPoint PPT Presentation


  • 63 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 第四章 微机总线与接口标准' - darius-padilla


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2

第一节 总线与接口概述

一、总线和接口及其标准的概念

总线:是在模块之间或设备之间的一组进行互连和传输信息的信号线,信息包括指令、数据和地址。

总线标准:指芯片之间、扩展卡之间以及系统之间,通过总线进行连接和传输信息时,应该遵守的一些协议与规范。

接口标准:指与外设接口的规范,涉及接口信号线定义、信号传输速率、传输方向和拓扑结构,以及电气特性和机械特性等多个方面。

slide4

二、总线的分类

1、按总线功能或信号类型划分

数据总线、地址总线、控制总线

2、按总线的层次结构分

CPU总线、局部总线、系统总线、通信总线

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

slide5

三、总线的主要性能参数

1、总线频率

2、总线宽度

3、总线数据传输率

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

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

slide6

四、总线标准的特性

1、物理特性

包括总线根数,插头及插座的尺寸、排列等。

2、功能特性

包括每根信号线的功能。

3、电气特性

包括驱动功率、有效电平等。

4、时间特性

包括每根信号线的有效时间及信号线间的时序等。

注意:总线的功能特性不能代表总线标准。

slide7

五、总线操作与控制

1、总线操作过程

1)总线请求和仲裁阶段2)寻址阶段

3)数据传送阶段4)结束阶段

2、总线传送控制

1)同步方式2)异步方式

3)半同步方式4)分离方式

思考:

1)同步方式与半同步方式的区别?

2)异步方式的4个步骤?

slide8

第二节 系统总线

一、ISA总线

1、ISA总线的信号

支持24位地址,16位数据线,总线频率≤8MHz,最大数据传输率≤16MB/s(=8×16位/8)。

2、ISA总线扩展卡的设计

1)ISA总线扩展卡的物理尺寸

2)ISA总线扩展卡的地址分配和中断号分配

slide9

二、其他总线

1、EISA总线

EISA总线支持32位地址、32位数据总线,总线频率8.33MHz,最大数据传输率33.3MB/s(8.33×32位/8)。

结构与ISA兼容,EISA总线插槽与ISA插槽等长等宽,内部被设计成为双层引脚。

2、PC104总线

采用超小尺寸插卡,自叠总线结构,总线驱动电流小,功耗低。

3、STD总线

slide10

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

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

(a)常规传输

(b)突发传输

第三节 PCI总线

一、PCI总线特点

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

6) 采用同步操作

7) 支持两种电压下的扩展卡

8) 具有即插即用功能

9) 合理的管脚安排

10) 预留扩展空间

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

slide11

功能→命令(I/O、MEM、配置等)

空间→I/O、MEM、配置空间,字节对齐

单CPU启动

控制 寻址

操作 响应 →协议(信号时序)

数据

终止

多CPU控制→总线请求与仲裁

PCI总线标准知识点:

回17页

回18页

回22页

回29页

slide12

二、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]#进行奇偶校验的校验位

回下页

slide13

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页

slide14

4、仲裁接口信号

REQ# T/S:总线占用请求信号

GNT# T/S:总线占用允许信号

5、错误报告接口信号

PERR# S/T/S:数据奇偶校验错误报告信号

SERR# O/D:系统错误报告信号

6、中断接口信号

PCI有4条中断线,分别是INTA#、INTB#、INTC#、INTD#

回16页

slide15

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:奇偶双字节校验

slide16

CLK

频率

发生器

AD[31:0]

从设备

PCI总线控制器

AD[31:0]

IDSEL

设备ID

译码器

控制/状态

主设备1

AD15

AD14

AD13

AD12

AD11

C/BE#[3:0]

地址/数据

从设备

REQ#

IDSEL

FRAME#

IRDY#

LOCK#

GNT#

控制/状态

PCI桥

主设备2

DEVSEL# TRDY#

STOP#

地址/数据

AD24

AD16

总线号

译码器

REQ#

GNT#

PCI桥

INTA~H#

PCI中断控制器

共用信号线

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

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

转14页

转13页

回30页

回36页

slide17

三、PCI总线命令

转11页

回21页

slide18

四、PCI总线协议之一-- PCI总线的寻址

1、字节对齐

AD[31:00]一次只能进行32位数据交换(不能进行字节交换);有64位通道的主设备可进行64位数据交换。

字节交换办法:

主设备在每个新数据期开始的时钟前沿改变字节使能信号(见I/O寻址),且在该数据期中保持不变。

对可缓冲的存储器的数据可不考虑字节使能信号,而传送所有的字节(总线宽度)。

转11页

回下页

slide19

2、I/O地址空间

32位AD线表示的地址空间(A31~A16表示总线号);

最低寻址(或访问)精度为字节。

从设备的处理:

地址期对AD[15:0]译码,决定是否产生DEVSEL#;

数据期检查AD[1:0]和C/BE#[3:0]校验传输的最低有效字节和数据宽度:

如:当AD[1:0]=01时;

若C/BE#[3:0]=1101,为字节传输;

若C/BE#[3:0]=1001,为字传输;

若C/BE#[3:0]=1011等,操作错误,中止传输。

转上页

slide20

MEM地址空间

31

2 1 0

00000008H

双字边界对齐的起始地址

00000004H

4字节

00000000H

00 地址递增

01 Cache行切换

1X 保留

7

2 1 0

双字边界对齐的起始地址

00 选择该设备

01 选择该桥路后设备

1X 保留

3、内存地址空间

最低寻址(或访问)精度为双字。

A1A0必须为00(或不译码),可作它用!

4、配置地址空间

最低寻址(或访问)精度为双字。

回32页

回下页

slide21

232-1

0

216-1

0

MEM

I/O

255

0

255

0

I/O1配置

I/On配置

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

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

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

采用特殊方法区分地址对应的不同空间,

如在I/O空间中开辟特殊区域

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

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

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

转17页

转上页

slide22

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

1、PCI总线的传输控制规则

(1) FRAME#和IRDY#定义了总线的忙/闲状态。

11空闲、00数据、10最后一个数据、01启动或等待状态

(0表示低电平信号有效)

(2) 一旦FRAME#信号被置为无效,在该传输期(帧)不能重新设置。

(3) 除非设置IRDY#信号有效,一般情况下不能设置FRAME#信号无效(即FRAME#在IRDY#有效时设置)。

(4) 数据期内设置IRDY#或TRDY#信号无效,表示主或从设备插入了等待周期。

转11页

slide23

2、PCI总线的驱动与过渡

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

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

slide24

CLK

8

1

7

6

2

3

4

5

FRAME#

IRDY#

TRDY#

……

MED

SLOW

FAST

DEVSEL#

3、设备选择

所有从设备共用PCI总线的DEVSEL#信号。

从设备设置DEVSEL#后,传输完成前不能撤消它。

slide25

CLK

9

8

1

7

6

2

3

4

5

FRAME#

DATA3

DATA1

AD

ADDRESS

DATA2

C/BE#

BUSCMD

BE#s

IRDY#

TRDY#

DEVSEL#

数据期

数据期

数据期

地址期

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

一帧中最多只有一个从设备设置DEVSEL#有效;

TRDY#无效,表示从设备插入了等待周期。

slide26

CLK

9

8

1

7

6

2

3

4

5

FRAME#

DATA1

DATA2

DATA3

AD

ADDRESS

C/BE#

BEs3

BEs2

BUSCMD

BEs1

IRDY#

TRDY#

DEVSEL#

数据期

地址期

数据期

数据期

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

slide27

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

1、由主设备提出的终止

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

处理:

传输结束—建立IRDY#,撤消FRAME#,直到TRDY#有效后传输完最后一个数据后,撤消IRDY#;

超时—建立IRDY#,撤消FRAME#,撤消IRDY#。

2、由从设备提出的终止

原因:死锁,或8个时钟内来不及响应

处理:发STOP#

slide28

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

⑴当STOP#有效时,FRAME#应在其后2~3个TC内撤消(撤消时应使IRDY#有效);从设备应无条件地保持STOP#有效直到FRAME#撤消为止(STOP#紧跟着撤消)。

⑵在任何时钟的上升沿,若STOP#和TRDY#同时有效,就表示是传输的最后周期,IRDY#要在下一个时钟的上升沿之前撤消,表示传输的结束。

⑶对于被目标设备终止的传输,主设备若要继续完成它,就必须用下一个未传输的数据的地址来重试访问。

slide29

CLK

1

7

6

2

3

4

5

REQ#-A

a

b

REQ#-B

d

e

c

GNT#-A

f

g

GNT#-B

FRAME#

IRDY#

TRDY#

数据

地址

地址

数据

AD

B存取

A存取

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

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

转11页

slide30

九、PCI总线配置

1、PNP过程

⑴BIOS检查所有PNP卡的ID及所需资源;

⑵系统配置程序检查非PNP卡ID及所需资源;

⑶管理程序汇总信息构成硬件树;

⑷统一配置资源到卡。

基础知识:

①一个扩展卡(PCI物理设备,简称设备)可包含多个功能设备(简称功能,PCI总线标准规定最多有8个功能);

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

回下页

转16页

slide31

2、PCI设备及其配置空间

存在问题:

①所有设备均没有I/O地址(尚等待管理程序分配),如何选择某个设备以读取资源需求和分配资源?

②在没有I/O地址时,如何选择某个功能?

③在没有I/O地址时,如何读取不同厂家功能设备的资源需求?

处理方法:

①通过IDSEL选择设备(同一时刻只有一个设备被选择);

②选择设备的同时,用功能号选择具体功能;

③每个功能有一个配置空间,前面部分的格式统一。

转上页

转16页

slide32

设备1

设备k

255

0

255

0

255

0

255

0

功能1

功能n

功能1

功能m

配置空间:

大小—256B,前64B(称头区域)格式统一;

寻址精度—双字(32位),A1A0可作他用。

关键问题:

①如何实现配置空间选择(总线、设备和功能);

②如何利用I/O空间命令进行配置空间访问;

③如何实现配置空间信息的读取与分配。

转20页

slide33

CPU

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

HOST-PCI桥

配置命令

一级总线00000000

目标桥的中间桥

PCI桥

PCI桥

二级总线00000010

00000001

PCI桥

PCI桥

目标桥

00001001

三级总线00000101

目标总线

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

PCI桥应具有功能: (总线号译码功能)

根据命令中地址,识别目标总线是否包含在自己桥下;

根据命令中地址,识别目标是否在本级桥总线上。

回下页

回35页

回36页

回39页

slide34

总线号编码规则:

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

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表示目标设备在下级总线上。

转上页

slide35

(1)PCI桥对是否被选中的检测

选中类型:自己为目标桥,或目标桥的中间桥。

选中检测:

被选中时的处理:

回38页

转33页

slide36

(2)PCI设备对是否被选中(作为目标设备)的检测(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机采用该方案)。

转16页

转33页

slide37

CPU

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

HOST-PCI桥

配置命令(C/BE#[3:0]、AD[31:0])

PCI桥

PCI桥

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

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

PCI桥

PCI桥

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

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

(3)PCI设备对某功能是否被选中的检测

选中条件(地址期):

C[3:0]为配置操作、IDSEL引脚信号有效、AD[1:0]=00;

它具备的功能(功能设备)数>AD[10:8]。

slide38

(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页

slide39

例:PCI总线操作地址期总线信号如下:C/BE#=1011,AD=00011005H,该操作访问几号桥下几号设备何REG?例:PCI总线操作地址期总线信号如下:C/BE#=1011,AD=00011005H,该操作访问几号桥下几号设备何REG?

解:C/BE#=1011,表示总线操作为配置写操作,

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

(5)PNP时取得所有设备配置信息的过程

对所有总线(最多28个)处理{

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

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

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

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

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

转33页

slide40

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。

slide41

(2)CPU访问配置空间的实现—间接访问

访问配置空间的指令:(OUT+IN/OUT指令对)

先用OUT指令写总线级配置访问地址期的地址;

再用IN/OUT指令传送总线级配置访问的数据。

I/O指令的端口地址:(0CF8H~0CFFH)

配置地址端口(OUT指令的地址)为0CF8H;

配置数据端口(IN/OUT指令的地址)为0CFCH。

I/O指令到PCI总线配置命令的转换:

HOST-PCI桥中的配置机构保存配置操作所需的地址和数据,第二个I/O指令时进行配置转换。

回下页

slide42

I/O地址空间

0000H

OUT DX,EAX

OUT DX,EAX

N

产生总线的I/O操作

DX在0CF8H-0CFFH间

FFFFH

Y

N

目标物理设备IDSEL

DX=0CF8H

DX=0CFCH

操作为OUT,EAX最高位为1

目标功能设备配置空间

过滤器

00H

Y

头区域

配置数据REG←EAX

配置地址REG←EAX

3FH

产生总线的配置操作

命令结束

自由

区域

FFH

配置数

据REG:

配置地

址REG:

D31-D0

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

HOST-PCI桥中配置机构

(3)配置机构工作原理

①保存配置信息;②实现配置转换。

转上页

slide43

5、配置空间头区域信息的读取与分配

(1)设备识别信息

厂商、设备、版本、分类等

(2)设备控制信息

I/O访问、MEM访问、特殊周期、错误响应、等待周期等

(3)设备状态信息

运行环境、错误标志、DEVSEL#时序等

回48页

slide44

31

2

1

0

1

基地址

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

保留

I/O空间映射

3

31(63)

2

1

0

0

基地址

预取使能

存储空间映射

00 32位地址空间任意映射

01 32位地址空间1M字节以内映射(已不用)

10 64位地址空间任意映射

11 保留

(4)基址寄存器

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

回下页

回下二页

slide45

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

D0=0—表示是一个MEM地址空间映射

D[2:1]=00B—表示使能32位MEM映射

D3=0—表示该功能设备不是预取MEM

D[31:4]—第一个为1的位是D20,表示映射的MEM空间为1MB=220;即将分配的MEM空间的基址应该为1MB的整数倍

系统管理程序经过权衡后再向该基址寄存器写入实际映射的空间基址(满足边界对齐原则)。

基址寄存器是为简化设备配置过程、达到配置空间的映射与设备无关的目标而设计的。

转上页

slide46

例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字节

转上二页

slide47

10

31

11

1

0

保留

基地址

扩展ROM访问允许

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

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

D0=1—表示扩展ROM访问允许

D[31:11]—第一个为1的是D16,表示映射的ROM空间为64K;即将分配的ROM空间的基地址应该为64K的整数倍

(6)头区域中其它寄存器

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

slide48

例4:读0号PCI总线的1号扩展槽设备的2号功能的基址REG0。例4:读0号PCI总线的1号扩展槽设备的2号功能的基址REG0。

例5:给2号PCI总线的3号扩展槽设备的0号功能的基址REG0分配从1A00H开始的8个地址I/O空间。

MOV DX,0CF8H

MOV EAX,80000A10H

OUT DX,EAX

MOV DX,0CFCH

MOV EAX,FFFFFFFFH

OUT DX,EAX

MOV DX,0CF8H

MOV EAX,80000A10H

OUT DX,EAX

MOV DX,0CFCH

IN EAX,DX

MOV DX,0CF8H

OUT DX,80022011H

MOV DX,0CFCH

OUT DX,00001A00H

转43页

slide49

十、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为子功能号。

slide50

PCI总线

MEM

USB主控制器/根Hub

主机

USB总线

高速

全速

高速

电话

显示器(含集线器)

集线器

USB端口

扬声器

扬声器

键盘(含集线器)

高速→480Mb/s

全速→12Mb/s

低速→1.5Mb/s

低速

低速

麦克风

麦克风

第四节 通用串行总线USB

一、USB系统的组成

1、USB系统连接模式

(1)拓扑结构:树型结构,最多可连接127个设备。

回下页

回52页

回53页

slide51

(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之间。

转上页

slide52

2、USB系统的硬件

(1)USB主控制器/根集线器(Host Ctrl/Root Hub)

由主控制器和根集线器组成。

主控制器: —连接到PCI总线

可作为主设备通过PCI总线直接与MEM交换数据;

功能—实现并-串转换、创建USB事务、管理USB事务传输过程(在根集线器与主机MEM间传递结果)。

占用一定数量I/O地址空间,受CPU控制。

根集线器:—连接到主控制器

功能—控制USB端口电源、启用/禁止USB端口、识别连接的设备、设置和报告端口的状态等。

只占用一个USB逻辑地址(0),受主控制器控制。

转50页

slide53

(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页

slide54

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等)、传输数据大小、处理速度(传输速度)、内存缓冲区位置等

回下页

slide55

(3)USB主控制器驱动程序

将这些USB事务调度到一系列事务列表中;

USB主控制器定时读取一个列表信息并执行。

a.调度思想:

各USB设备在一定时长内得到服务的机会均等。

b.调度方法:

一定时长—USB 1.x为1ms,USB 2.0为125μs;

定义:该时长称为帧/微帧

机会均等—一定时长内的事务可为不同设备的事务,即各事务占时有限(1个IRP→多个USB事务的原因)。

c.调度依据:

设备速度和事务类型、已等待事务类型和数量等。

转上页

slide56

主机系统

USB设备

USB设备驱动程序

USB功能设备

USB功能设备

功能层

缓冲区

非USB格式数据

管道

USB逻辑设备

USB逻辑设备

USB驱动程序

设备层

缺省管道

事务描述符

USB格式数据

USB主控制器驱动程序

调度与传递

USB格式数据

USB总线

主控制器

USB格式

根集线器

总线层

USB总线

帧内处理

USB线

二、USB系统的通信

1、USB系统的通信模型

I/O系统通信→USB系统通信,并行通信→串行通信。

通信核心:USB主控制器--DMA方式与MEM交换数据;

串行处理帧内各事务。

回下页

回58页

slide57

USB设备驱动程序

IRP1

IRP2

IRP1

IRP2

USB驱动程序

事务1-0

事务1-1

事务2-0

事务2-1

事务2-2

帧1(事务列表1)

帧2(事务列表2)

主控制器驱动程序

事务1-0

事务2-0

……

事务1-1

事务2-1

……

2、USB系统的通信原理

①USB驱动程序将IRP分解为几个USB事务(描述符);

每个事务所用时长不能太长(≤800ns)

②USB主控制器驱动程序将这些事务调度到各帧中;

调度依据—根据已请求事务特征(类型和速度等)、当前事务特征等进行调度;

帧内事务数量—根据各事务耗时的多少确定(数量不固定),保证每帧执行时长≤1ms。

转上页

slide58

帧1

帧2

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

主控制器

时间

根集线器 端口0

端口1

1-0空闲 3-0空闲 1-1空闲 …

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

USB设备1

USB设备2

USB设备3

1-0空闲 1-1空闲

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

空闲 3-0空闲

①标志包或特殊包

USB主

控制器

USB

设备

②数据包

③握手包

③USB主控制器在规定时间内串行执行完帧中事务;

每帧内从根HUB各端口→HUB→设备的空闲时间越来越长

④每个事务的执行通过1~3个包交换完成。

包类型:有标志包、数据包、握手包、特殊包四种;

事务与包:每个事务均有标志

包或特殊包,全部由主控制器发出;

设备与事务:只有标志包具有

USB设备地址、端点号、事务类型。

转56页

slide59

3、USB设备端点、管道与数据流类型

USB系统能够实现即插即用(PNP方式)。

USB设备端点:

每个设备最多有16个端点;

配置前,端点0为默认端点。

管道:—设备驱动程序与设备端点间的逻辑连接

管道类型(端点类型)有流管道、消息管道2种。

数据流类型:

有控制信号流、块数据流、中断数据流、实时数据流4种;

不同数据流类型采用不同类型管道进行通信。

回下页

slide60

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

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

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

( 3)中断传输:单向,用于查询USB设备有无中断请求,出错时在下一查询周期重传。

(4)等时传输:单/双向,用于连续实时数据传输,时间性强,出错时不重传,速率固定。

所有传输类型均为主、从式传输(主控制器发起)。

思考:两个PCI机的USB端口能否通信?

转上页

slide61

+3.0~

3.6vdc

+5vdc

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

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

1.5KΩ

D+

D+

USB数据线

D-

D-

15KΩ

15KΩ

+3.0~

3.6vdc

+5vdc

低速USB收发器(低速设备)

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

1.5KΩ

D+

D+

USB数据线

D-

D-

15KΩ

15KΩ

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

1、接口信号线

回下页

slide62

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。

转上页

回下页

slide64

重置状态

未连接状态

连接状态

安全删除

空闲状态

工作状态

(1)总线状态转换

未连接状态、连接状态、空闲状态均针对接收端而言。

(2)USB设备包含状态

连接状态,重置状态,上电状态,地址默认状态,地址状态,配置状态,空闲状态,工作状态。

转上页

回下页

slide65

主机

1.2 通知有设备接入

2 检测Hub,确认有接入

3 使能该端口,发RESET命令

5.1读设备的描述器信息

6.1 给设备分发地址

7.1 按地址读设备配置信息

8.1 按地址写设备配置信息

1.1 设备接入[连接状态]

HUB

连接状态

上电状态

地址默认状态

地址状态

配置状态

工作/空闲状态

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

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

6.2 分发地址[工作状态]

USB设备

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

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

[工作/空闲状态]

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

转上页

slide66

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

无独立时钟,需通过数据变化反映时钟宽度。

数据表示:

逻辑0—在时钟宽度内,电平产生跳变(从差动信号“1”/“0”到差动信号“0”/“1”);

逻辑1—在时钟宽度内,电平不变。

时钟宽度确定:信息包的开始几位为逻辑“0”。

填充规则:

发送方在数据的连续6个“1”后插入1个“0”;

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

目的: 提高信号的准确性(防止漂移)。

回下页

回69页

slide67

原始数据

(TTL电平)

空闲

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

填充位

填充数据

(TTL电平)

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

USB总线数据

(NRZI码)

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

NRZI编码示例:

转上页

slide68

IRP请求

IRP请求

IRP请求

事务

事务

事务

标志包

数据包

握手包

1ms或125μs

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

事务1事务2

四、USB交换的包格式

USB事务的执行通过包交换(一次传输)完成。

一个USB事务由1~3个USB包组成,包的数量由传输类型决定。

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

slide69

8位 8位 n位 5位或16位 ≥2位

SYNC PID 包正文信息 CRC 包结束符

串行数据:

空闲00 0 0 0 0 0 1x x x

NRZI编码:

(D+、D-线)

PID0 PID1 PID2 PID3PID0# PID1# PID2# PID3#

PID PID反码

1、包的一般格式

所有信息段(CRC除外)均是从低位→高位发送;

如SYNC、PID、包正文信息等的各字符均从bit0→bitx

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

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

转下页

回71页

转66页

slide71

8位 8位 11位 5位 ≥2位

SYNC PID FRAME NUMBER CRC 包结束符

数 据:

00 0 0 0 0 0 1 1 0 1 0 0 1 0 1

NRZI编码:

2、标志包

类 型:帧开始包、接收包、发送包、设置包。

发送方:主机(主控制器)。

(1)帧开始包(SOF)

发送方:主机

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

转69页

回下页

回74页

回75页

slide72

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

SYNC PID ADDR ENDP CRC 包结束符

说明:ADDR—USB设备的USB地址;

ENDP—USB设备端点编号

主机: 空闲

设备: 空闲

接收包

握手包

空闲

空闲

数据包

主机: 空闲

设备: 空闲

接收包

空闲

空闲

数据包

(2)接收包(IN)

发送方:主机

控制、批、中断传输交换(事务):

等时传输交换(事务):

转上页

回下页

slide73

主机: 空闲

设备: 空闲

主机: 空闲

设备: 空闲

发送包

设置包

数据包

数据包

空闲

空闲

空闲

空闲

握手包

握手包

(3)发送包 (OUT)

发送方为主机,包格式与接收包一致,PID不同。

控制、批、等时传输交换:

(批传输才有握手包,中断传输归接收包)

(4)设置包(SETUP)

发送方为主机,包格式与接收包一致,PID不同。

控制传输交换: (无批、等时、中断传输)

转上页

slide74

8位 8位 0~1023位 16位 ≥2位

SYNC PID DATA CRC 包结束符

USB 1.1数据包格式

8位 8位 0~8191位 16位 ≥2位

SYNC PID DATA CRC 包结束符

USB 2.0数据包格式

3、数据包

发送方:主机或设备。

注意:CRC为16位,标志包中为5位(数据长度)。

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

转71页

slide75

8位 8位 ≥2位

SYNC PID 包结束符

4、握手包

发送方:主机或设备,即数据的接收方发送。

5、特殊包

发送方:主机。

包格式:与握手包相同,PID不同。

转71页

ad