微机接口技术-第3章IO端口地址译码技术.ppt_第1页
微机接口技术-第3章IO端口地址译码技术.ppt_第2页
微机接口技术-第3章IO端口地址译码技术.ppt_第3页
微机接口技术-第3章IO端口地址译码技术.ppt_第4页
微机接口技术-第3章IO端口地址译码技术.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第3章 IO端口地址译码技术,3.1 I/O地址空间 和存储器地址空间一样,IO地址空间也是一片连续的地址单元。 地址单元可以被任何外设使用,但不可以地址冲突。 和存储单元一样,都是以数据字节来组织的。,3.1 I/O端口 一。IO端口及其编码方式 1. IO端口 端口是接口电路中能被CPU直接访问的寄存器的地址。计算机给接口电路中的每个寄存器分配一个地址。 IO操作 指CPU对设备相关的IO端口的访问操作,而不是对IO设备的操作,二。IO端口地址编码方式 1、统一编址方式 端口地址与存储器地址统一编址,优点:指令丰富,电路简单。,缺点:外设占用存储器空间,内存容量减小。,内存 译 码 器,8088 CPU (最大 模式) 系统总线,AB,去存储器,去I/O接口,/Y0-i,/Y0-j,接口 译 码 器,/XMENR /XMEMW,/XIOR /XIOW,注:最大模式下系统的控制总线来源于总线控制器8288和DMA总线仲裁逻辑,2、独立编址方式,优点:存储器和外设都有自己的地址译码器,地址空间独立,互不影响。用专用的I/O 指令访问I/O 端口。 三。 独立编址方式的端口访问,输入指令: IN AL, n ; n 为8位IO端口地址,IN AL, DX ; 16位地址用DX间址,输出指令: OUT n, AL,OUT DX, AL,1. IO地址宽度 IO地址在00H0FFH,称为8位地址宽度; IO地址在0100HFFFFH,称为16位地址宽度 说明: 不论IO地址宽度是8位,还是16位,都 可以用DX间接寻址; 只有IO地址是8位宽度才能直接寻址。 2. IO 数据宽度 当一次传输1个端口数据,即8位数据时,用AL累加器 当一次传输连续2个端口数据,即16位时,用AX累加器,3.3 IO端口地址分配 一。IO接口硬件分类 系统板(主板)上的IO芯片(如定时器,并口等等) IO扩展槽上的接口控制卡(声卡、网卡、软驱卡、显卡) 二。IO端口地址分配 参看表3.1 表3.2 三。IO端口地址选用的原则 被系统配置已经占用的不可用 计算机厂家声明保留的地址不要使用 一般IBM实验卡用300H-31FH。,3.4 I/O 端口地址译码,一。IO地址译码电路工作原理及作用 输入信号:地址信号,控制信号 输出信号:“选中”信号。 原理:译码器根据地址和控制信号,产生选中信号。不同的地址控制组合,最多只可能使一根“选中”信号有效,该有效的选中信号用于打开它所连接的IO接口芯片的数据线与系统线的通路总开关。,地址译码器,地址信号,控制信号,“选中” 信号,“地址”信号线,“控制”信号线,“选中”信号线,在这一段时间,3个控制信号没有同时有效,译码器“选中”信号线输出全部无效,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,控制信号有效时,地址000时,仅/IOY0有效。其余选中线全无效,二。 I/O 端口地址译码方法: 1.简单接口芯片,只含有一个端口,内部不带带译码器,译码器设计原则: 由“IO地址”信号和“IO读/写”控制信号的不同组合实现。控制芯片内寄存器的入口或出口开关。,T1,T2,T3、TW,T4,0026H号IO端口地址,来自CPU内AL中的数据,向IO端口写数据时(OUT 0026H,AL)系统总线时序(假设(AL)=22H),CLK,XA15-0,XREADY,XD7-0,0026H,22H,T1,T2,T3、TW,T4,0025H号IO端口地址,来自0025H号IO端口的数据,从IO端口读出数据(IN AL,0025H)时系统总线时序( (25H端口)=11H),CLK,XA15-0,XREADY,XD7-0,11H,0025H,控制线始终保持有效或不带控制线,二。 I/O 端口地址译码方法: 2. 多端口芯片(内部带译码器)由地址信号和控制信号的不同组合实现。其原则是:,(2). 低位地址线直接连接到 I/O 接口芯片,由内部译码器实现选中存储单元或IO端口。 例如:8255内部有四个端口寄存器,则至少要留出2低位地址线用于8255内部寻找寄存器,(1). 高位地址与CPU 的控制信号组合,经外部译码电路产生 I/O 接口芯片的片选信号( /CS ),实现选中芯片(就是打开芯片内部译码器)。,3.5 IO端口地址译码电路设计 1.固定式端口地址译码 指一旦译码电路设计好,接口用到的IO地址不能更改,例1 某接口的IO端口地址为2F8H,在非DMA期间只读,为该接口设计译码器。 分析:输入信号:XA0XA9,XIOR,XAEN 输出信号:一根选中信号 /Y(因为该译码器仅为这一个接口电路服务) 输入输出逻辑关系:,/Y,当XA9-02F8H,/XIOR0,XAEN0时,/Y=0; 否则/Y=1 写出逻辑表达式:,例2。 使用74LS138设计一个系统板上IO端口地址译码电路,并且让每个接口芯片内部可以有32个端口,非DMA期间可以访问接口芯片。 分析:输入 XA9-5,XAEN。因为低5位地址用来选中芯片内部端口,不作为外部译码器的输入。一片138只能译码3位地址,这里用138对XA7XA5译码。 输出 8个芯片选中信号/Y0-/Y7。 逻辑关系:XAEN0,XA9XA800时,使译码器工作。 XA7-XA5000时,输出/Y0=0, 其余全无效为1。 XA7-XA5001时,输出/Y1=0, 其余全无效为1 XA7-XA5010时,输出/Y2=0, 其余全无效为1 ,参看课本表2.5 74LS138的逻辑真值表,给出设计如下,2.可选式端口地址译码 例3。根据下图的可选式地址译码电路,分析开关不同状态时,输出选中信号对应的IO地址,总结:为单个端口设计译码,一般对所有地址线译码;为芯片设计外部译码器,一般对高位地址译码,低位地址让芯片自己内部译码,选内部端口,S0,S1,S2,S3,A,74LS138,/Y0,B /Y1,C /Y2,/Y3,/Y4,/G2B /Y5,/G2A /Y6,G1 /Y7,XA2,XA3,XA4,XA5,/XAEN,A0,74LS85,A1,A2,A3,B0,B1,B2,B3,Oa=b,Ia=b,Iab,Iab,Vcc,XA6,XA7,XA8,XA9,分析:假如S0S1合上,S3S2断开。B3-01100,只有当XA961100时,74LS85Oa=b端才输出1。必须 要使74LS138工作,则必须/XAEN0,XA50。 所以:要/Y0=0,必须 XA9-2为11000000 要/Y1=0,必须 XA9-2为11000001 ,选中/Y0的地址是XA90为 11000000XX, 即300H303H 选中/Y1的地址是XA90为 11000001XX, 即304H307H 选中/Y7的地址是XA90为 11000111XX, 即31CH31FH 思考,如果开关S1S3合上,S2S0断开,选中/Y0-/Y7的地址分别是什么?,思考:在PC机上设计接口,你设计的接口IO地址必须不能与其他设备接口IO地址冲突,你能想到用什么办法解决这个问题?,方案一:先查PC机硬件说明书,看那些IO地址已经被占用。 缺点是麻烦,且非PC机器厂家生产的设备(如扩展接口卡)地址,必须通过查该卡说明书才能了解它占用的IO地址。,不可能!你怎么知道你的卡被客户装在哪台机器上?客户计算机上装了哪些其它厂家的卡,你怎么能预先知道呢?客户买了你的卡回家能不能用只有靠运气了!,方案二:先查PC机硬件说明书,看哪些IO地址已经被PC机厂家的标准设备占用。再设计一个可选式译码器,万一和其它厂家的设备接口冲突,用跳线开关改变你的IO地址用以避免冲突 缺点:麻烦,普通客户买了你的设备,你要求他回家跳线,对他来说难度太大。在486以前的计算机开发接口就是这么办的!也要靠运气哦,万一怎么调整也无法避免冲突怎么办?,方

温馨提示

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

评论

0/150

提交评论