2010学年论文格式模板2 联系客服

发布时间 : 星期日 文章2010学年论文格式模板2更新完毕开始阅读6cb8b8d5195f312b3169a5a2

发出请求占用总线的信号。

(17)HLDA(7脚):同意占用总线信号,输入,高电平有效。此信号是CPU发给DMAC,同意DMAC器占用总线控制权请求的应答信号。8237A接收到HLDA后,即可进行DMA操作。

(18)DACK3~DACK0(15脚、14脚、24脚、25脚):DMA响应信号,输出,它的有效电平可由工作方式控制字确定。该信号是由8237A控制器发给四个通道中申请DMA操作的通道的应答信号。

(19)VCC(31脚):电源+5V。 (20)GND(20脚):接地。 (21)NC(5脚):空(没有用)。 2) 内部结构

8237A的内部结构如图(b)所示,图中通道部分只画出了 一个通道的情况。8237A的内部结构由控制逻辑单元、优先级编码单元、缓冲器和内部寄存器四个基本部分组成,功能介绍如下。

①控制逻辑单元

控制逻辑单元的主要功能是根据CPU传送来的有关DMAC的工作方式控制字和操作方式控制字,在定时控制下,产生DMA请求信号、DMA传送以及发出DMA结束的信号。

②优先级编码单元

它用来裁决各通道的优先级顺序,解决多个通道同时请求DMA服务时可能出现的优先级竞争问题。优先级顺序是指通道0优先级最高,其次是通道1,通道3的优先级最低。循环四个通道的优先级不断变化,即本次循环执行DMA操作的通道,到下一次循环为优先级最低。不论优先级别高还是低,只要某个通道正在进行DMA操作,其他通道无论级别高低,均不能打断当前的操作。当前操作结束后,再根据级别的高低,响应下一个通道的DMA操作申请。

③ 缓冲器组

包括两个I/O缓冲器1、I/O缓冲器2和一个输出缓冲器,通过这三个缓冲器把8237A的数据线、地址线和CPU的系统总线相连。

? I/O缓冲器1:8位、双向、三态地址/数据缓冲器,作为8位数据BD7~

BD0输入/输出和高8位地址A15~A8输出缓冲。

? I/O缓冲器2:4位地址缓冲器,作为地址A3~A0输出缓冲。 ? 输出缓冲器:4位地址缓冲器,作为地址A7~A4输出缓冲。 ④ 内部寄存器

8237A内部寄存器共有12个,如表9-1所示。分为两大类:一类是控制寄存器或状态寄存器;另一类是地址寄存器和字节计数器。 CPU对8237A内部寄存器的访问是在8237A作为一般的I/O设备时,通过A3~A0的地址译码选择相应的寄存器。具体操作是:用A3区分上述两类寄存器,A3=1选择第一类寄存器,A3=0选择第二类寄存器。对于第一类寄存器,有两个寄存器共用一个端口地址,这种情况,用IOR和IOW来区分。

8237A的内部寄存器

寄存器名称 基地址寄存器 基字节计数寄存器 当前地址寄存器 地址暂存器 字节计数暂存器 命令寄存器 工作方式寄存器 屏蔽寄存器 请求寄存器 状态寄存器 暂存寄存器 位数 16 16 16 16 16 8 6 4 4 8 8 数量 4 4 4 4 1 1 1 4 1 1 1 1 CPU访问方式 只写 只写 可读可写 可读可写 不能访问 不能访问 只写 只写 只写 只写 只读 只读 当前字节计数寄存器 16 8237A内部寄存器寻址及软件命令

从8237A内部寄存器寻址及软件命令表9-2可以看出,A3=1选择第一类寄存器,A3=0选择第二类寄存器。对于第一类寄存器A2~A0用来指明选择哪一个寄存器,若有两个寄存器共用一个端口,用读/写信号区分。对于第二类寄存器用A2、A1来区分选择哪一个通道,用A0来区别是选择地址寄存器还是字节计数器。

● 基地址寄存器、当前地址寄存器

这两个寄存器都用来存放DMA操作时将要访问的存储器的地址,是16位的寄存器,每个通道都有。基地址寄存器的内容是初始化编程时由CPU写入,整个DMA操作期间不再变化。若在工作方式控制字中设置D4位等于1,采用自动预置方式,那么DMA操作结束,自动将基地址寄存器的内容写入当前地址寄存器。该寄存器的内容只能写入,不能读出。当前地址寄存器的作用是在DMA操作期间,通过加1或减1的方法不断修改访问存储器的地址指针,指出当前正访问的存储器地址。当前地址寄存器地址值的输入方法,可在初始化时写入,也可在DMA操作结束,由基地址寄存器写入。该寄存器的内容可通过执行两次输入指令读入

CPU中。

● 基字节数寄存器、当前字节计数器

这两个寄存器都用来存放进行DMA操作时传送的字节数,是16位寄存器,每个通道都有。基字节数寄存器的数据是在初始化时写入的,整个DMA操作中不变,若将工作方式控制字中的D4位置1,采用自动预置方式,那么DMA操作结束,自动将基字节数寄存器的内容写入当前字节计数器。该寄存器的内容只能写入,不能读出。当前字节计数器的作用是在DMA传送操作期间,每传送一个字节,字节计数器减1,当由0减到FFFFH时,产生DMA操作结束信号。当前字节计数器的内容可在初始化命令写入,也可通过在DMA传送结束时由基字节计数寄存器写入。该寄存器的内容既能写入也能通过执行两次输入指令读入CPU。

(二)8237A的控制字及应用

1、8237A的的控制字 (1)工作方式控制字

8237A每个通道都有一个工作方式控制字,工作方式控制字为8位,通过编程的方法写入模式寄存器。模式寄存器为6位,共4个,每个通道1个。工作方式控制字的格式及定义如图9-7所示,各位的说明如下。

①D1、D0:通道选择位。根据D1、D0位的值决定工作方式控制字写入到哪一个通道的模式寄存器中。由于每个通道内的模式寄存器为6位,所以8位的方式控制字写入6位的模式寄存器时,只将D7~D2位写入,D1、D0位不写入。

②D3、D2:传送类型选择位。8237A有三种传送类型,分别是DMA读传送、DMA写传送和DMA校验传送。三种传送类型是根据数据传送的方向定义的,由D3、D2两位决定。

●DMA读传送:把存储器的数据读出传送至外设,操作时若MEMR有效则从存储器读出数据,若IOW有效则把数据写入外设。

●DMA写传送:把外设输入的数据写至存储器中,操作时若IOR有效则从外设读出数据,若MEMW有效,则把数据写入存储器。