In-Vehicle Network

‍이세현·2024년 12월 7일
0

자동차의 전자화가 계속되면서 차량 내부의 다양한 센서, 액추에이터, ECU 등을 연결하는 네트워크 기술의 중요성이 커지고 있다. In-Vehicle Network (IVN)는 차량 내부 통신의 핵심 기술로, 각종 장치가 원활히 통신하도록 한다.

In-Vehicle Network 기술

차량 내부 통신은 속도와 비용, 용도에 따라 다양한 네트워크 기술을 활용한다.

Local Interconnect Network (LIN)

  • 특징: 말단의 저속 네트워크 (~20 Kbit/s)
    • Single Wire, Single Master(데이터 전송 타이밍을 중앙에서 관리)
  • 장점: 단순한 구조와 저비용
  • 용도: 창문 제어, 조명 제어 등 자동차 움직임과 상관없는 비핵심 장치

Controller Area Network (CAN)

  • 특징: 멀티마스터 기반 고속 네트워크 (~1 Mbit/s)
    • Master: Gateway
    • CAN에 적용된 Dual Wires는 무게에 영향을 준다
  • 장점: 안정적인 실시간 성능과 외부 노이즈에 강한 내성
    • 데이터 전달에 시간이 얼마나 소요되는지 계산이 가능하다.
    • 하나의 Node는 반드시 전송한다.
  • 용도: 차량 제어 시스템의 표준 네트워크

FlexRay

  • 특징: CAN보다 고속 (~10 Mbit/s)
    • 2006년 BMW X5에 처음 사용되고 2008년 BMW 7 시리즈에 본격 사용
    • 전세계적으로 활발하게 사용되지 않고 Automotive Ethernet으로 대체되는 추세
      • Automotive Ethernet은 자동차에 최적은 아니지만 속도가 100Mbit/s에 이른다.
  • 용도: 고속 제어 응용 (섀시 제어, 에어백 시스템 등)

Media Oriented Systems Transport (MOST)

  • 특징: 멀티미디어 데이터 (infortainment) 전송 전용 네트워크
    • Automotive Ethernet으로 대체되는 추세
  • 용도: 차량의 오디오 및 비디오 데이터 전송

Automotive Ethernet

  • 특징: 고속 네트워크 (~100 Mbit/s)
    • 기존 이더넷을 차량용으로 개선한 것으로, 2 twisted pairs(와이어 4개)에서 Single twisted pair(와이어 2개)로 변형되어 무게가 절감되었다.
  • 장점: 기속 Ethernet 기술의 차량 적용 버전으로, 대용량 데이터를 처리할 수 있다.
  • 단점: 대역폭은 크지만 노이즈에 취약하고 예측 가능성이 낮다.
    • 모든 Node가 데이터 전송에 실패할 수 있다.

CAN vs Ethernet

CANEthernet
Topic-basedAddress-based
Node에 주소가 없다.각 Node는 MAC Address를 갖는다.
각 Message는 식별자(topic)를 갖는다.Packet은 목적지 주소를 가지고 있다.
모든 Message는 모든 Node에 전달된다.Packet은 목적한 Node에 전달된다.
Deterministic Message ArbitrationNon-deterministic random backoff

CAN의 작동 원리와 구조

CAN의 기본 개념

  • 1980년대 BOSCH에서 개발한 serial 통신 기술
    • 한 시점에 한 bit만 전송 가능한 직렬 통신
  • 멀티마스터 & 멀티캐스팅(모든 노드 간 통신)
  • 와이어 길이에 따라 최대 1 Mbit/s 대역폭
    • 1초에 1M개의 bit를 구분하는 민감성(bandwidth)를 가져야 한다.
    • 100m, 500kbit/s bus가 가장 많이 사용된다.
  • 외부 EMI 노이즈에 강하다.
  • 실시간 성능(예측 가능성)이 좋다.
  • 노드에는 주소가 없고 메시지에 ID(topic)가 있다.
  • Pub/Sub 통신 구조를 지원한다.
    • CAN 이전에는 중앙 관리 없는 Point-to-Point 통신으로, Bus Arbitration이 필요 없었다.
    • CAN은 Bus 기반 통신으로, 중앙 관리가 있고 Bus Arbitration이 필요하다.

CAN 메시지 포맷

  • CAN Node Configuration
    • CAN Node: CAN 통신을 수행하는 단위
    • Microcontroller (MCU): 시스템의 중심으로, 데이터를 처리하고 CAN 통신을 관리한다.
    • CAN Controller: 데이터를 CAN 통신 형식에 맞게 송신하거나 수신한다.
      • MCU가 CAN 통신을 이해하도록 돕는 중간 관리자
    • CAN Transceiver
      • TX(송신): CAN Controller에서 나온 데이터를 물리적인 CAN 신호(CANH 1, CANL 0)로 변환
      • RX(수신): 물리적인 CAN 신호를 다시 데이터로 변환하여 CAN Controller에 전달
      • CAN Controller와 실제 물리적인 네트워크 사이의 실시간 통역사
      • CAN Controller에서 데이터가 나오면 CAN Transceiver가 이를 변환하여 CAN H와 CAN L을 통해 내보낸다. 이때 수신 측에서는 CAN Transceiver가 CAN H와 CAN L의 신호를 다시 디지털 데이터로 변환한다.
  • CAN Wiring
    • CAN H와 CAN L은 항상 쌍으로 동작하기 때문에 데이터의 안정성이 향상된다.
      • 동일한 데이터가 두 선에 반대로 전달된다.
    • CAN H와 CAN L은 Differential Signaling을 사용한다.
      • 입력된 값이 튀면 H와 L 모두 영향을 받으므로 difference는 유지된다.
      • 두 voltage의 차이가 없으면 0, 전압 차이가 있으면 1
  • CAN Message Format
    • 메시지 ID (Arbitration Field): 우선순위를 결정하는 11 Bits
    • Data: 최대 8 Bytes
    • Signal: 메시지에 포함된 하나의 값으로 factor와 offset고려가 필요하다.
  • CAN Bus Arbitration
    • 메시지 충돌 시 ID 우선순위에 따라 전송한다.
    • ID를 나타내는 11 bits에 1을 보냈는데 다른 노드에서 0이 실리면 해당 노드는 전송을 포기한다.
      • Node가 전송을 몇번 실패할 것인지 수학적으로 계산 가능하다.
    • 11 bits 모두 0이면 무조건 전송을 성공한다.
      • 작은 메시지 ID이면 높은 우선순위를 가진다.

CAN Standards

  • CAN 2.0A: 현재 사용하는 포맷
    • 11-bit ID로, 전송 가능한 메시지 종류는 2048개
  • CAN 2.0B
    • 29-bit ID로 전송 가능한 메시지 종류가 매우 많다.
    • 트럭이나 버스에서 사용한다.
  • CAN FD 1.0
    • 메시지 당 64 Bytes의 데이터를 지원한다. (현재의 8배)
    • 스펙상 8 Mbit/s를 지원하지만 안정되지 않아 실제 2~5 Mbit/s의 성능을 가진다.

CAN Message & Signal Example

  • Steering torque 시그널
    • Name: CF_Mdps_StrTq
    • Length: 12 Bits
      • 4096개의 정수 표현 가능
    • Byte Order: Intel(Little Endian)
    • Factor: 0.01
      • 입력값×Factor=040.95\text{입력값}\times\text{Factor}=0\sim40.95
    • Offset: -20.48
      • 입력값×Factor+Offset=20.4820.47\text{입력값}\times\text{Factor}+\text{Offset}=-20.48\sim20.47

Vector

Vector

  • CAN 설계 및 분석을 전문으로 하는 솔루션 기업
  • IVN 구현과 개발 과정에서 널리 사용되는 표준 도구를 제공한다.
    • CANoe(시스템 설계 및 시뮬레이션), CANalyzer(네트워크 분석), CANape(ECU 소프트웨어 개발 및 테스트) 등
    • ECU에 설치하는 용도가 아닌 테스트, 분석을 위한 tools

CANdb

  • Vector에서 개발한 CAN 메시지 구조 정의 파일 포맷
    • 메시지를 정리한 문서
  • OEM별로 고유한 CANDB를 정의해서 사용한다.
    • 노출되면 해킹에 취약하기 때문에 극비이나 역공학으로 많이 노출된다.
  • CANdb++는 CANdb 파일 편집을 위한 소프트웨어로, CANdb를 시각화하는 데 쓰인다.
    • 68 bits의 신호 표시

CAN Access Programming Language (CAPL)

  • CAN 프로그래밍을 위한 이벤트 기반 프로그래밍 언어
  • C 언어와 유사하지만 사용하기 쉽다.
  • ECU 테스트 코드 작성에 사용된다.
    • 양산 코드는 C언어이다.
  • Vector Tools에서 지원한다.
profile
Hi, there 👋

0개의 댓글

관련 채용 정보