本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

締切済み
※ ChatGPTを利用し、要約された質問です(原文:シリアル通信チェックコードについて)

シリアル通信チェックコードの計算方法が分からない

2023/10/19 05:32

このQ&Aのポイント
  • 自動化したい装置と通信アナライザーを接続し、通信ログを取得しました。
  • しかし、電文内のチェックコード(チェックサム)の計算方法がわかりません。
  • LRCやCRC8などを試しましたが、一致しません。助けをお願いします。
※ 以下は、質問の原文です

シリアル通信チェックコードについて

2013/05/08 16:31

ある装置と自動化したいので、通信アナライザーを接続し、
通信ログをとりました。

しかし電文内に含まれている、チェックコード(チェックサム)の計算方法が
どうしてもわかりません。

LRC、CRC8など試してみたのですが、
一致しないので、途方にくれております。
どなたかご教授いただけないでしょうか?

一番短い電文で以下となります。
--------
$(0x24)
A(0x41)
0(0x30)
'(0x60) <-CheckSum
CR
--------

ちなみに、装置には通信仕様書など一切の資料が無いため、
現状接続しているコントローラーにアナライザーを設置してログしています。

回答 (4件中 1~4件目)

2013/05/11 00:14
回答No.4

質問文を読んだ時から、多分CRCだろうなと思っていました。
(週末、やっと時間が出来て書き込める!)

難しいですね、こういう類の仕事は。

或る一定のデータ列を用意し、末尾から1bitずつ変えていって
どう変化するかで、地道に解析するしかないのでは?

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する
2013/05/10 00:48
回答No.3

チェックコード挿入というからには
SDLCやHDLCみたいに自明なフレーム同期通信以外では
どこかでデリミタが存在していてフレーム区切りになっているはず。

非同期の調歩同期通信ならチェックコードは
制御文字を外した領域に埋め込んでいる可能性が大きく
計算したビット列そのままで表現されてるかさえも怪しい。
基本総当たりしかないでしょう。

通信系だからCRC(巡回系冗長)だと思いますが
シリアル通信なら CRC-16 と CRC-CCITT は
真っ先にチェックするべきかな。

2013/05/09 23:39
回答No.2

>装置は事情により開示できないのです。
リバースエンジニアリング以外の事情があるのでしょうか?
さもなくば学校の宿題か?

考えるヒント
下位4ビットのみで
単純加算、OR、EOR、、それらでゼロになるのは無い

なので残る選択肢はCRC
http://ja.wikipedia.org/wiki/%E5%B7%A1%E5%9B%9E%E5%86%97%E9%95%B7%E6%A4%9C%E6%9F%BB
かなり沢山ありますね
これ全部を確認しましたか?



他には
0x06を上位下位テレコで0x60と、言う可能性は?
0x9Fをビット反転しての0x60と、言う可能性は?
0xFF60の下位のみ取出し0x60と、言う可能性は?

2013/05/09 00:49
回答No.1

”ある装置”と提示しているようでは途方にくれている実感が感じられないですね。暇つぶしみたい。

補足

2013/05/09 09:09

装置は事情により開示できないのです。
電文から解る方がいらっしゃればと思い投稿しました。

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。