
SPI通信をサポートするデバイス(SPI-Flash、EEPROMやADC・・・など)のデータシートをいくつか見ているのですが、ふと不思議に感じることがあり質問させて頂きました。
私が見た範囲では、各デバイスの通信プロトコル(コマンドフォーマットや、レスポンスフォーマット)にはCRCやCheck Sumなどの、いわゆる"データ誤り検出の仕組み"が無いものばかりでした。
基本的に、各デバイス間の物理的な距離が近いことが想定されているためか、ノイズなどの影響は受けにくいのかもしれないですが、安全を期すには"データ誤り検出の仕組み"が必要だと感じました。
※TCP/IP通信などではCRCがありますし、RS-232Cなどでもパリティがあります。
通信プロトコルはメーカーの設計思想依存なので、「正しい」とか「間違っている」ということは無いと思いますが、皆さんの考えをお聞かせ頂けないでしょうか?
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
SPI通信は通常オンボードの回路で使用されます。
オンボードのSPIでエラーが起こるようであれば、設計がちゃんとしていない為で、その他の機能でもエラーが発生する恐れが高いでしょう。
エラーが発生するような通信経路で有れば、それなりの対策が必要となるでしょうし、それは設計者が対応するべきです。
私は、EEPROMやFlashにデータを書き込むときはチェックサムやCRCを追加する事が有ります。
それは主に、チップが書き込みをしている間に電源が落ちた時の対策としてです。
(停電時に書き込みをする必要がある為)
コメントありがとうございます。
> 私は、EEPROMやFlashにデータを書き込むときはチェックサムやCRCを追加する事が有ります。
> それは主に、チップが書き込みをしている間に電源が落ちた時の対策としてです。
これは、EEPROMやFlash内のメモリ内にチェックサムを設けている・・・ということですよね?
組み込み機器の開発をしていますが、どこまで信頼性を考慮しておくべきか・・・いつも悩みます。
今、数十MHzのSPI通信を検討しているところで、信頼性が心配でした。
コメントありがとうございました。
No.1
- 回答日時:
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は高速化しているから、案外ノイズに弱いのかと気にしていました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) 「プロトコル」の定義について 5 2023/04/16 13:13
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- 格安スマホ・SIMフリースマホ E-SIM電話番号不明表示 1 2023/07/23 19:48
- マウス・キーボード ドライバーにウイルスが混入しているリスクについてあなたはどう考えますか? 1 2022/04/10 23:33
- ネットワーク プロトコルの階層化とインターフェースとの違い 2 2022/07/26 02:38
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- ネットワーク I2Cのスタートコンディションについて 2 2023/03/03 01:03
- YouTube SMS認証が出来なくて乗っ取られたアカウントを取り戻せません。 2 2023/04/02 15:29
- その他(法律) 携帯電話会社に保管されている解約済み個人情報を消去したい 3 2022/08/13 23:23
- 分譲マンション 分譲マンションの管理組合で明らかに管理組合の会計ミスについて 10 2023/05/21 01:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CreateProcessでアプリケーショ...
-
IIS6 ASP Oracle接続
-
ASPが動かないマシンがある
-
このページの状態情報は無効で...
-
EXECLマクロでshapeがグルーフ...
-
インクルードしたファイルの関...
-
ASP 0x80004005 クライアント...
-
VBSからPDFファイルを開きたい...
-
【C#】アップロード時に「アプ...
-
ACCESSのオートナンバーについて
-
CreateObject("Excel.Applicati...
-
イベントID 2002について
-
fopenでエラーとなる
-
ASP.net の OnClientClick
-
エラーの意味が??
-
SQLサーバーへの接続に 接...
-
ODBC経由でオラクルに接続
-
Outlookで添付ファイルの有無を...
-
FileCopy時のエラー
-
C# try-catch でcatchに飛ばす方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# try-catch でcatchに飛ばす方法
-
CreateObject("Excel.Applicati...
-
EXECLマクロでshapeがグルーフ...
-
FileCopy時のエラー
-
エラー 'ASP 0115' について
-
オーバーフローが発生します
-
IIS7.5の設定の仕方
-
winsock通信時エラーの回避
-
このページの状態情報は無効で...
-
Outlookで添付ファイルの有無を...
-
ASP 0x80004005 クライアント...
-
エラー 'ASP 0115'
-
ADSIについて
-
oracleを利用できません。(glob...
-
オラクル接続をopenしようとす...
-
ASP.NET C# ローカルのパスが呼...
-
FireFoxで開けないサイト
-
オブジェクト生成エラー
-
CAsyncSocket::Create()がエラ
-
ASP.NETで使用しているJavascri...
おすすめ情報