| 8237A的软件命令 |
|
| 作者:陆志才 文章引用自“微型计算机组成原理”(高教出版社,南开大学2003)点击数: 更新时间:2007-2-25 21:38:45 |
|
| |
|
|
8237A的软件命令 除了有10种能和CPU通信的寄存器外,8237A还有3种软件命令。所谓软件命令,是指不需要通过数据总线写入控制字,而直接由地址和控制信号译码得到的命令。说得通俗些,软件命令是对一些特定端口地址进行操作的输出指令,执行这些输出指令时,只要地址的低4位A3~A0是规定的值,就产生相应的作用。在这样的输出指令中输出数据是不起作用的。表6.9给出了8237A寄存器和软件命令的寻址。 1)清除高/低触发器命令 8237A的数据总线只有8位,写入和读出16位的寄存器需分两次进行。为此,8237A设置了高/低触发器。该触发器为0,对16位寄存器进行读/写是读/写低8位;为1,则读/写高8位。清除高/低触发器命令是将高/低触发器清0。 8237A复位后,高/低触发器被清O。每当16位寄存器进行一次操作(读/写8位),该触发器都要改变状态。设该触发器的初始状态为0,现对某16位寄存器操作,则读/写的是低8位。操作之后该触发器变为1,接着对该寄存器操作,就自动地针对高8位。此后,该触发器又变为0,如果再对另一16位寄存器进行操作,则对其低8位操作。由此可见,一般情况下,可分两次对16位寄存器进行操作,而不必过问高/低触发器。 设置清除高/低触发器命令为改变读/写操作的顺序提供了手段。例如,对低8位操作后,通过清除高/低触发器命令可将刚被置1的高/低触发器清0,以便再继续进行低8位操作。 2)主清除命令 该命令的作用同硬件复位。它使命令寄存器、状态寄存器、请求寄存器、临时寄存器以及内部高/低触发器清0,使屏蔽寄存器置为全1(即屏蔽状态),使8237A处于空闲周期。 3)清屏蔽寄存器命令 该命令清除4个通道的全部屏蔽位,允许各通道接受DMA请求。

|
|
本篇文章属于主题:DMA控制器8237A,了解更多请点击:DMA控制器8237A |
|
|
| 文章录入:admin 责任编辑:admin |
|
上一篇文章: 8237A的寄存器组 下一篇文章: 对8237A的编程 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |