高いノイズ・マージン、容量バッファリング、レベル変換、スタック・バス回復を特長とする2チャンネルおよび4チャンネルのピン選択可能なI2Cマルチプレクサ

高いノイズ・マージン、容量バッファリング、レベル変換、スタック・バス回復を特長とする2チャンネルおよび4チャンネルのピン選択可能なI2Cマルチプレクサ

著者の連絡先情報

2線式プロトコルであるI2CおよびSMBusは、その本質的なシンプルさから、大規模システムにおける重要情報の通信手段として広く使われています。どちらの標準も、抵抗プルアップまたは電流源プルアップを備えたシンプルなオープンドレイン・プルダウン・ドライバを採用しています。しかし、システムが複雑さを増すにつれて、いくつかの現実的な問題が発生します。

大規模システムに伴う最初の問題は、ハードワイヤードI2Cアドレスを使用するデバイスでは、競合を避けるためにアドレスを拡張する必要があることです。2つめはノイズによってグリッチが生じ、それが正当なクロックまたはデータの遷移と解釈されてしまうことで、データの信頼性が損なわれる可能性があることです。3つめに、I2Cデバイスではバスがローの状態に固定されてしまうことがあげられます(スタック)。そして最後は、タイミング仕様はその要求を満たすことがますます困難になりつつあり、クロック周波数が等価バス容量によって制限されるので、システムのサイズが大きくなって複雑さも増すという問題です。バス・バッファを備えたピン選択可能な2チャンネルおよび4チャンネルI2CマルチプレクサであるLTC4312LTC4314は、いくつかの強力な機能によってこれらの問題を解決します(表1を参照)。これら2つのデバイスは、チャンネル数を除いて同じ機能を備えているので、本稿ではLTC4314に焦点を当てます。

表1. LTC4312とLTC4314の主な機能
機能 利点
2 ピンおよび 4 ピンを選択可能なダウンストリーム・バス • 非常に柔軟なバス設定
• MUXとして使用する場合のアドレス拡張 
I2Cバッファ • バス容量を分割して各セクションの容量を400pF未満に保つことにより、大規模なI2C対応システムの構築が可能
VIL を選択可能 • 最大0.33 • VCCの高いロジック・ロー・ノイズ・マージン
• RTA動作電圧範囲を選択可能 
レベル変換 • 1.5V、1.8V、2.5V、3.3V、5Vバス間でI2C通信が可能
立上がり時間アクセラレータ(RTA) • 立上がり時間を短縮
• バスのプルアップ抵抗を大きくしてノイズ・マージンを改善することが可能
• RTAプルアップ電流の強さを選択可能 
スタック・バスの接続遮断と回復 • アップストリーム通信を再開するフリー・マスタ
• スタック・バス上に最大16個のクロック・パルスとストップ・ビット1個を生成し、スタックしたデバイスに状態を通知してハイに解放 

アップストリームI2Cバス(SDAIN、SCLIN)は、必要な出力バスのENABLEピンをハイにすることにより、LTC4314のバス・バッファとマルチプレクサ・スイッチを通じてダウンストリーム・バスの任意の組み合わせに接続できます。ENABLEピンを使い、同じアドレスを持つ複数のデバイスを異なるバス上に配置して分離することにより、アドレスの拡張を実現します。

バッファを使用すればアップストリーム・バスとダウンストリーム・バス間で容量を分離できるので、バス容量を分割することが可能になります。単電源システムでは、バッファがバスを0.33 • VCCに調整して、大きいロジック・ロー・ノイズ・マージンを実現します。適切な強度の立上がり時間アクセラレータ(RTA)を作動させれば、バス容量の制限を解消して立上がり時間を短縮し、大負荷時の動作でも高いスイッチング周波数を使用することができます。

LTC4314は、I2C標準と、Fast Mode、SMBus、およびPMBus仕様に対応しています。SDAとSCLが少なくとも45msに1回同時にハイにならなかった場合は、スタック・バス回復回路がアップストリーム・バスとダウンストリーム・バスの接続を遮断し、アップストリーム・バスを解放して通信を再開します。また、回復回路は、イネーブルされたダウンストリーム・バス上に最大16個のクロック・パルスと1個のストップ・ビットを生成することにより、スタックしたデバイスに状態を通知してハイに解放しようとします。

最後に、対象チャンネルがディスエーブルされている場合は、LTC4314のI2C出力バスにホットスワップでカードを挿抜することができます。LTC4314の動作電圧範囲は、VCCが2.9V~5.5V、VCC2が2.25V~5.5V、バス電圧が2.25V~5.5Vです。LTC4314は、低電圧バスでRTAがディスエーブルされている場合、一定の条件下で1.5Vおよび1.8Vバスまでレベル変換することができます。

広帯域バッファにより低オフセットを保ちながらノイズ・マージンと速度を改善

高ノイズ・マージンは、入力バス電圧と出力バス電圧が共に0.33 • VMINを超えるまで、LTC4314のバッファをオンのままにすることによって得られます。ここで、VMINは、VCC電圧とVCC2電圧のいずれか低い方です。これが可能なのは、広帯域バッファはバスの立上がり速度を制限せず、より高いバス電圧を維持できるからです。

図1に示すように、ノイズの多い400kHzの矩形波信号をSCLINに加えると、SCLOUT1の波形はSCLIN電圧が0.33 • VMIN未満のときはSCLINに追従し、SCLIN電圧が0.33 • VMINを超えるとハイになります。オフセットが小さいので、0.33 • VMIN未満の電圧ではSCLOUT1の波形はSCLINの波形とほとんど同じになります。SCLOUT1の波形に示されているように、入力が0.33 • VMINのVILレベルをクロスするときも、出力グリッチは発生しません。

図1. ノイズの多い400kHzのI2C信号をSCLINに伝送するLTC4314SCLINがロジック・ローの場合、SCLOUT1波形はSCLINに追従します。ロジック・ハイのときは、0.33 • VMINを超えるSCLINのノイズはSCLOUTに伝わりません。

図1. ノイズの多い400kHzのI2C信号をSCLINに伝送するLTC4314SCLINがロジック・ローの場合、SCLOUT1波形はSCLINに追従します。ロジック・ハイのときは、0.33 • VMINを超えるSCLINのノイズはSCLOUTに伝わりません。

入力バス電圧と出力バス電圧が共に0.33 • VMINを超えるとバッファの接続が遮断されるので、バス電圧が0.33 • VMIN未満に低下しない限り、一方の側でロジック・ハイ状態に加わるノイズは反対側に伝わらなくなります。これを図1に示します。SCLOUT1のロジック・ハイ状態がSCLINのノイズに影響されることはありません。

I2Cシステム全体を管理する設計者は、バスのRC負荷を調整して強力なRTAを使用することにより、1MHzまでの周波数で動作するようにLTC4314を設定することができます(表2を参照)。LTC4314のハイからローへの伝搬遅延tPDHLは常に正で、その値は100ns程度です。LTC4314のアップストリームおよびダウンストリーム側にあるバスの負荷状態に応じ、LTC4314のローからハイへの伝搬遅延tPDLHは、正負いずれの値にもなり得ます。高周波数(>400kHz)で動作するシステムでは、設計者はそのSDAおよびSCL経路におけるtPDLH–tPDHLスキューの大きさを定量化し、データ・セットアップ時間と保持時間がすべてのバスにとって受け入れ得るものであるかどうかを確認する必要があります。

表2. 立上がり時間アクセラレータ電流IRTAとバッファ・ターンオフ電圧VIL,RISING(代表値)のACC制御
ACC IRTA VRTA(TH) VIL,RISING
0.8V 0.6V
Hi-Z 3mA 0.4 • VMIN 0.33 • VMIN
なし N/A 0.33 • VMIN

レベル変換とネスト化アドレス指定

図2に示す回路は、LTC4314のレベル変換機能とネスト化アドレス指定機能を例証するものです。LTC4314は、入力バスと出力バスを2.25V(一定の状況下では1.5Vと1.8V)から5.5Vまでの電圧にレベル変換することができます。図2のLTC4314は、3.3Vの入力を5V出力と2.5V出力に変換しています。図には、簡略化のためにダウンストリーム・バス1と4だけが示されています。それぞれの出力チャンネルには専用のENABLEピンが選択されていて、イネーブルされているダウンストリーム・バスが一度に1つだけの場合は、マスタが、同じI2Cアドレスを持つ複数のスレーブ・デバイスと個別に通信できるようになっています。

図2. ネスト化アドレス指定とレベル・シフトを行うアプリケーションのLTC4314。この場合、アップストリームの3.3Vバス上のデバイスは、2.5Vおよび5Vダウンストリーム・バス上のデバイスと通信を行います。図には、簡略化のためバス1と4だけが示されています。

図2. ネスト化アドレス指定とレベル・シフトを行うアプリケーションのLTC4314。この場合、アップストリームの3.3Vバス上のデバイスは、2.5Vおよび5Vダウンストリーム・バス上のデバイスと通信を行います。図には、簡略化のためバス1と4だけが示されています。

放射状接続通信アプリケーション

ATCAなどの放射状接続通信アプリケーションに使われるLTC4314を図3に示します。冗長性を確保するために、スレーブI2Cデバイスとの通信には2つのシェルフ・マネージャ(SHMC)が使われています。それぞれのシェルフ・マネージャは、システム内のボード数と望ましい放射状/スター状構成に応じて、必要な数だけLTC4314を使うことができます(図3では6×4)。ハイにアサートされるENABLEピンは、1つのシェルフ・マネージャ内のものだけに限られます。LTC4314は他のリニアテクノロジー製バス・バッファとカスケード接続できるので、リニアテクノロジー製バス・バッファをそのエッジに持つFRUを24個までバックプレーンに接続できます。

図3. LTC4314を6×4の配列で放射状接続通信システムに使用した例。任意の時点でハイにされるENABLEピ ン は1つのシェルフ・マネージャ内のものだけに限られます。簡略化のため図にはSDA経路だけを示しています。

図3. LTC4314を6×4の配列で放射状接続通信システムに使用した例。任意の時点でハイにされるENABLEピ ン は1つのシェルフ・マネージャ内のものだけに限られます。簡略化のため図にはSDA経路だけを示しています。

LTC4314を並列化して、より多くのバスのマルチプレクシングを実現

複数のLTC4314を並列に接続して、より高次のマルチプレクシングを行うことができます。2個のLTC4314を使用した1:8マルチプレクサを図4に示します。

図4. LTC4314デバイスを並列化して1:8マルチプレクサを実現。

図4. LTC4314デバイスを並列化して1:8マルチプレクサを実現。

I2C非対応デバイスとの相互運用性

LTC4314はバッファのターンオフ電圧が高いので、0.4Vを超えるハイVOLを駆動するI2C非対応デバイスとの相互運用性が確保されています。これを図5に示します。この図では、チャンネル4の非対応デバイスが0.6VのハイVOLを駆動します。バッファのターンオフ電圧は1.089Vで、入力と出力の両方で0.4Vを超えるロジック・ロー・ノイズ・マージンを実現します。

図5. 0.6VのV OLを 駆動するI2C非対応デバイスと共に動作するLTC4314。 バ ッ フ ァのターンオフ電圧は1.089Vで、0.4Vを 超えるロジック・ロー・ノイズ・マージンを実現します。

図5. 0.6VのVOLを 駆動するI2C非対応デバイスと共に動作するLTC4314。 バ ッ フ ァのターンオフ電圧は1.089Vで、0.4Vを 超えるロジック・ロー・ノイズ・マージンを実現します。

Hot Swapアプリケーション

図6に示すように、通電状態のバックプレーンにあるLTC4314のダウンストリーム・バスには、I/Oカードをホットスワップすることができます。I/Oカードを挿抜する場合は、進行中のI2Cトランザクションがそのカードによって妨げられることがないように、対応出力チャンネルを事前にディスエーブルするよう注意する必要があります。挿入したカードへの接続は、そのバスで進行中のすべてのトランザクションが完了して、バスがアイドル状態になった場合のみイネーブルしてください。

図6. 出力にカードを挿抜するHot Swap™アプリケーションのLTC4314。対応するENABLEピンは、カードを挿抜する前にローにし、他のバスがアイドル状態にある場合のみハイにする必要があります。

図6. 出力にカードを挿抜するHot SwapアプリケーションのLTC4314。対応するENABLEピンは、カードを挿抜する前にローにし、他のバスがアイドル状態にある場合のみハイにする必要があります。

スタック・バスの検出と回復

時おり、スレーブ・デバイスに混乱が生じて、ロー状態にスタックしてしまうことがあります。LTC4314はイネーブルされた出力バスをモニタして、クロックとデータが少なくとも45msに1回、同時にハイになっていたかどうか検出します。この状態が検出されなかった場合、LTC4314はFAULTフラグをローにアサートします。また、DISCENがハイに接続された場合、LTC4314は入力側と出力側の接続を遮断してイネーブルされたダウンストリーム・バス上にクロック・パルスを生成し、スタックしたバスを解放しようとします。データがハイになるか16個のクロックが生成されると(いずれか先に発生した方)、クロッキングが停止します。最後のクロック・パルスの後には、その後の通信に備えてバスをリセットするためにストップ・ビットが生成されます。

入力と出力の接続を再度確立するには、すべてのENABLEピンがローになった後に、1つまたは複数のENABLEピンの立上がりエッジが必要です。これにより、FAULTフラグもクリアされます。マスタは、フォルト状態が自然にクリアされる(FAULTがハイになる)か、LTC4314により発行される16個のクロック・パルスを通じてハイになるまで待ってから、LTC4314のENABLEピンをトグルできます。あるいは、フォルト状態がクリアされて接続が再確立される前に、先行して切り替えを行うこともできます。マスタはその後、適切な動作を介してスタック・ローの状態をクリアできます。

SDAOUT1がローにスタックしたときと回復イベントのときの波形を図7に示します。45msのタイムアウト時間が過ぎると、FAULTフラグがローにアサートされて入力側と出力側の接続が遮断されます。これによりSDAINがハイになります。

図7. SDAOUT1がローにスタックしたときと回復イベントのときのバス波形。

図7. SDAOUT1がローにスタックしたときと回復イベントのときのバス波形。

クロック・パルスはSCLOUT1で生成されます。SDAOUT1は16個のクロック・パルスが生成される前にハイになり、クロック・パルスの生成が停止するとストップ・ビットが生成されます。ENABLE1ピンがトグルされると入出力間の接続が確立されて、SDAOUT1がロー・レベルに駆動されたことがSDAINに伝達されます。

スタック・バスの自動接続遮断が必要ない場合、この機能はDISCENをローに接続することによってディスエーブルできます。この場合はスタック・バス・イベント時にFAULTフラグがローにアサートされますが、ストップ・ビットもクロックも生成されず、入力側と出力側は接続されたままになります。

立上がり時間アクセラレータ

LTC4314の立上がり時間アクセラレータ(RTA)は、電流源モード時(ACCオープン)、スルー制限スイッチモード時(ACC接地)、またはディスエーブル時(ACCハイ)に設定できます。電流源モードでは、RTAが3mAの一定電流をバスにソースします。スルー制御されたスイッチモードではRTAが制御された状態でターンオンしてバスに電流をソースし、代表値40V/µsのレートで立ち上げます。RTA電流とバッファのターンオフ電圧は、表2に示すACC設定によって選択されます。

低ノイズから中程度のノイズが生じる大容量バスでは、システムの立上がり時間に関する条件を満たして最大限のSCLスイッチング周波数を実現するために、ACCをローに接続します。ACCをローに接続すると、最大電圧範囲すべてにわたって最大のプルアップ電流が得られます。より高いノイズ耐性を得るには、ACCをオープン状態のままにするか、0.5 • VCCに接続してバッファのVILを0.33 • VMINに設定し、RTA電流が3mAになるようにします。3mAのRTA電流は、最大バス容量690pF、DCバス・プルアップ電流4mA未満のときに、1µsの標準モードI2C立上がり時間(100kHz動作)の条件を満たすのに十分な値です。加速の必要がない場合、ACCはハイです。出力のRTAだけを選択的にディスエーブルするには、VCC2を接地して、ACCを接地するかオープン状態のままにします。

まとめ

LTC4314とLTC4312はピン選択可能なI2Cマルチプレクサで、容量バッファリング、ネスト化アドレス指定、レベル変換などの機能によって、大規模なI2Cバス・システムに関わる現実的な設計上の問題を解決します。これらのデバイスは低オフセットを実現し、ハイ・ロジックのノイズ・マージンを0.33 • VCCまでの低いレベルに維持します。その広帯域バッファと内蔵RTAは1MHzまでの周波数での動作を可能にし、ゼロから1.2nFまでの容量性負荷で安定性を確保します。また、バスがロー状態にスタックした場合はバスの接続遮断と回復を行うほか、通電状態のシステムでホットスワップによるI/Oカードの挿抜も可能にします。