趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
ついに86が発売された。試乗したやつに聞くと、けっこういい感じらしい。ノンターボにもかかわらず、ノーマルのJZX110やER34よりもパワフルに感じるらしい。でもあれだろうな、試乗者ってエンジンのバランスを取ったりポート研磨したりと調子よく仕上げているらしいので、だからなんだろうな。BMWも試乗者はよく吹けるのに、買ったらたいしたことなかった、なんてことを聞いたことあるし。でも、本命はターボバージョンかな。あと2年ほどかかるのかもしれないけど、出たら売れるだろうなぁ。。。
それはさておき、ВЕАΝの解析のつづき。以前CRCの生成多項式が見つからない or 計算があわないとか言っていたが、単なる計算ミスだった。まあ、よく考えればあたりまえのことだったのだが、CRCなんて日頃使わないので、わからなかった。
以下はCRC計算の備忘録
-------------------------------------------
トヨタВЕАΝの生成多項式
8 4
X + X + X + 1
16進であらわすと、0x113 、2進なら 100010011
ということで、実際のデータをもとに、CRCを計算してみよう。
サンプル: 23 FE 2C 9D 7B 7E 40
優先度2、データ3バイト(ヘッダ2バイト含む)、FE=ブロードキャスト、2C=水温かな?、9D=データ、7B=CRC、7E=固定値、40=ACK(固定値)
まず、受信側がなにをするか、というと、CRCを含めたデータを生成多項式で割り算して割り切れるか確認する。
0x23FE2C9D7B ÷ 0x113 = 何とか。。。略 あまり 0
(計算式は下の方参照だけど、途中でメンドクサクなってやめた)
割り切れたら、O.K.
割り切れなかったら、データが化けた、ということ。
つぎに、送信側がどのようにCRCを計算するか、というと、データに「生成多項式のビット長-1の8ビットの0」を付けて生成多項式で割り算して余りを求める。
0x23FE2C9D00 ÷ 0x113 = 何とか。。。略 あまり 7B
この余りをデータの最後につけて、さらに固定文字列7Eを付けて、
0x23FE2C9D7B7E を送信すればいい。
------------------------------------------------------
10 000 11
------------------------------------------------------
100010011 ) 0010 0011 1111 1110 0010 1100 1001 1101 0111 1011
10 0010 011
------------------------------------------------------
0 0001 1001 1110 0010 1100 1001 1101 0111 1011
0 0000 0000
------------------------------------------------------
0001 1001 1110 0010 1100 1001 1101 0111 1011
0000 0000 0
------------------------------------------------------
001 1001 1110 0010 1100 1001 1101 0111 1011
000 0000 00
------------------------------------------------------
01 1001 1110 0010 1100 1001 1101 0111 1011
00 0000 000
------------------------------------------------------
1 1001 1110 0010 1100 1001 1101 0111 1011
1 0001 0011
------------------------------------------------------
1000 1101 0010 1100 1001 1101 0111 1011
1000 1001 1
------------------------------------------------------
000 0100 0010 1100 1001 1101 0111 1011
。。。。以下略
0
それはさておき、ВЕАΝの解析のつづき。以前CRCの生成多項式が見つからない or 計算があわないとか言っていたが、単なる計算ミスだった。まあ、よく考えればあたりまえのことだったのだが、CRCなんて日頃使わないので、わからなかった。
以下はCRC計算の備忘録
-------------------------------------------
トヨタВЕАΝの生成多項式
8 4
X + X + X + 1
16進であらわすと、0x113 、2進なら 100010011
ということで、実際のデータをもとに、CRCを計算してみよう。
サンプル: 23 FE 2C 9D 7B 7E 40
優先度2、データ3バイト(ヘッダ2バイト含む)、FE=ブロードキャスト、2C=水温かな?、9D=データ、7B=CRC、7E=固定値、40=ACK(固定値)
まず、受信側がなにをするか、というと、CRCを含めたデータを生成多項式で割り算して割り切れるか確認する。
0x23FE2C9D7B ÷ 0x113 = 何とか。。。略 あまり 0
(計算式は下の方参照だけど、途中でメンドクサクなってやめた)
割り切れたら、O.K.
割り切れなかったら、データが化けた、ということ。
つぎに、送信側がどのようにCRCを計算するか、というと、データに「生成多項式のビット長-1の8ビットの0」を付けて生成多項式で割り算して余りを求める。
0x23FE2C9D00 ÷ 0x113 = 何とか。。。略 あまり 7B
この余りをデータの最後につけて、さらに固定文字列7Eを付けて、
0x23FE2C9D7B7E を送信すればいい。
------------------------------------------------------
10 000 11
------------------------------------------------------
100010011 ) 0010 0011 1111 1110 0010 1100 1001 1101 0111 1011
10 0010 011
------------------------------------------------------
0 0001 1001 1110 0010 1100 1001 1101 0111 1011
0 0000 0000
------------------------------------------------------
0001 1001 1110 0010 1100 1001 1101 0111 1011
0000 0000 0
------------------------------------------------------
001 1001 1110 0010 1100 1001 1101 0111 1011
000 0000 00
------------------------------------------------------
01 1001 1110 0010 1100 1001 1101 0111 1011
00 0000 000
------------------------------------------------------
1 1001 1110 0010 1100 1001 1101 0111 1011
1 0001 0011
------------------------------------------------------
1000 1101 0010 1100 1001 1101 0111 1011
1000 1001 1
------------------------------------------------------
000 0100 0010 1100 1001 1101 0111 1011
。。。。以下略
0
PR
この記事にコメントする