• ベストアンサー

FPGAによるキーボードLSIの実現

お世話になっております. 現在PS/2,もしくはUSBのキーボード内部に使用されている LSIの代わりにFPGAを用いて実現する事を考えております. キーボードのIPは探してみるといくつかあるのですが, 基本的にキーを押したスキャンコードをシリアルに変更したものを 受け取って処理するIPが殆どの様です. ここを,キーを押した信号を直接受けとってPS/2のシリアルデータとして 変換するところをFPGAで実現したいのですが,そういったIPはあるでしょうか. 御存じであれば教えていただければ幸いです.  それでは失礼いたします.

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8536/19410)
回答No.1

IP coreのオープンソースのサイト http://opencores.org/ とかにあったりしないかな? >ここを,キーを押した信号を直接受けとってPS/2のシリアルデータとして >変換するところをFPGAで実現したいのですが,そういったIPはあるでしょうか. キーボードに「キーを押した信号」なんて、存在しません。 キーボードの配線は、縦と横のメッシュ状の配線がしてあって、縦と横の交点にキースイッチがある構造をしています。 キーを押すと「縦と横がショートする」ので、横の配線に順に電気を流してみて、縦の配線がどうなったかで、キーが押されたかを判断します。 回路の例。 http://www.ei.fukui-nct.ac.jp/~t-saitoh/exp/h8/key-matrix.html んで、キーが128個なら、出力7ビット、入力8ビットのI/Oがあれば実現できます。 プログラムは 出力0のみHighにして、入力0~7を取り込み、ダイオードの特性に注意して、一定時間のタイムラグを取る。 出力1のみHighにして、入力0~7を取り込み、ダイオードの特性に注意して、一定時間のタイムラグを取る。 上記を出力0~6まで繰り返し、それを「1スキャン分」として記録する。 前回のスキャンと今回のスキャンで、状態変化が起きていたら、キーのオン、キーのオフとして処理する。 ってのを延々と繰り返すだけです。 キーのオン、キーのオフの処理では「出力0がHighの時に入力0がLowなら、物理スイッチ0番、入力1がLowなら物理スイッチ1番」のように、物理スイッチ0~127番までの、128個のスイッチを処理できます。 あとは http://hp.vector.co.jp/authors/VA037406/html/ps2interface.htm の「スキャンコード送信」に合わせて送信データを生成して、シリアル転送するだけです。 実は、この「送信データ生成」の所では、CAPSキーの処理とか、2バイト系コードの生成とか、キーリピート設定にあわせたMakeとBreakの生成とか、色々と面倒な事が山盛りなので、FPAGでIPを作ると死ねると思います。 PS/2キーボードって、データを送出するだけじゃなくてコマンドの受信もしないといけないので、それも忘れてはいけません。 なお、キーボードは「LSI化」って言うより「ワンチップマイコン化」されてて、チップの中には、複雑なプログラムが書き込まれたROM、データ記録用のRAM、定期的な処理を行う為のタイマ、タイマからの割り込みを処理する割り込み回路、シリアルポート、パラレルポートが入っています。 ぶっちゃけて言えば、キーボードの中には、月に行ったアポロ宇宙船のコンピューターよりも高性能なコンピューターが入っています。 「FPGAでどうこう出来ると思ったら大間違い」なので、マジにFPGAで作るなら「軽く3回は死ねる覚悟」で挑みましょう。

kukky
質問者

補足

詳細なキーボードの動作を教えていただきありがとうございます. そうですね,コマンドのところが厄介そうです. これをやってくれるようなIPが無いかと思っておりました. やりたい事は,PS/2キーボードに回路的に手を加えたいのですが それをFPGAで実現しようと思っておりました. IP等が無いような場合,何か良い方法はありますかね?  それでは失礼いたします.

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • キーボードの入力がおかしくなしました。

    キーボードの直接入力またはローマ字入力で / の右にあるキー(かな入力で「ろ」)のキーを 押すと(¥)が打ち込まれてしまい困っています。 ちなみに¥のキーはちゃんと¥が打ち込まれます。 ドライバを入れなおしても治りませんでした。 PS/2キーボードです。 ・スキャンコードでは正しいコードを読み取っている。 ・スクリーンキーボードで打ってみても¥が打ち込まれる。 ・コントロールパネルの「時計、言語、および地域の設定」でキーボードの設定でリセットをしても治らなかった。 ・かな入力では(ろ)と打ち込める。 レジストリやスキャンコードマップ関連なのでしょうか?

  • キーボードがおかしい

    先日キーボードがおかしく、原因がマザーボード側とキーボードをつなぐプラグの中のピンが曲がっているらしくキーボード操作が出来ませんでした。 その後、USBからPS/2に変換できるケーブルでつなぎましたが出来ませんでしたので予備のキーボードで同じ様につなぐと動きました。 ただ今までと少し違って、半角と全角の切り替えがありますよね?ESCの下のです。あれを押すと‘ と言う点が出て英語とかなの切り替えが出来ません。その他にカナの変換キーがあると思いますがそれも利きません。 スペースキーで変換しなければいけません。 また自分はFPSのPCゲームをするのですが、時折、一瞬キーが利かなくなってやられる時があります。反応がおかしいのです。 これはどうしてでしょうか?キーボードを変えれば直るでしょうか? 現在はUSB→変換PS/2→予備キーボードと言う接続です。

  • キーボードの変換が・・・

    先日スパイスイーパーを入れてからキーボードが変なんです。 スパイスイーパーのせいか分からないのですが、スキャンした際に何かを削除したのですが、それからキーボードの変換キーを押しても全然変換されず、スペースキーでしか変換できません。 又、カタカナひらがなキーもなにも反応ありません。 全角/半角キーもいうことききません。 なので凄い不便なんです。 どうすれば元に戻るのか教えて下さい。

  • パソコンのキーボード、シリアル(PS/2)ポートの無線化は可能ですか?

    パソコンのキーボード、シリアル(PS/2)ポートの無線化は可能ですか? パソコンのキーボードのインターフェースでシリアル(PS/2)ポートを使っているのですが、 これを無線化することって可能なのでしょうか? 無線マウスでUSBをPS/2に変換するアダプタなどは良く見かけます。

  • キーボードの「無変換」キーが使えません!

    お世話になります。 先日、中古ショップでキーボードを買いました。そのキーボードの「無変換」ボタンが使用できません。以前のキーボードでは日本語入力で、ひらがなをカタカナに変換する時によく使用していましたので、困っています。 何か、「無変換」キーを使うことのできる「設定があるのでしょうか。 また、キー自体が悪いかどうか、調べる方法はないでしょうか。 ちなみに、当該キーボードはPS2接続で、私のパソコンにはPS2端子がありません(標準のキーボードもUSB接続)ので、USB端子からPS2に変換するコネクタを使用して接続しています。Gatewayのキーボードです。 (そのキーボードには、メールやコピー、ボリュームアップ&ダウン等、様々な機能がついていますが、それらも使用できません。ドライバを探したのですが、メーカーホームページではわかりませんでした。)

  • PS2 キーボードでうまく変換できない

    「~」が「shift+へ」で変換される106?仕様なのですがキーは109個あります。 109仕様にするにはどうしたらよろしいでしょうか? ちなみにデバイス名は、 101/102英語キーボードまたはMicrosoft Natural PS/2キーボード と表示されています。 端子はPS/2です。

  • キーボードの変換がおかしく

    昨日セーフティーモードで起動してシステムの復元などをおこなった後からキーボードの変換がおかしくなって半角/全角キーを押しても変換できず、 Alt+半角/全角キー でないと変換できなかったり @ を押すと 「 がでてきたりで… 一応調べて101キーボード配列になっているかも知れないと分かったんで http://support.microsoft.com/kb/881890/JA/ などを参照にして対処してみたんですが9番の ドライバを選択します。 [互換のあるハードウェアを表示] チェックボックスをクリックしてチェックを外し、[製造元] ボックスの一覧から [(標準キーボード)] をクリックします。次に、[モデル] ボックスの一覧から [日本語 PS/2 キーボード (106/109 キー Ctrl+英数)] をクリックし、[次へ] をクリックします。 の[モデル] ボックスの一覧に[日本語 PS/2 キーボード (106/109 キー Ctrl+英数)]がありません。 HIDキーボードデバイス というのしかでてこないんですがどうしたらようでしょうか? アドバイス宜しくお願いします。

  • キーボードの設定

    実は昨日セキュリティソフトをNIS2006からKASPERSKY-IS6.0に入れ替えたので、 昨夜は完全スキャンをして、 今朝再起動したところキーボードの配列が変わってしまい 漢字変換もこれまでスペースキーの右の前候補変換キーでは変換できなくなりました。 *今はスペースキーで変換していますが半角全角のキーを押すと‘になったりSHIFTと2で@になります。 *PC→DELLラップトップ *言語ソフト→標準・MS-IMEスタンダード2003 それでこちらの既出の質問の回答を頼りに調べてみますと 私のPCのデバイスマネージャーのキーボードが 101/102英語キーボードまたはMicrosoftNaturalPS/2キーボードになっていて、 その他の選択肢がない状態でした。 これを元の日本語キーボードに設定しなおすにはどうすればよいのでしょうか? どうぞよろしくお願いします。

  • キーボードの ふぐあい について

    キーボードの キーが ちがうもじ に へんかん されます M=0 J=1 K=2 L=3 U=4 I=5 O=6 と へんかん され もじが うてません シフトボタンを おしても 7 8 9 = のキーは はんのう しません いまも もじコードひょうから にゅうりょくしています たすけてください

  • キーボードドライバ

    「日本語PS/2キーボード(106/109キーCtrl+英数)」というドライバが使えなくなりました プロパティを見ると(コード10)とでてます 状況としてはネットゲームしてたらいきなり再起動してそのあとキーボードが使えなくなりました そのあとトラブルシューティングやウィルス、アドウェアなどチェックしたのですが直りません 現在スクリーンキーボードでなんとかしてます