CAN 버스(Controller Area Network)는 차량, 산업 자동화 및 기타 분야에 사용되는 신뢰성이 높은 실시간{0}}직렬 통신 프로토콜입니다. 이를 통해 여러 마이크로컨트롤러와 장치가 호스트 컴퓨터 없이 서로 통신할 수 있습니다.

CAN 버스는 원래 1980년대 초 독일의 Bosch에서 차량 내 통신을 위해 개발되었습니다.- 1993년에 ISO는 데이터 링크 계층 프로토콜과 물리 계층 프로토콜을 모두 포함하는 CAN 버스 표준(ISO 11898)을 발표했습니다.
ISO 11898-1: 데이터 링크 계층 프로토콜을 정의합니다.
ISO 11898-2: 최대 1Mbps의 데이터 전송 속도를 지원하는 고속-CAN 버스에 대한 물리 계층 프로토콜을 정의합니다. 선형 토폴로지를 권장하며 실시간 요구 사항이 높은 애플리케이션에 적합합니다.
ISO 11898-3: 데이터 전송 속도 범위가 40Kbps~125Kbps인 저속-CAN 버스에 대한 물리 계층 프로토콜을 정의합니다. 내결함성 CAN이라고도 알려진 이 CAN은 하나의 신호 라인에 장애가 발생하더라도 지속적인 통신을 가능하게 하므로 실시간 요구 사항이 낮은 애플리케이션에 적합합니다.
CAN 버스 기능:
다중-마스터 제어:CAN 버스는 마스터-슬레이브 계층 구조 없이 네트워크에 공존하는 여러 마스터 장치를 지원합니다. 장치는 메시지 우선순위에 따라 통신합니다.
차동 신호:2개의 와이어(CAN_H 및 CAN_L)를 활용하여 차동 신호를 전송하고 전자기 간섭에 대한 저항을 강화합니다.
비-파괴적 중재:메시지 전송 중에 충돌이 발생하면 우선순위가 높은-메시지가 전송되고 우선순위가 낮은-메시지는 재전송을 기다립니다.
오류 감지 및 처리:CRC 체크섬 확인 및 비트 오류 검사를 포함한 강력한 오류 감지 및 처리 기능을 갖추고 있습니다.
유연한 토폴로지:선형, 스타, 트리 및 링 구성과 같은 다중 네트워크 토폴로지를 지원합니다.
CAN 버스에서는 논리 "0"과 "1" 사이의 상당한 전압 차이로 인해 안정적인 통신이 보장됩니다. 위의 설명을 참조하면 CAN 버스의 두 가지 논리 레벨은 다음과 같습니다.
지배적: 0
열성: 1
CAN 버스의 신호 레벨은 라인-과 특성을 나타냅니다. 이 라인-과 동작은 CAN 버스 중재를 위한 회로 기반을 형성합니다. 우성 레벨(0)은 항상 열성 레벨(1)을 마스킹합니다. 서로 다른 노드가 우성 레벨과 열성 레벨을 동시에 전송하는 경우 버스는 우성 레벨(0)을 나타냅니다. 모든 노드가 열성 레벨(1)을 전송하는 경우에만 버스는 열성 상태를 나타냅니다.
지배적인 수준:로직 0. 고속- CAN에서 CAN_H 핀은 5V로 구동되고 CAN_L 핀은 0V로 구동됩니다.
복종 수준:논리 1. 두 핀 모두 구동되지 않습니다.

고속-CAN 버스와 저속-CAN 버스는 물리 계층 신호 레벨 정의가 다릅니다.
고속- CAN은 CANH와 CANL 전압이 동일할 때(CANH=CANL=2.5V) 논리 "1"을 정의하고, CANH와 CANL 간의 전압 차이가 2V(CANH=3.5V, CANL=1.5V)일 때 논리 "0"을 정의합니다.
공통-모드 전압 범위(-12V ~ 12V) 내에서 고속 CAN 트랜시버는 CANH와 CANL 사이의 0.9V보다 큰 전압 차이를 우성 상태로 해석하고, 0.5V 미만의 차이를 열성 상태로 해석합니다. 내부 히스테리시스 회로가 간섭을 줄입니다.
저속- CAN은 CANH와 CANL의 전압 차이가 5V(CANH=0V, CANL=5V)일 때 논리 "1"을 정의하고, 전압 차이가 2.2V(CANH=3.6V, CANL=1.4V)일 때 논리 "0"을 정의합니다.
고속-CAN 신호 레벨(ISO 11898-2)
저속-CAN 신호 레벨(ISO 11898-3)
CAN 오류 처리 메커니즘:
CRC 오류:데이터의 CRC값을 계산하고 검증하여 오류를 검출합니다.
비트 오류:전송 중에 실시간으로 비트 오류를 감지합니다-.
오류 프레임:오류가 감지되면 재전송을 요청하기 위해 오류 프레임을 보냅니다.
요약
CAN 버스는 높은 신뢰성, 실시간 성능 및 유연성으로 인해 여러 분야에서 널리 채택되었습니다.{0}} 기술이 발전함에 따라 CAN 버스는 계속 발전하고 있습니다. 예를 들어 BOSCH에서 발표한 CAN FD(Flexible Data{3}}Rate) 표준은 더 높은 대역폭이 필요한 애플리케이션의 요구를 충족하기 위해 데이터 전송 속도를 더욱 향상시킵니다.




