버스 접근 방식(Bus Access) — 공유된 통신 매체에 대해 어느 노드가 언제 점유하여 송신할 수 있는가를 규정하는 메커니즘. 자동차 버스 시스템은 크게 4가지 유형으로 분류된다.
4가지 유형
1. Event-driven (이벤트 주도)
- 대표 버스: CAN(CSMA/CA), Ethernet IEEE 10Base-T (CSMA/CD)
- 임의의 ECU가 사용 가능한 버스에 아무 시점에든 접근 가능.
- 한 노드가 버스를 점유하면 다른 노드는 해제까지 대기.
- 메시지 우선순위 부여로 트래픽을 제어 가능.
- 동기화: Sender에 동기화.
- 대표 프로토콜:
- CSMA/CD(Carrier Sense Multiple Access / Collision Detection) — Ethernet
- CSMA/CA(Carrier Sense Multiple Access / Collision Avoidance) — CAN. 2개 이상 ECU가 동시 접근 시 우선순위가 가장 높은 메시지가 생존.
- CSMA/CR(Collision Resolution) — CSMA/CA와 동일한 비트 단위 중재 기법을 우선순위 경쟁에서 밀린 노드 관점으로 표현한 용어. CAN에서 충돌은 파괴되지 않고 해결됨을 강조.
2. Master-Slave
- 대표 버스: LIN
- 상위 노드(Master)가 데이터 전송을 통제.
- 하위 노드(Slave)는 Master의 요청에 응답할 때만 버스 접근 가능.
- 동기화: Master에 동기화.
- 실제로는 “delegated token” 방식으로도 불림 — Master가 특정 신호(토큰)를 전송해 버스 접근권을 위임. Master는 두 개 이상의 schedule을 전환할 수 있어 시간적 거동은 상대적으로 유연.
3. Time-synchronous (시분할)
- 대표 버스: FlexRay (TDMA 사용)
- 각 노드가 주기적인 시간 창(time window/slot)을 할당받고, 해당 슬롯에서만 송신.
- 시간 창이 노드에 고정적으로 할당 — 토큰이 전달되지 않는다.
- 동기화: Global Clock에 동기화 → 글로벌 사이클.
- TDMA: Time Division Multiple Access
- 메시지는 고정 주기(cycle time)로 전송됨.
4. Token Passing
- 대표 프로토콜: OSEK NM (Network Management)
- 송신 권한(Token)이 노드 간 전달됨.
- 토큰을 보유한 노드만 송신 가능 → 동시에 하나의 노드만 송신 보장.
- 동기화: Sender에 동기화.
타이밍 예시
| 방식 | 시간 축 특성 |
|---|---|
| CSMA (CAN) | 임의 시점 접근, 우선순위 기반 충돌 회피 (예: 0x20, 0x60, 0x80) |
| Master/Slave (LIN) | Master가 정한 schedule로 순회 (1-2-3-4-1-2-3-4...) |
| TDMA (FlexRay) | 고정된 Global Cycle 내 슬롯 (1 2 3 4) |
CSMA vs TDMA 철학 비교
- CSMA (CAN): 이벤트 주도. 계획·순서·스케줄 없음. 신호 변화 발생 시 해당 ECU가 즉시 접근. 동시 접근 시 우선순위가 높은 메시지가 승리.
- TDMA (FlexRay): 시간 주도. 각 메시지에 고정 슬롯 예약. 고정 반복 주기(cycle time)로 전송.
- Master/Slave (LIN): schedule 기반이지만 Master가 schedule을 전환할 수 있어 CSMA와 TDMA의 중간적 거동.
CAN CSMA/CA 세부 동작
기본 접근 규칙
- 각 네트워크 노드는 버스가 idle일 때 언제든 전송 시작 가능.
- Bus idle 판정: recessive 레벨이 11비트 시간 연속 → idle (1 MBaud CAN 기준 11µs).
- 두 송신 요청이 서로 다른 시점에 발생하면, 늦은 요청은 버스가 busy이므로 우선순위와 무관하게 대기.
- 일단 버스가 busy가 되면 (첫 Identifier 비트 시작) 다른 노드는 다음 idle까지 대기.
Start of Frame (SOF)
- 모든 CAN 메시지는 논리 0(dominant)로 시작 → bus idle의 논리 1(recessive)과 구분.
- SOF 후 Identifier 비트가 순차 전송됨.
Bit-by-Bit 중재
둘 이상의 노드가 동시에 전송을 시작하면 비트 동기 전송과 중재가 동시 진행된다. 각 송신 노드는 자신이 보낸 비트와 버스에서 읽은 비트를 비교:
| Sender 비트 | 버스 비트 | 동작 |
|---|---|---|
| 0 | 0 | Continue |
| 0 | 1 | Transmission Error |
| 1 | 0 | Stop and change to reception mode (패배) |
| 1 | 1 | Continue |
- Wired-AND (Bus Logic): 한 노드라도 0(dominant)을 송신하면 버스는 0.
- 우선순위: Identifier 수치의 역수 →
0x000최고 /0x7FF최저 (11-bit Standard). - 중재에서 이긴 노드는 다른 노드의 존재를 인식하지 못한 채 전송을 이어가며, 전송 지연이 없다.
- 진 노드는 요청을 취소하지 않고 다음 idle 시 재시도.
→ 자세한 중재 로직은 CAN 중재 참조.
점유 시간 제한
CAN 메시지는 최대 페이로드 8바이트로 버스를 짧게 점유 → 낮은 우선순위 메시지의 대기 시간도 상한이 있음.
Ethernet CSMA/CD 세부 동작
CSMA/CD — 초기 Ethernet(10 Mbps)에서 충돌을 탐지한 뒤 임의 시간 대기 후 재전송하는 방식. 스테이션이 채널 상태를 감지한 후 전송하되, 충돌이 발생하면 감지해 복구한다.
- CS: 회선 사용 여부 감지.
- MA: 미사용 시 누구든 접근 가능.
- CD: 프레임 전송 중 충돌 여부 조사.
알고리즘 흐름
- 시작 → 재시도 카운터 .
- 채널 사용 중? → Yes면 대기, No면 다음 단계.
- 프레임 전송.
- 충돌 발생? → No면 완료.
- Jam 신호 전송 → .
- ? → Yes면 비정상 종료, No면 다음 단계.
- 범위에서 임의의 수 선택.
- 만큼 대기 후 2번으로 복귀.
재전송 백오프
- 최대 회 재시도. 초과 시 전송 실패.
- 충돌이 반복될수록 범위가 넓어져 백오프 시간이 지수적으로 증가 → 매체 혼잡도에 따라 트래픽 자동 조절.
- Slot Time = (왕복 전파 시간을 포괄).
현대 Ethernet에서의 한계
- CSMA/CD는 초기 10 Mbps Ethernet에서만 사용.
- 고속·기가비트 Ethernet, Full Duplex, Switch 기반 Star 토폴로지 전환으로 더 이상 사용되지 않음.
- 현재 Ethernet의 지연·손실은 Switch 내부 큐에서 발생 (특정 포트로 집중된 트래픽).
ACK 메커니즘 비교
| 프로토콜 | ACK 계층 | 응답 시점 |
|---|---|---|
| CAN | Data Link (ACK Slot) | 1 Bit Time 내 |
| Ethernet | 상위 계층 (TCP 등) | 프레임 단위 |