概述

我们先建立一个整体的接口格局观,建立知识地图,了解接口的大概面貌。

整体来说,就这点事儿,4个箭头代表了所有!

  • 三个器件
  • 4个箭头

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

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

CPU不能直接控制外设,所以加了一个中介,进而间接地控制外设

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

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

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

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

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

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

交互的内容是什么?

  • 二进制数据

交互的信息是什么?

  • 数据
  • 控制
  • 状态

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

分开看,找联系

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

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

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

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

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

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

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

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

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

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

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

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

CPU给接口发的:

  • 控制信息

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

接口给CPU发的:

  • 状态信息
  • 外设数据

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

接口给外设发的:

  • 外设数据
  • 查询外设

外设给接口发的

  • 外设应答

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

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

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

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

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

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

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

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

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

接口的抽象与实现(概述)相关推荐

  1. 抽象工厂模式(三):抽象工厂模式概述

    3 抽象工厂模式概述 抽象工厂模式为创建一组对象提供了一种解决方案.与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品.抽象工厂模式定义如下:        抽象工厂模 ...

  2. 实现一个对象验证库系列 -- 1) 接口介绍以及总体思路概述 (请大神批评)

    前情回顾: 上一篇 0) 目录以及库结构介绍 简单描述了下库的代码结构 本文将从接口部分阐述总体的思路 1) 接口介绍以及总体思路概述 如下图,我总共定义了10个Interface 这些实际可分为两类 ...

  3. Java面向对象基础接口和抽象的理解

    第一,抽象类: 我们都知道,在面向对象的领域中,一切都是一个对象,所有的对象都是用类来描述的,但不是所有的类都是用对象来描述的.如果一个类没有足够的信息来描述一个特定的对象,并且需要其他特定的类来支持 ...

  4. idea重写接口没有@override_接口和抽象有什么区别?

    接口和抽象有什么区别? 接口和抽象是 Java 面向对象设计的两个基础机制. 接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到API 定义和实现分离的目的. 接口不能实例化, 接口不能包含任何 ...

  5. java如何定义一个接口inf_java.抽象、接口

    抽象 如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法 定义 抽象方法:在返回值前加上abstract关键字,然后去掉大括号,分号直接结束. 抽象类:抽象方法所在的类,必须是 ...

  6. 十、C#接口、抽象、密封、开放封闭原则

    0开放封闭原则 定义:软件实体应该可以扩展,但是不可以修改. 特性:对扩展是开放的,对修改是封闭的.开放即可以操作,关闭即不可以操作. 1.接口声明 API:Application Programmi ...

  7. 教妹学Java:接口,抽象的另一种表现方式

    接口 "哥,我看你朋友圈说<教妹学 Java>专栏收到了第一笔赞赏呀,虽然只有一块钱,但我也替你感到开心."三妹的脸上洋溢着自信的微笑,仿佛这钱是打给她的一样. &qu ...

  8. ORAN专题系列-18:5G O-RAN FrontHaul前传接口互操作性测试规范IOT概述与总体架构

    前言: 前传接口(FrontHual)是传统的BBU与RU之间的接口,在O-RAN之前,前传接口虽然定义了物理连接的CPRI标准,但CPRI之上承载的M plane和S/C/U plane的IQ数据, ...

  9. java:接口和抽象

    接口中定义的成员变量默认为public static final, 只能够有静态的不能被修改的数据成员,而且,必须给其赋初值,其所有成员方法都是public, abstract的. 抽象方法不能有方法 ...

最新文章

  1. 取代现有电商和实体店菜市场的新模式
  2. 用隐式反馈做推荐模型,你做对了吗
  3. Applet实现Menu
  4. linux查看文件位置命令bwd,linux 操作系统中find文件搜索命令的使用
  5. 软考信息安全工程师备考笔记2:第二章密码学基础与应用备考要点
  6. Codeforces 263E Rhombus (看题解)
  7. 【JAVA错误笔记】 - Unable add facets project AnnotationWebService CXF 2-x Web Services
  8. MySQL Shell 教程
  9. 常见路由器初始密码合集
  10. LOJ-10105(欧拉回路模板,套圈法,递归)
  11. Labelme直接生成灰度图
  12. Go-Excelize API源码阅读(二十五)——GetSheetName、GetSheetIndex、GetSheetMap()
  13. 焊接机器人比传统手工焊接有哪些优势
  14. 借记卡、贷记卡叫法的由来
  15. 金融行业文档加密方案
  16. html中p元素添加超链接_如何在HTML中添加超链接
  17. 基于Orangpi Zero和Linux ALSA实现WIFI无线音箱(二)
  18. DW1000开发笔记(一)DW1000芯片概览
  19. 腾讯技术专家解读《FinOps,从上云到上好云》
  20. Flutter绘制指南09-动画曲线和方法

热门文章

  1. 35数据结构与算法分析之---最短路径
  2. 010-python基础-数据类型-字符串操作
  3. WCF Testing Tool(转)
  4. linux redis安装使用,linux安装redis
  5. ansys matlab 调用,matlab 调用ansys (转载)
  6. 字符串倒着输出java_Java 输出反转字符串
  7. 查看环境列表_Xfce 4.14桌面环境正式发布,想要图形界面又想节省内存?就它了...
  8. javaScript DOM编程常用的方法与属性
  9. Win32ASM学习[10]:传送指令
  10. 《dp补卡——子序列问题》