微机接口技术

接口的功能

1)寻址功能(必需)
识别是否是I/O口的操作信号,识别是否为端口的片选信号,识别是芯片的哪个寄存器被访问。
2)输入/输出功能(必需)
根据CPU通过控制总线送来的读写信号决定是输入操作还是输出操作。
3) 可编程功能
有些接口具有可编程特性,可以通过指令设定接口的工作方式,工作参数,以满足不同外设的要求。
4) 数据转换功能
当外设提供的数据形式不是CPU能直接接受的形式时,则通过接口转换成CPU可接受的形式。如A/D,串/并转换等,反之也一样。
5) 联络功能
当CPU要访问外设时,首先要查询外设状态,能否接受访问,接口应将外设状态准备好,供CPU查询;或向CPU发特定的信号通知外设已准备好。
6) 数据缓冲功能
主机与外设速度相差很大,为了防止数据丢失,I/O接口均设有双向数据缓冲器。
7) 中断管理功能
有专门的中断管理接口,能完成中断判优、中断屏蔽,向CPU送入中断类型码等功能。
8) 错误检测功能

多数可编程芯片都能自动检测出传输过程中出现的错误。
传输错误:如串口中的奇偶校验,覆盖错误
9) 复位功能
能接受主机的复位信号,使系统重新启动。
10) 时序控制功能
接口电路具有自己的时钟,以满足外设在时序方面的要求

CPU与I/O设备之间的信息

数据信息
CPU和外部设备交换的基本信息就是数据,数据通常为8位或16位。
状态信息
状态信息反映了当前外设所处的工作状态,是由外设通过接口传往CPU供其查询。
控制信息
控制信息是由CPU通过接口传送给外设的,CPU通过发送控制信息控制外设的工作,如启动和停止等。

I/O接口的基本结构

1)端口
I/O接口电路内部通常有若干个寄存器,用来存放CPU和外部设备之间传输的数据信息、状态信息和控制信息。数据信息、状态信息和控制信息都是以数据的形式通过数据总线来传输的。但是在接口电路中,这三类信息分别存放在不同的寄存器中,有的接口电路也共用一些寄存器。在接口电路中,把分配了地址的寄存器或缓冲电路称为端口。
2)地址译码电路
CPU在执行输入/输出指令时,首先要向地址总线发送端口地址,这些地址信号分为两部分,高位地址经过译码电路,用来选择不同的接口电路(片选),而低位地址用来选择接口电路内部的不同端口。
3)数据缓冲器与锁存器
接口电路内部具有数据缓冲器和数据锁存器,一方面起到CPU和外部设备之间速度不匹配的协调作用;另一方面,使得数据传输端在不传输数据时呈高阻状态。

端口分类

CPU对I/O端口的访问是通过选通端口地址进行的
数据端口
数据端口分为数据输入端口和数据输出端口。在输入时,保存外设发往CPU或内存的数据;在输出时,保存CPU或内存发往外设的数据。可读可写
状态端口
状态端口用来保存外部设备和接口电路本身的工作状态。CPU通过读取状态端口,就可以了解当前外设和接口电路的状态。只读不写
控制端口
控制端口用来存放CPU发来的控制指令,初始化接口电路,确定接口电路的工作方式和功能。只写不读

I/O端口的编址方式

1)统一编址
I/O与存储器的地址不重复,读写指令一致,只是根据地址来区分操作对象是存储器还是I/O。
优点:无需专门的I/O指令,对I/O操作指令丰富,可进行算术和逻辑运算。
缺点:占用存储器地址,因外设功能各不相同,需要复杂的电路进行时序配合。
2)单独编址
I/O与存储器的地址重复,用不同的读写信号和指令区分。
优点:不占用存储器空间;I/O端口的地址空间独立;控制和地址译码电路相对简单;专门的I/O指令使程序清晰易读。
缺点:I/O指令单一。

程序方式

程序方式:指用程序来控制进行输入/输出数据传输的方式。

无条件传送方式

假设外设已经准备就绪,不查询外设状态,直接执行I/O指令进行数据传输。
当外设作输入设备,输入数据的保持时间相对于CPU的处理时间长,所以可以直接用缓冲器;
当外设作输出设备,由于外设速度比较慢,CPU的数据必须在接口保持一段时间,因此必须采用锁存器。
无条件传输时,输出时,必须确认输出锁存器的原数据无效,才能正确输出;输入时,必须认为输入缓冲器中的数据已准备好,否则读取错误。

条件传送方式(查询方式

一般查询传输时一个I/O设备有两个端口地址,一个为数据口地址,一个为状态口地址。CPU先读取状态口的数据,看看当前外设的状态准备好没有,若准备好则开始读写数据口,传输数据;若未准备好则循环读取状态口地址等待外设准备好。

1) 条件传送方式-输入

查询式输入如图,状态线占用一根数据线D0,STB‾\overline{STB}STB是选通信号,在输入时随着数据一起从输入端口出现,是表示输入数据已就绪的状态信号。
CPU先读状态口,若状态就绪,再读数据口。

a)外设未准备好,STB‾\overline{STB}STB为高,D触发器无脉冲,CPU读状态口(40H), 打开缓冲器(1), 读出DB0DB_0DB0​为0, 表示未准备好。
b)外设准备好,STB‾\overline{STB}STB为低,1. 打开锁存器,将输入数据锁存起来; 2. STB‾\overline{STB}STB有下降沿脉冲,使Q为高,CPU读状态口(40H)读入的DB0DB_0DB0​为高,表示数据有效,程序转而读数据口42H。
c)读数据口42H,1. 打开缓冲器(2),读数据线,这时,缓冲器(1)高阻,所以数据线上是输入设备的数据;2. 同时,读数据口的控制线将D触发器清零。Q端输出0,下次再读状态口时读入的DB0DB_0DB0​为0,表示数据未准备就绪。
d)重复a),b),c)步骤

2) 条件传送方式-输出

查询式输出如图,
OBF(Output Buffer Full):输入信号,为1表示输出缓冲器满,即数据已经到外设输入口;
ACK(Acknowledge): 输出信号,为0表示数据已被外设取走,可以发送下一个数据。

a) CPU输出数据,锁存器选通,将数据输入锁存器,同时,D触发器有脉冲,使OBF为1,通知外设取数据。
b) CPU读状态口,因为外设速度较慢,数据输出后有个读取的过程,所以外设未完全取走数据时,ACK信号为高,因此读取的DB0为1,表示外设还未将数据取走,CPU不能送入下一个数据。
c)外设取走数据,ACK信号为0,将D触发器清零,Q端输出为0,因此读取状态口的DB0为0,表示外设已将数据取走,CPU可以继续送入下一个数据。
d)重复a), b), c)步骤

中断方式

所谓中断,就是当CPU正常运行程序时,由于内部或外部的随机事件,引起CPU暂时中止正在运行的程序,转而去执行请求中断的外设(或内部事件)的中断服务程序,中断服务结束后再返回被中止的程序。这一过程称为中断。

中断源 : 能够引起程序中断的事件都称为中断源。
中断优先级 : 当系统中有多个中断源同时到来时,需将中断源排个队,优先级高的中断服务程序先执行。
中断嵌套 : 所谓中断嵌套是指高优先级别的中断打断当前低优先级的中断服务程序的执行。
中断类型码 : 中断类型码是指每个中断源的编号。

中断响应过程

中断请求
中断判优

  • 软件查询法
  • 简单硬件方式
  • 专用硬件方式

中断响应
在中断响应过程中应解决以下四个问题:保护断点, 保护现场;CPU关中断(不允许此时被新的中断源所打断);转入中断请求所对应的处理程序
最后一个问题是实现CPU控制权的转移,它是中断响应过程的关键。其实质是**如何由中断源得到相应服务程序的入口地址的问题*。

微机笔记6——输入输出控制相关推荐

  1. 学习笔记7--车辆控制平台

    本系列博客包括6个专栏,分别为:<自动驾驶技术概览>.<自动驾驶汽车平台技术基础>.<自动驾驶汽车定位技术>.<自动驾驶汽车环境感知>.<自动驾驶 ...

  2. 微型计算机原理中断实验,微机原理实验---中断控制实验.doc

    微机原理实验---中断控制实验 深 圳 大 学 实 验 报 告 课程名称: 微机计算机设计 实验项目名称: 8259 中断控制实验 学院: 信息工程学院 专业: 电子信息工程 指导教师: 报告人: 学 ...

  3. MR作业的提交监控、输入输出控制及特性使用

    2019独角兽企业重金招聘Python工程师标准>>> MR作业的提交监控.输入输出控制及特性使用 博客分类: hadoop 提交作业并监控 JobClient是用户作业与JobTr ...

  4. 【OpenGL学习笔记⑧】——键盘控制正方体+光源【冯氏光照模型 光照原理 环境光照+漫反射光照+镜面光照】

    ✅ 重点参考了 LearnOpenGL CN 的内容,但大部分知识内容,小编已作改写,以方便读者理解. 文章目录 零. 成果预览图 一. 光照原理与投光物的配置 1.1 光照原理 1.2 投光物 二. ...

  5. ONVIF系列笔记-PTZ的控制

    ONVIF系列笔记-设备发现机制 ONVIF系列笔记-功能接口地址的获取 ONVIF系列笔记-流地址的获取 ONVIF系列笔记-PTZ的控制 ONVIF系列笔记-调焦切换及背光控制 SFX流媒体解决方 ...

  6. 海康工业相机功能模块-IO输入输出控制

    海康工业相机功能模块sdk调用介绍 IO输入输出控制 前言 IO输入 IO输出 前言 机器视觉行业里面,相机作为最重要的图像传感器,除了主要的拍摄功能外,它也承担了一部分信号控制功能. 一方面能够接受 ...

  7. 【车载开发系列】UDS诊断---输入输出控制($0x2F)

    [车载开发系列]UDS诊断-输入输出控制($0x2F) UDS诊断---输入输出控制($0x2F) [车载开发系列]UDS诊断---输入输出控制($0x2F) 一.概念定义 1)与0x31例程控制服务 ...

  8. Unity学习笔记1-键盘控制开关灯(Point Light)

    Unity学习笔记1-键盘控制开关灯(Point Light) 实现开关灯用键盘上的两个按键控制,效果如下所示 1-创建材质球(Material):HighLight和OffLight **: )Li ...

  9. Unity学习笔记--赛车的控制代码

    Unity学习笔记–赛车的控制代码 using System.Collections; using System.Collections.Generic; using UnityEngine;publ ...

最新文章

  1. 浏览器允许跨域设置(不用于生产环境,开发用)
  2. Java 线程同步 synchronized
  3. 每个人应该知道的NVelocity用法
  4. 鼠标取点——ginput()和getpts()详解
  5. Nginx实用指南V1 (连载之六:cacti监控)
  6. 马上就5g时代了,5g时代有什么风口吗?
  7. java递归生成树结构_突破CRUD | 万能树Java工具类封装(源码)
  8. 写软件的需求分析全方位攻略
  9. django为Form生成的label标签添加class
  10. 2021-09-06单纯形计算方法(
  11. 下载离线地图地形数据库(3D离线地图开发)
  12. [Android] [逆向工程] 安卓逆向入门篇
  13. 《CMS后台系统》项目实战 详细分解
  14. 透明位图Ron Gery Microsoft 网络开发技术小组
  15. Arduino DRV8825驱动两相步进电机
  16. ffmpeg当前版本mp4容器 支持G711修改
  17. AD中PCB布局与布线的一般原则
  18. Docker超详细版教程通俗易懂 -之- 入门篇
  19. 京东要如何解决1号店人员问题?网易考拉:我来帮你
  20. java基础巩固-宇宙第一AiYWM:为了维持生计,Spring全家桶_Part1-1(Spring左膀右臂中的左膀IOC第一篇~全是概念,Spring为啥辣么6)~整起

热门文章

  1. 1.2 xss原理分析与剖析(3)
  2. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of SPb
  3. Arduino编译bootloader
  4. jquery easy ui 1.3.4 窗口,对话框,提示框(5)
  5. 输入控件控制输入限制
  6. ipc-rpc-xmlrpc
  7. Android圆角矩形
  8. POJ - 2485(最小生成树.prime)
  9. Linux -- 基于zookeeper的java api(二)
  10. 日期插件My97DatePicker