第六章——并行接口技术
并行通信与并行接口概述
并行通信就是把一个字符的各位用几条线同时进行传输。实现并行通信的接口就是并行接口,下图的并行接口用一个通道和输入设备相连,另一个通道和输出设备相连,每个通道都配有一定的控制线和状态线。
输入过程:
1.外设将数据送给接口,状态线“数据输入准备好”拉高。
2.接口把数据接收到输入缓冲寄存器中的同时,使“数据输入响应”线作为对外设的响应。
3.外设接到响应后,撤除“数据输入准备好”信号。
4.数据到达接口后,状态寄存器设置“输入准备好”,以便CPU对其进行查询,接口也可以通过外部连线向CPU发送一个中断请求。
5.CPU从并行接口读取数据后,接口会自动清除状态寄存器中的“输入准备好”状态位,并使数据总线处于高阻状态,以便下一个输入过程。
输出过程:
1.外设从接口取走一个数据后,接口就会将状态寄存器中的“输出准备好”状态位置1,表示CPU可以往接口传输数据,这个状态位可供CPU进行查询。此时,接口也可以通过外部连线向CPU发一个中断请求。故CPU既可以用软件查询的方式,也可用中断方式往接口中输出一个数据。
2.当CPU输出的数据到达接口的输出缓冲器之后,接口会自动清除“输出准备好”状态位,接口往外设发送一个“数据输出准备好信号”来启动外设接收数据。
3.外设收到启动后,便收取数据,并往接口发一个“数据输出响应”信号。
4.接口收到信号后,会将状态寄存器中的“输出准备好”状态位重新置1,以便CPU输出下一个数据。
可编程并行通信接口8255A
概述:8255A是Intel系列的并行接口芯片,由于它是可编程的,可通过软件来设置芯片的工作方式,所以,用8255A连接外设时,通常不需要附加外部电路。
8255A的内部结构
1.数据端口A、B、C
2.A组控制和B组控制
一方面接受芯片内部总线上的控制字,一方面接受来自读/写控制逻辑电路的读/写命令,据此决定两组端口的工作方式并实现读/写操作。
3.读/写控制逻辑电路
负责管理8255A的数据传输过程。它接受来自CPU的信号,将这些信号进行组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。
4.数据总线缓冲器。
8255A的芯片引脚信号
注:A1、A0为端口选择信号。8255A有3个数据端口和1个控制端口。规定当A1,A0为00时,选中A端口;01时选中B端口;10时选中C端口;为11时选中控制口。
8255A的控制字
8255A用指令在控制端口中设置控制字来决定其工作。
控制字分为两类。
一类是各端口的方式选择控制字,可使8255A的3个数据端口工作在不同的方式。方式选择控制字常常将3个数据端口分为两组来设定工作方式,即端口A和端口C的高4位作为一组,端口B和端口C的低四位作为一组。
另一类是C端口的按位置1/置0控制字,它可使C端口中的任何一位进行置位或复位。
方式选择控制字
端口A可工作在三种工作方式中的任何一种,端口B只能工作在方式0或方式1,端口C常常配合端口A和端口B工作,为这两个端口的输入/输出传输提供控制信号和状态信息。
例:
端口A方式0,输出;
端口B方式0,输入;
端口C的高四位,输出;
端口C的低四位,输入;
控制字:1000 0011 即38H
端口C置1/置0控制字
8255A的端口C中的各位均可用置1/置0控制字单独设置,这使其很适合作为控制位使用。
1.D0位决定了是置1还是置0.。如为1,则对端口C中某位置1,为0,则对端口C中某位置0.
2.D3、D2、D1位决定了对C端口中的哪一位进行操作。
例:若要对端口C的PC7位置1,则控制位为00001111B,即0FH。
8255A的工作方式
方式0
也叫基本输入/输出方式。端口A和端口B可通过方式选择字规定为输入端口或输出端口,端口C分为两个4位端口,高4位为一个端口,低4位为一个端口。这两个4位端口也可以通过方式选择字规定为输入或输出端口。
特点:
1.任何一个端口可作为输入端口,也可作为输出端口
2.各个端口的输入或输出,可以有16种不同的组合
使用场合:
1.同步传送,此时发送方和接受方由一个时序信号来管理,所以,双方互相知道对方的动作,不需要应答信号,此时,对接口的要求很简单,只要可以传送数据即可。因此,三个数据端口都可以传输数据。
2.查询式传送,需要由应答信号。此时将端口A和端口B作为数据端口,把端口C的高4位或低4位规定为输出端口,用来输出一些控制信号,把端口C的另外4位规定为输入端口,用来读入外设的状态。
应用举例:
此例中,8255A作为连接打印机的接口,工作于方式0。
工作过程为:
当主机要往打印机输出字符时,先查询打印机忙信号,如打印机正在处理一个字符或正在打印一行字符,则忙信号BUSY为1,反之,忙信号为0。故当查询到忙信号为0时,可通过8255A往打印机输出一个字符。此时,要将选通信号STB 置成低电平,然后再使STB为高电平,这样,相当于在STB端输出一个负脉冲,此负脉冲作为选通脉冲将字符送到打印机输入缓冲器中。
现将A端口作为传送字符的通道,工作于方式0,输出方式;B端口未用;端口C也工作于方式0,PC2作为BUSY信号输入端,故PC3PC0为输入方式,PC6作为STB信号输出端,故PC7PC4为输出方式。
端口地址:
A:00D0H B:00D2H
C:00D4H 控制口:00D6H
PP:
1.设置控制字10000001B,A工作于方式0,输出;C高四位输出,低四位输入。
LPST1:
1.读取C端口的数据。
2.检测第3位,即PC2,若为1,继续查询。
3.设置控制字00001101B,拉高PC6。
LPST:
1.读取C端口的数据。
2.检测第3位,即PC2,若为1,继续查询。
3.将需要打印的字符存入AL。
4.将AL中的数据送到端口A。
5.设置AL为00001100B。
6.利用控制字的置C,将PC6拉低。
7.使AL加1.
7.PC6拉高。
方式1
也叫选通的输入/输出方式。和方式0相比,最重要的差别是A端口和B端口用方式1进行输入/输出传输时,端口C自动提供选通信号和应答信号,这些信号与端口C的若干位有着固定的对应关系,这种关系不是程序可改变的,除非改变工作方式。
特点:
1.端口A和端口B可分别作为两个数据端口工作在方式1,并且,任何一个端口可作为输入端口或输出端口。
2.如果端口A和端口B只有一个工作于方式1,那么,端口C中就有3位被规定为配合方式1工作的信号,此时,另一个端口可工作在方式0,端口C中的其他位也可工作在方式0,即作为输入或输出。
3.如果端口A和端口B都工作在方式1,那么,端口C中就有6位被规定为配合方式1工作的信号,剩下的2位仍可作为输入或输出。
(1)输入
STB :选通信号输入端,低电平有效。它由外设送往8255A,当STB有效时,8255A接收送来的一个8位数据,从而8255A的输入缓冲器中得到一个新的数据。
IBF:缓冲器满信号,高电平有效。它是8255A输出的状态信息,有效时,表示当前已有一个新的数据在输入缓冲器中,此信号供CPU查询用。IBF信号是由STB使其有效的,而由读信号RD 的后沿即上升沿使其复位。
INTR:8255A送往CPU的中断请求信号,高电平有效。INTR端在STB、IBF均为高时被置为高电平,从而可以向CPU发出中断请求信号。在CPU响应中断读取输入缓冲器中的数据时,由读信号RD 的下降沿将INTR降为低电平。
INTE:中断允许位。对PC4置1,则使A端口处于中断允许状态(我猜内部存在上拉?)。对PC2置1,则使B端口处于中断允许状态。
时序:
(2)输出
OBF :输出缓冲器满信号,低电平有效。OBF由8255A送给外设,当OBF有效时,表示CPU已向指定的端口输出了数据,所以,OBF是8255A用来通知外设取走数据的信号。OBF由写信号WR 的上升沿置成低电平,由ACK的有效信号使它恢复为高电平。
ACK:外设响应信号,由外设送给8255A,低电平有效。当ACK有效时,表明CPU通过8255A输出的数据已送到外设。
INTR:中断请求信号,当输出设备从8255A端口中提取数据,从而发出ACK信号后,8255A便向CPU发新的中断请求信号,以便CPU再次输出数据。所以,当ACK为高, OBF为高时,INTR便成为有效电平,而当WR 的下降沿来到时,INTR变为低电平。
INTE:中断允许位。PC6为1使端口A的INTE为1,PC2为1使端口B的INTE为1。
时序:
方式1的使用场合:
在方式1下,规定一个端口作为输入端口或输出端口的同时,自动规定了有关的控制信号和状态信号,尤其是规定了响应的中断请求信号。这样,在采用中断方式进行输入/输出 的场合,如外设能为8255A提供选通信号或数据接收应答信号,那么常常使8255A的端口工作于方式1。
应用举例:
此例中,8255A工作于方式1,作为用中断方式工作的打印机的接口。
8255A的A端口作为数据通道,工作在方式1,输出方式,此时,PC7自动作为OBF 信号输出端,PC6自动作为ACK 信号输入端,而PC3自动作为INTR信号输出端。
方式2
也叫双向传输方式。
特点:
1.只适用于端口A。此时,CPU对连在A端口的外设既可读,也可写,比如用于磁盘读写。
2.端口A工作于方式2时,端口C用5个数自动配合提供控制信号和状态信息。
方式2的控制信号和状态信号:
当端口A工作于方式2时,端口C中的PC3~PC7共5位分别作为控制信号和状态信号端。
INTE1和INTE2为中断允许位,分别由PC6和PC4软件决定。
端口A工作在方式2时,输入过程和输出过程的顺序以及各自的次数是任意的。
方式2的使用场合:
如果一个并行外设既可以作为输入设备,并且输入/输出动作不会同时进行,那么,将这个外设和8255A的端口A相连,并使 它工作在方式2,就非常合适。比如,磁盘驱动器就是这样一个外设,主机既可往磁盘输出数据,也可从磁盘输入数据,但数据输出过程和数据输入过程总是不会重合,所以,可将磁盘驱动器的数据线和8255A的PA7 ~ PA0相连,再使PC7 ~ PC3和磁盘驱动器的控制线及状态线相连即可。
第六章——并行接口技术相关推荐
- 计算机原理与应用第六章——总线技术
第六章--总线技术 文章目录 第六章--总线技术 一.总线的基本概念 (一)总线的概念 (二)具体读写操作 (三)实例:PC XT总线 (四)总线的性能指标 (五)总线时序 (六)串行总线 (七)总线 ...
- 软考网络管理员学习笔记6之第六章互联网技术
第六章.互联网技术 考点1.IP地址分类 [考法分析] 本考点的基本考法是考察A.B.C.D四类IP地址的区分,公网地址和私网地址的区分,以及哪些地址可以做源地址,哪些地址可以做目的地址 [要点分析] ...
- 信安软考——第六章 认证技术原理和应用 笔记记录
信息安全工程师教程笔记汇总(点我跳转呀(❁´◡`❁)) 认证概述※ 认证语认证过程 认证技术方法※ 认证主要产品于技术指标 认证技术应用 相对而言,就第一节和第三节比较重要,其它的熟 ...
- 第六章网络应用技术(比较简单)
网络应用技术 一. 网络应用概述 网络应用 是直接面向计算机网络的用户,遵循相应的网络应用协议,为用户提供某个特定的网络服务或功能的一套完整的软件系统 1. 客户机/服务器模式 客户机/服务器模式 在 ...
- 【软考数据库】第六章 数据库技术基础
目录 6.1 基本概念 6.1.1 关于数据的基本概念 6.1.2 数据库管理系统的功能 6.1.3 数据各个发展阶段的特点 6.1.4 数据库系统的体系结构 6.2 数据模型 6.2.1 三级模式两 ...
- 【软考】 信息安全工程师教程 第六章 认证技术原理与应用
目录 6.1 认证概述 6.1.1 认证概念 6.1.2 认证依据 6.1.3 认证原理 6.1.4 认证发展 6.2 认证类型与认证过程 6.2.1 单向认证 6.2.2 双向认证 6.2.3 第三 ...
- 数据结构笔记 第六章 查找技术
查找技术 在计算机科学中定义为:在一些(有序的/无序的)数据元素中,通过一定的方法找出与给定关键字相同的数据元素的过程叫做查找.也就是根据给定的某个值,在查找表中确定一个关键字等于给定值的记录或数据元 ...
- 山东专升本计算机第六章-数据库技术
数据库技术 SQL数据库与NOSQL数据库的区别 数据库管理系统 考点 6 数据库管理系统的组成和功能 组成 • 模式翻译 • 应用程序的翻译 • 交互式查询 • 数据的组织和存取 • 事务运行管理 ...
- 软件工程——理论、方法与实践 第六章
第六章 面向对象技术是软件工程领域中的重要技术.主要讲 1.面向对象方法概述,面向对象=对象+类+继承+通信,然后介绍了其发展历史,,面向对象的软件工程方法分为面向对象分析.设计.编程.测试.维护. ...
最新文章
- 在网络推广外包中企业网站排名优化在网络推广外包中如何实现?
- (转)浅谈HTML5与css3画饼图!
- 【Linux 内核 内存管理】Linux 内核内存布局 ③ ( Linux 内核 动态分配内存 系统接口函数 | 统计输出 vmalloc 分配的内存 )
- 计算机专业人士读好书(30本经典)
- 服务发现框架选型,Consul还是Zookeeper还是etcd
- docker常用命令_docker常用命令整理
- python module错误_python 解决方法:ImportError: No module
- 电影'社交网络'获金球奖最佳影片,最佳编剧,最佳导演,最佳配乐奖
- java远程桌面_java – 实现远程桌面共享解决方案
- 关于神舟笔记本电脑结束睡眠后耳机没声音的解决方法
- 撇开PUE,评估数据中心增长的真正环境影响
- 广州大学数据结构实验一
- SpringBoot接入支付宝沙箱返回支付二维码
- 使用css和js实现刮刮乐(简单易懂还有趣)
- 天天拍车:2018年度个人卖车大数据报告
- 嵌入式开发—矩阵键盘原理及程序设计
- android13(T) 通过烧写客制分区(customer)实现替换默认壁纸
- 无法打印,必须将PrintToFileLicense属性设置到一个有效的许可证之后才可以打印
- 电子邮件相关_邮件传输协议简单了解
- 蓝桥杯STM32学习之G431、F103基础知识(二)
热门文章
- Java 算法 聪明的美食家
- python禁用警告
- Centos7 修改、更换源
- python报错:Cannot run the event loop while another loop is running
- mysql 创建用户并授权_教你MySQL-8.0.x数据库授权
- netty mysql 中间件_Cobar_基于MySQL的分布式数据库服务中间件
- 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。...
- CF1062E Company
- java开发C语言编译器
- 进程 线程 用户控件