Difference between revisions of "CanServo/Protocol/V1.1"

From HITEC_HELP
Jump to navigation Jump to search
Tag: Manual revert
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Under construction ==
== CAN Protocol Ver 1.1 ==
== CAN Protocol Ver 1.1 ==


* This protocol needs FW Ver 1.12+
* This protocol needs FW Ver 1.12+
* The purpose of this message is to set the servo's ID based on the servo's UID.


* CAN ID
* CAN ID
Line 13: Line 9:
* Message : Servo -> Host
* Message : Servo -> Host
** ZUID, <UID : 16 byte>, <ID2 : 4 byte>, <ID1 : 1 byte>, <CAN Mode : 1 byte>
** ZUID, <UID : 16 byte>, <ID2 : 4 byte>, <ID1 : 1 byte>, <CAN Mode : 1 byte>
** 이 메시지는 서보 설정 ID1, ID2 중에 하나라도 0 이면 서보가 주기적으로 발신합니다.


* Message: Host -> Servo
* Message: Host -> Servo
Line 18: Line 15:
** ZIDS, <UID : 16 byte>, <ID2 : 4 byte>, <ID1 : 1 byte>
** ZIDS, <UID : 16 byte>, <ID2 : 4 byte>, <ID1 : 1 byte>
** ZIDS, <UID : 16 byte>, <ID2 : 4 byte>, <ID1 : 1 byte>, <CAN Mode : 1 byte>
** ZIDS, <UID : 16 byte>, <ID2 : 4 byte>, <ID1 : 1 byte>, <CAN Mode : 1 byte>
** UID 가 일치하는 서보는, 메시지의 길이에 따라, ID2, ID1, CAN Mode 까지 설정합니다.


* This message is delivered using the MultiPacket method below.
* This message is delivered using the MultiPacket method below.
Line 23: Line 21:
== MultiPacket for Long Message ==
== MultiPacket for Long Message ==


* The first step is to calculate the CRC16 of the message and add it to the end to create the content to be sent.
[[CanServo/Protocol/MultiPacketsforLongMessage]]
* Send (maximum) 7 bytes extracted from the content to be sent and a Check Byte.
 
* Multi Packet's Data Format
** < Data : max 7 byte, cut from 'Message + CRC16' >, <Check Byte>
** Check Byte
*** bit 7 = 1, if first packet
*** bit 6 = 1, if last packet
*** bit 5 = Toggle, first packet = 1, toggle bit on each packet
*** bit 4:0 = Seq, 0 ~ 31, inc 1 on each message
 
* Note:
** ID2, CRC16 : byte order : low byte first, little endian
 
* Reference:
** [[Code/CRC16]]
 
== FD-CAN ==
 
* FD-CAN allows up to 64 bytes to be transmitted, so up to 63 bytes can be extracted at a time.
 
* This approach has not yet been implemented.

Latest revision as of 01:57, 26 July 2024

CAN Protocol Ver 1.1

  • This protocol needs FW Ver 1.12+
  • CAN ID
    • 0x7FF : Servo -> Host
    • 0x7FE : Host -> Servo
  • Message : Servo -> Host
    • ZUID, <UID : 16 byte>, <ID2 : 4 byte>, <ID1 : 1 byte>, <CAN Mode : 1 byte>
    • 이 메시지는 서보 설정 ID1, ID2 중에 하나라도 0 이면 서보가 주기적으로 발신합니다.
  • Message: Host -> Servo
    • ZIDS, <UID : 16 byte>, <ID2 : 4 byte>
    • ZIDS, <UID : 16 byte>, <ID2 : 4 byte>, <ID1 : 1 byte>
    • ZIDS, <UID : 16 byte>, <ID2 : 4 byte>, <ID1 : 1 byte>, <CAN Mode : 1 byte>
    • UID 가 일치하는 서보는, 메시지의 길이에 따라, ID2, ID1, CAN Mode 까지 설정합니다.
  • This message is delivered using the MultiPacket method below.

MultiPacket for Long Message

CanServo/Protocol/MultiPacketsforLongMessage