(57)【特許請求の範囲】
【請求項１】
複数のＸ信号線と複数のＹ信号線の各交点上に配置される複数のキーと、前記キーの押下を検出するためのＸ信号を前記Ｘ信号線に出力し、前記キーの押下時に前記Ｘ信号線と前記Ｙ信号線の導通により発生するＹ信号が前記Ｙ信号線から入力された場合に、キーを特定可能なスキャンコードを情報処理装置へ出力するコントローラとを備えたキーボードであって、
前記複数のキーは、
物理的な配置変更が可能であり、前記スキャンコードを有する第１のキーと、前記スキャンコードを有しない第２のキーとが混在しており、
前記コントローラは、
前記Ｙ信号の波形を基に、前記第１のキー又は前記第２のキーのどちらが押下されたかを判断し、
前記第１のキーが押下されたと判断した場合は、前記Ｙ信号に含まれるスキャンコードを、前記情報処理装置へ出力し、
前記第２のキーが押下されたと判断した場合は、前記Ｙ信号が発生した交点の位置に対応して予め定められたスキャンコードを、前記情報処理装置へ出力することを特徴とするキーボード。
【請求項２】
前記第１のキーは、
前記Ｘ信号が入力されるＸ信号入力端子と、
前記Ｙ信号が出力されるＹ信号出力端子と、を有し、
前記第１のキーが押下された場合、前記Ｘ信号入力端子よりも先に前記Ｙ信号出力端子が前記交点に接触することを特徴とする請求項１記載のキーボード。
【請求項３】
前記Ｙ信号は、
前記第１のキーが押下された場合、High、Low、前記スキャンコードの順に出力され、
前記第２のキーが押下された場合、Highが出力されることを特徴とする請求項１又は２記載のキーボード。
【請求項４】
前記コントローラは、
検出した前記Ｙ信号がHighであると判断した場合、予め定められた時間後に再度Highであるか否かを判断し、
前記再度の判断の結果、当該Ｙ信号がHighである場合には、前記第２のキーが押下されたと判断し、
前記再度の判断の結果、当該Ｙ信号がLowである場合には、前記第１のキーが押下されたと判断することを特徴とする請求項１から３のいずれか１項に記載のキーボード。
【請求項５】
前記コントローラは、
前記Ｙ信号に含まれるスキャンコード、又は、前記Ｙ信号が発生した交点の位置に対応して予め定められたスキャンコードを一時記憶しておき、
前記一次記憶の後で前記Ｙ信号を新たに検出した場合、当該Ｙ信号を基に特定したスキャンコードと、一時記憶しておいた前記スキャンコードとが一致するか否かを判断し、
一致する場合に、前記スキャンコードを前記情報処理装置へ出力することを特徴とする請求項１から４のいずれか１項に記載のキーボード。
【請求項６】
複数の信号線の各交点上に配置される複数のキーを有するキーボードに備えられ、キー押下時の信号線導通により発生する信号を検出した場合に、キーを特定可能なスキャンコードを情報処理装置へ出力するキーボード制御装置であって、
前記複数のキーは、
物理的な配置変更が可能であり、前記スキャンコードを有する第１のキーと、前記スキャンコードを有しない第２のキーとが混在しており、
前記キーボード制御装置は、
検出した前記信号の波形を基に、前記第１のキー又は前記第２のキーのどちらが押下されたかを判断し、
前記第１のキーが押下されたと判断した場合は、検出した前記信号に含まれるスキャンコードを、前記情報処理装置へ出力し、
前記第２のキーが押下されたと判断した場合は、検出した前記信号が発生した交点の位置に対応して予め定められたスキャンコードを、前記情報処理装置へ出力することを特徴とするキーボード制御装置。
【請求項７】
複数の信号線の各交点上に配置される複数のキーを有するキーボードに備えられ、キー押下時の信号線導通により発生する信号を検出した場合に、キーを特定可能なスキャンコードを情報処理装置へ出力するコンピュータに実行させるためのプログラムであって、
前記複数のキーは、
物理的な配置変更が可能であり、前記スキャンコードを有する第１のキーと、前記スキャンコードを有しない第２のキーとが混在しており、
前記コンピュータに、
検出した前記信号の波形を基に、前記第１のキー又は前記第２のキーのどちらが押下されたかを判断する処理と、
前記第１のキーが押下されたと判断した場合は、検出した前記信号に含まれるスキャンコードを、前記情報処理装置へ出力する処理と、
前記第２のキーが押下されたと判断した場合は、検出した前記信号が発生した交点の位置に対応して予め定められたスキャンコードを、前記情報処理装置へ出力する処理と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザによるキー操作を受け付けるキーボード、キーボード制御装置及びプログラムに関する。
【背景技術】
【０００２】
本発明に関連する技術として、例えば特許文献１に開示されているキーボードがある。この特許文献１のキーボードは、全てのキーにおいてそれぞれ異なる識別子を予め組み込んでおき、所定のキーが操作された場合、そのキーに組み込まれた識別子を基にキーコードを発生する。これにより、ソフトウェア的な対策を必要とすることなく、ハードウェア（物理）的なキーの配置変更を実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−０２０９７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般的に、キーボードにおいてユーザが配置を変更するキーは、所定の機能を指定するためのキーであることが多い。このようなキーの例としては、Escキー、Fnキー、ファンクションキー、半角／全角キー、Insertキー、Ctrlキーなどが挙げられる。その一方で、アルファベット（かな）、数字、記号などを入力するためのキーについては、ユーザが配置の変更を行うことは少ない。
【０００５】
しかしながら、特許文献１のキーボードは、全てのキーに識別子を組み込む構成であるので、ユーザが配置の変更を行うことが少ないキーにまで識別子が組み込まれることになる。よって、キーボードの製作工程が多くなるという問題がある。
【０００６】
本発明は、上記事情に鑑みてなされたものであり、キーボードの製作工程を減少させつつ、ハードウェア的なキーの配置変更を実現できるキーボード、キーボード制御装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
かかる目的を達成するために、本発明のキーボードは、複数のＸ信号線と複数のＹ信号線の各交点上に配置される複数のキーと、キーの押下を検出するためのＸ信号をＸ信号線に出力し、キーの押下時にＸ信号線とＹ信号線の導通により発生するＹ信号がＹ信号線から入力された場合に、キーを特定可能なスキャンコードを情報処理装置へ出力するコントローラとを備えたキーボードであって、複数のキーは、物理的な配置変更が可能であり、スキャンコードを有する第１のキーと、スキャンコードを有しない第２のキーとが混在しており、コントローラは、Ｙ信号の波形を基に、第１のキー又は第２のキーのどちらが押下されたかを判断し、第１のキーが押下されたと判断した場合は、Ｙ信号に含まれるスキャンコードを、情報処理装置へ出力し、第２のキーが押下されたと判断した場合は、Ｙ信号が発生した交点の位置に対応して予め定められたスキャンコードを、情報処理装置へ出力することを特徴とする。
【０００８】
本発明のキーボード制御装置は、複数の信号線の各交点上に配置される複数のキーを有するキーボードに備えられ、キー押下時の信号線導通により発生する信号を検出した場合に、キーを特定可能なスキャンコードを情報処理装置へ出力するキーボード制御装置であって、複数のキーは、物理的な配置変更が可能であり、スキャンコードを有する第１のキーと、スキャンコードを有しない第２のキーとが混在しており、キーボード制御装置は、検出した信号の波形を基に、第１のキー又は第２のキーのどちらが押下されたかを判断し、第１のキーが押下されたと判断した場合は、検出した信号に含まれるスキャンコードを、情報処理装置へ出力し、第２のキーが押下されたと判断した場合は、検出した信号が発生した交点の位置に対応して予め定められたスキャンコードを、情報処理装置へ出力することを特徴とする。
【０００９】
本発明のプログラムは、複数の信号線の各交点上に配置される複数のキーを有するキーボードに備えられ、キー押下時の信号線導通により発生する信号を検出した場合に、キーを特定可能なスキャンコードを情報処理装置へ出力するコンピュータに実行させるためのプログラムであって、複数のキーは、物理的な配置変更が可能であり、スキャンコードを有する第１のキーと、スキャンコードを有しない第２のキーとが混在しており、コンピュータに、検出した信号の波形を基に、第１のキー又は第２のキーのどちらが押下されたかを判断する処理と、第１のキーが押下されたと判断した場合は、検出した信号に含まれるスキャンコードを、情報処理装置へ出力する処理と、第２のキーが押下されたと判断した場合は、検出した信号が発生した交点の位置に対応して予め定められたスキャンコードを、情報処理装置へ出力する処理と、を実行させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、キーボードの製作工程を減少させつつ、ハードウェア的なキーの配置変更を実現することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るキーボードの構成例を示す図である。
【図２】本発明の一実施形態に係るキーの構成例を示す図である。
【図３】本発明の一実施形態に係るコントローラの動作例を示すフローチャートである。
【図４】本発明の一実施形態に係るコントローラにおいて入出力される信号の波形例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態（実施形態）について説明する。本実施形態のキーボードは、スキャンコード（識別子）を有するキーと、スキャンコードを有しないキー（従来の一般的な構造のキー）とを混在させ、スキャンコードを有するキーのハードウェア的な配置変更に対応することを特徴とする。以下、この特徴について、添付図面を参照しながら具体的に説明する。
【００１３】
図１は、本実施形態のキーボードの構成例を示す図である。図１に示すように、本実施形態のキーボードは、コントローラ（キーボード制御装置の一例）、８本〜１８本（図中では１４本以上としている）のＸ線（Ｘ信号線）、８本のＹ線（Ｙ信号線）を有する。Ｘ線とＹ線の交点はマトリックス配列となっており、各交点上にはキーが配置される。例えば、Ｙ線の９とＸ線の２３との交点には、アルファベットの「Ｄ」を入力可能なキーが配置される。キーの構成については図２を用いて後述する。なお、Ｘ線及びＹ線（交点）の数は、図１に示す数に限定されない。
【００１４】
コントローラは、信号入出力手段１１、判断手段１２、スキャンコード記憶手段１３、スキャンコード出力手段１４を備える。
【００１５】
信号入出力手段１１は、Ｘ線に対してHigh信号を出力し、また、Ｙ線からHigh信号又はLow信号を入力する。本実施形態では、コントローラからＸ線へ出力される信号を「Ｘ信号」と呼び、キー押下による信号線導通によりＹ線からコントローラへ入力される信号をＹ信号と呼ぶ。Ｘ信号は、キーの押下を検出するための信号として、各Ｘ線に対し、順番に定期的に信号入出力手段１１から出力される。これをスキャンという。Ｙ信号は、キーの押下時にＸ線とＹ線の信号線導通により発生し、Ｙ線から信号入出力手段１１へ入力される。
【００１６】
判断手段１２は、各種判断を行うとともに、各手段（信号入出力手段１１、スキャンコード記憶手段１３、スキャンコード出力手段１４）の制御を行う。判断及び制御の詳細については図４を用いて後述する。
【００１７】
スキャンコード記憶手段１３は、Ｘ線とＹ線の交点の位置毎に、その位置に配置されているキーを示すスキャンコード（キーを特定可能なコード。キーコード）を対応付けて予め記憶している。例えば、Ｙ線の９とＸ線の２３との交点の位置には、アルファベットの「Ｄ」のキーであることを示すスキャンコードが対応付けられて記憶されている。このように、スキャンコード記憶手段１３は、図１に示す全ての交点の位置に対し、それぞれ異なるスキャンコードを対応付けて記憶している。
【００１８】
スキャンコード出力手段１４は、判断手段１２の判断により確定されたスキャンコードを、本実施形態のキーボードと接続される情報処理装置へ出力（送信）する。情報処理装置の例としては、例えばパーソナルコンピュータが挙げられる。なお、スキャンコードの送信は、無線又は有線のどちらを用いてもよい。
【００１９】
次に、図１に示す各交点に配置されるキーの構成について説明する。図２は、１つのキーの側面を模式的に示している。図２に示すように、キーは、キートップ、ＳＲＯＭ（シリアルロム）、Ｘ信号入力端子、Ｙ信号出力端子、ゴムラバー、ＧＮＤ（グランド）を備える。
【００２０】
キートップは、ユーザにより押下される部分である。キートップの上部表面（押下される面）には、そのキーを示す表示（例えば「Esc」や「F4」など）が付されている。キートップの内部には、ＳＲＯＭが備えられている。ＳＲＯＭには、当該キーを示すスキャンコード（キーを特定可能なコード）が予め記憶されている。また、このＳＲＯＭには、Ｘ信号が入力されるＸ信号入力端子と、Ｙ信号が出力されるＹ信号出力端子とが接続されている。また、キートップの下方には、伝導性のゴムラバー（弾性部材の一例）が配置されている。ゴムラバーは、キーが押下されていないときはキートップを上方に押し上げた状態にし、キーが押下されると収縮する。図２に示すキーは、押下されていない状態である。この状態においてユーザによりキートップが押下されると、ゴムラバーが収縮し、キートップが下方に沈む。これにより、Ｙ信号出力端子、Ｘ信号入力端子の順で交点に接続し、信号線が導通する。なお、キー押下の際に、Ｙ信号出力端子、Ｘ信号入力端子の順に接続するようにする理由は、出力されるＹ信号の波形を安定させるためである。このようにして、キー押下によりＸ信号出力端子及びＸ信号入力端子が交点に接続されると、Ｘ信号入力端子に対し、コントローラからのＸ信号が入力される。この入力を受けて、Ｙ信号出力端子から、Ｙ信号がコントローラへ出力される。このＹ信号は、High、Low、スキャンコード（ＳＲＯＭに記憶されているもの。７bit）の順に出力される。
【００２１】
図２に示す構成は、ユーザが配置を変更することが多いキーに具備される。このようなキーの例としては、所定の機能を指定するためのキー（機能指定キー）が挙げられ、例えば、Escキー、Fnキー、ファンクションキー、半角／全角キー、Insertキー、Ctrlキーなどが挙げられる。一方、アルファベット（かな）、数字、記号などを入力するためのキー（文字記号入力キー）については、ユーザが配置の変更を行うことは少ないので、図２に示す構成は具備しなくてもよい。その場合、文字記号入力キーは、図２に示すＳＲＯＭ（スキャンコード）を有しない、従来一般的に使用されているキー構成となる。このキー構成では、キー押下によりＸ信号出力端子及びＸ信号入力端子が交点に接続して信号線が導通されると、Ｘ信号入力端子に対し、コントローラからのＸ信号が入力される。この入力を受けて、Ｙ信号出力端子から、Ｙ信号がコントローラへ出力される。このＹ信号は、Highが出力される。
【００２２】
このようなことから、本実施形態のキーボードでは、スキャンコードを有するキー（第１のキー。例えば機能指定キー）と、スキャンコードを有しないキー（第２のキー。例えば文字記号入力キー）とが混在する構成となる。また、スキャンコードを有するキー同士は、物理的な配置の変更が可能なように構成されている。例えば、ユーザがEscキーとF7キーの位置を互いに入れ替えたい場合、ユーザは、EscキーとF7キーをキーボードから抜き取り、Escキーを元のF7キーの位置へ差し込み、F7キーを元のEscキーの位置へ差し込むことができる。これにより、同じ位置に配置されたキーを押下したときにスキャンコード出力手段１４が出力するスキャンコードが変更される。一方、スキャンコードを有しないキーは、物理的な配置の変更が可能なように構成されていなくてもよい。スキャンコードを有しないキーの物理的な配置を変更したとしても、同じ位置に配置されたキーを押下したときにスキャンコード出力手段１４が出力するスキャンコードは変更されない。
【００２３】
次に、上記のように構成された本実施形態のキーボードにおける動作例について説明する。図３は、コントローラの動作を示すフローチャートである。
【００２４】
信号入出力手段１１は、キーの押下を検出するため、各Ｘ線に対し、所定の順番でＸ信号（High信号）を出力する（Ｓ１）。これにより１回目のスキャンが開始される。なお、このときのＸ信号の波形は、図４に示すようになる。
【００２５】
ここで、判断手段１２は、信号入出力手段１１へのＹ信号の入力を検出するため、０．５bit待機する（Ｓ２）。この０．５bitは予め定められた値であり、この値に限定されるものではない。
【００２６】
信号入出力手段１１にＹ信号が入力されると、判断手段１２は、そのＹ信号がHighであるか否かを判断する（Ｓ３）。このときのタイミングは、図４に示す（１）である。
【００２７】
Ｓ３の判断の結果、入力されたＹ信号が、図４のＹ信号ａに示すようにLowである場合（Ｓ３／ＮＯ）、判断手段１２は、いずれのキーも押下されていないとして、処理を終了する。その後、再びスキャンが開始される。
【００２８】
Ｓ３の判断の結果、入力されたＹ信号が、図４のＹ信号ｂ又はｃに示すようにHighである場合（Ｓ３／ＹＥＳ）、判断手段１２は、いずれかのキーが押下されたとして、引き続き、信号入出力手段１１へのＹ信号の入力を検出するため、１bit待機する（Ｓ４）。この１bitは予め定められた値であり、この値に限定されるものではない。
【００２９】
信号入出力手段１１にＹ信号が入力されると、判断手段１２は、そのＹ信号がHighであるか否かを判断する（Ｓ５）。このときのタイミングは、図４に示す（２）である。
【００３０】
Ｓ５の判断の結果、入力されたＹ信号が、図４のＹ信号ｂに示すようにHighである場合（Ｓ５／ＹＥＳ）、判断手段１２は、スキャンコードを有していないキーが押下されたとして、スキャンコード記憶手段１３から、当該Ｙ信号が発生した交点の位置に該当するスキャンコードを読み出す（Ｓ６）。
【００３１】
Ｓ５の判断の結果、入力されたＹ信号が、図４のＹ信号ｃに示すようにLowである場合（Ｓ５／Ｎｏ）、判断手段１２は、スキャンコードを有するキーが押下されたとして、Lowの後に入力される７bitのスキャンコードを取得する（Ｓ１０）。この７bitの信号は、HighとLowが混在する信号である。
【００３２】
次に、判断手段１２は、Ｓ６で読み出したスキャンコード又はＳ１０で取得したスキャンコードを、一時的に記憶する（Ｓ７）。
【００３３】
次に、判断手段１２は、情報処理装置へ出力するスキャンコードを確定するために、前回のスキャンで一時記憶したスキャンコードと、今回のスキャンで一時記憶したスキャンコードとが一致するか否かを判断する（Ｓ８）。ここでは、１回目のスキャンであるので、前回のスキャンで一時記憶したスキャンコードが存在しない。よって、Ｓ８の判断の結果は不一致となり（Ｓ８／ＮＯ）、処理は終了される。
【００３４】
続いて、図３のＳ１から２回目のスキャンが開始される。Ｓ７までの処理は上記と同様であるので、説明を省略する。
【００３５】
そして、判断手段１２は、前回（１回目）のスキャンで一時記憶したスキャンコードと、今回（２回目）のスキャンで一時記憶したスキャンコードとが一致するか否かを判断する（Ｓ８）。
【００３６】
Ｓ８の判断の結果、２つのスキャンコードが一致しなかった場合（Ｓ８／ＮＯ）、判断手段１２は、情報処理装置へ出力するスキャンコードを確定できないとして、処理を終了する。その後、再びスキャンが開始される。なお、２つのスキャンコードが一致しなかった場合の例としては、２回目のスキャンのときに、１回目のスキャンのときと異なるキーが押下された場合やいずれのキーも押下されなかった場合（スキャンコードが一時記憶されなかった場合）が挙げられる。
【００３７】
Ｓ８の判断の結果、２つのスキャンコードが一致した場合（Ｓ８／ＹＥＳ）、判断手段１２は、情報処理装置へ出力するスキャンコードを確定できたとして、当該スキャンコードを情報処理装置へ出力する（Ｓ９）。情報処理装置は、そのスキャンコードを基に処理を行う。
【００３８】
以上説明したように、本実施形態のキーボードによれば、スキャンコードを有するキーと、スキャンコードを有しないキーとを混在させ、それらのキーから出力されるＹ信号の波形の違いを基に、どのキーが押下されたかを判断する構成としている。この構成により、本実施形態のキーボードは、例えば特許文献１のように全てのキーに識別子（スキャンコード）を組み込む必要がないので、キー（キーボード）の製作工程を減少させることができる。よって、キーボードの製作コストの削減に繋がる。
【００３９】
また、本実施形態のキーボードによれば、スキャンコードを有するキーは物理的な配置変更が可能である構成としている。この構成により、本実施形態のキーボードは、ソフトウェア的な対策をとる必要なく、ハードウェア的なキーの配置変更を実現できる。
【００４０】
以上、本発明の実施形態について説明したが、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変形が可能である。
【００４１】
例えば、上述した実施形態における動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。
【００４２】
ソフトウェアによる処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させてもよい。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させてもよい。
【００４３】
例えば、プログラムは、記録媒体としてのハードディスクやＲＯＭ（Read Only Memory）に予め記録しておくことが可能である。あるいは、プログラムは、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＭＯ（Magneto Optical）ディスク、ＤＶＤ（Digital Versatile Disc）、ＵＳＢ（Universal Serial Bus）メモリ、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的、あるいは、永続的に格納（記録）しておくことが可能である。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することが可能である。
【００４４】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送してもよい。または、ＬＡＮ（Local Area Network）、インターネットといったネットワークを介して、コンピュータに有線で転送してもよい。コンピュータでは、転送されてきたプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることが可能である。
【００４５】
また、上記実施形態で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。
【符号の説明】
【００４６】
１１    信号入出力手段
１２    判断手段
１３    スキャンコード記憶手段
１４    スキャンコード出力手段
【図１】
0005463230.tif 000002
【図２】
0005463230.tif 000003
【図３】
0005463230.tif 000004
【図４】
0005463230.tif 000005