차량 CAN통신 (CAN Network)

CAN Network (차량용 CAN 통신)


  1. CAN 통신의 개요
    정의
    CAN (Controller Area Network)은 차량 내부의 다양한 전자 제어 장치(ECU) 간의 실시간 데이터 교환을 가능하게 하는 멀티마스터, 시리얼 통신 프로토콜입니다.
    목적
    CAN은 자동차의 엔진 제어, 변속기, 에어백 시스템 등 주요 시스템 간에 고속으로 데이터를 주고받아야 하는 상황에서 사용됩니다. 특히 안정성과 실시간 통신이 중요한 자동차 애플리케이션에서 널리 사용됩니다.
    속도
    CAN 통신의 속도는 최대 1 Mbps까지 지원하며, 이는 고속 데이터 전송이 필요한 차량 내 시스템에서 필수적입니다.
  2. CAN 버전
    CAN 2.0A
    초기 버전의 CAN 프로토콜로, 11비트의 표준 식별자(Identifier)를 사용합니다. 메시지의 우선순위가 단순하고, 기본적인 차량 시스템에 적합합니다. 주로 저속, 단순한 네트워크에서 사용됩니다.
    CAN 2.0B
    CAN 2.0A의 확장 버전으로, 29비트의 확장 식별자를 추가하여 더 많은 메시지를 처리할 수 있습니다. 확장된 식별자를 통해 더 많은 노드와 메시지를 지원하며, 복잡한 네트워크에서 유용합니다.
    CAN FD (Flexible Data-rate)
    CAN 프로토콜의 최신 확장 버전으로, 더 높은 데이터 전송 속도와 유연한 데이터 길이를 제공합니다. 데이터 필드 크기가 최대 64바이트로 확장되었으며, 전송 속도도 기존의 CAN보다 훨씬 빠릅니다. 고속 데이터 전송이 필요한 ADAS(Advanced Driver Assistance Systems) 및 자율 주행 시스템 등에서 필수적입니다.
  3. CAN 네트워크 구성
    멀티마스터 구조
    CAN 네트워크는 멀티마스터 구조를 채택하여, 네트워크에 연결된 모든 장치들이 버스를 통해 데이터를 주고받을 수 있습니다. 이 구조는 네트워크의 유연성과 확장성을 높입니다.
    노드
    각 CAN 노드는 ECU(전자 제어 장치)를 의미하며, 센서, 액추에이터, 또는 다른 제어 장치가 될 수 있습니다. 각 노드는 네트워크에서 데이터를 송신하거나 수신할 수 있습니다.
    버스 아키텍처
    CAN 통신은 버스 형태로 구성되며, 모든 노드가 동일한 두 개의 와이어(CAN_H, CAN_L)에 연결됩니다. 이를 통해 각 노드는 동일한 버스 상에서 데이터를 공유하게 됩니다.
  4. CAN 프레임 구조
    기본 프레임과 확장 프레임
    CAN 프레임에는 표준(11비트 ID)과 확장(29비트 ID) 프레임이 있으며, 각 프레임의 식별자(Identifier)는 메시지의 우선순위를 결정합니다. 표준 식별자는 기본적인 우선순위를 설정하고, 확장 식별자는 추가 정보를 통해 더 세밀한 우선순위를 제공합니다.
    프레임 필드
    Start of Frame (SOF) : 프레임의 시작을 알리는 비트입니다.
    Identifier : 메시지의 우선순위를 나타내는 필드로, 데이터의 출처를 식별합니다. 표준과 확장 식별자는 우선순위 결정 방식이 다릅니다.
    RTR (Remote Transmission Request) : 이 비트는 데이터 프레임인지 요청 프레임인지를 식별하는 데 사용됩니다. RTR이 0일 경우 데이터 프레임, 1일 경우 원격 요청 프레임으로 간주됩니다.
    Control Field : 데이터 길이와 기타 제어 정보를 포함합니다.
    Data Field : 실제 전송되는 데이터로, 최대 8바이트의 데이터를 포함할 수 있습니다.
    CRC (Cyclic Redundancy Check) : 데이터의 무결성을 확인하기 위한 오류 검출 코드입니다.
    ACK (Acknowledge) Field : 수신자가 메시지를 정상적으로 수신했는지 확인합니다.
    End of Frame (EOF) : 프레임의 끝을 알리는 비트입니다.
  5. CAN 통신의 특징
    비트 우선순위 제어
    CAN은 메시지 우선순위를 비트 단위로 제어합니다. 낮은 ID 값을 가진 메시지가 높은 우선순위를 가지며, 동시에 여러 노드가 통신을 시도할 때 충돌을 피하고 가장 중요한 메시지가 먼저 전송됩니다.
    오류 검출과 처리
    CAN은 통신 중 발생할 수 있는 다양한 오류를 검출하고 자동으로 처리하는 기능을 갖추고 있습니다. 주요 오류 검출 메커니즘으로는 CRC, 양극성 오류, 양수비트 오류 등이 있습니다.
    실시간 통신
    CAN은 실시간 데이터 전송이 가능하여, 긴급한 데이터 전송이 필요한 자동차 시스템에 적합합니다.
    노이즈 내성
    CAN은 차량 환경과 같은 노이즈가 많은 환경에서도 안정적인 통신이 가능하도록 설계되었습니다.
    비동기 통신
    CAN은 비동기 통신 방식을 사용하여, 노드 간의 정확한 동기화가 필요 없습니다. 이는 네트워크의 유연성을 높입니다.
  6. CAN 통신의 적용 사례
    파워트레인 제어
    엔진 제어 유닛(ECU)과 변속기 제어 유닛(TCU) 간의 통신에 사용됩니다.
    안전 시스템
    에어백, ABS(안티록 브레이크 시스템) 등 안전 장치 간의 실시간 데이터 교환에 사용됩니다.
    차체 제어
    조명, 창문, 도어 잠금 장치와 같은 차량의 전자 장치 간의 통신을 담당합니다.
    차량 네트워크
    CAN은 차량 내 다양한 네트워크(CAN, LIN, FlexRay 등)를 연결하는 게이트웨이 역할을 수행하여, 차량 전체의 통합 제어를 가능하게 합니다.
    산업 자동화
    자동차뿐만 아니라 산업 자동화 분야에서도 CAN이 널리 사용되고 있습니다.
  7. CAN 통신의 장단점
    장점
    높은 신뢰성 : 다양한 오류 검출 메커니즘을 통해 통신 신뢰성을 보장합니다.
    실시간 통신 : 긴급 데이터의 우선 전송이 가능하여 실시간 통신이 필요할 때 적합합니다.
    유연성 및 확장성 : 멀티마스터 구조로 인해 네트워크 확장이 용이합니다.
    노이즈 내성 : 노이즈가 많은 환경에서도 안정적으로 작동합니다.
    한계
    속도 제한 : 고속 통신이 가능하지만, 일부 매우 고속의 데이터 전송이 필요한 경우에는 한계가 있을 수 있습니다.
    복잡성 : LIN에 비해 프로토콜이 복잡하며, 구현 시 더 많은 리소스가 필요합니다.
    비용 : 복잡한 회로와 높은 통신 속도 요구로 인해 LIN보다 비용이 높을 수 있습니다.
    보안 : CAN은 보안 기능이 상대적으로 부족하며, 이를 보완하기 위한 연구가 진행 중입니다.
    지연 : 네트워크 부하가 높아지거나 노드 수가 많아지면 지연이 발생할 수 있습니다.