CanServo/Protocol/Control
		
		
		
		
		
		Jump to navigation
		Jump to search
		
		
	
CAN Packet 의 Data 8 byte 에 들어가는 메시지는 구형 3가지 신형 8가지, 총 11가지가 있습니다. 첫 바이트는 메시지의 종류를 나타냅니다.
여기서 Target Servo ID 는 Servo 의 CanServo/ID1 의 값과 일치해야 합니다. 만일 0 을 지정하면, 모든 서보가 반응합니다.
구식 포맷:
- Old Write Command
- write 1 register
- 0x96, (target servo id), (address), 2, (data low byte), (data high byte), (chksum)
 - DLC = 7
 
 
 - write 1 register
 - Old Read Command
- read 1 register
- 0x96, (target servo id), (address), 0, (chksum)
 - DLC = 5
 
 
 - read 1 register
 - Old Return Message
- return 1 register
- 0x69, (servo id), (address), 2, (data low byte), (data high byte), (chksum)
 - DLC = 7
 
 
 - return 1 register
 - Old message's chksum
- add all bytes before chksum, except first byte
 
 
신형 포맷:
- Write Command
- write 1 register
- 'w', (target servo id), (address), (data low byte), (data high byte)
 - DLC = 5
 
 - write 2 registers
- 'W', (target servo id), (address 0), (data 0 low byte), (data 0 high byte), (address 1), (data 1 low byte), (data 1 high byte)
 - DLC = 8
 
 
 - write 1 register
 
- Read Command
- read 1 register
- 'r', (target servo id), (address)
 - DLC = 3
 
 - read 2 registers
- 'R', (target servo id), (address 0), (address 1)
 - DLC = 4
 
 
 - read 1 register
 
- Write and Read Command
- write and read: 1 register
- 'x', (target servo id), (address), (data low byte), (data high byte)
 - DLC = 5
 
 - write and read: 2 registers
- 'X', (target servo id), (address 0), (data 0 low byte), (data 0 high byte), (address 1), (data 1 low byte), (data 1 high byte)
 - DLC = 8
 
 
 - write and read: 1 register
 
- Return Message : Servo --> Host
- return 1 register
- 'v', (servo id), (address), (data low byte), (data high byte)
 - DLC = 5
 
 - return 2 registers
- 'V', (servo id), (address 0), (data 0 low byte), (data 0 high byte), (address 1), (data 1 low byte), (data 1 high byte)
 - DLC = 8
 
 
 - return 1 register