- 締切済み
Z80PIOの配線にて、2つのピンの使う理由
「コンピュータはなぜ動くのか 知っておきたいハードウエア&ソフトウエアの基礎知識」書籍内の「第2章:コンピュータを作ってみよう。」内の「メモリーとI/Oを区別して入出力する仕組みを配線」(P42)のところで >Z80 PIOでは、同じことをCE(上線)ピンとIORQ(上線)ピンの両方を一緒に>「0」や「1」にすることで実現できます(2つのピンを使うのは、複数のI/Oが使わ>れた場合に便利だからです)。 ↑このように記載されていますが、この >「2つのピンを使うのは、複数のI/Oが使われた場合に便利だからです」 ↑この意味が理解できません。 これはつまり、 「2つの外部装置(ディップスイッチ・LED)が接続されている場合、並行して入出力ができる」 ↑ そうなるようにあえて、2つのピンを使うのでしょうか? わかりやすく教えてください。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10359)
>「2つの外部装置(ディップスイッチ・LED)が接続されている場合、並行して入出力ができる」 1つのPIOで2ポート使えますので、そのままで両方使えますが、例えば7セグメントLEDの4桁にそのまま繋ぎたいということだと、4ポート要るのでPIOが2つ要ります。 その場合、アドレスバスの A0 ・・・ C/Dセレクト A1 ・・・ A/Bセレクト A2 ・・・ 1つ目のPIOのCEに繋ぎ、2つ目のPIOのCEには"NOT A2"を繋ぐ これで、アドレス00-03が1つ目のPIO、アドレス04-07が2つ目のPIOになり、それぞれ独自にコントロールできます。 「並行して入出力できる」が「独立して入出力できる」という意味ならその通りです。 先の回答に書きましたが、PIO1つで、他にIO機器が無い場合は、CEはオン固定(負論理なのでGND)でOKです。IOアドレスに関係なくPIOが選択されます。 CEにIORQを繋ぐと書いてあるので、あなたのようにわかりにくい人が出るんだと思います。
補足。 >データバス上で複数のデバイスからの信号がぶつかって CEが High 状態のデバイスは,入出力端子を「ハイ・インピーダンス」すなわち遮断状態にします。だから信号がぶつからないのです。
IORQ(負論理;IOリクエスト)は,CPUがIO入出力するときにLowになりますが,この信号はすべてのIOデバイスが受け取ります。しかし,これだけではデバイスは動きません。 さらに,あるデバイスのCE(負論理;チップイネーブル)だけがLowになると,そのデバイスのみがCPUからの操作を受け付けるようになります。そうしないと,データバス上で複数のデバイスからの信号がぶつかって,壊れます。