공부 내용/직무 공부

CAN 통신 기초 정리 (OSI 계층, 전압 신호, 메시지 구조)

Panda72 2025. 11. 2. 07:32

Introduction

 

표준화된 ISO-OSI 참조 모델은 통신 프로토콜을 설계하고 설명하기 위한 좋은 기반이 된다.
상위 프로토콜의 복잡한 기능은 개별 서비스로 분리되어 각 계층에 배치되며,
이를 통해 관리가 용이하고 계층 간 교체나 수정이 비교적 쉽게 이루어질 수 있다.

 

 

CAN 표준 및 구현 

11898-1: CAN Protocol (CAN 및 CAN FD)

11898-2: 고속 물리 계층(CAN의 경우 최대 1Mbit/s, CAN FD의 경우 더 높다.)

11898-3: 저속 물리 계층(최대 125kbit/s) 

 

LLC(Logical Link Control): 전송 보안을 보장하는 기능 포함

MAC(Medium Access Control): 버스 엑세스를 설정하는 기능 포함

PCS(Pysical Coding Sublayer): 비트 인콛딩, 비트 디코딩, 비트 타이밍, 비트 동기화

PMA(Pysical Medium Attachment): 트랜시버 특성

MDI(Medium Dependent Interface): 전송 매체, 커넥터

참고 사항

CAN Protocol에선 1,2 계층 (Pysical Layer, Data Link Layer)만을 다룸.

CAN 2.0

A - 표준 포맷 ID (24bit) (0~2047)

B - 확장 포맥 ID (24bit↑) (0~약 5억)

 

Pysical Layer

 

MicroController

ECU의 애플리케이션 소프트웨어 실행

메시지를 전송해야 할 때마다 CAN 컨트롤러에 메시지 표시, 해당 데이터 제공

 

CAN-Controller

메시지 데이터를 완전한 CAN 메시지로 변환하고,

버스 액세스 제어, 메시지를 순차적인 비트 스트림으로
CAN-Transceiver에 전달

 

CAN-Transceiver

비트 스트림을 버스 와이어의 값별 전압 레벨 시퀀스로 변환

트랜시버에 의해 인가되는 전압 레벨은 초당 최대 백만 번까지 변경 가능,

따라서 반사파를 주의해야 하며, CAN 버스의 양쪽 긑에 120Ω 저항을 사용

 

Translation of bits to voltage Levels(TX)

전송할 메시지는 일련의 논리 비트로 구성되며,
이러한 비트들은 직렬 비트 스트림 형태로 전송된다.

 

이를 위해 OSI 모델의 2계층(데이터 링크 계층)에서 생성된 비트들은
OSI 모델의 1계층(물리 계층)에서 실제 전기적 신호로 표현된다.

 

CAN에서는 두 가지 비트 값, 즉 0(dominant)1(recessive) 으로 데이터를 구분한다.

또한, CAN의 심볼 속도(Baud Rate)비트 전송률(Bit Rate) 과 1:1로 대응하며,
비트 지속 시간(Bit Time) 은 다음과 같이 정의된다.

 

Interprtation of Differential-Voltages to Bits (RX)

수신 ECU는 두 CAN 버스 라인(CAN_H, CAN_L) 간의 

전압 차이를 측정해 비트를 해석한다.

 

비트가 시작되면 수신기는 측정된 전압 차이에 따라

비트가 1인지 0인지 결정한다.

 

전압 차이는 정의된 두 전압 범위 중 하나에 있어야 한다.

1. -1~0.5V는 비트 값이 1이다.

2. 0.9~5V는 비트 값이 0이다.

이 범위를 벗어나면 오류로 해석한다.

 

또한 수신 과정은 전송에 비해 항상 시간 지연이 발생하며,

수신 ECU가 송신 ECU에서 멀어질수록 이 지연이 커진다.

 

CAN Message

 

Frame 구성: Header,Data,Tail

비트열 & 비트 스트림 (위 그림의 DATA 참조)

Voltage (위 그림의 DATA 아래 참조)

 

CAN 통신 흔한 에러

1. 회로 차단

2. Ubat(배터리 전압) 단락

3. GND 단락

4. CAN_H, CAN_L 간 단락

5. 종단 저항 누락