(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6595053
(24)【登録日】2019年10月4日
(45)【発行日】2019年10月23日
(54)【発明の名称】キーボードシステム、キーボードシステムの組込コントローラ、及びスキャンコード送信方法
(51)【国際特許分類】
G06F 3/02 20060101AFI20191010BHJP
【FI】
G06F3/02 510
【請求項の数】19
【全頁数】13
(21)【出願番号】特願2018-138310(P2018-138310)
(22)【出願日】2018年7月24日
(65)【公開番号】特開2019-36297(P2019-36297A)
(43)【公開日】2019年3月7日
【審査請求日】2018年7月24日
(31)【優先権主張番号】15/677418
(32)【優先日】2017年8月15日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】馬 克
【審査官】
岩橋 龍太郎
(56)【参考文献】
【文献】
特開2011−154570(JP,A)
【文献】
特開平10−240416(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/02−3/027
H03M 11/00−11/26
A63F 9/24
A63F 13/00−13/98
(57)【特許請求の範囲】
【請求項1】
キーボードマトリクスと、
前記キーボードマトリクスと通信する組込コントローラと、
を備えるキーボードシステムであって、
前記組込コントローラは、
前記キーボードマトリクスの単一のスキャンサイクル中に、複数のキーが押されているのか、または単一のキーのみが押されているのかを判定し、
単一キーのみが押されている場合、複数のスキャンサイクル中に押された単一キーの順序を学習し、
複数のキーが押されている場合、押された単一のキーを学習した前記順序に基づいて、前記複数のキーが押された順序を生成する、キーボードシステム。
【請求項2】
前記組込コントローラと通信するプラットフォームコントローラハブをさらに備える、請求項1に記載のキーボードシステム。
【請求項3】
前記組込コントローラは、前記キーボードマトリクスと通信するキーボードスキャンインターフェースを備える、請求項1に記載のキーボードシステム。
【請求項4】
前記組込コントローラは、8042キーボードマイクロコントローラがエミュレートされたキーボードコントローラを備える、請求項1に記載のキーボードシステム。
【請求項5】
前記組込コントローラは、さらに、
前記複数のスキャンサイクル中に押された単一のキー各々に対して、2次元配列における配列をそれぞれ作成する、請求項1に記載のキーボードシステム。
【請求項6】
各配列に、それぞれの数値を設定する、請求項5に記載のキーボードシステム。
【請求項7】
前記単一のスキャンサイクル中に押された前記複数のキーは、前記複数のスキャンサイクル中に押された前記単一のキーに含まれる、請求項1に記載のキーボードシステム。
【請求項8】
キーボードマトリクスを有するキーボードシステムの組込コントローラであって、
前記組込コントローラは、
前記キーボードマトリクスの複数のスキャンサイクル各々に対して、単一のキーのみが押されているのかどうかを判定し、
押されたと判定された各単一のキーに対して、2次元配列における配列をそれぞれ作成し、
各配列はそれぞれ、
[Latest_key][1…n]、
[1…n][Latest_key]、
[Latest_key][Latest_key]、
に従って作成され、
Latest−Keyは、所与のスキャンサイクル中に押された前記単一のキーを表し、nは、前記2次元配列における列の数および行の数を表し、
前記キーボードマトリクスの前記複数のスキャンサイクル各々に対して、前記スキャンサイクルのうち、1つのスキャンサイクル中に、M個の複数のキーが押されたかどうかを判定し、
前記複数のキーのうち、押されたキーであるkey_m各々に対して、配列[key_m][1…
n]の各合計値を
【数1】
によって算出し、
合計値順に全てのSUM key_mを配列し、
前記単一のスキャンサイクル中に押された前記key_m各々に対して、前記合計値順に従った送信順でスキャンコードを送信する、キーボードシステムの組込コントローラ。
【請求項9】
押されたと判定された前記単一のキー各々の配列それぞれに、数値−1、0、または1を割り当てるようにさらに構成された、請求項8に記載のキーボードシステムの組込コントローラ。
【請求項10】
前記2次元配列において、前記列の数は、前記行の数と同じである、請求項8に記載のキーボードシステムの組込コントローラ。
【請求項11】
押されたkey_mは各々、押されたと判定された単一のキーである、請求項8に記載のキーボードシステムの組込コントローラ。
【請求項12】
最も高い数値を有する前記SUM key_mにより、関連するスキャンコードを最初に送信することが可能になる、請求項8に記載のキーボードシステムの組込コントローラ。
【請求項13】
最も低い数値を有する前記SUM key_mにより、関連するスキャンコードを最後に送信することが可能になる、請求項8に記載のキーボードシステムの組込コントローラ。
【請求項14】
キーボードマトリクスを有するキーボードシステムにおいてスキャンコードを送信するスキャンコード送信方法であって、
前記キーボードマトリクスの複数のスキャンサイクル各々において、単一キーのみが押されている場合、押された単一キー各々に対して、
[Latest_key][1…n]である第1配列を第1数値に設定することと、
[1…n][Latest_key]である第2配列を第2数値に設定することと、
[Latest_key][Latest_key]である第3配列を第3数値に設定することと、
Latest_keyは、所与のスキャンサイクル中に押された前記単一キーを表し、
nは、作成した配列における列の数を表し、
複数のキーが単一スキャンサイクル中に押された場合、Mが押されたkey_mの総数を表すとすると、押されたkey_mに各々に対して、
配列[key_m][1…n]の各合計値を算出することと、
前記合計値の降順に前記配列を配置することと、
前記合計値の降順に各key_mに対するスキャンコードを送信することと、
を含むスキャンコード送信方法。
【請求項15】
前記第1数値、前記第2数値,および前記第3数値は、それぞれ互いに異なっている、請求項14に記載のスキャンコード送信方法。
【請求項16】
前記第1数値は0であり、前記第2数値は1であり、かつ、前記第3数値は−1である、請求項15に記載のスキャンコード送信方法。
【請求項17】
前記第1配列、前記第2配列、および前記第3配列は、単一の2次元配列における配列である、請求項14に記載のスキャンコード送信方法。
【請求項18】
前記2次元配列において、行の数と列の数は等しい、請求項17に記載のスキャンコード送信方法。
【請求項19】
前記複数のスキャンサイクルの各々はドライブラインと同じ順序で生じる、請求項14に記載のスキャンコード送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にキーボードに関し、特に、キーボードにおいてスキャンコードの送信を順序付けする装置および方法に関する。
【背景技術】
【0002】
ラップトップ型コンピュータ、ノート型コンピュータ、デスクトップ型コンピュータ、携帯電話等に用いられるコンピュータキーボードは、キーが押されるとスキャンコードに変換する制御回路を備えてもよい。スキャンコードとは、どのキーが押されたかを知らせるためにコンピュータキーボードがコンピュータへ送信するデータを表す。キーボード上の各キーには、数、または数列が割り当てられている。キースイッチは、プリント回路基板を介して、電気X―Yマトリクスにおいて接続されている。電気X―Yマトリクスでは、電圧がYラインに順次供給され、キーが押されると、Xラインを順次走査することでキーが検出される。その逆も同様に行われる。
【0003】
タイプ入力の際には、大抵、一度に1個のキーのみ押され、その後、次のキーが押される前に、そのキーを放す。しかし、場合によっては、複数のキーが、同時に、または非常に速く連続して押されることがある。これは、例えばゲームの最中に、発生することが多い。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013−218564号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
図1Aは、従来のキーボードマトリクス10を示す。列は、ドライブまたは入力ラインを表し、行は、検出またはセンスラインを表す。マトリクス走査は、A1からスタートしてG7へと進行し、または、その逆に、G7からスタートしてA1へと進行するが、これら両方が同時に行われることはない。使用中に、例えば、キーC4およびキーF5が、同時に、または非常に速く連続して押されることがある。キーが押されたことを示す信号をマトリクス10から受信すると、キーボード集積回路11(すなわち、組込コントローラ(EC))は、特定の順序で、スキャンコードを中央処理装置12に送信する。
【0006】
図1Aにおいて、マトリクス走査がA1からスタートし、G7へと進行する場合、スキャンコードは、C4、F5の順に送信される。一方、マトリクス走査がG7からスタートし、A1へと進行する場合、スキャンコードは、F5、C4の順に送信される。走査方向がいずれの方向であろうと、その方向は固定されている。したがって、スキャンコードを送信する順序も固定されている。しかし、この固定した順序は、特定の状況においては誤った順序である可能性がある。つまり、一例を挙げると、キーが、C4、F5の順に押されていたにもかかわらず、走査方向が原因で、スキャンコードが、F5、C4の順に送信される可能性がある。
【0007】
図1Bは、同じドライブライン上にある2つ以上のキーが、単一のスキャンサイクル中に連続して押される際に発生する、キーボードマトリクス10における別の潜在的問題を示す。スキャンサイクルとは、各ドライブラインを一度ずつ順に走査する周期である。したがって、例えば、スキャンサイクルは、ドライブライン1で始まり、ドライブライン7で終了してもよい。さらに、例えば、各ドライブラインを走査するのに0.5ミリ秒かかってもよい。
【0008】
このように、
図1Bにおいて、キーボードマトリクス10の一使用例中に、ドライブライン1がAからGまで走査され、その0.5ミリ秒後に、ドライブライン2がAからGまで走査される。例えば、ドライブライン7の走査中に、C6が押された場合、ドライブライン7の後にドライブライン1〜4を走査した際には、ドライブライン7を走査してから2.0ミリ秒経過している。ドライブライン7で始まった単一のスキャンサイクルにおいて、ドライブライン5の走査中に、例えば、D6が押されたとする。ドライブライン6を走査すると、マトリクス10は、C6とD6が押されていると判定する。しかし、これらのキーは、同じスキャンサイクル中に同じドライブラインにおいて押されたため、マトリクス10は、C6またはD6のどちらが最初に押されたのかを判別することができない。したがって、スキャンコードは、C6、D6ではなく、D6、C6のように、不正確に送信される可能性がある。これは、スキャンコードを送信する順序が固定されていることに因る。
【0009】
本発明は、上記に鑑みてなされたものであって、同じスキャンサイクル中に複数のキーが押下された場合であってもキーの順序を容易に判別することができるキーボードシステム、キーボードシステムの組込コントローラ、及びスキャンコード送信方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の一態様において、キーボードシステムは、キーボードマトリクスと、キーボードマトリクスと通信する組込コントローラを備え、組込コントローラは、キーボードマトリクスの単一のスキャンサイクル中に、複数のキーが押されたのか、または、単一のキーのみが押されたのかを判定し、単一のキーのみが押された場合は、複数のスキャンサイクル中に押された単一のキーの順序を学習し、複数のキーが押された場合は、押された単一のキーを学習した順序に基づいて、複数のキーが押された順序を生成する。
【0011】
本発明の別の態様において、キーボードマトリクスを有するキーボードシステムの組込コントローラは、キーボードマトリクスの複数のスキャンサイクルの各々に対して、単一のキーのみが押されたのかを判定し、押されたと判定された単一のキーごとに、2次元配列における各配列を作成し、各配列は、[Latest_key][1…n]、[1…n][Latest_key]、[Latest_key][Latest_key]に従って、作成され、Latest_key(最新キー)は、所与のスキャンサイクル中に押された単一のキーを表し、nは、2次元配列における、列の数および行の数を表し、キーボードマトリクスの複数のスキャンサイクルの各々に対して、スキャンサイクルのうちの1つにおいて、M個の複数のキーが押されたかを判定し、押された複数のkey_mの各々に対して、配列[key_m][1…
n]の各合計値を算出し、合計値順に全てのSUM key_mを配列し、単一のスキャンサイクル中に押されたkey_m各々に対して、合計値順に従った送信順に、スキャンコードを送信する。
【0012】
本発明のさらに別の態様において、キーボードマトリクスを有するキーボードシステムにおいてスキャンコードを送信する方法は、キーボードマトリクスの複数のスキャンサイクル各々において、単一のキーのみが押された場合、押された単一のキー各々に対して、[Latest_key][1…n]である第1配列を第1数値に設定することと、[1…n][Latest_key]である第2配列を第2数値に設定することと、[Latest_key][Latest_key]である第3配列を第3数値に設定することとを含み、ここで、Latest_keyは、所与のスキャンサイクル中に押された単一のキーを表し、nは、作成した配列における列の数を表し、複数のキーが単一のスキャンサイクル中に押されると、押された各key_mに対して、配列[key_m][1…
n](Mは押されたkey_mの総数を表す)の合計値を算出することと、合計値の降順に各key_mを配列することと、各key_mに対して降順にスキャンコードを送信することと、を含む。
【0013】
本発明のこれらおよび他の特徴、態様、および利点は、以下の図面、記述、および請求項を参照することによって、より理解される。
【図面の簡単な説明】
【0014】
【
図1A】
図1Aは、従来技術に係るキーボードシステムの概略図である。
【
図1B】
図1Bは、従来技術に係るキーボードマトリクスの概略図である。
【
図2】
図2は、本発明の一実施形態に係るキーボードシステムの概略図である。
【
図3】
図3A〜
図3Cは、本発明の一実施形態に係るキー配列の学習シーケンスを示す図である。
【
図4】
図4A〜
図4Bは、本発明の一実施形態に係る、複数のキーが同時に押された場合の学習後のキー配列を示す図である。
【
図5】
図5は、本発明の別の一実施形態に係る方法のフローチャートである。
【
図6】
図6は、本発明の方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、添付図面を参照してこの発明を実施するための形態について説明する。
【0016】
本発明を実施するための現在考えられ得る最良の方法を、以下に詳細に記載する。以下の記載は、限定された意味として理解されるべきものではなく、単に本発明の一般的な原理を示すことを目的としており、本発明の範囲は、添付の請求項により最も良く定義される。
【0017】
以下に記載する本発明の様々な特徴は、各々互いに独立して適用することもでき、また、他の特徴と組み合わせて適用することもできる。しかし、本発明のいずれの特徴も単一で、上述した全ての問題に対処しなくてもよく、上述した問題の1つにのみ対処するものであってもよい。さらに、上述した1つ以上の問題は、下記に述べる特徴のいずれかによって、十分に対処されない可能性もある。
【0018】
広義には、本発明は、特に複数のキーが、同時に、または素早く連続して押された場合に、キーボードシステムにおいてスキャンコードの送信を順序付ける装置および方法を提供するものである。本発明においては、前記順序は固定されない。その代わりに、本発明は、1つのスキャンサイクルにつき1個のキーが押され、単一のキーが連続して押された場合のスキャンコードの順序を学習する。何個のキー数でも、学習した順序のサブジェクトとしてもよい。その後、それらの単一のキーが、同時に、または非常に速く連続して押された場合、本発明は、学習した順序に基づいて、スキャンコードを送信する。
【0019】
本発明において、学習した順序は、特定のユーザが一群のキーをどのような順序で押したかを表す。これにより、特定のユーザがその一群のキーを押すと、その特定のユーザが予想した順序と、より一致する順序で、スキャンコードが送信される。したがって、本発明において、一群のキーに対して学習した順序は、ユーザごとに変化してもよい。また、学習した順序は時間とともに変化し、したがって、所与の一組のキーに対するスキャンコードの順序は時間とともに変化してもよい。
【0020】
図2は、本発明の一実施形態に係るキーボードシステム20の概略図である。システム20は、
図1A及び
図1Bに示すマトリクス10の一般的な構成と類似するキーボードマトリクス21を含んでもよい。組込コントローラ(EC)22は、CPU22aとメモリ22bを含んでもよい。EC22は、キースキャン入力(KSI)ピンとキースキャン出力(KSO)ピンを介してキーボードマトリクス21と通信することができるキーボードスキャンインターフェース22cをさらに含んでもよい。
【0021】
これにより、EC22は、マトリクス21のドライブラインとセンスラインをポーリングまたは走査し、それによって、どのキーが押されているかを識別することができる。複数のキーが同じスキャンサイクル中に押された場合、以下に記載するように、EC22はスキャンコードを送信する順序を判定することができる。従来の8042キーボードマイクロコントローラがエミュレートされたキーボードコントローラ22dは、当技術分野では周知のように、8042キーボードマイクロコントローラの挙動をエミュレートし、順序付けされたスキャンコードを、ローピンカウント(LPC)バスを介して、従来のプラットフォームコントローラハブ(PCH)23と最終ディスプレイに送信してもよい。
【0022】
図3A〜
図3Cにおいて、一実施形態によれば、組込コントローラ22は、押された一群/一組のキー中、単独で押されたキーの順序を学習するように構成されてもよい。
図3A〜
図3Cは、特定の順序を有するように学習された3個のキーを示す。
【0023】
図3Aは、1つのスキャンサイクル中に、キー6等、1個のキーのみを押す一例を示す。作成した2次元配列において3つの配列を用いてキー6が押されている状況が図示されている。2次元配列は、n個の列とn個の行からなってもよい。第1の配列は、[6][1…n]であり、「0」に設定される。第2の配列は、[1…n][6]であり、「1」に設定される。第3の配列は、ヌルまたは予約された配列であり、「−1」に設定される。その後、最新キーとしてのLatest_Keyをキー6に設定する。
【0024】
図3Bは、次のスキャンサイクル中に、キー4等、1個のキーのみを押す一例を示す。2次元配列において3つの配列を用いてキー4が押されている状況が図示されている。第1の配列は、[4][1…n]であり、「0」に設定される。第2の配列は、[1…n][4]であり、「1」に設定される。第3の配列は、ヌルまたは予約された配列であり、「−1」に設定される。その後、最新キーとしてのLatest_Keyをキー4に設定する。
【0025】
図3Cは、次のスキャンサイクル中に、キー2等、1個のキーのみを押す一例を示す。2次元配列において、2つの配列を用いてキー2が押されている状況が図示されている。第1の配列は、[2][1…n]=0に設定される。第2の配列は、[1…n][2]=1に設定される。配列中の「−1」は、ヌルまたは予約されたものとして残る。その後、最新キーとしてのLatest_Keyをキー2に設定する。
【0026】
スキャンサイクルごとに異なる単一のキーを押した例を上記に示したが、本発明では、異なるスキャンサイクル中に押される1個以上の単一のキーは、同じであってもよいとする。さらに、3個のキーの配列を、それぞれ、1、0、および−1の数値に設定したが、他の数値を用いてもよい。
【0027】
図4Aおよび
図4Bは、
図3A〜
図3Bから、学習した3個のキーのうち、2個および3個のキーが同時に押されている状況を例示する。
【0028】
図4Aは、2個のキー、すなわち、キー4およびキー2を同じスキャンサイクル中に押した一例を示す。
【0029】
キー4に対しては、配列[4][1…n]の合計値を以下のように算出する。
【数1】
=0+0+1+0+(−1)+0+0+0=0
【0030】
キー2に対しては、配列[2][1…n]の合計値を以下のように算出する。
【数2】
=0+0+(−1)+0+0+0+0+0=−1
【0031】
配列[4][1…n]の合計値が配列[2][1…n]の合計値より大きいため、キーの順序はキー4、キー2である(キー2、キー4ではない)と判定する。したがって、スキャンコードを、キー4、キー2の順に送信する。
【0032】
または、配列[4][2]の値と配列[2][4]の値を確認することによって、スキャンコードの順序を判定してもよい。配列[4][2]の値は1であるので、キー4はキー2より先に押されたと判定する。配列[2][4]の値は0であるので、キー2がキー4の次に押されたと判定する。
【0033】
図5は、3個のキー、すなわち、キー4、キー2、およびキー6を同じスキャンサイクル中に押した一例を示す。
【0034】
キー4に対しては、配列[4][1…n]の合計値を以下のように算出する。
【数3】
=0+0+1+0+(−1)+0+0+0=0
【0035】
キー2に対しては、配列[2][1…n]の合計値を以下のように算出する。
【数4】
=0+0+(−1)+0+0+0+0+0=−1
【0036】
キー6に対しては、配列[6][1…n]の合計値を以下のように算出する。
【数5】
=0+0+1+0+1+0+(−1)+0=1
【0037】
配列[6][1…n]の合計値は、配列[4][1…n]の合計値より大きく、配列[4][1…n]の合計値は、配列[2][1…n]の合計値より大きいので、キーの順序はキー6、キー4、キー2である(キー2、キー4、キー6ではない)と判定する。したがって、スキャンコードを、キー6,キー4、キー2の順に送信する。
【0038】
2次元配列上で学習した単一キーは、押された複数のキーと同じである例を上記に示したが、本発明では、概して、押された複数のキーは、押された、学習した単一キーに含まれるものとする。したがって、例えば、学習されたキーは、合計4個のキーからなり、一方、押された複数のキーは、前記4個の学習されたキーのうちの3個のみからなってもよい。
【0039】
上記では、合計値が降順に配列された例を示したが、本発明では、合計値が昇順に配列されるものでもよいとする。
【0040】
上記から理解されるように、キーボードシステム20、および、特に組込コントローラ22は、学習および、その学習に基づいて、複数のキーが単一のスキャンサイクル中に押された際にスキャンコードを送信する順序を判定する方法の工程を実施するよう構成されてもよい。
【0041】
図6は、本発明に係るスキャンコード送信方法手順60の一例を示すフローチャートである。一実施形態において、スキャンコード送信方法手順60は、
図3A〜
図3C、
図4A〜
図4B、および
図5に示した具体例を概括する。
【0042】
ステップ61において、キーボードマトリクスの走査を始めるか否かを判定してもよい。「No」であれば、スキャンコード送信方法手順60は、ステップ61に戻ってもよい。「Yes」であれば、ステップ62で、単一のスキャンサイクルを開始してもよい。
【0043】
ステップ63において、少なくとも1個のキーが押されたか否かを判定してもよい。「No」であれば、スキャンコード送信方法手順60はステップ64に進んでもよい。「Yes」であれば、スキャンコード送信方法手順はステップ65に進んでもよい。
【0044】
ステップ64において、次のスキャンサイクルに進むか否かを判定してもよい。「Yes」であれば、スキャンコード送信方法手順60はステップ62に戻る。「No」であれば、スキャンコード送信方法手順60を終了する。
【0045】
ステップ65において、複数のキー(すなわち、一群のキー)が単一のスキャンサイクル中に押されたか否かを判定してもよい。「No」であれば、スキャンコード送信方法手順60は、一スキャンサイクルにつき1個のキーのみを用いて複数のスキャンサイクル中に押された、単一のキー(またはスキャンコード)の順序を学習するための一連のステップ(66〜68)に進んでもよい。「Yes」であれば、スキャンコード送信方法手順60は一連のステップ(70〜73)に進み、単一のスキャンサイクル中に同時に押された(または素早く連続して押された)キー(またはスキャンコード)の順序を生成してもよく、そのようにして生成した順序は、複数のスキャンサイクルにおいて押された単一のキーを学習した順序に基づいている。
【0046】
学習ステップのうち、ステップ66は、単一スキャンサイクル中にどの単一キーが押されているかを判定し、その後、判定した最新キーを「Latest_Key」に設定してもよい。
【0047】
学習ステップのうち、ステップ67において、複数のスキャンサイクル中に押された単一のキーごとに、2次元配列における各配列を作成してもよい。各配列それぞれに対して、数値を設定してもよい。したがって、作成した2次元配列における第1配列を、[Latest_Key][1…n]として作成し、その配列の各エントリを「0」に設定してもよい。作成した2次元配列における第2配列を、[1…n][Latest_Key]として作成し、その配列の各エントリを「1」に設定してもよい。作成した2次元配列における第3配列を、[Latest_Key][Latest_Key]として作成し、その配列の各エントリを「−1」に設定してもよい。
【0048】
上述したように、単一のスキャンサイクルでは、n個のキーが走査されてもよく、2次元配列は、n個の行とn個の列からなってもよい。
【0049】
学習ステップのうち、ステップ68において、Latest_Keyを、EC22の送信キューに配置し、ステップ69でLatest_Keyのスキャンコードを最終的に送信してもよい。
【0050】
スキャンコードの順序を生成するステップにおいて、ステップ70は、M個のキーがある場合において、単一のスキャンサイクル中に押されたキー全てを判定してもよい。
【0051】
ステップ71では、2次元配列の、押された各key_m(m=1…M)に対して、配列[key_m][1…M]の各合計値(SUM Key_m)を、以下のように算出する。
【数6】
【0052】
ステップ72では、SUM key_m(m=1…M)全てを合計値降順に配列してもよい。
【0053】
ステップ73では、ステップ69でスキャンコードを最終的に送信するためのEC22の送信キューに、合計値降順に従って生成した順序でキー番号を送信する。したがって、最も高い数値を有するSUM key_mにより、それに関連するスキャンコードを最初に送信することが可能になる。また、最も低い数値を有するSUM key_mにより、それに関連するスキャンコードを最後に送信することが可能になる。ただし、本発明は、その順序は逆であってもよいとする。
【0054】
これらのステップを通してスキャンコード送信方法手順60が繰り返されるので、方法60は単一のキーからなる異なる群の順序を絶えず学習することは理解されよう。ユーザがそれらの単一キーの順序を変更すると、スキャンコード送信方法手順60もまた、それと同じ群の単一のキーの順序を変更することを学習する。したがって、単一のスキャンサイクル中に押されたキーの群の、生成した順序は時間とともに変更される場合がある。
【0055】
上記は本発明の実施形態の例に関するものであって、以下の請求項に記載される本発明の精神と範囲を逸脱しない限り、変更や修正を加えることができるということは、当然理解されるべきである。
【符号の説明】
【0056】
20 キーボードシステム
21 外部キーボードマトリクス
22 組込コントローラ(EC)
22b メモリ
22c キーボードスキャンインターフェース
22d 8042エミュレートキーボードコントローラ