【微机原理与接口技术】具体芯片(1)并行接口8255A(1):全局观
并行接口8255A
首先,它是傳輸并行數據的,與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沒有時鐘信號,只是一些組合邏輯,再加上一些暫存信息的器件,這很神奇,這說明它更多地,我們需要思考的是功能的設計,組合邏輯電路實現起來也不是那么困難不是嗎?
這個芯片的最底層本質,就是組合邏輯電路,又加了一些存儲器件,就是如此簡單!
總結
以上是生活随笔為你收集整理的【微机原理与接口技术】具体芯片(1)并行接口8255A(1):全局观的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宫腔镜下可以检查输卵管吗
- 下一篇: 【微机原理与接口技术】多功能可编程芯片