반응형

O CAN 통신
 - CAN(Controller Area Network)은 차량네에서 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신
 - 각 제어기들 간의 통신을 위해 주로 사용되는 non-host 버스 방식의 메시지 기반 네트워크 프로토콜
 - 1938년 최초로 Bosch에서 개발되었고, 1986년 공식적으로 소개된 이래 현재 생산되는 대부분의 자동차에서 사용
 - 1991년 Bosch는 CAN2.0 스펙을 발표하였음
 - CAN 통신은 OBD-ll(On Board Diagnostics)라고 불리는 차량 진단용 통신 표준의 5대 프로토콜* 중 하나로 포함
  * SAE J1850 PWM : PWM 신호로 41.6kbps 속도로 동작하며 포드 사에서 만들었음
    SAE J1850 VPW : Variable Pulse Width로 10.4kbps로 동작하며 GM 차량에서 주로 사용
    ISO 9141-2 : 비동기 시리얼 통신으로 10.4kbps로 동작하며 크라이슬러, 유럽차, 아시아차들이 사용
    ISO 14230 KWP2000 : 비동기 시리얼 통신으로 10.4kbps로 동작하며 크라이슬러, 유럽차, 아시아차들이 사용
                                                                 출처
 - OBD-ll 표준은 1996년 이후로 미국에서 판매되는 모든 승용차와 소형 트럭에 필수사항으로 적용
 - 2001년 이후 판매되는 가솔린 차량에 대해 2004년 이후 판매되는 모든 디젤차량에 대해 EOBD 표준을 적용

o 역사

년도 내용
1983 Bosch社에서 차량용 네트워크 프로토콜 개발 프로젝트 착수
1986 CAN 프로토콜이 Society of Automotive Engineers (SAE)에 공식적으로 소개됨
1987 Intel社와 Philips社에 의해 첫 번째 CAN 칩이 생산됨
1991 Bosch, CAN 2.0 사양 발표
1992 Mercedes-Benz社에서 최초로 CAN 적용 차량 생산
1993 ISO 11898 (data link and high-speed physical layer) 사양 제정
1994 SAE J1939 사양 제정
1995 ISO 11898 사양 개정 (extended frame format)
2003 Data link 계층과 high-speed physical 계층 사양 분리 (ISO 11898-1 / -2)
2006 ISO 11898-3 (low-power, low-speed physical layer) 사양 제정
2007 ISO 11898-5 (low-power, high-speed physical layer) 사양 제정
2011 CAN FD 프로토콜 개발 착수
2013 ISO 11898-6 (physical layer with selective wake-up function) 사양 제정
2015 ISO 11898-1 (Classical CAN and CAN FD) 사양 발표

 

 o 배경 및 특징
  - 초기에는 자동차 안에 모듈이 많지 않아서 일대일 방식으로 ECU를 연결
  - 모듈이 많아짐에 따라 배선의 증가로 유지 보수, 무게 증가 등의 문제로 이를 해결하고자 CAN 프로토콜이 개발
  - 단일의 CAN BUS로 자동차 안의 ECU들이 서로 통신하며, 브로드캐스팅 방식으로 메시지를 전송
  - 메시지 송신시 송신측이나 수신측의 주소를 포함하지 않으며, CAN 메시지 안에 있는 ID로 대체
   * 메시지가 자신에게 필요한 메시지인지를 판단후(ID기반) 필요하면 받아들이고, 아니면 무시
   * 표준으로 ID가 어디에 쓰일지는 정해져 있으나 제조사에서 자체적으로 커스터마이징하여 사용

Identifier(ID)부분에 노드마다 유일한 식별자를 가지고 있음 / 출처 : Fescaro

  - CAN은 BUS 형태로 통신하며 각 ECU에서 메시지 송신시 충돌이 발생할 수 있음
   * CSMA/CD + AMP(Arbitraion Message Priority)방식을 사용하여 충돌을 해결할 수 있음
   * 각 ECU는 데이터 송신전 BUS가 사용중인지 파악함
   * 만약 버스가 사용 중이라면 전송하지 않고 ECU와 동시에 전송하게 될 경우 메시지 우선순위에 따라 중재(Arbitraion)

A>B>C순으로 우선순위가 설정됨 / ID가 높으면(1) 우선순위가 밀림 따라서 8번 4번에서 우선순위가 결정됨

o 규격
 - CAN 메시지에 있는 식별자(ID)의 길이에 따라 두 가지 모드로 구분(CAN 2.0A/B)
 - CAN BUS상에 있는 각 ECU들의 모드에 따라 메시지 수용이 불가할 수 있음
 - CAN 2.0A는 표준 CAN 포맷의 메시지만 송수신가능하며, 2.0B는 수신하더라도 무시
 - CAN 2.0B는 2.0A 및 2.0B 둘다 송수신 가능

출처 : Fescaro

 - ISO규격에 따라 두가지로 구분이 가능함
 - ISO 11898은 1Mbps 이상의 고속통신이 가능
 - ISO 11519는 125Kbps까지 통신이 가능함
  * 여러 ECU들을 하나의 CAN BUS로 통합하는 것이 아닌 독립적인 CAN Bus를 만들어 사용
  * Class A, B는 썬루프, 좌석 조절장치 등 0 ~ 125kbits/s의 속도사용
  * Class C, D는 파워 트레인, 엔진 관리, 인터넷 등은 1Mbit/s의 속도 사용 (중요도에 따라 다르게 활용)

자동차 CAN 통신 구조 및 구성도(예시) / 출처 : H&T차량기술법인 EDR 이론 및 실무

o 보안 특성 정리
 - 네트워크상 모든 노드들에게 브로드캐스팅되므로 스니핑 등에 대한 보안 취약점이 내재되어있음
 - 메시지 식별자에 의한 자체적인 중재 기능 제공
 - 데이터 프레임내에 메시지를 송신하는 대상을 인증할 수 있는 필드 부재하여 중간자 공격 가능성 내포


 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기