数据传送
1.什么是数据传送[1]
数据传送是指数据从一种设备传送到另一种设备,或从同一个设备的一个存储位置传送到另一个存储位置中去。
2.数据传送的方向[2]
串行通信中,数据通常是在两个站点(如终端和微机)之间进行传送,按照数据流的方向可分成三种基本的传送模式,这就是全双工方式、半双工方式和单工方式。单工方式目前已很少采用,下面仅介绍前两种模式。
1.全双工方式(full duplex)
若数据的发送和接收分别使用两套独立的资源、由两条不同的传输线同时传送,使通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制,如图1所示。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无须进行方向的切换,因此,没有切换操作所产生的时间延迟(一般为毫秒级),这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。
2.半双工方式(half duplex)
当使用同一条传输线既作输入又作输出时,虽然数据可以在两个方向上传送,但显然通信双方不能同时收发数据,即它们只能依赖分寸切换方向实现互相收发数据。这样的传送方式就是半双工制,如图2所示。采用半双工方式时,通信系统每一端的发送器和接收器,通过收/发开关接到通信线上,进行方向的切换,因此,会产生时间延迟。收/发开关实际上是由软件控制的电子开关。目前多数终端和串行接口都有半双工模式的换向功能,也为全双工模式提供了两条独立的引脚。在实际使用时,有时并不需要通信双方同时既发送又接收,像打印机这类的单向传送设备,半双工就能胜任,也无须倒向。
3.数据传送方式和类型[3]
1.8237A的DMA操作方式
在8237A的有效操作周期内,8237A将以下述4种传送方式之一进行DMA操作。
1)单字节传送方式
此时8237A获得总线控制权后仅传送一个字节的数据,然后释放系统总线,归还给CPU使用。同时修改通道内的当前地址寄存器和当前字计数寄存器的内容,当计数器从0减为FFFFH时,产生终止计数信号,使EOP变为低电平。
单字节传送方式的优点是保证在任何二次DMA操作之间,CPU至少能在一个总线周期内获得总线控制权,达到CPU与DMA控制器处于并行工作的状态。
2)数据块传送方式
此时,8237A一旦获得总线控制权后将连续传送完一个数据块(它由N个字节的数据组成),然后释放系统总线归还给CPU使用。在这种传送方式中,一次DMA操作最多能传送64KB的数据块,DMA传送结束将取决于下面两种条件中的任一个:当前字计数寄存器的内容从0减为FFFFH时,并发出EOP有效信号;外部强加一个EOP为低电平的输入信号时,迫使8237A退出DMA操作。
在数据块传送方式中,要求DMA请求信号DREQ保持到DACK变为有效时即可,因为8237A一旦进入有效周期后就不再去采样DREQ信号了。
3)请求传送方式
这种传送方式类似于数据传送方式,但此时要求在数据传送期间必须保持DREQ信号有效。因为此时8237A每传送一个字节的数据之后都要采样DREQ引脚。当出现当前字计数寄存器由0变为FFFFH或者EOP输入端加入低电平信号或者DREQ信号无效时都将停止DMA传送。
4)级联方式
这是当多片8237A级联应用时采用的传送方式,从而实现多于4个通道的DMA方式。此时,从片8237A的HRQ和HLDA引脚应和主片8237A某个通道的DREQ和DACK引脚依次连接。
以上4种DMA传送方式均由方式控制字中的D7和D6两位来控制。
2.数据传送类型
在单字节传送、数据块传送和请求传送3种传送方式下,都可以采用DMA读、DMA写和校验传送3种基本传送类型,它们是通过方式控制字来设定的;此外,还有存储器到存储器、压缩时序、自动预置和循环优先级4种特殊的传送类型,它们是通过8237A的命令字来设定的。
1)DMA读
实现从存储器到I/O接口器件的传送,此时8237将发出MEMR和IOW控制信号以实现DMA读操作。
2)DMA写
实现从I/O接口器件到存储器的传送,此时8237A将发出IOR和MEMW控制信号,以实现DMA写操作。
3)校验传送
用于校验8237A的内部功能,它也产生地址的an/减1,字计数值减1及当计数值从0减为FFFFH时产生EOP信号等,但所有的读/写控制信号都处于无效状态。
4)存储器到存储器传送
用来实现数据块从一个存储空间快速地传送到另一个存储空问。但这种类型仅适用于通道0和通道1,此时通道0产生源存储器的地址,通道1产生目的存储器的地址,每传送一个字节的数据需执行8个状态,前4个状态用于从源存储器中读取数据并存放于8237A中的数据暂存器,而后4个状态用于将数据暂存器的内容写入到目的存储器中。
5)自动预置传送
它可在完成DMA服务并出现EOP有效信号后,将该通道的基地址寄存器和基本字节计数器的内容重新装入当前地址寄存器和当前字节计数器中,从而使该通道继续执行另一次DMA服务,无须CPU来预置上述地址值和计数值。
6)循环优先传送
这是一种采用循环优先级管理方式使8237A中4个通道的优先级别做动态地循环改变,从而使每一个通道都有享受最高优先级别的资格,防止了一个通道独占DMA操作的局面。
7)压缩时序传送
这是一种能获得更高的数据传送率的传送类型。