1
第三章 微机总线与接口标准
2
第一节 总线与接口概述一、总线和接口及其标准的概念总线 定义,是在模块和模块之间或设备与设备之间的一组进行互连和传输信息的 信号线,信息包括指令、
数据和地址。
总线标准,指芯片之间、扩展卡之间以及系统之间,
通过总线进行连接和传输信息时,应该遵守的一些协议与规范。
接口标准,外设接口的规范,涉及接口信号线定义、
信号传输速率、传输方向和拓扑结构,以及电气特性和机械特性等多个方面。
3
总线与接口的区别:
总线标准具有公用性;接口标准大多是专用的。
总线往往以主板上的总线扩展槽形式提供使用;接口一般是以接口插座(头)形式提供使用。
总线一般是并行传输;接口有并行传输,也有串行传输。
总线定义的信号线多,而且齐全,有分离的控制线
、数据线和地址线;接口的信号线少,而且不齐全,
一般是控制线、数据线和地址线共用。
4
二、总线的分类
1、按总线功能或信号类型划分数据总线、地址总线、控制总线
2、按总线的层次结构分
CPU总线、局部总线、系统总线、通信总线
5
三、总线的主要性能参数
1、总线频率
2、总线宽度
3、总线数据传输率总线数据传输率 =(总线宽度 /8位 )× 总线频率例,PCI总线的总线频率为 33.3MHz,总线宽度为 64
位的情况下,总线数据传输率为 266MB/s 。
6
四、总线标准的特性
1、物理特性
2、功能特性
3、电气特性
4、时间特性
7
五、总线操作与控制
1、总线操作过程
1)总线请求和仲裁阶段
2)寻址阶段
3)数据传送阶段
4)结束阶段
2,总线传送控制
1)同步方式
2)异步方式
3)半同步方式
4)分离方式
8
第二节 系统 总线一,ISA总线
1,ISA总线的信号
2,ISA总线扩展卡的设计
1) ISA总线扩展卡的物理尺寸
2) ISA总线扩展卡的地址分配和中断号分配
3,ISA总线操作
9
二、其他总线
1,EISA总线
EISA总线支持 32位地址,具有 32位数据总线,总线频率 8.33MHz,最大数据传输率达到 33.3MB/s
(8.33× 32位 /8)。
结构与 ISA兼容,EISA总线插槽与 ISA插槽等长等宽,内部被设计成为双层引脚。
2,PC104总线采用超小尺寸插卡,自叠总线结构,总线驱动电流小,功耗低。
10
第三节 PCI总线一,PCI总线特点
1) 独立于处理器
2) 传输效率高
3) 多总线共存
4) 支持突发传输
5) 支持总线主控方式
6) 采用同步操作
7) 支持两种电压下的扩展卡
8) 具有即插即用功能
9) 合理的管脚安排
10) 预留扩展空间
11
二,PCI总线信号定义
1,系统接口信号
CLK IN,PCI系统总线时钟最高 33MHz/66MHz,最低 0Hz。
PCI大部分信号在 CLK的上升沿有效。
2,地址与数据接口信号
AD[31:00] T/S:它们是地址、数据多路复用的输入 /输出信号在 FRAME#有效的第 1个时钟,传送的是地址,称为 地址期 。
在 IRDY#和 TRDY#同时有效时,传送的是数据,称为 数据期 。
12
C/BE[3:0]# T/S:它们是总线命令和字节使能多路复用信号线地址期内表示总线命令,数据期内表示字节使能信号。
PAR T/S:针对 AD[31:00]和 C/BE[3:0]#进行奇偶校验的校验位
3.接口控制信号
FRAME# S/T/S:帧周期信号
FRAME#信号无效表示传输进入最后一个数据期。
IRDY# S/T/S:主设备准备好信号
TRDY# S/T/S:从设备准备好信号
13
STOP# S/T/S:从设备发出的要求主设备终止当前的数据传送的信号。
LOCK# S/T/S:锁定信号
IDSEL IN:初始化设备选择信号
DEVSEL# S/T/S:设备选择信号
4.仲裁接口信号
REQ# T/S:总线占用请求信号
GNT# T/S:总线占用允许信号
14
5.错误报告接口信号
PERR# S/T/S:数据奇偶校验错误报告信号
SERR# O/D:系统错误报告信号
6.中断接口信号
PCI有 4条中断线,分别是 INTA#,INTB#,INTC#、
INTD#
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:奇偶双字节校验
16
三,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 存储器写并无效
17
四,PCI总线协议
1,PCI总线的寻址
( 1) I/O地址空间在 I/O地址空间,32位 AD线全部被用来提供一个完整的地址编码(字节地址)。
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
18
( 2)内存地址空间
31 01
双字边界对齐的起始地址
2
00 地址递增
01 Cache行切换
1X 保留
( 3)配置地址空间
7 01
双字边界对齐的起始地址
2
00 选择该设备
01 访问该桥路后设备
1X 保留
19
2、字节对齐
PCI总线上不能进行字节的交换。具有 64位通道的主设备可以进行 DWORD(双字)的交换。
主设备可在每个新数据期开始的时钟前沿改变字节使能信号,且在整个数据期中保持不变。
读缓冲中的数据可以不考虑字节使能信号,而传送所有的字节。
20
3,PCI总线的传输控制规则
(1) FRAME#和 IRDY#定义了总线的忙 /闲状态。
00空闲,11数据,01最后一个数据,10等待状态。
(2) 一旦 FRAME#信号被置为无效,在同一传输期间不能重新设置。
(3) 除非设置 IRDY#信号,一般情况下不能设置
FRAME#信号无效。
(4) 数据期内设置 IRDY#信号无效,表示插入了等待周期。
21
4,PCI总线的驱动与过渡在每个地址(数据)期中,所有的 AD线都必须被驱动到稳定的状态(数据),包括那些字节使能信号表明无效的字节所对应的 AD线。
从一个设备驱动总线到另一个设备驱动 PCI总线之间设置一个过渡期,又称为交换周期,以防止总线访问冲突。 (例如读操作)
22
5、设备选择
CLK
FRAME#
IRDY#
TRDY#
DEVSEL#
1 2 3 4 5 6 7 8
FAST MED SLOW ……
所有从设备共用 PCI总线的 DEVSEL#信号。
从设备设置了 DEVSEL#信号,传输完成前不能撤消它。
23
五,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
地址期 数据期 数据期 数据期
24
2、总线上的写操作
CLK
FRAME#
1 2 3 4 5 6 7 8 9
AD
C/BE#
IRDY#
TRDY#
DEVSEL#
ADDRESS DATA2DATA1 DATA3
BUSCMD
地址期 数据期 数据期 数据期
BEs1 BEs2 BEs3
25
3.传输的终止过程
(1) 由主设备提出的终止
(2) 由从设备提出的终止原因,传输结束,超时处理,建立 IRDY#,撤消 FRAME#,直到 TRDY#
有效后传输完最后一个数据原因,死锁,8个时钟内无响应处理,发 STOP#
26
当 STOP#信号有效时,FRAME#应该在其后的 2~3个时钟周期内尽快撤消,但撤消时应使 IRDY#有效,从设备应无条件的保持 STOP#的有效状态直到 FRAME#撤消为止。 FRAME#撤消后,STOP#也应该紧跟着撤消。
PCI总线上传输终止遵循的规则:
在任何时钟的上升沿,若 STOP#和 TRDY#同时有效,
就表示是传输的最后周期,IRDY#要在下一个时钟的上升沿之前撤消,表示传输的结束。
对被目标设备终止的传输,主设备要继续完成它,
就必须用下一个未传输的数据的地址来重试访问。
27
六,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
28
七,PCI总线配置
1、配置空间头区域及功能
29
(1)设备识别信息
(2)设备控制信息
(3)设备状态信息
30
(4)基址寄存器
1
I/O空间指针规范规定每个 I/O基地址下的端口数不得大于 256。
31 2 1 0
基 地 址保留
0
预取使能存储空间指针00 32位地址空间任意映射
01 32位地址空间 1M字节以内映射(已经不用)
10 64位地址空间任意映射
11 保留
31(63) 3 2 1 0
基 地 址
31
例 1,基址寄存器的值 =FFF00000h
位 0=0,表示是一个存储器地址空间映射
位 [2:1]=00b,它使能 32位存储器映射
位 3=0,表示它不是预取存储器。
位 [31:4]第一个为 1的是位 20,表示映射的存储空间为 1MB=220。这意味着存储映射的基地址应该起始于 1MB,2MB,3MB等的边界上。
系统经过权衡后再向该基址寄存器写入实际映射的空间基址。
基址寄存器是为简化设备配置过程、达到配置空间的映射与设备无关的目标而设计的。
32
位 0=1,表示是一个 I/O地址空间映射
位 [31:2],第一个为 1的是位 8,表示映射的 I/O空间为 256。这意味着 I/O地址映射的基地址应该起始于 256的整数倍。
例 2,基址寄存器的值 =FFFFFF01h
最大 /最小存储映射地址空间最小存储映射地址空间 =16字节最大存储映射地址空间 =2GB
最大 /最小 I/O映射地址空间最小 I/O映射地址空间 =4字节最大存储映射地址空间 =256字节
33
扩展 ROM访问允许
31 11 10 1 0
基 地 址 保 留
(5)扩展 ROM基地址寄存器例,扩展 ROM基地址 =FFFF0001H
位 0=1,表示扩展 ROM访问允许
位 [31:11],第一个为 1的是位 16,表示映射的存储空间为 64K。这意味着 ROM映射的基地址应该起始于 64KB的边界。
(6)头区域中其它寄存器
34
2、配置空间的访问
(1) 配置空间访问时目标设备的选择某一 PCI设备作为配置访问的目标设备条件:
它的 IDSEL信号有效;
地址期内 AD[1:0]为 00。
各 PCI设备 IDSEL信号连接方法:
* AD[15∶ 11]连到各设备的 IDSEL输入信号,
AD[23∶ 16]为设备所属 PCI桥(总线)号;
* PCI桥上的各 IDSEL输出信号连到各设备的
IDSEL输入信号。
35
顶级 PCI总线的总线号 (AD[23∶ 16])为 0;
PCI桥下的 PCI总线的总线号 (AD[23∶ 16])不为 0;
任何设备的 IDSEL信号均连接到 AD[15∶ 11]中的一个。
PCI桥目标 PCI桥转传 AD[31:0]
AD[15:11]选择设备
AD[23:16]选择目标总线如何对 各 设备进行访问?
先访问顶级 PCI总线上的各设备,AD[1∶ 0]=00;
再访问 PCI桥下的各设备,AD[1∶ 0]=01。
36
(2) 配置空间访问的类型
0类配置空间访问( AD[1∶ 0]=00)
对(正在运行的) 当前 PCI总线上的目标设备配置寄存器所进行的访问。
地址期:
AD[10∶ 8]为选择的多功能物理设备的功能号
(最多有八个功能设备集成在一块卡上);
AD[7∶ 2]为选择该功能设备的配置寄存器号;
AD[1∶ 0]必须为 00。
数据期:
AD[31∶ 0]传送的是配置读 /写数据。
目标设备,在地址期采样到其 IDSEL输入信号有效,使其 DEVSEL信号有效。
37
1类配置空间访问( AD[1∶ 0]=01)
对(通过 PCI/PCI桥连接的) 下一级 PCI总线上的目标设备(配置寄存器)所进行的访问。
目标 PCI桥检测:
总线号 (AD[23∶ 16])为本 PCI桥下总线号或属于本 PCI桥下总线的下级的总线范围。
目标 PCI桥处理:
总线号为本 PCI桥下总线号:将 AD[1∶ 0]改为
00,将 AD[31∶ 0]传给桥下总线进行 0类配置访问。
总线号属于本 PCI桥下总线的下级总线范围:
将 AD[31∶ 0]传给桥下总线进行 1类配置访问。
38
(3) 配置访问的访问方法
Intel x86不能对配置空间寄存器直接读 /写。
配置机构,PCI协议定义的将处理器发出的 I/O或存储器访问识别或转换为配置访问的转换机构 。
配置机构实现方法,利用两个 32位的 I/O端口寄存器来访问 PCI设备的配置空间。
配置地址端口寄存器 (I/O地址为 0CF8H~0CFBH),
配置数据口寄存器 (I/O地址为 0CFCH~0CFFH)。
配置机构实现步骤:
*将要访问的总线号、设备号、功能号和双字号写到配置地址端口寄存器。(基本与地址期 AD同)
*执行一次对配置数据端口寄存器的 I/O读 /写。
39
八,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为子功能号 。
40
第四节 通用串行 总线 USB
一,USB系统组成
1,USB的软硬件
USB主控制器 /根集线器
USB集线器 (USB Hub)
USB设备
USB设备驱动程序
USB驱动程序
USB主控制器驱动程序
41
2,USB的拓扑结构
PCI总线 宿主机
USB主控制器 /根高速电话高速显示器高速集线器高速麦克风 扬声器高速扬声器高速键盘高速低速麦克风 麦克风低速高速 =12Mb/s
低速 =1.5Mb/s
42
二,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数据线返回下页 返回 44页
43
2、电气特性收发器,对地电源 电压为 4.75~5.25V,设备吸入的最大电流值为 500mA,D+,D-上不加电压。
USB设备,高速在 D+上加 3.0~3.6V电压,低速反之 。
D+,D-线电气特性:
无驱动:高速 VD+ > 2.7V,VD-< 0.8V,低速反之;
有驱动:高速 VD+ > 2.0V,VD-< 2.0V,低速反之。
D+,D-线信号特性:
高电平,VD+ - VD-> 200mV,VD+ > 2.0V;
低电平,VD-- VD+ > 200mV,VD- > 2.0V。
D+,D-线数据特性:
逻辑 0,D+,D-线上电平高、低间跳变;
逻辑 1,D+,D-线上电平不变。
转上页 返回下页
44
3、总线状态未连接 (或断开 )状态:
SE0,时间 >2.5μs。
连接状态,( 高速,低速反之 )
高速 VD+ > 2.7V,VD-<0.8V,时间 >2.5μs 。
RESET状态:
SE0,时间 >10ms 。
空闲状态,( 高速,低速反之 )
VD+ > 2.7V,VD-<0.8V。
工作状态,( 高速,低速反之 )
J状态 — 高电平,K状态 — 低电平 。
转 42页
SE0定义,VD+ <0.8V,VD-<0.8V。
返回 51页转上页
45
USB Hub包含 状态:
未连接状态,连接状态,RESET状态,空闲状态,
工作状态 。
未连接状态 连接状态 RESET状态空闲状态 工作状态如何识别未连接 状态与 RESET状态?
如何识别 连接状态与空闲状态?
USB设备包含 状态:
连接状态,上电状态,地址默认状态,地址状态,
配置状态,空闲状态,工作状态 。
返回下页
46
4,USB设备状态和总线枚举主 机
HUB
连接状态上电状态地址默认状态地址状态配置状态
3 使能该端口,发 RESET命令
4 发 RESET信号,供电 [RESET状态 ]
1.1 设备接入 [连接状态 ]
1.2 通知有设备接入
6.1 给设备分发地址
6.2 分发地址 [工作状态 ]
5.2 读设备的描述器信息 [工作状态 ]
5.1读设备的描述器信息
2 检测 Hub,确认有接入
7.1 按地址读设备配置信息
7.2 读配置信息 [工 ]
8.1 按地址设设备配置信息
8.2 写配置信息 [工 ]
[空闲状态 ]
转上页
47
5,NRZI编码空闲位表示,高速 VD+ > 2.7V,VD-<0.8V,低速反之。
原始数据空闲 0 0 0 1 1 1 1 1 1 1 1 0 1 1
填充 规则,连续 6个 1后插入 1个 0。
填充数据填充位
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 0 1 1 0 1 1
编码规则,逻辑 0产生电平跳变,逻辑 1无电平跳变。
48
三,USB数据流类型和传输类型
1,USB数据流类型控制信号流、块数据流、中断数据流、实时数据流。
2,USB的基本传输类型
2)批传输,单 /双向,用于大批数据传输,要求准确,出错重传,时间性不强。
1)控制传输,双向,用于配置设备或特殊用途,
出错重传。
3)中断传输,单向入主机,用于随机少量传送。
采用查询中断方式,出错时下一查询周期重新传。
4)等时传输,单 /双向,用于连续实时数据传输,
时间性强,出错不重传,传输速率固定。
49
四,USB交换的包格式标志包 数据包 握手包一次交换(事务处理)
1,USB传输过程一次 USB传输包含一个或多个交换。
每次交换均由主机发起,对中断传输,亦由主机发送查询包取得中断信息。
50
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 为分离的高速和高带宽等时交换中的数据包
Handsha
ke
ACK 0010b 接收设备发的接受数据正确的应答包
NAK 1010b 接收设备无法接受数据或没有数据返回个宿主
STALL 1110b 设备已经被挂起,需要主机插手解决故障
NYET 0110b 接收器无应答
Special PRE 1100b (Token)预告包,预告下面将以低速方式和低速设备通信
ERR 1100b (Handshake)分离交换错误的握手信号
SPLIT 1000b 高速分离交换标志
PING 0100b 为批或控制端点传输而设置的高速流控制探测
Reserved 0000b 保留
PID类型 PID名称 PID[3:0] 描述
51
2、包的一般格式
SYNC PID 包正文信息 CRC
8位 8位 n位 5位或 16位包结束间隔区
≥ 2位
SYNC:同步序列所有信息段都是从低位 (左 )开始向高位 (右 )发送。
数据为 10000000
PID:包分类码
PID0 PID1
LSb
PID2 PID3 PID0# PID1# PID2# PID3#
MSb
PID PID的反码包结束间隔区,≥1位 SE0和 1位 J状态。
转 44页
52
3、标志 包
(1) 帧开始包 (SOF)
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
标志包由帧开始包和接受 (或发送、设置 )包组成。
发送方,主机 (每隔 1ms一次 )。
53
SYCN PID ADDR ENDP CRC
8位 8位 7位 4位 5位
(2) 接受包 (IN)
接受交换包括了全部 4种传输类型。
接受交换,
根 Hub广播接受包?目标设备返回数据包?根
Hub发握手包 (等时传输无握手包)
(3)发送包 (OUT)
发送交换,
根 Hub广播发送包?根 Hub发数据包?目标设备发握手包 (批传输才有握手包)
接受交换包括了除中断传输外的其他 3种传输类型。
54
(4)设置包 (SETUP)
控制传输开始由主机发设置包,后面可能由一个或多个 IN或 OUT交换,或只包含一个端点传到主机的状态。
4、数据包
DATA CRCSYNC PID
8位
USB 1.1数据包格式
8位 0~1023位 16位
SYNC PID DATA CRC
8位
USB 2.0数据包格式
8位 0~8192位 16位发送方,主机或设备。
55
SYCN PID
8位 8位
5、握手包发送方,主机或设备,即数据接受方。
6、特殊包
只由 SYNC和 PID组成
主机希望与低速设备进行低速传输时发此包
低速设备只支持控制传输与中断传输
与低速设备交换数据只有 8字节发送方,主机。
56
第五节 高性能串行总线标准 IEEE1394
第六节 AGP接口
57
为什么 DMA传送方式能实现高速传送?
DMA传送的过程是什么样的?画出流程。
DMA有哪些操作方式?各有什么特点。
简述 DMA控制器的两个工作状态的特点。
试设计一种在 8088大模式下与 8237连接的基本电路图。并说明你的设计中 8237各个端口的实际地址。
DMA控制器的时序包括哪几个状态周期?试画出正常读传输的时序。
DMAC的内部地址寄存器是 16位的,如何扩展地址来访问 16MB的地址空间?
第四章 DMA技术思考题