Yamamoto's Laboratory
Z80
 端子

8ビット CPU Z80端子と機能

Zilog Z80 について説明します.

目次


Z80 ピン配置

Z80 Pin Assignment
Z80 ピン配置

Z80は,図1に示すとおり 40ピンの Dual inline package(DIP)に納められています.当時使われていた DIP の最大ピン数が40個だったからだと言われています.技術者は,このピン数の制限に葛藤があったと思われます.ちょっと考えただけでも,アドレスバス:16ピン,データバス:8ピン,タイミング:1ピン,メモリー制御:1ピン,IO/メモリの切り替え:1ピン,I/Oポート指定:8ピン,電源とグラウンド:2ピンが少なくとも必要です.これで37ピンです.そのほかにも,割り込みとかいろいろな制御ピンが必要です.共用などでなんとか40ピンに抑えました.

Z80は同じ40ピンの Intel 8080や8085とバイナリレベルで互換(上位互換)があります.しかし,ハードウェアーでの互換はありません.ピン配置や制御方法も異なります.

各ピンの機能

カテゴリー分類

Z80 Pin Function
Z80 各ピンの機能

図1の実体図だとZ80 の機能が分かりにくいので,ピン(端子)を機能毎に分類します(図2).Z80のピンの機能は,

  • (1)アドレスバス
  • (2)データバス
  • (3)システム制御
  • (4)CPU制御
  • (5)CPUバス制御
  • (6)その他

のカテゴリーに分けられます.カテゴリー名から機能は類推できるでしょう.

ピンには,CPUから見て信号を入力するものと出力するものがものがあります.それらの区別は,図中の矢印で示します.図中の機能名称の上に線が引かれているピンはアクティブ Low であることを示しています.

動作

各ピンの機能は,以下の通りです.これは,参考資料[1][2][3]に書かれている内容です.

アドレスバス
A0 — A15
(アドレスバス)
出力: アクティブ High,トライステート
このバスはメモリーのアドレス,外部デバイスのI/Oポートアドレス,DRAMのリフレッシュのアドレスの指定に使われます.メモリは216=64[kB]が直接接続可能です.外部デバイスのI/Oポートは下位8ビットで指定し,256個の外部ポートの指定が可能です.リフレッシュのアドレス指定には,下位7ビットを使います.
データバス
D0 — D7
(データバス)
入出力: アクティブ High,トライステート
メモリーや外部機器のデータの受け渡しに使われます.受け渡しは,1バイト(8ビット)単位です.
システム制御
M1
(マシンサイクル1)
出力: アクティブ Low
マシンサイクルがOPコードのフェッチサイクルのときにアクティブになります.フェッチとは命令を取り出すことで,このサイクルをM1サイクルといいます.
MREQ
(メモリ要求)
出力: アクティブ Low,トライステート
メモリー読み出し/書き込みのための実行アドレスが,アドレスバスに出力されているときにアクティブになります.また,DRAMのリフレッシュのアドレスが出力されているときにもアクティブになります.この場合は,同時にRFSHもアクティブになります.
IORQ
(I/O要求)
出力: アクティブ Low,トライステート
I/O(入出力)のための実行アドレスが,アドレスバスの下位8ビットに出力されているときにアクティブになります.また,IORQは割り込みアクノリッジ時にM1とともに出力されます.この二つの信号により,割り込み応答ベクトルをデータバスに乗せてよいことを入出力装置に知らせます.
RD
(メモリ呼び出し)
出力: アクティブ Low,トライステート
CPUが,データバスからデータの読み出しが可能な状態の場合にアクティブになります.
WR
(メモリ書き込み)
出力: アクティブ Low,トライステート
メモリーあるいは入出力デバイスに向けたデータが,データバスに出力されていることを示します.
RFSH
(リフレッシュ)
出力: アクティブ Low
DRAMのためのリフレッシュアドレスがアドレスバスの下位7ビットに出力されているときにアクティブになります.DRAMをリフレッシュする場合は,MREQも必要です.
CPU 制御
HALT
(ホルト)
出力: アクティブ Low
HALT命令が実行し,ノンマスカラブル,あるいはマスカブルな割り込み待ち状態になった時にアクティブになります.
WAIT
(ウェイト)
入力: アクティブ Low
メモリーあるいは入出力デバイスがデータ転送できないときに,それらの機器が Low 信号を出して,CPUに伝えます.この信号がアクティブまで,CPUはウェイト状態を続けます.
INIT
(割り込み要求)
入力: アクティブ Low
EI/DI 命令を使いソフトウェアーで割り込み要求を受け付ける/受け付けないようにすることができます.割り込み許可フラグ (IFF) がセット,かつ BUSREQ が H (ノンアクティブ) ならば,割り込み要求は実行中の命令が終わり次第,受け付けられます.割り込みを受け付ければ,アクノリッジ信号 (M1期間中の IORQ) を次の命令のはじめに出します.
NMI
(ノンマスカラブル割り込み要求)
入力: 立ち下がりエッジ
これは割り込み許可フラグ (IFF) に関係なく実行され,INIT よりも,優先順位が高い割り込みになります.この割り込みが入ると,プログラムは自動的に,0066H 番地からリスタートします.プログラムカウンター (PC) の値はスタック領域へ自動的に待避され,RETN 命令で元のプログラムに戻ることができます.
CPU バス制御
BUSRQ
(バス要求)
入力: アクティブ Low
バス要求信号が入力されると,CPUのアドレスバスやアドレスバス,トライステート信号出力の制御線などをハイインピーダンスにします.この状態になると,他のデバイスはこれらのバスを使用できます.
BUSAK
(バスアクノリッジ)
出力: アクティブ Low
バス要求信号BUSRQが受け付けられ,CPUのデータバスやアドレスバス,トライステート制御バスがハイインピーダンスになったときにアクティブになります.
その他
CLK
(クロック)
入力: アクティブ Low
クロック信号を入力します.
+5V
(電源)
入力
電源端子です.+5[V]を印可します.
GND
(グランド)
回路のグランド電位に接続します.

ページ作成情報

参考資料

  1. ZiLOG, Z80 Family CPU User Manual, web で入手可能です.
  2. シャープ(株), Z80ファミリーテクニカルマニュアル[1], 1983年.
  3. 柏谷栄一 佐野羊介 中村陽一 若島正敏, マイコン応用システム入門[ハード編], 東京電機大学出版局, 2005年
    図解Z80 マイコン応用システム入門 ハード編図解Z80 マイコン応用システム入門 ハード編
    柏谷 英一 中村 陽一 佐野 羊介 若島 正敏

    東京電機大学出版局 2000-05
    売り上げランキング : 417353

    Amazonで詳しく見る
    by G-Tools

更新履歴

2014年 ページの新規作成
2015年08月29日 動作の説明の記述完了


no counter