I. 서 론
실내 위치 추적 시스템(IPS, indoor positioning systems) 은 산업 공정의 최적화와 소비자 편의 증대를 목표로 다양한 분야에서 널리 활용되고 있다. 기존의 GNSS(global navigation satellite system)는 실외 환경에서 뛰어난 성능을 보이지만, 실내 환경에서는 신호 차단과 다중 경로 간섭으로 인해 한계가 있다. 이러한 한계를 극복하기 위해, 비전 기반, 라이다(LiDAR), 전파 비행시간(ToF, time-of-flight)과 같은 다양한 기술들이 연구되고 적용되고 있으며, 그 결과 초광대역(UWB, ultra-wideband) 기술이 특히 주목받고 있다. UWB 기술은 매우 짧은 신호 펄스를 사용해 넓은 대역폭으로 데이터를 전송함으로써 실내 위치 추적에서 뛰어난 효과를 보이고 있다. UWB는 낮은 전력 소모, 높은 장애물 관통 능력, 그리고 다중 경로 간섭 억제와 같은 독보적인 특성을 제공한다. 특히, UWB의 뛰어난 시간 해상도는 전파 비행시간(ToF, time-of-flight)을 활용하여 센티미터 수준의 정밀도를 지원하며, 이는 실내 환경에서 매우 정확한 거리 측정 및 위치 추적을 가능하게 한다. 이러한 특성 덕분에 UWB는 신호 차단과 다중 경로 간섭이 많은 실내 환경에서 효과적인 위치 추적을 제공한다[1]~[3].
UWB의 주요 거리 측정 방식으로는 TDoA(time difference of arrival) 방식과 TWR(two-way ranging) 방식이 있다. 이 두 방식은 UWB의 넓은 대역폭과 정밀한 시간 해상도를 최대한 활용하여 정밀도를 높이기 때문이다. TDoA는 UWB 신호의 도달 시간 차이를 활용하여 태그의 위치를 추정하는 방식으로, 여러 앵커 간의 시간 동기화가 필수적이다. TDoA 방식은 송신 신호가 각 앵커에 도달하는 시간을 기반으로 태그의 위치를 계산하여 대규모 위치 추적 시스템에 적합하지만, 앵커 클록 간의 정밀한 시간 동기화가 필요하다는 단점이 있다. 반면, TWR 방식은 송신기와 수신기 간의 양방향 신호 교환을 통해 거리를 측정하는 방식으로, UWB 신호가 송신기에서 수신기로 이동한 후 다시 송신기로 반환되는 시간을 기반으로 한다. 이 방식은 두 기기 간의 클록 동기화를 요구하지 않아 구현이 비교적 간단하며 소규모 네트워크 환경에서 안정적인 성능을 제공한다. 하지만, 패킷 송수신 과정에서 발생할 수 있는 지연에 취약한 점은 TWR 방식의 한계로 지적될 수 있다[4],[5].
IEEE 802.15.4z 표준이 도입되면서 UWB TWR 방식은 새로운 도전 과제에 직면하고 있다. 해당 표준에서는 고정된 프리엠블 길이를 사용하지 않고 다양한 프리엠블 길이를 지원하며, 데이터 전송 속도와 STS(secure time synchronization) 영역의 길이 역시 유동적으로 설정된다. 이러한 변화는 거리 측정 시 패킷 송수신 타이밍과 관련된 복잡성을 증가시키며, 특히 TWR 방식에서는 각기 다른 조건에서의 패킷 송수신 시간을 적절히 조정해야 하는 과제를 안겨준다. 따라서 UWB 디바이스 간의 거리 측정 성능을 최적화하기 위해서는 이러한 요소들을 종합적으로 고려하여 빠르고 정밀한 측정을 구현해야 한다. 만약 거리 측정에 많은 시간이 소요된다면, 초당 거리 측정할 수 있는 횟수가 제한되므로 이동하는 물체의 거리를 빠르게 측정하거나 다수의 디바이스가 참여하는 측위 응용에서는 성능 저하가 발생할 수 있다[6].
현재까지 UWB의 TWR 방식이나 물리계층 파라미터에 따라 거리 측정 성능이 어떻게 달라지는지, 그리고 시간 파라미터를 어떻게 선정해야 빠르게 거리 측정이 완료되는지에 대한 연구는 매우 부족한 실정이다. 예를 들어 참고문헌 [7]에서는 UWB를 활용한 TWR 측위 방식에서 UWB의 프리엠블 코드 시퀀스를 다르게 설정하여 측위 손실률을 낮추는 연구가 진행되었지만, 프리엠블 코드 시퀀스를 늘리면 측위 소요 시간이 증가한다는 문제도 있다. 또한, 현재까지의 연구들은 거리 측정 정확도에 집중하는 경향이 있으며, 시간 최적화를 통해 거리 측정을 개선하려는 접근은 충분하지 않다. Kalman 필터와 같은 후처리를 적용하거나 IMU(inertial measurement unit)와 같은 외부 센서 퓨전을 통해 정확도를 높이는 연구가 진행되고 있지만, 이러한 연구들은 거리 측정에 소요되는 시간을 충분히 고려하지 않고 있다[8].
UWB 기술이 현재보다 더 널리 사용되기 위해서는 다수의 디바이스를 활용하는 상황에서도 정밀하고 안정적인 거리 측정이 가능해야 한다. 이를 위해서는 거리 측정의 정확도뿐만 아니라 빠른 응답 시간을 보장할 수 있는 물리계층 파라미터 최적화가 필요하다. 본 연구에서는 거리 정확도와 소요 시간의 관점에서 UWB TWR을 분석하였다. 이를 통해 SS-TWR 방식에서 거리 측정의 정확도를 향상시키는 방법과 DS-TWR 방식에서 측정 시간을 단축하기 위한 최적의 방법을 제안한다. 제안한 방법은 각 기기의 응답 시간을 UWB 패킷 길이와 IC의 처리 시간(processing time)에 맞게 조정함으로써 빠르고 효율적인 정밀 거리 측정을 가능하게 한다. 제안된 결과는 UWB IC에 임베디드화하여 실제로 활용될 수 있도록 하였다.
본 논문의 구성은 Ⅱ장에서 UWB 거리측정과 패킷시간을 분석하고, Ⅲ장에서 UWB IC의 TDD(time division duplexing) 특성을 고려한 최적 시간 파라미터를 선정하는 방법을 제시한다. Ⅳ장에서는 실제 UWB IC에 적용된 실험 결과를 제시하고 Ⅴ장에서 결론을 맺는다.
Ⅱ. UWB TWR의 패킷 구조와 원리
본 절에서는 IEEE 802.15.4z HRP UWB 패킷의 구조를 살펴본다. UWB 물리계층 파라미터에 따라 패킷의 길이와 시간을 설명하고, 이러한 구조가 거리 측정에 어떻게 기여하는지 다룬다. 그림 1은 IEEE 802.15.4z HRP UWB 표준에서 제시한 패킷 구조를 보여준다[5]. UWB 패킷은 동기와 거리 측정의 기준 시간을 위한 SHR(synchronization header) 영역과 데이터를 전송하기 위한 DP(data portion)로 구분되며, 두 구간은 별도의 모뎀 방식을 사용하는 것이 특징이다. 표준에서 암호화된 거리 측정을 위해 STS 구간이 포함되기도 하나 이는 Preamble과 동일한 모뎀을 사용하므로, 본 설명에서는 STS 구간을 제외한 패킷 구조에 집중한다.

먼저 SHR은 프리엠블과 SFD(start-of-frame-delimiter)로 구분된다. 프리엠블은 동일한 심벌을 반복하여 전송하며 그 길이는 PSR(preamble symbol repetitions)의 수로 결정된다. 하나의 프리엠블 심벌은 31 또는 127개의 펄스로 정의되며, 각각의 펄스는 (−1, 0, 1)을 갖는다. UWB의 경우 각 펄스는 chip이라고도 부르며, 예를 들어 500 MHz의 대역폭을 사용하는 경우 2.003 nsec의 시간폭을 갖는다. 일반적으로 UWB 펄스들은 PRF(pulse respetition frequency)의 역수의 관계로 시간 간격을 갖게 된다. 표준의 BPRF 모드에서는 64 MHz 또는 16 MHz의 PRF를 사용하며 이는 하나의 프리엠블 심벌당 칩(chip)과 관련된다. 다음으로 SFD는 8 또는 64개의 심벌로 구성되며 프리엠블의 끝 시점과 데이터 변조의 시작을 알려주게 된다. 기본적으로 UWB TWR 방식에서는 SFD를 기준으로 수신 시점을 계산하며 거리측정에 사용하게 된다.
다음으로 DP는 PHR(physical header)과 PSDU 영역으로 구성된다. PHR은 페이로드 데이터의 길이와 속도에 대한 정보를 포함하여 19비트를 사용한다. PSDU은 정보를 저장하는 Payload를 위한 구간이다. DP은 채널 코딩과 변조를 사용해 데이터의 신뢰성을 높인다. 채널 코딩으로는 Reed-Solomon 코딩과 Convolutional 코딩이 사용되며, 변조 방식으로는 BPM-BPSK(burst postion modulation)를 사용한다.
2-1절에서 UWB 표준의 물리계층 패킷의 구조에 대해서 살펴보았다. 본 절에서는 이러한 물리계층 패킷을 이용하여 HRP UWB가 통신을 기반으로 거리를 측정하는 원리에 대해 살펴본다.
UWB의 TWR 방식은 기본적으로 통신 방식이므로 패킷을 교환하여 데이터를 전송하게 된다. 그림 2(a)는 SS (single sided)-TWR로 방식을 보여주며, 두 개의 패킷을 교환하여 거리를 측정하는 방식이다. 먼저 패킷을 보내는 기기를 initiator, 응답하는 기기를 responder라고 한다. initiator는 Poll 메시지를 송신하고 송신 시작 시간을 타임스탬프로 기록한다. Poll 메시지를 수신한 responder는 일정한 지연 시간 후 response 메시지를 송신한다. 이 일정한 지연시간을 Treply 1이라고 하며, initiator는 response 메세지를 수신하고 수신 시간을 다시 타임스탬프로 기록한다. initiator의 Poll 메세지 송신 시간부터 response 메세지 수신시간까지의 지연시간을 Tround 1 이라고 한다. initiator는 Treply 1와 Tround 1를 이용하여, 두 기기 간의 전파 도달 시간(ToF)을 측정하고 거리를 계산한다. 이러한 과정을 표현하면 식 (1)로 주어진다.
SS-TWR 방식은 비교적 구현이 간단하고, 빠르게 거리를 측정할 수 있는 장점이 있지만, 두 장치 간의 클럭이 정확히 동기화되지 않은 경우에는 클럭 오프셋으로 인해 오차가 발생할 수 있다. 이 오차는 두 기기의 클럭이 얼마나 차이가 나는지에 따라 달라지며, 이를 수학적으로 표현한 것이 식 (2)이다.
이러한 클럭 오프셋에 의한 거리 측정 오차를 줄이기 위해 고안된 방식이 DS-TWR 방식이다. DS-TWR 방식은 SS-TWR보다 개선된 방식으로, 패킷을 세 번 교환하여 클럭 오프셋의 영향을 상쇄시킨다. 구체적으로, Poll 메시지를 initiator가 송신하고, responder가 response 메시지로 응답한 뒤, initiator가 다시 Final 메시지를 송신하는 구조로 되어 있다. 각 패킷 교환 사이의 시간을 정확히 측정함으로써, 클럭 오프셋으로 인한 오차를 상쇄하고 보다 정밀한 거리 측정을 가능하게 한다. 이러한 과정은 식 (3)으로 표현되며, 이를 통해 두 기기 간의 전파 도달 시간을 계산할 수 있다. 이러한 과정은 그림 1(b) 및 식 (3)으로 표현되며, 이를 통해 두 기기 간의 전파 도달 시간을 계산할 수 있다[9],[10].
DS-TWR 방식은 SS-TWR 방식에 비해 클럭 오프셋의 영향을 제거하여 비교적 정확한 측정을 가능하게 하지만, 추가적인 패킷 교환으로 인해 측정시간이 길어지는 단점이 있다. 또한, 최종적으로 거리 값을 알고 있는 측은 responder가 되므로, initiator에게 거리 값을 전달하기 위해 추가적인 통신 과정이 필요할 수 있다. 이는 시스템의 복잡성을 증가시키며, 측정시간도 길어지게 만든다.
2-2절에서 살펴본 UWB TWR의 과정이 성공적으로 이루어지기 위해서는 응답 지연시간(Treply)를 두 기기 간에 서로 약속해두어야 한다. 빠른 측정을 위해 Treply를 최소화하는 것이 이상적이지만, 패킷의 지속 시간과 이를 처리하기 위한 시간을 고려해야 한다. 예를 들어, 패킷의 길이가 길고 Treply가 너무 짧으면 responder가 패킷을 제대로 처리하지 못한 채 응답할 수 있으므로 현실적인 한계가 발생할 수 있다. 따라서 안정적이고 정밀한 TWR을 위해서는 측정 과정에서의 필요 시간을 계산할 필요가 있다. 이를 위해서는 IEEE 802.15.4z UWB의 물리 파라미터와 패킷 전송 시간을 계산해야 하며, 각 기기의 하드웨어 처리 속도과 시스템 지연 요소를 정확히 파악하는 것이 필수적이다. 이러한 요소를 모두 파악했을 때 Treply 1와 함께 최적의 측정시간을 결정할 수 있게 된다.
먼저, UWB 패킷의 지속 시간에 대해 알아본다. UWB 패킷의 PSDU 길이는 최대 127 옥텟(Octet)까지 가능하지만, 사용하는 용도에 따라 PSDU의 길이는 가변적이며 SHR의 길이 또한 다양한 파라미터에 따라 변동될 수 있다. 따라서 SHR 구간과 DP 구간의 길이는 전송할 정보의 양과 전송속도에 따라 길이가 달라진다. 결론적으로 SHR 영역을 구성하는 preamble symbol duration과 data protion을 구성하는 data symbol duration을 계산할 수 있다면 식 (4)~식 (6)을 사용하여 UWB 패킷시간을 구할 수 있다.
다음의 표 1은 프리엠블 심벌 수와 전송 데이터 길이에 대한 시간 계산 예시를 보여준다.
Packet | TSHR (us) | TPHR (us) | TPSDU (us) | Packet time (us) |
---|---|---|---|---|
Poll | 138.4 | 21.5 | 20.5 | 180.4 (≈181) |
Response | 28.7 | 188.6 (≈189) |
TWR 과정에서의 시간 기준은 패킷 수신 시 SFD를 기준으로 타임스탬프가 기록된다. 따라서, SHR 구간의 길이와 DP 구간의 길이에 따라 타임스탬프의 위치가 직접적인 영향을 미치므로, 안정적인 TWR 수행을 위해 이러한 영향을 고려하여야 한다.
한편, 패킷의 길이와 패킷시간 외에도 TWR 거리측정 과정에서는 상대 기기의 하드웨어 처리시간(processing time)을 알아야 한다. 즉, 패킷을 송신한 UWB 기기는 송신 후 상대 UWB 기기의 패킷을 수신하기 위해 수신준비를 완료하는 processing time(=TP_RX)이 필요하다. 또한 패킷을 수신한 UWB 기기는 패킷을 수신 후 이 데이터를 처리하고 응답을 송신하기 위해 하드웨어가 준비를 완료하는 processing time(=TP_TX)을 파악해야 한다. 이와 같이 패킷의 길이와 UWB IC의 처리시간을 고려하여 지연시간을 최소화하여야 한다. 이러한 하드웨어 준비 시간(TP_RX 및 TP_TX)은 전체 측위 시간의 일부로 고려되어야 하며, 이를 파악하고 Treply을 최소화하는 것이 정밀한 거리 측정의 핵심이다. SS-TWR 방식의 경우 송·수신 간 Treply가 길어질수록 클럭 오프셋이 커지며, 식 (2)에 따라 ToF의 추정 오차가 증가하게 된다. 따라서, SS-TWR 방식을 활용해 정밀한 거리 측정을 하려면 각 기기의 Treply을 최소화하고 송·수신 시점을 정확히 파악하는 것이 중요하다. DS-TWR 방식의 경우 SS-TWR보다 패킷이 한 번 더 교환하여 클럭 오프셋을 억제하지만, 전체적인 측위 시간이 길어진다. 따라서 DS-TWR에서도 다수의 기기를 활용하고 안정성을 위해서 송·수신 시점을 더욱 정밀하게 파악하여 측위 시간을 최적화 해야한다.
Ⅲ. UWB 시간파라미터 설정 방법
Ⅱ장에서 살펴본 이론을 이용하여 본 장에서는 실제 UWB IC의 시간 파라미터를 설정하였다. 본 연구에서 사용한 UWB IC는 Qorvo사의 DWS3000이며, 마이컴은 Nordic사의 nrf52840-DK MCU보드를 사용하였다. 거리측정 임베디드 소프트웨어는 nrf52840 SDK와 DWS3000 API를 참고하여 작성하였다[11],[12]. TWR 측위 과정에서 UWB IC에서 송·수신 시점을 읽을 때 Rmarker를 기준으로 timestamp 값을 읽으며, UWB IC는 패킷을 정해진 시간에 송·수신할 수 있도록 예약기능을 지원하므로 예약기능 또한 패킷의 Rmarker 기준으로 송·수신이 되도록 설정하였다. UWB IC는 송신 모드일 때 송신 패킷을 준비 하고 정해진 시간에 송신하는 반면, 수신 모드는 정해진 시간에 수신 모드로 전환되어 설정한 timeout 값만큼만 수신모드로 동작한다. 이때 TWR 측위 과정을 모델링하기 위해선 처리시간(processing time)과 타임아웃(timeout) 개념을 이해할 필요가 있다. Processing time은 수신 후 송신 준비 완료까지의 시간(=TP_TX)과 송신 후 수신 준비 완료까지의 시간(=TP_RX) 2가지가 있으며, 계산의 편의를 위해 TP_TX와 TP_RX를 동일하게 계산하였다. Timeout은 수신 시작 시점(=Rx Start)부터 수신 모드가 종료(=Rx End)되는 시간을 나타낸다. Treply(=수신 후 송신할 때까지의 지연시간)는 TP_TX와 송신 packet time을 더한 값으로 모델링하였다. 한편, 송신된 메세지의 Rmarker에 TP_RX를 더하게 되면 수신 시작 시점을 알 수 있다. 수신 시작 시점에 timeout 값을 더하게 되면 수신 모드가 종료되는 시간을 알 수 있게 된다. Timeout은 상호교환하는 메시지의 패킷 소요시간에 100 us의 마진을 더한 것으로 모델링 하였다.
먼저 SS-TWR에서 프리엠블의 길이가 128인 경우 본 논문에서 제시한 방법으로 표 1과 같이 UWB Packet 시간을 구하고 송·수신 동작을 시뮬레이션하였다. 반면, 그림 3(b) 에서는 SS-TWR 과정에서 프리엠블 길이가 256으로 변경되었지만 이를 고려하지 않고 시뮬레이션을 한 결과를 보여준다. 그림에서 알 수 있듯이 프리엠블 길이가 바뀌었음에도 불구하고 UWB IC가 이를 고려하지 않고 이전 시간 설정을 그대로 유지한다면 UWB Initiator는 Response 메시지를 제대로 수신할 수 없게 됨을 확인할 수 있다.

다음으로 DS-TWR인 경우에도 3개의 패킷의 패킷 시간을 고려하여 본 논문에서 제안한 방식으로 설정한 경우 UWB 기기들의 동작을 시뮬레이션 하였다. DS_TWR인 경우 패킷시간은 표 2와 같으며 그 결과는 그림 4와 같이 주어진다. 결론적으로 SS-TWR이나 DS-TWR이나 정확한 거리측정을 위해서는 패킷시간을 고려하여 UWB 기기를 동작시켜야 함을 알 수 있다.
Packet name | TSHR (us) | TPHR (us) | TPSDU (us) | Packet time (us) |
---|---|---|---|---|
Poll | 138.4 | 21.5 | 20.5 | 180.4 (≈181) |
Response | 23.6 | 183.5 (≈184) | ||
Final | 34.9 | 194.8 (≈195) |

Ⅳ. UWB 시간 파라미터에 따른 실험 결과
앞에서 시뮬레이션한 결과를 바탕으로 임베디드 프로그램을 구현하였다. 마이컴인 nrf52840-DK MCU보드에 C언어로 임베디드 프로그래밍을 통해 Qorvo DW3000IC를 제어하여 SS-TWR과 DS-TWR 방식으로 거리 측정을 수행하였다. 먼저 식 (1)과 같이 SS-TWR에서 Treply1값이 커질수록 클럭 오프셋의 영향이 커져 정밀한 거리 측정이 어려워지는 확인하는 실험을 진행하였다. 그림 5는 UWB Initiator와 responder 사이의 거리가 2 m일 때의 결과이다. 앞에서 사용된 SS-TWR 시뮬레이션과 동일한 파라미터로 설정한 후, initiator와 responder의 processing time을 200 us씩 증가시키면서 측정한 거리값의 분산 특성을 확인하였다. 그림에서 알 수 있듯이, 거리 측정값의 오차인 분산 특성은 Treply1이 증가할수록 커지는 경향을 보임을 확인하였다. 따라서, SS-TWR 방식에서 Treply1값을 적절히 설정하지 않으면 거리 측정 오차가 커질 수 있음을 확인하였다.
다음으로 DS-TWR 방식은 SS-TWR 방식보다 클럭 오프셋에 대한 영향을 덜 받는다. 하지만, preamble length가 길어지거나, data rate가 느려진다면 packet time이 증가한다. 이것을 고려하지 않고 Tround1, Treply2, Treply1, Tround2 값을 설정한다면, 거리 측정 자체가 이루어지지 않거나, 최적의 거리측정 횟수를 얻기 어려울 것이다. 그림 6은 preamble length가 다를 경우, 10초 동안 거리 측위 횟수를 계산하고 실제 측정한 결과를 비교하여 보여준다.

실험에서는 첫 번째 거리측정에서 initiator의 Poll 메시지가 즉시 송신되는 방식으로 진행하였다. TWR 방식에서 한 번 거리측정이 완료된 경우, 이후 거리 측정 시 processing time과 Poll 메시지의 패킷시간을 계산하여 이 시간이 지난 후 다음 거리 측정이 이루어지도록 설정하였다. 10초의 기준은 nrf52840-DK의 타이머 인터럽트를 활용하여 측정하였다. 표 3과 같이 프리엠블 길이가 128인 경우와 1,024인 경우의 두 가지 물리계층 파라미터를 사용하였으며 각각의 시간 파라미터는 Ⅲ장에서 제안한 방식을 사용하여 결정하였다.
Preamble length : 128 | |||||
Treply1 | 706 | 906 | 1,106 | 1,306 | 1,506 |
Treply2 | 717 | 917 | 1,117 | 1,317 | 1,517 |
Preamble length: 1,024 | |||||
Treply1 | 1,618 | 1,818 | 2,018 | 2,218 | 2,418 |
Treply2 | 1,629 | 1,829 | 2,029 | 2,229 | 2,429 |
그림 6은 DS-TWR 방식에서 프리엠블 길이에 따른 초당 거리 측정 수를 보여준다. 그림 6(a)는 프리엠블 길이가 128로 짧은 경우이고, 그림 6(b)는 프리엠블 길이가 1,024로 상대적으로 긴 경우의 실험결과이다. 2개의 그래프 모두 Treply1+Treply2값이 커질수록 10초 동안의 거리 측정 횟수는 점차 감소하여, Treply1+Treply2와 거리 측정 횟수는 반비례 관계를 갖음을 알 수 있고 이는 계산된 결과와 일치한다.
Ⅴ. 결 론
본 논문에서는 UWB를 활용한 TWR 측위 방식에서 UWB 패킷의 길이와 거리 측정을 위한 측정시간을 고려하여 시간 파라미터를 적절하게 설정하는 것이 매우 중요함을 제시하였다. 먼저, SS-TWR 방식에서는 Treply을 최소 측정시간을 고려하지 않고 설정할 경우 거리 측위의 오차가 점점 증가하는 경향을 확인하였다. 따라서 측정시간을 UWB IC가 처리할 수 있는 최소시간으로 선정해야 함을 알 수 있었다. 다음으로 DS-TWR 방식의 경우 Treply을 최적으로 설정하여야 주어진 시간 내에 더 많은 거리측정 횟수를 확보할 수 있음을 확인하였다. 이때 두 경우 모두 UWB 물리계층 파라미터의 선택에 따라 패킷의 길이가 달라지므로 이를 고려하여 시간 파라미터를 설정하여야 함을 알 수 있었다. 본 연구 결과는 UWB가 활용 시 최소시간으로 거리 측정을 할 수 있는 자료가 될 것으로 기대된다.