何らかのブログスマートフォン用の表示で見る何らかのブログ日記とか備忘録この広告は、90日以上更新していないブログに表示しています。2015-04-01OS上でキーボードを動かすまでの話CPU実験も無事終わり、余興の余興をやりたいと思い、かねてからの目標であったキーボードドライバを作ろうと思った。twoprocVHDL書けないのでtwoprocについて周りの優秀な人たちが教えてくれた資料やアドバイスをまとめる。優秀な人に言われた通りの手順で頑張ってく。8042キーボードコントローラについて調べた。ここのサイトが詳しい。コントローラ(KBC)こんな感じになるのかなgist.github.comPS/2プロトコルここのサイトにPS/2の仕様が記載されているので、まとめる。Mini-DINという規格で、Data,Clockの2本のシリアルバスで双方向通信を行う。キーボード→コントローラの通信DataとClockはどちらもHighの状態から始まる。デバイスが情報を送ろうとするとき最初にClockがHighであるかチェックし、もしLowなら中断する。'H'を送り続けていればよい。Clockの立ち上がりでDataは次のbitへ5マイクロ秒以内に切り替える。Dataの切り替えからClockの下がりまで5~25マイクロ秒以内でなければならない。'0'でDataを読み込めば良い訳だけど、立ち上がるまでの時間すなわち周波数が10~16.7kHzを幅があるので、falling_edgeの方がいいっぽい。中断されたとき用にキーボードは16byteの出力バッファを持っているらしい。最初にPS/2デバイスは常にClock信号を生成している。KBCがデータを送りたいとき、以下の手順に従う。