CAN 통신 소개

이채윤·2022년 9월 1일
0

임베디드

목록 보기
58/70

[CAN 통신에 대하여]

  • CAN(Controller Area Network)이란, 차량 내에서 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격
  • 차량 내 *ECU(Electronic control unit)들은 CAN 프로토콜을 사용하여 통신

<CAN 등장배경>

  • 초기에는 자동차 안에 모듈이 많지 않았기 때문에 UART방식, 즉 일대일(Point-To-Point) 방식으로 ECU를 연결
  • 하지만 이런 방식이라면 서로 다른 모듈간 통신을 위해서는 많은 선(line)이 필요한 것이 문제
  • 이러한 문제를 해결한 것이 바로 CAN

  • 오른쪽 CAN 통신 방식의 사진을 보면, 하나의 CAN BUS 네트워크에 여러 ECU 들이 연결되어 있음

<CAN BUS 네트워크 동작원리>

  • CAN은 다중통신망(Multi Master Network)이며 CSMA/CD+AMP(Carrier Sense Multiple Access/Collision Detection with Arbitration on Message Priority) 방식을 이용

    • 다중통신망
      • 하나의 통신 케이블 회선이나 무선채널을 통해 다수의 독립된 통신을 혼선되지 않게 기술적으로 전송하는 통신
    • CSMA/CD
      • CS (Carrier Sense) : 버스 상태가 idle 상태 일 때 전송
        • idle : 프로세스가 실행하고 있지 않은 상태
      • MA (Multiple Access) : 다중 노드들이 동일한 네트워크에 연결되는 것이 가능
      • LAN (근거리 통신 망)의 통신 프로토콜 종류중 하나
    • AMP (Arbitration on Message Priority)
      • 메시지 우선순위에 의한 버스 액세스
  • 먼저 CAN 노드에 메시지를 보내기 전에 CAN 버스라인이 사용 중인지를 파악 (또한 메시지 간 충돌 검출을 수행)

  • 메시지의 처음부분에 CAN 네트워크상에서 각각의 노드를 식별할 수 있도록 각 노드마다 유일한 식별자(ID-11bits 또는 29bits) 를 가지고 있음

  • 네트워크상에 연결된 모든 노드는 네트워크상에 있는 메시지를 수신한 후 자신이 필요로 하는 식별자의 메시지인 경우에만 받아들이고, 그렇지 않은 경우의 메시지는 무시

    • 네트워크상(CAN 통신 라인)에 흘러 다니는 여러 노드의 데이터들이 동시에 사용자가 필요로 하는 노드로 유입되는 경우에는 식별자의 숫자를 비교하여 먼저 받아들일 메시지의 우선순위를 정하는데, 식별자의 숫자가 낮을수록 우선순위가 높음
    • 각 CAN 메시지는 11비트의 식별자(CAN 2.0A), 또는 29비트의 식별자(CAN 2.0B)를 가지며, CAN 메시지의 맨 처음 시작부분에 위치
    • 식별자는 메시지의 형태를 식별시켜주는 역할과 메시지에 우선순위를 부여하는 역할

0개의 댓글