본문 바로가기

개발자 모드/통신

CAN 통신

728x90

CAN 통신은 여러 개 ECU를 병렬로 연결하여 데이터를 주고받는 통신방법입니다. CAN 버스를 통해서 통신선 상에 데이터를 띄어놓고 필요한 데이터에 접근(Access) 합니다. 그럼 이제부터 어떠한 이유로 자동차에 CAN 통신을 두루 쓰게 되었는지 그 특징과 장점을 알아보겠습니다.

다중 주인(Multi Master) 통신 방식:

CAN 버스는 다중 주인(Multi Master) 방식으로 통신하므로 통신 버스를 여러 노드(node)들이 공유하면서 언제든지 버스를 사용할 수 있습니다.

간단한 구조:

CAN_High, CAN_Low 두 개의 신호로 통신하므로 단 2개의 선이 필요로 합니다. 그러므로 많은 모듈이 추가되더라도 추가되는 선의 양이 적습니다.

잡음에 매우 강함:

CAN BUS는 Twist Pair 2선으로 되어있어 전기적 잡음(noise)에 강해 메시지를 보호할 수 있습니다.

ID 값을 이용한 우선순위:

자동차의 ECU들은 고유한 ID 값을 가지고 있습니다. ID 값은 낮을수록 우선순위가 높은데, CAN에서는 여과 과정(filtering)을 통해 설정된 ID 값을 수신해 우선순위를 결정합니다. 주소가 아닌 ID 값으로 메시지 내용과 우선순위가 결정되며 이는 시스템 제어 속도와 안전성을 향상할 수 있습니다.

특히 BUS를 이용하므로 연결선 수를 대폭 줄일 수 있으며 이는 자동차의 무게와도 직결되므로 매우 중요합니다.

고속 및 원거리 통신:

CAN 통신은 최대 1M bps에 달하는 고속 통신을 제공하며, 보통 통신 속도가 500k~ 1M bps 속도로 CAN 통신이 가능합니다. 또한, 최대 1,000m까지 원거리 통신이 가능합니다.

PLUG & PLAY 기능:

PLUG & PLAY 기능을 제공해서 CAN 제어기(controller)를 버스에 간편하게 연결하고 끊을 수가 있어서, 여러 장치를 추가하고 제거하기가 매우 쉽습니다.

SOF(Start Of Frame) 비트: 메시지의 시작을 의미하는 주요한 비트로 버스의 노드(node)를 동기화하기 위해 사용됩니다.

Identifier(ID): 식별자로서 메시지의 내용을 식별하고 메시지의 우선순위를 부여합니다. CAN 메시지에 있는 ID의 길이에 따라서 표준 CAN과 확장 CAN 두 가지 양식(mode)으로 구분됩니다. 표준 CAN은 11 비트 식별자이고, 확장 CAN은 29비트 식별자로 구분됩니다.

Control: 데이터의 길이(DLC)를 의미합니다.

Data: 전달하고자 하는 내용을 의미합니다.

CRC: 프레임의 송신 오류 및 오류 검출에 사용됩니다.

ACK 비트(Bit): 오류가 없는 메시지가 전송되었다는 것을 의미하는 비트로서, CAN 제어기는 메시지를 정확하게 수신했다면 ACK(Acknowledgement) 비트를 전송합니다. 전송 노드는 버스 상에서 ACK 비트의 유무를 확인하고 만약 ACK 비트가 발견되지 않는다면 재전송을 시도합니다.

EOF(End of Frame) 비트: 프레임의 끝을 나타내고 종료를 의미합니다.

728x90

'개발자 모드 > 통신' 카테고리의 다른 글

RS-485통신  (0) 2021.09.05
UART 통신  (0) 2021.09.05
UDP통신 소스코드 (Server / Client)  (0) 2021.09.05
1553B 통신  (0) 2021.09.05
VME 통신  (0) 2021.09.05