Notice
Recent Posts
Recent Comments
Link
승코딩당당당
[차량 통신] 차량 네트워크 구조 정리 (CAN, Ethernet, TCP/IP) 본문
이번 글에서는 차량에서 사용되는 다양한 통신 방식과 네트워크 구조, 그리고 TCP/IP 스택까지 전체적인 흐름을 정리한다.
차량 내부에서는 CAN, LIN, FlexRay와 같은 통신 프로토콜을 통해 ECU 간 데이터가 교환되며, 최근에는 대용량 데이터 처리와 연결성을 위해 Ethernet 기반 네트워크가 점점 확대되고 있다. 이러한 변화는 Software Defined Vehicle(SDV) 개념과 맞물려 차량의 E/E 아키텍처를 기존의 분산 구조에서 서비스 중심 구조로 발전시키고 있다.
또한 차량 네트워크가 외부 시스템과 연결되면서 TCP/IP 기반 통신의 중요성도 함께 증가하고 있다. IP, UDP, TCP와 같은 프로토콜은 각각의 특성과 목적에 따라 사용되며, 데이터 전송 방식과 신뢰성, 속도 측면에서 차이를 가진다.
이 글에서는 차량 통신 프로토콜의 특징과 활용, VLAN과 Ethernet 구조, 그리고 TCP/IP 스택의 핵심 개념까지 단계적으로 정리하여 전체 네트워크 구조를 이해할 수 있도록 구성하였다.
차량 통신 개요
CAN 통신
- 여러 장치들이 하나의 버스라인에 연결되어 데이터를 주고 받는 실시간 통신 프로토콜
- 최대 1Mbps 통신 속도 지원
LIN 통신
- 1가닥의 통신 선만 사용하며, 낮은 통신 속도 제공하나 가격이 저렴
- 단일 마스터 통신으로 버스 충돌 방지
- 고성능이 필요하지 않은 가격이 저렴한 응용군에서 사용됨
LIN 통신 활용 분야
- CAN으로 연결된 제어기의 local 망으로 활용됨
- 액추에이터 구동 및 센서 읽기 등
FlexRay
- Steer-by-wire 및 brake-by-wire를 위해 좀 더 신뢰성 있는 통신이 필요함
- CAN의 ID 기반 우선순위 경쟁으로 인한 지연 문제를 해결하기 위해 TDMA(Time Division Multiple Access) 기법을 활용함
- FlexRay 차량 적용 현황
- FlexRay는 초기 새로운 차량 통신으로 대두되었으나, 일부 OEM에 의해 제한적으로 활용되고 있음
- 기존의 CAN 대비 통신 방식이 달라 개발 및 검증에 대한 부담으로 시장에 널리 사용되지 못해 부품 값이 비쌈
CAN FD 개발
- CAN 보다 빠른 새로운 통신이 필요함
- 기존 CAN 통신 표준을 이용하면서 통신 속도만 빠른 CAN FD 등장
- CAN의 ID 우선순위 경쟁 문제로 인한 지연은 해결할 수 없으나, 기존 CAN통신의 대역폭 및 통신 속도 문제 개선
- 최대 8Mbps 통신 속도 지원
- 기존 CAN 통신 표준을 이용하면서 통신 속도만 빠른 CAN FD 등장
멀티미디어용 통신 프로토콜
- MOST (Media Oriented System Transport)
- 25(Optical), 50Mbps(electrical), 150Mbps(Optical, Electrical)
- LVDS (Low Voltage Differential Signaling)
- 점대점 연결, 버스 없음, 제어 없음, 프로토콜 없음
- 매우 높은 데이터 전송 속도
- 무압축 데이터 전송
차량 Ethernet 대두
- Ethernet 장점
- 인터넷 분야에서 널리 사용되어 기술 성숙도가 높고, 개발 툴 부품 등의 가격이 저렴함
- 100Mbps, 1Gbps 등 큰 대역폭을 바탕으로 CAN의 대역폭 문제를 해결할 수 있음
- 산업용 네트워크 분야에서 다양한 실시간 통신 및 고신뢰성 어플리케이션에 적용되어 신뢰성이 확보됨
- Ehternet 차량 적용의 문제점
- 차량 EMC 조건을 만족하지 못해 쉴드 케이블 필요함
- Ethernet RJ-45 커넥터 및 4 가닥의 선을 사용함
- Broad-Reach 기술의 개발로 인해 차량 적용 가능해짐
전통적 차량 E/E 아키텍처
- Distributed Architecture
- Central Gateway를 중심으로 파워트레인, 샤시, 바디, 멀티미디어, ADAS 등의 각 도메인별 네트워크 구성됨
차량 E/E 아키텍처
Software Define Vehicle(SDV)
- 소프트웨어로 하드웨어를 제어하고 관리하는 자동차
- 소프트웨어가 자동차의 주행 성능, 편의 기능, 안전, 차량의 감성 품질 및 브랜드 정체성까지 규정할 수 있음
- 소프트웨어를 수시로 업데이트하여 성능을 개선하고, 다양한 구독형 SW를 설치하여 새로운 기능을 추가할 수 있음
차량 E/E 아키텍처 변화
- SDV를 위한 E/E 아키텍처 변화
- 교통, 홈 등이 연결되는 새로운 User Experience를 제공하기 위해 기존 E/E 아키텍처의 변화가 요구되고 있음
- Risk를 최소화하기 위해 OEM은 새로운 E/E 아키텍처로의 단계적 변화를 계획하고 있음
Service-Oriented Architecture (SOA)
- 네트워크 상의 통신 프로토콜을 이용하여 서비스를 다른 장치에게 제공할 수 있는 소프트웨어 아키텍처
- 서비스는 기능의 일부분이며, 서비스는 공통 인터페이스 표준과 아키텍처 패턴을 사용하여 새로운 어플리케이션에 신속하게 통합될 수 있음
- 개발자는 기존의 기능을 재개발 또는 복제하거나 기존의 기능을 연결 재사용하기 위한 방법을 알아야 했던 수고를 덜 수 있음
VLAN
VLAN (Virtual LAN)
- LAN (Local Area Network)
- 일반적으로 스위치를 중심으로 연결된 근거리 통신망
- 집, 사무실 등의 장치를 유선(Ethernet) 또는 무선(Wifi)으로 연결한 네트워크
- 가상 LAN
- 동일한 스위치에 연결된 장치들을 논리적으로 분리하여 별개의 네트워크로 나누는 기술
- 물리적인 선에 의한 것이 아닌, 소프트웨어에 의해 구성된 근거리 통신망
Port-based VALN
- Port 번호에 기반하여 VLAN을 구분하는 방법
- 특정 포트로 송수신되는 프레임을 특정 VLAN에 할당 (VLAN Tag 불필요)
Tagged VLAN
- VLAN Tag를 사용하여 VLAN을 지정하는 방법
- 제어기 또는 스위치가 VLAN Tag를 포함하여 전송
Protocol & MAC based VLAN
- Protocol-based VLAN
- 프로토콜 유형에 따라 VLAN을 구성하는 방법
- 동일한 Port 입력되는 Frame도 프로토콜에 따라 VLAN 할당
- MAC-basef VLAN
- 수신 프레임의 Source MAC 주소를 기준으로 VLAN 할당
- 특정 포트로 연결되는 장치의 MAC에 따라 VLAN 할당
스위치 포트 모드
- VLAN을 지원하는 스위치의 각 포트는 아래로 설정 가능
- Access 모드
- Untagged 프레임만 처리, 하나의 VLAN에만 속함
- Trunk 모드
- Tagged 프레임만 처리하며, 여러 VLAN ID 전송 허용
- 다른 스위치와 연결 시 주로 사용되는 모드
- Hybrid 모드
- Untagged 및 Tagged 프레임을 모두 송수신 가능
- VLAN 별로 Tagged, Untagged 설정 가능
- Access 모드
VLAN
- VLAN 미적용 시 Switch 동작 확인
- Switch에 별도의 VLAN을 설정하지 않고 아래와 같이 연결하면 모든 컴퓨터 및 제어기는 서로 통신 연결이 가능함
- VLAN 적용 시 동일 VLAN에 연결된 제어기만 통신 가능
Ethernet
Ethernet Switch
- Ehternet Switch
- MAC 주소를 기반으로 특정 노드에게 수신한 패킷을 목적 노드로 전달
- MAC 주소 기반 패킷 스위칭
- Switch 종류
- Managed switch: 네트워크 설정이 가능한 스위치
- Unmanaged switch: 네트워크 설정이 불가능한 스위치
- 단순 MAC 주소에 따른 스위칭 기능만 제공함
- MCU 내에 내장된 Ethernet Controller에 의해 수행됨
- 사용자가 전달한 MAC, Ehertype, Payload(Data) 를 전송
- 전송 시 CRC를 계산하여 전송하며, 수신 시 CRC 계산 후 에러 체크
- Switch가 목적지 MAC 주소를 참조하여 목적 PORT로 전달
Ethernet Hub
- 스위치와 다르게 MAC 주소 테이블을 저장하지 않음 (1계층의 장비)
- Frame을 수신하면 모든 포트로 전달 (Broadcast)
- 연결 노드가 많은 경우 네트워크 트래픽 증가
- 정보가 모든 노드로 전송되어 보안 취약할 수 있음
- 현재 거의 사용되지 않음
Ethernet Tap
- Network TAP (Test Access Point)
- 네트워크 트래픽을 감시하고 분석하기 위한 하드웨어 장치
- 네트워크의 특정 위치에 설치하여 트래픽을 그대로 복제 및 전달
Access Point (AP)
- Wireless Access Point
- 무선 Wi-Fi 디바이스를 유선 스위치 또는 라우터와 연결하기 위한 장치
- Wi-Fi 이름(SSID)를 브로드캐스트하여 주변에 알림
TCP/IP 스택
IP (Internet Protocol)
Network Layer
- IP 주소를 이용하여 인터넷상의 목적지로 메시지를 전송하는 역할을 수행함
- 중간 경로에서 메시지 전달은 라우터가 목적 IP를 보고 수행
- 다양한 프로토콜 사용 (ARP, ICMP, IGMP, …)
ARP (Address Resolution Protocol)
- 주소 결정 프로토콜
- 네트워크 상에서 IP 주소를 MAC 주소로 대응(bind시키기 위해 사용되는 프로토콜
ICMP (Internet Control Message Protocol)
- 인터넷 제어 메시지 프로토콜
- 네트워크 장치에서 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜
- 대표적인 서비스는 Ping
IP (Internet Protocol)
- 현재 주로 사용되는 버전은 IPv4
- IP는 소스로부터 목적지로의 패킷 전달을 담당
Type of Communication
- Unicast
- 특정 IP를 가진 노드에만 전송함
- Multicast
- 멀티캐스트 IP를 사용하여 전송하는 경우, 해당 멀티캐스트 IP에 명시적으로 가입한 노드로 전송함
- Broadcast
- Broadcast IP 등을 사용하여 모든 노드에게 전송할 수 있음
- Network 주소 뒤에 255를 연결하면 해당 네트워크에 참여하는 모든 노드에 전달함
IGMP (Internet Group Management Protocol)
- 멀티캐스트는 라우터가 가입 여부를 확인하여 처리함
- 멀티캐스트 참여 노드는 원하는 그룹에 참여 또는 탈퇴 가능
- 라우터는 주기적으로 IGMP 쿼리를 전송함
- 차량에서는 라우터를 사용하지 않으므로, 스위치가 그 기능을 대신함
라우터
- 컴퓨터 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치
- 목적 IP 주소에 도달하기 위한 최적 경로를 찾아, 그 경로에 따른 다음 장치로 전달하는 역할을 수행함
- 네트워크 상의 다양한 경로를 파악하기 위해 다양한 라우팅 프로토콜을 사용함
UDP (User Datagram Protocol)
UDP 특징
- 비연결형 서비스
- 연결 설정 과정이 없으며, 데이터를 순서에 상관없이 그때마다 독립적으로 전송함
- 신뢰성 없는 데이터 전송
- 연결 과정이 없기 때문에 데이터가 유실될 수 있고, 데이터 패킷을 순차적으로 전송하더라도 수신 쪽에서 받는 순서가 다를 수 있음
- 신속성
- 데이터를 빠르게 전송하기 위해 최소한의 추가 정보가 패킷 헤더에 포함됨
Connectionless
- Connectionless 통신
- 송신 및 수신 노드는 미리 데이터를 주고 받는 것을 약속하지 않음
통신 신뢰성
- UDP는 데이터 신뢰성 보장하지 않음
UDP Error Control
- UDP Checksum
- 손상된 패킷이 수신되면 해당 패킷을 버림 (재전송 없음)
UDP 장단점
- UDP 단점
- 전송한 데이터가 수신자에 의해 정상적으로 수신되는지 확인하지 않음
- 송신 노드가 보낸 순서와 수신 노드가 수신한 데이터의 순서 동일함을 보장하지 않음
- UDP 장점
- TCP 대비 헤더 크기가 적어 데이터 전송 속도 면에서 빠르고 효율적임
- TCP 대비 프로토콜이 간단하여 CPU 자원 및 통신 리소스를 적게 사용함
TCP (Transmission Control Protocol)
TCP 특징
- 연결 지향 프로토콜로 통신 시작을 위해 연결 필요함
- 연결된 소켓은 양 수신 노드의 특정 Process를 연결하는 byte stream 역할 수행
- 신뢰성 있는 데이터 송수신
- Sequence 및 Acknoledge를 활용한 메시지 정상 송수신 여부 확인
- 오류 발생시 자동 재전송 기능
- 흐름 제어 (Flow control)
- 수신 노드의 버퍼 오버플로우 발생하지 않도록 전송 데이터의 양 조절함
- 혼잡 제어 (Congestion control)
- 네트워크 혼잡 발생시 전송 데이터의 양 조절함
3 Way Handshake
- TCP는 연결 지향형 프로토콜
- TCP는 통신 시작전 먼저 연결이 필요함
- 연결이 되면 송수신 프로세스 사이에 바이트 스트림이 생성됨
- 연결을 위해 3 way handshake를 진행함
- TCP도 UDP와 동일하게 서버의 IP와 Port 번호를 알고 있어야 함
TCP 소켓
- 연결이 완료된 TCP 소켓은 Sender 및 Receiver 사이를 연결하는 스트림을 생성함
- TCP는 신뢰성 있는 데이터 송수신을 보장하므로, 전송하는 데이터는 전송한 순서에 맞게 통로에 들어가서 순서대로 수신 노드로 전달됨
- 스트림을 사용해서 데이터 구분하지 않음
- 메시지의 경계를 구분하지 않음
신뢰성 있는 데이터 송수신
- TCP는 Sequence 및 Acknowledge #를 이용하여 신뢰성 있는 송수신 제공
- TCP는 네트워크 상에서 발생할 수 있는 다양한 에러 상황에 대한 처리 로직을 가지고 있음
Flow control
- Flow control 개념
- 수신자의 Application이 Rx 버퍼를 읽는 속도보다 송신자의 전송하는 시간이 빠른 경우
- 수신자 버퍼 오버플로우가 발생하여, 정상적인 수신 불가
- TCP는 ACK 메커니즘을 활용하여, 문제를 인식하여 재전송함
- 빈번한 재전송은 네트워크의 성능을 저하시키므로, 수신자의 버퍼 상태를 체크하여 받을 수 있는 만큼의 메시지를 전송함
- 수신자의 Application이 Rx 버퍼를 읽는 속도보다 송신자의 전송하는 시간이 빠른 경우
- Stop & Wait 기법
- 수신 노드에서 ACK 신호를 수신한 이후 새로운 메시지 전송함
- ACK 신호 대기로 인해 메시지 전송이 지연될 수 있음
- Sliding Window 기법
- Stop & Wait 기법의 메시지 지연 문제를 해결하기 위함
- 최초 통신 연결 시 수신자의 사용 가능한 버퍼의 크기(윈도우 크기)를 수신함
- Client는 수신자의 윈도우 크기 만큼은 ACK 없이 전송 가능함
TCP 오류 제어
- TCP는 재전송 기반 오류 제어 제공함
- 에러 감지 방법
- 일정 시간 이상 ACK를 수신하지 못하는 경우
- 중복된 ACK를 수신하는 경우
- Go back N 기법
- 재전송 프레임이 많아, 고속 네트워크에 비효율적임
- Selective Repeat 기법
- 옵션 설정 시 사용 가능함
- 에러 감지 방법
Delayed Acknowledge
- ACK 메시지 전송에 대한 오버헤드 줄이기 위해 모아서 ACK 전송하는 기법
- 일정 타이머를 기준으로 ACK를 모아서 전송함
- 일정 시간이 지나기 전에 두 번째 메시지가 수신되면 즉시 ACK 전송
'개발 > 임베디드' 카테고리의 다른 글
| [RTOS] RTOS Scheduling과 OSEK 개념 정리 (0) | 2026.04.23 |
|---|---|
| [차량 통신] SDV 전환과 차량 통신 구조 정리 (CAN vs Ethernet) (0) | 2026.04.21 |
| [차량 통신] CAN, FlexRay, LIN, SOME/IP (0) | 2026.04.14 |
| [AUTOSAR] Communication 구조와 BSW 통신 스택 정리 (0) | 2026.03.24 |
| [AUTOSAR] OS Task 기반 LED 제어 실습 (TRK-MPC560XB) (0) | 2026.03.20 |