Difference between revisions of "CanServo/Protocol/0"

From HITEC_HELP
Jump to navigation Jump to search
 
(9 intermediate revisions by the same user not shown)
Line 45: Line 45:
| 0x7FF, ID2+5
| 0x7FF, ID2+5
|}
|}
* DroneCAN (2026_02_11)
** Long Message만 사용합니다.
** ID2 = 0 ~ 127
** DroneCAN 통신 방해를 하지 않기 위해서, CAN 2.0A 로 작동합니다.


* RR 정의 (2026_01_14)
* RR 정의 (2026_01_14)
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 option을 설정하면 꼬임.
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 (실제로는 bit OR 1) option을 설정하면 꼬임.
** ID2 + 2 = RR MCU 1 Access
** ID2 + 2 = RR MCU 1 Access
** ID2 + 3 = RR MCU 1 Return + 1 option
** ID2 + 3 = RR MCU 1 Return + 1 option
Line 192: Line 197:
** Long = 이외
** Long = 이외
*** 단, V1.5 는 0x7Fx 불가
*** 단, V1.5 는 0x7Fx 불가
== CAN-FD ==
* [[CanServo/Protocol/CAN-FD]]


== History ==
== History ==
=== 2026_02_11 ===
* DroneCAN
** Long Message만 사용합니다.
** ID2 = 0 ~ 127
** DroneCAN 통신 방해를 하지 않기 위해서, CAN 2.0A 로 작동합니다.


=== 2026_01_14 ===
=== 2026_01_14 ===

Latest revision as of 06:51, 26 February 2026

Protocol Sections

Message Types

CAN ID Short Message Long Message
Host -> Servo 0(Broadcast) or ID2 0x7FE, ID2+4
Servo -> Host ID2 or ID2+1 0x7FF, ID2+5
  • DroneCAN (2026_02_11)
    • Long Message만 사용합니다.
    • ID2 = 0 ~ 127
    • DroneCAN 통신 방해를 하지 않기 위해서, CAN 2.0A 로 작동합니다.
  • RR 정의 (2026_01_14)
    • 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 (실제로는 bit OR 1) option을 설정하면 꼬임.
    • ID2 + 2 = RR MCU 1 Access
    • ID2 + 3 = RR MCU 1 Return + 1 option
    • ID2 + 6 = RR MCU 2 Access
    • ID2 + 7 = RR MCU 2 Return + 1 option
  • NOTE: ID2 must aligned by 8.

Section / platform

Section Short Long ST AT G491 RR
1.0 Yes No Yes Yes Yes Yes
1.1 - Yes Yes Yes
1.2 Yes No Yes
1.3 - Yes 2.3(3) Yes
1.4 Yes Yes 2.3(3) Yes
1.5 - Yes
1.6
1.7
1.8
1.9
ID2+4/5
  • DATE: 2024_11_25, G491 R1CAN

Message Return Rule

NOTE: 우선 순위 높은 규칙부터 나열합니다.

  • CAN Data Type (CAN, FD, BRS) 유지
  • Long 메시지: Long 메시지로 반환
    • 0x7FE 수신시 0x7FF 로 반환
    • ID2+4 수신시 ID2+5 로 반환
  • (여기까지오면, 0 또는 ID2 인 Short 메시지)
    • CAN 수신시
      • 반환 메시지 (유동적일 때는 최대) 길이가 8바이트 초과인 경우에는 ID2+5 Long 메시지로 반환
      • ID2 또는 ID2+1, Short 메시지로 반환
    • FD 또는 FD/BRS 수신시
      • 반환 메시지 (유동적일 때는 최대) 길이가 63바이트 초과인 경우에는 ID2+5 Long 메시지로 반환
      • ID2 또는 ID2+1, Short 메시지로 반환
    • 예외적으로, ID2+5 Long 메시지로 반환하는 경우는 별도 지정

Protocol Recv CAN ID Rule

  • 조사
    • V1.0 - 8 byte 이하 고정 길이, ID1만 있음, CAN ID = Short
    • V1.1 - 63 byte 이하 고정 길이, UID 또는 ID2/ID1 포함, CAN ID = Long
    • V1.2 - V1.0 과 같음
    • V1.3 - 63 byte 이하 고정 길이(일부 유동), UID 또는 ID2/ID1 포함, CAN ID = Long
    • V1.4 - sync, ID 없음, 모든 CAN ID 가능, CAN ID = Any
    • V1.5 - 8 byte 초과 유동적 길이, ID1만 있음, CAN ID = Long
    • V1.6 - Long, ID2/ID1 포함, CAN ID = Long
    • V1.7 - 다양한 길이의 고정 길이, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long
    • V1.8 - 안씀?
    • V1.9 - Long, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long
  • 결론
    • Short = V1.0, V1.2
    • Any = V1.4
    • Long = 이외
      • 단, V1.5 는 0x7Fx 불가

CAN-FD

History

2026_02_11

  • DroneCAN
    • Long Message만 사용합니다.
    • ID2 = 0 ~ 127
    • DroneCAN 통신 방해를 하지 않기 위해서, CAN 2.0A 로 작동합니다.

2026_01_14

  • SR33 RR MCU 1/2 Access 기준 변경
    • 변경전: ID2 + 2, ID2 + 3
    • 변경후: ID2 + 2, ID2 + 6
    • 사유: Return +1 option을 설정하면, 실제로는 OR 1 이기 때문에, +3, +3 으로 꼬임
      • 만일 +1 이라고 해도, +3, +4 가 되어, Long Message와 꼬임.

2025_06_19

  • (6) Return message has bug
    • (4) Replace message keyword
      • ZRUU: ZSUU, ZXUU, ZGUU -> ZRuu, ZSuu, ZXuu, ZGuu
      • ZRID: ZSID, ZXID, ZGID -> ZRid, ZSid, ZXid, ZGid
      • ZUV1: ZUW1, ZUX1, ZUR1 -> ZUv1, ZUw1, ZUx1, ZUr1
      • ZUV2: ZUW2, ZUX2, ZUR2 -> ZUv2, ZUw2, ZUx2, ZUr2
      • 과거 FW가 반응하지 않도록 메시지의 키워드를 변경합니다.
      • CanServo/Protocol/V1.1#2025_06_19
      • CanServo/Protocol/V1.3#2025_06_19
    • (2) No replace:
      • ZMSG -> 전송 코드 수정으로 해결
      • ZGFL -> 조심해서 사용

2025_03

  • V1.6 추가

2025_02

    • CAN-FD 추가
    • Short Mesasge 추가
    • V1.5 추가
    • ID2+X 추가

2024_11

    • R1CAN 추가