第二章 系统总线
1 总线的基本概念
计算五大基本部件的连接方式:分散连接、总线连接
**分散连接:**各部件之间使用单独的连线,虽然能提高CPU的工作效率。但当I/O设备增多时,I/O设备与主机的连接变得越来越复杂,使得电路设计复杂。
总线连接:接受共享性、发送互斥性,即所有外设均能接收到总线发来的信号,但每次只能一个设备占用总线。总线上数据的传输方式分为串行传输和并行传输。使用总线设计必须设置判优逻辑,以使各个设备保持有序占用总线。

2 总线的分类
按数据传送的方式可以分为:
- 并行传输总线
- 8位(不同位宽)
- 16位
- 32位
- 串行传输总线
按照使用范围可以分为:
- 计算机总线
- 测控总线
- 网络通信总线
2.1 片内总线
片内总线是指CPU内部的总线
2.2 系统总线
系统总线传输信息的不同又可以分为三类:数据总线(DB)、地址总线(AB)和控制总线(CB)
数据总线是双向传输总线,其位数与机器字长、存储字长有关,它是衡量系统性能的一个重要参数。
地址总线是单向传输总线用来指出数据总线上的源数据或目的数据的地址,与存储地址和I/O地址有关
控制总线是用与发出各种控制信号的传输线。对任一传输线来说,它的传输方向是单向的。但对于控制总线总体来说,又可认为是双向的。
2.3 通信总线
串行通信总线传输一个字节要通过一条传输线分8次由低位到高位按顺序逐位传送。
并行通信是在多条一位宽的传输线上同时传输数据
无论串行还是并行通信的数据传送速率都与距离成反比
3 总线的特性及性能指标
3.1 总线的特性
- **机械特性:**机械连接方式上的一些性能,如几何尺寸,插头与插座使用的标准,引脚个数顺序等
- **电器特性:**信号传递的方向和有效电平范围
- **功能特性:**定义每根传输线的功能
- **时间特性:**总线中的任一根线在什么时间内有效。时间特性一般用时序图来描述。
3.2 总线性能标准
总线的性能指标包括:
- **总线宽度:**总线的根数
- **总线带宽:**每秒传输字节数,单位可用MBps(兆字节每秒)
- 时钟同步/异步
- **总线复用:**一条信号上分时传送两种信号
- **信号线数:**地址总线、数据总线和控制总线三种总线的总和
- **总线控制方式:**包括突发工作、自动配置、仲裁方式、逻辑方式、技术方式等
- **其他指标:**如负载能力、电源电压、总下宽度能否扩展。通常用可连接扩增电路板数来反应总线的负载能力。
3.3 总线标准
总线标准,可视为系统与各模块、模块与模块之间的一个互联的标准界面。
4 总线控制
4.1 总线判优控制
按设备对总线有无控制功能可分为主设备和从设备
主设备对总线有控制权,从设备只能响应从主设备发来的命令。
总线判优可分为集中式和分布式,前者逻辑集中在一处(如CPU中),后者将控制逻辑分散在与总线连接的各个部件或设备上。
其中,集中控制优先权仲裁方式有以下三种
4.1.1 链式查询

BR:总线请求
BG:总线同意
BS:总线忙(是一个信号,bs=0表示空闲,bs=1表示总线在使用)
步骤一:在这个图中有从0开始的n个I/O接口,全部向总线控制部件发出请求。
步骤二:BG信号开始依次向下检查。
步骤三:BG信号遇到请求,设置BS(总线忙)=1,表示总线已经接收了请求,不在接收请求了。
步骤四:开始执行这次数据传输。
在查询链中离总线控制器最近的部件具有最高优先权,离总线控制器越远,优先权越低。
链式查询通过接口的优先权排队电路实现。
优点:结构简单,主要运用在简单的嵌入式系统中
缺点:速度慢,需要一直向下查询,对电路故障特别敏感
4.1.2 计数器定时查询方式
这种方式相对于链式查询方式取消了BG线,增加了设备地址线,这个线的作用就是用于比较计数器的数值和各个请求的设备的编号是否对应。
步骤一:I/O设备发出请求
步骤二:计数器从0开始,并且各个设备的值也都是固定的,计数器每增加一次就通过设备地址线检查该编号的设备是否发出请求(循环)
计数器的初值可用程序设置,以方便地改变优先次序。这种灵活性是以增加控制线数为代价的。
如果计数器的初值是从0开始,各部件的优先次序与链式查询法相同。
4.1.3 独立请求方式
独立请求的方式更加直接,每个I/O设备和总线控制部件都有一对一连接,在总线控制部件中可以按照队列的处理方式,来处理请求。
优点:响应时间快,对优先次序的控制相当灵活
缺点:控制线数增加了很多
4.2 总线通信控制
是为了解决主设备和从设备的协调配合问题。
**总线传输周期:**指主设备和从设备之间完成完整地可靠的通信所需要的时长
- **申请分配阶段:**主模块申请占用总线的请求,总线运用判优控制仲裁决定
- **寻址阶段:**主模块向从模块给出地址和命令
- **传数阶段:**主模块和从模块交换数据
- **结束阶段:**主模块撤销有关消息
总线控制通常有四种方式:同步通信、异步通信、半同步通信、分离式通信。异步通信又分为不互锁、半互锁、全互锁三种类型。

4.2.1 同步通信
主从双方由统一时标控制数据传送,也可由每个部件各自发出的时序发生器发出,但必须由总线控制部件发出的时钟信号对他们进行同步。适用于总线长度较短,各部件存取时间相对一致的场合。
4.2.2 异步通信
- 不互锁
主从设备在发送信号无需等待对方确认,当自己认为对方收到信号后便开始发送下一次信号 - 半互锁
主设备发送请求信号后必须收到从设备的应答才可以撤销请求信号,存在互锁关系。而从设备发出应答信号后无需等待主设备确认便可撤销其回答信号,不存在互锁关系。 - 全互锁
当主模块发送请求信号后必须等待从模块发送应答信号后才能撤销信号,又互锁关系。当从模块发送应答信号后必须等待主模块确认,当收到确认信号后才能撤销信号,也存在互锁关系。双发都存在互锁关系,故称为全互锁关系。
异步串行通信的数据传送速率用波特率来衡量。波特率是指单位时间内传送二进制数据的位数,单位用bps/s(位/秒)表示,记作波特。比特率是单位时间内传送的有效数据的位数,单位用bps表示。
4.2.3 半同步通信
半同步通信在地址、命令、数据信号的发出时间与同步通信相同,都参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别,当从模块处理速度较慢时,插入一个周期等待信号,直到从设备处理完成后开始读取数据。在半同步通信总线中多出一根wait’线。既保留了同步通信的基本特点,同时又像异步通信那样,允许不同速度的模块和谐地工作。
4.2.4 分离式通信
将每个传输周期划分成两个子周期,在第一个子周期主设备A将地址、命令以及其他相关信息发送到总线上,发送完毕立即释放总线。在第二个子周期中,当从设备B处理完成A设备发来的命令和地址后,申请占用总线,将数据传输到总线上。上述的两个传输子周期都只有单方向的信息流,每个模块都变成了主模块。
分离式通信的特点如下:
1)各模块欲占用总线使用权都必须提出申请
2)在得到总线使用权后,主模块在限定时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。
3)各模块在准备数据的过程中都不占用总线,使总线可接受其他模块的请求。
4)总线在工作时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分地利用了总线的有效占用,从而实现了总线在多个主、从模块间进行信息交叉重叠并行式传送,这对计算机系统时极为重要的。
这种方式控制比较复杂,一般在普通微型计算机系统中很少采用。