Difference between revisions of "CanServo/Protocol/0"
Jump to navigation
Jump to search
| (38 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
* [[SERVO/PROTOCOL/CAN/V1.0/ENG]] - V1.0 - w/W, r/R, x/X, v/V | * [[SERVO/PROTOCOL/CAN/V1.0/ENG]] - V1.0 - w/W, r/R, x/X, v/V | ||
** Write/Read 1 or 2 register | ** Write/Read 1 or 2 register | ||
* 금지 키워드 | * Prohibited keywords ( 금지 키워드 ) | ||
** ZRU1, ZRU2 | ** ZRU1, ZRU2 | ||
* [[CanServo/Protocol/V1.1]] - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG | * [[CanServo/Protocol/V1.1]] - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG | ||
| Line 21: | Line 21: | ||
* [[CanServo/Protocol/V1.6]] - V1.6 - Zc??, Zr?? | * [[CanServo/Protocol/V1.6]] - V1.6 - Zc??, Zr?? | ||
** Custom CAN / CAN-FD | ** Custom CAN / CAN-FD | ||
* [[CanServo/Protocol/V1.7]] - V1.7 - Pot Calibration - ZP?? | |||
* [[CanServo/Protocol/V1.8]] - V1.8 - zs? - Address 256이상인 Stream 설정 및 Stream 전용 Message (2026_02_06) | |||
* [[CanServo/Protovol/V1.9]] - V1.9 - ZZ??, PZ 읽기, (2026_02_06) | |||
== Message Types == | == Message Types == | ||
| Line 28: | Line 31: | ||
** [[CanServo/Protocol/LongMessage]] - Tail Byte = Yes - Single/Multi Packet | ** [[CanServo/Protocol/LongMessage]] - Tail Byte = Yes - Single/Multi Packet | ||
* 주의: Servo ID2 가 필요 | * 주의: Servo ID2 가 필요 없거나 포함한 메시지만 0x7FF, 0x7FE를 통과할 수 있습니다. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 44: | Line 47: | ||
| 0x7FF, ID2+5 | | 0x7FF, ID2+5 | ||
|} | |} | ||
* RR 정의 (2026_01_14) | |||
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 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. | * NOTE: ID2 must aligned by 8. | ||
| Line 101: | Line 111: | ||
| - | | - | ||
| Yes | | Yes | ||
| | |||
| | |||
| | |||
|- | |||
| 1.6 | |||
| | |||
| | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
| 1.7 | |||
| | |||
| | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
| 1.8 | |||
| | |||
| | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
| 1.9 | |||
| | |||
| | |||
| | |||
| | | | ||
| | | | ||
| Line 115: | Line 157: | ||
* DATE: 2024_11_25, G491 R1CAN | * DATE: 2024_11_25, G491 R1CAN | ||
== Message Return Rule == | |||
NOTE: 우선 순위 높은 규칙부터 나열합니다. | |||
* CAN Data Type (CAN, FD, 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 메시지로 반환하는 경우는 별도 지정 | |||
== History == | == History == | ||
=== 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 === | === 2025_06_19 === | ||
| Line 126: | Line 193: | ||
*** ZUV1: ZUW1, ZUX1, ZUR1 -> ZUv1, ZUw1, ZUx1, ZUr1 | *** ZUV1: ZUW1, ZUX1, ZUR1 -> ZUv1, ZUw1, ZUx1, ZUr1 | ||
*** ZUV2: ZUW2, ZUX2, ZUR2 -> ZUv2, ZUw2, ZUx2, ZUr2 | *** ZUV2: ZUW2, ZUX2, ZUR2 -> ZUv2, ZUw2, ZUx2, ZUr2 | ||
*** 과거 FW가 반응하지 않도록 | *** 과거 FW가 반응하지 않도록 메시지의 키워드를 변경합니다. | ||
*** [[CanServo/Protocol/V1.1#2025_06_19]] | *** [[CanServo/Protocol/V1.1#2025_06_19]] | ||
*** [[CanServo/Protocol/V1.3#2025_06_19]] | *** [[CanServo/Protocol/V1.3#2025_06_19]] | ||
Latest revision as of 07:21, 6 February 2026
Protocol Sections
- SERVO/PROTOCOL/CAN/V1.0/ENG - V1.0 - w/W, r/R, x/X, v/V
- Write/Read 1 or 2 register
- Prohibited keywords ( 금지 키워드 )
- ZRU1, ZRU2
- CanServo/Protocol/V1.1 - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG
- Simple Broadcast UID and Set IDs(ID1,ID2) via UID - ZUID, ZIDS
- Write/Read register's bits by ID or UID
- FILE Access
- Message: ZMSG
- CanServo/Protocol/V1.2 - V1.2 - p/P, g/G, o/O, y/Y
- Write/Read 1 or 2 register with 2 byte address in 1 packet
- address = max 1024 range (0~1023)
- Write/Read 1 or 2 register with 2 byte address in 1 packet
- CanServo/Protocol/V1.3 - V1.3 - ZU??(Except ZUID), K
- Write/Read 1 or 2 register via UID
- Broadcast UID
- UID search
- CanServo/Protocol/V1.4 - V1.4 - sync
- CanServo/Protocol/V1.5 - V1.5 - ZKW?, ZKR?, ZKX?, ZKV?
- Write/Read N register(s)
- CanServo/Protocol/V1.6 - V1.6 - Zc??, Zr??
- Custom CAN / CAN-FD
- CanServo/Protocol/V1.7 - V1.7 - Pot Calibration - ZP??
- CanServo/Protocol/V1.8 - V1.8 - zs? - Address 256이상인 Stream 설정 및 Stream 전용 Message (2026_02_06)
- CanServo/Protovol/V1.9 - V1.9 - ZZ??, PZ 읽기, (2026_02_06)
Message Types
- Tail Byte 유무에 따라 Short/Long Message로 나눕니다.
- CanServo/Protocol/ShortMessage - Tail Byte = No - Single Packet Only
- CanServo/Protocol/LongMessage - Tail Byte = Yes - Single/Multi Packet
- 주의: Servo ID2 가 필요 없거나 포함한 메시지만 0x7FF, 0x7FE를 통과할 수 있습니다.
| CAN ID | Short Message | Long Message |
|---|---|---|
| Host -> Servo | 0(Broadcast) or ID2 | 0x7FE, ID2+4 |
| Servo -> Host | ID2 or ID2+1 | 0x7FF, ID2+5 |
- RR 정의 (2026_01_14)
- 이 날짜 이전 버전은 +2, +3 가 되며, Return + 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, 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 메시지로 반환하는 경우는 별도 지정
- CAN 수신시
History
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 -> 조심해서 사용
- (4) Replace message keyword
2025_03
- V1.6 추가
2025_02
- CAN-FD 추가
- Short Mesasge 추가
- V1.5 추가
- ID2+X 추가
2024_11
- R1CAN 추가