Difference between revisions of "CanServo/Protocol/V1.3"
Jump to navigation
Jump to search
Line 10: | Line 10: | ||
* Message: Host -> Servo | * Message: Host -> Servo | ||
** | ** ZUw1, < UID : 16 byte >, < ADDR : 2 byte >, < DATA : 2 byte > | ||
** | ** ZUw2, < UID : 16 byte >, < ADDR1 : 2 byte >, < DATA1 : 2 byte >, < ADDR2 : 2 byte >, < DATA2 : 2 byte > | ||
** ZUx1, < UID : 16 byte >, < ADDR : 2 byte >, < DATA : 2 byte > | ** ZUx1, < UID : 16 byte >, < ADDR : 2 byte >, < DATA : 2 byte > | ||
** ZUx2, < UID : 16 byte >, < ADDR1 : 2 byte >, < DATA1 : 2 byte >, < ADDR2 : 2 byte >, < DATA2 : 2 byte > | ** ZUx2, < UID : 16 byte >, < ADDR1 : 2 byte >, < DATA1 : 2 byte >, < ADDR2 : 2 byte >, < DATA2 : 2 byte > | ||
** ZUr1, < UID : 16 byte >, < ADDR : 2 byte > | ** ZUr1, < UID : 16 byte >, < ADDR : 2 byte > | ||
** ZUr2, < UID : 16 byte >, < ADDR1 : 2 byte >, < ADDR2 : 2 byte > | ** ZUr2, < UID : 16 byte >, < ADDR1 : 2 byte >, < ADDR2 : 2 byte > | ||
* Message : Servo -> Host | |||
** ZUv1, < UID : 16 byte >, < ADDR : 2 byte >, < DATA : 2 byte > | |||
** ZUv2, < UID : 16 byte >, < ADDR1 : 2 byte >, < DATA1 : 2 byte >, < ADDR2 : 2 byte >, < DATA2 : 2 byte > | |||
* NOTE: (2025_06_19) Replace Message (by bug: ZUV1, ZUV2) | * NOTE: (2025_06_19) Replace Message (by bug: ZUV1, ZUV2) | ||
** ZUW1 -> ZUw1 | |||
** ZUX1 -> ZUx1 | ** ZUX1 -> ZUx1 | ||
** ZUR1 -> ZUr1 | |||
** ZUV1 -> ZUv1 | |||
** ZUW2 -> ZUw2 | |||
** ZUX2 -> ZUx2 | ** ZUX2 -> ZUx2 | ||
** | ** ZUR2 -> ZUr2 | ||
** | ** ZUV2 -> ZUv2 | ||
=== Broadcast UID === | === Broadcast UID === |
Revision as of 00:12, 20 June 2025
CAN Protocol Ver 1.3
- All messages below are sent in long format.
- CAN ID
- 0x7FF : Servo -> Host
- 0x7FE : Host -> Servo
Write/Read Register
- Message: Host -> Servo
- ZUw1, < UID : 16 byte >, < ADDR : 2 byte >, < DATA : 2 byte >
- ZUw2, < UID : 16 byte >, < ADDR1 : 2 byte >, < DATA1 : 2 byte >, < ADDR2 : 2 byte >, < DATA2 : 2 byte >
- ZUx1, < UID : 16 byte >, < ADDR : 2 byte >, < DATA : 2 byte >
- ZUx2, < UID : 16 byte >, < ADDR1 : 2 byte >, < DATA1 : 2 byte >, < ADDR2 : 2 byte >, < DATA2 : 2 byte >
- ZUr1, < UID : 16 byte >, < ADDR : 2 byte >
- ZUr2, < UID : 16 byte >, < ADDR1 : 2 byte >, < ADDR2 : 2 byte >
- Message : Servo -> Host
- ZUv1, < UID : 16 byte >, < ADDR : 2 byte >, < DATA : 2 byte >
- ZUv2, < UID : 16 byte >, < ADDR1 : 2 byte >, < DATA1 : 2 byte >, < ADDR2 : 2 byte >, < DATA2 : 2 byte >
- NOTE: (2025_06_19) Replace Message (by bug: ZUV1, ZUV2)
- ZUW1 -> ZUw1
- ZUX1 -> ZUx1
- ZUR1 -> ZUr1
- ZUV1 -> ZUv1
- ZUW2 -> ZUw2
- ZUX2 -> ZUx2
- ZUR2 -> ZUr2
- ZUV2 -> ZUv2
Broadcast UID
- Message: Host -> Servo
- ZUAL --> old: ZGUALL
- ZUGD, < ID2 : 4 byte >, < ID1 : 1 byte > --> OLD: ZGUD
- ID2 = 0 이면, All
- ID1 = 0 이면, All
- Message: Servo -> Host
- ZUVD, < UID : 16 byte >, < ID2 : 4 byte >, < ID1 : 1 byte > --> OLD: ZVUD
UID search
- Message: Host -> Servo
- ZUgK, <Magic Code: 1 byte>, <UID part = 0, 4, 8, 12 bytes> --> OLD: ZGUa
- Message: Servo -> Host
- K, <Magic Code: 1 byte>, <UID part = 4 bytes>
- Magic Code
- bit 5:0 = magic key for search
- bit 7:6 = id type
- 0 = ID ng ( ID1 = 0 or ID2 = 0 )
- 1 = ID ok ( ID1 != 0 and ID2 != 0 )
- 2/3 = any