[ARDUINO] CAN 통신 모듈 MCP2515 간단 사용

 

CAN 통신 모듈 MCP2515


1. CAN 통신 이란?

CAN (Controller Area Network)은 차량 내부를 포함한 많은 장치들 간에 통신하기 위해 사용되는 통신 프로토콜입니다. 주로 자동차 및 산업 자동화 분야에서 널리 사용됩니다.

CAN 통신은 다중 마스터 및 다중 슬레이브 구조로 이루어져 있습니다. 이 구조에서는 여러 장치들이 동시에 통신 버스를 공유하며, 각 장치는 식별 가능한 고유한 주소를 가지고 있습니다.

CAN 통신의 특징은 다음과 같습니다.

1.1 신뢰성

CAN은 신뢰성이 높은 통신을 제공합니다. 에러 검출 및 재전송 기능을 내장하고 있어 통신 중 발생할 수 있는 오류를 감지하고 복구할 수 있습니다.

1.2 우선순위 기반 통신

CAN은 우선순위 기반 통신을 지원합니다. 각 메시지에는 우선순위가 할당되며, 우선순위가 높은 메시지가 우선적으로 전송됩니다. 이를 통해 중요한 메시지에 대한 신속한 응답이 가능합니다.

1.3 멀티캐스팅 및 브로드캐스팅

CAN은 멀티캐스팅과 브로드캐스팅을 지원합니다. 하나의 메시지를 여러 개의 수신 장치에 동시에 전송하거나, 모든 장치에게 메시지를 전송할 수 있습니다.

1.4 실시간 통신

CAN은 실시간 통신을 지원하여 시간적으로 정확한 데이터 전송이 가능합니다. 이는 자동차의 제어 시스템 등 실시간 반응이 필요한 응용 분야에서 중요한 요소입니다.


CAN은 자동차에서는 엔진 제어, 브레이크 시스템, 에어백, 차량 네트워크 등 다양한 시스템 간의 통신에 사용되며, 산업 자동화 분야에서는 제어 시스템과 센서들 사이의 통신에 활용됩니다.


2. MCP2515 모듈 연결

아두이노에서 MCP2515 라이브러리로 adafruit mcp2515 라이브러리를 사용하기 때문에 여기에 맞는 핀 연결을 해야 합니다.

CAN 통신이기 때문에 주는쪽과 받는쪽 2개 연결이 필요하며 따라서 아두이노 2개와 CAN 통신 모듈 2개가 필요 합니다.

아두이노 우노를 기준으로 연결하겠습니다.

MCP2515모듈 = 아두이노 우노

INT = 6번핀

SCK = 13번핀

SI = 11번핀

SO = 12번핀

CS = 10번핀

GND = GND

VCC = 5V


위와 같이 연결하고 CAN 통신 모듈 끼리 H와 L을 각각 연결해주면 됩니다.



여기에서 중요한 것이 CAN 통신의 경우 120옴의 종단 저항이 반드시 필요한데 이미 CAN 모듈에 적용되어 있습니다. 점퍼를 통해서 활성화 할 수 있는데 모듈 둘 다 종단 저항 옵션을 점퍼를 이용해서 활성화 해주세요.



3. 프로그램 테스트


우선 아두이노 IDE를 실행하고 라이브러리를 설치해야 합니다.


adafruit mcp2515 를 검색해서 관련 라이브러리까지 전부 설치해줍니다.




이후에 예제 코드를 두 개 각각 여시면 됩니다.
하나는 Receiver 예제를 열고 다른 하나는 Sender 예제를 열어서 각각의 아두이노에 넣어 줍니다.

그러면 통신이 잘 될 경우 아래와 같이 시리얼 통신 창에서 통신 되는 것을 확인할 수 있습니다.



참 쉽죠~ :)

통신 프로토콜은 아두이노 예제 코드를 참조하면 되고 좀 더 깊이 공부하고 싶은 분들은 마이크로칩스 MCP2515의 데이터시트를 보고 각각의 기능들을 확인하면 됩니다.

끝 :)





댓글 쓰기

0 댓글