第7章基本输入输出接口Word下载.docx
- 文档编号:16661025
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:27
- 大小:235.55KB
第7章基本输入输出接口Word下载.docx
《第7章基本输入输出接口Word下载.docx》由会员分享,可在线阅读,更多相关《第7章基本输入输出接口Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
⑴寻址能力:
对送来的片选信号进行识别。
⑵输入/输出功能:
根据读/写信号决定当前进行的是输入操作还是输出操作。
⑶数据转换功能:
并行数据向串行数据的转换或串行数据向并行数据的转换。
⑷联络功能:
就绪信号,忙信号等。
⑸中断管理:
发出中斯请求信号、接收中断响应信号、发送中断类型码的功能。
并有优先级管理功能。
⑹复位:
接收复位信号,从而使接口本身以及所连的外设进行重新启动。
⑺可编程:
用软件来决定其工作方式,用软件来设置有关的控制信号。
⑻错误检测:
一类是传输错误。
另—类是覆盖错误。
一些接口还可根据具体情况设置其它的检测信息。
二.I/O接口与系统的连接
1.CPU与I/O设备之间的信号(三类)
(1)数据信息包括三种形式:
数字量、模拟量、开关量
(2)状态信息是外设通过接口往CPU传送的
如:
“准备好”(READY)信号、“忙”(BUSY)信号
(3)控制信息是CPU通过接口传送给外设的
如:
外设的启动信号、停止信号就是常见的控制信息
2.接口部件的I/O端口:
⑴数据端口、⑵控制端口、⑶状态端口
CPU和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口,每个端口有一个端口地址。
用于对来自CPU和内存的数据或者送往CPU和内存的数据起缓冲作用的,这些端口叫数据端口。
用来存放外部设备或者接口部件本身的状态,称为状态端口。
用来存放CPU发出的命令,以便控制接口和设备的动作,这类端口叫控制端口。
如下图
⑴输入还是输出,所用到的地址总是对端口而言的,不是对接口部件而言的。
⑵为了节省地址空间,将数据输入端口和数据输出端口对应同一个端口地址。
同样,状态端口和控制端口也常用同一个端口地址。
⑶CPU对外设的输入/输出操作就归结为对接口芯片各端口的读/写操作。
3.接口与系统的连接.
接口电路位于CPU与外设之间,从结构上看,可以把一个接口分为两个部分,⑴用来和I/O设备相连;
⑵用来和系统总线相连,这部分接口电路结构类似,连在同一总线上。
下图是一个典型的I/O接口和外部电路的连接图:
联络信号:
读/写信号,以便决定数据传输方向。
地址译码器,片选信号:
地址译码器除了接收地址信号外,还用来区分I/0地址空间和内存地址空间的信号(M/
)用于译码过程。
⑴一个接口通常有若干个寄存器可读/写,
⑵一般用1-2位低位地址结合读/写信号来实现对接口内部寄存器的寻址。
4.输入输出的寻址方式
CPU对外设的寻址方式通常有两种:
(1)存储器对应输入输出方式
每一个外设端口占有存储器的一个地址。
优点:
CPU对外设的操作可使用全部的存储器操作指令,寻址方式多,使用方便灵活,且可寻址的外设数量多。
缺点:
由于外设占用了存储单元的地址,使内存的容量减小,同时,程序的可读性下降。
(2)端口寻址的输入输出方式
CPU有专门的输入输出指令(IN,OUT),通过这些指令中的地址来区分不同的外设。
容易掌握,编出的程序可读性好。
可寻址的范围较小,还必须有相应的控制线(M/
)来区分是寻址内存还是外设。
7.2简单I/O接口
数据锁存器74LS373;
数据缓冲器74LS244;
数据收发器74LS245。
7.3CPU与外设数据传送的方式
7.3.1程序控制方式(如图7-1所示)
无条件传送方式、查询传送方式
7.3.2中断传送方式如图7-2所示
7.3.3直接存储器访问(DMA)方式
7.4DMA控制器8237A
DMA传送的基本原理
1)向DMAC发出DMA传送请求信号(DREQ)。
2)DMAC向总线仲裁机构请求占用总线。
3)DMAC接到HLDA信号后成为总线的主控者。
4)向存储器和进行DMA传送的外设发出读写命令,开始DMA传送。
5)撤消对CPU的总线请求,交回系统总线的管理和控制权。
7.4.18237A的内部结构和引脚
1.四个独立的DMA通道
每个通道都有一个16位的基地址寄存器,一个16位的基字节数计数器,
一个16位的当前地址寄存器和一个16位的当前字节数计数器及一个8位的方
式寄存器,方式寄存器接收并保存来自于CPU的方式控制字,使本通道能够
工作于不同的方式下;
2.定时及控制逻辑电路
对在DMA请求服务之前,CPU编程对给定的命令字和方式控制字进行译
码,以确定DMA的工作方式,并控制产生所需要的定时信号;
3.优先级编码逻辑
对通道进行优先级编码,确定在同时接收到不同通道的DMA请求
时,能够确定相应的先后次序。
通道的优先级可以通过编程确定为是固定的或者是旋转的。
4.共用寄存器
除了每个通道中的寄存器之外,整个芯片还有一些共用的的寄存器:
包括
1个16位的地址暂存寄存器,1个16位的字节数暂存寄存器,1个8位的状态
寄存器,1个8位的命令寄存器,1个8位的暂存寄存器,1个4位的屏蔽寄存
器和1个4位的请求寄存器等,我们将对这些寄存器的功能与作用,作较为详
细的介绍。
8237内部寄存器的类型和数量如表6-1所示,其中,凡数量为4个的寄存器,则每个通道一个,凡数量只有一个的,则为各通道所公用。
表6-18237的内部寄存器
寄存器名
长度(Bit)
数量
基地址寄存器
基字节数寄存器
当前地址寄存器
当前字节数寄存器
地址暂存寄存器
字节数暂存寄存器
16
1
状态寄存器
命令寄存器
暂存寄存器
方式寄存器
屏蔽寄存器
请求寄存器
8
6
5.8237的数据引线,地址引线都有三态缓冲器,因而可以接也可以释放总线。
7.4.28237的工作周期
在设计8237时,规定它具有两种主要的工作周期(或工作状态),即空闲
周期和有效周期,每一个周期又是由若干时钟周期所组成的。
1.空闲周期(ladecycle)
当8237的任一通道都无DMA请求时,则其处于空闲周期或称为SI状态,
空闲周期由一系列的时钟周期组成,在空闲周期中的每一个时钟周期,8237只
做两项工作:
●采样各通道的DREQ请求输入线,只要无DMA请求,则其始终停留在SI状态;
●由CPU对8237进行读/写操作,即采样片选信号
,只要
信号变为有效的低电平,则表明CPU要对8237进行读/写操作,当8237采样
为低电平而DREQ也为低,即外部设备没有向8237发DMA请求的情况下,则进入CPU对8237的编程操作状态,CPU可以向8237的内部寄存器进行写操作,以决定或者改变8237的工作方式,或者对8237内部的相关寄存器进行读操作,以了解8237的工作状态。
CPU对8237进行读/写操作时,由地址信号A3~A0来选择8237内部的不同寄存器(组),由读/写控制信号
及
来控制读/写操作。
由于8237内部的地址寄存器和字节数计数器都是16位的,而数据线是8位的,所以在8237的内部,有一个高/低字节触发器,称为字节指针寄存器,由它来控制8位信息是写入16位寄存器的高8位还是低8位,该触发器的状态交替变化,当其状态为0时,进行低字节的读/写操作;
而当其状态为1时,则进行低字节的读/写操作。
2.有效周期(ActiveCycle)
当处于空闲状态的8237的某一通道接收到外设提出的DMA请求DREQ时,它立即向CPU输出HRQ有效信号,在未收到CPU回答时,8237仍处于编程状态,又称初始状态,记为S0状态。
经过若干个S0状态后,当8237收到来自于CPU的HLDA应答信号后,则进入工作周期,或称为有效周期,或者说8237由S0状态进入了S1状态。
S0状态是DMA服务的第一个状态,在这个状态下,8237已接收了外设的请求,向CPU发出了DMA请求信号HRQ,但尚未收到CPU对DMA请求的应答信号HLDA;
而S1状态则是实际的DMA传送工作状态,当8237接收到CPU发来的HLDA应答信号时,就可以由S0状态转入S1状态,开始DMA传送。
在内存与外设之间进行DMA传送时,通常一个S1周期由4个时钟周期组成,即S1、S2、S3、S4,但当外设速度较慢时,可以插入SW等待周期;
而在内存的不同区域之间进行DMA传送时,由于需要依次完成从存储器读和向存储器写的操作,所以完成每一次传送需要8个时钟周期,在前四个周期S11、S12、S13、S14完成从存储器源区域的读操作,后四个时钟周期S21、S22、S23、S24完成向存储器目的区域的写操作。
8237的外部结构
8237是具有40个引脚的双列直插式集成电路芯片,其引脚如图6-4所示:
1.CLK:
时钟信号输入引脚,对于标准的8237,其输入时钟频率为3MHz,对于8237-2,其输入时钟频率可达5MHz。
2.
:
芯片选择信号,输入引脚。
3.RESET:
复位信号,输入引脚,用来清除8237中的命令、状态请求和临时寄存器,且使字节指针触发器复位并置位屏蔽触发器的所有位(即使所有通道工作在屏蔽状态),在复位之后,8237工作于空闲周期SI。
4.READY:
外设向8237提供的高电平有效的“准备好”信号输入引脚,若8237在S3状态以后的时钟下降沿检测到READY为低电平,则说明外设还未准备好下一次DMA操作,需要插入SW状态,直到READY引脚出现高电平为止。
5.DREQ0~DREQ3:
DMA请求信号输入引脚,对应于四个独立的通道,DREQ的有效电平可以通过编程来加以确定,优先级可以固定,也可以旋转。
6.DACK0~DACK3:
对相应通道DREQ请求输入信号的应答信号输出引脚。
7.HRQ:
8237向CPU提出DMA请求的输出信号引脚,高电平有效。
8.HLDA:
CPU对HRQ请求信号的应答信号输入引脚,高电平有效。
9.DB0~DB7:
8条双向三态数据总线引脚。
在CPU控制系统总线时,可以通过DB0~DB7对8237编程或读出8237的内部状态寄存器的内容;
在DMA操作期间,由DB0~DB7输出高8位地址信号A8~A15,并利用ADSTB信号锁存该地址信号。
在进行内存不同区域之间的DMA传送时,除了送出A8~A15地址信号外,还分时输入从存储器源区域读出的数据,送入8237的暂存寄存器中,等到存储器写周期时,再将这些数据通过这8个引脚,由8237的暂存寄存器送到系统数据总线上,然后写入到规定的存储单元中去。
10.A3~A0:
4条双向三态的低位地址信号引脚。
在空闲周期,接收来自于CPU
的四位地址信号,用以寻址8237内部的不同的寄存器(组);
在DMA传送时,输出要访问的存储单元或者I/O端口地址的低4位。
11.A7~A4:
4条三态地址信号输出引脚。
在DMA传送时,输出要访问的存储
单元或者I/O端口地址的中4位。
12.
低电平有效的双向三态信号引脚。
在空闲周期,它是一条输入控制信号,CPU利用这个信号读取8237内部状态寄存器的内容;
而在DMA传送时,它是读端口控制信号输出引脚,与
相配合,使数据由外设传送到内存。
13.
低电平有效的双向三态信号引脚,其功能与
相对应。
14.
低电平有效的双向三态信号引脚,用于DMA传送,控制存储器
的读操作。
15.
的写操作。
16.AEN:
高电平有效的输出信号引脚,由它把锁存在外部锁存器中的高8位
地址送入系统的地址总线,同时禁止其它系统驱动器使用系统总线。
17.ADSTB:
高电平有效的输出信号引脚,此信号把DB7~DB0上输出的高8位
地址信号锁存到外部锁存器中。
18.
双向,当字节数计数器减为0时,在
上输出一个有效的低电平脉冲,表明DMA传送已经结束;
也可接收外部的
信号,强行结束8237的DMA操作或者重新进行8237的初始化。
当不使用
端时,应通过数千Ω的电阻接到高电平上,以免由它输入干扰信号。
19.+5V、GND及N/C引脚
7.4.38237的工作方式
8237的各个通道在进行DMA传送时,有四种工作方式
1.单字节传送方式
每次DMA操作仅传送一个字节的数据,完成一个字节的数据传送后,8237将当前地址寄存器的内容加1(或减1),并将当前字节数寄存器的内容减1,每传送完这一个字节,DMAC就将总线控制权交回CPU。
2.数据块传送
在这种传送方式下,DMAC一旦获得总线控制权,便开始连续传送数据。
每传送一个字节,自动修改当前地址及当前字节数寄存器的内容,直到将所有规定的字节全部传送完,或收到外部
信号,DMAC才结束传送,将总线控制权交给CPU,一次所传送数据块的最大长度可达64KB,数据块传送结束后可自动初始化。
显然,在这种方式下,CPU可能会很长时间不能获得总线的控制权。
这在有些场合是不利的,例如,PC机就不能用这种方式,因为在块传送时,8088不能占用总线,无法实现对DRAM的刷新操作。
3.请求传送
只要DREQ有效,DMA传送就一直进行,直到连续传送到字节计数器为0或外部输入使
变低或DREQ变为无效时为止。
4.级联方式
利用这种方式可以把多个8237连接在一起,以便扩充系统的DMA通道数。
下一级的HRQ接到上一级的某一通道的DREQ上,而上一级的响应信号DACK
图6-58237级联方式工作框图
可接下一级的HLDA上,其连接如图7-5所示。
在级联方式下,当第二级8237的请求得到响应时,第一级8237仅应输出HRQ信号而不能输出地址及控制信号,因为,第二级的8237才是真正的主控制器,而第一级的8237仅应起到传递DREQ请求信号及DACK应答信号的作
用。
7.4.48237的DMA传输类型
DMA所支持的DMA传送,可以在I/O接口到存储器;
存储器到I/O接口及内存的不
同区域之间进行,它们具有不同的特点,所需要的控制信号也不相同
1.I/O接口到存储器的传送。
当进行由I/O接口到存储器的数据传送时,来自I/O接口的数据利用DMAC送出的
控制信号,将数据输送到系统数据总线D0~D7上,同时,DMAC送出存储器单元地址及
控制信号,将存在于D0~D7上的数据写入所选中的存储单元中。
这样就完成了由I/O接口到存储器一个字节的传送。
同时DMAC修改内部地址及字节数寄存器的内容。
1.存储器到I/O接口
与前一种情况类似,在进行这种传送时,DMAC送出存储器地址及
控制信号,将选中的存储单元的内容读出放在数据总线D0~D7上,接着,DMAC送出
控制信号,将数据写到规定的(预选中)端口中去,而后MDAC自动修改内部的地址及字节数寄存器的内容。
2.存储器到存储器
8237具有存储器到存储器的传送功能,利用8237编程命令寄存器,可以选择通道0和通道1两个通道实现由存储器到存储器的传送。
在进行传送时.采用数据块传送方式,由通道0送出内存源区域的地址和
控制信号,将选中内存单元的的数据读到8237的暂存寄存器中,通道0修改地址及字节数寄存器的值;
接着由通道1输出内存目的区域的地址及
控制信号,将存放在暂存寄存器中的数据,通过系统数据总线,写入到内存的目的区域中去,尔后通道1修改地址和字节数寄存器的内容,通道1的字节计数器减到零或外部输入
时可结束一次DMA传输过程。
7.4.58237各个通道的优先级及传输速率
1.优先级
8237有两种优先级方案可供编程选择:
(1).固定优先级
规定各通道的优先级是固定的,即通道0的优先级最高,依次降低,通道3的优先级最低。
(2).循环优先级
规定刚被服务通道的优先级最低,依次循环。
这就可以保证4个通道的优先级是动态变化的,若3个通道已经被服务则剩下的通道一定是优先级最高的。
2.传送速率
在一般情况下,8237进行一次DMA传送需要4个时钟周期(不包括插入的等待周期SW)。
例如,PC机的时钟周期约210ns,则一次DMA传送需要
210ns
4+2l0ns=1050ns。
多加一个210ns是考虑到人为插入一个SW的缘故。
另外,8237为了提高传送速率,可以在压缩定时状态下工作。
在压缩定时状态下,每个DMA总线周期仅用2个时钟周期就可以实现,从而可以大幅度地提高数据的传送速率。
7.4.68237的内部寄存器组
8237有4个独立的DMA通道,有许多内部寄存器。
前面表6-1已经给出了这些寄存器的名称、长度和数量,我们来详细介绍各个寄存器的功能和作用。
1.基地址寄存器
用以存放16位地址,只可写入而不能读出。
在编程时,它与当前地址寄存器被同时写入某一起始地址,可用作内存区域的首地址或末地址。
在8237进行DMA数据传送的工作过程中,其内容不发生变化,只是在自动预置时,其内容可被重新写到当前地址寄存器中去。
2.基字节数寄存器
用以存放相应通道需要传送数据的字节数,只可写入而不能读出。
在编程时它与当前字节数寄存器被同时写入要传送数据的字节数。
在8237进行DMA数据传送的工作过程中,其内容保持不变,只是在自动预置时,其内容可以被重新写到当前字节数寄存器中去。
3.当前地址寄存器
存放DMA传送期间的地址值。
每次传送后自动加l或减l。
CPU可以对其进行读写操作。
在选择自动预置时,每当字节计数值减为0或外部
有效后,就会自动将基地址寄存器的内容写入当前地址寄存器中,恢复其初始值。
4.当前字节数寄存器
存放当前的字节数。
每传送一个字节,该寄存器的内容减1。
当计数值减为0或接收到来自外部的
信号时,会自动将基字节数寄存器的内容写入该寄存器,恢复其初始计数值,即为自动预置。
5.地址暂存寄存器和字节数暂存寄存器
这两个16位的寄存器和CPU不直接发生关系,我们也不必要对其进行读/写操作,因而对如何使用8237没有影响。
6.方式寄存器
每个通道有一个8位的方式寄存器,但是它们占用同一个端口地址,用来存放方式字,依靠方式控制字本身的特征位来区分写入不同的通道,用来规定通道的工作方式,各位的作用如下:
00通道000请求传输方式01通道101单字节传输方式通道选择10通道210块传输方式方式选择11通道311级联传输方式00校验传输传输类型选择01写传输10读传输11无意义自动预置功能选择,0—禁止;
1—允许。
地址增/减1选择,0—增1;
1—减1。
自动预置就是当某一通道按要求将数据传送完后,又能自动预置初始地址和传送的字节数,而后重复进行前面已进行过的过程。
校验传送就是实际并不进行传送,只产生地址并响应
信号,不产生读写控制信号,用以校验8237的功能是否正常。
7.命令寄存器
8237的命令寄存器存放编程的命令字,命令字各位的功能如图6-7所示,
0DACK低电平有效0禁止存储器到存储器传输
1DACK高电平有效1允许存储器到存储器传输
0DREQ高电平有效0禁止通道0地址保持
1DREQ低电平有效1允许通道0地址保持。
D0=0时无意义
0不扩展写入0启动8237工作
1扩展写入1停止8237的工作
0固定优先权0正常时序
1旋转优先权1压缩时序
8237的命令寄存器
其中:
D0位用以规定是否允许采用存储器到存储器的传送方式。
若允许这样做,则利用通道0和通道1来实现。
D1位用以规定通道0的地址是否保持不变。
如前所述,在存储器到存储器传送中,源地址由通道0提供,读出数据到暂存寄存器,而后,由通道l送出目的地址,将数据写入目的区域;
若命令字中D1=0,则在整个数据块传送中(块长由通道1决定)保持内存源区域地址不变,因此,就会把同一个数据写入到整个目的存储器区域中。
D2位是允许或禁止8237芯片工作的控制位。
D3位用于选择总线周期中写信号的定时。
例如,PC机中动态存储器写是由写信号的上升沿启动的。
若在DMA周期中写信号来得太早,可能造成错误,所以PC机选择D3=0。
命令字的其他位容易理解,不再说明。
D5位用于选择是否扩展写信号。
在D3=0(正常时序)时,如果外设速度较慢,有些外设是用8237A送出的
和
信号的下降沿来产生的READY信号的。
为提高传送速度,能够使READY信号早些到来,须将
信号加宽,以使它们提前到来。
因此,可以通过令D5=1使
信号扩展2个时钟周期提前到来。
8.请求寄存器
用于在软件控制下产生一个DMA请求,就如同外部DREQ请求一样。
图6-8所示,为请求字的格式,D0D1的不同编码用来表示向不同通道发出DMA请求。
在软件编程时,这些请求是不可屏蔽的,利用命令字即可实现使8237按照命令字的D0D1所指的通道,完成D2所规定的操作,这种软件请求只用于通道工作在数据块传送方式之下。
00通道0
无用01通道1
通道选择10通道2
11通道3
0—复位请求位;
1—置位请求位。
8237请求寄存器
9.屏蔽寄存器
8237的屏蔽字有两种形式:
①单个通道屏蔽字。
这种屏蔽字的格式如图6-9所示。
利用这个屏蔽字,每次只能选择一个通道。
其中D0D1的编码指示所选的通道,D2=l表示禁止该通道接收DREQ请求,当D2=0时允许DREQ请求。
②四通道屏蔽字。
可以利用这个屏蔽字同时对8237的4个通道的屏蔽字进行操作,故又称为主屏蔽字。
该屏蔽字的格式如图6-10所示。
它与单通道屏蔽字占用不同的I/O接口地址,以此加以区分。
通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 输入输出 接口