- ベストアンサー
I2C通信レートの影響:配線の浮遊容量との関係
- I2Cデバイスで通信速度を300kbpsに設定したが、実際の通信速度は250kbpsしか出ない
- この状態は配線における浮遊容量(静電容量)の影響が原因と考えられる
- 配線の浮遊容量が増加すると、信号の遅延やノイズが発生し、通信速度が低下する
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
違います。I2Cプロトコルの影響です。 http://www.nxp.com/docs/ja/user-guide/UM10204.pdf I2C(低速)だと、9ビット毎にACKを返すので実効レートは 最高でも267kbpsしか出ません。 またアドレス指定などにもデータレートを使うので 250kbpsは妥当な範囲だとおもいますよ。
その他の回答 (3)
- kuro804
- ベストアンサー率29% (523/1762)
こんばんは その1 通信速度は一般にハードウエアの1ビット送るのに必要な速度、つまり記述された”300kbps”が示す 1秒間に300、000個のビットを送る事を示していますが、この数字がハードウエアでの速度です。 当然、受け答えを行う2者間はこの速度が一致する設計に成っています。 その2 通常、1ビットを幾つか規則的にまとめて、互いにやりとりする情報として、人が扱いやすい構成として取り決めます。 これが、一般的にプロトコルなどと呼ばれています。 このプロトコルの中に、本来のやりとりしたい情報と、実はもう一つ、常識的に付加される物があります。 それは、雷や何らかの衝撃による、やりとりされる情報の中のエラーによる情報のミスを対策する手法です。 従って、本来の必要な情報以外にエラー対策に使われるデーターがプラスされてやりとりされるため、 300kbpsのハードウエアの速度であっても、本来の情報は減少してしまいます。 その3 よって、エラーが生じやすい基板上の通信では、何度も同じ情報を複数回送り直す手法などもありますので 正味の情報量が300kbpsにならない事も不思議ではありません。 以上。
お礼
連絡が遅くなり、申し訳ありませんでした。 お忙しいところ、詳細な回答を頂き、ありがとうございました。
通信手順の影響です。自動車が50km/hで走っても信号はあれば50km/hで移動できません。通信ではホストが、5番に送るよ、と通信します。それを聞いた5番が、いいよ、と返事をしますがこの間の時間はゼロではありません。データを送るたびに、取ったよ、合ってるよ、という返事が必要で、最高速度では送れない理屈です。常に最高速度で送るためには、ワイヤー上に一対一の通信対象しかなく、通信手順なしで垂れ流しで通信する必要があります。これでは受信側の取りこぼしが怖くてハードウェアの性能いっぱいの速度で通信できないし、ノイズに寄るデータ化けを検知することもできません。デジタル通信では時間を決めてデータを送るのですから静電容量に拠って微妙に遅れるというようなアナログ的なことは起きません。通信できたら出来た、データが化けたら化けたというそれだけです。
- ohkawa3
- ベストアンサー率59% (1508/2538)
素人回答です。 >I2Cは同じ基板内などのように近距離で直結したデバイスと、100kbpsまたは400kbpsの速度でシリアル通信を行うよう に使われるのが主 配線の浮遊容量をご心配のようですが、基板間を電線で結ぶ伝送用にお使い方なのでしょうか? 配線長はどの程度なのでしょうか?
補足
ご回答いただき、ありがとうございます。 同一基板上でのデバイス間の通信で使用しています。 配線長は10cm程度です。
お礼
連絡が遅くなり、申し訳ありませんでした。 お忙しいところ、回答を頂き、ありがとうございました。 とても参考になりました。納得です!!