(57)【要約】  デバイスの識別を検証するためのシステム。コーデックは、ジャックに結合されたデバイスの少なくとも一つの電気的特性を測定し、この測定された電気的特性に基づき前記デバイスを識別するように構成される。更新可能なデータベースは、少なくとも一つのデバイスの電気的特性を格納し、そのデバイスの電気的特性は、前記コーデックによって測定されたものではあるが前記コーデックによって正しく識別されたものではない。そして、ソフトウェアルーチンは、前記測定された電気的特性に応答し、前記データベースに格納された電気的特性に基づき、前記コーデックによる前記デバイスの識別を調整して前記デバイスを正しく識別するように構成される。
2008514040.tif 000002
【特許請求の範囲】
【請求項１】
デバイスの識別を検証するためのシステムであって、
ジャックに接続されたデバイスの少なくとも一つの電気的特性を測定し、前記測定された電気的特性に基づき前記デバイスを識別するように構成されたコーデックと、
少なくとも一つのデバイスの少なくとも電気的特性が格納された更新可能なデータベースであって、前記デバイスの電気的特性が前記コーデックによって測定されたものではあるが前記コーデックによって正しく識別されないデータベースと、
前記測定された電気的特性に応答すると共に、前記データベースに格納された前記電気的特性に基づき前記コーデックによるデバイスの識別を調整して該デバイスを正しく識別するように構成されたソフトウェアルーチンと
を含むシステム。
【請求項２】
前記ソフトウェアルーチンは、前記コーデックのためのドライバとユーザインタフェースとの間に配置されたミドルウェアアプリケーションにより実現される請求項１記載のシステム。
【請求項３】
前記ユーザインタフェースは、前記デバイスの識別を確認するために前記ユーザにプロンプトで入力を促し、もし正しくなければ、正しいデバイスの指示を要求する請求項２記載のシステム。
【請求項４】
前記ミドルウェアアプリケーションは、次回に前記電気的特性が測定されたときに前記正しいデバイスの識別が前記ユーザにプロンプトで示されるように、前記正しいデバイスとその電気的特性を前記データベースに格納させる請求項３記載のシステム。
【請求項５】
アプリケーション回路情報が格納された第２データベースと、前記データベースに格納された前記アプリケーション回路情報に基づき前記測定された電気的特性を調整するように構成された第２ソフトウェアルーチンをさらに備えた請求項１記載のシステム。
【請求項６】
前記ミドルウェアアプリケーションは、第１に、前記データベースに格納された前記アプリケーション回路情報に基づき前記測定された電気的特性を調整し、第２に、複数のデバイスの前記電気的特性が格納された前記データベースをアクセスし、前記複数のデバイスの電気的特性は前記コーデックによって測定されたものではあるが前記コーデックによって識別された前記デバイスに対応しないものである請求項５記載のシステム。
【請求項７】
前記ジャックに接続された再構成可能な回路をさらに含む請求項１記載のシステム。
【請求項８】
前記ソフトウェアルーチンは、前記デバイスの前記調整された識別に基づき前記再構成可能な回路を活性化するように構成された請求項７記載のシステム。
【請求項９】
ジャックに接続されたデバイスの識別を検証する方法であって、
前記ジャックに接続された前記デバイスの少なくとも一つの電気的特性を測定するステップと、
前記測定された電気的特性に基づき前記デバイスを識別するステップと、
前記識別されたデバイスが、前記測定された電気的特性を格納するデータベースに格納されたデバイスと一致しない場合に前記デバイスの前記識別を調整するステップと、を含む方法。
【請求項１０】
前記識別されたデバイスが正しいかどうかを判定するために問い合わせを発するステップと、もし正しくなければ、前記測定された電気的特性を前記正しいデバイスと関連付けて前記データベースに格納するステップと、
をさらに含む請求項９記載の方法。
【請求項１１】
前記ジャックに結合されたアプリケーション回路の構成に基づき、前記測定された電気的特性を調整するステップをさらに含む請求項９記載の方法。
【請求項１２】
デバイスの識別を検証するためのシステムであって、
ジャックに結合されたデバイスの電気的特性を測定して、前記測定された電気的特性に基づき前記デバイスを識別するように構成されたコーデックと、
前記測定された電気的特性に応答し、該測定された電気的特性を調整するように構成された第１ソフトウェアルーチンと、
前記調整された電気的特性に応答し、前記コーデックによる前記デバイスの識別を調整するように構成された第２ソフトウェアルーチンと、
を含むシステム。
【請求項１３】
アプリケーション回路情報が格納された第１データベースを備え、前記第１ソフトウェアルーチンは、前記第１データベースの前記アプリケーション回路情報に基づき前記測定された電気的特性を調整するように構成された請求項１２記載のシステム。
【請求項１４】
少なくとも複数のデバイスの電気的特性が格納された第２データベースを備え、前記複数のデバイスの電気的特性は、前記コーデックによって測定されたものではあるが該コーデックによって識別されたデバイスに対応しないものであり、前記第２ソフトウェアルーチンは、前記第２データベースの前記電気的特性に基づき前記デバイスの前記識別を調整するように構成された請求項１２記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コーデック(codec)備えたコンピュータのジャック（例えば、入力／出力コネクタ）に接続されたデバイスの真(true)の電気的特性を判定するのに有用なシステムに関する。
【背景技術】
【０００２】
コーデック(codec)は、ＰＣや携帯端末のようなコンピュータにおけるオーディオ信号を処理する。オーディオコーデックの主要なファンクションの一つは、入力オーディオ信号をコンピュータの内部デジタル信号フォーマットに変換することと、その内部デジタル信号フォーマットから出力オーディオ信号に変換することの両方であり、代表的には、コンピュータに接続された外部デバイスのアナログ信号フォーマットを変換する。コーデックは、一般には、様々なジャックに対する１又は２以上のアプリケーション回路(application circuit)と共にマザーボードの拡張／ライザーカード(Add-in/riser card)上のチップに具現される。ＣＰＵ、プロセッサ、メモリ、及びコアロジックもまた一般にはマザーボードレベルのデバイスである。
【０００３】
外部のオーディオデバイスをコンピュータに接続する一つの方法は、３．５ｍｍ又は同様のステレオオーディオジャックを使用することである。各コンピュータは多数のジャックを備え、それらは、一般には、スピーカ用のステレオライン出力、マイクロホン入力、及びライン入力のような単一のファンクションに対してそれぞれ専用に設けられている。今日において利用可能なマルチメディアフォーマットの増加に伴い、システムのコストを上げるコンピュータ上のジャックの現状の数を増やすことなくコンピュータが支援することができる入力及び出力オーディオデバイスの数を増やすことが要請されている。ジャックが少なくても、コンピュータのユーザは外部のデバイスを間違ったジャックに誤って接続し、そのことはコストのかかるサポート電話の原因となっている。コンピュータ上のジャックの数を増やすことは、ユーザが外部デバイスを間違ったジャックに誤って接続する可能性を高め、サポート電話のコストを一層増加させる。
【０００４】
参照することにより本明細書に組み込まれる２００３年６月１９日出願の米国特許出願第１０／８４６４９５１号において、出願人は、デバイスを識別する手段として、ジャックに接続されたデバイスの電気的特性を測定する独自のコーデック回路を開示している。そして、識別されたデバイスが正しくサポートされることを保障するために、再構成可能な回路が活性化される。インテル（登録商標）社は、参照することにより本明細書に組み込まれる“Audio Codec ’97”（Rev 2.3、２００２年４月）と題された仕様書において、デバイスの識別データを“検知ビット(sensed bits)”と呼んでいる。参照することにより本明細書に組み込まれるもう一つのインテル（登録商標）仕様書は、“First Generation Intel（登録商標） Audio PnP User Model and Methodologies”(Rev 1.1，8/12/2002)と題される。その仕様書は、とりわけ、コーデックによって出力されたデバイスの識別(identification)が正しいことの検証をユーザに促すという構想を開示している。
【０００５】
コーデックにロジックを設け、ジャックに接続されたデバイスの電気的特性がそのデバイスを識別するためにコーデックによって測定されたときに上記ロジックがアプリケーション回路の電気的特性を補償することも可能である。しかしながら、異なる製造業者間や異なる製造工程間のように、アプリケーション回路の特定の構成要素が変わることがあり、及び／又は値が変わることがある。従って、変化を前提として一組の電気的特性を補償するためにコーデックをプログラムすることは信頼性のある解決策ではない。そして、インテル（登録商標）仕様書は、代替案の暗示又は提示を欠いている。実際、それは、デバイス識別をなすことにおいてアプリケーション回路によってもたらされる問題を認識さえしていない。
【０００６】
最後に、インテル（登録商標）仕様書は、コーデックによってなされた識別の正当性を確かめるためにユーザに問い合わせるという構想を論じているが、それは、ユーザが同一のデバイスを接続する度に同じ修正(correction)をしなければならないのであれば、煩わしく極めて不便である。即ち、もしコーデックが誤ってヘッドホンをスピーカと識別する度にユーザが同じ修正をしなければならないのであれば、ユーザは、ヘッドホンをパーソナルコンピュータに接続する度に直ちにフラストレーションを感じるようになる。インテル（登録商標）仕様書もこの問題または解決策についての認識を欠いている。
本発明は、コーデック／マザーボードレベルでこれらの問題を解決する試みに代わる方法として、ユーザインタフェースとコーデックドライバに応答（反応）する独自のミドルウェアアプリケーションによって両方の問題を解決する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、コンピュータのジャック（例えば入力／出力コネクタ）に接続されたデバイスの真（実際）の電気的特性を判定するためのシステム及び方法を提供することにある。
さらに、本発明の目的は、上記デバイスの識別(identification)を検証するためのシステム及び方法を提供することにある。
さらに、本発明の目的は、コストのかかるサポート電話を低減するシステム及び方法を提供することにある。
さらに、本発明の目的は、最新のコーデックの仕様に完全に準拠したシステム及び方法を提供することにある。
さらに、本発明の目的は、アプリケーション回路の特定の構成要素が変わっても、または値が変わっても、ジャックに接続されたデバイスを正しく識別することを可能とするシステム及び方法を提供することにある。
さらに、本発明の目的は、ユーザが使いやすいシステム及び方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、コーデックによって測定されたデバイスの電気的特性を調節するために、上記アプリケーション回路に関する詳細が、参照される更新可能なデータベースに格納されていれば、コンピュータに接続されたデバイスをより正確に識別することを可能とするという認識に由来する。要約すれば、ミドルウェアアプリケーションは、コーデックによるデバイスの電気的特性の測定に与えるアプリケーション回路の影響を考慮することにより、コーデックによるデバイスの識別を“予測(second-guess) ”する。さらに、結局のところ、この予測は間違いであることが分かった場合にはミドルウェアがその間違いを学習するので、その間違いは二度と繰り返されない。
【０００９】
本発明は、デバイスの識別を検証するためのシステムであって、ジャックに接続されたデバイスの少なくとも一つの電気的特性を測定し、前記測定された電気的特性に基づき前記デバイスを識別するように構成されたコーデックと、少なくとも一つのデバイスの少なくとも電気的特性が格納された更新可能なデータベースであって、前記デバイスの電気的特性が前記コーデックによって測定されたものではあるが前記コーデックによって正しく識別されないデータベースと、前記測定された電気的特性に応答すると共に、前記データベースに格納された前記電気的特性に基づき前記コーデックによるデバイスの識別を調整して該デバイスを正しく識別するように構成されたソフトウェアルーチンとを含むシステムを特徴とする。
【００１０】
一例を挙げれば、前記ソフトウェアルーチンは、前記コーデックのためのドライバとユーザインタフェースとの間に配置されたミドルウェアアプリケーションにより実現される。代表的には、前記ユーザインタフェースは、前記デバイスの識別を確認するために前記ユーザにプロンプトで入力を促し、もし正しくなければ、正しいデバイスの指示を要求する。そして、前記ミドルウェアアプリケーションは、次回に前記電気的特性が測定されたときに前記正しいデバイスの識別が前記ユーザにプロンプトで示されるように、前記正しいデバイスとその電気的特性を前記データベースに格納させる。
【００１１】
一実施形態において、第２データベースにアプリケーション回路情報が格納され、第２ソフトウェアルーチンが、前記データベースに格納された前記アプリケーション回路情報に基づき前記測定された電気的特性を調整するように構成される。代表的には、前記ミドルウェアアプリケーションは、第１に、前記データベースに格納された前記アプリケーション回路情報に基づき前記測定された電気的特性を調整し、第２に、複数のデバイスの前記電気的特性が格納された前記データベースをアクセスし、前記複数のデバイスの電気的特性は前記コーデックによって測定されたものではあるが前記コーデックによって識別された前記デバイスに対応しないものである。一例を挙げると、再構成可能な回路が前記ジャックに接続され、そして、前記ソフトウェアルーチンは、前記デバイスの前記調整された識別に基づき前記再構成可能な回路を活性化するように構成される。
【００１２】
また、本発明は、ジャックに接続されたデバイスの識別を検証する方法であって、
前記ジャックに接続された前記デバイスの少なくとも一つの電気的特性を測定するステップと、前記測定された電気的特性に基づき前記デバイスを識別するステップと、前記識別されたデバイスが、前記測定された電気的特性を格納するデータベースに格納されたデバイスと一致しない場合に前記デバイスの前記識別を調整するステップと、を含む方法を特徴とする。一例を挙げると、前記識別されたデバイスが正しいかどうかを判定するために問い合わせが発せられ、もし正しくなければ、前記測定された電気的特性を前記正しいデバイスと関連付けて前記データベースに格納する。また、前記測定された電気的特性は、前記ジャックに結合されたアプリケーション回路の構成に基づき調整されてもよい。
【００１３】
本発明によるデバイスの識別を検証するためのシステムは、ジャックに結合されたデバイスの電気的特性を測定して、前記測定された電気的特性に基づき前記デバイスを識別するように構成されたコーデックと、前記測定された電気的特性に応答し、該測定された電気的特性を調整するように構成された第１ソフトウェアルーチンと、前記調整された電気的特性に応答し、前記コーデックによる前記デバイスの識別を調整するように構成された第２ソフトウェアルーチンとを特徴とする。
【００１４】
好ましい例においては、第１データベースには、アプリケーション回路情報が格納され、前記第１ソフトウェアルーチンは、前記第１データベースの前記アプリケーション回路情報に基づき前記測定された電気的特性を調整するように構成される。また、第２データベースには、少なくとも複数のデバイスの電気的特性が格納され、前記複数のデバイスの電気的特性は、前記コーデックによって測定されたものではあるが該コーデックによって識別されたデバイスに対応しないものであり、前記第２ソフトウェアルーチンは、前記第２データベースの前記電気的特性に基づき前記デバイスの前記識別を調整するように構成される。
【００１５】
他の目的、特徴、及び利点は、好ましい実施形態の以下の記載と添付の以下の図面を参照することにより、当業者には明らかであろう。
図１は、本発明のシステム及び方法の一実施形態に係る主要なステップを示すフローチャートである。
図２は、本発明による完全なコーデックをベースにしたシステムに係る主要なソフトウェア及びハードウェア構成要素を示すブロック図である。
図３は、本発明の初期化ルーチンに係る主要なステップを示すフローチャートである。
図４は、本発明のユーザインタフェースメッセージングソフトウェアの例に係る主要なステップを示すフローチャートである。
図５は、本発明の一実施形態におけるミドルウェアアプリケーションに係る主要な構成要素を示すブロック図である。
図６は、本発明の一実施形態におけるミドルウェアアプリケーションにより実現されるデバイスの真の電気的特性を判定するためのシステムに係る主要なステップを示すフローチャートである。
図７は、本発明の他の実施形態によるコーデックドライバにより実現されるデバイスの真の電気的特性を判定するためのシステムに係る主要なステップを表すフローチャートである。
図８は、本発明に係るデバイスの識別を確認するためのシステム及び方法の例にかかる主要なステップを示すフローチャートである。
そして、図９は、本発明による有用なコーデックドライバ検知アルゴリズムに係る主要なステップを表すフローチャートである。
【発明を実施するための最良の形態】
【００１６】
好ましい実施形態または以下に開示する実施形態に加えて、本発明は、他の実施形態が可能であり、様々な方法で実行または実施できる。従って、本発明は、又は図面に例示され又は以下の記述において説明される構成要素の配置及び構成の詳細に適用が限定されるものではないことが理解される。
【００１７】
一実施形態において、図１に、本発明の処理回路及び方法に係る主要なステップを示す。コーデック(codec)４４は、好ましくは、前述した特許出願に記載されているように、ジャックに接続されたデバイスの１又は２以上の電気的特性を測定し、そして、例えばスピーカ、ヘッドホン、マイクロホンなどのようなデバイス（検知ビット）を識別する（ステップ１２）。コーデック４４の出力は、コーデックの識別を表す一組のビットと、測定されたインピーダンス値を表す未加工のビット(raw bit)である。
【００１８】
しかしながら、前述の背景のセクションで述べたように、コーデックとジャックとの間に接続されたアプリケーション回路は、コーデックによって測定された電気的特性に影響を与え得るので、従って逆に、コーデック４４によってなされる識別に影響を与えることがある。本発明に従い、データベース１４には、アプリケーション回路の構成要素の現在(current)の抵抗値、容量値、及び他の値１６（アプリケーション回路構成情報）が格納される。それら抵抗及び容量と、とりわけアプリケーション回路の供給業者によってなされたその如何なる変更が、コーデック４４によって測定された電気的特性に影響を与え、そして識別を誤らせることがあり得る。この状況を修正するために、解明処理(unraveling)がステップ１２で起動されると、データベース１４を参照した後に、ステップ１８で、上記測定された電気的特性が調整される。上記調整された電気的特性に基づき、あるいはコーデックによって測定された電気的特性に基づき、ステップ２０以降でデバイスの識別が調整される。代表的には、データベース１４は、アプリケーション回路の製造業者によって指定されるようなデフォルトの設計抵抗値及び容量値を含む。しかしながら、データベース１４は、所定のオーディオサブシステムによって実現されるような実際のアプリケーション回路の真(実際)の値を用いて更新される。
【００１９】
本発明に従い、更なる調整が、データベース２４及び／又はオプションのベンダー(vendor)テーブル２２を参照することにより実施される。テーブル２２は、プラットフォーム構成ファイル(platform configuration file)に配置され、代表的には、テーブル２２には標準（デフォルト）のベンダー特定デバイス(vendor specific device)と、１又は２以上のそれらの電気的特性が格納される。従って、ステップ１８での上記調整された電気的特性が、コーデック４４によって識別されたデバイスよりもテーブル２２におけるデバイスと密接に一致すれば、今やテーブル２２に格納されたデバイスがステップ１９での上記識別されたデバイスである。学習データベース(learned database)２４は、同様に、代表的には、以下に説明するような他のデバイスとそれらの電気的特性を格納する。そして、学習データベース２４は、好ましくは、ステップ２０で示されるように最初に参照される。一旦学習データベース２４にデータが格納されると、テーブル２２が参照されることは稀である。
【００２０】
一旦デバイスが識別されると、ユーザは、ステップ２６に示されるように検証(verification)の入力を促され得る。ジャックに実際に接続されたデバイスが上記識別されたデバイスであることをユーザが確認すれば、再構成回路(reconfiguration circuit)３０は、上述の特許出願に述べられているように活性化されて、ジャックに接続された上記デバイスのための調整を実施する。代表的には、これは、低オンインピーダンスと高オフインピーダンスとの間に選択的に増幅器を位置させることにより遂行される。
【００２１】
しかしながら、識別されたデバイスがジャックに実際に接続されたデバイスではないとユーザが応答すると、ステップ２８でユーザは正しいデバイスを識別するように要求される（ステップ３２）。そして、識別された正しいデバイスを用いて再構成（ステップ３０）が開始され、加えて、学習データベース２４が更新され（ステップ３４）、新しいエントリーが取り込まれる。ここで、上記エントリーは、ステップ３２での正しいデバイスの入力と、ステップ１８からのその測定され調整された電気的特性である。そして、この次に同じジャックに同じデバイスが接続されると、ステップ１８でのその測定された電気的特性は、デバイスを正しく識別するために、データベース２４を参照した後に、ステップ２０で使用され、そして、ユーザは、入力を促されると、識別されたそのデバイスが正しいことをステップ２８で指示する。このように、誤って識別されたデバイスについて一旦ユーザが修正すると、その後、システムは正しく理解し、そしてデバイスを正しく識別し、従ってユーザは同じ修正を繰り返し実施する必要がない。
【００２２】
コーデック４４は、ジャックに接続されたデバイスのインピーダンスを測定する。この測定は、コーデックからドライバ４８により読み取られ、このコーデックは、後でソフトウェアモジュールによって使用される。ドライバ４８によって読み取られた測定データは、代表的には、測定された未加工のインピーダンスを表すＳＲ及びＯＲ値と、コーデックデバイス予測（識別）を表すＳ値とから構成される。
【００２３】
解明(unravel)するかどうかを示すフラグと、ステップ１８の解明アルゴリズムで使用されるステップ１２での解明値(unravel value)は、ジャック単位のベースでプラットフォームファイルのようなファイルに格納される。プラットフォーム構成ファイルは、“platform.cfg”１４と呼ばれる。この構成ファイルは、多数のセクションに分解され、その一つは各ベンダープラットフォーム(vendor platform)のためのものである。各プラットフォームセクションには、解明(unraveling)を実行するために使用されるデータ値を含む“キー(keys)”が存在する。
【００２４】
解明のための２つの態様があり、それは構成要素レベルの解明と回路レベルの解明である。第１のものは、ベンダーがリファレンス設計を使用するが、それを達成するために代替の構成要素を選択する場合に適合する。この場合、解明は、デバイスをより良く識別するために、測定されたインピーダンスを解明するための構成要素値(component value)を必要とする。第２のものは、リファレンス設計に基づいていない回路をベンダーが使用する場合に適合する。この場合、構成要素値が必要とされるのみならず、回路特定のアルゴリズムも必要とされる。
【００２５】
ドライバ４８及びミドルウェア５６（インタフェースモジュール）は、同一のアルゴリズム１８を使用して、何れのモジュールによっても実行可能な構成要素レベルの解明を実施する。未加工の検知データはソフトウェアに受け取られ、ステップ１２でデータに関して解明アルゴリズムを実行するかどうかが判定される。構成テーブルのフラグは、ソフトウェアモジュールに対し、解明が必要かどうかを知らせる。もし、解明が必要であれば、構成要素値１６は、解明アルゴリズムを実行するために必要とされる。これらの値はシステムのスタート時に構成テーブル１４から読み取られる。
【００２６】
回路レベルの解明は、実際の回路アルゴリズムを実行する方法を理解する追加のソフトウェアモジュールとともに、上述したステップによって概要が示されたように同様に実施される。
学習のため、データベース２４は、全ての学習値(learned values)を読み取り／格納するのに使用される。ウィンドウズ（登録商標）で動作するシステムでは、使用されるデータベースはシステムレジストリである。
一実施形態において、学習データは、ＡＣ９７−Ｒｅｖ２．３ファンクションコード単位のベースで格納される。従って、仕様書によって特定される各ファンクションコードについて、学習データのテーブルが存在する。ファンクションコードは、各ジャックがどのように振る舞うかを示し定義する。ジャックは、プラットフォームにおける２以上のファンクションを備えてもよい。例えば、ジャックは、いつでも、マイクロホンとして、またはＣ／ＬＦＥスピーカとして振る舞ってもよい。
【００２７】
システムの起動時に、ミドルウェアモジュール５６は、システムレジストリデータベースから学習データ２４をロードし、そして学習のために後で使用するテーブルを作成する。システムの実行中に、デバイスがジャックで検知されると、通知されたインピーダンス（未加工、または解明されたもの）が、デバイスを識別するために学習テーブルに対して比較(match-up)される。
【００２８】
デバイス識別(device identification)は、検知されたデバイスを判定するため、コーデック４４から読み取られた解明されたピーダンス又は未加工のインピーダンスを使用する。第１に、ステップ２０で、インピーダンスは、ジャックの現在割り付けられたファンクションに基づき学習テーブル２４に対し比較(match)される。もし識別されなければ、それを、ジャックの代替の割り付けられたファンクションのテーブルと比較(match)する。依然として識別されなければ、残りのファンクション学習テーブルを検索して、デバイス識別処理を完了する。依然として学習テーブルがデバイスを識別することができない場合、ステップ２１は、テーブル２２のベンダーが提供したデバイス値を使用する。最終的にデバイスが依然として未知であれば、コーデックの識別はステップ２３で使用される。
デバイス識別は、ステップ２６でユーザ／アプリケーションに渡され、そして、ステップ２８で一旦確認されると、それは、ステップ３４で将来の使用のために学習テーブルに付け加えられる。
【００２９】
図２は、アプリケーション回路４２に接続されたジャック４０ａ−４０ｃを示し、アプリケーション回路４２自体はコーデック４４に接続され、コーデック４４は、ジャックに接続されたデバイスの少なくとも一つの電気的特性を測定し、その測定された電気的特性に基づきデバイスを識別するように構成される。コーデック４４は、代表的には、ＣＰＵ等４６、アプリケーション回路４２、及びコーデックドライバ４８とともに、コンピュータのマザーボード拡張／ライザーカード上に設けられる。完全を期すため、図２は、また、オプションのオーディオ処理回路５０と混合型アプリケーション(miscellaneous application)５２を示す。
【００３０】
好ましい実施形態において、ミドルウェアアプリケーション５６は、コーデック４４によって出力された上記測定された電気的特性に応答するソフトウェアであり、データベース１４に格納されたアプリケーション回路情報に基づきコーデックによって測定されたその電気的特性を調整するように構成される（図１、ステップ１８）。また、ミドルウェアアプリケーション５６は、特定のベンダーにより所定のアプリケーション回路の構成要素に対して変更が加えられた場合、データベース１４に格納されたデフォルトの設計アプリケーション回路情報に対する如何なる変更についても順応し使用する。プラットフォーム構成ファイル１４は、アプリケーション回路情報を更新するためにベンダーによって使用される。
【００３１】
別の実施形態において、ミドルウェアアプリケーション５６の全てのファンクションまたは選択されたファンクションは、コーデック４４のレジスタに応答するコーデックドライバ４８により実現され、そして電気的特性を測定し、ジャック４０ａ−４０ｃの任意の一つに接続されたデバイスの初期の識別をなすように構成されることができる。代表的には、ミドルウェアレイヤ５６は、測定された電気的特性およびデータベース１４に基づきジャック４０ａ−４０ｃの任意の一つに接続されたデバイスをより正確に識別するために、コーデックドライバ４８に応答する。しかしながら、ドライバ４８およびミドルウェアアプリケーション５６は、両方とも、代表的には図１の解明ステップ１２および１８を実行する。
【００３２】
また、ユーザインタフェース５４と結合されたミドルウェアアプリケーション５６は、代表的には、図１のステップ２６，２８，３２に関する機能性(functionality)を提供する。従って、ミドルウェアアプリケーション５６は、代表的にはジャック４０ａ−４０ｃに接続された標準のデバイスと、それらの電気的特性が格納されたデータベース２４をアクセスする。ミドルウェアアプリケーション５６は、図２のユーザインタフェース５４を活性化して、識別されたデバイスが正しいかどうかをモニター上でユーザに問い合わせ、そして、もしそうであれば、図１のステップ２８，３０で述べたように再構成回路を活性化する。もし、識別されたデバイスが正しくなければ、データベース２２は、ミドルウェアアプリケーション５６によってアクセスされ、ユーザインタフェース５４を通じて、ユーザが選択可能な標準のデバイスのリストを提供する。与えられたデバイスをユーザが選択すると、ミドルウェアアプリケーション５６は、ユーザの選択に従って再構成回路を活性化する。
【００３３】
上述したように、学習データベース２４には、少なくともデバイスの電気的特性が格納され、そのデバイスの電気的特性は、コーデック４４によって測定されたものではあるが、図１のステップ２０でコーデックによって識別されたデバイスに対応しない。好ましい実施形態において、データベース２４は、また、デバイスの電気的特性を含み、そのデバイスの電気的特性は、コーデック４４によって測定されたものであり、それはステップ２０でコーデックによって識別されたデバイスに対応する。従って、ミドルウェアアプリケーション５６は、上記測定された電気的特性に応答し、且つ、学習データベース２４に格納された電気的特性に基づきデバイスの識別を調整するように構成される（図２、ステップ２０）。
【００３４】
このように、学習デバイスデータベース２４には、デバイスの電気的特性が格納され、その電気的特性は、コーデック４４によって測定されたものではあるが、ユーザインタフェース５４を通じてユーザによって指摘されたようにコーデック４４によって誤って識別されたものである。図１のステップ３２，３４，２０を参照して上述したように、図２のミドルウェアアプリケーション５６は、ユーザが初めて所定のデバイスの誤った識別を調整した後は、ユーザがその修正を再び行う必要のないように、学習データベース２４に基づきコーデックによるデバイスの識別を調整するように構成される。ミドルウェアアプリケーション５６の制御下のユーザインタフェース５４は、ジャック４０に接続されたデバイスの識別を確認するためにディスプレイ上でユーザに指示を促し、そして、もし正しくなければ、正しいデバイスの指示(indication)を求め、従ってミドルウェアアプリケーション５６は学習デバイスデータベース２４にデータを格納(populate)することができる。
このように、ミドルウェアアプリケーション５６は、その次に電気的特性が測定された場合に、正しいデバイスに対応する識別がユーザに対してプロンプト(prompt)で示されるように、正しいデバイスとそれらの電気的特性を学習デバイスデータベース２４に格納する。
【００３５】
図３に示されるように、初期化が行われると、図２のミドルウェアアプリケーション５６は、全てのジャックと、入力／出力コネクタについて検知サイクルを実行する（図３、ステップ６２）。構成データベース１３を参照することにより、システムがシャットダウンする前の構成との比較が実施される（ステップ６４）。
もし構成が異なれば（ステップ６６）、変更された各ジャックについてユーザメッセージが起動される（ステップ６９）。ステップ６６で、もし構成が異なっていなければ、初期化処理が完了する。
【００３６】
図４において図３のステップ６２がさらに詳しく説明され、ここで、ステップ７０の開始後、オーディオジャックデバイス変更通知は、ステップ７２で入力され、そして、もしステップ７４でデバイスがジャックから取り外された旨の指示(indication)が存在すれば、ユーザは、ユーザインタフェース５４を通じてステップ７６で通知される。次に、ミドルウェアアプリケーション５６は、どのデバイスがどのジャックに接続されたかに関するその最善の予測をユーザに対して表示し、そしてステップ７８で示されるように検証(verification)についてプロンプトでユーザに入力を促す。ミドルウェアアプリケーション７６のこの態様は、上述のように図１及び２を参照して説明された。
【００３７】
もし、ミドルウェアアプリケーションの最善の予測が正しい旨をユーザが指示すれば、コーデックドライバは、必要に応じてハードウェアの任意の再構成を通知され（ステップ８４）、そして、オプションが提供されて、ボリュームやバランスなどをセットするための構成ウィザードを稼動することができる（ステップ８２）。もし、ミドルウェアアプリケーションの最善の予測が、ユーザによって示されたように正しくなければ、図１のステップ３２−３４が実行される。これらのステップを実行した後に正しいデバイスを識別することに失敗すると、接続が正しくないか又はサポートされていないことを図４のステップ８０でユーザに通知することになる。
【００３８】
図５は、ユーザメッセージングと、データベース／リストへの負荷測定マッピングと、デバイス学習並びに記憶及び読み出しと、実際の負荷周辺装置およびデバイスをより良く判定するためのハードウェアプラットフォーム回路詳細の使用と、現在の入力／出力の修正(correction)及び構成(Configuration)の経過追跡とを含むミドルウェアアプリケーション５６によって実行される主要なファンクションを表す。ミドルウェアレイヤ５６は、上述のようなデフォルトオーバライド(default overrides)及びプラットフォームのカスタマイズを含むプラットフォーム特定の構成データベース１４をアクセスする。ミドルウェアレイヤ５６は、また、標準のデバイスのリストとそれらのインピーダンス特性を含む標準のデバイスデータベース２２と、ユーザによって識別された追加のデバイスと元のデバイス製造業者で更新された標準のデバイスを含む学習デバイスデータベース２４をアクセスする。図５のミドルウェアアプリケーション５６は、また、構成データベースをアクセスして、図３のステップ６４及び６６に関して上述したようにどのデバイスがどのジャックに接続されているかのリストを保持する。ミドルウェアアプリケーション５６または他のアプリケーションは、起動時に構成データベースに対してシステムの構成をチェックして、システムが、電源オフ(powered off)、休止(sleep)、スタンバイ(standby)モードにある間、変更の警報を発する。
【００３９】
図６のコーデック４４は、デバイスのプラグがジャックに差し込まれたことのイベントを検知し、そして図３に関して上述したように検知サイクルを実施する。コーデックドライバ４８は、コーデックハードウェアから検知測定値を読み取り、そしてミドルウェアレイヤ５６は、アプリケーション回路を評価して、構成データベース１４を参照することにより図１に関して上述したように電気的特性を調整する。そのデータベースは、プラットフォーム特定のアプリケーション回路情報を含む。ミドルウェアレイヤ５６は、また、上述した他のファンクションを実施する。
【００４０】
しかしながら、図７のステップ１００で示されるように構成データベース１４を参照し、データベース１３に格納されたアプリケーション回路情報に基づきコーデックによって測定された電気的特性を調整し、そしてデバイスの調整された電気的特性をミドルウェアレイヤ５６ａに供給するように、図７のコーデックドライバ４８ａをプログラムし又は構成することは可能である。しかしながら、代表的には、ドライバ４８ａとミドルウェアアプリケーション５６ａは、両方とも解明ファンクションを実施する。ドライバ４８ａは、マクロプロセッサオペレーティングシステムのカーネルモードにより実現され、一方、ミドルウェアアプリケーション５６ａは、マイクロプロセッサオペレーティングシステムのユーザモードにより実現される。
【００４１】
図８は、図１のステップ２０，２６，２８，３４を更に詳細に示す。ステップ２０では、標準デバイスデータベース２２及び／又は学習デバイスデータベース２４を参照することにより、上述したようにアプリケーション回路の電気的特性に基づきデバイスの識別に対して調整(adjustment)が実施される。標準デバイスデータベース２２は、異なるヘッドホン、給電されていないスピーカ、ＳＰＤＩＦレシーバ、モノマイクロホン、ステレオマイクロホン、給電されたスピーカ等についての情報を含んでもよい。ステップ２６では、デバイスの識別に関するミドルウェアレイヤの最善の予測がユーザインタフェースに通知され、そしてユーザはステップ２６で確認をプロンプトで促される。もし、ステップ２８でミドルウェアアプリケーションによってなされた判定(determination)をユーザが承認すれば、その態様の処理は、ステップ１０２に示されるように完了する。しかしながら、もし、ステップ２８でミドルウェアレイヤによって識別されたデバイスと異なるデバイスをユーザが識別すれば、ミドルウェアレイヤは、ステップ３４に示されるように学習データベース２４を更新し、そして上述したように学習デバイスのリストにそのデバイスを付け加える。
【００４２】
本発明に係るコーデックドライバの検出は、入力／出力コネクタの接続イベントまたは取り外しイベントを検出するステップ（図９のステップ１０４）と、デバイスが接続されたか又は取り外されたかを判定するステップを含む（図９のステップ１０６）。そして、コーデック測定サイクルは、ミドルウェアアプリケーション５６の制御下で起動され（ステップ１０８）、そしてコーデックレジスタからのインピーダンス測定値が分析される（ステップ１１０）。その情報は、上述したように認証(validate)し解釈(interpret)するためにミドルウェアアプリケーション５６に送られ（ステップ１１２）、そしてジャックが再構成される（ステップ１１４）。オプションのステップ１１６では、他のアプリケーションが信号で伝達され、またはフィルタドライバが規定どおりオフにされる。
【００４３】
何れの実施形態においても、結果として、コンピュータのジャックに接続されたデバイスの真（実際）の電気的特性を判定するためのシステム及び方法と、このようなデバイスの識別を検証するためのシステム及び方法が得られる。
結果として得られるシステム及び方法は、コストのかかるサポート電話を減らし、最新のコーデックの仕様書に完全に準拠し、アプリケーション回路の特定構成要素が変わり又は値が変わっても、ジャックに接続されたデバイスが正しく識別されることを可能にし、そして、より一層ユーザに使い易い。
【００４４】
本発明の特有な特徴は幾つかの図面に示され、他の図面には示されていないが、これは、各特徴が本発明による任意の又は全ての特徴と組み合わせてもよいので、便宜的上そのようにしたに過ぎない。本明細書で用いられた“含む(including)”、“備える(comprising)”、“具備する(having)”、“有する(with)”なる用語は、広義かつ包括的に解釈され、如何なる物理的な相互接続にも限定されない。さらに、本願において開示された如何なる実施形態も単なる一例に過ぎない。
他の実施形態は、当業者であれば本願の特許請求の範囲内で想起し得る。
【図面の簡単な説明】
【００４５】
【図１】本発明のシステム及び方法の一実施形態に係る主要なステップを示すフローチャートである。
【図２】本発明による完全なコーデックをベースにしたシステムに係る主要なソフトウェア及びハードウェアの構成要素を示すブロック図である。
【図３】本発明の初期化ルーチンに係る主要なステップを示すフローチャートである。
【図４】本発明のユーザインタフェースメッセージングソフトウェアの例に係る主要なステップを示すフローチャートである。
【図５】本発明の一実施形態におけるミドルウェアアプリケーションに係る主要な構成要素を示すブロック図である。
【図６】本発明の一実施形態におけるミドルウェアアプリケーションにより実現されるデバイスの真の電気的特性を判定するためのシステムに係る主要なステップを示すフローチャートである。
【図７】本発明の他の実施形態によるコーデックドライバにより実現されるデバイスの真の電気的特性を判定するためのシステムに係る主要なステップを示すフローチャートである。
【図８】本発明によるデバイスの識別を検証するためのシステム及び方法の例に係る主要なステップを示すフローチャートである。
【図９】本発明による有用なコーデックドライバ検知アルゴリズムに係る主要なステップを示すフローチャートである。
【符号の説明】
【００４６】
１２，１４，１６，１８，２０，２１，２２，２３，２４，２６，２８，３０，３４，４４，４８，５６  ステップ
【図１】
2008514040.tif 000003
【図２】
2008514040.tif 000004
【図３】
2008514040.tif 000005
【図４】
2008514040.tif 000006
【図５】
2008514040.tif 000007
【図６】
2008514040.tif 000008
【図７】
2008514040.tif 000009
【図８】
2008514040.tif 000010
【図９】
2008514040.tif 000011