Microprocessor-8279-programmable-keyboard
8279-プログラマブルキーボード
8279プログラマブルキーボード/ディスプレイコントローラーは、キーボードとCPUを接続するIntelによって設計されています。 キーボードは最初にキーボードをスキャンし、キーが押されたかどうかを識別します。 次に、押されたキーの相対的な応答をCPUに送信し、その逆も行います。
キーボードとCPUのインターフェースはいくつありますか?
キーボードは、割り込みモードまたはポーリングモードでインターフェイスできます。 *割り込みモード*では、キーが押された場合にのみプロセッサにサービスが要求されます。そうでない場合、CPUはメインタスクを続行します。
- ポーリングモード*では、CPUは8279の内部フラグを定期的に読み取り、キーが押されたかどうかを確認します。
8279キーボードの仕組み
キーボードは最大64個のキーで構成されており、キーコードを使用してCPUと接続されています。 これらのキーコードはデバウンスされ、8バイトのFIFORAMに保存され、CPUからアクセスできます。 FIFOに8文字以上が入力されている場合、一度に8個以上のキーが押されたことを意味します。 これは、オーバーランステータスが設定されている場合です。
FIFOに有効なキーエントリが含まれている場合、CPUは割り込みモードで中断されます。それ以外の場合、CPUはエントリを読み取るためにポーリングでステータスをチェックします。 CPUがキーエントリを読み取ると、FIFOが更新され、キーエントリがFIFOからプッシュされて、新しいエントリ用のスペースが生成されます。
アーキテクチャと説明
I/O制御とデータバッファ
このユニットは、マイクロプロセッサを通るデータの流れを制御します。 Dが低いときにのみ有効になります。 そのデータバッファは、システムの外部バスとマイクロプロセッサの内部バスを接続します。 ピンA0、RD、およびWRは、コマンド、ステータス、またはデータの読み取り/書き込み操作に使用されます。
制御およびタイミングレジスタとタイミング制御
このユニットには、キーボード、ディスプレイモード、およびCPUによってプログラムされたその他の操作を保存するためのレジスタが含まれています。 タイミングおよび制御ユニットは、回路の動作のタイミングを処理します。
スキャンカウンター
2つのモードがあります。 *エンコードモード*およびデコードモード。 エンコードモードでは、カウンタは、キーボードとディスプレイのスキャンラインを提供するために外部でデコードされるバイナリカウントを提供します。
- デコードスキャンモード*では、カウンターは最下位2ビットを内部でデコードし、SL〜0〜-SL〜3〜で4スキャンのうち1スキャンをデコードします。
リターンバッファー、キーボードデバウンス、およびコントロール
このユニットは最初にキーの閉鎖を行ごとにスキャンし、見つかった場合はキーボードデバウンスユニットがキーエントリをデバウンスします。 場合は、同じキーが検出され、そのキーのコードはSHIFT&CONTROLキーステータスとともにセンサーRAMに直接転送されます。
FIFO/センサーRAMおよびステータスロジック
このユニットは8バイトの先入れ先出し(FIFO)RAMとして機能し、押されたすべてのキーのキーコードがそのシーケンスに従ってRAMに入力されます。 ステータスロジックは、各FIFO読み取り操作の後、FIFOが空になるまで割り込み要求を生成します。
スキャンされたセンサーマトリックスモードでは、このユニットはセンサーRAMとして機能し、各行に対応するセンサーの行のステータスがマトリックスにロードされます。 センサーの状態が変わると、IRQラインがHighに変わり、CPUに割り込みます。
ディスプレイアドレスレジスタとディスプレイRAM
このユニットは、ディスプレイRAMに対してCPUによって現在読み書きされているワードのアドレスを保持するディスプレイアドレスレジスタで構成されています。
8279-ピンの説明
次の図は、8279のピン図を示しています-
データバスライン、DB〜0〜-DB〜7〜
これらは、CPUとの間でデータを転送するために使用される8つの双方向データバスラインです。
CLK
クロック入力は、マイクロプロセッサが必要とする内部タイミングを生成するために使用されます。
リセット
名前が示すように、このピンはマイクロプロセッサをリセットするために使用されます。
CSチップセレクト
このピンをLowに設定すると、読み取り/書き込み操作が許可されます。それ以外の場合は、このピンをHighに設定する必要があります。
A0
このピンは、コマンド/ステータス情報の転送を示します。 低い場合、データの転送を示します。
RD、WR
この読み取り/書き込みピンにより、データバッファはデータバスを介してデータを送受信できます。
IRQ
FIFOセンサーRAMにデータがある場合、この割り込み出力ラインはHighになります。 割り込みラインは、各FIFO RAM読み取り操作でローになります。 ただし、FIFO RAMにCPUによって読み取られるキーコードエントリがさらに含まれている場合、このピンは再びHighになり、CPUへの割り込みを生成します。
V〜ss〜、V〜cc〜
これらは、マイクロプロセッサの接地線と電源線です。
SL〜0〜-SL〜3〜
これらは、キーボードマトリックスのスキャンと数字の表示に使用されるスキャンラインです。 これらの行は、モード制御レジスタを使用して、エンコードまたはデコードとしてプログラムできます。
RL〜0〜-RL〜7〜
これらは、キーの一方の端子に接続されているリターンラインであり、キーのもう一方の端子は、デコードされたスキャンラインに接続されています。 これらの行は、キーが押されると0に設定されます。
シフト
Shift入力ラインのステータスは、スキャンされたキーボードモードのFIFOのすべてのキーコードとともに保存されます。 キーが閉じられて低く引き下げられるまで、内部で引き上げられて高く保たれます
CNTL/STB-制御/ストロボI/Pモード
キーボードモードでは、この行は制御入力として使用され、キーが閉じられるとFIFOに保存されます。 ラインは、ストローブ入力モードでFIFO RAMにデータを入力するストローブラインです。 内部プルアップがあります。 キーが閉じられてラインがプルダウンされます。
BD
空白の表示を表します。 数字の切り替え中にディスプレイをブランクにするために使用されます。
OUTA〜0〜– OUTA〜3〜およびOUTB〜0〜– OUTB〜3〜
これらは、2つの16x4または1つの16x8内部ディスプレイリフレッシュレジスタの出力ポートです。 これらのラインからのデータは、ディスプレイとキーボードをスキャンするスキャンラインと同期されます。
8279の動作モード
8279には、*入力モード*および*出力モード*の2つの操作モードがあります。
入力モード
このモードはキーボードからの入力を処理し、このモードはさらに3つのモードに分類されます。
- スキャンされたキーボードモード-このモードでは、エンコードされたスキャンまたはデコードされたスキャンを使用してキーマトリックスをインターフェイスできます。 エンコードされたスキャン、8 x 8キーボードまたはデコードされたスキャンでは、4 x 8キーボードをインターフェイスできます。 SHIFTおよびCONTROLステータスで押されたキーのコードは、FIFO RAMに保存されます。
- スキャンされたセンサーマトリックス-このモードでは、センサーアレイは、エンコーダーまたはデコーダースキャンのいずれかを使用して、プロセッサとインターフェイスできます。 エンコーダースキャンでは、8x8センサーマトリックスまたはデコーダースキャン4x8センサーマトリックスとインターフェイスできます。
- ストロボ入力-このモードでは、制御ラインが0に設定されている場合、戻りラインのデータはバイトごとにFIFOに保存されます。
出力モード
このモードは、ディスプレイ関連の操作を扱います。 このモードはさらに2つの出力モードに分類されます。
- ディスプレイスキャン-このモードでは、8/16文字多重ディスプレイをデュアル4ビット/シングル8ビットディスプレイユニットとして編成できます。
- Display Entry -このモードでは、右側/左側から表示するデータを入力できます。