《微机原理A》 第十三讲:可编程DMA控制器8237 主讲老师:王克义
《微机原理A》 第十三讲:可编程DMA控制器8237 主讲老师:王克义
公 本讲主要内容 8237的基本结构 ·8237的工作方式 ·8237的初始化编程
本讲主要内容 • 8237的基本结构 • 8237的工作方式 • 8237的初始化编程
公 13.18237概况 inte8237是一种功能很强的可编程DMA控制器,广泛应用 于微型计算机系统中。 ·采用5MHz时钟时,其传输速率可达1.6M字节/秒; 片8237内部有四个独立的DMA通道,每个通道一次DMA 传送的最大长度可达64K字节。 ·每个通道的DMA请求都可以分别允许和禁止;不同通道的 DMA请求有不同的优先级,优先级可以是固定的,也可以 是循环的(可编程设定); ·四个通道可以分时地为四个外部设备实现DMA传送,也可 以同时使用其中的通道0和通道1实现存储器到存储器的直 接传送,还可以用多片8237进行级联,从而构成更多的 DMA通道
13.1 8237 概况 • Intel 8237是一种功能很强的可编程DMA控制器 , 广泛应用 于微型计算机系统中。 • 采用5MHz时钟时,其传输速率可达1.6M字节/秒; • 一片8237内部有四个独立的DMA通道,每个通道一次DMA 传送的最大长度可达64K字节。 • 每个通道的DMA请求都可以分别允许和禁止;不同通道的 DMA请求有不同的优先级,优先级可以是固定的,也可以 是循环的(可编程设定); • 四个通道可以分时地为四个外部设备实现DMA传送,也可 以同时使用其中的通道0和通道1实现存储器到存储器的直 接传送,还可以用多片8237进行级联,从而构成更多的 DMA通道
公 8237/8237-2 ntel HIGH PERFORMANCE PROGRAMMABLE DMA CONTROLLER Enable/Disable Control of Individual DMa request Four Independent dMA Channels Independent Autoinitialization of all Channels Memory-to-Memory Transfers Memory Block Initialization Address increment or decrement High Performance: Transfers up to 1.6M Bytes/Second with 5 MHZ 8237-2 Directly Expandable to any Number of Channels End of process Input for terminating transfers Software DMA Requests Independent Polarity Control for DREQ and DACK Signals
Intel • Enable/Disable Control of Individual DMA Request • Four Independent DMA Channels • Independent Autoinitialization of all Channels • Memory-to- Memory Transfers • Memory Block Initialization • Address Increment or Decrement • High Performance: Transfers up to 1.6M Bytes/Second with 5 MHz 8237-2 • Directly Expandable to any Number of Channels • End of Process Input for Terminating Transfers • Software DMA Requests • Independent Polarity Control for DREQ and DACK Signals 8237/8237-2 HIGH PERFORMANCE PROGRAMMABLE DMA CONTROLLER
公 1328237的结构 ·DMA控制器8237的结构框图及在系统中的有关逻 辑如图131所示。 图中只画了一个通道的具体情况,其他通道与此 相同
13.2 8237的结构 • DMA控制器8237的结构框图及在系统中的有关逻 辑如图13.1所示。 • 图中只画了一个通道的具体情况,其他通道与此 相同
公 图1318237的结构及有关逻辑 +5V HOLD Vcc GND HRQ 命令寄存器(8位) IOR HLDA memRI HLDA Clock 状态寄存器(8位 lOW CLK MEMS 使cPU的总线信号无效 通道0 请求位屏蔽位 READY AEN 模式寄存器(位) RESET ADSTB当前地址寄存器基地址寄存器」 DREQo OE 当前字节数寄存器基字节数寄存器:DAcK STB k+ 数据 8位锁存器 DBR~DB「暂存寄存器(位) 总线 DREQ 通道1 DACK ↓oM 7------ DREQ <A12A地址 CS 通道2 DACK2 A 译码器 DREQ 通道3 A3~A0 DACK A7~A4 EOP
命令寄存器 状态寄存器 模式寄存器 基字节数寄存器 基地址寄存器 当前字节数寄存器 当前地址寄存器 暂存寄存器 通道0 请求位 屏蔽位 (6位) (8位) (8位) (8位) 通道1 通道3 通道2 ___ IOR ______ MEMR ____ ______ IOW MEMW READY RESET DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3 HRQ HLDA CLK AEN ADSTB DB7~DB0 A3~A0 A7~A4 __ CS A15~A8 A7~A0 ___ OE STB 8位锁存器 地址 译码器 _ IO/M 数据 总线 使CPU的总线信号无效 HOLD HLDA Clock ____ EOP +5V Vcc GND 图13.1 8237的结构及有关逻辑
公 表1318237内部寄存器 寄存器名称 位数 数量cPU访问方式 基地址寄存器 16位4只写 基字节计数寄存器 16位 只写 当前地址寄存器 16位 可读可写 当前字节计数寄存器 16位 可读可写 临时地址寄存器 16位 不可访问 临时字节计数寄存器 16位 4 不可访问 命令寄存器 8位 只写 状态寄存器 8位 只读 暂存寄存器 8位 只读 模式寄存器 6位 只写 屏蔽寄存器 4位 只写 请求寄存器 4位 只写
表13-1 8237内部寄存器 寄存器名称 位数 数量 CPU访问方式 基地址寄存器 16位 4 只写 基字节计数寄存器 16位 4 只写 当前地址寄存器 16位 4 可读可写 当前字节计数寄存器 16位 4 可读可写 临时地址寄存器 16位 4 不可访问 临时字节计数寄存器 16位 4 不可访问 命令寄存器 8位 1 只写 状态寄存器 8位 1 只读 暂存寄存器 8位 1 只读 模式寄存器 6位 4 只写 只写 请求寄存器 4位 1 只写 屏蔽寄存器 4位 1
公 1338237的引脚 IOR 40 8237芯片采用40个引脚双 lOw AAA 列直插封装,其引脚配置 MEMR pin configuration如图612所示。MEM口4 3333 (NOTE 11) 6 EOP READY 35 HLDA ADSTB 333 AAAA 3210 AEN HRQ 108237/31 Vcc(+5v) CS 118237-230 DB o CLK 12 DB1 RESET DB2 DACK 2 14 2222 DB3 DACK 15 DB4 DREQ3 25 DACKo DREQ2 17 DACK DREQ1 18 DB5 图1328237的引脚配置 DREQo 19 2222 DB6 (GND)Vss 20 DB7
• 8237芯片采用40个引脚双 列直插封装,其引脚配置 (pin configuration)如图6.12所示。 13.3 8237的引脚 8237/ 8237-2 A7 Vcc (+5V) A0 A1 A2 A3 EOP A4 A5 A6 DB0 DB1 IOR HRQ AEN ADSTB HLDA READY (NOTE 11) MEMW MEMR IOW CS RESET CLK DB2 DB5 DACK0 DB4 DB3 DB7 DB6 DACK1 DACK2 DACK3 DREQ3 DREQ2 DREQ1 DREQ0 (GND)Vss 1 10 9 8 7 6 5 4 3 2 11 20 19 18 17 16 15 13 12 40 31 32 33 34 35 36 37 38 39 30 21 22 24 25 26 27 28 29 14 23 图13.2 8237的引脚配置
公 1348237的工作方式 8237具有四种工作方式: (1)单字节传送方式( single transfer mode) (2)块传送方式 block transfer mode) (3)请求传送方式 demand transfer mode) (4)级联方式( cascade mode) 在级联方式下,将多个8237级联起来,以扩展 DMA通道数。后一级的HRQ和HLDA信号连到前 级的DREQ和DAcK上,如图133所示
13.4 8237的工作方式 • 8237具有四种工作方式: (1) 单字节传送方式(single transfer mode) (2) 块传送方式(block transfer mode) (3)请求传送方式(demand transfer mode) (4) 级联方式(cascade mode) • 在级联方式下,将多个8237级联起来,以扩展 DMA通道数。后一级的HRQ和HLDA信号连到前 一级的DREQ和DACK上,如图13.3所示
公 第二级 第一级 8237 HRQ DREQo HLDA 微处理器 DACKO HOLD HRQ HLDA 小HLDA 8237 DREQ HRQ HLDA DACK3 8237 Directly Expandable to any Number of Channels 图1338237的级联
微处理器 HOLD HLDA DREQ0 DACK0 HRQ . HLDA . . 8237 DREQ3 DACK3 8237 HRQ HLDA HRQ HLDA 8237 …… 第二级 第一级 图 13.3 8237的级联 Directly Expandable to any Number of Channels