Checksum

2つの概念

ここでは2種類のChecksumコンセプトがあります:Classic Checksum、Enhanced Checksum。Classic Checksumは利用データのみ保護します。Enhanced ChecksumではデータとPIDが保護されます。Enhanced Checksumは識別子0~59で使用され、プロトコルバージョン2.0から有効となります。下位互換性を維持するために、Diagnostic Frameは常にClassic Checksumで保護されます。

算出

Checksumは次の式に従い計算されます:

  • Checksum = INV (data byte 1 ⊕ data byte 2 ⊕ ... ⊕ data byte 8)

Checksumを形成するために、各データバイトはmodulo-256演算で追加されます。これは中間結果にオーバーランビットを追加する必要があります。最後に結果全体を反転させてSlave TaskはこれをChecksumとして送信します。受信機は反転以外については同じアルゴリズムによって受信したデータバイトのChecksumを計算します。受信機は自身が計算したChecksumと受信したChecksumの合計が0xFFと違う場合に送信エラーを検出します。

データ保護

この保護方式は強力ではありません。しかしサブバスエリアで使用するのに十分なデータ整合性を実現しています。これはデータバイトを含むUnconditional Framesの動作に適用されます。残留誤差確率はデータバイト数の増加とともに上昇します。


最終更新日時: 2019年 03月 6日(水曜日) 09:53