第
Download
1 / 82

? 6 ? ?????? - PowerPoint PPT Presentation


  • 210 Views
  • Uploaded on

第 6 章 微机总线标准. 6.1 总线概述. 6.1.1 总线标准的概念与特性. ◆ 总线:是在模块和模块之间或设备与设备之间的一组进行互连和传输信息的 信号线 ,信息包括指令、数据和地址。. ◆ 总线标准 指芯片之间、扩展卡之间以及系统之间,通过总线进行连接和传输信息时,应该遵守的一些协议与规范。. 总线标准的特性. 1 .物理特性 : 2 .功能特性 : 3 .电器特性 : 4 .时间特性 :. 总线物理连接方式 ( 电缆式、蚀刻式),总线根数、插头和插座形状,引脚排列等。. 描述一组总线中每一根线的功能。.

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 '? 6 ? ??????' - rufin


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
6
6章 微机总线标准


6
6.1 总线概述

6.1.1 总线标准的概念与特性

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

◆ 总线标准

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


6

总线标准的特性

1.物理特性:

2.功能特性:

3.电器特性:

4.时间特性:

总线物理连接方式(电缆式、蚀刻式),总线根数、插头和插座形状,引脚排列等。

描述一组总线中每一根线的功能。

定义每根线上信号的传递方向以及有效电平范围。一般定义送入CPU的信号为输入信号,从CPU中送出的信号是输出信号。低电平有效的信号用信号名后带#来表示。如CS#、REQ#

定义每一根线在什么时候有效,这和总线操作的时序有关。


6 1 2
6.1.2 总线的分类

1) 按总线功能或信号类型划分为:

  • 数据总线:双向三态逻辑,线宽表示了总线数据传输的能力。

  • 地址总线:单向三态逻辑,线宽决定了系统的寻址能力。

  • 控制总线:就某根来说是单向或双向。控制总线最能体现总线特点,决定总线功能的强弱和适应性。


6

2) 按总线的分级结构分为:

  • CPU总线:微机系统中速度最快的总线,主要在CPU内部,连接CPU内部部件,在CPU周围的小范围内也分布该总线,提供系统原始的控制和命令。

  • 局部总线:在系统总线和CPU总线之间的一级总线,提供CPU和主板器件之间以及CPU到高速外设之间的快速信息通道。

  • 系统总线:也称为I/O总线,是传统的通过总线扩展卡连接外部设备的总线。由于速度慢,其功能已经被局部总线替代。

  • 通信总线:也称为外部总线,是微机与微机,微机与外设之间进行通信的总线。


6 1 3
6.1.3 总线的主要性能参数

1.总线频率:MHz表示的工作频率,是总线速率的一个重要参数。

2.总线宽度:指数据总线的位数。

3.总线的数据传输率

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

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


6 1 4
6.1.4 总线操作和总线传送控制

一、总线操作的4个阶段

1.总线请求和仲裁阶段:

主模块向总线仲裁机构提出总线使用申请,总线仲裁机构决定使用总线的主模块。

2.寻址阶段:

拥有总线使用权的主模块发出本次要访问的从模块的地址及有关命令,该从模块被选中并启动。

3.数据传送阶段:

主模块和从模块间进行双(单)向数据传送。

4.结束阶段:

主、从模块均撤出总线。


6

clk

wait/ready

二、总线传送控制

clk

1.同步方式

优点:1)电路简单

2)适合高速设备的数据传输

缺点:高速设备和低速设备间只能用低速设备的速度来传输数据

2.半同步方式

wait/ready信号是单向的,不是互锁的。


6

4.分离方式

  • 总线读周期分成两个子周期

  • 寻址子周期

  • 数据传送子周期

  • 在两子周期之间,退出总线,从设备准备数据。

REQ

clk

address

data

ACK

3.异步方式

  • 比同步方式慢

  • 总线频带窄

  • 总线传输周期长


6 2 pci
6.2 PCI总线

6.2.1 PCI总线的特点

6)具有即插即用功能

7) PCI2.2后支持热插拔

8) 合理的管脚安排

9) 预留扩展空间

  • 独立于处理器

  • 2) 多总线共存

  • 3) 支持突发传输

  • 4) 支持总线主控方式

  • 5) 采用同步操作


6 2 2 pci
6.2.2 PCI信号定义

  • 系统接口信号

  • CLK IN:PCI系统总线时钟 最高33MHz/66MHz,最低0Hz。PCI大部分信号在CLK的上升沿有效。


6

2.地址与数据接口信号

AD[31:00] T/S:它们是地址、数据多路复用的输入/输出信号

  • 在FRAME#有效的第1个时钟,AD[31:00]上传送的是32位地址,称为地址期 。

  • 在IRDY#和TRDY#同时有效时,AD[31:00]上传送的为32位数据,称为数据期。

 C/BE[3:0]# T/S:它们是总线命令和字节使能多路复用信号线

  • 地址期内是总线命令,数据期内是字节使能信号。

 PAR T/S:针对AD[31:00]和C/BE[3:0]#进行奇偶校验的校验位


6

  • 3.接口控制信号

  • FRAME# S/T/S:帧周期信号

  • IRDY# S/T/S:主设备准备好信号

  • TRDY# S/T/S:从设备准备好信号

  • STOP# S/T/S:从设备发出的要求主设备终止当前的数据传送的信号。

  • LOCK# S/T/S:锁定信号

  • IDSEL IN:初始化设备选择信号,访问配置空间的时候作为片选

  • DEVSEL# S/T/S:设备选择信号,由常规访问期间被选中的从设备驱动

  • FRAME#信号无效表示传输进入最后一个数据期。


6

4.仲裁接口信号

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

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

5.错误报告接口信号

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

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

6.中断接口信号

PCI有4条中断线,分别是INTA#、INTB#、INTC#、INTD# ,电平触发,多功能设备可以任意选择一个或多个中断线,单功能设备只能用INTA#。


6

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


6 2 3 pci pci

5V 32位插槽

5V 64位插槽

连接卡口

3.3V 32位插槽

3.3V 64位插槽

a. 4种PCI卡插槽

A1

A62

A52

A49

B52

B49

B62

B1

1.27

3.82

77.48

b. 5V32位PCI插槽

6.2.3 PCI插槽和PCI扩展卡

1. PCI插槽


6

IC

IC

里边

外边

IC

1.91

60.96

41.6

12.7

80

2.PCI插卡


6 2 4 pci

C/BE[3:0]#

命令类型说明

C/BE[3:0]#

命令类型说明

0000

中断响应

1000

保留

0001

特殊周期

1001

保留

0010

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

1010

配置读

0011

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

1011

配置写

0100

保留

1100

存储器多行读

0101

保留

1101

双地址周期

0110

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

1110

存储器行读

0111

存储器写(向内存空间映像中写)

1111

存储器写并无效

6.2.4 PCI总线命令

PCI总线命令表


6 2 5 pci
6.2.5 PCI总线协议

1.PCI总线的传输控制遵循的管理规则:

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

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

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

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

(4) 一旦主设备设置了IRDY#信号,直到当前数据期结束为止,主设备一般不能改变IRDY#信号和FRAME#信号的状态。


6

AD1

AD0

C/BE2#

0

0

×

×

×

0

0

1

×

×

0

1

1

0

×

0

1

1

表3.4 AD[1:0]和C/BE[3:0]#对应关系表

1

1

0

1

1

1

C/BE1#

C/BE0#

C/BE3#

2.PCI总线的寻址(采用分散地址译码技术)

(1) I/O地址空间

  • 在I/O地址空间,32位AD线全部被用来提供一个完整的地址编码(字节地址)。

  • AD[1:0]和C/BE[3:0]指明传输的最低有效字节。


6

(2) 内存地址空间

31

2

1

0

双字边界对齐的起始地址

00 地址递增

01 Cache行切换

1X 保留

(3) 配置地址空间

7

2

1

0

双字边界对齐的起始地址

00 选择该设备

01 访问该桥路后设备

1X 保留


6

3.字节使能

PCI总线上不能进行字节的交换。但是,具有64位通道的主设备可以进行DWORD(双字)的交换。

主设备可以在每个新数据期开始的时钟前沿改变字节使能信号,且在整个数据期中保持不变。

读缓冲中的数据可以不考虑字节使能信号,而传送所有的字节。

4.PCI总线的驱动与过渡

从一个设备驱动总线到另一个设备驱动PCI总线之间设置一个过渡期,又称为交换周期,以防止总线访问冲突。

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


6

CLK

8

1

7

6

2

3

4

5

FRAME#

IRDY#

TRDY#

……

DEVSEL#

MED

SLOW

FAST

设备选择的时序关系

5.设备选择

注意DEVSEL#与FRAME#、TRDY#的关系,无DEVSEL#信号时的处理。

DEVSEL#由从设备共享使用,并由被选中的从设备驱动。


6 2 6 pci

CLK

9

8

1

7

6

2

3

4

5

FRAME#

DATA3

DATA1

AD

ADDRESS

DATA2

C/BE#

BUSCMD

BE#s

IRDY#

TRDY#

DEVSEL#

数据期

数据期

地址期

数据期

PCI读操作时序

6.2.6 PCI总线数据传输过程

1.总线上的读操作


6

CLK

9

8

1

7

6

2

3

4

5

FRAME#

ADDRESS

AD

DATA1

DATA2

DATA3

C/BE#

BEs3

BEs2

BUSCMD

BEs1

IRDY#

TRDY#

DEVSEL#

地址期

数据期

数据期

数据期

PCI写操作时序

2.总线上的写操作


6

3.传输的终止过程

(1) 由主设备提出的终止

  • 传输结束

  • 超时(GNT#信号在内部延时计数器满后仍无效)

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

(2) 由从设备提出的终止

  • 死锁后重试

  • 断开(8个时钟周期内从设备不能对主设备做出响应)。

发出STOP#信号并保持其有效,直到FRAME#撤消为止。


6

PCI总线上的所有传输操作中,FRAME#、IRDY#、TRDY#和STOP#遵循的规则:

  • 当STOP#信号有效时,FRAME#应该在其后的2~3个时钟周期内尽快撤消,但撤消时应使IRDY#有效,从设备应无条件的保持STOP#的有效状态直到FRAME#撤消为止。FRAME#撤消后,STOP#也应该紧跟着撤消。

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

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


6 2 7
6.2.7 总线仲裁

PCI总线采用集中式的同步仲裁方法

中央

仲裁器

REQ#

REQ#

PCI主设备B

PCI主设备A

GNT#

GNT#


6

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总线仲裁


6 2 8 pci
6.2.8 PCI总线配置

1、PCI设备的配置空间

在系统启动的时候由BIOS代码执行设备配置。一旦即插即用OS(如Windows2000/XP)启动后,控制就传递给OS,OS接管设备管理。

定义一个PCI总线配置空间的目的在于提供一套适当的配置措施,使之实现完全的设备再定位而无需用户干预安装、配置和引导,并由与设备无关的软件进行系统地址映射。

所有PCI设备都必须实现PCI协议规定必需的配置寄存器,以便系统加电的时候利用这些寄存器的信息来进行系统配置。对PCI的配置访问实际上就是访问设备的配置寄存器。


6

2、配置空间头区域及功能


6

(1)设备识别

头区域有7个寄存器(字段)用于设备的识别。

(2)设备控制

表现在命令寄存器为发出和响应PCI总线命令提供了对设备粗略的控制。

(3)设备状态

状态寄存器用于记录PCI总线有关操作的状态信息。注意:该寄存器的有些位是只可清不可置,对这些位的写,被解释为对该位清零。例如,为了清位14而不影响其他位,应向该寄存器写0100 0000 0000 0000B


6

(4)基址寄存器

PCI设备的配置空间可以在微处理器决定的地址空间中浮动,以便简化设备的配置过程。系统初始化代码在引导操作系统之前,必须建立一个统一的地址映射关系,以确定系统中有多少存储器和I/O控制器,它们需要占用多少地址空间。当确定这些信息之后,系统初始化代码便可以把I/O控制器映射到合理的地址空间并引导系统。

为了使这种映射能够做到与相应的设备无关,在配置空间的头区域中安排了一组供映射时使用的基址寄存器。


6

31 2 1 0

0

1

基 地 址

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

保留

I/O空间指针

31(63) 3 2 1 0

0

基 地 址

预取使能

存储空间指针

00 32位地址空间任意映射

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

10 64位地址空间任意映射

11保留

返回


6

具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为0,并只可读。基地址设置过程:

系统初始化程序向基地址寄存器写全1

系统初始化程序读出基地址寄存器的内容

系统初始化程序判断设备需要的地址空间大小

系统初始化程序分配基地址并写回到该基地址寄存器

如设备需要使用1MB的存储空间,硬件实现基地址寄存器的时候应该使位0,位4~位19由硬件使其保持为0


6

举例具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为1:

系统初始化向基址寄存器写全1后读出的值=FFF00000h

  • 位0=0,表示是一个存储器地址空间映射

  • 位[2:1]=00b,它是32位存储器映射

  • 位3=0,表示它不是预取存储器。

  • 位[31:4] 第一个为1的是位20,表示映射的存储空间为220=1MB。这意味着存储映射的基地址应该起始于1MB、2MB、3MB等的边界上。

系统经过权衡后再向该基址寄存器写入实际映射的空间基址,该基址应该是1MB边界的,如:FFF00000H, FFE00000H, FE000000H等。

问:FFF10000H地址能不能做该设备存储基址?


6

举例具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为2:

基址寄存器的值=FFFFFF01h

  • 位0=1,表示是一个I/O地址空间映射

  • 位[31:2]第一个为1的是位8,表示映射的I/O空间为28=256。这意味着I/O映射的基地址应该是256的整数倍。


6

最大具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为/最小映射地址空间是多少?

最大/最小存储映射地址空间

最小存储映射地址空间=16字节(24)

最大存储映射地址空间=2GB(231)

最大/最小I/O映射地址空间

最小I/O映射地址空间=4字节(22)

最大存储映射地址空间=256字节(协议规定)

转前


6

扩展具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为ROM基地址寄存器

31 11 10 1 0

基 地 址

保 留

扩展ROM访问允许

扩展ROM基地址=FFFF0001h

  • 位0=1,表示扩展ROM访问允许

  • 位[31:11]第一个为1的是位16,表示映射的存储空间为64K。这意味着ROM映射的基地址应该起始于64KB的边界


6

(5)具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为头区域中其它寄存器

中断引脚寄存器

8位只读寄存器,指明设备使用了PCI的哪个中断引脚。1代表INTA#,2为INTB#……

中断请求线寄存器

8位可读/写寄存器,指明设备的中断引脚和PC机的 8259A的哪个中断输入线连。

Min_Gnt/Max_lat寄存器

Min_Gnt用来指定设备需要多长的突发传输时间。

Max_lat用来表示对PCI总线进行访问的频繁程度。


6

2具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为.配置空间的访问

(1) 配置空间访问时目标设备的选择

对于某一PCI设备,

1)只有当输入它的IDSEL信号有效,

2)并且在地址期内AD[1:0]为00时,

才能被作为配置访问的目标设备。


6

(2) 具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为配置空间访问的类型

  • · 0类配置空间访问

  • 对(正在运行的)当前PCI总线上的目标设备配置寄存器所进行的访问。

  • 被配置访问的目标设备必须在地址期采样到其IDSEL输入信号有效,且AD[1∶0]必须为00。

  • 地址期, AD[1∶0]必须为00; AD[10∶8]用于选择物理设备的八种功能之一 ;AD [7∶2]为选择该功能设备的配置寄存器号(双字号)。AD[31:11]可用于连接各设备的IDSEL信号

  • 数据期, AD[31∶0]传送的是配置读/写数据。


6

  • · 具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为1类配置空间访问

  • 对(通过PCI/PCI桥连接的)下一级PCI总线上的目标设备(配置寄存器)所进行的访问。

  • 地址期 ,AD[1∶0]必须为01;AD[10∶8]作为选择物理设备的八种功能之一 。AD[7∶2]为选择该功能设备的配置寄存器号; AD[15∶11]用于存放第二级总线上被选中设备的IDSEL号,AD[23∶16] 放总线号。

  • 桥片中也有桥配置空间寄存器,存放有总线号和次级总线号等信息。

  • 一旦PCI/PCI桥检测到1类配置访问,就有三种情况,须分别进行处理。


6

CPU具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为总线

桥A

PCI总线0

设备

桥B

PCI总线1

设备

  • 如果要访问的总线号既不同于桥的第二级总线号,也不在桥的第二级总线号的下级总线范围内,那么桥将忽略本次访问。

  • 如果总线号不同于桥的第二级总线,但在桥的第二级总线号的下级总线范围内,那么桥将本次访问作为1类配置访问传递给第二级总线。配置命令从第一级传递到第二级C/BE#总线。

  • 如果总线号与桥的第二级总线号相同,那么桥将本次访问作为0类配置访问传递给第二级总线。AD[10:2]直接从桥的第一级传递到第二级AD总线。AD[15:11 ]的设备号用于决定第二级总线上哪个设备的IDSEL信号被设置有效。配置命令从第一级传递到第二级C/BE#总线。


6

(3) 具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为配置访问的访问方法

针对x86兼容的系统,PCI协议定义了将处理器发出的I/O访问识别为配置访问,或将处理器发出的存储器访问转换为配置访问的转换机构,称为配置机构。

  • 配置机构是利用两个32位的I/O端口寄存器来访问PCI设备的配置空间的。

  • 配置地址端口寄存器(I/O地址为0CF8H~0CFBH)

  • 配置数据端口寄存器(I/O地址为0CFCH~0CFFH)

第一步,将要访问的总线号、设备号、功能号和寄存器号写到配置地址端口寄存器。(32位写)

第二步,执行一次对配置数据端口寄存器的读/写。


6 3 usb
6.3 具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为通用串行总线USB

6.3.1 USB系统组成

1. USB的硬件

  • USB主控制器/根集线器主控制器负责将并行数据转换成串行,并将数据传给根集线器。根集线器控制USB端口的电源,激活和禁止端口,识别与端口相连的设备,设置和报告与每个端口相连的状态事件。USB集线器(USB Hub)

    完成USB设备的添加(扩展)、删除和电源管理等。USB设备

    HUB设备和功能设备(外设),外设含一定数量独立的寄存器端口(端点)。外设有一个惟一的地址。通过这个地址和端点号,主机软件可以和每个端点通信。数据的传送是在主机软件和USB设备的端点之间进行的。


6

2. USB具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为的软件

  • USB设备驱动程序在USB外设中,通过I/O请求包将请求发送给USB设备中的USB(从)控制器。

  • USB驱动程序 在主机中,当设置USB设备时读取描述器以获取USB设备的特征,并根据这些特征,在发生请求时组织数据传输。 USB驱动程序可以是捆绑在操作系统中,也可以是以可装载的驱动程序形式加入到操作系统中。

  • USB主控制器驱动程序完成对USB事务交换的调度,并通过根Hub或其他的Hub完成对交换的初始化。


3 usb

宿主机具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为

PCI总线

USB主控制器/根Hub

高速

高速

高速

电话

显示器

集线器

高速

高速

高速

高速

扬声器

扬声器

键盘

麦克风

低速

低速

麦克风

麦克风

USB的层次拓扑图

3. USB的拓扑结构

超速=4.8Gb/s(3.0)

高速=480Mb/s(2.0)

全速=12Mb/s(1.1)

低速=1.5Mb/s(1.0)


6 2 2 usb
6.2.2 USB具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为系统的接口信号和电气特性

1.接口信号线

+3.0~

3.6vdc

+5vdc

高/全速USB收发器(全速或高速设备)

1.5KΩ

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

D+

D+

USB数据线

D-

D-

15KΩ

15KΩ

+3.0~

3.6vdc

+5vdc

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

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

1.5KΩ

D+

D+

USB数据线

D-

D-

15KΩ

15KΩ

USB集成器和设备的电阻连接


6

USB具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为常用信号电平(全速设备,低速设备电平相反)


6

高速具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为USB总线状态与其信号电平


6

设备接入到端口上的过程具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为

闲置状态

连接状态

闲置状态

断开状态

闲置状态

传送状态

D+或D-的电压上升到2.5(2.7)V

维持2.5s以上

传送状态

数据K状态

设备从端口上断开过程

D+和D-的电压全部下降到0.8V并维持2.5s

数据包传送开始过程

断开状态

连接状态

差分数据线按传送数据变换

信号线跳变到其反向逻辑电平

数据包传送结束过程

保持信号线2个位传输时间的SE0状态,之后保持1个位传输时间的J状态。


6

具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为/全速设备被接入的判断

  • D+线电压上升,则首先判断为全速设备。

  • 主机在识别到一个新设备后要求集线器复位(Reset)连接端口,此时数据线进入E0状态至少10ms。

  • 复位期间,高速设备会发出一个Chirp K,集线器检测到该chirtp后,会回应一串ChirpK与J。

  • 得到这个Chirp KJKJKJ序列后,设备断开D+线上的上拉电阻,使能高速终端,进入高速缺省状态。

  • 如果在复位期间集线器一直没有检测到Chirp K,则说明接入的是全速设备。

  • 如果高速设备发出Chirp K后一直得不到集线器回应的Chirp KJKJKJ序列,则说明集线器不支持高速设备,则设备依然回到全速状态。


6

2.具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为电气特性

对地电源电压为4.75~5.25V,设备吸入的最大电流值为500mA 。第一次被主机检测到时,设备吸入的电流<100mA

  • 自给供电

  • 总线供给

USB电暖鞋

USB电暖鼠标垫

USB电暖手套


6

0 0 0 1 1 1 1 1 1 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 0 1 1 0 1 1

NRZI码

位填充和NRZI编码

3.NRZI编码

NRZI的编码方法不需独立的时钟信号和数据一起发送,电平跳变代表“0”,没有电平跳变代表“1”。在数据被编码前,在数据流中每6个连续的“1”后插入1个“0”,从而强迫NRZI码发生变化,也顺便让收发双放对准一次时钟,接收端必须去掉这个插入的“0”。

演示


6 3 3 usb
6.3.3 USB具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为数据流类型和传输类型

◆USB数据流类型有四种:控制信号流、块数据流、中断数据流、实时数据流。

◆USB有4种基本的传输类型

1.控制传输: 双向,用于配置设备或特殊用途,发生错误需重传。 当USB主机检测时,设备必须要用端点0完成和主机交换信息的控制传送。

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

3.中断传输 :单向入主机,用于随机少量传送。采用查询中断方式,出错下一查询周期重新传。

4.等时传输:单/双向,用于连续实时的数据传输,时间性强,但出错无需重传。传输速率固定。


6

6.3.4 USB具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为交换的包格式

帧结束间隔区

握手包

数据包

标志包

一次交换(事务处理)

等时传输无握手包

每次交换均由主机发起,对中断传输,亦由主机发送查询包取得中断信息。

交换完毕,进入帧结束间隔区发送方把D+和D-上的电压降低到0.8V以下,并保持2个位的传输时间,然后维持1个位传输时间的J状态表示包结束,之后进入闲置状态。


6

PID具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为类型

PID名称

PID[3:0]

描述

标志包

OUT

0001b

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

IN

1001b

功能设备到宿主的接收包,具有和发送包一样的域

SOF

0101b

帧开始包

SETUP

1101b

主机发给设备的设置包,用于控制传输的设置。

数据包

DATA0

0011b

数据包0

DATA1

1011b

数据包1

DATA2

0111b

为帧中高速、高带宽的等时交换的数据包

MDATA

1111b

为分离的高速和高带宽等时交换中的数据包

表3.6 包的类型(阴影部分是USB2.0规范)


6

握手包具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为

ACK

0010b

接收设备发的接受数据正确的应答包

NAK

1010b

接收设备无法接受数据或没有数据返回个宿主

STALL

1110b

设备已经被挂起,需要主机插手解决故障

NYET

0110b

接收器无应答

特殊包

PRE

1100b

(Token)预告包,预告下面将以低速方式和低速设备通信

ERR

1100b

(Handshake)分离交换错误的握手信号

SPLIT

1000b

高速分离交换标志

PING

0100b

为批或控制端点传输而设置的高速流控制探测

Reserved

0000b

保留


6

LSb具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为

MSb

PID1

PID3

PID3#

PID1#

PID2#

PID0

PID2

PID0#

包的一般格式

8位

5位或16位

n位

8位(32位)

包特定信息

PID

SYNC

CRC

所有数据发发送都时从低位开始向高位发送

数据为10000000B(1.1版本)

SYNC:同步序列

数据为10000000000000000000000000000000B(2.0版本)

PID:包标识别,发送从低位到高位

高4位放PID的反码

低4位放PID


6

8具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为位

11位

5位

8/32位

FRAME NUMBER

PID

SYNC

CRC

帧开始包格式

1. 包的种类及格式

(1) 帧开始包(SOF)(一帧持续时间为1ms)

MSb

LSb

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

数据

编码

演示


6

8具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为位

7位

4位

8/32位

5位

ADDR

SYCN

PID

ENDP

CRC

接受和发送包的格式

(2) 接受包(IN)

接受交换包括了全部4种传输类型

接受交换:

根Hub广播接受包目标设备返回数据包根Hub发握手包。(等时传输无握手包)

(3)发送包(OUT)

发送交换包括了除中断传输外的其他3种传输类型

发送交换:

根Hub广播发送包根Hub发数据包目标设备发握手包(批传输才有握手包)


6

8具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为位

0~8184位(1023B)

16位

8位

DATA

PID

SYNC

CRC

USB 1.1数据包格式

8位

0~8192位(1024B)

16位

32位

DATA

PID

SYNC

CRC

USB 2.0数据包格式

(4)设置包(SETUP)

控制传输开始由主机发设置包,后面可能由一个或多个IN或OUT交换,或只包含一个从端点传到主机的状态

2.数据包


6

8/32具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为位

8位

SYCN

PID

握手包的格式

3.握手包

数据接受方发向数据发送方

4 .特殊包

  • 只有SYNC和PID组成

  • 主机希望与低速设备进行低速传输的时候发此包

  • PID域应该高速(全速)发送。

  • PID之后,在低速数据包传输之前要延迟4个高速字节时间

  • 低速设备只支持控制传输与中断传输

  • 与低速设备交换数据只有8字节


6 3 5 usb

1.2 具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为通知有设备接入

2 检测Hub,确认有接入

3 使能该端口,发RESET命令

5.1 利用默认端点0读设备描述器

6.1 给设备分发地址

7.1 按地址读设备配置信息

8.1 按地址设设备配置信息

1.1 设备接入[连接状态]

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

5.2 读设备描述器[地址默认状态]

6.2 分发地址[地址状态]

7.2 读配置信息

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

6.3.5 USB设备状态和总线枚举

主 机

HUB


6 3 6 usb2 0 otg
6.3.6 USB2.0具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为的补充——OTG技术

USB On-The-Go(OTG)是对USB 2.0规范的有益的扩充。这类设备既可以作为USB设备与PC机相连,又可以作为USB主机连接其它USB设备。因此,这类设备可以抛弃PC,直接进行设备与设备之间的点对点(pear to pear)通信。

  • USB On-The-Go 在USB 规范基础上增加了以下几点

  • 双重功能。设备既可用作主机也可用作外设

  • 主机交流协议HNP 用于转换USB 主机和外设功能

  • 对话请求协议

  • 除小和大功率之外增加了微功率选择

  • 超小连接器


6

mini-B 具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为插头

mini-A 插头

VBUS

D+

D-

VCC

VCC

GND

ID

‘0’: Master

A设备

‘1’: Slave

B设备

USB On-The-Go 设备定义了一个新的称之为mini-AB 的袖珍插孔,它能接入mini-A 和mini-B 插头。连接器的不同定义设备的初始功能。


6

两个具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为OTG RTR(主/从双角色)设备相连,可以用主机交流协议(HNP)随时切换主机角色。步骤如下:

  • A设备发出SET_FEATURE命令后,B设备可请求总线控制权。

  • A设备挂起总线,通知B设备可占用总线。

  • B设备发送信号,断开A设备连接。

  • A设备启动D+线本方的上拉电阻,将D+置高。此时A设备成为外设,B设备成为主机。

  • B设备完成对总线控制后,启动D+线本方的上拉电阻,放弃对总线的控制。

  • 在以上电平变换的同时,通过软件实现真正的对总线的控制权变化。


6 3 7 usb
6.3.7 具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为开发具有USB功能的设备的先期准备

1.分清开发的设备类型

  • 嵌入式USB主机

  • USB Hub

  • 基于HID(人机接口设备)的USB设备

  • USB OTG设备

2.选择合适的控制芯片

  • 内嵌USB模块和嵌入式CPU核的SOC芯片

  • 内嵌单片机内核的USB控制芯片

  • 可与其它嵌入式CPU相连的单独USB控制芯片


6

3.具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为一般的开发步骤

  • 根据选择的器件和要实现的功能,设计相关电路。

  • 编制软件(根据不同应用,设计其中部分或全部软件)。- 设备驱动程序(对USB设备,或OTG设备)- USB主机设备的控制程序(对主机或OTG设备,如完成枚举功能等)- 主机和设备的角色切换驱动(对OTG设备)- 编写相关的PC端软件

4.目前常见的控制芯片

  • OTG芯片:ISP1362,OTG243

  • 主机/设备芯片: SL811HS,ISP1161

  • 设备芯片:PDIUSBD12,ISP1581

  • HUB芯片:GL652USB


6

6.3.8 USB 3.0具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为

USB 3.0定义了与USB 2.0兼容的新的接口信号线,它在原有的四根线基础上,又额外增加了2对线,SSRX+/SSRX-和SSTX+/SSTX-,其中SSRX+/SSRX-是一对差分接受线,SSTX+/SSTX-是与对差分发送线,通过这两对线,USB 3.0实现了全双工数据传输(同时进行输入和输出)


6

超速(具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为USB3.0)与USB2.0比较

  • USB 2.0不支持突发传输,而超速支持连续的突发传输。

  • USB 2.0是半双工广播总线而超速是双向的,允许同时进行IN和OUT事务。

  • USB 2.0使用轮询模式而超速使用异步传输。

  • USB 2.0没有流操作的能力而超速为批传输终端支持流操作。

  • USB 2.0 不提供具有等时传输能力的设备在传输间歇期进入到低功耗USB总线状态的机制,而超速则有该机制。

  • USB 2.0总是固定在1ms/125μs 的间隔来传送SOF/μSOF,而USB3.0可以让设备发送“总线间隔调整消息”让主设备在+/-13.333μs范围内调整125μs总线间隔。

  • USB 2.0的电源管理包括链接电源管理总是直接由主设备初始化超速支持链接两端都能初始化的链接级电源管理。因此每个链接都能独立地进入低功耗状态。

  • USB 2.0对每个事务处理事务错误检测和恢复以及流控制只能在端到端级。超速在端到端和链接级之间划分这些功能。


6 4 pci express
6.4 PCI-Express具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为总线

6.4.1 PCI-Express总线的主要性能特点

PCI Express为互连设备提供高速、高性能、点对点、双/单工、差动信令链路。数据从一组信号线上发送,而在另一组信号线上接收。采用设备间的点对点串行连接。

将两台设备连接在一起的一个PCI Express互连称为一条链路。一条×1的链路有一条通道,即每个方向上有一对差动信号,共4个信号。


6

1具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为、串行的点对点互连

2、使用差动信号

3、使用交换器来互连多台设备

4、采用基于数据包的协议

5、具有更高的数据传输速率(2.5Gbit/s的单向单线连接传输速率)

6、拥有存储器地址空间、IO地址空间和配置地址空间

7、采用层次结构

8、热插拔支持

9、与PCI兼容的软件模型


6 4 2 pci express
6.4.2 PCI-Express具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为总线结构


6

具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为1)根联合体

集成了多种控制器,替CPU产生事务请求,它还可以代表CPU发起配置事务请求、生成存储器和I/O请求和锁定事务请求。

根联合体发送数据包离开其端口,或从其端口接收数据并转发至存储器。

根联合体初始化用来形成请求者或完成者的设备ID,通常由总线号、设备号和功能号组成。根联合体的总线、设备及功能号都被初始化全为0。


6

具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为2)交换器

交换器利用基于存储器、I/O或配置地址的路由方法转发数据包。

交换器根据下面3种路由机制之一转发这些数据包:地址路由、ID路由或隐式路由。

交换器能实现两种仲裁机制:端口仲裁和VC仲裁,并且依据仲裁机制确定将入端口数据包转发至出端口的优先级。交换器支持锁定请求。


6

具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为3)端点

端点可以作为请求者发起事务,或者作为完成者对事务做出响应。

端点有PCI Express端点和传统端点两种。传统端点支持I/O事务,而且可以作为完成者支持锁定事务语义,还可以利用消息请求产生传统中断信号,但另外还必须支持产生利用存储器写事务的MSI。

PCI Express端点必须在可预取存储地址空间内支持64位存储器寻址能力。

两种类型的端点都实现了0类 PCI配置头,并且作为完成者对配置事务做出响应。


6 4 3 pci express
6.4.3 PCI Express具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为事务简介

事务:为请求者和完成者之间完成一次信息传送需要完成的一系列一个或多个数据包传送的过程。

PCI Express事务可以分成4大类:存储器事务、I/O事务、配置事务和消息事务。


6 4 4 pci express
6.4.4 PCI-Express具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为的层次结构

PCI Express 设备A

PCI Express 设备B

设备核心

设备核心

PCI Express

核心逻辑接口

PCI Express

核心逻辑接口

发送 接收

发送 接收

事务层

事务层

数据链路层

数据链路层

物理层

物理层


6

具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址空间范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为1)设备核心/软件层

设备核心是由根联合体核心逻辑或诸如以太网控制器、SCSI控制器、USB控制器等端点核心逻辑组成。

设备核心逻辑与本地软件一起提供PCI Express设备生成TLP所需的必要信息。

(2)事务层

事务层主要负责生成出站TLP流量和接收入站TLP流量。

(3)数据链路层

数据链路层的主要功能是保证在各链路上发送和接收数据包时数据的完整性。

(4)物理层

TLP和DLLP类型的数据包从数据链路层发送至物理层,并通过物理链路传送。物理层也从链路上接收数据包并将其发送至数据链路层。


ad