总线定时

总线定时是指主设备和从设备交换数据时,在时间上如何配合。它本质上是一种协议或规则:什么时候放地址、什么时候放命令、什么时候读数据、什么时候撤销信号。

常见定时方式有四类:

定时方式 核心机制 适合场景
同步定时方式 用统一时钟控制数据传送 总线较短、设备速度接近
异步定时方式 不用统一时钟,靠请求和回答信号握手 设备速度差异较大
半同步通信 统一时钟基础上增加等待信号 大体同步,但允许慢设备插入等待
分离式通信 请求和响应拆成两个子周期 避免从设备准备数据时长期占用总线

  • 同步定时:统一时钟,快而简单,但要求设备速度接近。
  • 异步定时:握手配合,适应性强,但控制复杂、速度较慢。
  • 半同步通信:统一时钟加 WAIT,允许慢设备插入等待。
  • 分离式通信:请求和响应拆开,减少等待期间的总线占用。

同步定时方式

同步定时方式使用一个统一的总线时钟协调发送方和接收方。若干个相等的时钟间隔构成一个总线周期,地址、命令和数据都必须在规定时刻出现。

以读操作为例:

  1. 主设备在某个时钟边沿给出地址。
  2. 主设备在后续时刻给出读命令。
  3. 被选中的从设备必须在规定时刻之前把数据送到数据总线上。
  4. 主设备在规定时刻取走数据。
  5. 主设备撤销命令,从设备撤销对数据总线的驱动。

同步定时的关键是所有部件都被迫按统一节奏完成动作

优点:

  • 传送速度快。
  • 控制逻辑简单。

缺点:

  • 主从设备属于强制同步。
  • 如果从设备速度跟不上固定节奏,就不能可靠完成传输。
  • 不便于及时检验通信有效性。

因此,同步定时适合总线长度较短、所接部件存取时间比较接近的系统。

异步定时方式

异步定时方式没有统一时钟,也没有固定时间间隔,而是依靠双方相互制约的握手信号完成定时。

基本过程是:

  1. 主设备发出请求信号。
  2. 从设备收到请求后开始准备或接收数据。
  3. 从设备准备好后发出回答信号。
  4. 双方根据约定撤销请求和回答信号。

根据请求和回答信号的撤销是否互锁,可分为三种方式。

类型 请求撤销 回答撤销 特点
不互锁方式 主设备不必等待回答,过一段时间自动撤销请求 从设备过一段时间自动撤销回答 速度最快,可靠性最差
半互锁方式 主设备必须等到回答后才撤销请求 从设备不必等待请求撤销,过一段时间自动撤销回答 折中
全互锁方式 主设备必须等到回答后才撤销请求 从设备必须等到请求撤销后才撤销回答 最可靠,速度最慢

异步定时的优点是总线周期长度可变,可以适应工作速度相差较大的设备。缺点是控制比同步方式复杂,速度通常也较慢。

Tip

异步方式看请求和回答是否互相等待。等待越完整,可靠性越高;等待越少,速度越快。

# 半同步通信

半同步通信是在统一时钟的基础上增加等待响应信号,例如 WAIT

它保留同步通信的统一节奏,但允许慢速从设备在数据尚未准备好时插入等待周期。这样,主设备不必完全放弃时钟控制,从设备也不必强行赶在固定时刻前完成。

可以把半同步通信理解为:

$$
\text{同步时钟} + \text{可插入等待周期}
$$

因此它介于同步和异步之间:

  • 和同步方式一样,有统一时钟。
  • 和异步方式一样,允许不同速度的模块协调工作。

分离式通信

同步、异步和半同步通信都有一个共同点:一次传输过程中,主设备发出请求后,通常要等到从设备完成响应,整个过程容易让总线被等待时间占住。

分离式通信把一次传输拆成两个子周期:

  1. 子周期 1:主设备申请并占用总线,发出地址和命令,然后释放总线。
  2. 准备阶段:从设备准备数据,此时不占用总线。
  3. 子周期 2:从设备申请并占用总线,把数据送回主设备。

分离式通信的特点是:

  • 各模块都可以申请占用总线。
  • 采用同步方式通信,但不等待对方立即回答。
  • 从设备准备数据时不占用总线。
  • 总线利用率更高。
Note

分离式通信把等待时间从总线占用时间中分离出去,让总线可以在等待期间服务其他事务。