外部機器とRCB-3HVの通信手順について

Posted on 2013.11.06 in

 

【質問内容】

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ボードのみの詳細をみる