• 沒有找到結果。

接口的数据传输方式

在文檔中 嵌 入 式 系 统 应 用 开 发 (頁 167-170)

第 5 章 嵌入式系统接口技术

5.1.4 接口的数据传输方式

接口的控制方法是互连设备之间信息传递的管理方法,起着同步 CPU 与接口之间数 据交换的作用。常用的接口的数据传输方式有程序控制方式、中断控制方式和 DMA 控制 方式。

1. 程序控制方式

程序控制方式是指接口数据的输入/输出是在程序的控制下完成的。程序控制方式是 最简单的数据传输方式,数据在什么时间发送以及在什么时间接收完全由 CPU 控制。程 序控制方式根据 CPU 控制接口读写的条件又可分成无条件传送方式和条件控制方式。接 下来分别讲述一下无条件传送方式和条件控制方式的设计实现原理。

所谓无条件传送方式,就是 CPU 在读写接口数据时不依据任何条件,不用查询外部 设备的状态。CPU 读数据时,接口的数据应该是有效的,当 CPU 写数据时接口的接收端 口应该是空的。其实无条件是在传送速率低的前提下的,通过很低的传送速率来保证每次 读写操作时接口都处于就绪状态。无条件传送方式的工作原理如图5.3 所示。

从图 5.3 中可以看出,输入端口采用三态缓冲器,而输出端口采用的是数据锁存器。

相对于 CPU 的处理速度,外部设备的反应要慢很多,在输入时外部设备能长时间保持有 效数据。当 CPU 执行输入指令时 RD 和译码信号有效出入缓冲器被选通,在缓冲器中保 持的数据被送到数据总线。由此可见,在 CPU 执行输入命令时,外设的数据总是准备好 的。在数据输出时由于外部设备的处理速度远远大于CPU 的处理速度,也就是在 CPU 保

持有效数据的短暂时间里,外部设备无法将数据取走,所以需要采用数据锁存器来保持 CPU 数据。

图5.3 无条件传送方式原理

条件传送方式也可称为查询传送方式。在这种传送方式下,CPU 不断地访问接口的 状态寄存器,判断其状态。在输入时如果接口为就绪状态,则表示可以从数据端口读数 据,在输出时如果接口为空闲状态,则表示可以向数据端口写数据。所以条件传送方式比 无条件传送方式多了状态端口,供 CPU 查询外设的工作状态。图 5.4 表示了查询方式下 数据传送的工作原理。

从图中可以看出当输入设备将输入的数据准备好后发出一个准备好信号,该信号被作 为 D 触发器的输入信号和输入锁存器的使能信号。一方面输入锁存器的使能信号使输入 设备的数据存入锁存器,另一方面通过 D 触发器将状态缓冲器的状态位置位。当 CPU 再 次读取状态缓冲器时,得到的结构是输入有效,接下来从数据口读入数据就是输入设备的 有效数据。在读取数据口时输入锁存器的片选信号和读信号使 D 触发器反转,输入状态 变为非就绪态等待输入设备的再次输入。在输出数据时 CPU 首先读状态缓冲器,判断输 出设备是否为空闲状态。当输出设备为空闲状态时,CPU 将要输出的数据通过数据总线 写入输出锁存器。同时由输出锁存器的片选信号和写信号组成 D 触发器的反转条件。D 触发器的反转触发了两个事件,这两个事件分别是启动输出设备从输出锁存器读数据和使 状态缓冲器中设备忙信号有效。在输出设备处理完之前该设备的状态缓冲器将一直是忙状 态,当输出设备处理结束后会发送一个应答信号,这个应答信号的产生使 D 触发器反转 从而改变设备的工作状态。

图5.4 条件传送方式原理 2. 中断方式

程序控制方式是最简单的数据传送控制方式,所需要的硬件支持十分简单,但是这种 方法有一个很大的缺点。可以想象当外部设备迟迟没能就绪(对输入)或空闲(对输出),

CPU 就要不断地访问状态端口、判断状态位,然后等待,这样做的结果是 CPU 的宝贵资 源被大量的占用。

如果采用中断控制方式,CPU 的利用率就会得到提高。在中断控制方式下,当外部 设备准备就绪后会主动发送中断请求信号。设备中断信号在未被屏蔽的情况下将使 CPU 的中断请求信号有效。CPU 收到中断请求信号后执行完当前指令,随即进行现场保护,

之后转入中断处理程序,处理外设的请求(接收或者发送数据等)。中断处理程序结束后,

CPU 将恢复现场继续执行被打断的程序。在中断控制方式中,CPU 不必像程序控制方式 那样总是访问状态端口,判断状态,这样 CPU 在外设工作时就可以执行其他任务,大大 地提高了CPU 的工作效率。

3. DMA 传送方式

对于 CPU 来说,中断传送方式的效率应该比程序控制传送方式更高。其实在大量数 据高速传送时,这种优势并不明显。其原因是中断方式要在每次中断时终止当前程序的执 行切换到中断处理程序,处理之后又要恢复现场。在大量需要高速处理的数据传送时每个 字节的处理都会产生中断引起频繁的调度,从而占用大量的 CPU 时间。另一方面,中断

的产生打乱了CPU 的流水线,降低了指令执行速度。

如果在数据传送时不是每个字节或每个字都产生一次中断,而是每次处理一组数据,

在一组数据处理完再产生中断,就会大大减轻 CPU 的负担。于是直接存储器传输方式,

即DMA 方式应运而生。

如图5.5 所示,在 DMA 传送方式中,数据传送不完全是 CPU 控制而是由 DMA 控制 器进行控制。外设准备就绪时,向 DMA 控制器发送 DMA 请求信号,DMA 控制器在接 到 DMA 请求信号后向 CPU 申请总线控制权。CPU 将总线控制权交给 DMA 控制器后,

接口与存储器之间的数据传送将由DMA 控制器管理,CPU 不再参与。

从 DMA 传送方式的原理可以看出,在大量高速数据传送时可以很少产生 CPU 中 断,所以其工作效率更高。硬盘、网络接口这样的高速设备都采用DMA 方式。

图5.5 DMA 传送方式原理

在文檔中 嵌 入 式 系 统 应 用 开 发 (頁 167-170)