82C37A引脚信号的定义 ■ ADSTB,地址选通输出信号。此信号有效时, DMA控制器的当前地址寄存器中的高8位地址通 过8位数据线DB2~DB送到外部锁存器 ■AEN,地址输出允许信号。A酬N使地址锁存器中 的高8位地址送到地址总线上,与芯片直接输 出的低8位地址共同构成内存单元地址的偏移 量。AEN信号也使与CPU相连的地址锁存器无效, 这样,就保证了地址总线上的信号是来自DMA 控制器,而不是来自CPU的
82C37A引脚信号的定义 ◼ ADSTB,地址选通输出信号。此信号有效时, DMA控制器的当前地址寄存器中的高8位地址通 过8位数据线DB7 ~DB0送到外部锁存器 ◼ AEN,地址输出允许信号。AEN使地址锁存器中 的高8位地址送到地址总线上,与芯片直接输 出的低8位地址共同构成内存单元地址的偏移 量。AEN信号也使与CPU相连的地址锁存器无效, 这样,就保证了地址总线上的信号是来自DMA 控制器,而不是来自CPU的
表9-2软件操作及对应的寄存器地址 操作 A2 A AO 读状态寄存器 写命令寄存器 读青求寄存器 写请求寄存器0 读命令寄存器 读方式寄存器 11 写方式奇存器 读暂时寄存器 0.0000111 01100100 1010110110 清方式奇存器计数 淸屏蘸寄存器
表9-2 软件操作及对应的寄存器地址
913内部寄存器的功能和应用 前面介绍了82c37A内部结构和寄存器,下面将 通过82C37ADMA控制器的各种操作来说明这些 寄存器所具有的功能 每个DMA通道都配备有2个地址寄存器,其一为基 址寄存器,其二为当前地址寄存器。在基址寄存器 内存放着DMA操作的起始地址,而在当前地址寄 存器内保持着的则是将要访问的下一个存储单元的 地址。在向基址寄存器写入的同时,也将自动地把 相同的值装入当前的地址寄存器。由此可见,初始 的当前地址寄存器的值总是指向DMA传送的存储 器起始地址。这些寄存器必须在启动DMA周期之 前装入适当的值
9.1.3 内部寄存器的功能和应用 前面介绍了82C37A内部结构和寄存器,下面将 通过82C37A DMA控制器的各种操作来说明这些 寄存器所具有的功能 ◼ 每个DMA通道都配备有2个地址寄存器,其一为基 址寄存器,其二为当前地址寄存器。在基址寄存器 内存放着DMA操作的起始地址,而在当前地址寄 存器内保持着的则是将要访问的下一个存储单元的 地址。在向基址寄存器写入的同时,也将自动地把 相同的值装入当前的地址寄存器。由此可见,初始 的当前地址寄存器的值总是指向DMA传送的存储 器起始地址。这些寄存器必须在启动DMA周期之 前装入适当的值
内部寄存器的功能和应用 在82C37A芯片内还有一个名为先/后触发器的内部 触发器。该触发器标识将哪一个字节写入基址寄存 器。如果这个内部触发器的开始状态是逻辑0,那 么软件必须向该寄存器写入地址字的低字节;相反, 如果它为逻辑1,必须将高字节写入该寄存器 例如,为了把地址1234H写入DMA控制器通道0的 基址和当前地址寄存器中,且该DMA控制器的基本 I/O地址为 ADDER,这里 ADDER≤FOH,并且由 82c37A的CS信号如何产生来决定,那么可以通 过执行下列指令来初始化基址寄存器和当前地址寄 存器
内部寄存器的功能和应用 ◼ 在82C37A芯片内还有一个名为先/后触发器的内部 触发器。该触发器标识将哪一个字节写入基址寄存 器。如果这个内部触发器的开始状态是逻辑0,那 么软件必须向该寄存器写入地址字的低字节;相反, 如果它为逻辑1,必须将高字节写入该寄存器 ◼ 例如,为了把地址1234H写入DMA控制器通道0的 基址和当前地址寄存器中,且该DMA控制器的基本 I/O地址为ADDER,这里ADDER≤F0H,并且由 82C37A的 信号如何产生来决定,那么可以通 过执行下列指令来初始化基址寄存器和当前地址寄 存器 CS
内部寄存器的功能和应用 例【9-1】 MOV AL34H 写低字节 OUT ADDER+OAL MOV AL12H 写高字节 OUT ADDER+OAL 假定该内部触发器已初始化为0 82C37A的每个DMA通道还配备有两个字计数寄存器,被分 别称之为基本字计数寄存器和当前字计数寄存器。两个寄存 器的长度也均为16位。基本字计数寄存器的值规定DMA操作 期间所传送的数据字节数。实际传送的字节数总是比编程写 入该寄存器的值多1。这是因为DMA传送的结束是通过检测当 前字计数值从0000到FFF的变化来实现的。在DMA操作周 期的任何时刻,当前字计数寄存器中的值总是表示还剩多少 个字节尚未传送
内部寄存器的功能和应用 例【9-1】 MOV AL,34H ;写低字节 OUT ADDER+0,AL MOV AL,12H ;写高字节 0UT ADDER+0,AL 假定该内部触发器已初始化为0 ◼ 82C37A的每个DMA通道还配备有两个字计数寄存器,被分 别称之为基本字计数寄存器和当前字计数寄存器。两个寄存 器的长度也均为16位。基本字计数寄存器的值规定DMA操作 期间所传送的数据字节数。实际传送的字节数总是比编程写 入该寄存器的值多1。这是因为DMA传送的结束是通过检测当 前字计数值从0000H到FFFFH的变化来实现的。在DMA操作周 期的任何时刻,当前字计数寄存器中的值总是表示还剩多少 个字节尚未传送