0

そのため、一連のコマンドの CRC 値を見つけるのに問題があります。一部のコマンドの CRC 値は既にありますが、それらがどのように計算されたかを把握する必要があります。データ ストリームを注意深く調べて CRC を計算しようとした後、既知の CRC 値と計算された値を一致させることができません。これまでCRCを計算したことはありませんが、それに関する複数の論文を読んだことがあり、機能しないという事実を除けば、十分に簡単に思えます。私が持っているマニュアルによると、多項式ジェネレーターは (x^8 + x^7 + X^2 + X^0) であり、B1 (16 進数) のゼロ以外の一意の値が得られます。完全なコマンドは A9E40401 (16 進数) で、CRC は 1E (16 進数) です。私が現在使用しているプロセスでは、データ ストリームを 16 進数から 2 進数に変換し、LSB ファースト ルールを使用して、余分なゼロを検出するためにコマンドに FF(hex) を挿入します。最後にプレースホルダーとして 00(hex) を追加し、mod2 除算を実行し、それを反転してデータ ストリームに適用します。何か間違ったことをしているのか、ステップを逃したのかのどちらかです。提供された多項式が正しいと仮定しています。どんな助けでも大歓迎です。

4

2 に答える 2

0

私はばかのように感じます。CRC を計算したとき、LSB ファースト ルールを実行し、残りを反転する必要がある最後のステップを除いて、すべてのステップを適切に実行しました。私はLSBファーストルールのみを実行しました(それが反転の意味であると考えています)。したがって、00011101 の残りで、間違った CRC 値 (10111000) を取得しました。01000111を取得する必要があったとき。

于 2016-10-06T16:09:17.170 に答える
0

まさにこれのためのRevEngを試して、一連の例から CRC パラメータを決定できます。

その後、crcanyを使用してコードを生成できます。

于 2016-10-04T01:39:34.957 に答える