(57)【特許請求の範囲】
【請求項１】
アクセサリで遠隔制御デバイスからの第１の無線信号を受信し、
前記アクセサリが、前記第１の無線信号を示す情報をホストデバイスに送信し、
前記アクセサリで前記ホストデバイスからの識別子を受信し、前記識別子は前記第１の無線信号を示す情報及び前記ホストデバイスの機能に関連づけられ、
前記アクセサリが、前記識別子及び前記第１の無線信号を示す情報を記憶する、
ことを含む方法。
【請求項２】
前記アクセサリで前記遠隔制御デバイスからの第２の無線信号を受信し、
前記第２の無線信号が前記第１の無線信号と実質的に類似するかを、記憶された前記第１の無線信号を示す情報に基づき決定し、
前記第２の無線信号が前記第１の無線信号と実質的に類似する場合、前記識別子を前記ホストデバイスに送信する、
請求項１に記載の方法。
【請求項３】
前記第１の無線信号が赤外線（ＩＲ）信号であり、
前記信号を示す情報が、前記ＩＲ信号の波形をエンコードする時間サンプリング、前記ＩＲ信号の波形をエンコードする一連のエッジタイム、又はＩＲプロトコルタイプ及び前記ＩＲ信号の関連するプロトコルコマンド文字列を含む、請求項１に記載の方法。
【請求項４】
前記遠隔制御デバイスは、前記アクセサリ及び前記ホストデバイス以外のデバイスを制御するよう設計されている、請求項１に記載の方法。
【請求項５】
前記ホストデバイスはポータブルメディアデバイスであり、前記アクセサリはポータブルメディアデバイスドック(dock)である、請求項１に記載の方法。
【請求項６】
ホストデバイスでアクセサリからの無線信号を示す情報を受信する処理であって、前記無線信号は遠隔制御デバイスからアクセサリに送信されている当該処理と、
前記無線信号を示す情報を、前記ホストデバイスの機能に関連づける処理と、
前記ホストデバイスが、前記無線信号を示す情報及びホストデバイスの機能に関連づけられた識別子を生成する処理と、
前記ホストデバイスが前記識別子を前記アクセサリに送信する処理と、
を含む方法。
【請求項７】
前記識別子及び前記機能を記憶することを更に含む、請求項６に記載の方法。
【請求項８】
前記ホストデバイスで前記アクセサリからの前記識別子を受信する処理と、
前記識別子を受信することに応じて前記機能を実行する処理と、
を更に含む、請求項６に記載の方法。
【請求項９】
前記ホストデバイスにより、前記機能が実行されたことを示す肯定承認を前記アクセサリに送信する処理を更に含む、請求項８に記載の方法。
【請求項１０】
ユーザによって前記遠隔制御デバイス上のボタンがアクティブ状態になることに応じて、前記無線信号が前記遠隔制御デバイスから前記アクセサリに送信され、前記機能は前記ボタンとの関連性のために前記ユーザによって以前に選択されている、請求項８に記載の方法。
【請求項１１】
無線信号を受信するよう構成された無線レシーバと、
ホストデバイスと通信するよう構成されたインターフェースと、
(i)前記無線レシーバによって受信された無線信号の特徴を前記ホストデバイスに送信し、
(ii)前記特徴及び前記ホストデバイスの機能に関連づけられた識別子を前記ホストデバイスから受信し、
(iii)その後に前記特徴を有する無線信号が受信されたとき、前記ホストデバイスに前記識別子を送信する、
よう構成された制御コンポーネントと、
を備えたアクセサリ。
【請求項１２】
前記無線信号の特徴を送信すること及び前記識別子を受信することは、前記制御コンポーネントが第１のモードでオペレーションしている間に、前記制御コンポーネントによって実行され、
前記識別子を送信することは、前記制御コンポーネントが、前記第１のモードとは異なる第２のモードでオペレーションしている間に、前記制御コンポーネントによって実行される、請求項１１に記載のアクセサリ。
【請求項１３】
前記制御コンポーネントは、前記ホストデバイスによって前記第１のモード及び第２のモードそれぞれに入るために指示される、請求項１２記載のアクセサリ。
【請求項１４】
アクセサリと通信するよう構成されたインターフェースと、
(i)無線信号の特徴及びホストデバイスの機能に関連づけられた識別子を前記アクセサリに送信し、
(ii)前記識別子を送信した後、前記アクセサリから再び当該識別子を受信したとき、前記識別子に関連づけられたホストデバイスの機能を実行する、
よう構成されたプロセッサと、
を備えた前記ホストデバイス。
【請求項１５】
前記識別子を送信することは、第１のモードでオペレーションしている間に前記プロセッサによって実行され、
前記識別子を受信すること及び前記機能を実行することは、前記プロセッサが前記第１のモードとは異なる第２のモードでオペレーションしている間に、前記プロセッサによって実行される、請求項１４に記載のホストデバイス。
【請求項１６】
前記プロセッサは、ユーザ入力に基づき、前記第１のモード及び第２のモードに入るよう構成された、請求項１５に記載のホストデバイス。
【請求項１７】
ホストデバイスによって第１のモードのオペレーションに入る処理と、
前記ホストデバイスによって、アクセサリが前記第１のモードのオペレーションに入るよう指示するコマンドを送信する処理と、
前記第１のモードのオペレーション中、
前記ホストデバイスによって、選択可能な機能リストの中から前記ホストデバイスの機能を選択するようユーザに促す処理と、
前記ホストデバイスによって、前記ユーザから機能の選択を受信する処理と、
前記ホストデバイスによって、前記選択した機能に関連する遠隔制御デバイス上のボタンをアクティブ状態にするようユーザに促す処理と、
前記ホストデバイスによって、前記アクセサリから無線信号を示す情報を受信する処理であって、前記無線信号は、前記ボタンのアクティブ状態に応じて前記遠隔制御デバイスから前記アクセサリに送信されていたものであり、
前記ホストデバイスによって、前記無線信号を示す情報及び前記選択された機能に関連づけられた識別子を生成する処理と、
前記ホストデバイスによって、前記識別子を前記アクセサリに送信する処理と、
を含む方法。
【請求項１８】
前記第１のモードのオペレーションとは異なる第２のモードのオペレーションを、前記ホストデバイスによって入る処理と、
前記ホストデバイスによって、前記アクセサリが前記第２のモードのオペレーションに入るよう指示するコマンドを前記アクセサリに送信する処理と、
前記第２のモードのオペレーション中、
前記ホストデバイスによって、前記アクセサリから前記識別子を受信する処理と、
前記ホストデバイスによって、前記識別子を受信することに応じて前記選択された機能を実行する処理と、
を更に含む、請求項１７に記載の方法。
【請求項１９】
前記選択可能なリストは静的である、請求項１７に記載の方法。
【請求項２０】
前記選択可能なリストは、第１のモードのオペレーションが入る時点で、ホストデバイスのアプリケーション内容に基づき変化する、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、アクセサリ相互作用することのできるホストデバイスの分野に係り、特に、ホストデバイスが遠隔制御からの学習及び処理を容易にするアクセサリとの相互作用に向けられている。
【０００２】
遠隔制御デバイス（ここでは、“遠隔制御”と称する。）は、テレビ、ＤＶＤプレーヤー、デジタルビデオレコーダーなどの消費者の様々な電子デバイスを遠隔に運用するために普通に用いられてきている。典型的な遠隔制御は１以上のボタンと信号送信機を含む。遠隔制御のボタンが作動するとき、信号送信機は、ボタンアクティベーションイベントに関連する信号を、制御されることになる目標デバイスの信号受信機へ送信することができる。その信号には、例えば、赤外線（ＩＲ）や無線周波数（ＲＦ）信号などの無線信号があり、目標デバイスの機能に対応することができる。信号が信号受信機で受信されるとき、その信号は目標デバイスによって認識され、そして対応する機能が実行されることが可能である。
【０００３】
ここ最近では、ポータブル（携帯）メディアデバイスを遠隔に操作することのできる消費者要求が大きくなってきている。本明細書では、ポータブルメディアデバイスは、オーディオ、ビデオ、及び／又はスチル画像ファイルなどのメディア資産を管理し及び／又は再生することのできる携帯型デバイスである。幾つかのポータブルデバイス、例えば、本願の出願人でもあるＡｐｐｌｅ（Ｒ）社が開発したｉＰｏｄ（Ｒ）及びｉＰｈｏｎｅ（Ｒ）は、メディアの管理及び再生に加えて様々なサービスをユーザ提供することができる。そのようなサービスの例として、カレンダー、接触、ノートなどの個人データの記憶、インターネットアクセス、モバイル電話、様々なアプリケーションを選択的にダウンロードしたり演算させたりする能力を含む。
【０００４】
ポータブルメディアデバイスの遠隔オペレーションを容易にするため、ポータブルメディアデバイスとインターフェースし、そのデバイスのために遠隔制御信号を受信することができるアクセサリが開発されてきている。これらのアクセサリは、典型的には、ポータブルメディアデバイスの対応するコネクタに一致しドッキングするように適合されたコネクタを有し、これによってアクセサリとポータブルメディアデバイス間の様々な信号とデータの交換ができるようになる。また、信号受信機は遠隔制御からの信号を受信するよう調整されている。
【０００５】
一般的にいうと、これら既存のアクセサリは、遠隔制御信号の静的な“語彙（ボキャブラリー）”を認識するように設計されている。そして、この静的な語彙の中の信号が受信されるとき、アクセサリは、関連するコマンドを、接続されたポータブルメディアデバイスに送信する。例えば、そのような既存アクセサリの一つは、デバイスコマンド“再生”、“早回し”、“巻き戻し”のそれぞれに関連する信号Ａ、Ｂ、Ｃを含む静的信号の語彙を認識するよう構成することができる。アクセサリの信号受信機で信号Ａが受信されるとき、アクセサリはその静的信号における一つの信号としてＡを認識し、“再生”コマンドを接続されたポータブルメディアデバイスに送信することができる。同様に、アクセサリの信号受信機で信号Ｂ又はＣが受信されるとき、アクセサリはその静的信号における一つの信号としてＢ又はＣを認識し、“早回し”又は“巻き戻し”コマンドを接続されたポータブルメディアデバイスに送信することができる。このタイプの実行例では、ポータブルメディアデバイスは、アクセサリの静的信号の語彙における特定の信号を送信することのできる遠隔制御によってコントロールされることができるにすぎない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の実施形態は、ホストデバイス（例えば、ポータブルメディアデバイス）及びアクセサリによる遠隔制御の学習及び処理を容易にする技術を提供する。一実施例では、アクセサリは、遠隔制御からの信号を受信し、ホストデバイスにその信号を示す情報を送信する。ホストデバイスは信号を受信すると、この信号を示す情報をホストデバイスの機能と関連づけ、これによりその特定の信号が遠隔制御から再び受信されるときはいつでもその機能が実行されるという“学習”が行われる。この方法によれば、ホストデバイスは、予め決められた静的な信号の語彙を送信することができる特定の遠隔制御というよりも、様々な異なる遠隔制御により構成されることができるといえる。
【０００７】
幾つかの例では、アクセサリからホストデバイスに送信される信号を示す情報のサイズは、アクセサリとホストデバイス間の通信チャンネルのバンド幅に対して大きいこともある。遠隔制御信号がアクセサリで受信されるたびごとに、このような信号を示す情報がアクセサリからホストデバイスに送信される場合、通信チャンネルは、アクセサリとホストデバイス間におけるその通信チャンネルを介した他のデータ通信に悪影響が及ぼすほどに拡大するよう飽和状態になるだろう。
【０００８】
したがって、本発明の或る実施例は、ホストデバイスと、ホストデバイスが上述したような遠隔制御信号を学習できるようにするアクセサリ間の相互作用を可能にするものであって、その一方で、そのような学習された信号がその後に処理されるときホストデバイスとアクセサリ間で送信されるデータ量を減少又は最小化させるものである。一実施例では、ホストデバイスとアクセサリは、その後に処理されることができる。ホストデバイスとアクセサリは遠隔制御信号を学習するための第１モード（ここでは、“学習モード”と称する。）で操作することができる。学習モードにおいて、アクセサリは遠隔制御から信号を受信し、そしてその信号を示す情報をホストデバイスに送信することができる。信号を示す情報を受信すると、ホストデバイスは上記信号を示す情報をホストデバイスの機能に関連づけることができる。さらに、アクセサリは上記信号を示す情報及び機能と関係する識別子を生成し記憶することができる。様々な実施例において、識別子はその関連した信号を示す情報よりもサイズが実質的に小さくすることができる。その後、ホストデバイスは識別子をアクセサリに送信することができるが、この識別子は信号を示す情報と一緒に記憶されている。
【０００９】
さらに他の実施例では、ホストデバイス及びアクセサリは、遠隔制御信号を処理する第２のモード（ここでは、“処理モード”と称する。）で操作することができる。処理モードにおいて、アクセサリは遠隔制御から信号を受信し、そして受信した信号が前に学習した信号と実質的に類似する（もしくは等しい）かどうかを決定することができる。例えば、アクセサリは、受信した信号を示す情報を、学習モードの間に記憶した信号を示す情報と比較することができる。実質的に類似する（もしくは等しい）記憶した信号を示す情報が見つかった場合、アクセサリはその記憶した信号に関連する識別子をホストデバイスに送信することができる。識別子を受信すると、ホストデバイスは、学習モードの間に、上記識別子と前に関連づけられていた機能を実行することができる。
【００１０】
上述した学習モードに従ったホストデバイスとアクセサリ間の相互作用性を提供することによって、本発明の或る実施例は、ホストデバイスにより、様々な異なる遠隔制御からの信号を学習（その結果、遠隔に作用する）ことができるようになる。例えば、幾つかの実施例において、ホストデバイスはホストデバイス又はアクセサリと相互作用するように詳細には設計されていなかった遠隔制御からの信号を学習することができる。さらに、上述した処理モードに従ったホストデバイスとアクセサリ間の相互作用性を提供することによって、本発明の或る実施例は、ホストデバイス及びアクセサリにより、ホストデバイスとアクセサリ間の通信チャンネルを飽和させることなく、学習した遠隔制御信号を処理することができるようになる。例えば、アクセサリは、学習した信号を受信する場合ごとに（完全な信号というよりか）ホストデバイスに対して比較的小さな識別子を送信することができるので、アクセサリとホストデバイス間で送信されたデータ量を実質的に縮小することができる。
【００１１】
ここで開示する実施例の更なる特性及び優位な点は、添付の図面及び後述する詳細な説明を参照することによって理解されるであろう。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の実施例に従ったシステムの簡略化した説明図である。
【図２】図２は、本発明の実施例に従ったシステムの簡略化したブロック図である。
【図３】図３は、本発明の実施例に従った学習モードの間にホストデバイスによって実行される処理のフロー図である。
【図４】図４は、本発明の実施例に従った学習モードの間にアクセサリによって実行される処理のフロー図である。
【図５】図５は、本発明の実施例に従った処理モードの間にホストデバイスによって実行される処理のフロー図である。
【図６】図６は、本発明の実施例に従った処理モードの間にアクセサリによって実行される処理のフロー図である。
【発明を実施するための形態】
【００１３】
以下の記載では、説明の簡略を図る目的で、本発明の様々な実施例の理解を提供するために多くの説明を述べる。しかしながら、明らかなように、当業者であればこれらの詳細な説明がなくても或る実施例を実現することができるものである。
【００１４】
本発明の実施例は、ホストデバイス（例えば、ポータブルメディアデバイス）及びアクセサリによる遠隔制御信号の学習と処理を容易にする技術を提供する。或る実施例では、ホストデバイスにより、様々な異なる遠隔制御からの遠隔制御信号を学習し、一方で、そのような学習された信号がその後に処理されるとき、ホストデバイスとアクセサリ間で転送されるデータ量を削減又は最小化することができるようにする。
【００１５】
一実施例において、ホストデバイス及びアクセサリは、遠隔制御信号を学習するための第１モード（“学習モード”）で操作することができる。学習モードにおいて、アクセサリは遠隔制御から信号を受信し、そしてその信号を示す情報をホストデバイスに送信することができる。信号を示す情報を受信すると、ホストデバイスは上記信号を示す情報をホストデバイスの機能に関連づけることができる。さらに、アクセサリは上記信号を示す情報及び機能と関係する識別子を生成し記憶することができる。様々な実施例において、識別子はその関連した信号を示す情報よりもサイズが実質的に小さくすることができる。その後、ホストデバイスは識別子をアクセサリに送信することができるが、この識別子は信号を示す情報と一緒に記憶されている。
【００１６】
さらに他の実施例では、ホストデバイス及びアクセサリは、遠隔制御信号を処理する第２のモード（“処理モード”）で操作することができる。処理モードにおいて、アクセサリは遠隔制御から信号を受信し、そして受信した信号が前に学習した信号よりも実質的に類似する（もしくは等しい）かどうかを決定することができる。例えば、アクセサリは、受信した信号を示す情報を、学習モードの間に記憶した信号を示す情報と比較することができる。実質的に類似する（もしくは等しい）記憶した信号を示す情報が見つかった場合、アクセサリはその記憶した信号を示す情報に関連する識別子をホストデバイスに送信することができる。識別子を受信すると、ホストデバイスは、学習モードの間に、上記識別子と前に関連づけられていた機能を実行することができる。
【００１７】
上述した学習モードに従ったホストデバイスとアクセサリ間の相互作用性を提供することによって、本発明の或る実施例は、ホストデバイスにより、様々な異なる遠隔制御からの信号を学習（その結果、遠隔に作用する）ことができるようになる。例えば、幾つかの実施例において、ホストデバイスはホストデバイス又はアクセサリと相互作用するように詳細には設計されていなかった遠隔制御からの信号を学習することができる。さらに、上述した処理モードに従ったホストデバイスとアクセサリ間の相互作用性を提供することによって、本発明の或る実施例は、ホストデバイス及びアクセサリにより、ホストデバイスとアクセサリ間の通信チャンネルを飽和させることなく、学習した遠隔制御信号を処理することができるようになる。例えば、アクセサリは、学習した信号を受信する場合ごとに（完全な信号というよりか）ホストデバイスに対して比較的小さな識別子を送信することができるので、アクセサリとホストデバイス間で送信されたデータ量を実質的に縮小することができる。代替的な実施例において、ホストデバイス１０２はアクセサリデバイス（例えば、アクセサリ１０４）と相互オペレーティングする能力がある任意の他のタイプの電子デバイスである。ホストデバイス１０２は、タッチスクリーンディスプレイ１０８などのユーザ入出力デバイスを有するユーザインターフェースを含むことができる。また、ホストデバイス１０２は、スクロールホイール、ボタン、キーボード、トラックボール、タッチパッド、マイクロフォン、スピーカなどの任意の数の他のユーザ入出力デバイスを含むことができる。
【００１８】
ホストデバイス１０２は、ユーザに対して、メディア資産の管理や再生、モバイル電話、インターネットアクセス（例えば、Ｗｉ−Ｆｉなどの無線接続及び／又はＥＤＧＥ又は３Ｇ技術を用いた進歩した無線データネットワーク経由）などの様々なサービス、及びユーザによってホストデバイス１０２上にインストールされ得る様々なアプリケーションプログラムの実行を提供することができる。これらサービスの幾つかは、ホストデバイス１０２の入力デバイス（例えば、タッチスクリーンディスプレイ１０８）を介して直接的に、又は遠隔制御を介してリモートで（例えば、遠隔制御１０６）提供されるユーザ入力を要求することもある。
【００１９】
図示するとおり、ホストデバイス１０２は、ケーブル１１４の終端コネクタ１１２を受信することができるホストコネクタ１１０を含むことが可能である。ホストコネクタ１１０は、遠隔制御１０６によるホストデバイス１０２の遠隔オペレーションに関係するホストデバイス１０２とアクセサリ１０４間での様々なデータ及び制御信号を運ぶために割り当てられた多数のピンを含む。ホストコネクタ１１０は、オーディオ及び／又はビデオ信号、さらにはホストデバイス１０２とアクセサリ１０４間での電力とグランド接続を提供するピンなどの他のタイプの信号を運ぶために割り当てられたピンも含むことができる。一実施例において、或るピンは、ホストデバイス１０２からアクセサリ１０４に電力を移送するために割り当てられながら、別のピンはアクセサリ１０４からホストデバイス１０２へ電力を移送するために割り当てられるようにすることができる。その結果、デバイス（１０２又は１０４）の一方は電力を他方に提供することができる。
【００２０】
アクセサリ１０４は、アクセサリコネクタ１１８で、ケーブル１１４の他の終端コネクタ１１６を受信することができる。幾つかの実施例で、アクセサリコネクタ１１８は、ホストコネクタ１１０から異なる形式の要因及び／又は異なる数の接触をもつことができる。他の実施例において、２つのコネクタは同一である。別の実施例では、アクセサリコネクタ１１８は、ホストコネクタ１１０と直接合体されるよう設計されうる。その結果、ケーブル１１４が要求されない。更なる実施例では、ホストデバイス１０２とアクセサリ１０４間の幾つか又はすべての通信は無線で（例えば、Ｂｌｕｅｔｏｏｔｈ（Ｒ）又は他の近距離無線プロトコル）生じるようにしてよい。
【００２１】
アクセサリ１０４はドックステーション（“ドック”として知られている）、遠隔制御ドングル、又は遠隔制御（例えば、遠隔制御１０６）から信号を受信し、これらの信号に関連した情報を接続されたホストデバイス（例えば、ホストデバイス１０２）に提供することができる任意の他のタイプの電子デバイスである。一実施例において、アクセサリ１０４は、遠隔制御１０６からＩＲ信号を受信するためのＩＲ受信機“アイ（ｅｙｅ）”）１２０を含むことができる。他の実施例において、アクセサリ１０４は遠隔制御１０６（例えば、ＲＦ信号）から他のタイプの無線信号を受信するための信号受信コンポーネントを含むことができる。
【００２２】
図示していないが、アクセサリ１０４は、ホストデバイス１０２に対してサービス又はサービス拡大を提供する追加的なコンポーネントも含むことができる。単なる例示であるが、アクセサリ１０４はオーディオ／ビデオ（“Ａ／Ｖ”）出力ポートを含み、これにより、Ａ／Ｖ信号がホストデバイス１０４から（例えば、ケーブル１１４経由で）外部の表示／再生デバイスにルーチンされるようにすることができる。アクセサリ１０４は、スクロールホイール、ボタン、キーボード、トラックボール、タッチパッド、マイクロフォン、スピーカ、タッチスクリーンディスプレイ、及びホストデバイス１０２からユーザ入力を提供し及び／又は情報を提示するための同様な機構などのユーザ入出力デバイスを含むことができる。
【００２３】
遠隔制御１０６は任意のタイプの電子デバイスであり、ユーザから入力を受信し、その入力に基づき１以上の信号（例えば、無線信号１２２）を目標デバイス（例えば、ホストデバイス１０２）を遠隔でオペレーティングするために生成することができる。例えば、図示された実施例においては、遠隔制御１０６は１以上のボタン１２４を含む。ボタン１２４がアクティブ状態になったとき、遠隔制御１０６は、ボタンアクティベーションイベントに関連する無線信号１２２をアクセサリ１０４の受信機１２０に送信することができる。様々な実施例において、次に、アクセサリ１０４及びホストデバイス１０２は、信号１２２を学習又は処理する学習モード又は処理モードで相互作用することができる。
【００２４】
幾つかの実施例では、遠隔制御１０６は、ホストデバイス１０２又はアクセサリ１０４と相互作用するように元々は設計されていないかもしれない。例えば、遠隔制御１０６は、特定のテレビモデルとして予めパッケージされて来て、そのテレビモデルを制御することだけをするように本来は設計されていたりする（或いは、他のテレビモデルが同じ製造業者によって作られる）。それにもかかわらず、本発明の技術を用いながら、そのような専用の遠隔制御はホストデバイス１０２とアクセサリ１０４と相互作用するように用いられることが可能である。
【００２５】
ここで、システム１００は、例示であって本発明の実施態様を制限するものではないことを理解されたい。例えば、様々に異なるタイプのホストデバイス１０２、アクセサリ１０４、遠隔制御１０６が用いられうる。当業者であれば、多くの変形、修正及び代替を認識するであろう。
【００２６】
図２は、本発明の実施例に従ったシステム２００の簡略化したブロック図である。図示するとおり、システム２００はホストデバイス２０２、アクセサリ２０４、及び遠隔制御２０６を含む。一実施例において、システム２００は、図１のシステム１００を実装することができる。例えば、ホストデバイス２０２は、ホストデバイス１０２を実装し、アクセサリ２０４はアクセサリ１０４を実装し、そして遠隔制御２０６は遠隔制御１０６を実装することができる。
【００２７】
ホストデバイス２０２は、プロセッサ２０８、ユーザ入出力デバイス２１０、記憶デバイス２１２、及びアクセサリＩ／Ｏ（入力／出力）インターフェース２１４を含むことができる。
【００２８】
プロセッサ２０８は、マイクロプロセッサ又はマイクロコントローラなどの１以上の集積回路として実装されうる。幾つかの実施例において、プロセッサ２０８は、ＡＲＡＭアーキテクチチャ（ＡＲＭ社によって設計されたＲＩＳＣアーキテクチャ）を使用するマイクロプロセッサでありうる。プロセッサ２０８は、ホストデバイス２０２の１以上のオペレーションを実行する責任がある。例えば、プロセッサ２０８は、メディア資産を選択して再生したり、記憶デバイス２１２に記憶された様々なアプリケーションプログラムを実行することができる。また、プロセッサ２０８は、アクセサリＩ／Ｏインターフェース２１４を介してアクセサリデバイス（例えば、アクセサリ２０４）との通信を管理することができる。詳細は後述するが、一実施例において、プロセッサ２０８は、ホストデバイス２０２が遠隔制御信号を学習したり処理すたりする学習モード又は処理モードで作動するよう生じさせることができる。
【００２９】
ユーザ入出力デバイス２１０は、ユーザがホストデバイス２０２と相互に作用することがきる多数のデバイスのいずれかである。例えば、図１のデバイス１０２に関して述べたように、そのようなユーザ入出力デバイスは、スクロールホイール、ボタン、キーボード、トラックボール、タッチパッド、マイクロフォン、スピーカ、タッチスクリーンディスプレイなどを含むことができる。様々な実施例において、ユーザはホストデバイス２０２の機能を呼び出すために特定のユーザ入力デバイス２１０を操作することができる。加えて、ユーザは特定のユーザ出力デバイス２１０を介してホストデバイス２０２から出力をビュー及び／又は聞くことができる。
【００３０】
例えば、記憶デバイス２１２は、磁気ディスク、フラッシュメモリ、及び／又は他の不揮発性記憶媒体を用いながら実装されうる。幾つかの実施例において、記憶デバイス２１２は、取り外し不可能なハードディスクドライブやフラッシュメモリドライブなどの非リムーバブル記憶コンポーネントを含むことができる。他の実施例では、記憶デバイス２１２は、フラッシュメモリカードなどのリムーバブル記憶媒体を含むことができる。記憶デバイス２１２は、ホストデバイス２０２によって使用される任意のプログラム及び／又はデータのためのストレージを提供することができる。例えば、記憶デバイス２１２は、オーディオ、ビデオ、スチール画像、及びこれに類似したもの、そして関連するメタデータ（例えば、資産名、アーティスト、タイトル、ジャンル、プレイリストなど）などのメディア資産を記憶することができる。また、記憶デバイス２１２はメディア資産以外の情報、例えば、ユーザ接触（名前、住所、電話番号等）、スケジュールされた予約及びイベント、ノート、及び／又は他の個人情報についての情報をも記憶することができる。他の実施例においては、記憶デバイス２１２はプロセッサ２０８によって実行されるプログラム、例えば、ビデオゲームプログラム、個人情報管理プログラム、メディア資産を演奏するプログラム、及び／又はメディア資産データベースをナビゲーションするような１以上のプログラムを記憶することができる。
【００３１】
アクセサリＩ／Ｏインターフェース２１４は、ホストデバイス２０２及びアクセサリ２０４間の様々な信号を運ぶよう構成された多数の信号パスを含むことができる。一実施例において、アクセサリＩ／Ｏインターフェース２１４は、ｉＰｏｄ（Ｒ）及びｉＰｈｏｎｅ（Ｒ）に使用されるコネクタに対応する３０ピンコネクタを含む。代替的に又は付加的に、アクセサリＩ／Ｏインターフェース２１４は、無線インターフェース（例えば、Ｂｌｕｅｔｏｏｔｈ（Ｒ）など）を含むことができる。
【００３２】
幾つかの実施例において、ホストデバイス２０２は、アクセサリＩ／Ｏインターフェース２１４を使用して、メディア資産管理プログラム（Ａｐｐｌｅ（Ｒ）社によって配布されたｉＴｕｎｅｓ（Ｒ）メディア資産管理プログラムなど）を実行するホストコンピュータ（不図示）と通信することもできる。幾つかの実施例において、メディア資産管理プログラムは、ユーザにより、記憶デバイス２１２に記憶されたメディア資産のデータベースを修正すること、記憶デバイス２１２に記憶された個人データ（例えば、カレンダー、接触）を更新すること、及び／又は記憶デバイス２１２に記憶されたアプリケーションプログラムを追加・更新・除去することができるようにする。他の実施例では、ホストデバイス２０２は、ホストコンピュータ及び／又はコンピュータネットワークとの通信を提供することのできる無線インターフェース（不図示）を含むことができる。
【００３３】
アクセサリ２０４は、コントローラ２１６、ホストＩ／Ｏインターフェース２１８、記憶デバイス２２０、及び受信機２２２を含むことができる。
【００３４】
コントローラ２１６は、マイクロプロセッサ又はマイクロコントローラなどの１以上の集積回路として実装されうる。様々な実施例において、コントローラ２１６は、アクセサリ２０４のオペレーションを制御することができる。また、コントローラ２１６は、ホストＩ／Ｏインターフェース２１８を介してホストデバイス（例えば、ホストデバイス２０２）との通信を管理することもできる。詳細は後述するが、一実施例において、コントローラ２１６は、アクセサリ２０４が遠隔制御信号の学習や処理を容易にする学習モード又は処理モードで作動するよう生じさせることができる。
【００３５】
ホストＩ／Ｏインターフェース２１８は、アクセサリ２０４とホストデバイス２０２との間の様々な信号を運ぶよう構成された多数の信号パスを含むことができる。一実施例において、ホストＩ／Ｏインターフェース２１８は、ｉＰｏｄ（Ｒ）及びｉＰｈｏｎｅ（Ｒ）に使用されるコネクタに対応する３０ピンコネクタを含む。代替的に又は付加的に、ホストＩ／Ｏインターフェース２１８は、異なるコネクタ又は無線インターフェース（例えば、Ｂｌｕｅｔｏｏｔｈ（Ｒ）など）を含むことができる。
【００３６】
様々な実施例において、ホストＩ／Ｏインターフェース２１８及びアクセサリＩ／Ｏインターフェース２１４は、アクセサリ２０４及びホストデバイス２０２が“接続された”又は“非接続にされた”状態になるよう許可される。ここで用いられるのは、アクセサリ２０４及びホストデバイス２０２は、ホストＩ／Ｏインターフェース２１８及びアクセサリＩ／Ｏインターフェース２１４間の通信チャンネルがオープン（開）のときはいつでも接続される。これとは反対に、ホストＩ／Ｏインターフェース２１８及びアクセサリＩ／Ｏインターフェース２１４間の通信万能非同期送受信機チャンネルがクローズ（閉）のときはいつでも、アクセサリ２０４及びホストデバイス２０２は非接続にされる。接続は、（例えば、アクセサリ２０４とホストデバイス２０２のそれぞれにマッチするコネクタ間での）物理的な連結によって、又は、ケーブルなどの間接的な接続によって、又は無線通信チャンネルの確立によって実現される。同様に、非接続は、物理的な分離、ケーブルの非接続、アクセサリ２０４若しくはホストデバイス２０２の停止、又は無線通信チャンネルをクローズすることによって実現される。
【００３７】
ＵＳＢ、ＦｉｒｅＷｉｒｅ（Ｒ）、万能非同期送受信機（ＵＡＲＴ）などの有線チャンネル、及びＢｌｕｅｔｏｏｔｈ、ＷｉＦｉ、ＩＲなどの無線チャンネルなど、ホストＩ／Ｏインターフェース２１８及びアクセサリＩ／Ｏインターフェース２１４間で様々な通信チャンネルが用いられる。幾つかの実施例において、アクセサリ２０４とホストデバイス２０２間のマルチ通信が同時にオープンされる。さらにホストデバイス２０２はマルチアクセサリに同時に接続され、各アクセサリが異なる通信チャンネルを使用することができる。
【００３８】
記憶デバイス２２０は、磁気ディスク、フラッシュメモリ、及び／又は他の不揮発性記憶媒体を用いながら実装されうる。幾つかの実施例において、記憶デバイス２２０は、取り外し不可能なハードディスクドライブやフラッシュメモリドライブなどの非リムーバブル記憶コンポーネントを含むことができる。他の実施例では、記憶デバイス２２０は、フラッシュメモリカードなどのリムーバブル記憶媒体を含むことができる。記憶デバイス２２０は、アクセサリ２０４によって使用される任意のプログラム及び／又はデータのためのストレージを提供することができる。一実施例において、記憶デバイス２２０は、遠隔制御信号を示す情報及びこれらの制御信号を示す情報に関連するデータを記憶することができる。
【００３９】
受信機２２２は、無線信号などの信号を遠隔制御（例えば、遠隔制御２０６）から受信するための１以上の信号受信コンポーネントを含む。一実施例において、受信機２２２は、ＩＲダイオード及びＩＲ復調器（デモジュレータ）などの、ＩＲ信号を受信するために詳細に適合されたコンポーネントを含むことができる。これらの実施例においては、ＩＲダイオードはＩＲ信号をキャプチャーし、そしてＩＲ復調器はこのキャプチャーした信号から搬送周波数を除去することができる。ＩＲ復調器からの出力（例えば、二乗波形）は、その後に、ＩＲ信号を示す情報を生成するためにコントローラ２１６によって処理される。代替の実施例では、受信機２２２は他のタイプの信号（例えば、ＲＦ信号）を受信するコンポーネントを含むことができる。
【００４０】
遠隔制御２０６は、ユーザ入力デバイス２２４、コントローラ２２６、及び送信機２２８を含むことができる。
【００４１】
ユーザ入力デバイス２２４は、ユーザにより遠隔制御２０６に入力を提供できる多数のデバイスのいずれかである。例えば、そのようなユーザ入力デバイスは、スクロールホイール、ボタン、キーボード、トラックボール、タッチパッド、マイクロフォン、スピーカ、タッチスクリーンディスプレイなどを含むことができる。様々な実施例において、ユーザはユーザ入力デバイス２２４上の１以上の制御をアクティブにすることができ、これにより、遠隔制御２０６が信号受信機（例えば、受信機２２２）に信号を送信させる。
【００４２】
コントローラ２２６は、マイクロプロセッサ又はマイクロコントローラなどの１以上の集積回路として実装されうる。様々な実施例において、コントローラ２２４はプログラムコードを実行させ、ユーザ入力デバイスを介して受信したユーザ入力を処理し、送信機２２８を介して送信される適切な信号を決定することができる。
【００４３】
送信機２２８は、無線信号などの送信信号を信号受信機（例えば、受信機２２２）に送信するための１以上の信号送信コンポーネントを含むことができる。一実施例において、送信機２２８は、ＩＲ信号を送信するのにうまく適合したコンポーネントを含む。代替の実施例においては、送信機２２８は、他のタイプの信号（例えば、ＲＦ信号）を送信するコンポーネントを含むことができる。
【００４４】
ここで、システム２００は、例示であって本発明の実施態様を制限するものではないことを理解されたい。例えば、ホストデバイス２０２、アクセサリ２０４、遠隔制御２０６は、他の能力を有したり、ここでは詳細には述べられていない他のコンポーネントを含みうる。当業者であれば、多くの変形、修正及び代替を認識するであろう。
【００４５】
一実施例において、ホストデバイス２０２及びアクセサリ２０４は、通信プロトコルに従ってコマンド及びデータを交換することにより通信することができる。そのようなプロトコルの一例は、Ａｐｐｌｅ（Ｒ）社により開発されたｉＰｏｄ（Ｒ）アクセサリプロトコル（ｉＡＰ）である。一実施態様によれば、このプロトコルはホストデバイス２０２とアクセサリ２０４間で送信されたメッセージに関するフォーマットを定義することができる。例えば、そのプロトコルは、各メッセージがヘッダー及びオプショナルペイロードをもつパケットで送られることを指定することができる。ヘッダーはスタートインジケータ、パケット長、及び受信者によって処理されるコマンドなどの基本情報を提供することができる。ペイロードはコマンドに関連するデータを提供することができる。幾つかの実施例では、関連データの量は各コマンドで異なり、そして幾つかのコマンドは可変長のペイロードにもできる。
【００４６】
別の実施態様によれば、プロトコルは多数の“用語”を定義することができる。ここで、“用語”は一般的には関連コマンドのグループを指す。一実施例において、コマンドは、そのコマンドが属する用語を識別する第１バイトによって、そしてその用語内の特定のコマンドを識別する第２バイトによって唯一に識別される。他のコマンド構造が用いられることもある。アクセサリを接続することができるすべてのアクセサリ、又はすべてのホストデバイスは、プロトコル又は特定の用語のあらゆるコマンド内に定義された各用語をサポートすることを要求しない（例えば、各デバイスは所与の用語の異なるバリエーションを使用してもよい）。
【００４７】
一実施例において、プロトコルは、ホストデバイス２０２とアクセサリ２０４間の或るコアな通信機能を可能にする一般用語を含むことができる。例えば、一般用語は、ホストデバイス２０２及びアクセサリ２０４により、互いにそれらを識別し、そして（必要に応じて）他の用語のそれぞれがサポートしたり、且つ、他のデバイスそれぞれの能力が接続最中に使用する意図があるといった各能力についての情報を提供することができるコマンドを含むことができる。また、一般用語は、ホストデバイス２０２がサポートされたアイデンティティ（識別）やアクセサリ２０４の能力を検証する（又はその逆も同じ）ために使用することができる認証コマンドを含むことができる。幾つかのケースでは、アクセサリ２０４（又はホストデバイス２０２）は、認証が不成功であれば、或るコマンド又は用語を呼び出すことからブロックされる。
【００４８】
さらに別の実施例では、プロトコルは１以上のアクセサリ用語を含むことができ、それはホストデバイスと様々に異なるクラスのアクセサリとの間の通信をサポートするのに使用される。そのようなクセサリの例には、ＲＦチューナ用語、ボタン状態用語、拡大インターフェース用語などを含む。特定の実施例において、プロトコルは遠隔制御信号を学習し処理するためのホストデバイス２０２及びアクセサリ２０４間の相互作用をサポートするアクセサリ用語を含むことができる。この用語に含まれるコマンドは、全般的には、後述の図３〜６に関して述べるオペレーションを反映することができる。
【００４９】
上述したプロトコル（及び関連する用語及びコマンド）は、例示であって本発明の実施態様を制限するものではないことを理解されたい。例えば、コマンドの幾つかは、他のコマンド又はコマンドの組み合わせと置き換えられうる。また、用語及び／又はコマンドの幾つかは、特定のホストデバイス又はアクセサリによってサポートされないこともある。当業者であれば、多くの変形、修正及び代替を認識するであろう。
【００５０】
上述したとおり、本発明の実施例は、ホストデバイス（例えば、図２のホストデバイス２０２）及びアクセサリ（例えば、アクセサリ２０４）による遠隔制御信号の学習と処理を容易にする技術を提供する。或る実施例では、ホストデバイス及びアクセサリは学習モードで機能し、そこではホストデバイスが様々に異なる遠隔制御からの遠隔制御信号を学習する（そしてその結果、ホストデバイスは遠隔に操作される）。例えば、幾つかの実施例において、ホストデバイスは、ホストデバイス又はアクセサリと相互作用するように詳細には設計されていなかった遠隔制御からの信号を学習することができる。他の実施例では、ホストデバイス及びアクセサリは処理モードで機能し、そこではホストデバイス及びアクセサリは２つのデバイス間で移動されるデータの量を最小化しながら、学習した遠隔制御信号を処理することができる。
【００５１】
図３は、本発明の実施例に従った学習モード中のオペレーティングの間にホストデバイス２０２によって実行される処理３００のフロー図である。処理３００は、ホストデバイス２０２によって、ハードウェア、ソフトウェア、又はそれらの組み合わせで実装される。ソフトウェアの場合、処理３００は機械可読式の記憶媒体に記憶されたプログラムコードとしてエンコードされる。
【００５２】
ブロック３０２で、ホストデバイス２０２は、ホストデバイスに接続されるアクセサリ（例えば、アクセサリ２０４）との通信を確立することができる。一実施例において、これは、上述した通信プロトコルの一般用語を用いてアクセサリ２０４を識別及び認証することを含むことができる。
【００５３】
ブロック３０４で、ホストデバイス２０２は、アクセサリ２０４からの能力情報を取得することができる。例えば、ホストデバイス２０２は、アクセサリ２０４が遠隔制御信号を受信する受信機を含むか否か、アクセサリ２０４が上述した学習及び処理モードにおいてオペレーティングの能力があるか否かを示す情報を得ることができる。幾つかの実施例において、処理３００は、アクセサリ２０４がこれら特定の能力を有していない場合には、ホストデバイス２０２によって中止されることもある。
【００５４】
ブロック３０６で、ホストデバイス２０２は学習モードに入り、そして学習モードに入ることをアクセサリ２０４に通知することができる。幾つかの実施例において、デバイスのユーザによって、ホストデバイス２０２を学習モードへ相互に置くことができる。例えば、ユーザはホストデバイス２０２（又はアクセサリ２０４若しくは遠隔制御）の入力デバイスを、ホストデバイス２０２が学習モードに遷移するよう指示するやり方を用いて操作することができる。他の実施例では、ホストデバイス２０２は、所定のイベント又は所定の状態の検出が発生すると、学習モードに自動的に遷移させることができる。
【００５５】
学習モードになると、ホストデバイス２０２は、遠隔制御信号をホストデバイスの機能に関連づけることにおいてユーザをガイドするよう設計された１以上のユーザインターフェースを生成することができる。例えば、ブロック３０８で、ホストデバイス２０２は、ユーザの遠隔制御（例えば、遠隔制御２０６）上でボタン（又は他の入力制御）と関連づけられる特定の機能をユーザが選択するよう促す第１のユーザインターフェースを生成することができる。詳細にいうと、第１のユーザインターフェースは、機能のリストを提示し、ユーザがこのリストから一つの機能を選択できるようにする。幾つかの実施例において、選択可能な機能のリストは静的である。他の実施例では、選択可能な機能のリストはホストデバイス２０２のアプリケーション内容に基づき変化させることができる。例えば、ホストデバイス２０２がメディアプレーヤアプリケーションを実行しながら学習モードに入った場合、選択可能な機能のリストは“再生”、“停止”、“巻き戻し”、“早回し”、及び／又はメディア資産を再生するときに典型的に用いられる他の機能を含むことができる。他の例として、ホストデバイス２０２がＷｅｂブラウザアプリケーションを実行しながら学習モードに入った場合、選択可能な機能のリストは“ホーム”、“後”、“前”、“リフレッシュ”、及び／又はウェブページをナビゲートするのに典型的に用いられる他の機能を含むことができる。
【００５６】
ブロック３１０で、ホストデバイス２０２はユーザから機能の選択を受信することができる。その後、ホストデバイス２０２は選択した機能に関連づけられるべき遠隔制御２０６上のボタンをアクティブにするようユーザを促す第２のユーザインターフェースを生成することができる（ブロック３１２）。様々な実施例において、処理３００は、ユーザが遠隔制御２０６上のボタンをアクティブにするまでブロック３１２で待つことができる。幾つかのケースでは、ユーザが所定の時間内にボタンをアクティブにしなければ、タイムアウトメッセージをユーザに表示し、処理はブロック３０８に戻ることができる。
【００５７】
ブロック３０８及び３１２で述べたユーザインターフェースは例示であり、様々なやり方で修正されることを理解されたい。例えば、幾つかの実施例では、ホストデバイス２０２はユーザによってブロック３０８ごとに特定の機能を選択するよう促される必要はない。むしろ、ホストデバイス２０２は、機能リスト内の各機能の遠隔制御ボタンを順序どおりに単にアクティブにするよう促すことができる。さらに、ユーザインターフェースは多くの異なる方法でユーザに提示されうる。例えば、一実施例において、ユーザインターフェースは、図１に示したタッチスクリーンディスプレイ１０８などのホストデバイス２０２上のディスプレイを介して、ユーザに視覚的に提示される。別の実施例では、ユーザインターフェースは、ホストデバイス２０２又はアクセサリ２０４と通信的に接続した外部ディスプレイ装置を介してユーザに視覚的に提示されうる。さらに別の実施例では、ユーザインターフェースは、ホストデバイス２０２内に組み込まれたスピーカー、アクセサリ２０４、又は外部筐体などを介してユーザに音声的に提示されうる。
【００５８】
ブロック３１２でユーザが促されたことに反応して遠隔制御ボタンをアクティブにすれば、ボタンアクティベーションイベントに対応する信号が遠隔制御２０６からアクセサリ２０４に送信される。その後、ホストデバイス２０２はアクセサリ２０４からの信号を示す情報を受信し、その信号を示す情報を選択した機能と関連づける（ブロック３１４及び３１６）。この方法において、ホストデバイス２０２は、特定の信号が遠隔制御２０６から再び送信されるときはいつでも、選択した機能が実行されるべきであることを学習することができる。
【００５９】
ブロック３１４でアクセサリ２０４から受信した信号を示す情報が多数の異なるフォームをとり、遠隔制御２０６によって送信される信号のタイプ及び／又はアクセサリ２０４の実装に基づき変化することができる。例えば、信号がＩＲ信号であれば、その信号を示す情報は、ＩＲ信号の波形（例えば、二乗波）をエンコーディングする一連のエッジタイム又はタイムサンプル、又はＩＲ信号のＩＲプロトコルタイプ及び関連するプロトコルコマンド若しくはデータ文字列を含むことができる。その信号を示す情報の他のタイプ（例えば、本技術分野で既知なもの）が実装及び使用されうる。
【００６０】
ブロック３１８で、ホストデバイス２０２は、信号を示す情報及び選択した機能に関連する識別子を生成することができる。あるいはまた、ホストデバイス２０２は所定の識別子リストからその識別子を選択する。その後、生成した又は選択した識別子は記憶される。一実施例において、識別子はその関連した信号を示す情報よりもサイズが実質的に小さくすることができる。上述したように（及び図５及び６に関連して詳細を後述するとおり）、比較的小さなサイズの識別子は、ホストデバイス２０２及びアクセサリ２０４による学習した遠隔制御信号の処理を容易にすることができる一方で、２つのデバイス間で送信されるデータ量を削減又は最小化する。
【００６１】
ブロック３２０で、ホストデバイス２０２はこの識別子をアクセサリ２０４に送信することができる。次に、処理３００はブロック３０８に戻り、例えば、ホストデバイス２０２は遠隔制御２０６上のボタンに関連づけられた他の機能をユーザが選択するように促す。処理３００は、例えば、ホストデバイス２０２及びアクセサリ２０４が非接続になるまで、又はユーザがホストデバイス２０２を学習モードから出るよう指示するまで、無限に続くことができる。
【００６２】
図４は、本発明の実施例に従った学習モードの間にアクセサリ２０４によって実行される処理４００のフロー図である。一実施例において、処理４００は、処理３００がホストデバイス２０２によって実行される間に、アクセサリ２０４によって実行することができる。処理４００は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実装される。ソフトウェアの場合、処理４００は機械可読式の記憶媒体に記憶されたプログラムコードとしてエンコードされる。
【００６３】
ブロック４０２で、アクセサリ２０４は、アクセサリに接続されるホストデバイス（例えば、ホストデバイス２０２）との通信を確立することができる。一実施例において、これは、上述した通信プロトコルの一般用語を用いてホストデバイス２０２を識別及び認証することを含むことができる。
【００６４】
ブロック４０４で、アクセサリ２０４は、能力情報をホストデバイス２０２へ提供することができる。例えば、アクセサリ２０４は、アクセサリ２０４が遠隔制御信号を受信する受信機を含むか否か、アクセサリ２０４が上述した学習及び処理モードにおいてオペレーティングの能力があるか否かを示すことができる。幾つかの実施例において、処理４００は、アクセサリ２０４がこれら特定の能力を有していない場合には、ホストデバイス２０２又はアクセサリ２０４によって中止されることもある。
【００６５】
ブロック４０６で、アクセサリ２０４は学習モードに入ることができる。一実施例において、アクセサリ２０４は、ホストデバイス２０２からのコマンド（例えば、処理３００のブロック３０６で送信された通知コマンド）に応答して学習モードに入ることができる。あるいはまた、アクセサリ２０４はユーザによって学習モードへ手動で置かれたり、所定のイベント又は所定の状態の検出が発生すると、学習モードに自動的に遷移させられたりすることができる。
【００６６】
学習モードになると、アクセサリ２０４は、遠隔制御２０６などの遠隔制御から信号を受信することができる（ブロック４０８）。処理３００に関して述べたとおり、受信した信号は、ブロック３１２で提示された促されに応じてユーザによって開始されるボタンアクティベートイベントに対応することができる。
【００６７】
ブロック４１０で、アクセサリ２０４は受信した信号を生成し、そして信号を示す情報を生成する。例えば、その信号がＩＲ信号であれば、その信号はＩＲ信号の波形をエンコーディングする一連のエッジタイム又はタイムサンプリング、又はＩＲ信号のＩＲプロトコルタイプ及び関連するプロトコルコマンド若しくはデータ文字列を含むことができる。信号を示す情報の他のタイプ（例えば、本技術分野で既知なもの）が実装及び使用されうる。
【００６８】
信号を示す情報が生成されると、アクセサリ２０４はその信号を示す情報をホストデバイス２０２に送信することができる（ブロック４１２）。その結果、ホストデバイス２０２は、信号が遠隔制御２０６から受信され、そしてブロック３１０でユーザによって選択された機能に関連すべきであることに気づくことができる。
【００６９】
ブロック４１４で、アクセサリ２０４は、信号を示す情報及び選択した機能に関連する識別子をホストデバイス２０２から受信することができる。様々な実施例において、この識別子は、ブロック３１８でホストデバイス２０２によって生成された識別子に対応する。アクセサリ２０４は識別子及び信号を示す情報を記憶することができる（ブロック４１６）。図５及び６に関連して詳細は後述するが、この記憶された識別子／信号を示す情報に関する情報は処理モードにおいてアクセサリ２０４によって使用され、同じ信号が再度受信される時を決定し、ホストデバイス２０２に通知する。
【００７０】
識別子及び信号を示す情報が記憶されると、処理４００はブロック４０８に戻ることができる。例えば、アクセサリ２０４は、遠隔制御２０６から、学習されるべき別の信号を受信することができる。処理４００は、例えば、ホストデバイス２０２及びアクセサリ２０４が非接続になるまで、又はユーザがホストデバイス２０２（又はアクセサリ２０４）に学習モードから出るよう指示するまで無限に続くことができる。
【００７１】
処理３００及び４００は例示であり、応用及び修正が可能であることを理解されたい。順序づけられたステップは並行して実行されることもあり、ステップの順番は変えられることも可能である。また、ステップは修正・結合・追加・削除されることもある。例えば、幾つかの実施例において、ホストデバイス２０２は、処理３００のブロック３２０で、遠隔制御信号の第２の信号を示す情報をアクセサリ２０４に送信することができる。この第２の信号を示す情報は、ブロック３１４でアクセサリ２０４からホストデバイス２０２によって受信された第１の信号を示す情報と同一であってもよいし、なくてもよい。アクセサリ２０４は、処理４００のブロック４１６で識別子とともに第２の信号を示す情報を記憶することができる。
【００７２】
第２の信号を示す情報を送信することによって、ホストデバイス２０２は、幾つかの実施例において、処理モードのときにその特定の信号が再び受信されるかどうかを決定するやり方に関する追加の詳細をアクセサリ２０４に提供する。例えば、第２の信号を示す情報は、新たに受信した信号とその第２信号を示す情報を比較するためのエラー許容を示すエラー許容情報を含むことができる。２つの信号を示す情報の差異が特定の許容内にあれば、アクセサリ２０４はその２つの信号を示す情報が同一であるとみなし、その結果をホストデバイス２０２に通知することができる。
【００７３】
図５は、本発明の実施例に従った処理モードの間にホストデバイス２０２によって実行される処理５００のフロー図である。処理５００は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実装される。ソフトウェアの場合、処理５００は機械可読式の記憶媒体に記憶されたプログラムコードとしてエンコードされる。
【００７４】
ブロック５０２及び５０４で、ホストデバイス２０２は、アクセサリ（例えば、アクセサリ２０４）との通信を確立し、そして処理３００のブロック３０２及び３０４と同様の方法でアクセサリから能力情報を取得することができる。
【００７５】
ブロック５０６で、ホストデバイス２０２は、処理モードに入り、処理モードに入ったことをアクセサリ２０４に通知することができる。幾つかの実施例において、ホストデバイス２０２はデバイスのユーザによって処理モードへ手動で置かれたりする。例えば、ユーザは、ホストデバイス２０２の入力デバイス（又はアクセサリ２０４若しくは遠隔制御）を、ホストデバイス２０２を処理モードに遷移させる方法で操作することができる。他の実施例において、ホストデバイス２０２は、ホストデバイス２０２が学習モードで操作していないならば、デフォルトによって処理モードで操作することができる。
【００７６】
ブロック５０８で、ホストデバイス２０２は、学習モードでアクセサリに以前に送信された識別子を（例えば、処理３００のブロック３２０）アクセサリ２０４から受信することができる。一般的に言えば、この識別子の受信は、学習モードにおいて識別子と関連づけられた遠隔制御信号が処理モードにおいてアクセサリ２０４によっていま再度受信されたということを示すものである。ここで、アクセサリ２０４は、関連づけられた信号をブロック５０８での識別子とともに送信する必要はないことを理解されたい。むしろ、識別子のみの送信が、信号がアクセサリ２０４によって受信されることをホストデバイス２０２が認識する上で十分なのである。識別子を受信すると、ホストデバイス２０２はその識別子に関連づけられた機能を実行することができる。（ブロック５１０）。
【００７７】
幾つかの実施例において、ホストデバイス２０２は、機能が実行されたことを示す応答承認（acknowledgement）をアクセサリ２０４に送信することができる（ブロック５１２）。処理５００はブロック５０８に戻ることができる。例えば、ホストデバイス２０２は、追加の遠隔制御信号に対応する追加識別子をアクセサリ２０４から受信する。処理５００は、例えば、ホストデバイス２０２が非接続になるまで、又はユーザがホストデバイス２０２を処理モードから出るよう指示するまで、無限に続くことができる。
【００７８】
図６は、本発明の実施例に従った処理モードの間にアクセサリ２０４によって実行される処理６００のフロー図である。一実施例において、処理６００は、処理５００がホストデバイス２０２によって実行されている間にアクセサリ２０４によって実行されうる。処理６００は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実装される。ソフトウェアの場合、処理６００は機械可読式の記憶媒体に記憶されたプログラムコードとしてエンコードされる。
【００７９】
ブロック６０２及び６０４で、アクセサリ２０４は、ホストデバイス（例えば、ホストデバイス２０２）との通信を確立し、そして処理４００のブロック４０２及び４０４と同様の方法でホストデバイスに能力情報を提供することができる。
【００８０】
ブロック６０６で、アクセサリ２０４は処理モードに入る。一実施例において、アクセサリ２０４は、ホストデバイス２０２からのコマンド（例えば、処理５００のブロック５０６で送信された通知コマンド）に応答して、処理モードに入ることができる。あるいはまた、アクセサリはユーザによって処理モードへ手動で置かれたり、又はアクセサリが学習モードで操作していないならば、デフォルトによって処理モードで操作することができる。
【００８１】
処理モードになると、アクセサリ２０４は遠隔制御２０６などの遠隔制御から信号を受信することができる（ブロック６０８）。様々な実施例において、信号は、以前にボタンに関連づけられた機能（例えば、学習モードにおいて）を実行するために、ユーザによって開始されるボタンアクティベートイベントに対応させることができる。その後、アクセサリ２０４は受信した信号を示す情報を生成し、そしてその信号を示す情報と処理４００のブロック４１６で記憶した信号を示す情報（ブロック６１０及び６１２）とを比較することができる。この方法において、アクセサリ２０４は、受信した信号が前に学習した遠隔制御信号と同一（又は実質的に類似する）かを決定することができる。
【００８２】
受信信号を示す情報に一致する記憶された信号を示す情報が見つかった場合、アクセサリ２０４はその記憶した信号を示す情報に関連づけられた識別子をホストデバイス２０２に送信することができる（ブロック６１４及び６１８）。その結果、アクセサリ２０４は識別子に関連づけられた機能が実行されるべきであることをホストデバイス２０２に通知することができる。アクセサリ２０４は（完全な信号というよりも）比較的小さなサイズの識別子をホストデバイス２０２に送信することだけが必要であるため、アクセサリとホストデバイス間で送信されるデータ量は比較的低い。したがって、アクセサリ２０４及びホストデバイス２０２は、２つのデバイス間の通信チャンネルを飽和させることなく処理５００及び６００ごとに学習した遠隔制御信号を処理することができる。
【００８３】
記憶された信号を示す情報のどれも受信した信号を示す情報と一致しない場合、アクセサリ２０４はその信号を単に無視する（ブロック６１４及び６１６）。幾つかの実施例において、アクセサリ２０４は信号が無視されたことを（例えば、エラー記号若しくは光を表示したり可聴音を発生するなど）、ユーザに示すことができる。いずれかのケース（ブロック６１６、又はブロック６１８）において、処理６００はブロック６０８に戻る。例えば、アクセサリ２０４は遠隔制御２０６から処理のための別の信号を受信することができる。処理６００は、例えば、ホストデバイス２０２及びアクセサリ２０４が非接続になるまで、又はユーザがホストデバイス２０２を処理モードから出るよう指示するまで、無限に続くことができる。
【００８４】
処理５００及び６００は例示であり、本発明の実施例を制限するものではないことを理解されたい。順序づけられたステップは並行して実行されることもあり、ステップの順番は変えられることも可能である。また、ステップは修正・結合・追加・削除されることもある。
【００８５】
本発明は特定の実施例に関して述べてきたが、当業者であれば様々な修正が可能であることを認識するであろう。幾つかの実施例において、回路、プロセッサ及び／又はホストデバイス及び／又はアクセサリの他のコンポーネントがここで述べた様々なオペレーションを実行するよう構成される。当業者は、インプリメンテーションに依存して、このようなコンフィグレーションが特定のコンポーネントを設計し、設定し、相互接続し、及び／又はプログラミングすることを通じて実現できることを理解するであろう。また、コンフィグレーションされたコンポーネントは異なるオペレーションのために再構成されてもされなくてもよい。例えば、プログラム可能なプロセッサは適当な実行可能なコードによって構成され、専用の論理回路が論理ゲート及び他の回路要素などを上手く接続することによって構成されうる。さらに、上述した実施例は特定のハードウェア又はソフトウェアコンポーネントを参照するものであるが、当業者であれば、ハードウェア及び／又はソフトウェアコンポーネントの異なる組み合わせも用いられること、そしてハードウェアで実装されるとして述べた特定のオペレーションがソフトウェアで実装されること（逆も同様）を認識するであろう。
【００８６】
ここで述べた幾つか又はすべての特徴を組み込んだコンピュータプログラムが様々な機械可読式の記憶媒体上でエンコードされるものである。その適した記憶媒体には、磁気ディスク（ハードディスクを含む）又はテープ、コンパクトディスク（ＣＤ）又はＤＶＤ（デジタル多用途ディスク）、フラッシュメモリなどの光記憶媒体を含む。プログラムコードで符号化された機械可読式の記憶媒体は、互換性あるデバイスでパッケージされたり、又は他のデバイスとは分離して提供されることも可能である。さらに、プログラムコードは、インターネットを含む様々なプロトコルに準拠しながら有線、光、及び／又は無線ネットワークを介してエンコードされたり送信されたりする。これにより、配信（例えば、インターネットダウンロード）が可能になる。
【００８７】
したがって、本発明は特定の実施例に関して述べてきたものであるが、本発明は添付の特許請求の範囲内でのあらゆる修正及び均等を網羅することを意図されていることに留意されたい。
【図１】
0005349685.tif 000002
【図２】
0005349685.tif 000003
【図３】
0005349685.tif 000004
【図４】
0005349685.tif 000005
【図５】
0005349685.tif 000006
【図６】
0005349685.tif 000007