首页 百科知识 控制器系统应用

控制器系统应用

时间:2022-10-17 百科知识 版权反馈
【摘要】:DMA控制器在系统中具有两重性:一方面受控于CPU,接受CPU的命令及参数;另一方面又作为系统的主控者发出地址和控制命令,控制内存与I/O设备间的数据传送。8237因受引脚的限制,每个通道只能提供16位地址,但存储器有20位物理地址,因此在PC系统中设置了DMA页面寄存器,产生高4位地址A19~A16,如图6.48所示为PC/XT计算机中20位地址的产生电路。8237则利用应答信号来对I/O设备地址进行选择,使申请DMA传送的I/O设备在DMA传送过程中为有效设备。

6.4.3 DMA控制器系统应用

DMA控制器在系统中具有两重性:一方面受控于CPU,接受CPU的命令及参数(接受CPU的访问);另一方面又作为系统的主控者发出地址和控制命令,控制内存与I/O设备间的数据传送。

表6-6 8237寄存器功能与软件命令

img518

1.提供存储器地址

8237因受引脚的限制,每个通道只能提供16位地址(A7~A0为低8位,DB7~DB0为高8位),但存储器有20位物理地址,因此在PC系统中设置了DMA页面寄存器,产生高4位地址A19~A16,如图6.48所示为PC/XT计算机中20位地址的产生电路。这4位地址与8237输出的16位地址一起构成20位的物理地址,以访问存储器的全部单元

74LS670页面地址寄存器是一个4×4的存储器,通过CPU写入高4位地址,然后通过WA和WB地址线选取相应单元来产生高4位地址。

img519

图6.48 8237产生20位地址框图

2.DMA控制器初始化

PC机系统的BIOS对8237进行了初始化和测试,测试程序对8237的4个通道的8个16位寄存器先后分别写入0FFFFH和0000H,再读出进行比较,以检测8237是否工作正常。BIOS测试程序段(DMA=0)如下:

img520

img521

在PC机中,动态存储器DRAM的刷新是通过8237的0#通道来实现的,其定时则通过8235的1#通道来提供。下面程序段为PC机BIOS中对DRAM刷新初始设置程序(TIMERI=40H):

img522

img523

3.提供I/O设备地址

8237产生的20位地址线全部用于内存的访问,无法对I/O设备提供端口地址。8237则利用img524应答信号来对I/O设备地址进行选择,使申请DMA传送的I/O设备在DMA传送过程中为有效设备。在读写数据时,只要img525信号与img526img527同时有效,就能实现对I/O设备端口的读、写操作,与I/O设备的端口地址无关,如图6.49所示。

img528

图6.49 DMA传输I/O设备操作示意图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈