승코딩당당당
[차량 통신] CAN, FlexRay, LIN, SOME/IP 본문
차량에는 수십 개 이상의 ECU(Electronic Control Unit)가 존재하며, 이들은 서로 데이터를 주고받으며 하나의 시스템처럼 동작한다. 예를 들어 브레이크, 조향, 엔진 제어뿐만 아니라 창문, 시트, 인포테인먼트까지 모두 통신을 기반으로 협력한다. 따라서 차량 내부에서는 단순한 연결이 아닌, 목적에 맞는 다양한 통신 방식이 함께 사용된다.
하지만 모든 기능을 하나의 통신 방식으로 처리하기에는 한계가 있다. 저속이지만 비용이 중요한 영역, 빠르고 정확한 실시간 제어가 필요한 영역, 그리고 대용량 데이터를 처리해야 하는 영역은 각각 요구사항이 다르기 때문이다. 이러한 이유로 차량에서는 CAN, FlexRay, LIN, Ethernet과 같은 여러 통신 프로토콜이 상황에 맞게 혼합되어 사용된다.
이 글에서는 차량 통신의 대표적인 프로토콜인 CAN, FlexRay, LIN을 중심으로 각각의 특징과 차이점을 정리하고, 최근 등장한 SOME/IP와 차량용 Ethernet까지 함께 살펴본다. 또한 통신을 이해하기 위해 필요한 직렬/병렬 통신, 동기/비동기 전송, 오류 검출 방식과 같은 기본 개념도 함께 정리하여 전체적인 흐름을 한 번에 이해할 수 있도록 구성했다.

SOME/IP 개요
SOME/IP (Scalable service-Oriented Middleware over IP) 는 차량 내 ECU 간 서비스 기반 통신을 위한 미들웨어이다.
- 다양한 OS 및 HW 환경의 ECU 간 통신 지원
- AUTOSAR 환경에서 사용
- Classic AUTOSAR
- Adaptive AUTOSAR
- Classic AUTOSAR는 파일 시스템이 없어 XML/JSON 대신 서비스 기반 통신 구조 사용
- 현재는 실무에서 DDS와 경쟁 중인 기술 (연구 단계)
CAN 통신 개요
CAN (Controller Area Network) 는 차량에서 가장 널리 사용되는 통신 방식이다.
- 최대 속도: 1Mbps (실제 차량에서는 약 500Kbps 사용)
- 속도가 높을수록 배선 길이는 짧아져야 함
CAN 물리 구조
- 2선 차동 신호 방식
- CAN_H
- CAN_L
- 꼬임선(Twisted Pair) 사용 → 노이즈 강함
- 양 끝단에 120Ω 종단 저항 필수
👉 차동 신호를 사용하는 이유
→ 외부 노이즈에도 강한 신뢰성 확보
CAN 통신 특징
✔ Event Triggered 방식
- ECU가 원할 때 전송 가능
- 멀티 마스터 구조 지원
👉 문제 상황
- 여러 ECU가 동시에 전송 시 → 충돌 발생
✔ 해결 방법: ID 기반 우선순위
- ID 값이 낮을수록 우선순위 높음
- 충돌 시 자동 Arbitration 수행
CAN 통신 단점
- 낮은 대역폭 (500Kbps 수준)
- 우선순위 경쟁으로 인한 지연 발생
- 지연 시간 예측 불가능 (Non-deterministic)
- 낮은 우선순위 메시지는 무한 지연 가능
- 장애인지 단순 지연인지 구분 어려움
👉 따라서 버스 사용률은
➡ 60~70% 이하로 유지
CAN의 한계 → FlexRay 등장
고신뢰, 고속 통신이 필요한
X-by-Wire 시스템 (브레이크, 조향 등) 을 위해 등장
FlexRay 개요
- 최대 속도: 10Mbps
- 최대 데이터: 254 Byte
- CAN 대비 훨씬 높은 성능
FlexRay 통신 방식
FlexRay는 두 가지 방식 혼합
Static Segment (Time Triggered)
- TDMA 방식
- 정해진 시간에 정해진 ECU가 통신
👉 특징
- 충돌 없음
- 지연 시간 예측 가능 (Deterministic)
Dynamic Segment (Event Triggered)
- CAN처럼 자유롭게 통신
- 필요할 때만 전송
Event vs Time Triggered 비교
| 구분 | Event Triggered (CAN) | Time Triggered (FlexRay) |
| 방식 | 필요할 때 전송 | 정해진 시간 전송 |
| 충돌 | 있음 | 없음 |
| 지연 | 예측 불가 | 예측 가능 |
| 장점 | 유연성 | 실시간성 |
| 단점 | 지연 문제 | 대역폭 낭비 |
FlexRay 노드 구성
- Host Controller: CPU
- Communication Controller: 통신 제어
- Bus Guardian: 오류 발생 시 차단 (안전장치)
- Bus Driver: 물리 신호 변환
LIN 통신 개요
LIN (Local Interconnect Network) 은 저가형 통신 방식
- 1개의 통신선 사용
- 저속이지만 비용이 매우 저렴
LIN 특징
- Single Master 구조
- Slave는 항상 Master 요청에만 응답
- 충돌 없음
👉 주로 사용되는 곳
- 창문, 시트, 조명 등
LIN 물리 계층
- 1선 통신
- 트랜시버 사용
- 기준 전압:
- 7.2V 이상 → 1 (Recessive)
- 4.8V 이하 → 0 (Dominant)
차량용 Ethernet 필요성
고급 차량에서는 대용량 데이터 필요
예: 뒷좌석 엔터테인먼트 (RSE)
- 약 20Mbps 데이터 필요
- 기존 CAN/LIN으로는 부족
👉 해결: 차량용 Ethernet
- 100BASE-TX 사용
- 단점: 쉴드 케이블 필요 → 비용 증가
직렬 vs 병렬 통신
✔ 직렬 통신
- 한 줄로 순차 전송
- 저비용, 구현 쉬움
- 속도 느림
👉 예:
- CAN
- Ethernet
- FlexRay
- USB
✔ 병렬 통신
- 여러 선으로 동시에 전송
- 속도 빠름
- 비용 높고 구현 어려움
👉 예:
- MCU 내부 버스
- PCI
동기 vs 비동기 통신
✔ 동기 통신
- 공통 클럭 사용
- 빠르고 정확
👉 예:
- SPI
- JTAG
✔ 비동기 통신
- 클럭 없이 Start/Stop 비트 사용
👉 예:
- CAN
- Ethernet
- USB
Physical Layer (물리 계층)
데이터를 실제로 어떻게 표현할지 정의
예:
- CAN → 전압 차 (CAN_H / CAN_L)
- 광통신 → 빛
신호 문제: Ringing
- 임피던스 불일치 → 반사 발생
- 통신 오류 유발
데이터 단위
- Bit: 0 또는 1
- Byte: 8bit
- Word: CPU 처리 단위
오류 검출 및 정정
✔ 패리티 비트
- 1비트 오류 검출
✔ Checksum
- 데이터 오류 검출
✔ ECC (Error Correction Code)
- 오류 검출 + 수정 가능
👉 대표: Hamming Code
Hamming Distance
두 데이터 간 다른 비트 수
→ 오류 검출 성능 판단 기준
메모리 저장 방식
- Little Endian: LSB 먼저 저장
- Big Endian: MSB 먼저 저장
👉 TriCore는 Little Endian
CAN 특수 프레임
✔ Overload Frame
- 다음 프레임 전송 지연 목적
- Error Frame과 유사하지만
→ 에러 카운터 증가 없음
정리
- CAN: 범용, 안정적이지만 느림
- FlexRay: 고속 + 결정적 통신
- LIN: 저가, 단순 제어용
- SOME/IP: 서비스 기반 미래 통신
👉 차량 네트워크는 성능 / 비용 / 안전성에 따라 혼합 사용됨
'개발 > 임베디드' 카테고리의 다른 글
| [차량 통신] SDV 전환과 차량 통신 구조 정리 (CAN vs Ethernet) (0) | 2026.04.21 |
|---|---|
| [차량 통신] 차량 네트워크 구조 정리 (CAN, Ethernet, TCP/IP) (0) | 2026.04.16 |
| [AUTOSAR] Communication 구조와 BSW 통신 스택 정리 (0) | 2026.03.24 |
| [AUTOSAR] OS Task 기반 LED 제어 실습 (TRK-MPC560XB) (0) | 2026.03.20 |
| [AUTOSAR] AUTOSAR 기반 소프트웨어 플랫폼과 OS 구조 정리 (0) | 2026.03.20 |