总线(2):总线的通信控制
总线通信控制
参考链接:总线通信控制_KAKA的博客-CSDN博客_总线通信控制
总线传输周期:主设备和从设备之间完成完整地可靠的通信所需要的时长
- 申请分配阶段:主设备申请,总线仲裁(总线判优逻辑)
- 寻址阶段:主设备将地址、命令发送给从设备
- 传数阶段:交换数据
- 结束阶段:主模块撤销消息
总线通信:
一、同步通信 由统一时标控制数据传送 固定时间点上给出固定的操作
同步数据输入(以CPU为主设备为例,数据传入CPU):
分析:总线传输周期分为四个周期,每个周期执行不同的任务:第一个时钟周期T1的上升沿,CPU给出地址信号,第二个时钟周期T2的上升沿,CPU给出读命令;第三个时钟周期T3的上升沿,从设备输出数据(CPU接收数据);T4上升沿,CPU的数据接收和操作命令结束;T4结束,地址传输命令结束。
同步数据输出:
分析:第一个时钟周期T1的上升沿,CPU给出地址信号;第一个时钟周期T1的下降沿,CPU给出数据信号;第二个时钟周期上升沿给出写命令,CPU给出写命令,在第四个时钟周期上升沿时,数据信号和控制命令停止。第四个时钟周期结束,地址信号停止。
二、异步通信 采用应答方式,没有公共时钟标
不互锁方式:主设备给出请求后(不考虑主设备是否收到了应答请求),就撤销信号;从设备收到请求信号后给出应答信号,从设备撤销应答信号。
半互锁方式 :主设备给出请求信号后,从设备收到请求信号后给出回答信号,主设备收到回答信号后撤销请求信号,从设备撤销请求信号,如果接收不到应答信号,请求信号会保持
全互锁方式 主设备给出请求信号,从设备收到请求信号后给出应答信号,主设备收到从设备的应答信号后撤销请求信号;只有主设备撤销请求信号后,从设备才撤销应答信号
三、半同步通信 同步、异步结合
1.同步:发送方用系统时钟前沿发信号 , 接收方用系统时钟后沿判断,识别
2.异步:允许速度不同的模块和谐工作,增加一条等待相应信号线 WAIT
工作原理:(设CPU向某一外设读取数据)T1上升沿CPU给出地址信号,T2上升沿CPU给出控制信号,若在第三个时钟周期从设备不能准备好数据(应答部分),则需要将WAIT信号设置为低电平,Tw上升沿WAIT为低电平,等待一个时钟周期T;T3上升沿开始读数据,同时给出数据信号;T4开始结束数据信号和控制信号,T4结束时撤销地址信号
上述三种通信的共同点
- 主模块发地址,命令 占用总线
- 从模块准备数据 不占用总线,总线空闲(WAIT)
- 从模块向主模块发数据 占用总线
四、分离式通信 充分挖掘系统总线每个瞬间的潜力
在一个总线传输周期内
- 子周期1 主模块申请占用总线,使用完后即放弃总线的使用权
- 子周期2 从模块申请占用总线,将信息送至总线上
特点:
- 各模块有权申请占用总线(即主从设备状态可调换)
- 采用同步方式通信,不等对方回答
- 准备数据时不占用总线
- 总线被占用时,无空闲