맥심

글 : 데이비드 웨버(David Weber) / 전략 애플리케이션 엔지니어맥심(Maxim Integrated Products, Inc.) / www.maxim-ic.com최근 위성 위치 확인 시스템(GPS)1, 2에 사용되는 소프트웨어 기술이 통신 및 내비게이션 엔지니어들의 큰 관심을 받고 있다. VLSI 개발 덕분에 이제 강력한 성능의 CPU와 DSP는 소프트웨어를 사용하여 실시간으로 GPS 신호를 검출하고 디코딩할 수 있다. 이와 같이 구현되는 소프트웨어 기반 GPS 수신기는 하드웨어를 재설계하지 않아도 새로운 애플리케이션에 맞추어 설정을 수정할 수 있는 것은 물론 IF 주파수 선택과 추후 업그레이드 구현에 폭넓은 유연성을 제공한다.오늘날 대부분의 랩톱 컴퓨터에 들어가는 CPU는 실시간 디코딩 요구를 만족하는 뛰어난 성능을 갖고 있다. MAX2769 GPS 수신기 RF 프런트 엔드와 같은 칩을 사용하면 간단한 USB 동글 또는 PCI Express(PCIe) 미니 카드를 이용해 랩톱 PC에 저렴하게 GPS 기능을 추가할 수 있다. 복구된 원 데이터는 PC 호스트에 전달되며, PC 호스트는 소프트웨어로 베이스밴드 디코딩을 실행하므로, 일반적인 독립형 GPS 시스템에 요구되는 베이스밴드 ASIC 비용을 절감할 수 있다. 설계자는 MAX2769와 같은 수신기를 이용하면 단일 칩을 사용하여 GPS 및 갈릴레오(Galileo) 시스템을 처리할 수 있는 어댑터를 구현할 수 있다.소프트웨어 기반 GPS 수신기의 RF 프런트 엔드는 먼저 저잡음 앰프(LNA)를 사용하여 약한 수신 신호를 증폭하고, 그런 다음 증폭된 신호를 약 4MHz의 낮은 중간 주파수(IF)로 하향변환한다(그림 1a). 이러한 하향 변환은 1개 또는 2개의 믹서를 사용하여 입력 RF 신호와 로컬 발진기 신호를 혼합함으로써 수행된다. 이렇게 구현된 아날로그 IF 신호는 아날로그-디지털 컨버터(ADC)에 의해 디지털 IF 신호로 변환된다.MAX2769에는 모든 기능(LNA, 믹서, ADC)이 통합되어 있어 애플리케이션의 개발 시간을 크게 단축시켜 준다. MAX2769는 두 가지 저잡음 앰프 중 선택할 수 있는데, 하나는 매우 낮은 0.9dB 잡음 지수, 19dB 이득, -1dBm IP3를 가지며 수동 안테나와 함께 사용할 수 있으며, 다른 하나는 1.5dB 잡음 지수, 약간 낮은 이득과 전력 소비, 약간 높은 IP3를 가지며 능동 안테나와 함께 사용할 수 있다. 2.8V에서의 소비 전류는 최소 수준으로, 구성에 따라 13mA~18mA 사이이다.앰프에 이어 RF에는 외부 필터링을 위한 기능이 지원된다. 신호는 15비트 정수 분배기(integer divider)와 함께 내장 20비트 시그마 델타 fractional-N 주파수 합성기를 통해 직접 하향변환되어 0~12MHz 사이에서 원하는 거의 모든 IF 주파수를 구현한다. 가능한 IF 필터링의 선택 범위가 넓으므로 갈릴레오와 같은 다양한 구조를 이용할 수 있다.RF 입력으로부터 IF 출력까지 전체 이득은 60dB~115dB 범위에서 튜닝하거나 자동으로 AGC할 수 있다. 출력은 아날로그, CMOS 또는 제한된 차동으로 선택할 수 있다. 내장 ADC는 1~3비트 중에서 출력을 선택할 수 있다. 또 기준 발진기가 내장되어 있어 크리스털 또는 온도 보상 크리스털 발진기(TCXO)로 동작할 수 있으며, 8MHz에서 44MHz까지 모든 입력 기준 주파수를 사용할 수 있다.24MHz 기준 주파수에서 동작하는 싸이프레스 반도체 USB 컨트롤러와 함께 MAX2769를 기반으로 하는 간단한 USB 동글 기준 설계를 이용할 수 있다(그림 1b). 이 기준 설계는 단일 MAX8510 LDO를 사용하여 DC 전원을 레귤레이트한다. MAX2769의 레지스터를 프로그래밍하는 데에는 3-wire(SPI) 디지털 버스가 사용된다. 다른 방법으로는 SPI 제어 없이 8개의 하드와이어(hard-wired)된 사전 구성 상태 중 하나로 시스템을 동작하게 할 수 있다.또 칩에는 능동 안테나를 바이어싱하고, 셧다운 모드 시 안테나의 전원을 차단하는 회로도 있어 USB 규격을 만족한다. MAX2769는 안테나 전원에서 전류 소비 여부를 검출하여 LNA1과 LNA2 간에 자동으로 스위칭할 수 있다. 이러한 기능은 내장된 수동 안테나 대신 더 민감한 외부 능동 안테나를 사용하는 옵션이 있는 애플리케이션에 유용하다. 설계자는 LNA2에 외부 안테나 포트를, LNA1에 내부 포트를 연결하기만 하면 된다. 외부 안테나를 삽입하는 즉시 MAX 2769는 전류 소비를 감지하고 자동으로 LNA1으로부터 LNA2로 스위칭한다.MAX2769 다중 대역 GPS 수신기 IC는 랩톱, 모바일 핸드셋, PDA 및 자동차 애플리케이션을 위한 고성능 초소형 솔루션을 제공한다. 최대 115dB의 전체 공칭 전압 이득과 1.4dB의 모듈 잡음 지수는 상용으로 이용 가능한 소프트 GPS 소프트웨어 패키지를 사용하여 -143dBm 수신(acqu isition)과 -154dBm 추적 감도를 제공한다.USB 또는 PCIe 하드웨어 설계를 검토하기 전에 소프트웨어 GPS 수신기에 대한 기본 이론을 간단히 살펴보기로 하자. 내비게이션 메시지 디코딩과 위치 계산에 대해 관심있는 독자는 제임스 바오와 옌 츄이의 책 3을 참고하기 바란다.GPS 기본원리GPS 시스템은 24개 위성 또는 우주 비행선(각각은 고유 PRN 코드에 의해 식별), 지상 통제소, 사용자 장치(수신기)로 구성된다. 민간용 GPS 및 갈릴레오 애플리케이션에서 위성은 1.57542GHz 주파수에 위치하는 L1 대역에서 통신한다. GPS 수신기가 신뢰할 수 있는 위치를 얻기 위해서는 최소 4개의 위성에서 가시적(visibility) 위치 정보가 필요하다. 각 신호는 수신기 위치는 물론 시간에 따라 달라지므로 신호의 수신(acquisition) 및 추적은 매우 복잡하다.기존 GPS 수신기는 ASIC로 수신(acquisition), 추적 및 비트 동기화 동작을 구현하지만, 소프트웨어 GPS 수신기는 하드웨어가 아닌 소프트웨어로 이러한 블록을 구현함으로써 유연성을 제공한다. 소프트웨어는 하드웨어 구조를 간소화시켜 더 작고 더 저렴하고 더 전력 효율적인 수신기 구현을 가능하게 한다. 사용자는 C/C++, MATLAB짋 및 기타 언어로 소프트웨어를 작성하여 모든 운영 시스템(임베디드 OS, PC, Linux, DSP 플랫폼) 안에 이를 포팅(porting) 할 수 있다. 이와 같이 소프트웨어 GPS 수신기는 모바일 핸드셋, PDA 및 유사한 애플리케이션에 최대 유연성을 제공한다.랩톱 컴퓨터의 경우 설계자는 USB 포트가 있는 모든 랩톱에서 동작할 수 있는 USB 동글을 설계하거나, PCIe 미니 카드 커넥터가 있는 신형 랩톱에서는 PCIe 미니 카드에 RF 프런트 엔드를 설치하고 PC에 이 카드를 내장할 수 있다(그림 2a,b). PCIe 미니 카드 인터페이스에는 USB 포트가 포함되어 있으므로 프런트 엔드 어댑터의 설계는 USB와 PCIe 미니 카드 모두 비슷하다. 주요 차이점은 PCIe 지원에 요구되는 일부 관리 전력 관리 로직과 다른 DC 전압(PCIe는 3.3V, 외부 USB 포트는 5V)을 처리해야 하는 정도이다.그림 1b의 USB 동글의 블록 다이어그램은 신호를 캡처하여 이를 디지털로 변환하고 호스트 PC에 전송하는데 필요한 MAX2769, 카운터, USB 인터페이스 컨트롤러만으로 얼마나 간단히 솔루션을 구현할 수 있는지를 보여준다. 나머지는 호스트 PC에서 실행되는 소프트웨어가 모든 베이스밴드 기능을 수행하고 PC 스크린에 위치를 표시한다.GPS 시그널링이 글에서는 1.57542GHz 주파수에 위치한 잘 알려진 L1 대역을 사용하는 민간용 GPS 신호만 검토하기로 한다. GPS 시스템은 실제로 간단한 확산 스펙트럼 통신 시스템이다4. 민간용 애플리케이션을 위한 신호 발생 블록은 그림 3에 나와 있다. 먼저, 50bps 내비게이션 메시지가 20번 반복되어 1000bps 비트 스트림을 생성한다. 그런 다음, 반복된 신호는 고유 C/A 코드에 의해 1023칩의 길이(1칩은 PRN (pseudorandom noise) 코드가 적용되는 속도)로 확산된다. 그 결과, 베이스밴드 신호는 1.023Mbps이므로, GPS 시스템의 43dB 프로세싱 이득(G)은 열 잡음 레벨보다 충분히 낮은 수준에서도 신호를 잘 찾아 낼 수 있게 한다.각 위성에는 골드 코드(gold code)5라고 하는 고유 C/A 코드가 부여된다. 골드 코드는 우수한 자동(auto-correlation) 및 교차 상관(cross-correlation) 특성을 보이므로 WCD MA, cdma2000짋 등과 같은 CDMA 통신 시스템에 광범위하게 사용된다. 베이스밴드 신호는 BPSK(binary phase-shift keying)로 변조된 다음, 전송을 위해 L1 대역으로 상향 변환된다.신호 수신(Acquiring)GPS는 CDMA 통신 시스템이므로, 데이터를 복조하기 전에 먼저 수신기는 PRN(pseudorandom noise) 코드를 동기화해야 한다. 코드 동기화는 보통 coarse-code 정렬을 위한 코드 획득(acquisition), 정밀한 정렬을 위한 코드 위상 추적의 두 단계로 수행된다.6 더 정확하게 설명하면, GPS 수신기는 먼저 특정 위성에 대한 가시적 위치 정보를 갖는지 여부를 먼저 결정해야 한다. 앞에서 설명했듯이 각 위성은 고유의 C/A 코드에 의해 구분된다. 위성이 가시화되면, 수신(acquisition)이 신호의 주파수와 코드 위상을 결정하고, 이렇게 결정된 값으로 해당 복조 파라미터를 결정한다. 수신된 신호 주파수는 도플러 효과(Doppler effect)7로 인해 다양하게 변화하므로, 주파수가 수신기와 관련하여 위성 속도에 따라 공칭 값으로부터 5kHz~10kHz의 편차를 보일 수 있다.수신기에서 GPS 신호는 먼저 정위상(in-phase) 및 직각(quadrature) (I/Q) 성분으로 하향 변환된다. 한 쌍의 I-Q 상관검출기가 I/Q 베이스밴드 신호와 로컬에서 발생된 PRN 시퀀스에 대한 상관 검출을 수행한다. I-Q 상관검출기 출력은 1비트 동안 적분된 후, 합산되어 출력 결정 변수를 제공한다.결정 변수가 특정 임계값을 초과할 때마다 시스템은 해당 수신(acquisition)이 성공적이었다고 가정하고 추적 모드로 들어간다. 그렇지 않을 경우, 로컬에서 발생된 PRN 시퀀스와 발진기 주파수의 상대 위상을 조정하여 결정 변수를 업데이트한 다음, 위의 단계를 반복한다. 순차 검색 방법의 단순한 로직 구조는 ASIC의 구현에 적합하지만, 소프트웨어 구현의 경우 검색 공간이 방대하기 때문에 실용적이지 못하다.시스템이 500Hz 반송파 주파수 오프셋을 허용하고 도플러 주파수가 10kHz라고 가정한다면, 소프트웨어 구현을 위한 검색 공간은 약 2×(10000/500)×1023=40,920이 될 것이다. 시리얼 검색 수신은 소프트웨어로는 어렵다는 것을 알 수 있다.주파수 영역 병렬 코드 위상 수신(frequency-domain parallel code-phase acquisition)이라고 하는 또 다른 수신 방법은 소프트웨어로 구현할 수 있는 덜 복잡한 방법이다. 이 방법에서 도플러 주파수와 코드 위상 검색은 하나의 검색으로 결합되며, PRN 코드를 FFT로 변환함으로써 주파수 영역 안에 모든 코드 위상 정보를 반영한다. 그러면 도플러 주파수 오프셋의 공간만 검색하면 되므로 빠르고 효과적인 소프트웨어 검색이 가능하다.시스템은 먼저 수신 신호를 로컬에서 발생된 사인 및 코사인 반송파(I/Q 신호 성분)와 각각 곱하여 이를 수행한다. 그런 다음, I/Q 성분을 FFT 블록에 대한 복소수 입력으로 결합한다. 이 푸리에 변환값에 PRN 코드의 FFT 변환 켤레값 복소수를 곱한다(PRN 발생기는 제로 코드 위상을 갖는 코드를 발생시킨다). 실제로, PRN 코드의 FFT 동작 및 발생을 테이블로 작성하면 계산의 복잡성을 줄일 수 있다.마지막으로, 수신 및 반송파 주파수 간의 보정을 의미하는 수신 신호와 로컬 코드의 곱을, 제곱 출력(squared output)이 결정 로직에 피드백되는 역 푸리에 변환에 적용한다. FFT 기반 주파수 영역은 계산을 줄여주는 것으로 입증되었다. 앞에 언급된 예에서 수신(acquisition)의 복잡성은 약 20000/500=40FFT의 연산수행이다.이와 같이 시리얼 검색 방법은 편리한 ASIC 구현에 필요한 간단한 로직 및 제어 구조를 갖지만 방대한 검색 영역으로 인해 소프트웨어 알고리즘이 복잡해지므로, 소프트웨어 GPS 수신기에는 적합한 방법이 아니다. 이와는 반대로, 병렬 코드 수신(acquisition) 방법은 복잡성이 낮아 소프트웨어 구현에 이상적이나, 이 방법의 로직 구조는 시리얼 검색 방법보다 훨씬 더 복잡하기 때문에 ASIC로 구현하기는 어렵다.정밀한 정렬을 제공하는 추적획득(acquisition)은 GPS 신호의 주파수와 코드 위상 파라미터에 대한 개략적인 정렬(coarse alignment)을 수행한다. 따라서 추적의 목적은 시스템에서 정확한 코드 위상과 주파수 정보로 데이터를 복조할 수 있도록 이러한 정렬을 정밀하게 하는 데 있다. 추적에는 코드 위상 추적과 반송파 주파수 추적이 있다. 코드 추적은 그림 4에 나온 지연 동기 루프(DLL: delay-lock loop)로 수행된다.DLL 회로는 수신 신호와 관련하여 빠른, 적시, 늦은 도착을 나타내는 PRN 코드의 로컬 복제 코드(±0.5칩에서 시간적으로 배치) 3개를 수신 신호에 곱한다. 적분 후, 이들 신호는 각각 수신 신호와 로컬 복제 간의 상관 관계를 나타낸다. 가장 높은 상관 값을 갖는 하나의 신호가 선택되고 유지된다(그림 5). 반송파 주파수 추적은 위상 동기 루프(PLL) 또는 코스타스 루프(Costas loop)8에 의해 수행된다. 반송파 추적의 목적은 로컬에서 발생된 주파수를 수신 신호의 정확한 주파수에 일치시키는 데 있다.획득 (acquisition) 및 추적으로 초기 동기화를 수행한 후, 시스템은 내비게이션 비트를 디코딩할 수 있다. 데이터 복조는 1.023Mbps 입력 신호를 1000bps 비트 스트림으로 확산하는 것으로부터 시작한다. 그런 다음, 비트 동기화를 호출하여 1000bps 스트림으로부터 50bps 정보를 복구한다. 비트 동기화를 위해 먼저 제 시간에 비트의 시작을 식별할 필요가 있는데, 비트의 시작을 나타내는 제로 크로싱 에지(0V에서)를 찾으면 된다. 그 에지를 알면 내비게이션 데이터 메시지(50비트)의 기간이 20ms라는 것을 알고 있기 때문에 20ms 간격으로 1000bps 입력 스트림을 파티션할 수 있다. 마지막으로, 20ms 간격의 비트 샘플을 합산하고 평균을 구해 내비게이션 데이터를 디코딩한다.PC에서 실행되는 소프트웨어는 내비게이션과 풍부한 위치 기반 서비스를 지원함으로써 노트북 PC를 강력한 위치 추적 장치로 변신시켜 준다. GPS 프런트 엔드는 산업 표준 USB 2.0 인터페이스를 통해 디지털화된 IF 데이터를 노트북으로 전송한다. 소프트 베이스밴드 프로그램은 입력을 사용하여 위치 값을 계산하고, 그에 따라 추적을 수행한다(가능한 소프트웨어 소스 중 하나는 NXP 소프트웨어이다. 자세한 내용은 www.software.nxp.com 또는 www.swgps. com를 참조한다).범용 인터페이스를 제공하기 위해 소프트웨어는 가상 COM 포트를 생성하여 다양한 기존 내비게이션과 위치 추적 애플리케이션에 연결할 수 있다. 대부분의 GPS 소프트웨어 패키지 인터페이스는 NMEA 0183 규격을 준수하며, 마이크로소프트의 윈도우 XP 및 비스타(Vista) 운영 체제에서 실행할 수 있다. 또한 소프트웨어는 산업 표준 프로토콜을 통해 제공되든 고유한 고객의 인터페이스를 통해 제공되든 모든 사용 가능한 보조 데이터(assistance data)를 처리할 수 있어야 한다. 소프트웨어가 1GHz 펜티엄 M 시스템에서 실행하는 경우 추적 시 평균 프로세서 부하는 약 6%이며, 2.18GHz로 동작하는 펜티엄 코어 듀오 프로세서에서 실행할 경우 매초마다 업데이트될 때 프로세서 부하는 보통 5% 미만이다. 알고리즘을 개발하면 CPU 사용을 2% 미만으로 낮출 수 있다.소프트웨어 GPS 기술은 많은 잠재적 애플리케이션에 높은 수준의 유연성과 간편한 구현을 제공한다. 이러한 가능성을 지원하기 위해 MAX2769 RF 프런트 엔드는 소프트웨어 GPS 수신기뿐 아니라 기존의 하드웨어 구현을 위해 유연한 주파수 계획을 제공한다. 물론, 모든 솔루션은 장단점을 갖는다. 소프트웨어 GPS 수신기는 고성능 프로세서와 적지 않은 메모리를 필요로 한다. 그러나 소프트웨어 개발과 적절한 클로킹 및 데이터 업데이트율을 선택하면 메모리 사용은 최소화할 수 있다.
이 기사를 공유합니다
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지