![75c979b350f907b080527d6a7131ad26.png](https://i-blog.csdnimg.cn/blog_migrate/30c049d4114728f16d0ff074776aaadb.jpeg)
![b9126a7803298236db9d6c383233e732.png](https://i-blog.csdnimg.cn/blog_migrate/c7b3b6e5d1e75ccc6b0f5e3cba433ef5.png)
微机系统输入输出接口(I/O接口)的概念:
接口就是微处理器CPU与“外部世界”的连接电路,是CPU与外界进行信息交换的中转站。
![c40fff5faa3588e031a54d5c9f3246e1.png](https://i-blog.csdnimg.cn/blog_migrate/f474352254c78f8fc6aacf2441f1481b.jpeg)
一、I/O信息组成
数据信息:数字量、模拟量、开关量。
状态信息:外设送给CPU,说明外设工作状态。
控制信息: CPU送给外设的命令信息。
以CPU为参照,信息专递是有方向的。
习惯上把分别传送这三种信息的端口称为数据口、状态口、控制口。
1.数据信息
(1)数字量:
通常以8位或16位的二进制数以及ASCII码的形式传输,主要指由键盘、磁盘、光盘等输入的信息或主机送给打印机、显示器、绘图仪等的信息。
(2)模拟量:
模拟的电压、电流或者非电量。对模拟量输入而言,需先经过传感器转换成电信号,再经A/D转换器变成数字量;如果需要输出模拟控制量的话,就要进行上述过程的逆转换。
(3)开关量:
用“0”和“1”来表示两种状态,如开关的通/断、电机的转/停、阀门的开/关等。
2.状态信息
CPU在传送数据信息之前,经常需要先了解外设当前的状态。如输入设备的数据是否准备好、输出设备是否忙等。
用于表征外设工作状态的信息就叫做状态信息,它总是由外设通过接口输入给CPU的。
状态信息的长度不定,可以是1个二进制位或多个,含义也随外设的具体情况不同而不同。
3.控制信息
用来发布控制命令、控制外设工作的信息,例如A/D转换器的启停信号。
控制信息总是CPU通过接口发出的。
为什么要在CPU与外设之间设置接口?
- 信号不兼容(功能定义、逻辑定义、时序关系)
- 速度不兼容
- 为了提高CPU的效率
- 为了利于外设自身的发展
通常CPU并不直接和I/O设备进行信息交换,而要借助于I/O接口。
二、接口的组成
1.硬件电路 :
基本逻辑电路(在接口芯片中)
命令寄存器、状态寄存器、数据寄存器——核心。每个寄存器称为一个端口。
端口地址译码电路(独立于接口芯片)
![5a571e1d8aba41ac527b9ba50f278c48.png](https://i-blog.csdnimg.cn/blog_migrate/6ead6ec6d2a4d628ceb5900b9372aab5.jpeg)
2.供选电路:
数据传送方式——PIC或DMAC;
速率控制、发声——T/C;
数据宽度转换——移位寄存器
一个接口可以多个不同类型的端口组成。从编程角度看,接口内部主要包括一个或多个CPU可以进行读/写操作的临时寄存器,又称I/O端口(Port)。各I/O端口由端口地址区分(80X86 64K) ----寻址方式。
按存放信息的不同分类
- 数据端口:用于存放CPU与外设间传送的数据信息
- 状态端口:用于暂存外设的状态信息
- 控制端口:用于存放CPU对外设或接口的控制信息,控制外设或接口的工作方式。
CPU对外设输入/输出的控制,通过对接口电路中各I/O端口的读/写操作完成。
端口: 地址编号
3.软件编程
1)初始化程序段
可编程接口芯片初始化
2)传送方式处理程序段
查询——检测状态
中断——向量修改、允许/屏蔽、中断结束
DMA——通道开放/屏蔽
(相互渗透)
3)主控程序段
4)程序终止与退出程序段 对系统硬件进行保护
5)辅助程序段 人机对话、菜单设计
三、I/O接口功能
I/O接口:CPU控制外部设备的必经通道 实现:LSI/VLSI专用或通用接口芯片。
功能:
(1)地址译码I/O设备的选择:分时数据传送
(2)信息输入与输出(I/O接口按命令工作)
(3)数据的缓冲及锁存:时序匹配。(打印机)
(4)信息的转换(设备的信息类型(数字、模拟量等)、电平(TTL电平、非TTL。电平等)及码制(二进制、十进制等)和信息格式(并行到串行或反之))。
接口的基本功能
1. 数据缓冲功能
接口电路中一般都设置有数据寄存器或锁存器数据口,以解决高速的主机与低速的外设之间的速度匹配问题,避免因主机与外设的速度不匹配而丢失数据。
2.端口选择功能
微机系统中常有多个外设,而CPU在任一时刻只能与一个端口交换信息,因此需要通过接口的地址译码电路对端口进行寻址。
3.信号转换功能
外设所提供的数据、状态和控制信号可能与微机的总线信号不兼容,所以接口电路应进行相应的信号转换。
4.接收和执行CPU命令的功能
CPU对外设的控制命令一般以代码形式输出到接口电路的控制端口,接口电路对命令代码进行识别、分析,分解成若干控制信号,传送到I/O设备,并产生相应的具体操作。
5.中断管理功能
当外设需要及时得到CPU的服务,特别是出现故障需要CPU立即处理时,就要求接口中设置中断控制器,以便于CPU处理有关中断事务(如中断请求、中断优先级排队、提供中断向量等)。
6.可编程功能
由于I/O接口电路大多由可编程接口芯片组成,因此就有可能在不改变硬件电路的情况下,只要修改接口驱动程序就可以改变接口的工作方式,提高了接口的灵活性和可扩充性,使接口向智能化方向发展。
7.返回外设状态的功能
接口电路在执行命令之前、执行命令过程中和执行命令之后,外部设备及接口电路都会有一些情况发生,包括正常工作状态和故障状态。
“忙”、“闲”、“准备就绪”、“未准备就绪”、“满”、“空”、“溢出错”、“格式错”等
接口中一般都设置状态寄存器,称“状态口”。状态信号以状态代码形式存放在接口电路的状态寄存器中。
CPU从状态口读取状态信息,供CPU作出判断与处理。
8.数据宽度与数据格式转换的功能
CPU所处理的是并行数据,而有的外设只能处理串行数据,接口应具有数据“并串”、 “串并”的转换能力。
CPU与有些外设交换数据时,要求按照一定的数据格式传送,所以在CPU与通信设备之间进行数据格式转换。
四、CPU与外设之间的数据传送方式
- 程序控制方式
- 中断传送方式
- 直接存储器存取方式
1.程序控制方式
程序控制方式是指CPU与外设间的数据传送是在程序的控制下完成的一种数据传送方式。
分为
1)无条件传送方式
所谓无条件,就是假设外设已处于就绪状态,数据传送时,程序就不必再去查询外设的状态,而直接执行I/O指令进行数据传输。
当简单外设作为输入设备时,其输入数据的保持时间相对于CPU的处理时间要长得多,所以可直接使用三态缓冲器与系统数据总线相连。
当简单外设作为输出设备时,由于外设的速度较慢,CPU送出的数据必须在接口中保持一段时间,以适应外设的动作,因此输出采用锁存器。
![1cad8b44e880fb5e41c8a5444b054fa9.png](https://i-blog.csdnimg.cn/blog_migrate/f252d529980f690f34224c3f22b57ffd.jpeg)
这种方式要求外设和CPU同步工作,传送速度快。乒乓开关、LED数码管等的连接一般是用这种方式。
2)查询传送方式
查询传送方式在传送数据前先查询外设的状态,当外设准备好时,CPU执行I/O指令传送数据;若未准备好时,则CPU等待。
![83da78707d2f6e9aabc5b4eabbff9ae3.png](https://i-blog.csdnimg.cn/blog_migrate/854afa71b5f7d429a3f10dfa5627f1fe.jpeg)
要求CPU与外设间的接口电路需要两个端口:数据端口和状态端口。
优点:能较好地协调外设与CPU之间的定时关系,因而比无条件传送方式容易实现准确传送。
缺点:该方式需要不断查询外设的状态,大量时间花在等待循环中,当主机与中、低速外设交换信息时,大大降低了CPU利用率。
查询传送
![0cf4a6307b205715b6345c46f906bb6b.png](https://i-blog.csdnimg.cn/blog_migrate/0f97727ffdfddcb5068e6825fe03fd05.png)
例子:设接口电路中状态端口的地址为STATUS,数据端口的地址为DATA,则CPU读取输入设备的数据应执行下列程序段:
POLL: IN AL, STATUS ;①
TEST AL, 80H ;②
JE POLL ;③
IN AL, DATA ;④
查询式输出:
通过查询,实现了快速的CPU与慢速外设之间同步交换信息,效率低。只适用于CPU负担不重,要求服务的外设对象不多且任务相对简单的场合。
为了提高CPU的工作效率以及使系统具有更好的实时性能,通常采用中断传送方式。
![aeaaceb24f7a0ab8129260984ec93622.png](https://i-blog.csdnimg.cn/blog_migrate/0b3798864eead2fa268186a6a5f1910d.jpeg)
![5c0bfc5a3236acdb4e81586ff5bda503.png](https://i-blog.csdnimg.cn/blog_migrate/3ff33d88a5d53b1f397c712decf3de04.jpeg)
举例:设接口电路中状态端口的地址为STATUS,数据端口的地址为DATA,则CPU将内存STORE单元的内容送至输出设备应执行下列程序段:
POLL: IN AL, STATUS ;①
TEST AL, 80H ;②
JNE POLL ;③
MOV AL, STORE ;④
OUT DATA, AL ;⑤
2.中断传送方式
含义:在中断方式下,外设掌握向CPU申请服务的主动权,当输入设备将数据准备好,或者输出设备已做好接收数据的准备时,向CPU发出中断请求信号,要求CPU为其服务。若此时中断允许触发器是开放的,则CPU暂停目前的工作,与外设进行一次数据传输,等I/O操作完成以后,CPU继续执行原来的程序。
优点:保证了CPU对外设的实时服务,又不会因对各I/O设备的随时关照而花费CPU太多的机时,使高速运行的CPU与速度参差不齐的各种外设之间形成了良好的匹配(并行工作)关系,确保了CPU的高效率。
缺点:为了实现中断传送,要求在CPU与外设之间设置中断控制器,增加了硬件开销。
![35799402023f91d043e943fd44a3abb8.png](https://i-blog.csdnimg.cn/blog_migrate/b92741834baaede7be0c79ff046503cf.jpeg)
3.直接存储器存取方式
即DMA方式,中断传送方式虽可大大提高CPU的效率,但仍然要占用CPU的时间,对于高速I/O设备,以及成组数据传送,仍显速度太慢。
DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行。
优点:传送速率很高,这对高速度大批量数据传送特别有用。
缺点:要求设置DMA控制器,电路结构复杂,硬件开销大
自动化人 - 知乎www.zhihu.com![b9126a7803298236db9d6c383233e732.png](https://i-blog.csdnimg.cn/blog_migrate/c7b3b6e5d1e75ccc6b0f5e3cba433ef5.png)
注:版权属笔者所有,如需转载请务必联系!
最后说一句:码字不易,若此文对你有启发,收藏前请点个赞、点点喜欢,是对知乎主莫大的支持!!
参考
1.^如有侵犯您的权益,请联系作者删除。