(57)【要約】【課題】  携帯情報端末のような組込みシステムにおいて、アプリケーションに対しキー割込み通知を行う際、ＣＰＵに対するキーイベントの通知が適正に行われないことがある。【解決手段】  キーコントローラ（1-8）は、ＣＰＵ（1-1）によるアプリケーションの実行に有効なキーの種別および操作形態がをアプリケーション別に規定したキー情報と、割込みコントローラ（1-9）に対する通知形態をキー別に規定した通知情報とを含むキーテーブル（1-17）を有する。キーコントローラのキー制御部（1-19）は、ＣＰＵが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づいて、キー操作に応じたキー割込みの発生を割込みコントローラに通知する。【選択図】      図１
2007072986.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが操作するキーボタンと、アプリケーションを実行するＣＰＵと、該ＣＰＵに対しキー操作の割込み信号を供給する割込みコントローラと、前記キーボタンの状態変化を表すキー信号に基づき前記割込みコントローラに対しキー割込みの発生を通知するキーコントローラとを備え、
前記キーコントローラは、
前記ＣＰＵによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー情報と、前記割込みコントローラに対する通知形態をキー別に規定した通知情報とを含むキーテーブルと、
前記ＣＰＵが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知するキー制御部とを有することを特徴とする組込みシステム。
【請求項２】
前記キーコントローラは、
前記キーボタンからのキー信号が示す種別および操作形態の情報を記憶するバッファを有し、
前記キー制御部は、前記バッファへ格納すべき情報に必要な記憶容量を前記バッファの空き容量と比較し、前記バッファの空き容量のほうが小さい場合、前記情報を破棄することを特徴とする請求項１記載の組込みシステム。
【請求項３】
前記キー制御部は、キーの押下を示し且つ前記バッファへ格納すべきキー信号に対し、通知情報として、キー押下後の解放時にキー割込みを通知することが設定されている場合、当該キーの解放を示すキー信号を前記バッファへ格納するまで該キーに関するキー割込みの通知を保留することを特徴とする請求項２記載の組込みシステム。
【請求項４】
前記キーコントローラは、
計時を行うキー制御タイマを有し、
前記キー制御部は、キーの押下を示し且つ前記バッファへ格納すべきキー信号に対し、キー情報として、前記キー制御タイマの計時に基づく所定期間キーの押下を継続するキー長押しが設定されている場合、前記キー制御タイマに前記所定期間を設定し、当該キーの解放を示すキー信号を前記バッファへ格納する前に前記キー制御タイマから満了を通知されたとき、当該キーのキー長押しが有効であることを示す情報を前記バッファへ格納することを特徴とする請求項２又は３記載の組込みシステム。
【請求項５】
スピーカと、該スピーカに音響信号を発信するサウンド制御部とを有し、
前記キー制御部は、前記サウンド制御部に対しキー割込みの発生を通知し、
前記サウンド制御部は、前記キー制御部からの通知を契機に音響信号を発信することを特徴とする請求項１乃至４のいずれか１項に記載の組込みシステム。
【請求項６】
請求項２乃至５のいずれか１項に記載の組込みシステムにおける前記ＣＰＵに実行させるプログラムであって、
前記ＣＰＵが、
前記割込みコントローラからキー操作の割込み信号を受信したとき、前記バッファに格納された情報を含むキーリードデータを前記レジスタから読み出し、該読み出したキーリードデータに基づき当該アプリケーションに対しキーイベントの発生を通知し、
アプリケーションの切替え中は前記キーコントローラから前記割込みコントローラに対する通知を停止するよう前記レジスタに設定することを特徴とするプログラム。
【請求項７】
前記ＣＰＵが、
アプリケーションの切替えが終了したとき、活性化したアプリケーションに対応するキー情報および通知情報を前記レジスタに設定するよう前記キー制御部へ指示し、前記レジスタからキーリードデータを読み出し、該キーリードデータに基づき前記バッファにおける情報の有無を判定し、前記バッファに情報がない場合、前記キーコントローラから前記割込みコントローラに対する通知の停止を解除する設定を行うことを特徴とする請求項６記載のプログラム。
【請求項８】
前記ＣＰＵが、
アプリケーションの切替えが終了したとき、活性化したアプリケーションに対応するキー情報および通知情報を前記レジスタに設定すること、および、前記バッファの情報を消去することを前記キー制御部へ指示し、該指示後に、前記キーコントローラから前記割込みコントローラに対する通知の停止を解除する設定を行うことを特徴とする請求項６記載のプログラム。
【請求項９】
ユーザが操作するキーボタンと、アプリケーションを実行するＣＰＵに対しキー操作の割込み信号を供給する割込みコントローラとに接続されたキーコントローラであって、
前記キーボタンの状態変化を表すキー信号のチャタリング判定を行う判定回路と、
実行中のアプリケーションに有効なキーの種別を示すデータを保持するレジスタ回路とを備え、
前記判定回路は、前記キーボタンからのキー信号のチャタリング判定を行うか否かを前記レジスタ回路からのデータに基づき判別する手段を有することを特徴とするキーコントローラ。
【請求項１０】
ユーザが操作するキーボタンと、アプリケーションを実行するＣＰＵに対しキー操作の割込み信号を供給する割込みコントローラとに接続されたキーコントローラが、
前記ＣＰＵによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー情報と、前記割込みコントローラに対する通知形態をキー別に規定した通知情報とを含むキーテーブルを保持し、
前記ＣＰＵが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知することを特徴とするキー割込み制御方法。
【請求項１１】
前記キーコントローラが、
前記キーボタンからのキー信号が示す種別および操作形態の情報を記憶するバッファを有し、
前記バッファへ格納すべき情報に必要な記憶容量を前記バッファの空き容量と比較し、前記バッファの空き容量のほうが小さい場合、前記情報を破棄することを特徴とする請求項１０記載のキー割込み制御方法。
【請求項１２】
前記キーコントローラが、
キーの押下を示し且つ前記バッファへ格納すべきキー信号に対し、通知情報として、キー押下後の解放時にキー割込みを通知することが設定されている場合、当該キーの解放を示すキー信号を前記バッファへ格納するまで該キーに関するキー割込みの通知を保留することを特徴とする請求項１１記載のキー割込み制御方法。
【請求項１３】
前記キーコントローラが、
計時を行うキー制御タイマを有し、
キーの押下を示し且つ前記バッファへ格納すべきキー信号に対し、キー情報として、前記キー制御タイマの計時に基づく所定期間キーの押下を継続するキー長押しが設定されている場合、前記キー制御タイマに前記所定期間を設定し、当該キーの解放を示すキー信号を前記バッファへ格納する前に前記キー制御タイマから満了を通知されたとき、当該キーのキー長押しが有効であることを示す情報を前記バッファへ格納することを特徴とする請求項１１又は１２記載のキー割込み制御方法。
【請求項１４】
ユーザが操作するキーボタンと、アプリケーションを実行するＣＰＵと、該ＣＰＵに対しキー操作の割込み信号を供給する割込みコントローラと、前記キーボタンの状態変化を表すキー信号に基づき前記割込みコントローラに対しキー割込みの発生を通知するキーコントローラとを備え、
前記キーコントローラは、
前記ＣＰＵによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー別のキー通知情報、および、前記割込みコントローラに対して、キー操作に対する割込みの通知形態をキー別に規定した通知情報を含むキーテーブルと、
前記ＣＰＵが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知するキー制御部とを有することを特徴とする組込みシステム。
【請求項１５】
請求項１４に記載の組込みシステムにおいて、前記キーコントローラに、前記キーボタンから通知されたキー操作情報を記憶するバッファを具備し、
前記キーコントローラは、前記キーボタンのキー信号からキーの押下を検知した時、前記キーテーブルを基に、前記バッファへ格納すべきキー操作情報に必要な記憶容量を前記バッファの空き容量と比較し、前記バッファの空き容量のほうが小さい場合、該キーの操作情報を、該キーの解放を検知するまで破棄することを特徴とする組込みシステム。
【請求項１６】
請求項１４に記載の組込みシステムにおいて、前記キーコントローラは、前記キーボタンからのキー信号からキー押下を検知した時、前記キーテーブルにおける当該キーに関する操作形態として、キー押下後のキー解放時にキー割込みを通知することが設定されている場合、該キーの解放を示すキー情報を前記バッファへ格納するまで、該キーに関する押下時のキー割込み通知を保留し、該キーの解放を受けた時にキー割込みを通知することを特徴とする組込みシステム。
【請求項１７】
請求項１５に記載の組込みシステムにおいて、前記キーコントローラに、キー制御用のタイマを具備し、
前記キーコントローラは、前記キーボタンからのキー信号からキー押下を検知した時、前記キーテーブルにおける当該キーに関する操作形態として、前記タイマに基づく所定期間キーの押下を継続検知するキー長押しが有効として設定されている場合、前記タイマに前記所定期間を設定し、該キーの解放を検知する前に前記タイマから満了の通知を受けたとき、該キーのキー長押しが有効であると判断し、キー長押しの情報を前記バッファに格納し、前記割込みコントローラに割込み要求を通知することを特徴とする組込みシステム。
【請求項１８】
請求項１５乃至１７のいずれか１項に記載の組込みシステムの前記ＣＰＵに実行させるプログラムであって、
複数のアプリケーションを動作させる場合にアプリケーション切替要求が発生した時、前記キーコントローラから前記割込みコントローラへのキー割込み通知をマスクし、アプリケーション切替終了後に、前記キーコントローラから前記割込みコントローラへの割込み通知のマスクを解除させることを特徴とするプログラム。
【請求項１９】
請求項１８記載のプログラムにおいて、アプリケーション切替時、切り替え後に活性化するアプリケーションが、前記キーコントローラの前記バッファに保持されたデータを使用するかどうかを、前記キーテーブルの情報として、前記キーコントローラに設定しておき、アプリケーション切替時、前記キーテーブルの情報を元に、前記バッファに保持されたデータを消去する事が設定されている場合は、前記割込通知を解除する前に、前記バッファを消去することを特徴とする組込みシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯情報端末のような組込みシステムに関し、特に、システムにキー操作が行われた際の制御処理に関する。
【背景技術】
【０００２】
従来の組込みシステムにおけるキー操作に関する制御の一例を、図２のハードウェア構成図および図９のソフトウェア構成図を用いて説明する。ここでは、組込みシステムが、イベント駆動（イベントドリブン）方式によるソフトウェア制御機能、キーボタン等のヒューマンインタフェース、画面表示機能、及び、アプリケーションプログラムと、その他図示しないハードウェア機能やソフトウェア機能から構成される携帯情報端末2であるとする。図９に示すソフトウェア構成は、図２のCPU2-1が実行する、メモリデバイス2-15上のプログラムに対応する。
【０００３】
携帯情報端末2のキーボタン2-5が押下されたときに、アプリケーション9-4にキーイベントが通知される従来の流れについて説明する。まず、図２より、ユーザがキーボタン2-5を押下すると、キーボタン2-5の状態が変化した事が、キー信号2-4によりシステムコントローラ2-3のキーコントローラ2-8へ通知される。キーコントローラ2-8は、状態変化があったキーをキーマトリクス処理部2-13により特定し、キー制御部2-12により割込みコントローラ2-9に対しキー割込み通知2-14を行う。そして、割込みコントローラ2-9から割込み信号2-11により、CPU2-1へ割込みの発生が通知される。
【０００４】
割込み信号2-11を受けたCPU2-1は、図９のカーネル9-1により割込みの要因を判断する処理を実行し、判断した割込み要因に対応する割込みハンドラ9-3を実行する。割込みハンドラ9-3は、CPU2-1に対する割込み要因別に用意されたプログラムであり、ここでは、キー処理に対応する割込みハンドラ9-3が実行される。
【０００５】
キー処理の割込みハンドラ9-3は、チャタリング判定を行う為、携帯情報端末2のオペレーティングシステム（以下、「ＯＳ」と称す。）が提供するタイマ機能を利用して、一定時間間隔でキーコントローラ2-8のレジスタ（図示略）をリードし、キーの状態を確認するためのポーリング処理を実行する。
【０００６】
ここで、図１２に示すフローチャートを参照して、キー処理の割込みハンドラ9-3によるチャタリング判定の手順を説明する。キー処理の割込みハンドラ9-3は、タイマコントローラ2-10を用いて、例えば100［ms］毎のように、定期的にキーコントローラ2-8のレジスタをリードし（ステップＳ１）、前回リードしたデータと比較する（ステップＳ２）。その結果、前回のデータと一致しない場合は、カウンタをクリアし（ステップＳ３）、タイマによる次の割込みを待つ（ステップＳ４）。
【０００７】
一方、前回リードしたデータと今回のものが一致した場合、割込みハンドラ9-3は、カウンタを加算し（ステップＳ５）、カウンタ値が例えば３回のような所定の回数に達したか否かを判定する（ステップＳ６）。その結果、３回に満たない場合、タイマを再設定する（ステップＳ７）。また、カウント値が３回に達した場合は、カウンタをクリアし（ステップＳ８）、キーコントローラ2-8から読み出したデータにチャタリングが無いとの判断のもとに、キー割込みをミドルウェア9-2へ通知する（ステップＳ９）。
【０００８】
割込みハンドラ9-3は、ミドルウェア9-2に対して、ユーザが押下したキーの情報を通知する。ミドルウェア9-2は、アプリケーション9-4ごとに予め設定されているキー操作の設定情報をもとに、アプリケーション9-4に対してキーイベントを通知する。
【０００９】
ミドルウェア9-2によるキーイベントのキー押下の通知形態としては、ユーザがキーを押下した時に、キー押下イベントをアプリケーション9-4へ通知するという形態（以下、この形態を「押下時押下通知」と称す。）と、ユーザがキーを解放した時にキー押下イベントをアプリケーション9-4へ通知するという形態（以下、この形態を「解放時押下通知」と称す。）とがある
また、携帯情報端末2は、ユーザによるキーの操作形態を、キー押下、キー解放、及び、キー長押しの３つのイベントに区別して処理する。キー押下イベントは、ユーザがキーボタン2-5を押下したことをアプリケーション9-4に通知するイベントである。キー解放イベントは、押下されたキーから手が離れた事をアプリケーション9-4に通知するイベントである。キー長押イベントは、ユーザがある一定期間、キーの解放操作なしにキーを押下し続けた事を通知するイベントである。
【００１０】
ここで、キー長押イベントについて更に説明する。従来の技術では、一般に、キーボタン2-5が押下された事がミドルウェア9-2に通知されると、ミドルウェア9-2がキー長押しの有効／無効を判断する。ミドルウェア9-2は、タイマコントローラ2-10を使用し、キー長押しを規定する押下期間が経過したとき、期間の満了通知を受けるよう設定されている。
【００１１】
ミドルウェア9-2は、タイマからの通知、及び、割込みハンドラ9-3からのキー解放の通知を受け取る順番に基づき、キー長押しの有効／無効を判断する。例えば、キー解放の通知よりも先に、タイマからの通知があった場合は、長押しが有効であると判定する。
【００１２】
携帯情報端末のキー制御に関する従来の手法として、例えば、後述の特許文献１及び特許文献２に記載のものがある。特許文献１には、携帯電話の発信操作を簡略化するための手法が提案されている。この携帯電話は、ワンタッチダイヤルに関連付けられたキー操作部が押下されたまま一定時間を経過したときは、長押しによるワンタッチダイヤルの操作と判定し、そのダイヤルの電話番号を表示する。
【００１３】
また、特許文献２には、キー操作に伴う押下通知および押下解除の通知がCPUへ入力される携帯通信端末が記載されている。CPUは、押下通知を受けるとタイマを起動し、その後、押下解除が通知される前にタイマがタイムアップした場合、今回のキー操作が長押しであると判定する。
【特許文献１】特開２００１−１２７８６９号公報
【特許文献２】特開２００２−２５９０３２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
前述した従来の技術における第１の問題点は、携帯情報端末のＯＳの種別、あるいは、CPUの負荷状況によっては、キーイベントがアプリケーション9-4へ適正に通知されないという点である。例えば、リアルタイムＯＳではないＯＳを使用時に、キー割込みよりも優先度が高い割込みが発生した場合、あるいは、CPUが高負荷状態にある場合は、ミドルウェア9-2がキー割込みを速やかに認識できないことから、アプリケーション9-4に対するキーイベントの通知が遅延しやすい。
【００１５】
携帯情報端末2のＯＳが、例えば、Linux（kernel version2.4より以前のバージョン）である場合、ミドルウェア9-2は、割込みハンドラ9-3と直接データを授受することができない。そのため、両者間のデータ授受にはカーネル9-1を介在させる。すなわち、割込みハンドラ9-3からのキー割込み通知をカーネル9-1がメモリにコピーし、コピーされたデータをミドルウェア9-2が使用する。よって、この種のＯＳを持つ携帯情報端末では、キー割込みが発生する度に、CPU2-1によるコピー処理が必要とされることから、CPU2-1が高負荷状態になり易い。
【００１６】
ここで、携帯情報端末2のＯＳがリアルタイムＯＳでなく、かつ、CPU2-1の処理負荷が高い状況を想定する。このとき、ユーザのキー操作が、たとえ長押しではなく瞬時の押下であったとしても、キー解放の割込み処理が遅延し、その間にタイマがタイムアップした場合は、ミドルウェア9-2が今回のキー押下を長押しと判定する。そうすると、実際のキー操作と対応しない長押しのキーイベントがアプリケーション9-4へ通知されるという、無駄な処理が発生することとなる。
【００１７】
第２の問題点は、アプリケーション9-4に対するキーイベントの通知形態の判定、及び、キーの長押し判定をミドルウェア9-2により行う点にある。よって、アプリケーション9-4が解放時押下通知を使用する場合であっても、キーコントローラ2-8は、キー解放時だけでなく、それに先立つキー押下時にも、キー割込みをCPU2-1へ通知する必要がある。
【００１８】
第３の問題点は、キー操作時のチャタリング判定を、割込みハンドラ9-3等、CPU2-1が実行するソフトウェアにより行う点にある。一般に、CPU2-1の内部周波数やCPU周辺回路の制御信号は、キーのチャタリング除去を確認するためのクロックとして、例えば100ミリ秒以上といった比較的高い周期のクロックが使用される。よって、確認処理のために多くの電力が消費される。また、割込みハンドラ9-3によりキー操作のチャタリング判定を行っているときに、CPU2-1の負荷が高い場合は、キー操作を無効と判断してしまい、キー操作の取りこぼしが起きる可能性がある。
【００１９】
第４の問題点は、キー割込みの発生がアプリケーションの切替え期間に重なることに対処し難い点にある。具体的には、例えば、携帯情報端末が、画面表示機能を担うウィンドウシステムを具備する場合、発生したキーイベントは、ウィンドウシステムを介してアプリケーションへ通知される。ウィンドウシステムにより使用する画像情報がアプリケーションごとに設定されている場合は、アプリケーションの切替えに伴い、ウィンドウシステムが画面を切替える。
【００２０】
よって、アプリケーションの切替え中に新たなキーイベントが発生した場合、ウィンドウシステムは、画面の切替え処理中であることから、この新たなキーイベントをアプリケーションへ通知することができない。その結果、新たなキーイベントがロスト（lost）するという事態が生じる。
【００２１】
また、アプリケーションをタスク単位で区別する携帯情報端末は、タスクの切替えをアプリケーションの切替えとみなす。タスクを切替えるケースとしては、例えば、初期化処理済みで活性化しているタスクから、初期化処理を実行して新たなタスクを起動するというケースがあるが、このとき、ＯＳの種別が、初期化処理中の割込みを受付けないものである場合は、ユーザのキー操作による割込み処理が遅延する。
【００２２】
本発明は、上記課題に鑑みてなされたものであり、携帯情報端末のような組込みシステムにおけるキー操作を、ＯＳの種別やCPUの負荷状況にかかわらず、適正かつ効率的に処理する手法を提供することを目的とする。
【課題を解決するための手段】
【００２３】
本発明の組込みシステムは、ユーザが操作するキーボタンと、アプリケーションを実行するＣＰＵと、該ＣＰＵに対しキー操作の割込み信号を供給する割込みコントローラと、前記キーボタンの状態変化を表すキー信号に基づき前記割込みコントローラに対しキー割込みの発生を通知するキーコントローラとを備え、前記キーコントローラは、前記ＣＰＵによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー情報と、前記割込みコントローラに対する通知形態をキー別に規定した通知情報とを含むキーテーブルと、前記ＣＰＵが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知するキー制御部とを有する。
【００２４】
本発明のプログラムは、前記ＣＰＵに実行させるプログラムであって、前記ＣＰＵが、前記割込みコントローラからキー操作の割込み信号を受信したとき、前記バッファに格納された情報を含むキーリードデータを前記レジスタから読み出し、該読み出したキーリードデータに基づき当該アプリケーションに対するキーイベントの発生を通知し、アプリケーションの切替え中は前記キーコントローラから前記割込みコントローラに対する通知を停止するよう前記レジスタに設定する。
【００２５】
本発明のキー割込み制御方法は、ユーザが操作するキーボタンと、アプリケーションを実行するＣＰＵに対しキー操作の割込み信号を供給する割込みコントローラとに接続されたキーコントローラが、前記ＣＰＵによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー情報と、前記割込みコントローラに対する通知形態をキー別に規定した通知情報と、アプリケーション切替後に、キーコントローラのバッファに保持された情報を削除するかどうかを判断する情報を含むキーテーブルを保持し、アプリケーション切替時に、前記ＣＰＵが、活性化するアプリケーションの情報をキーコントローラのレジスタに設定し、該設定した情報に基づき、活性化するアプリケーションに対応するキーテーブルがキーコントローラ内で設定され、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知するという方法である。
【発明の効果】
【００２６】
本発明によれば、キー割込みが発生したか否かをキーコントローラ側にて判定するよう組込みシステムを構成したことから、キー割込みの判断に、ＣＰＵの負荷状況などの影響を与え難くすることができる。また、キーコントローラが、キー割込みの発生を、実行中のアプリケーションに対応する情報に基づき判定することから、現行のアプリケーションに対応しないキー操作を受け付けるといった無駄な処理を防止することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施形態について図面を用いて詳細に説明する。図１は、本実施形態の携帯情報端末1におけるキー制御に関するハードウェア構成のブロック図である。携帯情報端末1は、図１に示すように、中央演算処理装置であるCPU1-1と、CPU1-1により実行するプログラムを保持するメモリデバイス1-22と、キーコントローラ（以下、「KC」と称す。）1-8を含むシステムコントローラ（以下、「SYSC」と称す。）1-3とが、CPUバス1-2を介して接続された構成をとる。尚、図示の例では、メモリデバイス1-22がCPUバス1-2に接続されているが、この接続形態に限定せず、例えば、SYSC1-3の内部に設けてもよい。
【００２８】
図１の携帯情報端末1において、キーボタン1-5の状態変化は、キーボタン1-5からキーマトリクス信号のようなキー信号1-4により、システムLSIであるSYSC1-3へ通知された後、このSYSC1-3から、内部処理を経て、割込み信号1-11によりCPU1-1へ通知される。
【００２９】
SYSC1-3は、KC1-8、割込みコントローラ（以下、「INTRC」と称す。）1-9、CPU1-1が用いるシステムタイマであるタイマコントローラ（以下、「RTC」と称す。）1-10、及び、各機能のレジスタのリード／ライトを制御するシステムコントローラ内部処理部（以下、「SYSCINC」と称す。）1-6を備える。これらは、SYSC1-3において、内部バス1-7を介して接続されている。RTC1-10は、一定時間が経過するごとにタイマイベントの割込みを通知する。
【００３０】
KC1-8は、キーボタン1-5からのキー信号1-4を特定するためのデコード部1-20と、キー操作のチャタリング判定に用いるクロック出力機能およびキー長押し判定のためのタイマ機能を有するキー制御タイマ1-12と、キー操作情報を保持し且つ内部データの削除機能を具備するキーバッファ1-13と、キー制御を統括処理するキー制御部1-19とを備える。
【００３１】
KC1-8が有するキーテーブル1-17には、キー別に規定された通知情報（押下時押下通知および解放時押下通知）と、アプリケーション別に規定された有効キーの種別および操作形態であるキー情報と、アプリケーション切替時に、キーバッファ1-13に残されている情報を破棄するか否かの情報等が含まれる。
【００３２】
また、KC1-8は、INTRC1-9に対するキー割込み通知の可否を示す情報を保持するキー割込通知許可部1-14と、現在実行中のアプリケーションに対応する通知情報を保持するキー別通知情報保持部1-15と、現在実行中のアプリケーションに有効なキーの種別および操作形態の情報を保持する有効キー情報保持部1-16と、キーの押下から解放までの状態を管理するための情報を記録するキー状態管理部1-18とを備える。これらの構成（1-14、1-15、1-16、1-18）は、対応する情報が設定されたKC1-8のレジスタ部分を指す。
【００３３】
本実施形態のソフトウェア構成、すなわちCPU1-1が実行するソフトウェアの構成は、図９により説明した従来の構成と同様である。ここで、ソフトウェアによる基本的な処理手順を説明すると、CPU1-1が割込み信号1-11により割込みを検知したとき、割込みハンドラが、INTRC1-9の割込み要因レジスタをリードする。これにより、割込み要因に対応したハンドラが実行される。本実施形態では、割込み要因がキー操作であるハンドラをキー割込みハンドラと呼ぶ。
【００３４】
キー割込みハンドラは、キー制御部1-19を通してキーバッファ1-13からデータをリードし、KC1-8内部の各機能のレジスタに対しリード／ライトが可能である。また、本実施形態のミドルウェアも、上述のキー割込みハンドラと同様に、KC1-8のレジスタにリードライトが可能である。
【００３５】
なお、キーテーブル1-17、有効キー情報保持部1-16、及び、キー別通知情報保持部1-15のリード／ライトにあたっては、メモリマップレジスタ方式、すなわち、物理メモリにノンキャッシャブル（キャッシュ制御対象でない）としてマップされたメモリアドレス上で、データをリード／ライトするという方式を採用することにより、アプリケーション切替え時のデータライト時間を短縮することができる。
【００３６】
また、キーテーブル1-17の設定は、携帯情報端末1の電源ON時の初期処理時に行う、若しくは、テーブルをROM化しておくことが望ましい。これにより、アプリケーション切替え時に、キー別情報や有効キーの情報を全て書き換えることなく、差分のみをCPU1-1からのライト処理により更新することができる。
【００３７】
図３のフローチャートを参照して、ユーザによるキーボタン1-5の押下により、KC1-8からINTRC1-9へ割込みが通知される手順について説明する。KC1-8のキー別通知情報保持部1-15および有効キー情報保持部1-16には、予め、現在実行中のアプリケーションに対応する情報が設定されている。これは即ち、キーテーブル1-17に存在する該当の情報が、KC1-8のレジスタに設定されていることを意味する。
【００３８】
まず、ユーザがキーボタン1-5を押下することにより、キー信号1-4がKC1-8へ出力されると（ステップＡ１）、キー制御部1-19は、キー信号1-4の入力をデコード部1-20を介して認識し、キーテーブル1-17に基づき、キー信号1-4に対応するキーを特定する（ステップＡ２）。ここで、状態変化が発生したキーがAキーであるとする。
【００３９】
Aキーを認識すると、キー制御部1-19は、有効キー情報保持部1-16にAキーが有効と設定されてるかどうかを判定する（ステップＡ３）。Aキーが有効でない場合、すなわち、Aキーが、現時点で実行されているアプリケーションに対応しない場合、以降の処理を実施しない。
【００４０】
一方、Aキーが有効と設定されている場合、キー制御部1-19は、キー制御タイマ1-12からチャタリング判定用のサンプルCLK（クロック）を取得し、チャタリング判定処理を実行する（ステップＡ４）。チャタリング判定処理では、サンプルCLKを基に、Aキーのキー信号1-4が連続して有効であると判定したとき、このキー信号1-4を、チャタリング除去したキー信号として保存する。
【００４１】
キー制御部1-19は、チャタリング除去されたAキーのキー信号をキー別通知情報保持部1-15へ入力し、このキー信号をキーバッファ1-13へ格納するのに必要な容量の最大値を示す情報を取得する。例えば、キー別通知情報保持部1-15においてAキーに長押し通知が設定されている場合、キー制御部1-19は、Aキーの押下を示す情報および解放の情報の他に、Aキーの長押しを示す情報を合わせたデータ量を最大値として取得することとなる。
【００４２】
キー制御部1-19は、キー別通知情報保持部1-15から取得した最大値と、キーバッファ1-13の空き容量とを比較する（ステップＡ５）。比較の結果、キーバッファ1-13の空き容量が最大値以上の場合は、Aキーの押下を受付け、Aキーが押下されている状態である事を示す情報を、キー状態管理部1-18で保持しておく。この情報は、Aキーの解放を受付た後にクリアする。キーバッファ1-13の空き容量が最大値より小さい場合は、Aキーの押下を無効化すべくキー信号1-4を破棄する。この結果、キーの操作に対してキーバッファ1-13の空容量が不足することにより、ユーザの操作が十分にバッファに格納されないことによる誤動作に繋がる事を防止する事ができる。
【００４３】
キー制御部1-19は、Aキーの押下を受け付けると、次に、キー別通知情報保持部1-15からAキーに関する長押し制御情報を参照し、今回のAキーに長押し通知が有効に設定されているか否かを判定する（ステップＡ６）。Aキーに長押し通知が有効と設定されている場合は、キー制御タイマ1-12にAキーの長押し判定時間を設定し、キー制御タイマ1-12のタイマ処理を開始させる（ステップＡ７）。なお、キー制御タイマ1-12が、キー制御部1-19からの開始信号を受けたとき初めて内部カウンタを動作させるよう設定しておくことで、タイマ未使用時におけるキー制御タイマ1-12の内部消費電力を削減できる。
【００４４】
続いて、キー制御部1-19は、キー別通知情報保持部1-15からAキーに関する通知情報を参照し、Aキーに解放時押下通知が設定されているか否かを判定する（ステップＡ８）。解放時押下通知が設定されている場合、すなわち、キー解放の操作を以ってキー押下を認識するよう設定されている場合、キー制御部1-19は、INTRC1-9にキー割込み通知1-21を行わず、Aキーが解放待ち状態であることを示す情報をキー状態管理部1-18に記録し（ステップＡ９）、解放されるのを待つ（ステップＡ１０）。
【００４５】
このように、押下されたキーに解放時押下通知が設定されてる場合、キー割込み通知1-21が発信されないことから、CPU1-1に対しキー押下の割込み信号1-11は通知されない。これにより、無駄な処理が削減され、CPU1-1の負荷を軽減することができる。
【００４６】
一方、Aキーの通知情報に、解放時押下通知ではなく押下時押下通知が設定されている場合、キー制御部1-19は、キーバッファ1-13にAキーの押下を示す情報を格納する（ステップＡ１１）。
【００４７】
さらに、キー制御部1-19は、キー状態管理部1-18の値を参照し、現時点でCPU1-1側でキー操作に関する割込み処理が行われているかどうかを判断する（ステップＡ１２）。その結果、現時点で他の割込み処理が行われている場合は、その割込み処理による、レジスタからのリード処理が終わるのを待つ（ステップＡ１３、Ａ１４）。
【００４８】
一方、現時点で割込み処理が行われていない場合、キー制御部1-19は、キー割込通知許可部1-14を参照し、Aキーに対しキー割込み通知の許可が設定されているか否かを判定する（ステップＡ１５）。キー割込通知許可部1-14に対する設定は、CPU1-1側のミドルウェアにより行われる。この設定については後に説明するが、例えば、CPU1-1側にてアプリケーションの切替えが行われている間は、INTRC1-9に対する新たなキー割込み通知1-21をマスク、すなわち保留することがキー割込通知許可部1-14に設定される。
【００４９】
キー制御部1-19は、現時点でキー割込み通知が許可されている場合、INTRC1-9に対しキー割込み通知1-21を行う（ステップＡ１６）。これにより、キー割込み通知1-21を受けたINTRC1-9がCPU1-1に対し割込み信号1-11を発信する。また、キー割込み通知が許可されていない場合、すなわち、マスク中である場合、後にマスクが解除されたとき、INTRC1-9に対するキー割込み通知1-21を行う（ステップＡ１７、Ａ１８）。
【００５０】
図４のフローチャートを参照して、キー解放時の制御手順について説明する。ここでは、既に押下されているAキーが解放される際の制御手順を示す。キーボタン1-5のAキーからユーザの手が離れることにより、キー信号がKC1-8に入力されると（ステップＢ１）、キー制御部1-19は、デコード部1-20の出力に基づきAキーの解放を認識する（ステップＢ２）。
【００５１】
キー制御部1-19は、認識したキー解放動作が、キー状態管理部1-18に記録されてるキー押下に対する解放かどうかを判定する（ステップＢ３）。その結果、キー押下に対する解放動作である場合、キー制御部1-19は、この解放動作に関し、前述と同様のチャタリング判定を行う（ステップＢ４）。
【００５２】
キー信号1-4がチャタリング判定をパスすると、キー制御部1-19は、キー状態管理部1-18の記録に基づき、対象のAキーに長押しが設定されているか否かを判定し（ステップＢ５）、長押しが設定されている場合は、長押し判定のためのタイマを作動させているキー制御タイマ1-12を停止させる（ステップＢ６）。
【００５３】
次に、キー制御部1-19は、キー状態管理部1-18の記録に基づき、対象のAキーに押下時押下通知または解放時押下通知の何れが設定されているかを判定する（ステップＢ７）。その結果、Aキーに解放時押下通知が設定されている場合、キーバッファ1-13に、Aキー押下の情報とAキー解放の情報とをセットで格納する（ステップＢ８）。
【００５４】
また、押下時押下通知が設定されている場合は、キーバッファ1-13には、既にAキー押下の情報は格納されていることから、Aキー解放の情報のみを格納する（ステップＢ９）。キーバッファ1-13にAキーのデータを格納した後の割込み通知に関する処理（ステップＢ１０）は、図３に点線にて示す前述の手順（Ａ０）と同様であり、説明を省略する。
【００５５】
図５のフローチャートを参照して、キーの長押しに関する制御手順を説明する。ここでは、長押しが有効に設定されてるAキーについて、すでにキー制御タイマ1-12が作動している（図３：ステップＡ６→Ａ７）とする。なお、KC1-8のキー制御タイマ1-12は、CPU1-1の処理と独立して動作する。よって、キー制御タイマ1-12がCPU1-1の動作の影響を受けることはない。
【００５６】
キー制御部1-19は、キー制御タイマ1-12からの満了通知と、前述したチャタリング判定をパスしたAキーの解放通知とを、動作基準CLKで同期させる。このとき、タイマの満了およびAキーの解放が同時的に通知された場合は、キー解放の通知を優先させる。動作基準CLKの周波数（例えば32KHzを分周して作成した約100msに近い値のCLK）は、人間のキー操作と比較して高いことから、１周期分の差でキー解放を優先することに問題はない。
【００５７】
キー制御部1-19は、キー制御タイマ1-12から満了の通知、すなわち長押しに相当する期間が経過した旨の通知を受けると（ステップＣ１）、キー状態管理部1-18のAキーの情報をもとに、Aキーの長押しが有効か否かを判断する（ステップＣ２）。
【００５８】
長押しの判定にあたっては、キー状態管理部1-18にAキーの解放待ちが設定されている場合は、長押し有効と判断し、この場合、Aキーが長押しされたことを示す情報をキーバッファ1-13に格納する（ステップＣ３）。また、Aキーの解放待ちが設定されていない場合は、長押しを無効として処理する。以降の割込み通知に関する処理（ステップＣ４）は、図３に点線にて示す前述の手順（Ａ０）と同様であり、説明を省略する。また、長押しに関するタイマが満了する前に、Aキーの解放を受信した場合は、解放を受信した時に、タイマ処理の回路を初期化する。
【００５９】
このように、キーの長押し判定をKC1-8側にて行うことにより、CPU1-1の負荷状況などの影響を受けることなく、長押しを適正に判定することができる。
【００６０】
以上が、キーボタン1-5での操作をCPU1-1に通知するまでの手順である。次に、CPU1-1に通知された割込み通知が、CPU1-1が実行するソフトウェアにより如何に処理されるかにつき、図６、図７、図８のフローチャートを用いて説明する。なお、CPU1-1が実行するソフトウェアの構成は、図９に示す構成と同様である。
【００６１】
図６より、CPU1-1がSYSC1-3からの割込みを受付けると（ステップＤ１）、カーネルは割込みハンドラを起動する（ステップＤ２）。割込みハンドラは、割込みの要因を判別すべくINTRC1-9の割込み要因レジスタをリードする。その結果、割込み要因がキー制御である場合（ステップＤ３）、キー制御用の割込みハンドラが実行される（ステップＤ４）。キー割込みハンドラは、ミドルウェアに対し、キーの状態変化が発生した事を通知する（ステップＤ５）。
【００６２】
次に、図７のフローチャートを参照して、ミドルウェアの制御手順について説明する。ミドルウェアは、キー割込みハンドラから通知を受けると、その要因を判定し（ステップＥ１）、後述する解放通知残が有効に設定されていることによる割込み通知で無い場合、KC1-8のキーバッファ1-13に対応するレジスタをリードする（ステップＥ２）。
【００６３】
ミドルウェアは、読み出したデータから、状態変化が発生したキーの種別と、その状態変化の種別（キー押下、キー長押し、キー解放、解放時押下通知のキー押下及び解放、解放時押下通知のキー長押し）とを示すデータを取得する。このデータをキーリードデータとし、図１０に、キーリードデータのフォーマットを示す。
【００６４】
キーリードデータは、図１０に示すように、キーバッファ1-13から読み出すべきデータが残っているか否かを示す残フラグ13-1と、キーの状態変化の種別を示す状態種別13-2と、キーの種別を示すキー種別13-3とから構成される。キーバッファ1-13に読み込み待ちのデータが残っている場合、キーリードデータの残フラグ13-1の値は「1」となり、読込み待ちデータがない場合は値が「0」となる。
【００６５】
また、状態種別13-2の「001」は、押下時押下通知を使用するアプリケーションに対し該当のキーが押下されたことを表す。「010」は、解放時押下通知を使用するアプリケーションに対し該当のキーが解放されたことを表す。「011」は、キーの長押しが有効に実行されたことを表す。「100」は、キーが解放されたことを表すものであるが、これは、例えば、音声等の再生処理に対する早送り操作のように、キーの押下操作および解放操作の双方を別個のトリガとして使用するアプリケーションに適用される。
【００６６】
ミドルウェアは、キーバッファ1-13に読み出し待ちのデータが有るか否かの情報を、メモリ上のグローバル変数のような変数に設定しておく（ステップＥ３）。設定した変数の値は、キーバッファ1-13から読み出したデータがアプリケーションに通知された後、ミドルウェアが再びキーイベントの通知に関する再処理を行うときに参照される。
【００６７】
続いて、ミドルウェアは、読み出したキーリードデータからキー種別13-3を認識すると共に、状態種別13-2を認識する（ステップＥ４）。その結果、状態種別13-2が解放時押下通知の解放操作（図１０：「010」）である場合、キー解放通知の残りがあることを設定した後（ステップＥ６）、アプリケーションに対しキー押下のイベントを通知する（ステップＥ７）。
【００６８】
イベント通知後、ミドルウェアは、アプリケーションから非同期処理にて、次のイベントを通知するよう要求されたとき（ステップＥ８）、ステップＥ１の要因判定を経て、キー解放通知残の設定を消去し（ステップＥ１０）、アプリケーションにキー解放のイベントを通知する（ステップＥ１１）。
【００６９】
ミドルウェアは、状態種別13-2がキーの解放操作である場合（ステップＥ９、図１０：「100」）、アプリケーションに対しキー解放のイベントを通知する（ステップＥ１１）。また、状態種別13-2が押下時押下通知の押下操作である場合（ステップＥ１２、図１０：「001」）、ミドルウェアは、アプリケーションに対しキー押下のイベントを通知し（ステップＥ１３）、状態種別13-2がキーの長押しである場合（ステップＥ１４、図１０：「011」）、アプリケーションに対しキー長押しのイベントを通知する（ステップＥ１５）。
【００７０】
ミドルウェアは、以上の手順によりイベント通知を行った後、新たに読み出したキーリードデータの残フラグ13-1が「0」の場合、キーイベントの通知処理を終了し、キー割込みハンドラからの新たな割込み通知を待つ（ステップＥ１７）。また、残フラグ13-1が「1」の場合、アプリケーションから次のイベント通知を要求されたとき（ステップＥ１８）、上述の手順により、読み出したキーリードデータに基づきイベント通知を行う。
【００７１】
次に、図８に示すフローチャートを参照して、アプリケーションの切替えが行われる際のミドルウェアの処理と、その処理がハードウェアへ反映される様子について説明する。なお、ここで言うミドルウェアとは、携帯情報端末1のミドルウェアのうちの、キー制御を担うタスクに対応する。
【００７２】
ミドルウェアは、アプリケーションの切替処理を担う別のタスクから切替え通知を受け取ると（ステップＦ１）、キー割込通知許可部1-14に対し、新たなキー割込み通知をマスクする設定を行う（ステップＦ２）。これにより、KC1-8からINTRC1-9に対するキー割込み通知1-21が一旦停止する。
【００７３】
切替えによって活性化するアプリケーションは、有効なキーの種別および操作形態や、解放時押下通知のような通知形態の情報、及び、キーバッファ1-13を継続使用するか否か等の情報を予めミドルウェアに伝える。
【００７４】
ミドルウェアは、上記通知を受けると（ステップＦ３）、この通知をもとに、KC1-8のキー別通知情報保持部1-15および有効キー情報保持部1-16に対し、活性化したアプリケーションに対応する設定を反映させる（ステップＦ４）。具体的には、キー別通知情報保持部1-15および有効キー情報保持部1-16に関し、アプリケーション切替え前後の差異にあたる情報をキーテーブル1-17から選択し、それらをレジスタに書き込むよう、ミドルウェアがキー制御部1-19に対し指示する。これにより、キー別通知情報保持部1-15および有効キー情報保持部1-16の全ての設定を更新することは不要となるので、処理が効率化される。
【００７５】
活性化したアプリケーションの情報がKC1-8側に反映されることでアプリケーションの切替えが終了すると、ミドルウェアは、キー割込通知許可部1-14に対し設定していたマスクを解除する（ステップＦ５）。これにより、KC1-8からINTRC1-9に対するキー割込み通知1-21が再開する。
【００７６】
続いて、ミドルウェアは、活性化したアプリケーションから予め通知されている情報に基づき、このアプリケーションがキーバッファ1-13の残データを継続して使用するか否かを判定する（ステップＦ６）。その結果、現状のキーバッファ1-13の残データを使用しない場合、ミドルウェアは、キー制御部1-19に対しキーバッファ1-13の残データを消去するよう命令し（ステップＦ７）、キー割込みハンドラからの新たな割込み通知を待つ（ステップＦ８）。
【００７７】
一方、活性化したアプリケーションが、キーバッファ1-13の残データをそのまま使用する場合、ミドルウェアは、キー割込みハンドラからの通知を契機とすることなく自動的にキーバッファ1-13からキーリードデータを読み出す（ステップＦ９）。そして、残フラグ13-1が「1」である間は、図７に示す前述の手順によりアプリケーションに対するキーイベントの通知を繰り返す（ステップＦ１０）。
【００７８】
なお、キーバッファ1-13の削除に関する制御の別案として、次のような方法が考えられる。まず、アプリケーションが活性化するときにキーバッファ1-13のデータを削除するか否かについて、予めアプリケーションごとにキーテーブル1-17に設定しておく。キー制御部1-19は、アプリケーションが活性化するとき、そのアプリケーションについてキーテーブル1-17に設定した上記の情報を参照する。その結果、キーバッファ1-13に残されているデータを削除するよう設定されている場合は、それらのデータを削除する。キーバッファ1-13のデータをフリップフロップ回路（ＦＦ）により保持させている場合は、この回路のリセットクリア動作により、データを一括削除すればよい。
【００７９】
図１１に、本発明の他の実施形態の構成を示す。本実施形態の携帯情報端末1´の構成は、図１に示す前述の携帯情報端末1の構成に加え、キー制御部1-19との協働により、キー操作時にスピーカ1-26から操作音を鳴動させるサウンド制御部1-25を備える。キー制御部1-19は、INTRC1-9に対しキー割込み通知1-21を発するとき、すなわち、有効なキー操作を認識したとき、その旨をサウンド制御部1-25へ通知する。サウンド制御部1-25は、キー割込み通知1-21からの情報をもとに、スピーカ1-26によりキーの操作音を鳴動させる。
【００８０】
図１１の携帯情報端末1´によれば、例えば、解放時押下通知に対応するキーが操作される場合、押下時には操作音を鳴動させず、その後の解放時に鳴動させるよう制御することができる。また、キーの操作形態に長押しが設定されている場合、キーの押下時間が長押しの時間条件に満たない間は、操作音は鳴動しない。よって、ユーザは、押下したキーを、操作音が鳴動するまで押下し続けることにより、確実に長押し操作を行うことができる。
【００８１】
さらに他の実施形態として、携帯情報端末1のキーイベントに、前述のキー押下およびキー長押しのほかに、キー長押しリピートがある場合、ミドルウェアが行う長押しリピートの判定には、ＯＳが提供するシステムタイマ（1-10）の割込みを利用する。この場合、KC1-8からの長押しリピートとしての割込みは、CPU1-1へ通知せず、カーネル9-1が提供するＳＷタイマ（TSC：タイムスタンプカウンタや、PIC：プログラマブルインターバルタイマ）の機能を利用する。ＳＷタイマの機能を利用する場合、ミドルウェア上で、長押し確定時にＳＷタイマを設定し、その後、KC1-8からキー解放の割込み通知を受ける迄、キーリピートとしてアプリケーションに通知する。
【００８２】
また、実施形態のKC1-8によれば、キー信号に対するチャタリング判定において無駄な動作を省くことができる。図１３に、KC1-8が具備するチャタリング判定のための回路を示す。図示の判定回路は、キー制御タイマ1-12のクロック信号（CLK）を利用して、複数のフリップフロップ回路（FF）によりキー信号のチャタリング判定を行い、判定結果が３回連続して有効であった場合に、このキー信号を有効なものとして出力するという構成である。
【００８３】
図１３に示すように、各フリップフロップ回路（FF）の入力段にANDゲートを設け、最初の入力段のANDゲートに、デコード部1-20を経たキー信号と、レジスタにおける有効キー情報保持部1-16の値とを入力するよう構成する。本構成によれば、現時点で有効なキー、すなわち現在実行中のアプリケーションに対応するキー信号が入力されたときに限り、フリップフロップ回路（FF）が作動する。よって、現時点で有効でないキー操作が行われたことによる無駄なフリップフロップ動作を削減でき、これにより、消費電力を削減することができる。
【産業上の利用可能性】
【００８４】
本発明は、キーボタン等のヒューマンＩ／Ｆを具備する組込みシステムに好適である。具体的には、携帯電話、カーナビゲーション、家庭用ロボット、デジタルカメラ、デジタルビデオ、及び、正確なユーザ操作の通知が必要な医療機器や医療端末等である。また、バッテリ駆動のシステムに本発明を適用することにより、従来よりもキー操作時の消費電力を抑える事が可能となり、バッテリ駆動時間の延長にも効果がある。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施形態の携帯情報端末のハードウェア構成を示すブロック図である。
【図２】従来の携帯情報端末のハードウェア構成を示すブロック図である。
【図３】実施形態のキー押下時におけるキーコントローラ（ＫＣ）の制御手順を示すフローチャートである。
【図４】実施形態のキー解放時におけるキーコントローラ（ＫＣ）の制御手順を示すフローチャートである。
【図５】実施形態のキー長押し時におけるキーコントローラ（ＫＣ）の制御手順を示すフローチャートである。
【図６】実施形態のソフトウェアによる制御手順を示すフローチャートである。
【図７】実施形態のミドルウェアによる制御手順を示すフローチャートである。
【図８】実施形態のアプリケーション切替時のミドルウェアによる制御手順を示すフローチャートである。
【図９】従来のソフトウェアの構成を示すブロック図である。
【図１０】実施形態のキーリードデータのフォーマットの説明図である。
【図１１】本発明の他の実施形態の携帯情報端末の構成を示すブロック図である。
【図１２】従来のチャタリング判定に関するフローチャートである。
【図１３】実施形態におけるチャタリング判定のための回路図である。
【符号の説明】
【００８６】
1  携帯情報端末
1-1：ＣＰＵ、1-2：ＣＰＵバス、1-3：SYSC（システムコントローラ）、1-4：キー信号、1-5：キーボタン、1-6：SYSCINC（システムコントローラ内部処理部）、1-7：内部バス、1-8：KC（キーコントローラ）、1-9：INTRC（割込コントローラ）、1-10：RTC（タイマコントローラ）、1-11：割込み信号、1-12：キー制御タイマ、1-13：キーバッファ、1-14：キー割込通知許可部、1-15：キー別通知情報保持部、1-16：有効キー情報保持部、1-17：キーテーブル、1-18：キー状態管理部、1-19：キー制御部、1-20：デコード部、1-21：キー割込み通知、1-22：メモリデバイス
【図１】
2007072986.tif 000003
【図２】
2007072986.tif 000004
【図３】
2007072986.tif 000005
【図４】
2007072986.tif 000006
【図５】
2007072986.tif 000007
【図６】
2007072986.tif 000008
【図７】
2007072986.tif 000009
【図８】
2007072986.tif 000010
【図９】
2007072986.tif 000011
【図１０】
2007072986.tif 000012
【図１１】
2007072986.tif 000013
【図１２】
2007072986.tif 000014
【図１３】
2007072986.tif 000015