- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
8.4.3CPU对外设的选择CPU选择外部设备就是对外设端口地址的寻址。找到了I/O端口,也就是找到了相应的外部设备。不同的微机系统对I/O端口分配有不同的端口地址。IBMPC机按照两种不同的I/O硬件类型把I/O空间分成了两部分。硬件依照其复杂程度划分成的两类,一类是系统板上的I/O接口芯片,有并行接口、DMAC、T/C、中断控制器等,是一些可编程集成芯片。表8-1列出了它们占用的256个端口,地址为000H~0FFH。另一类是扩展槽上的I/O接口卡,有软驱卡、硬驱卡、打印卡、网卡、串行卡等,是由若干芯片组成的逻辑部件(适配器)。表8-2列出了它们占用的768个端口,地址为100H~3FFH。端口地址实际使用时,地址范围并未占满,往往只用到其中几个。如PC/AT机中的DMA页面寄存器地址范围为080H~09FH,占32个地址,实际使用8个(通道4用于主从片DMA的级联):表8-1PC机系统板上I/O芯片端口地址范围表8-2扩展槽上的I/O接口卡端口地址范围8.4.4I/O定时与协调无论采用哪种译码方式,首先必须注意有效端口地址的产生和CPU读/写操作时序上的配合。以逻辑门电路为例,门电路延迟时间不得长于和有效之后,否则芯片未能选中就开始读/写,必然引起操作失误。其次在系统设计中还必须注意I/O端口的设置是否合理。凡已被系统占用了的地址就不能为用户所用;对未被占用的地址,由生产厂家注明“保留”的,一般不要使用,否则会出现端口地址重叠等问题;用户使用微机系统专门留给用户的地址空间,如IBMPC机中的I/O端口地址300H~31FH;在用户可用的地址空间内,为避免用户与用户之间的冲突,可加接地址开关,避开其他用户开发的插板。8.5CPU与I/O设备间的数据传送8.5.1程序传送方式1.无条件传送当程序依指令序列执行到I/O指令时,无条件地在AL/AX和I/O端口之间传送数据,如图8-11(a)所示。这种传送方式使用极为广泛,例如I/O接口芯片的初始化编程,I/O设备的状态读取等,显然它适合于固定I/O设备在固定时间内的固定操作。在另一些I/O操作中,这种方式根本不能适应。例如随机输入输出的一些数据,I/O设备还没有把数据准备好时,CPU就执行IN指令,那就读入了一些不该读入的内容,从而出现错误。为此程序传送改用查询方式进行。图8-11程序传送方式(a)无条件传送;(b)查询传送2.查询方式1)查询式输入查询式输入所使用的接口电路、输入状态和输入数据如图8-12所示。当输入设备的数据已准备好后,该设备将向接口电路发出一个选通信号,一方面将数据存入锁存器,另一方面使D触发器Q端置“1”,如果CS、IO/M、RD的控制命令能将状态口选通,则Q端“1”信号经缓冲器使READY输出1。READY与数据总线的D2相连,因此可用IN指令将状态信息读至AL,再用测试指令检查D2位。编程查询输入的步骤如下:首先CPU用输入指令从状态口输入状态字;其次测试D2状态位为“0”还是为“1”,如果为0就重读状态,如果为1就让CPU用输入指令从数据口读入数据。由此编成查询程序为:图8-12查询式输入接口2)查询式输出查询式输出所使用的接口电路、输出状态和输出数据格式如图8-13所示。在输出数据时,查询输出同样也分3步:CPU用输入指令从状态口输入状态字;测试状态位为“0”还是为“1”,CPU检查输出设备是否空闲;只有当输出设备空闲时,CPU才用输出指令从数据口送出数据。数据输出完成后,输出装置将发出一个响应ACK信号,使D触发器复位,BUSY=0。CPU执行一条INAL,STATS-PORT指令,读取输出设备状态寄存器内容,若选通 有效,则BUSY=0,将送至数据总线D0位,读入AL后进行测试,若AL的D0位不为0,则重读状态。否则CPU得知输出设备空闲,于是使用OUT指令从数据口传送数据,并选通数据寄存器,使D触发器置“1”,告知输出设备来取数。图8-13查询式输出接口查询程序为:8.5.2中断传送方式查询传送数据过程要求CPU不停地查询I/O设备状态,如果输入设备没有准备好或输出设备正在忙,那么CPU必然要等待。尤其是许多涉及到机械动作的I/O设备,如键盘、打印机等,输入输出数据的速度很慢,这期间CPU原本可以执行大量的指令。为了提高CPU的使用效率,可以使用中断传送方式传送数据。使用中断传送数据所用的I/O接
文档评论(0)