第8章 DMA控制器
第8章DMA技术

采用程序传送数据
除了专用的计算机系统外,一般的计算机系统 要不断更换工作任务,因此经常要与外部设备 进行数据交换,特别是与磁盘的数据交换。
磁盘数据是按扇区为单位存储的。一次传送至 少上百字节。
DMA技术就是为加速大量数据传输过程发明的技 术。
在DMA期间,CPU让出对系统总线的控制权,由 DMA控制器负责外部设备与存储器之间的数据 传送。
8237的工作过程
若在S4状态结束前不能完成数据的传送,则只需使READY 信号线变低,就可以在S3(S2)和S4状态间插入Sw等待状 态。直到READY变高,才进入S4。
用DMA传送数据,要求存储器区地址是连续的。因此, 许多时候地址的高8位不变,只是低8位改变。所以,输 出和锁存高8位地址的S1状态不需要,可直接进入S2状态。
其缺点是,在整个DMA传送期间CPU无法控制总线。 (CPU无法处理中断。)
8237的传送方式
DMA传送方式3:请求传送方式
在这种方式下,DREQ信号有效,8237A连续传送数据; 但当DREQ信号无效时,DMA传送被暂时中断,8237A释放总 线,CPU得到总线控制权。但DMA传输并未终止,DMA通道的 地址和字节数的当前值,仍保持在相应通道的当前地址和 当前字节数寄存器中。当外设又准备好进行传送时,只要 使DREQ信号再次有效,DMA传送就继续进行下去。
8237的引脚信号—CPU接口信号
当8237A作为CPU外部芯片时,通过下列引脚, 接受CPU管理和控制
1. DB7~DB0:双向三态数据总线。(非复用) 2. A3~A0地址线:低4位地址总线。8237在系统中占 16个地址单元。 3. CS :片选信号。 4. IOR / IOW :作为CPU外部芯片时的读/写信号。 5. RESET复位
微机原理与接口技术:18第8章 计数器定时器与DMA控制器

交通信息与控制工程系教案(理论教学用)
课程名称微机原理与接口技术第 18 次第 9 周 2 学时上课教室WM1310 课程类型专业基础课授课对象自动化专业章节名称第8章计数器/定时器与DMA控制器(8.1,8.2)
教学目的和要求1.了解软硬件定时的原理;2.掌握8253的原理及应用。
讲授主要内容及时间分配1.接口电路概况;(10min)
2.8253的外部引线和内部结构;(20min)
3.8253的工作方式和控制字;(30min)
4.8253的应用。
(30min)
教学重点与难点重点:
1.软硬件定时的原理;2.8253的原理及应用。
难点:
8253的原理及应用。
要求掌握知识点和分析方法1.了解软硬件定时的原理;2.掌握8253的原理及应用。
启发与提问
1.软件定时与硬件定时的区别?教学手段
多媒体
作业布置思考题:
1.了解最新的硬件定时芯片的原理及其应用,如DS12887等。
主要参考资料
备注
长安大学讲稿(第十九讲)。
精品课件-ARM Cortex-A9多核嵌入式系统开发-第八章

第8章 DMA控制器
(4) 在DMA传送期间,DMAC发出内存和外设的读/写信号。 (5) 为了决定数据块传输的字节数,在DMAC内部必须有一个 “字节计数器”。在开始时,由软件设置数据块的长度,在 DMA传送过程中,每传送一个字节,字节计数器减1,减为0 时,该次DMA传输结束。 (6) DMA过程结束时,DMAC向CPU发出结束信号(撤消HOLD请 求),将总线控制权交还CPU。
第8章 DMA控制器
DMAC(Direct Memory Access Controller)是一 个自适应、先进的微控制器总线体系的控制器,它由ARM公 司设计并基于PrimeCell技术标准。DMAC提供了一个AXI接口 用来执行DMA传输,以及两个APB接口用来控制这个操作。 DMAC在安全模式下用一个APB接口执行TrustZone技术,其他 操作则在非安全模式下执行。图8.1是DMAC外部接口框图。
首先,送出存储器源的地址和控制信号,将选中内存单元的 数据暂存,然后修改“地址寄存器”和“字节计数器”的值, 接着,送出存储器目标的地址和控制信号,将暂存的数据通 过数据总线写入存储器的目标区域中,最后修改“地址寄存 器”和“字节计数器”的内容,当“字节计数器”的值减少 到零时便结束一次DMA传送。
第8章 DMA控制器
8.2 DMAC工作原理 DMAC内部包括了指令处理模块,使得DMAC本身能 够处理代码以控制DMA传送。这些指令代码存储在系统存储 器中,DMAC通过AXI接口获取这些代码。DMAC的8个通道都是 可配置的,且每个都支持单个并发线程的操作。除此之外, 还有一个管理线程、专门用来初始化DMA通道的线程。DMAC 使用了变长指令集,范围为1~6字节,并为每个通道提供了 单独的PC寄存器。
第8章 IO接口与DMA技术

这种编址方式的缺点是: 第一,单独I/O指令的功能有限,只能对端口数据进行 输入/输出操作,不能直接进行移位、比较等其他操作; 第二,由于采用了专用的I/O操作时序及I/O控制信号 线,因而增加了微处理器本身控制逻辑的复杂性。 微处理器Z80系列、Intel 80x86系列采用了这种编址方 式。
内存 8086 和总线 控制逻辑
(6) 内存把数据送数据总线
HOLD HLDA 地 址 总 线 数 据 总 线
接口
I/O 设备
(7) 接口锁存数据
(5) DMA请求得到确认 (2) 发总线请求 控 制 总 线 (3) 总线允许
(1) 接口准备就绪,发 DMA请求
DMA 控制器
(4) DMA控制器把地址送地址总线 (8) 撤销总线请求 (9) 8086收回总线控制权
8.1.2 I/O接口的基本结构
I/O接口的基本结构如图8.1所示。
I/O接口 数据总线 数据输入寄存器
数据输出寄存器
地址总线 外 状态寄存器 控制寄存器 中断控制逻辑 围 设 备
cpu
控制总线
图8.1 I/O 接口的基本结构
8.1.3 I/O端口的编址方式
输入输出接口包含一组称为I/O端口的寄存器。为了让 CPU能够访问这些I/O端口,每个I/O端口都需有自己 的端口地址(或端口号)。 在一个微型计算机系统中,如何编排这些I/O接口的端 口地址,称为I/O端口的编址方式。
(4) 能向存储器和I/O接口发出相应的读/写控制信号; (5) 能控制数据传送的字节数,控制DMA传送是否结束; (6) 在DMA传送结束后,能释放总线给CPU,恢复CPU对 总线的控制。
8第八章 DMA 8237控制器

0 0 0 0
0 1 0 1
A0~A7 A8~A15 A0~A7 A8~A15 W0~W7 W8~W15 W0~W7
写 读
0 0 0 0
1 1 0 0
0 0 1 1
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
0 1 0 1
W8~W15
第八章
DMA技术
8237通道寄存器寻址
通 道
信
寄存器 操作
号
CS IOR IOW A3 A2 A1 A0
内部先/ 后触发 器
数据总线
基本地 址寄存 器
写
2
当前地 址寄存 器
基本字 节计数 器 当前字 节计数 器
读
0 0 0 0 0 0 0 0
1 1 0 0 1 1 0 0
第八章
DMA技术
4.8237A各寄存器对应的端口地址(戴P268 )
表8-1 操作命令与有关信号的对应关系
CS
0 0 0
A3 A2 A1 A0
1 1 1 0 0 0 0 0 0 0 0 1
IOR IOW
0 1 1 1 0 0
命
令
读状态寄存器 写控制寄存器 写DMA请求标志寄存器
0
0 0
1
1 1
0
0 1
8237A在传送时有四种工作模式
① 单字节传送模式(戴P262 ) ② 块传送方式(戴P262 ) ③ 请求传送模式(戴P262)④级连传输模式 (戴P262)
在这种传送模式下,8237A可以进行连续的数据传送。当出现以下三种 情况之一时停止传送: a.字节计数器减到0,产生DMA传输结束信号,在线上输出一个有效脉冲。 b.由外界送来一个有效的信号 EOP 。 c.外界的DREQ信号变为无效(外设来的数据已送完)。
微机填空题题库-2014(终极版)

微机填空题题库-2014(终极版)填空题第1章微型计算机概述1.微型计算机中各部件是通过总线构成一个整体的.2.____微处理器_____是微型计算机的核心。
3.总线按照其规模、用途和应用场合可分为_数据总线_________、_地址总线_________和___控制总线_________。
4.微型计算机由_ CPU_______ 、存储器___ 、输入/输出接口_______ 和_系统总线______ 组成。
5.以微型计算机为主体,配上系统软件、应用软件和外设之后,就成了微型计算机系统。
6.微型计算机的主要性能指标有CPU的位数、____CPU的主频__、_内存容量和速度______________、__硬盘容量________第2章 16位和32位微处理器1.Intel 8086CPU是__16_____位微处理器,有__16___根数据总线和__20__根地址总线,存储器寻址的空间为_ 1MB______,端口寻址空间为_64KB____。
8088CPU有_8_根数据总线。
2.输入/输出端口有两种编址方法,既I/O端口与存储单元统一编址和I/O单独编址。
前一种编址的主要优点是功能强和指令灵活。
后一种编址的主要优点是指令运行速度快和增强了程序的可读性。
3.所谓最小模式,就是在系统中只有8086一个微处理器。
4.所谓最大模式是在系统中包含两个或多个微处理器。
(主 8086,其他称协处理器)5.8086工作在最大模式下,引脚MN/MX*接低(高/低)电平。
6.8086/8088CPU的数据线和地址线是以__分时复用_____ 方式轮流使用的。
7.8086中的BIU由___4_______个_______16_____位段寄存器、一个___16____位指令指针、___6_______字节指令队列、__20_____位地址加法器和控制电路组成。
8.8086/8088提供的能接受外中断请求信号的引脚是INTR 和NMI 。
第8章 可编程DMA控制器8237A解析

2) DMA传送控制信号引脚
IOR/IOW: 双向,被动态时接收CPU的读/写命令,主动态时向
I/O发读/写命令; MEMR/MEMW: 输出,主动态时向M发读/写命令; CS: 被动态时,由CPU选中该芯片进行读/写操作; DB0~DB7:被动态时作数据线,双向三态,主动态时双功能, 地址和数据分时复用:传送M地址的A8~15,M-M传输时作数据 输入/输出线; A0~A3:双向,被动态作端口选择线(16个可访问端口),主动 态发出M地址的A0~3; A4~A7:单向,主动态发出M地址的A4~7; ADSTB:地址选通,输出,用于将DB0~DB7发出的A8~15锁存 到外部地址锁存器;
内部寄存器组
有4个独立通道,每个通道有4个16位寄存器,一个工 作方式寄存器; 另有5个全芯片共用寄存器:命令,状态,请求,屏 蔽,暂存。
14
8.2 8237A内部结构及引脚
问题:芯片对外的联络方式如何?(引脚信号情况) 8-2-2 8237A的引脚 8237A是40引脚的双列直插式器件,由于它既可做主模块又
EOP RESET CS READY CLK AEN ADSTB
MEMR MEMW
地址暂存器 A15 ~A8 读/写缓冲器 当前地址 寄存器 (16×4) 当前字 计数器 (16×4)
I/O缓冲 A3~A 0 输出缓冲 A7~A4
16 读缓冲器 时 序 与 控 制 逻 辑 基地址 基字 寄存器 寄存器 4) (16× 4) (16×
可做从模块,故其外部引脚设置也具有一定的特点。如它的 I/O读写线和数据线是双向的,另外,还设置了存储器读/写 线和16位地址输出线。这些都是其他I/O接口芯片所没有的。
15
s3c2410_第八章DMA

8 DMA概述S3C2410A支持位于系统总线和外设总线之间的4个通道的DMA控制器。
每一个通道的DMA控 制器都能没有约束的实现系统总线或者外设总线之间的数据传输,即每个通道都能处理下面四 种情况:1) 源器件和目的器件都在系统总线2) 源器件在系统总线,目的器件在外设总线3) 源器件在外设总线,目的器件在系统总线4) 源器件和目的器件都在外设总线DMA的主要优点是:可以不通过CPU的干预来实现数据的传输,DMA的运行可以通过软件、内 部外设或外部请求引脚信号的请求来初始化。
DMA 请求源每个通道的DMA控制器都能够从4个DMA 如果在DCON寄存器中H/W DMA请求模式被选中,请求源中选择一个 DMA 请求源。
(注意:如果 S/W 请求模式被选中,中断请求源的设置没有 任何意义)表 81 列出了每一个通道的 4 个 DMA 请求源。
Table 81. 每一个通道的DMA请求源Source0 Source1 Source2 Source3 Source4 Ch0 nXDREQ0 UART0 SDI Timer USB device EP1 Ch1 nXDREQ1 UART1 I2SSDI SPI0 USB device EP2 Ch2 I2SSDO I2SSDI SDI Timer USB device EP3 Ch3 UART2 SDI SPI1 Timer USB device EP4在这里,nXDREQ0和nXDREQ1表示两个外部源(外部设备),I2SSDO和I2SSDI分别表示IIS 的发送和接收。
DMA 工作过程DMA 使用三态 FSM(有限状态机)进行操作,以下用三个步骤描述:State1. 初始状态,DMA 等待DMA 请求。
若请求到达,进入状态 2。
此阶段,DMA ACK 和 INT REQ 都为 0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.2.4 8237A方式控制字
2.当前地址寄存器
当前地址寄存器为16位,用于存放DMA传送访问的存储器地址。 该寄存器的初值是在CPU编程时和基地址寄存器同时写入的。 在DMA传送时,每传送一个字节,寄存器的内容自动加1或减1, 以提供下一次传送的地址值。 当前地址寄存器的内容可由CPU以连续两字节方式写入或读出。 若设置成自动预置方式,则在有效,DMA传送结束后,将基地址寄存 器的内容重新赋给当前地址寄存器,恢复其初值。
8.1.1 直接存储器存取DMA概念
8.1.2 DMA控制器组成与功能
一个DMA控制器,实际上是采用DMA方式的外围设备与系统总线之间的接口电 路,这个接口电路是在中断接口的基础上再加DMA机构组成习惯上将DMA方式的接 口电路称为DMA控制器。
DMA控制器在存储器与I/O设备之间传送数据时,是具有控制作用器件,DMA 控制器具有对存储器和I/O端口存取数据的能力。
8.状态寄存器
状态寄存器为8位寄存器,用于存放8237A内部的状态信息,提供哪些 通道已到终止计数,哪些通道有DMA请求等状态信息供CPU使用,只能由 CPU读取。该寄存器只能读出,不能写入。
8.2.4 8237A方式控制字
9.暂存寄存器
暂存寄存器为8位寄存器。在存储器至存储器传送方式中,用于 暂时存放由源地址单元读出的数据,再由暂存器写至目的单元。在一 个字节传送完后,暂存器保存着刚传送的字节。RESET信号清除暂存 寄存器的内容。
8.2.4 8237A方式控制字
4.工作方式寄存器
工作方式寄存器用于控制某个通道的DMA传送方式和传送方向。 D7D6:这两位决定DMA传送方式。分为请求工作方式、单字节方式、成组传送 方式和级联方式四种。
8.2.4 8237A方式控制字
5.命令寄存器
命令寄存器为8位寄存器,4个通道公用。用于控制8237A的操作,其内容 由CPU写入,进行初始化编程或写入新的命令,而用复位信号RESET或软件清除 命令来清除它的内容。该寄存器只能写,不能读。
8.1.3 DMA操作步骤
3.DMA传送结束
DMA传送完毕时,可利用字 节计数器为0的信号由DMA控制 器发出一信号使微处理器中用 作总线请求的引线HOLD端被禁 止,从而结束DMA控制。
8.2 可编程DMA控制器8237A
8.2.1 8237A主要特性 8.2.2 8237A内部结构 8.2.3 8237A的引脚及功能 8.2.4 8237A方式控制字 8.2.5 内部寄存器的寻址 8.2.6 软件命令
8.3.1 8237A初始化编程 8.3.2 8237A应用实例
8.3.1 8237A初始化编程
初始化编程主要包括:
(1)输出主清除命令,使8237A处于复位状态,以接收新命令; (2)写入工作方式寄存器,以确定8237A工作方式和传送类型; (3)写入命令寄存器,以控制8237A的工作; (4)根据所选通道,输入相应通道当前地址寄存器和基地址寄存 器的初始值; (5)输入当前字节计数器和基字节数寄存器的初始值; (6)写入屏蔽寄存器; (7)写入请求寄存器,便可由软件启动DMA传送。否则,经过(1) -(6)步编程后,由通道DREQ启动DMA传送的过程。
CMP BX, AX ;读出的与写入的比较
JE LP2
;相等,则转LP2,转入下一寄存器
HLT
;不相等,则出错,系统停止
LP2:INC DX
;寄存器口地址+1,指向下一个寄存器
MOV DX, DMA ;FF写入0-3号通道的基地址或字节数寄存器
8.3.1 8237A初始化编程 【例8-1】
LP1:OUT DX, AL ;写入低8位
OUT DX, AL ;再写入高8位
IN AL, DX ;读出写入的低8位
MOV AH, AL ;保存到AH
IN AL, DX ;读出写入的高8位
8.2.4 8237A方式控制字
7.屏蔽寄存器
用来禁止或允许通道的DMA请求。当屏蔽位置位时。禁止本通道的DREQ进入。 若通道编程为不自动预置,则当该通道遇到 EOP 信号时,它所对应的屏蔽位置 位。
屏蔽字有两种格式,即写1位屏蔽位的屏蔽字和写4位屏蔽位的屏蔽字。
8.2.4 8237A方式控制字
MOV AL, 04
;命令字,禁止8237A工作
OUT DMA+08, AL
;命令字送命令寄存器
OUT DMA+0DH,AL
;总清命令,8237A进入空闲周期
;全“1”检测
MOV AL, 0FFH
BEG:MOV BL, AL ;暂存AX到BX
MOV BH, AL
MOV CX, 8 ;循环测试8个寄存器
8.2.4 8237A方式控制字
3.当前字节计数器
当前字节计数器为16位。 在DMA传送中,当前字节计数器保存当前所要传送的字节数,其初 值是CPU编程时和基字节数寄存器同时写入的。每传送一个字节,寄存 器的内容减1,减至0时,将产生一个终止计数脉冲输出。 该寄存器的内容可由CPU以连续二字节方式写入或读出。若设置成 自动预置方式,在DMA传送结束,产生 EOP 有效信号后,将基字节数 寄存器的内容置新赋给当前字节计数器,恢复其初值。
8.2.4 8237A方式控制字
5.命令寄存器
旋转优先权示意
8.2.4 8237A方式控制字
6.请求寄存器
DMA请求可由I/O设备发出,也可由软件产生。请求寄存器是用于由软件来 启动DMA请求的。软件请求DMA传输操作必须是成组传输方式,并且在传送结束 后,EOP 信号会清除相应请求位。
每执行一次软件请求DMA传送,都要对请求寄存器编程一次。RESET信号清 除整个请求寄存器。软件请求位是不可屏蔽的。该寄存器只能写,不能读。
8.3.1 8237A初始化编程 【例8-1】
【例8-1】初始化8237A。对PC系列的DMA控制器8237A进行检测用。测试程
序对4个通道的8个16位寄存器先后写入全“1”和全“0”,再读出比较其是否一
致。若不一致,则出错,停机。(设程序中的变量DMA地址是00H)。
;检测前,禁止DMA控制器工作
(2)若CPU响应请求,则发出DMA响应信号后,DMA控制器能接管对总线 的控制,进入DMA操作方式。
(3)DMA控制器具有存储器寻址功能,并能自动修改地址指针。 (4)根据数据传送的方向,由DMA控制器向外设或存储器发出相应的读 或写等控制信号。 (5)DMA控制器控制传送数据的字节数,并根据传送字节数的状态判断 DMA传送是否结束。 (6)当数据传送完成后,DMA控制器发出DMA操作的结束信号,释放总线 控制权给CPU,使CPU恢复正常工作。
8.2.5 内部寄存器的寻址
8.2.6 软件命令
对于内部寄存器,8237A还提供了软件命令以清除某些 寄存器。
软命令就是只要对特定的地址进行一次写操作命令就生 效,而与写入的具体数据无关。
软件命令共有三条:
1、主清除命令 2、清字节指针触发器命令 3、清屏蔽寄存器命令
8.3 8237A程序设计
DMA控制器(简称DMAC)是专用于控制数据的输入和输出的硬件。 DMA方式可实现:
数据存储器RAM → I/O端口的DMA读传送、I/O端口 → 数据存储器RAM的DMA写传送、数据存储器RAM → 数据存储器RAM的存储单元传送。 在DMA传送期间,CPU释放系统总线的控制权,由DMA控制器接管。在 DMA控制器的控制下,数据直接在存储器和I/O设备之间传送。 DMA方式是采用请求-响应方式工作,它的优先权高于中断方式的优 先级别。
8.2.2 8237A内部结构
8.2.2 8237A内部结构
1.控制逻辑单元
定时和控制逻辑单元 命令控制单元 优先权控制逻辑单元
2.缓冲器
两个I/O缓冲器 一个输出缓冲器
8.2.2 8237A内部结构
3.内部寄存器
8.2.3 8237A的引脚及功能
8.2.4 8237A方式控制字
8237A每个通道有5个寄存器 工作方式寄存器 基地址寄存器 当前地址寄存器 基字节数寄存器 当前字节数计数器
8.3 8237A程序设计 8.3.1 8237A初始化编程 8.3.2 8237A应用实例
8.1 DMA基本概念
8.1.1直接存储器存取DMA概念 8.1.2 DMA控制器组成与功能 8.1.3 DMA操作步骤
8.1.1 直接存储器存取DMA概念
DMA是用硬件实现计算机内存储器与I/O设备之间直接进行数据传送, 而不再通过CPU进行传送,传送期间也无须CPU干预。
8.1.3 DMA操作步骤
2.DMA数据传送
DMA数据传送步骤如下(以输入操作为例): (1)外设发出选通脉冲,把输入数据送入数据缓冲寄存器,并使DMA请求触 发器置“1”; (2)DMA请求触发器向控制/状态端口发出准备就绪信号,同时向DMA控制器 发出DMA请求信号; (3)DMA控制器向CPU发出HOLD请求; (4)CPU在完成了现行机器周期后,即响应DMA请求,发出HLDA信号,并由 DMA控制器发出DMA响应信号,使DMA请求触发器复位。此时,CPU浮动它的总线, 使之进入高阻状态,于是由DMA控制器或相应的外围设备接管系统总线; (5)DMA控制器控制系统总线,发出存储器地址,并在数据总线上给出数据, 随后在其R/W线上发出“读”或“写”的命令; (6)数据沿着数据总线直接在I/O设备与存储器之间传送; (7)每传送一个字节,DMA控制器的地址寄存器加1,从而得到下一个地址, 字节计数寄存器则减1。如此循环,直到字计数器的值为0,数据传送完毕。
第8章 DMA控制器
8.1 DMA基本概念 8.1.1直接存储器存取DMA概念 8.1.2 DMA控制器组成与功能 8.1.3 DMA操作步骤
8.2 可编程DMA控制器8237A 8.2.1 8237A主要特性 8.2.2 8237A内部结构 8.2.3 8237A的引脚及功能 8.2.4 8237A方式控制字 8.2.5内部寄存器的寻址 8.2.6软件命令