PORT DriverMCAL I/O Drivers 중 하나. μC의 포트·핀 구성(configuration)을 담당하며, DIO Driver / ADC Driver / ICU Driver / OCU Driver / PWM Driver 등 다른 I/O 드라이버가 동작하기 전에 가장 먼저 초기화되어야 한다. “무엇을 읽고 쓸지”가 아니라 “핀이 어떤 기능으로 동작할지”를 정하는 계층.

역할

  • 각 포트·핀에 대해 기능(Pin function) 선택 — GPIO (DIO), ADC, SPI, SCI, PWM, CAN, LIN 등
  • 포트·핀 속성 설정은 μC·ECU 의존 — 보드 배선과 μC 공급자에 따라 다름
  • 사용하지 않는 포트·핀은 정의된 상태로 설정
  • MCU 레지스터 접근은 non-interruptible atomic

Pin Configuration

기본 속성

  • Pin direction (input / output)
  • Pin level initial value
  • Pin direction runtime 변경 가능성
  • Port mode runtime 변경 가능성

Optional 속성 (HW 지원 시)

  • Slew rate control — 출력 전이 속도 제어 (EMC 대책)
  • Input thresholds — 입력 로직 임계 전압
  • Pin driven mode — push-pull / open-drain
  • Readback support — pin level(실제) vs output register value(쓴 값)
  • Pull-up / Pull-down — 내부 저항 구성

DIO Driver와의 관계

DIO Driver는 PORT Driver가 이미 구성·초기화해 놓은 포트·핀 위에서 동작한다.

  • PORT Driver: pin을 어떻게 쓸 것인가 (configuration)
  • DIO Driver: pin 값을 읽고 쓴다 (operation)

초기화 순서: Port_Init()Dio_WriteChannel() / Dio_ReadChannel().

Driver별 명명 단위

PORT 드라이버는 pin/port 용어를 쓰고, 나머지 I/O 드라이버는 channel / channel group / port 용어를 쓴다.

Driver개별 단위부분 집합전체
PORTPort pinPort
DIO / ADC / ICU / OCU / PWMChannelChannel groupPort

MCU-specific 구현 예시

실제 μC의 PORT 설정은 memory-mapped 레지스터 조작. 예: MPC5606B의 SIUL(System Integration Unit Lite) 모듈은 Base 0xC3F9_0000에 위치하고, Pad Configuration Register (PCR0 ~ PCR148)를 통해 각 핀의 기능·방향·버퍼를 설정한다. PCR 필드에는 SMC(Safe Mode Control), APC(Analog Pad Control), PA[1:0](Pad Output Assignment — GPIO/Alt1/Alt2/Alt3), OBE(Output Buffer Enable), IBE(Input Buffer Enable) 등이 있다. PORT 드라이버는 이런 벤더 고유 레지스터 세부를 감추고 상위에 균일한 API를 제공한다.

같이 보기