(57)【要約】【課題】無線キーボードでラップトップＰＣをブートさせる。【解決手段】ラップトップＰＣ１０が搭載するＢＬＴＨコントローラ２７は、無線キーボード５０が搭載するＢＬＴＨコントローラと通信する。ラップトップＰＣ１０は、停止状態に遷移している間にＢＬＴＨコントローラ２７に電源を供給する。ＢＬＴＨコントローラ２７は接続状態に遷移する前に、アドバタイジング状態の無線キーボード５０が送信したパケットを受信して解析する。パケットには、ＢＬＴＨコントローラ２７に起動信号を生成させるための起動フラグが設定されている。起動フラグを検出したＢＬＴＨコントローラ２７はラップトップＰＣ１０の電源を起動する。無線キーボード５０がアドバタイジング状態で送信するパケットには、さらにＢＬＴＨコントローラ２７にブート中に待受画面を表示するための動作をさせるキー・フラグを設定することもできる。【選択図】図１
2019023777.tif 000002
【特許請求の範囲】
【請求項１】
第１の無線コントローラを備える周辺デバイスと通信することが可能なコンピュータであって、
前記コンピュータが停止状態のときに前記第１の無線コントローラから受け取ったパケットが含む所定のデータを検出して生成した起動信号を出力する第２の無線コントローラと、
前記起動信号に応じて前記コンピュータに電力を供給する電源ユニットと
を有するコンピュータ。
【請求項２】
前記第２の無線コントローラは、前記パケットを前記第１の無線コントローラとデータ・チャネルでデータ通信をする接続状態に遷移する前に受け取る請求項１に記載のコンピュータ。
【請求項３】
前記第１の無線コントローラと前記第２の無線コントローラが、ブルートゥース（登録商標）規格で通信する請求項１に記載のコンピュータ。
【請求項４】
前記周辺デバイスが、キー・マトリクスを含むキー・アセンブリと、スキャン・コードを生成するキーボード・コントローラを有する無線キーボードである請求項３に記載のコンピュータ。
【請求項５】
前記パケットを、アドバタイジング状態の前記第１の無線コントローラが送信する請求項４に記載のコンピュータ。
【請求項６】
前記所定のデータがブート中にユーザが入力する待受画面を表示するためのスキャン・コードに対応し、前記第２の無線コントローラが前記所定のデータから生成した前記スキャン・コードをシステム・ファームウェアの実行環境に入力する請求項５に記載のコンピュータ。
【請求項７】
前記待受画面が、ユーザがデバイスを設定する入力をするためのセット・アップ画面である請求項６に記載のコンピュータ。
【請求項８】
前記システム・ファームウェアが前記コンピュータに、オペレーティング・システムがロードされる前に前記無線キーボードから受け取ったパケットが含むスキャン・コードを処理する機能を実現させる請求項６に記載のコンピュータ
【請求項９】
第１の無線コントローラを搭載する無線キーボードと通信して第２の無線コントローラを搭載するコンピュータがブートする方法であって、
前記第１の無線コントローラと前記第２の無線コントローラが接続準備状態のときに、前記第２の無線コントローラが前記第１の無線コントローラから受け取ったパケットを解析するステップと、
前記パケットから所定のデータを検出したときに、前記第２の無線コントローラが前記ブートに関連する所定の動作をするステップと
を有する方法。
【請求項１０】
前記所定の動作が前記コンピュータの電源を起動する動作である請求項９に記載の方法。
【請求項１１】
オペレーティング・システムがロードされる前に前記第１の無線コントローラと前記第２の無線コントローラがデータ・チャネルでデータ通信をする接続状態に遷移するステップを有する請求項９に記載の方法。
【請求項１２】
前記所定の動作がブート中にユーザがデバイスの設定をする待受画面を表示するためのスキャン・コードを生成する動作である請求項９に記載の方法。
【請求項１３】
オペレーティング・システムがロードされる前に前記第２の無線コントローラが前記第１の無線コントローラから受け取ったパケットが含むスキャン・コードを、前記待受画面を表示するシステム・ファームウェアの実行環境に送るステップを有する請求項１２に記載の方法。
【請求項１４】
ブルートゥース（登録商標）規格の第１の無線コントローラを備え起動信号に応じて電源を起動するコンピュータに入力することが可能な無線キーボードであって、
キー・スイッチを含むキー・アセンブリと、
前記キー・スイッチに対応するスキャン・コードを出力するキーボード・コントローラと、
アドバタイジング状態で通信する前記第１の無線コントローラに前記起動信号を生成させるための所定のデータを含む第１のパケットを出力する第２の無線コントローラと
を有する無線キーボード。
【請求項１５】
前記第２の無線コントローラが、前記無線キーボードに電源が投入されたことに応答して前記第１のパケットを出力する請求項１４に記載の無線キーボード。
【請求項１６】
前記第２の無線コントローラが、前記キーボード・コントローラから所定のキー・スイッチに対応するスキャン・コードを受け取ったときにアドバタイジング状態で前記第１の無線コントローラに前記スキャン・コードを出力させるための所定のデータを含む第２のパケットを出力する請求項１４に記載の無線キーボード。
【請求項１７】
前記第２の無線コントローラが、前記コンピュータにおいてオペレーティング・システムがロードされる前に前記第１の無線コントローラと接続状態に遷移したことを認識したときに、前記キーボード・コントローラから受け取った任意のキー・スイッチに対応するスキャン・コードをデータ通信パケットで出力する請求項１４に記載の無線キーボード。
【請求項１８】
ブルートゥース（登録商標）規格の第１の無線コントローラを備え起動信号に応じて電源を起動するコンピュータを、前記第１の無線コントローラと通信することが可能な第２の無線コントローラを備える無線キーボードがブートさせる方法であって、
前記無線キーボードがユーザから所定の入力を受け取るステップと、
前記所定の入力に応じて前記第２の無線コントローラが、前記第１の無線コントローラに前記ブートに関連する所定の動作をさせるための所定のデータを含む第１のパケットをアドバタイジング状態で出力するステップと
を有する方法。
【請求項１９】
前記所定の動作が前記コンピュータの電源を起動する操作である請求項１８に記載の方法。
【請求項２０】
前記ブート中に前記第１の無線コントローラと前記第２の無線コントローラが接続状態に遷移したことを認識した前記第２の無線コントローラがキーボード・コントローラから任意のキーに対応するスキャン・コードを受け取ったときに、前記スキャン・コードをデータ通信パケットで出力するステップを有する請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線で通信する周辺デバイスでコンピュータをブートする技術に関し、さらには、ブート中のコンピュータに対して当該周辺デバイスによる入力を可能にする技術に関する。
【背景技術】
【０００２】
ラップトップ型コンピュータやタブレット端末などのコンピュータの中には、筐体に実装するキーボードの他に、無線接続のキーボード（無線キーボード）から入力できるものがある。このとき無線通信の規格として、Ｂｌｕｅｔｏｏｔｈ（登録商標：以下、ＢＬＴＨとして示す）が採用することがある。
【０００３】
特許文献１は、ＵＳＢデバイス・サーバ・システムを開示する。同文献には、クライアント（ＰＣ）に対して無線周辺デバイスをＵＳＢデバイスとして擬制することで無線周辺デバイスのデバイス・サーバ・システムを構築することを記載する。特許文献２は、ＳＣＳＩとＯＢＥＸの２つのプロトコルに対応するＴｒａｎｓｆｅｒｊｅｔ機器とＵＳＢホスト装置を接続するＵＳＢドングルを開示する。特許文献３は、ホスト・コントローラと、ＢＬＴＨプロファイル・スタック群およびＢＬＴＨドライバで構成されたホストを搭載するＢＬＴＨ機能搭載電子機器を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−９９７２２号公報
【特許文献２】特開２０１４−１３９８０５号公報
【特許文献３】特開２００４−３２８１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＢＬＴＨ機能は、中心ノードとなるセントラルと端末ノードとなるペリフェラルがいずれもＢＬＴＨコントローラというハードウェアとホストというソフトウェアで構成されている。ホストは、ＢＬＴＨ通信を制御するプロトコル・スタックやＢＬＴＨドライバを含む。ホストはＢＬＴＨコントローラのファームウェアに組み込む場合もあるが、ＢＬＴＨコントローラは各国の無線の認可が必要なため、ＢＬＴＨコントローラとホストを分離した方が開発し易いという事情もある。ラップトップ型パーソナル・コンピュータやタブレット端末のようなオペレーティング・システム（ＯＳ）を搭載するコンピュータでは、通常ホストをＯＳに組み込んでいる。
【０００６】
ＢＬＴＨ通信のペリフェラルとなる無線キーボードは、ＢＬＴＨ通信でスキャン・コードをシステムに送る。システムがコンピュータに実装されたキーボードと同じようにスキャン・コードを処理するためには、ＯＳがロードされてホストが機能している必要がある。コンピュータがパワーオフ状態やブート中の間はホストが機能しないため、システムは無線キーボードが送ったスキャン・コードの処理ができない。
【０００７】
コンピュータが停止しているときは無線キーボードの電源を停止していることが多い。したがって無線キーボードの電源を起動するときは、コンピュータの電源も同時に起動したい場合が多い。しかし、無線キーボードでパワーオフ状態のコンピュータに起動信号を送っても、ホストが機能していないためコンピュータはそれを認識できない。そのため、無線キーボードでは、コンピュータの電源を起動することや、ブート中の画面に入力することはできない。ＢＬＴＨ通信を例示して無線キーボードによるブートに関する問題を説明したが、本発明の特定の態様においては、無線通信規格をＢＬＴＨに限定したり、無線キーボードに限定したりする必要はない。本発明の目的は、無線周辺デバイスが、コンピュータにブートに関連する動作をさせることにある。
【課題を解決するための手段】
【０００８】
本発明の一の態様は、第１の無線コントローラを備える周辺デバイスと通信することが可能なコンピュータを提供する。コンピュータは、停止状態のときに第１の無線コントローラから受け取ったパケットが含む所定のデータを検出して生成した起動信号を出力する第２の無線コントローラと、起動信号に応じてコンピュータに電力を供給する電源ユニットを有する。
【０００９】
本発明の他の態様は、第１の無線コントローラを搭載する無線キーボードと通信して第２の無線コントローラを搭載するコンピュータがブートする方法を提供する。この方法では、第１の無線コントローラと第２の無線コントローラが接続準備状態のときに、第２の無線コントローラが第１の無線コントローラから受け取ったパケットを解析し、パケットから所定のデータを検出したときに、第２の無線コントローラがブートに関連する所定の動作をする。所定の動作は、コンピュータの電源を起動する動作および待受画面を表示するためのスキャン・コードを生成してブート中のシステム・ファームウェアに送る動作とすることができる。
【００１０】
本発明のさらに他の態様は、ブルートゥース（登録商標）規格の第１の無線コントローラを備え起動信号に応じて電源を起動するコンピュータに入力することが可能な無線キーボードを提供する。無線キーボードは、キー・スイッチを含むキー・アセンブリと、キー・スイッチに対応するスキャン・コードを出力するキーボード・コントローラと、アドバタイジング状態で通信する第１の無線コントローラに起動信号を生成させるための所定のデータを含む第１のパケットを出力する第２の無線コントローラとを有する。
【００１１】
本発明のさらに他の態様は、ブルートゥース（登録商標）規格の第１の無線コントローラを備え起動信号に応じて電源を起動するコンピュータを、第１の無線コントローラと通信することが可能な第２の無線コントローラを備える無線キーボードがブートさせる方法を提供する。この方法では、無線キーボードがユーザから所定の入力を受け取り、所定の入浴に応じて第２の無線コントローラが、第１の無線コントローラにブートに関連する所定の動作をさせるための所定のデータを含む第１のパケットをアドバタイジング状態で出力する。
【発明の効果】
【００１２】
本発明の特定の態様により、無線で通信する周辺デバイスがコンピュータにブートに関連する所定の動作をさせることができた。本発明の他の態様により、無線で通信する周辺デバイスが停止状態のコンピュータを起動することができた。さらに本発明の他の態様により無線で通信する周辺デバイスが、ブート中のコンピュータに待受画面を表示することができた。さらに本発明の他の態様により、無線で通信する周辺デバイスがブート中のコンピュータに任意のキーを入力することができた。
【図面の簡単な説明】
【００１３】
【図１】ラップトップＰＣ１０の概略の構成を示す機能ブロック図である。
【図２】ＢＬＴＨ系統のデータ転送に関連するハードウェア構成を説明するための図である。
【図３】ＵＥＦＩファームウェア２６の概略の構成を説明するための図である。
【図４】ＢＬＴＨ系統のデータ転送に関連するソフトウェア構成を説明するための図である。
【図５】無線キーボード５０の概略の構成を示す機能ブロック図である。
【図６】ＢＬＴＨコントローラ２７、３０１の動作状態を説明するための状態遷移図である。
【図７】パワーオフ状態のラップトップＰＣ１０が無線キーボード５０と通信してブートする手順を示すフローチャートである。
【図８】アドバタイジング状態で送信する特別なパケット７００を説明するための図である。
【発明を実施するための形態】
【００１４】
［ラップトップＰＣ］
図１は、本実施の形態にかかるラップトップＰＣ１０の概略の構成を示す機能ブロック図である。本明細書に添付する図面に記載する同一および同等の要素には同一の参照番号を付与して重複した説明を省略または簡略化することにする。一例として示したインテル（登録商標）社で提供するＰＣＨ（Platform Controller Hub）というチップ・セット１９には、ＣＰＵ１１、ＳＳＤ２１、ＷＬＡＮの無線モジュール２３、ファームウェアＲＯＭ２５、ＢＬＴＨコントローラ２７およびエンベデッド・コントローラ（ＥＣ）２９などが接続されている。
【００１５】
ＣＰＵ１１には、ビデオ・カード１５およびシステム・メモリ１３が接続されている。ビデオ・カード１５にはタッチスクリーン１７が接続されている。タッチスクリーン１７は、ビデオ・カード１５に接続されたディスプレイと入力コントローラに接続されたタッチパネルで構成している。タッチスクリーン１７には、ソフトウェア・キーボードを表示することもできる。
【００１６】
チップ・セット１９は、基本的なバスとして一例においてＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）を採用し、ＵＳＢ、ＳＰＩ、ＳＡＴＡ  Ｅｘｐｒｅｓｓ、イーサネット（登録商標）などのインターフェース・コントローラを含んでいる。ファームウェアＲＯＭ２５は、ＢＩＯＳまたはＵＥＦＩといったようなシステム・ファームウェアを格納する。ＢＬＴＨコントローラ２７は、無線キーボード５０、およびマウス、ヘッドフォン、およびスマートフォンのような他の無線周辺デバイス３５とＢＬＴＨ通信をするハードウェアである。
【００１７】
ＥＣ２９は、ＣＰＵ、ＲＡＭおよびファームウェアを格納するＲＯＭなどで構成されたマイクロ・コンピュータで、ＣＰＵ１１から独立して動作してラップトップＰＣ１０の電源や温度を管理する。ＥＣ２９はまた、タッチパネルやキーボード３２の入力を処理する入力コントローラを含む。ＥＣ２９には、電源ユニット３１、キーボード３２およびパワー・ボタン（ＰＢ）３３が接続されている。
【００１８】
ラップトップＰＣ１０は、ハードウェア・キーボードとして無線キーボード５０だけを利用することでもよいが、本実施の形態では無線キーボード５０の動作を説明する便宜上構成要素に含めている。電源ユニット３１は、電池ユニット、充電器、およびＤＣ／ＤＣコンバータなどで構成している。ＤＣ／ＤＣコンバータは、ＥＣ２９からの指示に応じて、パワー・ステートに応じて動作するデバイスに電力を供給する。ＰＢ３３は押下されたときに、電源ユニット３１に起動信号を出力する。
【００１９】
［ラップトップＰＣ１０のパワー・ステート］
ラップトップＰＣ１０は一例においてＡＣＰＩが規定するパワーオフ状態（Ｓ５ステート）、ハイバネーション状態（Ｓ４ステート）、サスペンド状態（Ｓ３ステート）およびパワーオン状態（Ｓ０ステート）のパワー・ステートをサポートする。ラップトップＰＣ１０は、パワーオン状態のときにＯＳがソフトウェア上の所定の処理をしてからチップ・セット１９を通じてＥＣ２９に遷移先の指示をすると、パワーオフ状態、ハイバネーション状態、またはサスペンド状態のいずれかに遷移する。以後、これらの３つの状態を総称するときは停止状態ということにする。
【００２０】
ラップトップＰＣ１０は、停止状態のときにＰＢ３３の押下により、ＥＣ２９に起動信号が入力されるとパワーオン状態に遷移する。停止状態においてＥＣ２９は、パワーオン状態に遷移させるために必要なデバイスや通信に必要な最低限のデバイスを除いてほとんどのデバイスに対する電力の供給を停止する。本実施の形態では、停止状態で少なくともＥＣ２９の電源起動回路、およびＢＬＴＨコントローラ２７に電力が供給される。
【００２１】
ＢＬＴＨコントローラ２７は、ライン２８でＥＣ２９の電源起動回路に接続されライン３０でチップ・セット１９に接続されている。ライン２８は、ＢＬＴＨコントローラ２７が接続状態（図６）に遷移する前に無線キーボード５０から特別なパケットを受け取ったときにＥＣ２９に起動信号を出力する。ライン２８は、ＰＢ３３とＯＲ回路でＥＣ２９の電源起動回路に接続するようにしてもよい。
【００２２】
ライン３０はＢＬＴＨコントローラ２７が接続状態に遷移する前に無線キーボード５０から特別なパケットを受け取ったことに応じてＢＬＴＨコントローラ２７が生成した特定のキーのスキャン・コードをチップ・セット１９に出力する。ライン３０はまたＢＬＴＨコントローラ２７が接続状態に遷移したあとに、無線キーボード５０から受け取ったデータ通信パケットが搬送するスキャン・コードをチップ・セット１９に出力する。後に説明するように本実施の形態では無線キーボード５０とＢＬＴＨコントローラ２７はブート中に接続状態に遷移することができる。
【００２３】
［ＢＬＴＨ系統のハードウェア］
図２は、ＢＬＴＨ系統のデータ転送に関連するハードウェア構成を説明するための図である。ＢＬＴＨコントローラ２７は、物理層１０１、リンク層１０３、ＢＬＴＨ／ＵＳＢ変換層１０５、およびＨＣＩ１０７を含んでいる。物理層１０１は、ベースバンド信号と高周波信号を双方向に変換する無線通信高周波回路に相当する。リンク層１０３は、パケットの構築と解読、ＣＲＣ巡回冗長チェックサムによる誤り検出、および暗号化などの無線通信物理リンクの管理を行う。
【００２４】
ＢＬＴＨ／ＵＳＢ変換層１０５は、ＯＳ２１３（図４）の実行環境で無線キーボード５０から受け取ったＢＬＴＨプロトコルのデータをＵＳＢプロトコルのデータに変換して上位層に送る。ＢＬＴＨコントローラ２７がＵＥＦＩファームウェア２６の実行環境で接続された無線キーボード５０およびＯＳ２１３の実行環境で接続された無線周辺デバイス３５からから受け取ったＢＬＴＨプロトコルのデータは、リンク層１０３がＨＣＩ１０７に渡す。
【００２５】
ＨＣＩ１０７は、ＵＳＢホスト・コントローラ１０９と通信するためのインターフェースを提供する。ＨＣＩ１０７は、ＵＳＢに代えてＵＡＲＴやＳＤＩＯといった他の規格のインターフェースを採用してもよい。ＵＳＢホスト・コントローラ１０９はルートハブを含んでおり、ＵＳＢ機能をサポートするためのハードウェアに相当する。ＵＳＢホスト・コントローラ１０９は、ＨＣＩ１０７を通じてＢＬＴＨコントローラ２７と通信し、ＰＣＩｅルート・コンプレックス、およびＰＣＩｅブリッジなどを含むＰＣＩｅシステム１１１を通じてＣＰＵ１１が実行するプログラムと通信する。
【００２６】
［システム・ファームウェアの構成］
図３は、ファームウェアＲＯＭ２５が格納するシステム・ファームウェアの構成を説明するための図である。システム・ファームウェアはＢＩＯＳでもよいがここではＵＥＦＩファームウェア２６を例示して説明する。ＵＥＦＩファームウェア２６はＰＯＳＴコード２６ａ、ＵＥＦＩドライバ２６ｂ、ＢＬＴＨホスト２６ｃ、セット・アップ・コード２６ｄ、ブート・デバイス選択コード２６ｅおよび変数２６ｆなどのモジュールを含む。ＰＯＳＴコード２６ａは、ラップトップＰＣ１０が実装するデバイスの検出、検査および初期化を実行する。
【００２７】
ＵＥＦＩドライバ２６ｂは、プリブートを実行する際に必要なデバイスを制御するコードを含む。プリブートは、パワーオフ状態およびハイバネーション状態のときに、リセットされたＣＰＵ１１がＰＯＳＴの実行を開始してからＯＳ２１３をロードするまでのＵＥＦＩファームウェア２６によるブート・ルーチンをいう。なお、ＣＰＵ１１がリセットしてからロードされたＯＳが実行できる状態になるまでのプリブートを含むブート・ルーチンを単にブートということにする。
【００２８】
ＢＬＴＨホスト２６ｃは、ＧＡＴＴプロファイル、ＧＡＰ、ＡＴＴ、Ｌ２ＣＰなどを含み、データアクセス通信の管理、ネットワーク制御およびセキュリティの管理などを行うソフトウェア・スタックに相当する。セット・アップ・コード２６ｄは、プリブートの間にたとえばＦ１キーが押下されたときにタッチスクリーン１７にユーザがデバイスを設定するためのセット・アップ画面を表示する。ブート・デバイス選択コード２６ｅは、ブート・イメージを格納するデバイスを選択するための画面を表示する。変数２６ｆは、ＧＶ（Global Variables）およびＣＶ（Configuration Variables）などのＵＥＦＩファームウェア２６ｆがプリブートの際に参照したり書き込んだりするデータに相当する。
【００２９】
［ＢＬＴＨ系統のソフトウェア］
図４は、ＢＬＴＨ系統のデータ転送に関連するソフトウェア構成を説明するための図である。ＢＬＴＨファームウェア２０１は、ＢＬＴＨコントローラ２７に実装されたＲＯＭに格納され、ＢＬＴＨコントローラ２７の機能を実現する。ＢＬＴＨファームウェア２０１は、ＢＬＴＨコントローラ２７にＢＬＴＨ／ＵＳＢ変換層１０５を提供する。ＢＬＴＨドライバ２０３は、ＢＬＴＨファームウェア２０１と上位層の間の通信を制御する。ＢＬＴＨドライバ２０３は、ＢＬＴＨコントローラ２７が接続状態に遷移する前に、ＢＬＴＨファームウェア２０１から受け取った、Ｆ１キーおよびＦ１２キーといった特定のキーに対応するスキャン・コードを、ＵＥＦＩファームウェア・コア２６ｇに送る。
【００３０】
ＵＥＦＩファームウェア・コア２６ｇは、スキャン・コードに応じてセット・アップ・コード２６ｄまたはブート・デバイス選択コード２６ｅにＣＰＵ１１の制御権を渡す。ＢＬＴＨホスト２６ｃは、プリブート中にＵＥＦＩファームウェア・コア２６ｇを通じて無線キーボード５０からデータ通信パケットで受け取ったスキャン・コードをセット・アップ・コード２６ｄまたはブート・デバイス選択コード２６ｅに渡す。ＵＥＦＩファームウェア・コア２６ｇは、プリブート中に実装されたキーボード３２から受け取ったスキャン・コードをセット・アップ・コード２６ｄまたはブート・デバイス選択コード２６ｅに渡す。
【００３１】
ＵＳＢドライバ２０９は、ＵＳＢホスト・コントローラ１０９とともにＵＳＢ機能を提供するソフトウェアに相当し、ホスト・コントローラ・ドライバ、バス・ドライバ、およびクラス・ドライバの３つの層で構成されている。ＵＳＢドライバ２０９は通常、ＯＳ２１３に組み込まれている。ＵＳＢドライバ２０９はＯＳ２１３の実行環境でＢＬＴＨ／ＵＳＢ変換層１０５によりＵＳＢプロトコルのデータに変換された無線キーボード５０からのデータをＯＳ２１１に送る。
【００３２】
ＯＳ２１３は、ＵＳＢドライバ２０９を構成するクラス・ドライバからＢＬＴＨコントローラ２７をＨＩＤクラスとして認識してスキャン・コードをアプリケーション２１５に送る。ＢＬＴＨホスト２１１は通常、ＯＳ２１３に組み込まれており、ＢＬＴＨホスト２５ｃと同等のモジュールで構成されている。ＢＬＴＨホスト２１１は、ＯＳ２１３の実行環境で無線周辺デバイス３５が送信したＢＬＴＨプロトコルのデータを処理してアプリケーション２１５に送る。一例においてＢＬＴＨホスト２１１は、無線周辺デバイス３５とアプリケーション２１５のデータ転送にだけ関与し、無線キーボード５０とアプリケーション２１５の間のデータ転送には関与しない。
【００３３】
他の例でＢＬＴＨホスト２１１は、無線キーボード５０が送信したデータ通信パケットを処理してアプリケーション２１５に送るようにすることもできる。アプリケーション２１５は、無線キーボード５０および無線周辺デバイス３５とデータ転送する。ＢＬＴＨファームウェア２０１は、ラップトップＰＣ１０が停止状態でもＢＬＴＨコントローラ２７に電力が供給されるため機能するが、ＣＰＵ１１が実行するＢＬＴＨドライバ２０３より上位の層は、ラップトップＰＣ１０の電源が起動した後でないと機能しない。ＵＥＦＩファームウェア・コア２６ｇより上位の層はプリブート中に機能し、ＵＳＢドライバ２０９およびＢＬＴＨホスト２１１より上位の層はブートが完了した後に機能する。
【００３４】
［無線キーボード］
図５は、無線キーボード５０の構成を示す概略の機能ブロック図である。キー・アセンブリ３０５は、キー・スイッチ、スキャン・ライン、およびデコーダ・ラインなどで構成したキー・マトリクスおよびユーザが押下してキー・スイッチを動作させるキー・トップなどを含む。キーボード・コントローラ３０３は、スキャン・ラインが接続されたスキャン・ドライバおよびデコーダ・ラインが接続されたデコーダを含み、押下されたキーに対応するスキャン・コードを生成してＢＬＴＨコントローラ３０１に送る。
【００３５】
ＢＬＴＨコントローラ３０１は、ＢＬＴＨコントローラ２７と同等のハードウェアおよびファームウェアの構成要素を備えている。電源ユニット３０７は、電池ユニット、充電器、およびＤＣ／ＤＣコンバータなどで構成している。電源ユニット３０７には、無線キーボード５０の電源を起動するパワー・ボタン（ＰＢ）３０９が接続されている。ＰＢ３０９は、キー・アセンブリ３０５に実装してもよい。
【００３６】
［ＢＬＴＨコントローラ２７，３０１の状態遷移］
図６は、ＢＬＴＨコントローラ２７、３０１の動作状態を説明するための状態遷移図である。本実施の形態では、ＢＬＴＨコントローラ２７がセントラル３５１として動作し、無線キーボード５０がペリフェラル３５３として動作する。セントラル３５１の動作状態はスタンバイ状態、スキャニング状態、イニシエーティング状態および接続状態を含む。ペリフェラル３５３の動作状態は、スタンバイ状態、アドバタイジング状態および接続状態を含む。
【００３７】
アドバタイジング・パケットを交換するアドバタイジング・チャネル３５５は、スキャニング状態またはイニシエーティング状態のセントラル３５１とアドバタイジング状態のペリフェラル３５３との間に構築される。データ通信パケットを交換するデータ・チャネル３５７は、接続状態のセントラル３５１とペリフェラル３５３との間に構築される。ＢＬＴＨコントローラ２７とＢＬＴＨコントローラ３０１は、ＢＬＴＨホスト２６ｃまたはＢＬＴＨホスト２１１が構築されて接続状態に入る前はアドバタイジング・チャネル３５５で通信する。アドバタイジング・チャネル３５５での通信状態は、接続状態に移行するための準備処理をする意味で接続準備状態ということができる。
【００３８】
［ラップトップＰＣ１０をブートさせる手順］
つぎに、パワーオフ状態のラップトップＰＣ１０を無線キーボード５０がブートさせる手順について図７のフローチャートを参照して説明する。図８は、ペイロードに特定のフラグを埋め込んだアドバタイジング状態で送信する特別のパケット７００を説明するための図である。ブロック４０１〜４２３はラップトップＰＣ１０の動作を示し、ブロック５０１〜５１７は無線キーボード５０の動作を示し、ブロック５１９は無線キーボード５０および無線周辺デバイス３５の動作を示す。
【００３９】
ブロック４０１、５０１でラップトップＰＣ１０と無線キーボード５０は相互に必要な情報を交換してペアリングが完了しともにパワーオフ状態に遷移している。なお、本実施の形態は、ラップトップＰＣ１０をハイバネーション状態またはサスペンド状態からパワーオン状態に遷移させる場合にも適用することができる。ペアリングの情報は、ＢＬＴＨコントローラ２７、３０１の不揮発性メモリに登録されている。ブロック４０３でＢＬＴＨコントローラ２７は、無線キーボード５０および無線周辺デバイス３５を発見するために所定の周期でスタンバイ状態とスキャニング状態の間を遷移する。
【００４０】
ＥＣ２９は、停止状態に遷移する際に、電源ユニット３１に指示してパワー・ステートに応じた所定のデバイスに対する電源を維持しながら他のほとんどのデバイスに対する電源を停止する。パワーオフ状態およびハイバネーション状態では、ＢＬＴＨコントローラ２７およびＥＣ２９に対する電力が維持される。サスペンド状態では、さらにシステム・メモリ１３の記憶保持に必要なデバイスの電力が維持される。
【００４１】
ユーザは無線キーボード５０の電源を起動すると同時にラップトップＰＣ１０の電源も起動したいと考える。ブロック５０３でＰＢ３０９が押下され、無線キーボード５０の電源ユニット３０７に起動信号が供給される。ＰＢ３０９の押下により電源ユニット３０７はＢＬＴＨコントローラ３０１およびキーボード・コントローラ３０３に電力を供給する。ブロック５０５で、電力の供給を受けたＢＬＴＨコントローラ３０１は、アドバタイジング状態に遷移する。アドバタイジング状態に遷移するＢＬＴＨコントローラ３０１は通常、アドバタイジング・チャネル３５５を利用して定期的にアドバタイジング・パケットを送信する。
【００４２】
アドバタイジング・パケットのＰＤＵ（Protocol Data Unit）は、ＢＬＴＨホスト２６ｃまたはＢＬＴＨホスト２１１が構築されたあとに、デバイス情報の報知、デバイス情報の要求、デバイス情報の応答、および接続要求などに利用される。ＢＬＴＨコントローラ３０１は、ラップトップＰＣ１０においてＢＬＴＨホスト２６ｃまたはＢＬＴＨホスト２１１が構築されていないことを想定して、アドバタイジング・パケットの交換でＢＬＴＨコントローラ２７の存在を確認すると、ブロック５０７においてアドバタイジング状態でＰＢ３０９の押下に応じた特別なパケット７０１（図８）を送信する。特別なパケット７０１は、ペイロードにＢＬＴＨコントローラ２７が認識可能な起動フラグが組み込まれている。
【００４３】
ＢＬＴＨコントローラ２７は、ブロック４１３でＢＬＴＨホスト２６ｃが構築されるまでの間、特別なパケット７００の解析と応答を行うことができる。ブロック４０５で、特別なパケット７０１を受信したＢＬＴＨコントローラ２７は、ＢＬＴＨファームウェア２０１がヘッダの送信元アドレスから無線キーボード５０が送信した特別なパケット７０１を受け取ったことを認識する。ＢＬＴＨファームウェア２０１が、ペイロードを検査して起動フラグを認識したことをＢＬＴＨコントローラ３０１に通知するとＢＬＴＨコントローラ３０１は、特別なパケット７０１の送信を停止してブロック５０９でスタンバイ状態に遷移する。
【００４４】
ブロック４０７でＢＬＴＨファームウェア２０１は、ライン２８を通じてＥＣ２９に起動信号を出力する。起動信号を受け取ったＥＣ２９は、電源ユニット３１に指示してラップトップＰＣ１０をパワーオン状態に遷移させるために必要なほとんどのデバイスに電力を供給する。ブロック４０９でラップトップＰＣ１０の電源が起動しＣＰＵ１１がリセットされる。システム・メモリ１３にＵＥＦＩファームウェア２６がロードされてラップトップＰＣ１０がコールド・ブートを開始する。コールド・ブートでは、ＰＯＳＴコード２６ａが原則としてすべてのデバイスの検出、検査および初期化を行う。ＰＯＳＴコード２６ａは変数２６ｆを参照してデバイスの設定を開始する。
【００４５】
一例において、プリブート中にキーボード３２のＦ１キーを押下すると、ＵＥＦＩファームウェア２６はセット・アップ・コード２６ｄを実行してタッチスクリーン１７にセット・アップ画面を表示することできる。他の例としてシステム・ファームウェア２６は、プリブート中にキーボード３２のＦ１２キーを押下するとブート・デバイス選択コード２６ｅを実行してブート・デバイスの選択画面を表示することができる。
【００４６】
Ｆ１キーやＦ１２キーが、ブート・ルーチンの所定の段階が過ぎてから押下されても、ＵＥＦＩファームウェア２６は受け付けないため、ユーザはタイミングを逃さないでキーを押下する必要がある。ブロック５１１でタッチスクリーン１７の画面でプリブートが開始されたことを認識したユーザは、キー・アセンブリ３０５のＦ１キーを押下すると、キーボード・コントローラ３０３は、ＢＬＴＨコントローラ３０１にＦ１キーのスキャン・コードを送る。
【００４７】
ＢＬＴＨホスト２６ｃがシステム・メモリ１３にロードされてＢＬＴＨコントローラ２７とＢＬＴＨコントローラ３０１が接続状態に遷移する前は、データ通信パケットを送信することができない。また、アドバタイジング状態で送信する特別なパケット７００でスキャン・コードを送信しても、ラップトップＰＣ１０のシステムはそれを認識することができない。
【００４８】
本実施の形態では、無線キーボード５０は、ＢＬＴＨコントローラ３０１が接続状態に遷移する前に、キー・アセンブリ３０５のＦ１キーやＦ１２キーといった特定のキーに対応するスキャン・コードに対応するキー・フラグを埋め込んだ特別なパケット７０３、７０５をアドバタイジング状態で送信する。特別なパケット７０３は、Ｆ１キーのスキャン・コードに関連付けたキー・フラグを設定している。特別なパケット７０５は、Ｆ１２キーのスキャン・コードに関連付けたキー・フラグを設定している。
【００４９】
ブロック４１１でＢＬＴＨファームウェア２０１は、特別なパケット７０３のキー・フラグを検出するとＦ１キーに対応するスキャン・コードを生成する。ＢＬＴＨファームウェア２０１は、チップ・セット１９にＦ１キーのスキャン・コードを送ってＣＰＵ１１に割り込みをする。ＣＰＵ１１の制御権を得たＵＥＦＩファームウェア・コア２６ｇが、セット・アップ・コード２５ｃにＣＰＵ１１の制御権を渡すと、タッチスクリーン１７にセット・アップ画面が表示される。セット・アップ画面や選択画面は、システムがＵＥＦＩファームウェア２６の実行環境に遷移しているときに、ユーザからの入力を待ち受ける待受画面に相当する。
【００５０】
ブロック５１３で、ユーザは続いてデバイスの設定をするためにキー・アセンブリ３０５に矢印キーやファクション・キーなどのセット・アップ画面に入力する任意のキーを押下する。ユーザが任意のキーを押下したときに、ＵＥＦＩファームウェアの実行環境にＢＬＴＨホスト２６ｃが構築されておらず、結果としてＢＬＴＨコントローラ２７とＢＬＴＨコントローラ３０１が接続状態に遷移していない可能性もある。ブロック５１５で、接続状態に遷移する前は、ＢＬＴＨコントローラ３０１はデータ通信パケットで任意のキーに対するスキャン・コードを送信できない。
【００５１】
ブロック４１３でＵＥＦＩファームウェア２６の実行環境にＢＬＴＨホスト２６ｃ構築される。ＢＬＴＨホスト２６ｃが、ＢＬＴＨコントローラ２７から受信したアドバタイジング・パケットから無線キーボード５０を検出すると、ＢＬＴＨホスト２６ｃとＢＬＴＨコントローラ２７はスキャニング状態に遷移してＢＬＴＨコントローラ３０１に参加要請する。つづいてＢＬＴＨコントローラ２７とＢＬＴＨコントローラ３０１が接続状態に遷移する。
【００５２】
ブロック５１７で接続状態に遷移したことを認識したＢＬＴＨコントローラ３０１は、それ以後にキー・アセンブリ３０５から受け取った任意のキーに対応するスキャン・コードを、データ・チャネル３５７を通じてデータ通信パケットで送信する。このときＦ１キーおよびＦ１２キーに対応するスキャン・コードを受け取ったＢＬＴＨコントローラ３０１は、データ通信パケットで当該スキャン・コードを送信する。ブロック４１５でＢＬＴＨコントローラ２７は受け取ったスキャン・コードを、ライン３０を通じてＣＰＵ１１、チップ・セット１９、システム・メモリ１３およびＢＬＴＨホスト２６ｃが構築するＵＥＦＩファームウェア２６の実行環境に送る。
【００５３】
スキャン・コードは、ＢＬＴＨホスト２６ｃで処理されてセット・アップ・コード２６ｄに送られ、セット・アップ画面に対する入力処理が行われる。ブロック４１７でＯＳ２１３のロードが開始され、ブロック４１９でＢＬＴＨホスト２１１がシステム・メモリ１３上に構築される。ブロック４２１でブートが完了し、ラップトップＰＣ１０はソフトウェア的にもパワーオン状態に遷移する。ブロック５１９で無線キーボード５０または無線周辺デバイス３５がデータ通信パケットを送信する。無線周辺デバイス３５は、ＢＬＴＨホスト２１１がロードされたあとにＢＬＴＨコントローラ２７と接続状態に遷移する。
【００５４】
ブロック４２３でＢＬＴＨファームウェア２０１は、無線キーボード５０から受け取ったデータ通信パケットをＵＳＢドライバ２０９およびＯＳ２１３を経由してアプリケーション２１５に送る。ＢＬＴＨファームウェア２０１は、無線周辺デバイス３５から受け取ったデータ通信パケットをＢＬＴＨホスト２１１およびＯＳ２１３を経由してアプリケーション２１５に送る。
【００５５】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００５６】
１０  ラップトップＰＣ
１９  チップ・セット
２６  ＵＥＦＩファームウェア
２７  ＢＬＴＨコントローラ  
３１  ラップトップＰＣの電源ユニット
５０  無線キーボード
３０１  ＢＬＴＨコントローラ
３０３  キーボード・コントローラ
３０５  キー・アセンブリ
３０７  無線キーボードの電源ユニット
【図１】
2019023777.tif 000003
【図２】
2019023777.tif 000004
【図３】
2019023777.tif 000005
【図４】
2019023777.tif 000006
【図５】
2019023777.tif 000007
【図６】
2019023777.tif 000008
【図７】
2019023777.tif 000009
【図８】
2019023777.tif 000010
【手続補正書】
【提出日】平成30年10月9日(2018.10.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の無線コントローラを備える無線キーボードと通信することが可能なコンピュータであって、
ブート中に前記第１の無線コントローラから受け取ったパケットが含む、待受画面の表示に対応する所定のデータを検出してスキャン・コードを生成する第２の無線コントローラと、
システム・ファームウェアを実行するプロセッサに前記待受画面の表示をさせるために前記第２の無線コントローラから前記スキャン・コードを受け取るチップ・セットと
を有するコンピュータ。
【請求項２】
前記第２の無線コントローラは、前記パケットを前記第１の無線コントローラとデータ・チャネルでデータ通信をする接続状態に遷移する前に受け取る請求項１に記載のコンピュータ。
【請求項３】
前記第１の無線コントローラと前記第２の無線コントローラが、ブルートゥース（登録商標）規格で通信する請求項１に記載のコンピュータ。
【請求項４】
前記第１の無線コントローラは前記パケットをアドバタイジング状態で送信する請求項３に記載のコンピュータ。
【請求項５】
前記待受画面が、ユーザがデバイスを設定する入力をするためのセット・アップ画面である請求項１に記載のコンピュータ。
【請求項６】
前記待受画面が、ブート・デバイスの選択画面である請求項１に記載のコンピュータ。
【請求項７】
前記システム・ファームウェアが前記コンピュータに、起動時にオペレーティング・システムがロードされる前に前記スキャン・コードを処理する機能を実現させる請求項１に記載のコンピュータ。
【請求項８】
第１の無線コントローラを搭載する無線キーボードと通信して第２の無線コントローラを搭載するコンピュータがブートする方法であって、
前記第１の無線コントローラと前記第２の無線コントローラが接続準備状態のときに、前記第２の無線コントローラが前記第１の無線コントローラから受け取ったパケットを解析するステップと、
前記パケットから所定のデータを検出したときに、前記第２の無線コントローラが前記ブート中に待受画面を表示するためのスキャン・コードを生成するステップと
を有する方法。
【請求項９】
オペレーティング・システムがロードされる前に前記第２の無線コントローラが、前記第１の無線コントローラに対してデータ・チャネルでデータ通信をする接続状態に遷移してスキャン・コードを含むパケットを受信するステップを有する請求項８に記載の方法。
【請求項１０】
ブルートゥース（登録商標）規格の第１の無線コントローラを備えるコンピュータに入力することが可能な無線キーボードであって、
キー・スイッチを含むキー・アセンブリと、
前記キー・スイッチに対応するスキャン・コードを出力するキーボード・コントローラと、
前記キーボード・コントローラから特定のキー・スイッチに対応するスキャン・コードを受け取ったときに前記第１の無線コントローラに前記スキャン・コードを生成させるための所定のデータを含むパケットをアドバタイジング状態で送信する第２の無線コントローラと
を有する無線キーボード。
【請求項１１】
ブルートゥース（登録商標）規格の第１の無線コントローラを備えるコンピュータに入力することが可能な無線キーボードであって、
キー・スイッチを含むキー・アセンブリと、
前記キー・スイッチに対応するスキャン・コードを出力するキーボード・コントローラと、
前記コンピュータがブートを開始してオペレーティング・システムがロードされる前に前記第１の無線コントローラに対して接続状態に遷移したことを認識したときに、前記キーボード・コントローラから受け取った任意のキー・スイッチに対応するスキャン・コードをデータ通信パケットで送信する第２の無線コントローラと
を有する無線キーボード。
【請求項１２】
ブルートゥース（登録商標）規格の第１の無線コントローラを備えるコンピュータを、前記第１の無線コントローラと通信することが可能な第２の無線コントローラを備える無線キーボードがブートさせる方法であって、
前記無線キーボードがパケットを送って前記コンピュータを起動するステップと、
前記第２の無線コントローラが、前記第１の無線コントローラに特定のキーに対応するスキャン・コードを生成させるための所定のデータを含むパケットをアドバタイジング状態で送信するステップと
を有する方法。
【請求項１３】
ブルートゥース（登録商標）規格の第１の無線コントローラを備えるコンピュータを、前記第１の無線コントローラと通信することが可能な第２の無線コントローラを備える無線キーボードがブートさせる方法であって、
前記無線キーボードがパケットを送って前記コンピュータを起動するステップと、
ブート中に前記第１の無線コントローラと前記第２の無線コントローラが接続状態に遷移したことを認識した前記第２の無線コントローラが任意のキーに対応するスキャン・コードをデータ通信パケットで送信するステップと
を有する方法。