シリアル低電力インターチップメディアバス(SLIMbus)は、モバイル端末のベースバンドプロセッサまたはアプリケーションプロセッサと周辺機器間の標準インターフェースです。これは、ARM、Nokia、STMicroelectronics、およびTexas Instrumentsによって設立されたMIPI Alliance内で開発されました。[ 1 ]このインターフェースは、多数のデジタルオーディオコンポーネントを同時にサポートし、異なるサンプリングレートとビット幅で複数のデジタルオーディオデータストリームを伝送します。
SLIMbus は、同期 2 線式、構成可能な時分割多重(TDM) フレーム構造として実装されています。バス調停メカニズムとメッセージ構造をサポートしており、実行時にシステム アプリケーションのニーズに合わせてバスの動作特性を再構成できます。物理的には、データ ライン (DATA) とクロック ライン (CLK) が、マルチ ドロップ バストポロジで複数の SLIMbus コンポーネントを相互接続します。SLIMbus デバイスは、SLIMbus 仕様で概説されている適切なプロトコルを使用することで、必要に応じてバスから動的に「ドロップ オフ」したり、バスに「再接続」したりできます。モバイル端末やポータブル製品で使用される場合、SLIMbus は、 PCM、I 2 S [ 2 ]、SSI (デジタル オーディオ用同期シリアル インターフェイス) などの従来のデジタル オーディオ インターフェイス、および I 2 C [ 3 ] SPI、microWire [ 4 ] UART、またはデジタル オーディオ コンポーネントのGPIOピンなどの多くのデジタル制御バスの一部を置き換えることができます。
SLIMbusデバイスクラス定義とは、デバイス制御データ、デバイス動作、およびデータ転送プロトコルサポートに関する最小要件を規定するものです。SLIMbus仕様バージョン1.01のリリース時点では、マネージャ、フレーマー、インターフェース、およびジェネリックの4つのSLIMbusデバイスクラスが定義されています。追加のデバイスクラスがなくても、完全なSLIMbusシステムを実装できます。
マネージャデバイスは、SLIMbusの設定を担当し、バス管理(コンポーネントとデバイスの管理、バス構成、動的チャネル割り当て)を実行します。通常、周辺機器ではなく、ベースバンドプロセッサまたはアプリケーションプロセッサに配置されます。
フレーマーは、 CLKライン上のクロック信号をすべてのSLIMbusコンポーネントに供給するとともに、DATAライン上でフレーム同期チャネルとフレーミング情報チャネルを送信するためのロジックも内蔵しています。
インターフェースデバイスは、バス管理サービスを提供し、物理層のエラーを監視し、SLIMbusコンポーネントの状態に関する情報を報告し、そのコンポーネント内のデバイスがバス上で適切に機能するようにコンポーネントを管理します。
機能的なSLIMbusコンポーネントを実装するには、常にSLIMbusインターフェースデバイスと、DAC、ADC、デジタルアンプなどの実行すべき機能が必要です。
汎用デバイスとは、マネージャ、フレーマー、またはインターフェース以外のデバイスのことです。汎用デバイスは一般的に、特定のアプリケーション機能を提供するデバイスと考えられており、例えば、デジタルオーディオからアナログへの変換(DAC)や、その逆の変換(ADC)などが挙げられます。
SLIMbusコンポーネントは、2つ以上のSLIMbusデバイスで構成されます。SLIMbusコンポーネントには、SLIMbusインターフェースデバイス(INTERFACE)が1つだけ存在し、特定の機能(FUNCTION)を実行する他の種類のSLIMbusデバイスを1つ以上持つことができます。
SLIMbusポート(P)は、デバイス間のデータフローのための接続経路を提供します。SLIMbusポートは通常、デジタルオーディオデータのフローに使用されますが、他のデジタルデータのフローにも使用できます。
ポートの機能はデバイスによって異なり、コンポーネントのデータシートに記載されています。一般的なポート属性には、データの方向(入力専用(シンク)、出力専用(ソース)、または入出力両方)、サポートされているトランスポートプロトコル、およびデータ幅が含まれます。
単純なSLIMbusコンポーネントの例を以下の図1に示し、複雑なSLIMbusコンポーネントの例を以下の図2に示します。


すべてのSLIMbusデバイスは、DATAとCLKを使用して、使用中のバス構成と同期し、メッセージやデータを受信または送信し、デバイス間のバス調停、衝突検出、および競合解決を実行します。
SLIMbusコンポーネント(フレーマーデバイスを含むものを除く)では、CLK端子は入力専用です。SLIMbusコンポーネントがフレーマーデバイスである場合、またはフレーマーデバイスを含む場合は、CLK信号は双方向です。
すべてのSLIMbusコンポーネントにおいて、DATAラインは双方向であり、NRZI(Non-Return-to-Zero Inverted )エンコーディングを使用してバス上で送受信されるすべての情報を伝送します。
DATAラインはCLKラインの正エッジで駆動され、負エッジで読み取られます。SLIMbusデバイスの動作モードに応じて、DATAラインはハイレベル、ローレベルに駆動されるか、内部バスホルダー回路によってハイレベルまたはローレベルに保持されます。
SLIMbusインターフェースのDATA線とCLK線は、 CMOSライクなシングルエンド、グランド基準、レールツーレール、電圧モード信号を使用し、信号電圧はインターフェース電源電圧(+1.8Vddまたは+1.2Vddが許容される)を基準として規定されています。EMI性能上の理由から、 SLIMbusにはスルーレート制限が規定されています。
SLIMbus CLKライン周波数は、最大28MHzの「ルート」クロック周波数範囲と 、最低から最高までの512倍の範囲でクロック周波数を2のべき乗で変更できる10個のクロックギアによって決定されます。ルート周波数は、CLKライン周波数の2 (10-G)倍として定義されます。G=10の場合、CLKライン周波数とルート周波数は等しくなります。
SLIMbus CLKは停止および再起動することも可能です。
SLIMbusのCLK周波数とデータ転送プロトコルは、一般的なデジタルオーディオコンバータのオーバーサンプリング周波数および関連するサンプリングレートをすべてサポートします。
SLIMbusフレーム構造は、セル、スロット、フレーム、サブフレーム、スーパーフレームの5つの構成要素から成り立っています。
セルとは、CLKラインの連続する2つの正のエッジで囲まれたDATA信号の領域であり、1ビットの情報を保持するものと定義される。

スロットは、連続する4つのセル(最上位ビットから最下位ビットの順に送信される4ビット)として定義されます。4ビットのスロットをグループ化することで、4ビットから32ビット以上までのさまざまなデータ構成に対する帯域幅の割り当てを行うことができます。
フレームは、192個(0~191)の連続したスロットとして定義され、S0、S1、S2…S191の順に送信されます。各フレームの最初のスロット(スロット0)は、4ビットのフレーム同期シンボルを含む制御空間スロットです。各フレームのスロットS96も制御空間スロットであり、4ビットのフレーミング情報を含みます。
アクティブなフレーマーは、適切なタイミングで全てのフレーミング情報をデータラインに書き込みます。
サブフレームとは、フレーム構造において制御空間とデータ空間が交互に配置される部分のことです。サブフレームは、1つ以上の制御空間スロットと、それに続く0つ以上のデータ空間スロットに分割されます。
下図4に示すように、サブフレームの長さは、6、8、24、または32個の連続スロット(24、32、96、または128セル)にプログラム可能です。したがって、1フレームあたりのサブフレーム数は、それぞれ32、24、8、または6となります。使用するサブフレーム構成は、その時点でサポートされるアプリケーションのデータフロー要件に応じて動的に変更できます。

制御領域の4つのスロットはフレーム同期シンボル用に予約されており、4ビットはフレーミング情報ワード、8ビットはガイドバイト用に予約されています。残りの領域は、より一般的な制御メッセージに使用できます。
コントロールスペースに割り当てられていないスロットはすべてデータスペースとみなされます。
スーパーフレームは、連続する8つのフレーム(1536スロット)として定義されます。スーパーフレーム内のフレームは、フレーム0からフレーム7まで番号が付けられます。
スーパーフレームの持続時間は、スロット数(したがってセル数)で固定されていますが、時間単位では固定されていません。SLIMbusでは、SLIMbusルート周波数またはクロックギア、あるいはその両方を変更することで、特定のアプリケーションに合わせてスーパーフレームレートを動的に変更できます。
SLIMbus DATAライン上の情報は、制御空間チャネルとデータ空間チャネルに割り当てられます。
コントロールスペースは、バス構成情報と同期情報、およびデバイス間メッセージ通信を伝送します。コントロールスペースは、必要に応じてSLIMbusの帯域幅を動的に割り当てて使用することができ、場合によっては最大100%まで使用することも可能です。
データスペースが存在する場合、そこには等時性データストリームや非同期データストリームなど、アプリケーション固有の情報が格納されます。
SLIMbusコンポーネントは、トランスポートプロトコルを用いた制御チャネルとデータチャネルを使用して、制御情報とデータ情報を相互に伝達し、必要なシステム動作を実現します。制御機能にはメッセージが使用されます。
チャネルは、2つのデバイス間(デバイス間通信)、1つのデバイスと複数のデバイス間(ブロードキャスト通信)、またはメッセージチャネルの場合は、すべてのデバイスから他のすべてのデバイスへの通信(共有)として確立できます。
コントロールスペースは、フレーミング、ガイド、メッセージの3種類のチャネルに分けられます。
フレーミングチャネルは、各フレームのスロット0と96を占有します。(すべてのサブフレーム長は96で割り切れるため、これらのスロットは常に使用可能です。)スロット0には固定のフレーム同期シンボル(1011 2)が格納され、スロット96にはフレーミング情報ワードの4ビットが格納されます。スーパーフレーム全体では、32ビットのフレーミング情報が使用可能です。これらのうちいくつかは、スーパーフレーム同期を取得するために使用される固定ビットパターン(0 x 011 xxx 2)を保持し、残りはその他の重要な構成情報を保持します。
ガイドチャネルは、各スーパーフレーム内の最初の2つの非フレーミング制御スロットで構成されます。この「ガイドバイト」は通常0ですが、制御メッセージがスーパーフレームの境界をまたぐ場合は、そのメッセージの末尾までのバイト数を示します。
メッセージチャネルは、残りのすべてのスロットで構成されます。バス構成アナウンス、デバイス制御、デバイスステータスなど、さまざまな種類の情報を伝送します。
コントロールスペースのフォーマットは、フレーミング情報ワードで送信される5ビットのサブフレームモード識別子によって決定されます。この識別子は、サブフレーム長とコントロールスロットの数を示します。コントロールスロットの数は、1、2、3、4、6、8、12、16、または24のいずれかに限定されます。コントロールスロットの数がサブフレーム長より小さくなければならないという制約を加えると、有効な組み合わせは26通りになります。サブフレーム長が重要でない「100%コントロールスペース」の特別なエンコーディングでは、有効なモードは27通りになります。(モード1~3、20、および30は無効です。)
データチャネルは、1つまたは複数の連続したデータスロット(セグメント)で構成され、アプリケーションと利用可能なデータスペースのサイズに応じて、アクティブなマネージャによって動的に作成されます。データチャネル、ひいてはセグメントの構造は、データレート、タイプ、フィールド長、必要なトランスポートプロトコルなどのパラメータによって定義されます。
セグメントは既知の間隔で繰り返され、独自の帯域幅保証と遅延を持つ仮想バスとして機能します。
図5に示すセグメントは、TAG(2スロット)、AUX(2スロット)、およびDATAフィールドを備えています。TAGフィールドとAUXフィールドはオプションです。使用する場合、TAGビットはデータチャネルのフロー制御情報を、補助(AUX)ビットはDATAフィールドの内容に関する付随情報を伝送します。データペイロードは、割り当てられたDATAフィールド全体を埋める場合もあれば、埋めない場合もあります。

データチャネルは、一度に正確に1つのデータソースを持ち、チャネルで使用されるトランスポートプロトコルに応じて、1つ以上のデータシンクを持つことができます。
チャネルにおけるフロー制御は、必要に応じて、デバイスとデータの種類によって異なります。フロー制御情報は、TAGビットを使用して伝送されます。
SLIMbusデバイスポートは、適切なチャネル接続メッセージと切断メッセージを使用してデータチャネルに関連付けられます。チャネルに接続されたポート間のデータフローに関して、SLIMbusは、データフロータイプ、フロー制御メカニズム、および追加のアプリケーション固有情報のためのサイドチャネル(存在する場合)を定義する、よく使用される少数のトランスポートプロトコル(ユーザー定義トランスポートプロトコルを含む)をサポートしています。トランスポートプロトコルの概要を表1に示します。
ユーザー1および2プロトコルは、SLIMbusのデータ伝送メカニズムを拡張するために使用され、ユーザープロトコルデータチャネルに接続されたデバイスは、TAGビットとAUXビットの定義およびそれらの使用方法を知っているものと想定されています。
図7に、説明のみを目的としたSLIMbusシステムの例を示します。各コンポーネントはそれぞれ異なります。この例の左上のSLIMbusコンポーネントにはフレーマーデバイス(F)が含まれているため、このコンポーネントのCLK信号は双方向であることに注意してください。
左上のSLIMbusコンポーネントにはマネージャデバイス(M)も含まれています。ただし、マネージャデバイスとフレーマーデバイスが同じSLIMbusコンポーネント内にある必要はありません。

左上のSLIMbusコンポーネントに示されているマネージャおよび/またはフレーマーデバイスは、モバイル端末の構築に一般的に使用されるベースバンドプロセッサおよび/またはアプリケーションプロセッサに組み込むこともできます。
下の図8は、実際のSLIMbusシステムの概念図を示しています。「M」と「F」はそれぞれマネージャデバイスとフレーマーデバイスを表します。あるいは、システム内の単一マイクをマルチマイクアレイに置き換えることも可能です。オーディオ関連のブロックは、どのような組み合わせでも接続できます。

SLIMbus実装者情報の一部は、以下のリンクからご覧いただけます。