微处理器与微型计算机第5章-输入输出接口技术课件_第1页
微处理器与微型计算机第5章-输入输出接口技术课件_第2页
微处理器与微型计算机第5章-输入输出接口技术课件_第3页
微处理器与微型计算机第5章-输入输出接口技术课件_第4页
微处理器与微型计算机第5章-输入输出接口技术课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、输入输出传送方式3I/O端口地址译码技术21 第5章 输入输出接口技术 微机接口概述1(1) 微机的硬件结构2 5.1 微机接口 概述CPU,微机的核心,基本功能:执行指令、控制和协调其它部件工作,进行数据运算和传输。存储和记忆装置,存储数据和程序。用于人机交互、数据和程序的输入、结果的输出。如:key, mouse, screen, printer。微机和外设间的中转站,在它们之间传输数据、状态和控制信息。(1) 微机接口的概念CPU与外设间需频繁的进行信息交互。数据、程序和各种信息需通过外设输入到计算机内;计算机内的各种信息及运行结果需通过外设进行输出。CPU与外设在速度、信号形式等方面有

2、差异。接口:全称是输入/输出接口,简称I/O接口。它位于系统总线与外设之间,是CPU与外设的中转站。3因此,需要一种中间设备,即:接口。4微机接口要解决的问题速度匹配问题。高速的CPU / 低速的外设。信号电平与驱动能力问题。CPU的TTL电平与低功率 / 外设的宽范围电平与大功率。信号类型匹配问题。CPU数字量 / 外设模拟量。信号格式问题。CPU并行数据 / 外设串行数据。时序匹配问题。CPU时序 / 外设时序。5(2) 微机接口的功能接口电路用来有效地完成CPU与外设的信息交换,协调CPU和外设之间的工作。功能包括:I/O地址译码与设备选择功能所有外设都通过I/O接口挂接在系统总线上。同

3、一时刻,总线只允许一个外设与CPU进行数据传递。只有通过地址译码被选中的I/O接口,才允许与总线相通;未被选中的I/O接口为高阻态,与总线隔离。信息的输入/输出、缓冲与锁存功能通过I/O接口,CPU可从外设输入各种信息,也可将处理结果输出到外设。由于CPU与外设存在时序和速度的差异,为确保两者间可靠传输信息,输入时需缓冲,输出时需锁存。6(1) 微机接口的功能信号格式转换功能I/O接口要实现信息格式变换、电平转换、码制转换等功能。联络功能接口从系统总线或外设收到数据时,能发出“数据到”联络信号,通知CPU或外设将数据取走。数据传输完成后,发出“传输完”信号,准备下次传输。中断管理功能向CPU申

4、请中断,发中断类型号以及中断优先权管理等。其它功能复位、错误检测、可编程功能(设定工作方式、工作参数等)。7专用接口为某种用途或某类外设而专门设计的接口电路。通常制造成接口卡,插在主板上使用。科研项目举例通用接口可供多种外设使用的标准接口。使用广泛,通常制造成集成电路芯片,称为接口芯片。最初微机使用了6块芯片,后来将这些芯片集成为大规模集成电路芯片,称为芯片组。微机系统的南北桥芯片。如图所示。8(3) 微机接口的分类9智能接口具有处理能力的接口。单片机、DMA控制器或协处理器。可编程接口接口的功能可编程设定。FPGA/CPLD + VHDL。简单接口指使用三态缓冲器、锁存器、门电路以及D触发器

5、等实现的简单接口。特点:不具备编程能力,一旦设计制造完毕,其功能就不能改变。灵活性不足。10硬件电路组成11(3)微机接口的组成 数据缓冲/锁存器 连接系统总线,起缓冲和驱动作用。74LS244 / 245 / 573等。输入缓冲:暂存外设送来的信息。输出锁存:暂存CPU送往外设的数据。I/O端口 接口内部包含一个或多个CPU可进行读写的寄存器,称为I/O端口寄存器,简称I/O端口。数据端口:用于暂存CPU与外设间传送的数据。状态端口:用于暂存外设的状态。状态信息编码称为状态字。控制端口:暂存CPU对外设的控制信息信息。控制信息编码称为控制字或命令字。12端口地址译码CPU访问外设时,向系统地

6、址总线发送要访问的端口地址,译码电路根据该地址产生相应的选通信号,选中某端口进行操作。Map举例:地址译码信号。读/写/中断控制逻辑根据CPU发出的读、写和中断控制信号,以及外设发出的应答信号,产生内部各端口的读、写控制信号。13 每个I/O端口都有唯一的地址,CPU以端口地址来区分不同的端口。 CPU对外设的各种操作,最终都归结为对接口中各端口的读/写操作。科研项目:PC104接口软件接口硬件设计好后,CPU与外设间的数据交换要在程序的控制下来实现。该控制程序称为接口软件,或设备驱动程序。Windows,Linux,DOS(汇编环境,BC/TC)。接口软件的构成初始化程序段:设置接口的工作方

7、式、初始工作条件等。启动和终止程序段:有些接口需要命令字启动,如A/D转换;有些接口需要结束命令字,如中断结束命令EOI。数据输入、输出程序段:CPU与外设间的数据输入输出操作。辅助程序段:实现人机对话、计算及结果保存等功能。14接口的软件组成基本概念接口内部包含一个或多个CPU可进行读写的寄存器,这些寄存器称为I/O端口。数据端口、状态端口和控制端口。CPU对外设的各种操作,最终都归结为对接口中各端口的读/写操作,而不是直接对外设进行操作。为了区分不同的端口,需为每个端口分配一个地址编号,称为I/O端口地址。由于CPU地址总线既连接到存储器又连接到I/O端口,因此,需要一种机制来区分和寻址要

8、操作的内存单元或I/O端口,这种机制称为编址方式。常用的两种I/O编址方式:I/O端口与内存统一编址;I/O端口与内存独立编址。 5.2 I/O端口地址译码技术15基本内容I/O端口与内存单元统一进行地址分配,使用统一的指令访问I/O端口或者内存单元。又称存储器映射编址方式。Motorola公司的68系列、Apple系列微机即是统一编址。(1) I/O端口与内存统一编址16优点把I/O端口当做存储单元来看待,可使用访存指令来访问I/O端口,故无需专门的 I/O 指令。访存指令种类多,功能全,可为访问外设提供方便。I/O控制信号可与存储器的控制器信号共用,应用方便。I/O端口数目几乎不受限制。缺

9、点I/O端口与内存单元共同统一的地址空间,相对减少了内存可用的地址范围。从指令形式上不易区分访存还是访问外设,程序可读性低。访存指令比专用I/O指令长,译码较为复杂,执行速度较慢。17基本内容I/O端口与内存单元有各自独立的地址空间,访问I/O端口使用专门的I/O指令。又称I/O映射编址方式。8086/8088 CPU、IBM-PC系列和Z80系列机采用独立编址。(2) I/O端口与内存独立编址18优点I/O端口与内存空间相对独立,I/O端口单独编址,不占用内存空间。由于使用了专门的I/O指令,指令简短,译码简单,速度快。I/O指令与访存指令区别明显,程序可读性强。缺点专用的I/O指令增加了指

10、令系统的复杂性,且指令类型少,功能弱,程序设计灵活性差。CPU需提供I/O读写与存储器读写2套控制信号,增加了控制逻辑的复杂性。19指令类型IN:从I/O端口读入数据到微处理器的累加器中。OUT:将微处理器累加器中的数据写入到I/O端口。注意:数据只在累加器(AX或AL)和端口间进行传递。原则:传输字节数据时使用AL;传输字数据时使用AX。寻址方式直接寻址:当端口地址 0FFH时,采用直接寻址,即在指令中直接写明端口地址。(也可用间接寻址方式)间接寻址:当端口地址 0FFH时,采用间接寻址,使用DX存放端口地址。(3) 独立编址下的I/O指令20直接寻址指令格式 【例5-1】输入:IN AL/

11、AX, port ; port是8位地址,0FFH 输出:OUT port, AL/AX21IN AL, 2CH ; 从2CH端口读入 ? 到AL中IN AX, 5BH ; 从5BH端口读入 ? 到AX中OUT 61H, AL ; 将AL中的 ? 写入到61H端口中OUT 1DH, AX ; 将AX中的 ? 写入到1DH端口中间接寻址指令格式 输入:MOV DX, port ; port是16位地址,0FFH IN AL/AX, DX 输出:MOV DX, port OUT DX, AL/AX22判断下列指令格式是否正确。 (1) 从218H端口读入一个字数据。 IN AL,218H (2)

12、将一个字节的数据写入到 254 端口。 OUT 254H, AX23MOV DX, 218HIN AL, DXMOV DX, 254HOUT DX, AXOUT 254, AL 或OUT 0FEH, AL标准C(头文件dos.h)inportb(int port)。outportb(int port, unsigned char value)inportw, outportw。VC+(头文件conio.h)int _inp(unsigned short port);int _outp(unsigned short port, int datatype);(4) 高级语言下的输入输出操作【补充】

13、24高级语言编程举例利用 inportb() 函数从端口2F0H读取一个字节的数据,并显示在屏幕上。main() unsigned char c; c=inportb(0 x2f0); printf(“%xn”, c);将数据0 x55输出到360H端口。main() outportb(0 x360, 0 x55); 25(1) I/O端口地址线80 x86系列PC采用独立编址方式,I/O地址线有16根,对应64K空间。实际微机主板上仅使用A9A0 10根地址线,共1024个端口,地址范围为000H03FFH。根据其复杂程度和应用形式,PC系列微机中I/O接口硬件电路可分为2类:系统板上的 I

14、/O 接口芯片:大多是可编程大规模集成电路,如定时/计数器,中断控制器,DMA控制器,并口等。扩展槽上的 I/O 接口控制卡:如图形卡、声卡等。 5.2.2 I/O端口地址分配 26I/O接口名称PC/XTPC/ATDMA控制器10000 001FH0000 001FHDMA控制器200C0 00DFHDMA页面寄存器0080 0083H0080 009FH中断控制器10020 0021H0020 0021H中断控制器200A0 00BFH定时器0040 0043H0040 005FH并行接口芯片0060 0063H键盘控制器0060 006FHRT/CMOS RAM0070 007FHNMI

15、屏蔽寄存器00A0H 00BFH协处理器00F0 00FFH(2) 系统板上的I/O接口芯片端口地址分配27I/O接口名称PC/XTPC/AT硬驱控制卡0320 032FH01F0 01FFH游戏控制卡0200 020FH0200 020FH扩展器/接收器0210 021FH并行口控制卡10370 037FH0370 037FH并行口控制卡20270 027FH0270 027FH串行口控制卡103F8 03FFH03F8 03FFH串行口控制卡202F0 02FFH02F0 02FFH原型插件板(用户可用)0300 031FH0300 031FH同步通信卡103A0 03AFH03A0 03

16、AFH同步通信卡20380 038FH0380 038FH单显DMA03B0 03BFH03B0 03BFH彩显CGA03D0 03DFH03D0 03DFH彩显EGA/VGA03C0 03CFH03C0 03CFH软驱控制卡03F0 03F7H03F0 03F7H(3) 扩展槽上的I/O接口控制卡端口地址分配28允许用户使用原型插件板(用户可用)0300 031FH0300 031FH系统配置占用了的端口地址不能使用。计算机厂家声明保留的地址不能使用。用户可使用30031FH的地址。但为了避免与其它用户开发的接口卡发生冲突,最好采用DIP开关进行地址设置。 (4) I/O端口地址选用原则29

17、可通过“附件”“系统信息”“硬件资源”“I/O”选项来查看 I/O 端口的地址分配状况(1) 基本概念与原理基本概念 当执行I/O指令时,CPU首先在总线上发出要访问的端口地址和必要的控制信号,然后通过一个转换电路将这些信号转换为相应的I/O端口选通信号。这个转换过程就是I/O端口地址译码,完整这个过程的转换电路称为I/O端口地址译码电路。译码信号译码的实质:对地址线和控制信号进行逻辑组合,产生相应的选通信号 ,低电平有效。参与译码的主要信号:地址信号线A9A0,控制信号 , ,(非DMA传送)。 5.2.3 I/O端口地址译码30原理把地址线分为高低两部分,分别用于片间寻址和片内寻址。片间寻

18、址:高位地址线与CPU的控制信号相结合,经译码电路产生I/O接口芯片的片选信号 ,实现片间寻址。通常都由接口芯片外部的译码电路来完成。片内寻址:低位地址线不参加片间寻址译码,而是直接连接到I/O接口芯片,实现芯片内部的片内端口寻址。通常由接口芯片内部的地址译码电路来完成。用于片内寻址的低位地址线条数取决于接口内端口的数目。一般地,低位地址线数 = 。 例:一个接口内部有3个端口,A9A8A7A6A5A4A3A2A1A0。3132译码方式按照地址译码电路采用的元器件,分为:门电路译码专用译码器译码开关式译码可编程逻辑器件译码按照译码电路的形式,分为:固定式译码可选式译码33 特点:接口中的端口地

19、址固定,不能修改。一般接口卡中大多采用该形式。单端口地址译码接口中只有一个端口地址。多采用与、或、非门等基本门电路来实现。多端口地址译码系统中有多个接口芯片,或有多个端口(连续范围)。多采用集成的译码器来实现,如74LS138,74LS154等。 (2) I/O端口地址的固定式译码34门电路译码常用的逻辑门符号与门或门非门常用的门电路集成芯片74LS04:反相器(6门集成)74LS08:与门(4门集成)74LS20:4输入与非门(2门集成)74LS30:8输入与非门(1门集成)74LS32:2输入或门(4门集成)35【例5-2】单端口地址为2F8H的只读端口译码电路。36采用标准集成电路的电路

20、形式。37【例5-3】分析该译码电路的功能。38可进行读/写操作、端口地址为2F8H的译码电路IOR有效时从端口读数据;IOW有效时向端口写数据【例5-4】某接口芯片内部有4个端口,地址范围为2F0H 2F3H。请使用门电路为其设计一个端口地址译码电路。 分析:地址范围为2F0H 2F3H,故CPU访问该接口芯片时,地址线上的信号为:可用A1A0作为端口选择;将高位地址线A9 A2 和AEN信号组合起来,用门电路产生一个低有效的接口芯片片选信号CS。39地址线0 0 A9 A8 A7 A6 A5 A4A3 A2 A1 A0值0 0 1 01 1 1 10 0 x xxx = 00, 01, 1

21、0, 11, 对应4个端口40译码器译码多端口时(有多个接口芯片,或接口芯片有多个端口)常采用专用译码器译码。常用的译码器74LS138:3-8译码器74LS139:双2-4译码器74LS154:4-16译码器4174LS138译码器工作原理42Y0Y7ABCG2BG2AG11514131211109712345674LS13874LS139译码器工作原理4374LS154译码器工作原理44【例5-3】已知并行接口芯片8255A有4个端口,片选信号CS 低电平有效。试用74LS138设计一个译码电路,使该芯片的4个端口地址为2F0H 2F3H。 分析:4个端口,可用低位地址A1A0进行片内译码

22、,而高位地址A9A2和AEN则用于片选。为使4个端口的地址为2F0H 2F3H,地址线为:45地址A9A8A7A6A5A4A3A2A1A0AEN2F0H101111000002F3H10111100110GGG2BG2AC B A46【例5-5】设计一个译码电路,要求产生2A8H2AFH共8个端口的选通信号。 分析:多端口,采用译码器实现。可选用74LS138译码器输出8个信号。地址范围为2A8H 2AFH,故地址线为:47地址A9A8A7A6A5A4A3A2A1A0AEN2A8H101010100002AFH10101011110C B AG2BG2AG2BG2BGGGG48【例5-6】请设

23、计一个系统板上接口芯片的I/O端口地址译码电路,并且让每个接口芯片内部的端口数目为32个。 分析:每个接口芯片内部的端口数目为32个,故可用低5位地址A4A0进行片内寻址。系统板上的接口芯片,其端口地址分配范围为0000FFH,故仅用低8位地址译码即可,A9A8= 00。系统板上有8253、8259、8237、8255 等接口芯片,可用其余的地址线A7A5通过74LS138译码器进行片选。访问系统板I/O接口芯片时,CPU控制总线,即非DMA操作,且为I/O访问,故 和 可参与译码。 控制G端。4950倒推分析A4A0可用于片内寻址。A9A8= 00,可用于控制74LS138的 G2A 和 G

24、2B 端。G端由组合信号 AEN控制(非DMA操作,且为I/O操作)。A7A5 可用于对8253、8255等进行片选,作为C, B, A输入。51地址线A9A8A7A6A5A4A3A2A1A0地址范围823700000 xxxxx000 01FH825900001xxxxx020 03FH825300010 xxxxx040 05FH825500100 xxxxx060 07FH结论:通过倒推分析,每个接口内部有32个端口,各接口芯片的地址范围同表2.2一致。译码电路总的地址范围为0000FFH(后续的自行分析),同系统板的地址范围一致。【例5-7】已知某微机系统硬件如下图。编程实现:当端口2

25、中最高位为1时,从端口1中读数。A2A1A0选择端口07。 52分析:要使接口芯片的CS信号有效,3-8译码器的Y0 端须有效。此时A8A6A4 = 000,A9A7A5A3 = 1111。访问内部端口2时,A2A1A0 = 010,故端口2的地址为:访问内部端口1时,A2A1A0 = 001,故端口2的地址为:53地址线A9A8A7A6A5A4A3A2A1A0地址端口210101010102AAH地址线A9A8A7A6A5A4A3A2A1A0地址端口110101010012A9H已知端口1和端口2的地址,可根据题意编写程序如下:54 MOV DX,2AAH;读端口2数据L1:IN AL,DX

26、 TEST AL,10000000B ;判断端口2的最高位是否为1 JZ L1 MOV DX,2A9H;从端口1读取数据 IN AL,DX 特点:接口中的端口地址具有一定的可变性。可根据要求改变端口地址,而无需修改硬件电路。当用户要求接口卡的端口地址能够适应不同的地址场合,或为系统以后扩充留有余地时,可用此方式。常用的实现方法比较器地址开关跳线器 (3) I/O端口地址的可选式译码55比较器常用的比较器74LS85:4位比较器74LS688:8位比较器比较器译码原理比较器的 P7P0 输入端连系统总线,Q7Q0 输入端与配置寄存器相连。当P70 = Q70 时,输出低电平。否则,输出高电平。5

27、657芯片地址可通过寄存器U1进行配置。端口内部地址可通过A2A1A0进行选择。地址开关58跳线开关每个输入可接反相器或者不接,有2种选择。10位地址线可有1024种选择。可通过此改变译码结果。59由于读、写操作不会同时进行,一个输入端口和另一个输出端口可以使用同一个地址编码。一般情况下:数据输入端口和数据输出端口使用同一地址。命令端口(输出)和状态端口(输入)可使用同一个地址。P79 科研项目举例PC104 端口使用说明文档 (4) I/O端口地址的共用6061【例5-8】下图为用两级译码器组成的端口地址译码电路。问题:(1) 开关K上合时,寻址范围是_。 (2) 开关K下合时,寻址范围是_。 (3) 开关K下合,A3改接B,A4改接A,则寻址范围是_。 6263地址线A9A8A7A6A5A4A3A2A1A0地址范围开关上合1000110 xxx230 237H开关下合1111110 xxx3F0 3F7H开关下合A3 A4对调1111101xxx3E8 3EFH(1) 两种数据交换类型CPU与内存间的数据交换可在一个总线周期内完成。CPU与外设间的数据交换CPU从外设读入一个数据后,要等待该外设准备好第二次数据后才能继续读

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论