CAN Driver (CanDrv / Can)MCALCAN controller 전용 하드웨어 드라이버. μC 내부 CAN controller에 직접 접근하며, 상위 CanIf에는 하드웨어 독립 API를 제공한다. AUTOSAR Communication Stack의 가장 아래(버스 HW 바로 위) 계층이다.

기능

  • Hardware access — CAN controller 레지스터 조작
  • Hardware-independent API to CanIf — HOH 기반 호출만 받음
  • 송신 개시Can_Write(HOH, PDU) 형태로 mailbox에 데이터 적재
  • CAN controller 상태 제어 — 활성화·비활성화
  • CAN 인터럽트 핸들러 제공 — RX / TX / Bus-off

Notification Callback

CanIf로 통지되는 이벤트 3종:

  • PDU reception — 프레임 수신 시
  • Bus-off — fault confinement 진입 시
  • Wake-up — Sleep 상태에서 bus 활동 감지 시

각 이벤트는 CanIf 측 대응 함수로 전달되어 상위 계층으로 전파된다.

다중 Controller 제약

“Several CAN controllers can be controlled by a single CAN module as long as they belong to the same CAN hardware unit.”

  • 하나의 Can 모듈은 같은 CAN hardware unit에 속하는 여러 controller를 제어할 수 있다.
  • 서로 다른 hardware unit(예: 칩 내 독립된 CAN IP 블록)은 별도 Can 모듈 인스턴스가 필요하다.

CAN Transceiver Driver

CanTrcv — CAN Transceiver HW의 동작 상태만 제어하는 드라이버. CanDrv와 독립된 AUTOSAR 표준 모듈이지만 기능이 매우 제한적이라 본 페이지의 하위 섹션으로 다룬다.

상태의미
Normal정상 송수신
Sleep저전력 대기, Wake-up 패턴만 감지
StandbyNormal과 Sleep 사이 중간 저전력 모드 (일부 트랜시버 한정)
  • 호출 주체: CanIf가 Wakeup·sleep flow 중 CanTrcv API를 호출
  • 버스 physical layer의 파형 생성 자체는 여전히 CAN controller + transceiver 하드웨어가 담당 (CAN 참조)
  • External transceiver는 ECU 보드에 따라 종류·연결 방식이 달라지므로 Communication Hardware Abstraction과 연계 (Memory/Crypto transceiver 대응 구조와 동일 패턴)

위치 요약

  • 상위 경계: CanIf (HOH 기반 호출)
  • 하위 경계: CAN controller 레지스터 (μC 내부 peripheral)
  • MCAL Communication Drivers 그룹 소속
  • OSI L2 (Data Link, MCAL 측) 매핑