CAN 통신

CAN 하드웨어 구성 및 주요 요소

임베디드 친구 2025. 2. 20. 09:25
728x90
반응형

CAN 하드웨어 구성 및 주요 요소

1. CAN 하드웨어 구성

CAN(Controller Area Network) 통신은 여러 개의 전자 제어 장치(ECU, Electronic Control Unit) 간에 신뢰성 높은 데이터를 교환할 수 있도록 설계된 네트워크입니다. CAN 네트워크는 기본적으로 다음과 같은 하드웨어 요소로 구성됩니다.

  • CAN 컨트롤러 (CAN Controller)
  • CAN 트랜시버 (CAN Transceiver)
  • CAN 버스 (CAN Bus) 및 종단 저항 (Termination Resistor)

이제 각 요소에 대해 상세히 알아보겠습니다.

2. CAN 컨트롤러와 CAN 트랜시버 개념

2.1 CAN 컨트롤러 (CAN Controller)

CAN 컨트롤러는 CAN 프로토콜을 처리하는 역할을 합니다. 데이터 프레임을 생성하고, 오류 검출 및 데이터 송수신을 담당합니다. 일반적으로 CAN 컨트롤러는 마이크로컨트롤러(MCU)에 내장되어 있거나 별도의 IC(집적 회로)로 제공됩니다.

CAN 컨트롤러는 다음과 같은 주요 기능을 수행합니다.

  • CAN 프레임 생성 및 수신: 송신 데이터를 CAN 메시지 형식으로 변환하고, 수신된 CAN 메시지를 해석합니다.
  • 비트 타이밍 및 동기화: 네트워크 상에서 여러 노드가 정확한 비트 타이밍을 유지하도록 합니다.
  • 에러 검출 및 처리: CRC(Cyclic Redundancy Check)를 이용하여 데이터 무결성을 검증하고, 오류 발생 시 재전송을 관리합니다.
  • 필터링 및 마스킹: 특정 ID의 메시지만 수신하도록 필터링할 수 있습니다.

2.2 CAN 트랜시버 (CAN Transceiver)

CAN 트랜시버는 CAN 컨트롤러와 실제 CAN 버스 간의 인터페이스를 제공합니다. CAN 컨트롤러에서 나온 디지털 신호를 CAN 버스에서 사용할 수 있는 신호로 변환하고, 반대로 CAN 버스에서 수신한 신호를 CAN 컨트롤러가 이해할 수 있는 디지털 신호로 변환하는 역할을 합니다.

CAN 트랜시버의 주요 기능은 다음과 같습니다.

  • 전압 변환 및 신호 변환: CAN 컨트롤러의 로직 레벨 신호(예: 3.3V 또는 5V)를 CAN 버스에서 사용하는 차동 신호로 변환합니다.
  • 버스 충돌 감지 및 오류 처리: 여러 노드가 동시에 통신할 경우 충돌을 감지하고, 오류가 발생하면 이를 CAN 컨트롤러에 알립니다.
  • 전기적 격리 (Galvanic Isolation, 옵션 사항): 일부 CAN 트랜시버는 노이즈나 서지 전압으로부터 보호하기 위해 전기적 격리를 제공합니다.

대표적인 CAN 트랜시버로는 MCP2551, TJA1050, SN65HVD230 등이 있습니다.

3. 대표적인 CAN 컨트롤러

3.1 MCP2515

MCP2515는 SPI(Serial Peripheral Interface)를 통해 마이크로컨트롤러와 통신하는 독립적인 CAN 컨트롤러 IC입니다. 내장된 CAN 프로토콜 엔진을 통해 다양한 CAN 메시지를 송수신할 수 있으며, CAN 트랜시버와 함께 사용해야 합니다.

MCP2515의 주요 특징:

  • SPI 인터페이스 지원: SPI 통신을 사용하여 MCU와 연결됨.
  • CAN 2.0A 및 2.0B 프로토콜 지원: 표준 및 확장 메시지 지원.
  • 메시지 필터링 기능: 불필요한 메시지를 필터링하여 CPU 부하를 줄임.
  • 3개의 송신 버퍼 및 2개의 수신 버퍼 제공: 데이터 전송 및 수신을 효율적으로 처리.

3.2 내장형 CAN 컨트롤러 (STM32 등)

일부 마이크로컨트롤러는 내부에 CAN 컨트롤러를 포함하고 있습니다. 예를 들어, STM32F103 시리즈와 같은 MCU는 CAN 컨트롤러를 내장하고 있어 외부 CAN 컨트롤러 IC 없이도 CAN 네트워크를 구현할 수 있습니다.

내장형 CAN 컨트롤러의 장점은 다음과 같습니다.

  • 추가적인 CAN 컨트롤러 IC가 필요 없음
  • SPI 인터페이스 없이도 직접 CAN 트랜시버와 연결 가능
  • 소형 및 저전력 설계가 가능함

4. CAN Bus 물리적 특성

4.1 비트 전송률 (Baud Rate)

CAN 통신의 비트 전송률은 네트워크의 성능과 버스 길이에 영향을 미치는 중요한 요소입니다. 일반적인 CAN 비트 전송률은 다음과 같습니다.

비트 전송률 (kbps) 최대 버스 길이 (m)
1000 40
500 100
250 250
125 500
50 1000

전송률이 높을수록 데이터 전송 속도는 빨라지지만, 신호 감쇠로 인해 버스의 최대 길이는 짧아집니다.

4.2 CAN Bus 길이 및 배선

CAN 네트워크의 버스 길이는 전송 속도와 관련이 있으며, 물리적 배선 방식도 중요합니다. 일반적으로 차폐된 트위스트 페어 케이블 (Shielded Twisted Pair, STP) 이나 비차폐 트위스트 페어 케이블 (Unshielded Twisted Pair, UTP) 이 사용됩니다.

배선에서 중요한 점은 다음과 같습니다.

  • 트위스트 페어 케이블을 사용하여 전자기 간섭(EMI)을 줄임
  • CAN_H (CAN High)와 CAN_L (CAN Low) 간의 균형 유지
  • 배선 길이에 따라 적절한 종단 저항을 사용

4.3 종단 저항 (Termination Resistor)

CAN 버스는 차동 신호를 사용하기 때문에, 신호 반사를 방지하기 위해 각 끝단에 종단 저항을 연결해야 합니다. 일반적으로 120Ω의 저항을 CAN_H와 CAN_L 사이에 연결합니다.

종단 저항이 필요한 이유는 다음과 같습니다.

  • 신호 반사를 줄여 데이터 무결성을 보장
  • 전송선의 임피던스를 일치시켜 안정적인 통신 유지
  • 노드 간의 신호 레벨을 유지

만약 종단 저항이 없거나 잘못된 값이 사용되면, 신호 반사가 발생하여 데이터 오류가 증가할 수 있습니다.

5. 결론

CAN 통신을 구현하기 위해서는 CAN 컨트롤러, CAN 트랜시버, 그리고 적절한 CAN Bus 배선이 필요합니다. 특히, MCP2515와 같은 외부 CAN 컨트롤러를 사용하거나, 내장형 CAN 컨트롤러가 있는 MCU를 활용하는 방식이 있습니다. 또한, CAN Bus의 물리적 특성을 고려하여 적절한 전송 속도와 배선 방식을 선택하는 것이 중요합니다.

반응형