💡 CAN 통신이란?
차량 내에서 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격이다.
최근에는 차량뿐만 아니라 산업용 자동화기기나 의료용 장비에서도 사용된다.
CAN 통신은 각 제어기들 간의 통신을 위해 주로 사용되는 non-host 버스 방식의 메시지 기반 네트워크 프로토콜이다.
CAN 통신은 OBD-II라고 불리는 차량 진단용 통신 표준의 5대 프로토콜 중 하나로 포함되어 있다.
(OBD-II의 5대 프로토콜 : SAE J1850 PWM, SAE J1850 VPW, ISO 9141-2, ISO 14230 KWP2000, ISO 15765 CAN)
💡 역사
💡 CAN 통신 특징 및 장점
CAN 통신은 여러 개의 ECU(electronic control units)를 병렬로 연결하여 데이터를 주고받는 통신 방법이다.
ECU가 데이터 전송 준비가 되면, CAN 버스의 준비 여부를 확인하고 그 후 CAN 프레임을 네트워크에 작성한다.
CAN 프레임은 전송 노드나 수신 노드 중 어느 쪽의 주소도 포함하고 있지 않는다.
그렇다면 전송된 데이터는 어디로 가며, 누가 수신을 하게 되는 걸까?
네트워크 상의 모든 디바이스는 전송되는 모든 메시지를 확인한다.
ECU는 받은 메시지가 자신과 관련된 것인지 판단한다. (broadcast address at 11 bits format : 7DFh)
ECU가 데이터를 확인 후 자신이 ID값이면 데이터를 송신 또는 수신한다.
CAN 통신 방법에는 두 가지가 있다.
1) Broadcast 방법
2) Peer to Peer 방법
CAN 통신의 장점은 무엇일까?
- 다중 주인(Multi Master) 통신 방식
- 간단한 구조
- 잡음에 매우 강함
- ID값을 이용한 우선순위
- 고속 및 원거리 통신
- PLUG & PLAY 기능
💡 프레임
CANH, CANL 신호는 차동 방식이므로 dominant 상태에서는 CANH-CANL 전압차가 0.9V 이상 발생한다.
따라서 그림과 CANL 신호가 dominant 상태에서는 0V로 본다.
Recessive state는 CANH-CANL <0.5V이고 VCC/2 상태로 CANL가 중간 전압으로 뜬다.
Dominant 상태에서는 CANH 전압이 5V였다가 Recessive state에서는 CANL와 마찬가지로 VCC/2 즉 2.5V가 된다.
일반적으로 CANL의 전압을 기준으로 0V를 LOGIC 0, 2.5V를 LOGIC 1로 표시한다.
신호는 Start-of-frame에서 시작해서 End-Of-Frame으로 끝나게 된다.
💡 References
- OBD-II에 대해 알아보기 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ubicomputing&logNo=220734742697
- CAN 버스 : https://ko.wikipedia.org/wiki/CAN_%EB%B2%84%EC%8A%A4
- CAN 통신 소개 및 동작 방법 : https://m.blog.naver.com/suresofttech/220793847337
- CAN 통신 개요 : https://www.ni.com/ko-kr/innovations/white-papers/06/controller-area-network--can--overview.html
'프로젝트 > CAN_OBDII' 카테고리의 다른 글
CAN 통신 동작 원리 (0) | 2022.01.25 |
---|---|
CAN 통신 메시지 구조 (0) | 2022.01.25 |
CAN 규격에 따른 종류 (0) | 2022.01.25 |
프로젝트 관리 (0) | 2022.01.13 |
can통신을 활용한 자동차 검진 서비스 (0) | 2021.12.30 |
댓글