1.8237在系统中的应用
IBM PC/XT系统板上使用了一片8237作DMA控制器,其端口地址为00~0FH。
8237接管总线时,应能产生20位地址信号,除8位地址线A7~A0以外,其中A15~A8由数据线DB7~DB0在S2状态分时送出,用外部锁存器锁存。最高4位地址A19~A16由页面寄存器提供。页面寄存器也是I/O端口,它们的端口地址为81H~83H,其内容可用OUT指令提前写入,在IBM PC/XT系统中,它们只接收数据总线的低4位D3~D0。
通道0的DREQ0信号由计数定时电路8253的OUT1端产生,大约每隔15.13μs发出一次DMA请求,用于对动态存储器刷新。
通道1为用户保留,其页面寄存器地址为83H,DREQ1和DACK1信号都引至扩展插槽上,可为用户使用。
通道2用于软盘驱动器接口,页面寄存器地址为81H。通道3用于硬盘接口,页面寄存器地址为82H。DREQ2、DREQ3和DACK2、DACK3也都引到扩展插槽上。
4个通道的优先级编码固定,通道0最高,通道3最低。
通道0的每个DMA周期包括S1~S4共4个S状态,其他通道都在S3和S4之间插入一个SW等待状态。
系统编程设定DREQ信号高电平有效,设定DACK低电平有效。
2.编程举例
现假设用系统板上的8237通道1,将内存起始地址为80000H的300H字节内容直接输出给外部设备。对其编程如下:(https://www.xing528.com)
程序运行前,通道1是被屏蔽的。程序完成对通道1的设置后,清除对通道1的屏蔽。于是外部接口发出DREQ1信号,进行DMA传送。程序通过读状态了解通道1的传送进程。到传送全部结束后,又恢复对通道1的屏蔽。
习题
8-1 什么叫DMA传送方式?试说明DMA方式传送数据的主要步骤。
8-2 试比较DMA传输、查询式传输及中断方式传输之间的优缺点和适用场合?
8-3 Intel 8237 DMAC芯片有哪几种工作方式?各有什么特点?
8-4 Intel 8237支持哪几种DMA传输类型?
8-5 Intel 8237占几个端口地址?这些端口在读/写时操作过程中的作用是什么?
8-6 试说明由Intel 8237控制,把内存中的一个数据块向接口传送的过程。
8-7 某8086系统中使用8237完成从存储器到存储器的数据传送,已知源数据块首地址的偏移地址值为1000H,目标数据块首地址的偏移地址值为2050H,数据块长度为100字节。试编写初始化程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
