「ものづくり:make」を楽しみながら学ぶ人へ向けた独習サポートサイト。

and more...

Lab.以外の情報を紹介しています。

マイコンと周辺装置を接続する入出力インターフェース

【Z80】8255 PPIの特徴とピンの役割

2025-05-192025-05-19

マイコンと周辺装置を接続して、データーの入出力を行うための入出力インターフェースである「8255 PPI」の特徴とピンの役割を紹介します。

1.8255 PPIの特徴

入出力インターフェース(パラレルインターフェース)

8255 PPI(Programmable Peripheral Interface)は、マイコンと周辺装置を接続して、データーの入出力を行うための入出力インターフェース(パラレルインターフェース)です。1970年代前半、インテルによって8ビットCPUである8080A用のLSIとして開発されました。8080Aは、内部に入出力インターフェース回路を持たないため、外付けの8255 PPIを通して、7セグメントLEDやキースイッチ、ブザーなどの周辺装置を接続していました。8255 PPIは、Z80の入出力インターフェースとして外付けすることも可能です。

8255 PPIの外観

8255 PPIは、パッケージ(黒い樹脂)の両長辺から金属のピン(端子)がでている「DIP(Dual In-line Package)」という形状をしています。ピンの数は40ピンです。

図1-1.PZ-80に実装されたM5L8255AP-5(三菱電機)
図1-1.PZ-80に実装されたM5L8255AP-5(三菱電機)

8255 PPIの特徴

8255 PPIには、3組の8ビット入出力端子(ポートA/B/C)があり、プログラムによってそれぞれの信号の向き(入出力)や機能(モード0/1/2)を選択できます。モード0(基本的なデーターの入出力)では、3組の8ビット入出力端子を使って、24ビット幅のデーターをやりとりできます。+5Vの単一電源で動作し、入出力端子の電圧はTTLコンパチブルです。

2.ピンの名前と役割

バスと信号の向き

8255 PPIの信号線には「入出力バス(Input/Output Bus)」「データーバス(Data Bus)」「コントロールバス(Control Bus)」の3種類があります。「バス」とは、複数の信号線の束を表す言葉で、8255 PPIの場合、入出力バス24本・データーバス8本・コントロールバス6本で構成されます。

バス(複数の信号線の束)の正体は、ピンの集まりです。ピンには、それぞれ機能を表す名前がつけられ、入出力バスは[mathjax]~\rm{PA0}~[/mathjax]~[mathjax]~\rm{PA7}~[/mathjax](Port A)・[mathjax]~\rm{PB0}~[/mathjax]~[mathjax]~\rm{PB7}~[/mathjax](Port B)・[mathjax]~\rm{PC0}~[/mathjax]~[mathjax]~\rm{PC7}~[/mathjax](Port C)、データバスは[mathjax]~\rm{D0}~[/mathjax]~[mathjax]~\rm{D7}~[/mathjax](Data)です。コントロールバスには、それぞれの役割を示す[mathjax]~\rm\overline{CS}~[/mathjax](Chip Select)・[mathjax]~\rm{A0}~[/mathjax](Address 0)・[mathjax]~\rm{A1}~[/mathjax](Address 1)・[mathjax]~\rm\overline{RD}~[/mathjax](ReaD)・[mathjax]~\rm\overline{WR}~[/mathjax](WRite)・[mathjax]~\rm{RESET}~[/mathjax]といった名前がつけられています。図2-1は、ピンの番号(1~40)と名前の対応図です。バス以外にも、電源([mathjax]~\rm{VCC}~[/mathjax]/[mathjax]~\rm{GND}~[/mathjax])があります。

図2-1.8255 PPIのピン番号とその名称
図2-1.8255 PPIのピン番号とその名称

図2-2は、バスをわかりやすくするために、バスごとにピンをまとめた論理図です。図中のピン番号と物理的な位置は一致しません。それぞれの矢印が、バスに流れる信号の向き(入出力)を表しています。この場合、8255 PPIを基準に考えるので、8255 PPIから延びる矢印が出力、8255 PPIへ向かう矢印が入力です。

図2-1.8255 PPIの信号の向き
図2-1.8255 PPIの信号の向き

正論理(アクティブハイ)と負論理(アクティブロー)

バスを構成するピンはディジタル回路なので、信号の状態は電圧が高い状態(Hレベル)、または電圧が低い状態(Lレベル)となります。意味のある事象の発生をHレベルに関係付けたものを「正論理」といます。逆に、意味のある事象の発生をLレベルに関係付けたものを「負論理」といいます。負論理においてアクティブ(真)とは、電圧の低い状態(Lレベル)を示します。なお、負論理は「[mathjax]~\rm\overline{CS}~[/mathjax]」のように名前に上線を付けて表します。

ハイインピーダンスとトライステート

ディジタル回路では、Hレベル・Lレベル以外に、ピンが回路から切り離されたハイインピーダンスという状態(Z/HZ/Hi-Zなどと表記される)があります。3つの状態(Hレベル・Lレベル・ハイインピーダンス)のいずれかになりうるピンを「トライステート」といいます。8255 PPIでは、入出力バス・データーバスがトライステートなピンです。

ピンの名前と役割

以下に、それぞれのピンの名前と役割を簡単に紹介します。括弧内は、8255 PPIを基準とした信号の向き(出力/入力/入出力)・正論理/負論理・トライステートかどうかを表しています。

[mathjax]~\rm\overline{\boldsymbol{CS}}~[/mathjax]:Chip Select(入力・負論理):アクティブ(Lレベル)にすることで、8255 PPIが有効になり、CPUと通信できるようになります。非アクティブ(Hレベル)にすると、データーバスはハイインピーダンスとなり、CPUと切り離された状態になります。また、入出力バスの出力に設定されたポートは直前の状態が保持されます。

[mathjax]~\rm{\boldsymbol{A0}}~[/mathjax]・[mathjax]~\rm{\boldsymbol{A1}}~[/mathjax]:Address(入力・正論理):通常は、CPUのデーターバスの下位2ビット([mathjax]~\rm{A0}~[/mathjax]・[mathjax]~\rm{A1}~[/mathjax])に接続されます。[mathjax]~\rm\overline{RD}~[/mathjax]・[mathjax]~\rm\overline{WR}~[/mathjax]と組み合わせることで、ポートA・ポートB・ポートCの入出力、コントロールワード(初期化用データー)のいずれかを選択します。コントロールワードを選択した場合、その値は内部のコントロールレジスターに書き込まれます。

[mathjax]~\rm\overline{\boldsymbol{RD}}~[/mathjax]:ReaD(入力・負論理):アクティブ(Lレベル)にすることで、選択されたポートに入力されているデーターをデーターバスに出力します。

[mathjax]~\rm\overline{\boldsymbol{WR}}~[/mathjax]:WRite(入力・負論理):アクティブ(Lレベル)にすることで、データーバス上のデーターを選択されたポートに出力、またはコントロールワードを内部のコントロールレジスターに書き込みます。

[mathjax]~\rm{\boldsymbol{RESET}}~[/mathjax]:RESET(入力・正論理):アクティブ(Hレベル)にすることで、制御用のレジスターがクリアーされます。また、すべてのポートが入力モードとなり、バスホールド回路がオンになります。

[mathjax]~\rm{\boldsymbol{D0}}~[/mathjax]~[mathjax]~\rm{\boldsymbol{D7}}~[/mathjax]:Data bus(入出力・正論理・トライステート):データーバスは、8ビット幅のバスです。

[mathjax]~\rm{\boldsymbol{PA0}}~[/mathjax]~[mathjax]~\rm{\boldsymbol{PA7}}~[/mathjax]:Port A(入出力・正論理・トライステート):8ビット幅のディジタル端子です。ポートAは、入力・出力、または双方向として動作します。

[mathjax]~\rm{\boldsymbol{PB0}}~[/mathjax]~[mathjax]~\rm{\boldsymbol{PB7}}~[/mathjax]:Port B(入出力・正論理・トライステート):8ビット幅のディジタル端子です。ポートBは、入力、または出力として動作します。

[mathjax]~\rm{\boldsymbol{PC0}}~[/mathjax]~[mathjax]~\rm{\boldsymbol{PC7}}~[/mathjax]:Port C(入出力・正論理・トライステート):8ビット幅のディジタル端子です。ポートCは、上位4ビットと下位4ビットに分割して、それぞれが入力、または出力として動作するほか、ポートA・ポートBの制御信号用として動作します。

おすすめ

たのしくできるセンサ回路と制御実験

出版社
東京電機大学出版局
著者
鈴木 美朗志
発売日
1999/1/20

機械に知力をつける 制御用マイコン―初歩から応用まで[第2版]

出版社
日刊工業新聞社
著者
太平洋工業株式会社
発売日
1986/2/1

図解 Z80マイコン応用システム入門(ハード編)

出版社
東京電機大学出版局
著者
柏谷 英一
発売日
2000/5/20

図解 Z80マイコン応用システム入門(ソフト編)

出版社
東京電機大学出版局
著者
柏谷 英一
発売日
2000/3/20

図解 マイクロコンピュータ Z-80の使い方

出版社
オーム社
著者
横田 英一
発売日
1981/5/1

ザイログZ80伝説

出版社
ラトルズ
著者
鈴木 哲哉
発売日
2020/8/25
この記事を読んだ人は、こんな記事にも興味があります。
スポンサーリンク
TOPへ移動
目次へ移動