BRPI0621450A2 - receptor e satélite para usar com um sistema de navegação por satélite, e, métodos para operar e produzir um receptor para uso com um sistema de navegação por satélite - Google Patents

receptor e satélite para usar com um sistema de navegação por satélite, e, métodos para operar e produzir um receptor para uso com um sistema de navegação por satélite Download PDF

Info

Publication number
BRPI0621450A2
BRPI0621450A2 BRPI0621450-9A BRPI0621450A BRPI0621450A2 BR PI0621450 A2 BRPI0621450 A2 BR PI0621450A2 BR PI0621450 A BRPI0621450 A BR PI0621450A BR PI0621450 A2 BRPI0621450 A2 BR PI0621450A2
Authority
BR
Brazil
Prior art keywords
code
satellite
storage unit
receiver
memory
Prior art date
Application number
BRPI0621450-9A
Other languages
English (en)
Inventor
Martin Hollreiser
Roland Weigand
Original Assignee
Europ Agence Spatiale
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 Europ Agence Spatiale filed Critical Europ Agence Spatiale
Publication of BRPI0621450A2 publication Critical patent/BRPI0621450A2/pt
Publication of BRPI0621450B1 publication Critical patent/BRPI0621450B1/pt

Links

Classifications

    • 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
    • G01S1/00Beacons or beacon systems transmitting signals having a characteristic or characteristics capable of being detected by non-directional receivers and defining directions, positions, or position lines fixed relatively to the beacon transmitters; Receivers co-operating therewith
    • 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/35Constructional details or hardware or software details of the signal processing chain
    • G01S19/37Hardware or software details of the signal processing chain
    • 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
    • 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/35Constructional details or hardware or software details of the signal processing chain
    • G01S19/36Constructional details or hardware or software details of the signal processing chain relating to the receiver frond end
    • 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
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/14Determining absolute distances from a plurality of spaced points of known location
    • 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

Landscapes

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

Abstract

RECEPTOR E SATéLITE PARA USAR COM UM SISTEMA DE NAVEGAçãO POR SATéLITE, E, MéTODOS PARA OPERAR E PRODUZIR UM RECEPTOR PARA USO COM UM SISTEMA DE NAVEGAçãO POR SATéLITE. Um receptor é fornecido para usar com um sistema de navegação por satélite compreendendo a constelação de múltiplos satélites. cada satélite transmite um sinal incorporando um código de espalhamento. O receptor inclui pelo menos uma unidade de armazenamento de código que inclui lógica combinatorial para armazenar um código de memória compreendendo um padrão fixo de bits incluindo decodificação de endereço, onde o código de memória armazenado corresponde a um código de espalhamento incorporado em um sinal transmitido de um satélite. O receptor ainda inclui um dispositivo de correlação para efetuar uma correlação entre um sinal entrante e o código de espalhamanto armazenado da unidade de código de armazenamento.

Description

1
"RECEPTOR E SATÉLITE PARA USAR COM UM SISTEMA DE NAVEGAÇÃO POR SATÉLITE, E, MÉTODOS PARA OPERAR E PRODUZIR UM RECEPTOR PARA USO COM UM SISTEMA DE NAVEGAÇÃO POR SATÉLITE" Campo da Invenção
A presente invenção se relaciona a um sistema de posicionamento ou navegação por satélite sistema compreendendo uma constelação de múltiplos satélites, e especialmente a um receptor para uso em conjunto com tal um sistema de navegação por satélite. Conhecimento da Invenção
Sistemas de navegação por satélite estão se tornando cada vez mais importante em uma ampla gama de aplicações, incluindo dispositivos de mão para determinação de posição, suporte de navegação em carro, e assim por diante. O principal sistema de navegação por satélite em serviço no presente é o sistema de posicionamento global (GPS) operado pelo Departamento de Defesa dos Estados Unidos. As vendas mundiais de equipamento de GPS alcançaram aproximadamente 3,5 bilhões de dólares em 2003, e esta cifra é esperada para crescer de forma constante nos próximos poucos anos. Um sistema de navegação por satélite de consórcio Europeu, denominado Galileo, está planejado para lançamento e disponibilidade de serviço mais tarde nesta década.
Um sistema de navegação por satélite compreende uma constelação de satélites, cada um dos quais transmite de forma difusa um ou mais sinais para a terra. Os componentes básicos de um sinal de satélite são uns códigos de espalhamento (também referido como um código de posicionamento, de sincronização ou de alcance) que são combinados com os dados de navegação. A combinação resultante é então modulada em uma portadora em um conjunto de freqüência para transmissão para a terra. Cada satélite de forma geral, transmite em múltiplas freqüências, que pode ajudar a compensar os efeitos ionosféricos, para melhorar a precisão e para transmitir mais dados de forma difusa.
Em alguns casos, múltiplos canais podem ser modulados em uma única portadora através de algum esquema de multiplexador apropriado. Por exemplo, está planejado para certos sinais do Galileo compreender um canal de dados combinados com um canal de piloto. O canal de piloto contém somente um código de espalhamento, mas nenhuns dados de navegação, enquanto o canal de dados contém ambos o código de espalhamento e os dados de navegação.
O componente do código de espalhamento de um sinal de satélite tipicamente compreende uma seqüência pré-determinada de bits (referida como " chips ") e é usada para efetuar duas tarefas principais. Primeiramente, o código de espalhamento fornece um mecanismo de sincronização e de acesso (CDMA) mecanismo para permitir um receptor sintonizar em um sinal de satélite. Assim sendo cada satélite (e tipicamente cada sinal transmitido difusamente de qual satélite) tem seu próprio código de sincronização. Quando um receptor é primeiro ligado, ele não sabe que sinais de satélite podem ser recebidos, já que certo satélites na constelação estarão abaixo do horizonte para aquela particular localização naquele particular tempo. O receptor usa os códigos de sincronização para sintonizar em um sinal de um primeiro satélite. Uma vez que isto tenha sido feito, os dados de navegação no sinal podem ser acessados. Este então fornece dados de manual para os outros satélites na constelação, e permite aos satélites remanescentes que estão visíveis para o receptor serem adquiridos relativamente de forma rápida.
Muitos receptores empregam um processo de aquisição de duas fases. Na primeira fase, o receptor efetua uma correlação simultânea do sinal entrante contra o conjunto de códigos de espalhamento do satélite. Em particular, o receptor procura por um código de espalhamento de qualquer 3
satélite, permitindo para qualquer possível desvio de sincronismo entre o satélite e o receptor, e para qualquer possível deslocamento de Doppler entre o satélite e o receptor (que é dependente no movimento do satélite no espaço relativo ao usuário). Se um valor de correlação é encontrado exceder um limite pré-determinado, então uma segunda fase envolvendo uma análise mais detalhada é efetuada para a combinação relevante de código de espalhamento de satélite, de desvio de sincronismo e de deslocamento de Doppler. Esta análise de segunda fase verifica e confirma ou se necessário rejeita a aquisição grosseira inicial.
A segunda tarefa principal de um código de espalhamento é fornecer uma estimativa de distância do satélite para o receptor, com base no tempo que ele leva o sinal para viajar do satélite para o receptor. A posição do receptor é então determinada no espaço de três dimensões usando um processo de determinação de posição tripla, dado as posições conhecidas dos satélites (como especificado nos dados de navegação recebidos a partir dos satélites). Em teoria, determinação de posição tripla pode ser efetuada com informação de sinal de um mínimo de três satélites, assumindo que o desvio de sincronismo entre o relógio do receptor relógios do satélite é conhecido. Na prática, este desvio de sincronismo é de forma geral, desconhecido, exceto para receptores especializados, tal que a informação de sinal é obtida a partir de pelo menos um satélite adicional para o desvio de sincronismo desconhecido no receptor. Se os sinais a partir de satélites adicionais estão disponíveis, a determinação de posição estatística pode ser efetuada usando qualquer algoritmo apropriado tal como os quadrados mínimos. Isto pode também fornecer alguma indicação do erro associada com uma posição estimada.
Um parâmetro importante para um código de espalhamento é a taxa de taxa de chip na qual o código de espalhamento é transmitido, já que esta por sua vez controla a precisão com que a determinação de posição pode ser feita. Um outro parâmetro importante para um código de espalhamento é seu comprimento total, em outras palavras o número de chips no código de espalhamento antes de se repetir. Uma razão para isto é que o comprimento finito de um código de espalhamento pode conduzir a ambigüidade na determinação da posição. Um comprimento maior para o código de espalhamento reduz tal ambigüidade, e também fornece melhor separação de sinais a partir de fontes diferentes e robustez aumentada contra interferência. Por outro lado, tendo um comprimento de repetição maior para o código de espalhamento pode atrasar a aquisição inicial do sinal, assim como requerer mais capacidade de processamento dentro do receptor. Em geral, o comprimento do código de espalhamento também impacta a taxa de dados que pode ser usada para os dados de navegação, já que normalmente há somente um bit de dados de navegação para cada seqüência de código de espalhamento completa. Por conseguinte, quanto maior o comprimento de repetição para o código de espalhamento, maior a taxa de bit para os dados de navegação.
Uma estratégia conhecida é usar um código de espalhamento hierárquico com base nos códigos primários e secundários. Se nós assumimos que um código primário tem Nl chips e um código secundário tem N2 chips, então o primeiro Nl chips do código de espalhamento total corresponde a seqüência primária submetida a operação lógica de OR exclusivo com o primeiro s do código secundário, o próximo Nl chips do código de espalhamento compreende uma repetição dos Nl chips do código primário, desta vez submetido à operação lógica de OR exclusivo com o segundo chip do código secundário, e assim por diante. Isto dá um comprimento de repetição total para o código de N1 χ N2, contudo a aquisição inicial pode ser com base somente no código primário.
Os códigos de espalhamento de GPS são implementados usando registros de deslocamento de re-alimentação lineares (LFSRs), nos quais as saídas selecionadas a partir de um registro de deslocamento de N estágios são aproveitadas e alimentadas de volta para a entrada. As conexões de realimentação dentro do LFSR podem ser representadas como um polinômio binário em aritmética de módulo 2 de orem N, através do qual a operação de um LFSR é totalmente especificada por seu polinômio e sua configuração inicial do LF SR.
Os códigos de espalhamento de GPS são códigos de Gold, que tem certas propriedades matemáticas especiais. Uma dessas é que eles geram uma saída de ruído pseudo-randômico (PRN) tendo um comprimento de repetição de 2N-1, tal que um relativamente LFSR compacto pode gerar uma saída com um comprimento de repetição longo. Códigos de Gold também têm propriedades de auto-correlação boas que suportam aquisição de código e posicionamento preciso. Em particular, a função de auto-correlação tem um pico bem definido no deslocamento de tempo zero, e é relativamente pequeno para todos os outros deslocamentos de tempo (i. e. não zeros). Ao mesmo tempo é também importante selecionar um conjunto de códigos de Gold que tem propriedades de correlação cruzada boas, através das quais a função de correlação cruzada entre códigos diferentes é relativamente pequena. Isto é importante para aquisição de sinal, já que ajuda a prevenir um código de sincronização a partir de um satélite sendo acidentalmente enganado por um código de sincronização a partir de um outro satélite. Um critério prático importante adicional para um código de espalhamento é ter igual (ou aproximadamente igual) números de uns e zeros - isto é referido como balanceamento.
Informação adicional sobre sistema de navegação por satélites pode ser encontrada em: "Global Positioning System: Signals, Measurements and Performance", by Misra e Enge, Ganga-Jamuna Press, 2001, ISBN 0- 9709544-0-9; " Global Positioning System: Theory and Applications", Vol 1 e Vol 2, by Bradford W. Parkinson e James J. Spilker Jr, ISBN 1-56347-106- 6
X, publicados pelo American Institute for Aeronautics e Astronautics; "Galileo User Segment Overview " by Hollreiser et al, ION GPS/GNSS 2003, September 2003, Portland, Oregon, pl914-1928; e " Galileo Test User Segment - First Achievements e Application", by Hollreiser et al, GPS World, July 2005.
Embora o uso de códigos de Gold seja bem estabelecido para sistemas de navegação por satélites existentes, há algumas limitações associada com tais códigos. Por exemplo, eles somente estão disponíveis com certos comprimentos de código (2N-1, e nem todos os valores de N podem ser usados para o polinômio do LFSR). Em geral, o comprimento do código é determinado pela proporção da taxa de chip do código de espalhamento e da taxa de bit dos dados de navegação. Se o comprimento do código é restrito a um código de Gold disponível, então isto implica em uma restrição na taxa de chip e na taca de bit, que poderia por sua vez impactar outras considerações, tais como tempo de aquisição e precisão de posicionamento. Em alguns casos, a limitação no comprimento do código para códigos de Gold tem sido superada usando códigos de Gold trancados, mas esse truncamento tem uma impacto adverso nas propriedades matemáticas do conjunto de conjunto de códigos(em termos da função de auto-correlação, etc).
Conseqüentemente, tem sido proposto nos pedidos PCT / EP2004 / 014488 e PCT / EP2005 / 007235 para uso de seqüências de bit projetada ao cliente ou feita sob encomenda como códigos de espalhamento do satélite. Isto permite o desenvolvimento de códigos de espalhamento de comprimento arbitrário, e também permite a otimização de várias propriedades tal como auto-correlação e correlação cruzada independente de outras restrições. Tal um código de espalhamento será descrito aqui como um código de " memória ",já que em geral um receptor armazena o padrão de chip inteiro do código. Isto é em contraste para gerar o padrão de chip de forma algorítmica, como para o código de Gold, que usa um LFSR para gerar um código de forma algorítmica de acordo com seu polinômio, mais propriamente do que armazenar o padrão de chip do código todo. Note que, já que os códigos de memória são tipicamente criados a partir de seqüências de número aleatórios (pseudo), eles não são normalmente adequados para técnicas de compressão de dados.
O conjunto de códigos de memória para um receptor pode ser armazenado dentro de alguma forma de ROM tal como memória temporária. Esses códigos podem então ser carregados no conjunto de chip do receptor em tempo de iniciação para uso durante a detecção dos códigos de espalhamento nos sinais de satélite entrantes. Se os códigos de memória completos que são carregados no próprio conjunto de chip do receptor, isto pode ser representar uma sobrecarga bem significante em termos de localizações de armazenamento no conjunto de chip do receptor. De forma alternativa, os códigos poderiam ser carregados em uma RAM (externa para o conjunto de chip do receptor), onde eles iriam representar somente uma pequena adição comparativamente aos requisitos de armazenamento de dados e / ou do programa total. Contudo, neste caso uma interface de alta velocidade dedicada para alimentar os códigos em tempo real da RAM para o conjunto de chip do receptor é provavelmente para ser requerida, assim como armazenamento temporário interno adicional dentro do próprio conjunto de chip do receptor.
Figura 1 representa uma implementação típica de um LFSR, como poderia, por exemplo, ser fornecido dentro de um conjunto de chip do receptor de GPS convencional. O hardware básico inclui um registro de deslocamento 11 de comprimento N, mais dois registros adicionais 12, 13, cada um também de comprimento Ν. O projeto do próprio registro de deslocamento é genérico, no fato que os pedaços de realimentação não são fiados. Mais propriamente, a realimentação entre vários entre os vários estágios do registro de deslocamento 11 é controlado pelo valor polinomial que é carregado em um dos dois registros adicionais (o registro polinomial 12). A configuração inicial do LFSR é então determinada pelo valor armazenado no outro Registro adicional (o registro de padrão inicial 13). Desta maneira, o LFSR da Figura 1 pode ser customizado para fornecer valores apropriados no registro polinomial e no registro de padrão inicial.
O LFSR da Figura 1 compreende 3N localizações de armazenamento (já que o registro de deslocamento 11, o registro polinomial 12, e o registro de padrão inicial 13, cada um tem N localizações de armazenamento). Como notado acima, para um código de Gold máximo, o número de localizações de armazenamento no registro de deslocamento 11 de realimentação é relacionado ao comprimento do código de saída (L) através de N= log(L+l). Já que um código de Gold é de forma geral, com base em combinação de saídas de 2 LFSRs, o número total de localizações de armazenamento T(S) para um código de Gold pode ser expresso como: T(S)=6*2log(L+ 1). Em adição, um gerador de código de LFSR padrão tem alguma lógica combinatorial para fornecer os pedaços de realimentação (XORs), assim como uma pequena máquina de estado / controlador em combinação com um contador ( ou comparador + registro) para re- configuração, recarga e re-início no final da seqüência.
Em contraste, uma implementação direta de um código de memória em um receptor poderia envolver fornecer a memória de comprimento cheio para cada código a ser armazenado no receptor, incluindo decodificadores de endereço relevantes. A memória pode ser estática ou dinâmica, dependendo da tecnologia de implementação escolhida. A maioria das tecnologias de largo espalhamento (ASIC, FPGAs) suportam memórias estáticas. Em adição, uma pequena máquina estática ou controlador para geração de endereço tipicamente seria usada para assegurar usado para assegurar leitura da célula de memória correta. Assumindo que a porta lógica de contagem equivalente de uma célula de memória estática é 1,5 NAND2 (NAND2 representa uma porta lógica NAND de duas entradas e tipicamente compreende 6 transistores), então para tecnologia de Ο,ΐδμτη isto resulta em uma área de 18,75μπι por célula de memória. Incluindo 200 portas lógicas para a máquina de estado / controlador, e assumindo um código de chip de .4096 (correspondendo ao sinal Ll do Galileo), isto é equivalente à 6344 portas lógicas NAND2, com uma área total de 79300 μηι . De forma alternativa, para um código de chip de 10230, como para o sinal de E5a do Galileo, e com base nas mesmas suposições como acima, isto é equivalente à .15545 portas lógicas NAND2, com uma área total de 194312 μηι (não levando em conta qualquer economia devido a regularidade da estrutura). Isto pode representar uma sobrecarga significativa para o conjunto de chip do receptor.
Note também que para o código de memória caso, T(S) ~ L. em outras palavras, o número de localizações de armazenamento cresce em proporção direta ao comprimento do código, mais propriamente do que na proporção para o logaritmo do código, como para uma implementação de LF SR. É claro, por conseguinte, que conforme o comprimento do código de espalhamento aumenta, o uso dos códigos de memória demanda, de forma significativa, mais localizações de armazenamento do que uma abordagem de LFSR convencional. Este problema é ampliado, no fato que um receptor tem de armazenar não um código de espalhamento, mas mais propriamente o conjunto completo dos códigos de espalhamento para todos os satélites e para todos os sinais de interesse. Sumário da Invenção
Conseqüentemente , uma modalidade da invenção fornece um receptor para usar com um sistema de navegação por satélite compreendendo uma constelação de múltiplos satélites, em que cada satélite transmite um sinal incorporando um código de espalhamento. O receptor inclui pelo menos uma unidade de armazenamento de código que inclui lógica combinatorial para armazenar um código de memória compreendendo um padrão fixo de chips. O código de memória armazenado corresponde a um código de espalhamento incorporado em um sinal transmitido a partir de um satélite. A lógica combinatorial inclui funcionalidade de decodificação de endereço para recuperar uma porção especificada do código de memória armazenado. O receptor ainda inclui um dispositivo de correlação para efetuar uma correlação entre um sinal entrante e o código de memória armazenado da unidade de armazenamento de código.
Será apreciado que uma implementação convencional de uma célula de memória, por exemplo como um flip-flop ou registro, é baseada na lógica seqüencial que mantém o estado dependente da entrada anterior, tal que os dados a serem armazenados são carregados como sinais de entrada no dispositivo. Em contraste, um código de espalhamento pode ser considerado como armazenado na lógica combinatorial em virtude da configuração fiada do hardware da lógica combinatorial.
Também será apreciado que um LFSR usado para gerar um código de espalhamento em um receptor existente compreende lógica seqüencial mais propriamente do que lógica combinatorial, já que sua saída depende do estado interno dos registros. Em adição, LFSRs são limitados nos códigos que eles podem gerar, naqueles códigos definidos por certos algoritmos matemáticos. De fato, um LFSR é melhor considerado como armazenando um algoritmo matemático (que pode então ser usado para gerar um código), mais propriamente do que como armazenando um código por si só. Em contraste, uma lógica combinatorial pode ser usada para armazenar um código de espalhamento genérico ou arbitrário, e. g. um sem qualquer propriedade matemática pré-determinada, e um que não seja gerado usando um algoritmo matemático pré-definido. Uma lógica combinatorial pode por conseguinte ser usada para armazenar um código de memória customizado ou fornecido sob medida que foi otimizado para um particular sistema de navegação por satélite. (Note que a lógica combinatorial não é limitada para tal um código de memória customizado; ela também pode ser usada para armazenar um código de memória que corresponde a um código de Gold ou alguma outra seqüência matemática).
Em geral, o receptor armazena um código de espalhamento diferente para cada sinal proveniente de cada satélite na constelação de navegação por satélite (para os serviços suportados pelo receptor). Isto pode incluir códigos de espalhamento para substituir satélites a serem usados como sobressalentes, caso qualquer satélite na constelação caia. Há várias maneiras nas quais o conjunto de códigos de espalhamento pode ser alocado para a unidade(s) de armazenamento de código. Por exemplo, em uma implementação, uma única unidade de armazenamento de código pode ser usada para manter o conjunto completo de códigos de espalhamento para todos os satélites na constelação. Em uma outra modalidade , o código de espalhamento para cada sinal proveniente de cada satélite pode ser armazenado em uma unidade de armazenamento de código separada. A pessoa qualificada estará ciente de muitas outras implementações intermediárias possíveis para alocar os códigos de memória para as unidades de armazenamento de código.
Em uma modalidade, o receptor inclui múltiplos canais de recepção, e um canais de recepção, e um código de memória armazenado para um satélite proveniente da unidade(s) de armazenamento de código pode ser fornecido a qualquer dos canais de recepção para correlação com o sinal entrante naquele canal de recepção. Assim sendo embora os códigos de memória eles mesmos são fiados por hardware através da lógica combinatorial, a alocação dos códigos de espalhamento para canais de recepção diferentes pode ser flexível. Esta flexibilidade é útil conforme para qualquer tempo ou local dado na terra, somente um conjunto secundário dos satélites de navegação são visíveis (outros podem estar escondidos por edifícios ou abaixo do horizonte). Conseqüentemente, a habilidade de alocar de forma flexível os códigos de espalhamento proveniente da unidade(s) de armazenamento de código para os vários canais de recepção permite o número de canais de recepção em um receptor ser menor do que o número total de satélites, já que em operação, o sistema aloca para os canais de recepção, os códigos de espalhamento para aqueles satélites que são correntemente visíveis. Ainda mais esta flexibilidade é útil caso um satélite na constelação falhe, e seu lugar seja tomado por um dos satélites sobressalentes (assumindo que o código de espalhamento para este satélite sobressalente já está armazenado no receptor).
Note que para receptores existentes, o número de canais de recepção para receber uma dada classe de sinal é também usualmente menor do que o número de satélites na constelação. Isto é alcançado de forma apropriada configurando cada LFSR dentro de um canal de recepção para um sinal de satélite desejado (usando os registros polinomiais e de configuração inicial mostrados na figura 1). A lógica combinatorial da unidade(s) de armazenamento de código não podem ser configurados de forma flexível nesta maneira durante a operação, mas alguma flexibilidade ainda assim pode ser obtida no nível de arquitetura do receptor.
Em uma modalidade, a unidade de armazenamento de código é endereçável para especificar um segmento particular de um ou mais chips do código de memória armazenado para emissão. A habilidade para fornecer uma porção do código de memória possível de ser selecionado permite ao código de memória ser emitido sobre um número limitado de pinos de saída, e melhor também coincide padrões de recuperação para um código de memória para uso normal. A unidade de armazenamento de código pode incluir um seqüenciador para permitir ao dispositivo passar de forma seqüencial, um ou mais chips em um tempo através do código produzido por uma lógica combinatorial e / ou uma facilidade de endereço para permitir uma porção particular do código de memória a ser selecionado para emissão. Note que tal um mecanismo de saída pode ser implementado em lógica seqüencial (tal como passar através do código), mas esta saída seqüencial do código pode ser considerada de forma lógica como distinta do armazenamento de código através de uma lógica combinatorial (mesmo se o armazenamento saída de código são então integrados no nível de componente físico da unidade de armazenamento de código).
A saída de uma unidade de armazenamento de código pode compreender um único chip por vez, ou cada saída pode compreender um conjunto de múltiplas chips. Note que esta última opção reflete uma diferença adicional entre armazenar um código de espalhamento em lógica combinatorial comparada com usando um LF SR, no fato que um LFSR emite somente um único chip por vez. Em contraste, já que um bloco de lógica combinatorial armazena o padrão inteiro de chip do código, múltiplas chips de código pode por conseguinte ser disponível para saídas simultâneas a qualquer dada hora (se assim desejado).
A unidade de armazenamento de código é especialmente adequada à implementação como um dispositivo de arranjo de porta programável de campo (FPGA) ou como um circuito integrado específico de aplicativo (ASIC - arranjo de porta, célula padrão), embora qualquer tecnologia de semicondutor apropriada pode ser usada (e. g. customização total, etc). O uso de lógica combinatorial é de forma geral, compatível com o circuito disponível em FPGAs e / ou ASICs, e conseqüentemente a lógica combinatorial pode ser designada e implementada usando ferramentas de desenvolvimento de semicondutor padrões. Será apreciado que o uso de tecnologias padrão tal como FPGAs e ASICs também auxilia a implementação de lógica combinatorial como parte do conjunto principal de chip do receptor (por meio disso, evitando a necessidade de uma interface de alta velocidade entre a unidade(s) de armazenamento de código em um dispositivo e um conjunto separado de chip do receptor). A unidade(s) de armazenamento de código pode ser usada para armazenar múltiplos níveis de um código hierárquico. Por exemplo, a unidade de armazenamento de código pode ser usada para armazenar um código primário e / ou um código secundário. Note que se a unidade(s) de armazenamento de código mantém(s) ambos um código primário e um correspondente código secundário, então esses podem ser armazenados ou como uma longa seqüência (representando o código combinado final para emissão), ou como códigos primários e secundários separados. Será apreciado que a última configuração é mais compacta, já que somente N1+N2 chips necessitam ser armazenadas, comparado com Nl χ N2 para armazenamento da seqüência de código completa (combinada). Em outras modalidades, a lógica combinatorial pode somente ser usada para armazenar um nível de um código hierárquico, por exemplo os códigos primários.
Uma outra modalidade da invenção fornece um satélite para uso em um sistema de navegação por satélite compreendendo uma constelação de múltiplos satélites, na qual cada satélite transmite um sinal incorporando um código de espalhamento. O satélite inclui pelo menos uma unidade de armazenamento de código que inclui lógica combinatorial para armazenar um código de memória compreendendo um padrão fixo de chips. O código de memória corresponde a um código de espalhamento a ser incorporado em um sinal transmitido proveniente do satélite. Assim sendo a abordagem usada para gerar um código de espalhamento em um receptor para correlação com um sinal entrante também pode ser usado para gerar um código de espalhamento para transmissão difusa proveniente de um satélite.
Uma outra modalidade da invenção fornece um método para operar um receptor para usar com um sistema de navegação por satélite compreendendo uma constelação de múltiplos satélites. Cada satélite transmite um sinal incorporando um código de espalhamento. O método inclui fornecer pelo menos uma unidade de armazenamento de código que inclui lógica combinatorial para armazenar um código de memória compreendendo um padrão fixo de chips. O código de memória corresponde a um código de espalhamento incorporado em um sinal transmitido proveniente de um satélite. O método ainda inclui efetuar uma correlação entre um sinal entrante e o código de espalhamento armazenado na lógica combinatorial.
Uma outra modalidade da invenção fornece um método para produzir um receptor para usar com um sistema de navegação por satélite compreendendo uma constelação de múltiplos satélites, na qual satélite transmite um sinal incorporando um código de espalhamento. O método inclui determinar um código de espalhamento de satélite a ser armazenado dentro do receptor, e fornecer pelo menos uma unidade de armazenamento de código incluindo lógica combinatorial para armazenar um padrão fixo de chips correspondendo ao código de espalhamento de satélite.
Em uma modalidade, a lógica combinatorial é gerada produzindo uma especificação do padrão fixo de chips dentro uma linguagem de descrição de hardware. Esta especificação pode então ser implementada em uma plataforma desejada usando sínteses de lógica. Note que a especificação de uma lógica combinatorial na linguagem de descrição de hardware pode usar uma constante para definir um código de saída desejado. Conseqüentemente, a única mudança necessária para definir um código de espalhamento diferente é para atualizar o valor da constante. Descrição Breve dos Desenhos
Várias modalidades da invenção serão agora descritas em detalhes a título de exemplo somente e com referência aos seguintes desenhos:
Figura 1 é um diagrama esquemático de implementação de um registro de deslocamento de re-alimentação linear (LFSR) convencional;
Figura 2 é um diagrama esquemático mostrando o armazenamento de um código de memória usando lógica combinatorial de acordo com uma modalidade da invenção;
Figura 3 é um diagrama esquemático mostrando a arquitetura de um receptor de acordo com uma modalidade da invenção na qual todos os códigos de memória são armazenados em uma única unidade de armazenamento de código;
Figura 4 é um diagrama esquemático mostrando a arquitetura de um receptor de acordo com uma outra modalidade da invenção, na qual cada código de memória é armazenado em uma unidade de armazenamento de código separada;
Figura 5 é um fluxograma ilustrando um método para projetar uma unidade de armazenamento de código para armazenar códigos de memória de acordo com uma modalidade da invenção; e
Figura 6 é um exemplo de um diagrama esquemático com base em uma lista produzida pelo método da Figura 5 de acordo dentro de uma modalidade da invenção. Descrição Detalhada
Figura 2 é uma ilustração esquemática de um gerador de código 10 incluindo uma unidade de armazenamento de código 15 de acordo com uma modalidade da invenção. O gerador de código 10 é usado para armazenar e emitir um ou mais códigos de memória, e por conseguinte, toma o lugar de uma unidade tal como o LFSR da Figura 1 em um receptor convencional.
O código gerador 10 pode ser considerado de forma lógica como compreendendo dois componentes principais, uma unidade de armazenamento de código 15 e um seqüenciador 25. A unidade de armazenamento de código 15 compreende lógica combinatorial 20, que é usada para armazenar o código de memória e para fornecer decodificação de endereço. O seqüenciador 25 é usado para especificar o endereço da porção do código de memória desejada para emissão, carregando endereços de início apropriados e incrementando os endereços correntes. (Note que em uma implementação física, a funcionalidade desses dois componentes é provavelmente para ser integrada, como explicado em mais detalhes abaixo, tal que não há divisão clara entre a lógica combinatorial e o seqüenciador;
ainda assim, mas a partir de uma perspectiva lógica ou funcional, os dois componentes podem ser considerados de forma separada).
No exemplo da Figura 2, a lógica combinatorial 20 tem um número de saídas Out 50. Para um endereço definido 45, as saídas 50 são definidas, dependendo quando da configuração particular de portas lógicas dentro da lógica combinatorial 20. Enquanto a carga de ativação 40, um endereço de início 30 é carregado no seqüenciador de endereço 25. O endereço proveniente do seqüenciador de endereço 25 é então fornecido como o endereço 45 para uma unidade de armazenamento de código 15 e a correspondente fração do código de memória aparece nas saídas 50 da lógica combinatorial 20.
O seqüenciador de endereço incrementa o endereço 45 com cada pulso no clk 55 quando a entrada de habilitação 35 é afirmada. Isto causa as correspondentes frações ou porções do código de memória para aparecer nas saídas 50 da lógica combinatorial 20. Ao contrário, quando o sinal de habilitação não é afirmado, o endereço especificado 45 e então as saídas da lógica combinatorial 20 permanecem constante.
Será apreciado que já que o bloco de lógica 20 é de estrutura de combinações mais propriamente do que estrutura de seqüencial, ele não armazena qualquer informação de estado. Então a lógica combinatorial não é normalmente considerada como uma forma de dispositivo de memória. Ainda assim, a configuração de portas lógicas dentro da lógica combinatorial 20 pode ser vista como uma forma de armazenamento ( fiado por hardware), tal que as saídas 50 de uma lógica combinatorial 20 correspondem a um conjunto de bits armazenado. A lógica combinatorial pode, por conseguinte ser considerado como uma forma de memória somente de leitura (ROM), armazenando um conjunto de bits para cada endereço 45. Note contudo que o " conteúdo " da lógica combinatorial é fixo (assumindo que o bloco de lógica combinatorial bloco é fiado por hardware) e então não pode ser atualizado, em contraste a muitas formas de padrão de " ROM ". tal como memória temporária, EEPROM, que suportam alguma forma de mecanismo de escrita. Em adição, a configuração interna da lógica combinatorial 20 é particular (customizada) para o conjunto de bits armazenado, diferentemente um memória de acesso randômico (RAM), que é formado normalmente de células de memória padronizada que são então carregadas com valores de dados. Em outras palavras, na maioria dos dispositivos de memórias convencionais, existe a separação lógica entre a estrutura de hardware do dispositivo de memória, e os conteúdos de dados que são sendo armazenados no dispositivo (uma separação analógica é também verdadeira da arquitetura do LFSR arquitetura da Figura 1). Contudo, com a lógica combinatorial 20, não existe tal separação lógica, no fato que a estrutura de hardware corresponde diretamente ao (i. e. reflete ou representa) conteúdo de dados efetivo que estão sendo armazenados (mais decodificação de endereço).
As saídas 50 da lógica combinatorial 20 podem ser arrumadas para representar qualquer dado conjunto de bits escolhendo uma configuração apropriada de portas lógicas dentro da lógica combinatorial (como descrito em mais detalhe abaixo). Conseqüentemente, a lógica combinatorial da Figura .2 pode ser usada para armazenar uma seqüência de chip correspondendo a um código de memória, tal que as saídas 50 provenientes do bloco de lógica corresponde à seqüência de chip do código de memória. (Será apreciado que isto envolve definir uma ordenação adequada para as saídas 50 da lógica combinatorial 20 para coincidir a natureza seqüencial do código de memória. Isto pode ser alcançada mesclando a decodificação de endereço com o código de memória efetivo conteúdo durante a síntese lógica, como descrito em mais detalhes abaixo).
Para uma seqüência longa código de memória L compreendendo umas poucas mil chips (por exemplo), não é normalmente conveniente emitir todas as chips de código de memória em paralelo, já que isto envolveria um bem grande numero de pinos de saída. Em adição, não é geralmente, requerido para operações do receptor para emitir um código de espalhamento inteiro de uma vez. Mais propriamente, a lógica combinatorial emite um conjunto secundário de um ou mais chips proveniente do código de memória para cada endereço especificado 45.
For exemplo, dependendo da arquitetura completa do receptor
1. um único chip pode ser fornecido por incremento de endereço 45 . Este chip é então encaminhado para um único dispositivo de correlação de receptor. Neste caso somente um código de memória é contido na lógica combinatorial 20.
2. se mais do que um código de memória (e. g. códigos de memória para mais do que um sinal e / ou mais do que um satélite) é contido na lógica combinatorial 20, então esta unidade tem de ser uma vez compartilhado por vários dispositivo de correlações do receptor. Em tal uma implementação, a lógica combinatorial 20 emite uma primeira seqüência secundária de um primeiro código de memória quando o endereço 45 incrementa um valor particular. Esta seqüência secundária é encaminhada para um primeiro dispositivo de correlação de receptor correspondente. Enquanto o primeiro dispositivo de correlação de receptor está trabalhando através de sua seqüência secundária, outras seqüências secundárias de códigos de memória diferentes são fornecidas pela lógica combinatorial 20 para dispositivo de correlações de receptores diferentes. Uma vez que todos os dispositivo de correlações de receptores tem sido servidos, o seqüenciador retorna para o primeiro dispositivo de correlação de receptor e fornece a segunda seqüência secundária do primeiro código de memória para o primeiro dispositivo de correlação de receptor.
O comprimento das seqüências individuais depende do número total de dispositivo de correlações de receptores a ser servido através de um gerador de código individual 10. Os números típicos de chips por seqüência secundária poderiam ser N=8, 16, 32, 64, ou 128. Assim sendo para cada ativação sucessiva do sinal de clk 55 enquanto o sinal de habilitação 35 está ativo, o seqüenciador 25 incrementa o endereço 45 e lógica combinatorial 20 emitem as próximas N chips pelas saídas 50.
Por exemplo, assumindo que somente um código de memória é armazenado na lógica combinatorial 20, se L = 4096, e N= 16, então a primeira entrada de clk 55 (enquanto o sinal de habilitação 35 é ativado) emite chips 0 -15 do código de memória armazenado na lógica combinatorial .20, a próxima entrada de clk 55 emite chips 16-31 do código de memória armazenada na lógica combinatorial 20, e assim por diante, até o inteiro código de memória ter sido emitido (quando nos reciclamos de volta para a chip 0). Em uma outra modalidade , N=I, na qual caso o código de memória armazenado é emitido chip a chip provenientes da unidade de armazenamento de código 15 .
Será apreciado que, já que seqüenciador 25 mantém a informação de estado (sua posição / endereço dentro do código de memória seqüência), o seqüenciador 25 envolve lógica seqüencial mais propriamente do que lógica combinatorial pura. Por exemplo, se L=4096 e N=I 6, o seqüenciador 25 pode ser implementado em uma modalidade como um contador de 8 bits.
Na modalidade da Figura 2, o seqüenciador 25 é também fornecido com um mecanismo de endereço na forma de sinal de controle de endereço 30. Este sinal de controle de endereço 30 pode ser usado para especificar uma particular localização dentro da seqüência de código de memória para emissão. Assim sendo se nos continuarmos com o exemplo acima, onde L=4096 e N=I 6, e o seqüenciador 25 é um contador de 8 bits, então o sinal de controle de endereço 30 pode ser fornecido como um valor de 8 bits para carregar no contador. Em outras palavras, enquanto o sinal de habilitação 35 incrementa o seqüenciador 25 para a próxima localização de código, o sinal de controle de endereço 30 pode ser usado para configurar o seqüenciador 25 para qualquer localização (nova) desejada dentro do código. Em uma outra modalidade , o sinal de controle de endereço 30 é substituído por uma simples linha de re-configuração que retorna o valor do contador dentro do seqüenciador 25 para zero. Esta modalidade permite uma localização do seqüenciador dentro do código a ser re-configurado, mas não permite uma localização arbitrária dentro da seqüência de memória a ser especificada para o seqüenciador.
Para um receptor que armazena múltiplos códigos de memória, tal como diferentes códigos de memória para diferentes satélites, há vários configurações possíveis para armazenar os códigos diferentes. Em uma implementação, uma unidade de armazenamento de código separada é fornecida para cada código de memória diferente. De forma alternativa, uma única grande unidade de armazenamento de código poderia ser usada para armazenar todo os códigos de memória, com o mecanismo de endereçamento 30 então sendo usado para selecionar ambos um código e uma posição de código para emissão. Uma possibilidade adicional é que, há múltiplas unidades de armazenamento de código, com cada unidade armazenando códigos de memória para alguns, mas não todos os satélites, ou para alguns, mas não todos os sinais - por exemplo seis unidades de armazenamento de código, cada uma armazenado os códigos de memória de cinco satélites ou cada unidade de armazenamento de código armazenando todos os códigos de memória para um satélite, etc. Uma possibilidade adicional é que um único código de memória é separado ou retirado através de múltiplas unidades de armazenamento de código. O uso de lógica combinatorial 20 para armazenar códigos de memória incluindo decodificação de endereço explora o fato que uma vez que os códigos tem sido definidos e consolidados, eles podem, de forma geral, ser considerados como fixos - Então eles não necessitam de ser armazenados nas memória convencionais (atualizáveis). O uso de lógica combinatorial para armazenar ou representar os códigos de memória pode resultar em uma redução considerável em complexidade, em termos de portas lógicas e área de semicondutor, apesar da perda de alguma flexibilidade. Ainda assim, alguma dessa flexibilidade pode ser re-obtida em um nível de arquitetura, como descrito em mais detalhes abaixo.
Figura 3 é um diagrama esquemático de um receptor 101 de acordo com uma modalidade da invenção. Em particular, Figura 3 ilustra a porção de banda básica de um receptor usado para adquirir e monitor um sinal, enquanto outras porções padrões (e. g. parte aérea, extremidade frontal de RF, unidade de navegação, etc) são omitidas para clareza. O receptor 101 pode ser fornecido como uma unidade autônoma, ou pode ser incorporado em algum dispositivo maior, por exemplo um telefone de comunicação móvel (celular), um computador, um automóvel ou outra forma de veículo, uma cama de hospital, um avião ou barco, um compartimento de frete, e assim por diante.
O receptor 101 inclui uma unidade de armazenamento de código 130, assim como um processador de sinal digital (DSP) 120 e múltiplos canais de recepção (Rx) 110A, 110B, 110C, etc. Será apreciado que todos os diferentes canais de recepção processam o mesmo sinal entrante, mas que o processamento aplicado ao sinal entrante varia de um canal de recepção para um outro, como descrito em mais detalhe abaixo. A unidade de armazenamento de código 130 é usada para armazenar o conjunto de códigos de memória para a constelação de satélites. Em uma modalidade, a unidade de armazenamento de código 130, o DSP 120, e os canais de recepção 110 são implementados como um único dispositivo de semicondutor ou chipset, embora outras modalidades podem separar esses componentes através de múltiplos dispositivos.
Será apreciado que o número de códigos dentro de um dado conjunto de códigos (e então a ser armazenado dentro do bloco de lógica 130) é dependente dos requisitos particulares do sistema de navegação por satélite relevante. Tais sistemas são de forma geral, designados para operar com alguns 24 - 30 satélites diferentes , usualmente com um ou mais satélites adicionais fornecidos como sobressalentes em potencial no caso de falha. Há também normalmente múltiplos sinais por satélite. Em adição, alguns sinais do Galileo compreendem uma componente de piloto e de dados (que podem ser tratados dentro de um único canal de recepção).
E assumido que a arquitetura da Figura 3 é projetada para receber um único sinal por canal. Um canal pode ser designada de forma flexível para qualquer componente de portadora e de sinal de qualquer satélite vindo proveniente da extremidade frontal de RF. A unidade de armazenamento de código 130 armazena os códigos usados em qualquer portadora e sinal através da constelação de satélites.
Em algumas modalidades, o número de códigos dentro de um conjunto de códigos pode ser aumentado para acomodar sinais de " simulador ", que são emitidos das localizações em terra, por exemplo perto de aeroportos, tais sinais de simulador aparecem para um receptor como sinais de navegação por satélite adicionais, e assim podem dar uma determinação de posição mais precisa e confiável em tais localizações.
A operação geral de um canal de recepção 110 é que o sinal de freqüência intermediária real entrante é convertido para um sinal de banda base complexo. O sinal de banda base é então misturado com a saída de um oscilador controlado numericamente (NCO) de portadora para remover os efeitos de Doppler efeitos do sinal. A seguir o sinal entrante é correlacionado com um código de espalhamento local - i. e. um código armazenado ou gerado dentro do receptor, o sincronismo do qual é controlado pelo código NCO. O resultado desta correlação é integrado em um tempo pre- determinado, e então passado para o DSP 120. Aqui discriminadores e filtros de laço fecham os respectivos laços de portadora (laço travado em freqüência (FLL), laço travado em fase (PLL)) e laço de código (laço travado em retardo (DLL)) com os NCOs relevantes.
Será apreciado que a operação do receptor 101 enquanto descrita de forma geral, coincide com o comportamento dos receptores de navegação por satélite existentes, tal como usados para GPS. Detalhes adicionais sobre tais receptores podem ser encontrados nos livros mencionados anteriormente de Misra e Enge. (Também será apreciado que por razões de clareza, certo detalhes considerando o receptor 101 que não são diretamente pertinentes ao entendimento da invenção, tal como o tratamento dos códigos de dados e da piloto, são omitidos da Figure 3).
Em receptores existentes, o local código de espalhamento local é gerado através de um LSFR, tal como mostrado na figura 1, que pode ser incorporado em cada canal de recepção 11OA, 11OB, etc. Em contraste, o receptor da Figura 3 usa uma unidade de armazenamento de código 130 (tal como mostrado na figura 2) para armazenar os códigos de memória. A unidade de armazenamento de código 130 recebe um sinal de endereço proveniente do DSP 120 que determina que parte dos códigos armazenados emitir para os respectivos canais de recepção 110. Este endereço de saída é especificado através de uma máquina de estado finito (FSM) / controlador incluído dentro do DSP 120.
Na modalidade da Figura 3, é assumido que cada endereço corresponde a um agrupamento de código de memória de 32-chip dentro da unidade 130. Este agrupamento de código de memória é então carregado em um registro dentro do canal de recepção apropriado 110 para usar na correlação com o sinal entrante. A correlação da porção do código de memória 32-chip armazenada no registro é realizada sob o controle do código NCO5 de forma geral na mesma maneira como para sistemas existentes usando Códigos de LF SR. (Um receptor existente pode ser considerado como similar ao da modalidade da Figura 3, mas sem a unidade de armazenamento de código 130, e com um código de LFSR mais propriamente do que um registro de área de armazenamento temporário dentro de cada canal de recepção). Note que outras modalidades podem usar um comprimento de palavra diferente para a leitura dos dados da unidade de armazenamento de código 130, dependendo do número total de canais de recepção e da largura de banda disponível na interface de saída da unidade de armazenamento de código 130.
Em geral, o FSM / controlador dentro do DSP 120 controla a unidade de armazenamento de código 130 para fornecer um segmento de código de 32- chip para cada canal de recepção 110 por vez. Assim sendo uma vez que um segmento de código de 32- chip foi fornecido para o canal de recepção 110A, o FSM / controlador passa através de cada um dos outros canais de recepção 110B, 11OC, ... 11ON por vez, para fornecê-los com seus respectivos segmentos de código. Enquanto a unidade de armazenamento de código 130 está fornecendo segmentos de código para os outros canais de recepção, o canal de recepção 110A correlaciona o segmento de código de 32- chip armazenado temporariamente em seu registro com o sinal entrante (isto é usualmente efetuado em um chip por vez). O FSM / controlador então força a unidade de armazenamento de código 130 a emitir o próximo segmento de código de 32-chip do código de memória apropriado no registro de canal de recepção 110A, e o ciclo continua. Assim sendo o sinal de endereço fornecido através do FSM / controlador para a unidade de armazenamento de código 130 identifica em efeito ambos um particular canal de recepção, e também uma localização dentro da seqüência de código de memória especificada para fornecer para aquele canal de recepção.
Na maioria dos receptores, o número de canais de recepção 110 é menor do que o número de satélites na constelação. Isto reflete o fato que somente uma proporção limitada dos satélites está visível em qualquer dado tempo (o conjunto efetivo de satélites acima do horizonte de qualquer dada localização muda com tempo, conforme os satélites viajam em suas órbitas).
Como ilustrado na figura 1, uma implementação de LFSR típica é genérica, no fato que ela pode ser carregada com o código polinomial para qualquer satélite desejado. Isto permite ao LFSR ser incorporado em um canal de recepção sem amarrar o canal de recepção a um dado código de satélite. Mais propriamente, para a constelação de satélites usando códigos de Gold, qualquer dado canal de recepção pode ser configurado para receber o sinal proveniente de qualquer dado satélite. Isto assegura que um conjunto limitado de canais de recepção possam ser mapeados, no conjunto secundário daqueles satélites correntemente visíveis pelo receptor.
Em contraste, os códigos de espalhamento na unidade de armazenamento de código 130 são fixos ou fiados por hardware na lógica combinatorial. Por conseguinte, de modo a manter a flexibilidade em alocar os canais de recepção para os vários satélites, receptor 101 é capaz de fornecer um código de memória armazenado na unidade de armazenamento de código 130 para qualquer dado canal de recepção 110 (como especificado pelo DSP 120). Esta facilidade preserva a habilidade de fazer uma alocação flexível de canais de recepção 110 para os satélites.
Figura 4 representa uma implementação de receptor 101A de acordo com uma outra modalidade da invenção. Note que muitos aspectos da modalidade da Figura 4 são os mesmos que para a modalidade da Figura 3, então a seguinte descrição foca nas diferenças entre as duas modalidades.
A modalidade da Figura 4 não tem uma única unidade de armazenamento de código, mas mais propriamente tem um conjunto of unidades de armazenamento de código 130A, 13OB, ... 130N. Cada unidade de armazenamento de código 130A, 13OB5 etc armazena o código de espalhamento para um sinal proveniente de um satélite. Cada canal de recepção 110 inclui a multiplexador 111, que é conectado à saída de cada uma das unidades de armazenamento de código 130A, 130B, etc. (para simplicidade, somente as conexões das unidades de armazenamento de código 130A, 130B, etc para o canal de recepção IlOA são mostradas na figura 4; conexões análogas são fornecidas das unidades de armazenamento de código 130A, 130B, etc par aos outros canais de recepção 110B, 110C, e assim por diante). A saída do multiplexador 111 é então passado a um flip-flop dentro do canal de recepção 110, e de lá, o bit de código é carregado para a correlação com o sinal entrante como para os receptores existentes.
Um sinal de controle é fornecido para o multiplexador Illa partir de um controlador dentro do DSP 120, e este sinal de controle é usado para selecionar um saída das várias entradas do multiplexador. Será apreciado que esta configuração permite ao controlador do DSP selecionar o código de memória a partir de qualquer dada unidade de armazenamento de código 13 0A, 13 0B, etc para fornecer para qualquer dado canal de recepção 110A, 110B, etc. Assim sendo embora os códigos de memória possam ser considerados como fiados por hardware nas várias unidades de armazenamento de código 130, eles podem ser alocados de forma flexível para o conjunto de canais de recepção (como para uma modalidade da Figura 3). Em operação por conseguinte, o DSP 120 controla o multiplexador 111 usando este sinal de controle tal que cada canal de recepção 110 tem em efeito uma unidade de armazenamento de código 130 designada.
O número de canais de recepção pode ser menor do que o número de satélites na constelação. Então, para esta modalidade, o número de canais de recepção pode também ser menor do que o número de unidades de armazenamento de código 130 - i. e. M < Ν. A atribuição flexível entre o canal de recepção 110 e a unidade de armazenamento de código 130 por conseguinte permite ao DSP alocar os canais de recepção 110 para aquelas unidades de armazenamento de código contendo códigos de espalhamento para os satélites que são correntemente visíveis. O suporte para tal atribuição flexível é também útil se um ou mais satélites que falharam foram substituídos por satélites que usam códigos de memória diferentes (assumindo que os códigos de substituição também estão disponíveis dentro das unidades de armazenamento de código 130).
Cada unidade de armazenamento de código 130A, 130B, etc inclui um seqüenciador que pode ser configurado para um endereço de carga especificado (como descrito acima em relação a Figura 2). O seqüenciador recebe um sinal de incremento (habilitação) para passar uma chip através do código de memória para emitir ao multiplexador 111. Na modalidade da Figura 4, o sinal de incremento para uma unidade de armazenamento de código 130A, 130B, etc é recebido através de um correspondente multiplexador 13IA, 131B, etc. Cada multiplexador 13 IA, 131B, etc recebe uma entrada do código NCO sobre cada um dos canais de recepção 11OA, 110B, etc. Um sinal de controle similar que é fornecido ao multiplexador 111 é também usado para selecionar uma entrada par passar através do multiplexador 131 como um sinal de incremento para a unidade de armazenamento de código 130. Conseqüentemente, o código NCO dentro de um canal de recepção 110 é capaz de solicitar (habilitar) a próxima chip de código a ser recuperada de uma unidade de armazenamento de código 130 cuja saída e designada para aquele canal de recepção.
No receptor 101 A, o código de espalhamento é acessado por uma única por vez (mais propriamente do que 32 chips por vez, como na modalidade da Figura 3), já que as várias unidades de armazenamento de código 130A, 130B, etc. podem emitir seus respectivos canais de recepção 110A, 110Β, etc em paralelo um como outro. Assim sendo cada canal de recepção pode, em efeito, receber um chip de código sob demanda de sua unidade de armazenamento de código alocada. (Em contraste, a unidade de armazenamento de código 130 da Figura 3 serve o conjunto de canais de recepção de forma seqüencial, em uma maneira compartilhada no tempo, então cada acesso fornece um canal de recepção com chips suficientes até a próxima vez que o canal de recepção é servido). Esta configuração por conseguinte permite o controle independente pelo código NCO dentro de cada canal de recepção, da taxa na qual chips são fornecidas ao dispositivo de correlação.
Será apreciado que as modalidades da Figura 3, onde todos os códigos de memória são mantidos dentro de uma única unidade de armazenamento de código, e da Figura 4, onde cada código de memória é mantido em uma unidade de armazenamento de código separada, representam apenas duas implementações possíveis. Por exemplo, em outras modalidades pode haver múltiplas unidades de armazenamento de código, cada uma armazenando múltiplos (mas não todos) códigos de memória, enquanto em outras modalidades, cada código de memória pode estar distribuído através de múltiplas unidades de armazenamento de código.
Figura 5 é um fluxograma que fornece uma visão geral de alto nível de produção de uma unidade de armazenamento de código 130 de acordo com uma modalidade da invenção. O método começa especificando o código de espalhamento desejado (510). Será apreciado que o método da Figura 5 é genérico, no fato que ele pode ser usado com uma seqüência de chip arbitrária (e. g. customizada ou feita sob encomenda) para um código de espalhamento. Este é, em contraste, por exemplo, para implementações de LFSR, que são somente capazes para fornecer um conjunto restrito de códigos de espalhamento - i. e. aqueles códigos que podem ser expressos através de certos algoritmos matemáticos pré-determinados. A unidade de armazenamento de código para o código de espalhamento desejado é descrito usando uma linguagem de descrição de hardware (HDL) (520). Um exemplo de uma HDL é VHDL, a linguagem de descrição de hardware de circuitos integrados de velocidade muito alta, que é o objeto do Padrão do IEEE 1076. Um outro exemplo de uma HDL é Verilog, que é o objeto do Padrão do IEEE 1995. VHDL e Verilog são bem conhecidas para a pessoa qualificado na arte, e permite a especificação de função e estrutura para circuitos integrados.
Uma vez que uma descrição de HDL de um circuito para gerar o código de espalhamento desejado foi desenvolvida e compilada, a simulação pode ser efetuada (530) para confirmar que o circuito se comporta como esperado. Há muitas ferramentas comercialmente disponíveis para efetuar tal uma simulação. A descrição de HDL pode então ser usada como a entrada para um procedimento de síntese de lógica (540), que transforma a descrição de HDL em uma lista estrutural de componentes (elementos de biblioteca) para o circuito. Esta lista é usado como uma entrada para ferramentas de colocação e encaminhamento apropriadas para obter o esquema para um dispositivo de semicondutor (550). Dependendo da tecnologia selecionada, o ASIC ou dispositivo de semicondutor customizado (560) pode então ser fabricado ou um arranjo de porta programável de campo (FPGA) pode ser configurado. De novo, será apreciado que há ferramentas comerciais padrões disponíveis para efetuar a síntese de lógica em um circuito descrito usando uma HDL, e então transformando-a em uma implementação efetiva.
Apêndice 1 fornece um exemplo de programa em VHDL para implementar a unidade de armazenamento de código 130 de acordo com uma modalidade da invenção. A unidade de armazenamento de código (referida como " cacode ") emite a seqüência de 64 chip definida como a constante " ca ". Será apreciado que outras seqüências de código pode ser implementadas usando o mesmo código de VHDL ajustando de forma adequada o valor da constante " ca " para o padrão de chip desejado.
A VHDL para cacode especifica 5 entradas e uma saída para efetuar as seguinte funções:
phase - esta entrada especifica o endereço inicial da primeira chip de saída, e compreende 6 chips, correspondendo ao intervalo de endereço da seqüência de 64 chip para ca;
phset - esta entrada habilita o valor de fase clk - entrada de relógio;
tick - esta entrada é usada para indicar quando uma outra saída de código é requerida (para correlacionar contra o sinal entrante); note que tick tem uma freqüência muito menor do que clk;
rstn - esta entrada re-configura o endereço e a saída para zero; code - esta output representa o valor de cacode no endereço relevante.
Em operação, o circuito especificado emite valores sucessivos a partir da seqüência de chip por cacode para cada valor de tick, onde o addr variável é usado para manter o endereço ou posição corrente dentro da seqüência de chip. Será apreciado que o componente de endereço deste circuito é de estrutura seqüencial (mais propriamente do que puramente estrutura de combinações), já que o endereço de saída corrente é mantido e incrementado para cada saída de chip de código. Contudo, de uma perspectiva funcional, nós podemos considerar o circuito como tendo uma primeira porção para armazenar o código de espalhamento incluindo decodificação de endereço, e uma segunda porção para gerar o endereço e assim sendo controlar a saída do código de espalhamento. A partir desta perspectiva, a primeira porção para armazenar o código de espalhamento e decodificação de endereço é de estrutura de combinações, enquanto a segunda porção para gerar o endereço e controlar a saída do código de espalhamento é de estrutura seqüencial. Será apreciado que esta distinção entre as porções de estrutura de combinações e de estrutura seqüencial é clara em um nível funcional, mas no nível da implementação física as duas porções são de forma geral, integradas (ver abaixo).
A pessoa qualificada estará ciente das várias outras especificações possíveis para uma unidade de armazenamento de código. Por exemplo, a modalidade do Apêndice 1 poderia ser modificada tal que o phset é definido como sempre ativo, no qual caso o circuito vai emitir a chip de código definida pelo endereço especificado por fase. Em tal uma modalidade, não existe informação de estado dentro do próprio circuito, mas mais propriamente esta informação considerando posições dentro da seqüência de código precisa ser mantida externamente, por exemplo através da componente de circuito que fornece o sinal de fase (e que conseqüentemente pode então incrementar o sinal de fase). Em teoria, tal uma implementação permitir a uma unidade de armazenamento de código ser puramente de estrutura de combinações, embora provavelmente na prática uma componente seqüencial seja para ser fornecida.
Figura 6 é um exemplo do esquemático com base em uma lista derivada da síntese de lógica a partir do código de VHDL do Apêndice 1. Há cinco entradas para o circuito, que de cima para baixo são phset, tick, phase (5:0), rstn e clk, mais uma única saída, code. O circuito principalmente compreende lógica combinatorial na forma de portas lógicas (note que os retângulos na figura 6 também correspondem à combinações de portas lógicas). O circuito da Figura 6 também inclui sete flip-flop (eles estão todos conectados ao sinal de clk em sua entrada de habilitação e a sua entrada de rstn embaixo). Desses sete flip-flop, seis são usados em efeito para manter os seis bits do endereço. O flip-flop remanescente é usado para armazenar temporariamente a única saída de código de chip, embora em outras modalidades isto poderia ser omitido. (Os flip-flop de endereço compreendem uma proporção relativamente alta do esquema da Figura 6 porque o código é curto - somente 64 chips; para códigos mais longos, os flip-flop de endereço compreenderiam proporcionalmente menos do circuito). A lista da Figura 6 pode ser usada como entrada para uma determinação de colocação e encaminhamento de componente, seguido de uma operação de produção de semicondutor (correspondendo as operações 550 e 560 respectivamente na figura 5). A produção de semicondutor pode ser alcançada através de qualquer método apropriado, tal como litografia do dispositivo efetivo, configuração de um FPGA, etc.
Será apreciado que o particular esquemático da Figura 6 (incluindo as combinações de portas lógicas correspondendo aos retângulos do circuito) é específico para a tecnologia de um particular fabricante para um certo tipo de dispositivo, como especificado por várias bibliotecas vários bibliotecas que pode ser ligadas durante uma síntese de lógica. (Bibliotecas específicas de fabricantes também podem ser usadas para o estabelecimento e encaminhamento do circuito). Assim sendo para a Figura 6, o fabricante é Amtel, uma companhia que efetua contrato de fabricação de dispositivos de semicondutor, e o esquema é adaptado para um ASIC. Usando a tecnologia de outros fabricantes vai conduzir a uma lista e esquema diferente para implementar o circuito de VHDL do Apêndice 1. Conseqüentemente, Figura 6 é fornecida somente como um amplo esquemático para ilustrar uma saída de síntese de lógica, e sua estrutura detalhada não é importante para um entendimento da presente invenção.
O uso de lógica combinatorial para armazenar códigos de espalhamento pode conduzir a economias significativas em portas lógicas comparado com uma implementação de memória padrão com base em flip- flops ou células de RAM estáticas ou outras tais arquiteturas de memória similares.
Código Registros Área em μπι2 Portas lógicas NANDS equivalentes <table>table see original document page 35</column></row><table>
Tabela 1: circuito requisitos para armazenamento de código
A primeira e terceira linhas da tabela 1 correspondem as estimativas para uma implementação de memória " padrão " (RAM estática) para manter um código de espalhamento, como derivado acima para o sinais L1 e E5a do Galileo respectivamente. A segunda e quarta linhas da tabela 1 correspondem a uma implementação com base em lógica combinatorial usando a síntese de lógica, tal como descrito acima em relação às Figuras 5 e 6. Será visto da tabela 1 que o uso de lógica combinatorial fornece uma economia bem substancial de 80% ou mais em termos de registros (flip- flops), portas lógicas e área de circuito comparado com uma implementação de memória padrão.
Note que os números nas linhas dois e quatro da tabela 1 refletem a saída da síntese lógica (assumindo uma implementação de ASIC), e então deve ser considerada como implementações genuínas em potencial, mais propriamente do que meras estimativas. E claro que será apreciado que esses números vão variar levemente para outras implementações em potencial, por exemplo usando tecnologia de fabricantes diferentes, FPGAs mais propriamente do que ASICs, e assim por diante. Por exemplo, pode ser possível fornecer uma implementação mesmo mais compacta usando uma implementação de VLSI totalmente customizada. É claro que, tal uma implementação de VLSI customizada custo seria, de forma significativa, mais cara do que usando um FPGA ou ASIC, embora possa ser comercialmente viável para receptores do mercado de massa.
As três últimas linhas da tabela 1 se referem a um código CA de 1023 chip usado para GPS. A sexta e sétima linhas da tabela 1 representam armazenagem deste código em memória convencional e usando lógica combinatorial respectivamente. De novo pode ser visto que o uso de lógica combinatorial para armazenar os códigos de memória resulta em uma economia significativa de portas lógicas e área de circuito. A quinta linha da tabela 1 apresenta cifras para uma implementação efetiva do código de espalhamento de 1023 chip usando um LFSR (já que os códigos de GPS são códigos de Gold). Será notado que a complexidade de implementação relacionada a uma lógica combinatorial é da mesma ordem que a implementação de LFSR (que requer um número relativamente alto de registros), e neste caso específico, é mesmo mais compacto. Conseqüentemente, o uso de lógica combinatorial para armazenar códigos de espalhamento é potencialmente atrativo mesmo para códigos de Gold e outros códigos gerados de forma matemática.
Será apreciado que usando lógica combinatorial para armazenar códigos resulta em códigos que são, em efeito, fiados por hardware no receptor. Contudo, na prática o conjunto de códigos de espalhamento para a constelação de satélites é provavelmente para ser estável por muitos anos (certamente este tem sido o caso com o GPS). Nestas circunstâncias, de forma geral, é mais importante ser capaz de designar, de forma flexível, os códigos de espalhamento para canais de recepção diferentes do que ser capaz de mudar os códigos de espalhamento eles mesmos. O aspecto anterior pode ser acomodado com receptores que incluem lógica combinatorial para armazenar os códigos de espalhamento, como descrito acima em relação às Figuras 3 e 4.
Um receptor pode ser fornecido com códigos armazenados para pelo menos um par de satélites que são designados como sobressalentes (em adição aos códigos para a constelação principal de satélites). Estes satélites de substituição então seriam trazidos na constelação de navegação caso qualquer do conjunto original de satélites falhe. Assumindo que os códigos alocados para os satélites de substituição são conhecidos antecipadamente, eles também podem ser armazenados no receptor usando lógica combinatorial, e comutados quando apropriados, por exemplo como descrito acima em relação às Figuras 3 e 4. Em outras modalidades, um receptor pode ser fornecido com memória convencional, tal como PROM ou RAM, que poderia então ser carregado com quaisquer novos códigos de espalhamento do satélite (para trabalhar em conjunto com aqueles mantidos na unidade(s) de armazenamento de código descrita aqui).
Em algumas implementações, um receptor pode armazenar códigos de espalhamento para pelo menos duas constelação de satélites, por exemplo Galileo e GPS, de modo a fornecer informação de posição combinada. Embora os códigos de GPS de espalhamento são códigos de Gold, e são normalmente gerados dentro de um receptor usando LFSRs, os códigos de GPS poderiam ser armazenados, em vez disso como padrões completos de te chip usando lógica combinatorial se assim desejado (como oposto ao uso de um LF SR, que em efeito armazena um algoritmo para gerar um padrão de chip, mais propriamente do que o próprio padrão de chip). Como notado da tabela 1, o uso de lógica combinatorial para armazenar códigos de GPS completos pode de fato conduzir para uma implementação mais compacta do que uma com base em LFSRs. Conseqüentemente, o uso de lógica combinatorial para manter códigos de espalhamento é compatível com padrões de códigos específicos ou feitos sob medida assim como com padrões de código convencionais derivados de algoritmo matemáticos, tal como aqueles baseados em códigos de Gold. Também será apreciado que lógica combinatorial pode ser usada para manter as porções de código primário e / ou de código secundário de um código de espalhamento, ou para manter uma seqüência completa de bit representando uma combinação resultante do primeiro e segundo códigos.
A lógica combinatorial para armazenar um código de espalhamento pode ser incorporada não somente em um receptor, mas também em um satélite. Neste caso, a lógica combinatorial é usada para armazenar o código de espalhamento para usar no sinal a ser transmitido de forma difusa para a terra. Contudo, em geral a abordagem descrita aqui é mais atrativa para receptores do que para satélites. Assim sendo satélites somente necessitam armazenar seu próprio código de espalhamento (mais propriamente do que os códigos de espalhamento para a inteira constelação), tal que a pressão sobre facilidades de armazenamento é menos aguda para satélites do que para receptores. Ainda mais, cada satélite vai requerer uma diferente unidade de armazenamento de código particular para seu próprio código de espalhamento. Isto dá surgimento à itens de complexidade adicional para validação e fabricação de hardware, comparado com uma arquitetura de memória convencional, na qual um conjunto padrão de células de memória pode ser usado em todos os satélites, e então carregado com o código de espalhamento desejado como apropriado. Em adição, satélites não são dispositivos de mercado de massa, e assim estão sujeitos às mesmas restrições de custo como receptores.
Também será notado que embora a abordagem descrita aqui é primeiramente pretendida para usar em sistema de navegação por satélites, ela 20 também poderia ser empregada em outros sistemas de navegação ou comunicação (satélite, terrestre ou marítimo) que correntemente usam LFSRs para gerar códigos de sincronização, filtros , bancos de filtros e tal similar. Um particular exemplo é um simulador, como mencionado acima, que gera um sinal de posicionamento análogo àquele de um satélite de navegação, mas 25 é baseado em terra. Simuladores são tipicamente empregados em localizações onde a alta precisão é requerida, por exemplo em torno de aeroportos, para aumentar (e emular) sinais de posicionamento de satélites. Conseqüentemente, os códigos de espalhamento para sinais de simulador poderiam ser armazenados em receptores (e / ou possivelmente nos próprios simuladores) usando lógica combinatorial como descrito aqui.
Em conclusão, embora a variedade de modalidades ter sido descrita aqui, elas são fornecidas a título de exemplo somente, e muitas variações e modificações em tais modalidades serão aparentes para as pessoas qualificadas e caindo dentro do escopo da presente invenção, que é definida pelas reivindicações anexas e seus equivalentes. Apêndice 1 -- File í ca.vbd CGalileo Memcodes)
-- Descafiptioii! Hard-coded IOT êoe ca cods
library Iaeej use ieee, std^logic_3,lS4 .ali·, use Ieee * std_lesicjsmeigsi<Kl,ali t
ejatlty eacode is porfc {
phase ; in std_iogic_vecfcoe (5 downto 0); -- iaitial code phase
phset : in std_iogic; -— presefc fcbe ptatse
çlk : in std_iogic; — ciock
retn : in std_iogic; --reset
tiek : in std_iogic; -- chip tick code : out std_iogic; — code output end cacode.,·
arcMiteetiire rtl of eaeode is
signal adfc : stajlogie veetorís dovato 0! ·, -- code pha.se
constant ca:std-logic-vector(0 to 63):= ( '0','0','1','1','0','1','1','1','1','1','0','0','0','1','1' '0','1','0','1','1','0','1','1','0','0','0','0','1','1','0' '1','0','1','1','1','0','1','1','0','0','0','0','0','1','0' '1','0','1','0','0','1','0','1','1','1','0','1','1'',1','0' '1','0','1','0'); begin --rtl (register transfer level
readcode: process (clk, rstn ) begin -- process readeode
if rstn = '0' then aByachrottous reset (active low >
aadr <= others =>. ' 0 ');
cede <='0';
elsif clk' event asd clk ='1' then -- rising elodc edge
if phset = '1' then -- preset the code phase
addr<= phasej
elsif tick = '1'then
if addr >= 63 then -- wrap ceaneer
adde <= (other=> ' 0 1'>;
else — increaftat counfcer
addr <=addr + 1;
eud If ;
eud If ;
code <«=. ea{c«nv_ÍHfce«rer(addr})}
end if ;
end proezas readeoda;
end rtl;

Claims (30)

1. Receptor para usar com um sistema de navegação por satélite compreendendo uma constelação de múltiplos satélites no qual cada satélite transmite um sinal incorporando um código de espalhamento, caracterizado pelo fato de incluir: - pelo menos uma unidade de armazenamento de código que inclui lógica combinatorial para armazenar um código de memória compreendendo um padrão fixo de chips, mencionado código de memória armazenado correspondendo a um código de espalhamento incorporado em um sinal transmitido a partir de um satélite, em que a mencionada lógica combinatorial inclui funcionalidade de decodificação de endereço para recuperar uma porção especificada do código de memória armazenado; e - um dispositivo de correlação para efetuar uma correlação entre um sinal entrante e o código de memória armazenado recuperado a partir da, pelo menos uma unidade de armazenamento de código.
2. Receptor de acordo com a reivindicação 1, caracterizado pelo fato de que o receptor armazena um diferente código de memória para cada satélite na constelação de satélites.
3. Receptor de acordo com a reivindicação 2, caracterizado pelo fato de que os diferentes códigos de memória para os satélites são todos armazenados em uma única unidade de armazenamento de código.
4. Receptor de acordo com a reivindicação 2 ou 3, caracterizado pelo fato de que pelo menos uma mencionada unidade de armazenamento de código armazena códigos de memória para múltiplos satélites e é endereçável para emitir um código de memória para um particular satélite.
5. Receptor de acordo com a reivindicação 2, caracterizado pelo fato de que cada código de memória para um sinal proveniente de um satélite é armazenado em uma unidade de armazenamento de código separada.
6. Receptor de acordo com qualquer uma das reivindicações 2 à 5, caracterizado pelo fato de que o receptor inclui múltiplos canais de recepção, e um código de memória armazenado para um satélite pode ser fornecido a qualquer canal de recepção para correlação com o sinal entrante naquele canal de recepção.
7. Receptor de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que pelo menos uma mencionada unidade de armazenamento de código ainda inclui um seqüenciador.
8. Receptor de acordo com a reivindicação 7, caracterizado pelo fato de que mencionado seqüenciador é responsivo a um sinal de incremento para emitir o próximo conjunto secundário de uma ou mais chips a partir do código de memória armazenado.
9. Receptor de acordo com qualquer uma das reivindicações 1 à 8, caracterizado pelo fato de que cada saída proveniente da pelo menos uma unidade de armazenamento de código compreende um conjunto secundário representando múltiplos chips de mencionado código de memória armazenado.
10. Receptor de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que os códigos de espalhamento para os satélites compreendem seqüência de chip feitas sob medida.
11. Receptor de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que pelo menos uma mencionada unidade de armazenamento de código é formada em um dispositivo de arranjo de porta programável de campo (FPGA).
12. Receptor de acordo com qualquer uma das reivindicações -1 à 10, caracterizado pelo fato de que pelo menos uma mencionada unidade de armazenamento de código é formada em um circuito integrado específico de aplicativo (ASIC).
13. Receptor de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que pelo menos uma mencionada unidade de armazenamento de código é formada no mesmo dispositivo de semicondutor que mencionado dispositivo de correlação.
14. Receptor de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que a lógica combinatorial dentro da pelo menos uma unidade de armazenamento de código armazena múltiplos códigos de memória, e uma diferente entrada é aplicada à lógica combinatorial para selecionar um diferente de múltiplos códigos de memória mencionados para emissão a partir da unidade de armazenamento de código.
15. Satélite para usar em um sistema de navegação por satélite compreendendo uma constelação de múltiplos satélites, caracterizado pelo fato de que cada satélite transmite um sinal incorporando um código de espalhamento, o satélite incluindo pelo menos uma unidade de armazenamento de código que inclui lógica combinatorial, para armazenar um código de memória, compreendendo um padrão fixo de chips, mencionado código de memória armazenado, correspondendo a um código de espalhamento a ser incorporado em um sinal transmitido a partir do satélite, em que a mencionada lógica combinatorial inclui funcionalidade de decodificação de endereço para recuperar uma porção especificada do código de memória armazenada.
16. Método para operar um receptor para uso com um sistema de navegação por satélite compreendendo uma constelação de múltiplos satélites, na qual cada satélite transmite um sinal incorporando um código de espalhamento, caracterizado pelo fato de incluir: - fornecer pelo menos uma unidade de armazenamento de código que inclui lógica combinatorial para armazenar um código de memória compreendendo um padrão fixo de chips, mencionado código de memória armazenado correspondendo a um código de espalhamento incorporado em um sinal transmitido a partir de um satélite, em que mencionada lógica combinatorial inclui funcionalidade de decodificação de endereço para recuperar uma porção especificada do código de memória armazenado; e - efetuar uma correlação entre um sinal entrante e o código de memória armazenado recuperado a partir da pelo menos uma unidade de armazenamento de código.
17. Método de acordo com a reivindicação 16, caracterizado pelo fato de que o receptor armazena um diferente código de memória para cada satélite em uma constelação de satélites.
18. Método de acordo com a reivindicação 17, caracterizado pelo fato de que os diferentes códigos de memória para os satélites são todos armazenados em uma única unidade de armazenamento de código.
19. Método de acordo com a reivindicação 17 ou 18, caracterizado pelo fato de ainda compreender: - armazenar códigos de espalhamento para múltiplos satélites em uma única unidade de armazenamento de código; e - endereçar única mencionada unidade de armazenamento de código para emitir um código de memória para um particular satélite.
20. Método de acordo com a reivindicação 17, caracterizado pelo fato de que cada código de memória para um sinal proveniente de um satélite é armazenado em uma unidade de armazenamento de código separada.
21. Método de acordo com qualquer uma das reivindicações -17 à 20, caracterizado pelo fato de que o receptor inclui múltiplos canais de recepção, e o método ainda compreende fornecer sinais de controle para encaminhar um código de memória armazenado para um satélite a partir de pelo menos uma mencionada unidade de armazenamento de código para qualquer canal de recepção desejado para correlação com o sinal entrante naquele canal de recepção.
22. Método de acordo com qualquer uma das reivindicações -16 à 21, caracterizado pelo fato de que a pelo menos uma unidade de armazenamento de código ainda inclui um seqüenciador, mencionado seqüenciador sendo responsivo a um sinal de incremento para emitir o próximo conjunto secundário de uma ou mais chips a partir do código de memória armazenado.
23. Método de acordo com qualquer uma das reivindicações -16 à 21, caracterizado pelo fato de que cada saída da pelo menos uma unidade de armazenamento de código compreende um conjunto secundário representando múltiplos chips do mencionado código de memória armazenado.
24. Método de acordo com qualquer uma das reivindicações -16 à 23, caracterizado pelo fato de que os códigos de espalhamento para os satélites compreendem seqüências de chip feitas sob medida.
25. Método de acordo com qualquer uma das reivindicações -16 à 24, caracterizado pelo fato de que a lógica combinatorial dentro da pelo menos uma unidade de armazenamento de código armazena múltiplos códigos de memória, e uma diferente entrada é aplicada à lógica combinatorial para selecionar um diferente um de múltiplos códigos de memória mencionados para emissão a partir da unidade de armazenamento de código.
26. Método para produzir um receptor para uso com um sistema de navegação por satélite compreendendo uma constelação de múltiplos satélites, na qual cada satélite transmite um sinal incorporando um código de espalhamento, caracterizado pelo fato de incluir: - determinar um código de espalhamento de satélite a ser armazenado dentro do receptor; - fornecer pelo menos uma unidade de armazenamento de código dentro do receptor, pelo menos uma mencionada unidade de armazenamento de código incluindo lógica combinatorial para armazenar um código de memória compreendendo um padrão fixo de chips correspondendo ao código de espalhamento de satélite, em que mencionada lógica combinatorial inclui funcionalidade de decodificação de endereço para recuperar uma porção especificada do código de memória armazenado.
27. Método de acordo com a reivindicação 26, caracterizado pelo fato de que fornecer a pelo menos uma unidade de armazenamento de código inclui produzir uma especificação do padrão fixo de chips dentro de uma linguagem de descrição de hardware, e implementar mencionada especificação usando síntese de lógica.
28. Método de acordo com a reivindicação 27, caracterizado pelo fato de que mencionada especificação é implementada em um arranjo programável de campo.
29. Método de acordo com a reivindicação 27, caracterizado pelo fato de que mencionada especificação é implementada em uma circuito integrado específica de aplicativo.
30. Método de acordo com qualquer uma das reivindicações -26 à 29, caracterizado pelo fato de que mencionado código de espalhamento de satélite é um código feito sob medida.
BRPI0621450-9A 2006-03-09 2006-03-09 Receptor e satélite para usar com um sistema de navegação por satélite, e, métodos para operar e produzir um receptor para uso com um sistema de navegação por satélite BRPI0621450B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2006/002497 WO2007101454A1 (en) 2006-03-09 2006-03-09 A receiver and transmitter for use in a satellite navigation system

Publications (2)

Publication Number Publication Date
BRPI0621450A2 true BRPI0621450A2 (pt) 2012-10-09
BRPI0621450B1 BRPI0621450B1 (pt) 2019-05-07

Family

ID=37216090

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0621450-9A BRPI0621450B1 (pt) 2006-03-09 2006-03-09 Receptor e satélite para usar com um sistema de navegação por satélite, e, métodos para operar e produzir um receptor para uso com um sistema de navegação por satélite

Country Status (11)

Country Link
US (1) US8218601B2 (pt)
EP (1) EP1991881B1 (pt)
JP (1) JP5781260B2 (pt)
KR (1) KR101184269B1 (pt)
CN (1) CN101443675B (pt)
BR (1) BRPI0621450B1 (pt)
CA (1) CA2643713C (pt)
ES (1) ES2628540T3 (pt)
PL (1) PL1991881T3 (pt)
RU (1) RU2438145C2 (pt)
WO (1) WO2007101454A1 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185718B2 (en) * 2008-02-04 2012-05-22 Mediatek Inc. Code memory capable of code provision for a plurality of physical channels
US7991042B2 (en) 2008-02-04 2011-08-02 Mediatek Inc. GNSS receiver and method for GNSS memory code generation
FR2942325B1 (fr) * 2009-02-19 2011-03-04 Thales Sa Procede de lever d'ambiguite, procede de localisation d'un recepteur par radionavigation comprenant une etape de lever d'ambiguite et recepteur de localisation
US8149900B2 (en) * 2009-04-02 2012-04-03 Mediatek Inc. Low complexity acquisition method for GNSS
ES2654641T3 (es) * 2009-07-01 2018-02-14 Locata Corporation Pty Ltd Método y aparato para formar un haz
CN102073053B (zh) * 2010-12-20 2012-10-03 东莞市泰斗微电子科技有限公司 一种多模gnss接收机伪随机噪声码发生单元
CN103487817B (zh) * 2013-09-18 2015-11-25 中国科学院嘉兴微电子与系统工程中心 多模多频gnss伪码生成装置
US20170212246A1 (en) * 2014-08-20 2017-07-27 Sony Semiconductor Solutions Corporation Receiving apparatus, receiving method, and program for global navigation satellite system
US10845488B2 (en) * 2014-10-21 2020-11-24 Topcon Positioning Systems, Inc. Universal multi-channel GNSS signal receiver
ES2993734T3 (en) 2015-06-10 2025-01-08 Esa Method and apparatus for tracking a binary offset carrier navigation signal
WO2019020201A1 (en) 2017-07-28 2019-01-31 European Space Agency A receiver and method for processing a wide-band signal
CN112400121B (zh) * 2018-05-24 2024-10-29 欧洲空间局 用于在gnss接收器中执行联合信道和时间估计的方法和装置
EP3671281A1 (en) 2018-12-21 2020-06-24 European Space Agency Method and system for processing a gnss signal using homomorphic encryption
CN116320248B (zh) * 2023-05-18 2023-08-29 深圳曦华科技有限公司 存储芯片共享系统、方法、相关装置及存储介质
CN117406249B (zh) * 2023-12-14 2024-03-08 成都安则优科技有限公司 一种反无人机卫星导航设备及数据回放方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642647A (en) 1983-08-29 1987-02-10 Litton Systems, Inc. Signal generator for radio navigation system
JPS6313440A (ja) * 1986-07-02 1988-01-20 Nec Corp スペクトラム拡散信号の受信装置
US4876659A (en) * 1988-05-02 1989-10-24 The Johns Hopkins University Pseudo-Random code generator for use with a global positioning system
US5874914A (en) * 1995-10-09 1999-02-23 Snaptrack, Inc. GPS receiver utilizing a communication link
FI982203A7 (fi) * 1998-10-09 2000-04-10 Nokia Networks Oy Menetelmä ja generaattori generoida CDMA-radiojärjestelmän ortogonaalinen hajotuskoodi
JP2000183757A (ja) * 1998-12-15 2000-06-30 Matsushita Electric Ind Co Ltd インターリーブ解除装置
JP3517829B2 (ja) * 1999-01-14 2004-04-12 日本電気エンジニアリング株式会社 Pn符号発生回路
JP2000261324A (ja) * 1999-03-10 2000-09-22 Fuji Film Microdevices Co Ltd ハフマン復号化回路
US6421372B1 (en) * 1999-11-10 2002-07-16 Itt Manufacturing Enterprises, Inc. Sequential-acquisition, multi-band, multi-channel, matched filter
DE10085372T1 (de) * 1999-12-30 2003-06-18 Morphics Tech Inc Konfigurierbares Codegenerator-System für Spread-Spektrum-Anwendungen
US7567636B2 (en) 2001-05-18 2009-07-28 Global Locate, Inc. Method and apparatus for performing signal correlation using historical correlation data
CA2387891A1 (en) * 2001-06-08 2002-12-08 Asulab S.A. Radiofrequency signal receiver with means for correcting the effects of multipath signals, and method for activating the receiver
JP2003152683A (ja) 2001-11-13 2003-05-23 Matsushita Electric Ind Co Ltd 直交符号発生回路
JP2004005011A (ja) * 2002-04-17 2004-01-08 Kumamoto Technology & Industry Foundation 擬似乱数の生成方法、それに用いられる装置、記憶媒体及び通信システム
CN2636555Y (zh) * 2003-08-27 2004-08-25 海信集团有限公司 无线移动定位通信模块
JP2005214916A (ja) * 2004-02-02 2005-08-11 Sony Corp Gps受信方法およびgps受信機
US7447253B2 (en) * 2004-02-06 2008-11-04 Glocal Locate, Inc. Method and apparatus for processing satellite positioning system signals to obtain time information

Also Published As

Publication number Publication date
BRPI0621450B1 (pt) 2019-05-07
US8218601B2 (en) 2012-07-10
US20090147835A1 (en) 2009-06-11
CN101443675A (zh) 2009-05-27
ES2628540T3 (es) 2017-08-03
CA2643713A1 (en) 2007-09-13
EP1991881B1 (en) 2017-05-03
PL1991881T3 (pl) 2017-12-29
KR20090010027A (ko) 2009-01-28
KR101184269B1 (ko) 2012-09-21
CN101443675B (zh) 2013-01-02
HK1129464A1 (en) 2009-11-27
CA2643713C (en) 2013-09-03
RU2438145C2 (ru) 2011-12-27
RU2008139800A (ru) 2010-04-20
EP1991881A1 (en) 2008-11-19
WO2007101454A1 (en) 2007-09-13
JP5781260B2 (ja) 2015-09-16
JP2009529814A (ja) 2009-08-20

Similar Documents

Publication Publication Date Title
BRPI0621450A2 (pt) receptor e satélite para usar com um sistema de navegação por satélite, e, métodos para operar e produzir um receptor para uso com um sistema de navegação por satélite
US10088573B2 (en) Navigation system using spreading codes based on pseudo-random noise sequences
US6978402B2 (en) Semiconductor memory
EP1994535B1 (en) Format transformation of test data
KR101069671B1 (ko) 신호 주파수 변경 회로 및 그 주파수 변경 방법
US7219269B2 (en) Self-calibrating strobe signal generator
US8290725B2 (en) Synchronized reconfiguration of measurement modules
US11397265B2 (en) Universal multi-channel GNSS signal receiver
US6070248A (en) Generation of a stable reference clock frequency from a base clock frequency that may vary depending on source
US20160299232A1 (en) Universal multi-channel gnss signal receiver
US7129757B2 (en) Clock frequency detect with programmable jitter tolerance
US7478030B1 (en) Clock stabilization detection for hardware simulation
US6629251B1 (en) Elastic store circuit with vernier clock delay
KR20060131743A (ko) 주파수 분할기 및 전자 장치
JP2014161012A (ja) 衛星ナビゲーション・システムに使用するための受信機および送信機
HK1129464B (en) A receiver and transmitter for use in a satellite navigation system
US9049020B2 (en) Circuitry to facilitate testing of serial interfaces
Dedic et al. Extremely low-jitter FPGA based synchronization timing system
JP3913231B2 (ja) 複数のクロックを供給する装置
KR100349683B1 (ko) 다수의 다중 입력 쉬프트 레지스터를 이용한 롬 테스트 장치

Legal Events

Date Code Title Description
B06G Technical and formal requirements: other requirements [chapter 6.7 patent gazette]

Free format text: SOLICITA-SE A REGULARIZACAO DA PROCURACAO, UMA VEZ QUE BASEADO NO ARTIGO 216 1O DA LPI, O DOCUMENTO DE PROCURACAO DEVE SER APRESENTADO NO ORIGINAL, TRASLADO OU FOTOCOPIA AUTENTICADA.

B06T Formal requirements before examination [chapter 6.20 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: G01S 1/00

Ipc: G01S 19/30 (2010.01), G01S 19/36 (2010.01), G01S 1

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 07/05/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 07/05/2019, OBSERVADAS AS CONDICOES LEGAIS