英特爾 8255 可編程外圍接口 (PPI) 是數字系統早期橋接微處理器與外部設備的關鍵組件。8255 具有多功能 I/O 連接埠、多種操作模式和易於編程,可與顯示器、感測器和控制器進行可靠通信,使其在教育和工業中都很有用。

8255 可編程外圍接口 (PPI) 概述
Intel 8255 PPI 晶片是一種廣泛使用的 I/O 晶片,旨在將微處理器與外部設備連接起來。它充當 ADC、DAC、鍵盤和顯示器等週邊設備的通訊橋樑。它支援直接和中斷驅動的 I/O,為系統設計提供了靈活性。它具有三個 8 位雙向連接埠(A、B、C),可提供 24 條可配置的 I/O 線路。其成本效益以及與英特爾 8085/8086 等處理器的兼容性使其成為早期電腦系統、培訓套件和工業控制器的主要產品。
2、8255 PPI晶片的特點
• 可編程介面 – 可透過軟體指令進行配置,以適應顯示器、感測器和輸入模組等設備。
• 三個 8 位埠 — 埠 A、B 和 C 提供 24 條可用作輸入或輸出的線路。
• 多種操作模式 –
模式 0:簡單的輸入/輸出,無需握手。
模式 1:帶握手信號的頻閃 I/O,用於同步通信。
模式 2:帶握手的雙向資料傳輸(僅在連接埠 A 上)。
• 位設置/重置 (BSR) – 可以單獨設置或清除端口 C 位,用於控制/狀態應用。
• 靈活的分組 – 連接埠可以拆分為 8 位元或 4 位元組。
• TTL 相容性 – 與標準數位 IC 輕鬆整合。
• 獨立的控制暫存器 – 每個連接埠都可以以不同的模式或方向單獨運作。
8255 PPI晶片的引腳排列

| 引腳號 | 團體 | 信號 | 產品描述 |
|---|---|---|---|
| 1-8 | 港口 A | PA0–PA7 | 8 位元通用 I/O 連接埠 |
| 9-16 | 連接埠 C | PC0–PC7 | 分為 PC0–PC3(下)和 PC4–PC7(上);用作 I/O 或握手線 |
| 17-24 | 連接埠 B | PB0–PB7 | 8 位元通用 I/O 連接埠 |
| 25 | 控制 | CS' | 晶片選擇(低電平有效) |
| 26 | 電源 | VCC | +5 V 電源 |
| 27 | 控制 | RD' | 讀取啟用 |
| 28 | 控制 | WR' | 寫入啟用 |
| 29 | 控制 | 重設 | 將所有連接埠重設為輸入狀態 |
| 30-37 | 數據匯流排 | D0–D7 | 在 CPU 和 8255 之間傳輸數據/命令 |
| 38-39 | 地址圖釘 | A0、A1 | 選擇內部暫存器/埠:00=埠A,01=埠B,10=埠C,11=控制 |
| 40 | 地面 | 接地 | 地面參考 |
4、8255 PPI晶片的架構

| 功能塊 | 產品描述 |
|---|---|
| 資料匯流排緩衝區 | 充當 CPU 的雙向數據總線 (D7–D0) 和 8255 的內部 8 位數據總線之間的接口。它會在 CPU 和內部暫存器或連接埠之間暫時儲存和傳輸資料。 |
| 讀/寫控制邏輯 | 管理 CPU 和 8255 之間的所有通訊。它解釋 RD、WR、A0、A1、CS 和 RESET 等控制信號以確定操作類型(讀取、寫入或控制)並選擇正確的端口或控制暫存器。 |
| 控制邏輯(解碼器) | 解碼CPU發送的控制字,以將埠配置為各種模式(模式0、1或2)或位元設定/重置(BSR)模式。它決定了每個埠的運作方式 - 作為輸入、輸出或握手。 |
| A組對照 | 控制連接埠 A(8 位元:PA7–PA0)和上層連接埠 C(4 位元:PC7–PC4)。它支援模式 0、1 和 2,允許簡單的 I/O、握手 I/O 和雙向資料傳輸 |
| B組控制 | 控制連接埠 B(8 位元:PB7–PB0)和下部連接埠 C(4 位元:PC3–PC0)。它支援模式 0 和 1,允許基本的輸入/輸出或握手控制操作。 |
| 港口 A | 一個 8 位元 I/O 端口,可根據模式配置用作輸入或輸出。支援 A 組控制下的模式 0-2。 |
| 連接埠 B | 另一個**8位元I/O埠**用於資料傳輸。在 B 組控制下運行,支持模式 0 和 1。 |
| 連接埠 C | 拆分的8位埠分為兩個4位組:上(PC7-PC4)和下(PC3-PC0)。這些可以充當獨立的 I/O 端口、控制線或握手信號。也可以使用位元設定/重設 (BSR) 模式來控制個別位元。 |
| 內部資料匯流排 (8 位元) | 連接 8255 的所有內部模塊,在 CPU、控制邏輯和端口之間傳輸數據和控制信息。 |
| 電源供應器 | 該晶片採用 +5V 直流電源和 GND 連接為整個電路供電。 |
8255 PPI晶片的工作模式及工作原理
Intel 8255 充當 CPU 和週邊設備之間的可編程接口,將匯流排操作轉換為並行資料傳輸。其操作由初始化步驟和可選模式決定:
重置狀態
在通電或重設時,所有連接埠 (A、B 和 C) 都會預設為輸入模式,以避免因意外輸出而損壞周邊裝置。
初始化
CPU 必須發送一個控制字,將每個端口配置為輸入/輸出並選擇四種操作模式之一。在完成此操作之前,埠將保持非活動狀態。
操作模式
位元設定/重設 (BSR) 模式
• 僅適用於埠 C。
• 允許為控制/狀態任務設置或清除單個位。
模式 0 – 簡單 I/O
• 無需握手的基本輸入/輸出。
• 用於直接傳輸,例如 LED、開關和顯示器。
模式 1 – 頻閃 I/O
• 通過端口 C 添加握手信號(STB、ACK、IBF、OBF)。
• 確保同步的 CPU ↔ 週邊數據傳輸。
模式 2 – 雙向 I/O
• 僅適用於連接埠 A。
• 支援握手控制雙向傳輸,適用於高速或非同步設備。
讀/寫操作
• 寫入:CPU 將資料放置在系統匯流排上,8255 解碼位址線(A0、A1)以將其引導至正確連接埠的輸出閂鎖。
• 讀取:外部裝置將資料放在連接埠線上,8255 會閂鎖該線路並在讀取命令期間提供給 CPU。
同步
• 在模式 0 下,資料傳輸直接進行,無需握手。
• 在模式 1 和 2 中,來自埠 C 的握手訊號協調準備和接受,防止高速或非同步傳輸期間資料遺失。
8255 PPI晶片的介面注意事項
使用 8255 設計系統時,仔細的介面可確保可靠性並防止晶片和外部裝置損壞:
• 預設輸入狀態 - 重設時,所有埠預設為輸入。這可以避免衝突,但也意味著輸出在配置之前處於非活動狀態。CPU 必須一律傳送控制字,才能正確定義方向和模式,才能嘗試通訊。
• 輸出驅動限制 – 8255 的端口只能提供或吸收有限的電流(幾毫安)。直接驅動燈、螺線管或繼電器等重物是不安全的。相反,通常使用緩衝器或驅動器 IC,例如 ULN2803(達林頓陣列)或集電極開路閘極,例如 7406。它們提供更高的電流能力並保護 PPI。
• 馬達控制 – 對於直流馬達或步進馬達,8255 連接埠不應直接連接。相反,輸出必須通過晶體管級或 H 橋驅動電路進行路由。這種佈置允許雙向電流流動,同時將 PPI 與電感電壓尖峰隔離。
• 交流負載開關 – 為了安全起見,與交流電器的接口需要隔離。通過緩衝級驅動的機械繼電器或固態繼電器 (SSR) 確保 8255 僅處理控制信號,而實際的高壓負載則安全地從外部切換。
·埠C限制 — 埠C的位並不總是可以自由用作通用I/O。在模式 1 和 2 中,會自動保留多個引腳(例如 STB、ACK、IBF、OBF)用於握手控制。您必須考慮這些保留行,以避免在將一般 I/O 與握手混合時發生衝突。
7、8255 PPI晶片的優點
• CPU 相容性 – 8255 可與 Intel 8085、8086 等處理器及其相容處理器無縫協作。其設計符合標準匯流排協議,使整合變得簡單,無需額外的膠水邏輯。
• 靈活的端口配置 – 具有三個 8 位端口(A、B、C),用戶可以根據應用程序將它們配置為輸入、輸出或混合。在簡單 I/O (模式 0) 和握手驅動通訊 (模式 1 和 2) 之間切換的能力,讓同一個晶片能夠處理各種各樣的任務。
• 單電源操作 – 8255 採用標準 +5 V 電源供電,在基於 TTL 的系統中易於供電。無需特殊穩壓器或多個電壓位準,從而簡化了電路板設計。
• 可靠的並行資料傳輸 – 該晶片提供穩定且可預測的 8 位元並行通信,減少時序不確定性。這種可靠性使其適用於驅動顯示器、讀取感測器和管理實際系統中的控制訊號。
• 教育價值 – 由於 8255 有據可查且廣泛使用,因此一直是微處理器實驗室和培訓套件中的關鍵教學工具。您可以透過使用此裝置進行實際實驗,快速了解 I/O 介面概念。
8255 PPI晶片的應用
• 教育系統 – 培訓套件和實驗室板經常包含 8255,以演示外圍接口概念。您可以練習編程不同的模式,並觀察與外部設備的實際互動。
• 顯示控制 – 該晶片驅動視覺輸出設備,例如七段 LED、LCD 模組和字母數字面板。憑藉其多條 I/O 線,它可以刷新顯示器或向驅動 IC 發送控制命令。
• 鍵盤接口 – 早期終端和個人電腦中的矩陣鍵盤通常使用 8255 進行掃描。透過將一些線配置為行驅動程序,將其他線配置為列感測器,它可以有效地偵測按鍵。
• 電機控制——當 8255 與晶體管級、達林頓陣列或 H 橋配對時,可以控制步進電機和直流電機。這使得它在機器人、定位系統和自動化專案中非常有用。
• 數據採集 – 當連接到 ADC(類比數位轉換器)和 DAC(數位類比轉換器)時,8255 為測量和控制任務提供了完整的介面。這使得微處理器能夠處理科學和工業設備中的信號。
• 工業自動化 – 8255 用於控制交通號誌、電梯邏輯和過程監控面板。它能夠可靠地管理多個輸入和輸出,使其成為嵌入式控制系統的低成本解決方案。
• 逆向計算 – IBM PC/XT 和 MSX 計算機等經典機器採用 8255 進行外圍設備接口。它也被用於印表機和擴充卡,鞏固了其在早期個人電腦歷史上的地位。
8255 PPI晶片與其他PPI的比較
8255 與 8155

Intel 8155 將多種功能結合在一個封裝中:它提供一小塊靜態 RAM、可編程計時器和通用 I/O 端口。這使得它適用於需要記憶體和時序控制的緊湊型系統。相比之下,8255 完全專注於可編程 I/O,沒有內置內存或時序。當應用程序不需要集成 RAM 或計時器時,其更簡單的設計使其更便宜、更容易編程。
8255 與 8259

8259 可編程中斷控制器具有截然不同的用途:管理硬體中斷,以協助 CPU 快速回應外部事件。8255 處理並行 I/O 資料傳輸,而 8259 則協調中斷訊號。在許多基於微處理器的系統中,這兩個芯片一起使用,8255 用於與鍵盤和顯示器等設備連接,8259 用於管理這些設備生成的中斷請求。
8255 與現代 GPIO 擴展器

現今的系統通常使用 I²C 或基於 SPI 的 GPIO 擴充器 (例如 MCP23017 或 PCF8574)。這些元件提供額外的 I/O 引腳,連接較少,節省電路板空間並減少 CPU 上的引腳數。然而,它們串行運行,與 8255 的直接並行存取相比,速度可能較慢。雖然 8255 需要更多的匯流排線路,但其並聯結構允許更快的傳輸,使其在教育環境中非常有價值,在教育環境中,直接控制各個引腳和了解匯流排時序對於學習非常重要。
故障排除和常見問題
如果不仔細遵守設計規則,使用 8255 有時會導致系統故障。常見問題和補救措施包括:
·未初始化的埠 — 重置後,所有埠預設為輸入模式。如果 CPU 沒有發送正確的控制字,則輸出將保持非活動狀態或行為不可預測。在嘗試讀取或寫入資料之前,請務必對控制暫存器進行程式設計。
• 控制字不正確 – 錯誤配置的控制字可能會為連接埠分配錯誤的方向或模式,從而鎖定預期訊號。根據數據表交叉檢查控制字值,以確保正確的位設置。
·握手失敗 — 在模式1和2中,埠C提供所需的握手訊號(STB、ACK、IBF、OBF)。連接遺失、接線錯誤或誤解會導致傳輸停止或遺失。仔細驗證連接設備的接線和邏輯電平期望。
• 過載輸出 – 每個連接埠引腳只能處理小電流。使用電阻器可以直接驅動 LED,但馬達、繼電器和燈需要外部緩衝級,例如電晶體陣列或驅動器 IC。忽略此限制可能會對晶片造成永久性損壞。
• 匯流排衝突 – 如果多個裝置嘗試同時驅動系統匯流排,則可能會發生資料損毀或硬體損壞。適當的匯流排仲裁和使用啟用訊號(RD'、WR'、CS')可以防止此問題。
• 調試工具 – 當問題仍然存在時,測試設備有助於隔離故障。邏輯分析儀可以確認時序和控制訊號,而示波器可以檢查問題是否是由嘈雜的硬體接線或不正確的軟體初始化引起的。
結論
英特爾 8255 PPI 仍然是微處理器接口的基石。儘管在很大程度上被現代 GPIO 擴展器和內置微控制器 I/O 所取代,但它仍然充當一種主動教學工具。它在演示並行數據傳輸、端口配置和握手方面的清晰度使其對任何人來說都是無價的。
常見問題 [常見問題]
8255 中的控制字是什麼,為什麼它很重要?
控制字是CPU發送的8位指令,用於配置8255的端口和模式。如果沒有它,所有埠都會保持預設輸入狀態。它定義每個連接埠是充當輸入還是輸出,並在模式 0、1、2 或位元設定/重置之間進行選擇。
8255可以直接驅動馬達或繼電器嗎?
不。8255 輸出只能拉出或吸收幾毫安,這對於電機或繼電器來說是不夠的。必須使用外部驅動電路,例如電晶體陣列或 H 橋,以安全地處理更高的電流。
為什麼8255至今仍在教育中使用?
8255 提供清晰、動手的方式來了解微處理器 I/O、控制字和平行資料傳輸。其簡單的架構可幫助學生在轉向現代微控制器之前理解核心概念。
如果在握手模式下使用埠C會怎樣?
在模式1和2中,某些埠C線路保留用於握手訊號(如STB、ACK、IBF、OBF)。在這些模式期間,這些針腳不能用作一般用途 I/O,您必須考慮這一點以避免衝突。
8255 與現代 GPIO 擴展器有何不同?
與使用序列通訊的 I²C/SPI 擴充器不同,8255 與平行匯流排搭配使用,可實現更快的傳輸速度,但需要更多引腳。這使得 8255 的空間效率較低,但對於實際控制和學習匯流排計時很有價值。