Intel 8255 プログラマブル ペリフェラル インターフェイス (PPI) は、デジタル システムの初期にマイクロプロセッサと外部デバイスを橋渡しする重要なコンポーネントでした。多用途の I/O ポート、複数の動作モード、プログラミングの容易さを備えた 8255 は、ディスプレイ、センサー、コントローラーとの信頼性の高い通信を可能にし、教育と産業の両方で役立ちます。

8255 プログラマブル ペリフェラル インターフェイス (PPI) の概要
Intel 8255 PPI チップは、マイクロプロセッサを外部デバイスに接続するために設計された広く使用されている I/O チップです。ADC、DAC、キーボード、ディスプレイなどの周辺機器の通信ブリッジとして機能します。直接I/Oと割り込み駆動型I/Oの両方をサポートし、システム設計に柔軟性を提供します。3つの8ビット双方向ポート(A、B、C)を備え、24の構成可能なI/Oラインを提供します。その費用対効果と Intel 8085/8086 などのプロセッサとの互換性により、初期のコンピューター システム、トレーニング キット、産業用コントローラーの定番となりました。
8255 PPIチップの特徴
- プログラマブルインターフェース - ソフトウェア命令で設定でき、ディスプレイ、センサー、入力モジュールなどのデバイスに適応します。
3 つの 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の | +5V電源 |
| 27 | コントロール | RD' | 読み取り有効化 |
| 28 | コントロール | WR' | 書き込み有効化 |
| 29 | コントロール | リセット | すべてのポートを入力状態にリセット |
| 30–37 | データバス | D0–D7 | CPUと8255の間でデータ/コマンドを転送 |
| 38–39 | アドレスピン | A0、A1 | 内部レジスタ/ポートの選択: 00 = ポート A、01 = ポート B、10 = ポート C、11 = 制御 |
| 40名 | グラウンド | GNDの | 地表参照 |
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 | 2 つの 4 ビット グループ(上位(PC7-PC4)と下位(PC3-PC0))に分割された分割された 8 ビット ポート。これらは、独立した I/O ポート、制御ライン、またはハンドシェイク信号として機能します。個々のビットは、ビットセット/リセット(BSR)モードを使用して制御することもできます。 |
| 内部データ・バス(8ビット) | 8255のすべての内部ブロックを接続し、CPU、制御ロジック、およびポート間でデータと制御情報を転送します。 |
| 電源 | このチップは、+5V DC電源とGND接続で動作し、回路全体に電力を供給します。 |
8255 PPI チップの動作モードと動作原理
Intel 8255 は、CPU と周辺機器間のプログラム可能なインターフェイスとして機能し、バス動作を並列データ転送に変換します。その動作は、初期化ステップと選択可能なモードによって支配されます。
リセット状態
電源投入時またはリセット時には、意図しない出力でペリフェラルに損傷を与えることを回避するために、すべてのポート(A、B、およびC)がデフォルトで入力モードになります。
初期化
CPUは、各ポートを入出力として構成し、4つの動作モードのいずれかを選択する制御ワードを送信する必要があります。これが完了するまで、ポートは非アクティブなままです。
動作モード
ビット・セット/リセット(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 のポートは、限られた電流 (数ミリアンペア) のみをソースまたはシンクできます。ランプ、ソレノイド、リレーなどの重い負荷を直接駆動することは安全ではありません。代わりに、ULN2803(ダーリントンアレイ)などのバッファICまたはドライバICや、7406などのオープンコレクタゲートが一般的に使用されます。これらはより高い電流能力を提供し、PPIを保護します。
• モーター制御 – DC モーターまたはステッピング モーターの場合、8255 ポートは直接接続しないでください。代わりに、出力はトランジスタ段またはHブリッジドライバ回路を介してルーティングする必要があります。この配置により、PPIを誘導電圧スパイクから絶縁しながら、双方向の電流が流れることができます。
• AC 負荷スイッチング – AC 機器とのインターフェースには、安全のために絶縁が必要です。バッファ段を介して駆動される機械式リレーまたはソリッドステートリレー(SSR)により、8255は制御信号のみを処理し、実際の高電圧負荷は外部から安全にスイッチングされます。
・ポートCの制限:ポートCのビットは、一般的なI/Oとして常に自由に使用できるとは限りません。モード1と2では、ハンドシェイク制御用に複数のピン(STB、ACK、IBF、OBFなど)が自動的に予約されます。これらの予約行を考慮して、一般的な I/O とハンドシェイクを混在させる際の競合を回避する必要があります。
8255 PPI チップの利点
• CPU 互換性 – 8255 は、Intel 8085、8086、およびそれらの互換性などのプロセッサとシームレスに動作します。その設計は標準のバス プロトコルと一致するため、追加のグルー ロジックなしで統合が簡単になります。
柔軟なポート構成 – 3 つの 8 ビット ポート(A、B、C)により、アプリケーションに応じて入力、出力、またはミックスとして構成できます。単純なI/O(モード0)とハンドシェイク駆動通信(モード1および2)を切り替えることができるため、同じチップでさまざまなタスクを処理できます。
- 単電源動作 - 標準の+5V電源で動作する8255は、TTLベースのシステムで簡単に電源を供給できます。特別なレギュレータや複数の電圧レベルが不要で、基板設計が簡素化されます。
• 信頼性の高い並列データ転送 – このチップは、安定した予測可能な 8 ビット並列通信を提供し、タイミングの不確実性を軽減します。この信頼性により、実際のシステムでのディスプレイの駆動、センサーの読み取り、制御信号の管理に適しています。
• 教育的価値 – 8255は十分に文書化されており、広く入手できるため、マイクロプロセッサラボやトレーニングキットの重要な教育ツールとなっています。このデバイスを使用した実際の実験を通じて、I/Oインターフェースの概念をすぐに理解できます。
8255 PPIチップの用途
• 教育システム – トレーニングキットやラボボードには、周辺機器のインターフェースの概念を示すために 8255 が含まれることがよくあります。さまざまなモードのプログラミングを練習したり、外部デバイスとの実際の相互作用を観察したりできます。
- ディスプレイ制御 - 7セグメントLED、LCDモジュール、英数字パネルなどのビジュアル出力デバイスを駆動します。複数のI/Oラインにより、ディスプレイを更新したり、制御コマンドをドライバICに送信したりできます。
• キーボードインターフェース – 初期の端末やパーソナルコンピュータのマトリックスキーボードは、8255を使用してスキャンされることがよくありました。一部のラインを行ドライバーとして、他のラインを列センサーとして構成することで、キーの押下を効率的に検出しました。
- モーター制御 - ステッピングモーターとDCモーターは、8255をトランジスタステージ、ダーリントンアレイ、またはHブリッジと組み合わせることで制御できます。これにより、ロボット工学、測位システム、自動化プロジェクトで役立ちました。
• データ収集 – ADC (A/Dコンバータ)およびDAC(D/Aコンバータ)に接続すると、8255は測定および制御タスクのための完全なインターフェイスを提供します。これにより、マイクロプロセッサは科学機器や産業機器の信号を処理できるようになりました。
• 産業オートメーション – 8255 は、信号機、エレベーター ロジック、およびプロセス監視パネルの制御に使用されました。複数の入力と出力を確実に管理できるため、組み込み制御システム向けの低コストのソリューションとなりました。
• レトロコンピューティング – IBM PC/XT や MSX コンピュータなどの従来のマシンでは、周辺機器のインターフェースに 8255 が使用されていました。プリンターや拡張カードにも使用され、初期のパーソナル コンピューターの歴史におけるその地位を確固たるものにしました。
8255 PPI チップと他の PPI との比較
8255 対 8155

Intel 8155は、静的RAMの小さなブロック、プログラム可能なタイマー、および汎用I/Oポートを提供するという複数の機能を1つのパッケージに組み合わせています。これにより、メモリとタイミング制御が必要なコンパクトなシステムに適していました。対照的に、8255はプログラム可能なI/Oに完全に焦点を当てており、メモリやタイミングは内蔵されていません。そのシンプルな設計により、アプリケーションが統合 RAM やタイマーを必要としない場合に、より安価でプログラミングが容易になりました。
8255 対 8259

8259プログラマブル割り込みコントローラは、ハードウェア割り込みを管理してCPUが外部イベントに迅速に応答できるようにするという、まったく異なる目的を果たします。8255 は並列 I/O データ転送を処理しますが、8259 は割り込み信号を調整します。多くのマイクロプロセッサベースのシステムでは、2つのチップが一緒に使用され、8255はキーボードやディスプレイなどのデバイスとのインターフェースに、8259はそれらのデバイスによって生成された割り込み要求を管理するために使用されていました。
8255 と最新の GPIO エキスパンダーの比較

今日のシステムでは、I²CまたはSPIベースのGPIOエキスパンダ(MCP23017やPCF8574など)が使用されることがよくあります。これらのデバイスは、より少ない接続で追加のI/Oピンを提供し、基板スペースを節約し、CPUのピン数を減らします。ただし、シリアルに動作するため、8255 の直接並列アクセスに比べて速度が遅くなる可能性があります。8255 はより多くのバス ラインを必要としますが、その並列構造により転送の高速化が可能になり、個々のピンの直接制御とバス タイミングの理解が学習に重要な教育環境で非常に価値があります。
トラブルシューティングと一般的な問題
8255 での作業では、設計ルールに注意深く従わないと、システム障害が発生することがあります。一般的な問題と解決策は次のとおりです。
・ Uninitialized Ports:リセット後、すべてのポートはデフォルトで入力モードになります。CPUが適切な制御ワードを送信しない場合、出力は非アクティブなままであるか、予期しない動作をします。データの読み取りまたは書き込みを試みる前に、必ず制御レジスタをプログラムしてください。
• 誤った制御ワード – 設定が間違っている制御ワードは、ポートに間違った方向またはモードを割り当て、予期される信号をロックアウトする可能性があります。制御ワード値をデータシート表と照合して、適切なビット設定を確認します。
・ハンドシェイクの失敗:モード1および2では、ポートCは必要なハンドシェイク信号(STB、ACK、IBF、OBF)を提供します。接続の欠落、誤配線、または誤解により、転送が停止または失われます。接続されたデバイスの配線とロジックレベルの期待値の両方を注意深く確認します。
• 過負荷出力 – 各ポート ピンは小さな電流しか処理できません。LEDを直接駆動することは抵抗器で可能ですが、モーター、リレー、ランプにはトランジスタアレイやドライバICなどの外部バッファ段が必要です。この制限を無視すると、チップに永久的な損傷を与える危険があります。
• バスの競合 – 複数のデバイスが同時にシステムバスを駆動しようとすると、データの破損やハードウェアの損傷が発生する可能性があります。適切なバスアービトレーションとイネーブル信号(RD'、WR'、CS')の使用により、この問題は防止されます。
• デバッグツール – 問題が解決しない場合、テスト機器は障害の切り分けに役立ちます。ロジック アナライザはタイミングと制御信号を確認でき、オシロスコープは問題がハードウェア配線のノイズやソフトウェアの初期化の誤りによって発生しているかどうかを確認できます。
まとめ
Intel 8255 PPI は、マイクロプロセッサ インターフェイスの基礎であり続けています。最新のGPIOエキスパンダと内蔵マイクロコントローラI/Oに大きく置き換えられていますが、アクティブな教育ツールとして機能し続けています。並列データ転送、ポート構成、ハンドシェイクを明確に示すことで、誰にとっても非常に貴重です。
よくある質問 [FAQ]
8255の制御語は何ですか、そしてなぜそれが重要なのですか?
制御ワードは、8255のポートとモードを設定するためにCPUから送信される8ビット命令です。これがない場合、すべてのポートはデフォルトの入力状態のままになります。各ポートが入力または出力のどちらとして機能するかを定義し、モード 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 はスペース効率が低くなりますが、実際の制御とバスのタイミングの学習には価値があります。