接口的抽象与实现(概述)

概述

我们先建立一个整体的接口格局观,建立知识地图,了解接口的大概面貌。
在这里插入图片描述
整体来说,就这点事儿,4个箭头代表了所有!

  • 三个器件
  • 4个箭头

把这几个都想明白,就完事儿了。

第一层(顶层)抽象:接口是CPU与外设的桥梁

在这里插入图片描述CPU不能直接控制外设,所以加了一个中介,进而间接地控制外设

接口芯片就是辅助CPU与外界交互的。

第二层抽象:桥梁的具体功能

那么接口芯片这个桥梁能够干啥?

毫无疑问,分为两部分(分开看

  • CPU与接口的交互
  • 外设与接口的交互

当然最终目的,还是CPU与外设的交互。

交互的内容是什么?

  • 二进制数据

交互的信息是什么?

  • 数据
  • 控制
  • 状态

至于具体内容是什么,取决于实际,这里不展开,总之记住

分开看,找联系

三个器件,两个部分,多种关联。

第三层抽象:桥梁的大致构成

  • 数据:CPU <–> 接口 <–> 外设
  • 控制:CPU --> 接口
  • 状态:接口 --> CPU

接口芯片就是个简化的改进的CPU,接口是CPU的小弟

这里针对多功能可编程接口

接口CPU
控制字指令
寄存器寄存器
读写控制寄存器读写控制
地址控制寄存器地址控制
ALU运算
数据读写数据读写
串并转换
数模转换

通过对比,很容易就知道,CPU与接口芯片,整体来说差不多,但是有一些CPU能干接口不能干的,有一些接口能干CPU不能干的。

毕竟,小弟没有老大厉害,但是老大也不可能拥有小弟的全部技能。

但是宏观上来说,对多功能可编程接口的理解,跟CPU是类似的,这个逻辑要明白。

另外,接口的控制字,更像是一种类似于多路选择器的功能选择,它是一种编码,但是远比指令编码的含义要简单地多。

并且,我们知道,CPU被称作芯片,而接口被称为接口芯片,都是芯片,总是类似的~

第四层抽象:CPU与接口的交互

CPU给接口发的:

  • 控制信息
    • 控制字
    • 其他(读写控制)
  • 外设数据

接口给CPU发的:

  • 状态信息
  • 外设数据

第四层抽象:接口与外设的交互

接口给外设发的:

  • 外设数据
  • 查询外设

外设给接口发的

  • 外设应答

第五层抽象:具体接口芯片功能分析

后面把重点的几个芯片分析一下就好,根据内些芯片的设计思想,之后你就可以构建自己想要的“小弟”了。

第六层抽象:驱动程序 — 使用汇编指令控制接口

CPU使用指令编码,去给接口发送二进制信息,可能是

  • 外设数据
  • 控制字数据
  • 读写控制
  • ……

总之就是,硬件底层逻辑设计好了,现在需要软件层次的,上层策略的设计和控制了,此时,底层是被屏蔽了的,只是一个黑箱。

第七层实现:接口芯片的设计与实现

大哥!你连CPU都会设计了,接口芯片不会吗?可能唯一麻烦的就是数模转换的部分,内个先不考虑,至少在数字部分,你肯定可以实现一些想要的接口芯片的。

大哥没空干的,就设计个小弟,让他来干!大哥只需要发号施令就行了。

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

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

相关文章

从功能层次,阐述CPU、接口和外设之间的交互

我们从功能抽象层次&#xff0c;阐述一下CPU、接口芯片和外设之间的交互情况&#xff1a; 三个器件4个箭头 我们依次将其描述清楚。 数据 箭头①和③ CPU给接口可以发送数据&#xff0c;然后接口暂存数据&#xff0c;之后再发给外设&#xff0c;这就是数据缓冲。 发送的数…

【接口技术】8086的IN和OUT指令

x86采用独立编址的方式&#xff0c;IO端口地址和存储器地址是分开的。 对于IO存储器访问&#xff0c;需要使用独立的IO指令&#xff0c;也就是IN和OUT 两类地址 地址空间大小在8位以下地址空间大小在16位以下 两种格式 对于两类不同的地址&#xff0c;IO指令的格式不一样。…

Vivado工程文件分类

只需要在创建的时候&#xff0c;选择自定义路径即可&#xff0c;最好在原有的new文件夹下新建文件夹。 至于路径的匹配&#xff0c;可以自己试试&#xff0c;在原有默认new下创建文件夹&#xff0c;选中新的文件夹后&#xff0c;内部的Verilog文件可以访问外部new文件夹的文件&…

【微机原理与接口技术】具体芯片(1)并行接口8255A(1):全局观

并行接口8255A 首先&#xff0c;它是传输并行数据的&#xff0c;与CPU一样&#xff0c;然后&#xff0c;它是可编程的&#xff0c;也是多功能的&#xff0c;CPU可以对其进行一些控制。 管脚 先从最宏观层面分类 一部分引脚与外设相连一部分引脚与CPU相连GND和Vcc 注意&…

【微机原理与接口技术】多功能可编程芯片 与 多功能电饭煲

多功能可编程芯片&#xff0c;就像你的多功能电饭煲&#xff0c;你点了不同的按键&#xff0c;就启动了不同的工作方式&#xff0c;是熬粥还是做米饭&#xff0c;之后你又得选择压力和时间。 而在芯片上&#xff0c;你得先设置控制字&#xff0c;也就是 先选择工作方式&#…

什么是地址译码 理解二进制编码

我们知道存储器都是有多个芯片组合而成的&#xff0c;必然涉及到片选&#xff0c;因此我们将地址分开看 前面的一部分&#xff0c;是片选&#xff0c;也就是选中某个芯片&#xff08;使用译码器&#xff0c;2-4译码器就是2位地址可以选择4个芯片&#xff09;后面的部分&#x…

【微机原理与接口技术】具体芯片(1)并行接口8255A(2):控制字概述

核心 对于一个多功能可编程接口芯片&#xff0c;我们要想使用它&#xff0c;必须 先确定需求&#xff0c;要用什么芯片去干什么设置芯片的工作方式然后再让芯片工作 至于设置的方式&#xff0c;当然是软件编程。 同时重点注意&#xff0c;例如8255A&#xff0c;它一次只能写…

【算法】【殊途同归】搜索算法之(深度优先 || 广度优先) (约束条件 || 限界函数)

对于所谓的分支限界法和回溯法&#xff0c;我们完全可以更加灵活&#xff0c;请看表格。 深度优先广度优先约束条件限界函数算法策略√√回溯法局部判定√√√分支限界法局部判定√√√加限界的回溯法局部判定√枚举法全局判定√枚举法全局判定 前两种是我们常见的&#xff0c…

【算法】学习方法

看理论学示例做图示 最重要的是 最开始直接抄别人的优秀的代码&#xff0c;就是如此简单&#xff0c;摆正心态&#xff0c;最开始不要非得自己想怎么做。

【算法】学习笔记(0):算法初探(逻辑抽象 + 示例 + 代码实现)

什么是算法? 人生皆算法&#xff0c;算法的本质&#xff0c;是解决问题的方法&#xff0c;遇到问题&#xff0c;寻找答案&#xff0c;解决问题&#xff0c;是作为一个人&#xff0c;一生都在做的事情。 算法是人类思维的产物&#xff0c;是解决问题的方案&#xff0c;并且&a…

【Verilog】数据流建模传输问题:赋值传输有方向

这次&#xff0c;我们说明的是&#xff0c;assign语句实现的数据流建模&#xff0c;包含的是两个层面 建立联系传输方向 assign A B的本质含义是 A与B建立关联B的值传给A 这个传输方向至关重要&#xff0c;实际情况是什么&#xff0c;就必须按照顺序进行&#xff0c;不是单…

【计算机系统设计】实践笔记(2)数据通路构建:第一类R型指令分析(2)

待办事项 时钟频率高&#xff0c;取指周期长&#xff0c;远大于执行周期&#xff0c;如何处理&#xff1f; 不可综合逻辑的处理 接上一篇 【计算机系统设计】实践笔记&#xff08;2&#xff09;数据通路构建&#xff1a;第一类R型指令分析&#xff08;1&#xff09; 8.2 ALU运…

【计算机系统设计】实践笔记(2)插叙:综合与实现

接上一篇文章的第10节 之前完成了功能仿真&#xff0c;下面我们进行综合实现。 10.1.1 综合 综合成功。 实现试试 这真是令人悲伤……找Bug吧。 我们看看综合后的门级网表。 发现综合后的并不是我们想要的……看了看可能是综合的目录错误&#xff0c;我们再试试。 不是这…

【电路原理】学习笔记(1):电路模型的基本变量

上一讲说到了电路模型&#xff0c;这一电路的抽象&#xff0c;现在我们看看它的基本组成。 1 电流 1.1 概念 对于一根管道&#xff0c;它能够流通电荷&#xff0c;定向移动就形成了电流。 单位时间t内&#xff0c;&#xff0c;某一横截面&#xff0c;穿过电荷量是q&#xf…

【电路原理】学习笔记(0):电路与电路模型

东北大学电路原理MOOC 电路原理的核心点&#xff1a;研究电路模型 我们实际看见的&#xff0c;是真实电路 我们高中学的&#xff0c;是电原理图 现在&#xff0c;我们要研究的是电路模型&#xff0c;它是实际电路的抽象模型&#xff0c;并且是理想化的。 对于电路模型&#…

【计算机系统设计】实践笔记(3)改进数据通路:移位R型指令分析

0 回顾 前面的内容中&#xff0c;第一类R型指令分析&#xff0c;我们完成了一类R型指令的设计&#xff0c;完成了其数据通路&#xff0c;构建了相应的部件&#xff0c;并且完成了从ROM中取指&#xff0c;成功进行了基本的功能仿真&#xff0c;进行了综合和实现&#xff0c;但是…

【计算机系统设计】实践笔记(3)改进数据通路:jr指令分析与实现

1 jr指令分析 instructionoprsrtrdshamtfuncjr000000rs000000000000000001000 举例&#xff1a;jr $31 功能&#xff1a;PC <- &#xff08;$31&#xff09; 这是个跳转指令&#xff0c;将指定寄存器的值&#xff0c;放入PC中&#xff0c;是无条件跳转。 我们需要 更新P…

【计算机系统设计】实践笔记(4)改进数据通路:第一类I型指令分析与实现

0 回顾 之前&#xff0c;我们完成了17条R型指令的设计&#xff0c;接下来&#xff0c;我们逐步完成I型指令的设计。 1 核心思想&#xff1a;增量思维 & 复用思维 & 学会选择 & 分治思想 增量思维 我们从无到有&#xff0c;构建了支持R型指令的CPU&#xff0c;接…

【算法】学习笔记(1):算法就是人类去教会计算机的方法

人生处处皆算法&#xff0c;算法是解决问题之道。 对于计算机科学中的算法&#xff0c;我更喜欢将其理解为利用人类思维之一&#xff1a;计算机思维&#xff0c;去解决一些人类不擅长的问题&#xff0c;比如大量重复运算&#xff0c;然后&#xff0c;人类使用计算机编程语言去…

【算法】学习笔记(2):递归思想

0 回顾 之前的笔记&#xff08;0&#xff09;和笔记&#xff08;1&#xff09;&#xff0c;我们介绍了算法的基本含义&#xff0c;并且举了一些实例&#xff0c;同时理解了&#xff0c;算法就是人类在教计算机做事情&#xff01; 我们知道&#xff0c;算法就是解决问题的方案…