CAN(Controller Area Network)

  • Bus Topology
  • Multi-Master : 버스가 idle 상태일 때 모든 노드가 정보를 보낼 수 있는 자격을 가짐
  • Multi-Casting Protocol : 모든 노드가 같은 메세지를 수신하고, 메세지 내용에 따른 동작을 취함
    • Unicast : 일대일
    • Multi-cast : 1:M (특정 노드)
    • Broadcast : 1:N (N:모든 노드)
  • 메세지 종류에 따른 ID 할당 ➡ 우선순위를 이용한 충돌 회피
    • 높은 우선순위(ID 작음) : 작은 Latency
    • 낮은 우선순위(ID 큼) : 큰 Latency
      - 계속 delay 되어 무한루프에 빠질 가능성 有
      • CAN bus의 최대 성능의 50%만 사용하여 해결

CAN Bus Topology

장점

  • 케이블 사용 小
  • 설치 간편 ➡ 초기 LAN 구성에 용이
    - LAN (Local Area Network) : 거리가 가까운 장치들을 연결한 네트워크
  • 노드 개수 적은 소규모 네트워크 구성에 유리함

단점

  • 케이블 고장시 전체 시스템 통신 불가 가능성 有
    • airgap 발생으로 반사 심화
  • 트래픽 증가시 데이터 충돌 발생 (지연시간 Latency ⬆⬆)
  • 노드 개수 / 트래픽 증가에 따른 통신 성능 급감
  • 케이블 길이 확장에 한계
  • 케이블 길이 ⬆ 전송 속도 ⬆ ➡ 반사 영향 ⬆

CAN 통신 종류

TypeNameData Rate[bps]ID[bit]Payload[Byte]
1.0LS-CAN125k118
2.0AHS-CAN125k ~ 1M118
2.0BHS-CAN125k ~ 1M298
FD 1.0CAN FD100k ~ 5M11 / 2964
  • payload (유료부하) : 실제로 수신부에서 받는 데이터의 양

CAN Bus Cable

  • 신호 전달에 케이블 두 가닥 필요 (CAN_High, CAN_Low)
  • 120Ω\varOmega 종단 저항
  • 버스에 최대 32개의 노드 연결 가능

Twisted pair cabling

Twisted Pair Cabl (꼬임 쌍선) : 도체 두 가닥을 꼬아서 만든 케이블

두 케이블은 잡음원(noise)로부터 평균 거리 일정 ➡ 동일한 영향
수신부에서는 두 와이어의 신호 차이를 측정하여 노이즈 제거

  • UTP (Unshielded Twisted Pair) : plastic cover

  • STP (Shielded Twisted Pair) : copper shield + plastic cover

    출처 wikipedia

라인 임피던스 (Z0Z_0)

Z0=V(x)I(x)=R+jωLG+jωCZ_0 = \frac{V(x)}{I(x)} = \sqrt{\frac{R+j\omega L}{G+j\omega C}}

라인을 따라 전송되는 파형의 전압과 전류의 비율

  • 라인 길이 : ∞
  • ω=2πf\omega = 2\pi f ➡ 주파수에 따라서도 변할 수 있음
  • 결정 요소 : 라인의 기하학적 구조, 사용 물질
  • 라인의 경계에서 임피던스가 다르면 파형 반사 발생
  • 라인 임피던스와 동일한 값을 라인 종단에 추가하면 반사 제거 가능

CAN 버스의 라인 임피던스 : 120Ω\varOmega

버스 길이에 따른 데이터 전송 속도

케이블(Bus)가 길어질수록 전송 속도가 느려짐

  • 신호 감쇄 : 크기가 작아지고 노이즈 多
  • 신호 반사 : 각 노드에서 반사 발생 ➡ 기존 신호 + 반사 신호 = 신호 왜곡

반사에 의한 dispersion(분산) 현상 발생

CAN Bus 신호

전압

  • dominant <0>
    • CAN_H - CAN_L = 2V (실제로는 0.9V 이상)
  • recessive <1>
    • CAN_H - CAN_L = 0V (실제로는 0.5V 이하)

버스 로직

  • Wire-AND 구조
TxRxBus
000
01error
111
100 (다른 노드가 이김)

CAN system 구성

CAN Transceiver

  • CAN 버스 신호 처리 : 디지털 신호 레벨 ➡ CAN Bus 신호 레벨
  • Physical Layer

CAN Controller

  • 역할
    • CAN Message frame 생성
    • CAN Message 동기화
    • 오류 탐지 및 처리
    • Bit stuffing 담당
  • Datalink Layer

Microcontroller

  • 데이터 처리

0개의 댓글

Powered by GraphCDN, the GraphQL CDN