キーボード⇔変換器⇔PC本体とのやり取りについて検討する。

 キーボードとPC本体、それぞれはPS/2インターフェースでシリアル通信を行う。このデータを加工するためには送受信するデータをいったんマイコン内部に蓄積しなければならない。2つのポートに関してポーリングを行うことになるので、以下の様な手順を考えた。

(1)キーボード⇔変換器について
 キーボードからの送信か、キーボードへの送信かを判定
 (1-a)キーボード→変換器
 0bit目を受信
 1bit目を受信
 2bit目を受信
 3bit目を受信
 4bit目を受信
 5bit目を受信
 6bit目を受信
 7bit目を受信
 8bit目(ODDパリティ)を受信
 キーボードからの受信バッファに蓄積
 キーボードからの受信モード解除
 (1-b)キーボード←変換器
 0bit目を送信
 1bit目を送信
 2bit目を送信
 3bit目を送信
 4bit目を送信
 5bit目を送信
 6bit目を送信
 7bit目を送信
 8bit目(ODDパリティ)を送信
 キーボードへの送信バッファから削除
 キーボードへの送信モード解除
(2)PC本体⇔変換器について
 本体からの送信か、本体への送信かを判定
 (2-a)PC本体→変換器
 0bit目を受信
 1bit目を受信
 2bit目を受信
 3bit目を受信
 4bit目を受信
 5bit目を受信
 6bit目を受信
 7bit目を受信
 8bit目(ODDパリティ)を受信
 PC本体からの受信バッファに蓄積
 PC本体からの受信モード解除
 (2-b)PC本体←変換器
 0bit目を送信
 1bit目を送信
 2bit目を送信
 3bit目を送信
 4bit目を送信
 5bit目を送信
 6bit目を送信
 7bit目を送信
 8bit目(ODDパリティ)を送信
 PC本体への送信バッファから削除
 PC本体への送信モード解除
 (3)キーボードからの受信バッファに蓄積がある場合
 データ変換
 PC本体への送信バッファに転送
 キーボードからの受信バッファから削除
 PC本体への送信モード設定
(4)PC本体からの受信バッファに蓄積がある場合
 キーボードへの送信モード設定
※(1)〜(4)繰り返し、これらのループを数十μS以内で回す(PS/2インターフェース観測後決定)

 ODDパリティのエラーがあった場合は?変換器で加工せずそのまま渡すことにより、PC本体とキーボード間で訂正してくれるので問題ない。

 各バッファの容量とマイコンの処理速度がどれくらいあれば収まるか?