接口的抽象与实现(概述)
概述
我们先建立一个整体的接口格局观,建立知识地图,了解接口的大概面貌。
整体来说,就这点事儿,4个箭头代表了所有!
- 三个器件
- 4个箭头
把这几个都想明白,就完事儿了。
第一层(顶层)抽象:接口是CPU与外设的桥梁
CPU不能直接控制外设,所以加了一个中介,进而间接地控制外设。
接口芯片就是辅助CPU与外界交互的。
第二层抽象:桥梁的具体功能
那么接口芯片这个桥梁能够干啥?
毫无疑问,分为两部分(分开看)
- CPU与接口的交互
- 外设与接口的交互
当然最终目的,还是CPU与外设的交互。
交互的内容是什么?
- 二进制数据
交互的信息是什么?
- 数据
- 控制
- 状态
至于具体内容是什么,取决于实际,这里不展开,总之记住
分开看,找联系
三个器件,两个部分,多种关联。
第三层抽象:桥梁的大致构成
- 数据:CPU <–> 接口 <–> 外设
- 控制:CPU --> 接口
- 状态:接口 --> CPU
接口芯片就是个简化的改进的CPU,接口是CPU的小弟
这里针对多功能可编程接口
接口 | CPU |
---|---|
控制字 | 指令 |
寄存器 | 寄存器 |
读写控制 | 寄存器读写控制 |
地址控制 | 寄存器地址控制 |
无 | ALU运算 |
数据读写 | 数据读写 |
串并转换 | 无 |
数模转换 | 无 |
通过对比,很容易就知道,CPU与接口芯片,整体来说差不多,但是有一些CPU能干接口不能干的,有一些接口能干CPU不能干的。
毕竟,小弟没有老大厉害,但是老大也不可能拥有小弟的全部技能。
但是宏观上来说,对多功能可编程接口的理解,跟CPU是类似的,这个逻辑要明白。
另外,接口的控制字,更像是一种类似于多路选择器的功能选择,它是一种编码,但是远比指令编码的含义要简单地多。
并且,我们知道,CPU被称作芯片,而接口被称为接口芯片,都是芯片,总是类似的~
第四层抽象:CPU与接口的交互
CPU给接口发的:
- 控制信息
- 控制字
- 其他(读写控制)
- 外设数据
接口给CPU发的:
- 状态信息
- 外设数据
第四层抽象:接口与外设的交互
接口给外设发的:
- 外设数据
- 查询外设
外设给接口发的
- 外设应答
第五层抽象:具体接口芯片功能分析
后面把重点的几个芯片分析一下就好,根据内些芯片的设计思想,之后你就可以构建自己想要的“小弟”了。
第六层抽象:驱动程序 — 使用汇编指令控制接口
CPU使用指令编码,去给接口发送二进制信息,可能是
- 外设数据
- 控制字数据
- 读写控制
- ……
总之就是,硬件底层逻辑设计好了,现在需要软件层次的,上层策略的设计和控制了,此时,底层是被屏蔽了的,只是一个黑箱。
第七层实现:接口芯片的设计与实现
大哥!你连CPU都会设计了,接口芯片不会吗?可能唯一麻烦的就是数模转换的部分,内个先不考虑,至少在数字部分,你肯定可以实现一些想要的接口芯片的。
大哥没空干的,就设计个小弟,让他来干!大哥只需要发号施令就行了。
接口的抽象与实现(概述)相关推荐
- 抽象工厂模式(三):抽象工厂模式概述
3 抽象工厂模式概述 抽象工厂模式为创建一组对象提供了一种解决方案.与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品.抽象工厂模式定义如下: 抽象工厂模 ...
- 实现一个对象验证库系列 -- 1) 接口介绍以及总体思路概述 (请大神批评)
前情回顾: 上一篇 0) 目录以及库结构介绍 简单描述了下库的代码结构 本文将从接口部分阐述总体的思路 1) 接口介绍以及总体思路概述 如下图,我总共定义了10个Interface 这些实际可分为两类 ...
- Java面向对象基础接口和抽象的理解
第一,抽象类: 我们都知道,在面向对象的领域中,一切都是一个对象,所有的对象都是用类来描述的,但不是所有的类都是用对象来描述的.如果一个类没有足够的信息来描述一个特定的对象,并且需要其他特定的类来支持 ...
- idea重写接口没有@override_接口和抽象有什么区别?
接口和抽象有什么区别? 接口和抽象是 Java 面向对象设计的两个基础机制. 接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到API 定义和实现分离的目的. 接口不能实例化, 接口不能包含任何 ...
- java如何定义一个接口inf_java.抽象、接口
抽象 如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法 定义 抽象方法:在返回值前加上abstract关键字,然后去掉大括号,分号直接结束. 抽象类:抽象方法所在的类,必须是 ...
- 十、C#接口、抽象、密封、开放封闭原则
0开放封闭原则 定义:软件实体应该可以扩展,但是不可以修改. 特性:对扩展是开放的,对修改是封闭的.开放即可以操作,关闭即不可以操作. 1.接口声明 API:Application Programmi ...
- 教妹学Java:接口,抽象的另一种表现方式
接口 "哥,我看你朋友圈说<教妹学 Java>专栏收到了第一笔赞赏呀,虽然只有一块钱,但我也替你感到开心."三妹的脸上洋溢着自信的微笑,仿佛这钱是打给她的一样. &qu ...
- ORAN专题系列-18:5G O-RAN FrontHaul前传接口互操作性测试规范IOT概述与总体架构
前言: 前传接口(FrontHual)是传统的BBU与RU之间的接口,在O-RAN之前,前传接口虽然定义了物理连接的CPRI标准,但CPRI之上承载的M plane和S/C/U plane的IQ数据, ...
- java:接口和抽象
接口中定义的成员变量默认为public static final, 只能够有静态的不能被修改的数据成员,而且,必须给其赋初值,其所有成员方法都是public, abstract的. 抽象方法不能有方法 ...
最新文章
- 取代现有电商和实体店菜市场的新模式
- 用隐式反馈做推荐模型,你做对了吗
- Applet实现Menu
- linux查看文件位置命令bwd,linux 操作系统中find文件搜索命令的使用
- 软考信息安全工程师备考笔记2:第二章密码学基础与应用备考要点
- Codeforces 263E Rhombus (看题解)
- 【JAVA错误笔记】 - Unable add facets project AnnotationWebService CXF 2-x Web Services
- MySQL Shell 教程
- 常见路由器初始密码合集
- LOJ-10105(欧拉回路模板,套圈法,递归)
- Labelme直接生成灰度图
- Go-Excelize API源码阅读(二十五)——GetSheetName、GetSheetIndex、GetSheetMap()
- 焊接机器人比传统手工焊接有哪些优势
- 借记卡、贷记卡叫法的由来
- 金融行业文档加密方案
- html中p元素添加超链接_如何在HTML中添加超链接
- 基于Orangpi Zero和Linux ALSA实现WIFI无线音箱(二)
- DW1000开发笔记(一)DW1000芯片概览
- 腾讯技术专家解读《FinOps,从上云到上好云》
- Flutter绘制指南09-动画曲线和方法
热门文章
- 35数据结构与算法分析之---最短路径
- 010-python基础-数据类型-字符串操作
- WCF Testing Tool(转)
- linux redis安装使用,linux安装redis
- ansys matlab 调用,matlab 调用ansys (转载)
- 字符串倒着输出java_Java 输出反转字符串
- 查看环境列表_Xfce 4.14桌面环境正式发布,想要图形界面又想节省内存?就它了...
- javaScript DOM编程常用的方法与属性
- Win32ASM学习[10]:传送指令
- 《dp补卡——子序列问题》