数字量输入输出接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
; I/O端口 ;从端口读数据到AL ;将数据从AL存储器 ; I/O端口 ;从内存取数到AL ;数据从Al送端口
I/O端口地址分配 对于接口设计者来说,搞清楚系统I/O端口 地址分配十分重等。因为要把新的I/O设 备加入到系统中去就要在I/O地址空间中 占一席之地。哪些地址已分配给了别的设 备,哪些是计算机制造商为今后的开发而 保留的,哪些地址是空闲的,了解了这些 信息才能为我所用。下面以IBM-PC系列 为例来分析I/O端口地址分配情况。
不同的微机系统对I/O端口地址的分配是不同的 。PC微机是根据上述I/O接口的硬件分类,把 I/O空间分成两部分。 虽然,PC微机I/O地址线可有16根,对应 的I/O端口编址可达64K,但由于IBM公司当初 设计微机主板及规划接口卡时,其端口地址译码 是采用非完全译码方式,即只考虑了低10位地址 线AOA9,而没有考虑高6位地址线A10A15,故 其I/O端口地址范围是0000H03FFH,总共只有 1024个端口,并且把前512个端口分配给了主板, 后512个端口分配给了扩展槽上的常规外设。
输入方式 IN AL, 0A0H
A0 CE
输出方式
OUT 0A1H, AL
A1
例:采用同步传送系统
控制线
(二)条件传送
• 查询式输入接口电路
I/O
数据口
Poll: In al, S_port Test al, 80h Jz poll In al, D _port
数据端口
状态口
控制线
状态端口
D7 D6 8位
接口电路组成
5.1.3I/O端口及其编址方式 一、I/O端口和I/O操作 1.I/O端口 端口(port)是接口电路中能被CPU直接访 问的寄存器的地址。CPU通过这些地址即端口 向接口电路中的寄存器发送命令,读取状态和 传送数据,因此,一个接口可以有几个端口, 如命令口、状态口和数据口,分别对应于命令 寄存器、状态寄存器和数据寄存器。
第5章 数字量输入/输出接口
5.1 概述
一、接口电路的分类和功能
外设必须通过接口电路与CPU相连接
数据线
数 据 总 线 控 制 总 线 地 址 总 线 控制线 接口电路 状态线 外 部 设 备
5.1.2I/O接口
接口电路的功能: 1)缓冲锁存数据 2)地址译码 3)传递命令 4)码制转换 5)电平转换
独立编址主要优点是: 1、I/O端口地址不占用存储器空间;使 用专门的I/O指令对端口进行操作,I/O指 令短,执行速度快。 2 、并且由于专门 I/O 指令与存储器访 问指令有明显的区别,使程序中I/O操作和 存储器操作层次清晰,程序的可读性强。 3、同时,由于使用专门的I/O指令访问 端口,并且I/O端口地址和存储器地址是分 开的,故I/O端口地址和存储器地址可以重 叠,而不会相互混淆。
若用双字节地址作为端口地址,则最多可寻址 216=64K个端口。 采用双字节地址,并且是用寄存器间接给 出端口地址,地址总是放在寄存器 DX 中。其指 令格式为 MOV DX, xxxxH IN AL,DX ;8位传送 MOV DX, xxxxH OUT DX,AL ;8位传送 这里,xxxxH为 16位的两字节地址。
查询式输入输出方式是通过对外设的状态查 询,实现CPU与外设间的正确的输入输出操作, 从而使不同工作速度的外设可以和 CPU协调工作 。由于查询过程中,CPU实际上处于等待状态, 不能进行其它操作,降低了CPU的效率。 特别是当外部设备输入输出速度较低时 ( 如 键盘、 打印机等 ) , CPU 为了完成一次输入输出 操作,用于查询的时间要比实际用于输入输出指 令的执行时间要长得多,从而造成 CPU的极大的 浪费。因此,提出了中断传送方式。
I/O端口访问 所谓对端口的访问就是CPU对端口 的读/写。 而通常所说的微处理器CPU从 端口读数据或向端口写数据,仅仅 是指I/O端口与CPU的累加器之间的 数据传送,并未涉及数据是否传送 到存储器(RAM)的问题。
例如: 输入时 MOV DX,300H IN AL,DX MOV [DI],AL 输出时 MOV DX,301H MOV AL,[SI] OUT DX,AL
I/O端口与存储单元统一编址(51单片机)
1、地址相互独立
•I/O端口独立编址(INTEL 86 系列)
2、控制信号不同
独立编址方式的端口访问 1.I/O指令中端口地址的宽度 IBM-PC系列采用I/O指令访问端口。实现数据 的 I / O 传送。在 I/O 指令中可采用单字节地址或 双字节地址寻址方式。若用单字节地址作为端口 地址,则最多可访问 256 个端口。是直接在指令 中给出端口地址,其指令格式为 IN AL,PORT ;输入 OUT PORT,AL ;输出 这里,PORT是一个8位的字节地址。
接口电路按通用性分为两类:通用接口和专用接口 通用接口:可供多种外部设备使用的标准接口,目的 是使微机正常 工作 通用接口通常制造成集成电路芯片,称为接口芯片。 最初的IBM-PC使用了6块接口芯片:8284、8288、 8255、8259、8237、8253 后来的微机将这些芯片集成为大规模集成电路芯片, 称为芯片组。 如82430TX芯片组,由两片芯片组成: 北桥:82439TX 南桥:82371AB
三、DMA传送方式
对于高速外设(如磁盘、高速A/D),中断方式不能满足数据 传输速度的要求。
DMA=Direct Memory Access——直接存储器访问 DMA方式是一种由专门的硬件电路执行I/O的数据传送方式, 它可以让外设接口直接与内存进行高速的数据传送,而不必经 过CPU。这种专门的硬件电路称为DMA控制器,简称DMAC
I/O操作 通常所说的I/O操作是指对I /O端口的操作,而不是对I/O设 备的操作,即CPU所访问的是与 I/O设备相关的端口,而不是I/O设 备本身。
端口地址编址方式
对上述端口有两种编址方式: 一种是端口地址和存储器地址统 一编址,即存储器映射方式; 另一种是I/O端口地址和存储器 地址分开独立编址,即I/O映射方 式。
;输入状态信息 ; ;若未Ready,等待
;否则,输入数据
;将数据存入内存 ;取下一个模拟量 ;
程序查询传送的小结
在执行输入输出前,要先查询接口中状态寄存器的状态。 输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪 输出时,状态寄存器的状态指示输出设备是否空闲
程序查询开始 读输入状态寄存器 N 准备就绪? Y 对接口进行控制 与接口交换数据 Y 超时? Y 置超时错标志 置正常标志值 Y 返回状态结束 N
几种传送方式的比较:
1.无条件传送:只能用于外部设备与CPU 动作同步时,否则出错。这种方式已 较少使用。
2.查询传送: • 接口简单,
I/O端口地址译码
CPU为了对I/O端口进行读写操作,就 需确定与自己交换信息的端口(寄存 器),那么,是通过什么媒介把来自 地址总线上的地址代码翻译成为所需 要访问的端口(寄存器)的,这就是 所谓的端口地址译码问题。这个“媒 介”就是I/O地址译码电路。
5.1.4 I/O的控制方式 1.程序传送方式 2.中断传送方式 3.DMA传送方式
中断输入输出方式可以大大提高CPU的 效率,但仍需要CPU通过程序进行传送。每 次中断处理需要保护断点、 保护现场及恢复 现场恢复断点,这些操作都要占用CPU的额 外时间。这对于高速的外部设备在成批地交 换数据时,这种中断传送方式,就显得太慢 ,因而不能满足高速交换数据的要求。DMA 方式能摆脱CPU的直接干预,利用硬件控制 设备DMA控制器(DMAC),实现外部设备与 内存间的直接数据传送。
;1111,1000 启动A/D转换
;输入数据存放地址 ; ; ∧ 1110,1111,AL=1110,1000
;停止A/D转换,并选择模拟量A0
; ; AL=1111,1000 ;启动A/D转换
poll: in al, [2] shr al, 1 jnc poll in al, [3] stosb inc dl jne again
D0
D7 1位
• 查ቤተ መጻሕፍቲ ባይዱ式输出接口电路
数据口
控制线
I/O
控制线 状态口
Poll: In al, S_port Test al, 80h Jnz poll mov al, store Out D_port, al
例:采用查询方式传送的数据采集系统
状态端口
D0
数据口
状态口
控制口
A7 ~ A0
Start: mov dl, 0f8h lea di, detor Again: mov al, dl and al, 0efh out [4], al call delay mov al, dl out [4], al
中断输入输出方式的思想是: 当CPU 需要输入输出数据时,先执行启动外设工 作的指令,然后CPU继续执行原程序。如 果是输入操作,当输入数据已存入外设接 口的输入寄存器中时; 或是输出操作,当 外设已经把前一个输出数据从接口寄存器 中取走,就由外设向 CPU发出中断请求, CPU在收到中断请求信号后,就暂时停止 原来执行的程序 ( 即实现中断 ) ,转去执行 输入或输出处理程序。
接口电路的基本结构
接口电路通常包含一组能够与处理器交换信息的寄存器,称为I/O 端口寄存器,简称为I/O端口 1)数据端口——存放数据信息 2)状态端口——存放状态信息,(忙、空闲、准备好等机器状态) 即反映外设当前工作状态的信息 3)控制端口——存放控制信息(启动、停止等动作) 状态信息与控制信息可以广义地看作数据信息,因此可以通过 数据总线传送 数据信息分数据量、模拟量和开关量三类。
1.统一编址 这种方式,是从存储器空间划出一部分地址 空间给I/O设备,把I/O接口中的端口当作存储 器单元一样进行访问,不设置专门的I/O指令, 有一部分对存储器使用的指令也可用于端口。 2.独立编址 这种方式是接口中的端口地址单独编址而不 和存储空间合在一起,大型计算机通常采用这种 方式,
统一编址优点: 1、由于对I/O设备的访问是使用访问存储 器的指令,所以指令类型多,功能齐全,这不 仅使访问I/O端口可实现输入/输出操作,而且 还可对端口内容进行算术逻辑运算,移位等等 ; 2、另外,能给端口有较大的编址空间,这 对大型控制系统和数据通信系统是很有意义的 。 这种方式的缺点是端口占用了存储器的地 址空间,使存储器容量减小,另外指令长度比 专门I/O指令要长,因而执行速度较慢。
图1.6 程序查询方式流程图
二、中断传送方式
使用查询方式,CPU必须检测接口电路的状态寄存器,如果设备 未准备好,CPU就要不断地查询,降低了CPU的运行效率 中断方式:当外设作好传送准备后,主动向CPU请求中断,CPU 响应中断后在中断处理程序中与外设交换数据。若外设未准备好, CPU可以执行其他程序,提高了CPU的利用率 每条指令完成后,CPU均可响应中断,因此当设备准备好时,可 及时与CPU交换数据,提高了实时性
无条件传送
程序查询传送(条件传送)
一、程序传送方式
CPU与外设间的数据交换在程序控制下进行
(一)无条件传送
不查询外设状态,认为外设已经准备就绪,直接与外设传送数据 外设准备就绪:对于输入设备,已经把数据放入接口电路的数 据输入寄存器,CPU可以读取;对于输出设备,已经准备好接 收数据(接口电路的数据输出寄存器已空),CPU可以向它输 出数据 由于不查询外设状态,接口电路不需要状态寄存器
I/O端口地址选用的原则
只要设计I/O接口电路,就必然要使用端口地址。为了避 免端口地址发生冲突,在选用I/O端口地址时要注意: ①凡是被系统配置所占用了的地址一律不能使用; ②原则上讲,未被占用的地址,用户可以使用,但对 计算机厂家申明保留的地址,不要使用,否则,会发生I /O 端口地址重叠和冲突,造成用户开发的产品与系统不 兼容而失去使用价值; ②一般,用户可使用300~31FH地址,用户可以使用。 但是,由于每个用户都可以使用,所以在用户可用的这段 I/O地址范围内,为避免与其他用户开发的插板发生地址 冲突,最好采用地址开关。