第8章DMA控制器与定时 计数器接口 本章主要教学内容 可编程DMA控制器8237A的内部结构和引 脚功能 >8237A的工作方式及编程方法 可编程计数/定时器接口芯片8253的编程结 构与使用方法 >8253在PC机上的具体应用
本章主要教学内容 Ø 可编程DMA控制器8237A的内部结构和引 脚功能 Ø 8237A的工作方式及编程方法 Ø 可编程计数/定时器接口芯片8253的编程结 构与使用方法 Ø 8253在PC机上的具体应用 第8章 DMA控制器与定时 计数器接口
81可编程DMA控制器8237A 数据传送方式除了查询方式和中断方式以外还有DMA控制 方式。利用DMA方式传送数据时,数据的传送过程完全由硬件 电路控制,这种电路称为DMA控制器(DMAC),它可以在DMA方 式下起到CPU的作用。DMAC的功能就是在存储器和I/0设备之间 进行高速、成批的数据传输。在8086系统中,DMAC选用的是可 编程器件 Intel8237A,它含有4个独立的DMA通道,可以用来 实现内存到接口、接口到内存及内存到内存之间的高速数据传 送,最高数据传送速率可达1.6MB/s,在此过程中CPU不再干预, 这样可大大减少数据传送的中间过程,提高了数据的传送速度
8.1 可编程DMA控制器8237A 数据传送方式除了查询方式和中断方式以外还有DMA控制 方式。利用DMA方式传送数据时,数据的传送过程完全由硬件 电路控制,这种电路称为DMA控制器(DMAC),它可以在DMA方 式下起到CPU的作用。DMAC的功能就是在存储器和I/O设备之间 进行高速、成批的数据传输。在8086系统中,DMAC选用的是可 编程器件Intel 8237A,它含有4个独立的DMA通道,可以用来 实现内存到接口、接口到内存及内存到内存之间的高速数据传 送,最高数据传送速率可达1.6MB/s,在此过程中CPU不再干预, 这样可大大减少数据传送的中间过程,提高了数据的传送速度
8118237A的内部结构及引脚 在DMA控制器取得系统总线的控制权后,系统就完全在它 的控制下进行工作,此时DMA为总线主模块,这种工作方式通 常称为主态方式;另外,DMA又可以和其它接口一样,接受 CPU对它的读/写操作,这时DMA控制器就成了总线从模块, 这种工作方式通常称为从态方式。8237A的编程结构和引脚信 号与这两方面的情况有关 1.8237A的内部结构 8237A的内部结构如图8-1所示,它主要由时序与控制逻辑、 命令控制逻辑、优先级编码电路、数据和地址缓冲器组以及内 部寄存器等5个部分组成
8.1.1 8237A的内部结构及引脚 在DMA控制器取得系统总线的控制权后,系统就完全在它 的控制下进行工作,此时DMA为总线主模块,这种工作方式通 常称为主态方式;另外,DMA又可以和其它接口一样,接受 CPU对它的读/写操作,这时DMA控制器就成了总线从模块, 这种工作方式通常称为从态方式。8237A的编程结构和引脚信 号与这两方面的情况有关。 1. 8237A的内部结构 8237A的内部结构如图8-1所示,它主要由时序与控制逻辑、 命令控制逻辑、优先级编码电路、数据和地址缓冲器组以及内 部寄存器等5个部分组成
/0缓中 字数暂存器 地址暂存器 输出线中□ 读缓中器 读/写缓冲器 RESET 基地址基字 READY 寄存器寄存器 当前地址|当前字 寄存器计数器 CLK- (16×(16× 4) 4) (16×4)(6×4) AEN 命令 ADSTB 时序与控制逻辑 控制逻辑 MEMR MEMV 写缓冲器 读缓爱冲器 IOR 10 命令寄存器 内部数据总线 HRO 一D缓中 HLDA- 优先级编码 屏蔽寄存器 DBO DREO (4) 方式寄存器状态寄存器暂存寄存器 (4×6) (8) (8) DACK3-01 请求寄存器 (4) 图8-18237A内部结构
时 序 与 控 制 逻 辑 优 先 级 编 码 命令寄存器 (8) 屏蔽寄存器 (4) 请求寄存器 (4) 字数暂存器 EOP RESET CS CLK AEN ADSTB MEMR MEMW IOR IOW READY HRQ HLDA DREQ30 DACK30 4 4 读缓冲器 基地址 寄存器 (16× 4) 基字 寄存器 (16× 4) 读/写缓冲器 当前地址 寄存器 (16×4) 当前字 计数器 (16×4) 16 16 写缓冲器 读缓冲器 内部数据总线 方式寄存器 (4×6) 状态寄存器 (8) 暂存寄存器 (8) 地址暂存器 A15~A8 I/O缓冲 输出缓冲 A3-A0 A7-A4 命令 控制逻辑 D1-D0 I/O缓冲 DB7-DB0 图8-1 8237A内部结构
图8-1中各主要部件的功能分析如下: (1)时序与控制逻辑:当8237A处于从态工作方式时,时序 与控制逻辑电路接受系统送来的时钟、复位、片选和读/写 控制等信号,完成相应的控制操作;当8237A处于主态工作 方式时则向系统发出相应的控制信号。 (2)命令控制逻辑:8237A处于从态工作方式时,命令控 制逻辑接收CPU送来的寄存器选择信号A3A,选择8237A内部 相应的寄存器;主态时,对工作方式寄存器的最低两位DD0 进行译码,以确定DMA的操作类型。寄存器选择信号A3A与、 配合可组成各种操作命令
图8-1中各主要部件的功能分析如下: (1)时序与控制逻辑:当8237A处于从态工作方式时,时序 与控制逻辑电路接受系统送来的时钟、复位、片选和读/写 控制等信号,完成相应的控制操作;当8237A处于主态工作 方式时则向系统发出相应的控制信号。 (2)命令控制逻辑:8237A处于从态工作方式时,命令控 制逻辑接收CPU送来的寄存器选择信号A3 ~A0,选择8237A内部 相应的寄存器;主态时,对工作方式寄存器的最低两位D1D0 进行译码,以确定DMA的操作类型。寄存器选择信号A3 ~A0与、 配合可组成各种操作命令
(3)优先级编码电路:该电路根据CPU对8237A初始化 时送来的命令,对同时提出DMA请求的多个通道进行排队判 优,来决定哪一个通道的优先级别为最高。对优先级的管理 有固定优先级和循环优先级两种方式,无论采用哪种优先级 管理,一旦某个优先级高的设备在服务时,其它通道的请求 均被禁止,直到该通道的服务结東时为止 (4)数据和地址缓冲器组:8237A的引脚A7~A4、A3~A为 地址线;引脚DBDB在从态时传输数据信息,在主态时传 送地址信息。这些数据引线和地址引线都与三态缓冲器相连, 因而可以接管或释放总线 (5)内部寄存器:8237A内部有4个DMA通道,每个通道都 有一个16位的基地址寄存器、基字计数器、当前地址寄存器 和当前字计数器,以及一个6位的工作方式寄存器。片内还 各有一个可编程的命令寄存器、屏蔽寄存器、请求寄存器、 状态寄存器和暂存寄存器,以及不可编程的字数暂存器和地 址暂存器等
(3)优先级编码电路:该电路根据CPU对8237A初始化 时送来的命令,对同时提出DMA请求的多个通道进行排队判 优,来决定哪一个通道的优先级别为最高。对优先级的管理 有固定优先级和循环优先级两种方式,无论采用哪种优先级 管理,一旦某个优先级高的设备在服务时,其它通道的请求 均被禁止,直到该通道的服务结束时为止。 (4)数据和地址缓冲器组:8237A的引脚A7~A4、A3~A0为 地址线;引脚DB7~DB0在从态时传输数据信息,在主态时传 送地址信息。这些数据引线和地址引线都与三态缓冲器相连, 因而可以接管或释放总线。 (5)内部寄存器:8237A内部有4个DMA通道,每个通道都 有一个16位的基地址寄存器、基字计数器、当前地址寄存器 和当前字计数器,以及一个6位的工作方式寄存器。片内还 各有一个可编程的命令寄存器、屏蔽寄存器、请求寄存器、 状态寄存器和暂存寄存器,以及不可编程的字数暂存器和地 址暂存器等
2.8237A的引脚 IOR IOW MEMR 38 8237A是一种具备40个 AAAA 7654 MEMW 37 NC 引脚的双列直插式DP封 36 EOP READY 35 A HLDA 装的芯片,如图8-2所示 23456789 ADSTB 33 AEN 32 AAA HQR 108237A31 VCC 30 DB CLK 12 29 DB RESET 28 DB2 DACK? 27 DB3 DACK 15 26 DB 4 DREQ 3 16 DACK DREQ 2 24 DACK DREQ1 23 DB DREQO DB 6 GND 20 DB 7 图8-28237A的引脚
2. 8237A的引脚 8237A是一种具备40个 引脚的双列直插式DIP封 装的芯片,如图8-2所示。 IO R IOW M E M R N C M E M W R E A D Y H L D A A DST B A E N H Q RCS CLK R ESE T2 DACK DACK32 DREQ D 1 REQ3 DREQ DREQ0 GND A 7 AA6 A5 A4 EOP A3 A2 A1 A0 VCC D 0 BDB1 DB2 DB3 DB4 DAC K0 DACK1 DB5 DB6 DB7 1 40 2 39 8237A 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 图 8- 2 8237A 的引脚
8128237A的工作方式 8237A在系统中可以有两种功能:一种功能是系统总线的主 控者,这是它工作的主方式。在取代CPU控制DMA传送时,它 应提供存储器的地址和必要的读写控制信号,数据是在IO设备 与存储器之间通过数据总线直接传递;另一种功能是在成为主控 者之前,必须由CPU对它编程以确定通道的选择、数据传送的模 式、存储器区域首地址、传送总字节数等等。在DMA传送之后 ,也有可能由CPU读取DMA控制器的状态。这时8237A如同一般 IO端口设备一样,是系统总线的从设备,这是8237A工作的从方 式
8.1.2 8237A的工作方式 8237A在系统中可以有两种功能:一种功能是系统总线的主 控者,这是它工作的主方式。在取代CPU控制DMA传送时,它 应提供存储器的地址和必要的读写控制信号,数据是在I/O设备 与存储器之间通过数据总线直接传递;另一种功能是在成为主控 者之前,必须由CPU对它编程以确定通道的选择、数据传送的模 式、存储器区域首地址、传送总字节数等等。在DMA传送之后 ,也有可能由CPU读取DMA控制器的状态。这时8237A如同一般 I/O端口设备一样,是系统总线的从设备,这是8237A工作的从方 式
1.8237A传送工作方式 (1)单字节传送方式 这种工作方式的特点是每申请一次只传送一个字节。数 据传送后字节计数器自动减量(增量或减量取决于编程)。传 送完这一个字节后DMAC放弃系统总线,将总线控制权交回 CPU。HRQ信号变为无效,释放系统总线。若传送数据使字 节数减为0,总线计数结束发出信号,或终结DMA传送,或重 新初始化。 (2)数据块传送方式 在这种传送方式下,DMAC一旦获得总线控制权便开始 连续传送数据。每传送一个字节,自动修改地址,并使要传送 的字节数减1,直到将所有规定的字节全部传送完,或收到外 部信号,DMAC才结束传送,将总线控制权交给CPU
1. 8237A传送工作方式 (1)单字节传送方式 这种工作方式的特点是每申请一次只传送一个字节。数 据传送后字节计数器自动减量(增量或减量取决于编程)。传 送完这一个字节后DMAC放弃系统总线,将总线控制权交回 CPU。HRQ信号变为无效,释放系统总线。若传送数据使字 节数减为0,总线计数结束发出信号,或终结DMA传送,或重 新初始化。 (2)数据块传送方式 在这种传送方式下,DMAC一旦获得总线控制权便开始 连续传送数据。每传送一个字节,自动修改地址,并使要传送 的字节数减1,直到将所有规定的字节全部传送完,或收到外 部信号,DMAC才结束传送,将总线控制权交给CPU
(3)请求传送方式 在这种方式下,8237A可以进行连续的数据传送,只有出 现以下三种情况之一时才停止传送: 字节数计数器减到0,产生一个终止计数T/C信号 由外界送来一个有效的信号; 外界的DRQ信号变为无效(外设来的数据已传送完)。 (4)级联方式 采用这种方式可以将多个8237A级联起来,以扩展系统中 的DMA通道数量。如图8-3所示,是2个8237A级联情况示意
(3)请求传送方式 在这种方式下,8237A可以进行连续的数据传送,只有出 现以下三种情况之一时才停止传送: 字节数计数器减到0,产生一个终止计数T/C信号; 由外界送来一个有效的信号; 外界的DRQ信号变为无效(外设来的数据已传送完)。 (4)级联方式 采用这种方式可以将多个8237A级联起来,以扩展系统中 的DMA通道数量。如图8-3所示,是2个8237A级联情况示意