アスキー形式
アスキー文字列を使った形式
書式モードでコマンド表現されたバイト列をアスキー形式に変換します。
A: [送受信したいデータ]
↓↑
B: [コマンド表現 [A: ] ]
↓↑
C: 系列Bをアスキー形式またはバイナリ形式に変換
[形式ヘッダ [B: [A: ] ] 終端]
↓↑
マイコンのUART入出力
例えば、コマンド表現で 00A01301FF123456
(子機から親機に ACK 付きで 123456
を送信する)をアスキー形式で表現すると、以下のようになります。先頭は : で B1 がチェックサム、終端は [CR][LF]
となります。
:00A01301FF123456B1[CR][LF]
形式の定義
元データのバイト数 | 表現形式におけるバイト数 | 解説 | |
---|---|---|---|
ヘッダ | 1 | ‘:’ (0x3A) コロンを指定します。 | |
データ部 | N | 2N | 元データの各バイトをアスキー文字列2文字(A-F は大文字)で表現します。 |
チェックサム | 2 | データ部の各バイトの和を8ビット幅で計算し2の補数をとります。つまりデータ部の各バイトの総和+チェックサムバイトを8ビット幅で計算すると0になります。 | |
フッタ | 2 | [CR] (0x0D) [LF] (0x0A) を指定する。 |
チェックサムの省略
送信コマンドを入力する時に限ってチェックサムとフッタを省略し替わりに ‘X’ を指定できます。
:00A01301FF123456B1[CR][LF] ⇒ :00A01301FF123456X