(57)【要約】【課題】同じスキャンサイクル中に複数のキーが押下された場合であってもキーの順序を容易に判別することができるキーボードシステム、キーボードシステムの組込コントローラ、及びスキャンコード送信方法を提供すること。【解決手段】外部キーボードマトリクス２１と、外部キーボードマトリクス２１と通信する組込コントローラ２２を備えるキーボードシステム２０であって、組込コントローラ２２は、外部キーボードマトリクス２１の単一のスキャンサイクル中に、複数のキーが押されているのか、または単一のキーのみが押されているのかを判定し、単一のキーのみが押されている場合、複数のスキャンサイクル中に押されたキーの順序を学習し、複数のキーが押されている場合、押されたキーを学習した順序に基づき、押された複数のキーの順序を生成する。【選択図】図２
2019036297.tif 000002
【特許請求の範囲】
【請求項１】
キーボードマトリクスと、
前記キーボードマトリクスと通信する組込コントローラと、
を備えるキーボードシステムであって、
前記組込コントローラは、
前記キーボードマトリクスの単一のスキャンサイクル中に、複数のキーが押されているのか、または単一のキーのみが押されているのかを判定し、
単一キーのみが押されている場合、複数のスキャンサイクル中に押された単一キーの順序を学習し、
複数のキーが押されている場合、押された単一のキーを学習した前記順序に基づいて、前記複数のキーが押された順序を生成する、キーボードシステム。
【請求項２】
前記組込コントローラと通信するプラットフォームコントローラハブをさらに備える、請求項１に記載のキーボードシステム。
【請求項３】
前記組込コントローラは、前記キーボードマトリクスと通信するキーボードスキャンインターフェースを備える、請求項１に記載のキーボードシステム。
【請求項４】
前記組込コントローラは、８０４２キーボードマイクロコントローラがエミュレートされたキーボードコントローラを備える、請求項１に記載のキーボードシステム。
【請求項５】
前記組込コントローラは、さらに、
前記複数のスキャンサイクル中に押された単一のキー各々に対して、２次元配列における配列をそれぞれ作成する、請求項１に記載のキーボードシステム。
【請求項６】
各配列に、それぞれの数値を設定する、請求項５に記載のキーボードシステム。
【請求項７】
前記単一のスキャンサイクル中に押された前記複数のキーは、前記複数のスキャンサイクル中に押された前記単一のキーに含まれる、請求項１に記載のキーボードシステム。
【請求項８】
キーボードマトリクスを有するキーボードシステムの組込コントローラであって、
前記組込コントローラは、
前記キーボードマトリクスの複数のスキャンサイクル各々に対して、単一のキーのみが押されているのかどうかを判定し、
押されたと判定された各単一のキーに対して、２次元配列における配列をそれぞれ作成し、
各配列はそれぞれ、
［Ｌａｔｅｓｔ＿ｋｅｙ］［１…ｎ］、
［１…ｎ］［Ｌａｔｅｓｔ＿ｋｅｙ］、
［Ｌａｔｅｓｔ＿ｋｅｙ］［Ｌａｔｅｓｔ＿ｋｅｙ］、
に従って作成され、
Ｌａｔｅｓｔ−Ｋｅｙは、所与のスキャンサイクル中に押された前記単一のキーを表し、ｎは、前記２次元配列における列の数および行の数を表し、
前記キーボードマトリクスの前記複数のスキャンサイクル各々に対して、前記スキャンサイクルのうち、１つのスキャンサイクル中に、Ｍ個の複数のキーが押されたかどうかを判定し、
前記複数のキーのうち、押されたキーであるｋｅｙ＿ｍ各々に対して、配列［ｋｅｙ＿ｍ］［１…Ｍ］の各合計値を
【数１】
2019036297.tif 000009
によって算出し、
合計値順に全てのＳＵＭ  ｋｅｙ＿ｍを配列し、
前記単一のスキャンサイクル中に押された前記ｋｅｙ＿ｍ各々に対して、前記合計値順に従った送信順でスキャンコードを送信する、キーボードシステムの組込コントローラ。
【請求項９】
押されたと判定された前記単一のキー各々の配列それぞれに、数値−１、０、または１を割り当てるようにさらに構成された、請求項８に記載のキーボードシステムの組込コントローラ。
【請求項１０】
前記２次元配列において、前記列の数は、前記行の数と同じである、請求項８に記載のキーボードシステムの組込コントローラ。
【請求項１１】
押されたｋｅｙ＿ｍは各々、押されたと判定された単一のキーである、請求項８に記載のキーボードシステムの組込コントローラ。
【請求項１２】
最も高い数値を有する前記ＳＵＭ  ｋｅｙ＿ｍにより、関連するスキャンコードを最初に送信することが可能になる、請求項８に記載のキーボードシステムの組込コントローラ。
【請求項１３】
最も低い数値を有する前記ＳＵＭ  ｋｅｙ＿ｍにより、関連するスキャンコードを最後に送信することが可能になる、請求項８に記載のキーボードシステムの組込コントローラ。
【請求項１４】
キーボードマトリクスを有するキーボードシステムにおいてスキャンコードを送信するスキャンコード送信方法であって、
前記キーボードマトリクスの複数のスキャンサイクル各々において、単一キーのみが押されている場合、押された単一キー各々に対して、
［Ｌａｔｅｓｔ＿ｋｅｙ］［１…ｎ］である第１配列を第１数値に設定することと、
［１…ｎ］［Ｌａｔｅｓｔ＿ｋｅｙ］である第２配列を第２数値に設定することと、
［Ｌａｔｅｓｔ＿ｋｅｙ］［Ｌａｔｅｓｔ＿ｋｅｙ］である第３配列を第３数値に設定することと、
Ｌａｔｅｓｔ＿ｋｅｙは、所与のスキャンサイクル中に押された前記単一キーを表し、
ｎは、作成した配列における列の数を表し、
複数のキーが単一スキャンサイクル中に押された場合、Ｍが押されたｋｅｙ＿ｍの総数を表すとすると、押されたｋｅｙ＿ｍに各々に対して、
配列［ｋｅｙ＿ｍ］［１…Ｍ］の各合計値を算出することと、
前記合計値の降順に前記配列を配置することと、
前記合計値の降順に各ｋｅｙ＿ｍに対するスキャンコードを送信することと、
を含むスキャンコード送信方法。
【請求項１５】
前記第１数値、前記第２数値，および前記第３数値は、それぞれ互いに異なっている、請求項１４に記載のスキャンコード送信方法。
【請求項１６】
前記第１数値は０であり、前記第２数値は１であり、かつ、前記第３数値は−１である、請求項１５に記載のスキャンコード送信方法。
【請求項１７】
前記第１配列、前記第２配列、および前記第３配列は、単一の２次元配列における配列である、請求項１４に記載のスキャンコード送信方法。
【請求項１８】
前記２次元配列において、行の数と列の数は等しい、請求項１７に記載のスキャンコード送信方法。
【請求項１９】
前記複数のスキャンサイクルの各々はドライブラインと同じ順序で生じる、請求項１４に記載のスキャンコード送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にキーボードに関し、特に、キーボードにおいてスキャンコードの送信を順序付けする装置および方法に関する。
【背景技術】
【０００２】
ラップトップ型コンピュータ、ノート型コンピュータ、デスクトップ型コンピュータ、携帯電話等に用いられるコンピュータキーボードは、キーが押されるとスキャンコードに変換する制御回路を備えてもよい。スキャンコードとは、どのキーが押されたかを知らせるためにコンピュータキーボードがコンピュータへ送信するデータを表す。キーボード上の各キーには、数、または数列が割り当てられている。キースイッチは、プリント回路基板を介して、電気Ｘ―Ｙマトリクスにおいて接続されている。電気Ｘ―Ｙマトリクスでは、電圧がＹラインに順次供給され、キーが押されると、Ｘラインを順次走査することでキーが検出される。その逆も同様に行われる。
【０００３】
タイプ入力の際には、大抵、一度に１個のキーのみ押され、その後、次のキーが押される前に、そのキーを放す。しかし、場合によっては、複数のキーが、同時に、または非常に速く連続して押されることがある。これは、例えばゲームの最中に、発生することが多い。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２１８５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図１Ａは、従来のキーボードマトリクス１０を示す。列は、ドライブまたは入力ラインを表し、行は、検出またはセンスラインを表す。マトリクス走査は、Ａ１からスタートしてＧ７へと進行し、または、その逆に、Ｇ７からスタートしてＡ１へと進行するが、これら両方が同時に行われることはない。使用中に、例えば、キーＣ４およびキーＦ５が、同時に、または非常に速く連続して押されることがある。キーが押されたことを示す信号をマトリクス１０から受信すると、キーボード集積回路１１（すなわち、組込コントローラ（ＥＣ））は、特定の順序で、スキャンコードを中央処理装置１２に送信する。
【０００６】
図１Ａにおいて、マトリクス走査がＡ１からスタートし、Ｇ７へと進行する場合、スキャンコードは、Ｃ４、Ｆ５の順に送信される。一方、マトリクス走査がＧ７からスタートし、Ａ１へと進行する場合、スキャンコードは、Ｆ５、Ｃ４の順に送信される。走査方向がいずれの方向であろうと、その方向は固定されている。したがって、スキャンコードを送信する順序も固定されている。しかし、この固定した順序は、特定の状況においては誤った順序である可能性がある。つまり、一例を挙げると、キーが、Ｃ４、Ｆ５の順に押されていたにもかかわらず、走査方向が原因で、スキャンコードが、Ｆ５、Ｃ４の順に送信される可能性がある。
【０００７】
図１Ｂは、同じドライブライン上にある２つ以上のキーが、単一のスキャンサイクル中に連続して押される際に発生する、キーボードマトリクス１０における別の潜在的問題を示す。スキャンサイクルとは、各ドライブラインを一度ずつ順に走査する周期である。したがって、例えば、スキャンサイクルは、ドライブライン１で始まり、ドライブライン７で終了してもよい。さらに、例えば、各ドライブラインを走査するのに０．５ミリ秒かかってもよい。
【０００８】
このように、図１Ｂにおいて、キーボードマトリクス１０の一使用例中に、ドライブライン１がＡからＧまで走査され、その０．５ミリ秒後に、ドライブライン２がＡからＧまで走査される。例えば、ドライブライン７の走査中に、Ｃ６が押された場合、ドライブライン７の後にドライブライン１〜４を走査した際には、ドライブライン７を走査してから２．０ミリ秒経過している。ドライブライン７で始まった単一のスキャンサイクルにおいて、ドライブライン５の走査中に、例えば、Ｄ６が押されたとする。ドライブライン６を走査すると、マトリクス１０は、Ｃ６とＤ６が押されていると判定する。しかし、これらのキーは、同じスキャンサイクル中に同じドライブラインにおいて押されたため、マトリクス１０は、Ｃ６またはＤ６のどちらが最初に押されたのかを判別することができない。したがって、スキャンコードは、Ｃ６、Ｄ６ではなく、Ｄ６、Ｃ６のように、不正確に送信される可能性がある。これは、スキャンコードを送信する順序が固定されていることに因る。
【０００９】
本発明は、上記に鑑みてなされたものであって、同じスキャンサイクル中に複数のキーが押下された場合であってもキーの順序を容易に判別することができるキーボードシステム、キーボードシステムの組込コントローラ、及びスキャンコード送信方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様において、キーボードシステムは、キーボードマトリクスと、キーボードマトリクスと通信する組込コントローラを備え、組込コントローラは、キーボードマトリクスの単一のスキャンサイクル中に、複数のキーが押されたのか、または、単一のキーのみが押されたのかを判定し、単一のキーのみが押された場合は、複数のスキャンサイクル中に押された単一のキーの順序を学習し、複数のキーが押された場合は、押された単一のキーを学習した順序に基づいて、複数のキーが押された順序を生成する。
【００１１】
本発明の別の態様において、キーボードマトリクスを有するキーボードシステムの組込コントローラは、キーボードマトリクスの複数のスキャンサイクルの各々に対して、単一のキーのみが押されたのかを判定し、押されたと判定された単一のキーごとに、２次元配列における各配列を作成し、各配列は、［Ｌａｔｅｓｔ＿ｋｅｙ］［１…ｎ］、［１…ｎ］［Ｌａｔｅｓｔ＿ｋｅｙ］、［Ｌａｔｅｓｔ＿ｋｅｙ］［Ｌａｔｅｓｔ＿ｋｅｙ］に従って、作成され、Ｌａｔｅｓｔ＿ｋｅｙ（最新キー）は、所与のスキャンサイクル中に押された単一のキーを表し、ｎは、２次元配列における、列の数および行の数を表し、キーボードマトリクスの複数のスキャンサイクルの各々に対して、スキャンサイクルのうちの１つにおいて、Ｍ個の複数のキーが押されたかを判定し、押された複数のｋｅｙ＿ｍの各々に対して、配列［ｋｅｙ＿ｍ］［１…Ｍ］の各合計値を算出し、合計値順に全てのＳＵＭ  ｋｅｙ＿ｍを配列し、単一のスキャンサイクル中に押されたｋｅｙ＿ｍ各々に対して、合計値順に従った送信順に、スキャンコードを送信する。
【００１２】
本発明のさらに別の態様において、キーボードマトリクスを有するキーボードシステムにおいてスキャンコードを送信する方法は、キーボードマトリクスの複数のスキャンサイクル各々において、単一のキーのみが押された場合、押された単一のキー各々に対して、［Ｌａｔｅｓｔ＿ｋｅｙ］［１…ｎ］である第１配列を第１数値に設定することと、［１…ｎ］［Ｌａｔｅｓｔ＿ｋｅｙ］である第２配列を第２数値に設定することと、［Ｌａｔｅｓｔ＿ｋｅｙ］［Ｌａｔｅｓｔ＿ｋｅｙ］である第３配列を第３数値に設定することとを含み、ここで、Ｌａｔｅｓｔ＿ｋｅｙは、所与のスキャンサイクル中に押された単一のキーを表し、ｎは、作成した配列における列の数を表し、複数のキーが単一のスキャンサイクル中に押されると、押された各ｋｅｙ＿ｍに対して、配列［ｋｅｙ＿ｍ］［１…Ｍ］（Ｍは押されたｋｅｙ＿ｍの総数を表す）の合計値を算出することと、合計値の降順に各ｋｅｙ＿ｍを配列することと、各ｋｅｙ＿ｍに対して降順にスキャンコードを送信することと、を含む。
【００１３】
本発明のこれらおよび他の特徴、態様、および利点は、以下の図面、記述、および請求項を参照することによって、より理解される。
【図面の簡単な説明】
【００１４】
【図１Ａ】図１Ａは、従来技術に係るキーボードシステムの概略図である。
【図１Ｂ】図１Ｂは、従来技術に係るキーボードマトリクスの概略図である。
【図２】図２は、本発明の一実施形態に係るキーボードシステムの概略図である。
【図３】図３Ａ〜図３Ｃは、本発明の一実施形態に係るキー配列の学習シーケンスを示す図である。
【図４】図４Ａ〜図４Ｂは、本発明の一実施形態に係る、複数のキーが同時に押された場合の学習後のキー配列を示す図である。
【図５】図５は、本発明の別の一実施形態に係る方法のフローチャートである。
【図６】図６は、本発明の方法の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照してこの発明を実施するための形態について説明する。
【００１６】
本発明を実施するための現在考えられ得る最良の方法を、以下に詳細に記載する。以下の記載は、限定された意味として理解されるべきものではなく、単に本発明の一般的な原理を示すことを目的としており、本発明の範囲は、添付の請求項により最も良く定義される。
【００１７】
以下に記載する本発明の様々な特徴は、各々互いに独立して適用することもでき、また、他の特徴と組み合わせて適用することもできる。しかし、本発明のいずれの特徴も単一で、上述した全ての問題に対処しなくてもよく、上述した問題の１つにのみ対処するものであってもよい。さらに、上述した１つ以上の問題は、下記に述べる特徴のいずれかによって、十分に対処されない可能性もある。
【００１８】
広義には、本発明は、特に複数のキーが、同時に、または素早く連続して押された場合に、キーボードシステムにおいてスキャンコードの送信を順序付ける装置および方法を提供するものである。本発明においては、前記順序は固定されない。その代わりに、本発明は、１つのスキャンサイクルにつき１個のキーが押され、単一のキーが連続して押された場合のスキャンコードの順序を学習する。何個のキー数でも、学習した順序のサブジェクトとしてもよい。その後、それらの単一のキーが、同時に、または非常に速く連続して押された場合、本発明は、学習した順序に基づいて、スキャンコードを送信する。
【００１９】
本発明において、学習した順序は、特定のユーザが一群のキーをどのような順序で押したかを表す。これにより、特定のユーザがその一群のキーを押すと、その特定のユーザが予想した順序と、より一致する順序で、スキャンコードが送信される。したがって、本発明において、一群のキーに対して学習した順序は、ユーザごとに変化してもよい。また、学習した順序は時間とともに変化し、したがって、所与の一組のキーに対するスキャンコードの順序は時間とともに変化してもよい。
【００２０】
図２は、本発明の一実施形態に係るキーボードシステム２０の概略図である。システム２０は、図１Ａ及び図１Ｂに示すマトリクス１０の一般的な構成と類似するキーボードマトリクス２１を含んでもよい。組込コントローラ（ＥＣ）２２は、ＣＰＵ２２ａとメモリ２２ｂを含んでもよい。ＥＣ２２は、キースキャン入力（ＫＳＩ）ピンとキースキャン出力（ＫＳＯ）ピンを介してキーボードマトリクス２１と通信することができるキーボードスキャンインターフェース２２ｃをさらに含んでもよい。
【００２１】
これにより、ＥＣ２２は、マトリクス２１のドライブラインとセンスラインをポーリングまたは走査し、それによって、どのキーが押されているかを識別することができる。複数のキーが同じスキャンサイクル中に押された場合、以下に記載するように、ＥＣ２２はスキャンコードを送信する順序を判定することができる。従来の８０４２キーボードマイクロコントローラがエミュレートされたキーボードコントローラ２２ｄは、当技術分野では周知のように、８０４２キーボードマイクロコントローラの挙動をエミュレートし、順序付けされたスキャンコードを、ローピンカウント（ＬＰＣ）バスを介して、従来のプラットフォームコントローラハブ（ＰＣＨ）２３と最終ディスプレイに送信してもよい。
【００２２】
図３Ａ〜図３Ｃにおいて、一実施形態によれば、組込コントローラ２２は、押された一群／一組のキー中、単独で押されたキーの順序を学習するように構成されてもよい。図３Ａ〜図３Ｃは、特定の順序を有するように学習された３個のキーを示す。
【００２３】
図３Ａは、１つのスキャンサイクル中に、キー６等、１個のキーのみを押す一例を示す。作成した２次元配列において３つの配列を用いてキー６が押されている状況が図示されている。２次元配列は、ｎ個の列とｎ個の行からなってもよい。第１の配列は、［６］［１…ｎ］であり、「０」に設定される。第２の配列は、［１…ｎ］［６］であり、「１」に設定される。第３の配列は、ヌルまたは予約された配列であり、「−１」に設定される。その後、最新キーとしてのＬａｔｅｓｔ＿Ｋｅｙをキー６に設定する。
【００２４】
図３Ｂは、次のスキャンサイクル中に、キー４等、１個のキーのみを押す一例を示す。２次元配列において３つの配列を用いてキー４が押されている状況が図示されている。第１の配列は、［４］［１…ｎ］であり、「０」に設定される。第２の配列は、［１…ｎ］［４］であり、「１」に設定される。第３の配列は、ヌルまたは予約された配列であり、「−１」に設定される。その後、最新キーとしてのＬａｔｅｓｔ＿Ｋｅｙをキー４に設定する。
【００２５】
図３Ｃは、次のスキャンサイクル中に、キー２等、１個のキーのみを押す一例を示す。２次元配列において、２つの配列を用いてキー２が押されている状況が図示されている。第１の配列は、［２］［１…ｎ］＝０に設定される。第２の配列は、［１…ｎ］［２］＝１に設定される。配列中の「−１」は、ヌルまたは予約されたものとして残る。その後、最新キーとしてのＬａｔｅｓｔ＿Ｋｅｙをキー２に設定する。
【００２６】
スキャンサイクルごとに異なる単一のキーを押した例を上記に示したが、本発明では、異なるスキャンサイクル中に押される１個以上の単一のキーは、同じであってもよいとする。さらに、３個のキーの配列を、それぞれ、１、０、および−１の数値に設定したが、他の数値を用いてもよい。
【００２７】
図４Ａおよび図４Ｂは、図３Ａ〜図３Ｂから、学習した３個のキーのうち、２個および３個のキーが同時に押されている状況を例示する。
【００２８】
図４Ａは、２個のキー、すなわち、キー４およびキー２を同じスキャンサイクル中に押した一例を示す。
【００２９】
キー４に対しては、配列［４］［１…ｎ］の合計値を以下のように算出する。
【数１】
2019036297.tif 000003
＝０＋０＋１＋０＋（−１）＋０＋０＋０＝０
【００３０】
キー２に対しては、配列［２］［１…ｎ］の合計値を以下のように算出する。
【数２】
2019036297.tif 000004
＝０＋０＋（−１）＋０＋０＋０＋０＋０＝−１
【００３１】
配列［４］［１…ｎ］の合計値が配列［２］［１…ｎ］の合計値より大きいため、キーの順序はキー４、キー２である（キー２、キー４ではない）と判定する。したがって、スキャンコードを、キー４、キー２の順に送信する。
【００３２】
または、配列［４］［２］の値と配列［２］［４］の値を確認することによって、スキャンコードの順序を判定してもよい。配列［４］［２］の値は１であるので、キー４はキー２より先に押されたと判定する。配列［２］［４］の値は０であるので、キー２がキー４の次に押されたと判定する。
【００３３】
図５は、３個のキー、すなわち、キー４、キー２、およびキー６を同じスキャンサイクル中に押した一例を示す。
【００３４】
キー４に対しては、配列［４］［１…ｎ］の合計値を以下のように算出する。
【数３】
2019036297.tif 000005
＝０＋０＋１＋０＋（−１）＋０＋０＋０＝０
【００３５】
キー２に対しては、配列［２］［１…ｎ］の合計値を以下のように算出する。
【数４】
2019036297.tif 000006
＝０＋０＋（−１）＋０＋０＋０＋０＋０＝−１
【００３６】
キー６に対しては、配列［６］［１…ｎ］の合計値を以下のように算出する。
【数５】
2019036297.tif 000007
＝０＋０＋１＋０＋１＋０＋（−１）＋０＝１
【００３７】
配列［６］［１…ｎ］の合計値は、配列［４］［１…ｎ］の合計値より大きく、配列［４］［１…ｎ］の合計値は、配列［２］［１…ｎ］の合計値より大きいので、キーの順序はキー６、キー４、キー２である（キー２、キー４、キー６ではない）と判定する。したがって、スキャンコードを、キー６，キー４、キー２の順に送信する。
【００３８】
２次元配列上で学習した単一キーは、押された複数のキーと同じである例を上記に示したが、本発明では、概して、押された複数のキーは、押された、学習した単一キーに含まれるものとする。したがって、例えば、学習されたキーは、合計４個のキーからなり、一方、押された複数のキーは、前記４個の学習されたキーのうちの３個のみからなってもよい。
【００３９】
上記では、合計値が降順に配列された例を示したが、本発明では、合計値が昇順に配列されるものでもよいとする。
【００４０】
上記から理解されるように、キーボードシステム２０、および、特に組込コントローラ２２は、学習および、その学習に基づいて、複数のキーが単一のスキャンサイクル中に押された際にスキャンコードを送信する順序を判定する方法の工程を実施するよう構成されてもよい。
【００４１】
図６は、本発明に係るスキャンコード送信方法手順６０の一例を示すフローチャートである。一実施形態において、スキャンコード送信方法手順６０は、図３Ａ〜図３Ｃ、図４Ａ〜図４Ｂ、および図５に示した具体例を概括する。
【００４２】
ステップ６１において、キーボードマトリクスの走査を始めるか否かを判定してもよい。「Ｎｏ」であれば、スキャンコード送信方法手順６０は、ステップ６１に戻ってもよい。「Ｙｅｓ」であれば、ステップ６２で、単一のスキャンサイクルを開始してもよい。
【００４３】
ステップ６３において、少なくとも１個のキーが押されたか否かを判定してもよい。「Ｎｏ」であれば、スキャンコード送信方法手順６０はステップ６４に進んでもよい。「Ｙｅｓ」であれば、スキャンコード送信方法手順はステップ６５に進んでもよい。
【００４４】
ステップ６４において、次のスキャンサイクルに進むか否かを判定してもよい。「Ｙｅｓ」であれば、スキャンコード送信方法手順６０はステップ６２に戻る。「Ｎｏ」であれば、スキャンコード送信方法手順６０を終了する。
【００４５】
ステップ６５において、複数のキー（すなわち、一群のキー）が単一のスキャンサイクル中に押されたか否かを判定してもよい。「Ｎｏ」であれば、スキャンコード送信方法手順６０は、一スキャンサイクルにつき１個のキーのみを用いて複数のスキャンサイクル中に押された、単一のキー（またはスキャンコード）の順序を学習するための一連のステップ（６６〜６８）に進んでもよい。「Ｙｅｓ」であれば、スキャンコード送信方法手順６０は一連のステップ（７０〜７３）に進み、単一のスキャンサイクル中に同時に押された（または素早く連続して押された）キー（またはスキャンコード）の順序を生成してもよく、そのようにして生成した順序は、複数のスキャンサイクルにおいて押された単一のキーを学習した順序に基づいている。
【００４６】
学習ステップのうち、ステップ６６は、単一スキャンサイクル中にどの単一キーが押されているかを判定し、その後、判定した最新キーを「Ｌａｔｅｓｔ＿Ｋｅｙ」に設定してもよい。
【００４７】
学習ステップのうち、ステップ６７において、複数のスキャンサイクル中に押された単一のキーごとに、２次元配列における各配列を作成してもよい。各配列それぞれに対して、数値を設定してもよい。したがって、作成した２次元配列における第１配列を、［Ｌａｔｅｓｔ＿Ｋｅｙ］［１…ｎ］として作成し、その配列の各エントリを「０」に設定してもよい。作成した２次元配列における第２配列を、［１…ｎ］［Ｌａｔｅｓｔ＿Ｋｅｙ］として作成し、その配列の各エントリを「１」に設定してもよい。作成した２次元配列における第３配列を、［Ｌａｔｅｓｔ＿Ｋｅｙ］［Ｌａｔｅｓｔ＿Ｋｅｙ］として作成し、その配列の各エントリを「−１」に設定してもよい。
【００４８】
上述したように、単一のスキャンサイクルでは、ｎ個のキーが走査されてもよく、２次元配列は、ｎ個の行とｎ個の列からなってもよい。
【００４９】
学習ステップのうち、ステップ６８において、Ｌａｔｅｓｔ＿Ｋｅｙを、ＥＣ２２の送信キューに配置し、ステップ６９でＬａｔｅｓｔ＿Ｋｅｙのスキャンコードを最終的に送信してもよい。
【００５０】
スキャンコードの順序を生成するステップにおいて、ステップ７０は、Ｍ個のキーがある場合において、単一のスキャンサイクル中に押されたキー全てを判定してもよい。
【００５１】
ステップ７１では、２次元配列の、押された各ｋｅｙ＿ｍ（ｍ＝１…Ｍ）に対して、配列［ｋｅｙ＿ｍ］［１…Ｍ］の各合計値（ＳＵＭ  Ｋｅｙ＿ｍ）を、以下のように算出する。
【数６】
2019036297.tif 000008
【００５２】
ステップ７２では、ＳＵＭ  ｋｅｙ＿ｍ（ｍ＝１…Ｍ）全てを合計値降順に配列してもよい。
【００５３】
ステップ７３では、ステップ６９でスキャンコードを最終的に送信するためのＥＣ２２の送信キューに、合計値降順に従って生成した順序でキー番号を送信する。したがって、最も高い数値を有するＳＵＭ  ｋｅｙ＿ｍにより、それに関連するスキャンコードを最初に送信することが可能になる。また、最も低い数値を有するＳＵＭ  ｋｅｙ＿ｍにより、それに関連するスキャンコードを最後に送信することが可能になる。ただし、本発明は、その順序は逆であってもよいとする。
【００５４】
これらのステップを通してスキャンコード送信方法手順６０が繰り返されるので、方法６０は単一のキーからなる異なる群の順序を絶えず学習することは理解されよう。ユーザがそれらの単一キーの順序を変更すると、スキャンコード送信方法手順６０もまた、それと同じ群の単一のキーの順序を変更することを学習する。したがって、単一のスキャンサイクル中に押されたキーの群の、生成した順序は時間とともに変更される場合がある。
【００５５】
上記は本発明の実施形態の例に関するものであって、以下の請求項に記載される本発明の精神と範囲を逸脱しない限り、変更や修正を加えることができるということは、当然理解されるべきである。
【符号の説明】
【００５６】
２０  キーボードシステム
２１  外部キーボードマトリクス
２２  組込コントローラ（ＥＣ）
２２ｂ  メモリ
２２ｃ  キーボードスキャンインターフェース
２２ｄ  ８０４２エミュレートキーボードコントローラ
【図１Ａ】
2019036297.tif 000010
【図１Ｂ】
2019036297.tif 000011
【図２】
2019036297.tif 000012
【図３Ａ】
2019036297.tif 000013
【図３Ｂ】
2019036297.tif 000014
【図３Ｃ】
2019036297.tif 000015
【図４Ａ】
2019036297.tif 000016
【図４Ｂ】
2019036297.tif 000017
【図５】
2019036297.tif 000018
【図６】
2019036297.tif 000019