ASPICE 기본 이론

SYSRS_Input characteristic, type

아즈마민초 2025. 12. 16. 20:24

Input Characteristic이란?

시스템 요구사양서(System Requirements Specification)에서 Input Characteristic은 주로 ECU(Electronic Control Unit)의 입력 핀(Pin)의 전기적 특성을 의미합니다. 특히 디지털 입력(Digital Input) 신호에 대해 정의되며, 입력 신호가 어떻게 처리되는지(예: 기본 상태, 전압 임계값, 풀업/풀다운 여부 등)를 명확히 지정합니다.

  • 왜 넣는가?
    • 입력 핀이 외부 센서나 스위치와 연결될 때, 연결이 끊어지거나 오픈(Open) 상태일 때 신호가 "Floating(부유)" 상태가 되어 불확실한 값(노이즈에 취약)이 될 수 있습니다.
    • 이를 방지하고 **안전한 기본 상태(Default State)**를 정의하여 ECU가 올바르게 동작하도록 합니다.
    • 자동차 시스템(ASPICE 관련)에서는 안전성(Functional Safety, ISO 26262)과 신뢰성을 위해 필수적이며, 진단(Diagnostics) 기능(예: 단선/단락 감지)을 지원합니다.
    • 하드웨어 설계자와 소프트웨어 개발자가 동일한 입력 동작을 이해하도록 명확성을 제공합니다.

PULL UP이란?

Pull-Up은 Input Characteristic의 한 예시로, ECU 내부 또는 외부에 **Pull-Up Resistor(풀업 저항)**를 연결하여 입력 핀이 오픈 상태일 때 High(1, 보통 5V 또는 12V) 상태가 되도록 하는 것입니다.

  • 간단한 설명:
    • 스위치나 센서가 연결되지 않았거나 오픈일 때, 저항을 통해 공급 전압(VCC)으로 "끌어올려(pull up)" High 상태를 유지합니다.
    • 스위치가 눌리거나 센서가 활성화되면 Ground로 연결되어 Low(0) 상태가 됩니다.
    • 자동차 ECU에서 흔히 사용되며, 단선(Open Wire) 시 High로 감지하여 진단 코드(DTC)를 발생시킬 수 있습니다.
    • 반대로 Pull-Down은 Ground로 끌어내 Low를 기본 상태로 만듭니다.

예: 버튼 입력 요구사항 – "입력 핀은 Pull-Up으로 구성되어, 버튼 미누름 시 High, 누름 시 Low로 동작."

 

Pull-up과 Pull-down 저항은 디지털 입력이 떠다니는(floating) 상태가 되지 않도록, 즉 불안정하게 임의의 전압을 읽지 않도록 항상 확실한 논리 상태(High 또는 Low)를 보장하기 위해 사용됩니다. 원리는 저항을 통해 입력을 기본 전압(VCC 또는 GND)에 연결해 두고, 스위치나 센서가 동작할 때만 반대 상태로 강제하는 방식입니다.

🔎 왜 필요한가?

  • 디지털 입력의 문제: 마이크로컨트롤러나 로직 게이트의 입력 핀은 연결이 끊어져 있으면 고임피던스 상태가 됩니다. 이때는 전압이 외부 잡음, 누설 전류 등에 의해 예측 불가능하게 변해 랜덤하게 High/Low로 인식될 수 있습니다.
  • 해결책: Pull-up/Pull-down 저항을 달아 기본 상태를 정해주면, 입력이 연결되지 않았을 때도 안정적으로 High 또는 Low를 유지합니다.

⚙️ 원리

  • Pull-up 저항: 입력을 VCC에 연결하는 저항.
  • Pull-down 저항: 입력을 GND에 연결하는 저항.
  • 스위치가 열려 있으면 → 저항을 통해 GND로 끌어내려 Low 유지.
  • 스위치가 닫히면 → VCC로 직접 연결되어 High.

📌 핵심 이유

  1. 안정성 확보: 입력 핀이 떠다니지 않고 확실한 논리 상태를 가짐.
  2. 노이즈 방지: 외부 전자파나 누설 전류가 입력을 잘못 바꾸는 것을 막음.
  3. 예측 가능한 동작: 회로 설계자가 원하는 기본 상태(default state)를 보장.
  4. 저항 사용 이유: 저항이 없으면 스위치가 열려 있을 때 전류가 무한히 흐르거나 단락(short)이 발생할 수 있음. 저항은 전류를 제한하면서도 전압을 원하는 방향으로

입력핀이 떠다닌다(floating현상)는게 무슨 말인가?

구체적으로 무슨 상황인가?

  • 마이크로컨트롤러나 로직 IC의 입력 핀은 내부적으로 **매우 높은 임피던스(저항)**를 가지고 있습니다.
  • 이 말은, 외부에서 전압을 확실히 공급하거나 접지하지 않으면 핀 자체가 전압을 결정하지 못한다는 뜻이에요.
  • 그 결과, 주변 환경의 잡음(노이즈), 정전기, 누설 전류 같은 아주 작은 영향에도 쉽게 반응해서 입력값이 임의로 High가 되었다가 Low가 되었다가 불안정하게 바뀔 수 있습니다.

📌 비유로 이해하기

  • 입력 핀을 풍선이라고 생각해 보세요.
  • 풍선을 줄로 묶어두지 않으면 바람 따라 이리저리 떠다니죠.
  • 마찬가지로, 입력 핀도 VCC(High)나 GND(Low)에 묶어두지 않으면 전압이 이리저리 흔들리며 예측 불가능한 상태가 됩니다.

⚙️ 그래서 Pull-up / Pull-down이 필요한 이유

  • Pull-up 저항: 입력을 기본적으로 VCC에 묶어둠 → 스위치가 열려 있어도 안정적으로 High.
  • Pull-down 저항: 입력을 기본적으로 GND에 묶어둠 → 스위치가 열려 있어도 안정적으로 Low.
  • 이렇게 하면 입력 핀이 “떠다니는” 일이 없어지고, 항상 확실한 기본 상태를 갖게 됩니다.

 

Type의 종류

시스템 요구사양서에서 Type은 입력 신호의 유형을 분류하며, 주로 디지털 입력의 경우 다음과 같은 종류가 일반적입니다 (자동차 ECU 사양서에서 흔히 사용):

 

 

  • 가장 흔한 자동차 디지털 입력 Type: Active Low (Pull-Up) – 안전 이유로 단선 시 High를 오류로 감지하기 쉽기 때문.
  • Non-Functional 측면(전압 범위, 입력 임피던스, 노이즈 내성 등)도 함께 지정됩니다.

입력 신호 유형을 분류하는 이유는 뭐야? 시스템 하위 수준의 SW, HW에서 봤을 때 적합한 신호가 적용된건지 아닌지 확인하기 위함인가? 여러가지 이유가 있을거 같긴하지만

 

입력 신호 유형(Type)을 시스템 요구사양서에서 명확히 분류하는 이유는 여러 가지가 있지만, 핵심은 시스템 전체의 일관성, 안전성, 구현 가능성, 그리고 유지보수성을 확보하기 위함입니다. 특히 자동차 ECU 프로젝트처럼 ASPICE나 ISO 26262를 적용하는 환경에서는 매우 중요합니다.

아래에 주요 이유를 하위 수준(SW/HW) 관점과 시스템 전체 관점을 나누어 정리했습니다.

1. 하드웨어(HW) 설계자가 적합한 회로를 설계할 수 있도록 하기 위해 (가장 직접적인 이유)

  • 입력 신호 Type에 따라 ECU 핀의 전기적 회로 구성이 완전히 달라집니다.
    • Active Low (Pull-Up) → 내부 Pull-Up 저항 활성화, 단선 시 High로 감지 → 진단(DTC) 용이.
    • Active High (Pull-Down) → 내부 Pull-Down 저항 활성화, 단선 시 Low로 감지.
    • Analog → ADC(Analog-to-Digital Converter) 채널 할당, 필터링 회로 필요.
    • Frequency/PWM → 타이머/카운터 모듈, 노이즈 필터링 강화 필요.
  • Type을 명확히 하지 않으면 HW 엔지니어가 잘못된 회로를 설계할 수 있고, 나중에 수정 비용이 엄청나게 증가합니다.

2. 소프트웨어(SW) 개발자가 올바른 신호 처리를 구현할 수 있도록 하기 위해

  • SW는 입력 신호를 읽고 해석하는 로직을 작성해야 합니다.
    • Active Low면 "Low = 활성화"로 로직 작성.
    • Active High면 "High = 활성화"로 로직 작성.
    • Analog면 ADC 값 변환 및 스케일링 로직 필요.
    • Frequency면 주파수 측정 또는 펄스 카운팅 알고리즘 필요.
  • Type이 잘못 분류되면 SW가 신호를 반대로 해석하거나, 불필요한 디바운싱/필터링을 적용/누락하게 됩니다.

3. Functional Safety (ISO 26262) 및 진단 요구사항 충족

  • 자동차 시스템은 단선(Open), 단락(Short to Ground/Battery) 같은 고장을 감지해야 합니다.
  • Active Low + Pull-Up 조합이 가장 일반적인 이유:
    • 단선 → High (오류 감지 가능)
    • 단락 to Ground → Low (정상 활성화와 구분 어려움 → 추가 진단 필요)
    • 단락 to Battery → High (오류 감지 가능)
  • Type을 명확히 하면 ASIL 레벨에 맞는 진단 커버리지를 설계할 수 있습니다.

4. 시스템 통합 및 검증 단계에서 불일치 방지

  • 시스템 요구사양서 → 시스템 아키텍처 → HW/SW 상세 요구사항으로 내려갈 때 Traceability를 유지하기 위해 필요.
  • Type 불일치가 있으면 통합 테스트나 벤치 테스트에서 바로 문제가 드러납니다 (예: 스위치 누르면 반대로 동작).
  • ASPICE 심사 시 SYS.2/SYS.3의 Consistency와 Traceability 평가 항목에 직접 영향을 줍니다.

5. 외부 부품(센서, 스위치)과의 호환성 확보

  • 고객이나 Tier1이 제공하는 센서/액추에이터의 데이터시트와 ECU 입력 Type이 맞아야 합니다.
  • 예: 브레이크 페달 스위치가 Active Low로 설계된 경우, ECU도 Active Low로 맞춰야 정상 동작.

6. 프로젝트 후반 변경 비용 최소화 및 유지보수성 향상

  • 초기에 Type을 명확히 분류하면 후속 변경 요청(Change Request)이 줄어듭니다.
  • 문서화가 잘 되어 있으면 신규 엔지니어가 투입되어도 빠르게 이해 가능.

요약

네, 질문하신 대로 “시스템 하위 수준의 SW, HW에서 봤을 때 적합한 신호가 적용된 건지 아닌지 확인하기 위함”이 가장 핵심적인 이유입니다. 하지만 그 외에도 안전성 확보, 진단 기능 구현, 통합 문제 예방, 규제 준수 등 여러 측면에서 필수적입니다.

결론적으로, 입력 신호 Type 분류는 단순한 분류가 아니라 HW-SW 인터페이스의 계약(Contract) 역할을 합니다. 이 계약이 명확하지 않으면 프로젝트 후반에 큰 문제가 됩니다.