CAN 프로토콜 기본 구조
CAN(Controller Area Network) 개요
CAN(Controller Area Network)은 차량, 산업 자동화, 의료 기기 등 다양한 임베디드 시스템에서 널리 사용되는 통신 프로토콜입니다. CAN은 중앙 집중형 마스터-슬레이브 방식이 아닌 분산형 네트워크 구조를 가지며, 다중 마이크로컨트롤러가 효율적으로 데이터를 주고받을 수 있도록 설계되었습니다.
CAN 프로토콜의 특징
- 비동기식 시리얼 통신: CAN은 데이터 전송 속도를 동기화할 필요 없이, 비동기적으로 통신이 가능합니다.
- 다중 마스터 구조: 네트워크 내에서 모든 노드는 동등한 권한을 가지며, 필요에 따라 데이터를 송수신할 수 있습니다.
- 우선순위 기반 메시지 전송: 각 메시지는 고유한 식별자(ID)를 가지며, 낮은 ID 값을 가진 메시지가 높은 우선순위를 가집니다.
- 오류 검출 및 처리 기능: CAN은 CRC(Cyclic Redundancy Check), 에러 프레임(Error Frame) 등을 통해 신뢰성 높은 통신을 보장합니다.
- 고속 및 장거리 통신 가능: 데이터 속도는 최대 1Mbps까지 지원하며, 네트워크 길이에 따라 적절한 속도를 설정할 수 있습니다.
CAN 프레임 구조
CAN 프로토콜은 여러 가지 프레임 형식을 제공합니다. 주요 프레임 구조는 다음과 같습니다.
데이터 프레임(Data Frame)
데이터 프레임은 노드 간 데이터 전송을 수행하는 기본적인 프레임입니다. 데이터 프레임의 주요 필드는 다음과 같습니다.
- 시작 비트(Start of Frame, SOF): 프레임의 시작을 나타내는 비트입니다.
- 식별자(Identifier): 메시지의 우선순위를 결정하며, 11비트(표준 CAN) 또는 29비트(확장 CAN)로 구성됩니다.
- 제어 필드(Control Field): 데이터 길이(DLC, Data Length Code)를 포함하며, 0~8 바이트의 데이터 크기를 정의합니다.
- 데이터 필드(Data Field): 실제 데이터를 포함하는 필드로 최대 8바이트까지 전송할 수 있습니다.
- CRC 필드(Cyclic Redundancy Check): 데이터의 무결성을 검증하는 필드입니다.
- ACK 필드(Acknowledgment Field): 메시지가 정상적으로 수신되었음을 확인하는 필드입니다.
- 종료 비트(End of Frame, EOF): 프레임이 끝났음을 알리는 비트입니다.
원격 프레임(Remote Frame)
원격 프레임은 특정 노드에 데이터를 요청하기 위해 사용됩니다. 데이터 프레임과 구조가 거의 동일하지만, 데이터 필드가 포함되지 않습니다.
오류 프레임(Error Frame)
CAN 네트워크에서 오류가 발생하면, 네트워크에 참여하는 모든 노드는 오류 프레임을 전송하여 오류를 알립니다. 오류 프레임은 6개의 연속된 도미넌트(Dominant) 또는 리세시브(Recessive) 비트로 구성됩니다.
과부하 프레임(Overload Frame)
네트워크의 과부하 상태를 나타내며, 추가적인 대기 시간을 제공하기 위해 사용됩니다.
CAN 통신 방식
CAN 통신은 CSMA/CD+AMP(Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority) 방식을 사용합니다. 이는 충돌 감지 및 메시지 우선순위 기반 중재(Arbitration) 방식을 통해 네트워크 내에서 충돌 없이 메시지를 전송할 수 있도록 합니다.
- 전송 준비: 메시지를 전송할 노드는 네트워크가 비어 있는지 확인합니다.
- 메시지 중재(Arbitration): 여러 노드가 동시에 데이터를 전송하려고 하면, 낮은 ID 값을 가진 메시지가 우선권을 갖습니다.
- 데이터 전송: 우선권을 가진 노드가 데이터를 성공적으로 전송합니다.
- ACK 확인: 수신 노드는 오류 없이 데이터를 수신하면 ACK를 응답합니다.
- 프레임 종료: 데이터 전송이 완료되면 EOF 비트를 전송하여 프레임을 종료합니다.
결론
CAN 프로토콜은 높은 신뢰성과 실시간 데이터 전송을 요구하는 다양한 임베디드 시스템에서 필수적으로 사용됩니다. 특히, CAN의 다중 마스터 구조와 강력한 오류 검출 기능은 자동차 산업뿐만 아니라 산업 자동화, 의료 기기 등 다양한 분야에서 활용됩니다.
'CAN > CAN Open' 카테고리의 다른 글
CANOpen의 주요 사용 사례 (0) | 2025.07.09 |
---|---|
CANOpen이란? (0) | 2025.07.08 |
CAN (Controller Area Network) 개념 및 역사 (0) | 2025.07.06 |
CANOpen 기초 (0) | 2025.07.05 |
CANOpen을 활용한 임베디드 시스템 개발 (0) | 2025.07.03 |