임베디드 면접 용어 사전
필드버스

CAN

차량용 멀티마스터 브로드캐스트 버스. ID 기반 비트 아비트레이션으로 충돌을 비파괴적으로 해결한다.

차량과 산업 장비에서 쓰는 다중 마스터 차동 신호 버스(Controller Area Network). 보쉬가 1986년에 발표했다.

물리 계층

CAN_H, CAN_L 두 선의 전압 차이로 신호를 표현한다

Recessive(1) : CAN_H = CAN_L = 2.5V → 차이 0V Dominant (0) : CAN_H = 3.5V, CAN_L = 1.5V → 차이 2V

차동 신호라 노이즈에 강하다 — 두 선에 같은 노이즈가 실리면 차이는 그대로이므로 상쇄된다. 차량의 열악한 전기 환경에서 필수적이다.

"dominant가 recessive를 이긴다" — 하나라도 0을 보내면 버스는 0이 된다. 이 성질이 아비트레이션의 기반이다.

프레임 구조

SOF │ ID(11 or 29비트) │ RTR │ 제어 │ 데이터(0~8B) │ CRC │ ACK │ EOF
 ↑        ↑                            ↑
시작   식별자+우선순위              최대 8바이트

주소가 없다. 대신 메시지 ID가 있다. "누구에게 보낸다"가 아니라 "이런 종류의 데이터를 방송한다" 는 모델이다.

각 노드는 필터를 설정해 자기가 관심 있는 ID만 수신한다.

// 하드웨어 필터 — CPU 개입 없이 걸러낸다
filter.FilterIdHigh = 0x123 << 5;
filter.FilterMaskIdHigh = 0x7FF << 5;

왜 데이터가 8바이트뿐인가

  • 짧은 프레임 = 짧은 전송 시간 = 높은 우선순위 메시지의 대기 시간이 짧다
  • 실시간성 보장

긴 메시지 하나가 버스를 오래 점유하면 긴급 메시지가 늦어진다. 8바이트 제한은 실시간성을 위한 의도적 설계다.

더 많은 데이터가 필요하면 ISO-TP(ISO 15765-2)로 분할 전송한다. 진단 통신(UDS)이 이 방식을 쓴다.

CAN FD는 최대 64바이트까지 늘리고 데이터 구간의 속도를 높였다.

속도와 거리

1 Mbps  → 40m
500 kbps → 100m    ← 차량 파워트레인에서 흔함
250 kbps → 250m
125 kbps → 500m

속도 × 거리가 대략 일정하다. 신호가 버스 끝까지 갔다 오는 시간 안에 아비트레이션이 끝나야 하기 때문이다.

오류 처리 — 자동 재전송

CRC, 형식, ACK, 비트 모니터링, 비트 스터핑 — 5가지 오류 검출 오류를 감지하면 에러 프레임을 보내 모두가 그 프레임을 버리게 한다

  • 송신 노드가 자동으로 재전송

에러 카운터와 상태 전이

  • Error Active — → 정상. 에러 프레임을 능동적으로 보낸다
  • Error Passive → 에러 카운터 128 초과. 소극적으로 동작
  • Bus Off — → 256 초과. 버스에서 스스로 격리 ★

★ Bus Off가 실무에서 중요하다. 고장난 노드가 버스 전체를 마비시키는 것을 막기 위해 스스로 빠지는 것이다. 복구하려면 소프트웨어가 재초기화해야 한다.

if (hcan.Instance->ESR & CAN_ESR_BOFF) { /* 복구 절차 */ }

Bus Off가 반복되면 배선 불량이나 종단 저항 문제를 의심한다.

자주 겪는 문제

아무 통신도 안 된다
→ 종단 저항 120Ω × 2 확인 (양 끝에만)
→ 보율이 모든 노드에서 동일한가
→ CAN_H/L 이 바뀌지 않았는가
→ 트랜시버 전원, STB/EN 핀 상태

간헐적 오류
→ 종단 저항, 배선 길이, 접지 차이
→ 샘플 포인트 설정 (보통 75~87.5%)

혼자서는 송신조차 안 된다 — ACK를 줄 노드가 최소 하나는 있어야 한다. 없으면 ACK 에러로 무한 재전송하다 Bus Off가 된다. 루프백 모드로 단독 테스트할 수 있다.

비트 타이밍

1 비트 = 동기 세그먼트 + 전파 세그먼트 + 위상 세그먼트1 + 위상 세그먼트2

  • 샘플 포인트 = (Sync + Prop + Phase1) / 전체
  • 보통 75~87.5% 지점에서 샘플링

모든 노드의 샘플 포인트가 비슷해야 안정적이다. 계산기가 온라인에 많고, 벤더 툴(STM32CubeMX)이 계산해 준다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 필드버스·산업 통신 — CAN(아비트레이션·종단저항)·LIN·RS-485·Modbus·BLE