10 コマンドフォーマット
Config/DeepSleepモードにて、本セクションで説明するコマンドにより、モジュールのレジスタ設定値の読み出しおよび書き込みを行うことができます。また、Config/DeepSleepモード以外においてもレジスタの設定値やレジスタのフラグ状態を取得することができ、レジスタ0x09のStrict Mode (v2.0厳格動作)切り替えフラグを有効にすることで、通常送受信モードおよびWOR送信モードにて、後述のレジスタ読み出しコマンドおよびフラグリセットコマンドを使用することができます。
#
10.1 コマンド一覧モジュールのレジスタ設定値の読み出し/書き込みに使用するコマンドおよび状態レジスタのフラグをリセットするコマンドの書式について説明します。
- Config/DeepSleepモード(mode 3)時
レジスタ読み出し/書き込みコマンド
Config/DeepSleepモード(mode 3)において、ver.1互換モードおよびStrict Mode (v2.0厳格動作)の両方とも表 22のコマンドでレジスタの設定値を読み出しおよび、表 23のコマンドで書き込みを行うことができます。また、Strict Mode (v2.0厳格動作)でチェックサムやパケットサイズを有効にしたときは、その設定に従います。
表 22 レジスタ読み出しコマンド
command | Starting address | length | parameter | |
---|---|---|---|---|
TXD | 0xC1 | <レジスタ番号> | <読み出し数> | |
RXD | 0xC1 | <レジスタ番号> | <読み出し数> | <レジスタ値> |
表 23 レジスタ書き込みコマンド
command | Starting address | length | parameter | |
---|---|---|---|---|
TXD | 0xC0 | <レジスタ番号> | <書き込み数> | <レジスタ値> |
RXD | 0xC1 | <レジスタ番号> | <読み出し数> | <レジスタ値> |
- 通常送受信モード(mode 0)/WOR送信モード(mode 1)時
Strict Mode (v2.0厳格動作)でのレジスタ読み出しコマンド
Strict Mode (v2.0厳格動作)では、通常送受信モード(mode 0)/WOR送信モード(mode 1)において、表 24のコマンドで9.2節のレジスタ0xA0~0xA4の状態レジスタ値の読み出しを行うことができます。レジスタから連続読み出しするには、読み出し開始レジスタと読み出し数を指定します。
フラグリセットコマンドの先頭3バイトは [0xFF, 0xFF, 0xF0] という形式となっており、これに続いてリセット対象のレジスタ番号を指定します。この形式は、通常のデータ送信における宛先アドレスと宛先チャンネルの組み合わせとの重複を避けるとともに、レジスタ読み出しコマンドとの混同を防ぐ形となっています。また、この形式はフラグを0にリセットするという操作の意味も表現しています。
フラグのリセット操作はレジスタ単位で行われます。そのため、コマンドにはリセットしたいレジスタ番号のみを指定します。
表 24 レジスタ読み出しコマンド(Strict Mode (v2.0厳格動作)でのみ使用可)
command | Starting address | length | parameter | |
---|---|---|---|---|
TXD | 0xFF,0xFF,0xC1 | <レジスタ番号> | <書き込み数> | |
RXD | 0xFF,0xFF,0xC1 | <レジスタ番号> | <読み出し数> | <レジスタ値> |
- 通常送受信モード(mode 0)/WOR送信モード(mode 1)時
Strict Mode (v2.0厳格動作)でのフラグリセットコマンド
Strict Mode (v2.0厳格動作)では、通常送受信モード(mode 0)/WOR送信モード(mode 1)において、表 25のコマンドで9.2節の状態レジスタ0xA0, 0xA1のフラグをリセットすることができます。フラグリセットコマンドの先頭3バイトは [0xFF, 0xFF, 0xF0] という形式となっており、これに続いてリセット対象のレジスタ番号を指定します。この形式は、通常のデータ送信における宛先アドレスと宛先チャンネルの組み合わせとの重複を避けるとともに、レジスタ読み出しコマンドとの混同を防ぐ形となっています。また、この形式はフラグを0にリセットするという操作の意味も表現しています。
フラグのリセット操作はレジスタ単位で行われます。そのため、コマンドにはリセットしたいレジスタ番号のみを指定します。
表 25 フラグリセットコマンド
command | register address | parameter | |
---|---|---|---|
TXD | 0xFF,0xFF,0xF0 | <レジスタ番号> | |
RXD | 0xFF,0xFF,0xF0 | <レジスタ番号> | <レジスタ値> |
#
10.2 コマンド操作手順10.1節で説明したコマンドの書式に従って、MCUから本モジュールへのコマンド操作を行う際の手順について説明します。
- Config/DeepSleepモード(mode 3)時
レジスタ読み出しコマンド使用手順
本モジュールのレジスタ設定値を読み出す際のコマンドバイト列を図 41に示します。表 22の通り、「読み出しコマンド0xC1」、「読み出し開始アドレス」、「読み出し数」の順番でバイト列を入力します。
図 41 MCUから本モジュールへのレジスタ読み出しコマンド
本モジュールからMCUへのレジスタ読み出しレスポンスのバイト列を図 42に示します。表 22の通り、「読み出しコマンド0xC1」、「読み出し開始アドレス」、「読み出し数」、「レジスタ値」の順番でバイト列が出力されます。
図 42 本モジュールからMCUへのレジスタ読み出しレスポンス
- Config/DeepSleepモード(mode 3)時
レジスタ書き込みコマンド使用手順
本モジュールのレジスタへ設定値を書き込む際のコマンドバイト列を図 43に示します。表 23の通り、「書き込みコマンド0xC0」、「書き込み開始アドレス」、「書き込み数」、「レジスタ値」の順番でバイト列を入力します。
図 43 MCUから本モジュールへのレジスタ書き込みコマンド
本モジュールからMCUへのレジスタ書き込みレスポンスのバイト列を図 44に示します。表 23の通り、「読み出しコマンド0xC1」、「読み出し開始アドレス」、「読み出し数」、「レジスタ値」の順番でバイト列が出力されます。
図 44 本モジュールからMCUへのレジスタ書き込みレスポンス
- 通常送受信モード(mode 0)/WOR送信モード(mode 1)時
Strict Mode (v2.0厳格動作)でのレジスタ読み出しコマンドの手順
MCUから本モジュールへのコマンドリクエスト(UART入力)
CHECKSUMの計算は以下の通りです。前提として、UART入力バイト列へのCHECKSUM付与要求フラグ(レジスタ0x09のbit4=1)を有効にした場合としています。
図 45に示している通り、「Read command」、「Reg Start address」、「Read length」をバイトごとにXORを計算してCHECKSUMとします。
MCUにおいて、上記の計算を行い、本モジュールへのUART入力バイト列の最後にCHECKSUMを追加してください。
図 45 MCUから本モジュールへの読み出しコマンドバイト列
e.g.) レジスタ0xA3の現在の環境ノイズRSSIを読み出そうとしたときのCHECKSUMは0x63と計算され、UART入力バイト列は以下のようになります。
0xFF 0xFF 0xC1 0xA3 0x01 0x63 ↑CHECKSUM
本モジュールからMCUへのコマンドレスポンス(UART出力)
CHECKSUMの計算は以下の通りです。前提として、UART出力バイト列へのCHECKSUM付与指定フラグ(レジスタ0x09のbit3=1)を有効にした場合としています。
図 46に示している通り、「Packet size」を有効にした場合は、CHECKSUMの計算に含め、「Packet size」、「Read command」、「Reg Start address」、「Read length」、「Reg value」をバイトごとにXORを計算してCHECKSUMとします。
本モジュールが上記の計算を行い、MCUへのUART出力バイト列の最後にCHECKSUMの追加を行います。
図 46 本モジュールからMCUへの読み出しレスポンスバイト列
e.g.) レジスタ0xA3の現在の環境ノイズRSSIを読み出しレスポンスした際のCHECKSUMは0xECと計算され、UART出力バイト列は以下のようになります。この例では、環境ノイズRSSIを-120dBmとして示しています。
0x07 0xFF 0xFF 0xC1 0xA3 0x01 0x88 0xEC ↑CHECKSUM
- 通常送受信モード(mode 0)/WOR送信モード(mode 1)時
Strict Mode (v2.0厳格動作)でのフラグリセットコマンド使用手順
MCUから本モジュールへのフラグリセットリクエスト(UART入力)
CHECKSUMの計算は以下の通りです。前提として、UART入力バイト列へのCHECKSUM付与要求フラグ(レジスタ0x09のbit4=1)を有効にした場合としています。
図 47に示している通り、「Flag reset command」、「Reg address」をバイトごとにXORを計算してCHECKSUMとします。
MCUにおいて、上記の計算を行い、本モジュールへのUART入力バイト列の最後にCHECKSUMを追加してください。
図 47 MCUから本モジュールへのフラグリセットのコマンドバイト列
本モジュールからMCUへのフラグリセットレスポンス(UART出力)
CHECKSUMの計算は以下の通りです。前提として、UART出力バイト列へのCHECKSUM付与指定フラグ(レジスタ0x09のbit3=1)を有効にした場合としています。
図 48に示している通り、「Packet size」を有効にした場合は、CHECKSUMの計算に含め、「Packet size」、「Flag reset command」、「Reg address」、「Reg value」をバイトごとにXORを計算してCHECKSUMとします。
本モジュールが上記の計算を行い、MCUへのUART出力バイト列の最後にCHECKSUMの追加を行います。
図 48 本モジュールからMCUへのフラグリセットのレスポンスバイト列
本モジュールからMCUへのコマンドエラーレスポンス(UART出力)
コマンドの書式が間違っている場合、もしくは、無効なレジスタを読み出したとき等は、エラーレスポンスとして、バイト列[0xFF, 0xFF, 0xFF]が返ります。
図 49 本モジュールからMCUへのエラーレスポンスバイト列