接口第6章

Download Report

Transcript 接口第6章

现代微机原理与接口技术(第3版)
第6章 微机总线标准
1
http://www.njyangqs.com/
6.1 总线概述
现代微机原理与接口技术(第3版)
6.1.1 总线标准的概念与特性
◆ 总线:是在模块和模块之间或设备与设备之
间的一组进行互连和传输信息的信号线,信
息包括指令、数据和地址。
◆ 总线标准
指芯片之间、扩展卡之间以及系统之间,
通过总线进行连接和传输信息时,应该遵守
的一些协议与规范。
2
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
总线标准的特性
1.物理特性: 总线物理连接方式(电缆式、蚀刻式),
总线根数、插头和插座形状,引脚排列等
。
2.功能特性: 描述一组总线中每一根线的功能。
3.电器特性: 定义每根线上信号的传递方向以及有效电
平范围。一般定义送入CPU的信号为输入
信号,从CPU中送出的信号是输出信号。
低电平有效的信号用信号名后带#来表示
。如CS#、REQ#
4.时间特性: 定义每一根线在什么时候有效,这和总
线操作的时序有关。
3
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.1.2 总线的分类
1) 按总线功能或信号类型划分为:
 数据总线:双向三态逻辑,线宽表示了总线
数据传输的能力。
 地址总线:单向三态逻辑,线宽决定了系统
的寻址能力。
 控制总线:就某根来说是单向或双向。控制
总线最能体现总线特点,决定总线功能的强
弱和适应性。
4
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2) 按总线的分级结构分为:
 CPU总线:微机系统中速度最快的总线,主要在
CPU内部,连接CPU内部部件,在CPU周围的小范
围内也分布该总线,提供系统原始的控制和命令。
 局部总线:在系统总线和CPU总线之间的一级总线
,提供CPU和主板器件之间以及CPU到高速外设之
间的快速信息通道。
 系统总线:也称为I/O总线,是传统的通过总线扩展
卡连接外部设备的总线。由于速度慢,其功能已经
被局部总线替代。
 通信总线:也称为外部总线,是微机与微机,微机
与外设之间进行通信的总线。
5
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.1.3 总线的主要性能参数
1.总线频率:MHz表示的工作频率,是总线速
率的一个重要参数。
2.总线宽度:指数据总线的位数。
3.总线的数据传输率
总线的数据传输率=(总线宽度/8位)×总线频率
例:PCI总线的总线频率为33.3MHz,总线宽度为
64位的情况下,总线数据传输率为266MB/s 。
6
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.1.4 总线操作和总线传送控制
一、总线操作的4个阶段
1.总线请求和仲裁阶段:
主模块向总线仲裁机构提出总线使用申请,总线仲裁
机构决定使用总线的主模块。
2.寻址阶段:
拥有总线使用权的主模块发出本次要访问的从模块的
地址及有关命令,该从模块被选中并启动。
3.数据传送阶段:
主模块和从模块间进行双(单)向数据传送。
4.结束阶段:
主、从模块均撤出总线。
7
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
二、总线传送控制
clk
1.同步方式
从
主
优点:1)电路简单
2)适合高速设备的数据传输
缺点:高速设备和低速设备间只能用低速设备的
速度来传输数据
2.半同步方式
wait/ready信号
是单向的,不是
互锁的。
8
clk
从
主
wait/ready
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
3.异步方式
• 比同步方式慢
• 总线频带窄
• 总线传输周期长
REQ
从
主
ACK
4.分离方式
总线读周期分成两个子周期
clk
• 寻址子周期
address
data
• 数据传送子周期
在两子周期之间,退出总线,从设备准备数据。
9
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.2 PCI总线
6.2.1 PCI总线的特点
1) 独立于处理器
6)具有即插即用功能
2) 多总线共存
7) PCI2.2后支持热插拔
3) 支持突发传输
8) 合理的管脚安排
4) 支持总线主控方式 9) 预留扩展空间
5) 采用同步操作
10
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.2.2 PCI信号定义
1. 系统接口信号
 CLK IN:PCI系统总线时钟
最高33MHz/66MHz,最低0Hz。
PCI大部分信号在CLK的上升沿有效。
11
http://www.njyangqs.com/
2.地址与数据接口信号
现代微机原理与接口技术(第3版)
 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]#进行奇偶校
验的校验位
12
http://www.njyangqs.com/
3.接口控制信号
现代微机原理与接口技术(第3版)
 FRAME# S/T/S:帧周期信号
 FRAME#信号无效表示传输进入最后一个数据期。
 IRDY# S/T/S:主设备准备好信号
 TRDY# S/T/S:从设备准备好信号
 STOP# S/T/S:从设备发出的要求主设备终止当前的
数据传送的信号。
 LOCK# S/T/S:锁定信号
 IDSEL IN:初始化设备选择信号,访问配置空间的
时候作为片选
 DEVSEL# S/T/S:设备选择信号,由常规访问期间被
选中的从设备驱动
13
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
4.仲裁接口信号

REQ# T/S:总线占用请求信号

GNT# T/S:总线占用允许信号
5.错误报告接口信号

PERR# S/T/S:数据奇偶校验错误报告信号

SERR# O/D:系统错误报告信号
6.中断接口信号

14
PCI有4条中断线,分别是INTA#、INTB#、INTC#
、INTD# ,电平触发,多功能设备可以任意选择一
个或多个中断线,单功能设备只能用INTA#。
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
7. 64位总线扩展信号
 AD[63:32]

C/BE[7:4]# T/S:总线命令和字节使能多路复用扩展
信号线

REQ64# S/T/S,64位传输请求信号
 ACK64#

15
T/S:扩展的32位地址和数据多路复用线
S/T/S:64位传输允许信号
PAR64 T/S:奇偶双字节校验
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.2.3 PCI插槽和PCI扩展卡
1. PCI插槽
5V 32位插槽
5V 64位插槽
连接
卡口
3.3V 32位插槽
3.3V 64位插槽
a. 4种PCI卡插槽
A1
A49 A52
A62
外
内
B1
77.48
16
B52 B62
B49
1.27
b. 5V32位PCI插槽
3.82
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2.PCI插卡
IC
外
边
IC
IC
里
边
1.91
41.6
60.96
12.7
80
17
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.2.4 PCI总线命令
PCI总线命令表
C/BE[3:0]#
0000
0001
0010
0011
0100
0101
0110
0111
18
命令类型说明
中断响应
特殊周期
I/O读(从I/O端口地址中读数据)
I/O写(向I/O端口地址中写数据)
保留
保留
存储器读(从内存空间映像中读数)
存储器写(向内存空间映像中写)
C/BE[3:0]#
1000
1001
1010
1011
1100
1101
1110
1111
命令类型说明
保留
保留
配置读
配置写
存储器多行读
双地址周期
存储器行读
存储器写并无效
http://www.njyangqs.com/
6.2.5 PCI总线协议
现代微机原理与接口技术(第3版)
1.PCI总线的传输控制遵循的管理规则:
(1) FRAME#和IRDY#定义了总线的忙/闲状态。
11空闲、00数据、10最后一个数据、01等待状态。
(2) 一旦FRAME#信号被置为无效,在同一传输期间
不能重新设置。
(3) 除非设置IRDY#信号,一般情况下不能设置
FRAME# 信号无效。
(4) 一旦主设备设置了IRDY#信号,直到当前数据期结
束为止,主设备一般不能改变IRDY#信号和
FRAME#信号的状态。
19
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2.PCI总线的寻址(采用分散地址译码技术)
(1) I/O地址空间
 在I/O地址空间,32位AD线全部被用来提供一个
完整的地址编码(字节地址)。
 AD[1:0]和C/BE[3:0]指明传输的最低有效字节。
表3.4 AD[1:0]和C/BE[3:0]#对应关系表
AD1
AD0
C/BE3# C/BE2# C/BE1# C/BE0#
20
0
0
×
×
×
0
0
1
×
×
0
1
1
0
×
0
1
1
1
1
0
1
1
1
http://www.njyangqs.com/
(2) 内存地址空间
现代微机原理与接口技术(第3版)
31
2 1 0
双字边界对齐的起始地址
00
01
1X
(3) 配置地址空间
7
地址递增
Cache行切换
保留
2 1 0
双字边界对齐的起始地址
00
01
1X
21
选择该设备
访问该桥路后设备
保留
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
3.字节使能
PCI总线上不能进行字节的交换。但是,具有64位
通道的主设备可以进行DWORD(双字)的交换。
主设备可以在每个新数据期开始的时钟前沿改变字
节使能信号,且在整个数据期中保持不变。
读缓冲中的数据可以不考虑字节使能信号,而传送
所有的字节。
4.PCI总线的驱动与过渡
从一个设备驱动总线到另一个设备驱动PCI总线之间
设置一个过渡期,又称为交换周期,以防止总线访问
冲突。
在每个地址(数据)期中,所有的AD线都必须被驱
动到稳定的状态(数据),包括那些字节使能信号表
明无效的字节所对应的AD线。
22
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
5.设备选择
CLK
1
2
3
4
5
7
6
8
FRAME#
IRDY#
TRDY#
DEVSEL#
……
FAST MED SLOW
设备选择的时序关系
注意DEVSEL#与FRAME#、TRDY#的关系,无DEVSEL#信
号时的处理。
DEVSEL#由从设备共享使用,并由被选中的从设备驱动。
23
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.2.6 PCI总线数据传输过程
1.总线上的读操作
CLK
1
2
3
4
5
6
8
7
9
FRAME#
AD
C/BE#
DATA1
ADDRESS
BUSCMD
DATA2
DATA3
BE#s
IRDY#
TRDY#
DEVSEL#
地址期
24
数据期
数据期
PCI读操作时序
数据期
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2.总线上的写操作
CLK
1
2
3
4
7
6
5
8
9
FRAME#
AD
C/BE#
ADDRES DATA1 DATA2
S
BEs3
BUSCMD BEs1 BEs2
DATA3
IRDY#
TRDY#
DEVSEL#
地址期 数据期 数据期
数据期
PCI写操作时序
25
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
3.传输的终止过程
(1) 由主设备提出的终止
• 传输结束
撤消FRAME#,建立IRDY#,直到TRDY#
有效后传输完最后一个数据
• 超时(GNT#信号在内部延时计数器满后仍无效)
(2) 由从设备提出的终止
• 死锁后重试
• 断开(8个时钟周期内从设备不能对主设备做
出响应)。
发出STOP#信号并保持其有效,直到FRAME#
撤消为止。
26
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
PCI总线上的所有传输操作中,FRAME#、IRDY#
、TRDY#和STOP#遵循的规则:
• 当STOP#信号有效时,FRAME#应该在其后的
2~3个时钟周期内尽快撤消,但撤消时应使IRDY#
有效,从设备应无条件的保持STOP#的有效状态
直到FRAME#撤消为止。FRAME#撤消后,
STOP#也应该紧跟着撤消。
• 在任何时钟的上升沿,如果STOP#和TRDY#同时
有效,就表示是传输的最后周期,IRDY#要在下
一个时钟的上升沿之前撤消,表示传输的结束。
• 对于被目标设备终止的传输,主设备要继续完成
它,就必须用下一个未传输的数据的地址来重试
访问。
27
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.2.7 总线仲裁
PCI总线采用集中式的同步仲裁方法
中央
仲裁器
REQ#
REQ#
PCI主
PCI主
设备A GNT# GNT# 设备B
28
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
CL
K
REQ#-A
1
2
REQ#-B
a
GNT#-A
GNT#-B
c
FRAME#
IRDY#
TRDY#
AD
3
4
5
7
6
b
d
e
f
地址 数据
A存取
g
地址
数据
B存取
两个主设备之间的PCI总线仲裁
29
http://www.njyangqs.com/
6.2.8 PCI总线配置
1、PCI设备的配置空间
现代微机原理与接口技术(第3版)
在系统启动的时候由BIOS代码执行设备配置。一
旦即插即用OS(如Windows2000/XP)启动后,控
制就传递给OS,OS接管设备管理。
定义一个PCI总线配置空间的目的在于提供一套适
当的配置措施,使之实现完全的设备再定位而无需
用户干预安装、配置和引导,并由与设备无关的软
件进行系统地址映射。
所有PCI设备都必须实现PCI协议规定必需的配
置寄存器,以便系统加电的时候利用这些寄存器的
信息来进行系统配置。对PCI的配置访问实际上就
是访问设备的配置寄存器。
30
http://www.njyangqs.com/
2、配置空间头区域及功能
31
现代微机原理与接口技术(第3版)
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
(1)设备识别
头区域有7个寄存器(字段)用于设备的识别。
(2)设备控制
表现在命令寄存器为发出和响应PCI总线命令
提供了对设备粗略的控制。
(3)设备状态
状态寄存器用于记录PCI总线有关操作的状态
信息。注意:该寄存器的有些位是只可清不可
置,对这些位的写,被解释为对该位清零。例
如,为了清位14而不影响其他位,应向该寄存
器写0100 0000 0000 0000B
32
http://www.njyangqs.com/
(4)基址寄存器
现代微机原理与接口技术(第3版)
PCI设备的配置空间可以在微处理器决定的地
址空间中浮动,以便简化设备的配置过程。系
统初始化代码在引导操作系统之前,必须建立
一个统一的地址映射关系,以确定系统中有多
少存储器和I/O控制器,它们需要占用多少地址
空间。当确定这些信息之后,系统初始化代码
便可以把I/O控制器映射到合理的地址空间并引
导系统。
为了使这种映射能够做到与相应的设备无关
,在配置空间的头区域中安排了一组供映射时
使用的基址寄存器。
33
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
31
2
基 地 址
规范规定每个I/O基地址
下的端口数不得大于256。
31(63)
基 地 址
1 0
0 1
保留
I/O空间指针
3 2 1 0
0
预取使能
00
01
10
11
34
存储空间指针
32位地址空间任意映射
32位地址空间1M字节以内映射(已经不用)
64位地址空间任意映射
返回
保留
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
具体实现的过程中,除了低四位满足上述要求外,高位
部分实际设置位数视映射多大地址空间范围而定,根据
地址范围,决定高多少位需要设置,这些位被设置成可
写,高位部分的其它位用硬件使其为0,并只可读。基
地址设置过程:
系统初始化程序向基地址寄存器写全1
系统初始化程序读出基地址寄存器的内容
系统初始化程序判断设备需要的地址空间大小
系统初始化程序分配基地址并写回到该基地址寄存器
如设备需要使用1MB的存储空间,硬件实现基地址寄存
器的时候应该使位0,位4~位19由硬件使其保持为0
35
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
举例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地址能不能做该设备存储基址?
36
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
举例2:
基址寄存器的值=FFFFFF01h
• 位0=1,表示是一个I/O地址空间映射
• 位[31:2]
第一个为1的是位8,表示映射的I/O空间为28
=256。
这意味着I/O映射的基地址应该是256的整数
倍。
37
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
最大/最小映射地址空间是多少?
最大/最小存储映射地址空间
最小存储映射地址空间=16字节(24)
最大存储映射地址空间=2GB(231)
最大/最小I/O映射地址空间
最小I/O映射地址空间=4字节(22)
最大存储映射地址空间=256字节(协议规定)
转前
38
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
扩展ROM基地址寄存器
31
11 10
基 地 址
1 0
保 留
扩展ROM访问允许
扩展ROM基地址=FFFF0001h
• 位0=1,表示扩展ROM访问允许
• 位[31:11]
第一个为1的是位16,表示映射的存储空间为64K。
这意味着ROM映射的基地址应该起始于64KB的边界
39
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
(5)头区域中其它寄存器
中断引脚寄存器
8位只读寄存器,指明设备使用了PCI的哪个
中断引脚。1代表INTA#,2为INTB#……
中断请求线寄存器
8位可读/写寄存器,指明设备的中断引脚和
PC机的 8259A的哪个中断输入线连。
Min_Gnt/Max_lat寄存器
Min_Gnt用来指定设备需要多长的突发传输
时间。
Max_lat用来表示对PCI总线进行访问的频繁
程度。
40
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2.配置空间的访问
(1) 配置空间访问时目标设备的选择
对于某一PCI设备,
1)只有当输入它的IDSEL信号有效,
2)并且在地址期内AD[1:0]为00时,
才能被作为配置访问的目标设备。
41
http://www.njyangqs.com/
(2) 配置空间访问的类型
现代微机原理与接口技术(第3版)
· 0类配置空间访问
 对(正在运行的)当前PCI总线上的目标设备
配置寄存器所进行的访问。
 被配置访问的目标设备必须在地址期采样到其
IDSEL输入信号有效,且AD[1∶0]必须为00。
 地址期, AD[1∶0]必须为00; AD[10∶8]用于选
择物理设备的八种功能之一 ;AD [7∶2]为选择
该功能设备的配置寄存器号(双字号)。
AD[31:11]可用于连接各设备的IDSEL信号
 数据期, AD[31∶0]传送的是配置读/写数据。
42
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
· 1类配置空间访问
 对(通过PCI/PCI桥连接的)下一级PCI总线
上的目标设备(配置寄存器)所进行的访问。
 地址期 ,AD[1∶0]必须为01;AD[10∶8]作为选
择物理设备的八种功能之一 。AD[7∶2]为选择
该功能设备的配置寄存器号; AD[15∶11]用
于存放第二级总线上被选中设备的IDSEL号
,AD[23∶16] 放总线号。
 桥片中也有桥配置空间寄存器,存放有总线
号和次级总线号等信息。
 一旦PCI/PCI桥检测到1类配置访问,就有三
种情况,须分别进行处理。
43
http://www.njyangqs.com/
• 如果要访问的总线号既不同于桥 现代微机原理与接口技术(第3版)
CPU
的第二级总线号,也不在桥的第
总线
二级总线号的下级总线范围内,
桥A
PCI
那么桥将忽略本次访问。
• 如果总线号不同于桥的第二级总 总线0
设备
桥B
线,但在桥的第二级总线号的下
级总线范围内,那么桥将本次访 PCI
问作为1类配置访问传递给第二 总线1 设备
级总线。配置命令从第一级传递
到第二级C/BE#总线。
• 如果总线号与桥的第二级总线号相同,那么桥将本次访
问作为0类配置访问传递给第二级总线。AD[10:2]直接
从桥的第一级传递到第二级AD总线。AD[15:11 ]的设备
号用于决定第二级总线上哪个设备的IDSEL信号被设置
有效。配置命令从第一级传递到第二级C/BE#总线。
44
http://www.njyangqs.com/
(3) 配置访问的访问方法
现代微机原理与接口技术(第3版)
针对x86兼容的系统,PCI协议定义了将处理器发
出的I/O访问识别为配置访问,或将处理器发出的存
储器访问转换为配置访问的转换机构,称为配置机
构。
配置机构是利用两个32位的I/O端口寄存器来访问
PCI设备的配置空间的。
• 配置地址端口寄存器(I/O地址为0CF8H~0CFBH)
• 配置数据端口寄存器(I/O地址为0CFCH~0CFFH)
第一步,将要访问的总线号、设备号、功能号和寄
存器号写到配置地址端口寄存器。(32位写)
第二步,执行一次对配置数据端口寄存器的读/写。
45
http://www.njyangqs.com/
6.3 通用串行总线USB
现代微机原理与接口技术(第3版)
6.3.1 USB系统组成
1. USB的硬件
USB主控制器/根集线器
主控制器负责将并行数据转换成串行,并将数据传给根集线器
。根集线器控制USB端口的电源,激活和禁止端口,识别与端口
相连的设备,设置和报告与每个端口相连的状态事件。
 USB集线器(USB Hub)
完成USB设备的添加(扩展)、删除和电源管理等。
 USB设备
HUB设备和功能设备(外设),外设含一定数量独立的寄存器
端口(端点)。外设有一个惟一的地址。通过这个地址和端点号
,主机软件可以和每个端点通信。数据的传送是在主机软件和
USB设备的端点之间进行的。
46
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2. USB的软件
 USB设备驱动程序
在USB外设中,通过I/O请求包将请求发送给USB
设备中的USB(从)控制器。
 USB驱动程序
在主机中,当设置USB设备时读取描述器以获取
USB设备的特征,并根据这些特征,在发生请求时
组织数据传输。 USB驱动程序可以是捆绑在操作系
统中,也可以是以可装载的驱动程序形式加入到操
作系统中。
 USB主控制器驱动程序
完成对USB事务交换的调度,并通过根Hub或其他
的Hub完成对交换的初始化。
47
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
3. USB的拓扑结构
宿主机
PCI总线
USB主控制器/根Hub
高速
高速
电话
显示器
高速
麦克风
高速
高速
扬声器
集线器
高速
扬声器
低速
超速=4.8Gb/s(3.0)
高速=480Mb/s(2.0)
麦克风
全速=12Mb/s(1.1)
低速=1.5Mb/s(1.0) USB的层次拓扑图
48
高速
键盘
低速
麦克风
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.2.2 USB系统的接口信号和电气特性
1.接口信号线
+3.0~
3.6vdc
高/全/低速
USB收发器(
主机或集线
器端口)
高/全/低速
USB收发器(
主机或集线
器端口)
49
+5vdc
高/全速USB
1.5KΩ
D+ 收发器(全速
D+
USB数据线
DD- 或高速设备)
15KΩ
地
15KΩ
+3.0~
3.6vdc
+5vdc
低速USB收
1.5KΩ
D+ 发器(低速设
D+
USB数据线
DD备)
15KΩ
地
15KΩ
USB集成器和设备的电阻连接
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
USB常用信号电平(全速设备,低速设备电平相反)
总线状态
信 号 电 平
发送端
差分“1”
D+>2.8V并且D-<0.3V
(D+)-(D-)>200mV并且
D+>2.0V
差分“0”
D->2.8V并且D+<0.3V
(D-)-(D+)>200mV并且
D->2.0V
单端点0(SE0) D+和D-<0.3V
50
接受器端
D+和D-<0.8V
数据J状态
差分“1”(不是逻辑1) 差分“1”
数据K状态
差分“0”(不是逻辑0) 差分“0”
恢复状态
数据K状态
数据K状态
闲置状态
N.A.
D+>2.7V并且D-<0.8V
http://www.njyangqs.com/
高速USB总线状态与其信号电平
总线状态
发送端
现代微机原理与接口技术(第3版)
接收端
高速差分“1”
360mV≤D+≤440mV;
-10mV≤D-≤10mV
高速差分“0”
360mV≤D-≤440mV; 10mV≤D+≤10mV
高速J状态
高速差分“1”
高速差分“1”
高速K状态
高速差分“0”
高速差分“0”
Chirp J状态
700mV≤D+-D≤1100mV
Chirp K状态
-900mV≤D+-D-≤500mV
高速闲置(Idle)状态 NA
高速包开始
(HSSOP)
高速包结束
51
(HSEOP)
-10mV≤(D-, D+)≤10mV
数据线从高速闲置状态转换到高速J状态或高速K
状态
数据线从高速J状态或高速K状态转换到高速闲置
http://www.njyangqs.com/
状态
设备接入到端口上的过程
现代微机原理与接口技术(第3版)
断开 D+或D-的电压上升 闲置 维持2.5s 连接
状态
状态 以上
状态 到2.5(2.7)V
设备从端口上断开过程
连接
状态
D+和D-的电压全部下降到0.8V并维
持2.5s
断开
状态
数据包传送开始过程
闲置 信号线跳变到其 数据K 差分数据线按 传送
状态 反向逻辑电平 状态 传送数据变换 状态
数据包传送结束过程
传送 保持信号线2个位传输时间的SE0状态
状态 ,之后保持1个位传输时间的J状态。
52
闲置
状态
http://www.njyangqs.com/
高/全速设备被接入的判断
现代微机原理与接口技术(第3版)
1. D+线电压上升,则首先判断为全速设备。
2. 主机在识别到一个新设备后要求集线器复位(Reset)
连接端口,此时数据线进入E0状态至少10ms。
3. 复位期间,高速设备会发出一个Chirp K,集线器检
测到该chirtp后,会回应一串ChirpK与J。
4. 得到这个Chirp KJKJKJ序列后,设备断开D+线上
的上拉电阻,使能高速终端,进入高速缺省状态。
5. 如果在复位期间集线器一直没有检测到Chirp K,则
说明接入的是全速设备。
6. 如果高速设备发出Chirp K后一直得不到集线器回应
的Chirp KJKJKJ序列,则说明集线器不支持高速设
备,则设备依然回到全速状态。
53
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2.电气特性
对地电源电压为4.75~5.25V,设备吸入的最
大电流值为500mA 。第一次被主机检测到时,
设备吸入的电流<100mA
• 自给供电
• 总线供给
USB电暖鼠标垫
54
USB电暖手套
USB电暖鞋
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
3.NRZI编码
NRZI的编码方法不需独立的时钟信号和数据一起发送
,电平跳变代表“0”,没有电平跳变代表“1”。在数据
被编码前,在数据流中每6个连续的“1”后插入1个“0”
,从而强迫NRZI码发生变化,也顺便让收发双放对准一
次时钟,接收端必须去掉这个插入的“0”。
演示
空 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编码
55
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.3.3 USB数据流类型和传输类型
◆
USB数据流类型有四种:控制信号流、块数据流、中
断数据流、实时数据流。
◆
USB有4种基本的传输类型
1.控制传输: 双向,用于配置设备或特殊用途,发
生错误需重传。 当USB主机检测时,设备必须要用端
点0完成和主机交换信息的控制传送。
2.批传输:单/双向,用于大批数据传输,要求准确
,出错重传。时间性不强。
3.中断传输 :单向入主机,用于随机少量传送。采
用查询中断方式,出错下一查询周期重新传。
4.等时传输:单/双向,用于连续实时的数据传输,
时间性强,但出错无需重传。传输速率固定。
56
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.3.4 USB交换的包格式
标志包
数据包
握手包
帧结束
间隔区
一次交换(事务处理)
等时传输无握手包
每次交换均由主机发起,对中断传输,亦由主
机发送查询包取得中断信息。
交换完毕,进入帧结束间隔区发送方把D+和
D-上的电压降低到0.8V以下,并保持2个位的传
输时间,然后维持1个位传输时间的J状态表示
包结束,之后进入闲置状态。
57
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
表3.6 包的类型(阴影部分是USB2.0规范)
PID类型
标志包
PID名称
PID[3:0]
描述
OUT
0001b
IN
1001b
具有PID、类型检查、设备地址、端点
号和CRC域的宿主到功能设备的发送
包
功能设备到宿主的接收包,具有和发
送包一样的域
SOF
0101b
帧开始包
SETUP
1101b
DATA0
0011b
主机发给设备的设置包,用于控制传
输的设置。
数据包0
DATA1
1011b
数据包1
DATA2
0111b
MDATA
1111b
为帧中高速、高带宽的等时交换的数
据包
为分离的高速和高带宽等时交换中的
数据包
http://www.njyangqs.com/
数据包
58
ACK
0010b
NAK
1010b
接收设备无法接受数据或没有数据返
回个宿主
STALL
1110b
设备已经被挂起,需要主机插手解决
故障
NYET
0110b
接收器无应答
PRE
1100b
(Token)预告包,预告下面将以低速方
式和低速设备通信
ERR
1100b
(Handshake)分离交换错误的握手信号
SPLIT
1000b
高速分离交换标志
PING
0100b
为批或控制端点传输而设置的高速流
控制探测
Reserved
0000b
保留
握手包
特殊包
59
现代微机原理与接口技术(第3版)
接收设备发的接受数据正确的应答包
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
包的一般格式
8位(32位)
SYNC
8位
PID
5位或16位
n位
包特定信息
CRC
所有数据发发送都时从低位开始向高位发送
SYNC:同步序列 数据为10000000B(1.1版本)
数据为10000000000000000000000000000000B(2.0版本)
PID:包标识别,发送从低位到高位
LSb
MSb
PID0 PID1 PID2 PID3 PID0# PID1#PID2# PID3#
低4位放PID
60
高4位放PID的反码
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
1. 包的种类及格式
(1) 帧开始包(SOF)(一帧持续时间为1ms)
8/32位
SYNC
8位
11位
PID
5位
FRAME NUMBER
CRC
帧开始包格式
LSb
数据
MSb
0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1
编码
演示
61
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
(2) 接受包(IN)
接受交换包括了全部4种传输类型
接受交换:
根Hub广播接受包目标设备返回数据包根Hub发握
手包。(等时传输无握手包)
(3)发送包(OUT)
发送交换包括了除中断传输外的其他3种传输类型
发送交换:
根Hub广播发送包根Hub发数据包目标设备发握
手包(批传输才有握手包)
8/32位
SYCN
8位
PID
7位
ADDR
4位
5位
ENDP
CRC
接受和发送包的格式
62
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
(4)设置包(SETUP)
控制传输开始由主机发设置包,后面可能由一个或
多个IN或OUT交换,或只包含一个从端点传到主机的
状态
2.数据包
8位
SYNC
32位
SYNC
8位
PID
8位
PID
0~8184位(1023B)
DATA
USB 1.1数据包格式
0~8192位(1024B)
DATA
16位
CRC
16位
CRC
USB 2.0数据包格式
63
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
3.握手包
8/32位
SYCN
8位
PID
握手包的格式
数据接受方发向数据发送方
4 .特殊包
•
•
•
•
只有SYNC和PID组成
主机希望与低速设备进行低速传输的时候发此包
PID域应该高速(全速)发送。
PID之后,在低速数据包传输之前要延迟4个高速
字节时间
• 低速设备只支持控制传输与中断传输
• 与低速设备交换数据只有8字节
64
http://www.njyangqs.com/
6.3.5 USB设备状态和总线枚举 现代微机原理与接口技术(第3版)
主 机
1.2 通知有设备接入
2 检测Hub,确认有接入
3 使能该端口,发RESET命令
5.1 利用默认端点0读设备描述器
6.1 给设备分发地址
7.1 按地址读设备配置信息
8.1 按地址设设备配置信息
1.1 设备接入[连接状态]
4 发RESET信号,供电[上电状态]
5.2 读设备描述器[地址默认状态] 设
HUB
6.2 分发地址[地址状态]
备
7.2 读配置信息
8.2 写配置信息[配置状态]http://www.njyangqs.com/
65
现代微机原理与接口技术(第3版)
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 主机和外设功能
• 对话请求协议
• 除小和大功率之外增加了微功率选择
• 超小连接器
66
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
USB On-The-Go 设备定义了一个新的称之为mini-AB 的
袖珍插孔,它能接入mini-A 和mini-B 插头。连接器的
不同定义设备的初始功能。
mini-B 插头
mini-A 插头
VBUS
VCC
‘0’: Master
A设备
67
D+
DGND
ID
VCC
‘1’: Slave
B设备
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
两个OTG RTR(主/从双角色)设备相连,可以用主机交
流协议(HNP)随时切换主机角色。步骤如下:
1. A设备发出SET_FEATURE命令后,B设备可请求总
线控制权。
2. A设备挂起总线,通知B设备可占用总线。
3. B设备发送信号,断开A设备连接。
4. A设备启动D+线本方的上拉电阻,将D+置高。此时
A设备成为外设,B设备成为主机。
5. B设备完成对总线控制后,启动D+线本方的上拉电阻
,放弃对总线的控制。
6. 在以上电平变换的同时,通过软件实现真正的对总线
的控制权变化。
68
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.3.7 开发具有USB功能的设备的先期准备
1.分清开发的设备类型
•
•
•
•
嵌入式USB主机
USB Hub
基于HID(人机接口设备)的USB设备
USB OTG设备
2.选择合适的控制芯片
• 内嵌USB模块和嵌入式CPU核的SOC芯片
• 内嵌单片机内核的USB控制芯片
• 可与其它嵌入式CPU相连的单独USB控制芯片
69
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
3.一般的开发步骤
1) 根据选择的器件和要实现的功能,设计相关电路。
2) 编制软件(根据不同应用,设计其中部分或全部软
件)。
- 设备驱动程序(对USB设备,或OTG设备)
- USB主机设备的控制程序(对主机或OTG设备,如
完成枚举功能等)
- 主机和设备的角色切换驱动(对OTG设备)
- 编写相关的PC端软件
4.目前常见的控制芯片
•
•
•
•
70
OTG芯片:ISP1362,OTG243
主机/设备芯片: SL811HS,ISP1161
设备芯片:PDIUSBD12,ISP1581
HUB芯片:GL652USB
http://www.njyangqs.com/
6.3.8 USB 3.0
现代微机原理与接口技术(第3版)
USB 3.0定义了与USB 2.0兼容的新的接口信号线,它
在原有的四根线基础上,又额外增加了2对线,
SSRX+/SSRX-和SSTX+/SSTX-,其中SSRX+/SSRX是一对差分接受线,SSTX+/SSTX-是与对差分发送线
,通过这两对线,USB 3.0实现了全双工数据传输(同
时进行输入和输出)
71
http://www.njyangqs.com/
超速(USB3.0)与USB2.0比较
现代微机原理与接口技术(第3版)
 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对每个事务处理事务错误检测和恢复以及流控制只能
在端到端级。超速在端到端和链接级之间划分这些功能。
72
http://www.njyangqs.com/
6.4 PCI-Express总线
现代微机原理与接口技术(第3版)
6.4.1 PCI-Express总线的主要性能特点
PCI Express为互连设备提供高速、高性能、点对点
、双/单工、差动信令链路。数据从一组信号线上发送
,而在另一组信号线上接收。采用设备间的点对点串
行连接。
将两台设备连接在一起的一个PCI Express互连称为
一条链路。一条×1的链路有一条通道,即每个方向上
有一对差动信号,共4个信号。
73
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
1、串行的点对点互连
2、使用差动信号
3、使用交换器来互连多台设备
4、采用基于数据包的协议
5、具有更高的数据传输速率(2.5Gbit/s的单向
单线连接传输速率 )
6、拥有存储器地址空间、IO地址空间和配置地
址空间
7、采用层次结构
8、热插拔支持
9、与PCI兼容的软件模型
74
http://www.njyangqs.com/
6.4.2 PCI-Express总线结构
75
现代微机原理与接口技术(第3版)
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
76
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
(1)根联合体
集成了多种控制器,替CPU产生事务请求,
它还可以代表CPU发起配置事务请求、生成存
储器和I/O请求和锁定事务请求。
根联合体发送数据包离开其端口,或从其端
口接收数据并转发至存储器。
根联合体初始化用来形成请求者或完成者的
设备ID,通常由总线号、设备号和功能号组成
。根联合体的总线、设备及功能号都被初始化
全为0。
77
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
(2)交换器
交换器利用基于存储器、I/O或配置地址的
路由方法转发数据包。
交换器根据下面3种路由机制之一转发这些
数据包:地址路由、ID路由或隐式路由。
交换器能实现两种仲裁机制:端口仲裁和
VC仲裁,并且依据仲裁机制确定将入端口数据
包转发至出端口的优先级。交换器支持锁定请
求。
78
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
(3)端点
端点可以作为请求者发起事务,或者作为完
成者对事务做出响应。
端点有PCI Express端点和传统端点两种。
传统端点支持I/O事务,而且可以作为完成者支
持锁定事务语义,还可以利用消息请求产生传
统中断信号,但另外还必须支持产生利用存储
器写事务的MSI。
PCI Express端点必须在可预取存储地址空
间内支持64位存储器寻址能力。
两种类型的端点都实现了0类 PCI配置头,
并且作为完成者对配置事务做出响应。
79
http://www.njyangqs.com/
6.4.3 PCI Express事务简介
现代微机原理与接口技术(第3版)
事务:为请求者和完成者之间完成一次信息传送需要
完成的一系列一个或多个数据包传送的过程。
PCI Express事务可以分成4大类:存储器事务、I/O
事务、配置事务和消息事务。
80
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
6.4.4 PCI-Express的层次结构
PCI Express 设备A
设备核心
设备核心
PCI Express
核心逻辑接口
PCI Express
核心逻辑接口
发送 接收
事务层
发送 接收
事务层
81
PCI Express 设备B
数据链路层
数据链路层
物理层
物理层
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
(1)设备核心/软件层
设备核心是由根联合体核心逻辑或诸如以太网控制
器、SCSI控制器、USB控制器等端点核心逻辑组成。
设备核心逻辑与本地软件一起提供PCI Express设
备生成TLP所需的必要信息。
(2)事务层
事务层主要负责生成出站TLP流量和接收入站TLP
流量。
(3)数据链路层
数据链路层的主要功能是保证在各链路上发送和接
收数据包时数据的完整性。
(4)物理层
TLP和DLLP类型的数据包从数据链路层发送至物
理层,并通过物理链路传送。物理层也从链路上接收
数据包并将其发送至数据链路层。
82
http://www.njyangqs.com/