임베디드 설계 노트 (3/6) — UI(Universal Input) 설계: 전압·저항·접점을 하나로
모드에 따라 회로를 바꾸고, 소프트웨어로 신호를 정제하는 하이브리드 입력 설계
핵심 요약
- UI의 핵심은 센서 종류에 따라 회로의 임피던스와 바이어스 전압을 물리적으로 변경하는 것
- 소프트웨어에서는 ADC Raw 값을 물리량으로 변환하고, 필터링으로 현장 노이즈에 대응한다
- 모드 자동 감지는 함정이 많아 명시적 지정이 안전하다
배경
임베디드 시스템에서 하나의 입력 포트로 여러 종류의 센서를 수용해야 하는 경우가 많다. 전압 센서, NTC/RTD 온도 센서, 무전압 접점(Dry Contact)을 모두 하나의 UI 포트에서 처리하려면, 하드웨어와 소프트웨어 양쪽에서 설계 판단이 필요하다.
본문
하드웨어: 모드별 회로 구성
- 전압 모드 (0~10V): 높은 입력 임피던스(Input Impedance, 입력단의 전기적 저항)를 유지하며 저항 분배로 MCU ADC 범위(0~3.3V)로 감압
- 저항/온도 모드 (NTC/RTD): 정밀 풀업 저항(Pull-up Resistor, 신호를 기준 전압으로 끌어올리는 저항)을 연결해 분압 법칙으로 저항 변화를 전압으로 환산. 풀업 저항의 정밀도(0.1%)가 전체 계측 정밀도를 결정한다
- 접점 모드 (Dry Contact): 내부 바이어스 전압을 인가하고 접점 개폐에 따른 전압 변화를 DI로 처리
보호 회로는 현장 실수(24V 오인가, 정전기) 대비 필수다: - 다이오드 클램핑: ADC 핀 전압이 Vcc를 초과하지 않도록 제한 - RC 저대역 필터: 고주파 노이즈를 하드웨어 레벨에서 1차 차단
소프트웨어: 신호 정규화와 필터링
ADC Raw 값을 실제 물리량으로 변환한다. 전압 모드는 선형 보간, NTC 온도 센서는 비선형 특성 때문에 Lookup Table이나 Steinhart-Hart 방정식을 사용한다.
현장 노이즈 대응에는 이동 평균 또는 EWMA(Exponential Weighted Moving Average, 지수 가중 이동 평균) 필터를 적용한다. 이동 평균은 단순하지만 급변에 대한 응답성이 느릴 수 있으므로, 샘플링 주기와 필터 계수 튜닝이 중요하다.
시행착오 / 주의사항
모드 자동 감지의 함정: 저항값이 큰 센서와 전압 신호가 겹칠 경우 소프트웨어의 오판단이 발생한다. 해결책은 설정 메뉴나 통신을 통해 모드를 명시적으로 지정하고, 해당 모드에 맞는 스위칭 신호를 하드웨어에 전달하는 구조다.
접점 모드의 디바운싱: UI를 접점으로 사용할 때 채터링(Chattering, 접점의 기계적 떨림) 처리가 필수다. 전압 모드처럼 읽되 임계값 기준으로 High/Low를 판정하고, 연속 N번 이상 동일 값이 읽혀야 상태를 확정하는 소프트웨어 디바운싱 로직을 배치한다.
마무리
UI 설계는 단순한 ADC 값 읽기가 아니다. 현장의 다양한 변수 — 센서 종류, 노이즈, 결선 실수 — 를 아키텍처 안에서 유연하게 수용하는 것이 본질이다.
시리즈 전체 안내: 시리즈 목차
댓글
댓글 쓰기