無償で使えてよりどりみどり!オープン・ソースIPコアの研究 IP コ アの 活用 技法 を 体験 PS/2コントローラでキーボードやマウスを接続する 横溝 憲治 Kenji Yokomizo キーボードやマウスは USB 接続タイプのものが一般的ですが,「FPGA にてっとり早くキーボードやマウスをつなげたい!」と いった場合は,USB よりも制御が簡単な PS/2 を使うのも有効です.USB に切り替わったとはいえ PC ショップを探せば,PS/2 接続のキーボードやマウスもまだまだ入手可能です.そこでここでは FPGA に PS/2 コントローラを実装し,キーボードやマウス を接続してみます. 1 PS/2 インターフェースの概要 ● PS/2 とは PS/2 ポートは IBM の PS/2 パソコンに用意された キーボードおよびマウス用のインターフェースです. PC/AT 互換機に装備されていたので,キーボードと マウスの標準的な接続方法として使われてきました. 図 1 は PS/2 ポートと FPGA の接続図です.信号は Vcc ,GND,CLK,DATA の 4 本があり,通信として 使う信号は CLK と DATA です. ● PS/2 ポートのプロトコル CLK と DATA はオープン・コレクタ信号でホスト, デバイスのいずれかが“L”レベルを出力すると信号が “L”レベルになり,どちらも“L”レベルを出力しない 場合はハイ・インピーダンス(以降 Hi-Z)となり,プ ルアップ抵抗によって“H”レベルになります. 通信の状態は CLK と DATA の信号レベルで決まり ま す.CLK=“H”,DATA=“H”は ア イ ド ル 状 態, CLK=“L”,DATA=“H”で 通 信 禁 止,CLK=“H”, DATA=“L”で送信要求になります.ホストからデバ イスへの送信パケットは 12 ビットで構成されスター ト(1 ビット,値 =0),データ(8 ビット),パリティ(1 ビット) ,ストップ(1 ビット,値 =1) ,アクノリッジ (1 ビット,値 =0)になります. ・ホストからデバイスへの転送 図 2 はホストからデバイスへの転送時の波形です. ①ア イドル状態からホストが CLK を“L”レベルにし ていったん通信禁止にします. ②ホ ストが CLK を Hi-Z にすると CLK=“H”になりま すが,DATA を“L”レベルにしてあるのでホスト からデバイスへの送信要求になります.また,ここ での DATA=“L”はそのままスタート・ビットとな ります. ③デバイスからクロックが送信されます. ④クロックの立ち下がり後にホストはデータを 1 ビッ トずつ送信します. ⑤デバイスはクロックの立ち上がりでデータを取り込 みます. ⑥ホストは 11 番目のデータとして DATA を Hi-Z にし てストップ・ビットを送信します. ⑦デ バイスは 11 個データを受信するとアクノリッジ として DATA を“L”レベルにします. ⑧転 送が終了するとデバイスは CLK を Hi-Z のままに して通信が終了します. プルアップ 5V 抵抗 ホスト FPGA レベル変換 バス・スイッチ Vcc DATA CLK 4 3 デバイス 2 1 DATA 保護抵抗 図1 65 PS/2ポート CLK GND PS/2 ポートと FPGA の接続例 PS/2 ポートの信号レベルは 5V なので FPGA と直結できない.この例ではレベル変換バス・スイッチ を利用して接続している. 130 PS/2 コントローラでキーボードやマウスを接続する
© Copyright 2024 Paperzz