CAN Interface (CanIf)AUTOSAR Communication StackCAN 하드웨어 추상화 모듈. 상위의 PduR·COM이 요구하는 데이터·제어 흐름을 CAN 하드웨어 독립적인 균일 인터페이스로 제공한다. Controller·Transceiver·on-chip/on-board 구성 차이를 숨기며, PDU id와 하드웨어 객체 핸들(HOH) 사이의 매핑을 담당한다.

기능

  • CAN Driver 서비스의 상위 통신 계층용 표현 — PduR에는 CanIf만 보이고 Can은 보이지 않음
  • CAN 하드웨어 독립 작업 수행 — 모든 μC·CAN controller 종류·Transceiver 종류에 대해 공통 처리
  • 다양한 CAN HW 장치 종류(Controller·Transceiver, on-chip·on-board)에 대한 단일 인터페이스 제공

주요 데이터·제어 흐름

  • Transmit request processing — 상위 PDU의 송신 요청을 Can driver로 변환
  • Transmit confirmation — 송신 완료 통지를 상위로 전달
  • Receive indication — 수신 PDU를 상위로 전달
  • Error notification — 에러 상태를 상위로 통지
  • Start/Stop of a CAN controller
  • Waking up / participating on a network — CanTrcv 통한 모드 전환 포함
  • Bus-off 발생 시 CanSM으로 전달

PDU id ↔ HW Object Handle 매핑

CanIf의 핵심 추상화는 PDU identifier를 Hardware Object Handle(HOH)로 변환하는 것이다.

용어

약어원어의미
HOHHardware Object HandleHW mailbox에 대한 참조 핸들 (HRH/HTH의 공통 상위 개념)
HRHHardware Receive Handle수신 mailbox를 가리키는 HOH
HTHHardware Transmit Handle송신 mailbox를 가리키는 HOH

Hardware Object (Mailbox)

  • CAN controller 내부에 존재하는 메모리 버퍼
  • Configuration에 따라 송신·수신 메시지 버퍼로 사용
  • Mailbox = CAN RAM 구조, PDU buffer 구조체로 CanID / DLC / Data를 보유

Hardware Object Handle

  • Hardware 추상화 개념
  • CanIf는 상위에서 받은 PDU를 HOH로 변환한 뒤 CAN Driver interface를 호출
  • Outlet range = 전달될 RX L-PDU의 범위

Basic CAN vs Full CAN

CAN Controller HW 설계의 두 종류. CanIf는 양쪽을 모두 지원한다.

항목Basic CAN ControllerFull CAN Controller
메시지 필터링CPU가 처리 — 모든 수신·ACK·파싱에 대해 인터럽트 발생HW에서 필터링·파싱 수행
메시지 저장단일 또는 소수 RX 버퍼여러 mailbox가 특정 메시지 정보(ID 등)를 저장
CPU 부하높음 — 매 메시지마다 인터럽트·판별 필요낮음 — 일치하는 mailbox에만 통지
CanIf 매핑소수의 HOH가 다수 PDU를 핸들각 mailbox가 고정 PDU와 1:1로 매핑되기 쉬움

Tx / Rx 경로

PDU 방향별 흐름:

[Tx]  PduR → CanIf_Transmit(PDU) → HTH 조회 → Can_Write(HOH, data)
[Rx]  Can RX IRQ → Can_IReceiveHandler → CanIf_RxIndication(HRH, PDU) → PduR

Bus-off 같은 에러는 CAN Driver가 감지해 CanIf를 거쳐 CanSM으로 전달된다.

위치 요약

  • 상위 경계: PduR, 상태 측은 CanSM
  • 하위 경계: Can, CanTrcv
  • OSI L2 (Data Link, ECU 측) 매핑

같이 보기