1、目的
解决主设备和从设备的协调配合问题
2、总线传输周期:
指主设备和从设备之间完成完整地可靠的通信所需要的时长
- 申请分配阶段:主模块申请占用总线的请求,总线运用判优控制仲裁决定
- 寻址阶段:主模块向从模块给出地址和命令
- 传数阶段:主模块和从模块交换数据
- 结束阶段:主模块撤销有关消息
3、总线通信的四种方式:
- (1)同步数据输入/出(有定宽定距的时长)
- (2)异步数据输入/出
不互锁:
主设备发出请求信号,从设备发出应答信号,经过一定的延时,主设备不管有没有收到从设备的应答信号都会撤销请求信号,从设备也如此,不管主设备有没有收到应答信号,经过一定的延时以后,会自动撤销应答信号。
半互锁:
主设备发出请求信号以后,从设备接受到请求信号,发出应答信号,主设备唯有接受到从设备发出的应答信号后才会撤销请求信号,但是从设备不管主设备有没有接受到应答信号,经过一定的延时,都会撤销应答信号,这就可能造成主设备一直没有接受到应答信号导致主设备发出的请求信号一直处于高电平状态。
全互锁:
全互锁解决了半互锁存在的问题,当主设备向从设备发出请求信号以后,从设备接收到请求信号之后将发出应答信号直到主设备接收到来自从设备的应答信号才撤销请求信号,主设备撤销请求应答信号之后,从设备才会撤销应答信号,这就避免了可能导致主设备发出的请求信号一直处于高电平的状态。
三种方式可以类比为微信的撤回功能。
- (3)半同步通信方式(结合同、异步通信)
这样就允许了不同速度的主从设备之间进行信息交换。
- 同步
发送方用系统时钟前延发信号
接收方用系统时钟后延判断、识别
- 异步
允许不同模块和谐工作
增加一条等待信号
过程模拟:
- T1:主模块发地址
- T2:主模块发命令
- Tw:等待从设备准备数据
- Tw:等待从设备准备数据
- ...
- T3:从模块发数据
- T4:从模块撤销数据,主模块撤销命令
上述通信方式的共同点:
- 都是主模块发地址、命令 (占用总线)
- 从模块准备数据 (不占用总线)
- 从模块向主模块传输数据 (占用总线)
我们了解到总线的运行一直处于一个瓶颈,总线很忙,但我们发现上述的通信方式,总线在特定的时间段内是空闲着的,这就造成了一张浪费,为了充分利用这段时间,我们将周期分为两个周期:
- 子周期1:主模块发地址、命令 (占用总线)
- 子周期2:从模块向总线传数据 (占用总线)
这就是我们说的 分离式通信
它的特点有:
- 各模块有权申请占用总线
- 采用同步方式通信,不等对方回答(通过等宽等距的方式)
- 各模块准备数据、不占用总线
- 总线为空闲时段