(57)【要約】  デバイスの真の電気的特性を判定するためのシステム及び方法。コーデックは、ジャックに接続されたデバイスの少なくとも一つの電気的特性を測定すると共に、その測定された電気的特性に基づいてそのデバイスを識別するように構成される。更新可能なデータベースはアプリケーション回路情報を格納する。ソフトウェアルーチンは、前記測定された電気的特性に応答し、そして、前記データベースのアプリケーション回路情報に基づき、上記コーデックによって測定された電気的特性を調整するように構成される。
2008505592.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) ”する。さらに、結局のところ、この予測は間違いであることが分かった場合にはミドルウェアがその間違いを学習するので、その間違いは二度と繰り返されない。
【０００９】
本発明は、デバイスの真の電気的特性を判定するためのシステムを特徴とし、本システムは、ジャックに接続されたデバイスの少なくとも一つの電気的特性を測定し、前記測定された電気的特性に基づき前記デバイスを識別するように構成されたコーデックと、アプリケーション回路情報が格納された更新可能なデータベースと、前記測定された電気的特性に応答すると共に、前記データベースの前記アプリケーション回路情報に基づき前記コーデックによって測定された前記電気的特性を調整するように構成されたソフトウェアルーチンとを含む。
【００１０】
一例を挙げれば、前記更新可能なデータベースは、前記アプリケーション回路情報における抵抗器(resistor)とコンデンサ(capacitor)の抵抗及び容量を格納する。一般に、前記更新可能なデータベースには、初期状態では、デフォルトの設計抵抗値及び容量値が格納されている。さらに、前記デフォルトの設計抵抗値及び容量値を変更して、それに変更を反映させるためのルーチンを含んでもよい。
【００１１】
一実施形態において、前記ソフトウェアルーチンは、前記デバイスの識別と前記測定された電気的特性を含む前記コーデックのレジスタに応答するコーデックドライバにより実現される。ミドルウェアアプリケーションは、前記調整された電気的特性に基づき前記デバイスをより正確に識別するように構成された前記コーデックに応答するものであってもよい。また、データベースには、デバイス及びその電気的特性が格納され、そのデータベースは、ミドルウェアアプリケーションによるアクセスが可能となっていてもよい。代表的には、再構成回路が前記ジャックに接続され、さらに、前記ミドルウェアアプリケーションは、前記識別されたデバイスが正しいかどうかをユーザに問い合わせ、そうであれば、前記識別されたデバイスに基づき前記再構成回路を活性化し、そうでなければ、前記ユーザにより選択可能なデバイスの前記データベースをアクセスするように構成される。さらに、前記ミドルウェアアプリケーションは、前記ユーザによって選択された前記デバイスに基づき前記再構成回路を活性化するように構成されてもよい。
【００１２】
他の実施形態において、前記ソフトウェアルーチンは、前記デバイスの前記識別及び前記測定された電気的特性を含む前記コーデックのレジスタに応答するコーデックドライバ自身に応答するミドルウェアレイヤにより実現される。再構成回路は前記ジャックに接続されてもよい。そして、さらに、前記ミドルウェアアプリケーションは、前記識別されたデバイスが正しいどうかを前記ユーザに問い合わせ、そうであれば、前記識別されたデバイスに基づき前記再構成回路を活性化し、そうでなければ、前記ユーザにより選択可能な標準デバイス(standard device)のデータベースをアクセスするように構成される。さらに、前記ミドルウェアアプリケーションは、前記ユーザによって選択された前記デバイスに基づき前記再構成回路を活性化するように構成されてもよい。
【００１３】
好ましい実施形態では、複数のデバイスの前記電気的特性が格納された更新可能なデータベースが存在し、その電気的特性は、前記コーデックによって測定されたものではあるが、前記コーデックによって識別された前記デバイスと前記測定された電気的特性に応答するソフトウェアルーチンに対応せず、且つ、前記更新可能なデータベースは、該データベースに格納された前記電気的特性に基づき前記デバイスの前記識別を調整するように構成される。代表的には、両方のソフトウェアルーチンは、前記コーデックのためのドライバとユーザインタフェースとの間に配置されたミドルウェアアプリケーションにより実現される。
【００１４】
また、本発明は、ジャック用のアプリケーション回路に接続された該ジャックに接続されたデバイスを識別する方法を特徴とし、前記方法は、ジャックに接続された前記デバイスの少なくとも一つの電気的特性を測定するステップと、前記アプリケーション回路の前記構成に基づき前記測定された電気的特性を調整するステップと、そして、前記測定され調整された電気的特性に基づき前記デバイスを識別するステップとを含む。一例を挙げれば、測定は、前記アプリケーション回路に接続されたコーデックによって実行され、調整は、アプリケーション回路要素値が格納されたデータベースを参照するステップを含む。さらに、識別が正しいかどうかを判定し、正しくなければ、正しい識別をデータベースに格納するために問い合わせ(query)を出力するステップを含んでもよい。
【００１５】
他の目的、特徴、及び利点は、好ましい実施形態の以下の記載と添付の以下の図面を参照することにより、当業者には明らかであろう。
図１は、本発明のシステム及び方法の一実施形態に係る主要なステップを示すフローチャートである。
図２は、本発明による完全なコーデックをベースにしたシステムに係る主要なソフトウェア及びハードウェア構成要素を示すブロック図である。
図３は、本発明の初期化ルーチンに係る主要なステップを示すフローチャートである。
図４は、本発明のユーザインタフェースメッセージングソフトウェアの例に係る主要なステップを示すフローチャートである。
図５は、本発明の一実施形態におけるミドルウェアアプリケーションに係る主要な構成要素を示すブロック図である。
図６は、本発明の一実施形態におけるミドルウェアアプリケーションにより実現されるデバイスの真の電気的特性を判定するためのシステムに係る主要なステップを示すフローチャートである。
図７は、本発明の他の実施形態によるコーデックドライバにより実現されるデバイスの真の電気的特性を判定するためのシステムに係る主要なステップを表すフローチャートである。
図８は、本発明に係るデバイスの識別を確認するためのシステム及び方法の例にかかる主要なステップを示すフローチャートである。
そして、図９は、本発明による有用なコーデックドライバ検知アルゴリズムに係る主要なステップを表すフローチャートである。
【発明を実施するための最良の形態】
【００１６】
好ましい実施形態または以下に開示する実施形態に加えて、本発明は、他の実施形態が可能であり、様々な方法で実行または実施できる。従って、本発明は、又は図面に例示され又は以下の記述において説明される構成要素の配置及び構成の詳細に適用が限定されるものではないことが理解される。
【００１７】
一実施形態において、図１に、本発明の処理回路及び方法に係る主要なステップを示す。コーデック(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)”なる用語は、広義かつ包括的に解釈され、如何なる物理的な相互接続にも限定されない。さらに、本願において開示された如何なる実施形態も単なる一例に過ぎない。
他の実施形態は、当業者であれば本願の特許請求の範囲内で想起し得る。
【図面の簡単な説明】
【００４５】
【図１】本発明のシステム及び方法の一実施形態に係る主要なステップを示すフローチャートである。
【図２】本発明による完全なコーデックをベースにしたシステムに係る主要なソフトウェア及びハードウェアの構成要素を示すブロック図である。
【図３】本発明の初期化ルーチンに係る主要なステップを示すフローチャートである。
【図４】本発明のユーザインタフェースメッセージングソフトウェアの例に係る主要なステップを示すフローチャートである。
【図５】本発明の一実施形態におけるミドルウェアアプリケーションに係る主要な構成要素を示すブロック図である。
【図６】本発明の一実施形態におけるミドルウェアアプリケーションにより実現されるデバイスの真の電気的特性を判定するためのシステムに係る主要なステップを示すフローチャートである。
【図７】本発明の他の実施形態によるコーデックドライバにより実現されるデバイスの真の電気的特性を判定するためのシステムに係る主要なステップを示すフローチャートである。
【図８】本発明によるデバイスの識別を検証するためのシステム及び方法の例に係る主要なステップを示すフローチャートである。
【図９】本発明による有用なコーデックドライバ検知アルゴリズムに係る主要なステップを示すフローチャートである。
【符号の説明】
【００４６】
１２，１４，１６，１８，２０，２１，２２，２３，２４，２６，２８，３０，３４，４４，４８，５６  ステップ
【図１】
2008505592.tif 000003
【図２】
2008505592.tif 000004
【図３】
2008505592.tif 000005
【図４】
2008505592.tif 000006
【図５】
2008505592.tif 000007
【図６】
2008505592.tif 000008
【図７】
2008505592.tif 000009
【図８】
2008505592.tif 000010
【図９】
2008505592.tif 000011
【国際調査報告】
2008505592.tif 000012