【接口技术】输入输出接口

【输入输出接口概念】外设接口功能及其一般结构,I/O端口编址方式,输入/输出数据传送方式,端口译码技术

【输入/输出接口】

外部设备及其信号

外部设备 = 输入设备 + 输出设备 + 复合输入/输出设备

外部设备的信号 = 数据信号(数字量、模拟量、开关量、脉冲量) + 状态信号(如Ready、Busy等,总是从外部设备发往CPU) + 控制信号(CPU发往外部设备)

外部设备的信号以数据形式,通过总线在CPU和外部设备之间传输

I/O接口及功能

接口的重要性:微机和I/O设备的信息类型和格式大多不一样,信号传输处理速度大多不匹配

接口功能:设备选择、信息传输、数据格式转换、联络、中断管理、复位、可编程、错误检测

接口的组成

接口处理的信号:CPU(或总线)与I/O设备之间的接口信息,通常分为数据信号、状态信号、控制信号

接口组成:接口硬件 + 接口软件(驱动程序)

端口:接口内的寄存器,暂存CPU和外设之间传输的数据、状态和命令

端口地址:每个端口有一个独立的地址

外部设备地址:设备接口内各端口的地址

端口种类:数据端口、命令(控制)端口、状态端口

接口软件 —— 初始化程序段、传送方式处理程序段、主控程序段、程序终止与退出程序段、辅助程序段

IBM PC的外设接口:单总线结构 + 通用的集成I/O芯片

现代PC机的外设接口:南北桥结构 或 中心结构

I/O端口的编址方法

  1. I/O端口与内存统一编址(存储器映射编址方式):1个8位端口占用一个内存单元地址
  2. I/O端口与内存独立编址(I/O端口编址方式):访问I/O端口需要专门的I/O指令

简单I/O接口的组成和译码

地址总线上传送的地址码对接口中的不同寄存器或电路进行区分

访问设备,实际是访问接口卡上的端口


I/O端口地址空间(ISA总线):实际只用A9-A0,连续2个8位端口等价1个16位端口,连续4个8位端口等价1个32位端口

I/O操作所需总线信号:地址信号AB、IO读写-IOW或-IOR、地址允许AEN


I/O端口地址寻址方式:I/O直接寻址(8位地址,1字节立即数寻址)和间接寻址(16位地址,DX寄存器给出

I/O端口地址选用原则:系统配置占用的,或申明保留的地址,不能使用

端口选择(译码)技术:门电路、芯片、可编程逻辑器件(ABEL语言)

I/O端口地址译码电路设计

1:固定式端口地址译码

    将端口地址转二进制,所有地址线、IOR和AEN经过与门为1


2:地址译码电路(74LS138,3-8译码器,G2A=G2B=0,G1=1)


    高位地址用于译码芯片使能,低位地址用于选择接口内不同的端口


    配置多段地址——使用jumper跳线器改变端口地址

由于读、写操作不会同时进行,输入端口和输出端口可使用同一个地址编码

数据锁存器与缓冲器(端口的设计&实现)

锁存器:由CLK上升沿或下降沿触发,输出不随输入变化

缓冲器:输出和输入随时保持一定关系,目的是加大负载

简单I/O接口:组合地址译码、数据锁存与缓冲、状态寄存器、命令寄存器各个电路


示意图:

【输入输出数据传输的控制方式】

1:程序方式

程序控制信息传送,CPU享有“主动权”

·无条件传送:输入信号不用锁存,输出信号用锁存
·条件传送(查询/异步):有存储和传送状态的端口;输入过程READY先1后0,输出过程BUSY先1后0

2:中断方式

CPU和外设“并行工作”,外设享有“主动权”

每传送一次数据,CPU必须执行一次中断服务程序

高速外设容易产生覆盖错误,传送速度低且CPU时间消耗大

3:直接存储器存取方式(DMA)

Direct Memory Access


DMA控制器(DMAC)来实现内存与外设,或外设与外设之间的直接快速传送,CPU不参加数据的传送工作

DMA方式使信息传送从以CPU为中心变为以内存为中心

一次DMA传送只需要执行一个DMA周期(相当于一个总线读/写周期)

·DMA传送的工作过程:

1)I/O设备向DMAC发出DMA请求;

2)DMAC向CPU发出总线请求(HOLD);

3)CPU在执行完当前指令的当前的总线周期后,向DMAC发出总线响应信号(HLDA);

4)CPU脱离对系统总线的控制,由DMAC接管对系统总线的控制;

5)DMAC向I/O设备发出DMA应答信号;

6)DMAC进行一个字节的传送;

7)完成设定的字节数据传送,CPU恢复对系统总线的控制;

【开关量输入输出接口】

1:开关量输入接口

1)基本的开关量输入接口

形态:单刀单掷、单刀双掷、按钮

开关量通过三态缓冲器(输入输出同相 或 输入输出反相)与系统数据总线连接

一条输入指令可以同时读入8位或16位开关量

2)矩阵式开关量输入接口

    行线(R0~R7):数据输出端口

    列线(C0~C7):数据输入端口

    电路特点:

·没有键按下时,列线全为1;

·行线全为1时,无论有无键按下,列线仍全为1

·某行线为0时,若该行有键按下,则输出7个1和1个0,0的位置与键对应

    键盘扫码与编码:

·编码是二字节码(高8位行码 + 低8位列码),例如(R3,C2)是(11110111,11111011)=F7FB H

·扫描码是一字节码(数字码),例如(R3,C2)=32 H =(0011,0010)

    键盘扫码程序:

    ·没有键按下,返回-1

    ·有键按下,产生抖动,返回二字节码(行列码)

    ·PRORT和CPORT定义行、列端口的地址

2:开关量输出接口

1)基本的开关量输出接口

LED发光二极管,输出0发光,输出1熄灭


2)LED七段数码显示管接口

位选择:选择某个数码管

段选择:选择某竖或某横的灯管(如abcdefg)

类型

0

1

2

3

4

5

6

7

8

9

共阳极

0C0H

0F9H

0A4H

0B0H

99H

92H

82H

0F8H

80H

90H

共阴极

3FH

06H

5BH

4FH

66H

6DH

7DH

07H

7FH

6FH

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自媒体工作内容管理助手

内容助手 访问地址:editor.yunwow.cn 背景介绍 最近在学习流量运营, 流量运营的第一站是内容创作, 我试过不少原创内容,都是跟生活相关的例如:录一段联琴的视频、录一段秋天的风景、写一段生活感悟、发一段小宠物的生…

Elasticsearch基础操作演示总结

一、索引操作 (一)创建索引 创建Elasticsearch(ES)索引是在ES中存储和管理数据的重要操作之一。索引是用于组织和检索文档的结构化数据存储。 当创建Elasticsearch索引时,通常需要同时指定索引的设置(Se…

sheng的学习笔记-【中文】【吴恩达课后测验】Course 2 - 改善深层神经网络 - 第三周测验

课程2_第3周_测验题 目录:目录 第一题 1.如果在大量的超参数中搜索最佳的参数值,那么应该尝试在网格中搜索而不是使用随机值,以便更系统的搜索,而不是依靠运气,请问这句话是正确的吗? A. 【  】对 B.…

电脑提示MSVCP100.dll丢失错误怎么解决?分享四个解决方法帮你搞定

在平时我们使用电脑中,经常会遇到各种问题,比如msvcp100.dll文件丢失,那这个msvcp100.dll文件丢失需要怎么修复解决呢?和msvcp100.dll为什么会丢失呢,下面我一点点为大家解答与介绍解决msvcp100.dll丢失问题的方法。 一…

HTML入门知识点

第一部分&#xff1a;HTML基础 HTML文档通常由以下几个部分组成&#xff1a; <!DOCTYPE html> 声明&#xff1a;这个声明告诉浏览器你使用的是HTML5标准。 <html> 元素&#xff1a;这是HTML文档的根元素&#xff0c;包含了整个文档的内容。 <head> 元素&a…

代码随想录day59

647. 回文子串 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符组成&#…

游戏引擎,脚本管理模块

编辑器中删除脚本&#xff0c;然后立即恢复删除的脚本关系正常编辑器中删除脚本&#xff0c;关掉编辑器&#xff0c;然后只恢复脚本&#xff0c;不恢复meta,然后再打开编辑器关系丢失编辑器中删除脚本&#xff0c;关掉编辑器&#xff0c;然后恢复脚本且恢复meta,然后再打开编辑…

为什么InnoDB选择B+树而不是红黑树作为索引结构?

在数据库管理系统中&#xff0c;索引结构的选择对于数据库的性能和效率至关重要。MySQL的InnoDB存储引擎是一个广泛使用的数据库引擎&#xff0c;它选择了B树作为索引结构&#xff0c;而不是像红黑树那样的其他数据结构。本文将探讨为什么InnoDB选择B树&#xff0c;并解释B树与…

Redisson—分布式服务

一、 分布式远程服务&#xff08;Remote Service&#xff09; 基于Redis的Java分布式远程服务&#xff0c;可以用来通过共享接口执行存在于另一个Redisson实例里的对象方法。换句话说就是通过Redis实现了Java的远程过程调用&#xff08;RPC&#xff09;。分布式远程服务基于可…

【JVM】运行时数据区(内存区域划分)详解

文章目录 前言一、JVM 运行时数据区1, 堆2, Java 虚拟机栈3, 本地方法栈4, 程序计数器5, 元数据区 / 方法区 二、内存异常问题1, 栈溢出2, 内存溢出3, 内存泄露 总结 前言 &#x1f4d5;各位读者好, 我是小陈, 这是我的个人主页 &#x1f4d7;小陈还在持续努力学习编程, 努力通…

Minecraft个人服务器搭建自己的皮肤站并实现外置登录更换自定义皮肤组件

Minecraft个人服务器搭建自己的皮肤站并实现外置登录更换自定义皮肤组件 大家好&#xff0c;我是艾西有不少小伙伴非常喜欢我的世界Minecraft游戏&#xff0c;今天小编跟大家分享下Minecraft个人服务器怎么设置皮肤站。 Minecraft皮肤站是什么&#xff1f;其实官网就有皮肤站…

关于智能空气动力学

智能空气动力学是指运用智能科学方法和研究范式研究空气运动&#xff0c;尤其是物体与空气相对运动时空气对物体所施作用力规律、气体的流动规律和伴随发生的物理学变化&#xff0c;解决空气动力学问题的新的交叉学科。在空气动力学三大传统研究手段的基础上&#xff0c;智能空…

【Overload游戏引擎分析】画场景网格的Shader

Overload引擎地址&#xff1a; GitHub - adriengivry/Overload: 3D Game engine with editor 一、栅格绘制基本原理 Overload Editor启动之后&#xff0c;场景视图中有栅格线&#xff0c;这个在很多软件中都有。刚开始我猜测它应该是通过绘制线实现的。阅读代码发现&#xff0…

STM32复习笔记(二):GPIO

目录 &#xff08;一&#xff09;Demo流程 &#xff08;二&#xff09;工程配置 &#xff08;三&#xff09;代码部分 &#xff08;四&#xff09;外部中断&#xff08;EXTI&#xff09; &#xff08;一&#xff09;Demo流程 首先&#xff0c;板子上有4个按键&#xff0c;…

外包做了3个月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;大专生&#xff0c;17年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

科普文章|一文了解平行链及其优势

平行链是一种可以连接到更规模的区块链网络&#xff08;波卡&#xff09;的独立区块链。不同于传统区块链&#xff08;如比特币和以太坊&#xff09;是孤立的并且无法在本地相互通信&#xff0c;平行链与其他平行链并行运行&#xff0c;并且相互可以无缝通信。平行链还使用波卡…

JS进阶-原型对象prototype

原型 原型就是一个对象&#xff0c;也称为原型对象 构造函数通过原型分配的函数是所有对象所共享的。 JavaScript规定&#xff0c;每一个构造函数都有一个prototype属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象 这个对象可以挂载函数&#xff0c;对象…

Golang编译生成可执行程序的三种方法

目录 前言 正文 方法一、 方法二、 方法三、 结尾 前言 Golang是一种强类型、编译型、跨平台的编程语言&#xff0c;相同代码在不同平台上都可以编译出对应的可执行程序。今天就来简单介绍一下如何使用命令编译出可执行程序&#xff0c;本文以windows平台为例进行介绍。 …

关于在 Notion 中使用 Markdown 语法

关于在 Notion 中使用 Markdown 语法 习惯使用的 Markdown 的伙伴们应该知道&#xff0c;当需要加粗字体时&#xff0c;会首先输入 ** **&#xff0c;然后在里面填内容。 但是在 Notion 中&#xff0c;这个就不太行了。它所定义的规则是从前往后&#xff0c;也就是先键入**&…

1.软件测试基础

一、软件测试概念 1.什么是软件 软件是计算机程序&#xff0c;是由计算机代码编写的一系列指令和数据&#xff0c;可以实现各种功能。它指的是计算机系统中的应用程序&#xff0c;包括操作系统、应用软件、驱动程序等。软件可以通过编程语言编写和开发&#xff0c;并可以安装…