Difference between revisions of "CanServo/Protocol/LongMessage"

From HITEC_HELP
Jump to navigation Jump to search
Line 31: Line 31:
* CAN-FD data 는 64바이트까지 확장됩니다.
* CAN-FD data 는 64바이트까지 확장됩니다.
** 0~8, 12, 16, 20, 24, 32, 48, 64
** 0~8, 12, 16, 20, 24, 32, 48, 64
* 혼란을 막기 위해서
** 기존 CAN ID = Servo ID2 인 경우에는 기존 8바이트 이내 메시지만 사용합니다.
** 0x7FE, 0x7FF 에서는 8바이트 데이터, 64바이트 데이터 모두 처리 합니다.
** CAN ID = Servo ID2 + 1 을 추가하여 Long Message 처리 합니다.


== CAN ID ==
== CAN ID ==

Revision as of 06:58, 18 February 2025

Long Message

  • This content refers to the message format of UAVCAN.
    • Thanks to UAVCAN
  • Note:
    • CRC16 : byte order : low byte first, little endian

CAN 2.0

  • Packaging the message to be sent.
    • If the message to be sent is 8 bytes or more, CRC16 is added.
  • Packet's Data Format
    • < Data : max 7 byte, cut from packed Message >, <Check Byte>
    • Check Byte
      • bit 7 = first packet
      • bit 6 = last packet
      • bit 5 = Toggle, first packet = 1, toggle bit on each packet
      • bit 4:0 = Seq, 0 ~ 31, inc 1 on each message
  • Messages less than 8 bytes long are transmitted as one packet.
  • CRC starting value is 0xFFFF (-1)

CAN-FD

  • CAN-FD data 는 64바이트까지 확장됩니다.
    • 0~8, 12, 16, 20, 24, 32, 48, 64
  • 혼란을 막기 위해서
    • 기존 CAN ID = Servo ID2 인 경우에는 기존 8바이트 이내 메시지만 사용합니다.
    • 0x7FE, 0x7FF 에서는 8바이트 데이터, 64바이트 데이터 모두 처리 합니다.
    • CAN ID = Servo ID2 + 1 을 추가하여 Long Message 처리 합니다.

CAN ID

  • CAN ID = 0x7FE = Host -> Servo
  • CAN ID = 0x7FF = Servo -> Host
  • Option
    • CAN ID = Servo ID2 + 1