(57)【要約】【課題】  キー入力を処理する情報処理装置において、キー数に対する入力ポート数を極力低減するとともに、キー操作検出処理を簡単に行えるようにする。【解決手段】  情報処理装置は、キースイッチＳＷ１〜１５を有する入力手段と、該キースイッチの開閉状態を検出してキー情報に応じた処理を実行する中央処理装置５を備えている。各キースイッチには異なる２進数が予め付与されており、該キースイッチが閉じられた場合に該キースイッチに対応する２進数にエンコード化された各位のビット信号がビット線９乃至１２を通じて中央処理装置５の入力ポートＩＮ１〜４にそれぞれ供給されてキーが特定される。【選択図】  図３
2005284446.tif 000002
【特許請求の範囲】
【請求項１】
複数のキースイッチを有する入力手段と、該キースイッチの操作状態を検出してキー情報に応じた処理を実行するキー入力装置において、
各キースイッチには異なる２進数が予め付与されており、該キースイッチが操作された場合に該キースイッチに対応する２進数にエンコード化された各位のビット信号が入力検出手段に供給される
ことを特徴とするキー入力装置。
【請求項２】
請求項１に記載したキー入力装置において、
上記入力検出手段がＮ個の入力端子を有しており、（２Ｎ−１）個の上記キースイッチの操作に応じた２進数の信号が入力検出手段に供給されてどのキースイッチが押圧されたが検出される
ことを特徴とするキー入力装置。
【請求項３】
請求項２に記載したキー入力装置において、
上記入力検出手段の各入力端子には上記キースイッチに付与された２進数のビット位置にそれぞれ対応するビット線が接続されており、
上記各キースイッチはその一端が電源端子に接続されるとともに、該キースイッチの他端については、該キースイッチに付与された２進数の各位のビット値に応じて、そのビット位置に対応する上記ビット線に接続され又は非接続とされる
ことを特徴とするキー入力装置。
【請求項４】
請求項３に記載したキー入力装置において、
上記キースイッチに付与された２進数の各位のビット値が「１」である場合に、逆電流阻止手段を介して上記キースイッチの他端が、そのビット位置に対応する上記ビット線に接続されている
ことを特徴とするキー入力装置。
【請求項５】
複数のキースイッチを有する入力手段と、該キースイッチの開閉状態を検出してキー情報に応じた処理を実行する中央処理装置を備えた情報処理装置において、
各キースイッチには異なる２進数が予め付与されており、該キースイッチが閉じられた場合に該キースイッチに対応する２進数にエンコード化された各位のビット信号が上記中央処理装置の入力ポートに供給される
ことを特徴とする情報処理装置。
【請求項６】
請求項５に記載した情報処理装置において、
上記入力ポートがＮ個の入力端子を有しており、（２Ｎ−１）個の上記キースイッチの操作に応じた２進数の信号が入力ポートに供給されてどのキースイッチが押圧されたが検出される
ことを特徴とする情報処理装置。
【請求項７】
請求項６に記載した情報処理装置において、
上記入力ポートの各入力端子には上記キースイッチに付与された２進数のビット位置にそれぞれ対応するビット線が接続されており、
上記各キースイッチはその一端が電源端子に接続されるとともに、該キースイッチの他端については、該キースイッチに付与された２進数の各位のビット値に応じて、そのビット位置に対応する上記ビット線に接続され又は非接続とされる
ことを特徴とする情報処理装置。
【請求項８】
請求項７に記載した情報処理装置において、
上記キースイッチに付与された２進数の各位のビット値が「１」である場合に、逆電流阻止手段を介して上記キースイッチの他端が、そのビット位置に対応する上記ビット線に接続されている
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のキーを備えた装置においてどのキーが押されたかを電気的に検出する場合に、従来よりも数多くのキーを検出できるようにするとともに、キー検出のためのアルゴリズムを簡単化するための技術に関する。
【背景技術】
【０００２】
コンピュータ等の情報処理装置におけるマン・マシンインターフェースには、キーボードのように多数のキーが配列された操作入力装置が用いられている。例えば、キーの操作状態をＣＰＵ（中央処理装置）で検出しなければいけないシステムにおいて、下記の方法が知られている。
【０００３】
（１）キー１個に対してＣＰＵの入力ポート１個を割り当てる方法
（２）キーマトリックスを用いる方法。
【０００４】
先ず、上記方法（１）では、仮に、キー入力手段に４個のキーが設けられていて、各キーを検出する場合に、ＣＰＵの入力ポートを４つ使用して各キーの操作状態を検出することができる。例えば、あるキーが押されると、当該キーに対応する入力ポートの信号がＬ（Low）レベルからＨ（High）レベルに変化するため、ＣＰＵでは各キーに対応するポート状態を監視することで、どのキーが押されたかが検出される。
【０００５】
また、上記方法（２）は、複数のキーをマトリックス配置とし、その行位置及び列位置の走査によってキーの操作状態を検出することができる（例えば、特許文献１参照。）。一例として、下表１に示すように、キー番号「０〜１５」の合計１６個のキーが４行４列のマトリックス配置とされる場合を挙げると、各１６個のキーを検出するのに、コラム（Column）線、ロウ（Row）線がそれぞれ４本必要であり、ロウ線に接続されるＣＰＵの出力ポートを４つ、そして、コラム線に接続されるＣＰＵの入力ポートを４つ使用する必要がある。
【０００６】
【表１】
2005284446.tif 000003
【０００７】
尚、上表中の「Out」に付した「1〜４」は出力ポートの識別番号を示し、「In」に付した「1〜４」は入力ポートの識別番号を示す。
【０００８】
上記方法（２）を採用する場合に、キーが押されたことを検出するには、例えば、下記のようなアルゴリズムが用いられている。
【０００９】
（Ａ１）先ず、キーが押されたことを検出する
（Ａ２）ロウ線を１本ずつＨ（High）レベルにし、それ以外の残りのロウ線をＬ（Low）レベルにしていく
（Ａ３）どのコラム線がＨレベルになるか調べる
（Ａ４）（Ａ２）でＨレベルにしたロウ線と、（Ａ３）でＨレベルになったコラム線とが交差する位置にあるキーが押されたと判断する。
【００１０】
図６は、上記アルゴリズムを採用した場合におけるキー検出処理の一例を示すフローチャート図であり、各処理ステップは下記のＳ１〜Ｓ６に示す通りである。
【００１１】
Ｓ１）ロウ線を全てＨレベルに規定する（出力ポートをＨ出力にする。）
Ｓ２）コラム線にＨレベル割り込み発生か？（割り込み時に次ステップＳ３に進む。）
Ｓ３）ｎ番目のロウ線をＨレベルにし、その他のロウ線をＬレベルにする
Ｓ４）コラム線でＨレベルの線があるか？（ｍ番目のコラム線がＨレベルの場合に、ステップＳ５に進み、コラム線が全てＬレベルの場合にステップＳ６に進む。）
Ｓ５）ｎ番目のロウ線、ｍ番目のコラム線の交点位置にあるキーが押されたと判断する
Ｓ６）次（「ｎ＋１」番目）のロウ線を調べるために、ｎ値をインクリメントしてステップＳ３に戻る。
【００１２】
Ｎ本のロウ線のそれぞれについて、Ｍ本のうちのどのコラム線がＨレベルとなっているのかを順次に調べるために繰り返し（ループ）処理が必要とされる。
【００１３】
【特許文献１】特開平６−１１９０９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、従来の方法にあっては、キーの数に対して用意すべきポート数が多いことが問題である。
【００１５】
例えば、上記方法（１）では、キーの数と同じ数だけＣＰＵの入力ポートが必要になるため、キー数の多いシステムではＣＰＵのポート数を用意できないか、あるいはポート数の確保に伴うコスト上昇等が問題となる。
【００１６】
また、上記方法（２）の場合には、Ｎ×Ｍ個のキーに対して、「Ｎ＋Ｍ」個のポート数で済むため、方法（１）に比べると必要なＣＰＵのポート数が少なくて済むものの、未だ充分とは言い切れない。また、ＣＰＵの入力ポートと出力ポートの両方が必要であるという問題点が挙げられる。この他、キー検出処理のアルゴリズムが複雑であり、ＣＰＵへの負担が大きいという問題があった。
【００１７】
そこで、本発明は、キー数に対する入力ポート数を極力低減するとともに、キー操作の検出処理を簡単に行えるようにすることを課題とする。
【課題を解決するための手段】
【００１８】
本発明は、上記した課題を解決するために、入力手段を構成する各キースイッチには異なる２進数が予め付与されており、該キースイッチが操作された場合に該キースイッチに対応する２進数にエンコード化された各位のビット信号が入力検出手段（入力ポートを含む。)に供給されるように構成したものである。
【００１９】
従って、本発明では、各キースイッチの操作と、当該操作に対して予め決められた２進数との対応関係からキースイッチの操作状態を特定することができる。
【発明の効果】
【００２０】
本発明によれば、キー数の増加に対する入力ポート数の増加を抑制することができるとともに、出力ポートを使用する必要がなくなる。また、キー検出処理のアルゴリズムが簡単であるために、ＣＰＵへの負担等が軽減される。
【００２１】
Ｎ個の入力端子に対して、（２Ｎ−１）個のキースイッチの操作に応じた２進数の信号が得られ、該信号をもとにどのキースイッチが押圧されたを検出できる（多数のキースイッチに対して少数の入力ポート端子で済む。）。例えば、従来の３行５列（１５個）のキーマトリックス配置では必要な入出力ポート数が８つであるのに対して、本発明では、「２４−１＝１５」から分かるように４つの入力ポートで済む。
【００２２】
キースイッチや接続線の配置に関して、各入力端子には、キースイッチ毎に付与された２進数のビット位置にそれぞれ対応するビット線を接続する。そして、各キースイッチについてはその一端を電源端子に接続するとともに、該キースイッチの他端については、該キースイッチに付与された２進数の各位のビット値に応じて、そのビット位置に対応するビット線に接続し又は非接続とする。キースイッチとビット線との接続関係が明確であり、接続チェック等に有効である。
【００２３】
また、キースイッチに付与された２進数の各位のビット値が「１」である場合に、逆電流阻止手段（ダイオード等）を介してキースイッチの他端が、そのビット位置に対応するビット線に接続された構成を用いることによって、誤動作を防止することができる。
【発明を実施するための最良の形態】
【００２４】
本発明は、例えば、キーボードを用いた情報処理装置のように、キーボード上に配列された多数のキーをＣＰＵ等の演算処理手段で検出する構成にて実施され、各種のコンピュータやＰＤＡ（個人携帯端末）、通信端末装置や映像機器、音響機器等に幅広く適用することができる。
【００２５】
図１は、本発明に係る基本構成を例示したものであり、情報処理装置１は、多数のキースイッチ２ａ、２ａ、…を有する入力手段２と、ＣＰＵ等の演算処理手段３を備えている。
【００２６】
演算処理手段３は、キースイッチ２ａの開閉状態に応じた操作情報（キー情報）が入力される入力検出手段４を有しており、キー操作に応じた処理や装置本体部内のデバイス等を制御する。
【００２７】
尚、本発明の実施上では、入力手段２を装置本体部に付設した構成形態と、入力手段２をコードで装置本体部に接続した構成形態あるいは入力手段２の操作情報を無線通信によって装置本体部に通知する構成形態等が挙げられる。
【００２８】
図２は、キースイッチの入力検出に係る構成について説明するための図である。
【００２９】
各キースイッチにはキー毎に異なる識別番号（キー番号）が予め付与されており、本例では、キー番号１３（２進数表記で「１１０１」）により特定されるキーのみを例示している。
【００３０】
上記入力手段２に設けられた多数のキースイッチ２ａ、２ａ、…のうち、あるキースイッチが閉じられた場合には、該キースイッチに対応する２進数にエンコード化された各位のビット信号がＣＰＵ５の各入力ポートに供給される。尚、１つのキースイッチに対して１つの機能（例えば、電源投入、方向指定等）が割り当てられ、２つ以上の同時キー操作に対する機能はないものとする。
【００３１】
図２の例では、ＣＰＵ５の入力ポート数が４つとされており、キースイッチ２ａの操作時に４ビット信号が入力ポートを通してＣＰＵ５で取得される。つまり、上記入力検出手段４を構成する各入力ポートは、１（＝２０）の位、２（＝２１）の位、４（＝２２）の位、８（＝２３）の位にそれぞれ相当するポートである。
【００３２】
キー番号が２進数表記「１１０１」である場合において、キースイッチ２ａの一端が所定電圧「ＶDD」の電源端子に接続され、他端が２の位に相当する入力ポート以外の各ポートに接続される。これは、１の位、４の位、８の位の各ビット値が「１」であり、２の位のビット値が「０」であることに依る。尚、当該キースイッチ２ａと、１の位、４の位、８の位の各入力ポートとをそれぞれ繋いでいる各ビット線については、抵抗チップ６内の各抵抗素子６ａ、６ａ、…を介して接地されており、キースイッチの押圧によって各入力ポート（２の位を除く。）がＨレベルとなる。
【００３３】
４本のビット線が対応する各入力ポートに接続されている場合に、２４−１＝１５個のキーを検出することが可能である。つまり、Ｎ本のビット線がＣＰＵの各入力ポートに接続されている場合には、最大で（２Ｎ−１）個のキーのうち、どのキーが押されたかを検出することができる。
【００３４】
図３に示す例では、４本のビット線にそれぞれ接続されたＣＰＵ５の入力ポートを用いて、１５個のキーを検出することができる。
【００３５】
図中に「ＳＷ１〜１５」で示す１５個のスイッチは何れもプッシュ式スイッチであり、オン／オフ操作に応じて２状態が規定されている。即ち、検出対象とされる各キーは、キーボードや入力操作部７に配置され、当該キーが押されていないときにその接点７ａと接点７ｂとが電気的に離れ、また当該キーが押されているときに、その接点７ａと接点７ｂが電気的に繋がるタイプのスイッチとされている。
【００３６】
そして、各キースイッチについては、その接点７ｂが全て電源端子８（図中の丸印に「＋」を付して示す。）に繋がっており、該電源端子には図示しない電源回路からの電圧が印加されるとともに、該電圧値についてはＣＰＵ５を含むシステム側でＨレベルと認識される基準電圧とされている。
【００３７】
各キーの他の接点７ａについては、４本のビット線９乃至１２を用いてＣＰＵ５の入力ポートに接続されている。つまり、各ビット線に対する各入力ポートの接続状態は下記の通りである。
【００３８】
・ビット線９が、１の位に相当する入力ポート「ＩＮ１」に接続されている
・ビット線１０が、２の位に相当する入力ポート「ＩＮ２」に接続されている
・ビット線１１が、４の位に相当する入力ポート「ＩＮ３」に接続されている
・ビット線１２が、８の位に相当する入力ポート「ＩＮ４」に接続されている。
【００３９】
各キースイッチに対してユニークに付与されたキー番号「１〜１５」を、それぞれ２進数で表現した場合に、各キースイッチの接点７ａがそのキー番号に対応するビット線９乃至１２のどれか（複数のビット線を含む。）に接続されている。
【００４０】
本例では、キー番号を２進数で表現して、下記に示す規則を採用する。
【００４１】
・１の位に関して、ビット値が「０」の場合、対象キーをビット線９に対して非接続とし、ビット値が「１」の場合、対象キーをビット線９に接続すること
・２の位に関して、ビット値が「０」の場合、対象キーをビット線１０に対して非接続とし、ビット値が「１」の場合、対象キーをビット線１０に接続すること
・４の位に関して、ビット値が「０」の場合、対象キーをビット線１１に対して非接続とし、ビット値が「１」の場合、対象キーをビット線１１に接続すること
・８の位に関して、ビット値が「０」の場合、対象キーをビット線１２に対して非接続とし、ビット値が「１」の場合、対象キーをビット線１２に接続すること。
【００４２】
この規則に従うと、下表が得られる。
【００４３】
【表２】
2005284446.tif 000004
【００４４】
例えば、キー番号「５」のキーでは、その一端（接点７ａ側の端子）がビット線９に接続され、ビット線１０に対して非接続、ビット線１１に対して接続、ビット線１２に対して非接続となっている。
【００４５】
尚、いずれのキーも押されていない場合は、各ビット線９乃至１２はすべて電気的にＬレベルであり、また、いずれかのキーが押された場合は、押されたキーに接続されているビット線のみがＨレベルになり、接続されていないビット線はＬレベルになる。
【００４６】
この方法を用いてキー配線を行うと、キー毎に各ビット線への接続パターンがすべて異なることが分かる。
【００４７】
１本のビット線にしか接続されていないキー番号「１」、「２」、「４」、「８」の各キーはそのまま対応するビット線に接続されているが、２本以上のビット線に接続されているキー番号「３」、「５」、「６」、「７」、「９」、「１０」、「１１」、「１２」、「１３」、「１４」、「１５」の各キーについては、逆電流阻止手段１３を構成している、順方向配置の各ダイオード１３ａ、１３ａ、…をそれぞれ介して各ビット線に接続されている。これは、あるキーが押された場合に、他かのキーを伝わって接続されていないビット線に電流が流れることに起因する誤動作の発生を防ぐためである。
【００４８】
各ビット線９乃至１２は、抵抗チップ１４内の抵抗素子１４ａ、１４ａ、…をそれぞれ介して接地されている。また、各ビット線は、ＣＰＵ５の各入力ポートに接続されているが、ＣＰＵ５はプログラムの実行中において、各入力ポートが電気的にＨレベルであるか又はＬレベルであるかを知ることができるような入力ポートを使用するものとする。
【００４９】
次に、キー検出処理の手順例について、図４に示すフローチャート図を用いて説明する。
【００５０】
先ず、上記ビット線９乃至１２が接続されている各入力ポートについては、プログラム中で予め、Ｈレベルになると割り込み（以下、「Ｈレベル割り込み」という。）が発生するように設定しておく。
【００５１】
ステップＳＴ１では、各ビット線にＨレベル割り込みが発生したかどうかを判断し、肯定の判断結果が得られた場合に次ステップＳＴ２に進む。しかし、否定の判断結果が得られた場合（即ち、いずれのキーも押されていない場合には、各ビット線がそれぞれの抵抗を介して接地されているので、全入力ポートはＬレベルである。）には、Ｈレベル割り込みは発生しない。
【００５２】
いずれかのキーが押された場合、ビット線９乃至１２のいずれかがキースイッチを介して電源端子８に接続された状態（Ｈレベル状態）となり、該当する入力ポートにＨレベルが供給される結果、Ｈレベル割り込みが発生して、キー検出の処理が始まる。
【００５３】
次ステップＳＴ２では、ＣＰＵ５が、全ての入力ポートの状態（Ｈレベル又はＬレベルの如何）を調べ、どのビット線がＨレベルであるか及びどのビット線がＬレベルであるかを確認する。
【００５４】
そして、次ステップＳＴ３では、どのキーが押された（スイッチオン）かを判断する。即ち、Ｈレベルであるビット線に接続されていて、かつＬレベルであるビット線に接続されていないキーが押されたことが分かる。上記したように、各キースイッチについてはビット線９乃至１２への接続のパターンはすべて異なるので、押されたキーがユニークに特定される。
【００５５】
尚、複数のキーが同時に押された場合の誤検出防止策としては、例えば、どれかのビット線にＨレベル割り込みがかかってから一定時間（例えば、１ミリ秒程度）の間にビット値０から１への変化が生じたビット線のみを有効と判断してキー検出を行う形態が挙げられる。つまり、「同時押し」といっても人間による押圧操作には数ミリ秒以上の時間差が通常存在すること及びキー検出に要する時間がチャタリングのチェック等を含めて通常数百μ（マイクロ）秒とされることを考慮し、ほぼ同時に押された複数のキーのうち、瞬間的に早いタイミングで押されたキーの検出を終えた時点で、後に押されたキーをガードしたり、無視することが可能である。
【００５６】
以上のように、比較的簡単な処理ステップでキー検出を行うことができ、また、使用キー数を増やしたい場合に、ビット線をさらに増やしていったとしても、上記と同様の方法でキー検出を行える。
【００５７】
図５は、横軸にビット線の本数（＝ＣＰＵのポート数）をとり、縦軸に検出可能なキー数をとって、両者の関係を示したグラフ図である。
【００５８】
本願発明では、Ｎ個のポート数に対して最大で（２Ｎ−１）個のキー検出が可能であり前記した従来の方法（１）、（２）との比較において、Ｎの値が大きくなるにつれてキー数が格段に増加していく様子が分かる。
【００５９】
上記に説明した構成によれば、下記に示す各種の利点が得られる。
【００６０】
・ＣＰＵの入力ポートＮ個で、従来の方法よりも格段に多い、（２Ｎ−１）個のキーの検出ができるので、多くのキーの操作を行えること、あるいは、キー数が従来と同じである場合において入力ポートの数が従来よりも少なくて済むので、余ったＣＰＵのポートを別の目的に使ったり、あるいはポート数やＩ／ＯポートＩＣ（ＧＰＩＯ拡張ＩＣ等）を削減して低コスト化を実現できること。
【００６１】
・ＣＰＵの出力ポートを使用する必要がないので、ＣＰＵ内部の構造を簡単化でき、コストダウンに有効であり、故障等が起こり難くなること、あるいは、ＣＰＵの出荷前検査等の時間を短縮できること。
【００６２】
・キーが押された後に、どのキーが押されたか調べるための処理が簡単になるので、プログラムの作成工数が短く、また、プログラムのバグ低減策として有効であることや、ＣＰＵへの負担が少なくなること（消費電力の低減、ＣＰＵの処理能力を他のプログラムの実行に融通したり、セットの機能拡張等に有効であること。）。
【図面の簡単な説明】
【００６３】
【図１】本発明に係る基本構成例を示す図である。
【図２】本発明に係るキー入力検出の説明図である。
【図３】本発明に係る構成例の要部を示す図である。
【図４】本発明に係るキー検出処理例を示すフローチャート図である。
【図５】ＣＰＵポート数と検出可能なキー数との関係を示すグラフ図である。
【図６】従来のキー検出処理例を示すフローチャート図である。
【符号の説明】
【００６４】
１…情報処理装置、２…入力手段、２ａ、２ａ…キースイッチ、４…入力検出手段、５…中央処理装置、９〜１２…ビット線、１３…逆電流阻止手段、ＳＷ１〜１５……キースイッチ、ＩＮ１〜４…入力ポート
【図１】
2005284446.tif 000005
【図２】
2005284446.tif 000006
【図３】
2005284446.tif 000007
【図４】
2005284446.tif 000008
【図５】
2005284446.tif 000009
【図６】
2005284446.tif 000010