「組み込み」ならではの基礎知識 ――スタートアップ・ルーチンからハードウェアまで
表8-2は,表8-1で定義された番地とデバイスの関係を基に,アドレス・バスを通してデコーダへ入力する番地と,出力されるチップ・セレクト信号を示しています.このラッチとゲートを使った回路は図8-5のようになります.また,この回路が機能したときのタイミング図を図8-6に示します.おのおのの機器の番地に対して,リード命令やライト命令を実行すると,対応したチップ・セレクト信号が有効になります.リード信号線はゲートに,ライト信号線はラッチにつながれています.
スイッチの番地に対してリード命令を実行すると,ゲートに接続されたチップ・セレクト信号とリード信号が有効になります.そこで,ゲートが開いて,スイッチの状態がそのままデータ・バスに出てきます.CPUは,リード信号の立ち上がりでデータ・バスの値を取り込むことにより,スイッチの状態を読み取ります.
LEDの番地に対してライト命令を実行すると,ラッチに接続されているチップ・セレクト信号とライト信号が有効になり,ライト信号の立ち上がりで,ラッチはデータ・バスの値を取り込みます.そして,その値をラッチが出力し続けるため,データ・バスから値が消えた後もLEDは点灯/消灯し続けます.
アドレス・バス,データ・バスとも,複数の信号線を使って同時かつ並列(パラレル)に情報を伝えています.図8-5に示したように,ポートに接続されているデータ・バスの値をそのままI/Oの制御に利用する使いかたをパラレル・ポートと言います.パラレル・ポートは,制御にも通信にも使うことができます.
番地
|
チップ・セレクト
(ゲート) |
チップ・セレクト
(ラッチ) |
チップ・セレクト
(拡張用) |
... | 1 | 1 | 1 |
0xFF00 | 0(有効) | 1 | 1 |
0xFF01 | 1 | 0(有効) | 1 |
0xFF02 | 1 | 1 | 0(有効) |
... | 1 | 1 | 1 |