http://qsyang.yeah.net
现代微机原理与接口技术
1
第 3章 微机总线与接口标准
3.1 总线与接口概述
3.1.1 总线和接口及其标准的概念
◆ 总线:是在模块和模块之间或设备与设备之间的一组进行互连和传输信息的 信号线,
信息包括指令、数据和地址。
http://qsyang.yeah.net
现代微机原理与接口技术
2
◆ 总线标准指芯片之间、扩展卡之间以及系统之间,
通过总线进行连接和传输信息时,应该遵守的一些协议与规范。
◆ 接口标准外设接口的规范,涉及接口信号线定义、信号传输速率、传输方向和拓扑结构,以及电气特性和机械特性等多个方面。
http://qsyang.yeah.net
现代微机原理与接口技术
3
3.1.2 总线的分类
1) 按总线功能或信号类型划分为:
数据总线,双向三态逻辑,线宽表示了线数据传输的能力。
地址总线,单向三态逻辑,线宽决定了系统的寻址能力。
控制总线,就某根来说是单向或双向。控制总线最能体现总线特点,决定总线功能的强弱和适应性。
http://qsyang.yeah.net
现代微机原理与接口技术
4
2) 按总线的层次结构分为:
CPU总线,微机系统中速度最快的总线,主要在
CPU内部,连接 CPU内部部件,在 CPU周围的小范围内也分布该总线,提供系统原始的控制和命令。
局部总线,在系统总线和 CPU总线之间的一级总线
,提供 CPU和主板器件之间以及 CPU到高速外设之间的快速信息通道。
系统总线,也称为 I/O总线,是传统的通过总线扩展卡连接外部设备的总线。由于速度慢,其功能已经被局部总线替代。
通信总线,也称为外部总线,是微机与微机,微机与外设之间进行通信的总线。
http://qsyang.yeah.net
现代微机原理与接口技术
5
3.1.3 总线的主要性能参数
1.总线频率,MHz表示的工作频率,是总线速率的一个重要参数。
2.总线宽度:指数据总线的位数。
3.总线的数据传输率总线的数据传输率 =(总线宽度 /8位 )× 总线频率例,PCI总线的总线频率为 33.3MHz,总线宽度为
64位的情况下,总线数据传输率为 266MB/s 。
http://qsyang.yeah.net
现代微机原理与接口技术
6
3.1.4 总线标准的特性
1.物理特性,
2.功能特性,
3.电器特性,
4.时间特性,
总线物理连接方式 (电缆式、蚀刻式),
总线根数、插头和插座形状,引脚排列等。
描述一组总线中每一根线的功能。
定义每根线上信号的传递方向以及有效电平范围。一般定义送入 CPU的信号为输入信号,从 CPU中送出的信号是输出信号。 低电平有效的信号用信号名上一横线或信号名后带 #来表示。
定义每一根线在什么时候有效,这和总线操作的时序有关。
http://qsyang.yeah.net
现代微机原理与接口技术
7
3.1.5 总线操作和总线传送控制一、总线操作的 4个阶段
1,总线请求和仲裁阶段,
主模块向总线仲裁机构提出总线使用申请,总线仲裁机构决定使用总线的主模块。
2,寻址阶段,
拥有总线使用权的主模块发出本次要访问的从模块的地址及有关命令,该从模块被选中并启动。
3,数据传送阶段,
主模块和从模块间进行双(单)向数据传送。
4,结束阶段,
主、从模块均撤出总线。
http://qsyang.yeah.net
现代微机原理与接口技术
8
二、总线传送控制
1.同步方式优点,1)电路简单
2)适合高速设备的数据传输缺点:高速设备和低速设备间只能用低速设备的速度来传输数据主
clk

2.半同步方式主
clk

wait/ready
wait/ready信号是单向的,不是互锁的。
http://qsyang.yeah.net
现代微机原理与接口技术
9
总线 读周期 分成两个子周期
寻址子周期
数据传送子周期在两子周期之间,退出总线,从设备准备数据。
4.分离方式
clk
address
data
主 从
3.异步方式
REQ
ACK
比同步方式慢
总线频带窄
总线传输周期长
http://qsyang.yeah.net
现代微机原理与接口技术
10
3.2 ISA总线
C18
外 内
A1
B1
A31
B31
C1
D1 D18
2.54 10.16
138.5
图 3.1 ISA总线插槽示意图工业标准体系结构,在 PC总线基础上发展而来,最高工作频率为 8MHz,24根地址线,16
位数据线,拥有大量接口卡,历经 286,386、
486和 Pentium几代微机。
http://qsyang.yeah.net
现代微机原理与接口技术
11
ISA总线的信号
http://qsyang.yeah.net
现代微机原理与接口技术
12
3.3 PCI总线
3.3.1 PCI总线的特点
1) 独立于处理器
2) 传输效率高
3) 多总线共存
4) 支持突发传输
5) 支持总线主控方式
6) 采用同步操作
7) 支持两种电压下的扩展卡
8) 具有即插即用功能
9) 合理的管脚安排
10) 预留扩展空间
http://qsyang.yeah.net
现代微机原理与接口技术
13
3.3.2 PCI信号定义
1,系统接口信号
CLK IN,PCI系统总线时钟最高 33MHz/66MHz,最低 0Hz。
PCI大部分信号在 CLK的上升沿有效。
http://qsyang.yeah.net
现代微机原理与接口技术
14
C/BE[3:0]# T/S:它们是总线命令和字节使能多路复用信号线
PAR T/S:针对 AD[31:00]和 C/BE[3:0]#进行奇偶校验的校验位
在 FRAME#有效的第 1个时钟,AD[31:00]上传送的是 32位地址,称为 地址期 。
在 IRDY#和 TRDY#同时有效时,AD[31:00]上传送的为 32位数据,称为 数据期 。
2.地址与数据接口信号
AD[31:00] T/S:它们是地址、数据多路复用的输入 /输出信号
地址期内是总线命令,数据期内是字节使能信号。
http://qsyang.yeah.net
现代微机原理与接口技术
15
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#信号无效表示传输进入最后一个数据期。
http://qsyang.yeah.net
现代微机原理与接口技术
16
4.仲裁接口信号
REQ# T/S:总线占用请求信号
GNT# T/S:总线占用允许信号
5.错误报告接口信号
PERR# S/T/S:数据奇偶校验错误报告信号
SERR# O/D:系统错误报告信号
6.中断接口信号
PCI有 4条中断线,分别是 INTA#,INTB#,INTC#
,INTD#,电平触发,多功能设备可以任意选择一个或多个中断线,单功能设备只能用 INTA#。
http://qsyang.yeah.net
现代微机原理与接口技术
17
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:奇偶双字节校验
http://qsyang.yeah.net
现代微机原理与接口技术
18
3.3.3 PCI插槽和 PCI扩展卡
1.PCI插槽
5V 32位插槽
5V 64位插槽
3.3V 32位插槽
3.3V 64位插槽连接卡口
a,4种 PCI卡插槽
A1
外 内
A49A52
B1 B49 B52
A62
B621.27
3.8277.48
b,5V32位 PCI插槽
http://qsyang.yeah.net
现代微机原理与接口技术
19
2.PCI插卡
IC
IC IC
1.91
60.96 12.741.6
80
外边里边
http://qsyang.yeah.net
现代微机原理与接口技术
20
3.3.4 PCI总线命令表 3.3 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 存储器写并无效
http://qsyang.yeah.net
现代微机原理与接口技术
21
3.3.5 PCI总线协议
1,PCI总线的传输控制遵循的管理规则:
(1) FRAME#和 IRDY#定义了总线的忙 /闲状态。
11空闲,00数据,10最后一个数据,01等待状态。
(2) 一旦 FRAME#信号被置为无效,在同一传输期间不能重新设置。
(3) 除非设置 IRDY#信号,一般情况下不能设置
FRAME# 信号无效。
(4) 一旦主设备设置了 IRDY#信号,直到当前数据期结束为止,主设备一般不能改变 IRDY#信号和
FRAME#信号的状态。
http://qsyang.yeah.net
现代微机原理与接口技术
22
2,PCI总线的寻址(采用分散地址译码技术)
表 3.4 AD[1:0]和 C/BE[3:0]#对应关系表
AD1 AD0 C/BE3# C/BE2# C/BE1# C/BE0#
0 0 × × × 0
0 1 × × 0 1
1 0 × 0 1 1
1 1 0 1 1 1
(1) I/O地址空间
在 I/O地址空间,32位 AD线全部被用来提供一个完整的地址编码(字节地址)。
AD[1:0]和 C/BE[3:0]指明传输的最低有效字节。
http://qsyang.yeah.net
现代微机原理与接口技术
23
(2) 内存地址空间
(3) 配置地址空间
31 01
双字边界对齐的起始地址
2
00 地址递增
01 Cache行切换
1X 保留
7 01
双字边界对齐的起始地址
2
00 选择该设备
01 访问该桥路后设备
1X 保留
http://qsyang.yeah.net
现代微机原理与接口技术
24
3.字节对齐
4,PCI总线的驱动与过渡
PCI总线上不能进行字节的交换。但是,具有 64位通道的主设备可以进行 DWORD(双字)的交换。
主设备可以在每个新数据期开始的时钟前沿改变字节使能信号,且在整个数据期中保持不变。
读缓冲中的数据可以不考虑字节使能信号,而传送所有的字节。
在每个地址(数据)期中,所有的 AD线都必须被驱动到稳定的状态(数据),包括那些字节使能信号表明无效的字节所对应的 AD线。
从一个设备驱动总线到另一个设备驱动 PCI总线之间设置一个 过渡期,又称为交换周期,以防止总线访问冲突。
http://qsyang.yeah.net
现代微机原理与接口技术
25
5.设备选择
CLK
FRAME#
IRDY#
TRDY#
DEVSEL#
1 2 3 4 5 6 7 8
FAST MED SLOW ……
图 3.6 设备选择的时序关系注意 DEVSEL#与 FRAME#,TRDY#的关系,无 DEVSEL#信号时的处理。
DEVSEL#由从设备共享使用,并由被选中的从设备驱动。
http://qsyang.yeah.net
现代微机原理与接口技术
26
3.3.6 PCI总线数据传输过程
1.总线上的读操作
CLK
FRAME#
1 2 3 4 5 6 7 8 9
AD
C/BE#
IRDY#
TRDY#
DEVSEL#
ADDRESS DATA1 DATA2 DATA3
BUSCMD BE#s
地址期 数据期 数据期 数据期
PCI读操作时序
http://qsyang.yeah.net
现代微机原理与接口技术
27
2.总线上的写操作
CLK
FRAME#
1 2 3 4 5 6 7 8 9
AD
C/BE#
IRDY#
TRDY#
DEVSEL#
ADDRES
S
DATA2DATA1 DATA3
BUSCMD
地址期 数据期 数据期 数据期
PCI写操作时序
BEs1 BEs2 BEs3
http://qsyang.yeah.net
现代微机原理与接口技术
28
3.传输的终止过程
(1) 由主设备提出的终止
(2) 由从设备提出的终止
传输结束
超时 (GNT#信号在内部延时计数器满后仍无效 )
死锁后重试
断开( 8个时钟周期内从设备不能对主设备做出响应)。
撤消 FRAME#,建立 IRDY#,直到 TRDY#
有效后传输完最后一个数据发出 STOP#信号并保持其有效,直到 FRAME#
撤消为止。
http://qsyang.yeah.net
现代微机原理与接口技术
29
PCI总线上的所有传输操作中,FRAME#,IRDY#
,TRDY#和 STOP#遵循的规则:
当 STOP#信号有效时,FRAME#应该在其后的
2~3个时钟周期内尽快撤消,但撤消时应使 IRDY#
有效,从设备应无条件的保持 STOP#的有效状态直到 FRAME#撤消为止。 FRAME#撤消后,
STOP#也应该紧跟着撤消。
在任何时钟的上升沿,如果 STOP#和 TRDY#同时有效,就表示是传输的最后周期,IRDY#要在下一个时钟的上升沿之前撤消,表示传输的结束。
对于被目标设备终止的传输,主设备要继续完成它,就必须用下一个未传输的数据的地址来重试访问。
http://qsyang.yeah.net
现代微机原理与接口技术
30
3.3.7 总线仲裁
PCI总线采用集中式的同步仲裁方法中央仲裁器
PCI主设备 A
PCI主设备 B
REQ# REQ#
GNT#GNT#
http://qsyang.yeah.net
现代微机原理与接口技术
31
CL
K
FRAME#
1 2 3 4 5 6 7
AD
GNT#-B
IRDY#
TRDY#
GNT#-A
地址 数据
A存取 B存取两个主设备之间的 PCI总线仲裁
REQ#-B
REQ#-A
地址数据
c
a b
d e
f g
http://qsyang.yeah.net
现代微机原理与接口技术
32
1,PCI设备的配置空间定义一个 PCI总线配置空间的目的在于提供一套适当的配置措施,使之实现完全的设备再定位而 无需用户干预安装、配置和引导,并由与设备无关的软件进行系统地址映射。
所有 PCI设备都必须实现 PCI协议规定必需的配置寄存器,以便系统加电的时候利用这些寄存器的信息来进行系统配置。对 PCI的配置访问实际上就是访问设备的配置寄存器。
在系统启动的时候由 BIOS代码执行设备配置。
一旦即插即用 OS(如 Windows2000)启动后,控制就传递给 OS,OS接管设备管理。
3.3.8 PCI总线配置
http://qsyang.yeah.net
现代微机原理与接口技术
33
2、配置空间头区域及功能
http://qsyang.yeah.net
现代微机原理与接口技术
34
(1)设备识别头区域有 7个寄存器(字段)用于设备的识别。
(2)设备控制表现在命令寄存器为发出和响应 PCI总线命令提供了对设备粗略的控制。
(3)设备状态状态寄存器用于记录 PCI总线有关操作的状态信息。 注意:该寄存器的有些位是只可清不可置,对这些位的写,被解释为对该位清零。 例如,为了清位 14而不影响其他位,应向该寄存器写 0100 0000 0000 0000B
http://qsyang.yeah.net
现代微机原理与接口技术
35
(4)基址寄存器
PCI设备的配置空间可以在微处理器决定的地址空间中浮动,以便简化设备的配置过程。 系统初始化代码在引导操作系统之前,必须建立一个统一的地址映射关系,以确定系统中有多少存储器和 I/O控制器,它们需要占用多少地址空间。 当确定这些信息之后,系统初始化代码便可以把 I/O控制器映射到合理的地址空间并引导系统。
为了使这种映射能够做到与相应的设备无关
,在配置空间的头区域中安排了一组供映射时使用的基址寄存器。
http://qsyang.yeah.net
现代微机原理与接口技术
36
10
I/O空间指针规范规定每个 I/O基地址下的端口数不得大于 256。
31 2 1 0
基 地 址
0
预取使能存储空间指针00 32位地址空间任意映射
01 32位地址空间 1M字节以内映射(已经不用)
10 64位地址空间任意映射
11 保留
31(63) 3 2 1 0
基 地 址保留返回
http://qsyang.yeah.net
现代微机原理与接口技术
37
具体实现的过程中,除了低四位满足上述要求外,高位部分实际设置位数视映射多大地址控件范围而定,根据地址范围,决定高多少位需要设置,这些位被设置成可写,高位部分的其它位用硬件使其为 0,并只可读。基地址设置过程:
系统初始化程序向基地址寄存器写全 1
系统初始化程序读出基地址寄存器的内容系统初始化程序判断设备需要的地址空间大小系统初始化程序分配基地址并写回到该基地址寄存器如设备需要使用 1MB的存储空间,硬件实现基地址寄存器的时候应该使位 0,位 4~位 19由硬件使其保持为 0
http://qsyang.yeah.net
现代微机原理与接口技术
38
举例 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地址能不能做该设备存储基址?
http://qsyang.yeah.net
现代微机原理与接口技术
39
举例 2:
基址寄存器的值 =FFFFFF01h
位 0=1,表示是一个 I/O地址空间映射
位 [31:2]
第一个为 1的是位 8,表示映射的 I/O空间为 28
= 256。
这意味着 I/O映射的基地址应该是 256的整数倍。
http://qsyang.yeah.net
现代微机原理与接口技术
40
最大 /最小映射地址空间是多少?
最大 /最小存储映射地址空间最小存储映射地址空间 =16字节( 24)
最大存储映射地址空间 =2GB( 231)
最大 /最小 I/O映射地址空间最小 I/O映射地址空间 =4字节( 22)
最大存储映射地址空间 =256字节(协议规定)
转前
http://qsyang.yeah.net
现代微机原理与接口技术
41
扩展 ROM访问允许
31 11 10 1 0
基 地 址 保 留扩展 ROM基地址寄存器扩展 ROM基地址 =FFFF0001h
位 0=1,表示扩展 ROM访问允许
位 [31:11]
第一个为 1的是位 16,表示映射的存储空间为 64K。
这意味着 ROM映射的基地址应该起始于 64KB的边界
http://qsyang.yeah.net
现代微机原理与接口技术
42
(5)头区域中其它寄存器中断引脚寄存器
8位只读寄存器,指明设备使用了 PCI的哪个中断引脚。 1代表 INTA#,2为 INTB#……
中断请求线寄存器
8位可读 /写寄存器,指明设备的中断引脚和
PC机的 8259A的哪个中断输入线连。
Min_Gnt/Max_lat寄存器
Min_Gnt用来指定设备需要多长的突发传输时间。
Max_lat用来表示对 PCI总线进行访问的频繁程度。
http://qsyang.yeah.net
现代微机原理与接口技术
43
2.配置空间的访问
(1) 配置空间访问时目标设备的选择对于某一 PCI设备,
1)只有当输入它的 IDSEL信号有效,
2)并且在地址期内 AD[1:0]为 00时,
才能被作为配置访问的目标设备。
http://qsyang.yeah.net
现代微机原理与接口技术
44
(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]传送的是配置读 /写数据。
http://qsyang.yeah.net
现代微机原理与接口技术
45
· 1类配置空间访问
对(通过 PCI/PCI桥连接的) 下一级 PCI总线上的目标设备 (配置寄存器 )所进行的访问。
地址期,AD[1∶ 0]必须为 00; AD[10∶ 8]作为选择物理设备的八种功能之一 。 AD[7∶ 2]
为选择该功能设备的配置寄存器号;
AD[15∶ 11]用于存放第二级总线上被选中设备的 IDSEL号,AD[23∶ 16] 放总线号。
桥片中也有桥配置空间寄存器,存放有总线号和次级总线号等信息。
一旦 PCI/PCI桥检测到 1类配置访问,就有三种情况,须分别进行处理。
http://qsyang.yeah.net
现代微机原理与接口技术
46
桥 A
桥 B设备设备
CPU
总线
PCI
总线 0
PCI
总线 1
如果要访问的总线号既不同于桥的第二级总线号,也不在桥的第二级总线号的下级总线范围内,
那么桥将忽略本次访问。
如果总线号不同于桥的第二级总线,但在桥的第二级总线号的下级总线范围内,那么桥将本次访问作为 1类配置访问传递给第二级总线。配置命令从第一级传递到第二级 C/BE#总线。
如果总线号与桥的第二级总线号相同,那么桥将本次访问作为 0类配置访问传递给第二级总线。 AD[10:2]直接从桥的第一级传递到第二级 AD总线。 AD[15:11 ]的设备号用于决定第二级总线上哪个设备的 IDSEL信号被设置有效。配置命令从第一级传递到第二级 C/BE#总线。
http://qsyang.yeah.net
现代微机原理与接口技术
47
针对 x86兼容的系统,PCI协议定义了将处理器发出的 I/O访问识别为配置访问,或将处理器发出的存储器访问转换为配置访问的转换机构,称为 配置机构 。
(3) 配置访问的访问方法配置机构是利用两个 32位的 I/O端口寄存器来访问
PCI设备的配置空间的。
配置地址端口寄存器( I/O地址为 0CF8H~0CFBH)
配置数据端口寄存器( I/O地址为 0CFCH~0CFFH)
第一步,将要访问的总线号、设备号、功能号和双字号写到配置地址端口寄存器。( 32位写)
第二步,执行一次对配置数据端口寄存器的 I/O读 /
写。
http://qsyang.yeah.net
现代微机原理与接口技术
48
3.3.9 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入口地址;
通过对 PCI BIOS入口地址的远程调用来实现:
AH=B1H,AL为子功能号。
http://qsyang.yeah.net
现代微机原理与接口技术
49
3.3.10 PCI总线的继承者 —— PCI Express
1,主要关键技术:
在两个设备之间 点对点 串行互联
双通道,高带宽,传输速度快
灵活扩展性
低电源消耗,并有电源管理功能
支持设备热拨插和热交换
在软件层保持与 PCI以及 PCI-X总线兼容
使用小型连接,节约空间,减少串扰
采用类似于网络通信中的 OSI分层模式,具有数据包和层协议架构
http://qsyang.yeah.net
现代微机原理与接口技术
50
2,PCI-Express的拓扑结构北桥集成根组件终端
PCI
Express
- PCI桥终端终端终端终端终端端点
PCI插槽交换器存储器
http://qsyang.yeah.net
现代微机原理与接口技术
51
3.4.1 USB系统组成
1,USB的硬件
USB主控制器 /根集线器主控制器负责将并行数据转换成串行,并将数据传给根集线器
。根集线器控制 USB端口的电源,激活和禁止端口,识别与端口相连的设备,设置和报告与每个端口相连的状态事件。
USB集线器 (USB Hub)
完成 USB设备的添加(扩展)、删除和电源管理等。
USB设备
HUB设备和功能设备(外设),外设含一定数量独立的寄存器端口(端点)。外设有一个惟一的地址。通过这个地址和端点号
,主机软件可以和每个端点通信。数据的传送是在主机软件和
USB设备的端点之间进行的。
3.4 通用串行总线 USB
http://qsyang.yeah.net
现代微机原理与接口技术
52
USB设备驱动程序在 USB外设中,通过 I/O请求包将请求发送给 USB
设备中的 USB(从)控制器。
USB驱动程序在主机中,当设置 USB设备时读取描述器以获取
USB设备的特征,并根据这些特征,在发生请求时组织数据传输。 USB驱动程序可以是捆绑在操作系统中,也可以是以可装载的驱动程序形式加入到操作系统中。
USB主控制器驱动程序完成对 USB事务交换的调度,并通过根 Hub或其他的 Hub完成对交换的初始化。
2,USB的软件
http://qsyang.yeah.net
现代微机原理与接口技术
53
3,USB的拓扑结构
PCI总线 宿主机
USB主控制器 /根 Hub
高速电话高速显示器高速集线器高速麦克风 扬声器高速扬声器高速键盘高速低速麦克风 麦克风低速高速 =480Mb/s
全速 =12Mb/s
低速 =1.5Mb/s
USB的层次拓扑图
http://qsyang.yeah.net
现代微机原理与接口技术
54
3.4.2 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-
图 3.12 USB集成器和设备的电阻连接
USB数据线
USB数据线
http://qsyang.yeah.net
现代微机原理与接口技术
55
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 D+和 D-<0.8V
数据 J状态 差分,1”(不是逻辑 1) 差分,1”
数据 K状态 差分,0”(不是逻辑 0) 差分,0”
恢复状态 数据 K状态 数据 K状态闲置状态 N.A,D+>2.7V并且 D-<0.8V
http://qsyang.yeah.net
现代微机原理与接口技术
56
设备接入到端口上的过程设备从端口上断开过程
D+和 D-的电压全部下降到 0.8V并维持 2.5?s
连接状态 断开状态数据包传送结束过程保持信号线 2个位的传输时间的 SE0状态,之后保持 1个位传输时间的 J状态。
传送状态闲置状态
D+或 D-的电压上升到 2.5(2.7)V
断开状态闲置状态维持 2.5?s
以上连接状态信号线跳变到其反向逻辑电平数据 K
状态闲置状态数据包传送开始过程差分数据线按传送数据变换传送状态
http://qsyang.yeah.net
现代微机原理与接口技术
57
2.电气特性对地电源 电压为 4.75~5.25V,设备吸入的最大电流值为 500mA 。第一次被主机检测到时,
设备吸入的电流 <100mA
自给供电
总线供给
http://qsyang.yeah.net
现代微机原理与接口技术
58
3.NRZI编码原始数据空闲填充数据填充位
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
位填充和 NRZI编码
0 0 0 1 1 1 1 1 1 1 1 0 1 1
NRZI的编码方法不需独立的时钟信号和数据一起发送
,电平跳变代表,0”,没有电平跳变代表,1”。在数据被编码前,在数据流中 每 6个连续的,1”后插入 1个,0”
,从而强迫 NRZI码发生变化,也顺便让收发双发对准一次时钟,接收端必须去掉这个插入的,0”。
演示
http://qsyang.yeah.net
现代微机原理与接口技术
59
3.4.3 USB数据流类型和传输类型
◆ USB数据流类型有四种,控制信号流、块数据流、
中断数据流、实时数据流。
◆ USB有 4种基本的传输类型
2,批传输,单 /双向,用于 大批数据 传输,要求准确
,出错重传。时间性不强。
1,控制传输,双向,用于配置设备或特殊用途,发生错误需重传。 当 USB主机检测时,设备必须要用端点 0完成和主机交换信息的控制传送。
3,中断传输,单向入主机,用于 随机少量 传送。采用查询中断方式,出错下一查询周期重新传。
4,等时传输,单 /双向,用于 连续实时 的数据传输,
时间性强,但出错无需重传。传输速率固定。
http://qsyang.yeah.net
现代微机原理与接口技术
60
3.4.4 USB交换的包格式标志包 数据包 握手包一次交换(事务处理)
等时传输无握手包交换完毕,进入 帧结束间隔区 发送方把 D+和
D-上的电压降低到 0.8V以下,并保持 2个位的传输时间,然后维持 1个位传输时间的 J状态表示包结束,之后进入闲置状态。
每次交换均由主机发起,对中断传输,亦由主机发送查询包取得中断信息。
帧结束间隔区
http://qsyang.yeah.net
现代微机原理与接口技术
61
表 3.6 包的类型 (阴影部分是 USB2.0规范 )
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 为分离的高速和高带宽等时交换中的数据包
http://qsyang.yeah.net
现代微机原理与接口技术
62
握手包
ACK 0010b 接收设备发的接受数据正确的应答包
NAK 1010b 接收设备无法接受数据或没有数据返回个宿主
STALL 1110b 设备已经被挂起,需要主机插手解决故障
NYET 0110b 接收器无应答特殊包
PRE 1100b (Token)预告包,预告下面将以低速方式和低速设备通信
ERR 1100b (Handshake)分离交换错误的握手信号
SPLIT 1000b 高速分离交换标志
PING 0100b 为批或控制端点传输而设置的高速流控制探测
Reserved 0000b 保留
http://qsyang.yeah.net
现代微机原理与接口技术
63
包的一般格式
SYNC PID 包特定信息 CRC
8位 8位 n位 5位或 16位
SYNC,同步序列
PID,包标识别,发送从低位到高位所有数据发发送都时从低位开始向高位发送数据为 10000000b
PID0 PID1
LSb
PID2 PID3 PID0#PID1#PID2# PID3#
MSb
低 4位放 PID 高 4位放 PID的反码
http://qsyang.yeah.net
现代微机原理与接口技术
64
1,包的种类及格式
(1) 帧开始包( SOF)(一帧持续时间为 1ms)
SYNC PID FRAME NUMBER CRC
8位帧开始包格式
8位 11位 5位编码数据 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1
LSb MSb
演示
http://qsyang.yeah.net
现代微机原理与接口技术
65
SYCN PID ADDR ENDP CRC
8位接受和发送包的格式
8位 7位 4位 5位
(2) 接受包( IN)
(3)发送包( OUT)
接受交换包括了全部 4种传输类型接受交换,
根 Hub广播接受包?目标设备返回数据包?根 Hub发握手包。( 等时传输无握手包 )
发送交换,
根 Hub广播发送包?根 Hub发数据包?目标设备发握手包( 批传输才有握手包 )
发送交换包括了除中断传输外的其他 3种传输类型
http://qsyang.yeah.net
现代微机原理与接口技术
66
2.数据包
DATA CRCSYNC PID
8位
USB 1.1数据包格式
8位 0~1023位 16位
SYNC PID DATA CRC
8位
USB 2.0数据包格式
8位 0~8192位 16位
(4)设置包( SETUP)
控制传输开始由主机发设置包,后面可能由一个或多个 IN或 OUT交换,或只包含一个从端点传到主机的状态
http://qsyang.yeah.net
现代微机原理与接口技术
67
SYCN PID
8位握手包的格式
8位
3.握手包
4,特殊包数据接受方发向数据发送方
只有 SYNC和 PID组成
主机 希望与低速设备进行低速传输的时候发此包
PID域应该高速(全速)发送。
PID之后,在低速数据包传输之前要延迟 4个高速字节时间
低速设备只支持控制传输与中断传输
与低速设备交换数据只有 8字节
http://qsyang.yeah.net
现代微机原理与接口技术
68
3.4.5 USB设备状态和总线枚举主 机
HUB
设备
1.1 设备接入 [连接状态 ]
1.2 通知有设备接入
2 检测 Hub,确认有接入
3 使能该端口,发 RESET命令
4 发 RESET信号,供电 [上电状态 ]
5.1 利用默认端点 0读设备描述器
6.2 分发地址 [地址状态 ]
7.2 读配置信息
7.1 按地址读设备配置信息
8.2 写配置信息 [配置状态 ]
8.1 按地址设设备配置信息
6.1 给设备分发地址
5.2 读设备描述器 [地址默认状态 ]
http://qsyang.yeah.net
现代微机原理与接口技术
69
3.4.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 主机和外设功能
对话请求协议
除小和大功率之外增加了微功率选择
超小连接器
http://qsyang.yeah.net
现代微机原理与接口技术
70
USB On-The-Go 设备定义了一个新的称之为 mini-AB 的袖珍插孔,它能接入 mini-A 和 mini-B 插头。连接器的不同定义设备的 初始功能 。
VBUS
D+
D-
GND
ID
‘1’,Slave
B设备
‘0’,Master
A设备
mini-B 插头mini-A 插头
VCCVCC
http://qsyang.yeah.net
现代微机原理与接口技术
71
两个 OTG RTR(主 /从双角色 )设备相连,可以用主机交流协议 (HNP)随时切换主机角色。步骤如下:
1,A设备发出 SET_FEATURE命令后,B设备可请求总线控制权。
2,A设备挂起总线,通知 B设备可占用总线。
3,B设备发送信号,断开 A设备连接。
4,A设备启动 D+线本方的上拉电阻,将 D+置高。此时
A设备成为外设,B设备成为主机。
5,B设备完成对总线控制后,启动 D+线本方的上拉电阻
,放弃对总线的控制。
6,在以上电平变换的同时,通过软件实现真正的对总线的控制权变化。
http://qsyang.yeah.net
现代微机原理与接口技术
72
3.4.7 开发具有 USB功能的设备的先期准备
1.分清开发的设备类型
嵌入式 USB主机
USB Hub
基于 HID(人机接口设备 )的 USB设备
USB OTG设备
2.选择合适的控制芯片
内嵌 USB模块和嵌入式 CPU核的 SOC芯片
内嵌单片机内核的 USB控制芯片
可与其它嵌入式 CPU相连的单独 USB控制芯片
http://qsyang.yeah.net
现代微机原理与接口技术
73
3.一般的开发步骤
1) 根据选择的器件和要实现的功能,设计相关电路。
2) 编制软件(根据不同应用,设计其中部分或全部软件)。
- 设备驱动程序 (对 USB设备,或 OTG设备 )
- USB主机设备的控制程序(对主机或 OTG设备,如完成枚举功能等)
- 主机和设备的角色切换驱动(对 OTG设备)
- 编写相关的 PC端软件
4.目前常见的控制芯片
OTG芯片,ISP1362,OTG243
主机 /设备芯片,SL811HS,ISP1161
设备芯片,PDIUSBD12,ISP1581
HUB芯片,GL652USB
·
http://qsyang.yeah.net
现代微机原理与接口技术
74
通用性强 采用树形或菊花链结构,以级联方式在一个接口上最多可以连接 63个不同种类的设备。
传输速率高 IEEE1394a支持 100Mb/s,200Mb/s及
400Mb/s的传输速率。
实时性好 高传输率加上同步传送方式
总线提供电源 可 向被连接的设备提供 4~10V和 1.5A
的电源
系统中各设备之间关系平等 任何两个该接口的设备可以直接连接而不需要通过 PC机的控制
连接方便 采用设备自动配置技术,允许热插拔和即插即用 。
3.5 高性能串行总线标准 IEEE1394(自学)
3.5.1 IEEE1394的主要性能特点
http://qsyang.yeah.net
现代微机原理与接口技术
75
3.5.2 IEEE1394拓扑结构
CPU 内存 I/O
IEEE1394桥接器扫描仪 CPU 驱动器打印机 数码相机 CD ROM驱动器内部总线 连接并行总线
IEEE1394总线线缆连线图 3.19 IEEE1394总线系统结构
http://qsyang.yeah.net
现代微机原理与接口技术
76
3.5.4 IEEE1394的主要技术规范
1,IEEE1394数据传输方式
IEEE1394支持异步和同步 (等时 )两种数据传输方式。
2,IEEE1394电缆及连接
VP
1 3 5
2 4 6
TPB* TPA*
VG TPB TPA
5.4mm
11mm
2 4 6
VG TPB TPA
1 3 5
VP TPB* TPA*
11.3mm
6.2mm
图 3.20 六针插头及插座插头插座
http://qsyang.yeah.net
现代微机原理与接口技术
77
4 3 2 1
5.35mm
3.45mm
3.45mm
5.45mm
插头插座图 3.21四针插头和插座
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
5
66针连 6针 4针连 4针 4针连 6针图 3.22各种插头之间的连接
http://qsyang.yeah.net
现代微机原理与接口技术
78
3.6 AGP接口(自学)
二级高速缓存处理器芯片组
PCI设备系统主存图形控制器显存显示器
PCI设备
PCI
AGP
图 3.24 图形系统 AGP
连接方式
http://qsyang.yeah.net
现代微机原理与接口技术
79
1.AGP的特点
采用流水线技术进行内存读 /写
采用双泵技术
采用 DIME技术
采用边带寻址
显示 RAM和系统 RAM可以并行操作
缓解了 PCI总线上的数据拥挤。
http://qsyang.yeah.net
现代微机原理与接口技术
80
模式 工作频率 数据传输率 传输触发方式
× 1 66 MHz 264 MB/s 上升沿
× 2 133 MHz 532 MB/s 上升沿和下降沿
× 4 266 MHz 1064 MB/s 上升沿和下降沿
表 3.7 AGP工作模式
2,AGP的工作模式
http://qsyang.yeah.net
现代微机原理与接口技术
81
3.AGP PRO
高档 3D图形加速卡中通常会有许多显示内存,所以需要较大的电流设计,而 AGP Pro总线就是为提供额外的供电插槽而设计。 AGPPro总线插槽,在中央的部分,依旧是标准 AGP4X插槽设计,只不过在后端以及前端,加上了 12V/3V的电压,提供一些绘图专用显示卡所需要的电压。它要求邻近 AGP插槽的 1,2条
PCI插槽归其使用,并且这两条 PCI插槽至少能进行
33MHz/ 32位的操作,更理想的是提供 66MHz/ 64位的能力。