Saleae Logicユーザーズガイド / pp.62-64 / キャプチャ設定のヒント(非公式訳)
キャプチャ設定のヒント
新しいLogicデバイスは(以下略)
なぜなら(以下略)
まずは(以下略)
一般に(以下略)
しかし(以下略)
Logicデバイスは、取り込んだデータをUSB経由でリアルタイムにPCへ転送してPCで記録と処理とを行う設計になっています。つまり、USBの帯域幅によってキャプチャの最大サンプリングレートが制限されるということです。しかし一定の帯域幅の中でうまく折り合いをつけることは可能です。たとえば、使用するチャンネル数を減らせば、そのぶんだけ、残りのチャンネルのサンプリングレートを上げることは可能であるし、アナログチャンネルのサンプリングレートを落とせば、そのぶんだけディジタルチャンネルのサンプリングレートを上げることができます。こうした兼ね合いをうまく図ることは、Logicデバイスの性能を限界まで引き出すうえでどうしても必要です。
USB 2.0を利用する場合、当社製品の大半は最大帯域幅が300 Mbpsです。USB 3.0が利用できる当社製品は最大帯域幅が2Gbpsです。ディジタルサンプルはチャンネルごとに1サンプルにつき1ビットを消費します。アナログサンプルは、Logic 4の場合は8ビット、新型のLogic 8、Logic Pro 8、Logic Pro 16の場合は12ビットです(Logic 8は広告では10ビット製品となっていますが、プロセス全体を通じて12ビットサンプルが保たれています。ただしビットの有効数は10に近い)。
USBのスループットだけでなく、ホストPCに搭載されているRAMも、記録可能時間の足かせとなる要因のひとつです。記録時間の最適化を図るためには、有効なアナログチャンネルの数を減らすとともに、残りの有効なチャンネルに求められる最低レベルまでサンプリングレートを下げることが重要です。
一般に、ディジタル信号の場合はサンプリングレートを下げてもメリットはありません。Logicソフトウェアは、データを取り込んだとたんにエンコードするので、メモリーの使用量はデータ密度に正比例しますがサンプリングレートとは関係がありません。
キャプチャ設定について覚えておいてほしいことをいくつか下に示します。
- 長時間にわたって記録するときは、アナログチャンネル数を極力減らすとともにアナログサンプリングレートも極力下げて、RAMの消費量を抑えてください。アナログサンプルは、ディジタルサンプルに比べて相当大量のメモリーを消費しますので、記録時間が数時間からわずか数秒に減ってしまうことがあります。50MSPSのアナログデータは1チャンネルで750 MBを消費します。
- Logicソフトウェアの[Preferences]にある[Enable Upsampled Pipleline]を無効にすれば、アナログデータの記録中に消費されるメモリーを抑えることができます。この設定で、アナログデータによるメモリー消費量は約50%減ります。
- [Performance]の設定によってLogicデバイスの最大USB帯域幅は制限されます。この機能は、USBの性能が乏しいときにサンプリング速度を落として信頼性を上げるための手段として利用できます(すなわち“can't keep up”エラーの数が減るということです)。サンプリングレートを落とす手段としても構いません。
- ディジタルチャンネルは、状態が変化したときだけメモリーを消費します。したがって、ディジタルチャンネルによるメモリー消費量は、信号がHからLへ、あるいはLからHへ変化した回数に比例するのであって、サンプリングレートにも記録されたサンプル数にも比例するわけではありません。そのため、10 MHzのSPIは数分しか記録できない場合であってもI2Cやシリアル通信のような低速信号であれば数時間にわたって記録できます。
- キャプチャ設定用のウィンドウに表示されるメモリー消費量推定値は、連続した1回のキャプチャでのメモリ消費量推定値であって、ディジタル処理に要するメモリーが最大限まで含まれているわけではありません。
- アナライザーに消費されるメモリー量も、生成される結果の数に正比例します。結果1件あたり約40バイトが消費されます。高速のパラレル信号、SPI信号、I2C信号を記録するときは、このことを忘れないでください。このメモリー消費量はLogicソフトウェアには表示されません。Logicソフトウェアによるメモリー消費量については、タスクマネージャーか何かで監視することをお勧めします。
- キャプチャの実行中はキャプチャ進捗ダイアログボックスが表示され、そこにはいくつか統計情報も表示されます。蒐集されたサンプル数、処理バックログ、使用されたメモリー量が表示されます。これは、アナログチャンネルとディジタルチャンネルとだけに使われたメモリー量に過ぎず、Logicソフトウェアによるオーバーヘッドも、アナライザーやその他のタブによって使われたメモリーも含まれません。
- トリガーを使用しているときは、トリガーの処理バックログも表示されます。Logicソフトウェアが正しく動作するためには、処理バックログとトリガー検索バックログとが常に極力0に近い値であることが重要です。キャプチャの最中にどちらかの値が一定して増える場合は、メモリー使用量が劇的に増えかねず、要求よりもずっと長いキャプチャになるおそれもあります。これは、ディジタルサンプリングレートを下げるか未使用チャンネルを外すかすれば解決できます。バージョン1.1.34以前には問題が(以下略)
- Logicソフトウェアの現行バージョンは、メモリーが底をついたときにうまく処理できず、追加メモリーの割り当てができなかった場合はクラッシュします。今後のバージョンで解決できるよう鋭意作業に励んでいますが、とりあえずメモリー使用量がRAM容量を超えないようにしてみてください。高性能なハードディスクを搭載している一部のシステムは、RAMが底をついたあとでも一定期間はリアルタイムにRAMのページングが可能な場合があります。
- 信号を正常にキャプチャするためには、その信号よりもサンプリングレートが速くなくてはなりません。これは、非同期サンプリングの性質によるものであり、ナイキスト-シャノンのサンプリング定理によって説明されます。当社製品の場合、ディジタル信号を正確にサンプリングするためには、その信号よりも4倍以上速いサンプリングレートでサンプリングしなければなりません。
- アナログ信号を正確に記録するためには、その信号よりも少なくとも10倍速いサンプリングレートでサンプリングしなければなりません。これは、Logicデバイスのダウンサンプリングフィルターのフィルター応答によるものであり、さらには、Logicデバイスの最大アナログ帯域幅を決めるハードウェアアンチエイリアシングフィルターによるものです。
- キャプチャはいつでも途中で止められます。キャプチャの最中にメモリー使用量を見ていて、最後までキャプチャを続けるのが安全ではないと判断した場合、あるいは目的のイベントがすでにキャプチャできたと確信できる場合は、[Stop]ボタンを押せばキャプチャは停止できます。
- Logicソフトウェアは、リアルタイム表示ができるオシロスコープとは違って、自動トリガー機能やre-arm機能はありません。キャプチャのたびに[Start]ボタンを押して手動で開始する必要があります。(訳註: re-arm機能は、信号デッドタイムの期間中に次の信号に備えてトリガーを待機させておくこと)
- メモリー不足が原因で、望むだけの長さに渡って記録できない場合は、ソケットAPIの使用を検討してみてください。一部のお客様は、このソケットAPIを使ってキャプチャの開始、保存、再開の自動化を図ることによって、超長時間キャプチャでも1秒未満のわずかなギャップしか生じない超長時間記録を可能にしています。
- 一部のLogicデバイス(Logic Pro 8、Logic Pro 16など)は(以下略)
- わずか1サンプル幅の(以下略)