1: 2014-04-26 (土) 15:54:24 takaboo | 2: 2014-04-26 (土) 16:13:42 takaboo | ||
---|---|---|---|
Line 22: | Line 22: | ||
送信先のデバイスのIDを指定します。DynamixelのIDは通常0x00~0xFDまで(254台)指定できます。~ | 送信先のデバイスのIDを指定します。DynamixelのIDは通常0x00~0xFDまで(254台)指定できます。~ | ||
また、0xFEは接続されている全デバイスを指定するBroadcast IDとなり、IDを0xFEに設定したパケットは全てのデバイスにて処理されます。なお、ブロードキャスト送信時はステータスパケットが返信されません。~ | また、0xFEは接続されている全デバイスを指定するBroadcast IDとなり、IDを0xFEに設定したパケットは全てのデバイスにて処理されます。なお、ブロードキャスト送信時はステータスパケットが返信されません。~ | ||
- | -&color(#000,#DDD){LENGTH};~ | + | -&color(#000,#DDD){LENGTH_L}; &color(#000,#DDD){LENGTH_H};~ |
- | 「Parameter数(N) + 2」を指定します。~ | + | 「Parameter数(N) + 2」を16bitで指定します。~ |
-&color(#000,#DDD){INSTRUCTION};~ | -&color(#000,#DDD){INSTRUCTION};~ | ||
インストラクションを指定します。~ | インストラクションを指定します。~ | ||
-&color(#000,#DDD){PARAMETER 1~N};~ | -&color(#000,#DDD){PARAMETER 1~N};~ | ||
インストラクションに従った追加情報を指定します。~ | インストラクションに従った追加情報を指定します。~ | ||
- | -&color(#000,#DDD){CHECKSUM};~ | + | -&color(#000,#DDD){CRC_L}; &color(#000,#DDD){CRC_H};~ |
- | CHECKSUMの計算方法は次の通りです。~ | + | ヘッダからパラメータ末尾までのチェックサム値(CRC-16-IBM)を指定します。 |
- | CHECKSUM = ~(ID+LENGTH+INSTRUCTION+PARAMETER1+… +PARAMETER N) | + | |
- | 計算された値が255以上なら、下位8ビットがCHECKSUMの値となります。(「~」はnot演算子の意) | + | |
**ステータスパケット構成 [#a1058504] | **ステータスパケット構成 [#a1058504] | ||
ステータスパケットはデバイスがインストラクションパケットを受信した後、その応答としてホストへ返信するパケットです。パケット構造は以下の通りです。~ | ステータスパケットはデバイスがインストラクションパケットを受信した後、その応答としてホストへ返信するパケットです。パケット構造は以下の通りです。~ | ||
~ | ~ | ||
- | &color(#000,#DDD){0xFF}; &color(#000,#DDD){0xFF}; &color(#000,#DDD){ID}; | + | &color(#000,#DDD){0xFF}; &color(#000,#DDD){0xFF}; &color(#000,#DDD){0xFD}; &color(#000,#DDD){0x00}; &color(#000,#DDD){ID}; |
- | &color(#000,#DDD){LENGTH}; &color(#000,#DDD){ERROR}; &color(#000,#DDD){PARAMETER 1};・・・&color(#000,#DDD){PARAMETER N}; &color(#000,#DDD){CHECKSUM};~ | + | &color(#000,#DDD){LENGTH_L}; &color(#000,#DDD){LENGTH_H}; &color(#000,#DDD){0x55}; &color(#000,#DDD){ERROR}; &color(#000,#DDD){PARAMETER 1};・・・&color(#000,#DDD){PARAMETER N}; &color(#000,#DDD){CRC_L}; &color(#000,#DDD){CRC_H};~ |
~ | ~ | ||
- | -&color(#000,#DDD){0xFF}; &color(#000,#DDD){0xFF};~ | + | -&color(#000,#DDD){0xFF}; &color(#000,#DDD){0xFF}; &color(#000,#DDD){0xFD}; &color(#000,#DDD){0x00};~ |
- | 先頭に位置している2バイトはパケットの始まり(ヘッダ)を意味し、2バイトともに16進数で0xFF固定です。~ | + | 先頭に位置している4バイトはパケットの始まり(ヘッダ)を意味します。~ |
-&color(#000,#DDD){ID};~ | -&color(#000,#DDD){ID};~ | ||
パケットを返信するDynamixelのIDです。~ | パケットを返信するDynamixelのIDです。~ | ||
- | -&color(#000,#DDD){LENGTH};~ | + | -&color(#000,#DDD){LENGTH_L}; &color(#000,#DDD){LENGTH_H};~ |
- | 「Parameter数(N) + 2」を返します。 | + | 「Parameter数(N) + 3」を16bitで返します。 |
-&color(#000,#DDD){ERROR};~ | -&color(#000,#DDD){ERROR};~ | ||
デバイスの動作中に生じたアラームの状態を表します。該当アラームがある場合はそのビットが1になります。 | デバイスの動作中に生じたアラームの状態を表します。該当アラームがある場合はそのビットが1になります。 | ||
Line 58: | Line 56: | ||
-&color(#000,#DDD){PARAMETER 1~N};~ | -&color(#000,#DDD){PARAMETER 1~N};~ | ||
インストラクションに従った追加情報を返します。~ | インストラクションに従った追加情報を返します。~ | ||
- | -&color(#000,#DDD){CHECKSUM};~ | + | -&color(#000,#DDD){CRC_L}; &color(#000,#DDD){CRC_H};~ |
- | CHECKSUMの計算方法は次の通りです。~ | + | ヘッダからパラメータ末尾までのチェックサム値(CRC-16-IBM)を返します。~ |
- | CHECKSUM = ~(ID+LENGTH+INSTRUCTION+PARAMETER1+… +PARAMETER N) | + | |
- | 計算された値が255以上なら、下位8ビットがCHECKSUMの値となります。(「~」はnot演算子の意) | + | |
**コントロールテーブル [#xbe6b522] | **コントロールテーブル [#xbe6b522] | ||
Line 67: | Line 63: | ||
-[[Dynamixel DX,RX,AXシリーズ用コントロールテーブル >Dynamixelコントロールテーブル(DX,RX,AXシリーズ用)]] | -[[Dynamixel DX,RX,AXシリーズ用コントロールテーブル >Dynamixelコントロールテーブル(DX,RX,AXシリーズ用)]] | ||
-[[Dynamixel EXシリーズ用コントロールテーブル>EX Series Control table]] | -[[Dynamixel EXシリーズ用コントロールテーブル>EX Series Control table]] | ||
- | -[[AX-S1コントロールテーブル]] | + | -[[AX-S1 Control table]] |
-[[USS3コントロールテーブル]] | -[[USS3コントロールテーブル]] | ||
Line 74: | Line 70: | ||
| Instruction | Function | Value | Number of Parameter | | | Instruction | Function | Value | Number of Parameter | | ||
| PING |デバイスの死活確認 | 0x01 | 0 | | | PING |デバイスの死活確認 | 0x01 | 0 | | ||
- | | READ_DATA |コントロールテーブルへの読み込み | 0x02 | 2 | | + | | READ |コントロールテーブルからの読み込み | 0x02 | 4 | |
- | | WRITE_DATA |コントロールテーブルへの書き込み(即時反映) | 0x03 | 2~ | | + | | WRITE |コントロールテーブルへの書き込み(即時反映) | 0x03 | 3~ | |
- | | REG_WRITE |コントロールテーブルへの書き込み(保留) | 0x04 | 2~ | | + | | REG WRITE |コントロールテーブルへの書き込み(保留) | 0x04 | 3~ | |
- | | ACTION |REG_WRITEで保留された値を反映 | 0x05 | 0 | | + | | ACTION |REG WRITEで保留された値を反映 | 0x05 | 0 | |
- | | RESET |デバイスのコントロールテーブルの値を出荷時デフォルト化 | 0x06 | 0 | | + | | FACTORY RESET |デバイスのコントロールテーブルの値を出荷時デフォルト化 | 0x06 | 1 | |
- | | SYNC_WRITE |複数デバイスの同一コントロールテーブルへの一括書き込み(即時反映) | 0x83 | 4~ | | + | | REBOOT |デバイスの再起動 | 0x08 | 0 | |
+ | | SYNC READ |複数デバイスの同一コントロールテーブルから読み込み | 0x82 | 5~ | | ||
+ | | SYNC WRITE |複数デバイスの同一コントロールテーブルへ書き込み | 0x83 | 6~ | | ||
+ | | BULK READ |複数デバイスの異なるコントロールテーブルから読み込み | 0x92 | 6~ | | ||
+ | | BULK WRITE |複数デバイスの異なるコントロールテーブルへ書き込み | 0x93 | 6~ | | ||
***WRITE_DATAインストラクション [#za2d7929] | ***WRITE_DATAインストラクション [#za2d7929] |