同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接受数据
主设备:获得总线控制权的设备
从设备:被主设备访问的设备。只能响应主设备发来的各种总线命令
为什么要进行仲裁?
总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题
总线仲裁的定义:
多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得控制权
工作流程:
1、主设备发出请求信号
2、若多个主设备同时要使用总线,则由总线控制器的判优、仲裁逻辑按一定的优先等级确定哪个主设备能使用总线
3、获得总线使用权的主设备开始传送数据
分类:
分布仲裁方式
每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线
集中仲裁方式:
链式查询方式
优先级:离控制器越近的部件,其优先级越高;离控制器越远的部件,其优先级越低
优点:只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易
缺点:对硬件电路的故障敏感,并且优先级不能改变。当优先级高的部件频繁请求使用总线时,会使优先级低的部件长期不能使用总线
计数器定时查询方式
结构特点:用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址,少了一根总线响应线BG;使用一根总线请求线
优点:
1、奇数初始值可以改变优先次序
*计数每次从0开始,设备的优先级就按顺序排列,固定不变
*计数从上一次终点开始,此时设备使用总线的优先级相等
*计数器的初值还可以由程序设置
2、对电路的故障没有链式敏感
缺点:
1、增加了控制线数。若设备有n个,则需【log2 n】+2条控制线
2、控制相对比链式查询更加复杂
独立请求方式
结构特点:每一个设备均有一对总线请求线BRi和总线允许线BGi
*当总线上的部件需要使用总线时 ,经各自的总线请求发送总线请求信号,在总线控制器中排队。
*当总线控制器按一定的优先次序决定批准某个部件的请求时,则给该部件发送总线响应信号。
优点:
1、响应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或者查询
2、对优先次序的控制相当灵活
缺点:
1、控制线数最多:若设备有n个,则需要2*n+1条控制线。其中+1为BS线,用于设备向总线控制部件反馈已经使用完毕总线
2、总线控制逻辑更加复杂
BS信号的建立者是获得总线控制权的设备