(57)【要約】  ホストデバイスから受信したアクセサリファームウェアイメージを用いてアクセサリを起動する方法、システム、及び装置が記載されている。ホストデバイスがアクセサリとホストデバイスとの間の接続を検出すると、そのホストデバイスは、アクセサリにアクセサリ識別情報を求める要求を送り得る。アクセサリは、それに応じてホストデバイスにアクセサリ識別情報を送り得る。ホストデバイスは、そのアクセサリに適したアクセサリファームウェアイメージを選択し、アクセサリにアクセサリファームウェアイメージを送信し得る。アクセサリファームウェアイメージは、アクセサリがホストデバイスとアプリケーションデータを交換できるようにする目的でアクセサリが使用できる情報を含み得る。【選択図】  図３
2015531132.tif 000002
【特許請求の範囲】
【請求項１】
自身に記憶されたホストファームウェアイメージと複数のアクセサリファームウェアイメージとを含むホストデバイスを使用してアクセサリを起動する方法であって、
前記ホストデバイスが前記ホストデバイスと前記アクセサリとの間の接続を検出するステップと、
前記ホストデバイスが前記アクセサリにアクセサリ識別情報を求める要求を送るステップと、
前記ホストデバイスが前記アクセサリから前記アクセサリ識別情報を受信するステップと、
前記アクセサリ識別情報に少なくとも部分的に基づいて、前記ホストデバイスが前記複数のアクセサリファームウェアイメージの中からアクセサリファームウェアイメージを選択するステップであって、前記選択されたアクセサリファームウェアイメージが、前記アクセサリが前記ホストデバイスとアプリケーションデータを交換できるようにする目的で、前記アクセサリによって使用可能な情報を含むステップと、
前記ホストデバイスが前記選択されたアクセサリファームウェアイメージを前記アクセサリに送信するステップであって、前記選択されたアクセサリファームウェアイメージが前記アクセサリのブートシーケンス中に前記アクセサリによって実行されるステップと、
を含むことを特徴とする方法。
【請求項２】
前記選択されたアクセサリファームウェアイメージを送信する前に前記ホストデバイスが前記アクセサリにアクセサリブートローダを送信するステップであって、前記アクセサリブートローダが、前記選択されたアクセサリファームウェアイメージを前記アクセサリのランダムアクセスメモリにロードする目的で前記アクセサリによって実行される、ステップを更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ホストデバイスに記憶された前記複数のアクセサリファームウェアイメージの各々が、前記ホストファームウェアイメージに部分的に基づく、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記ホストデバイスに記憶された前記複数のアクセサリファームウェアイメージの各々が、前記ホストファームウェアイメージと互換性のあるバージョンに維持される、ことを特徴とする請求項３に記載の方法。
【請求項５】
前記選択されたアクセサリファームウェアイメージが、前記ホストデバイスと前記アクセサリとの間のユニバーサルシリアルバス（ＵＳＢ）リンクを介して送信され、前記アクセサリ識別情報がＵＳＢ記述子である、ことを特徴とする請求項１に記載の方法。
【請求項６】
アクセサリを起動する方法であって、
前記アクセサリが前記アクセサリに連結されたホストデバイスからアクセサリ識別情報を求める要求を受信するステップと、
前記アクセサリが前記ホストデバイスに前記アクセサリ識別情報を送るステップと、
前記アクセサリが前記ホストデバイスから、前記アクセサリ識別情報と関連付けられたアクセサリファームウェアイメージを受信するステップと、
前記アクセサリを起動するために、前記アクセサリが前記アクセサリファームウェアイメージを実行するステップと、
を含み、
前記ホストデバイスから前記アクセサリファームウェアイメージを受信する前に、前記アクセサリがいかなるアクセサリファームウェアイメージも記憶しない、ことを特徴とする方法。
【請求項７】
前記アクセサリが前記アクセサリファームウェアイメージ内の情報を用いて前記アクセサリでオペレーティングシステムを確立するステップを更に含む、ことを特徴とする請求項６に記載の方法。
【請求項８】
前記アクセサリファームウェアイメージを受信する前に前記アクセサリが前記ホストデバイスからアクセサリブートローダを受信するステップと、
前記アクセサリが、前記アクセサリブートローダを用いて前記アクセサリファームウェアイメージを前記アクセサリのランダムアクセスメモリにロードするステップと、を更に含む、ことを特徴とする請求項６に記載の方法。
【請求項９】
前記アクセサリが１つ以上の不揮発性メモリデバイスを備え、前記アクセサリファームウェアイメージが、前記１つ以上の不揮発性メモリデバイスの各々のメモリ容量よりも大きなサイズのものである、ことを特徴とする請求項６に記載の方法。
【請求項１０】
前記選択されたアクセサリファームウェアイメージが前記ホストデバイスと前記アクセサリとの間のユニバーサルシリアルバス（ＵＳＢ）リンクを介して送信され、前記アクセサリ識別情報がＵＳＢ記述子である、請求項６に記載の方法。
【請求項１１】
プロセッサと、
前記プロセッサに連結された記憶構成要素であって、前記ホストデバイスと関連付けられたホストファームウェアイメージと、各々が少なくとも１つのアクセサリと関連付けられた複数のアクセサリファームウェアイメージと、を含む複数のファームウェアイメージを記憶する記憶構成要素と、を備えるホストデバイスであって、
前記記憶構成要素と連携する前記プロセッサが、
アクセサリと前記ホストデバイスとの接続を検出し、
前記アクセサリからアクセサリ識別情報を受信し、
前記アクセサリ識別情報に少なくとも部分的に基づいて前記複数のアクセサリファームウェアイメージの中からアクセサリファームウェアイメージを選択し、これにおいて前記選択されたアクセサリファームウェアイメージが前記アクセサリのブートシーケンス中に前記アクセサリによって使用可能であり、
前記選択されたアクセサリファームウェアイメージを前記アクセサリに通信するように構成されている、ことを特徴とするホストデバイス。
【請求項１２】
前記選択されたアクセサリファームウェアが、前記アクセサリにオペレーティングシステムを確立する目的で前記アクセサリによって使用可能である、ことを特徴とする請求項１１に記載のホストデバイス。
【請求項１３】
前記記憶構成要素と連携する前記プロセッサが、
前記選択されたアクセサリファームウェアイメージを前記アクセサリに通信する前に、前記アクセサリにアクセサリブートローダを通信するように更に構成されており、これにおいて前記ブートローダが、前記選択されたアクセサリファームウェアイメージを前記アクセサリのメモリにロードする目的で前記アクセサリによって使用可能である、ことを特徴とする請求項１１に記載のホストデバイス。
【請求項１４】
前記ホストデバイスに記憶された前記複数のアクセサリファームウェアイメージの各々が、前記ホストファームウェアイメージと互換性のあるバージョンに維持される、ことを特徴とする請求項１１に記載のホストデバイス。
【請求項１５】
前記選択されたアクセサリファームウェアイメージが、前記ホストデバイスと前記アクセサリとの間のユニバーサルシリアルバス（ＵＳＢ）リンクを介して通信され、前記アクセサリ識別情報がＵＳＢ記述子である、ことを特徴とする請求項１１に記載のホストデバイス。
【請求項１６】
コントローラと、
前記コントローラに連結されたランダムアクセスメモリ（ＲＡＭ）と、
前記コントローラに連結された不揮発性メモリと、を備えるアクセサリであって、
前記コントローラが、
ホストデバイスからアクセサリファームウェアイメージを受信し、
前記アクセサリファームウェアイメージを前記ＲＡＭに記憶し、
前記アクセサリがアプリケーションデータを前記ホストデバイスと交換できるようにする目的で前記ＲＡＭから前記アクセサリファームウェアイメージを実行するように構成されており、
前記ホストデバイスから前記アクセサリファームウェアイメージを受信する前に前記ＲＡＭ又は前記不揮発性メモリにいかなるアクセサリファームウェアイメージも記憶しない、ことを特徴とするアクセサリ。
【請求項１７】
前記コントローラが、
前記アクセサリファームウェアイメージを受信する前に、前記ホストデバイスからアクセサリブートローダを受信するように更に構成されており、これにおいて前記アクセサリブートローダが、前記アクセサリファームウェアイメージを前記アクセサリの前記ＲＡＭにロードする目的で前記アクセサリによって使用される、ことを特徴とする請求項１６に記載のアクセサリ。
【請求項１８】
前記アクセサリファームウェアイメージが、前記不揮発性メモリのメモリ容量よりも大きなサイズのものである、ことを特徴とする請求項１６に記載のアクセサリ。
【請求項１９】
前記アクセサリファームウェアイメージが、前記ホストデバイスと前記アクセサリとの間のユニバーサルシリアルバス（ＵＳＢ）リンクを介して受信される、ことを特徴とする請求項１６に記載のアクセサリ。
【請求項２０】
前記アクセサリ識別情報がＵＳＢ記述子である、ことを特徴とする請求項１９に記載のアクセサリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してコンピューティングデバイスと相互運用するアクセサリに関し、詳細には、かかるアクセサリの起動に関する。
【背景技術】
【０００２】
近年、ユーザが、メディアの記憶及び再生、ネットワーク化、ウェブ閲覧、電子メール、ワードプロセッシング、データ記憶、アプリケーション実行などの機能、並びに／又はその他任意のコンピューティング機能若しくは通信機能を実行する目的で使用できるコンピューティングデバイスの数が劇的に増えてきた。これらの機能を実行できるコンピューティングデバイスは、デスクトップコンピュータ、ゲーム機、メディアサーバ／プレーヤから、ラップトップ、ネットブック、タブレット、携帯電話、携帯情報端末（ＰＤＡ）、ポータブルメディアプレーヤ／リーダ、ポータブルゲーム機器などのポータブルコンピューティングデバイスに至るまで多岐にわたる。コンピューティングデバイスの例は、本出願の譲受人であるＡｐｐｌｅ  Ｉｎｃ．が製造及び販売している各種ｉＰｈｏｎｅ（登録商標）及びｉＰｏｄ（登録商標）モデルに加え、他の製造業者及び流通業者がそれぞれのブランド名で製造及び販売している他の電子機器を含む。
【０００３】
コンピューティングデバイスの増加に伴い、コンピューティングデバイスと併用するアクセサリもまた製作されるようになってきた。かかるアクセサリは、１つ以上のコネクタ、ポート、及び／又は通信インターフェースを使用してコンピューティングデバイスと通信することができる。かかるアクセサリは、コンピューティングデバイスの機能を制御する目的で使用することができるか、又はユーザ及び／若しくは環境と対話する目的でコンピューティングデバイスによって使用することができる。アクセサリは、電源が投入されたり、初めて電力供給を受けたりすると、ブートシーケンスを実行して、そのアクセサリがコンピューティングデバイスと相互運用する目的で使用するアクセサリソフトウェアをロードし得る。
【０００４】
しかし、アクセサリのアクセサリソフトウェアが、そのコンピューティングデバイス上で実行されているソフトウェアと常に互換性があるとは限らない。そのため、あるアクセサリが、そのアクセサリとコンピューティングデバイスとの間でのソフトウェア非互換性を理由に、そのコンピューティングデバイスとの相互運用を禁じられている場合があり得る。例えば、ユーザが、ポータブルメディアプレーヤ（例えばｉＰｏｄ（登録商標））又は携帯電話（例えばｉＰｈｏｎｅ（登録商標））など様々なコンピューティングデバイスとドッキングできるスピーカドックなどのアクセサリを所有していると仮定する。このユーザは、そのスピーカドックのソフトウェアと互換性のあるバージョンのモバイル機器ソフトウェアを実行している携帯電話を所有しているかもしれないし、同じユーザが、このスピーカドックのソフトウェアと互換性のない別バージョンのモバイル機器ソフトウェアを実行しているポータブルメディアプレーヤを所有しているかもしれない。かかるシナリオにおいて、ユーザは、この２つの機器間でのソフトウェア非互換性を理由に、ポータブルメディアプレーヤをこのスピーカドックとともに使用することを禁じられるかもしれない。
【０００５】
かかるソフトウェア非互換性を解消する１つの方法が、アクセサリ（上記事例におけるスピーカドック）、及び携帯電話、及びポータブルメディアプレーヤ全てが、互いに互換性のあるソフトウェアのバージョンで更新されるようにすることである。ただし、この方法は面倒であり、ユーザは、自身の全ての機器に、互換性のあるソフトウェアバージョンが絶えず入っているようにする必要がある。ユーザが多数の機器を所有している場合、かかる方式は極めて非現実的であり、これらの機器のユーザエクスペリエンスが大きく低下する。
【発明の概要】
【０００６】
本開示の各種実施形態には、ホストデバイス（例えばコンピューティングデバイス）からアクセサリに送信されるアクセサリファームウェアイメージで以ってアクセサリを起動する方法が記載されている。いくつかの実施形態では、アクセサリとホストデバイスとの間の接続が検出されると、ホストデバイスが、アクセサリ識別情報を求める要求をアクセサリに送ることによってアクセサリを認証し得る。アクセサリを認証すると、ホストデバイスは、そのアクセサリにとって好適なアクセサリファームウェアイメージを選択し、アクセサリファームウェアイメージをそのアクセサリに送信し得る。このアクセサリファームウェアイメージは、このアクセサリがホストデバイスとアプリケーションデータを交換し、相互運用できるようにする目的で、アクセサリが使用できる情報を含み得る。例えば、アクセサリファームウェアイメージは、アクセサリが、アプリケーション又は機器に固有のプロトコルを用いて、ホストデバイスと通信し、アプリケーションデータを交換する目的で実行できるオペレーティングシステム（ＯＳ）及び／又はアプリケーションプログラムなど、アクセサリがアクセサリソフトウェアをロードする目的で実行できるプログラムコードを含み得る。
【０００７】
本発明の各種実施形態によれば、アクセサリが、ホストデバイスからアクセサリファームウェアイメージを受信する前にそのアクセサリ内にアクセサリファームウェアイメージを記憶することはない。換言すれば、ホストデバイスからアクセサリファームウェアイメージを受信する前は、そのアクセサリの不揮発性メモリもその他いかなるメモリ（例えばランダムアクセスメモリ）も、アクセサリが自らを起動する目的で使用できる予めロードされたアクセサリファームウェアイメージを有しない。代わりにアクセサリは、ホストデバイスがアクセサリを認証したときにそのアクセサリに送るアクセサリファームウェアイメージを使用して起動し得る。
【０００８】
本発明の各種実施形態はまた、記憶された複数のファームウェアイメージを有し得るホストデバイスを提供する。ホストデバイスは、そのホストデバイスが自らを起動する目的で使用するホストファームウェアイメージと、ホストデバイスが相互運用可能な様々な種類のアクセサリを起動する目的で使用される１つ以上のアクセサリファームウェアイメージと、を有し得る。ホストデバイスは、アクセサリとの接続を検出すると、その特定のアクセサリ用の好適なアクセサリファームウェアイメージを選択し、そのアクセサリファームウェアイメージをアクセサリに送信して、そのアクセサリが、そのホストデバイスによって選択されたアクセサリファームウェアイメージを用いて起動できるようにし得る。
【０００９】
以降の詳細な説明を、添付の図面と併せて参照することにより、本明細書に開示された実施形態の性質及び利点に関する理解が深まるであろう。
【図面の簡単な説明】
【００１０】
【図１Ａ】本発明の一実施形態に係る、アクセサリが自身を起動する目的で使用できるホストデバイスに連結されたアクセサリを表す図である。
【図１Ｂ】本発明の別の実施形態に係る、アクセサリが自身を起動する目的で使用できるホストデバイスに連結されたアクセサリを表す図である。
【図２】本発明の一実施形態に係るホストデバイスに連結されたアクセサリのブロック図を表す図である。
【図３】本発明の一実施形態に係る、アクセサリのブートシーケンスにおけるアクセサリとホストデバイスとの間での情報の交換を示すダイアグラムを表す図である。
【図４】本発明の一実施形態に係る、ホストデバイスを使用してアクセサリを起動するための処理の流れ図である。
【図５】本発明の別の実施形態に係る、アクセサリを起動するための処理の流れ図である。
【図６】本発明の実施形態に係るプラグコネクタの斜視図である。
【図７Ａ】本発明の実施形態に係るプラグコネクタと互換性のあるレセプタクルコネクタの斜視図である。
【図７Ｂ】本発明の実施形態に係るプラグコネクタと互換性のあるレセプタクルコネクタの平面断面図である。
【図８Ａ】本発明の実施形態に係るコネクタの例示的ピンアウトを表す図である。
【図８Ｂ】本発明の別の実施形態に係るコネクタの例示的ピンアウトを表す図である。
【発明を実施するための形態】
【００１１】
本発明の各種実施形態は、ホストデバイスから受信した情報を用いてアクセサリを起動するためのものである。本発明のいくつかの実施形態によれば、アクセサリは、予めロードされたアクセサリファームウェアイメージを記憶／保有しておらず、適切なアクセサリファームウェアイメージをアクセサリに送信するのに、ホストデバイスに依存している。いくつかの実施形態において、ホストデバイスがアクセサリとの接続を検出すると、ホストデバイスはアクセサリを認証し、アクセサリにアクセサリファームウェアイメージを送信し得る。アクセサリはその後、アクセサリのブートシーケンス中にホストデバイスから受信したアクセサリファームウェアイメージを使用して、ホストデバイスとデータを交換し、相互運用する目的で使用できるアクセサリソフトウェアをロードすることができる。
【００１２】
本発明のいくつかの実施形態によれば、ホストデバイスは、自身を起動又は初期化する目的で使用されるホストファームウェアイメージを記憶し得る。加えて、ホストデバイスはまた、様々な種類のアクセサリと関連付けられた１つ以上のアクセサリファームウェアイメージも含み得る。アクセサリファームウェアイメージは、ホストファームウェアイメージと互換性のあるバージョンに維持され得る。ホストデバイス内のアクセサリファームウェアイメージは、ホストファームウェアイメージと互換性のあるバージョンに保たれるため、ホストデバイスで実行中のホストソフトウェアと、アクセサリファームウェアイメージを使用してホストデバイスからアクセサリにロードされるアクセサリソフトウェアと、の間で互換性を確保することができる。ユーザは、様々なホストデバイスで同じアクセサリを使用することができ、新しいホストデバイス又は異なるホストデバイスでそのアクセサリを使用する前にアクセサリのソフトウェアをユーザが手動で更新する必要がない。更に、いくつかの実施形態では、アクセサリが予めロードされたアクセサリファームウェアイメージを有しないため、アクセサリにおける不揮発性メモリのメモリ容量を減らして製造コストを下げることができる。
【００１３】
図１Ａは、一実施形態に係る、アクセサリ１３０が起動目的で使用できるホストデバイス１１０に連結されたアクセサリ１３０を表す。本実施形態において、ホストデバイス１１０は、図示のようなタブレットコンピューティングデバイスか、又は別の種類のコンピューティングデバイスであり得る。ホストデバイス１１０は、タッチスクリーン、並びにユーザがホストデバイス１１０を操作又は制御する目的で使用できる１つ以上のボタン１１４などのユーザインターフェース１１２を含み得る。ホストデバイス１１０はまた、ホストデバイス１１０をアクセサリ１３０に連結するためのアクセサリインターフェース１１５（例えば、コネクタ、ポート、及び／又は通信インターフェース）も含み得る。本実施形態によれば、アクセサリ１３０は、ホストデバイス１１０を周辺装置１５０に接続する目的で使用できる、図示のようなドングルであり得る。アクセサリ１３０は、アクセサリ１３０をホストデバイス１１０に連結するためのホストインターフェース１３６（例えば、コネクタ、ポート、及び／又は通信インターフェース）と、アクセサリ１３０を周辺装置１５０に連結するための周辺インターフェース１３８（例えば、コネクタ、ポート、及び／又は通信インターフェース）と、を含み得る。アクセサリ１３０の周辺インターフェース１３８は、無線接続（例えば、無線ＵＳＢ、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）など）を周辺装置１５０に提供するための無線通信インターフェースを含み得る。他の実施形態では、周辺インターフェース１３８及び／又はホストインターフェース１３６の一方又は両方が、有線又は無線接続をそれぞれの機器に提供することができる。アクセサリ１３０は、ホストデバイス１１０からのデータを周辺装置１５０に適したフォーマットに変換するための回路など、アクセサリ１３０の特定機能を実行するためのアクセサリ固有のハードウェアを含み得る。本実施形態では、周辺装置１５０が、図示のようなディスプレイモニタであり得る。他の実施形態では、周辺装置１５０が、任意の種類のアクセサリであり得る。周辺装置１５０は、アクセサリ１３０を介してホストデバイス１１０から周辺装置１５０に送信されるメディアファイル及び／又は他の情報を表示する目的で使用できるスクリーン１５２を含み得る。
【００１４】
図１Ｂは、一実施形態に係る、アクセサリ１４０が起動目的で使用できるホストデバイス１１０に連結されたアクセサリ１４０を表す。ホストデバイス１１０は、図示のようなタブレットコンピューティングデバイスか、又は別の種類のコンピューティングデバイスであり得る。ホストデバイス１１０のアクセサリインターフェース（図示せず）は、アクセサリ１４０と通信及びデータ交換できる無線通信インターフェース（例えば、無線ＵＳＢ、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈなど）を含み得る。本実施形態によれば、アクセサリ１４０は、図示のようなディスプレイモニタか、又はホストデバイス１１０で使用できる任意の種類のアクセサリであり得る。アクセサリ１４０のホストインターフェース（図示せず）は、ホストデバイス１１０との通信及びデータ交換を行うための無線接続（例えば、無線ＵＳＢ、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈなど）を提供するための無線通信インターフェースを含み得る。他の実施形態では、アクセサリ１４０のホストインターフェースをホストデバイス１１０に接続するのに、ケーブルを使用することができる。
【００１５】
図１Ａ〜図１Ｂに示すホストデバイス１１０は、制限なく、任意の種類のコンピューティングデバイス及び／又は通信機器であり得る。例えば、デスクトップコンピュータ、ゲーム機、メディアサーバ／プレーヤ、ラップトップ、ネットブック、タブレットコンピュータ、携帯電話、ＰＤＡ、ポータブルメディアプレーヤ／リーダ、ポータブルゲーム機器などを使用することができる。ホストデバイス１１０は、メディアプレーヤ機能、ネットワーク接続、ウェブ閲覧、電子メール、ワードプロセッシング、データ記憶、アプリケーション実行、及び／又はその他任意のコンピューティング機能若しくは通信機能のうちの１つ以上を提供することができる。
【００１６】
図１Ａ〜図１Ｂに示すアクセサリ１３０又は１４０は、例えば、ドングル、ドッキングステーション、ハブ、外部スピーカシステム、外部ビデオ機器（例えば、ディスプレイモニタ又はプロジェクタ）、マルチメディア機器、家庭用電子機器、テスト機材、家庭用電化製品（例えば、冷蔵庫又は食器洗濯機）、運動器具、セキュリティシステム、ホーム又はオフィスオートメーションシステム、カメラ、ユーザ入力機器（例えば、キーボード、マウス、ゲームコントローラ）、測定機器、医療機器（例えば、グルコースモニタ又はインシュリンモニタ）、ＰＯＳ機器、自動車、自動車用アクセサリ（例えば、カーステレオシステム又はカーナビゲーションシステム）、ラジオ（例えば、ＦＭ、ＡＭ及び／又は衛星）、航空機、バス、電車、その他の大量輸送車両の娯楽用コンソールなどの、ホストデバイス１０２と通信可能な任意の機器であり得る。ホストデバイスと併用可能な任意の種類の機器をアクセサリとして使用することができる。
【００１７】
図２は、いくつかの実施形態に係る、（例えば、図１Ａ〜図１Ｂのアクセサリ１３０又は１４０を実現する）アクセサリ２８０に通信可能に連結された（例えば、図１Ａ〜図１Ｂのホストデバイス１１０を実現する）ホストデバイス２１０のブロック図を表す。ホストデバイス２１０は、ユニバーサルシリアルバス（「ＵＳＢ」）、ＦｉｒｅＷｉｒｅ（登録商標）（ＩＥＥＥ  １３９４規格）、若しくはユニバーサル非同期レシーバ／トランスミッタ（「ＵＡＲＴ」）などの有線通信チャネル、又は無線ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ（Ｂｌｕｅｔｏｏｔｈ  ＳＩＧにより開発され、Ｂｌｕｅｔｏｏｔｈ（登録商標）商標の下でライセンスされた近距離無線通信規格）、ＷｉＦｉ（ＩＥＥＥ  ８０２．１１ファミリ規格に準拠）などの無線通信チャネルを介してアクセサリ２８０に通信可能に連結され得る。
【００１８】
ホストデバイス２１０は、プロセッサ２１１、記憶構成要素２１２、ユーザインターフェース（ＵＩ）２１３、ネットワークインターフェース２１４、及びアクセサリインターフェース２１５を含み得る。プロセッサ２１１は、１つ以上の集積回路（例えば、１つ以上のマイクロプロセッサ及び／又はマイクロコントローラ及び／又はマルチコアプロセッサを含む）として実現され得るものであり、ホストデバイス２１０の動作を制御し得る。例えば、プロセッサ２１１は、ユーザインターフェース２１３によって提供されたユーザ入力信号に応じて、記憶構成要素２１２に記憶され得るメディア資産を選択及び再生する、ネットワークインターフェース２１４を使用してデータを送信及び／又は取得するために各種ネットワーク（例えば、携帯電話ネットワーク、インターネット、ローカルエリアネットワークなど）にアクセスする、記憶構成要素２１２に所在するオペレーティングシステム（ＯＳ）及び／又はアプリケーションプログラムなどのソフトウェアを実行する、などの各種タスクを実行することができる。プロセッサ２１１はまた、アクセサリインターフェース２１５を介して、アクセサリとの通信を管理し、アクセサリとデータを交換することもできる。
【００１９】
ユーザインターフェース２１３は、サポートする電子機器（例えば、デジタル−アナログ又はアナログ−デジタルコンバータ、信号プロセッサなど）とともに、ディスプレイスクリーン、インジケータランプ、スピーカ、ヘッドフォンジャックなどの出力機器に加え、タッチパッド、タッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、キーパッド、マイクロフォンなどの入力コントロールも含み得る。ユーザは、ユーザインターフェース２１３の各種入力コントロールを操作してホストデバイス２１０の機能を呼び出すことができ、またユーザインターフェース２１３を介してホストデバイス２１０からの出力を見たり聞いたりすることもできる。
【００２０】
記憶構成要素２１２は、例えば、ディスク、フラッシュメモリ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、若しくは他の不揮発性記憶媒体などの不揮発性メモリ、又はこれらの組み合わせを用いて実現され得る。記憶構成要素２１２はまた、ランダムアクセスメモリ（ＲＡＭ）も含み得る。いくつかの実施形態において、記憶構成要素２１２は、例えば、不揮発性メモリを使用してホストファームウェアイメージ２１６を記憶し得る。ホストデバイス２１０の電源が投入されると、プロセッサ２１１が、ホストファームウェアイメージ２１６内のプログラムコードを実行して、オペレーティングシステム（ＯＳ）などのソフトウェアを、例えば、記憶構成要素２１２のＲＡＭ（図示せず）にロードし得る。プロセッサ２１１はその後、記憶構成要素２１２のＲＡＭからＯＳを実行して、ホストデバイス２１０の動作を管理し得る。
【００２１】
いくつかの実施形態において、記憶構成要素２１２は、ホストデバイス２１０が相互運用できる様々な種類のアクセサリを起動する目的で使用できる１つ以上のアクセサリファームウェアイメージ２１７(1)-(n)を記憶し得る。いくつかの実施形態において、「ｎ」は、アクセサリの数及び記憶構成要素２１２のメモリ容量に応じて任意の数であり得る。アクセサリファームウェアイメージ２１７(1)-(n)は、ホストファームウェアイメージ２１６がホストデバイス２１０にロードするホストソフトウェアと互換性のあるアクセサリソフトウェアをロードする目的でアクセサリによって使用され得る。例えば、アクセサリファームウェアイメージ２１７(1)-(n)は、ホストファームウェアイメージ２１６がホストデバイス２１０にロードするものと同じ種類及び／又はバージョンのＯＳ及び／又はアプリケーションプログラムをロードする目的でアクセサリによって使用され得る。アクセサリファームウェアイメージ２１７(1)-(n)は、ホストファームウェアイメージ２１６に部分的に基づき得るとともに、ホストファームウェアイメージ２１６から導出され得るか、又はビルドされ得る。例えば、アクセサリファームウェアイメージ２１７(1)-(n)は、ホストファームウェアイメージ２１６のいくつかの部分又はセクションを含み得る。そのため、アクセサリファームウェアイメージ２１７(1)-(n)は、ホストファームウェアイメージ２１６と同じプログラムコードの一部を含み得る。加えて、あるいは代替として、アクセサリファームウェアイメージ２１７(1)-(n)は、同じ組の関数呼び出しを呼び出すか、又はホストファームウェアイメージ２１６と同じ組のライブラリ関数を使用するプログラムコードを含み得る。他の実施形態では、アクセサリファームウェアイメージ２１７(1)-(n)が、ホストファームウェアイメージ２１６と比較してより多いか又はより少ない情報を含み得る。アクセサリファームウェアイメージ内の追加情報の一部は、アクセサリファームウェアイメージを使用するアクセサリの種類に固有であり得る。更に、いくつかの実施形態では、アクセサリファームウェアイメージはまた、アクセサリファームウェアイメージを使用するアクセサリの種類に基づいて、互いに異なる場合もある。例えば、ビデオアクセサリのアクセサリファームウェアイメージは、オーディオアクセサリのアクセサリファームウェアイメージとは異なり得る。いくつかの実施形態では、アクセサリが、複数のバージョン及び／又は種類のアクセサリファームウェアイメージをサポートし得る。
【００２２】
各アクセサリファームウェアイメージは、ホストデバイス２１０で使用できる少なくとも１種類のアクセサリと関連付けられ得る。例えば、あるアクセサリファームウェアイメージは、外部ビデオ機器と関連付けられ得る。そしてこの特定のアクセサリファームウェアイメージは、外部ビデオ機器（例えば、ディスプレイモニタ又はプロジェクタ）がホストデバイス２１０からのビデオを表示するためのビデオエンコード／デコードなどのビデオ関連機能を実行する目的で実行できるアクセサリソフトウェアをロードする目的で、外部ビデオ機器によって使用され得る。別例として、別のアクセサリファームウェアイメージが、外部スピーカシステムと関連付けられ得る。そしてこの特定のアクセサリファームウェアイメージは、外部スピーカシステムがオーディオ処理機能を実行し、ホストデバイス２１０からオーディオファイルを再生する目的で実行できるアクセサリソフトウェアをロードする目的で、外部スピーカシステムによって使用され得る。いくつかの実施形態では、２つ以上の種類のアクセサリが１つのアクセサリファームウェアイメージを使用することができる。換言すれば、いくつかの実施形態では、複数の種類のアクセサリが、同じアクセサリファームウェアイメージを使用し得る。かかるアクセサリファームウェアイメージは、ある種類のアクセサリに固有であり得るプログラムコードに加え、いくつかの異なる種類のアクセサリによって共通して実行される何らかのプログラムコードも含み得る。かかるアクセサリファームウェアイメージを使用して起動する特定のアクセサリは、その特定のアクセサリと関連のあるアクセサリファームウェアイメージの部分だけを選択的にロード及び／又は実行し得る。
【００２３】
いくつかの実施形態では、アクセサリファームウェアイメージ２１７(1)-(n)が、記憶構成要素２１２の不揮発性メモリ、又はＲＡＭ若しくはディスクなど、記憶構成要素２１２内の他の種類のメモリに記憶され得る。アクセサリファームウェアイメージ２１７(1)-(n)は、製造業者によって記憶構成要素２１２に予めロードされ得る。アクセサリファームウェアイメージ２１７(1)-(n)はまた、例えば、ネットワークインターフェース２１４又はホストデバイス２１０のコネクタ／ポートを介した接続を用いて外部機器から記憶構成要素２１２にロードされ得る。他の実施形態では、ホストデバイス２１０が、ホストファームウェアイメージ２１６からアクセサリファームウェアイメージ２１７(1)-(n)をコンパイル及びビルドし得る。例えば、一実施形態では、ホストファームウェアイメージ２１６だけが、記憶構成要素２１２の不揮発性メモリに予めロードされ得る。ホストデバイス２１０の電源が投入されると、プロセッサ２１１が記憶構成要素２１２からホストファームウェアイメージ２１６を読み出し、ホストファームウェアイメージ２１６の少なくともいくつかの部分を用いてアクセサリファームウェアイメージ２１７(1)-(n)をビルドし得る。プロセッサ２１１によってビルドされたアクセサリファームウェアイメージ２１７(1)-(n)は、その後アクセサリに送信するために、記憶構成要素２１２内のＲＡＭ又は他の種類のメモリに記憶され得る。
【００２４】
いくつかの実施形態によれば、ホストデバイス２１０に記憶されたアクセサリファームウェアイメージ２１７(1)-(n)は、ホストファームウェアイメージ２１６と互換性のあるバージョンに維持され得る。例えば、ホストデバイス２１０内のホストファームウェアイメージ２１６が変更（例えば、新バージョンへの更新又は旧バージョンへのダウングレード）される度に、ホストデバイス２１０は、変更されたホストファームウェアイメージ２１６のバージョンを用いてアクセサリファームウェアイメージ２１７(1)-(n)を再ビルドし得る。他の実施形態では、互換性のあるアクセサリファームウェアイメージ２１７(1)-(n)のバージョンを、変更／更新されたホストファームウェアイメージ２１６と一緒にホストデバイス２１０にロードすることができる。
【００２５】
いくつかの実施形態では、記憶構成要素２１２はまた、アクセサリがホストデバイス２１０からアクセサリファームウェアイメージをロードする目的で使用できる１つ以上のアクセサリブートローダを記憶し得る。例えば、アクセサリブートローダは、アクセサリが、アクセサリのメインメモリ及び／又はアクセサリの他の構成要素を初期化する目的で実行できるプログラムコードを含み得る。アクセサリブートローダは、アクセサリに、アクセサリのメインメモリにおける特定のメモリロケーションにホストデバイス２１０からアクセサリファームウェアイメージをロードするように命令し得る。アクセサリブートローダはまたアクセサリに、その特定アクセサリと関連のあるアクセサリファームウェアイメージのある部分だけを実行又はロードするための命令も提供し得る。
【００２６】
記憶構成要素２１２はまた、プロセッサ２１１によって実行可能なアプリケーションプログラムと、各種アクセサリとの通信を管理する際に使用できる各種データと、を記憶し得る。アプリケーションプログラムは、プロセッサ２１１によって実行可能な任意のプログラムを含み得る。いくつかの実施形態では、あるアプリケーションプログラムをホストデバイス２１０にその製造業者がインストールすることができ、一方で、他のアプリケーションプログラムをユーザがインストールすることができる。アプリケーションプログラムの例として、ビデオゲームプログラム、個人情報管理プログラム、メディア資産を再生するため、及び／又はメディア資産データベースをナビゲートするためのプログラム、通話を発信及び／又は受信する目的で電話インターフェースを制御するためのプログラムなどが挙げられる。あるアプリケーションプログラムは、アクセサリとの通信、及び／又はアクセサリの制御を提供し得る。そしてあるアプリケーションプログラムは、アクセサリからの制御信号又は他の入力に応じ得る。
【００２７】
いくつかの実施形態では、記憶構成要素２１２はまた、ホストデバイス２１０、又はアクセサリ２８０のようなホストデバイス２１０に通信可能に連結されたアクセサリによって再生可能な、オーディオ、ビデオ、静止画像などのメディア資産を、メディア資産について記述したメタデータ（例えば、資産名、アーティスト、タイトル、ジャンルなど）、再生リスト（逐次的に又はランダムな順序で再生可能な資産のリスト）などとともに、記憶することができる記憶構成要素２１２はまた、ユーザの連絡先（名前、住所、電話番号など）に関する情報、予定されている約束及びイベント、メモ、並びに／又は他の個人情報など、その他任意の種類の情報も記憶することができる。
【００２８】
ネットワークインターフェース２１４は、１つ以上の通信ネットワークに対するインターフェースを提供することができる。例えば、ネットワークインターフェース２１４は、高周波（ＲＦ）送受信機と、携帯電話ネットワークなどのモバイル通信ネットワークを介して通信するための好適な構成要素、を包含することができる。加えて、あるいは代わりに、ネットワークインターフェース２１４は、インターネット（例えば、ＷｉＦｉ送受信機、３Ｇ／４Ｇ（例えばＬＴＥ）送受信機など）、パーソナルエリアネットワーク（例えばＢｌｕｅｔｏｏｔｈネットワーク）、又はその他任意のネットワークへの無線接続を包含することができる。更に他の実施形態では、有線ネットワーク接続（例えばイーサネット（登録商標））が提供され得る。いくつかの実施形態では、同じハードウェアを使用して、複数のネットワークへの接続をサポートすることができる。そのため、ネットワークインターフェース２１４は、アナログ−デジタル及び／又はデジタル−アナログ回路、ベースバンド処理構成要素（例えば、コーデック、チャネル推定器など）、変調器、復調器、発振器、増幅器、トランスミッタ、レシーバ、送受信機、内部及び／又は外部アンテナなどを含み得る。いくつかの実施形態では、ネットワーク接続性と関連付けられたいくつかの動作を、プロセッサ２１１で実行されるプログラム（例えば、デジタル領域における符号化、復号、及び／又は他の処理）として完全に又は部分的に実装することができ、又は専用デジタル信号プロセッサを提供することができる。
【００２９】
アクセサリインターフェース２１５は、ホストデバイス２１０とアクセサリ２８０などのアクセサリとの間で様々な信号を伝送するように構成された多数の信号路を含み得る。一実施形態において、アクセサリインターフェース２１５は、Ａｐｐｌｅ  Ｉｎｃ．によって製造及び販売されているｉＰｏｄ（登録商標）若しくはｉＰｈｏｎｅ（登録商標）製品で使用されているコネクタに対応する３０ピンコネクタ、又はＵＳＢコネクタ、ＦｉｒｅＷｉｒｅコネクタなど、他の種類のコネクタ及び／若しくはポートを含み得る。他の実施形態では、４〜３０ピンのコネクタ、又は構成可能及び／若しくはリバーシブルなコネクタを使用することができる。代替として、あるいは加えて、アクセサリインターフェース２１５は、無線インターフェース（例えば、無線ＵＳＢ、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈなど）などの通信インターフェースを含み得る。アクセサリインターフェース２１５はまた、ホストデバイス２１０により、ホストコンピュータ又はアクセサリデバイス２８０など他の機器と通信する目的でも使用され得る。
【００３０】
アクセサリ２８０は、コントローラ（ＭＣＵ）２８１、不揮発性メモリ（ＮＶＭ）２８２、メインメモリ２８３、アクセサリ固有のハードウェア２８５、及びホストインターフェース２８６を含み得る。いくつかの実施形態において、アクセサリ２８０はまた、ＩＤモジュール２８４及び／又は周辺インターフェース２８８も含み得る。いくつかの実施形態によれば、コントローラ２８１、不揮発性メモリ２８２、及びメインメモリ２８３は、システムオンチップ（ＳｏＣ）２８９に統合され得る。他の実施形態では、これらの構成要素のうちの１つ以上を別個に提供することができる。
【００３１】
コントローラ２８１は、例えば、デジタルオーディオ復号、アナログ若しくはデジタルオーディオ及び／又はビデオ処理、ユーザ入力の処理、アクセサリ機能の制御など、各種機能を実行するためのプログラムコードを実行する１つ以上のマイクロプロセッサ又は１つ以上のマイクロコントローラなどを含み得る。コントローラ２８１はまた、ホストインターフェース２８６を介して、ホストデバイス２１０などのホストデバイスとの通信を管理することもできる。いくつかの実施形態において、コントローラ２８１はまた、周辺インターフェース２８８を介して、周辺装置との通信を管理することもできる。
【００３２】
不揮発性メモリ（ＮＶＭ）２８２は、様々な種類のフラッシュメモリ、ＲＯＭ、ＰＲＯＭ、及び／又はＥＰＲＯＭのうちの１つ以上を含み得る。いくつかの実施形態では、ＮＶＭ２８２はアクセサリファームウェアイメージを記憶していない。代わりに、ＮＶＭ２８２は、電源投入時にアクセサリ２８０がホストインターフェース２８６を初期化する目的で使用できるホストインターフェース初期化コードを記憶し得る。例えば、ホストインターフェース初期化コードは、ホストインターフェース２８６がホストデバイス２１０などのホストデバイスと通信できるようにする１組の命令を有するプログラムコードを含み得る。ただし、いくつかの実施形態によれば、ホストインターフェース初期化コードが、ＯＳを確立し、かつ／又は何らかのアプリケーションプログラムをアクセサリ２８０にロードするためのプログラムコードをなにも含まないという点に留意すべきである。換言すれば、ホストインターフェース初期化コードを実行しただけでは、いかなるアクセサリソフトウェアもアクセサリ２８０にロードされない。代わりに、ホストインターフェース初期化コードは、アクセサリ２８０がアクセサリソフトウェアをロードする目的で使用できる更なる情報又は命令（例えば、アクセサリブートローダ、アクセサリファームウェアイメージ、又はその両方）をアクセサリ２８０がホストデバイスから取得できるように、ホストインターフェース２８６がホストデバイス（例えばホストデバイス２１０）と通信できるようにする目的で使用される。
【００３３】
いくつかの実施形態によれば、ＮＶＭ２８２はアクセサリファームウェアイメージをなにも保存しないことから、ＮＶＭ２８２のメモリ容量は、アクセサリ２８０によって使用されるアクセサリファームウェアイメージのサイズよりも小さい場合がある。ＮＶＭ２８２は、１つ以上の不揮発性メモリデバイスを含み得る。そして、アクセサリ２８０によって使用されるアクセサリファームウェアイメージのサイズは、不揮発性メモリデバイスの各々のメモリ容量よりも大きい場合がある。いくつかの実施形態では、アクセサリ２８０によって使用されるアクセサリファームウェアイメージのサイズは、アクセサリ２８０内の全ての不揮発性メモリデバイスの合計メモリ容量よりも大きい場合がある。
【００３４】
いくつかの実施形態では、ＮＶＭ２８２が、コントローラ２８１がホストデバイス２１０からアクセサリファームウェアイメージを適切にロードできるようにする情報を含むアクセサリブートローダを記憶し得る。例えば、アクセサリブートローダは、アクセサリ２８０のメインメモリ２８３及び／又は他の構成要素を初期化する目的でコントローラ２８１によって実行できるプログラムコードを含み得る。アクセサリブートローダは、アクセサリ２８０のメインメモリ２８３における特定のメモリロケーションに、ホストデバイス２１０から受信したアクセサリファームウェアイメージをロードするようコントローラ２８１に命令するためのプログラムコードを含み得る。アクセサリブートローダはまた、コントローラ２８１に、アクセサリ２８０と関連のあるアクセサリファームウェアイメージのある部分だけを実行又はロードするための命令も提供し得る。いくつかの実施形態によれば、アクセサリブートローダが、ＯＳを確立し、かつ／又は何らかのアプリケーションプログラムをアクセサリ２８０にロードするためのプログラムコードをなにも含まないという点に留意すべきである。換言すれば、アクセサリブートローダを実行しただけでは、いかなるアクセサリソフトウェアもアクセサリ２８０にロードされない。代わりに、アクセサリブートローダは、アクセサリ２８０がアクセサリファームウェアイメージ又はアクセサリファームウェアイメージの一部分を取得し、アクセサリ２８０のメインメモリに記憶できるようにする目的で使用され得る。
【００３５】
他の実施形態では、ＮＶＭ２８２にアクセサリブートローダがなにも記憶されていない。かかる実施形態では、アクセサリブートローダがホストデバイスからアクセサリ２８０に提供され得る。いくつかの実施形態では、アクセサリ２８０が、アクセサリ２８０の認証時にホストデバイスに送られるアクセサリ識別情報を用いて、アクセサリ２８０においてホストデバイスがアクセサリブートローダをアクセサリ２８０に提供する必要があるかどうかをホストデバイスに知らせ得る。
【００３６】
メインメモリ２８３は、アクセサリ２８０から電力が失われるとデータを保持しない様々な種類のランダムアクセスメモリ（ＲＡＭ）及び／又は他の記憶媒体など、任意の種類の揮発性メモリを使用して実現することができる。メインメモリ２８３は、アクセサリ２８０のコントローラ２８１又は他の構成要素によって使用されるソフトウェア及び／又はデータを記憶することができる。例えば、メインメモリ２８３は、コントローラ２８１がホストデバイス２１０、アクセサリ固有のハードウェア２８５、及び／又はアクセサリ２８０のユーザインターフェース（図示せず）と対話するための命令を提供できるアクセサリソフトウェアを記憶することができる。アクセサリ２８０はまた、メインメモリ２８３にもまた記憶することができる情報（例えば、ユーザ入力、メタデータ、及び／又はアプリケーションデータ）をホストデバイス２１０から受信することができる。いくつかの実施形態によれば、ホストデバイス２１０から受信したアクセサリファームウェアイメージは、メインメモリ２８３に記憶され得る。予めロードされたアクセサリブートローダがアクセサリ２８０のＮＶＭ２８２に記憶されていない実施形態では、ホストデバイス２１０から受信したアクセサリブートローダがメインメモリ２８３に記憶され得る。そしてコントローラ２８１が、メインメモリ２８３からアクセサリブートローダを実行して、ホストデバイス２１０から受信したアクセサリファームウェアイメージをメインメモリ２８３にロードし得る。コントローラ２８１は、メインメモリ２８３からアクセサリファームウェアイメージを実行して、オペレーティングシステム（ＯＳ）及び／又はアプリケーションプログラムなどのアクセサリソフトウェアをメインメモリ２８３にロードし得る。コントローラ２８１は、メインメモリ２８３からＯＳ及び／又はアプリケーションプログラムを実行して、アクセサリ２８０の機能を管理及び実行し得る。
【００３７】
いくつかの実施形態によれば、アクセサリ２８０は、アクセサリ２８０がホストデバイス２１０からアクセサリファームウェアイメージを受信した後でも、アクセサリ２８０のＮＶＭ２８２にアクセサリファームウェアイメージをなにも記憶しないという点に留意すべきである。換言すれば、アクセサリ２８０は、ホストデバイス２１０から受信したアクセサリファームウェアイメージをＮＶＭ２８２にロードしない。そのため、この手順は、ファームウェアをアクセサリのＮＶＭにダウンロードし得るファームウェア更新手順とは異なる。更に、ホストデバイス２１０からのアクセサリファームウェアイメージがアクセサリ２８０のメインメモリ（例えばＲＡＭ）に記憶されるので、アクセサリ２８０から電力が失われると、アクセサリ２８０はアクセサリファームウェアイメージを保持しない。そのため、アクセサリ２８０への電力が失われ、その後回復される度に、アクセサリ２８０は、アクセサリ２８０が使用されているホストデバイスがアクセサリ２８０にアクセサリファームウェアイメージを送ることを必要とし得る。これにより、アクセサリ２８０で実行中のソフトウェア（例えばＯＳ及び／又はアプリケーションプログラム）が、アクセサリ２８０が使用されている特定のホストデバイス又はホストデバイスの種類に関係なく、ホストデバイスで実行中のソフトウェアと互換性を持つことができる。
【００３８】
本発明の実施形態に係る、ホストデバイスからアクセサリファームウェアイメージを取得する処理は、ホストデバイスからデバイスドライバを取得する処理とは異なるという点を理解すべきである。アクセサリファームウェアイメージをホストデバイスから取得及び実行する前は、アクセサリが、自身の中にあるいかなるアクセサリソフトウェアも実行していない場合がある。アクセサリが（オペレーティングシステムに依存し得る）デバイスドライバを取得するには、そのアクセサリでオペレーティングシステムがまず確立される必要がある。オペレーティングシステムが確立され、アクセサリで実行されると、その時点でアクセサリはホストデバイスと通信してデバイスドライバを取得することができる。対照的に、本発明の実施形態に係る、ホストデバイスからアクセサリファームウェアイメージを取得する処理は、アクセサリで実行中のオペレーティングシステムなしに行われる。
【００３９】
アクセサリ固有のハードウェア２８５は、アクセサリ２８０の所望機能を有効にするのに必要な任意のハードウェアを表し得る。例えば、アクセサリ固有のハードウェア２８５は、ホストインターフェース２８６、周辺インターフェース２８８、及び／若しくはアクセサリ固有のハードウェア２８５の他の構成要素で受信した信号を、その信号をコントローラ２８１に送る前に処理し、並びに／又はコントローラ２８１からの信号をホストデバイス（例えばホストデバイス２１０）若しくは周辺装置に送信するために変換する、信号処理構成要素を含み得る。
【００４０】
いくつかの実施形態では、アクセサリ固有のハードウェア２８５はネットワーク及び／又は通信インターフェースを含み得る。例えば、アクセサリ固有のハードウェア２８５が、ＲＦレシーバ（例えば、ＦＭ、ＡＭ、衛星ラジオ、及び／又は他の帯域用）及び／又はＲＦトランスミッタ（例えば個人用の短距離トランスミッタ）を含み得る。他の実施形態では、アクセサリ固有のハードウェア２８５は、Ｂｌｕｅｔｏｏｔｈ送受信機又は他の短距離無線通信インターフェースなど、パーソナルエリアネットワークとの通信インターフェースを含み得る。更に他の実施形態では、アクセサリ固有のハードウェア２８５が、電話インターフェース、ＧＳＭ、ＣＤＭＡ、並びに／又は他の音声及び／若しくはデータネットワークインターフェースを含み得る。
【００４１】
いくつかの実施形態によれば、アクセサリ固有のハードウェア２８５は、センサ及び／又はメータなど、１つ以上のデータ収集機器を含み得る。アクセサリ固有のハードウェア２８５は、コンピュータ制御可能な機器を含み得る。コンピュータ制御可能な機器の例としては、センサ、メータ、モータ、アクチュエータ、ライト、カメラ、バルブ、スピーカ、ディスプレイスクリーン、プリンタ、及び／又はコントローラ２８１によって制御可能なその他任意の装置が挙げられる。いくつかの実施形態では、ホストデバイス２１０で実行中のアプリケーションプログラムが、アクセサリ２８０に制御信号を送ることができ、コントローラ２８１が、制御信号に応じてアクセサリ固有のハードウェア２８５を操作することができる。いくつかの実施形態では、アクセサリ固有のハードウェア２８５が、ユーザインターフェースの構成要素を含み得る。そのため、ホストデバイス２１０で実行中のアプリケーションプログラムが、アクセサリ２８０からユーザ入力を受信し、アクセサリ２８０を介してユーザに出力を提供し、かつ／又はアクセサリ２８０が実行できるあらゆる操作を制御、対話、若しくはこれに応じることができる。
【００４２】
したがって、アクセサリ固有のハードウェア２８５は、コンピューティングデバイス及び／又は通信機器などのホストデバイスとの相互運用性が望ましいあらゆるハードウェア構成要素を網羅することができる。
【００４３】
いくつかの実施形態では、アクセサリ２８０が、サポートする電子機器（例えば、デジタル−アナログ又はアナログ−デジタルコンバータ、信号プロセッサなど）とともに、ビデオスクリーン、インジケータランプ、スピーカ、ヘッドフォンジャックなどの出力機器に加え、タッチパッド、タッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、キーパッド、マイクロフォン、プローブなどの入力コントロールを含み得るユーザインターフェース（図示せず）も含み得る。ユーザは、ユーザインターフェースの各種入力コントロールを操作してアクセサリ２８０の機能を呼び出し、ユーザインターフェースを介してアクセサリ２８０からの出力を見たり聞いたりすることができる。加えて、いくつかの実施形態では、ユーザがアクセサリ２８０のユーザインターフェースを介してホストデバイス２１０（又はその上で実行中のアプリケーションプログラム）を操作することができる。
【００４４】
ホストインターフェース２８６は、アクセサリ２８０とホストデバイス２１０との間で様々な信号を伝送するように構成された多数の信号路を含み得る。一実施形態では、ホストインターフェース２８６が、Ａｐｐｌｅ  Ｉｎｃ．によって製造及び販売されているｉＰｏｄ（登録商標）及びｉＰｈｏｎｅ（登録商標）製品で使用される３０ピンコネクタと嵌合するように適応させたコネクタを含み得る。例えば、ＵＳＢコネクタ、ＦｉｒｅＷｉｒｅコネクタなど、他のコネクタもまた使用することができる。他の実施形態では、４〜３０ピンのコネクタ、又は構成可能コネクタを使用することができる。代替として、あるいは加えて、ホストインターフェース２８６は、無線インターフェース（例えば、無線ＵＳＢ、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈなど）などの通信インターフェースを含み得る。
【００４５】
いくつかの実施形態では、アクセサリ２８０が、例えば、外部ビデオ機器（例えば、ディスプレイモニタ、プロジェクタ）、プリンタなどの別のアクセサリデバイスなど、周辺装置との接続性を提供するための周辺インターフェース２８８を含み得る。周辺インターフェース２８８は、アクセサリ２８０と周辺装置との間で様々な信号を伝送するように構成された多数の信号路を含み得る。いくつかの実施形態では、周辺インターフェース２８８が、ＵＳＢコネクタ、ＦｉｒｅＷｉｒｅコネクタなどのコネクタを含み得る。他の実施形態では、周辺インターフェース２８８が、ＨＤＭＩ、ＶＧＡ、ＤｉｓｐｌａｙＰｏｒｔ、コンポジットコネクタなど、他の種類のマルチメディアコネクタを含み得る。代替として、あるいは加えて、周辺インターフェース２８８は、イーサネットポート及び／又は無線インターフェース（例えば無線ＵＳＢ、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈなど）などの通信インターフェースを含み得る。
【００４６】
各種実施形態で、アクセサリ２８０はまた、アクセサリ２８０がホストデバイス２１０に対して自身を認証する目的で使用し得る識別（ＩＤ）モジュール２８４を含み得る。ＩＤモジュール２８４は、アクセサリ認証処理を実行するための専用ハードウェア回路を有し得ることに加え、いくつかの実施形態によれば自身専用のマイクロコントローラ、メモリ、及びソフトウェアもまた有し得る。ＩＤモジュール２８４は、アクセサリ２８０の種類、機能、製造業者、及び／又はモデルを識別する、自身に記憶されたアクセサリ識別情報を含み得る。いくつかの実施形態において、このアクセサリ識別情報はまた、アクセサリ２８０のＮＶＭ２８２に記憶されたアクセサリブートローダをアクセサリ２８０が含むかどうかも示し得る。ＩＤモジュール２８４は、アクセサリ２８０を識別するためのアクセサリ識別情報を求めるホストデバイス２１０からの要求に応じるように適合されたハードウェア及び／又はソフトウェアを含み得る。例えば、ＩＤモジュール２８４は、アクセサリ識別情報を求める要求を表し得るホストインターフェース２８６における、特定の電圧、電流、インピーダンス、容量、周波数、若しくは他の電気的特性、又はかかる電気的特性の変化を検出するための回路を含み得る。加えて、あるいは代替として、ＩＤモジュール２８４は、通信プロトコル／規格に則った形式のＩＤ要求コマンドを解釈できるハードウェア及び／又はソフトウェアを含み得る。ホストインターフェース２８６におけるアクセサリ識別情報を求める要求を受信すると、ＩＤモジュール２８４は、ＩＤモジュール２８４に記憶されたアクセサリ識別情報を、ホストインターフェース２８６を通じてホストデバイス２１０に送り得る。ＩＤモジュール２８４はまた、周辺インターフェース２８８に連結されている周辺装置を識別又は認証する目的でもアクセサリ２８０によって使用され得る。
【００４７】
他の実施形態では、ＩＤモジュール２８４の機能の一部又は全部が、コントローラ２８１及びＮＶＭ２８２に記憶されたプログラムコードを用いて実施され得る。例えば、いくつかの実施形態では、アクセサリ２８０が、アクセサリ２８０を識別するアクセサリ識別情報と、ホストデバイスからアクセサリ識別情報を求める要求を受信したことに応じて、ホストデバイスにアクセサリ２８０を識別するアクセサリ識別情報を送る目的でコントローラ２８１によって実行可能なプログラムコードと、をＮＶＭ２８２に記憶し得る。
【００４８】
本明細書に記載されているシステム構成と構成要素は説明上のものであり、変更及び修正が可能であることが認識されよう。ホストデバイス２１０及び／又はアクセサリ２８０は、本明細書に具体的に記載されていない他の機能を有し得る。アクセサリ２８０及びホストデバイス２１０は、本明細書において特定のブロックを参照して記載されているが、これらのブロックは説明の都合上定義されたものであり、構成要素部品の特定の物理的配置を示唆することを意図するものではないことを理解すべきである。更に、ブロックは、物理的に異なる構成要素に対応する必要はない。
【００４９】
図３は、一実施形態に係る、アクセサリ３８０のブートシーケンスにおけるホストデバイス３１０とアクセサリ３８０との間での情報の交換を表すダイアグラムを示す。アクセサリ３８０は、アクセサリ３８０の電源が投入されたとき（例えば、アクセサリ３８０がホストデバイス３１０若しくは他の電源から最初に電力を受けたとき、又はアクセサリ３８０の電源を投入するためのコマンドをユーザインターフェースから受信したときなど）、及び／又はアクセサリ３８０がリセット若しくはスリープ状態から脱したときに、自らのブートシーケンスを開始し得る。
【００５０】
いくつかの実施形態では、アクセサリ３８０が、アクセサリ３８０の不揮発性メモリ（ＮＶＭ）に記憶され得るホストインターフェース初期化コードを実行することにより、自らのブートシーケンスを開始する。ホストインターフェース初期化コードの実行により、アクセサリ３８０のホストインターフェースが有効になり、それによってアクセサリ３８０がホストデバイス３１０と通信できるようになり得る。ホストインターフェース初期化コードは、アクセサリ３８０のホストインターフェースがアクセサリ３８０のホストインターフェースを介してアクセサリ３８０とホストデバイス３１０との間で通信チャネルを確立できるようにする目的でアクセサリ３８０が使用し得るプログラムコードを含み得る。通信チャネルは、（例えば、ホストデバイス３１０及びアクセサリ３８０のそれぞれの嵌合コネクタ間の）物理アタッチメントによる有線接続、ケーブルなどの間接アタッチメント、又は無線接続の確立によって実現することができる。ＵＳＢ、ＦｉｒｅＷｉｒｅ、若しくはＵＡＲＴなどの有線チャネル、又は無線ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ、ＷｉＦｉ、無線パーソナルエリアネットワーク、赤外線などの無線チャネルを含む様々な通信チャネルが使用され得る。そのため、ホストインターフェース初期化コードは、ホストデバイス３１０とアクセサリ３８０との間での接続で使用されている特定の通信プロトコル／規格に準拠した、ホストデバイス３１０とアクセサリ３８０との間で接続を確立するためのプログラムコードを含み得る。いくつかの実施形態では、有線及び無線チャネルの両方を用いて通信が行われ得る。いくつかの実施形態では、ホストデバイスとアクセサリとの間の複数の通信チャネルを使用できるか、又は各々のアクセサリが異なる通信チャネルを使用する複数のアクセサリにホストデバイスを同時に接続することができる。
【００５１】
いくつかの実施形態では、ホストインターフェース初期化コードはまた、ホストデバイス３１０に対して自らを認証する目的でアクセサリ３８０によって使用されるプログラムコードを含み得る。他の実施形態では、アクセサリ３８０で別個のＩＤモジュールを用いて認証プロセスを実行することができる。ホストデバイス３１０とアクセサリ３８０との間で接続が確立されていることをホストデバイス３１０が検出すると、ホストデバイス３１０は、アクセサリ識別情報を求める要求３０２をアクセサリ３８０に送り得る。アクセサリ識別情報３０２を求める要求は、ホストデバイス３１０がアクセサリ３８０のホストインターフェースに提供する特定の電圧、電流、インピーダンス、容量、周波数、若しくは他の電気的特性、又はかかる電気的特性の変化であり得る。加えて、あるいは代替として、アクセサリ識別情報３０２を求める要求は、ホストデバイス３１０とアクセサリ３８０との間での接続で使用されている通信プロトコル／規格に則った形式のＩＤ要求コマンドを含み得る。
【００５２】
アクセサリ識別情報を求める要求３０２を受信したことに応じて、アクセサリ３８０はホストデバイス３１０にアクセサリ識別情報３０４を送り得る。いくつかの実施形態において、アクセサリ識別情報３０４は、アクセサリ３８０の種類、機能、製造業者、及び／又はモデルを示し得る。アクセサリ識別情報３０４はまた、アクセサリ３８０が予めロードされたアクセサリブートローダを有するかどうかを示す情報、又はアクセサリ３８０が現在ブートシーケンスのどの段階にあるかを示す起動ステータスも含み得る。ホストデバイス３１０は、この情報を用いて、ホストデバイス３１０がアクセサリ３８０にアクセサリブートローダを送る必要があるかどうかを判定する。いくつかの実施形態において、アクセサリ識別情報３０４は、ホストデバイス３１０とアクセサリ３８０との間での通信で使用されている通信プロトコル／規格に準拠した機器ＩＤであり得る。例えば、ＵＳＢリンク（例えば有線又は無線）をアクセサリ３８０とホストデバイス３１０との間の接続として使用する実施形態では、アクセサリ識別情報３０４がアクセサリ３８０のＵＳＢ記述子であり得る。アクセサリ識別情報３０４はまた、アクセサリ３８０のホストインターフェースがサポートできる速度、帯域幅、及び／又は電圧レベルなど、他の情報も含み得る。
【００５３】
いくつかの実施形態では、ホストデバイス３１０に対してアクセサリ３８０を認証するための認証プロセスが、ホストデバイス３１０とアクセサリ３８０との間の接続で使用されている通信プロトコル／規格の一部として実施され得ることを理解すべきである。例えば、一例示的実施形態では、ＵＳＢリンク（例えば有線又は無線）が、ホストデバイス３１０をアクセサリ３８０に接続する目的で使用され得る。ＵＳＢリンクを確立するには、ＵＳＢ規格に準拠するために、ホストデバイス３１０がＵＳＢ機器要求を発信し、アクセサリ３８０がＵＳＢ記述子で以ってＵＳＢ機器要求に応答する必要があり得る。かかる実施形態において、ＵＳＢ規格に適合した、ホストデバイス３１０からのＵＳＢ機器要求は要求３０２となり得、かつ／又は、ＵＳＢ規格に適合した、アクセサリ３８０からのＵＳＢ記述子はアクセサリ識別情報３０４となり得る。したがって、いくつかの実施形態では、かかる認証プロセスが既に、使用されている通信プロトコル／規格の通常プロトコルの一部であれば、ホストデバイス３１０が要求３０２を送る必要がなく、かつ／又はアクセサリ３８０が、使用されている通信プロトコル／規格の通常プロトコル外にアクセサリ識別情報３０４を別途送る必要がない場合がある。
【００５４】
ホストデバイス３１０がアクセサリ３８０からアクセサリ識別情報３０４を受信したとき、アクセサリ識別情報３０４がホストデバイス３１０によって有効であると認識されれば、ホストデバイス３１０はアクセサリ３８０を認証し得る。アクセサリ３０８がホストデバイス３１０で使用できる有効なアクセサリであれば、ホストデバイス３１０は、ホストデバイス３１０に記憶された１つ以上のアクセサリファームウェアイメージから適切なアクセサリファームウェアイメージ３０８を選択し得る。ホストデバイス３１０は、アクセサリ識別情報３０４内に提供された情報（例えば、アクセサリ３０８の種類、機能、製造業者、及び／又はモデル）に基づいてアクセサリファームウェアイメージ３０８を選択し得る。
【００５５】
いくつかの実施形態において、ホストデバイス３１０はまた、アクセサリ識別情報３０４を用いて、アクセサリ３８０がホストデバイス３１０に、アクセサリ３８０にアクセサリブートローダを送信して、アクセサリ３８０がアクセサリファームウェアイメージ３０８をロードできるようにするよう要求するかどうかを判断し得る。アクセサリ識別情報３０４が、アクセサリ３８０がアクセサリ３８０内に予めロードされたアクセサリブートローダを有していなことを示している場合には、ホストデバイス３１０は、アクセサリ３８０向けに適切なアクセサリブートローダ３０６を選択し、アクセサリ３８０にアクセサリブートローダ３０６を送信し得る。アクセサリ識別情報３０４が、アクセサリ３０８が（例えばアクセサリ３８０のＮＶＭに）予めロードされたアクセサリブートローダを有していることを示している場合には、ホストアクセサリ３８０は、アクセサリ３８０にアクセサリブートローダ３０６を送ることを省略し得る。他の実施形態では、ホストデバイス３１０が、アクセサリ３８０がアクセサリブートローダを必要とするかどうかをアクセサリ３８０に尋ねる要求をアクセサリ３８０に任意選択で送り得る。アクセサリ３８０は、アクセサリ３８０がアクセサリブートローダを必要とするかどうかを示す応答をホストデバイス３１０に送り得る。ホストデバイス３１０は、それに応じて、適切なアクセサリブートローダ３０６をアクセサリ３８０に送り得る。
【００５６】
次にアクセサリ３８０は、アクセサリブートローダ３０６（又はアクセサリ３８０のＮＶＭに予めロードされたアクセサリブートローダ）を実行して、アクセサリファームウェアイメージ３０８をホストデバイス３１０からアクセサリ３８０のメインメモリ（例えばＲＡＭ）にロードし得る。いくつかの実施形態では、アクセサリブートローダ３０６（又は予めロードされたアクセサリブートローダ）が、アクセサリ３８０のメインメモリ（例えばＲＡＭ）における特定のメモリロケーションにアクセサリファームウェアイメージ３０８をロードするようにアクセサリ３８０に命令するためのプログラムコードを含み得る。アクセサリブートローダ３０６（又は予めロードされたアクセサリブートローダ）はまた、アクセサリ３８０と関連のあるアクセサリファームウェアイメージ３０８のある部分だけを実行又はロードするための命令をアクセサリ３８０に提供し得る。いくつかの実施形態では、アクセサリブートローダ３０６（又は予めロードされたアクセサリブートローダ）を実行することの一部として、アクセサリ３８０が、アクセサリ３８０がホストデバイス３１０からアクセサリファームウェアイメージ３０８を受信する準備ができたことをホストデバイス３１０に示すための信号（例えば、コマンド、更新された起動ステータスを有する後続のアクセサリ識別情報など）をホストデバイス３１０に送り得る。この信号を受信すると、ホストデバイス３１０はアクセサリファームウェアイメージ３０８をアクセサリ３８０に送信し得る。代替として、他の実施形態では、ホストデバイス３１０が、アクセサリ３８０からの信号を必要とせずに、アクセサリファームウェアイメージ３０８をアクセサリ３８０に自動的に送信し得る。アクセサリ３８０はその後、ホストデバイス３１０から受信したアクセサリファームウェアイメージ３０８をアクセサリ３０８のメインメモリ（例えばＲＡＭ）に記憶し得る。
【００５７】
アクセサリファームウェアイメージ３０８がアクセサリ３８０のメインメモリ（例えばＲＡＭ）に記憶されると、アクセサリ３８０は、アクセサリ３８０のメインメモリ（例えばＲＡＭ）からアクセサリファームウェアイメージ３０８を実行することにより、自らのブートシーケンスを完了することができる。アクセサリファームウェアイメージ３０８は、アクセサリ３８０がアクセサリ３８０の機能を管理及び実行する目的で実行できるＯＳ及び／又はアプリケーションプログラムをロードするようアクセサリ３８０に命令するためのプログラムコードを含み得る。いくつかの実施形態では、アクセサリ３８０が起動目的で使用するアクセサリファームウェアイメージについてアクセサリ３８０はホストデバイス３１０に依存していることから、アクセサリファームウェアイメージ３０８によってロードされたアクセサリソフトウェアとホストデバイス３１０で実行中のソフトウェアとの間の互換性を確保することができる。例えば、いくつかの実施形態では、ホストデバイス３１０のホストファームウェアイメージが更新される度に、ホストデバイス３１０は、ホストデバイス３１０に記憶されたアクセサリファームウェアイメージを更新し得る。このようにして、ホストデバイス３１０に記憶されたアクセサリファームウェアイメージは、ホストデバイス３１０が起動時に使用するホストファームウェアイメージと整合しており、互換性のあるバージョンに維持されることができる。
【００５８】
アクセサリ３８０が互換性のあるＯＳを確立し、かつ／又はホストデバイス３１０と相互運用する目的でアクセサリ３８０が使用できるアプリケーションプログラムのロードを完了した後に、アクセサリ３８０は、ホストデバイス３１０とアプリケーションデータ３２２（例えば、ビデオデータ、オーディオデータなど）の交換を開始し得る。いくつかの実施形態では、アクセサリソフトウェアが正常にアクセサリ３８０にロードされた後、アクセサリ３８０とホストデバイス３１０との間の接続が再構成されるか、又はアプリケーションデータ３２２を交換するのに適したモード若しくは構成（例えば、速度、帯域幅、電圧、プロトコルなど）に再ブロビジョニングされ得る。例えば、一例示的実施形態では、ホストデバイス３１０とアクセサリ３８０との間の接続が、ＵＳＢリンクであり得、アプリケーションデータ３２２がビデオストリームであり得る。ＵＳＢリンクは、アクセサリファームウェアイメージ３０８の送信用に低速モードで設定された可能性がある。ただし、ビデオをＵＳＢリンク経由で適切にストリーミングするには、高速モードが必要とされる場合がある。そのため、ＵＳＢリンクは、アクセサリ３８０が自身のブートシーケンスを完了した後に、高速モードに再構成又は再プロビジョニングすることができる。いくつかの実施形態では、接続の再構成又は再プロビジョニングが、アクセサリ３８０からホストデバイス３１０に新しいアクセサリ識別情報を送ることを含み得る。新しいアクセサリ識別情報は、アクセサリ３８０が自身のブートシーケンスを完了したことと、アクセサリ３８０とホストデバイス３１０との間の接続をアプリケーションデータ３２２の送信のために再構成又は再プロビジョニングできることと、をホストデバイス３１０に示す目的で使用することができる。例えば、新しいアクセサリ識別情報は、その接続がアプリケーションデータ３２２を交換する目的で使用し得る、速度、帯域幅、電圧レベル、及び／又はプロトコルを示す情報を含み得る。
【００５９】
図４は、本発明の一実施形態に係る、ホストデバイス（例えばホストデバイス１１０、２１０、又は３１０）を使用してアクセサリ（例えば、アクセサリ１３０、１４０、２８０、又は３８０）を起動するための処理４００の流れ図を表す。ブロック４０２で、ホストデバイスは、ホストデバイスとアクセサリとの間で接続が確立されたことを検出し得る。上記のとおり、様々な接続方式が使用され得る。
【００６０】
ブロック４０４で、ホストデバイスとアクセサリとの間の接続を検出したことに応じて、ホストデバイスはアクセサリに、アクセサリ識別情報を求める要求を、例えば、上記のように送り得る。ブロック４０６で、ホストデバイスは、アクセサリを識別するためのアクセサリ識別情報をアクセサリから受信し得る。このアクセサリ識別情報は、上記のとおり、１つ以上の情報を含み得る。ブロック４０８で、ホストデバイスは、アクセサリ識別情報内に提供された情報に基づいて、アクセサリが認証可能かどうか、即ち、そのアクセサリがそのホストデバイスで使用できる有効なアクセサリかどうかを判定し得る。ホストデバイスがアクセサリ識別情報を認識しない場合（即ち、アクセサリが不明の機器である）、又は、そのアクセサリの特徴若しくは機能がそのホストデバイスで使用できない、若しくはそのホストデバイスがこの特定のアクセサリに適したアクセサリファームウェアイメージを有しないと判定した場合には、その特定アクセサリがホストデバイスで使用できないことから、その処理は終了し得る。ホストデバイスが、アクセサリ識別情報内に提供された情報に基づいてそのアクセサリを有効なアクセサリとして認識した場合には、処理はブロック４１０へと続行されることができる。
【００６１】
ブロック４１０で、ホストデバイスは、アクセサリが予めロードされたアクセサリブートローダをアクセサリ内に有するかどうかを判定する。いくつかの実施形態では、ホストデバイスが、上記のとおり、アクセサリ識別情報内の情報を用いて、アクセサリが予めロードされたアクセサリブートローダを有するかどうかを判定し得る。アクセサリが予めロードされたアクセサリブートローダプログラムを有するとホストデバイスが判定した場合、処理はブロック４１４へと続行され得る。アクセサリが予めロードされたアクセサリブートローダを有しないとホストデバイスが判定した場合、ホストデバイスは、そのホストデバイスに記憶され得る１つ以上のアクセサリブートローダの中から、（例えば、アクセサリ識別情報内に提供された情報に基づいて）そのアクセサリに適したアクセサリブートローダを選択し得る。ホストデバイスは、ブロック４１２で、選択したアクセサリブートローダをアクセサリに送信した後、アクセサリファームウェアイメージをアクセサリに送信し得る。アクセサリブートローダは、アクセサリがホストデバイスからアクセサリファームウェアイメージを適切にロードする目的で使用できる実行可能プログラムコードなどの情報を含み得る。例えば、いくつかの実施形態において、アクセサリブートローダは、特定のメモリロケーションにホストデバイスからアクセサリファームウェアイメージをロードするようアクセサリに命令する情報、及び／又はアクセサリと関連のあるアクセサリファームウェアイメージのある部分だけを実行若しくはロードするようアクセサリに命令する情報を含み得る。
【００６２】
ブロック４１４で、ホストデバイスは、ホストデバイスに記憶され得る１つ以上のアクセサリファームウェアイメージの中から、そのアクセサリにとって好適なアクセサリファームウェアイメージを選択する。ホストデバイスは、アクセサリ識別情報内に提供された情報（例えば、アクセサリの種類、機能、製造業者、及び／又はモデル）に基づいてアクセサリファームウェアイメージを選択し得る。選択されたアクセサリファームウェアイメージは、アクセサリが、ホストデバイスとアプリケーションデータ（例えば、ビデオデータ、オーディオデータなど）を交換して相互運用できるようにする目的でアクセサリが使用できる、実行可能プログラムコードなどの情報を含み得る。例えば、選択されたアクセサリファームウェアイメージは、アクセサリが、ホストデバイスで実行中のソフトウェアと互換性のあるＯＳ及び／又はアプリケーションプログラムなどのアクセサリソフトウェアをロードする目的で実行できるプログラムコードを含み得る。ブロック４１６で、ホストデバイスが、ホストデバイスとアクセサリとの間の接続を介して、選択されたアクセサリファームウェアイメージをアクセサリに送信し得る。アクセサリはその後、ホストデバイスから受信した選択されたアクセサリファームウェアイメージを記憶及び実行することにより、自身のブートシーケンスを完了し得る。
【００６３】
本明細書に記載の処理４００は例示的なものであり、変更及び改変が可能であることが理解されよう。逐次的なものとして記載されている行為は、並行して実行することができ、行為の順序は変更することができ、行為は改変又は組み合わせることができる。
【００６４】
図５は、一実施形態に係る、アクセサリ（例えば、アクセサリ１３０、１４０、２８０、３８０）を起動するための処理５００の流れ図を表す。処理５００は、例えば図３のアクセサリ３８０によって実行することができる。いくつかの実施形態では、アクセサリのブートシーケンスが複数の段階で実施され、各段階では、例えば、ＯＳ及び／又はアプリケーションプログラムなどのソフトウェアをアクセサリのメインメモリにロードすることにより、アクセサリが、ホストデバイスとアプリケーションデータを交換し、相互運用できるようにする１つ以上のプログラムコードが特定の順序で実行され得る。例えば、いくつかの実施形態では、アクセサリが、次のプログラムコードを、（１）ホストインターフェース初期化コード、（２）アクセサリブートローダ、（３）アクセサリファームウェアイメージ、という順序で実行する３段階のブートシーケンスを用いる。
【００６５】
いくつかの実施形態に係るブートシーケンスの第１段階では、アクセサリが電力を受けたか、若しくは電源が投入されると、又はアクセサリがリセット若しくはスリープ状態から脱すると、アクセサリは、アクセサリの不揮発性メモリに記憶されたホストインターフェース初期化コードを実行し始め得る。ブロック５０２で、ホストインターフェース初期化コードの実行により、アクセサリがそのアクセサリのホストインターフェースを初期化して、ホストインターフェースがホストデバイスと通信できるようになる。ホストインターフェースを初期化することは、ホストインターフェースに電力を供給することと、ホストインターフェースを通じてホストデバイスに対してアクセサリを認証しホストデバイスとの通信チャネルを確立することと、を含み得る。
【００６６】
いくつかの実施形態では、アクセサリを認証することが、アクセサリを識別するためのアクセサリ識別情報を提供することを求める要求をホストデバイスから受信することを含み得る（ブロック５０４）。アクセサリ識別情報の提供を求める要求は、アクセサリのホストインターフェースで検出された、特定の電圧、電流、インピーダンス、容量、周波数、若しくは他の電気的特性、又はかかる電気的特性の変化、あるいは通信プロトコル／規格に準拠した機器ＩＤ要求（例えばＵＳＢ機器要求）であり得る。
【００６７】
ブロック５０４における要求に応じて、アクセサリは、ブロック５０６でホストデバイスにアクセサリ識別情報を送り得る。アクセサリ識別情報は、アクセサリの種類、機能、製造業者、及び／又はモデルを示し得る。アクセサリ識別情報はまた、アクセサリが予めロードされたアクセサリブートローダをそのアクセサリに有するかどうかを示す情報も含み得る。ホストデバイスは、この情報を用いて、そのホストデバイスがアクセサリにアクセサリブートローダを送るかどうかを判定し得る。いくつかの実施形態では、このアクセサリ識別情報は、通信プロトコル／規格に準拠した機器ＩＤ（例えばＵＳＢ記述子）であり得る。アクセサリ識別情報はまた、アクセサリのホストインターフェースがサポートできる速度、帯域幅、及び／又は電圧レベルを示す他の情報も含み得る。
【００６８】
いくつかの実施形態において、アクセサリが予めロードされたアクセサリブートローダを記憶していなければ、そのアクセサリは、ブロック５０８でホストデバイスからアクセサリブートローダを受信し得る。ホストインターフェース初期化コードは、アクセサリが、ホストデバイスから受信したアクセサリブートローダをアクセサリのメインメモリに記憶する目的で実行できるプログラムコードを含み得る。例えば、ホストインターフェース初期化コードは、ホストデバイスから受信したアクセサリブートローダをアクセサリのメインメモリにおける特定のロケーションにロードするようアクセサリに指示するための命令を格納しているプログラムコードを含み得る。
【００６９】
いくつかの実施形態に係るブートシーケンスの第２段階において、アクセサリは、アクセサリブートローダの実行を開始する。ブロック５１０で、アクセサリは、アクセサリブートローダ内のプログラムコードを実行して、アクセサリのメインメモリ（例えばＲＡＭ）を初期化し、アクセサリファームウェアイメージを記憶できるようにする。いくつかの実施形態において、これは、アクセサリのメインメモリ（例えばＲＡＭ）における特定のメモリロケーションにアクセサリファームウェアイメージをロードするように、かつ／又はアクセサリと関連のあるアクセサリファームウェアイメージのある部分だけを実行若しくはロードするように、アクセサリに命令することを含み得る。ブロック５１２で、アクセサリはホストデバイスからアクセサリファームウェアイメージを受信する。ブロック５１４で、アクセサリは、ホストデバイスから受信したアクセサリファームウェアを、アクセサリブートローダ内に提供された命令にしたがってアクセサリのメインメモリ（例えばＲＡＭ）に記憶する。
【００７０】
いくつかの実施形態に係るブートシーケンスの第３段階では、アクセサリが、アクセサリのメインメモリ（例えばＲＡＭ）からアクセサリファームウェアイメージを実行する。アクセサリファームウェアイメージは、アクセサリがＯＳを確立するか、又はアクセサリがホストデバイスとアプリケーションデータ（例えば、ビデオデータ、オーディオデータなど）を交換する目的で実行できる、アプリケーションプログラム、若しくは、他のアクセサリソフトウェアをロードする目的で実行できるプログラムコードを含み得る。ブロック５１６で、アクセサリは、ホストデバイスと互換性があり、相互運用できるオペレーティングシステム（ＯＳ）を確立する。ＯＳは、アクセサリが自身の構成要素（例えば、メインメモリ、アクセサリ固有のハードウェア、ユーザインターフェースなど）及び機能を管理する目的で使用できる。ブロック５１８で、アクセサリは、アクセサリがホストデバイスと相互運用する（例えばアプリケーションデータを交換する）目的、及び／又はアクセサリの機能を実行する目的で使用できるアプリケーションプログラムをロードする。いくつかの実施形態において、ホストデバイスとアクセサリとの間の接続は、アクセサリが自身のブートシーケンスを完了した後に再プロビジョニング又は再構成することができる。この接続は、アクセサリの機能に応じて、アプリケーションデータを交換するのに適したモード又は構成（例えば、速度、帯域幅、プロトコルなど）に再プロビジョニング又は再構成され得る。
【００７１】
本明細書に記載の処理５００は例示的なものであり、変更及び改変が可能であることが理解されよう。逐次的なものとして記載されている行為は、並行して実行することができ、行為の順序は変更することができ、行為は改変又は組み合わせることができる。
【００７２】
図６は、上記コネクタのうちのいくつかを実現する目的で使用できるプラグコネクタ１０００の一実施形態の簡略斜視図を表す。図６に示すとおり、プラグコネクタ１０００は、本体１００３と、本体１００３からコネクタの長手に対して平行な方向に長手方向に延びるタブ部１００４と、を含む。タブ部１００４は、嵌合時に、対応するレセプタクルコネクタに挿入されるサイズである。タブ部１００４は、第１の主面１００４ａに形成された第１のコンタクト領域１００６ａと、面１００４ａの反対側にある第２の主面１００４ｂに形成された第２のコンタクト領域１００６ｂと、を含む。面１００４ａ及び１００４ｂは、タブ部１００４の遠位端から脊柱部１００９へと延びている。タブ部１００４が対応するホストレセプタクルコネクタに挿入されると、脊柱部１００９が、ホストレセプタクルコネクタ又はホストデバイスの筐体に当接する。タブ部１００４はまた、第１及び第２の主面１００４ａと１００４ｂとの間に延びる第１及び第２の対向面１００４ｃ及び１００４ｄを含む。一特定実施形態において、タブ部１００４は幅が６．６ｍｍ、厚さが１．５ｍｍであり、挿入深さ（タブ部１００４の先端から脊柱部１００９までの距離）が７．９ｍｍである。
【００７３】
タブ部１００４の構造及び形状は、ステンレス鋼又は別の硬質伝導性材料から製作可能な接地リング１００５によって画定される。プラグコネクタ１０００は、接地リング１００５の側面に湾曲ポケットとして形成された、接地コンタクトとしてもまた使用され得る保持構造部１００２ａ及び１００２ｂを含む。図６では、本体１００３が透明形式（点線による）で示されており、本体１００３内の特定の構成要素が見えるようになっている。図示のとおり、本体１００３内には、コンタクト領域１００６ａと１００６ｂとの間にある接地リング１００５内へ、プラグコネクタ１０００の遠位端の方に延びているプリント回路基板（ＰＣＢ）１００７がある。コネクタ１０００と関連付けられた機器に関する情報を提供するため、かつ／あるいは認証、識別、コンタクト構成、電流若しくは電力調整、並びに／又は信号及び／若しくは電力変換などの特定機能を実行するために、特定用途向け集積回路（ＡＳＩＣ）チップ１００８ａ及び１００８ｂなど１つ以上の集積回路（ＩＣ）をＰＣＢ１００７に連結することができる。
【００７４】
ボンディングパッド１０１０もまた、本体１００３内でＰＣＢ１００７の端部付近に形成し得る。各々のボンディングパッドは、コンタクト領域１００６ａ及び１００６ｂ内のコンタクト又はコンタクト対に接続することができる。その後、これらのコンタクトから、コネクタ１０００と関連付けられた機器内の回路への電気的接続を提供するために、ボンディングパッドにワイヤ（図示せず）をはんだ付けしても良い。ただし、いくつかの実施形態では、ボンディングパッドが不要で、代わりに、プラグコネクタ１０００のコンタクト及び構成要素と、コネクタ１０００と関連付けられた機器内にある他の回路と、の間の全ての電気的接続が、回路が連結されるＰＣＢ上の配線によって、及び／又はコネクタ１０００と関連付けられた機器内の複数のＰＣＢ間の相互接続によって行われる。
【００７５】
図６に示すとおり、最大８つの外部コンタクト１００６（１）〜１００６（８）を、コンタクト領域１００６ａ内で単列に離間配置することができる。同様の１組の８つのコンタクト（図示せず）を、コンタクト領域１００６ｂ内で単列に離間配置することができる。この２列のコンタクトは互いに直接に対向しており、コンタクト領域１００６ａ内の各コンタクトはコネクタの対向する側のコンタクト領域１００６ｂ内の対応するコンタクトに電気的に接続されている。コンタクト１００６（１）〜１００６（８）は、デジタル信号及びアナログ信号並びに電力及び接地を含む多種多様の信号を伝送するために使用され得る。プラグコネクタ１０００がレセプタクルコネクタと正しく係合すると、コンタクト１００６（１）〜１００６（８）の各々が、レセプタクルコネクタの対応コンタクトと電気的に接続する。
【００７６】
図７Ａは、プラグコネクタ１０００が連結できるレセプタクルコネクタ１０４０の一実施形態の簡略斜視図を表す。レセプタクルコネクタ１０４０は、空洞１０４７を画定し、空洞１０４７内に最大８つのコンタクト１０４６（１）〜１０４６（８）を収容する筐体１０４２を含む。筐体１０４２は、ホストデバイスの筐体に統合することができる。作動時には、プラグコネクタ１０００などのコネクタプラグを空洞１０４７に挿入して、コンタクト１００６（１）〜１００６（８）をそれぞれのコンタクト１０４６（１）〜１０４６（８）に電気的に連結することができる。レセプタクルコンタクト１０４６（１）〜１０４６（８）の各々は、自身のそれぞれのプラグコンタクトを、レセプタクルコネクタ１０４０が収容されている電気機器（例えばホストデバイス）と関連付けられた回路に電気的に接続する。なお、レセプタクルコネクタ１０４０は、薄くできるように片側にコンタクトを含むことに留意されたい。他の実施形態では、レセプタクルコネクタ１０４０が各側にコンタクトを有する一方、プラグコネクタ１０００は片側のみにコンタクトを有する。
【００７７】
図７Ｂは、レセプタクルコネクタ１０４０の平面断面図を表す。図７Ｂに示すとおり、レセプタクルコネクタ１０４０のコンタクト１０４６（１）〜１０４６（８）は、単列に離間配置されている。これらのコンタクトは、筐体１０４２によって画定される空洞１０４７内部に位置決めされる。レセプタクルコネクタ１０４０はまた、プラグコネクタ１０００で保持構造部１００２ａ及び１００２ｂと係合して、コネクタが嵌合したら空洞１０４７内でプラグコネクタ１０００を固定する側面保持機構１０４６ａ及び１０４６ｂ（図示せず）も含む。レセプタクルコネクタ１０４０はまた、信号コンタクトの列のわずかに後ろに位置し、プラグコネクタ１０００が空洞１０４７内に挿入された時期を検出し、かつコネクタの相互係合が解除されるときにはプラグコネクタ１０００が空洞１０４７から出た時期を検出する目的で使用できる２つのコンタクト１０４８（１）及び１０４８（２）も含む。
【００７８】
プラグコネクタ１０００のタブ部１００４が嵌合時にレセプタクルコネクタ１０４０の空洞１０４７内部に完全に挿入されると、コンタクト領域１００６ａのコンタクト１００６（１）〜１００６（８）又は１００６ｂのコンタクトの各々が、レセプタクルコネクタ１０４０に対するプラグコネクタ１０００の挿入向きに応じて、コンタクト１０４６（１）〜１０４６（８）の１つに物理的かつ電気的に連結される。そのため、コンタクト１０４６（１）は、挿入向きに応じてコンタクト１００６（１）又は１００６（８）のどちらかに物理的に接続され、データコンタクト１０４６（２）及び１０４６（３）は、挿入向きに応じて、データコンタクト１００６（２）及び１００６（３）、又はデータコンタクト１００６（７）及び１００６（６）のどちらかと接続する、など。
【００７９】
図８Ａは、本発明の一実施形態に係る、プラグコネクタ１０００用のピンアウト１１０１（又は互換レセプタクルコネクタ１０４０用のピンアウト）の１つの特定実装形態を表す。コンタクト領域１００６ａのプラグコネクタ１０００の一方の側において、図８Ａに示すピンアウト１１０１は、電気的に連結されて電力伝送専用の単一コンタクトとして機能する２つのホスト電力コンタクト１００６（４）及び１００６（５）と、アクセサリＩＤコンタクト１００６（８）と、アクセサリ電力コンタクト１００６（１）と、４つのデータコンタクト１００６（２）、１００６（３）、１００６（６）、及び１００６（７）と、を含む。ホスト電力コンタクト１００６（４）及び１００６（５）は、ホストデバイスにとって妥当な電力要件に対処できるサイズにすることができ、例えば、アクセサリから３〜２０ボルトを伝送して、プラグコネクタ１０００に接続されたホストデバイスを充電するように設計することができる。ホスト電力コンタクト１００６（４）及び１００６（５）は、電力を接地リング１００５の側面からできるだけ遠ざけることによってシグナルインテグリティを高めるために、コンタクト領域１００６ａ及び１００６ｂの中心に位置している。
【００８０】
アクセサリ電力コンタクト１００６（１）は、ホストからアクセサリに電力を提供する、アクセサリ電力信号のために使用することができる。アクセサリ電力信号は、例えば、５ボルト以上に対して３．３ボルトという具合に、ホスト電力コンタクト１００６（４）及び１００６（５）経由で受信する信号の電力よりも低い電圧の信号であるのが典型的である。アクセサリＩＤコンタクト１００６（８）は、ホストデバイスがアクセサリを認証できるようにし、かつアクセサリが自身の機能に関する情報をホストデバイスに通信できるようにする通信チャネルを提供する。
【００８１】
データコンタクト１００６（２）、１００６（３）、１００６（６）及び１００６（７）は、１つ以上の通信プロトコルを用いたホストデバイスとアクセサリとの間でのデータ通信目的で使用することができる。データコンタクト１００６（２）及び１００６（３）が、ホスト電力コンタクト１００６（４）及び１００６（５）に隣接して、及びホスト電力コンタクト１００６（４）及び１００６（５）の一方の側に位置決めされるのに対し、データコンタクト１００６（６）及び１００６（７）は、ホスト電力コンタクト１００６（４）及び１００６（５）に隣接はしているが、ホスト電力コンタクト１００６（４）及び１００６（５）のもう一方の側に位置決めされる。アクセサリ電力コンタクト１００６（１）及びアクセサリＩＤコンタクト１００６（８）は、コネクタの各々の端に位置する。データコンタクトは、アクセサリＩＤコンタクト１００６（８）経由で送られるどの信号よりも２桁又は３桁高速に動作する高速データコンタクトであり得るため、このことによりアクセサリＩＤ信号は、高速データ回線に対しては本質的にＤＣ信号として見える。そのため、データコンタクト１００６（２）及び１００６（３）を、アクセサリ電力コンタクト１００６（１）とホスト電力コンタクト１００６（４）との間に位置づけ、かつデータコンタクト１００６（６）及び１００６（７）をホスト電力コンタクト１００６（５）とアクセサリＩＤコンタクト１００６（８）との間に位置づけると、ＤＣ信号用又は本質的にＤＣ信号用に指定されたコンタクト間でデータ信号を挟むことにより、シグナルインテグリティが高まる。
【００８２】
図８Ｂは、本発明の別の実施形態に係る、プラグコネクタ１０００用のピンアウト１１５１（又は互換レセプタクルコネクタ１０４０用のピンアウト）の別の特定実装形態を表す。ピンアウト１１０１と同様、ピンアウト１１５１を有するプラグコネクタもリバーシブルコネクタである。換言すれば、プラグコネクタがホストデバイスの対応ホストコネクタと嵌合する向きに基づいて、コンタクト領域１００６ａ又は１００６ｂのどちらかのコンタクトが、ホストデバイスの対応ホストコネクタのコンタクトと物理的及び電気的に接触している。図８Ｂに表すとおり、コンタクト領域１００６ａ内に８つのコンタクト、及びコンタクト領域１００６ｂ内に８つのコンタクトが配置されている。
【００８３】
図８Ｂに示すピンアウト１１５１は、アダプタ４０とホストデバイスとの間でアダプタ識別信号を伝送するためのアクセサリＩＤコンタクトとして機能できる２つのコンタクト１００６（１）及び１００６（１２）を含む。コンタクト１００６（１）及び１００６（１２）は、互いに電気的に接続されている。図８Ｂに示すピンアウトは、次の４対のデータコンタクトを有することができる。（ａ）１００６（２）及び１００６（３）、（ｂ）１００６（６）及び１００６（７）、（ｃ）１００６（１０）及び１００６（１２）、並びに（ｄ）１００６（１４）及び１００６（１５）。この特定実施形態では、対向するデータコンタクト、例えば１００６（２）及び１００６（１０）が互いに電気的に接続されている。ピンアウト１１５１は、互いに電気的に接続され得るホスト電力コンタクト１００６（４）又は１００６（１３）を更に含む。ホスト電力コンタクト１００６（４）又は１００６（１３）は、プラグコネクタ１０００と嵌合しているホストデバイスに電力を伝送する。例えば、プラグコネクタ１０００は、ホストデバイスに電力を供給するように設計されている電源システムの一部であり得る。この事例では、ホスト電力コンタクト１００６（４）又は１００６（１３）のどちらかが、例えば、ホストデバイスのバッテリーを充電する目的で電源からホストデバイスに電力を伝送し得る。
【００８４】
図８Ｂのピンアウト１１５１は、互いに電気的に接続され得るアクセサリ電力コンタクト１００６（５）及び１００６（１６）を更に含み得る。アクセサリ電力コンタクトはホストデバイスから接続されたアクセサリに電力を伝送する。例えば、いくつかの場合、ホストデバイスに接続されたアクセサリは、電源を内蔵しておらず、ホストデバイスから電力を得ることがある。この事例では、ホストデバイスが、プラグコネクタ１０００の向きに応じて、アクセサリコンタクトのどちらかを経由してアクセサリに電力を供給することができる。図８Ｂのピンアウト１１５１は、互いに電気的に接続された２つの接地コンタクト１００６（８）及び１００６（９）を更に含み得る。これらの接地コンタクトは、プラグコネクタ１０００用の接地経路を提供する。
【００８５】
回路、論理モジュール、プロセッサ及び／又はその他の構成要素は、本明細書において、様々な動作を実行するように「構成」されているものとして記載され得る。当業者には、そのような設定が、実装に応じて、具体的な構成要素の設計、セットアップ、相互接続、及び／又はプログラミングを通じて達成することができ、また、同様に実装に応じて、構成された構成要素を、異なる動作のために再構成可能とする場合も、又は再構成可能としない場合もあることが理解されるであろう。例えば、好適な実行可能なコードを提供することによって、プログラマブルプロセッサを構成することができ、論理ゲートと他の回路素子とを適切に接続することによって、専用論理回路を構成することができる、などである。
【００８６】
上述の実施形態は、具体的なハードウェア及びソフトウェアの構成要素に言及する場合があるが、当業者には、ハードウェア及び／又はソフトウェアの構成要素の、異なる組み合わせもまた使用することができ、ハードウェアの形態で実施されているとして説明される特定の動作はまた、ソフトウェアの形態でもまた実施することができ、又は逆も同様であることが理解されるであろう。
【００８７】
本発明の様々な機能が組み込まれたコンピュータプログラムは、様々な永続的なコンピュータ可読記憶媒体にコード化することができ、好適な媒体としては、磁気ディスク又はテープ、コンパクトディスク（ＣＤ）又はＤＶＤ（デジタル汎用ディスク）などの光学的記憶媒体、フラッシュメモリなどが挙げられる。プログラムコードでコード化されるコンピュータ可読記憶媒体は、互換性のあるデバイスとともにパッケージ化するか、又は他のデバイスとは別個に提供することができる。更には、プログラムコードは、インターネットを含めた、様々なプロトコルに準拠する有線ネットワーク、光ネットワーク、及び／又は無線ネットワークを介して、コード化して送信することができるため、例えばインターネットダウンロードを介して、配信が可能となる。
【００８８】
それゆえ、本発明は、特定の実施形態に関して記載されているが、本発明は、以下の特許請求の範囲内での、全ての修正形態及び均等物を包含することを意図するものであることが理解されるであろう。
【図１Ａ】
2015531132.tif 000003
【図１Ｂ】
2015531132.tif 000004
【図２】
2015531132.tif 000005
【図３】
2015531132.tif 000006
【図４】
2015531132.tif 000007
【図５】
2015531132.tif 000008
【図６】
2015531132.tif 000009
【図７Ａ】
2015531132.tif 000010
【図７Ｂ】
2015531132.tif 000011
【図８Ａ】
2015531132.tif 000012
【図８Ｂ】
2015531132.tif 000013
【手続補正書】
【提出日】平成27年6月30日(2015.6.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自身に記憶されたホストファームウェアイメージと複数のアクセサリファームウェアイメージとを含むホストデバイスを使用してアクセサリを起動する方法であって、
前記ホストデバイスが前記ホストデバイスと前記アクセサリとの間の接続を検出するステップと、
前記ホストデバイスが前記アクセサリにアクセサリ識別情報を求める要求を送るステップと、
前記ホストデバイスが前記アクセサリから前記アクセサリ識別情報を受信するステップと、
前記アクセサリ識別情報に少なくとも部分的に基づいて、前記ホストデバイスが前記複数のアクセサリファームウェアイメージの中からアクセサリファームウェアイメージを選択するステップであって、前記選択されたアクセサリファームウェアイメージは、前記アクセサリ上で実行されるオペレーティングシステムを確立するための、前記アクセサリによって使用可能な情報を含むステップと、
前記ホストデバイスが前記選択されたアクセサリファームウェアイメージを前記アクセサリに送信するステップと、
を含むことを特徴とする方法。
【請求項２】
前記選択されたアクセサリファームウェアイメージを送信する前に前記ホストデバイスが前記アクセサリにアクセサリブートローダを送信するステップであって、前記アクセサリブートローダが、前記選択されたアクセサリファームウェアイメージを前記アクセサリのランダムアクセスメモリにロードする目的で前記アクセサリによって実行される、ステップを更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ホストデバイスに記憶された前記複数のアクセサリファームウェアイメージの各々が、前記ホストファームウェアイメージに部分的に基づく、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記ホストデバイスに記憶された前記複数のアクセサリファームウェアイメージの各々が、前記ホストファームウェアイメージと互換性のあるバージョンに維持される、ことを特徴とする請求項３に記載の方法。
【請求項５】
前記選択されたアクセサリファームウェアイメージが、前記ホストデバイスと前記アクセサリとの間のユニバーサルシリアルバス（ＵＳＢ）リンクを介して送信される
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記アクセサリ識別情報がＵＳＢ記述子であることを特徴とする請求項５に記載の方法。
【請求項７】
アクセサリを起動する方法であって、
前記アクセサリが前記アクセサリに連結されたホストデバイスからアクセサリ識別情報を求める要求を受信するステップと、
前記アクセサリが前記ホストデバイスに前記アクセサリ識別情報を送るステップと、
前記アクセサリが前記ホストデバイスから、前記アクセサリ識別情報と関連付けられたアクセサリファームウェアイメージを受信するステップと、
前記アクセサリを起動するために、前記アクセサリが前記アクセサリファームウェアイメージを実行するステップと、
を含み、
前記ホストデバイスから前記アクセサリファームウェアイメージを受信する前に、前記アクセサリがいかなるアクセサリファームウェアイメージも記憶しない、ことを特徴とする方法。
【請求項８】
前記アクセサリが前記アクセサリファームウェアイメージ内の情報を用いて前記アクセサリでオペレーティングシステムを確立するステップを更に含む、ことを特徴とする請求項７に記載の方法。
【請求項９】
前記アクセサリファームウェアイメージを受信する前に前記アクセサリが前記ホストデバイスからアクセサリブートローダを受信するステップと、
前記アクセサリが、前記アクセサリブートローダを用いて前記アクセサリファームウェアイメージを前記アクセサリのランダムアクセスメモリにロードするステップと、を更に含む、ことを特徴とする請求項７に記載の方法。
【請求項１０】
前記アクセサリが１つ以上の不揮発性メモリデバイスを備え、前記アクセサリファームウェアイメージが、前記１つ以上の不揮発性メモリデバイスの各々のメモリ容量よりも大きなサイズのものである、ことを特徴とする請求項７に記載の方法。
【請求項１１】
前記アクセサリファームウェアイメージが前記ホストデバイスと前記アクセサリとの間のユニバーサルシリアルバス（ＵＳＢ）リンクを介して受信されることを特徴とする請求項７に記載の方法。
【請求項１２】
前記アクセサリ識別情報が前記アクセサリに関連付けられるＵＳＢ記述子であることを特徴とする請求項１１に記載の方法。
【請求項１３】
ホストデバイスであって、
プロセッサと、
前記プロセッサに連結された記憶構成要素であって、前記ホストデバイスと関連付けられたホストファームウェアイメージと、各々が少なくとも１つのアクセサリと関連付けられた複数のアクセサリファームウェアイメージと、を含む複数のファームウェアイメージを記憶する記憶構成要素とを備え、
前記記憶構成要素と連携する前記プロセッサが、
アクセサリと前記ホストデバイスとの接続を検出し、
前記アクセサリからアクセサリ識別情報を受信し、
前記アクセサリ識別情報に少なくとも部分的に基づいて前記複数のアクセサリファームウェアイメージの中からアクセサリファームウェアイメージを選択し、
ここで前記選択されたアクセサリファームウェアイメージは、前記アクセサリ上で実行されるオペレーティングシステムを確立するため、前記アクセサリによって使用可能である；
前記選択されたアクセサリファームウェアイメージを前記アクセサリに通信するように構成されている、ことを特徴とするホストデバイス。
【請求項１４】
前記選択されたアクセサリファームウェアが、前記アクセサリのブートシーケンス中に前記アクセサリによって使用可能である、ことを特徴とする請求項１３に記載のホストデバイス。
【請求項１５】
前記記憶構成要素と連携する前記プロセッサが、
前記選択されたアクセサリファームウェアイメージを前記アクセサリに通信する前に、前記アクセサリにアクセサリブートローダを通信するように更に構成されており、これにおいて前記ブートローダが、前記選択されたアクセサリファームウェアイメージを前記アクセサリのメモリにロードする目的で前記アクセサリによって使用可能である、ことを特徴とする請求項１３に記載のホストデバイス。
【請求項１６】
前記ホストデバイスに記憶された前記複数のアクセサリファームウェアイメージの各々が、前記ホストファームウェアイメージと互換性のあるバージョンに維持される、ことを特徴とする請求項１３に記載のホストデバイス。
【請求項１７】
前記選択されたアクセサリファームウェアイメージが、前記ホストデバイスと前記アクセサリとの間のユニバーサルシリアルバス（ＵＳＢ）リンクを介して通信されることを特徴とする請求項１３に記載のホストデバイス。
【請求項１８】
前記アクセサリ識別情報はＵＳＢ記述子であることを特徴とする請求項１７に記載のホストデバイス。
【請求項１９】
コントローラと、
前記コントローラに連結されたランダムアクセスメモリ（ＲＡＭ）と、
前記コントローラに連結された不揮発性メモリと、を備えるアクセサリであって、
前記コントローラが、
ホストデバイスからアクセサリファームウェアイメージを受信し、
前記アクセサリファームウェアイメージを前記ＲＡＭに記憶し、
前記アクセサリに、当該アクセサリ上で実行されるオペレーティングシステムを確立できるように、前記ＲＡＭから前記アクセサリファームウェアイメージを実行するように構成されており、
前記ホストデバイスから前記アクセサリファームウェアイメージを受信する前に前記ＲＡＭ又は前記不揮発性メモリにいかなるアクセサリファームウェアイメージも記憶しない、ことを特徴とするアクセサリ。
【請求項２０】
前記コントローラが、
前記アクセサリファームウェアイメージを受信する前に、前記ホストデバイスからアクセサリブートローダを受信するように更に構成されており、これにおいて前記アクセサリブートローダが、前記アクセサリファームウェアイメージを前記アクセサリの前記ＲＡＭにロードする目的で前記アクセサリによって使用される、ことを特徴とする請求項１９に記載のアクセサリ。
【請求項２１】
前記アクセサリファームウェアイメージが、前記不揮発性メモリのメモリ容量よりも大きなサイズのものである、ことを特徴とする請求項１９に記載のアクセサリ。
【請求項２２】
前記アクセサリファームウェアイメージが、前記ホストデバイスと前記アクセサリとの間のユニバーサルシリアルバス（ＵＳＢ）リンクを介して受信される、ことを特徴とする請求項１９に記載のアクセサリ。
【請求項２３】
前記アクセサリ識別情報がＵＳＢ記述子である、ことを特徴とする請求項２２に記載のアクセサリ。
【請求項２４】
オペレーティングが前記アクセサリで確立され、実行された後、デバイスドライバを前記アクセサリに送信するステップを更に有することを特徴とする請求項１に記載の方法。
【請求項２５】
前記アクセサリにてオペレーティングシステムが確立した後、前記アクセサリが前記ホストデバイスからデバイスドライバを取得するために前記ホストデバイスと通信するステップを更に有することを特徴とする請求項８に記載の方法。
【請求項２６】
前記アクセサリにてオペレーティングが確立する以前に、前記アクセサリと前記ホストデバイス間の通信チャネルを確立するため、前記アクセサリがホスト初期化コードを実行するステップを更に有することを特徴とする請求項８に記載の方法。
【請求項２７】
前記アクセサリにてオペレーティングシステムが確立する前に、前記アクセサリを前記ホストデバイスに対して認証させるステップを更に有することを特徴とする請求項２６に記載の方法。
【請求項２８】
前記アクセサリ識別情報は、前記アクセサリが予めロードされるアクセサリブートローダを有するかどうかを示す情報を有することを特徴とする請求項２７に記載の方法。
【請求項２９】
前記プロセッサは、前記アクセサリにてオペレーティングシステムが確立した後に、前記アクセサリにデバイスドライバを送信する、ことを特徴とする請求項１３に記載のホストデバイス。
【請求項３０】
前記コントローラは更に、前記アクセサリにてオペレーティングシステムが確立し、実行された後、前記ホストデバイスからデバイスドライバを取得するために前記ホストデバイスと通信することを特徴とする請求項１９に記載のアクセサリ。
【国際調査報告】
2015531132.tif 000014
2015531132.tif 000015