衡水阿里巴巴网站建设,必应网站收录在哪,潍坊网站,化妆品网站开发步骤并行接口8255A
首先#xff0c;它是传输并行数据的#xff0c;与CPU一样#xff0c;然后#xff0c;它是可编程的#xff0c;也是多功能的#xff0c;CPU可以对其进行一些控制。
管脚
先从最宏观层面分类
一部分引脚与外设相连一部分引脚与CPU相连GND和Vcc
注意它是传输并行数据的与CPU一样然后它是可编程的也是多功能的CPU可以对其进行一些控制。
管脚
先从最宏观层面分类
一部分引脚与外设相连一部分引脚与CPU相连GND和Vcc
注意该芯片没有时钟clk信号 关于并行这里也清楚了因为使用的是多根总线与CPU一样的数据不是一位一位传输而是并行传输的吧
然后我们再来按照这个分类看看管脚的细节。 黄色部分是与外设相连的A、B和C三个并行端口能够传输8位二进制数。红色部分是电源和地紫色部分是读写控制逻辑由CPU发出控制命令是单向的蓝色部分是端口地址也是读写控制逻辑的一部分是单向的用于选择接口内的4个寄存器肉色部分是与CPU数据总线相连的CPU通过它来给接口发送二进制数进而控制接口和外设 跟这个图对比下不难发现8255A的相关引脚功能都有完整的体现。
进一步放大细节8255A的结构
之前我们把接口芯片当作黑箱子只看了外部引脚和它连接的器件现在我们来看看它的内部结构这个结构依旧在一个抽象层面。 我们给它分分类再逐一理解和展开。
接口内部4个寄存器
我们知道接口一个重要的功能就是数据缓冲以解决外设和CPU速度严重不匹配的问题所以接口内部一定有存储数据的器件。
在8255A中是4个8位存储器。
那么寄存器的内容是数据、控制还是状态 不一定因为8255A是可编程的信息的含义是可以改变的。
我们现在只需要知道8255A有4个存储器每个存储器能够存储8位二进制数并且对应了4个端口地址以便于外部访问它们。
它也有一个初级的分类
ABC三个端口寄存器是与外设相连的控制字寄存器是接口内部的专门用于 “ 被编程 ” 的
与CPU交互的部分数据传送与读写控制 毫无疑问读写控制逻辑是决定了D0 ~ D7的数据能否进行读写的我们看功能表。 对于地址控制端是A1A0可以选中4个存储器具体对应关系看表。
然后就是~RD ~WR ~CS三个信号分别是读、写和片选控制逻辑看表即可。
我们很容易知道数据什么时候写入/读取哪个寄存器的值特别注意控制字是只写不可读的。
另外数据总线是双向的读写控制逻辑的单向CPU -- 接口的。
至于RESET复位信号不需要解释就是clear寄存器。
现在我们已经明白了CPU与接口之间信息的基本交互控制方式了。
接口与外设的交互
下面我们看看接口和外设之间的交互。
这个事情很简单也有些复杂。
很明显我们宏观上的理解是 对吧就是这样的三个端口对应3个外设嘛端口的二进制位都是数据。
复杂的是有的时候端口C的二进制位代表的是状态它被添加到A、B端口二进制位中作为补充信息描述A、B端口的、除了数据之外的其他信息。
这也是芯片多功能的体现。
我们逐一去分析就能明白了。
控制字的作用
我们现在知道一些事实
ABC三个端口还有D都是双向的8255A是多功能的
那么问题来了这几个端口什么时候输入什么时候输出芯片什么时候采用什么功能如何选择功能
因此我们需要一个控制器来控制我们需要控制的东西这个东西就是控制字寄存器它有8位不同的位代表不同的信息我们通过编码就能完成上述我们需要的功能的选择。
具体控制字如何控制的不同编码下不同器件的功能又是什么信息又是什么含义我们之后展开。
最后一个发现8255A就是组合逻辑和状态器件的组合
我们可以发现8255A没有时钟信号只是一些组合逻辑再加上一些暂存信息的器件这很神奇这说明它更多地我们需要思考的是功能的设计组合逻辑电路实现起来也不是那么困难不是吗
这个芯片的最底层本质就是组合逻辑电路又加了一些存储器件就是如此简单