(57)【特許請求の範囲】
【請求項１】
車両コンピュータ・システムであって、
アナログ・ボイス・データを発生するボイス入力デバイスと、
前記アナログ・ボイス・データをディジタル・ボイス・データに第１サンプリング・レートで変換する変換器と、
前記変換器から前記ディジタル・ボイス・データを受け取り、シリアル周辺インターフェース（ＳＰＩ）を介して前記ディジタル・ボイス・データをピギーバックしたシリアル・ストリームとして出力するように結合したロジック・ユニットと、
前記シリアル・ストリームを受け取り、第２サンプリング・レートで前記ディジタル・ボイス・データを再度サンプリングするオーディオ・プロセッサであって、該再度サンプリングしたディジタル・ボイス・データをピギーバックしたシリアル・ストリームとして前記ロジック・ユニットの前記ＳＰＩに返送する、オーディオ・プロセッサと、
を備え、
前記オーディオ・プロセッサによって返送される前記再度サンプリングしたディジタル・ボイス・データは、フィルタリングしたワードと印した複数のワードと、無効データと印した複数のワードとを含み、
前記ロジック・ユニットが、前記再度サンプリングしたディジタル・ボイス・データを、処理のために音声認識システムに転送する、車両コンピュータ・システム。
【請求項２】
前記ロジック・ユニットに結合し、前記ロジック・ユニットから前記音声認識システムへの転送の間、前記ディジタル・ボイス・データを一時的に保持するメモリ・バッファを更に備える請求項１記載の車両コンピュータ・システム。
【請求項３】
前記ロジック・ユニットに結合し、前記ディジタル・ボイス・データを一時的に保持するメモリ・バッファと、
前記ロジック・ユニットと連動し、前記ロジック・ユニットから前記メモリ・バッファに前記ディジタル・ボイス・データを書き込む第１メモリ・アクセス回路と、
前記音声認識システムと連動し、前記メモリ・バッファから前記音声認識システムに前記ディジタル・ボイス・データを読み出す第２メモリ・アクセス回路と、
を更に備える請求項１記載の車両コンピュータ・システム。
【請求項４】
前記オーディオ・プロセッサはロー・パス・フィルタリングを行う、請求項１記載の車両コンピュータ・システム。
【請求項５】
前記変換器は２０ビットの分解能で前記アナログ・ボイス・データをディジタル・ボイス・データに変換する、請求項１記載の車両コンピュータ・システム。
【請求項６】
前記２０ビットの分解能は、３２クロック・フレームに整合し、最上位ビットがＩ2Ｓの最上位ビットに対応し、１２個の「０」が最下位ビットに続く、請求項５記載の車両コンピュータ・システム。
【請求項７】
車両の音声認識システムをサポートする方法であって、
アナログ・ボイス・データをディジタル・ボイス・データに第１サンプリング・レートで変換することと、
ロジック・ユニットにおいて前記ディジタル・ボイス・データを受け取ることと、
前記ロジック・ユニットからオーディオ・プロセッサに、前記ディジタル・ボイス・データを、シリアル周辺インターフェース（ＳＰＩ）を介してピギーバックしたシリアル・ストリームとして出力することと、
前記オーディオ・プロセッサにおいて第２サンプリング・レートで前記ディジタル・ボイス・データを再度サンプリングすることと、
前記オーディオ・プロセッサから前記ロジック・ユニットの前記ＳＰＩに、前記再度サンプリングしたディジタル・ボイス・データをピギーバックしたシリアル・ストリームとして返送することと、
前記再度サンプリングしたディジタル・ボイス・データを処理のために前記音声認識システムに転送することと、
を含み、
前記オーディオ・プロセッサによって返送される前記再度サンプリングしたディジタル・ボイス・データは、フィルタリングしたワードと印した複数のワードと、無効データと印した複数のワードとを含む方法。
【請求項８】
ロジック・ユニットにおいて前記ディジタル・ボイス・データを受け取ることは、Ｉ2Ｓデータを受け取ることを含む、請求項７記載の方法。
【請求項９】
前記ロジック・ユニットに結合したメモリ・バッファに前記ディジタル・ボイス・データを一時的に書き込むことと、
前記メモリ・バッファから前記音声認識システムに前記ディジタル・ボイス・データを読み出すことと、
を含む、請求項７記載の方法。
【請求項１０】
第２サンプリング・レートで前記ディジタル・ボイス・データを再度サンプリングすることは、前記ディジタル・ボイス・データにロー・パス・フィルタを適用することを含む、請求項７記載の方法。
【請求項１１】
アナログ・ボイス・データをディジタル・ボイス・データに変換することは、略４４．１ｋＨｚのサンプリング・レートでサンプリングすることを含む、請求項７記載の方法。
【請求項１２】
第２サンプリング・レートで前記ディジタル・ボイス・データを再度サンプリングすることは、前記ディジタル・ボイス・データを、略１１ｋＨｚのレートにダウン・サンプリングすることを含む、請求項７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用オーディオ娯楽システムに関する。更に特定すれば、本発明は、オーディオ娯楽システムを実装した車両コンピュータ・システムに関するものである。
【背景技術】
【０００２】
近年の車両には、通常、いくつかの独立した電子システムが装備されている。例えば、近年の車両は、その殆どがサウンド・システムおよびセキュリティ・システムを有する。また、最新モデルの車両の殆どには、車両のエンジン、トランスミッションおよび燃料システム、ならびにその他のコンポーネントの性能を分析する診断システムが組み込まれている（ＯＢＤ ＩＩでは１９９６年以降、ＯＢＤ Ｉでは１９９３年以降）。最新モデルでは、車両にはナビゲーション・システムが装備されており、全地球測地システム（ＰＧＳ）受信機を内蔵して衛星ネットワークからの信号を受信し、経度、緯度、および高度に関して車両の地表上での位置を突き止める座標を計算する。また、車両にはセルラ通信システムも追加されている。これらの通信システムにより、車両の運転手または乗員は、彼らの車両から通話（ｔｅｌｅｐｈｏｎｅ ｃａｌｌ）を処理することが可能となっている。
【０００３】
これら種々の電子システムは車両ユーザには有用であることが認められているが、これらのシステムには関連がなく互換性もないという欠点がある。各システムは別個に各社毎の専用プロセッサまたはＡＳＩＣ（特定用途集積回路）を採用し、互換性のない各社専用のソフトウエアを実行する。車両の所有者がセキュリティ・システムを彼／彼女の車両に追加したい場合、所有者はベンダの内の１社からセキュリティ・システム全体を購入し、特別にそれを設置させる必要がある。ナビゲーション・システムまたはサウンド・システムのような既存の電子システムに、セキュリティ機能性を追加する方法はない。
【０００４】
Ｒｉｃｈａｒｄ Ｄ．Ｂｅｃｋｅｒｔ（リチャード Ｄ．ベッカート）、Ｍａｒｋ Ｍ．Ｍｏｅｌｌｅｒ（マーク Ｍ．ミュラー）、およびＷｉｌｌｉａｍ Ｗｏｎｇ（ウイリアム・ワン）の名義で１９９５年１１月２９日に出願した、”Ｖｅｈｉｃｌｅ Ｃｏｍｐｕｔｅｒ Ｓｙｓｔｅｍ”（車両コンピュータ・システム）と題する米国特許第０８／５６４，５８６号は、これら種々の個別システムを統合化し、容易な拡張性をもたらす汎用計算機プラットフォームを提供することが可能な車両コンピュータ・システムについて記載する。この車両コンピュータ・システムは、オープン・ハードウエア・アーキテクチャを備え、オープン・プラットフォーム・オペレーティング・システムに対応する。オープン・プラットフォーム・オペレーティング・システムは、ソフトウエア・ベンダが供給可能な多数の異なるアプリケーションに対応する。例えば、オペレーティング・システムは、娯楽、ナビゲーション、通信、セキュリティ、診断、およびその他のことに関するアプリケーションに対応することができる。好適な実施態様では、オペレーティング・システムは、同時に多数のアプリケーションを実行可能な、マルチタスク・オペレーティング・システムである。
【発明の概要】
【０００５】
本発明は、車両コンピュータ・システムによって実現するオーディオ娯楽システムを対象とする。
（発明の概要）
本発明は、車両コンピュータ・システムに関し、更に特定すれば、当該システムのオーディオ娯楽の面に関する。この車両コンピュータ・システムは３つのモジュール、即ち、サポート・モジュール、コンピュータ・モジュール、および面板モジュール（ｆａｃｅｐｌａｔｅ ｍｏｄｕｌｅ）を有する。サポート・モジュールは、車両のダッシュボードまたはその他の場所に位置する、筐体の固定ベース・ユニットの一部として形成する。これは、それ自体のロジック・ユニットを有し、現場プログラム型ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ ｐｒｏｇｒａｍｍａｂｌｅ ｇａｔｅ ａｒｒａｙ）、特定用途集積回路（ＡＳＩＣ）、カスタム化プロセッサ等で実現することができる。また、サポート・モジュールは、オーディオ・ディジタル信号プロセッサ（ＤＳＰ）のような、オーディオ信号プロセッサも有し、オーディオ・データのための信号処理を行なう。
【０００６】
コンピュータ・モジュールは、サポート・モジュールに取り付けた別個のモジュールとするか、あるいはその機能性をサポート・モジュールに統合することができる。コンピュータ・モジュールは、オペレーティング・システムを走らせるプロセッサを有する。コンピュータ・モジュールおよびサポート・モジュールは、ＰＣＩバスのようなマルチビット・バスを用いてインターフェースする。面板モジュールは、取り外し自在にサポート・モジュールに接続する。面板モジュールは、それ自体のロジック・ユニットを有し、ディスプレイおよびキーパッドを制御し、オプションとしてセルラ・フォンや双方向ページャのようなＲＦ送受信機も有する。面板モジュールおよびサポート・モジュールは、高速シリアル接続を用いて接続する。
【０００７】
オーディオ娯楽システムには、主にサポート・モジュールのロジック・ユニットおよびＤＳＰが対応する。サポート・モジュールは、ＣＤプレイヤー、ＣＤ交換器、ＡＭ／ＦＭチューナ、補助１、補助２、コンピュータ・ウェーブ出力およびマイクロフォンのような多数のオーディオ・ソースを扱うことができる。サポート・モジュールは、ソースからデータを受け取り、オーディオＤＳＰにおいてそれを処理し、スピーカ・システム、あるいはコンピュータ・モジュール内のＵＳＢ周辺機器またはメモリのようなその他の宛先にデータを出力する。
【０００８】
サポート・モジュールのロジック・ユニットは、内部アドレス／データ・バス構造を有する。これは、コンピュータ・モジュールの内部バスとは独立しており、別個である。このロジック・ユニットのバスは、周辺通信経路として機能するので、オーディオ・ソースからのデータは、コンピュータ・モジュールからの介入なく処理することができる。例えば、オーディオ・サウンドの発生、処理、および出力の全てをサポート・モジュールによって処理し、コンピュータ・モジュールの処理資源の使用を極力抑えることができる。
【０００９】
本発明の一態様によれば、オーディオ娯楽システムは、Ｉ／Ｏメモリ内に１組のピン／ポン・バッファ（ｐｉｎｇ／ｐｏｎｇ ｂｕｆｆｅｒ）を用い、これをサポート・モジュールのロジック・ユニットの内部アドレス／データ・バス構造に結合し、異なるオーディオ・デバイス間で伝達するデータを一時的に保持する。ロジック・ユニットは、オーディオ・デバイスの各々と連動する直接メモリ・アクセス（ＤＭＡ）回路を有し、Ｉ／Ｏメモリの個々の記憶エリアを指定し、連動するデバイスから受けたデータ、および連動するデバイスに送るデータを保持する。オーディオ・データは、マッピング・オーバーレイ技法（ｍａｐｐｉｎｇ ｏｖｅｒｌａｙ ｔｅｃｈｎｉｑｕｅ）の使用によって交換する。この場合、２つのオーディオ・デバイスに対するＤＭＡ回路が同じメモリ・バッファの読み書きを行なう。１つのＤＭＡ回路が１つのデバイス（例えば、ＡＭ／ＦＭチューナ、ＣＤプレイヤー等）からのオーディオ・データでピン・バッファを満たしている間、他のＤＭＡ回路は、ポン・バッファからデータを読み出し、別のオーディオ・デバイス（例えば、オーディオ信号プロセッサ）に出力する。
【００１０】
本発明の別の態様によれば、オーディオ娯楽システムは、４８ＭＨｚクロックから得られるマスタ・クロック・レート、およびサポート・モジュール内のソフトウエア調節型分周レジスタによって決定する内部サンプリング・レート（例えば、４４．１ｋＨｚ）で、ディジタル・オーディオ・データを処理する。処理のためにバッファからオーディオＤＳＰに転送するデータは、このレートでサンプリングする。しかしながら、オーディオ・ソース・デバイスがそれ自体のクロック信号で動作する場合でも、出力ＤＭＡクロック・レートには正確に一致しないレートで、メモリ・バッファにオーディオ・データを書き込むことができる。オーディオ娯楽システムのソフトウエアは、分周レジスタを調節し、ＣＯＤＥＣに対するマスタ・クロック・レートを操作し、ピン／ポン・バッファに対するデータ書き込みおよび読み出し動作の同期を取る。
【００１１】
別の態様によれば、コンピュータ・システムは、オーディオ・マネージャＡＰＩ（アプリケーション・プログラム・インターフェース）を備え、コンピュータ上で実行するアプリケーションが、基礎のサウンド・システムのハードウエアおよび実施態様の詳細を知ることなく、種々のオーディオ・ソースを制御することを可能にする。異なるオーディオ・デバイスおよびそのドライバが、等化、ボリューム制御およびサラウンド・サウンド復号というような、オーディオ・システムの異なる機能性を制御する。オーディオ・マネージャＡＰＩは、アプリケーションが行なったコールを適切なデバイス・ドライバ（複数のドライバ）に転送する。
【００１２】
本発明の別の態様は、マイクロフォンから受け取ったボイス・データを処理し、音声認識システムに入力する技法にも関する。マイクロフォンが取り込んだ音声の発音を、ＣＯＤＥＣが供給する４４．１ｋＨｚのサンプリング・レートでサンプリングする。しかしながら、音声認識システムは、かなり低めの１１ｋＨｚサンプリング・レートというような、異なるサンプリング・レートを採用する。マイクロフォン・データをサンプリングするために別個のＡ／Ｄ変換器を追加する代わりに（コストが上昇する）、オーディオＤＳＰは、高い４４．１ｋＨｚのサンプリング・レートからのマイクロフォン・データを所望の１１ｋＨｚに変換する。このシステムは、オーディオＤＳＰのＳＰＩ（シリアル周辺インターフェース）を利用し、コマンド／メッセージ・ストリームによってマイクロフォン・データをピギーバック（ｐｉｇｇｙｂａｃｋ）する。ＤＳＰはデータ・ストリームに対して通常のロー・パス・フィルタリングおよびダウン・サンプリングを行い、次いでＳＰＩを用いて、その新たな１１ｋＨｚサンプリング・レートで、メッセージ・ストリームによってマイクロフォン・データをピギーバックして、送出し返送する。
【図面の簡単な説明】
【００１３】
【図１】車両コンピュータ・システムの概略図である。
【図２】多数の外部周辺デバイスとインターフェースする車両コンピュータ・システムの概略図である。
【図３】面板モジュール、サポート・モジュール、およびコンピュータ・モジュールを有する一実施態様による、車両コンピュータ・システムのブロック図である。
【図４】コンピュータ・システムのサポート・モジュール内に実装したロジック・ユニットおよびオーディオＤＳＰのブロック図である。
【図５】周辺デバイスからのデータをピン／ポン・バッファにマップするメモリ・アクセス回路のブロック図である。
【図６】マスタ・クロック調節回路のブロック図である。
【図７】バス・アービタ回路のブロック図である。
【図８】オーディオ・ソフトウエア／ハードウエア・インターフェース・アーキテクチャを示す。
【図９】オーディオ・マネージャＡＰＩにおけるオーディオ・データ・フローを示す機能図である。
【図１０】オーディオＤＳＰおよびロジック・ユニット間においてボイス・データを交換する際のＳＰＩポートの使用を示すブロック図である。
【発明を実施するための形態】
【００１４】
図面全体にわたって、同様のコンポーネントおよび構造を引用する際には、同じ参照番号を用いることとする。
【００１５】
本発明は、オーディオ娯楽システムのオーディオ・アーキテクチャを対象とする。本発明の態様は、特に車両娯楽システムに適したものである。論述の目的上、車両コンピュータ・システムと関連付けつつオーディオ・アーキテクチャについて説明する。
【００１６】
図１は、本発明の一実施態様による車両コンピュータ・システム２０を示す。車両コンピュータ・システム２０は、集中コンピュータ２２を有し、オプションのモニタ２４、セキュリティ・センサ２６、車両診断インターフェース２８、スピーカ３０、車両バッテリ３２、バックアップ・バッテリ３３、およびアンテナ（複数のアンテナ）３４を含む、種々の外部周辺デバイスに結合してある。コンピュータ２２は、従来の自動車用ステレオと同様に、車両のダッシュボード内に装着するサイズを有する、筐体３６内に組み込む。好ましくは、筐体３６は、単一のＤＩＮ（Ｄｅｕｔｓｃｈｅ Ｉｎｄｕｓｔｒｙ Ｎｏｒｍｅｎ：ドイツ工業規格）の形状係数を有する。しかし、これは、２ＤＩＮ単位またはその他のＯＥＭ用特殊形状係数に収容することも可能である。
【００１７】
コンピュータ２２は、多数のアプリケーションに対応する、オープン・プラットフォーム・オペレーティング・システムを走らせる。オープン・プラットフォーム・オペレーティング・システムおよびオープン・コンピュータ・システム・アーキテクチャを用いる場合、独立したベンダが種々のソフトウエア・アプリケーションおよびハードウエア周辺機器を生産し、車両の購入後にこれらを車両に設置することが可能となる。これは、別々に設計した埋込みシステムのためにソフトウエア・アプリケーションを特別に構成する必要がないという利点がある。オープン・ハードウエア・アーキテクチャは、グラフィカル・ユーザ・インターフェースを採用した、マルチタスク・オペレーティング・システムを走らせることが好ましい。好適なオペレーティング・システムの１つは、Ｍｉｃｒｏｓｏｆｔ Ｃｏｒｐｏｒａｔｉｏｎ（マイクロソフト社）が販売するＷｉｎｄｏｗｓ ＣＥオペレーティング・システムである。マルチタスク・オペレーティング・システムは、多数のアプリケーションの同時実行を可能にする。
【００１８】
コンピュータ２２は、少なくとも１つの記憶ドライブを含み、車両ユーザは、記憶媒体からプログラムやデータをダウンロードすることができる。図示の実施態様では、コンピュータは、音楽、ビデオ、ゲーム、またはその他の種類の娯楽用ＣＤだけでなく、アプリケーション関連ＣＤも読み取るＣＤ ＲＯＭドライブ３８を有する。ＣＤ ＲＯＭドライブ３８は、記憶ドライブおよび娯楽プレーヤという二重の役割を果たす。コンピュータ２２は、オプションの３．５”フロッピ・ディスケット・ドライブ４０、オプションのスマート・カード・リーダ４２、およびＰＣカード・タイプＩ、ＩＩおよびＩＩＩ（以前の「ＰＣＭＣＩＡ」カード）を受け入れる二重ＰＣカード・ソケット即ちコンパクト・フラッシュ（ｃｏｍｐａｃｔ ｆｌａｓｈ）４４を有する。また、ハード・ディスク・ドライブ（図示せず）をコンピュータ２２上に含ませ、アプリケーション・プログラムおよびユーザ・データ双方を格納することも可能である。ＤＶＤ（ディジタル・ビデオディスク）プレーヤも、コンピュータ２２に含ませることが可能である。
【００１９】
記憶ドライバは、筐体３６のベース・ユニット４６内に装着する。ベース・ユニット４６は、ダッシュボード内に装着するような構造およびサイズとする。オプションとして、このベース・ユニットは、ラップトップ・コンピュータと同様に、その関連するドッキング・ステーションから離脱可能とすることもできる。このハイ・エンド向きオプションでは、ユーザが彼の車両コンピュータを彼の家庭またはオフィスに携行し、彼の携帯ＰＣとして機能することも可能である。
【００２０】
筐体３６は、取り外し可能な面板４８を有し、ベース・ユニット４６の前面に回動自在に取り付けられている。面板を回転させると、記憶装置に容易かつ便利にアクセスすることができる。面板ユニット４８全体は、計算機プラットフォームに対する多機能周辺機器として動作する。
【００２１】
面板４８は、キーパッド５２およびグラフィック・ディスプレイ５４を有する。ディスプレイ５４は、照明または表示に個々に選択可能な矩形の画素アレイを有するバックライト型ＬＣＤであることが好ましい。ディスプレイ・エレメントは、中程度の解像度のビットマップ・ディスプレイ・システムであり、少なくとも１０，０００画素を有する。説明中の実施態様では、画素アレイは、少なくとも縦６４画素、横２５６画素のサイズを有する。ベース・ユニット４６のオペレーティング・システムは、面板５４をベース・モジュール５２に取り付けると、周辺デバイスとしての面板キーパッド５２および面板ディスプレイ５４と相互作用を行う。
【００２２】
面板４８は、Ｗｉｎｄｏｗｓブランドのオペレーティング・システムではなじみのある「開始」（Ｓｔａｒｔ）ボタン機能を備える開始ボタン５６を有する。また、面板４８は、電源ボタン５８、４位置アクチュエータ６０、「入力」ボタン６２、「エスケープ」ボタン６４、「ヘルプ」ボタン６６、「メニュー」ボタン６８、およびボリューム制御入力７０も有する。
【００２３】
コンピュータ２２は、音声認識システムを有し、ユーザは手や目を使わずに、口頭でコマンドを入力することができる。これらボイス・コマンドは、車両計算機プラットフォームの動作モードの殆どを制御するため、およびコンピュータ上で走るアプリケーションを制御するために用いることができる。ボイス入力ポート７２がサポート・モジュールと接続してあり、バイザ（ｖｉｓｏｒ）またはその他の場所の上に装着し、ボイスを最適に取り込み音声認識システム（図３参照）に入力するようにすることが好ましい。また、コンピュータ２２は、面板４８上に装着した、ＩｒＤＡ（赤外線開発者連合）送受信ポートにも対応し、赤外線信号を用いてデータおよびプログラムの送信および受信を行なう。
【００２４】
コンピュータ２２にアプリケーションまたはデータをロードするには、車両ユーザは、ＣＤまたはその他の媒体を適切なドライブ内に挿入し（アプリケーションがまだハード・ディスク上に収容されていない場合）、オペレーティング・システムはそこからアプリケーションまたはデータをダウンロードする。インストール・プロセスは、オペレーティング・システムによって、またはキーボパッド５２上でキー入力したシーケンスの形態でユーザから入力したコマンドあるいはボイス認識デバイスを用いた口頭命令の補助によって、自動的に処理することができる。他の計算デバイスにデータまたはアプリケーションをロードしたり、データを転送する別の技法は、ＩｒＤＡ送受信ポート７４、またはワイヤレス・インターネット・リンクの使用によるものである。
【００２５】
一般に、車両コンピュータ・システム２０は、多数の車両関連システムを１つのオープン・プラットフォーム・ハードウエアおよびソフトウエア・アーキテクチャ上に統合するために用いることができる。例えば、車両コンピュータ・システム２０は、マルチメディア娯楽システム、ナビゲーション・システム、通信システム、セキュリティ・システム、および診断システムとして供することができる。更に、車両コンピュータ・システム２０は、従来よりデスクトップおよびラップトップ・パーソナル・コンピュータと関連のある追加の機能性を備える。例えば、車両コンピュータ・システム２０は、アドレス・ブック・アプリケーション、電子メール・プログラム、および約束／スケジュール・アプリケーションに対応することができる。更に、車両コンピュータ・システム２０は、車両内の別の計算ユニットに対してサーバとして動作し、ゲーム、ビデオ・ムービー等を乗員に分配するように構成することも可能である。
【００２６】
図２は、本発明の一実施態様によるコンピュータ２２を示す。コンピュータ２２は、３つの主要モジュール、即ち、面板モジュール８０，サポート・モジュール８２、およびコンピュータ・モジュール８４を有する。コンピュータ・モジュール８４は、マルチビット・バス８６を通じてサポート・モジュール８２に動作的に接続してある。好適な実施態様では、マルチビット・バスはＰＣＩ（周辺素子相互接続）バスである。サポート・モジュール８２および面板モジュール８０は、高速シリアル・データ通信に対応する、高速シリアル・インターフェース８８を通じて相互接続してある。
【００２７】
サポート・モジュール８２は、ＵＳＢシリアルＩ／Ｆコネクタ８９２を介して、ユニバーサル・シリアル・バス（ＵＳＢ）ハブ９０にも接続してある。ＵＳＢハブ９０は、多くの周辺デバイス（例えば、１２８デバイスまで）に対して接続を行なう。周辺デバイスの例には、ＯＢＤ（車内診断）システム２８、セキュリティ・システム２６、ナビゲーション・システム９４、インターネットへのワイヤレス・リンク９６、ＣＤ−ＲＯＭ交換器９８、ＴＶチューナ１００、およびジョイスティック、キーボードまたはマウス１０２のようなユーザＩ／Ｏデバイスが含まれる。
【００２８】
図３は、車両コンピュータ２２の３つのモジュールを更に詳細に示す。サポート・モジュール８２は、通常は固定したベース・ユニット４６（図１）内に位置し、ベース・ユニット４６は、車両のダッシュボードまたはその他の都合がよい場所に装着する。サポート・モジュール８２は、周辺デバイス間の通信を容易に行い、車両コンピュータ・システム全体において用いるマスタ・オーディオ・クロック信号を確立し、コンピュータ・システムの娯楽機能性を調整するロジック・ユニット１１０を含む。ロジック・ユニット１１０は、ＦＰＧＡ（現場プログラム型ゲート・アレイ）として実施することができる。尚、ＦＰＧＡのロジック・コードを開発するには、ＨＶＤＬ（ＩＥＥＥ規格１０７６−１９９３）のようなハードウエア記述言語を用い、ＡＳＩＣ（用途特定集積回路）アーキテクチャ用に再コンパイル可能であることを注記しておく。ロジック・ユニット１１０は、更に、マイクロプロセッサ、ＲＩＳＣ（縮小命令集合計算）プロセッサ、またはその他の処理デバイスとしても実施可能である。
【００２９】
サポート・モジュール８２は、いくつかのハードウエア・インターフェースを有する。ＵＳＢインターフェース１１２は、ＰＣＩバス８６から駆動され、図２に示した種々のＵＳＢ周辺機器に対する相互接続を行なう。図示のように、取り付けた周辺機器の一部がのＵＳＢを内蔵しておらず、サポート・モジュールが直接対応するよりも多くのＵＳＢ周辺機器が取り付けられている場合、別個のＵＳＢが必要となる場合もある。オプションのＶＧＡまたはその他のハイ・エンド・グラフィックス・コントローラ１１４をサポート・モジュール８２に備え、オプションのディスプレイ２４（図１）を駆動する。ＶＧＡコントローラ１１４は、ＰＣＩバスからも駆動する。ＩＤＥコントローラ１１５もサポート・モジュール内には備えてある。
【００３０】
尚、ＵＳＢインターフェース１１２およびＶＧＡコントローラ１１４をロジック・ユニット１１０に組み込むことも可能であることを注記しておく。ＡＴＡＰＩ−ＩＤＥインターフェース（ＣＤ−ＲＯＭまたはＤＶＤプレーヤを駆動するために用いる）、およびＰＣＩインターフェースは、ロジック・ユニット１１０の一部として実装する。多数のビデオ・スクリーンのような、高帯域幅ビデオ・アプリケーションに対応するためには、システムにＰ１３９４インターフェースを追加し、ＰＣＩインターフェースから駆動するか、あるいはロジック・ユニット１１０に組み込むことができる。
【００３１】
また、サポート・モジュール８２は、オーディオ信号プロセッサ１１６も含み、サウンド処理アルゴリズムを実行する。その中には、サウンド等化、ディジタル・クロスオーバ、バス、トレブル、ボリューム、サラウンド・サウンド、ドルビー・プロロジック（Ｄｏｌｂｙ ｐｒｏ−ｌｏｇｉｃTM）、ＡＣ−３、およびＭＰＥＧ復号を含むことができる。また、オーディオ信号プロセッサ１１６は、６チャネル・オーディオ出力（図示せず）のためにディジタル／アナログ変換器を駆動する。オーディオ信号プロセッサ１１６は、Ｍｏｔｏｒｏｌａ ＤＳＰ５６００９のようなＤＳＰ（ディジタル信号プロセッサ）として実施することが好ましい。また、サポート・モジュールは、ＡＭ／ＦＭチューナ・モジュール１１８、車両の緯度、経度および高度測定のための衛星ナビゲーションを可能にするＧＰＳ（全地球測地システム）チップセット１２０、ならびに１つ以上のオーディオ・アナログ／ディジタル変換器およびディジタル／アナログ変換器（または「ＣＯＤＥＣＳ‘）１２２も含む。
【００３２】
高速データＩ／Ｏメモリ１３０が、シリアル周辺デバイス間の高速データ通信バッファとして機能する。高速データ・メモリは、高速ピン／ポン・バッファを有する高速ＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）として実施し、オーディオ・データまたはＵＳＢデータの高速バッファリングおよび「ピンポン動作」（ｐｉｎｇ−ｐｏｎｇｉｎｇ）を行い、プロセッサの双方向処理を極力抑えることが好ましい。好適な実施態様では、Ｉ／Ｏメモリ１３０は、高速データ・メモリ・バッファとして作用し、多くのデバイス間のデータ交換に対処する。
【００３３】
面板モジュール８０は、取り外し可能な面板４８（図１）上に位置する。面板モジュール８０は、面板４８の主筐体３６からの容易な取り外しを促進するコネクタを介して、サポート・モジュール８２に接続する。面板モジュール８０は、取り外し可能なコネクタを介して、高速シリアル相互接続部８８によって、双方向データをサポート・モジュール８２に伝達する。面板モジュール８０は、ＦＰＧＡ、ＡＳＩＣ、またはその他のデバイスとして実施可能なロジック・ユニット１４０を含む。また、面板モジュール８０は、キーパッド５２、ディスプレイ５４およびＩｒＤＡポートも含む。加えて、面板モジュール８０は、セルフォン（ｃｅｌｌｐｈｏｎｅ）、双方向ページャ、二点間スペクトル拡散送受信機のような、オプションのプラグインＲＦ送受信機１４４のためのスロットを内蔵する。
【００３４】
通常、コンピュータ・モジュール８４は、ダッシュボード装着型のベース・ユニット４６内に位置し、ＩｎｔｅｌRｘ８６型マイクロプロセッサのような、マイクロプロセッサ１５０の形態としたプロセッサを含む。差し込むと、コンピュータ・モジュール８４はＰＣＩバス８６に接続し、サポート・モジュール８２と通信を行なう。
【００３５】
マイクロプロセッサ１５０は、Ｍｉｃｒｏｓｏｆｔ ＣｏｒｐｏｒａｔｉｏｎからのＷｉｎｄｏｗｓ ＣＥオペレーティング・システムを走らせる。オペレーティング・システムは、サポート・モジュールのＲＯＭ１５２またはフラッシュ・メモリ１５４内に格納する。コンピュータ・モジュール８４は、車両ユーザが望み得る種々のあらゆるアプリケーションにも対応する。これらのアプリケーションもＲＯＭ１５２、フラッシュ・メモリ１５４、ＤＲＡＭ１５６上、またはＣＤ−ＲＯＭ、カセット、ＰＣ−カード・フラッシュ・メモリ、ＰＣ−カード、ハード・ディスク・ドライブ、またはフロッピ・ディスケットのような、リムーバブル記憶媒体（図示せず）上に格納することができる。加えて、ユーザ・アプリケーションは、オプションのワイヤレス・インターネット接続からダウンロードすることも可能である。
【００３６】
コンピュータ・モジュール８４は、ＰＣ−カード・インターフェース１５８を有し、これは、タイプＩ、ＩＩ、またはＩＩＩＰＣ−カード（例えば、外部メモリ、ハード・ディスク・ドライブ、モデム、ＲＦ送受信機、ネットワーク・アダプタ、またはその他のＰＣ−カード周辺機器）に対応するＰＣ−カード・ソケット即ちコンパクト・フラッシュを含む。また、コンピュータ・モジュール８４は、オプションのスマート・カード・インターフェース１６０も有し、スマート・カードまたは同様の集積回路（ＩＣ）カードを受け入れる。
【００３７】
車両コンピュータ・システムにおけるこれら３つのモジュールに関する更に詳細な説明は、Ｒｉｃｈａｒｄ Ｄ．Ｂｅｃｋｅｒｔ（リチャード Ｄ．ベッカート）、Ｍａｒｋ Ｍ．Ｍｏｅｌｌｅｒ（マーク Ｍ．ミュラー）、およびＷｉｌｌｉａｍ Ｗｏｎｇ（ウイリアム・ワン）の名義で１９９５年１１月２９日に出願した、”Ｖｅｈｉｃｌｅ Ｃｏｍｐｕｔｅｒ Ｓｙｓｔｅｍ”（車両コンピュータ・システム）と題する同時係属中の米国特許第０８／５６４，５８６号において得られる。この出願はＭｉｃｒｏｓｏｆｔ Ｃｏｒｐｏｒａｔｉｏｎに譲渡され、この言及によりその内容が本願にも含まれるものとする。
【００３８】
ロジック・ユニット１１０には、コンピュータ・モジュール８４のマイクロプロセッサ１５０のバスとは別個に、それ自体のマルチビット・バス構造を構成している。ロジック・ユニット１１０およびマイクロプロセッサ１５０は、ＰＣＩバス８６のようなバスを用いてインターフェースする。ロジック・ユニット１１０にそれ自体の内部バスを構成することによって、ロジック・ユニット１１０は、マイクロプロセッサ１５０からの介入には独立して、そのタスクをより良く実行することが可能となる。更に、ロジック・ユニット１１０の内部バスは、オーディオ・コンポーネントとその他のシリアル・デバイスとの間のデータ伝達を容易にしつつ、使用するマイクロプロセッサ１３０の処理リソースを極力抑える。
【００３９】
ロジック・ユニット１１０の一実施態様の詳細な説明は、Ｒｉｃｈａｒｄ Ｄ．Ｂｅｃｋｅｒｔ（リチャード Ｄ．ベッカート）、Ｍａｒｋ Ｍ．Ｍｏｅｌｌｅｒ（マーク Ｍ．ミュラー）、Ｒｏｎ Ｒａｎｄａｌｌ（ロン・ランドール）およびＷｉｌｌｉａｍ Ｗｏｎｇ（ウイリアム・ワン）の名義で１９９６年６月２４日に出願した、”Ｖｅｈｉｃｌｅ Ｃｏｍｐｕｔｅｒ Ｓｙｓｔｅｍ ｗｉｔｈ Ｈｉｇｈ Ｓｐｅｅｄ Ｄａｔａ Ｂｕｆｆｅｒ ａｎｄ Ｓｅｒｉａｌ Ｉｎｔｅｒｃｏｎｎｅｃｔ”（高速データ・バッファおよびシリアル相互接続を備えた車両コンピュータ・システム）と題する同時係属中の米国特許第０８／６６８，７８１号において得られる。この出願はＭｉｃｒｏｓｏｆｔ Ｃｏｒｐｏｒａｔｉｏｎに譲渡され、この言及によりその内容が本願にも含まれるものとする。この開示内容に記載されているロジック回路は、オーディオ娯楽システムを実現するためにより具体化して製作した、ロジック・ユニット１１０の別の実施態様を表わす。
【００４０】
（オーディオ・アーキテクチャ）
コンピュータ・システム２０は、オーディオ娯楽システムに対応する。先に記したように、サポート・モジュール８２内のロジック・ユニット１１０は、オーディオ娯楽システムのための機能の多くを実行する。本発明は、コンピュータ・システム２０内に実装するような、オーディオ娯楽システムのオーディオ・アーキテクチャを対象とする。
【００４１】
図４は、ロジック・ユニット１１０とオーディオ信号プロセッサ１１６の相互接続、およびロジック・ユニット１１０と、ＣＯＤＥＣ１１２、ＡＭ／ＦＭチューナ１１８、ＲＢＤＳデコーダを含むＩ2Ｃバスによって制御されるその他のオーディオ・コンポーネントとの間の相互接続も加えて示す。この基準設計では、オーディオ信号プロセッサ１１６は、ＳＰＩ（シリアル周辺インターフェース）スレーブ・モードのＤＳＰとして構成する。
【００４２】
ロジック・ユニット１１０は、２つのＩ2Ｓシリアル・ディジタル・オーディオ・ストリームＤＳＰｉｎ０およびＤＳＰｉｎ１をオーディオＤＳＰ１１６に出力する。同一のパラレル／シリアル変換回路が各ストリームを作成する。この回路は、保持レジスタからパラレル・ワードを読み取り、それを出力シフト・レジスタ内に置く。ＣＯＤＥＣ１２２によって外部で発生するＩ2Ｓシリアル・シフト・クロック（６４×４４．１ｋＨｚ）が、シフト・レジスタをシフト・アウトする。保持レジスタからシフト・レジスタへのデータ転送は、ＣＯＤＥＣ１２２によって外部で発生するマスタＳＣＬＫ信号（左、右クロック）と同期を取る。ＬＲＣＫ信号を用いて、データが左または右チャネル・オーディオ信号のどちらに関連するのかを示す。
【００４３】
２つのステレオ・オーディオ・ストリームは、２つの別個のＩ2Ｓ入力チャネルを通じて、ＤＳＰ１１６において受け取り、サラウンド・サウンドのような、多数のＤＳＰオーディオ・アルゴリズムのいずれか１つをコールするために用いる。処理したオーディオ・データは、ＤＳＰｏｕｔインターフェースへの３つの別個のＩ2Ｓチャネルを通じて、ＤＳＰ１１６からロジック・ユニット１１０に返送する。３つのＤＳＰ出力チャネルは、左前および右前スピーカのチャネルＳＤ０、左後ろおよび右後ろスピーカのチャネルＳＤ１を含み、ＳＤ２は中央およびサブ・ウーファである。各サウンド・チャネルは、３２クロック・フレームに整合した２０ビット・サウンドであり、ＭＳＢ（最上位ビット）がＩ2ＳのＭＳＢに対応し、１２個の「０」が最下位ビットに続く。
【００４４】
Ｉ／Ｏメモリ１３０内のピン／ポン・バッファ・ゾーンをオーバーレイする直接メモリ・アクセス（ＤＭＡ）によって、サウンド・ソースをロジック・ユニット１１０内のＤＳＰｉｎチャネルの１つにリンクする。サウンド・ソースからのデータは、シリアル・インターフェースにおいて受け取り、ピン／ポンＤＭＡ回路１７２の１つに転送する。ＤＭＡ回路１７２は、シリアル／パラレル変換器を含み、データをパラレル・フォーマットに変換し、ロジック・ユニットの内部バスを通じてＩ／Ｏメモリ１１０に転送する。
【００４５】
このハードウエア実施態様の追加の機能は、全て並列に進む４つのステレオＤＭＡプロセスを実行する能力である。ウェーブ・アウト（ｗａｖｅ−ｏｕｔ）およびＣＤ−ＲＯＭのような２つのオーディオ・ソースは、ＤＳＰｉｎ０およびＤＳＰｉｎ１のような、２つの宛先に供給することができる。前景オーディオ・ソース（ｆｏｒｅｇｒｏｕｎｄ ａｕｄｉｏ ｓｏｕｒｃｅ）（ナビゲーション・システム命令等）は、車の前スピーカで再生することができ、一方背景オーディオ・ソース（ｂａｃｋｇｒｏｕｎｄ ａｕｄｉｏ ｓｏｕｒｃｅ）（ＣＤ音楽等）は車の後ろスピーカで再生することができる。
【００４６】
（全体的なＤＭＡ構造）
図５は、ピン／ポンＤＭＡ回路１７２を更に詳細に示す。ピン／ポンＤＭＡ回路は全て、同じ基本設計の変形である。論述の目的上、モノ・マイクロフォン受信機用ＤＭＡ回路を示す。
【００４７】
ＤＭＡ回路１７２は、シリアル／パラレル変換器２００を有し、関連するサウンド・ソース周辺デバイスから受け取ったシリアル・データをパラレル・フォーマットに変換する。パラレル・データは、最初に保持レジスタ２０２内に置かれる。保持レジスタ２０２が満杯になると、ＤＭＡ要求および付与回路２０４に信号を送る。
【００４８】
２つのロジック・コンポーネントからの出力、即ち、（１）上位ＤＭＡアドレス・ラインを含みＩ／Ｏメモリ１３０内の適切なバッファ・エリアを突き止め、保持レジスタ２０２から受け取ったデータを保持する開始アドレス・レジスタ２０６、および（２）バッファ・エリアの下位ＤＭＡアドレス・ラインを発生するアップ・カウンタ２０８からの出力によって、ＤＭＡアドレス・ポインタを形成する。コンピュータ・プロセッサは、アドレス・ポインタを開始アドレス・レジスタ２０６に書き込むことによって、ＤＭＡプロセスを初期化する。開始アドレス・ポインタは、下位アドレス・カウンタ２０８および上位アドレス・レジスタ２０６に同時に書き込む。上位アドレス・レジスタ・ポインタは、高速データ・メモリ１１０内のバッファ・エリアの先頭を規定する。この実施態様では、開始アドレス・レジスタ２０８における下位アドレス・ビットを用いて、最後の有効アドレス・レジスタと比較する。バッファ・エリアの開始アドレスは、ページ境界上にあり、バッファ・エリアのサイズは、ページ・サイズに対応して予め決められているサイズである。
【００４９】
下位アドレス・カウンタ２０８は、Ｉ／Ｏメモリ１３０の指定されたバッファ・エリア内の特定ロケーションにアクセスする。カウンタ２０８内のビット数は、バッファ・エリアのサイズに対応する。この実施態様では、カウンタは９個のアドレス・ビットＡ２〜Ａ１０を用い、ビットＡ０およびＡ１を「０」にセットする。カウンタ２０８が出力するカウントを、保持レジスタ２０２内のデータを格納する特定ロケーションへのポインタとして用いる。一旦データを格納ロケーションに転送したなら、カウンタ２０８を増分し、次の適切なロケーションを示す。
【００５０】
ＤＭＡ回路１７２は、Ｉ／Ｏメモリの１つのバッファを規定する。これは、２つの半部分、「ピン」バッファおよび「ポン」バッファに分割されている。バッファの一方の半分は、モノ入力回路のような特定の周辺デバイスのバッファ・エリアの一部を表わし、その中に、デバイスからのデータを書き込んでいる。逆に、バッファの他方の半分は、データを読み出している、バッファ・エリアの別の部分、例えば、ＤＳＰｉｎ ＤＭＡ回路を表わす。サウンド・ソースのＩ／Ｏバッファ・ゾーンは、ＤＳＰのＤＳＰｉｎデータ・ゾーンと同じ開始および終了点を有する。したがって、これらのゾーンは互いに「オーバーレイ」していると言う。ソースがピン・メモリ・バッファを満たしている間、ポン・バッファからはＤＳＰｉｎ出力に読み出しを行なっている。ソースがピン・バッファを充填し終えると、ポン・バッファを満たし始める。同時に、ＤＳＰｉｎシリアル出力プロセスは、ポン・バッファを読み出し終わり、ピン・バッファを読み出し始める。
【００５１】
下位アドレス・カウンタ２０８の上位アドレス・ビットＡ１０は、バッファ・エリアをピンおよびポン・バッファに分割する。上位カウンタ・ビットの遷移が発生すると、対応する割込マスクがイネーブルされている場合、割込を発生することができる。開始アドレス・ポインタをレジスタ２０６およびカウンタ２０８に書き込んだ後、プロセッサは「最後の有効アドレス」レジスタ２１０を初期化する。このレジスタは、下位アドレス・カウンタ２０８と同じサイズのラッチである。また、「最後の有効アドレス」レジスタ２１０は、イネーブルＤＭＡビットも含み、これをアサートしてＤＭＡプロセスを開始する。
【００５２】
ＤＭＡプロセスは、初期開始アドレス・ポインタが示す位置から開始する。下位アドレス・カウンタ２０８内の値が、「最後の有効アドレス」レジスタ２１０内の値と等しいと比較器２１２が判定した場合、下位アドレス・カウンタ２０８を０にリセットし、割込を発生する。次に、ＤＭＡプロセスは、ＤＭＡバッファの先頭から続ける。これは、ページ境界上にあり、ページ・サイズはピン／ポン・バッファのサイズである。下位アドレス・カウンタの最上位ビットが遷移を行なったとき、割込を発生し（マスクされていない場合）、ピンおよびポン・バッファ空間間での変更を定義する。
【００５３】
ＤＭＡプロセスは、ビット、ワード、または二重ワード・サイズのデータ・パケットに対して行なうように、予めセットしてある。一例として、ＩｒＤＡ ＤＭＡ回路は、バイト・サイズのデータ・パケット（即ち、８ビット）を採用する。何故なら、これは受け取るデータの基本的なサイズであるからである。ＣＤ−ＲＯＭデータは、そのバス・サイズに適した、ワード・サイズ（即ち、１６ビット）単位で転送する。Ｉ2Ｓ ＤＭＡデータは、二重ワード・サイズ（即ち、３２ビット）で転送する。これは、１対の左／右１６ビット・データを表わす。
【００５４】
ＤＭＡアドレス・ビットＡ０およびＡ１は、適切なＤＭＡ回路によって制御する。これらのビットをデコードし、４バイト選択信号で置換する。転送がバイト幅である場合、バイト・アドレス・カウンタの下位２ビット（Ａ０およびＡ１）を用いて、バイト選択ラインの１つを選択する。転送がワード幅である場合、カウンタの下位ビット（Ａ１）を用いて、バイト選択ラインの上位対または下位対を選択する。この場合、２バイトの選択ラインを同時にアサートする。二重ワードの転送では、４つのバイト・イネーブルを全てアサートする。このように、ＤＭＡプロセスは、バイト、ワード、または二重ワード・サイズのデータ・パケットに対応する。
【００５５】
シリアル受信プロセスの場合、周辺デバイスから受信したシリアル・データ・ストリームをシリアル／パラレル変換器２００内でシフトし、長さが８、１６、または３２ビットの単位を形成する。適切な数のシフトの後、データをレジスタ２０２に転送する。データを保持レジスタ２０２に転送するプロセスによって、ピン／ポンＤＭＡ回路内においてＲＥＱ信号をセットする。
【００５６】
保持レジスタ２０２が満杯のときはいつでも、ピン／ポンＤＭＡ回路１２は、保持レジスタ２０から次のオーディオ・ワードを捕獲し、これをＩ／Ｏメモリ・バッファ１３２に内に置く。ＤＭＡプロセスがピンまたはポンの境界を交差するときはいつでも、割込を発生する（マスクされていない場合）。これは、オーディオ・ソースのＤＭＡプロセス、およびＤＳＰｉｎチャネルのＤＭＡプロセス双方に当てはまる。その逆は、ＤＳＰＩＮ０チャネルのような送信ＤＭＡプロセスの場合において、保持レジスタが空の場合、ＤＭＡピン／ポン回路はＩ／Ｏメモリから次のオーディオ・ワードを捕獲し、それを保持レジスタ内に置くことと意味する。
【００５７】
（共有ピン／ポン・バッファ上におけるＤＭＡプロセスの同期）
再度図４を参照するが、オーディオ・アーキテクチャは、ＤＭＡ回路１７２内で発生した割込を、同じピン／ポン・バッファ１３２を共有する２つのＤＭＡプロセスの同期を取るための手段として用いる。一方のＤＭＡ回路からのデータを共有ピン／ポン・バッファ１３２に書き込み、続いてバッファから他のＤＭＡ回路に読み出す。オーディオ・ソースに応じて、ＤＭＡ回路は、異なるレートで書き込みおよび読み出しを行なうことができる。説明中の実施態様では、出力ＤＭＡ回路は、ロジック・ユニットが供給する４４．１ｋＨｚのサンプリング・レートを用いる。しかしながら、入力ＤＭＡ回路は、多少異なるデータ・レートを用いることも可能である。例えば、オーディオ・デバイスがそれ自体のクロック信号の下で動作し、ＵＳＢに結合されている場合、正確に４４．１ｋＨｚではないレートで、オーディオ・データをバッファ１３２に書き込むことができる。その結果、入力ＤＭＡクロック・レートは、出力ＤＭＡクロック・レートと正確には一致しない可能性がある。何故なら、これらは異なるクロック回路で制御されるからである。
【００５８】
好適な実施態様では、異なるスレッドおよびデバイス・ドライバが、共有ピン／ポン・バッファの読み出しおよび書き込みＤＭＡプロセスを制御する。オーディオ・ソースの設計者は、共有バッファをそのクロック・レートで満たすように構成しさえすればでよい。
【００５９】
次の例について検討する。第１の場面では、書き込みおよび読み出しＤＭＡプロセスは、双方とも４４．１ｋＨｚマスタ・クロックを基本とする。この場面を例示するために、ＡＭ／ＦＭチューナ１１８がオーディオ・データのソースであると仮定する。ＡＭ／ＦＭチューナ１１８からのオーディオ・データ出力は、ＣＯＤＥＣ１２２によってディジタル化し、Ｉ2Ｓオーディオ・ストリームとしてロジック・ユニット１１０に出力する。ロジック・ユニット１１０は、Ｉ2Ｓストリームを１６ビット・ワードの左右対に変換し、ＡＭ／ＦＭチューナの第１ＤＭＡ回路が、１対のワードを、ＤＭＡポインタが示すバッファの「ピン」部分に書き込む。ＡＭ／ＦＭチューナのデータをピン・メモリに書き込んでいる間、第２ＤＭＡ回路が同時にバッファ・メモリ・プロセスの対応する「ポン」部分からデータを読み出し、そのデータをＤＳＰｉｎ出力に出力している。書き込みおよび読み出しプロセスは双方とも４４．１ｋＨｚであるので、ピンおよびピン間のトグルは、着信データおよび出立データ双方において同時に行われる。着信および出立トグル双方によって発生する割込は、コンピュータがデータに何らかの興味を示さない限り（それをＵＳＢまたはディスクに送る等）、無視することができる。
【００６０】
第２の場面では、ソースが内部４４．１ｋＨｚとは多少異なるレートでデータを書き込む。例えば、ＣＤ−ＲＯＭプレーヤがデータのソースであると仮定する。この場合、ピン／ポン・メモリ・バッファ１３２は、ＣＤ−ＲＯＭメモリ空間とＤＳＰｉｎ出力のメモリ空間が重複するように構成する。ＣＤ−ＲＯＭと連動するＤＭＡ回路１７２が、オーディオ・データのバイトおよびサブチャネル・データのある数のワードで、「ピン」メモリ・バッファを満たす。同時に、ＤＳＰｉｎ出力のＤＭＡ回路は、４４．１ｋＨｚレートで「ポン」メモリ・バッファからデータを読み出している。
【００６１】
次に、ＣＤ−ＲＯＭプレーヤがＣＤ−ＲＯＭディスクから４４．１ｋＨｚのオーディオ・レートでオーディオ・データを読み出すと仮定する。このレートでは、ＣＤ−ＲＯＭプレーヤは、１秒の１／７５毎に、１ブロック２．４５２バイトのオーディオ・データを作る。このブロックが準備できたとき、ＣＤ−ＲＯＭプレーヤハＤＭＡ要求ラインを活性化し、ブロック・データを素早く転送し、次のブロックを受け取るまで、ラインを不活性化する。ＤＭＡ回路は、ブロック転送の終了時に割込を発生する。このプロセスの結果として、ＣＤ−ＲＯＭのオーディオ・データ・レートは、オーディオＤＳＰ１１６およびＣＯＤＥＣ１２２を駆動する４４．１ｋＨｚのマスタ・クロックとは多少異なる場合がある。
【００６２】
これら２つのデータ・ストリームの同期を取るために、ソフトウエア・デバイス・ドライバはロジック・ユニット１１０を用いて、ＣＤ−ＲＯＭプレーヤのブロック・データ転送間の時間を測定し、サポート・モジュールのマスタ・オーディオ・クロックを調節し、ＣＤ−ＲＯＭデータ・レートと一致させる。
【００６３】
図６は、ロジック・ユニット１１０内に実装したマスタ・クロック調節回路２３０を示す。マスタ・オーディオ・クロック調節器２３０は、基準レジスタ２３２、Ｎ分割レジスタ２３４、２つの比較器２３６、２つのラッチ２３８、および制御ロジック２４０を有する。２つの比較器２３６は、データをピン／ポン・バッファに書き込むレートを決定するのに役立つ。ホスト・コンピュータは、ポインタをラッチ２３８に書き込む。このポインタは、ピン／ポン・バッファ１３２のＩ／Ｏメモリ１３０内のアドレスに対応する。このアドレスにデータを書き込む動作が行われると、そのいずれもが、ホストに割込を発生する（マスクされていない場合）。割込が発生すると、コンピュータは、それがデータを読み出しているＤＭＡプロセスのアドレス位置を読み出し、この位置に基づいて、入力データ・レートが出力レートと一致するか否かについて判定を行なう。
【００６４】
レートが異なる場合、コンピュータは値を基準レジスタ２３２に送る。この値をＮ分割カウンタ２３４に入力し、サポート・モジュール上のディジタル・オーディオ・チャネルに対する基準オーディオ・クロックを発生する。通常では、基準オーディオ・クロックは４４．１ｋＨｚである。しかしながら、コンピュータは、データを読み出すレートを高速化または低速化するために基準オーディオ・クロックを調節する値を出力し、着信オーディオ・ストリームのデータ・レートに同期させることができる。
【００６５】
ソフトウエア設計では、単一の共有メモリ・バッファを多数の入力デバイスがデータを書き込むために用いたり、１つの出力デバイスのみがデータを読み出すために用いることができる。共有ピン／ポン・バッファの読み取りおよび書き込みＤＭＡプロセスは、異なるスレッドおよびデバイス・ドライバによって制御する。この目的は、標準的な出力デバイス・ドライバを殆どのオーディオ・ソースに適合させることである。オーディオ・ソース・デバイス・ドライバは、共有バッファをそれ自体のレートで満たす場合にのみ必要となる。
【００６６】
種々のオーディオ・ソース間で単一の共有バッファを使用することに対する代替案の１つは、オーディオ・ソースの対応するものに対して、多数の共有メモリ・バッファを有することである。各オーディオ・ソースはそれ自体のバッファを用い、出力デバイス・ドライバは、現オーディオ・ソースが変わるときに、異なる入力バッファ間で切り替えを行なう。この実施態様に伴う欠点は、必要なメモリ空間が多くなることである。加えて、新たなオーディオ・ソースが出力デバイス・ドライバに新たなオーディオ共有バッファについて通知することは必ずしも容易ではない。
【００６７】
前述のように、書き込みスレッド（オーディオ・ソース・デバイス・ドライバによって制御する）は、おおまかに４４．１ｋサンプリング・レートのデバイス制御クロック・レートで供給バッファを満たしている。読み出しスレッドも同じクロック・レート（例えば、無線）で動作している場合、問題はない。しかしながら、前述の周辺デバイス（ＣＤおよびＵＳＢデバイス等）では、クロック・レートが正確に一致しない。入力ＤＭＡおよび出力ＤＭＡは互いに追い付き、同じピン／ポン・バッファ・セクションにアクセスし始める可能性があるので、遅かれ早かれ出力ノイズが発生する。読み出しスレッドがそのクロックを適合化し書き込みスレッドと一致させるために、システムは書き込み通知割込（ピン／ポン・バッファの中央ＤＷＯＲＤに書き込んだときにトグルする）を採用する。正規の読み出し終了割込およびこの書き込み通知割込を監視することによって、読み出しスレッドは、そのクロックを適合化し書き込みＤＭＡに一致させることができる。
【００６８】
読み出しスレッドが最初の書き込み割込を検出したとき、読み出しを開始することができる。結果的に書き込み割込が発生した場合はいつでも、現在バッファのどこから読み出しているのか見つけ出すことができる。この情報から、読み出しクロックを増減し、書き込みスレッドに一致させることができる。１回の書き込み割込もなく２回の読み出し割込を検出した場合、動作を自動停止することができる。
【００６９】
（バス・アービタ）
図７は、内部バスへのアクセスを制御するバス・アービタ回路２５０を示す。この内部バスは、ＰＣＩバスＤＭＡ回路とＩ／Ｏメモリとの間でアクセスするために用いる。バス・アービタ回路２５０は、ＰＣＩバス８６から受け取ったバス要求と、ロジック・ユニット１１０内のＤＭＡ回路１７２から受け取ったＤＭＡ要求との間で、２対１マルチプレクサ２５２を前後にトグルする。バス・アービタ回路２５０は、ＰＣＩバス８６に、内部バス上で使用可能な時間の半分を付与し、残りの半分の時間を８つのＤＭＡプロセスの間で分配する。これらの全ては同時にイネーブルすることができる。将来、８ＤＭＡよりも多い対応を得る可能性もある。
【００７０】
図示の例では、アービタ回路１７０は、８つのＤＭＡ回路、即ち、ステレオ、モノ、ＤＳＰｏｕｔ（即ち、オーディオ信号プロセッサ）、ＩｒＤＡ受信、ＤＳＰｉｎ０、ＤＳＰｉｎ１、ＩｒＤＡ送信、および面板に対応する。これら８つの回路は、内部バスへの残り半分の帯域幅を共有する。したがって、各ＤＭＡ回路には、バス帯域幅の１／１６が保証される。尚、ＣＤ−ＲＯＭはＰＣＩ ＤＭＡプロセスを用いて、Ｉ／Ｏメモリに書き込みを行なうことを注記しておく。
【００７１】
２対１マルチプレクサ２５２がアクティブな要求をデコードした場合、トグル・プロセスを停止し、ロジック・ユニットのバスに対してバス・サイクル状態機械２５４を起動する。また、アクティブな要求は、内部ロジック・ユニット・バスをＰＣＩバスまたは、デコーダ２５６によって選択した内部ＤＭＡ回路の１つのいずれかに付与する。
【００７２】
シフト・レジスタ２５８が、ＤＭＡ回路からの保留中の要求全てをロードする。シフト・レジスタ２５８の出力は、カウンタ２６０へのイネーブルである。シフト・レジスタ２５８をシフトする毎に、カウンタ２６０はカウントする。シフト・レジスタ２５８からの出力がアクティブなＤＭＡ要求を示す場合、カウンタ２６０およびシフト・レジスタ２５８は停止する。２−１マルチプレクサがＤＭＡデバイスにトグルすると、シフト・レジスタ２５８からのアクティブな要求はトグルを中止し、ＤＭＡ要求に対するバス・サイクルを開始する。バス・サイクルの完了後、「終了」信号を適切なＤＭＡ回路に発生し、ＤＭＡ要求ラインを解放し、２対１マルチプレクサ２５２、シフト・レジスタ２５８、およびカウンタ２６０は次のアクティブなＤＭＡ要求を探し続ける。
【００７３】
（オーディオ・マネージャＡＰＩ）
コンピュータ・システム２０は、オーディオ娯楽システムに対応する、十分な機能を有する汎用コンピュータである。システム２０は、ラジオ、ＣＤ、補助入力、およびＣＤ交換器のような、多数のオーディオ・ソースに対応するように設計してある。オーディオＤＳＰ１１６は、サウンド等化、サラウンド・サウンドの復号、およびボリューム／バランス／フェード制御を処理する。オーディオは、スピーカ・システム（例えば、６つのスピーカ）またはいずれかのＵＳＢクライアントに再生することができる。
【００７４】
コンピュータ・システム２０は、オーディオ・マネージャＡＰＩ（アプリケーション・プログラム・インターフェース）を実装し、コンピュータ上で走るアプリケーションが、基礎のサウンド・システムのハードウエアや実装の詳細を知ることなく、種々のオーディオ・ソースを制御することを可能にする。異なるオーディオ・デバイスおよびそのドライバが、等化、ボリューム制御およびサラウンド・サウンド復号というような、オーディオ・システムの異なる機能性を制御する。オーディオ・マネージャＡＰＩは、アプリケーションが行なったコールを、適切なデバイス・ドライバ（複数のドライバ）に転送する。
【００７５】
図８は、アプリケーション／ハードウエアのアーキテクチャを示す。オーディオ・ハードウエア２７０は、このアーキテクチャにおける最下位レベルを形成する。オーディオ・ハードウエア・アブストラクション・レイヤ（ＨＡＬ）２７２は、ハードウエア２７０のためのオーディオ関連ドライバとオーディオ・マネージャＡＰＩレイヤ２７４との間に基本的なインターフェース・レイヤを定義する。オーディオ・マネージャπ２７４の上には、アプリケーション２７６がある。オーディオ・マネージャＡＰＩ２７４は、基礎のオーディオ・システムにアクセスし制御するＡＰＩを定義する。
【００７６】
オーディオ・マネージャＡＰＩ２７４は、５つの中核コンポーネント、即ち、オーディオ・ソース制御ＡＰＩ２７８、ウェーブ・インおよびウェーブ・アウトＡＰＩ２８０、サラウンド・サウンド・デコーダＡＰＩ２８２、等化ＡＰＩ２８４、およびボリューム／バランス／フェードＡＰＩ２８６を有する。異なるＡＰＩは、オーディオ・システムの異なる面を制御する。これらは一体となって、アプリケーション２７６のために便利なＡＰＩを提供する。
【００７７】
オーディオ・ソースは、一般に２種類に分類される。即ち、前景オーディオ・ソースおよび背景オーディオ・ソースである。前景オーディオ・ソースは、コンピュータ・ウェーブ・ファイル出力およびテキスト／音声出力を含む。前景オーディオ・ソースをアクティブな背景オーディオ・ソースと混合する。前景オーディオ・ソースは、ウェーブ・アウトＡＰＩによって制御する。対照的に、背景オーディオ・ソースは、ＡＭ／ＦＭチューナ、ＣＤプレーヤ、補助入力、およびＵＳＢからのその他のソースを含む。背景ソースは、オーディオ・ソース制御ＡＰＩによって制御する。
【００７８】
オーディオ・システムは、スピーカ、ＵＳＢデバイス、およびコンピュータというように、１つよりも多い宛先を有することができるが、主な宛先はスピーカである。したがって、選択した多数のオーディオ・ソースのいずれもが、最終的には１つのオーディオ宛先、即ち、スピーカ・システムに収束する。
【００７９】
図９は、オーディオ・マネージャＡＰＩモジュールがどのようにしてオーディオ・フロー経路を制御するかを示す。
【００８０】
オーディオ・ソース制御ＡＰＩ２７８を用いて背景オーディオ・ソースを選択する。これは、オーディオ・システムの異なる部分を制御する、異なるオーディオ・アプリケーション間でコーディネータとして機能する。例えば、ＡＭ／ＦＭチューナが演奏している間にオペレータがＣＤの再生を選択した場合、オーディオ・ソース制御ＡＰＩ２７８は、チューナを停止し、ＣＤプレーヤを開始するように調整を行なう。表１は、オーディオ・ソース制御ＡＰＩ２７８の機能を纏めたものである。
【００８１】
【表１】
0004672791.tif 000002
【００８２】
表１：オーディオ・ソース制御ＡＰＩ２７８
【００８３】
ウェーブ・インおよびウェーブ・アウトＡＰＩ２８０は、Ｗｉｎｄｏｗｓ ＣＥオペレーティング・システムのＳＤＫのような、標準的なＷｉｎｄｏｗｓ ＳＫＤに文書化されている、Ｗｉｎ３２ Ｗａｖｅ ＡＰＩと互換性がある。これらのＡＰＩに関する更なる情報については、読者は先に記したＳＤＫを参照のこと、 サラウンド・サウンドＡＰＩ２８２は、サラウンド・サウンド復号をイネーブルする。これは、ＳＳＤをイネーブルおよびディスエーブルし、サラウンド・サウンド遅延時間を設定し、サブウーファ・ロー・パス・フィルタのカットオフ周波数を設定するためのメンバ関数を含む。表２は、サラウンド・サウンドＡＰＩ２８２の機能を纏めたものである。
【００８４】
【表２】
0004672791.tif 000003
【００８５】
表２：サラウンド・サウンドＡＰＩ２８２
【００８６】
等化ＡＰＩ２８４は等化設定値を変更する。表３は等化ＡＰＩ２８４の機能を纏めたものである。
【００８７】
【表３】
0004672791.tif 000004
【００８８】
表３：等化ＡＰＩ２８４
【００８９】
ボリューム／バランス／フェードＡＰＩ２８６は、ボリューム、バランス、およびフェードを変更する。表４は、ボリューム／バランス／フェードＡＰＩ２８６の機能を纏めたものである。
【００９０】
【表４】
0004672791.tif 000005
【００９１】
表４：ボリューム／バランス／フェードＡＰＩ２８６
【００９２】
再度図８を参照すると、オーディオ・マネージャＡＰＩ２７４は、オーディオＨＡＬインターフェース２７２を介して、特定のデバイスに対するオーディオ・デバイス・ドライバと通信を行なう。アプリケーション２７６と共に動作するために、各デバイス・ドライバは、表５に纏めた以下の１組のインターフェースに対応する。
【００９３】
【表５】
0004672791.tif 000006
【００９４】
表５：ＨＡＬ２７２のインターフェース
【００９５】
あるオーディオ・ソースを演奏するには、通常１つよりも多いデバイスが関与する。例えば、ＣＤを再生するには、最初に共有バッファ・デバイスを用意し、その後ＣＤドライバがオーディオ・データを共有バッファに送る。デバイス間に何らかの依存性を確立する場合、全てのオーディオ関連デバイスは、それ自体を登録し、それが依存するデバイス・ドライバはどれであるか指定する。
【００９６】
あるアプリケーションがあるオーディオ・ソースを再生したい場合、オーディオ・ソースＩＤをそのパラメータとして、ＳｅｌｅｃｔＳｏｕｒｃｅをコールする。オーディオ・マネージャＡＰＩは現オーディオ・ソースを全て選択解除し、アプリケーションが要求したソースを選択する。現オーディオ・ソースの選択を解除するには、オーディオ・マネージャＡＰＩは、リンク・リスト構造をくまなく調べ、各ソースまたは依存するデバイスにその終了を通知する。新たなソースを選択するには、当該ソースおよび依存するデバイスにその開始を通知する。
【００９７】
（マイクロフォン・インターフェースのＤＳＰ ＳＰＩ）
コンピュータ・システム２０は、制御およびコマンド、離散音声認識システムのような、音声認識システムに対応する。マイクロフォン・ジャック７２が取り込んだ音声の発音を含む全てのオーディオ・データを、ＣＯＤＥＣが供給する４４．１ｋＨｚのサンプリング・レートでサンプリングする。しかしながら、音声認識システムは、異なるサンプリング・レートを用いる場合もある。説明中の実施態様では、音声認識システムは、かなり遅めの１１ｋＨｚサンプリング・レートを用いる。マイクロフォン・データのためだけに追加のＡ／Ｄ変換器を付加する代わりに（コストが上昇する）、システム２０は、高い方の４４．１ｋＨｚサンプリング・レートから所望の１１ｋＨｚにマイクロフォン・データを変換する。
【００９８】
１つの手法は、コンピュータに４４．１ｋＨｚでデータを記録し、ホスト・コンピュータにサンプリング・レートの変換を行なわせることであろう。しかしながら、この手法は、コンピュータの資源を消費するので、余り望ましくない。
【００９９】
より好適な手法は、オーディオＤＳＰ１１６またはロジック・ユニット１１０内においてサンプリング・レート変換を行なうことである。しかしながら、Ｉ2Ｓインターフェースは全て何らかのことに専用となっているので、本発明の一態様では、オーディオＤＳＰのＳＰＩ（シリアル周辺インターフェース）において受け取ったコマンド／メッセージ・ストリームによってマイクロフォン・データをピギーバックする。ホストＣＰＵからのコマンドによってマイクロフォン・データをピギーバックし、ＳＰＩを介してＤＳＰ内に送り込む。ＤＳＰは、通常のロー・パス・フィルタリングおよびダウン・サンプリングをデータ・ストリームに実行し、次いでＳＰＩを用いてマイクロフォン・データをその新たな１１ｋＨｚサンプリング・レートで、メッセージ・ストリームによってピギーバックして返送する。
【０１００】
図１０は、マイクロフォン・データをホストＣＰＵに渡し音声認識処理を行なうまでのフローを示す。マイクロフォン７２が発生したアナログ信号を増幅器２９０において増幅し、ＣＯＤＥＣ１２２のモノ・チャネルに入力する。ＣＯＤＥＣ１２２は、アナログ・マイクロフォン信号を２０ビットの分解能および４４．１ｋＨｚのサンプリング・レートでディジタル化する。２０ビットを３２クロック・フレーム内で整合する。ＭＳＢがＩ2ＳのＭＳＢに対応し、最下位ビットの後に１２個の０が続く。ＣＯＤＥＣは、２０ビットのマイクロフォン・データをＩ2Ｓ内のロジック・ユニット１１０に送る。
【０１０１】
ロジック・ユニット１１０は、シリアルＩ2Ｓデータを受け取り、図５に示すように、モノＤＭＡ回路１７２においてパラレル・データに変換する。モノＤＭＡ回路１７２は、２０ビットのモノ・データをＳＰＩモジュール２９２に渡し、このモノ・データを２４ビットのＳＰＩシリアル・トランザクションに変換し、オーディオＤＳＰ１１６に送る。尚、ＤＳＰ１１６は、合計３つのオーディオ入力ストリームに対して、ＤＳＰｉｎＴＸピン／ポンＤＭＡから２チャネルのＩ2Ｓオーディオを同時に受け取ることができ、コマンド／メッセージ・ストリームによってモノ・オーディオ・ストリームをピギーバックすることを注記しておく。
【０１０２】
オーディオＤＳＰ１１６は、バンドパス・フィルタ２９４をモノ・データに適用し、次いで、各４フィルタ出力サンプル毎に１サンプルを保持し、残りの３サンプルを破棄することによって、データを１１ｋＨｚストリームに間引く。３サンプル置きのＳＰＩモノ・トランザクションの後、ＤＳＰは有効なフィルタリング済みモノ出力データをロジック・ユニット１１０に返す。各４４．１ｋＨｚ期間毎に、マイクロフォン・データ・ワードをＤＳＰに送る。しかしながら、４番目のマイクロフォン・ワードを送った後でのみ、フィルタリングしたマイクロフォン・ワードをＤＳＰから戻し、新たな１１ｋのサンプリング・レートのマイクロフォン・データを表わす。ＤＳＰに送るワード毎に、１ワードを戻す。言い換えると、ＤＳＰに送る４ワード毎に、ＤＳＰは、フィルタリングしたワードと印した１ワードと、無効データと印した３ワードとを返す。
【０１０３】
ＳＰＩモジュール２９２は、フィルタリングしたモノ・データの上位側１６ビットをパラレルに変換し、これらをモノＤＭＡ回路１７２に返送する。
【０１０４】
モノＤＭＡ回路１７２は、フィルタリングした２つの連続１６ビット・ワードをその保持レジスタに格納した後に、ＤＭＡ要求信号をアサートする。データは、マルチプレクサ２５６を介してピン／ポン・バッファ１３２に転送される。ピン・バッファが満杯の場合、ホストＣＰＵに割込を発生する。ＰＣＩＤＭＡ回路２９６は、ＰＣＩコントローラ２９８からの命令に応答して、Ｉ／Ｏメモリ１３０内のピン・バッファからモノ・データを読み出し、ローカル・ホスト・メモリ１５２内のバッファ３００にこのデータをダンプする。音声認識ソフトウエア３０２は、バッファ３００からモノ・データのブロックを検索し、処理する。
【０１０５】
ホストがコマンドをロジック・ユニット１１０内のＳＰＩデータ・レジスタに書き込むと、ＳＰＩインターフェース・ロジックは、次のマイクロフォン・データ・トランザクションに続いて直ちに、このコマンド・ワードをオーディオＤＳＰ１１６に送る。モノ・オーディオ・データはＳＰＩバスの帯域幅全体を利用しないので、コマンド／メッセージ・ストリームは、モノ・データとインターリーブすることができる。オーディオＤＳＰをリセットした後、ＳＰＩポートから５１２（２４ビット）ワードをロードすることが予測される。これらのワードは、その実行可能なプログラムまたはより大きな実行可能プログラムにロードするためのプログラムを含む。この状況では、ＳＰＩ制御レジスタは、マイクフォロン・データのフィードをディスエーブルし、ＳＰＩデータ・ポートに書き込んだデータを直接ＤＳＰに送ることを可能にするビットを含む。このモードでは、ＤＳＰから受け取ったデータ全てを無視する。
【０１０６】
以上、構造的特徴および／または方法論的ステップに特定の言葉で本発明について説明したが、添付した特許請求の範囲に規定した発明は、記載した具体的な構造やステップに必ずしも限定される訳ではないことは理解されよう。逆に、これら具体的な構造およびステップは、特許請求する発明を実現する形態の一例として開示したものである。
【図１】
0004672791.tif 000007
【図２】
0004672791.tif 000008
【図３】
0004672791.tif 000009
【図４】
0004672791.tif 000010
【図５】
0004672791.tif 000011
【図６】
0004672791.tif 000012
【図７】
0004672791.tif 000013
【図８】
0004672791.tif 000014
【図９】
0004672791.tif 000015
【図１０】
0004672791.tif 000016