Difference between revisions of "CanServo/Protocol/0"
Jump to navigation
Jump to search
| Line 171: | Line 171: | ||
*** ID2 Short 메시지로 반환 | *** ID2 Short 메시지로 반환 | ||
** FD 또는 FD/BRS 수신시 | ** FD 또는 FD/BRS 수신시 | ||
*** 반환 메시지 길이가 유동적이고 최대 길이가 63바이트 | *** 반환 메시지 길이가 유동적이고 최대 길이가 63바이트 초과인 경우에는 ID2+5 Long 메시지로 반환 | ||
*** ID2 Short 메시지로 반환 | *** ID2 Short 메시지로 반환 | ||
Revision as of 07:10, 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
서보 송수신 규칙
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 Short 메시지로 반환
- FD 또는 FD/BRS 수신시
- 반환 메시지 길이가 유동적이고 최대 길이가 63바이트 초과인 경우에는 ID2+5 Long 메시지로 반환
- ID2 Short 메시지로 반환
- 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 추가