CAN   Controller Area Network  

(2022-08-24)

1. CAN (Controller Area Network)자동차네트워크 구현을, 안정성,실시간성을 갖춘 시리얼 버스 방식으로 표준화한 것
     - 자동차 이외에 항공우주,선박,의료,공장자동화 산업 등에도 활용
        . 산업화된 필드 버스들 중에서 학계와 산업계 모두 광범위한 지지기반 획득


2. CAN 역사, 표준화

  ㅇ 역사
     - 1985년 벤츠社 요구에 의해 자동차 부품업체 Bosch社에서 차량용 네트워크로 최초 개발
        . 높은 무결성시리얼 버스 시스템으로서, 차량용 네트워크산업 표준으로 부상
     - 1993년에는 ISO에서 국제 표준 규격 (ISO 11898)으로 제정
     - 1994년부터 CANopen, DeviceNet 등 CAN 관련 여러 상위 레벨 프로토콜표준화

  ㅇ 주요 버전
     - v1.0 : 1986년경 초기버전, 125 kbps급
     - v2.0A : 1991년경, 1 Mbps급 (standard format)
     - v2.0B, v3.0 : 헤더메세지 식별자를 기존 11 비트에서 29 비트로 확장 (extended format)

  ㅇ 표준화 규격 
     - ISO 11519 : 최고 속도 125 kbps용 규격
     - ISO 11898 : 최고 속도 1 Mbps용 규격
        . ISO 11898-1 : 데이터링크계층물리신호 정의 (CAN 프로토콜 속성 및 운영 등)
           .. 특히, 프레임 포멧 차이점으로써,
           .. 표준 CAN 2.0A : 11 비트 식별자 기반으로 노드 구별
           .. 확장 CAN 2.0B : 29 비트 식별자 기반으로 노드 구별
        . ISO 11898-2 : 고속 매체 접근 (high speed)
        . ISO 11898-3 : 저속 고장 허용미디어 기반 인터페이스 (low speed)
        . ISO 11898-4 : 시간 기반 CAN
     - ISO 11895   : 고속 CAN과 저전력 어플리케이션


3. CAN 기술적 특징전송률  : 최대 1 Mbps
     - 저속 모드 (~ 1 ㎞) : 10 ~ 125 kHz (ISO 11519)
     - 고속 모드 (40 m 이내) : 125 kbps ~ 1 Mbps (ISO 11898-2)

  ㅇ 전기적 잡음 환경에 대한 강한 면역성
     - 하드웨어적 처리
        . 통신 프로토콜(프레임), 에러 처리를 하드웨어적으로 처리
     - 차동 신호 직렬 버스 사용
        . 2개의 꼬임 쌍선에 의한 차동 신호 직렬 버스 사용으로, 
        . 전자파,잡음에 대해 강한 내성을 갖음
     - 오류검출오류정정 부호화/복호화 기능 활용

  ㅇ 다중 마스터 다중 슬레이브 통신방식 (Multi Master Multi Slave Communication)
     - 버스 통제를 위한 감독자 노드(Bus Master)가 필요 없음
        . 모든 노드동등 권한
     - 메세지 송신은, 매체가 비었다고 판단하면, 누구나 자발적으로 송신 함
        . 우선순위 낮은 노드 메세지전송 실패시, 자동 재 전송 기능 등을 함
     - 메세지 수신은, 모두가 수신 가능하나, 메세지 종류에 따라 선별적 수신 함
     - 하나의 CAN 버스에, 모든 노드멀티드롭 버스 형태로 공유 
        . 이에따라, 점대점성형 구조에 비해, 배선 길이가 덜 소요됨

  ㅇ 메세지 지향성 프로토콜 (Message-Oriented Protocol)
     - 노드 주소가 아닌, 메세지 식별자(ID, 11 비트 길이) 우선순위에 의거함
        . 수신 노드가 ID 기반으로 판단하며, 선별적으로 수신 또는 무시함

  ㅇ 신호충돌 대책 : CSMA/CD + AMP (메세지 식별자 우선순위)
     - (Carrier Sense Multiple Access/Collision Detection with Arbitration on Message Priority)
     - 메세지 식별자(ID) 값이 낮을수록, 우선순위가 높음
     - 두 메세지가 동시 송신시, 
        . 우선순위 높은 메세지가 먼저 전송됨
        . 낮은 우선순위 메세지는 후에 재전송됨
     - 따라서, 메세지충돌이 발생하더라도 중요 메세지는 반드시 전송됨

  ㅇ 전송 방식 : 반이중 통신
     - 한 노드가 송신하면, 나머지 다른 모든 노드들은 수신 만 함 (즉, 전이중 통신방식이 아님)
     - (single-producer multiple-consumer)

  ㅇ 전송 데이터 단위 : 8 바이트 (산업용/차량용 제어 장치에 적합)

  ㅇ 실시간 전송, 저렴한 전송매체 사용 가능, 용이한 노드 추가 가능 등


4. CAN 노드 구성프로세서 (마이크로 컨트롤러) 
     - 하부 통신계층의 지원을 받아, 액츄에이터 구동
  ㅇ CAN 컨트롤러
     - 데이터링크계층 기능 수행
  ㅇ CAN 트랜시버
     - 물리계층 전송(송신/수신) 기능 수행


5. CAN 계층 구성 (3계층)응용계층 (사용자 지정)
  ㅇ 데이터링크계층 
     - CAN 프레임 구성 및 전송 등
     - 별도의 주소 필드 없이, 그룹핑된 메세지 식별자(Message ID)에 의해, 관련 노드별 선별 수신
        . 例) 0x01 : 엔진 제어 관련, 0X02 : 파워윈도우 관련 등
        . (single-producer multiple-consumer, 1:多)
  ㅇ 물리계층 (매체는 자유롭게 선택 가능)
     - 신호 변환 기능
     - 케이블 : 2개의 차폐 쌍꼬임선 (120 옴 종단)
     - 커넥터 : 종류는 미 규정됨
        . 통상, 4가닥 핀 (CAN_H, CAN_L, CAN_GND, CAN_POWER) 정도를 사용
     - 신호 전송 방식 
        . 전송부호 : NRZ
        . 전송모드 : Differential Mode
        . 2가닥 꼬임쌍선 사용
           .. 두 가닥 중 하나는, CAN_H,+,H (2.5 ~ 3.5 V) 으로 칭함
           .. 다른 하나는, CAN_L,-,LO (2.5 ~ 1.5 V) 으로 칭함
     - 전위차로써, 비트 값이 결정됨 (Differential Mode)
        . 두 가닥 선의 전위차가, 2 V 이상이면, `(logic) 0`,`dominant` 라고 칭함
           .. 즉, CAN_H가 3.5 V 정도이고, CAN_L가 1.5 V 정도 일 때
        . 두 가닥 선의 전위차가, 0 V 이면, `(logic) 1`,`recessive` 라고 칭함
           .. 즉, CAN_H가 2.5 V 정도이고, CAN_L가 2.5 V 정도 일 때
           .. idle 상태에서, 이 값을 유지하게 됨
     - 전송 방향 : 반이중 (Half-Duplex)
        . (반이중 : 양방향 전송 가능하나 특정 시점에서는 단방향 만 가능)



"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"