CAN 통신

SPARK·2023년 9월 12일
0

hmobilityclass

목록 보기
29/67

도입 배경

(기존 산업용 통신) UART와 같은 1:1 통신은 여러 대의 제어기 간 정보 공유와 전송 속도, 실시간성을 맞추기 어려움

(차량용 CAN 통신) 제어기 간 안정적인 정보 교환 가능
차량용 맞춤 통신으로 비용, 무게, 안정성, 통신 속도 및 거리, 실시간성이 고려되어 개발됨


개발 역사

83' BOSCH 주축 개발 시작
92' CAN 통신 적용 차량 출시
98' TT CAN(Time-Triggered) 개발 - 제어 성능 및 실시간성 향상
06' Low-speed CAN 개발 - 통신선 하나가 끊어져도 낮은 속도에서 안정적 통신 가능
16' CAN-FD 개발 - 기존 대비 통신 속도 향상


CAN 통신 개념

CAN High, Can Low를 이용해 각각의 통신선을 제어기가 공유하는 형태

  1. Multi-master
    네트워크로 구성된 제어기는 원하는 시점에 정보 송,수신 가능
    각 제어기가 통신선을 관리하는 주인 역할을 함

  2. Twisted pair(2-wire)
    두 개의 통신선으로 네트워크 구성 -> 기존의 통신(이더넷 등)보다 단순한 선로 구성 가능

  3. Bus Topology
    제어기의 추가, 제거 용이해 설계자 입장에서 사용 용이함

다른 부품사에서 제조된 제어기들의 네트워크 구성이 CAN 통신으로 가능함


국제 표준 정의

ISO 국제표준단체에서 ISO 11898 의 spec으로 CAN 정의

  • Physical Layer : 통신 신호를 어떻게 만들 것인가?
  • Data link Layer : 통신과 메시지의 모양을 어떻게 구성할 것인가?

CAN 통신 물리 계층

통신이 어떤 신호를 통해 전달되는지에 관한 물리 계층의 spec

  • 네트워크의 구성
  • 통신선의 길이
  • 메인 선에서 제어기까지의 거리

두 가닥의 통신선 이용
최대 1Mbit/s 최저 10kbit/s 통신 속도 조절 가능

1000kbit/s 의 경우 최대 40m까지 통신선 길이 제한됨
-> 일반적인 차량 내 30~40m 통신선 필요
-> 130m까지 구성 가능한 500kbps 속도로 보통 구성

통신선로 양 끝단에 종단 저항 -> 반사파 현상 제거를 위함


CAN 통신 Topology

Star, Ring, Bus Topology 모두 사용가능함
차량 내에서는 Bus Topology 사용해 여러 개의 네트워크 구성

  • Powertrain
  • Chassis
  • Body
  • Information
  • 중간에 Gateway가 각 네트워크 공유

CAN 통신 물리 계층 동작 원리

Differential signal

두 통신선의 전압 차이로 0 또는 1 판별

  • 0 의 신호 : Dominant
  • 1 의 신호 : Recessive
    두 신호가 충돌 시 0의 신호가 이김

외부의 진동, 전자기파에 의한 신호의 왜곡 발생 가능
-> 신호의 왜곡은 두 통신선에 모두 작용하기 때문에 전압 차이는 유지됨
-> 1 또는 0 판별에 문제 없음
= 매우 안전한 통신 방식


transceiver

각 High/Low 신호는 Transceiver를 통해 구현됨

TTL 레벨 신호 -> CAN Differential 신호 생성

Transmitter(발신기) -- Message(정보) --> Receiver(수신기)


데이터링크 구조

Data Frame : 정보를 담고 있는 그릇

  • SOF (Start of Frame): single dominant bit
    프레임 포맷 정의

  • Arbitration Field :
    11 bit identifier
    1 bit RTR(Remote Transmission Request) Dominat for data frames, recessive for remote frames
    메시지의 인덱스 넘버 지정
    ex) ID0 엔진, ID1 브레이크, IC2 내비게이션

  • CRC (Cyclic Redundancy Check) :
    15 bit CRC with generator polynomial X^15+X^14+X^10+X^8+X^7+X^4+X^3+1
    1 bit CRC delimiter : single (always) recessive bit
    수신 확인으로 데이터 안정성 보장

  • ACK (Acknowledgement)
    1 bit ACK slot : dominant overwriting
    1 bit ACK delimiter : single (always) recessive bit
    정확한 데이터 수신 시 발신자에게 전달
    부가 정보 이용 -> 안정적인 데이터 전달

  • End of Frame : 7 recessive bits


Arbitration(중재) Field

버스에 연결된 여러 개의 제어기가 동시에 메세지를 보내려고 할 때 Message ID 정보로 메세지 전송 순서를 정함

Message ID 정보
숫자로 표현될 수 있는 정보
순차적인 메세지 전소잉 필요함 -> 메세지 간 우선 순위 경쟁에 활용
번호가 낮을수록 우선 순위가 높음

메세지 1번이 전송이 완료된 후 메세지 2번을 전송할 수 있음


Sampling Point

  1. Bit rate (통신 속도)
    차량 내 500Kbps 속도 이용

  2. Bit Time
    1 bit의 시간 길이
    500Kbps의 경우 1 bit time = 1/500,000s = 2us

  3. Sample Point
    1 bit의 Bit time 중 0/1을 판단할 수 있는 지점
    1 bit time = 2us 인 경우, 2us 동안 0/1을 확인할 지점을 지정

  4. Time Quanta
    1 bit를 나누는 최소 단위
    1 time quanta = 100ns의 경우, 2us = 20개의 time quanta로 구성
    sampling 지점에 따라 다른 값 측정


CAN에서 Sample Point

1 bit의 길이는 통신 속도에 의해 결정
500Kbps 설정 -> 1 bit time = 2us = 20개의 time quanta 중 smaple point 지정 위치에 따라 다른 값 측정 가능
Phase seg 1과 Phase seg 2 사이의 지점을 sample point로 지정하여 퍼센트(%)로 표현함

1 bit 전체 중 sampling 지점에 대한 기준점 제시
보통 보다 안정적인 신호를 가지는 70%이상의 지점으로 정함


Arbitration 원리

CAN 통신 신호 = 우성 비트(Dominant bit), 열성 비트(Recessive bit)
두 신호가 충돌 시 우성 비트가 bus 신호 점유

Arbitration : 여러 제어기가 동시에 메시지를 전송하려 할 때 발생하는 현상

CAN ID의 설정에 따라 신호를 전달하는 제어기 설정
동작과정 ex)

각 Message ID는 서로 다른 값을 가짐
동일한 비트를 전송할 때는 동작하지 않음
서로 다른 비트를 전송할 때 Arbitration 동작
-> 열성비트는 우성비트에 의해 무시됨
-> 무시된 비트를 가진 제어기는 이후의 메시지 신호 전달을 중지함(Loses Aritration)
-> 제어기 2의 데이터 전송 완료. 다시 메시지 전달하지 않음


CAN-FD

CAN-Flexible Datarate
CAN 통신에서 파생된 새로운 개념
제어기 수와 데이터량 증가로 기존의 방식에 한계
기존 CAN 통신의 네트워크 체계 유지, 성능 개선 방안 모색

성능 개선 방안 모색

  1. 기존의 네트워크 체계 유지
    실시간성, Wire 체계 - 배선길이, 제어기까지의 거리
  2. 전송 가능 데이터 크기의 증가
    기존 8byte로 고정
    암호화 형태의 데이터 필요 -> 더 많은 데이터를 한 번에 전송해야 함
    긴 데이터의 순차 전송에 따른 지연 시간 차이 문제 해결 필요
    단일 신호 데이터 일괄 전송 가능
    전송 가능 데이터 크기의 증가로 메시지 개수 감소

성능 개선 내역

  1. 메시지 프레임 당 전송 데이터 수
    8byte -> 64byte
    최대 8배
  2. 통신 속도
    1Mbps(500kbit/sec) -> 2Mbit/sec
    약 4배
  3. 네트워크 구조 및 와이어링 하니스를 그대로 활용하면서 성능 향상
  4. 통신속도가 증가함과 동시네 2개의 통신 속도를 가지게 됨에 따라TDC(Transmission Delay Compensation), SS_(Secondary Sampling Point)와 같은 기능이 부가적으로 필요함

CAN-XL

Ethernet과 Classic CAN, CAN-FD 사이의 중간 단계 제어기들의 정보 처리
Tunneling(터널링) 하나의 프로토콜이 다른 프로토콜을 감싸는 캡슐화 기능을 통해 TCP/IP 형태의 데이터를 변환없이 그대로 CAN-XL 통신으로 전달할 수 있는 기능 제공

목표 성능

  1. 하위 호환성 지원
    기존의 CAN-FD 통신 지원
  2. 최대 전송 데이터 길이 증가
    CAN-FD 64byte -> CAN-XL 2048 byte
  3. 최대 전송 속도 증가
    CAN-FD 2Mbps -> CAN-XL 10Mbps

추가된 기능

  1. XL : Frame Format Switch
    CAN-XL/CAN-FD 통신용 메시지 구분
  2. ADS : Arbitration Data Switch
    Arbitration 영역/데이터 전송 영역의 통신 속도 구분
  3. DLC : Data Length Code
    최대 전송 데이터 길이 증가
  4. VCAN ID : 8bit Virtual CAN Identifier
    로직적으로 별도의 네트워크 구성
  5. PT : Payload Type
    데이터의 형태 구분(Ethernet, TCP/IP, CAN ..0

0개의 댓글