我们从功能抽象层次,阐述一下CPU、接口芯片和外设之间的交互情况:
- 三个器件
- 4个箭头
我们依次将其描述清楚。
数据
箭头①和③
CPU给接口可以发送数据,然后接口暂存数据,之后再发给外设,这就是数据缓冲。
发送的数据,是外设数据,因为接口的最终目的,就是让CPU处理外设的数据,接口暂存的数据,也是外设数据。
控制字与读写控制
这里的接口,都是可编程多功能接口,它自己还有控制字和状态字要存储,那是它自己的数据,不是外设数据。
箭头①
CPU给外设发送控制字,并且让外设能够进行读写(读写控制),这就是所谓的编程,外设就能够被设置为某种工作方式了。
此时发送的二进制信息是控制。
这种CPU不管接口状态,直接地传控制数据的方式,就是直接控制,程序控制方式,无条件传输数据。
状态字
箭头①
CPU有的时候,需要先查询一下,看能不能给外设送数据,得先问问外设,这就是查询控制方式。
箭头②
如何此时外设是允许的,将会发送状态字给CPU,告诉它,可以给我发数据,或者,不行你先等着吧。
在接口与外设,也发生着同样的事情,(箭头③)接口看看外设是不是存在,能不能发数据,然后(箭头④)外设告诉接口,可以可以,或者,不行不行,你等着吧。
到这里,我们阐述的都是
- CPU负责外设数据的传送和处理
- 接口是多功能可编程芯片
在这个前提下,我们知道了
接口芯片的
- 数据寄存器
- 控制字和状态字(都是寄存器)
- 读写控制、clk、reset
CPU的
- 外设数据发送
- 控制字和读写控制发送
- 查询发送与状态字接收
外设的
- 外设数据接收
- 接口查询信号接收
- 应答发送
这里有一个需要补充的,也没什么好说的,就是外设数据的发送,然后给接口,接口再给CPU。
这就是CPU、接口和外设之间的交互的宏观理解了。