본문 바로가기
HW SW 개발

UWB·ToF·BLE를 활용한 실내 위치 측정 시스템 설계 정리(임베디드 펌웨어 포트폴리오)

by 아이텍 2025. 12. 11.
반응형
  1. 들어가며
    최근 실내 위치 측위(RTLS, Real-Time Location System)에 대한 관심이 커지면서
    UWB(Ultra Wideband)를 활용한 고정밀 거리 측정이 많이 쓰이고 있다.

임베디드 개발자로서 ToF(Time of Flight) 기반 센서 드라이버를 개발해 본 경험을 바탕으로,
UWB·ToF·BLE를 조합한 실내 거리 측정/전송 시스템 구조를 정리해 보고자 한다.
이 글은 개념 정리 + 펌웨어 설계 접근 + 실제 ToF 드라이버 경험을 함께 담은 포트폴리오용 기술 기록이다.

  1. UWB란 무엇인가?
    UWB(Ultra Wideband)는 이름 그대로 초광대역(수백 MHz~GHz폭) 대역을 사용하는 통신 기술이다.

기본적인 특징은 다음과 같다.

넓은 대역폭을 사용해 짧은 펄스를 전송

신호의 시간 분해능이 높아 도달 시간을 더 정확하게 측정 가능

Wi‑Fi/BLE에 비해 실내 거리 측정 정확도가 높다
(환경에 따라 수십 cm 단위 정확도 기대)

저전력, 근거리 통신에 적합

특히 실내 환경에서는 GPS가 제대로 동작하지 않기 때문에,
“정확한 거리 측정이 가능한 무선 기술”로서 UWB가 RTLS 분야에서 많이 사용되고 있다.

  1. ToF (Time of Flight) 기반 거리 측정 원리
    ToF는 말 그대로 신호가 왕복하는 데 걸린 시간(비행 시간)을 이용해 거리를 계산하는 방식이다.

 

거리 ≒ (신호 왕복 시간 × 신호 속도) / 2

여기서 중요한 포인트는 다음과 같다.

정확한 시간 측정

ns 단위의 시간 측정이 필요하다.

하드웨어 타이머/클럭 품질이 중요하다.

양방향 통신 구조

태그(Tag)와 앵커(Anchor)가
“요청(Request) → 응답(Response)” 패턴으로 패킷을 주고받는다.

왕복 시간을 계산해 거리로 변환한다.

보정(Offset & Calibration)

하드웨어 지연, 안테나 지연, 내부 처리 지연 등을 고려해 보정이 필요하다.

실측 데이터를 기반으로 오차 모델을 만들어 가는 과정이 중요하다.

ToF 드라이버를 개발하며 겪었던 포인트
제가 개발했던 ToF 기반 센서 드라이버에서는 다음과 같은 부분에 신경을 썼다.

인터럽트 기반 타이밍 캡처

타이머 오버플로우 처리

측정 데이터에 대한 필터링/평균화

실측 거리와의 차이를 줄이기 위한 보정 테이블 적용

UWB에서도 결국 “정확한 시간 측정 + 적절한 보정”이 핵심이기 때문에,
ToF 드라이버 개발 경험은 UWB 거리 측정 로직을 이해하고 설계하는 데 큰 도움이 된다.

  1. BLE는 왜 함께 사용하는가?
    UWB는 거리 측정에는 강하지만, 상위 서비스와의 연결 채널로 쓰기에는 부담이 있다.
    그래서 실무에서는 보통 다음과 같이 역할을 분리한다.

UWB

태그–앵커 간 거리 측정 전담

ToF/TDoA 기반 거리·위치 정보 생성

BLE(Bluetooth Low Energy)

모바일 앱 혹은 게이트웨이와의 통신

디바이스 설정(초기 파라미터, 펌웨어 버전 등)

거리/상태 데이터 전송

BLE는 저전력, 모바일 친화성이 좋기 때문에
“설정 및 데이터 전송용 제어 채널”로 쓰기 좋다.

실제 프로젝트를 설계할 때도
“거리 측정 = UWB, 사용자/서버 연동 = BLE” 구조로 나누는 것이 깔끔하다.

  1. UWB + ToF + BLE 시스템 아키텍처 예시
    제가 설계한 기준으로,
    UWB 기반 실내 거리 측정 디바이스의 펌웨어 구조를 다음과 같이 정리할 수 있다.

5-1. 하드웨어 구성
MCU: nRF52 / ESP32 등 (SPI + BLE 지원 MCU)

UWB 칩/모듈: SPI 인터페이스 (예: DW1000/DW3000 계열)

통신

MCU ↔ UWB: SPI

MCU ↔ 외부: BLE, UART(디버깅)

5-2. 펌웨어 레이어 구조
HAL / 드라이버 계층

SPI 드라이버

UWB 레지스터 접근 드라이버

BLE 스택 초기화 및 GATT/Advertising 설정

UART 로그 드라이버

서비스 계층

ToF 기반 거리 측정 서비스

측정 결과 필터/평균 처리

디바이스 상태 관리(전원, 오류 등)

애플리케이션 계층

측정 주기/모드 설정

BLE를 통한 데이터 전송 포맷 정의

상태 LED, 버튼 등 UI 제어

RTOS(예: FreeRTOS)를 사용하는 경우,
다음과 같은 태스크(Task) 구조로 나눌 수 있다.

uwb_task : 거리 측정 및 UWB 상태 관리

ble_task : 광고/연결/데이터 전송 처리

logger_task : UART 로그 출력

control_task : 모드 전환, 명령 처리

  1. ToF 드라이버 경험을 UWB에 어떻게 연결할 수 있을까?
    제가 실제로 담당했던 ToF 드라이버 개발에서는

“정확한 타이밍 처리”와 “노이즈가 있는 거리 데이터의 보정”이 핵심이었다.

이를 UWB/RTLS 분야에 적용한다면 다음과 같은 강점을 살릴 수 있다.

타이밍 기반 알고리즘 이해

신호 왕복 시간을 이용한 거리 계산 구조에 익숙하다.

타이머 설정, 인터럽트 처리, 오버플로우 대응 경험이 있다.

센서 오차 모델링 경험

단순 선형 보정부터
온도, 거리 구간별 오차 테이블까지 적용해 본 경험

실측 데이터를 기반으로 한 Calibration Flow 설계에 강점

펌웨어 구조화 경험

드라이버 계층과 서비스 계층 분리

RTOS 환경에서의 태스크 분할 및 동기화 처리

이러한 경험을 바탕으로,
향후에는 UWB 전용 SDK(DW1000/DW3000 등)를 분석하고 ToF 기반 거리 측정 로직을 실제 보드에서 구현하는 것을 목표로 하고 있다.
특히, 단일 거리 측정 MVP 구현부터 시작해
점차 다중 앵커 기반 위치 추정(RTLS)까지 확장하는 로드맵을 가지고 공부 중이다.

  1. 정리 및 향후 계획
    이 글에서는

UWB의 기본 개념

ToF 기반 거리 측정 원리

BLE가 실내 위치 시스템에서 담당하는 역할

MCU–UWB–BLE를 이용한 시스템/펌웨어 구조 예시

그리고 제가 경험한 ToF 드라이버 개발 내용을
UWB/RTLS 분야로 확장하는 관점에서 정리해 보았다.

반응형