JP4906178B2 - keyboard - Google Patents
keyboard Download PDFInfo
- Publication number
- JP4906178B2 JP4906178B2 JP2000223885A JP2000223885A JP4906178B2 JP 4906178 B2 JP4906178 B2 JP 4906178B2 JP 2000223885 A JP2000223885 A JP 2000223885A JP 2000223885 A JP2000223885 A JP 2000223885A JP 4906178 B2 JP4906178 B2 JP 4906178B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- keys
- scan
- memory
- determined
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Input From Keyboards Or The Like (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、複数個のキースイッチをマトリクス状に配置したスキャンタイプのキーボードに関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータ等で使用されるキーボードは、アプリケーションの多機能化、及び通信の高速化に伴い、キースキャン処理の一層の高速化が求められている。
複数個のキースイッチをマトリクス状に配置したスキャンタイプのキーボードにおいては、一般に、メンブレンスイッチキーマトリクスがコラム側に8本、ロウ側に16〜18本のラインが配置されている。このようなキーマトリクスにおいて、ロウ側のラインを順次ローレベルにセットし、そのロウ側に対応するコラム側の8本の状態を読み込むことによりキースキャンがなされる。
【0003】
このようなキーボードにおいて、同時に複数個のキースイッチが押下されたとき信号の回り込みが発生し、押下されたキー以外の別のキーが操作されたような擬似入力状態になる。このような回り込み現象を回避するために、キーボードの制御ファームウェアを用いて従来から様々な解決策がとられている。
その1つとしてFキーロールオーバ技術による方法がある。これは既に押下されたキーと新たに押下されたキーとを合わせた総押下キー数が4キー以上であり、かつ、新規に押下されたキーが2キー以上である場合に回り込みが発生したと判定する方法である。
【0004】
【発明が解決しようとする課題】
回り込み判定にFキーロールオーバ技術を用いた従来例による方法では、まず1キーずつキースキャンを行ってキーが押下されているか否かをチェックし、押下されたキーが見つかった場合には、その押下されたキーから再度キースキャンを実行し、その他のキーの押下状態をチェックしてからキーの入力可否を判定していた。このため、キースキャンに要する時間も長くなってしまう問題があった。また、キースキャンのタイミングを解析することによって、外部からの信号入力を行うことにより、キーの押下による出力が第三者によって容易に解析されてしまうという問題があった。更に、Fキーロールオーバ技術を用いた方法では、4キー以上のキーが押下された場合は回り込みが発生したものと常に判定してしまい、例えば点字入力をキーボードで行う場合などのような、6キーあるいは8キーを同時に組み合わせた正常なキー入力には対応できない。
【0005】
従って、本発明の第1の目的は、上記課題に鑑み、Fキーロールオーバ技術を用いた回り込み検査を行うキースキャン方法において、より高速なキースキャンを実現することにある。
本発明の第2の目的は、上記課題に鑑み、正常なキー操作として入力され得る複数のキー入力にも対応した回り込み検査が可能なキースキャン方法を提供することにある。
【0006】
【課題を解決するための手段】
上記第1の目的を実現するために、第1の発明によれば、キーを1つずつスキャンし、新規に押下されたキーを検出する検出手段と、新規に押下されたキーは正常なキー入力であると確定されたときに、確定キーとして記憶するための確定メモリと、新規に押下されたキーのアドレスを一時的に記憶するためのキーバッファであって、新規に押下されたキーのアドレスは、該アドレスがキーバッファに未だ記憶されていない場合のみ記憶されるキーバッファと、新規に押下されたキーのアドレスがキーバッファに既に記憶されている場合に、キーバッファに記憶されているアドレスの数と確定メモリに記憶された確定キーの数との合計が4以上であり、かつキーバッファに記憶されているアドレスの数が2以上であるときに回り込みがあると判定する回り込み判定手段と、回り込み判定手段で回り込みがないと判定された場合に、新規に押下されたキーを確定キーとして確定メモリに記憶すると共に、当該確定キーに対するコードの送信を要求するフラグをセットし、次のキーのスキャンに移るキー確定手段とを備える。
【0007】
上記第2の目的を実現するために、第2の発明によれば、コンピュータのキーボードをキースキャンした結果を1キー当り1ビットに対応したメモリマップ形式で一時的に記憶するためのスキャンメモリと、確定したキー入力を1キー当り1ビットに対応したメモリマップ形式で記憶する確定メモリと、スキャンメモリに記憶されたメモリマップにおいて、2キー以上のONキーが存在するラインがロウ側に少なくとも1つ存在するか否かを判定するロウ側判定手段と、スキャンメモリに記憶されたメモリマップにおいて、2キー以上のONキーが存在するラインがコラム側に少なくとも1つ存在するか否かを判定するコラム側判定手段と、ロウ側判定手段及びコラム側判定手段が共に、2キー以上のONキーが存在するラインが少なくとも1つ存在すると判定した場合に、回り込みと判定するキー確定手段とを備える。
【0008】
第1の発明によれば、回り込み検査のためのFキーロールオーバー技術を、1回のキースキャン内に実現するので、高速なキースキャン処理を実行でき、また、第三者によるキースキャンの解析を困難にすることができる。
第2の発明によれば、例えば点字入力を行う場合などのような、6キーあるいは8キーといったような、複数キーの正常なキー入力が可能なキーボードに対しても回り込み検査を実現できる。
【0009】
【発明の実施の形態】
本発明の第1の実施例のキースキャン方法によれば、スキャンされるキー毎にキー押下の有無がチェックされ、必要に応じて回り込み検査が実行される。
図1は、本発明の第1の実施例によるキーボード制御ファームウェアの概略図である。
【0010】
本実施例によるキーボード制御ファームウェア1は、新規に押下されたキーのアドレスを1キー当り1バイトとして4キー分だけ記憶するキーバッファ101と、1キーが1ビットに対応するメモリマップ形式で確定されたキー入力を記憶する確定スキャンメモリ102と、キーバッファ101に記憶されているアドレスの数をカウントする第1のカウンタ103と、確定スキャンメモリ102で確定キーを表わす「1」が立っている数をカウントする第2のカウンタ104とを備える。
【0011】
図2は、本発明の第1の実施例によるフローチャートを示す図である。
まず、キーボードの制御ファームウェア1は、ステップ200でキースキャンするタイミングであるかどうかをチェックし、キースキャンするタイミングになった時点でステップ201以降のキースキャンを実行する。一般にキーの押下後8〜10msまではキーの接点にチャタリングが発生しやすく、このチャタリングを避けるために、本実施例においてはキースキャンは8〜10ms毎に実行するものとする。すなわち、本実施例では、ステップ200によってキースキャン開始の周期が8〜10msになるようにタイミングが取られる。ステップ201以降のキースキャン処理そのものに要する時間は、これよりも短い。
【0012】
キースキャンは、スキャンポートの初期化及びカウンタ103及び104のクリア等のスキャン初期化処理(ステップ201)がなされることで開始される。この後、ステップ202以降の処理によって、キー1つ毎に対してスキャンし、キー押下の有無がチェックされ、必要に応じて回り込み検査が実行される。
ステップ202において、キーの状態の変化があるかどうかが判定される。キーの状態に変化がないときは、ステップ208へ進み、次のキーに対してスキャンがセットされる。
【0013】
ステップ202でキーの状態に変化があったと判定されると、ステップ203へ進む。キーの状態の変化には、キーが押されたときのOFFからONへの変化と、指がキーから離されたときのONからOFFへの変化との2つの場合があるが、ステップ203では、そのどちらであるかが判定される。
ステップ203において、キーの状態がONからOFFへ変化したと判定された場合は、指がキーから離されたことを意味する。換言すれば、キーの押下が終了し、後述する回り込み検査も完了してキーが確定されたということであるので、ステップ204に進み、キーオフ処理がなされる。
【0014】
ステップ204では、確定スキャンメモリ102がクリアされ、データ送信フラグがセットされる。すなわち、ステップ203においてキーの状態がONからOFFへ変化したと判定されたので、ステップ204では、キーOFFを示すOFFコードがデータ送信フラグとしてセットされる。この後、ステップ208に進み、次のキーに対してスキャンがセットされる。
【0015】
ステップ203において、キーの状態がOFFからONへ変化したと判定された場合は、新規にキーの押下があったことを意味するので、ステップ205へ進む。
ステップ205では、新規に押下されたキーのアドレスとキーバッファ101に既に記憶されている未確定キーのアドレスとを比較し、一致の有無が判定される。このキーバッファ101は、後述する回り込み検出のために、新規に押下されたキーのアドレスを未確定キーのアドレスとして一時的に記憶するものである。キーバッファはマイコン内に存在するが、その容量はマイコンのハードウェアの制限があるのでできるだけコンパクトであるのが好ましい。本実施例におけるキーバッファ101は、キーのアドレスを1キー当り1バイトとして、回り込み検出のために最低限必要である4バイト分の容量を有するが、それ以上の容量を有してもよい。
【0016】
ステップ205において、新規に押下されたキーのアドレスとキーバッファ101に既に記憶されている未確定キーのアドレスとが一致しないと判定された場合は、ステップ206へ進み、一致していると判定された場合は、ステップ210へ進む。
ステップ206では、第1のカウンタ103はキーバッファ101に記憶されているアドレスの数をカウントし、満杯であるか否かを判定する。
【0017】
ステップ206でキーバッファ101が満杯であると判定された場合は、既に総キー数が4キー以上存在するということなので、回り込み現象が発生していることを意味し、従ってキーの確定はせずに、ステップ208に進む。
ステップ206でキーバッファ101が満杯ではないと判定された場合は、ステップ207に進む。
【0018】
ステップ207では、新規に押下されたキーのアドレスが未確定キーのアドレスとしてキーバッファ101に記憶される。そしてステップ208へ進み、次のキーに対してスキャンがセットされる。
ステップ210では回り込み検査が実行される。この回り込み検査では、まず、第2のカウンタ104は、他の新規に押下されたキー(未確定キーも含む)も含めた新規キーのキー数と既に確定され確定スキャンメモリ102に格納されたキー数とを総押下キー数としてカウントする。そして、この総押下キー数が4キー以上であり、かつ新規に押下されたキーのキー数が2キー以上であるかが判定される。
【0019】
ここで回り込み現象について説明する。複数個のキースイッチをマトリクス状に配置したスキャンタイプのキーボードにおいては、例えば、メンブレンスイッチキーマトリクスがコラム側に8本、ロウ側に16〜18本のラインが配置されている。コラム側の各ラインは抵抗を介して5Vの電源に接続されている。このようなキーマトリクスにおけるキースキャンでは、ロウ側のラインを順次ずつローレベル(0V)にセットし、そのロウ側に対応するコラム側の8本の状態を読み込み、ローレベルが検出されたときに当該キーが押下されたと判定する。
【0020】
図3は「A」キーが押下された場合を説明する図であり、図4は「B」、「C」、「D」キーが同時に押下された場合を説明する図である。
回り込み現象についての理解を容易にするために、図3及び4においては、コラム側ライン及びロウ側ラインはそれぞれ2本であると仮定し、検出ラインであるコラム側ラインをX1及びX2、検出ラインと交差するロウ側ラインをY1及びY2とする。
【0021】
コラム側ラインX1及びX2は抵抗を介して5Vの電源に接続されており、通常、キーボードのスキャンはロウ側ラインを順次ローレベル(0V)にセットし、コラム側ラインX1及びX2の電圧レベルを見ることでキースキャンがなされる。
図3は通常の「A」キーが正常に押下された場合である。Y1をローレベルにセットしてX1の電圧レベルと見ると0Vであるので、「A」キーが押下されたと検出される。
【0022】
これに対し、図4において、Y1をローレベルにセットすると、電流はスイッチを「C」、「D」、「B」の順に介してグランドに流れる。このとき、X1の電圧レベルと見ると0Vであるので、「A」キーが押下されたと誤検出される。
これが回り込み現象である。
従って、回り込み現象を検出する回り込み条件として、上述のように、他の新規に押下されたキー(未確定キーも含む)も含めた新規キーのキー数と既に確定され確定スキャンメモリ102に格納されたキー数とを総押下キー数としてカウントし、この総押下キー数が4キー以上であり、かつ新規に押下されたキーのキー数が2キー以上であるか否かが判定される。
【0023】
ステップ210で上述の回り込み条件に合致すると判定された場合は、新規に押下されたキーは回り込みにより発生した可能性があるので、キーの確定は行わない。このとき、例えば「FF」のコードを出力し、ホストはこれを受信すると警報を鳴らすなどしてユーザに注意を喚起してもよい。この後、ステップ208に進み、次のキーに対してスキャンがセットされる。
【0024】
ステップ210で上述の回り込み条件に合致しないと判定された場合は、回り込み現象は発生していないので、新規に押下されたキーをキー入力として確定するため、ステップ211へ進む。
ステップ211では、キーバッファ101の内容をクリアし、新規に押下されたキーを確定キーとしてメモリマップ形式で確定スキャンメモリ102に記憶し、キーONを示すONコードがデータ送信フラグとしてセットされる。この後、ステップ208に進み、次のキーに対してスキャンがセットされる。
【0025】
ステップ208では、MCUポートのセット及び次にスキャンするアドレスのセット等が実行される。
ステップ209では、スキャンエンドであるか否か、すなわちキーボード上の全てのキーに対してスキャンがされたか否か判定される。
ステップ209でスキャンエンドではないと判定されると、まだスキャンされていないキーがあるのでステップ202に戻る。
【0026】
ステップ209でスキャンエンドであると判定されると、全てのキーに対してスキャンがされたことになるので、ステップ212へ進む。
例えば、キースキャン1周期の間に、ステップ202でキー変化ありと判定され、ステップ203でそのキー変化がOFFからONであると判定され、ステップ205でキーバッファ101に記憶されたアドレスと一致しないと判定され、ステップ206でキーバッファ101が満杯ではないと判定されるといったプロセスを4回経ると、キーバッファ101にキーのアドレスが4つ記憶されることになり、回り込み現象が発生していることを意味する。
【0027】
ステップ212では、データ送信フラグがセットされているか否かが判定される。キーデータを送信するための送信用バッファに、確定されたキーデータを記憶していくが、送信フラグが立ったときに送信バッファからデータを出す。前述のように、データ送信フラグは、ステップ204あるいはステップ211においてセットされる。つまり、ステップ204でデータ送信フラグが立てられるのは、キーの変化がONからOFFであるからであり、ステップ211でデータ送信フラグが立てられるのは、ステップ210の回り込み検査により回り込み無しと判定されたので新規に押下されたキーが確定キーであるからである。
【0028】
ステップ212でデータ送信フラグがセットされていると判定された場合は、対応するキーコードを出力し、ステップ200へ戻る。
ステップ212でデータ送信フラグがセットされていないと判定された場合はキーボードに対して何の操作もされていないことを意味しており、ステップ200へ戻る。
【0029】
そして、前述のように、本実施例では、ステップ200によってキースキャンの周期が所定の時間、例えば8〜10msになるようにタイミングが取られ、次のキースキャンに移る。また、本実施例によれば、所定の時間毎にキースキャンを実行するので、キーの状態が変化しても単にキーバッファ101へのアドレスの記憶又は削除の処理をするのみであるので、キーのON/OFFの処理時間の差はほとんどなく、常にほぼ一定の時間でキースキャンを実行することができる。これにより第三者によるキースキャンの解析を困難にすることが可能であり、信頼性の高いキーボードの実現が可能となる。
【0030】
このように本実施例によれば、回り込み検査のためのFキーロールオーバー技術を、1回のキースキャン内に実行するので、高速なキースキャン処理が可能である。
次に、本発明の第2の実施例によるキースキャン方法について説明する。
本実施例では、キーマトリクスは、コラム側には8本のライン、ロウ側には10〜18本のラインが構成され、ロウ側の各ラインのスキャン毎にコラム側の各ラインの状態を一時的に記録しておく一時スキャンメモリを備える。
【0031】
キーボードのスキャンは、第1の実施例の項でも説明したように、ロウ側のラインを1本ずつローレベル(又はハイレベル)にセットし、そのロウ側に対応するコラム側の8本のラインの状態を読み込むことでなされる。読み込まれた各キーの状態は、本実施例においては、一時スキャンメモリに一時的に記憶される。一時スキャンメモリでは、1ビットあたり1キーが記憶されるといったメモリマップ形式で記憶され、キーマトリクスに対応してコラム側は8ビット、ロウ側にはライン数分(例えば10〜18ビット)だけ用意される。
【0032】
図5は、複数のキーが押下された場合の一時スキャンメモリのメモリマップを例示する図である。この図においては、キーがONである状態を「1」で示している。
複数のキーを押下してキーの回り込み現象が発生すると、図5(a)に例示すように、キーのON状態がコラム側及びロウ側の格子位置に現れる。つまり、コラム側のいずれか1ライン及びロウ側のいずれか1ラインにおいて、それぞれ2個以上のキーのON状態が同時に発生することになる。
【0033】
図5(b)もまた、コラム側のいずれか1ライン及びロウ側のいずれか1ラインにおいて、それぞれ2個以上ON状態が発生した場合を例示した図であるが、この場合は、キーのON状態がコラム側及びロウ側の格子位置には現れておらず、従って、回り込み現象が発生しているわけではない。実際には、正常なキー操作ではキーは1つずつ順次押下されるので、図5(b)に示されるマトリクスパターンは、キーのONを示す「1」が1つずつ現れる。
【0034】
このように、図5の(a)及び(b)の両方とも、コラム側のいずれか1ライン及びロウ側のいずれか1ラインにおいてそれぞれ2個以上のキーのON状態が検出されるが、その相違は、新規にキーが押下されたときに同時に何個のON状態のキーが検出されるかである。
従って、本発明による第2の実施例では、まず、コラム側の各ライン及びロウ側の各ラインのキーのON数をカウントし、コラム側のライン及びロウ側のラインそれぞれにおいて、少なくとも1ラインに、2キー以上のONキーが存在するか否かをカウントする。1ラインに2キー以上のONキーが存在していた場合は、更に、新規に押下されたキーによるON状態の検出が2個以上あったかどうかをカウントし、2個以上あった場合は、回り込み現象が発生したと判定する。
【0035】
図6は、本発明の第2の実施例によるフローチャートを示す図である。
まず、キーボードファームウェアは、スキャンする時間になったか否かをチェックし、スキャンのタイミングになった時点でスキャンを開始する。まずステップ501において、スキャンポートの初期化を実施する。
続いてステップ502において、キースキャンが実行される。ロウ側のラインを1本ずつローレベル(又はハイレベル)にセットし、そのロウ側に対応するコラム側の8本のラインの状態を読み込み、一時スキャンメモリに記憶していく。この一時スキャンメモリにおいては、1ビットあたり1キーが記憶されるといったメモリマップ形式で記憶され、キーマトリクスに対応してコラム側は8ビット、ロウ側にはライン数分(例えば10〜18ビット)だけ用意される。
【0036】
次に、ステップ503において、コラム側の各ラインのキーのON数をカウントし、2キー以上のONキーが存在するラインが少なくとも1つ存在するか否かを判定する。
図7は、本実施例によるコラム側のラインのカウントを説明する図である。この図は、一時スキャンメモリのメモリマップの一例を示しており、「1」はキーのON状態、「0」はキーのOFF状態をそれぞれ表す。また、説明を簡単にするため、各ロウをロウ1、ロウ2、ロウ3、・・・、ロウ8、各コラムをコラム1、コラム2、コラム3、・・・、と呼び、各ロウと各コラムは入れ替えて対角表示している。
【0037】
前述のように、各キーのON、OFF状態は一時スキャンメモリにメモリマップ形式で記憶されており、キーマトリクスの各コラムの8本におけるラインは一時スキャンメモリの各コラムの8ビットに対応している。
表1は、8ビットの各コラム内において、1個又は0個のキーのON状態がある場合を表しており、そのそれぞれを「**h」のように16進数表示している。ステップ503では表1に基づいて、一時スキャンメモリに記憶されたコラムのそれぞれに対して2キー以上の押下を検出する。すなわち、ステップ503では、一時スキャンメモリに記憶されている各コラムのキーの状態が、00h、01h、02h、04h、08h、10h、20h、40h、80hのいずれにもあてはまらないときは、2キー以上が押下されたと判定する。
【0038】
【表1】
例えば、図7のようなメモリマップでは、コラム2が「24h」、コラム3が「D0h」であり、これら各コラムは2キー以上の押下があるものと判定される。
上述の方法で、ステップ503で2キー以上のONキーが存在するラインが存在しないと判定された場合は回り込み現象はないということであり、キーが確定され、確定スキャンメモリに記憶される。
【0039】
また、ステップ503で2キー以上のONキーが存在するラインが少なくとも1つ存在すると判定された場合はステップ504へ進む。
次に、ステップ504において、ロウ側の各ラインのキーのON数をカウントし、2キー以上のONキーが存在するラインが少なくとも1つ存在するか否かを判定する。
【0040】
図8は、本実施例によるロウ側のラインのカウントを説明する図である。この図は、図7と同様に一時スキャンメモリのメモリマップの一例を示しており、「1」はキーのON状態、「0」はキーのOFF状態をそれぞれ表す。図7同様、各ロウと各コラムは入れ替えて対角表示している。
本実施例では、各ロウ毎にカウンタを用いてデータを足し込み、カウンタの値が2以上であるか否かで2キー以上の押下を検出する。例えば図8においてはロウ2のカウンタの値は2であるので、ロウ2は2キー以上の押下があると判定される。
【0041】
上述の方法で、ステップ504で2キー以上のONキーが存在するラインが存在しないと判定された場合は回り込みはないということであり、キーが確定され、確定スキャンメモリに記憶される。
また、ステップ504で2キー以上のONキーが存在するラインが少なくとも1つ存在すると判定された場合はステップ505へ進む。
【0042】
ステップ505では新規に押下されたキーによるON状態の検出が同時に2個以上あったかどうかをチェックする。図5を参照して既に説明したように、ロウ側に2キー以上のONキーが存在するラインが少なくとも1つ存在していても、必ずしも回り込みが発生しているとは限らない。正常なキー操作では、キーは1つずつ順次押下されるので、一時スキャンメモリにはキーのONを示す「1」が1つずつ現れるが、キーの多重打鍵の場合は一時スキャンメモリにはキーのONを示す「1」が同時に2以上現れることになる。従って、ステップ505において新規に押下されたキーによるON状態の検出が同時に2個以上あったかどうかを検査することでこのような誤認識を防ぎ、回り込み現象の有無の判定をより確実なものにする。
【0043】
図9は、本実施例による新規に押下されるキー数のカウントを説明する図である。この図は、図7又は8と同様に一時スキャンメモリのメモリマップの一例を示しており、「1」はキーのON状態、「0」はキーのOFF状態をそれぞれ表す。図7及び8同様、各ロウと各コラムは入れ替えて対角表示している。
本実施例では、上述のようにキーボードのスキャンの結果はメモリマップ形式で一時スキャンメモリに一時的に記憶されている。ステップ505では、これを確定スキャンメモリと比較し、差分をとることで図9に示す変化ビットとして抽出する。ロウ側のラインのビット値が00hではないようなラインが2つ以上で存在すれば、キーが同時に2以上押下されたということになる。
【0044】
上述の方法で、ステップ505で同時に2個以上はないと判定された場合は、回り込みはないということなのでキーが確定され、確定スキャンメモリに記憶される。
また、ステップ505で同時に2個以上あったと判定された場合は場合は、回り込み現象が発生したということになる。
【0045】
このように、本発明の第2の実施例によれば、例えば点字入力を行う場合などのような、6キーあるいは8キーといったような、複数キーの正常なキー入力が可能なキーボードに対しても回り込み検査を実現することができる。
【0046】
【発明の効果】
以上説明したように、第1の発明によれば、回り込み検査のためのFキーロールオーバー技術を、1回のキースキャン内に実現するので、高速なキースキャン処理を実行でき、また、第三者によるキースキャンの解析を困難にすることが可能であり、安全性が高まる。
【0047】
第2の発明によれば、例えば点字入力を行う場合などのような、6キーあるいは8キーといったような、複数キーの正常なキー入力が可能なキーボードに対しても回り込み検査を実現することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例によるキーボード制御ファームウェアの概略図である。
【図2】本発明の第1の実施例によるフローチャートを示す図である。
【図3】「A」キーが押下された場合を説明する図である。
【図4】「B」、「C」、「D」キーが同時に押下された場合を説明する図である。
【図5】複数のキーが押下された場合の一時スキャンメモリのメモリマップを例示する図である。
【図6】本発明の第2の実施例によるフローチャートを示す図である。
【図7】本実施例によるコラム側のラインのカウントを説明する図である。
【図8】本実施例によるロウ側のラインのカウントを説明する図である。
【図9】本実施例による新規に押下されるキー数のカウントを説明する図である。
【符号の説明】
1…キーボード制御ファームウェア
101…キーバッファ
102…確定スキャンメモリ
103…第1のカウンタ
104…第2のカウンタ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a scan type keyboard in which a plurality of key switches are arranged in a matrix.
[0002]
[Prior art]
In recent years, keyboards used in personal computers and the like have been required to have a higher speed of key scan processing as applications become more multifunctional and communication speeded up.
In a scan-type keyboard in which a plurality of key switches are arranged in a matrix, generally, the membrane switch key matrix has 8 lines on the column side and 16 to 18 lines on the row side. In such a key matrix, key scanning is performed by sequentially setting the row line on the low side to the low level and reading the eight column side states corresponding to the row side.
[0003]
In such a keyboard, when a plurality of key switches are pressed at the same time, a signal wraps around and a pseudo input state is entered as if another key other than the pressed key is operated. In order to avoid such a wraparound phenomenon, various solutions have been conventionally used by using keyboard control firmware.
One of them is the method using the F key rollover technique. This is the key already pressed When This is a method for determining that a wraparound has occurred when the total number of pressed keys including the newly pressed key is 4 or more and the newly pressed key is 2 or more.
[0004]
[Problems to be solved by the invention]
In the conventional method using the F-key rollover technique for the wraparound determination, first, a key scan is performed for each key to check whether or not the key is pressed. The key scan is executed again from the pressed key, and after checking the pressed state of other keys, it is determined whether or not the key can be input. For this reason, there is a problem that the time required for the key scan becomes longer. In addition, there is a problem in that an output by pressing a key is easily analyzed by a third party by inputting an external signal by analyzing the timing of key scanning. Further, in the method using the F-key rollover technique, when four or more keys are pressed, it is always determined that a wraparound has occurred. For example, when a braille input is performed with a keyboard, 6 It cannot respond to normal key input that combines keys or 8 keys at the same time.
[0005]
Accordingly, a first object of the present invention is to realize a higher-speed key scan in a key scan method for performing a wraparound inspection using the F key rollover technique in view of the above problems.
In view of the above problems, a second object of the present invention is to provide a key scanning method capable of performing a loop check corresponding to a plurality of key inputs that can be input as normal key operations.
[0006]
[Means for Solving the Problems]
In order to achieve the first object, according to the first invention, the detection means for scanning the keys one by one to detect the newly pressed key, and the newly pressed key is a normal key. A key memory for temporarily storing the address of a newly pressed key and a key memory for temporarily storing the address of the newly pressed key when it is determined that the input is confirmed. The address is stored in the key buffer, which is stored only when the address is not yet stored in the key buffer, and when the address of the newly pressed key is already stored in the key buffer. If the sum of the number of addresses and the number of confirmed keys stored in the confirmed memory is 4 or more and the number of addresses stored in the key buffer is 2 or more, there is a wraparound And a flag for requesting transmission of a code with respect to the confirmation key and storing the newly pressed key as a confirmation key when it is determined that there is no wraparound. Key determining means for setting and moving to the next key scan.
[0007]
In order to achieve the second object, according to the second invention, there is provided a scan memory for temporarily storing a result of key scanning of a computer keyboard in a memory map format corresponding to one bit per key; In the confirmed memory for storing the confirmed key input in a memory map format corresponding to 1 bit per key, and in the memory map stored in the scan memory, at least one line on which two or more ON keys exist is on the low side. In the memory map stored in the scan memory, it is determined whether or not there is at least one line on the column side where two or more ON keys exist. Both the column side determination means, the row side determination means and the column side determination means have at least a line on which two or more ON keys exist. One when it is determined to be present, and a wraparound and determining key determination means.
[0008]
According to the first invention, since the F key rollover technique for the loop inspection is realized in one key scan, a high-speed key scan process can be executed, and a key scan analysis by a third party can be performed. Can be difficult.
According to the second aspect of the present invention, it is possible to realize a wraparound inspection even for a keyboard capable of normal key input of a plurality of keys, such as 6 keys or 8 keys, for example, when performing braille input.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
According to the key scanning method of the first embodiment of the present invention, the presence or absence of key depression is checked for each scanned key, and a wraparound inspection is performed as necessary.
FIG. 1 is a schematic diagram of keyboard control firmware according to a first embodiment of the present invention.
[0010]
The
[0011]
FIG. 2 is a flowchart illustrating the first embodiment of the present invention.
First, the
[0012]
The key scan is started by performing a scan initialization process (step 201) such as initialization of the scan port and clearing of the
In
[0013]
If it is determined in
If it is determined in
[0014]
In
[0015]
If it is determined in
In
[0016]
If it is determined in
In
[0017]
If it is determined in
If it is determined in
[0018]
In
In
[0019]
Here, the wraparound phenomenon will be described. In a scan-type keyboard in which a plurality of key switches are arranged in a matrix, for example, the membrane switch key matrix has 8 lines on the column side and 16 to 18 lines on the row side. Each line on the column side is connected to a 5V power source via a resistor. In the key scan in such a key matrix, when the low level is detected by sequentially setting the row line on the low side to the low level (0V), reading the eight column side states corresponding to the low side. It is determined that the key has been pressed.
[0020]
FIG. 3 is a diagram illustrating a case where the “A” key is pressed, and FIG. 4 is a diagram illustrating a case where the “B”, “C”, and “D” keys are pressed simultaneously.
In order to facilitate understanding of the wraparound phenomenon, in FIGS. 3 and 4, it is assumed that there are two column-side lines and two row-side lines, and the column-side lines as detection lines are X1 and X2, and the detection lines. Let Y1 and Y2 be the low-side lines that intersect with.
[0021]
The column side lines X1 and X2 are connected to a 5V power supply through resistors. Normally, the keyboard scan sequentially sets the low side lines to the low level (0V) and sets the voltage levels of the column side lines X1 and X2 to the low level. A key scan is made by looking.
FIG. 3 shows a case where the normal “A” key is normally pressed. When Y1 is set to a low level and viewed as the voltage level of X1, it is 0 V, so it is detected that the “A” key has been pressed.
[0022]
On the other hand, in FIG. 4, when Y1 is set to the low level, the current flows to the ground through the switches in the order of “C”, “D”, and “B”. At this time, since the voltage level of X1 is 0 V, it is erroneously detected that the “A” key is pressed.
This is a wraparound phenomenon.
Therefore, as described above, as the sneak condition for detecting the sneak phenomenon, the number of new keys including other newly pressed keys (including unconfirmed keys) is already confirmed and stored in the confirmed
[0023]
If it is determined in
[0024]
If it is determined in
In
[0025]
In
In
If it is determined in
[0026]
If it is determined in
For example, during one key scan cycle, it is determined that there is a key change in
[0027]
In
[0028]
If it is determined in
If it is determined in
[0029]
As described above, in this embodiment, in
[0030]
As described above, according to the present embodiment, the F key rollover technique for the wraparound inspection is executed within one key scan, so that high-speed key scan processing is possible.
Next, a key scanning method according to the second embodiment of the present invention will be described.
In this embodiment, the key matrix includes 8 lines on the column side and 10 to 18 lines on the row side, and the state of each line on the column side is temporarily changed for each scan of the row side line. Temporary scan memory is provided for automatic recording.
[0031]
As described in the first embodiment, the keyboard scan is performed by setting the low-side lines one by one to the low level (or high level), and the column-side eight lines corresponding to the low side. This is done by reading the state of. In the present embodiment, the state of each read key is temporarily stored in a temporary scan memory. Temporary scan memory is stored in a memory map format in which one key is stored per bit. The column side has 8 bits and the row side has the number of lines (for example, 10 to 18 bits) corresponding to the key matrix. Is done.
[0032]
FIG. 5 is a diagram illustrating a memory map of the temporary scan memory when a plurality of keys are pressed. In this figure, the state in which the key is ON is indicated by “1”.
When a key wraparound phenomenon occurs when a plurality of keys are pressed, the ON state of the keys appears at the grid positions on the column side and the row side, as shown in FIG. 5A. That is, in any one line on the column side and any one line on the row side, the ON state of two or more keys occurs simultaneously.
[0033]
FIG. 5B is also a diagram exemplifying a case where two or more ON states occur in any one line on the column side and any one line on the row side. In this case, the key is turned on. The state does not appear at the lattice positions on the column side and the row side, and therefore, no wraparound phenomenon occurs. Actually, in normal key operation, the keys are sequentially pressed one by one. Therefore, in the matrix pattern shown in FIG. 5B, “1” indicating ON of the keys appears one by one.
[0034]
As described above, in both (a) and (b) of FIG. 5, the ON state of two or more keys is detected in any one line on the column side and any one line on the row side. The difference is how many ON keys are detected simultaneously when a new key is pressed.
Accordingly, in the second embodiment according to the present invention, first, the number of ONs of the keys of the respective lines on the column side and the respective lines on the row side is counted, and at least one line is counted in each of the column side line and the row side line. Count whether there are two or more ON keys. If there are two or more ON keys on one line, it is further counted whether or not there are two or more ON state detections by the newly pressed key. Is determined to have occurred.
[0035]
FIG. 6 is a flowchart according to the second embodiment of the present invention.
First, the keyboard firmware checks whether it is time to scan, and starts scanning when it is time to scan. First, in
Subsequently, in
[0036]
Next, in
FIG. 7 is a diagram for explaining the counting of lines on the column side according to the present embodiment. This figure shows an example of a memory map of the temporary scan memory, where “1” represents the key ON state and “0” represents the key OFF state. For simplicity, each row is called
[0037]
As described above, the ON / OFF state of each key is stored in the temporary scan memory in a memory map format, and the 8 lines in each column of the key matrix correspond to the 8 bits of each column in the temporary scan memory. Yes.
Table 1 shows the case where one or zero key is ON in each column of 8 bits, and each of them is displayed as a hexadecimal number such as “** h”. In
[0038]
[Table 1]
For example, in the memory map as shown in FIG. 7,
If it is determined in the above-described method that there is no line in which two or more ON keys exist in
[0039]
If it is determined in
Next, in
[0040]
FIG. 8 is a diagram for explaining the counting of the line on the row side according to the present embodiment. This figure shows an example of the memory map of the temporary scan memory as in FIG. 7, where “1” represents the key ON state and “0” represents the key OFF state. As in FIG. 7, each row and each column are interchanged and displayed diagonally.
In this embodiment, data is added using a counter for each row, and pressing of two or more keys is detected depending on whether the value of the counter is two or more. For example, in FIG. 8, the value of the counter of
[0041]
In the above-described method, if it is determined in
If it is determined in
[0042]
In
[0043]
FIG. 9 is a diagram illustrating the count of the number of newly pressed keys according to the present embodiment. This figure shows an example of the memory map of the temporary scan memory, as in FIG. 7 or 8, where “1” represents the key ON state and “0” represents the key OFF state. As in FIGS. 7 and 8, each row and each column are interchanged and displayed diagonally.
In the present embodiment, as described above, the keyboard scan result is temporarily stored in the temporary scan memory in the memory map format. In
[0044]
If it is determined in the above-described method that there are not two or more at the same time in
If it is determined in
[0045]
Thus, according to the second embodiment of the present invention, for a keyboard capable of normal key input of a plurality of keys, such as 6 keys or 8 keys, for example, when performing braille input. Can also implement a wraparound inspection.
[0046]
【Effect of the invention】
As described above, according to the first invention, since the F key rollover technique for the wraparound inspection is realized in one key scan, a high-speed key scan process can be executed. It is possible to make it difficult for the person to analyze the key scan, and safety is increased.
[0047]
According to the second aspect of the present invention, it is possible to realize a wraparound inspection even for a keyboard capable of normal key input of a plurality of keys such as 6 keys or 8 keys, for example, when performing Braille input. it can.
[Brief description of the drawings]
FIG. 1 is a schematic diagram of keyboard control firmware according to a first embodiment of the present invention.
FIG. 2 is a flowchart according to the first embodiment of the present invention.
FIG. 3 is a diagram illustrating a case where an “A” key is pressed.
FIG. 4 is a diagram illustrating a case where “B”, “C”, and “D” keys are pressed simultaneously.
FIG. 5 is a diagram illustrating a memory map of a temporary scan memory when a plurality of keys are pressed.
FIG. 6 is a flowchart according to a second embodiment of the present invention.
FIG. 7 is a diagram for explaining column-side line counting according to the embodiment;
FIG. 8 is a diagram for explaining the count of the row line according to the embodiment.
FIG. 9 is a diagram for explaining the count of the number of newly pressed keys according to the embodiment.
[Explanation of symbols]
1 ... Keyboard control firmware
101 ... Key buffer
102 ... Final scan memory
103 ... 1st counter
104 ... second counter
Claims (3)
前記スキャンメモリに記憶されたメモリマップにおいて、2キー以上のONキーが存在するラインがロウ側に少なくとも1つ存在するか否かを判定するロウ側判定手段と、
前記スキャンメモリに記憶されたメモリマップにおいて、2キー以上のONキーが存在するラインがコラム側に少なくとも1つ存在するか否かを判定するコラム側判定手段と、
前記ロウ側判定手段及び前記コラム側判定手段が共に、2キー以上のONキーが存在するラインが少なくとも1つ存在すると判定した場合において、新規に押下されたキーによるON状態の検出が同時に2個以上あったか否かを判定する同時キー押下判定手段と、
前記ロウ側判定手段もしくは前記コラム側判定手段のいずれか一方が、2キー以上のONキーが存在しないと判定した場合に、あるいは、前記同時キー押下判定手段が、新規に押下されたキーによるON状態の検出が同時に2個以上はないと判定した場合に、前記スキャンメモリに記憶されている内容を確定キーとして確定し、前記同時キー押下判定手段が、新規に押下されたキーによるON状態の検出が同時に2個以上あったと判定した場合に、回り込みと判定するキー確定手段と、
前記キー確定手段により確定された確定キーを記憶する確定メモリと、
を備えることを特徴とするキーボード。A scan memory for temporarily storing a result of key scanning of a computer keyboard in a memory map format corresponding to one bit per key;
Low side determination means for determining whether or not there is at least one line on the low side where there are two or more ON keys in the memory map stored in the scan memory;
Column side determination means for determining whether or not there is at least one line on the column side where there are two or more ON keys in the memory map stored in the scan memory;
When both the row-side determination means and the column-side determination means determine that there is at least one line having ON keys of two or more keys, two ON state detections by a newly pressed key are simultaneously performed. Simultaneous key press determination means for determining whether or not there has been,
When either the row-side determining means or the column-side determining means determines that there are no more than two ON keys, or the simultaneous key pressing determining means is turned on by a newly pressed key When it is determined that two or more states are not detected at the same time, the content stored in the scan memory is determined as a determination key, and the simultaneous key pressing determination unit is in an ON state by a newly pressed key. A key confirming means for determining that wraparound occurs when it is determined that there are two or more detections simultaneously;
A confirmation memory for storing a confirmation key confirmed by the key confirmation means;
A keyboard characterized by comprising.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000223885A JP4906178B2 (en) | 2000-07-19 | 2000-07-19 | keyboard |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000223885A JP4906178B2 (en) | 2000-07-19 | 2000-07-19 | keyboard |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002041215A JP2002041215A (en) | 2002-02-08 |
JP4906178B2 true JP4906178B2 (en) | 2012-03-28 |
Family
ID=18717922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000223885A Expired - Fee Related JP4906178B2 (en) | 2000-07-19 | 2000-07-19 | keyboard |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4906178B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002342001A (en) | 2001-05-17 | 2002-11-29 | Sourcenext Corp | Key input counting system, key input counting method and key input counting program |
-
2000
- 2000-07-19 JP JP2000223885A patent/JP4906178B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002041215A (en) | 2002-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0441032B1 (en) | Keyboard emulation system | |
JPS5876932A (en) | Keyboard scanning and interface method and circuit | |
KR900007405B1 (en) | Keyboard control method | |
JP3262989B2 (en) | Information processing device | |
EP0067516B1 (en) | Shift control system for keyboards | |
JP4906178B2 (en) | keyboard | |
JP3039516B2 (en) | Password input device using pointing device | |
CN111077401A (en) | Keyboard testing method, device and storage medium | |
KR0179757B1 (en) | Cryptographic input device | |
JPH0313610B2 (en) | ||
JPH0426130B2 (en) | ||
KR100506280B1 (en) | Key-in Recognition Circuit and Method in Telephone | |
KR0164404B1 (en) | Key input method and apparatus using phone key-pad | |
JPH0540557A (en) | Keyboard device | |
JPH103340A (en) | Key input device | |
JPS6319886B2 (en) | ||
CN1051095A (en) | Personal computer memory bank parity error indicator | |
JPS609288B2 (en) | character input device | |
JPS6014383B2 (en) | Word processor character assignment method | |
JP2823610B2 (en) | Key input device | |
SU290280A1 (en) | DEVICE FOR ENTERING INFORMATION | |
JP2870209B2 (en) | Keyboard control method | |
JPH0142408B2 (en) | ||
JPS61267817A (en) | Pen type input device | |
JPS61260317A (en) | Control system for electrostatic capacity type keyboard |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20031125 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070514 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090811 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091013 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100308 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100427 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20100625 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111117 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120110 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150120 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4906178 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |