Bus Timing
总线定时
总线定时是指主设备和从设备交换数据时,在时间上如何配合。它本质上是一种协议或规则:什么时候放地址、什么时候放命令、什么时候读数据、什么时候撤销信号。
常见定时方式有四类:
| 定时方式 | 核心机制 | 适合场景 |
|---|---|---|
| 同步定时方式 | 用统一时钟控制数据传送 | 总线较短、设备速度接近 |
| 异步定时方式 | 不用统一时钟,靠请求和回答信号握手 | 设备速度差异较大 |
| 半同步通信 | 统一时钟基础上增加等待信号 | 大体同步,但允许慢设备插入等待 |
| 分离式通信 | 请求和响应拆成两个子周期 | 避免从设备准备数据时长期占用总线 |
- 同步定时:统一时钟,快而简单,但要求设备速度接近。
- 异步定时:握手配合,适应性强,但控制复杂、速度较慢。
- 半同步通信:统一时钟加
WAIT,允许慢设备插入等待。 - 分离式通信:请求和响应拆开,减少等待期间的总线占用。
同步定时方式
同步定时方式使用一个统一的总线时钟协调发送方和接收方。若干个相等的时钟间隔构成一个总线周期,地址、命令和数据都必须在规定时刻出现。
以读操作为例:
- 主设备在某个时钟边沿给出地址。
- 主设备在后续时刻给出读命令。
- 被选中的从设备必须在规定时刻之前把数据送到数据总线上。
- 主设备在规定时刻取走数据。
- 主设备撤销命令,从设备撤销对数据总线的驱动。
同步定时的关键是所有部件都被迫按统一节奏完成动作。
优点:
- 传送速度快。
- 控制逻辑简单。
缺点:
- 主从设备属于强制同步。
- 如果从设备速度跟不上固定节奏,就不能可靠完成传输。
- 不便于及时检验通信有效性。
因此,同步定时适合总线长度较短、所接部件存取时间比较接近的系统。
异步定时方式
异步定时方式没有统一时钟,也没有固定时间间隔,而是依靠双方相互制约的握手信号完成定时。
基本过程是:
- 主设备发出请求信号。
- 从设备收到请求后开始准备或接收数据。
- 从设备准备好后发出回答信号。
- 双方根据约定撤销请求和回答信号。
根据请求和回答信号的撤销是否互锁,可分为三种方式。
| 类型 | 请求撤销 | 回答撤销 | 特点 |
|---|---|---|---|
| 不互锁方式 | 主设备不必等待回答,过一段时间自动撤销请求 | 从设备过一段时间自动撤销回答 | 速度最快,可靠性最差 |
| 半互锁方式 | 主设备必须等到回答后才撤销请求 | 从设备不必等待请求撤销,过一段时间自动撤销回答 | 折中 |
| 全互锁方式 | 主设备必须等到回答后才撤销请求 | 从设备必须等到请求撤销后才撤销回答 | 最可靠,速度最慢 |
异步定时的优点是总线周期长度可变,可以适应工作速度相差较大的设备。缺点是控制比同步方式复杂,速度通常也较慢。
Tip
异步方式看请求和回答是否互相等待。等待越完整,可靠性越高;等待越少,速度越快。
半同步通信是在统一时钟的基础上增加等待响应信号,例如 WAIT。
它保留同步通信的统一节奏,但允许慢速从设备在数据尚未准备好时插入等待周期。这样,主设备不必完全放弃时钟控制,从设备也不必强行赶在固定时刻前完成。
可以把半同步通信理解为:
$$
\text{同步时钟} + \text{可插入等待周期}
$$
因此它介于同步和异步之间:
- 和同步方式一样,有统一时钟。
- 和异步方式一样,允许不同速度的模块协调工作。
分离式通信
同步、异步和半同步通信都有一个共同点:一次传输过程中,主设备发出请求后,通常要等到从设备完成响应,整个过程容易让总线被等待时间占住。
分离式通信把一次传输拆成两个子周期:
- 子周期 1:主设备申请并占用总线,发出地址和命令,然后释放总线。
- 准备阶段:从设备准备数据,此时不占用总线。
- 子周期 2:从设备申请并占用总线,把数据送回主设备。
分离式通信的特点是:
- 各模块都可以申请占用总线。
- 采用同步方式通信,但不等待对方立即回答。
- 从设备准备数据时不占用总线。
- 总线利用率更高。
Note
分离式通信把等待时间从总线占用时间中分离出去,让总线可以在等待期间服务其他事务。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Elian's blog page!