外部機器とRCB-3HVの通信手順について
【質問内容】
RCB-3HVのことで質問があるため質問させていただきました。
コマンドリファレンスによると、以下の手順で通信するようになっています。
1. RCB-3HVに$0Dhの1Byteを送る
2. RCB-3HVから$0Dhが返ってくる
3. 任意のコマンドを送る
4. コマンドに対するACKが返ってくる
現在、手順1から4を繰り返してコマンドを送っているのですが、
通信に時間がかかります。これは正しいのでしょうか?
【回答】
※RCB-3コマンドリファレンスはこちらからご覧いただけます。
1. RCB-3HVに$0Dhの1Byteを送る
2. RCB-3HVから$0Dhが返ってくる
3. 任意のコマンドを送る
4. コマンドに対するACKが返ってくる
手順は上記の通りでお間違いありません。
ただし送信コマンドにより、手順4が以下のように変わります。
4-1. 送信コマンドのOPTの0ビット目を1とするとAckが返ってきます。
4-2. 送信コマンドのOPTの0ビット目を0とするとAckは返ってきません。
4-3. データを受け取るタイプの命令の場合はAckではなくてデータが返ってきます。
RCB-3HVには必ず$0Dhを送る必要があります。
RCB-3HVが動作中の場合でも、$0Dhだけは受け取るようになっており、
いったん作業が終わってまとまったデータを受信可能になったときに
$0Dhの返事を返すようになっていますので、この手順を省くことはできません。
RCB-3HVでは最大でも1フレーム分の遅れで返事を返すようになっていますので、
数ms~20ms程度の遅延で$0Dhを返します。
RCB-3HVボードのみの詳細をみる