并行IO接口8255

文章目录

  • 8255A
  • 芯片组成
    • 外设接口
      • 三个端口
      • 两组端口
      • 关于C口(★)
    • 内部逻辑
    • CPU接口
  • 8255A的控制字(★)
    • 位控字(D7=0)
    • 方式选择控制字(D7=1)
  • 8255A的工作方式
      • 工作方式0(基本输入/输出方式)(★)
      • 工作方式1(选通输入/输出方式)
      • 工作方式2(双向传输方式)
  • 补充(★)

8255A

8255A包含3个带锁存或缓冲的数据端口,可与外设并行进行数据交换。

  • 含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力,即A端口(通道)、B端口(通道)、C端口(通道)
  • 也可联合使用,构成单线、双线或三线联络信号的并行接口,此时,C端口完全服务于A、B端口。
  • 可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。

芯片组成

在这里插入图片描述

外设接口

三个端口

  • 端口A:PA0~PA7(8位)
    A组工作方式0、1、2
    常作数据端口,功能最强大。
  • 端口B:PB0~PB7(8位)
    B组工作方式0、1
    常作数据端口
  • 端口C:PC0~PC7(8位)
    A组控制高4位PC4~PC7B组控制低4位PC0~PC3仅支持工作方式0
    可作数据、状态和控制端口;分两个4位,每位可独立操作

两组端口

A组:

  • 端口A(PA0~PA7)
  • 端口C的高4位(PC4~PC7)

B组:

  • 端口B(PB0~PB7)
  • 端口C的低4位(PC0~PC3)

关于C口(★)

  1. C端口被分成两个4位端口,两个4位端口只能以方式0工作,可分别选择输入或输出

  2. 在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组

  3. 当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被用来为A、B端口输出控制信号或输入状态信号。

内部逻辑

三个端口在内部分成两组控制

A组控制电路控制A端口和端口C的上半部分
B组控制电路控制B端口和端口C的下半部分

  • 根据CPU的命令字控制8255A的工作方式,每组控制电路从读写控制逻辑接受各种命令,从内部数据总线接受控制字并发出命令到各自相应的端口。
  • 根据CPU的命令字对端口C的每一位实现按位置位(1)或复位(0)。

CPU接口

在这里插入图片描述

连接系统端的主要引线:

  • D0~D7——控制字输入端口
  • CS——片选信号
  • RD、WR——决定内外部总线上信息传送的方向
  • A0、A1——端口寻址
  • RESET——复位信号,接系统总线的RESET,使8255A复位
A1A0选择
00端口A
01端口B
10端口C
11控制寄存器





8255A的控制字(★)

2个控制字:

  • 方式选择控制字(方式控制字):确定三个端口的工作方式,给出标识位。
  • 通道C置位复位控制字(位控字):控制C口的某一位的输出,或用于设置INTE位。

两个控制字共用一根地址线,即A0A1选择是控制器还是端口。
使用D7位判断控制字,即选择方式控制字和位控字。

D7=1表示为方式选择控制字(方式控制字)
D7=0表示为通道C置位/复位控制字(位控字)



位控字(D7=0)

  • 通道C 置位 / 复位控制字用于对单个位的操作。

  • 端口C的每一位都可以通过控制寄存器写入 置位 / 复位控制字,使之置位(输出为1)或复位(输出为0)。

  • C口的控制靠写入控制字,而不是直接写入C口。

  • D6D5D4——未用

  • D3D2D1——选择C口某一位

  • D0——置位 / 复位

在这里插入图片描述




方式选择控制字(D7=1)

在这里插入图片描述

功能
D7必须是1
D6,D5A组方式选择(0、1、2)
D4(PA0~PA7)输入、输出
D3(PC4~PC7)输入、输出
D2B组方式选择(0、1)
D1(PB0~PB7)输入、输出
D0(PC0~PC3)输入、输出




8255A的工作方式

  • 方式0:基本输入输出方式,适用于无条件传送和查询方式的接口电路。
  • 方式1:选通输入输出方式,适用于查询和中断方式的接口电路。
  • 方式2(仅A口):双向选通传送方式,适用于与双向传送数据的外设。适用于查询和中断方式的接口电路。

链接1
链接2

工作方式0(基本输入/输出方式)(★)

  • A口、C口的高4位,B口、C口的低4位 可分别定义为输入或输出,各端口互相独立,故共有16种不同的组合。

  • 8255相当于三个独立的8位简单接口

  • 各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。

  • 定义为输出的口均有锁存数据的能力,而定义为输入的口则无锁存能力。

  • 在方式0下,C口还可以通过位控字按位进行置位和复位

  • C端口即可以是一个8位的简单接口,也可以分为两个独立的4位端口

时序:

  1. A0 = 1、A1 = 1,D0~D7写入控制字
  2. 改变RD#和WR#,选择读写
  3. 对于输出:通过A0、A1选择A、B、C端口,通过D0~D7写入数据
  4. 对于输入:通过A0、A1选择A、B、C端口,通过D0~D7读出数据
    读入
    输出

应用:

  • 用于连接简单外设。
  • 适用于:无条件输入输出方式。查询输入输出的方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。




工作方式1(选通输入/输出方式)

  • A、B口作输入或输出口,C口的部分位固定用作A、B口的选通控制信号。

  • 每一个8位数据端口(A、B)均可设置为输入、输出方式,且两种工作方式均可锁存,而且可以进行中断控制。

  • 输入时PC3(INTR)PC4(STB#)PC5(IBF),输出时PC3(INTR)PC6(ACK#)PC7(OBF#)三位控制端口A状态

  • 输入时PC2(STB#)PC1(IBF)PC0(INTR), 输出时PC2(ACK#)PC1(OBF#)PC0(INTR)三位控制端口B状态

  • 未被用到的C端口,都可用位控字随便设置输入输出。

  • A、B口的INTR可输出中断到CPU,INTE可控制中断使能失能。

  • INTE的可通过写入端口C的对应位。输入时端口A的INTE对应PC4,端口B的INTE对应PC2。输出时端口A的INTE对应PC6,端口B的INTE对应PC2

数据输入
STB#数据选通信号,表示外设已经准备好数据。将输入设备送来的数据锁存在输入锁存器中。
IBF输入锁存器满,表示已经接收到数据,由STB的前沿产生,CPU的IN指令清除此信号。
INTR中断请求信号,由STB后沿产生,要求CPU读取数据。
INTE中断允许位,允许INTR发出中断请求。当INTE = 1和IBF位高电平时允许INTR请求。
数据输出
OBF#输出缓冲器满信号,通知外设取走数据 。
ACK#外设响应信号,表示已从数据段口取走数据。会使OBF变成无效的高电平。
INTR通知CPU输出下一个数据,ACK上升沿产生(常接到8259A)。
INTE中断允许位,INTE = 1和OBF为高电平时,允许产生INTR信号。
输入
在这里插入图片描述在这里插入图片描述
输出
在这里插入图片描述在这里插入图片描述

时序:

请添加图片描述请添加图片描述

应用:

  • 主要用于中断控制方式下的输入输出。
  • C口除部分位用作选通信号外,其余位可工作在方式0下,作为输入或输出线。特别是A、B均为方式1时仅使用C口的6条线,余下二条线可作为单独的输入输出线,用程序指定其数据传送方向。







工作方式2(双向传输方式)

  • 外设通过端口A即可向CPU发送数据,又能从CPU接收数据。

  • 工作方式2只适用于端口A,端口B仍按方式0或方式1工作。

  • 端口A可工作于双向方式,端口C的PC7~PC3位作为端口A的控制/状态信号端口,PC2~PC0用于B组。

  • 端口A的输入/输出均有锁存功能。在方式2工作状态下,端口A既可工作于查询方式,又可工作于中断方式。

  • 读数据时,WR的下降沿使得中断信号intr关闭,屏蔽外界中断,对应的是箭头1

  • 读数据的上升沿2,将数据送入到OBF中,OBF处于下降沿,表示数据已经保存到输出缓存区,即输出缓存区已经满了。OBF的下降沿使得ACK的成功接收数据,处于下降沿,处于有效位,对应箭头3

  • ack的上升沿,会打开intr的中断,使得中断有效。可以继续接受外部的数据。

  • 写数据时,stb低电平有效,送来的数据已经保存在锁存器中,其下降沿使得IBF,输入数据缓冲区产生上升沿,对应的是箭头7

  • stb上升沿,打开中断,使得intr高电平有效,同之cpu调用中断处理程序,中断处理程序发出读指令RD,低电平有效,读出IBF中的数据,使得IBF从高电平变为低电平,数据清空,对应箭头9

在这里插入图片描述

时序:
在这里插入图片描述

  • 地址在读数据以前就一定要稳定,并且前后都要有一定的保险时间,对应的就是CS,A1,A0

  • D0~D7表示的是总线上获取的数据,紧紧跟在RD后,RD是在下降沿写入,在上升输出到总线上

  • 主要分清两种情况,一种是有外界事件引起的,一种是由当前的状态变化引起的。

应用:

  • 可用于中断控制输入输出方式。
  • 当A口工作于方式2时,B口可工作于方式1(此时C口的剩余位都用作B口选通控制线);B口也可工作于方式0(此时C口的剩余位也只能用作方式0下的输入输出线)。





补充(★)

对端口C的数据输出有两种办法:

  1. 通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效

  2. 通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器

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

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

相关文章

springboot3如何集成knife4j 4.x版本及如何进行API注解

1. 什么是Knife4j knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案, 取名knife4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍!knife4j的前身是swagger-bootstrap-ui,swagger-bootstrap-ui自1.9.6版本后,正式更名为knife4j为了契合微服务的架构发展,由于原来…

js高级06-ajax封装和跨域

8.1、ajax简介及相关知识 8.1.1、原生ajax 8.1.1.1、AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。 按需请求,可…

自然色调人像自拍照后期Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色教程 自然色调人像自拍照后期通过 Lightroom 调色,旨在打造出清新、自然、真实的人像效果。这种风格强调还原人物的本来面貌,同时增强照片的色彩和光影表现力,让自拍照更加生动和吸引人。 预设信息 调色风格:清晰透明风格预…

RabbitMQ简单应用

概念 RabbitMQ 是一种流行的开源消息代理(Message Broker)软件,它实现了高级消息队列协议(AMQP - Advanced Message Queuing Protocol)。RabbitMQ 通过高效的消息传递机制,主要应用于分布式系统中解耦应用…

计算机网络(14)ip地址超详解

先看图: 注意看第三列蓝色标注的点不会改变,A类地址第一个比特只会是0,B类是10,C类是110,D类是1110,E类是1111. IPv4地址根据其用途和网络规模的不同,分为五个主要类别(A、B、C、D、…

挂壁式空气净化器哪个品牌的质量好?排名top3优秀产品测评分析

随着挂壁式空气净化器市场的不断扩大,各类品牌与型号琳琅满目。但遗憾的是,一些跨界网红品牌过于追求短期效益,导致产品在净化效果与去除异味方面表现平平,使用体验不佳,甚至可能带来二次污染风险,影响人体…

分布式 Data Warebase - 构筑 AI 时代数据基石

导读:作者以人类世界一个信息层次模型 DIKW 为出发点,引出对计算机世界(系统)处理数据过程的介绍。接着以一个民宿平台数据架构随业务发展而不断演进的过程,展示了这场信息革命中,在具体应用场景下&#xf…

如何将Latex的文章内容快速用word+Endnote排版

1 第一步 Endnote文件是无法直接导入bib文件的。需要将reference.bib的参考文献内容,通过JabRef软件打开并另存为refefence.ris文件 下载JabRef软件:https://www.jabref.org/#download 导出为ris格式文件 2 第二步 通过Endnote导入ris文件&#xff0…

[论文阅读] 异常检测 Deep Learning for Anomaly Detection: A Review(三)总结梳理-疑点记录

《深度异常检测综述》总结梳理 目录 一、研究背景与挑战二、深度异常检测方法分类三、实验评估四、结论在这篇文章中,**异常检测的异构性**主要从以下几个方面来理解:如何理解多源数据融合的困难“学习正常性的特征表示”与“用于特征提取的深度学习”在…

网络爬虫——爬虫项目案例

本节将全面讲解如何通过实战爬虫项目解决复杂问题。结合最新技术和实际开发需求,案例将涵盖完整开发流程,包括需求分析、实现代码、优化方法和常见问题解决。力求实现高效、可扩展的爬虫项目架构,帮助开发者提升实战能力。 案例 1&#xff1a…

实时质检-静音检测分析流程(运维人员使用)

前言 用户在实时质检时,开启了主叫或被叫静音检测功能,但是听录音时,主叫或被叫明明没有任何声音,但是通话没有被挂断。 说明主叫或被叫的静音阈值太低,导致系统没有把很小的声音认定为静音;或者检测非静音…

MetaGPT实现多动作Agent

异步编程学习链接 智能体 LLM观察思考行动记忆 多智能体 智能体环境SOP评审路由订阅经济 教程地址 多动作的agent的本质是react,这包括了think(考虑接下来该采取啥动作)act(采取行动) 在MetaGPT的examples/write_…

【MySQL】MySQL数据库基础

【MySQL】MySQL数据库基础 🥕个人主页:开敲🍉 🔥所属专栏:MySQL🍋 🌼文章目录🌼 1. 数据库基础 1.1 什么是数据库 1.2 主流数据库 1.3 MySQL基本使用 1.3.1 服务器,数据…

进程控制(详解)

一.进程创建 1.fork函数 在linux中fork函数是⾮常重要的函数&#xff0c;它从已存在进程中创建⼀个新进程。新进程为⼦进程&#xff0c;⽽原进 程为⽗进程。 #include <unistd.h>pid_t fork(void);返回值&#xff1a;⾃进程中返回0&#xff0c;⽗进程返回⼦进程id&…

RFSOC 49dr 开发板,支持12收5发

硬件支持: 1,12收5发 2.4X25G光模块 3.J30J扩展接口 4.支持多板同步&#xff0c;多TILE同步

生产制造领域的多元化模式探索

在当今全球化和信息化的时代背景下&#xff0c;生产制造领域正经历着前所未有的变革。随着消费者需求的多样化、市场竞争的加剧以及技术的不断进步&#xff0c;传统的生产制造模式已经难以满足现代企业的需求。因此&#xff0c;多种生产制造模式应运而生&#xff0c;以适应不同…

基于YOLOv8深度学习的智慧农业果园果树苹果类果实目标检测系统(PyQt5界面+数据集+训练代码)

随着智慧农业技术的快速发展&#xff0c;果园管理逐渐向自动化和智能化方向迈进&#xff0c;传统的果园管理方式面临着高成本、效率低以及人工依赖程度大的挑战。在这种背景下&#xff0c;基于人工智能的目标检测技术为果园管理提供了一种全新的解决方案。本研究设计并实现了一…

【泥石流;风险;脆弱性;风险评估;川藏公路北线|论文解读4】川藏高速公路北线泥石流风险评估

【泥石流&#xff1b;风险&#xff1b;脆弱性&#xff1b;风险评估&#xff1b;川藏公路北线|论文解读4】川藏高速公路北线泥石流风险评估 【泥石流&#xff1b;风险&#xff1b;脆弱性&#xff1b;风险评估&#xff1b;川藏公路北线|论文解读4】川藏高速公路北线泥石流风险评…

mysql的优化

1、概念 在应用开发的初期&#xff0c;由于数据量较小&#xff0c;开发人员更重视功能上的实现&#xff0c;随着应用系统上线后&#xff0c;数据量急剧增长&#xff0c;很多性能问题逐渐显现&#xff0c;对使用的影响也越来越大&#xff0c;此时这些问题语句就称为整个系统的性…

栈的应用,力扣394.字符串解码力扣946.验证栈序列力扣429.N叉树的层序遍历力扣103.二叉树的锯齿形层序遍历

目录 力扣394.字符串解码 力扣946.验证栈序列 力扣429.N叉树的层序遍历 力扣103.二叉树的锯齿形层序遍历 力扣394.字符串解码 看见括号&#xff0c;由内而外&#xff0c;转向用栈解决。使用两个栈处理&#xff0c;一个用String,一个用Integer 遇到数字:提取数字放入到数字栈…