(转自http://bbs.eeworld.com.cn/thread-370516-1-1.html)

对接口电路的一个很详细介绍。

接口设计
什么是接口? 接口是CPU和外设之间的连接设备,用于缓存和转发数据。

为什么需要接口? (1)解决主机CPU和外围设备之间的时序配合和通信联络问题
         主机的CPU是高速处理器件,比如8086-1的主频为10MHz,1个时钟周期仅为100ns,一个最基本的总线周期为400ns。而外围设备的工作速度比CPU的速度慢得多。如常规外围设备中的电传打字机传送信息的速度是毫秒级;工业控制设备中的炉温控制采样周期是秒级。为保证CPU的工作效率并适应各种外围设备的速度配合要求,应在CPU和外围设备间增设一个I/O接口电路,满足两个不同速度系统的异步通信联络。
          I/O接口电路为完成时序配合和通信联络功能,通常都设有数据锁存器、缓冲器、状态寄存器以及中断控制电路等。通过接口电路,CPU通常采用查询或中断控制方式为慢速外围设备提供服务,就可保证CPU和外围设备间异步而协调的工作,既满足了外围设备的要求,又提高了CPU的利用率。
    (2)解决CPU和外围设备之间的数据格式转换和匹配问题
             CPU是按并行处理设计的高速处理器件,即CPU只能读入和输出并行数据。但是,实际上要求其发送和接收的数据格式却不仅仅是并行的,在许多情况下是串行的。例如,为了节省传输导线,降低成本,提高可靠性,机间距离较长的通信都采用串行通信。又如,由光电脉冲编码器输出的反馈信号是串行的脉冲列,步进电动机要求提供串行脉冲等等。这就要求应将外部送往计算机的串行格式的信息转换成CPU所能接收的并行格式,也要将CPU送往外部的并行格式的信息转换成与外围设备相容的串行格式,并且要以双方相匹配的速率和电平实现信息的传送。这些功能在CPU控制下主要由相应的接口芯片来完成。
    (3)解决CPU的负载能力和外围设备端口选择问题
              即使是CPU和某些外围设备之间仅仅进行并行格式的信息交换,一般也不能将各种外围设备的数据线、地址线直接挂到CPU的数据总线和地址总线上。这里主要存在两个问题,一是CPU总线的负载能力的问题:二是外围设备端口的选择问题。因为过多的信号线直接接到CPU总线上,必将超过CPU总线的负载能力,采用接口电路可以分担CPU总线的负载,使CPU总线不致于超负荷运行,造成工作不可靠。CPU和所有外围设备交换信息都是通过双向数据总线进行的,如果所有外围设备的数据线都直接接到CPU的数据总线上,数据总线上的信号将是混乱的,无法区分是送往哪一个外围设备的数据还是来自哪一个外围设备的数据。只有通过接口电路中具有三态门的输出锁存器或输入缓冲器,再将外围设备数据线接到CPU数据总线上,通过控制三态门的使能(选通)信号,才能使CPU的数据总线在某一时刻只接到被选通的那一个外围设备的数据线上,这就是外围设备端口的选址问题。使用可编程并行接口电路或锁存器、缓冲器就能方便的解决上述问题。
             此外,接口电路可实现端口的可编程功能以及错误检测功能。一个端口通过软件设置既可作为输入口又可作为输出口,或者作为位控口,使用非常灵活方便。同时,多数用于串行通信的可编程接口芯片都具有传输错误检测功能,如可进行奇/偶校验、冗余校验等。

接口硬件包含哪些部分? (1)基本逻辑电路

  • 命令寄存器
  • 状态寄存器
  • 数据缓冲寄存器

(2)端口地址译码电路
根据地址总线上的信号确定是否选中该接口的某个寄存器(端口)
(3)供选电路
与其它部件的连接电路,如与中断控制器连接以实现中断方式的数据传送。

接口软件有什么功能? 一个完整的设备接口程序包括:
(1)初始化程序段
(2)传送设置程序段
(3)主控程序段
(4)结束程序段
(5)人机接口程序段
设备驱动程序就是一种标准化的接口软件。

接口电路有哪些形式?

  • 固定式结构:SSI,MSI (IC)
  • 半固定结构:GAL, PAL
  • 可编程结构:可编程芯片
  • 智能型结构:带微处理器

CPU如何与接口进行数据交换?

  • 查询方式: CPU<>接口           先确认外设已准备好,才进行传送
  • 中断方式: CPU<>接口           为避免不断读取状态位检查设备是否已准备好而造成等待循环,当输入设备准备好时,才向CPU发中断请求,CPU响应后转入执行中断服务程序。
  • DMA方式: 存储器<>接口     接口<>接口           存储器<>存储器

I/O端口什么是I/O端口?
CPU与外设通信时,传送的数据信息,状态信息和控制信息分别进入接口电路中不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为I/O端口(Port),CPU可对端口中的信息直接进行读写。

  • 数据端口:存放数据,是主机和外设之间交换的基本信息,长度一般为1-2字节,主要起数据缓冲的作用。
  • 状态端口:指示外设的当前状态,每种状态用1位表示,每个外设可以有几个状态位,由CPU读取以测试或检查外设的状态。最常用的状态位有准备就绪位(Ready),忙碌位(Busy)和错误位(Error)。
  • 命令端口:也称为控制端口,用来存放CPU向接口发出的各种命令和控制字,以便控制接口或设备的动作。常见的命令信息位有启动位,停止位,允许中断位等。

I/O端口编址方式数据信息,状态信息和控制信息的含义各不相同,但在微机系统中,CPU通过接口与外设交换数据时,只有输入(IN)和输出(OUT)两种指令,所以只能把状态信息和命令信息也都当作数据信息来传送。
I/O端口的编址方式: 存储器映象寻址方式和I/O指令寻址方式。

  • 存储器映象寻址方式(Memory Mapped I/O):把每一个I/O端口都看作一个存储单元,并与存储单元一样统一编址,可使用访问存储器映象的所有指令来访问I/O端口。
  • I/O单独编址方式:对系统中的输入输出端口地址单独编址,构成一个I/O地址空间,不占用存储空间,用专门的IN和OUT指令来访问这种具有独立地址空间的端口。8080/Z80/8088和8086等都采用此种方式。8086用地址总线的低16位来寻址I/O端口,可寻址的端口数最大可达到65536个。

I/O指令
如何访问I/O端口?通过执行I/O指令。
Intel 8086的I/O指令有哪些?
[plain] view plaincopy

  • IN AL, PORT8 ;AL《(PORT8)
  • IN AL, DX ;AL《(DX)
  • OUT PORT8, AL ;(PORT8)《AL
  • OUT DX, AL ;(DX)《AL

其中,PORT8表示8位端口地址, PORT16表示16位端口地址,AX可以替代AL。
例如,
[cpp] view plaincopy

  • MOV DX, 300H ; DX《300H
  • IN AL, DX ; AL《(DX)
  • MOV DX, 301H ; DX《301H
  • OUT DX, AL ; (DX)《AL
  • IN AX, 80H ; AL 《80H   AH 《81H

I/O端口地址译码原理

  • 如何在CPU执行I/O指令时可以访问到相应端口地址的I/O端口?设计I/O端口地址译码线路。
  • 如何设计I/O端口地址译码电路?通过地址总线和控制总线产生端口芯片的选择信号(CS)。

I/O端口地址译码电路分类

  • 端口地址译码电路的种类:
  • 固定式单端口地址译码 采用门电路或译码器进行译码,设计完毕后端口地址不能更改。
  • 可选式端口地址译码  通过比较器和译码器等组成,端口地址可以通过DIP开关进行更改。
  • 采用可编程逻辑阵列实现逻辑电路
固定式单端口地址译码(1)
固定式单端口地址译码(2)
固定式单端口地址译码(3)
3-8译码器译码电路

接口的输入输出方法(1)无条件传送方式
也称为同步传送方式,主要用于对简单外设进行操作。对这类外设,在任何时刻均已准备好数据或处于接收数据状态,如LED显示器的明灭控制(如下图所示)

(2)查询方式
执行读端口指令不断查询接口状态,若接口准备好, 则可以执行I/O指令输出数据到接口或或从接口读入数据。

(3)中断方式
接口准备好之后,便请求CPU中断现在执行的程序,转而为之服务。

(4) DMA方式
当外设有大量数据需要与主存储器交换时,DMA控制器向CPU申请接管总线,若成功,则控制外设与主存储器直接交换数

DMA方式读磁盘的过程

  • 系统启动时,3个开关打向上端,总线与CPU/存储器/外设连接,并由CPU来控制,进行DMA传输前,首先初始化8237A DMA控制器,设定传送数据的计数器,起始地址,DMA通道和传送方式。
  • CPU向磁盘控制器发出读盘命令,磁盘控制器读出数据。
  • 磁盘控制器准备好数据后,向DMA控制器发送一个DMA请求信号DREQ,DMA控制器送一个保持请求信号HRQ到CPU的HOLD输入端,CPU发回保持响应信号HLDA信号,中止当前程序运营。DMA控制器收到HLDA后,将3个总线开关置向下方,让总线与CPU脱开而与DMA控制器相连。
  • DMA控制器取得总线控制权后,通过地址总线向存储器发送地址信号,并向磁盘控制器发出DMA确认信号DACK。
  • DMA控制器使控制总线上IOR#和MEMW#信号有效,使得磁盘控制器能向数据总线输出数据字节,并使存储器单元能够被写入。
  • 完成一个字节传送后,DMA控制器自动修改内部寄存器的内容并指向下一个字节的地址,通过计数器的递减完成所有数据的传送。
  • DMA传送结束后,DMA控制器撤销它对CPU发出的保持信号HRQ,并释放总线。
  • CPU在每一个非锁定时钟周期结束后,都检测HOLD引脚看是否有DMA信号。

接口电路——原理,应用,分类,处理过程相关推荐

  1. 计算机组成原理DMA方式原理,计算机组成原理4(程序查询方式、程序中断方式、DMA方式及其I/O接口电路)...

    一.程序查询方式 1.程序查询方式的接口电路 2.符号说明 &与非门 B工作触发器 D完成触发器 3.程序查询工作过程(输入) (1)当CPU通过I/O指令启动输入设备时,该指令的设备码将通过 ...

  2. 计算机接口电路的种类,接口电路的分类_接口电路的功能_接口电路的作用是什么...

    描述 接口电路:计算机之间,计算机与外围设备之间,计算机内部部件之间起连接作用的逻辑电路.接口电路是CPU与外部设备进行信息交互的桥梁. 输入.输出接口电路也称为 I/O 电路(INPUT/Outpu ...

  3. 计算机接口电路的主要功能,接口电路的分类、功能及作用

    接口电路:计算机之间,计算机与外围设备之间,计算机内部部件之间起连接作用的逻辑电路.接口电路是CPU与外部设备进行信息交互的桥梁. 输入.输出接口电路也称为 I/O 电路(INPUT/Output), ...

  4. c语言实现同步四位加法计数器,八进制计数器设计方案汇总(四款模拟电路原理实现过程)...

    今天小编要和大家分享的是八进制计数器,计数器相关信息,接下来我将从八进制计数器设计方案汇总(四款模拟电路原理实现过程),试用4位同步二进制加法计数器74161采用置数法构成十进制计数器 二这几个方面来 ...

  5. 4x4矩阵键盘工作原理及扫描程序_基于复杂可编程逻辑器件实现键盘接口电路的设计...

    1 引言 无功补偿装置是用于补偿电网无功功率的不足,提高功率因数,保证供电系统安全运行和节约电能的设备,其核心是控制仪.本控制仪集无功补偿.电度量计量.电能质量监测及通信于一体,对电网参数进行实时采样 ...

  6. bobsmith电路阻抗原理_网口接口电路的EMC设计.ppt

    网口接口电路的EMC设计 关键芯片的EMC设计 原因说明: 信号的传输延时小于信号上升沿的1/6时,不是传输线,可以不用增加匹配电阻:当大于信号上升沿的1/6时,则为传输线,需要加匹配电阻. 同上. ...

  7. S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)

    S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A) S3C2440内部集成了一个Nand flash控制器.S3C2440的Nand flash控制器包含了如下的特性: l ...

  8. 什么叫做数字功放?它的电路原理是什么?

    什么叫做数字功放?它的电路原理是什么? 数字功放是什么?数字功放就是数字音频功率放大器,它放大的是0与1的数字信号,而我们熟悉的模拟功放,它放大的是在时间轴上连续变化的电压或电流信号,其信号的幅度与声 ...

  9. 电路设计基础--光耦接口电路的设计和参数选取--高速光耦TLP109

    对于开发工程师来说,看芯片的技术手册是基本功,本例就以光耦的电路为例来讲解一下基本的电路设计过程. 光耦介绍 光耦常用于电气隔离,以免外部进来的信号中混有高压,大电流等脉冲,烧坏我们自己的电路或芯片. ...

最新文章

  1. Dockerfile 布局的良好实践
  2. 【区块链基础知识系列】 第8课 区块链之零知识证明
  3. 默认路由-静态路由-动态路由
  4. tfds.load()和tf.data.Dataset的简介
  5. axios的请求配置
  6. struts2下的Action配置的各项默认值
  7. 第一篇 mybatis的简介
  8. wxPython:当密码账号输入正确,登录界面消失并显示主界面
  9. webpack4+node合并资源请求, 实现combo功能(二十三)
  10. 谁用光了磁盘?Docker System命令详解
  11. win10系统QQ音乐安装包无法打开解决方法!
  12. linux配置dhcp服务器authoritative参数作用
  13. 互联网保险投诉量翻倍 众安与安心财险上榜
  14. 抖音短视频的用户来源和活跃时间
  15. 当前应用拦截NFC响应,不弹出选择框教程
  16. 计算机专业会涉及数学吗,数学不好的人还适合学计算机吗?
  17. 手机andriod 开发---android test的执行
  18. Oozie报错Py4JJavaErrornbsp;Secu…
  19. 教你如何一键下载汽车之家作者的所有无水印视频
  20. winform显示中国农历

热门文章

  1. JS判断字符串中的内容是否为纯数字
  2. Linux·Linux-kernel镜像内核源码下载
  3. 技术管理工作中的三个原则
  4. CDH6.3.1安装指南
  5. iOS开发中拉伸图片的几种方式
  6. MySQL使用cmd输入show databases没有反应
  7. 因为你是我的英雄音译_我可以成为你的英雄宝贝
  8. python爬虫实战小项目
  9. 二分查找法及二分搜索树及其C++实现
  10. ROS工业机器人和工业自动化竞赛ARIAC 2021即将启动