DMA控制器8237A的编程结构及原理
需积分: 20 8 浏览量
更新于2024-07-12
收藏 1MB PPT 举报
数据信号-DMA控制器的编程结构及编程
DMA(Direct Memory Access)控制器是一种高性能的数据传输控制器,它可以让存储器与高速外设直接进行数据交换而无需CPU的干预。8237A是Intel公司生产的一种常用的DMA控制器,本文将详细介绍8237A的编程结构及编程。
DMA控制器的编程结构主要包括 DMA控制器概要、DMA控制器8237的原理、8237A的工作方式和寄存器、8237A各寄存器对应的端口地址、8237A的编程和应用等几个方面。
DMA控制器概要:DMA控制器是实现DMA传送的核心器件。DMA传送的特点是让存储器与高速外设直接进行数据交换而无需CPU的干预。在DMA方式中,内存地址的修改、传送结束的判断都由硬件电路实现。
DMA控制器8237的原理:8237A是Intel公司生产的一种常用的DMA控制器,它可以进行单字节、单字、块传输的DMA传输。8237A的工作方式有两种:一种是单字节传输,另一种是块传输。在单字节传输中,8237A可以进行单字节的读写操作;在块传输中,8237A可以进行大量数据的传输。
8237A的工作方式和寄存器:8237A有多个寄存器,每个寄存器都有其特定的作用。例如,状态寄存器用于存储当前的状态,命令寄存器用于存储当前的命令,数据寄存器用于存储当前的数据等。
8237A各寄存器对应的端口地址:8237A的每个寄存器都有其对应的端口地址,例如,状态寄存器的端口地址是04H,命令寄存器的端口地址是05H,数据寄存器的端口地址是06H等。
8237A的编程和应用:8237A的编程主要包括初始化、申请阶段、响应阶段、数据传送阶段等几个方面。在初始化阶段,需要对8237A进行初始化,包括设置传送的数据字节数、数据在存储器中的起始地址、传送方向等。在申请阶段,当外设有DMA需求,并且已准备就绪,则向DMA控制器发出DMA请求信号DREQ。在响应阶段,CPU收到DMA的HRQ请求后,若允许DMA传输,则在当前总线周期结束后,释放总线控制权,并向DMAC发HLDA信号,通知其CPU已交出总线。在数据传送阶段,DMA控制器获得总线的控制权,向外设发送应答信号DACK,通知外设可以进行DMA传输了。
DMA传输的特点是高速、批量、大容量、可靠、灵活等。DMA控制器的应用非常广泛,例如硬盘和软盘外设、快速通信通道、多处理机和多程序数据块传送、图像处理中向CRC屏幕传送数据、快速数据采集、DRAM的刷新操作等。
305 浏览量
433 浏览量
1266 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
速本
- 粉丝: 20
- 资源: 2万+
最新资源
- git-sizer:为Git存储库计算各种大小指标,并标记可能导致问题的指标
- 电影评论
- Right-Click Search IMDb-crx插件
- 易语言超级列表框首字母排序
- a-A-Homewoks
- Varnish-Directadmin:Directadmin 的清漆缓存
- Eco Search-crx插件
- 易语言超级列表框选择多项内容
- 新建文件夹_海洋_motherw78_海图
- Burst Search-crx插件
- rpush:从任何子reddit向专用的Pushbullet频道发送近乎实时的更新
- 培训项目:仅用于培训
- dtmoney
- 基于戴维南模型_扩展卡尔曼_SOC估算_soc卡尔曼_soc卡尔曼_电池SOC估算_电池SOC_SOC估算
- xcode-git-cfbundleversion:使用短的 Git 修订字符串更新 Info.plist 文件中的 CFBundleVersion
- express-swagger-example:用于演示Express API文档的示例项目