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

概述

我们先建立一个整体的接口格局观,建立知识地图,了解接口的大概面貌。
接口的抽象与实现(概述)
整体来说,就这点事儿,4个箭头代表了所有!

  • 三个器件
  • 4个箭头

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

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

接口的抽象与实现(概述)CPU不能直接控制外设,所以加了一个中介,进而间接地控制外设

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

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

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

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

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

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

交互的内容是什么?

  • 二进制数据

交互的信息是什么?

  • 数据
  • 控制
  • 状态

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

分开看,找联系

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

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

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

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

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

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

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

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

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

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

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

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

CPU给接口发的:

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

接口给CPU发的:

  • 状态信息
  • 外设数据

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

接口给外设发的:

  • 外设数据
  • 查询外设

外设给接口发的

  • 外设应答

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

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

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

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

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

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

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

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

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