キーボード⇔変換器⇔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本体とキーボード間で訂正してくれるので問題ない。
各バッファの容量とマイコンの処理速度がどれくらいあれば収まるか?
キーボードと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本体とキーボード間で訂正してくれるので問題ない。
各バッファの容量とマイコンの処理速度がどれくらいあれば収まるか?