バイナリ形式で使ってみる
書式モードのバイナリ形式の使用例
A: [送受信したいデータ]
↓↑
B: [コマンド表現 [A: ] ]
↓↑
C: 系列Bをアスキー形式またはバイナリ形式に変換
[形式ヘッダ [B: [A: ] ] 終端]
↓↑
マイコンのUART入出力
例えば、コマンド表現で 00A01301FF123456 (子機から親機に ACK 付きで 123456 を送信する)をバイナリ形式で表現すると、以下のようになります。
0xA5 0x5A 0x80 0x08 0x00 0xA0 0x13 0x01 0xFF 0x12 0x34 0x56 0x3D
元データのバイト数 | 表現形式におけるバイト数 | 解説 | |
---|---|---|---|
ヘッダ | 2 | 0xA5 0x5A を指定します。 | |
データ長 | 2 | データ長はビッグエンディアン形式の2バイトで、MSB (0x8000) を設定した上、データ部の長さを指定します。 | |
データ部 | N | N | 元データを指定します。 |
チェックサム | 1 | データ部の各バイトの XOR を計算します。 | |
フッタ | (1) | チェックサムが事実上の終端です。無線モジュールからの出力では 0x04 (EOT) が付加されます。 |
バイナリ形式の確認は一般に難易度が高く、上手くコマンドが入力できない場合の分析が非常に困難です。マイコンなどでデバッグされるのに先立って、PCなど確認しやすい環境で予め実行しておくことを強くお勧めします。
書式モードのバイナリ形式の使用例