第四章 数据传输与输入输出接口
第四章 数据传输与输入输出接口
CPU与外设之间的数据传输,没有地址总线,是以接口芯片通过中转、桥接的方式来进行的。
有三种方式可以进行CPU与数据的联系:
查询、中断和直接存储器存取(DMA)。
查询:由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息。这个查询方式的弊端是如果设备状态未就绪CPU就会一直踏步等待,影响CPU的执行效率。
中断:CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只在设备准备就绪并向CPU发出中断请求后予以响应。这样可以避免CPU出现“踏步”现象,提高CPU的利用率。
只有收到I/O设备的请求后才会将从接口读数据至CPU再至主存(依赖中断程序服务ISR实现),依次循环直到数据传输完成。
中断的过程:
设备发出中断请求给CPU,CPU在每个总线周期内检测中断请求,并给予相应的中断许可(禁用中断:阻止其他的中断信号 保存中断点 程序转到设备设定的中断处理程序的首地址),接着保护现场(终端服务程序保存环境,开放中断流程,检索环境)
最后中断返回
8086/8088中断
- 8086用8位二进制码表示一个中断类型,一共有256个中断
- 中断分为外部中断和内部中断
- 8086中断向量表:中断类型号与对应的终端服务函数入口地址的换算表
- 每个中断类型对应一个中断向量,由四个字节组成
- 高地址字节:存放中断服务程序的代码段的段址
- 低地址字节:存放中断服务程序的偏移地址
- 地址范围:
- 00000H - 03FFFH
- 每个中断类型对应一个中断向量,由四个字节组成
直接存储器存取:
DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。通常系统总线是由CPU管理的,在DMA方式中,就希望CPU把这些总线让出来,即CPU连到这些总线上的线处于第三态(高阻状态),而由DMA控制器接管,控制传送的字节数,判断DMA是否结束,以及发出DMA结束信号。
适用于高速数据传输。
8253定时器和计数器
控制字寄存器
先写低8位,再写高8位。
六种工作方式
mode 0:计数结束中断
- 计数器写完计数值时,开始计数(软件触发),相应的输出信号OUT就开始变成低电平。当计数器减到零时,OUT立即输出高电平。
- 门控信号高电平时,计数器工作;为低电平时,计数器停止工作,计数值保持不变
- 在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数值重新工作,可实现重复计数功能
mode 1:可编程单稳脉冲
- 写入计数初值后,计数器开始工作。门控信号GATE上升沿有效,才开始工作(硬件触发),使输出OUT变成低电平,直到计数器减到0后,输出才变高电平。
- 在计数器工作期间,当GATE又出现一个上升沿时,计数器重新装入原计数初值并重新开始计数
- 如果工作期间对计数器写入新的计数初值,则要等到当前的计数值记满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作
mode 2:分频器
- 一次设置计数初值,计数器可自动重复进行减“1”操作,减“1”计数回“0”,可以输出端输出一负脉冲信号
- 写入计数初值后,GATE为高开始工作,计数器为0时,OUT输出一个时钟脉宽的负脉冲后自动回复高电平;同时自动重新装入原计数初值,反复计数
- 如果工作期间对计数器写入新的计数初值,则要等到当前的计数值记满回零后,才按新写入的计数初值开始工作
- 在计数器工作期间,当GATE为低则停止计数,待GATE恢复后计数器重新装入原计数初值并重新开始计数
mode 3:方波输出
- 方式3工作方式与方式2基本相同,也具有自动装入时间常数(计数初值)的功能
- 不同之处在于:工作在3方式,引脚OUT输出的不是一个时钟周期的负脉冲,而是占空比为1:1或近似1:1的方波。当计数值为偶数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平;为奇数时高电平比低电平宽一个时钟脉冲
mode 4:软件触发选通
- 输出OUT就开始变为高电平,GATE为高时,当写完计数值后开始计数。当计数器减到零后,OUT输出一个宽度为一个时钟脉冲的负脉冲,然后恢复高电平,并一直保持高电平
- 门控信号GATE为高电平时,计数器工作,为低电平时,计数器停止工作,恢复为高电平后计数器又从原装入的计数初值开始减1工作。
- 在计数器工作期间,如果重新写入新的计数初值,不影响当前计数状态,仅当当前计数值记完后,计数值才按写入的计数值工作
mode 5:硬件触发选通
- 由GATE上升沿触发计数器开始工作
- 当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数
- 在计数过程中(或者计数结束后),如果门控信号再次出现上升沿,计数器将从原装入的计数初值重新计数
8255A并行芯片
- 控制寄存器一般是放在最后一个地址上。
芯片结构:
- 数据总线缓冲:
D7-D0
和系统数据总线相连,负责与CPU进行数据交换。包括输入输出数据、控制字和状态字 - 读写控制逻辑:读写信号、片选信号,
A1A0
为端口选择输入引脚(ABC口) - A组控制和B组控制:A组控制端口A和端口C的高4位,B组控制端口B和端口C的低4位
- 端口A、B、C:它们对外的引线分别是
PA7~PA0
、PB7~PB0
和PC7~PC0
。C口可分成两个4位的端口:C口高4位(PC7~PC4
)和C口低4位(PC3~PC0
)。
三种工作方式:
方式0:基本输入输出方式
- 适用于无条件传输方式
- 输入时有锁存能力,输出时没有
方式1:选通输入输出方式
- 适用于程序查询和中断控制方式
- A口和B口通常用于I/O数据传送,C口用作A口和B口的联络线,以中断方式传送数据
- 在方式1下,A口、B口都可以选通输出数据,C口的6条线作为选通控制信号:
PC3、PC6、PC7
配合A口,PC0、PC1、PC2
配合B口;
方式2:双向传输方式
- 只有A口可以工作在这种方式下
- A口的输入输出均具有数据锁存能力,数据的输入输出均可以引起中断
- 适用于程序查询和中断控制方式
- 这时B口可以工作在方式0或方式1,C口剩余的3条线可以作为输入输出线或方式1下的控制线。
应用:动态显示与矩阵键盘
PC7 - PC4
表示行,PC3-PC0
表示列,11011101
表示第2行第2列被按下。
串行通信的特点
- 串行通信是指数据按位传输的一种通信方式
- 适用于远距离通信
- 按照收发双方的时钟是否统一,可以分为同步传输和异步传输
串行通信的传输过程(异步字框)
在异步方式下,收发两端各自有相互独立的位定时时钟,数据的传输速率是双方约定的。收发双方利用数据本身来进行同步,当双方时钟偏差不大时,只要一个同步周期内的位时钟不超过1个传输位,就可以满足正确接收的条件。
一帧信息是由起始位、数据位、奇偶校验位和停止位四部分组成的。
- 起始位:是在高电平后的一位宽的低电平,其下降沿表征了时钟关系,通知接收方传输开始
- 数据位:5位至8位,具体由双方通过软件约定
- 校验位:进行数据的奇偶检查;也可以不用
- 停止位:可以是1位、1位半或者2位,具体由收发双方约定。高电平有效,即停止位高电平表明一个字符的结束
异步串行通信通常会标识以下错误
- 奇偶校验错:接收器按照1的个数是奇数或者偶数进行奇偶校验计算,与期望值进行比较;不一致时可以中断或者查询;不禁止接口器件的工作
- 帧错:以起始位开头,停止位结束的二进制序列为一帧。接收器没有接收到足够的停止位即为帧错,有很多原因,如接收器或发送器的问题、传输线路上的干扰或者发送时钟误差超过允许值等。只报错不指明原因
- 溢出错:微处理器不能及时把移位寄存器中的数据取走,后一个数据会覆盖前一个数据
中断或者查询;不禁止接口器件的工作
- 帧错:以起始位开头,停止位结束的二进制序列为一帧。接收器没有接收到足够的停止位即为帧错,有很多原因,如接收器或发送器的问题、传输线路上的干扰或者发送时钟误差超过允许值等。只报错不指明原因
- 溢出错:微处理器不能及时把移位寄存器中的数据取走,后一个数据会覆盖前一个数据
RS-232逻辑电平是反过来的
第四章 数据传输与输入输出接口相关推荐
- C语言程序设计教程_第四章:键盘输入与屏幕输出_笔记整理
第四章 键盘输入与屏幕输出[
- 计算机控制技术及应用第四章,计算机控制技术及工程应用第四章课件.ppt
<计算机控制技术及工程应用第四章课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机控制技术及工程应用第四章课件.ppt>文档请在天天文库 ...
- 第四章 输入输出设备
第四章 输入输出设备 1 概述 1.1 分散连接 外部设备和主机之间的连接采用分散连接的方式,CPU 和 I/O设备串行工作,采用程序查询方式. 也就是每个设备都有专门的控制线路,这些控制线路甚至和C ...
- 【微机原理与接口技术】--第六章--基本输入输出接口技术
基本输入输出接口技术 一.并行通信 二.串行通信 三.串行通信方式 及异步通信协议 四. 波特率 五.串行异步通信标准接口 RS-232简单连接示意图 可编程串行通信接口芯片 16550与8250 8 ...
- cc2530定时器和捕获比较_ALIENTEK 阿波罗 STM32F767 开发板资料连载十四章 输入捕获实验...
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 http://weixi ...
- stm32f767串口下载软件_ALIENTEK 阿波罗 STM32F767 开发板资料连载十四章 输入捕获实验...
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第十四章 输入捕获实验 ...
- [计网:原理与实践] 第四章:网络互联(课后习题整理)
第四章 网络互联 4-1 什么是异构网络?异构网络互联有哪些不同的方法?因特网采用了怎样的中继系统方式? 网络发展初期,许多计算机公式分别推出了具有专门规范的计算机网络.这些计算机网络在体系结构和 ...
- 【正点原子FPGA连载】第二十四章HDMI彩条显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...
- 通信网络基础期末复习-第四章-多址接入协议
文章目录 第四章 多址技术 4.1 多址协议概述 4.1.1 MAC层在通信协议中的位置 4.1.2 多址协议的分类 4.1.3 系统模型 4.2 固定多址接入协议 4.2.1 频分多址接入(FDMA ...
最新文章
- java培训机构如何选择适合自己的
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式...
- 清北学堂dp图论营游记day4
- 【华为云技术分享】手把手教你如何在ARM上源码编译Redis
- 异步Udp监听关闭 出现异常,访问已释放的资源或者其他错误的解决方法
- List转换为数组Array的方法
- ZStack 3.6.0发布:支持云主机从KVM云平台在线迁移至ZStack
- 【京东助手】滑稽东试用助手 V1.6.0
- 【爬虫实战】利用scrapy框架爬取豆瓣图书信息
- 同方知网阅读器_汪总对峙众粉丝!透露为何加入凌烟阁?澄清塌哥,汪总平台号 一个办公室?大姐刺激汪总退网?...
- 解决双屏显示不一致的问题
- 高等数学学习笔记——第八十九讲——高斯公式
- 【论文笔记】RETHINKING NETWORK DESIGN AND LOCAL GEOMETRY IN POINT CLOUD: A SIMPLE RESIDUAL MLP FRAMEWORK
- Echarts漂亮水滴图
- 口袋理财:“来了就是深圳人?”全国均价最高的房租了解一下
- 人脸识别门禁的那些“坑”,你中招了吗?
- Cocos适配带虚拟导航栏手机(HUAWEI 荣耀6 Plus)
- lol哪个服务器能玩无限火力,lol无线火力玩什么快乐?无限火力最快乐的英雄排行...
- Java SE 基础知识
- linux下的屏幕录像软件罗列
热门文章
- 多少年前现在依旧爆火的游戏——星际战甲
- 期货股票量化软件:第三代神经网络深度网络
- .net创建CAD多重引线,引线中顶点修改问题
- vue.js v-for遍历对象
- 如何在 iPhone 和 iPad 上关闭自动更正?
- html怎么让爱心闪动,css画爱心并实现“爱心跳动”
- Linux源码 哪个版本,有没有办法将不同版本的linux源码合并
- 企业微信最直接有效的裂变玩法你了解吗?
- 细节炸裂,字节官网首发Leetcode刷题手册被泄露,Github一天登顶
- 鸿蒙系统对家庭,华为:鸿蒙系统远不止手机能用,目标是3亿台