版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基本输入输出及DMA16.1 输入/输出的基本概念1.输入/输出设备2.外设接口的功能 格式转换功能提供联络信号功能协调定时差异功能电平信号转换功能地址译码功能时序控制功能可编程功能26.1 输入/输出的基本概念3. 外设接口的一般结构CPU接口电路 I/O 设备34数据线控制线状态线DBCBAB数据输入寄存器(or 三态门)数据输出寄存器(锁存器)状态寄存器(or 三态门)命令寄存器译码电路控制逻辑接外设接主机输入/输出接口5(1)统一编址方式 4. 外设接口的编址方式(2)独立编址方式 0地址空间(共1MB)内存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H0
2、0000H内存地址空间内存空间(1MB)FFFFFHI/O空间(64KB)FFFFHI/O地址空间0000H6 程序控制的输入输出 中断传送方式 DMA工作方式6.2 CPU与外设数据传送的方式76.2.1 程序控制方式1.无条件传送方式 输出锁存器输入锁存器往输出设备来自输入设备D7D0端口译码器地址总线M/IOWRRD82.查询传送方式 查询方式输入的接口电路数据RD输入设备锁存器数据+5V三态缓冲器RD Q数据缓冲器地址译码地址总线RDD7D0M/IO9输出设备数据锁存器RQ D状态寄存器端口译码数据总线选通信号数据ACK+5VBUSYRDM/IOWR地址总线查询方式输出的接口电路10(
3、1) 中断传送方式的原理: 中断方式:CPU和外设可并行工作,当外设需要CPU为它服务时,向CPU发出申请,CPU接到申请后,暂停自己的工作去为外设服务,服务结束后再回去继续原来的工作。(2) 中断过程:主程序中断服务程序中断申请断点6.2.2 中断传送方式116.2.3 DMA工作方式CPUDMACMI/O外设1.DMA方式的提出 DMA方式:CPU交出总线控制权,在DMA控制 器控制下内存和外设直接进行信 息交换。122. DMA控制器的功能向CPU发总线请求实行对总线的控制向地址总线发送地址信号,并自动修改地址发送读/写控制信号控制传送字节个数向CPU发送结束信号,交回总线控制权13(1
4、)周期挪用(或周期窃取)DMA 访问主存有三种可能 CPU 此时不访存 CPU 正在访存 CPU 与 DMA 同时请求访存此时 CPU 将总线控制权让给 DMA主存工作时间 CPU控制并使用主存 DMA控制并使用主存t3. DMA操作基本方法14(2)周期扩展特殊的时钟发生器/驱动器电路CPU时钟周期加宽,不操作限制:DAM传送时一次只传送一个字节15(3) CPU停机方式控制简单CPU 处于不工作状态或保持状态未充分发挥 CPU 对主存的利用率主存工作时间CPU不执行程序DMA不工作DMA不工作DMA工作 CPU控制并使用主存 DMA控制并使用主存t164.DMA的传送方式(1)单字节传送(
5、2)成组传送(3)请求传送方式(查询传送)17单字节传送185. DMA 的工作过程 DMA 传送过程:初始化、数据传送、后处理(1) 初始化通过几条输入输出指令预置如下信息 通知 DMA 控制逻辑传送方向(入/出) 设备地址 DMA 的 DAR 主存地址 DMA 的 AR 传送字数 DMA 的 WC19初始化:主存起始地址设备地址 传送数据个数启动设备DMADMADMA数据传送:继续执行主程序同时完成一批数据传送后处理:中断服务程序做 DMA 结束处理继续执行主程序CPU (2)DMA 传送过程示意允许传送?主存地址送总线数据送I/O设备(或主存 )主存地址 加 1传送个数 减 1 数据块传
6、送结束?向CPU申请 程序中断DMA请求否否是是数据传送20(3) 后处理校验送入主存的数是否正确是否继续用 DMA测试传送过程是否正确,错则转诊断程序由中断服务程序完成21 1.DMA 控制器芯片Intel 8237的功能 (1)含有4 个相互独立的通道,每个通道有独立的地址寄存器和字节数寄存器,而控制寄存器、状态寄存器为四个通道所共用。 (2)每个通道的DMA 请求可以分别被允许/禁止 (3)每个通道的DMA 请求有不同的优先权,可以通过程序设置为固定的或者是旋转的方式。 6.3 DMA控制器Intel 8237 22(4)通道中地址寄存器的长度为16 位,因而一 次DMA 传送的最大数据
7、块的长度为64K 字节。(5)8237 有4 种工作方式,分别为:单字节传送、数据块传送、请求传送、级联方式。(6)允许用EOP 输入信号来结束DMA 传送或重新初始化。(7)8237 可以级联以增加通道数 23DMA控制器工作状态 1.主动态在主动态时,DMAC取代CPU,获得对系统总线的控制权,成为系统总线的主控者。它通过总线向存储器或外设发出地址和读/写信号,以控制在两个存储实体间的数据传送。DMA写操作时它发出的IOR和MEMW信号,数据由外设传到存储器;DMA读操作时,发出MEMR和IOW信号,数据从存储器传送到外设 242.被动态在被动态时,DMAC接受CPU对它的控制。一般当DM
8、AC上电或复位时,DMAC自动处于被动状态。在进行DMA传递之前,由CPU对DMAC编程,以确定通道的选择、DMA操作类型及方式、内存地址、地址递增还是递减以及需要传送的字节数等参数。在DMA传送完毕后,需读取DMAC的状态。252.内部结构26主要包含以下几个部分: (1)四个独立的DMA通道 每个通道都有一个16 位的基地址寄存器,一个16 位的基字节数计数器, 一个16位的当前地址寄存器和一个16 位的当前字节数计数器及一个8 位的方式寄存器,方式寄存器接收并保存来自于CPU 的方式控制字,使本通道能够工作于不同的方式下27 (2)定时及控制逻辑电路 对在DMA请求服务之前,CPU编程对
9、给定的命令字和方式控制字进行译码,以确定DMA的工作方式,并控制产生所需要的定时信号;(3)优先级编码逻辑 对通道进行优先级编码,确定在同时接收到不同通道的DMA 请求时,能够确定相应的先后次序。通道的优先级可以通过编程确定为是固定的或是旋转的 28 (4)共用寄存器 整个芯片还有一些共用的的寄存器:包括1个16位的地址暂存寄存器,1个16 位的字节数暂存寄存器,1个8 位的状态寄存器,1个8位的命令寄存器,1个8 位的暂存寄存器,1个4 位的屏蔽寄存器和1个4 位的请求寄存器等,我们将对这些寄存器的功能与作用,作较为详细的介绍。8237 内部寄存器的类型和数量如表6-1 所示,其中,凡数量为
10、4个的寄存器,则每个通道一个,凡数量只有一个的,则为各通道所公用 29(5)8237 的数据引线地址引线都有三态缓冲器,因而可以接地可以释放总线 303.8237 的工作周期 它具有两种主要的工作周期,即空闲周期和有效周期,每一个周期又是由若干时钟周期所组成的。 (1)空闲周期(lade cycle) 当8237的任一通道都无DMA请求时,则其处于空闲周期或称为SI 状态,空闲周期由一系列的时钟周期组成,在空闲周期中的每一个时钟周期,8237只做两项工作。31 采样各通道的DREQ请求输入线,只要无DMA请求,则其始终停留在SI状态; 由CPU对8237进行读/写操作,即采样片选信号CS,只要
11、CS信号变为有效的低电平,则表明CPU要对8237 进行读/写操作,当8237采样CS为低电平而DREQ 也为低,即外部设备没有向8237发DMA请求的情况下,则进入CPU对8237 的编程操作状态,CPU可以向8237的内部寄存器进行写操作,以决定或者改变8237 的工作方式,或者对8237 内部的相关寄存器进行读操作,以了解8237 的工作状态 32 CPU对8237 进行读/写操作时,由地址信号A3A0来选择8237 内部的不同寄存器(组),由读/写控制信号IOR 及IOW来控制读/写操作。由于8237 内部的地址寄存器和字节数计数器都是16 位的,而数据线是8 位的,所以在8237 的
12、内部,有一个高/低字节触发器,称为字节指针寄存器,由它来控制8 位信息是写入16 位寄存器的高8 位还是低8 位,该触发器的状态交替变化,当其状态为0 时,进行低字节的读/写操作;而当其状态为1 时,则进行高字节的读/写操作 33(2)有效周期(Active Cycle) 当处于空闲状态的8237 的某一通道接收到外设提出的DMA 请求DREQ 时,它立即向CPU 输出HRQ 有效信号,在未收到CPU回答时,8237仍处于编程状态,又称初始状态,记为S0状态。 经过若干个S0 状态后,当8237 收到来自于CPU 的HLDA 应答信号后,则进入工作周期,或称为有效周期,或者说8237由S0状态
13、进入了S1状态 34 S0 状态是DMA 服务的第一个状态,在这个状态下,8237 已接收了外设的请求,向CPU 发出了DMA 请求信号HRQ,但尚未收到CPU 对DMA 请求的应答信号HLDA;而S1 状态则是实际的DMA 传送工作状态,当8237 接收到CPU 发来的HLDA 应答信号时,就可以由S0 状态转入Si 状态,开始DMA 传送。在内存与外设之间进行DMA传送时,通常一个Si周期由4 个时钟周期组成,即S1,S2,S3,S4,但当外设速度较慢时,可以插入SW 等待周期;而在内存的不同区域之间进行DMA 传送时,由于需要依次完成从存储器读和向存储器写的操作,所以完成每一次传送需要8
14、 个时钟周期,在前四个周期S11,S12,S13,S14 完成从存储器源区域的读操作,后四个时钟周期S21,S22,S23,S24 完成向存储器目的区域的写操作 35DMAC8237引脚图4.外部引脚 36 8237 的各个通道在进行DMA 传送时,有四种工作方式(1)单字节传送方式 每次DMA 操作仅传送一个字节的数据,完成一个字节的数据传送后,8237 将当前地址寄存器的内容加1(或减1),并将当前字节数寄存器的内容减1,每传送完这一个字节,DMAC 就将总线控制权交回CPU 5.8237 的工作方式37 (2)数据块传送 在这种传送方式下,DMAC一旦获得总线控制权,便开始连续传送数据。
15、每传送一个字节,自动修改当前地址及当前字节数寄存器的内容,直到将所有规定的字节全部传送完,或收到外部EOP信号,DMAC才结束传送,将总线控制权交给CPU,一次所传送数据块的最大长度可达64 KB,数据块传送结束后可自动初始化。38 (3)请求传送 只要DREQ有效,DMA传送就一直进行,直到连续传送到字节计数器为0或外部输入使EOP变低或DREQ变为无效时为止 39(4)级联方式 利用这种方式可以把多个8237 连接在一起,以便扩充系统的DMA通道数。下一级的HRQ接到上一级的某一通道的DREQ上,而上一级的响应信号DACK可接下一级的HLDA上 4041 在级联方式下,当第二级8237的请
16、求得到响应时,第一级8237仅应输出HRQ 信号而不能输出地址及控制信号,第二级的8237才是真正的主控制器,而第一级的8237 仅应起到传递DREQ请求信号及DACK应答信号的作用 42(1)I/O接口到存储器的传送。当进行由I/O接口到存储器的数据传送时,来自I/O接口的数据利用DMAC送出的IOR控制信号,将数据输送到系统数据总线D0D7上,同时,DMAC送出存储器单元地址及MEMW控制信号,将存在于D0D7上的数据写入所选中的存储单元中。这样就完成了由I/O接口到存储器一个字节的传送。同时DMAC修改内部地址及字节数寄存器的内容 6.8237 的DMA传输类型 43 (2)存储器到I/
17、O 接口 DMAC送出存储器地址及MEMW控制信号,将选中的存储单元的内容读出放在数据总线D0D7上,接着DMAC送出IOW控制信号,将数据写到规定的(预选中)端口中去,而后MDAC自动修改内部的地址及字节数寄存器的内容 44 (3)存储器到存储器 8237 具有存储器到存储器的传送功能,利用8237 编程命令寄存器,可以选择通道0 和通道1两个通道实现由存储器到存储器的传送。在进行传送时,采用数据块传送方式,由通道0 送出内存源区域的地址和MEWR控制信号,将选中内存单元的的数据读到8237的暂存寄存器中,通道0修改地址及字节数寄存器的值;接着由通道1输出内存目的区域的地址及MEMW控制信号
18、,将存放在暂存寄存器中的数据,通过系统数据总线,写入到内存的目的区域中去,尔后通道1修改地址和字节数寄存器的内容,通道1的字节计数器减到零或外部输入EOP 时可结束一次DMA传输过程 45(1)优先级 8237 有两种优先级方案可供编程选择: 固定优先级 规定各通道的优先级是固定的,即通道0 的优先级最高,依次降低,通道3 的优先级最低。 循环优先级 规定刚被服务通道的优先级最低,依次循环。这就可以保证4 个通道的优先级是动态变化的,若3个通道已经被服务则剩下的通道一定是优先级最高的 7.8237 各个通道的优先级及传输速率46(2)传送速率 在一般情况下,8237 进行一次DMA传送需4个时
19、钟周期(不包括插入的等待周期SW)。例如,PC 机的时钟周期约210 ns,则一次DMA传送需210 ns4+2l0 ns=1 050 ns。多加一个210 ns 是考虑到人为插入一个SW 的缘故。另外,8237 为了提高传送速率,可以在压缩定时状态下工作。在压缩定时状态下,每个DMA 总线周期仅用2个时钟周期就可以实现,从而可以大幅度地提高数据的传送速率 478237 有4个独立的DMA 通道,有许多内部寄存器。1.基地址寄存器用以存放16位地址,只可写入而不能读出。在编程时,它与当前地址寄存器被同时写入某一起始地址,可用作内存区域的首地址或末地址。在8237进行DMA 数据传送的工作过程中
20、,其内容不发生变化,只是在自动预置时,其内容可被重新写到当前地址寄存器中去 8.8237 的编程结构 482.基字节数寄存器用以存放相应通道需要传送数据的字节数,只可写入而不能读出。在编程时它与当前字节数寄存器被同时写入要传送数据的字节数。在8237 进行DMA 数据传送的工作过程中,其内容保持不变,只是在自动预置时,其内容可以被重新写到当前字节数寄存器中去 49 3.当前地址寄存器 存放DMA 传送期间的地址值。每次传送后自动加l 或减l。CPU 可以对其进行读写操作。在选择自动预置时,每当字节计数值减为0 或外部EOP 有效后,就会自动将基地址寄存器的内容写入当前地址寄存器中,恢复其初始值
21、 504.当前字节数寄存器 存放当前的字节数。每传送一个字节,该寄存器的内容减1。当计数值减为0 或接收到来自外部的EOP 信号时,会自动将基字节数寄存器的内容写入该寄存器,恢复其初始计数值,即为自动预置 51 5.地址暂存寄存器和字节数暂存寄存器 这两个16 位的寄存器和CPU 不直接发生关系,我们也不必要对其进行读/写操作,因而对如何使用8237没有影响。 6.方式寄存器 每个通道有一个8 位的方式寄存器,用来存放方式字,但是它们占用同一个端口地址,依靠方式控制字本身的特征位来区分写入不同的通道,用来规定通道的工作方式 5253 自动预置就是当某一通道按要求将数据传送完后,又能自动预置初始
22、地址和传送的字节数,而后重复进行前面已进行过的过程。校验传送就是实际并不进行传送,只产生地址并响应EOP 信号,不产生读写控制信号,用以校验8237 的功能是否正常。 547.命令寄存器8237 的命令寄存器存放编程的命令字 55 其中:D0位用以规定是否允许采用存储器到存储器的传送方式。若允许这样做,则利用通道0 和通道1 来实现。 D1位用以规定通道0 的地址是否保持不变。如前所述,在存储器到存储器传送中,源地址由通道0 提供,读出数据到暂存寄存器,而后,由通道l送出目的地址,将数据写入目的区域;若命令字中D10,则在整个数据块传送中(块长由通道1 决定)保持内存源区域地址不变,因此,就会
23、把同一个数据写入到整个目的存储器区域中 56 D2位是允许或禁止8237 芯片工作的控制位。 D3位用于选择总线周期中写信号的定时。例如,PC机中动态存储器写是由写信号的上升沿启动的。若在DMA周期中写信号来得太早,可能造成错误,所以PC机选择D30。命令字的其他位容易理解 57 D5位用于选择是否扩展写信号。在D3=0(正常时序)时,如果外设速度较慢,有些外设是用8237A送出的IOW 和MEMW信号的下降沿来产生的READY信号的。为提高传送速度,能够使READY信号早些到来,须将IOW 和MEMW信号加宽,以使它们提前到来。因此,可以通过令D5=1 使IOW和MEMW信号扩展2 个时钟周
24、期提前到来 588.请求寄存器 用于在软件控制下产生一个DMA请求,就如同外部DREQ请求一样 59 在软件编程时,这些请求是不可屏蔽的,利用命令字即可实现使8237 按照命令字的D0D1所指的通道,完成D2所规定的操作,这种软件请求只用于通道工作在数据块传送方式之下 609.屏蔽寄存器 8237 的屏蔽字有两种形式: 单个通道屏蔽字。这种屏蔽字的格式如图6-16 所示。利用这个屏蔽字,每次只能选择一个通道。其中D0D1的编码指示所选的通道,D2l表示禁止该通道接收DREQ请求,当D20 时允许DREQ请求 6162四通道屏蔽字。可以利用这个屏蔽字同时对8237 的4 个通道的屏蔽字进行操作,
25、故又称为主屏蔽字。该屏蔽字的格式如图6-17 所示。它与单通道屏蔽字占用不同的I/O接口地址, 6310.状态寄存器 状态寄存器存放各通道的状态,CPU 读出其内容后,可得知8237 的工作状况。主要有:哪个通道计数已达到计数终点对应位为1;哪个通道的DMA 请求尚未处理对应位为1 6411.暂存寄存器 用于存储器到存储器传送过程中对数据的暂时存放。12.字节指针触发器 这是一个特殊的触发器,用于对前述各16 位寄存器的寻址。由于前述各16 位寄存器的读或写必须分两次进行,先低字节后高字节。为此,要利用字节指针触发器,当此触发器状态为0时,进行低字节操作。一旦低字节读/写操作完成后,字节指针触发器会自动置l,再操作一次又会清零。利用这种机制,就可以进行双字节读写操作,这样16位寄存器可以仅占用一个外设端口地址,高、低字节共用 658. 8237的编程及应用 (1)8237的初始化 初始化过程包括:输出主清除命令;写入基地址寄存器与现行地址寄存器;写入基字节与现行字节数寄存器;写入模式寄存器;写入命令寄存器;写入屏蔽寄存器;写入请求寄存器。66(2)编程举例【例1】PC机中BIOS对8237初始化过程。 OU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版房地产反担保抵押合同附件十3篇
- 二零二五年度绿色物流钢材运输服务合同2篇
- 二零二五年度车辆租赁与车辆销售服务合同2篇
- 二零二五年度高端商务汽车租赁服务合同协议2篇
- 二零二五版冷链物流订餐服务合同范本与质量保证2篇
- 二零二五年担保合同范本修订要点与执行建议6篇
- 二零二五版房产抵押投资合作合同范本3篇
- 二零二五版物流运输企业劳动合同范本与司机权益保障服务合同3篇
- 二零二五年度房地产经纪服务合同补充协议2篇
- 二零二五版12333职业培训补贴政策合同3篇
- 上海纽约大学自主招生面试试题综合素质答案技巧
- 办公家具项目实施方案、供货方案
- 2022年物流服务师职业技能竞赛理论题库(含答案)
- 危化品安全操作规程
- 连锁遗传和遗传作图
- DB63∕T 1885-2020 青海省城镇老旧小区综合改造技术规程
- 高边坡施工危险源辨识及分析
- 中海地产设计管理程序
- 简谱视唱15942
- 《城镇燃气设施运行、维护和抢修安全技术规程》(CJJ51-2006)
- 项目付款审核流程(visio流程图)
评论
0/150
提交评论