- ベストアンサー
SPI通信プロトコルにおけるデータ誤り検出の仕組みについて
- SPI通信をサポートするデバイスのデータシートを見ていると、データ誤り検出の仕組みが無いことが多いです。
- 物理的な距離が近いため、ノイズの影響は受けにくいのかもしれませんが、安全確保のためにはデータ誤り検出の仕組みが必要です。
- 通信プロトコルはメーカーの設計思想によるものであり、正しさや間違いはないですが、皆さんの意見を聞きたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SPI通信は通常オンボードの回路で使用されます。 オンボードのSPIでエラーが起こるようであれば、設計がちゃんとしていない為で、その他の機能でもエラーが発生する恐れが高いでしょう。 エラーが発生するような通信経路で有れば、それなりの対策が必要となるでしょうし、それは設計者が対応するべきです。 私は、EEPROMやFlashにデータを書き込むときはチェックサムやCRCを追加する事が有ります。 それは主に、チップが書き込みをしている間に電源が落ちた時の対策としてです。 (停電時に書き込みをする必要がある為)
その他の回答 (1)
- P0O9I
- ベストアンサー率32% (693/2146)
SPIは元々少ないICピンである程度のデータをやり取りするために、8ビット以上のデータをシフトレジスタを通して2-3本のピンから入出力するために考えられたものです。 オンボード内で、簡単にデータ転送をするために考えられた方式です。 通信プロトコルなんていうほど、大げさなものではありません。 オンボード内ではまずデータエラーなんて考える必要はありません。そこまで必要なら、2~30年前(SSI,MSIの時代)までロジックなんて作ることはできませんでした。 だから、エラーチェックなんて必要有りません。 RS-232で、実際一番多く使われているデータ方式は御存知ですか? 2 stop bits - non parity です。 あの程度のスピードで数m程度の距離なら、エラーなんてありえないと考えての実際の話です。 もちろん、TCP/IP通信など何百m、何百Kmなんていう距離でデータ転送するのなら、パリティなんて初歩的なエラーチェックではなく、CRCやより高度なエラーチェック機能は必要にはなりますが。 オンボードと、何百mどころではない、何百Kmに渡るデータ転送と全く状況は違うということは、コストパーフォマンスからいって認識しなければならないことでしう。
お礼
なるほど。大変参考になりました。 基板上の通信レベルでは通信エラーをあまり気にすることもないんですね。 最近のSPIは高速化しているから、案外ノイズに弱いのかと気にしていました。 ありがとうございます。
お礼
コメントありがとうございます。 > 私は、EEPROMやFlashにデータを書き込むときはチェックサムやCRCを追加する事が有ります。 > それは主に、チップが書き込みをしている間に電源が落ちた時の対策としてです。 これは、EEPROMやFlash内のメモリ内にチェックサムを設けている・・・ということですよね? 組み込み機器の開発をしていますが、どこまで信頼性を考慮しておくべきか・・・いつも悩みます。 今、数十MHzのSPI通信を検討しているところで、信頼性が心配でした。 コメントありがとうございました。