728x90
반응형
🚗 최적화된 프로토콜 설계 제안
📌 구성요소 재정리
- 로봇 종류: 메카넘 휠 로봇 (전방향 이동 가능)
- 모터 종류: BLDC 모터 4개
- 제어 방식: 속도 제어 기반 (부드러운 가·감속 필수)
- CAN 네트워크 구조:
- 메인 컨트롤러 보드(호스트) 1개 ↔ 모터 컨트롤러 보드 4개
- 센서: 각 모터에 엔코더 내장, IMU 센서 보유
- 안전 기능: 비상정지 기능 필수
📌 추천 CAN 프로토콜 데이터 항목
1️⃣ 호스트 → 모터 컨트롤러로 보내는 명령 패킷
데이터 항목 | 설명 | 데이터 크기 |
제어 모드 | 속도제어 (기본) / 정지모드 / 에러모드 진입 | 1 byte |
목표 속도 | 원하는 바퀴 속도 (RPM 단위) | 2 byte |
가속도 설정 | 목표 속도에 도달할 때의 가속도 설정값 | 1 byte |
감속도 설정 | 속도를 줄일 때 감속도의 설정값 | 1 byte |
비상 정지 명령 | 긴급정지 플래그 (0:정상, 1:비상정지) | 1 byte |
예약(Reserved) | 향후 추가 기능을 위해 예비 | 2 byte |
- 전체 데이터 길이: 8 bytes (CAN 기본 데이터 길이)
🔸 데이터 예시 (호스트→모터 컨트롤러)
CAN ID (송신 ID) | 제어모드 | 목표속도 | 가속도 | 감속도 | 비상정지 | 예약 |
0x101 | 0x01 | 150 RPM | 0x0A | 0x0A | 0x00 | 0x00 |
2️⃣ 모터 컨트롤러 → 호스트로 보내는 상태 피드백 패킷
데이터 항목 | 설명 | 데이터 크기 |
현재 속도 | 현재 실제 바퀴 속도 (RPM 단위) | 2 byte |
엔코더 위치 | 현재 엔코더 위치 (count) | 2 byte |
모터 전류 | 모터 구동 시 소모 전류 (mA) | 1 byte |
모터 온도 | BLDC 모터 또는 드라이버 온도 (℃) | 1 byte |
에러 상태 코드 | 비트 기반으로 에러 표현 (과열, 과전류, 통신에러 등) | 1 byte |
예약(Reserved) | 향후 확장을 위한 예비 공간 | 1 byte |
- 전체 데이터 길이: 8 bytes
🔸 데이터 예시 (모터 컨트롤러→호스트)
CAN ID (수신 ID) | 현재 속도 | 엔코더 위치 | 모터 전류 | 온도 | 에러 상태 | 예약 |
0x201 | 148 RPM | 1024 count | 1.5A | 40℃ | 0x00 | 0x00 |
📌 CAN ID 추천 규칙
효율적인 관리와 확장성을 위해 CAN ID는 명확한 규칙으로 나누는 게 좋습니다.
- 호스트 → 모터 (명령)
- 0x101: 모터 1번 (좌측 전방) 0x102: 모터 2번 (우측 전방) 0x103: 모터 3번 (좌측 후방) 0x104: 모터 4번 (우측 후방)
- 모터 → 호스트 (상태피드백)
- 0x201: 모터 1번 피드백 0x202: 모터 2번 피드백 0x203: 모터 3번 피드백 0x204: 모터 4번 피드백
📌 추가 고려 사항 및 권장 기능
🔹 IMU 센서 연동
- IMU에서 얻는 자세 데이터 (Yaw, Pitch, Roll 또는 속도)를 활용해 추가 보정 및 자세 안정화 가능
- IMU 데이터는 메인보드 내부에서 처리하여 속도 명령을 각 모터에 다르게 전달하면 정밀한 움직임 제어 가능
🔹 비상정지 처리 방법
- 비상정지 명령 수신 시 모든 모터가 즉각 감속 또는 즉시 제로 속도로 설정
- 긴급상황을 위해 주기적 비상정지 신호 검증 (CAN 버스 이상 시 안전모드 진입)
🔹 에러 코드 구성 예시 (1byte, bit flag 형태)
bit0: 통신 에러 (Communication Error)
bit1: 모터 과열 (Motor Overheat)
bit2: 과전류 (Over Current)
bit3: 엔코더 에러 (Encoder Error)
bit4: 저전압 (Under Voltage)
bit5~7: Reserved
📌 제안된 프로토콜의 장점 및 기대효과
- 부드러운 가·감속 가능 (정확한 가속/감속 설정 데이터 포함)
- 실시간 모니터링 및 빠른 에러 처리 가능 (피드백 데이터에 명확한 상태 포함)
- 향후 확장성을 위한 예비 필드 존재
- CAN 버스 효율적 사용 (8바이트 최적화)
이 설계를 바탕으로, 로봇 시스템의 요구 사항을 더 반영하거나 수정할 부분이 있으면 언제든 말씀해주세요!
728x90
'정보&팁 > 전기 & 전자' 카테고리의 다른 글
CAN통신 - Boardcast 형식 (9) | 2025.03.11 |
---|---|
CAN 통신이란? 자동차와 산업 자동화에서 필수적인 기술 (6) | 2025.02.20 |
[전자] RF 및 통신 장비에서 N MOSFET의 활용 (4) | 2025.02.02 |
[전자] 배터리 보호 회로에서 N MOSFET의 역할 (3) | 2025.02.02 |
[전자] 마이크로컨트롤러 및 로직 회로에서 N MOSFET의 사용 (6) | 2025.02.02 |