BRPI0708489A2 - Method and Equipment for Searching for Code Space in a Receiver - Google Patents

Method and Equipment for Searching for Code Space in a Receiver Download PDF

Info

Publication number
BRPI0708489A2
BRPI0708489A2 BRPI0708489-7A BRPI0708489A BRPI0708489A2 BR PI0708489 A2 BRPI0708489 A2 BR PI0708489A2 BR PI0708489 A BRPI0708489 A BR PI0708489A BR PI0708489 A2 BRPI0708489 A2 BR PI0708489A2
Authority
BR
Brazil
Prior art keywords
coherent
search
integration
memory
results
Prior art date
Application number
BRPI0708489-7A
Other languages
Portuguese (pt)
Inventor
Douglas Grover
Christopher Patrick
Kai Tang
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0708489A2 publication Critical patent/BRPI0708489A2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • H04B1/7077Multi-step acquisition, e.g. multi-dwell, coarse-fine or validation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • H04B1/7077Multi-step acquisition, e.g. multi-dwell, coarse-fine or validation
    • H04B1/70775Multi-dwell schemes, i.e. multiple accumulation times
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • H04B1/708Parallel implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2201/00Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
    • H04B2201/69Orthogonal indexing scheme relating to spread spectrum techniques in general
    • H04B2201/707Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation
    • H04B2201/70707Efficiency-related aspects
    • H04B2201/7071Efficiency-related aspects with dynamic control of receiver resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

MéTODO E EQUIPMENTO PARA BUSCA DE ESPAçO DE CóDIGO EM UM RECEPTOR Equipamento e métodos para implementar uma busca de espaço de código de sinais recebidos são descritos aqui. Uma busca de espaço de código é implementada como um buscador (220) que desempenha uma sub-tarefa que edinamicamente reconfigurável em cada limite de um tempo de integração inicial. Cada sub-tarefa particular apresenta uma configuração programável de hipóteses de integração coerente que são efetuadas durante o tempo de integração inicial. O buscador armazena os resultados das hipóteses de integração coerente na primeira parte da memória. Um acelerador de busca (250) trabalha com os resultados de integração iniciais. O acelerador de busca pode efetuar a integração coerente de diversos binários de frequência de diferentes hipóteses de temporização, pode gerar valores de energia dos resultados de integração coerente, e pode gerar uma soma de energia não-coerente. Os valores de energia das integrações coerentes e as somas de energia não-coerentes são armazenados na segunda parte da memória. A capacidade para reconfigurar as sub-tarefas e a operação do acelerador proporcionam flexibilidade nas dimensões de espaço de busca.METHOD AND EQUIPMENT FOR SEARCHING CODE SPACE IN A RECEIVER Equipment and methods for implementing a code space search for received signals are described here. A code space search is implemented as a searcher (220) that performs a sub-task that is edinamically reconfigurable at each limit of an initial integration time. Each particular sub-task has a programmable configuration of coherent integration assumptions that are made during the initial integration time. The searcher stores the results of the hypotheses of coherent integration in the first part of the memory. A search accelerator (250) works with the initial integration results. The search accelerator can perform the coherent integration of different frequency binaries from different timing assumptions, it can generate energy values from the coherent integration results, and it can generate a non-coherent energy sum. The energy values of the coherent integrations and the non-coherent energy sums are stored in the second part of the memory. The ability to reconfigure sub-tasks and the operation of the accelerator provide flexibility in the search space dimensions.

Description

"MÉTODO E EQUIPAMENTO PARA BUSCA DE ESPAÇO DE CÓDIGO EM UMRECEPTOR"."METHOD AND EQUIPMENT FOR CODE SPACE SEARCH IN A RECEIVER".

Referência Relacionada ao PedidoOrder Related Reference

0 presente pedido reivindica prioridade do pedidoUS Ns 60/779,172, intitulado "Equipamento e Método deIntegração Coerente Longa para Aquisição de Sinal",depositado em 2 de março de 2006, e reivindica prioridadedo pedido US N- 60/885,523, intitulado "Método eEquipamento para Busca de Espaço de Código em Receptor",depositado em 17 de janeiro de 2007, ambos os quais sãocedidos ao cessionário deste e aqui incorporados porreferência.The present application claims priority of US Application No. 60 / 779,172, entitled "Long Consistent Signal Integration Equipment and Method", filed March 2, 2006, and claims priority of US Application No. 60 / 885,523, entitled "eEquipment Method and Equipment". Receiver Code Space Search ", filed January 17, 2007, both of which are assigned to its assignee and incorporated herein by reference.

Descrição da Técnica AnteriorDescription of the Prior Art

A presente descrição refere à localização deposição de um dispositivo de comunicação sem fio. Maisespecificamente, a presente descrição refere a um sistemareconfigurável para busca de espaço de código em umdispositivo de comunicação sem fio.The present description relates to the deposition location of a wireless communication device. More specifically, the present disclosure relates to a configurable system for searching for code space in a wireless communication device.

Muitas comunicações sem fio utilizam espalhamentoespectral de seqüência direta para comunicar informações.Many wireless communications use direct sequence spectral scattering to communicate information.

Os códigos utilizados para espalhar um sinal sãotipicamente códigos pseudo-aleatórios. Um receptortipicamente recupera as informações subjacentescorrelacionando o código de espalhamento com um códigogerado localmente.The codes used to spread a signal are typically pseudorandom codes. A receptortically retrieves the underlying information by correlating the spreading code with a locally generated code.

Um receptor pode às vezes utilizar umdeslocamento de tempo associado aos códigos paraestabelecer uma referência de temporização que pode serutilizada para efetuar a localização de posição. Adeterminação de posição baseada na temporizaçãoestabelecida a partir de sinais espalhados pseudo-aleatórios é feita em diversos sistemas de localização deposição.Por exemplo, o sistema de navegação do Sistema dePosicionamento Global (GPS) utiliza satélites que estão emórbita ao redor da Terra. Qualquer usuário do GPS, emqualquer lugar na Terra, pode derivar informações denavegação precisas, que incluem a posição tridimensional, avelocidade e a hora do dia. O sistema GPS inclui 24satélites que são utilizados em órbitas circulares comraios de 26600 quilômetros em três planos inclinados a 35°com relação ao equador e afastados 120° uns com relaçõesaos outros. Oito satélites são igualmente afastados dentrode cada uma das três trajetórias da órbita. Medições deposição por meio do GPS são baseadas nas medições dostempos de retardo de propagação de sinais GPS difundidosdos satélites orbitais para um receptor GPS. Normalmente, arecepção de sinais de 4 satélites é necessária para adeterminação de posição precisa em 4 dimensões (latitude,longitude, altitude e tempo). Uma vez que o receptor tivermedido os respectivos retardos de propagação de sinal, afaixa para cada satélite é calculada multiplicando cadaretardo pela velocidade da luz. Então, a localização e otempo são encontrados ao solucionar um conjunto de quatroestações com quatro incógnitas que incorporam as faixasmedidas e as localizações medidas dos satélites. Ascapacidades precisas do sistema GPS são mantidas por meiode relógios atômicos a bordo para cada satélite e porestações de rastreamento no solo que monitoram e corrigemcontinuamente o relógio do satélite e os parâmetros deórbita.A receiver can sometimes use a time offset associated with codes to establish a timing reference that can be used to position position. Position determination based on the timing set from pseudorandom scattered signals is made in various deposition location systems. For example, the Global Positioning System (GPS) navigation system uses satellites that are orbiting the earth. Any GPS user anywhere on Earth can derive accurate navigation information, including three-dimensional position, speed and time of day. The GPS system includes 24 satellites that are used in circular orbits of 26600 kilometers in three planes inclined at 35 ° to the equator and 120 ° apart with respect to each other. Eight satellites are equally spaced from each of the three orbit paths. GPS deposition measurements are based on measurements of the propagation delay time of GPS signals broadcast from orbital satellites to a GPS receiver. Typically, reception of 4 satellite signals is required for accurate position determination in 4 dimensions (latitude, longitude, altitude and time). Once the receiver has measured its signal propagation delays, the range for each satellite is calculated by multiplying the cadre by the speed of light. Then the location and time are found by solving a set of four unknowns that incorporate the measured ranges and measured locations of the satellites. Precise capabilities of the GPS system are maintained by onboard atomic clocks for each satellite and ground tracking stations that continually monitor and correct the satellite clock and orbit parameters.

Cada satélite GPS transmite dois sinais deespalhamento espectral de seqüência direta na banda-L. Umsinal Ll a uma freqüência de portadora de 1,57542 GHz e umsinal L2 a 1,2276 GHz. O sinal Ll consiste em dois sinaisde espalhamento espectral chaveados por deslocamento defase (PSK) modulados na quadradura de fase. O sinal decódigo P (P preciso) e o sinal de código C/A (C/A deaquisição/sem precisão). O sinal L2 contém apenas o sinalde código P. Os códigos P e C/A são seqüências de bits pseudo-aleatórias repetitivas (também referenciadas corno"chips") que são moduladas nas portadoras. A natureza derelógio destes códigos é utilizada pelo receptor narealização de medições de retardo de tempo. Os códigos paracada satélite são únicos, permitindo que o receptordistinga qual satélite transmitiu um dado código, emboratodos eles estejam na mesma freqüência de portadora. Tambémmodulado em cada portadora é um fluxo de dados de 50bits/seg que contém informações sobre o status do sistema eos parâmetros de órbita do satélite, que são necessáriospara os cálculos de navegação. Os sinais de código P sãocriptografados, e não estão geralmente disponíveis parausuários comerciais e privados. 0 sinal C/A está disponívelpara todos os usuários.Each GPS satellite transmits two L-band direct sequence spectral spread signals. A Ll signal at a carrier frequency of 1.57542 GHz and an L2 signal at 1.2276 GHz. The Ll signal consists of two phase-shift modulated PSK-switched spectral spread signals. The P (Precise P) code signal and the C / A code signal (Acquire C / A / not accurate). Signal L2 contains only the P code signal. P and C / A codes are repetitive pseudo-random bit sequences (also referred to as "chips") that are modulated on carriers. The clock nature of these codes is used by the receiver to perform time delay measurements. Each satellite code is unique, allowing the receiver to list which satellite transmitted a given code, even though they are on the same carrier frequency. Also modulated on each carrier is a 50bit / sec data stream that contains information about system status and satellite orbit parameters, which are required for navigation calculations. P code signals are encrypted, and are not generally available to commercial and private users. The C / A signal is available to all users.

As operações executadas em um receptor GPS são,em sua maioria, típicas das executadas em qualquer receptorcom espalhamento espectral de seqüência direta. 0 efeito deespalhamento da modulação do código pseudo-aleatório deveser removido de cada sinal ao multiplicar este por umacópia do código gerada localmente, alinhada no tempo, em umprocesso conhecido como desespalhamento. Uma vez que éimprovável que.o alinhamento temporal ou retardo de códigoapropriado seja conhecido quando da inicialização doreceptor, este deve ser determinado por busca durante afase de "aquisição" inicial de operação de um receptor GPS.The operations performed on a GPS receiver are mostly typical of those performed on any receiver with direct sequence spectral scattering. The spreading effect of pseudorandom code modulation should be removed from each signal by multiplying it by a locally aligned, time-aligned copy of the code in a process known as spreading. Since it is unlikely that the appropriate time alignment or code delay will be known upon initialization of the receiver, it should be determined by searching during the initial "acquisition" phase of operation of a GPS receiver.

Uma vez determinado, o alinhamento temporal de códigoapropriado é mantido durante a fase de "rastreamento" daoperação do receptor GPS.Uma vez que o sinal recebido é desespalhado, cadasinal consiste em um sinal PSK de 50 bits/seg a umafreqüência de portadora intermediária. A freqüência exatadeste sinal é incerta devido ao efeito Doppler causado pelomovimento relativo entre o satélite e a unidade determinal, e ao erro de referência do relógio GPS doreceptor local. Durante a aquisição inicial do sinal, esjzafreqüência Doppler deve ser também buscada, uma vez que ;éusualmente desconhecida antes da aquisição. Uma vez que afreqüência Doppler é aproximadamente determinada, ademodulação da portadora prossegue.Once determined, timely alignment of appropriate code is maintained during the "tracking" phase of GPS receiver operation. Once the received signal is unscrambled, this signal consists of a 50 bit / sec PSK signal at an intermediate carrier frequency. The exact frequency of this signal is uncertain due to the Doppler effect caused by the relative movement between the satellite and the unit, and the GPS clock reference error of the local receiver. During initial signal acquisition, Doppler frequency should also be sought since it is usually unknown prior to acquisition. Once Doppler frequency is approximately determined, carrier modulation proceeds.

Após a demodulação da portadora, a temporizaçãodos bits de dados é derivada por uma malha de sincronizaçãode bits e o fluxo de dados é finalmente detectado. Umcálculo de navegação pode ser empreendido uma vez que ossinais de 4 satélites tenham sido adquiridos e travados, asmedições de retardo de tempo e Doppler necessárias tenhamsido feitas, e um número suficiente de bits de dados (osuficiente para determinar a referência de tempo GPS e osparâmetros de órbita) tenha sido recebido.After carrier demodulation, the timing of data bits is derived by a bit synchronization loop and the data stream is finally detected. A navigation calculation can be undertaken once 4 satellite signals have been acquired and locked, the necessary time delay and Doppler measurements have been made, and a sufficient number of data bits (sufficient to determine the GPS time reference and time parameters). orbit) has been received.

Uma desvantagem do sistema GPS para determinaçãode localização é o tempo longo necessário para a fase deaquisição de sinal inicial. Como mencionado acima, antesque os sinais dos quatro satélites possam ser rastreados,estes devem ser buscados em um "espaço" de buscabidimensional, cujas dimensões são retardo de fase decódigo e deslocamento da freqüência Doppler. Tipicamente,se não houver conhecimento anterior da localização de sinaldentro deste espaço de busca, como seria o caso após umreceptor de "partida a frio", um grande número de retardosde código (cerca de 2000) e freqüências Doppler (cerca de15) deve ser buscado para cada satélite que é para seradquirido e rastreado. Assim, para cada sinal, até 30000locais no espaço de busca devem ser examinados. Tipicamenteestes locais são examinados seqüencialmente um de cada vez,e o processo pode levar de 5 a 10 minutos. O tempo deaquisição é também aumentado se as identidades (isto é,códigos PN) dos quatro satélites dentro da vista da antenade recepção forem desconhecidas.A disadvantage of the GPS system for location determination is the long time required for the initial signal acquisition phase. As mentioned above, before signals from the four satellites can be traced, they must be searched in a two-dimensional "space" whose dimensions are decode phase delay and Doppler frequency shift. Typically, if there is no prior knowledge of the signal location within this search space, as would be the case after a "cold start" receiver, a large number of code delays (about 2000) and Doppler frequencies (about 15) should be sought. for each satellite that is to be acquired and tracked. Thus, for each signal, up to 30000 locations in the search space should be examined. Typically these sites are examined sequentially one at a time, and the process may take 5 to 10 minutes. The acquisition time is also increased if the identities (ie PN codes) of the four satellites within the view of the receiving antenna are unknown.

No caso de um receptor GPS já tiver adquirido ossinais de satélite e estiver então no modo de rastreamento,o processo de determinação de posição é praticamente1,In case a GPS receiver has already acquired satellite signals and is then in tracking mode, the position determination process is virtually 1,

instantâneo. Na utilização rotineira dos terminais sem fio,os usuários ligam e rapidamente iniciam o funcionamento.Este pode ser o caso quando uma comunicação de emergência épretendida. Em tais situações, o retardo de tempo associadoa uma partida a frio na aquisição dos sinais de satéliteGPS de 5 a 10 minutos por uma unidade GPS/de terminal semfio antes que uma determinação de posição possa ser obtida,limita o tempo de resposta do sistema.instantaneous. In routine use of wireless terminals, users turn on and quickly start up. This may be the case when emergency communication is intended. In such situations, the time delay associated with a cold start in the acquisition of 5-10 minute GPS satellite signals by a wireless GPS / terminal unit before a position determination can be obtained limits the system response time.

Assim, há necessidade na técnica de um sistema eum método para. diminuir o tempo necessário para adquirirsinais de satélite GPS e renderizar uma determinação deposição em uma1 unidade GPS/terminal sem fio.Thus, there is a need in the technique of a system and method for. decrease the time required to acquire GPS satellite signals and render a deposition determination on a GPS unit / wireless terminal.

Resumo da InvençãoSummary of the Invention

Equipamentos e métodos para implementar uma buscade espaço de código dos sinais recebidos são descritos. Umabusca de espaço de código é implementada como um buscadorque desempenha uma sub-tarefa que é dinamicamentereconfigurável em cada limite de um tempo de integraçãoinicial. Cada sub-tarefa especifica apresenta umaconfiguração programável das hipóteses de integraçãocoerentes que são efetuadas durante o tempo de integraçãoinicial. 0 buscador armazena os resultados das hipóteses deintegração coerente em uma primeira parte da memória. Umacelerador de busca funciona com base nos resultados deintegração iniciais. O acelerador de busca pode executar aintegração coerente de diversos binários de freqüência dediferentes hipóteses de temporização, pode gerar valores deenergia dos resultados de integração coerente, e pode geraruma soma de energia não coerente. Os valores de energia dasintegrações coerentes e as somas de energia não-coerentessão armazenados na segunda parte da memória. A habilidadepara re-configurar as sub-tarefas e a operação deacelerador provê flexibilidade nas dimensões de espaço ciebusca.Equipment and methods for implementing a code space search for received signals are described. A code space search is implemented as a search engine that performs a subtask that is dynamically configurable at each threshold of an initial integration time. Each specific subtask presents a programmable configuration of the coherent integration assumptions that are made during the initial integration time. The searcher stores the results of the coherent integration hypotheses in a first part of memory. A search accelerator works based on the initial integration results. The search accelerator can perform coherent integration of several frequency binaries of different timing assumptions, can generate energy values of coherent integration results, and can generate a non-coherent energy sum. The energy values of coherent integrations and non-coherent energy sums are stored in the second part of memory. The ability to reconfigure subtasks and accelerator operation provides flexibility in the size of the search space.

Os aspectos da invenção incluem um equipamentopara busca de espaço de código. 0 equipamento inclui umamemória, um buscador configurado para desempenhar umapluralidade de tarefas programáveis e gerar para cadatarefa programável uma série de resultados de integraçãocoerentes obtidos ao longo de um período de tempo deintegração inicial, um acelerador configurado paradeterminar pelo menos uma acumulação coerente dósresultados de integração do buscador com base em uma oumais extensões de integração coerente e deslocamentos defreqüência determinados pelo modo de busca selecionável, eum movimentador de dados configurado para transferir osresultados de integração do buscador para a memória, econfigurado para transferir os resultados de integração da memória para o acelerador.Aspects of the invention include a code space search apparatus. The equipment includes a memory, a search engine configured to perform a plurality of programmable tasks and to generate for a programmable task a series of coherent integration results obtained over an initial integration time period, a configured accelerator to determine at least a coherent accumulation of search engine integration results. based on one or more coherent integration extensions and frequency offsets determined by selectable search mode, and a data mover configured to transfer the integration results from the searcher to memory and configured to transfer the integration results from memory to the accelerator.

Os aspectos da invenção incluem um equipamentopara. busca de espaço de código. 0 equipamento inclui umamemória que tem uma parte alocada para busca de espaço decódigo, a parte dependendo do modo de busca programávelativo, e um circuito de integração acoplado à memória. 0circuito integrado inclui um buscador configurado paragerar uma pluralidade de resultados de integração coerentesdeterminados ao longo de um período de integração inicialpara cada uma de uma pluralidade de tarefas de buscaprogramáveis, um acelerador configurado para determinar umaacumulação coerente dos resultados de integração coerentesao longo de uma extensão de integração coerente e hipótesesde freqüência determinadas pelo modo de busca programávelativo, e um movimentador de dados configurado para efetuartransferências de dados DMA entre o buscador e a memória, eentre o acelerador e a memória.Aspects of the invention include equipment for. Code space search. The apparatus includes a memory that has a space-allocated search part, the part depending on the programmable search mode, and a memory-coupled integration circuit. The integrated circuit includes a search engine configured to provide a plurality of coherent integration results determined over an initial integration period for each of a plurality of programmable search tasks, an accelerator configured to determine a coherent accumulation of coherent integration results over an integration extension. frequency assumptions determined by the programmable seek mode, and a data mover configured to perform DMA data transfers between the seeker and memory, and between the accelerator and memory.

Os aspectos da invenção incluem um método debusca de espaço de código. 0 método inclui capturaramostras complexas de um sinal sem fio recebido, configuraruma pluralidade de tarefas de busca de espaço de código,executar cada uma das tarefas de busca de espaço de códigopara gerar uma pluralidade de resultados de integraçãooerentes obtidos ao longo de um tempo de integraçãoinicial, e determinar uma acumulação coerente de umapluralidade de resultados de integração coerentes, umaextensão de integração e um deslocamento de freqüênciaassociados à acumulação coerente com base no modo de buscade espaço de código programável.Aspects of the invention include a code space debugging method. The method includes capturing complex samples of a received wireless signal, configuring a plurality of code space search tasks, performing each of the code space search tasks to generate a plurality of coherent integration results obtained over an initial integration time, and determining a coherent accumulation of a plurality of coherent integration results, an integration extension, and a frequency shift associated with coherent accumulation based on the programmable code space search mode.

Os aspectos da invenção incluem um método debusca de espaço de código. 0 método inclui capturaramostras complexas de um sinal sem fio recebido, executarcada uma de uma pluralidade de tarefas de busca de espaçode código para gerar uma pluralidade de resultados deintegração coerentes correspondendo a uma pluralidade dehipóteses de espaço de código, armazenar a pluralidade deresultados de integração coerentes na memória, recuperar damemória um número de resultados de integração coerentes quecorrespondem a uma extensão de integração, e determinar umaacumulação coerente do número de resultados de integraçãocoerentes.Aspects of the invention include a code space debugging method. The method includes capturing complex samples of a received wireless signal, performing each of a plurality of code space search tasks to generate a plurality of coherent integration results corresponding to a plurality of code space hypotheses, storing the plurality of coherent integration results in recall, recall a number of coherent integration results that correspond to an integration extent, and determine a coherent accumulation of the number of coherent integration results.

Breve Descrição das FigurasOs aspectos, objetos e vantagens das modalidadesda descrição se tornarão mais evidentes com a descriçãodetalhada apresentada a seguir quando considerada emconjunto com os desenhos, nos quais os mesmos elementos sãoreferenciados pelos mesmos números.BRIEF DESCRIPTION OF THE FIGURES Aspects, objects, and advantages of the embodiments of the disclosure will become more apparent from the following detailed description when taken in conjunction with the drawings, in which the same elements are referred to by the same numerals.

A Figura 1 é um diagrama em blocos simplificadode uma modalidade de um sistema de comunicação sem fio quesuporta localização de posição.Figure 1 is a simplified block diagram of one embodiment of a wireless communication system that supports position location.

A Figura 2 é um diagrama em blocos simplificadode uma modalidade de um sistema de processamento de sinalpara localização de posição implementando a busca de espaçode código.Figure 2 is a simplified block diagram of one embodiment of a signal processing system for position location implementing code space search.

A Figura 3 é um diagrama em blocos funcionalsimplificado que mostra uma modalidade de fluxo de dados emum receptor implementando a busca de espaço de código.Figure 3 is a simplified functional block diagram showing a data flow mode in a receiver implementing code space search.

A Figura 4 é um fluxograma de uma modalidade deum método de busca de espaço de código.Figure 4 is a flowchart of one embodiment of a code space search method.

A Figura 5 é um diagrama em blocos funcionalsimplificado de uma modalidade de um sistema deprocessamento de sinal para localização de posiçãoimplementando a busca de espaço de código.Figure 5 is a simplified functional block diagram of one embodiment of a signal processing system for position location implementing code space search.

Descrição Detalhada da InvençãoDetailed Description of the Invention

Sistemas reconfiguráveis dinamicamente e métodosde busca de espaço de código para aquisição e rastreamentode sinais em ambientes de comunicação sem fio sãodescritos. O sistema reconfigurável inclui uma memória deamostras configurada para armazenar amostras através de umou mais incrementos de busca.Dynamically reconfigurable systems and code space search methods for signal acquisition and tracking in wireless communication environments are described. The reconfigurable system includes a sample memory configured to store samples through one or more search increments.

Um buscador reconfigurável acessa as amostrasarmazenadas para busca de espaço de código e integraçãocoerente. 0 buscador reconfigurável inclui múltiploscorrelatores que podem ser dinamicamente configurados parasuportar qualquer um de um número predeterminado de canais.A configuração do buscador e a atribuição dos correlatorespara canais podem ser atualizadas a cada incremento debusca.A reconfigurable searcher accesses stored samples for code space search and coherent integration. The reconfigurable searcher includes multi-correlators that can be dynamically configured to support any of a predetermined number of channels. The searcher configuration and assignment of correlators for channels can be updated with each search increment.

Os correlatores podem gerar resultados decorrelação para cada uma das atribuições de canalcorrespondentes, e o buscador pode gravar os resultados noarmazenador. 0 tamanho do armazenador pode ser realocadodinamicamente, com base no tempo de integração coerentedesejado.Correlators can generate correlation results for each of the corresponding channel assignments, and the searcher can write the results to the store. The size of the store may be reallocated dynamically based on the desired coherent integration time.

Um movimentador de dados acessa o dispositivo dearmazenagem e transfere os resultados do buscador para umbuffer de amostras. 0 buffer de amostras pode serconfigurado como um buffer duplo, que tem uma primeiraparte de buffer de amostras e uma segunda parte de bufferde amostras. 0 movimentador de dados grava alternadamentena primeira ou segunda parte de buffer para permitir aleitura concomitante da parte de buffer na qual este nãoestá gravando. 0 tamanho da primeira e segunda partes debuffer de amostras pode ser dinamicamente configurado paracorresponder ao tempo de integração inicial que pode ser otempo de integração coerente.A data mover accesses the storage device and transfers search results to a sample buffer. The sample buffer can be configured as a double buffer, which has a first sample buffer part and a second sample buffer part. The data mover alternately records the first or second buffer part to allow concurrent reading of the buffer part to which it is not recording. The size of the first and second sample portions can be dynamically configured to match the initial integration time which can be coherent integration time.

Um acelerador acessa os resultados de correlaçãodo buffer de amostras, e acessa alternadamente a primeira esegunda partes de buffer de amostras, de maneira que sejacomplementar à temporização das gravações no buffer deamostras. O acelerador determina as acumulações coerentesdos. resultados do buscador ao longo de um tempo deintegração inicial que pode ser dinamicamente ajustado. 0comprimento do tempo de integração inicial pode estenderalém do período de tempo de uma modulação de dadossubjacente. Por exemplo, o tempo de integração inicial podeestender-se além de um período de modulação de dados de 20milisegundos pçlo rastreamento da transição da extremidadee dos dados recebidos. O acelerador pode inverterseletivamente os resultados de correlação com base naposição da transição de extremidade e no valor dos dadossubj acentes.An accelerator accesses the sample buffer correlation results, and alternately accesses the first and second sample buffer portions so that it complements the timing of the sample buffer writes. The accelerator determines the coherent accumulations. search engine results over an initial integration time that can be dynamically adjusted. The length of the initial integration time may extend beyond the time period of an underlying data modulation. For example, the initial integration time may extend beyond a data modulation period of 20 milliseconds by tracking end transition and received data. The accelerator can inversely select the correlation results based on the end transition position and the value of the underlying data.

O acelerador pode gerar uma energia ou magnitudepara cada um dos resultados de acumulação coerentes. 0acelerador grava os resultados de energia em um buffer deenergia. O buffer de energia pode ser também configuradocomo um buffer duplo, com a primeira e a segunda partes debuffer de energia. O acelerador pode gravar na primeiraparte do buffer de energia e pode ler concomitantemente dasegunda parte do buffer de energia.The accelerator can generate an energy or magnitude for each of the coherent accumulation results. The accelerator writes the energy results to an energy buffer. The power buffer can also be configured as a double buffer, with the first and second power buffer parts. The accelerator can write to the first part of the power buffer and can read concurrently from the second part of the power buffer.

O movimentador de dados pode ser tambémconfigurado para ler e gravar no buffer de energia. Omovimentador de dados pode ler os resultados de energia dobuffer de energia e gravá-los no armazenador, e pode ler osresultados de energia anteriores do armazenador no bufferde energia.The data mover can also be configured to read and write to the power buffer. The data mover can read the energy results from the energy buffer and write them to the store, and can read the previous energy results from the store into the power buffer.

O acelerador pode determinar integrações não-coerentes ao somar múltiplos resultados de energia. Osresultados são armazenados temporariamente no buffer deenergia, e o movimentador de dados pode armazenar as somasnão-coerentes no armazenador.The accelerator can determine non-coherent integrations by summing multiple energy results. The results are temporarily stored in the power buffer, and the data mover can store non-coherent sums in the store.

A Figura 1 é um diagrama em blocos simplificadode uma modalidade de um sistema de comunicação sem fio 100que suporta localização de posição.Figure 1 is a simplified block diagram of one embodiment of a wireless communication system 100 that supports position location.

O sistema de comunicação sem fio 100 pode incluirum ou mais elementos terrestres que podem estar emcomunicação com o terminal de usuário 110. 0 terminal deusuário 110 pode ser, por exemplo, um telefone sem fioconfigurado para funcionar de acordo um ou mais padrões decomunicação. Os padrões de comunicação podem incluir, porexemplo, GSM, WCDMA e CDMA2000. O terminal de usuário 110pode ser uma unidade portátil, uma unidade móvel ou umaunidade estacionária. 0 terminal de usuário 110 pode sertambém referenciado como unidade móvel, terminal móvel,estação móvel, equipamento de usuário, portátil, telefone esimilares.Wireless communication system 100 may include one or more ground elements that may be in communication with user terminal 110. The home terminal 110 may be, for example, a telephone without a configuration configured to function according to one or more communication standards. Communication standards may include, for example, GSM, WCDMA and CDMA2000. User terminal 110 may be a portable unit, a mobile unit, or a stationary unit. User terminal 110 may also be referred to as mobile unit, mobile terminal, mobile station, user equipment, laptop, and similar phones.

o terminal de usuário 110 comunica tipicamentecom uma ou mais estações base 120a ou 120b, aqui mostradascomo torres celulares setorizadas. O terminal de usuário110 comunicará tipicamente com a estação base, 120b, porexemplo, que apresente a maior intensidade de sinal noreceptor dentro do terminal de usuário 110. Duas estaçõesbase 120a e 120b e um terminal de usuário 110 são mostradosna Figura 1 por conveniência e para maior clareza. Umsistema tem tipicamente inúmeras estações base e podesuportar mais de um terminal de usuário.user terminal 110 typically communicates with one or more base stations 120a or 120b, shown here as sectored cell towers. The user terminal 110 will typically communicate with the base station 120b, for example, which has the highest signal strength within the user terminal 110. Two base stations 120a and 120b and a user terminal 110 are shown in Figure 1 for convenience and for greater convenience. clarity. A system typically has numerous base stations and can support more than one user terminal.

O terminal de usuário 110 pode determinar suaposição, em parte com base nos sinais de localização deposição recebidos de uma ou mais fontes de sinais. Asfontes de sinal podem incluir um ou mais satélites 130, quepodem ser parte de um sistema de localização de posiçãobaseado em satelite, como o GPS, por exemplo. As fontes desinal podem incluir também a estação ou estações base 120aou 120b.User terminal 110 may determine its position, in part based on deposition location signals received from one or more signal sources. Signal sources may include one or more satellites 130, which may be part of a satellite-based position location system, such as GPS, for example. Desinal sources may also include base station or base stations 120a or 120b.

O terminal de usuário 110 pode determinar sualocalização, em parte, ao determinar uma pseudo-faixa paracada fonte de sinal de localização de posição. Cada fontede sinal de localização de posição transmite um sinal delocalização de posição que é espalhado utilizando um códigode pseudo-ruido, e o terminal de usuário pode determinaruma pseudo-faixa, em parte, ao correlacionar um código depseudo-ruido gerado localmente com os sinais recebidos paradeterminar a fase do sinal de pseudo-ruido recebida. Oterminal de usuário 110 pode determinar uma pseudo-faixaque correlaciona com o tempo ou a distância, com base emparte, na fase do sinal de pseudo-ruido recebido.User terminal 110 may determine its location in part by determining a pseudo-band for each position location signal source. Each position location signal source transmits a position location signal which is spread using a pseudo-noise code, and the user terminal can determine a pseudo-band in part by correlating a locally generated noise code with received signals. to determine the phase of the received pseudo noise signal. User terminal 110 can determine a pseudo-band that correlates with time or distance, based on part, on the phase of the received pseudo-noise signal.

Cada uma das estações base 120a e 120b pode seracoplada a um Controlador de Estação Base (BSC) 140, quedireciona os sinais de comunicação para e das estações base120a e 120b apropriadas. O BSC 140 pode ser acoplado a umCentro de Comutação Móvel (MSC) 150, que pode serconfigurado para funcionar como uma interface entre ;oterminal de usuário 110 e uma Rede de Telefonia ComutaÜaPública (PSTN) 170. Portanto, o MSC 150 é também acoplado .àPSTN 170. 0 MSC 150 pode ser também configurado pa:pacoordenar handoffs inter-sistema com outros sistemas decomunicação.Each of the base stations 120a and 120b may be coupled to a Base Station Controller (BSC) 140 which directs the communication signals to and from the appropriate base stations 120a and 120b. The BSC 140 can be coupled to a Mobile Switching Center (MSC) 150, which can be configured to function as an interface between the user terminal 110 and a Public Switched Telephone Network (PSTN) 170. Therefore, the MSC 150 is also coupled. àPSTN 170. The MSC 150 can also be configured to: coordinate inter-system handoffs with other communication systems.

Um Centro de Localização de Posição (PLC) 160pode ser também acoplado ao BSC 140. O PLC 160 pode serconfigurado, por exemplo, para armazenar informações delocalização de posição, como, por exemplo, a localização decada uma das estações base 120a e 120b no sistema delocalização de1 posição 100. Em uma modalidade, o PLC 160pode ser configurado para fornecer informações ao terminalde usuário 110 de modo que o terminal de usuário 110 possadeterminar sua localização com base, em parte, nas faixasde pseudo-ruido para várias fontes de sinal, em que asfaixas de pseudo-ruido podem ser valores de tempo dechegada relativos. Em outra modalidade, o PLC 160 pode serconfigurado para determinar a localização do terminal deusuário 110 com base nas informações de pseudo-faixafornecidas pelo terminal de usuário 110. Nesta últimamodalidade, um servidor de rede (não mostrado) no PLC 160pode efetuar a determinação de localização de posição paradescarregar o processamento do terminal de usuário 110.A Position Location Center (PLC) 160 may also be coupled to the BSC 140. The PLC 160 may be configured, for example, to store position location information, such as the location of one of the base stations 120a and 120b in the system. 1 position 100. In one embodiment, the PLC 160 may be configured to provide information to user terminal 110 so that user terminal 110 can determine its location based in part on pseudo noise ranges for various signal sources, in particular. pseudo noise ranges can be relative closed time values. In another embodiment, the PLC 160 may be configured to determine the location of the god terminal 110 based on the pseudo-band information provided by the user terminal 110. In the latter mode, a network server (not shown) on the PLC 160 may perform location determination. position to load user terminal processing 110.

O PLC 160 pode ser configurado para comandar asestações base 120a e 120b, por meio do BSC 140, para gerarsinais de localização de posição. Em outras modalidades, asestações base 120a e 120b podem ser configuradas para gerarperiodicamente os sinais de localização de posição.The PLC 160 can be configured to control base stations 120a and 120b by means of BSC 140 for position location signals. In other embodiments, base stations 120a and 120b may be configured to periodically generate position location signals.

O terminal de usuário 110 pode determinar, em conjunto com o PLC 160, sua posição utilizando qualquer umade várias técnicas de localização de posição. 0 terminal deusuário 110 ou PLC 160 pode selecionar a técnica com base,em parte, nas fontes de sinal que são utilizadas para gerarvalores de pseudo-faixa. Por exemplo, um terminal de usuário 110 pode utilizar o tempo de chegada (TOA),diferença de tempo de chegada (TDOA), trilateração de linkdireto avançada (AFLT) ou alguma outra técnica delocalização de posição. 0 terminal de usuário 110 ou PLC160 pode determinar a posição do terminal de usuário 110 implementando a técnica de localização de posição que ébaseada no GPS, que aumenta os sinais GPS com balizasterrestres, tais como sistemas de localização de posiçãohíbridos, e que são baseados em valores de pseudo-faixaderivados das balizas terrestres.User terminal 110 can determine, in conjunction with PLC 160, its position using any of several position location techniques. The god terminal 110 or PLC 160 may select the technique based in part on the signal sources that are used to generate pseudo-band values. For example, a user terminal 110 may use arrival time (TOA), arrival time difference (TDOA), advanced direct link trilateration (AFLT), or some other position location technique. User terminal 110 or PLC160 can determine the position of user terminal 110 by implementing the GPS-based position location technique, which enhances GPS signals with beacons such as hybrid position tracking systems, which are based on values. pseudo-band derivatives of the terrestrial beacons.

De modo a gerar uma primeira determinação, comoquando é ligado, o receptor no terminal de usuário 110configurado para processar sinais de satélite GPS necessitabuscar através de todas as seqüências de código PN desatélite, todas as hipóteses de fase de código PN, e todosos deslocamentos de freqüência Doppler de modo a receber ossinais de satélite necessários. Isto significa buscar 24satélites, uma faixa predeterminada de freqüência Doppler,e 1023 hipóteses de código (que é tipicamente implementadocomo 2046 deslocamentos e cálculos de código de meio chipdiscreto). Após determinar uma posição inicial, o terminalde usuário 110 pode limitar o número de freqüências e fasesde código buscadas para um subconjunto que é baseado nossinais de satélite utilizados na determinação da posiçãoinicial. O terminal de usuário 110 pode reduzir o número deseqüências de código PN de satélite discretas buscadas de24 ao conjunto de satélites realmente visíveis, que étipicamente 8, mas pode ser de apenas 4.In order to generate a first determination, as when it is turned on, the receiver at the user terminal 110 configured to process GPS satellite signals will need to search through all the satellite PN code sequences, all PN code phase assumptions, and all frequency offsets. Doppler to receive required satellite signals. This means fetching 24 satellites, a predetermined Doppler frequency range, and 1023 code hypotheses (which is typically implemented as 2046 displacements and discrete chip code calculations). After determining a starting position, user terminal 110 may limit the number of frequencies and code phases searched for a subset that is based on our satellite signals used in determining the starting position. User terminal 110 can reduce the number of discrete satellite PN code fetches fetched from 24 to the actually visible satellite array, which is typically 8, but can be only 4.

Entretanto, o terminal de usuário 110 podenecessitar buscar uma ou mais seqüências de código PN parauma ou mais balizas terrestres se a determinação de posiçãonão for possível usando somente informações de satéliteGPS. As seqüências de código utilizadas pelas balizasterrestres são tipicamente distintas das seqüências decódigo utilizadas pelos satélites GPS. Além disto, a linhade tempo e o processamento dos sinais de localização deposição terrestres são tipicamente distintos destes para o GPS.However, user terminal 110 may need to fetch one or more PN code sequences for one or more terrestrial beacons if position determination is not possible using only GPS satellite information. The code sequences used by beacons are typically distinct from the code sequences used by GPS satellites. In addition, the timeline and processing of terrestrial deposition location signals are typically distinct from these for GPS.

0 terminal de usuário 110 pode incluir umprocessador de sinal de recepção reconfigurável. Oprocessador de sinal reconfigurável pode incluir múltiplosrecursos configuráveis independentemente e pode suportarvários tempos de integração. Os recursos configuráveisindependentemente podem ser configurados para efetuar umabusca de uma parte de espaço de código selecionada ao longode um tempo configurável. Os resultados da busca podem serintegrados coerentemente ao longo de um tempo de integraçãoconfigurável. Além disto, os resultados da integração podemser integrados não-coerentes.User terminal 110 may include a reconfigurable receive signal processor. The reconfigurable signal processor can include multiple independently configurable features and can support multiple integration times. Independently configurable features can be configured to search a selected portion of code space over a configurable time. Search results can be integrated coherently over a configurable integration time. In addition, integration results can be non-coherent integrated.

A implementação do processador de sinal derecepção reconfigurável no terminal de usuário 110 permiteque o terminal' de usuário 110 dedique recursos de maneiraeficaz para as condições de processamento atuais. Durante adeterminação de posição inicial, por exemplo, o terminal deusuário 110 pode configurar o processador de sinal derecepção reconfigurável para buscar por um número máximo defontes de localização de posição para identificarrapidamente a identidade das fontes de sinal de localizaçãode posição. Por exemplo, o terminal de usuário podeinicialmente buscar por um número máximo predeterminado desatélites GPS para identificar qual dos satélites GPSoriginou os sinais recebidos. Uma vez que o terminal deusuário 110 determina qual dos satélites GPS originou ossinais recebidos, o terminal de usuário 110 podereconfgurar o processador de sinal de recepção patapermitir um processamento mais focalizado dos sinais desatélite identificados. Por exemplo, o terminal de usuário110 pode configurar um tempo de integração coerente maislongo para aperfeiçoar a sensibilidade de recepção assimcomo a seletividade de freqüência.The implementation of the reconfigurable receiving signal processor on user terminal 110 allows user terminal 110 to devote resources effectively to current processing conditions. During home position determination, for example, the god terminal 110 may configure the reconfigurable receiving signal processor to search for a maximum number of position location sources to rapidly identify the identity of position location signal sources. For example, the user terminal may initially search for a predetermined maximum number of GPS satellites to identify which of the GPS satellites originated the received signals. Since the god terminal 110 determines which of the GPS satellites originated the received signals, the user terminal 110 can configure the receive signal processor to allow more focused processing of the identified satellite signals. For example, user terminal 110 may set a longer coherent integration time to improve reception sensitivity as well as frequency selectivity.

A Figura 2 é um diagrama em blocos funcionalsimplificado de uma modalidade de um sistema deprocessamento de sinal de localização de posiçãoreconfigurável 200 que implementa busca de espaço decódigo. O sistema de processamento de sinal 200 inclui umservidor de amostra 210 acoplado a um buscador 220. 0buscador 220 gera resultados que são armazenados em umamemória 240. TJm acelerador 250 acessa os resultados dobuscador na memória 240 e executa processamento de sinaladicional.Figure 2 is a simplified functional block diagram of one embodiment of a configurable position location signal processing system 200 implementing code space search. Signal processing system 200 includes a sample server 210 coupled to a searcher 220. Searcher 220 generates results that are stored in a memory 240. An accelerator 250 accesses the results of the searcher in memory 240 and performs additional signal processing.

Um movimentador de dados 230 grava os resultadosdo buscador 220 nos locais dentro da memória 240. 0movimentador de dados 230 também controla as operações deleitura e gravação entre a memória 240 e um buffer 260associado ao acelerador 250. 0 buffer 260 pode ser divididoem um buffer de amostras 262 e um buffer de energia 264.Cada um dentre o buffer de amostras 262 e o buffer deenergia 2 64 pode ser configurado como buffer duplo, em queos dados são gravados em uma primeira parte do buffer,enquanto outros dados são lidos concomitantemente de umasegunda parte do buffer.A data mover 230 writes the results of finder 220 to locations within memory 240. The data mover 230 also controls read and write operations between memory 240 and a buffer 260 associated with accelerator 250. The buffer 260 can be split into a sample buffer 262 is a power buffer 264.Each of one of the sample buffer 262 and the power buffer 264 can be set to double buffer, where data is written to a first part of the buffer, while other data is read concomitantly from a second part. buffer

Um controlador 270 opera para configurar obuscador 220 e o acelerador 250. Por exemplo, o controlador270 pode configurar as sub-tarefas executadas pelo buscador220. O controlador 270 pode configurar também os tempos ouextensões de integração coerentes assim como a extensão dassomas de energia não-coerentes efetuadas pelo acelerador250.A controller 270 operates to configure observer 220 and accelerator 250. For example, controller270 may configure subtasks performed by seeker220. Controller 270 can also configure coherent integration times or extensions as well as the extent of non-coherent energy summaries performed by accelerator 250.

O controlador 270 pode também configurar aquantidade de memória que é necessária para armazenar osdiversos valores de correlação e somas de energia. Aquantidade de memória necessária para armazenar resultadosde correlação é determinada, em parte, com base nocomprimento de uma integração coerente e no número de somasde energia não-coerentes. 0 controlador 270 utiliza osrecursos de memória necessários para suportar aconfiguração e permite que qualquer memória não utilizadaseja utilizada em outros processos. O controlador 270comunica o mapa de memória dinâmico ao movimentador dedados 230 para permitir que o movimentador de dados 130acesse os locais de memória apropriados quando da leituraou gravação na memória 240.Controller 270 may also configure the amount of memory that is required to store the various correlation values and sums of energy. The amount of memory required to store correlation results is determined, in part, on the basis of the length of coherent integration and the number of non-coherent energy sums. Controller 270 uses the memory resources required to support configuration and allows any unused memory to be used in other processes. Controller 270 communicates the dynamic memory map to data mover 230 to allow data mover 130 to access the appropriate memory locations when reading or writing to memory 240.

O servidor de amostras 210 é tipicamenteimplementado como uma memória, tal como RAM, que armazenatemporariamente amostras complexas dos sinais recebidos. Emoutras modalidades, o servidor de amostras 210 pode incluirum amostrador de sinal, como, por exemplo, um ConversorAnalógico-Digital (ADC) complexo, que é configurado paraamostrar os sinais de banda base recebidos e gerar amostrasem fase (I) e em fase de Quadratura (Q).Sample server 210 is typically implemented as a memory, such as RAM, which temporarily stores complex samples of received signals. In other embodiments, sample server 210 may include a signal sampler, such as a complex Digital Analog Converter (ADC), which is configured to display received baseband signals and generate phase (I) and Quadrature phase samples. (Q)

Por exemplo, o servidor de amostras 210 pode serconfigurado para armazenar até 4 milissegundos de amostrascomplexas obtidas ao dobrar a taxa de chips. Evidentemente,o servidor de amostras 210 não está limitado às amostrascapturadas ao dobrar a taxa de chips, e a taxa de amostrasatual pode ter alguma outra fração ou múltiplo de uma taxade chips. Por exemplo, o servidor de amostras 210 pode serconfigurado para armazenar amostras que são capturadas hataxa de chips, em quatro vezes a taxa de chips ou algumoutro intervalo. No caso do sistema de processamento ciesinal 200 ser configurado para processar sinais GPSrecebidos, a taxa de amostragem pode ser de aproximadamente2 MHz. O servidor de amostras 210 pode ser sincronizado comum relógio em tempo real (não mostrado) de modo que oslimites de milisegundos das amostras armazenadas noservidor de amostras 210 coincidam com os limites demilisegundos GPS correspondentes a um periodo de código.For example, sample server 210 can be configured to store up to 4 milliseconds of complex samples obtained by doubling the chip rate. Of course, sample server 210 is not limited to samples captured by doubling the chip rate, and the current sample rate may have some other fraction or multiple of a chip rate. For example, sample server 210 may be configured to store samples that are captured at the chip rate, at four times the chip rate or some other interval. In the event that the cesignal processing system 200 is configured to process received GPS signals, the sampling rate may be approximately 2 MHz. The sample server 210 may be synchronized with a real time clock (not shown) so that the millisecond limits of the samples stored in the sample server 210 match the GPS demilisecond limits corresponding to a code period.

O buscador 220 funciona com base nas amostrascomplexas armazenadas no servidor de amostras 210. 0buscador 220 suporta 32 sub-tarefas configuráveisindependentemente, e cada tarefa pode ser re-atribuida a cada 1 milisegundo. Cada sub-tarefa busca uma janela de 32chips em até 64 hipóteses distintas. As sub-tarefas podemser atribuidas para buscar os mesmos ou diferentes códigoscorrespondendo aos satélites GPS. 0 aumento do número desub-tarefas atribuidas para buscar um espaço de código deum satélite especifico diminui o tempo de busca médio. Onúmero total de hipóteses distintas e o comprimento de cadajanela podem ser alterados ao alterar a configuração dohardware, e o número atual e a configuração das sub-tarefasnão estão limitados ao exemplo descrito acima.The finder 220 works based on the complex samples stored on the sample server 210. The searcher 220 supports 32 independently configurable subtasks, and each task can be reassigned every 1 millisecond. Each subtask fetches a 32-chip window in up to 64 different hypotheses. Subtasks can be assigned to search for the same or different codes corresponding to GPS satellites. Increasing the number of tasks assigned to search for a specific satellite code space decreases the average search time. The total number of different assumptions and the length of each window can be changed by changing the hardware configuration, and the current number and configuration of subtasks are not limited to the example described above.

Por exemplo, em uma busca de fase de código GPS,uma sub-tarefa pode ser configurada para buscar uma janelade amostras de 32 chips em até 64 hipóteses distintas. 0número de hipóteses buscadas pode ser programável pelocontrolador 270 e pode variar, por exemplo, na faixa de 2 a64 em múltiplos de 2.For example, in a GPS code phase search, a subtask can be configured to fetch a 32-chip sample window in up to 64 different hypotheses. The number of hypotheses sought may be programmable by controller 270 and may vary, for example, in the range of 2 to 64 in multiples of 2.

Antes de efetuar as buscas de fase de código, obuscador 220 corrige o deslocamento de freqüência no sinalrecebido. Em uma modalidade, o buscador 220 podeimplementar um rotator para girar as amostras de busca atéuma freqüência central desejada. O grau de deslocamento defreqüência compensado pelo rotator pode ser determinado combase, em parte, em uma malha de correção de freqüência quepode ser implementada como uma busca de freqüência efetuadapelo sistema de processamento de sinal 200.Before performing code phase searches, observer 220 corrects the frequency shift in the received signal. In one embodiment, the searcher 220 may implement a rotator to rotate the search samples to a desired center frequency. The degree of frequency offset offset by the rotator can be determined by combining, in part, into a frequency correction loop that can be implemented as a frequency search performed by the signal processing system 200.

O buscador 220 pode efetuar opcionalmente ainterpolação da seqüência de chips recebida sobre-amostrada. O processo de interpolação pode ser tambémreferenciado como re-amostragem dos sinais de entrada antesda correlação. Em uma modalidade, os sinais recebidos sãoamostrados ao dobrar a taxa de chips da seqüência decódigos (chipx2). Um re-amostrador interpola duas amostrassucessivas e introduz um retardo variável. O retardovariável é tipicamente menor que a metade do período dechips, e pode ser, por exemplo, um quarto do período dechips ou múltiplos de uma fração menor de um período dechip. Por exemplo, o re-amostrador pode introduzir umretardo variável em múltiplos de um oitavo de um período dechips, onde os múltiplos variam de zero a três.The finder 220 may optionally perform the interpolation of the over-sampled received chip sequence. The interpolation process can also be referred to as re-sampling of input signals prior to correlation. In one embodiment, received signals are shown by doubling the chip rate of the code sequence (chipx2). A resampler interpolates two successive samples and introduces a variable delay. The retardovariate is typically less than half of the dechip period, and can be, for example, a quarter of the dechips period or multiples of a smaller fraction of a dechip period. For example, the re-sampler may introduce a variable delay in multiples of one-eighth of a decay period, where multiples range from zero to three.

O buscador 220 desespalha a seqüência de 32 chipsutilizando cada uma das hipóteses, onde uma hipótesecorresponde a uma fase específica de uma seqüência decódigos PN gerada localmente. Cada hipótese pode seralinhada, por exemplo, nos limites de meio chip parapermitir uma busca de 32 deslocamentos de fase de código.Em outra modalidade, cada hipótese pode ser alinhada em umlimite de chip, permitindo assim uma busca de 64deslocamentos de fase de código distintos. O buscador 220 éconfigurado para armazenar cada um dos resultados decorrelação complexos em um buffer do buscador. Omovimentador de dados 230 pode armazenar os resultados debusca armazenados temporariamente em um local na memória 240.The 220 searcher spans the 32 chip sequence using each hypothesis, where one hypothesis corresponds to a specific phase of a locally generated PN code sequence. Each hypothesis can be aligned, for example, at half-chip boundaries to allow a search for 32 code phase offsets. In another embodiment, each hypothesis can be aligned on a chip boundary, thus allowing a search for 64 distinct code phase offsets. The searcher 220 is configured to store each of the complex correlation results in a searcher buffer. The data mover 230 can store the search results temporarily stored in a location in memory 240.

Em uma modalidade, o buffer de busca 224 éconfigurado como um buffer duplo. O buscador 220 pode serconfigurado para atualizar uma primeira parte do bufferduplo, enquanto uma segunda parte do buffer duplo éacessada pelo movimentador de dados 230 para mover osresultados anteriores do buscador na memória 240. Aconfiguração do buffer duplo permite que o buscador 220seja computado limitado do que a transferência de dadoslimitada. Ao configurar um buffer duplo, a transferênciados resultados computados anteriormente não necessitacompletar antes da próxima tarefa do buscador, e atransferência de dados de resultados anteriores podeocorrer concomitantemente com o processamento da tarefamais recente.In one embodiment, fetch buffer 224 is configured as a double buffer. Searcher 220 can be configured to update a first double buffer part, while a second double buffer part is accessed by data mover 230 to move previous searcher results into memory 240. Dual buffer setting allows the searcher 220 to be computed limited than the data buffer. limited data transfer. By configuring a double buffer, the transfer of previously computed results does not need to be completed before the next searcher task, and the transfer of data from previous results can occur concurrently with processing the most recent task.

Evidentemente, o buscador 220 não está limitado àutilização de uma configuração de buffer duplo, e podeutilizar alguma outra configuração de memória que permita oprocessamento e a transferência de dados concomitantes. Porexemplo, o buscador 220 pode implementar um buffer circularque tenha um tamanho que seja suficiente para permitir quetodas as transferências de dados ocorram antes da próximaatualização de um local de memória especifico.Of course, the finder 220 is not limited to using a double buffer configuration, and may use some other memory configuration that allows concurrent processing and data transfer. For example, finder 220 may implement a circular buffer that is of a size sufficient to allow all data transfers to occur before the next update of a specific memory location.

A configuração do buscador 220, e em particular aconfiguração do número de hipóteses e do espaço de códigobuscado podem ser configuradas a cada incremento decorrelação. No exemplo descrito acima, o incremento decorrelação ocorre a cada milisegundo.O buscador 220 inclui um registrador de comandosde hardware que pode ser atualizado a cada incremento decorrelação. O controlador 270 pode gravar o local e otamanho de uma fila de tarefas no registrador de comandosde hardware. Como observado anteriormente, o buscador 22 0pode ser controlado para desempenhar até 32 tarefasseparadas em uma única fila.The setting of the searcher 220, and in particular the setting of the number of hypotheses and the codedbreaking space can be configured with each correlation increment. In the example described above, the correlation increment occurs every millisecond. Searcher 220 includes a hardware command register that can be updated with each correlation increment. Controller 270 can write the location and size of a job queue to the hardware command logger. As noted earlier, seeker 22 0 can be controlled to perform up to 32 separate tasks in a single queue.

O buscador 220 é configurado para acessar a filaindicada pelo registrador de comandos de hardware. Obuscador 220 pode obter uma fila de tarefas durante oprocessamento de uma tarefa, e pode determinar, com base novalor de comparação de validade, o tempo inicial de umatarefa indicada no registrador de comandos de hardware.Seeker 220 is configured to access the queue indicated by the hardware command register. Observer 220 can obtain a task queue during the processing of a task, and can determine, based on the expiration comparison value, the initial time of a task indicated in the hardware command logger.

O acelerador 250 é configurado para processar osresultados de correlação do buscador 220. O acelerador 250pode ser configurado para operar nos dados armazenados nobuffer 260, de modo a diminuir o número de transferênciasde dados distintas que é necessário iniciar. O buffer 260pode incluir um buffer de amostras 262 e um buffer degrades de energia 264. Cada um dentre o buffer de amostras262 e o buffer de grades de energia 264 pode ser dispostocomo um buffer duplo, de modo a eliminar quaisquerproblemas de disputa de memória possíveis referentes àleitura e gravação de locais na memória 240.Accelerator 250 is configured to process the seeker correlation results 220. Accelerator 250 may be configured to operate on data stored in buffer 260 so as to decrease the number of distinct data transfers that must be initiated. Buffer 260 may include a sample buffer 262 and a power grid buffer 264. Each of the sample buffer 262 and the power grid buffer 264 may be disposed as a double buffer so as to eliminate any possible memory dispute issues concerning reading and writing memory locations 240.

Cada buffer duplo pode incluir primeira e segundapartes ou bancos de memória. A qualquer tempo, um banco dobuffer é acoplado à máquina de integração do acelerador250, e o outro banco do buffer é acoplado ou de outro modoacessível ao movimentador de dados 280. A associação dosbancos com a máquina de integração ou movimentador de dados280 é trocada após cada intervalo de processamento.Each double buffer can include first and second parts or memory banks. At any time, one dobuffer bank is coupled to the throttle integration machine 250, and the other buffer bank is coupled or otherwise accessible to data mover 280. The association of the banks with the integration machine or data mover 280 is changed after each processing interval.

O acelerador 250 inclui uma máquina de integraçãoque inclui vários acumuladores paralelos configurados paragerar somas de integração coerentes ao longo de um tempo deintegração configurável e múltiplas freqüências. Embora oacelerador 250 possa ser controlado para suportarpraticamente qualquer comprimento de integração coerente, oacelerador 250 pode ser otimizado para suportar um conjuntodiscreto de comprimentos de integração. Em uma modalidade,o acelerador 250 pode ser configurado para gerar somas deintegração coerentes, também referenciado como acumulaçõescoerentes, ao longo de tempos de integração de 10, 20, 39,80 ou 160 mseg. Uma vez que o buscador 220 gera resultadosde integração coerentes ao longo de períodos de 1milisegundo, o tempo de acumulação coerente, emmilisegundos, corresponde ao comprimento de integraçãocoerente. 0 acelerador 250 pode ser configurado pararastrear extremidades de bit e valores de bit, de modo aacomodar comprimentos de integração que estendem através deuma ou mais extremidades de bit.Accelerator 250 includes an integration machine which includes several parallel accumulators configured to provide coherent integration sums over a configurable integration time and multiple frequencies. Although accelerator 250 can be controlled to support virtually any coherent integration length, accelerator 250 can be optimized to support a discrete set of integration lengths. In one embodiment, accelerator 250 may be configured to generate coherent integration sums, also referred to as coherent accumulations, over integration times of 10, 20, 39.80 or 160 msec. Since the searcher 220 generates coherent integration results over 1 millisecond periods, the coherent accumulation time, in milliseconds, corresponds to the coherent integration length. The throttle 250 may be configured to track bit ends and bit values to accommodate integration lengths extending across one or more bit ends.

O número de percursos de acumulação paralelosdepende do nível aceitável de complexidade dentro doacelerador 250. Em uma modalidade, o acelerador 250 podeincluir, por exemplo, seis percursos de multiplicador-acumulador paralelos que permitem a soma de um conjunto deamostras em seis freqüências distintas. A operação dospercursos de acumulação paralelos pode ser repetida parasuportar várias freqüências e vários conjuntos de amostras.The number of parallel accumulation paths depends on the acceptable level of complexity within accelerator 250. In one embodiment, accelerator 250 may include, for example, six parallel multiplier-accumulator paths that allow the sum of a set of samples at six distinct frequencies. The operation of parallel accumulation paths can be repeated to support multiple frequencies and multiple sample sets.

Os buffers de acelerador 262 podem sersuficientes para integrações de 20 milisegundos para todasas hipóteses de uma tarefa. Similarmente, os buffers deenergia 264 podem ser grandes o suficiente para suportar 20freqüências através de cada um dos 64 deslocamentos detempo. Integrações mais longas que 20 milisegundos podemser efetuadas ao processar um subconjunto do número totalde deslocamentos de tempo em uma única operação. Aoexecutar integrações de 20*N milisegundos, N operações deacelerador são utilizadas. Cada operação processa 63/Nhipóteses de tempo. Cada memória de amostras guarda 20*Nmilisegundos para cada um dos 64/N deslocamentos de tempo.Accelerator buffers 262 can be sufficient for 20 millisecond integrations for all hypotheses of a task. Similarly, power buffers 264 may be large enough to support 20 frequencies across each of the 64 time offsets. Integrations longer than 20 milliseconds can be performed by processing a subset of the total number of time offsets in a single operation. When performing 20 * N millisecond integrations, N accelerator operations are used. Each operation processes 63 / time hypotheses. Each sample memory holds 20 * Nseconds for each of the 64 / N time offsets.

Cada memória de energia guarda 20*N freqüências para cadaum dos 64/N deslocamentos de tempo. A largura de banda dememória resultante e a taxa de transações de aceleradornecessárias para suportar diferentes comprimentos deintegração permanecem as mesmas.Each power memory stores 20 * N frequencies for each of the 64 / N time shifts. The resulting memory bandwidth and throttle transaction rate required to support different integration lengths remain the same.

Por exemplo, o acelerador 250 pode serconfigurado para suportar concomitantemente um tempo deacumulação de 20 milisegundos através de 64 hipóteses detempo distintas em uma única operação ou pode serconfigurado para suportar um tempo de acumulação de 160milisegundos através de 8 hipóteses de tempo distintas namesma operação única. O acelerador 250 pode executar 8operações separadas para buscar as mesmas 64 hipóteses defreqüência. Desta maneira, a largura de banda de dadosutilizada pelo acelerador permanece constante independentedo tempo de integração.For example, the accelerator 250 may be configured to concurrently support a 20 millisecond accumulation time across 64 distinct time assumptions in a single operation or may be configured to support a 160 millisecond accumulation time across 8 distinct time assumptions in a single operation. Accelerator 250 can perform 8 separate operations to fetch the same 64 frequency assumptions. In this way, the data bandwidth used by the accelerator remains constant regardless of integration time.

O tamanho da faixa de freqüência expandido peloacelerador 250 é tipicamente de 500 Hertz no total,estendendo aproximadamente por 250 Hertz abaixo e 250 Hertzacima da freqüência nominal. O número de hipóteses defreqüência analisadas concomitantemente pelo acelerador 250varia de acordo com o comprimento de integração coerente.Em uma modalidade, o número de hipóteses de freqüênciaprocessadas é fixado como sendo igual ao comprimento deintegração coerente. O acelerador 250 espaça os binários defreqüência distintos aproximadamente de maneira uniformepor toda a duração de freqüência.The size of the frequency range expanded by the 250 accelerator is typically 500 Hertz in total, extending approximately 250 Hertz below and 250 Hertz above the nominal frequency. The number of frequency assumptions analyzed concurrently by the accelerator 250 varies according to the coherent integration length. In one embodiment, the number of frequency assumptions processed is set equal to the coherent integration length. The accelerator 250 spaces the distinct frequency frequencies approximately evenly over the entire frequency duration.

O acelerador 250 determina a integração coerenteem um deslocamento de freqüência especifico ao girar asamostras de entrada pelo deslocamento de freqüênciadesejado e somar o comprimento de integração coerente. Oacelerador 250 pode então computar a energia da somacoerente, de modo a ocupar uma grade de energiabidimensional. A grade de energia bidimensional podeincluir a energia para o comprimento de integração coerenteatual para cada hipótese de tempo e cada deslocamento defreqüência.Accelerator 250 determines coherent integration at a specific frequency offset by rotating the input samples by the desired frequency offset and summing the coherent integration length. The accelerator 250 can then compute the energy of the coherent sum to occupy a two-dimensional energy grid. The two-dimensional energy grid can include the energy for the current coherent integration length for each time hypothesis and each frequency shift.

O acelerador 250 pode ser configurado paradeterminar a soma coerente de todas as freqüências de umahipótese de tempo especifica antes de determinar a somacoerente de outra hipótese de tempo. A realização das somascoerentes desta maneira pode minimizar o número de vezes emque a memória é acessada. Evidentemente, em outrasmodalidades, a aplicação do deslocamento de freqüência podeser mais intensiva no processador, e as somas coerentes decada deslocamento de freqüência por todas as hipóteses detempo podem ser completadas antes da determinação da somacoerente para outro deslocamento de freqüência. Outrasmodalidades podem determinar as somas em alguma outraordem.The accelerator 250 may be configured to determine the coherent sum of all frequencies of a specific time hypothesis before determining the coherent sum of another time hypothesis. Performing the coherent sums in this manner can minimize the number of times memory is accessed. Of course, in other embodiments, the application of frequency shift may be more intensive in the processor, and coherent sums of frequency shift across all time hypotheses may be completed before determining the coherent sum for another frequency shift. Other modalities may determine the sums in some other order.

O movimentador de dados 230 funciona como umamáquina DMA para transferir informações entre o buscador220 e a memória 240 e entre a memória 240 e o acelerador250. O movimentador de dados 230 efetua transferências dememória para locais que dependem, pelo menos em parte, domodo de busca e do comprimento de integração associado. Omovimentador de dados 230 pode determinar o mapa de memóriacom base na fila de tarefas do controlador 270.Data mover 230 functions as a DMA machine for transferring information between the search engine 220 and memory 240 and between the memory 240 and the accelerator 250. Data mover 230 performs memory transfers to locations that depend at least in part on the search mode and the associated integration length. Data handler 230 can determine the memory map based on the task queue of controller 270.

O movimentador de dados 230 copia as somascoerentes geradas pelo buscador 220 para cada uma das sub-tarefas programadas. Em modalidades nas quais o buscador220 armazena em dobro as somas coerentes, o movimentador dedados 230 funciona para transferir um bloco do buffer quenão está sendo gravado pelo buscador 220. O movimentador dedados 230 é configurado para operar nos dados no bloco dobuffer que não está associado com as operações das sub-tarefas atuais.Data mover 230 copies the coherent sums generated by finder 220 to each of the programmed subtasks. In modalities in which seeker 220 stores twice the coherent sums, data handler 230 works to transfer a buffer block that is not being written by searcher 220. Data handler 230 is configured to operate on data in the dobuffer block that is not associated with. the operations of the current subtasks.

Similarmente, o movimentador de dados 230 copiasaídas do buscador anteriormente armazenadas e as somas deenergia anteriormente determinadas da memória 240 para obuffer 262 no acelerador 250 e, em particular, em um bloço de buffer que está associado à transferência de memória enão está sendo gravado pelo acelerador 250. O movimentadorde dados 230 também copia as somas de energia mais recentesdo buffer do acelerador na memória 240.Similarly, previously stored search copy data mover 230 and previously determined power sums from memory 240 to buffer 262 on accelerator 250 and, in particular, a buffer block that is associated with memory transfer and are not being written by the accelerator 250. Data mover 230 also copies the latest energy sums from the accelerator buffer to memory 240.

O controlador 270 gera a fila de tarefas e as informações de controle associadas gravadas no registradorde comandos de hardware do buscador 220. O controlador 270pode configurar praticamente qualquer busca e comprimentode integração que possam ser suportados pelo espaçodisponível na memória 240. Entretanto, o controlador 270 tem tipicamente um número predeterminado de configuraçõesou modos de busca que podem ser selecionados e programadosem cada limite de controle. Por exemplo, o controlador 270pode selecionar um de um modo de busca alta que expande(spanning) 1600 Hz, 20 binários de freqüência distintos, 64 hipóteses e um comprimento coerente de 20, um primeiro modode baixa busca expandindo a 400 Hz, 80 binários defreqüência distintos, 16 hipóteses e um comprimentocoerente de 80, um segundo modo de baixa busca expandindo a200 Hz, 160 binários de freqüência distintos, 8 hipóteses,e um comprimento coerente de 160, um modo de busca deaquisição grosseira expandindo a 1600 Hz, 20 binários defreqüência distintos, 64 hipóteses, e um comprimentocoerente de 10, e um modo de busca de extremidade de bitexpandindo a 1600 Hz, 8 binários de freqüência distintos, 8hipóteses, e um comprimento coerente de 20.Controller 270 generates the task queue and associated control information recorded in the hardware command recorder of finder 220. Controller 270 can configure almost any search and integration length that may be supported by space available in memory 240. However, controller 270 has typically a predetermined number of settings or search modes that can be selected and programmed at each control limit. For example, the controller 270 may select one from a high seek mode spanning 1600 Hz, 20 distinct frequency binaries, 64 hypotheses and a coherent length of 20, a first low search mode expanding at 400 Hz, 80 frequency binaries. 16 hypotheses and a coherent length of 80, a second low-search mode expanding at 200 Hz, 160 distinct frequency binaries, 8 hypotheses, and a coherent length of 160, a coarse-acquisition search mode expanding at 1600 Hz, 20 frequency frequencies 64 hypotheses, and a coherent length of 10, and a bitexpand end seek mode at 1600 Hz, 8 distinct frequency binaries, 8 hypotheses, and a coherent length of 20.

A Figura 3 é um diagrama em blocos funcionalsimplificado que mostra uma modalidade de fluxo de dados emum receptor implementando o sistema de processamento desinal para localização de posição 200 para busca de espaçode código. O sistema 200 é descrito no contexto deprocessamento de uma busca de espaço de código GPS.Entretanto, uma busca de espaço de código similar pode serprocessada para algumas outras informações de espalhamentode código PN, como, por exemplo, para AFLT.Figure 3 is a simplified functional block diagram showing a data stream embodiment in a receiver implementing the position location signal processing system 200 for code space search. System 200 is described in the context of processing a GPS code space search. However, a similar code space search may be processed for some other PN code spread information, such as AFLT.

O servidor de amostras 210 recebe amostras deentrada complexas aproximadamente ao dobrar uma taxa dechip e gravar as amostras na memória, tal como em uma RAM.O servidor de amostras 210 pode ser configurado para dispora RAM como um buffer circular e sobrescrever as entradasmais antigas com as amostras mais recentes.Sample server 210 receives complex input samples by approximately doubling a dechip rate and writing the samples to memory, such as RAM. Sample server 210 can be configured to dispatch RAM as a circular buffer and overwrite older entries with the latest samples.

O buscador 220 examina o conteúdo do registradorde comandos de hardware para determinar a localização e otamanho de uma fila de tarefas. O registrador de comandosde hardware no buscador 220 pode ser programado durante oprocessamento de uma fila de tarefas indicada por umconteúdo anterior do registrador de comandos de hardware. Obuscador 220 determina o tempo inicial para a tarefa debus ca programada em conjunto, e pode iniciar a nova tarefade bus ca assim que a tarefa de busca atual for concluída.Finder 220 examines the contents of the hardware command logger to determine the location and size of a job queue. The hardware command register in finder 220 can be programmed during the processing of a task queue indicated by a previous content of the hardware command register. Observer 220 determines the start time for the jointly scheduled debug job, and can start the new bus ca task as soon as the current search task is completed.

Cada fila de tarefas pode controlar até um númeromáximo predeterminado de sub-tarefas que podem serprocessadas no período de busca inicial, que pode ser de ummilisegundo. O buscador 220 processa as sub—tarefas e gravaas somas coerentes para cada hipótese em um buffer dentrodo buscador 220. O buffer do buscador pode ser organizadocomo um buffer duplo. Os dois blocos do buffer duplo dobuscador podem estar associados alternadamente a umbuscador 220 ou ao movimentador de dados 230. O blocoassociado com o buscador 220 recebe os resultados decorrelação produzidos pelo buscador 220, enquanto o blocoassociado ao movimentador de dados 230 permitetransferências de dados do bloco do buscador 220 para amemória 240. A associação dos blocos no buffer duplo dobuscador é trocada em momentos predeterminados. Porexemplo, a associação dos blocos pode ser trocada uma vezque o buscador 220 preencha seu bloco associado.Each job queue can control up to a predetermined maximum number of subtasks that can be processed in the initial search period, which can be one millisecond. Seeker 220 processes the subtasks and writes coherent sums for each hypothesis into a buffer within Seeker 220. The Seeker buffer can be organized as a double buffer. The two blocks of the double bus buffer may alternately be associated with a bus 220 or data mover 230. The block associated with the searcher 220 receives the correlation results produced by the searcher 220, while the block associated with the data mover 230 allows data transfers from the search block. 220 for memory 240. The association of the blocks in the double buffer of the finder is changed at predetermined moments. For example, the block association can be changed once the searcher 220 fills in its associated block.

O movimentador de dados 230 efetua umatransferência de dados entre o buffer do buscador associado220 e a memória 240. 0 movimentador de dados 230 nãonecessita sincronizar a transferência de dados 310 com oprocessamento de integração coerente executado no buscador220. Em vez disso, o movimentador de dados 230 pode serconfigurado para efetuar a transferência de dados 310 emqualquer momento durante o qual a associação de blocos debuffer for válida. O movimentador de dados 230 determina oslocais dentro da memória 240 para gravar os valores, combase, pelo menos em parte, em um modo de busca ativoiniciado pelo controlador (não mostrado). O tamanho damemória 240 alocada para o sistema 200 pode ser dinâmico, epode variar, por exemplo, com base no modo de busca decódigo ativo. Como exemplo, um modo de busca de extremidadede bit expandindo a 1600 Hz, 8 binários de freqüênciadistintos, 8 hipóteses, e um comprimento coerente de 20exige uma memória 240 com menos espaço de armazenagem doque para um modo de busca baixa expandindo a 200 Hz, 160binários de freqüência distintos, 8 hipóteses, e umcomprimento coerente de 160.Data mover 230 performs a data transfer between the associated finder buffer 220 and memory 240. Data mover 230 does not need to synchronize data transfer 310 with coherent integration processing performed on finder 220. Instead, data mover 230 may be configured to perform data transfer 310 at any time during which the debuffer block association is valid. Data mover 230 determines locations within memory 240 to record values, combining, at least in part, in an active search mode initiated by the controller (not shown). The memory size 240 allocated to system 200 may be dynamic, and may vary, for example, based on the active code search mode. As an example, a bit end seek mode expanding at 1600 Hz, 8 discrete frequency binaries, 8 hypotheses, and a coherent length of 20 requires a memory 240 with less storage space than for a low search mode expanding at 200 Hz, 160 binaries. frequency ranges, 8 hypotheses, and a coherent length of 160.

Se a memória 240 for compartilhada com processosdistintos da bus ca de espaço de código, tal como no caso emque a memória 240 é uma memória de sistema para umdispositivo de comunicação sem fio, a alocação dinâmica deespaço de memória maximiza a quantidade do espaço dememória disponível para suportar tarefas distintas da buscade código. Para o sistema 200 necessita apenas ser alocadoum espaço de memória 24 0 suficiente para suportar o modo debusca de código ativo.If memory 240 is shared with processes other than code space bus, such as where memory 240 is system memory for a wireless device, dynamic memory space allocation maximizes the amount of memory space available for support tasks other than code search. For system 200 only need to be allocated enough memory space 240 to support active code debug mode.

O movimentador de dados 230 pode também controlara transferência de dados 320 dos resultados de busçaarmazenados na memória em um buffer de amostras duplamentearmazenadas 262. Uma vez que o acelerador 250 consome osresultados do buscador durante a integração coerente, atransferência de dados 320 para o buffer de amostras 262pode ser unidirecional, da memória 240 para o buffer deamostras 2 62.Data mover 230 can also control data transfer 320 from the stored memory results in a double-stored sample buffer 262. Since accelerator 250 consumes the search results during coherent integration, data transfer 320 to the sample buffer 262 may be unidirectional from memory 240 to the buffer of samples 2 62.

O buffer de amostras duplamente armazenadas 2 62pode alternar as associações do primeiro e segundo blocosentre o movimentador de dados 230 e o acelerador 250. 0acelerador 250 controla as operações de leitura 340 do seubloco de buffer de amostras 2 62 associado. O movimentadorde dados 230 e o acelerador 250 podem trocar as associaçõesdo bloco de buffer de amostras 262, uma vez que oacelerador 250 acessa todos os dados no seu bloco de bufferde amostras 262 associado.Double-stored sample buffer 262 can toggle first and second block associations between data mover 230 and accelerator 250. Accelerator 250 controls read operations 340 of associated sample buffer segregation 262. Data mover 230 and accelerator 250 may exchange the associations of sample buffer block 262, since accelerator 250 accesses all data in its associated sample buffer block 262.

O acelerador 250 determina a soma coerente dosresultados de busca em relação ao comprimento de acumulaçãocoerente que é determinado com base no modo de buscaprogramado pelo controlador. 0 acelerador 250 pode gerar umvalor de energia para cada integração coerente somando osquadrados dos componentes complexos do resultado deintegração coerente.Accelerator 250 determines the coherent sum of the search results relative to the coherent accumulation length that is determined based on the controller programmed search mode. Accelerator 250 can generate an energy value for each coherent integration by summing the squares of the complex components of the coherent integration result.

O acelerador 250 pode gravar os valores deenergia em um armazenador de energia 264 para transferênciapara a memória 240. Alternativamente, o acelerador 250 podeser configurado para gerar acumulações não-coerentes dosvalores de energia, pela soma do valor de energia atual comos valores de energia computados anteriormente para o mesmolocal de grade de energia.Accelerator 250 may record energy values in an energy store 264 for transfer to memory 240. Alternatively, accelerator 250 may be configured to generate non-coherent accumulations of energy values by summing the current energy value with previously computed energy values. to the same power grid location.

0 acelerador 250 controla a transferência dedados dos valores de energia para e de um bloco associadode um armazenador de energia de duplo armazenamento 264.iObuffer de energia 2 64 pode ser configurado como um bufferduplo com blocos alternadamente associados a um dentre omovimentador de dados 230 ou o acelerador 250.Accelerator 250 controls the transfer of energy values to and from an associated block of a dual storage energy store 264. Power buffer 264 may be configured as a double buffer with blocks alternately associated with one of the data mover 230 or the throttle 250.

0 movimentador de dados 230 controla astransferências de dados 330 dos valores de energia entre amemória 240 e o bloco associado do buffer de energia 264.Data mover 230 controls data transfers 330 of energy values between memory 240 and associated block of energy buffer 264.

Similarmente, o acelerador 250 controla as operações deleitura e gravação 350 do buffer de energia entre seu blocoassociado do buffer de energia 350. As associações dosblocos do buffer de energia 264 podem ser trocadas com baseem um programa determinado pelo modo de busca ativo.Similarly, throttle 250 controls the power buffer read and write operations 350 between its associated power buffer block 350. The power buffer block associations 264 may be exchanged based on a program determined by the active search mode.

O movimentador de dados 230 pode acessar osresultados de energia armazenados anteriores da memória 240e pode copiar os valores no bloco associado do buffer deenergia 264 em uma operação de transferência de dados 330.Data mover 230 can access previous stored power results from memory 240 and can copy values into the associated block of power buffer 264 in a data transfer operation 330.

Após a troca de associações de blocos, o acelerador 250pode acessar os valores de energia anteriormentetransferidos pelo movimentador de dados 230 e pode, porexemplo, determinar acumulações não-coerentes utilizandovalores de energia atuais. O acelerador 250 controla aoperação de gravação 350 de volta para seu bloco do bufferde energia 264. 0 movimentador de dados 230 pode efetuaruma transferência de dados 330 dos valores de energiaatualizados do buffer de energia 264 para a memória 240quando os blocos do buffer de energia 2 64 forem novamentetrocados.After exchanging block associations, the accelerator 250 can access the energy values previously transferred by data mover 230 and can, for example, determine non-coherent accumulations using current energy values. The accelerator 250 controls the write operation 350 back to its power buffer block 264. Data mover 230 can perform a data transfer 330 of the updated power values from power buffer 264 to memory 240 when power buffer blocks 264. are replaced again.

O processamento do acelerador 250 pode serexecutado em uma maneira de encadeamento, de modo a eficientemente processar os dados. O processo encadeadopode ser, por exemplo, um encadeamento de três operaçõesdistintas. O encadeamento pode suportar transferência dedados de entrada para uma operação, o processamento deacumulações coerentes e valores de energia para uma segundaoperação, e transferência de dados dos resultadosanteriores do acelerador 250 para a memória 240 para umaterceira operação.Accelerator processing 250 may be performed in a chained manner so as to efficiently process the data. The threaded process can be, for example, a thread of three distinct operations. The thread can support transfer of input data for one operation, processing of coherent accumulations and power values for a second operation, and data transfer of previous accelerator results 250 to memory 240 for a third operation.

Assim, o movimentador de dados 230 podetransferir resultados de busca da memória para o buffer de amostras (operação N+l), enquanto o acelerador 250 estiverfuncionando com base nos resultados de busca para umatransferência de dados anterior (operação N). Além disto, omovimentador de dados 230 pode transferir as somas deenergia acumuladas do buffer de energia para a memória 240 para uma terceira operação distinta (operação N-I) antes decarregar o buffer de energia com os valores anteriormentearmazenados da memória externa 240 (operação N+l).Thus, data mover 230 can transfer memory search results to the sample buffer (N + 1 operation), while accelerator 250 is operating based on the search results for a previous data transfer (N + operation). In addition, the data mover 230 can transfer the accumulated power buffer sums to memory 240 for a third separate operation (NI operation) before reloading the power buffer to the previously stored values of external memory 240 (N + 1 operation) .

A Figura 4 é um fluxograma de uma modalidade deum método 400 de busca de espaço de código. 0 método 400pode ser implementado pelo sistema de processamento desinal de localização de posição da Figura 2 e pode serimplementado dentro do terminal de usuário da Figura 1. 0método 400 mostra o processo estendendo-se através dosblocos funcionais. A seqüência de operações no método 400 ilustra o processamento de um conjunto de amostras por todoo sistema. Várias operações no sistema podem ocorrerconcomitantemente de modo a permitir o funcionamentocontínuo do método sem latência para reconfiguração outransferência de dados.Figure 4 is a flowchart of one embodiment of a code space search method 400. Method 400 may be implemented by the position location designal processing system of Figure 2 and may be implemented within the user terminal of Figure 1. Method 400 shows the process extending through the functional blocks. The sequence of operations in method 400 illustrates the processing of a set of samples throughout the system. Various system operations can occur concurrently to allow continuous operation of the non-latency method for reconfiguring or transferring data.

O método 400 começa no bloco 402, onde o sistemacaptura amostras complexas do sinal recebido que é para serbuscado. Por exemplo, um amostrador de sinal pode amostrarsinais GPS recebidos a uma taxa que é aproximadamente odobro da taxa de código PN. As amostras complexas podem serarmazenadas na RAM, ou em algum outro dispositivo dearmazenagem. 'Method 400 begins at block 402, where the system captures complex samples of the received signal that is to be searched. For example, a signal sampler may receive GPS signals received at a rate that is approximately the PN code rate. Complex samples can be stored in RAM, or some other storage device. '

O sistema prossegue até o bloco 410, onde umbuscador é configurado para suportar um modo deprocessamento de busca de código específico. O buscadorpode determinar o modo de processamento para amostrasfuturas enquanto processa amostras de acordo com o modo deprocessamento atual. Por exemplo, o buscador pode ler umregistrador de comandos de hardware de modo a determinar alocalização e o tamanho de uma fila de tarefas. 0 buscadorpode desempenhar as tarefas da fila de tarefas no limite detarefa ou quando o processamento da tarefa atual tiver sidocompletado. A fila de tarefas pode incluir múltiplastarefas até um número máximo predeterminado de tarefas. Porexemplo, uma fila de tarefas pode incluir até um máximo de32 tarefas para o buscador desempenhar em cada período detempo de integração inicial, que pode ser de 1 milisegundo.The system proceeds to block 410, where an finder is configured to support a specific code search processing mode. The searcher can determine the processing mode for future samples while processing samples according to the current processing mode. For example, the browser might read a hardware command log to determine the location and size of a job queue. The searcher can perform tasks in the task queue at the task limit or when processing of the current task has been completed. The task queue can include multiple tasks up to a predetermined maximum number of tasks. For example, a task queue can include up to a maximum of 32 tasks for the searcher to perform in each initial integration time period, which can be 1 millisecond.

Cada tarefa de busca pode suportar uma buscaatravés de um número predeterminado de chips de códigoatravés de múltiplas hipóteses. O número de hipótesesbuscadas pode ser programável, e pode alcançar um númeromáximo predeterminado de hipóteses. Por exemplo, cadatarefa pode ser configurada para buscar uma janela contendo32 chips de código e pode ser configurada para buscar até64 hipóteses distintas através da janela de busca, em quecada hipótese de espaço de código pode ser deslocada de suahipótese mais próxima pela metade de um período de chips.Each search task can support a search through a predetermined number of code chips through multiple hypotheses. The number of hypotheses sought may be programmable, and may reach a predetermined maximum number of hypotheses. For example, each job can be configured to fetch a window containing 32 code chips and can be configured to fetch up to 64 different hypotheses through the search window, in which case code space can be moved from its nearest hypothesis by half a period of time. chips

o sistema prossegue até o bloco 412 e transfereda memória de amostras para o buscador as amostras que sãorelevantes para a configuração de busca. Utilizando osexemplos apresentados acima, o buscador pode serconcebivelmente configurado para buscar um espaço de códigototal de um único veículo de satélite em um período detempo de integração inicial de 1 milisegundo. Entretanto, obuscador é mais tipicamente configurado para buscar ksamostras recebidas através de uma parte de múltiploscódigos.the system proceeds to block 412 and transfers sample memory to the searcher for samples that are relevant to the search configuration. Using the examples presented above, the search engine can be conceivably configured to fetch a full code space from a single satellite vehicle within an initial integration time period of 1 millisecond. However, the observer is more typically configured to fetch samples received through a multi-code part.

Após a transferência das amostras relevantes, osistema prossegue para o bloco 414 e executa as tarefas apresentadas na fila de tarefas. Cada tarefa resulta em umaintegração coerente das amostras ao longo de um período deintegração inicial de 1 milissegundo através de cada umadas hipóteses aplicadas pelas tarefas, embora outrasmodalidades possam utilizar outros períodos de integração iniciais.After the relevant samples have been transferred, the system proceeds to block 414 and executes the tasks presented in the task queue. Each task results in a coherent integration of the samples over an initial integration period of 1 millisecond through each of the assumptions applied by the tasks, although other modalities may use other initial integration periods.

O buscador prossegue até o bloco 416 e grava osresultados de integração coerente de cada hipótese em umbloco associado de um buffer duplo. O buffer duplo incluidois blocos alternadamente associados a um buscador ou a um movimentador de dados. O buscador grava em seu bloco debuffer associado para permitir que o movimentador de dadostransfira dados de seu bloco de buffer associado. Peloduplo armazenamento das saídas do buscador, tanto obuscador quanto o movimentador de dados evitam a disputa de memória ao acessarem dados do buffer. Os resultadosanteriormente armazenados podem ser lidos de uma parte dobuffer duplo, enquanto o buscador opera nas amostras egrava na outra parte do buffer duplo. O buffer duplopermite uma transferência de dados mais flexível, uma vezque a transferência dos resultados de busca anteriores nãoprecisa completar antes do início da operação de buscadorseguinte. Al ém disto, a transferência dos resultados para amemória pode ser programada de maneira mais flexível ^se astransferências de memória DMA pelo movimentador de dadospuderem ser efetuadas em menos tempo do que o utilizadopara preencher os resultados do buscador.The searcher proceeds to block 416 and writes the results of coherent integration of each hypothesis into an associated block of a double buffer. The double buffer includes blocks alternately associated with a searcher or data mover. The finder writes to its associated debuffer block to allow the data mover to transfer data from its associated buffer block. Double storage of the search outputs, both the obfuscator and the data mover prevent memory contention when accessing buffer data. Previously stored results can be read from one double buffer part, while the searcher operates on samples and writes to the other part of the double buffer. The double buffer allows for a more flexible data transfer since the transfer of previous search results does not need to be completed before the next search operation begins. In addition, the transfer of results to memory can be programmed more flexibly if DMA memory transfers by the data mover can be made in less time than used to fill the search engine results.

Uma vez que a transferência de resultados ocorreapenas do bloco de buffer de busca associado aomovimentador de dados, o sistema prossegue até o bloco 418e troca a associação dos blocos do buffer duplo. A troca daassociação dos blocos permite a transferência dosresultados mais recentes para a memória, assegurando, aomesmo tempo, que o bloco do buffer permaneça disponívelpara armazenagem dos resultados de integração atuais.Once the transfer of results occurs only from the search buffer block associated with the data mover, the system proceeds to block 418 and changes the association of the double buffer blocks. Changing the block association allows the transfer of the latest results to memory, while ensuring that the buffer block remains available for storing current integration results.

Após a troca das associações de blocos do bufferduplo do buscador, o sistema prossegue até o bloco 420,onde o movimentador de dados transfere os resultados deintegração coerente iniciais do buscador para a memória. Emuma modalidade, a memória é compartilhada com outrosprocessos, e o movimentador de dados efetua umatransferência DMA do buffer do buscador para locais namemória compartilhada.After swapping the double buffer buffer block associations, the system proceeds to block 420, where the data mover transfers the initial coherent integration results from the browser to memory. In one embodiment, the memory is shared with other processes, and the data mover performs a DMA transfer from the searcher buffer to shared memory locations.

Após a transferência dos resultados do buscadorpara a memória, o sistema prossegue até o bloco 430. Mobloco 430, o movimentador de dados transfere pelo menos umaparte dos resultados de busca da memória para um blocoassociado de um buffer de amostras para processamento peloacelerador. 0 buffer de amostras é também configurado comoum buffer duplo, com cada bloco do buffer de amostrasassociado ao movimentador de dados ou ao acelerador. Asassociações de blocos do buffer de amostras são trocadasapós um evento predeterminado, que pode ser o enchimento deum buffer, a temporização ou algum outro evento.After the search results are transferred to memory, the system proceeds to block 430. Mobloco 430, the data mover transfers at least a portion of the memory search results to a block associated with a sample buffer for accelerator processing. The sample buffer is also configured as a double buffer, with each block of the sample buffer associated with the data mover or accelerator. Sample buffer block associations are exchanged after a predetermined event, which may be a buffer fill, timing, or some other event.

O sistema prossegue até o bloco 432 e transferepelo menos uma parte das acumulações de energia anterioresda memória para um bloco associado de um armazenador deenergia para acesso pelo acelerador. O sistema pode tambémmover os resultados atualizados do buffer de energia devolta para a memória antes de transferir as acumulações cieenergia que serão atualizadas da memória para o buffer deenergia. O buffer de energia é também configurado como umbuffer duplo. Um bloco do buffer duplo é também associadoao movimentador de dados e o outro bloco do buffer duplo éassociado ao acelerador. As associações do buffer deenergia podem ser trocadas depois de um eventopredeterminado, que pode ser distinto do evento que iniciaa troca dos blocos do buffer de amostras.The system proceeds to block 432 and transfers at least a portion of the previous energy accumulations from memory to an associated block of an energy store for access by the accelerator. The system can also move the updated results from the power buffer back to memory before transferring the power accumulations that will be updated from memory to the power buffer. The power buffer is also set to double umuffer. One double buffer block is also associated with the data mover and the other double buffer block is associated with the accelerator. Energy buffer associations can be changed after a predetermined event, which may be distinct from the event that initiates the exchange of the sample buffer blocks.

O acelerador acessa apenas os blocos do buffer deamostras e do buffer de energia com os quais este estáassociado. Assim, o sistema prossegue para bloco 434 etroca as associações do buffer de amostras e do buffer deenergia, de modo a permitir que o acelerador acesse osvalores mais recentes transferidos da memória pelomovimentador de dados. Além disto, o movimentador de dadospode acessar os resultados de energia mais recentes doacelerador. O acelerador consome os resultados do buscadore não re-grava os resultados no buffer de busca. Portanto,a troca dos blocos do buffer de busca permite um espaçoadicional para as transferências do movimentador de dadospara o buffer de amostras.The accelerator accesses only the sample buffer and power buffer blocks with which it is associated. Thus, the system proceeds to block 434 and exchange the sample buffer and power buffer associations to allow the accelerator to access the most recent values transferred from the data mover memory. In addition, the data mover can access the latest energy results from the accelerator. The accelerator consumes the search results and does not rewrite the results to the search buffer. Therefore, swapping the fetch buffer blocks allows additional space for data mover transfers to the sample buffer.

Após a troca das associações do buffer, o sistemaprossegue para. o bloco 450 e determina as acumulaçõescoerentes para os resultados de busca acessíveis no bufferde amostras associado. O acelerador determina a acumulaçãocoerente com base no modo de busca de código ativo. Oacelerador pode ter que aguardar múltiplas trocas do bufferde amostras, de modo a suportar o comprimento de integraçãodesejado, dependendo do tamanho do buffer de amostras.After changing the buffer associations, the system proceeds to. block 450 and determines the consistent accumulations for the search results accessible in the associated sample buffer. The accelerator determines coherent accumulation based on the active code search mode. The accelerator may have to wait for multiple sample buffer changes to support the desired integration length, depending on the size of the sample buffer.

Se o comprimento de integração cruzar o limite dedados, tal como um limite de dados de 20 milisegundosutilizado nos sinais GPS, o acelerador pode rastrear aocorrência do limite de bits e pode compensar o valor <íiebit ao computar a acumulação.If the integration length crosses the data limit, such as a 20 millisecond data limit used in GPS signals, the accelerator can track the occurrence of the bit limit and can compensate for the <ibit value when computing the accumulation.

O acelerador pode também determinar acumulaçõescoerentes através de múltiplos binários de freqüência, combase no modo de busca ativo. O acelerador pode incluirmúltiplos percursos paralelos que permitem acumulaçãoconcomitante através de múltiplas freqüências, ou múltiplosresultados de busca.The accelerator can also determine coherent accumulations across multiple frequency binaries based on active seek mode. The accelerator may include multiple parallel paths that allow simultaneous accumulation across multiple frequencies, or multiple search results.

O sistema prossegue para o bloco 452 e determinaa energia associada a cada acumulação coerente. Oacelerador pode determinar a energia associada com o valorde acumulação complexo, como, por exemplo, somando osquadrados dos valores em fase e em quadratura. Em algumasmodalidades, o acelerador pode omitir a determinação daenergia acumulada e pode em vez disso armazenar o valor deacumulação complexo no buffer de energia. Em modalidadesnas quais o acelerador armazena somas de acumulaçãocoerente no buffer em vez dos valores de energia, asoperações nos blocos 452-454 podem ser omitidas. Oacelerador pode atualizar diretamente o buffer de energiacom os valores de acumulação coerente.The system proceeds to block 452 and determines the energy associated with each coherent accumulation. The accelerator can determine the energy associated with the complex accumulation value, such as by summing the squares of the phase and quadrature values. In some embodiments, the accelerator may omit the determination of accumulated energy and may instead store the complex accumulation value in the energy buffer. In embodiments in which the accelerator stores coherent accumulation sums in the buffer instead of the energy values, operations in blocks 452-454 may be omitted. The accelerator can directly update the power buffer with coherent accumulation values.

0 sistema prossegue para o bloco 454 e determinaquaisquer acumulações de energia não-coerentes que possamser especificadas pelo modo de busca de código. De modo adeterminar uma acumulação não-coerente, o acelerador lê ovalor de energia anterior de uma parte desejada de umagrade de energia armazenada no buffer de energia e soma ovalor de energia correspondente. Em algumas modalidades, oacelerador pode determinar uma soma ponderada e podeescalonar a soma de energia acumulada anterior por umafração predeterminada antes de somar o valor de energiamais recente.The system proceeds to block 454 and determines any non-coherent energy accumulations that may be specified by the code search mode. In order to determine a non-coherent accumulation, the accelerator reads the previous energy value of a desired portion of energy stored in the energy buffer and the corresponding energy value sum. In some embodiments, the accelerator may determine a weighted sum and may scale the previous accumulated energy sum by a predetermined fraction before summing the most recent energy value.

o sistema prossegue para o bloco 456, onde oacelerador grava o valor de energia acumulada de volta nobuffer de energia. 0 sistema tipicamente não tem acessodireto ao bloco do buffer de energia associado com 'oacelerador. Assim, o sistema prossegue para o bloco 458para aguardar a ocorrência seguinte de troca dasassociações dos blocos de energia.The system proceeds to block 456, where the accelerator records the accumulated energy value back into the energy buffer. The system typically does not have direct access to the power buffer block associated with the accelerator. Thus, the system proceeds to block 458 to wait for the next occurrence of switching power block associations.

No bloco 4 60, o movimentador de dados tem acesso aos valores de energia mais recentes atualizados peloacelerador. 0 movimentador de dados pode efetuar umatransferência DMA das acumulações de energia atualizadaspara a memória. 0 movimentador de dados pode tambémcarregar quaisquer valores de energia da memória no buffer de energia para suportar a acumulação não-coerenteseguinte.At block 460, the data mover has access to the latest energy values updated by the accelerator. The data mover can perform a DMA transfer of the updated energy accumulations to memory. The data mover may also load any memory power values in the power buffer to support the following non-coherent accumulation.

Após o bloco 4 60, o processamento de amostrasrecebidas especificas terá completado um percurso deprocessamento inteiro, da amostragem para acumulação deenergia. O armazenamento duplo e o armazenamento em memóriados diversos valores intermediários permite que todo oprocesso rode de maneira substancialmente continua. 0sistema não precisa interromper ou aguardar alterações naconfiguração de busca, uma vez que o buscador pode ser reconfigurado em cada limite de acumulação inicial,enquanto o buscador estiver operando em tarefasanteriormente programadas. O armazenamento duplo dosresultados do buscador tanto no buscador quanto na entradado acelerador praticamente elimina a disputa por memória,enquanto aumenta a flexibilidade no acesso à memória, quepode ser a memória compartilhada externa ao módulo ou umcircuito integrado que tem o buscador e o acelerador.After block 46, processing of specific received samples will have completed an entire processing path from energy accumulation sampling. Dual storage and memory storage of the various intermediate values allows every process to run substantially continuously. The system does not have to interrupt or wait for changes to the search configuration since the searcher can be reset at each initial accumulation threshold while the searcher is operating on previously scheduled tasks. Dual storage of the search engine results in both the search engine and the throttle input virtually eliminates the memory scramble, while increasing flexibility in memory access, which can be shared memory external to the module or an integrated circuit that has the search engine and accelerator.

A separação da integração coerente inicial daintegração coerente mais longa que corresponde aocomprimento de integração desejado permite maisflexibilidade na programação e configuração do sistema. Osresultados de integração de um milisegundo do buscadorpodem ser utilizados para suportar praticamente qualquercomprimento de integração.Separating the initial coherent integration from the longer coherent integration that corresponds to the desired integration length allows for more flexibility in system programming and configuration. The search results of one millisecond integration can be used to support virtually any integration length.

A Figura 5 é um diagrama em blocos funcionalsimplificado de uma modalidade de um sistema deprocessamento de sinal de localização de posição 500 queimplementa busca de espaço de código. 0 sistema 500 daFigura 5 pode ser implementado, por exemplo, dentro de umterminal de usuário da Figura 1.Figure 5 is a simplified functional block diagram of one embodiment of a position location signal processing system 500 that implements code space searching. System 500 of Figure 5 may be implemented, for example, within a user terminal of Figure 1.

O sistema 500 inclui um dispositivo para capturar510 amostras complexas de um sinal sem fio recebido. 0dispositivo para capturar 510 amostras complexas é acopladoa um dispositivo de busca 520.System 500 includes a device for capturing 510 complex samples of a received wireless signal. The device for capturing 510 complex samples is coupled to a search device 520.

0 sistema de busca 550 pode funcionar de acordocom cada uma das tarefas de busca de espaço de códigoindicadas pelo registrador de hardware 522 que funcionacomo um dispositivo para configurar uma pluralidade detarefas de busca de espaço de código. 0 dispositivo debusca 550 gera uma pluralidade de resultados de integraçãocoerente obtidos ao longo de um tempo de integraçãoinicial, que pode ser de um milisegundo. O dispositivo debusca 550 pode ser configurado para gerar uma pluralidadede resultados de integração coerentes que corresponde a umapluralidade de hipóteses de espaço de código, comodefinidas nas tarefas de busca.Um dispositivo de controle 570 controla o valorgravado no registrador de hardware 522. O valor doregistrador de hardware 522 pode indicar, por exemplo, umafila de tarefas na memória que é determinada com base nomodo de busca de espaço de código. Um dispositivo detransferência de dados 530 é acoplado ao dispositivo debusca 520 e funciona de modo a transferir a pluralidade deresultados de integração coerentes para um dispositivo dearmazenagem 540. O dispositivo para transferência de dados530 funciona também para transferir a pluralidade deresultados de integração coerentes do dispositivo dearmazenagem 540 para os armazenadores 562 e 564 dentro deou acoplado a um dispositivo de aceleramento 550. Emparticular, o dispositivo para transferência de dados 530transfere vários resultados de integração coerentes quecorrespondem ao comprimento de integração.Search system 550 may function according to each of the code space search tasks indicated by hardware register 522 operating as a device for configuring a plurality of code space search tasks. Debugging device 550 generates a plurality of coherent integration results obtained over an initial integration time, which may be one millisecond. The debug device 550 can be configured to generate a plurality of coherent integration results that correspond to a plurality of code space assumptions, as defined in search tasks. A control device 570 controls the value recorded in hardware register 522. hardware 522 may indicate, for example, a queue of tasks in memory that is determined based on the code space search code. A data transfer device 530 is coupled to the debug device 520 and functions to transfer the plurality of coherent integration results to a storage device 540. The data transfer device 530 also functions to transfer the plurality of coherent integration results to storage device 540. to the storerooms 562 and 564 within or coupled to an acceleration device 550. In particular, the data transfer device 530 transfers a number of coherent integration results that correspond to the integration length.

O dispositivo de aceleramento 550 funciona comoum dispositivo para determinar uma acumulação coerente deuma pluralidade de resultados de integração coerentes. Ocomprimento de integração e o deslocamento de freqüênciaassociados à acumulação coerente são baseados no modo debusca de espaço de código programável.Accelerator device 550 operates as a device for determining coherent accumulation of a plurality of coherent integration results. The integration length and frequency offset associated with coherent accumulation are based on programmable code space debug mode.

Sistemas, equipamento e métodos de busca deespaço de código têm sido descritos aqui. Os sistemas,equipamento e métodos descritos podem ser implementados emum terminal de usuário para processar sinais GPS, sinaisAFLT, e semelhantes ou algum outro sinal de espalhamento decódigo. Por exemplo, o processo e o equipamento de busca deespaço de código são aplicáveis para buscar qualquer espaçode código de um sinal de espalhamento espectral recebido.Embora modalidades especificas descrevam uma aplicação parasinais GPS, o objeto reivindicado é genérico para a buscade espaço de código e não está limitado ao GPS. Um buscadoré configurado para determinar resultados de integraçãocoerentes em relação aos tempos ou períodos de integraçãoiniciais. Os resultados do buscador são utilizados comovalores intermediários para outra integração coerente eacumulação de energia não-coerente executadas noacelerador.Code space search systems, equipment, and methods have been described here. The systems, equipment and methods described may be implemented in a user terminal for processing GPS signals, AFT signals, and the like or some other spreading signal. For example, the code-space search process and equipment are applicable for searching for any code space of a received spectral spread signal. While specific embodiments describe a GPS parasite application, the claimed object is generic to the code space search and not is limited to GPS. A search engine is configured to determine coherent integration results against initial integration times or periods. Search results are used as intermediate values for other coherent integration and non-coherent energy accumulation performed on the accelerator.

Os valores intermediários são armazenados embuffers duplos para permitir transferências de dadoseficientes e sem disputa para a memória. 0 uso de buffersduplo permite a reconfiguração dos modos de busca de códigocom baixa ou sem latência.Intermediate values are stored in dual embuffers to allow efficient and uncompromised data transfers to memory. The use of double buffers allows reconfiguration of low or no latency code search modes.

Além disso, a separação do processamento quesegue à integração coerente ao longo do período deintegração inicial permite a reconfiguração flexível dosmodos de busca de espaço de código sem a necessidade deaquisição redundante e análise de dados. A capacidade dereconfigurar a busca de espaço de código em tempopraticamente real permite buscas de espaço de código maiseficazes e permite reconfiguração da aquisição de códigorápida para busca de espaço de código de altasensibilidade.In addition, the separation of processing that follows coherent integration over the initial integration period allows flexible reconfiguration of code space search modes without the need for redundant acquisition and data analysis. The ability to reconfigure the real-time code space search allows for more effective code space searches and allows reconfiguration of fast codec acquisition for high-sensitivity code space search.

Como aqui utilizado, o termo acoplado òuconectado é utilizado como significando um acoplamentoindireto assim como um acoplamento ou conexão direta. Nocaso de serem acoplados dois ou mais blocos, módulos,dispositivos, ou equipamentos, pode haver um ou mais blocosintervenientes entre os dois blocos acoplados.As used herein, the term "coupled coupled" is used to mean an indirect coupling as well as a coupling or direct connection. In case two or more blocks, modules, devices, or equipment are coupled, there may be one or more intervening blocks between the two coupled blocks.

Os diversos blocos, módulos e circuitos lógicosilustrativos descritos em conexão com as modalidades aquidescritas podem ser implementados ou executados com umprocessador de propósito geral, um processador de sinaldigital (DSP), um processador Computador de ConjuntoReduzido de Instruções (RISC), um circuito integrado deaplicação específica (ASIC), uma matriz de portasprogramável em campo (FPGA) ou outro dispositivo lógicoprogramável, porta discreta ou lógica de transistor,componentes de hardware discretos, ou qualquer combinaçãodestes projetada para executar as funções aqui descritas.The various illustrative logic blocks, modules, and circuits described in connection with the written modes may be implemented or executed with a general purpose processor, a digital signal processor (DSP), a Reduced Instruction Set Computer (RISC) processor, and a specific application integrated circuit. (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination of these designed to perform the functions described herein.

Um processador de propósito geral pode ser ummicroprocessador, mas alternativamente, o processador podeser qualquer processador, controlador, microcontrolador oumáquina de estado convencional. Um processador pode sertambém implementado como uma combinação de dispositivos decomputação, como, por exemplo, uma combinação de DSP emicroprocessador, uma pluralidade de microprocessadores, umou mais microprocessadores em conjunto com um núcleo DSP,ou qualquer outra configuração.A general purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a combination of microprocessor DSP, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other configuration.

As etapas de um método, ou algoritmo descritas emconexão com as modalidades aqui reveladas podem serincorporadas diretamente em hardware, em um módulo desoftware executado por um processador, ou em uma combinaçãodos dois. As diversas etapas ou atos de um método ouprocesso podem ser executados na ordem mostrada, ou podemser executados em outra ordem. Além disto, uma ou maisetapas de processo ou método podem ser omitidas, ou uma oumais etapas de processo ou método podem ser adicionadas aosmétodos e processos. Uma etapa, bloco ou ação adicionalpode ser adicionada no início, no fim ou nos elementosexistentes intervenientes dos métodos e processos.The steps of a method or algorithm described in connection with the embodiments disclosed herein may be incorporated directly into hardware, a software module executed by a processor, or a combination of the two. The various steps or acts of a method or process may be performed in the order shown, or may be performed in another order. In addition, one or more process or method steps may be omitted, or one or more process or method steps may be added to the methods and processes. An additional step, block, or action may be added at the beginning, end, or existing elements of methods and processes.

A descrição anterior das modalidades descritas éapresentada para permitir que qualquer pessoa versada natécnica fabrique ou utilize a presente invenção. Diversasmodificações a estas modalidades serão prontamenteevidentes para os versados na técnica, e os princípiosgenéricos aqui definidos podem ser aplicados a outrasmodalidades sem abandonar o conceito inventivo ou o escopoda invenção. Assim, a presente invenção não pretende serlimitada pelas modalidades aqui mostradas, mas deve recebero escopo mais amplo compatível com os princípios e os novosaspectos descritos aqui.The foregoing description of the disclosed embodiments is presented to enable any person skilled in the art to manufacture or use the present invention. Various modifications to these embodiments will readily be apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the inventive concept or the scope of the invention. Thus, the present invention is not intended to be limited by the embodiments shown herein, but should be given the broader scope consistent with the principles and novel aspects described herein.

Claims (33)

1. Equipamento para busca de espaço de código, oequipamento compreendendo:- uma memória;um buscador configurado para executar umapluralidade de tarefas programáveis e gerar para cadatarefa programável uma pluralidade de resultados deintegração coerentes obtidos ao longo de um período deintegração inicial;- um acelerador configurado para determinar pelomenos uma acumulação coerente dos resultados de integraçãodo buscador com base em um ou mais comprimentos deintegração coerentes e deslocamentos de freqüênciadeterminados por um modo de busca selecionável; e- um movimentador de dados configurado paratransferir os resultados de integração do buscador para amemória, e configurado para transferir os resultados deintegração da memória para o acelerador.1. code space search equipment, the equipment comprising: - a memory; a search engine configured to perform a plurality of programmable tasks and to generate for programmable task a plurality of coherent integration results obtained over an initial integration period; to determine at least a coherent accumulation of search integration results based on one or more coherent integration lengths and frequency offsets determined by a selectable search mode; and a data mover configured to transfer the integration results from the search engine into memory, and configured to transfer the memory integration results to the accelerator. 2. Equipamento, de acordo com a reivindicação 1,no qual o buscador compreende um buffer de resultados debusca duplamente armazenados, onde cada bloco dosresultados de bus ca duplamente armazenados é associado a umdo buscador ou do movimentador de dados.Apparatus according to claim 1, wherein the searcher comprises a double-stored search result buffer, where each block of double-stored bus results is associated with one of the searcher or data mover. 3. Equipamento, de acordo com a reivindicação 1,no qual o buscador é configurado para executar até 32tarefas em um período de integração inicial.Equipment according to claim 1, wherein the browser is configured to perform up to 32 tasks in an initial integration period. 4. Equipamento, de acordo com a reivindicação 1,no qual cada tarefa especifica um número de hipóteses defase de código de um código associado, e no qual cada umada pluralidade de resultados de integração coerentes ébaseado em uma do número de hipóteses de fase de código.Apparatus according to claim 1, wherein each task specifies a number of code phase assumptions of an associated code, and wherein each of the plurality of coherent integration results is based on one of the number of code phase assumptions. . 5. Equipamento, de acordo com a reivindicação 1,no qual o período de integração inicial compreende umperíodo de código.Equipment according to claim 1, wherein the initial integration period comprises a code period. 6. Equipamento, de acordo com a reivindicação 1,no qual o período de integração inicial compreendeaproximadamente um milissegundo.Equipment according to claim 1, wherein the initial integration period comprises approximately one millisecond. 7. Equipamento, de acordo com a reivindicação 1,no qual o buscador é configurado para determinar umapluralidade de tarefas programáveis com base em uma fila detarefas que pode ser atualizada a cada período deintegração inicial.Equipment according to claim 1, wherein the browser is configured to determine a plurality of programmable tasks based on a queue of tasks that can be updated with each initial integration period. 8. Equipamento, de acordo com a reivindicação 7,no qual o buscador é configurado para determinar uma filade tarefas para um período de integração inicial futurodurante o processamento de tarefas em uma fila de tarefasque corresponde ao período de integração inicial atual.Equipment according to claim 7, wherein the browser is configured to determine a task queue for an initial integration period during the processing of tasks in a task queue that corresponds to the current initial integration period. 9. Equipamento, de acordo com a reivindicação 1,no qual o acelerador é também configurado para gerar umvalor de energia para cada uma de pelo menos uma acumulaçãocoerente.Equipment according to claim 1, wherein the accelerator is also configured to generate an energy value for each of at least one coherent accumulation. 10. Equipamento, de acordo com a reivindicação 9,no qual o acelerador é também configurado para gerar urnaintegração não-coerente de valores de energia.Equipment according to claim 9, wherein the accelerator is also configured to generate non-coherent integration of energy values. 11. Equipamento, de acordo com a reivindicação 1,no qual o acelerador é configurado para gerar a pelo menosuma acumulação coerente através de uma faixa de freqüênciaque é inferior ou igual a aproximadamente 500 Hertz.Apparatus according to claim 1, wherein the accelerator is configured to generate at least one coherent accumulation over a frequency range that is less than or equal to approximately 500 Hertz. 12. Equipamento, de acordo com a reivindicação 1,no qual o acelerador compreende um buffer duplo, onde cadabloco do buffer duplo é associado a um do acelerador ou domovimentador de dados, e no qual o acesso pelo acelerador epelo movimentador de dados é limitado ao bloco do bufferduplo com o qual este está associado.Equipment according to claim 1, wherein the accelerator comprises a double buffer, wherein the double buffer block is associated with one of the accelerator or data mover, and in which access by the accelerator and the data mover is limited to double buffer block with which it is associated. 13. Equipamento, de acordo com a reivindicação 1,no qual o número de deslocamentos de freqüência édeterminado com base, em parte, no comprimento deintegração.Equipment according to claim 1, wherein the number of frequency shifts is determined based in part on the integration length. 14. Equipamento para busca de espaço de código, oequipamento compreendendo:- uma memória tendo uma parte alocada para buscade espaço de código, a parte dependendo do modo de buscaprogramável ativo; e- um circuito integrado acoplado à memória, ocircuito integrado compreendendo:um buscador configurado para geraruma pluralidade de resultados de integração coerentesdeterminados ao longo de um período de integração inicialpara cada uma de uma pluralidade de tarefas de buscaprogramável;um acelerador configurado paradeterminar uma acumulação coerente de resultados deintegração coerentes em relação ao comprimento deintegração coerente e hipóteses de freqüência determinadaspelo modo de busca programável ativo; e- um movimentador de dados configurado paraefetuar transferências de dados DMA entre o buscador e amemória e entre o acelerador e a memória.14. Code space search equipment, the equipment comprising: - a memory having a portion allocated for code space search, the part depending on the active programmable search mode; a memory-coupled, integrated circuit comprising: a search engine configured to generate a plurality of coherent integration results determined over an initial integration period for each of a plurality of programmable search tasks, a configured accelerator to determine a coherent accumulation of coherent integration results with respect to coherent integration length and frequency assumptions determined by the active programmable search mode; and a data mover configured to perform DMA data transfers between the searcher and memory and between the accelerator and memory. 15. Equipamento, de acordo com a reivindicação 14, no qual cada tarefa de busca especifica um conjunto dehipóteses de código selecionadas de um código.Equipment according to claim 14, wherein each search task specifies a set of selected code hypotheses from a code. 16. Equipamento, de acordo com a reivindicação 14, no qual o buscador é configurado para suportar até 32tarefas de busca distintas em um período de integraçãoinicial.Equipment according to claim 14, wherein the search engine is configured to support up to 32 distinct search tasks in an initial integration period. 17. Equipamento, de acordo com a reivindicação 14, no qual o movimentador de dados é configurado paraefetuar transferência de dados da memória para um blocoassociado de um buffer de amostras duplamente armazenadasdo acelerador.Apparatus according to claim 14, wherein the data mover is configured to perform data transfer from memory to a block associated with a double-stored sample buffer of the accelerator. 18. Equipamento, de acordo com a reivindicação-14, no qual o movimentador de dados é configurado paraefetuar transferências de dados para a memória a partir deum bloco associado de um buffer de buscador duplamentearmazenado do buscador.Apparatus according to claim 14, wherein the data mover is configured to perform data transfers to memory from an associated block of a double-stored searcher buffer of the browser. 19. Método de busca de espaço de código, o métodocompreendendo: - capturar amostras complexas de um sinal sem fiorecebido;- configurar uma pluralidade de tarefas de buscade espaço de código;- executar cada uma das tarefas de busca deespaço de código para gerar uma pluralidade de resultadosde integração coerentes obtidos ao longo de um tempo deintegração inicial; edeterminar uma acumulação coerente de umapluralidade de resultados de integração coerentes, umcomprimento de integração e o deslocamento de freqüênciaassociado com a acumulação coerente com base no modo debusca de espaço de código programável.19. Code space search method, the method comprising: - capturing complex samples of an unrecognized signal - configuring a plurality of code space search tasks - performing each of the code space search tasks to generate a plurality of coherent integration results obtained over an initial integration time; and determine a coherent accumulation of a plurality of coherent integration results, an integration length, and the frequency offset associated with coherent accumulation based on programmable code space debug mode. 20. Método, de acordo com a reivindicação 19,também compreendendo determinar a energia da acumulaçãocoerente.The method of claim 19 further comprising determining the energy of coherent accumulation. 21. Método, de acordo com a reivindicação 19,compreendendo também:- determinar a energia da acumulação coerente; e- determinar a integração não-coerente de umaposição de grade de energia que corresponde à energia.The method of claim 19 further comprising: determining the energy of coherent accumulation; and determining the non-coherent integration of an energy grid position that corresponds to the energy. 22. Método, de acordo com a reivindicação 21,compreendendo também:- armazenar a integração não-coerente em um blocode um buffer duplo de energia associado a um acelerador;- trocar uma associação do bloco do buffer duplode energia para um movimentador de dados; e- transferir a integração não-coerente do blocodo buffer duplo de energia para uma memória.The method of claim 21 further comprising: storing non-coherent integration into a block a dual energy buffer associated with an accelerator, exchanging a dual energy buffer block association for a data mover; e- transfer the non-coherent integration of the dual power buffer block into a memory. 23. Método, de acordo com a reivindicação 19,compreendendo também armazenar a pluralidade de resultadosde integração coerente em um bloco de um buffer duplo debuscador associado a um buscador.The method of claim 19, further comprising storing the plurality of coherent integration results in a block of a double debugger buffer associated with a searcher. 24. Método, de acordo com a reivindicação 23,compreendendo também:- trocar uma associação do bloco do buffer duplode buscador para um movimentador de dados; e- transferir os resultados de integraçãocoerentes do bloco do buffer duplo do buscador para umamemória.A method according to claim 23, further comprising: exchanging a lookup double buffer block association for a data mover; e- transfer the coherent integration results from the double buffer buffer block into a memory. 25. Método, de acordo com a reivindicação 19, noqual executar cada uma das tarefas de busca de espaço decódigo compreende:- determinar uma pluralidade de hipóteses deespaço de código; e- correlacionar cada uma das hipóteses de espaçode código com pelo menos uma parte das amostras complexas.The method of claim 19, wherein performing each of the code space search tasks comprises: determining a plurality of code space assumptions; and correlate each of the code space hypotheses with at least a portion of the complex samples. 26. Método, de acordo com a reivindicação 19, emque determinar a acumulação coerente compreende:- transferir a pluralidade de resultados deintegração coerente de uma memória para um primeiro blocode um buffer duplo de amostras;- trocar uma associação do primeiro bloco dobuffer duplo para um acelerador; e- determinar a acumulação coerente da pluralidadede resultados de integração coerentes no primeiro bloco.The method of claim 19, wherein determining coherent accumulation comprises: transferring the plurality of coherent integration results from a memory to a first block of a double sample buffer, exchanging an association of the first double dobuffer block to a accelerator; and determining the coherent accumulation of plurality of coherent integration results in the first block. 27. Método de busca de espaço de código, o métodocompreendendo:- capturar amostras complexas de um sinal sem fiorecebido;- executar cada uma de uma pluralidade de tarefasde busca de espaço de código para gerar uma pluralidade deresultados de integração coerentes correspondendo a umapluralidade de hipóteses de espaço de código;armazenar a pluralidade de resultados &eintegração coerente na memória;- recuperar da memória um número de resultados deintegração coerente correspondendo a um comprimento deintegração; e- determinar uma acumulação coerente do número de resultados de integração coerentes.27. Code space search method, the method comprising: - capturing complex samples of an unrecognized signal - performing each of a plurality of code space search tasks to generate a plurality of coherent integration results corresponding to a plurality of hypotheses storing plurality of results & coherent integration in memory - retrieving from memory a number of coherent integration results corresponding to an integration length; e- determine a coherent accumulation of the number of coherent integration results. 28. Método, de acordo com a reivindicação 27,compreendendo também determinar a energia da acumulaçãocoerente.The method of claim 27, further comprising determining the energy of coherent accumulation. 29. Método, de acordo com a reivindicação 27,compreendendo também determinar uma integração de energianão-coerente com base na energia da acumulação coerente.A method according to claim 27, further comprising determining an energy-coherent integration based on the energy of coherent accumulation. 30. Método, de acordo com a reivindicação 27, emque executar cada uma da pluralidade de tarefas de busca deespaço de código compreende determinar uma correlação deuma pluralidade de hipóteses de código para pelo menos umaparte das amostras complexas.The method of claim 27, wherein performing each of the plurality of code space search tasks comprises determining a correlation of a plurality of code hypotheses to at least a part of the complex samples. 31. Método, de acordo com a reivindicação 27, emque armazenar a pluralidade de resultados de integraçãocoerentes na memória compreende:~ armazenar pelo menos uma parte da pluralidadede resultados de busca coerentes em um bloco de um bufferduplo;- trocar uma associação do bloco do buffer duplo;e- transferir a parte da pluralidade de resultadosde busca coerente do bloco do buffer duplo para a memória.The method of claim 27, wherein storing the plurality of coherent integration results in memory comprises: storing at least a portion of the plurality of coherent search results in a block of a double buffer; exchanging a buffer block association transfer the portion of the plurality of coherent search results from the double buffer block to memory. 32. Equipamento para busca de espaço de código, oequipamento compreendendo:- um dispositivo para capturar amostras complexasde um sinal sem fio recebido;- um dispositivo para configurar uma pluralidadede tarefas de busca de espaço de código;- um dispositivo para buscar de acordo com cadauma das tarefas de busca de espaço de código para gerar umapluralidade de resultados de integração coerentes obtidosao longo de um período de integração inicial; e- um dispositivo para determinar a acumulaçãocoerente de uma série de resultados de integração coerente,um comprimento de integração e o deslocamento de freqüênciaassociado à acumulação coerente com base no modo de buscade espaço de código programável.32. Code space search equipment, the apparatus comprising: - a device for capturing complex samples of a received wireless signal - a device for configuring a plurality of code space search tasks - a device for searching according to each of code space search tasks to generate a plurality of coherent integration results obtained over an initial integration period; and a device for determining the coherent accumulation of a series of coherent integration results, an integration length, and the frequency offset associated with coherent accumulation based on the programmable code space search mode. 33. Equipamento para busca de espaço de código, oequipamento compreendendo:- um dispositivo para capturar amostras complexasde um sinal sem fio recebido;um dispositivo para buscar as amostrascomplexas de acordo com cada uma de uma pluralidade detarefas de busca de espaço de código para gerar umapluralidade de resultados . de integração coerentescorrespondendo'a uma pluralidade de hipóteses de espaço decódigo;- um dispositivo para armazenar a pluralidade deresultados de integração coerentes;- um dispositivo para transferir um número deresultados de integração coerentes correspondendo a umcomprimento de integração; e- um dispositivo para determinar a acumulaçãocoerente do número de resultados de integração coerentes.33. Code space search equipment, the apparatus comprising: - a device for capturing complex samples of a received wireless signal, a device for searching complex samples according to each of a plurality of code space search tasks to generate a plurality of results. a coherent integration result corresponding to a plurality of code space hypotheses, - a device for storing the plurality of coherent integration results, - a device for transferring a number of coherent integration results corresponding to an integration length; and a device for determining the consistent accumulation of the number of coherent integration results.
BRPI0708489-7A 2006-03-02 2007-03-02 Method and Equipment for Searching for Code Space in a Receiver BRPI0708489A2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US77917206P 2006-03-02 2006-03-02
US60/779,172 2006-03-02
US88532307P 2007-01-17 2007-01-17
US60/885,323 2007-01-17
PCT/US2007/063225 WO2007120995A1 (en) 2006-03-02 2007-03-02 Method and apparatus for code space search in a receiver

Publications (1)

Publication Number Publication Date
BRPI0708489A2 true BRPI0708489A2 (en) 2011-05-31

Family

ID=38609838

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0708489-7A BRPI0708489A2 (en) 2006-03-02 2007-03-02 Method and Equipment for Searching for Code Space in a Receiver

Country Status (11)

Country Link
EP (1) EP1992080A1 (en)
JP (1) JP5295788B2 (en)
KR (1) KR101147942B1 (en)
CN (1) CN101395814B (en)
AU (1) AU2007238489A1 (en)
BR (1) BRPI0708489A2 (en)
CA (1) CA2640761C (en)
IL (1) IL193093A0 (en)
MX (1) MX2008010827A (en)
TW (1) TWI370627B (en)
WO (1) WO2007120995A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI426397B (en) * 2009-06-29 2014-02-11 Lee Ming Inst Technology Can be used in a signal interval in the unequal spacing of the sample, the signal in this interval between a single and multiple numerical integration device.
EP2326022A1 (en) * 2009-11-23 2011-05-25 Nxp B.V. Device for acquiring a spread spectrum signal
JP5549471B2 (en) * 2010-08-09 2014-07-16 株式会社デンソー Receiving machine
US8792438B2 (en) * 2010-10-07 2014-07-29 Futurewei Technologies, Inc. System and method for search space reconfiguration in a communications system
KR101440692B1 (en) * 2012-05-31 2014-09-15 한국과학기술원 2-dimensional compressed correlator for fast gnss and spread spectrum signal acquisition and robust tracking and apparatus thereof
US10111248B2 (en) * 2012-06-29 2018-10-23 Blackberry Limited Method and system for cross-subframe scheduling during carrier aggregation
US9107159B2 (en) 2013-06-07 2015-08-11 Apple Inc. Enhancing jitter buffer performance through radio level feedback
DE102016109342B4 (en) 2016-05-20 2024-02-22 Infineon Technologies Ag RADAR SENSOR SYSTEM FOR GESTURE RECOGNITION AND METHOD FOR RADAR-BASED GESTURE RECOGNITION

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6603803B1 (en) * 1999-03-12 2003-08-05 Navcom Technology, Inc. Global positioning system receiver for monitoring the satellite transmissions and for reducing the effects of multipath error on coded signals and carrier phase measurements
FI19992653A (en) * 1999-12-09 2001-06-10 Nokia Mobile Phones Ltd A method for synchronizing a receiver and a receiver
GB0126325D0 (en) * 2001-11-02 2002-01-02 Koninl Philips Electronics Nv Method and apparatus for spread spectrum signal acquisition
GB0130804D0 (en) * 2001-12-22 2002-02-06 Koninkl Philips Electronics Nv Method and apparatus for signal receipt and acquisition
US20040062298A1 (en) * 2002-10-01 2004-04-01 Mcdonough John G. System and method for detecting direct sequence spread spectrum signals using pipelined vector processing
EP1680686A1 (en) * 2003-09-02 2006-07-19 Sirf Technology, Inc. Signal processing system for satellite positioning signals
US7702002B2 (en) * 2004-01-28 2010-04-20 Qualcomm Incorporated Rapid acquisition methods and apparatus for GPS signals
US7471717B2 (en) * 2004-05-17 2008-12-30 Yi Ping Huang Apparatus and method for acquiring spread-spectrum signals
US7903719B2 (en) * 2005-12-21 2011-03-08 Qualcomm Incorporated Optimal use of resources for signal processors

Also Published As

Publication number Publication date
JP5295788B2 (en) 2013-09-18
JP2009535605A (en) 2009-10-01
CN101395814B (en) 2013-02-06
TW200805908A (en) 2008-01-16
AU2007238489A1 (en) 2007-10-25
CA2640761A1 (en) 2007-10-25
KR20080100840A (en) 2008-11-19
IL193093A0 (en) 2009-02-11
CA2640761C (en) 2014-09-30
TWI370627B (en) 2012-08-11
KR101147942B1 (en) 2012-05-24
MX2008010827A (en) 2008-09-05
WO2007120995A1 (en) 2007-10-25
CN101395814A (en) 2009-03-25
EP1992080A1 (en) 2008-11-19

Similar Documents

Publication Publication Date Title
US8279910B2 (en) Method and apparatus for code space search in a receiver
US8593345B2 (en) Signal processing system for satellite positioning signals
BRPI0708489A2 (en) Method and Equipment for Searching for Code Space in a Receiver
RU2611069C1 (en) Device for simultaneous reception of signals from various satellite navigation systems
JP5868878B2 (en) GNSS receiver and signal tracking circuit and system
US20110102258A1 (en) Signal Processing System for Satellite Positioning Signals
US20230288574A1 (en) Modernized global navigation satellite system (gnss) receivers and commercially viable consumer grade gnss receivers
Alaqeeli et al. Real-time acquisition and tracking for GPS receivers
JP2004501352A (en) Signal detector and method employing a coherent accumulation system for correlating non-uniform and discrete sample segments
JP2011504229A5 (en)
JP2015513085A (en) Low-power asynchronous GPS baseband processor
US20080069189A1 (en) Low Gate Count Sequential Multitap Correlator
US7498981B2 (en) Method and apparatus for real-time digital processing of satellite positional signals for fast acquisition and low SNR tracking
Schmidt et al. Exploiting acceleration features of LabVIEW platform for real-time GNSS software receiver optimization
Charkhandeh et al. Implementation and testing of a real-time software-based GPS receiver for x86 processors
TW202124994A (en) Modernized global navigation satellite system receivers
Soghoyan et al. A labVIEW-based GPS receiver development and testing platform with DSP peripherals: Case study with c6713 DSK
Shivaramaiah et al. Software-aided sequential multi-tap correlator for fast acquisition
RU161091U1 (en) DEVICE FOR SIMULTANEOUS RECEIVING OF SIGNALS OF VARIOUS SATELLITE NAVIGATION SYSTEMS
TW202219549A (en) Modernized global navigation satellite system receivers
Lu Development and Testing of A Space-borne GPS Signal Strength Sensor

Legal Events

Date Code Title Description
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B11Y Definitive dismissal - extension of time limit for request of examination expired [chapter 11.1.1 patent gazette]