ES2628540T3 - Un receptor y transmisor para uso en un sistema de navegación por satélite - Google Patents

Un receptor y transmisor para uso en un sistema de navegación por satélite Download PDF

Info

Publication number
ES2628540T3
ES2628540T3 ES06707601.8T ES06707601T ES2628540T3 ES 2628540 T3 ES2628540 T3 ES 2628540T3 ES 06707601 T ES06707601 T ES 06707601T ES 2628540 T3 ES2628540 T3 ES 2628540T3
Authority
ES
Spain
Prior art keywords
code
memory
receiver
satellite
combinatorial logic
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES06707601.8T
Other languages
English (en)
Inventor
Martin Hollreiser
Roland Weigand
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agence Spatiale Europeenne
Original Assignee
Agence Spatiale Europeenne
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 Agence Spatiale Europeenne filed Critical Agence Spatiale Europeenne
Application granted granted Critical
Publication of ES2628540T3 publication Critical patent/ES2628540T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Un receptor (101) para uso con un sistema de navegación por satélite que comprende una constelación de múltiples satélites en la que cada satélite transmite una señal que incorpora un código de ensanchamiento, incluyendo el receptor: al menos una unidad de almacenamiento de código (15) que incluye lógica combinatoria (20) para almacenar un código de memoria que comprende un patrón fijo de segmentos, correspondiendo dicho código de memoria almacenado a un código de ensanchamiento incorporado en una señal transmitida desde un satélite, en el que dicha lógica combinatoria incluye funcionalidad de decodificación de dirección para recuperar una porción especificada del código de memoria almacenado, en el que la configuración de hardware interna de dicha lógica combinatoria se personaliza para el conjunto de datos almacenados; y un correlador para realizar una correlación entre una señal de entrada y el código de memoria almacenado recuperado desde la al menos una unidad de almacenamiento de código; caracterizado por que la configuración de hardware interna de dicha lógica combinatoria no comprende células de memoria normalizadas y la lógica combinatoria para almacenar el código de memoria y la funcionalidad de dirección están integradas en el nivel de componente físico sin división evidente entre las dos.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Un receptor y transmisor para uso en un sistema de navegacion por satelite Campo de la invencion
La presente invencion se refiere a un sistema de navegacion por satelite o sistema de posicionamiento que comprende una constelacion de multiples satelites, y especialmente a un receptor para uso en conjunto con un sistema de navegacion por satelite de este tipo.
Antecedentes de la invencion
Los sistemas de navegacion por satelite se estan haciendo cada vez mas importantes en una amplia gama de aplicaciones, incluyendo dispositivos portatiles para determinacion de la posicion, soporte de navegacion en coches y asf sucesivamente. El sistema de navegacion por satelite principal en servicio en la actualidad es el sistema de posicionamiento global (GPS) operado por el Departamento de Defensa de Estados Unidos. Las ventas mundiales de equipos de GPS alcanzaron casi 3.500 millones de dolares en 2003, y esta cifra se espera que crezca de manera estable en los proximos anos. Un sistema de navegacion por satelite homologo europeo, denominado Galileo, se esta planeado para lanzamiento y disponibilidad de servicio a finales de esta decada.
Un sistema de navegacion por satelite comprende una constelacion de satelites, cada uno de los cuales difunden una o mas senales a la Tierra. Los componentes basicos de una senal de satelite son un codigo de ensanchamiento (tambien denominado como posicionamiento, sincronizacion o codigo de medida) que se combina con datos de navegacion. La combinacion resultante se modula a continuacion en una portadora a una frecuencia establecida para transmision a la Tierra. Cada satelite generalmente transmite a multiples frecuencias, que puede ayudar a compensar los efectos ionosfericos, para mejorar la precision y para difundir mas datos.
En algunos casos, pueden modularse multiples canales en una unica portadora mediante algun esquema de multiplexacion apropiado. Por ejemplo, esta planeado que ciertas senales de Galileo comprendan un canal de datos combinado con un canal piloto. El canal piloto contiene unicamente un codigo de ensanchamiento, pero no datos de navegacion, mientras que el canal de datos contiene tanto el codigo de ensanchamiento como los datos de navegacion.
El componente de codigo de ensanchamiento de una senal de satelite tfpicamente comprende una secuencia predeterminada de bits (denominada como 'segmentos') y se usa para realizar dos tareas principales. En primer lugar, el codigo de ensanchamiento proporciona un mecanismo de sincronizacion y acceso (CdmA) para permitir a un receptor bloquearse en una senal de satelite. Por lo tanto cada satelite (y tfpicamente cada senal difundida desde ese satelite) tiene su propio codigo de sincronizacion. Cuando un receptor se conecta en primer lugar, no conoce que senales de satelite pueden recibirse, puesto que ciertos satelites en la constelacion estaran por debajo del horizonte para esa localizacion particular en ese tiempo particular. El receptor usa los codigos de sincronizacion para bloquearse en una senal desde un primer satelite. Una vez que esto se ha hecho, puede accederse a los datos de navegacion en la senal. Esto a continuacion proporciona datos de almanaque para los otros satelites en la constelacion, y permite que se obtengan los satelites restantes que son visibles para el receptor de manera relativamente rapida.
Muchos receptores emplean un proceso de adquisicion de dos fases. En la primera fase, el receptor realiza una correlacion simultanea de la senal de entrada contra el conjunto de codigos de ensanchamiento de satelite. En particular, el receptor busca un codigo de ensanchamiento desde cualquier satelite, permitiendo cualquier compensacion de temporizacion posible entre el satelite y el receptor, y para cualquier desplazamiento Doppler posible entre el satelite y el receptor (que es dependiente del movimiento del satelite en el espacio con relacion al usuario). Si se halla un valor de correlacion que supera un umbral predeterminado, entonces se realiza una segunda fase que implica un analisis mas detallado para la combinacion pertinente de codigo de ensanchamiento de satelite, compensacion de temporizacion y desplazamiento Doppler. El analisis de la segunda fase verifica y confirma o, si fuera necesario, rechaza la adquisicion basta inicial.
La segunda tarea principal de un codigo de ensanchamiento es proporcionar una estimacion de distancia desde el satelite al receptor, basandose en el tiempo que ha tomado que la senal recorra desde el satelite al receptor. La posicion del receptor se determina a continuacion en espacio tridimensional usando un proceso de trilateracion, dadas las posiciones conocidas de los satelites (como se especifica en los datos de navegacion recibidos desde los satelites). En teona, la trilateracion puede realizarse con informacion de senal a partir de un mmimo de tres satelites, suponiendo que la compensacion de temporizacion entre el reloj de receptor y los relojes de satelite es conocida. En la practica, esta compensacion de temporizacion generalmente es desconocida, excepto para receptores especializados, de modo que la informacion de senal se obtiene desde al menos un satelite adicional para compensar la compensacion de tiempo desconocida en el receptor. Si hay disponibles senales desde satelites adicionales, puede realizarse una determinacion de posicion estadfstica usando cualquier algoritmo apropiado tal
5
10
15
20
25
30
35
40
45
50
55
60
65
como mmimos cuadrados. Esto puede proporcionar tambien alguna indicacion del error asociado con una posicion estimada.
Un parametro importante para un codigo de ensanchamiento es la velocidad de segmento a la que se transmite el codigo de ensanchamiento, puesto que esta a su vez controla la precision con la que puede realizarse la determinacion posicional. Otro parametro importante para un codigo de ensanchamiento es la longitud total, en otras palabras, el numero de segmentos en el codigo de ensanchamiento antes de que se repita. Una razon para esto es que la longitud finita de un codigo de ensanchamiento puede conducir a ambiguedad en la determinacion de la posicion. Una longitud mas larga para el codigo de ensanchamiento reduce tal ambiguedad, y tambien proporciona mejor separacion de senales desde diferentes ongenes y robustez aumentada frente a interferencia. Por otra parte, tener una longitud de repeticion mas larga para el codigo de ensanchamiento puede retardar la adquisicion inicial de la senal, asf como requerir mas capacidad de procesamiento en el receptor. En general, la longitud del codigo de ensanchamiento tambien impacta a la velocidad de datos que puede usarse para los datos de navegacion, puesto que normalmente hay un unico bit de datos de navegacion para cada secuencia de codigo de ensanchamiento completa. Por lo tanto, cuanto mas larga es la longitud de repeticion para el codigo de ensanchamiento, menor es la velocidad de bits para los datos de navegacion.
Una estrategia conocida es usar un codigo de ensanchamiento jerarquico o a niveles basado en codigos primarios y secundarios. Si suponemos que un codigo primario tiene N1 segmentos y un codigo secundario tiene N2 segmentos, entonces los primeros N1 segmentos del codigo de ensanchamiento global corresponden a la secuencia primaria a la que se ha realizado la operacion OR exclusivo con el primer segmento del codigo secundario, los siguientes N1 segmentos del codigo de ensanchamiento comprenden una repeticion de los N1 segmentos del codigo primario, esta vez al que se ha realizado la operacion OR exclusivo con el segundo segmento del codigo secundario, y asf sucesivamente. Esto proporciona una longitud de repeticion total para el codigo de N1xN2, sin embargo la adquisicion inicial puede ser basandose en el codigo primario unicamente.
Los codigos de ensanchamiento de GPS se implementan usando registros de desplazamiento de realimentacion lineales (LFSR), en los que las salidas seleccionadas desde un registro de desplazamiento de N etapas se derivan y se realimentan a la entrada. Las conexiones de realimentacion en el LFSR pueden representarse como un polinomio binario en aritmetica de modulo 2 de orden N, mediante la cual la operacion de un LFSR se especifica completamente por su polinomio y el ajuste inicial del LFSR.
Los codigos de ensanchamiento de GPS son codigos de Gold, que tienen ciertas propiedades matematicas especiales. Una de estas es que generan una salida de ruido pseudo-aleatorio (PRN) que tiene una longitud de repeticion de 2N-1, de modo que un LFSR relativamente compacto puede generar una salida con una longitud de repeticion larga. Los codigos de Gold tambien tienen buenas propiedades de auto-correlacion que soportan adquisicion de codigo y posicionamiento preciso. En particular, la funcion de auto-correlacion tiene un pico bien definido en la compensacion de tiempo cero, y es relativamente pequeno para todas las demas compensaciones de tiempo (es decir distintas de cero). Al mismo tiempo es tambien importante seleccionar un conjunto de codigos de Gold que tenga buenas propiedades de correlacion cruzada, mediante los cuales la funcion de correlacion cruzada entre diferentes codigos es relativamente pequena. Esto es importante para adquisicion de senal, puesto que ayuda a evitar que un codigo de sincronizacion de un satelite se confunda accidentalmente para un codigo de sincronizacion de otro satelite. Un criterio practico importante adicional para un codigo de ensanchamiento es tener igual (o casi igual) numero de unos y ceros - esto se denomina como equilibrio.
Puede encontrase informacion adicional acerca de sistemas de navegacion por satelite en el documento: “Global Positioning System: Signals, Measurements and Performance”, por Misra y Enge, Ganga-Jamuna Press, 2001, ISBN 0-9709544-0-9; “Global Positioning System: Theory and Applications”, Vol 1 y Vol 2, por Bradford W. Parkinson y James J. Spilker Jr, ISBN 1-56347-106-X, publicado por el Instituto Americano para Aeronautica y Astronautica; “Galileo User Segment Overview” por Hollreiser et al, iOn GPS/GNSS 2003, septiembre de 2003, Portland, Oregon, pags. 1914-1928; y “Galileo Test User Segment - First Achievements and Application”, por Hollreiser et al, GPS World, julio de 2005.
Aunque el uso de codigos de Gold esta bien establecido para los sistemas de navegacion por satelite existentes, hay algunas limitaciones asociadas con tales codigos. Por ejemplo, estan unicamente disponibles con ciertas longitudes de codigo (2N-1, y no todos los valores de N pueden usarse para el polinomio de LFSR). En general, la longitud de codigo se determina por la proporcion de la tasa del segmento del codigo de ensanchamiento y la tasa de bits de los datos de navegacion. Si la longitud de codigo se restringe a un codigo de Gold disponible, entonces esto implica una restriccion en la tasa de segmento y la tasa de bits, que puede impactar a su vez a otras consideraciones, tales como el tiempo de adquisicion y la precision de posicionamiento. En algunos casos, la limitacion en la longitud de codigo para codigos de Gold se ha superado usando codigos de Gold truncados, pero esta truncacion tiene un impacto adverso en las propiedades matematicas del conjunto de codigos (en terminos de la funcion de autocorrelacion, etc.).
Por consiguiente, se ha propuesto en las solicitudes PCT PCT/EP2004/014488 y PCT/EP2005/007235 usar secuencias de bits disenadas personalizadas o hechas a medida como codigos de ensanchamiento de satelite. Esto
5
10
15
20
25
30
35
40
45
50
55
60
65
permite el desarrollo de codigos de ensanchamiento de longitud arbitraria, y tambien permite la optimizacion de diversas propiedades tales como auto-correlacion y correlacion cruzada independientes de otras restricciones. Un codigo de ensanchamiento de este tipo se describira en el presente documento como codigo de “memoria”, puesto que en general un receptor almacena el patron de segmento entero del codigo. Esto es en contraste a generar el patron de segmento de manera algontmica, como para un codigo de Gold, que usa un LFSR para generar un codigo de manera algontmica de acuerdo con su polinomio, en lugar de almacenar el patron de segmento del codigo en su totalidad. Observese que puesto que los codigos de memoria se crean tfpicamente a partir de (pseudo) secuencias de numeros aleatorios, normalmente no son susceptibles detecnicas de compresion de datos.
El conjunto de codigos de memoria para un receptor puede almacenarse en alguna forma de ROM tal como memoria flash. Estos codigos pueden a continuacion cargarse en el conjunto de chips del receptor en tiempo de arranque para uso durante la deteccion de los codigos de ensanchamiento en las senales de satelite de entrada. Si se cargan los codigos de memoria completos en el mismo conjunto de chips del receptor, esto puede representar una tara muy significativa en terminos de localizaciones de almacenamiento en el conjunto de chips del receptor. Como alternativa, los codigos pueden cargarse en una RAM (externa al conjunto de chips del receptor), donde representanan unicamente una adicion comparativamente pequena a los requisitos de programa globales y/o almacenamiento de datos para operaciones de receptor generales. Sin embargo, en este caso es probable que se requiera una interfaz de alta velocidad especializada para alimentar los codigos en tiempo real desde la RAM en el conjunto de chips del receptor, asf como algun almacenamiento de memoria intermedia interno adicional en el mismo conjunto de chips del receptor.
La Figura 1 representa una implementacion tfpica de un LFSR, como puede proporcionarse por ejemplo en un conjunto de chips de receptor de GPS convencional. El hardware basico incluye un registro de desplazamiento 11 de longitud N, mas dos registros adicionales 12, 13, cada uno tambien de longitud N. El diseno del mismo registro de desplazamiento es generico, en que las derivaciones de realimentacion no son de conexion permanente. En su lugar, la realimentacion entre las diversas etapas del registro de desplazamiento 11 se controlan mediante el valor polinomial que se carga en uno de los dos registros adicionales (el registro polinomial 12). El ajuste inicial del LFSR se determina a continuacion mediante el valor almacenado en el otro registro adicional (el registro de patron inicial 13). De esta manera, el LFSR de la Figura 1 puede personalizarse proporcionando valores apropiados en el registro polinomial y en el registro de patron inicial.
El LFSR de la Figura 1 comprende 3N localizaciones de almacenamiento (puesto que el registro de desplazamiento 11, el registro polinomial 12 y el registro de patron inicial 13 cada uno tiene N localizaciones de almacenamiento). Como se ha indicado anteriormente, para un codigo de Gold maximo el numero de localizaciones de almacenamiento en el registro de desplazamiento de realimentacion 11 esta relacionado con la longitud del codigo de salida (L) por N=2log(L+1). Puesto que un codigo de Gold esta basado en general en combinar las salidas desde 2 LFSR, el numero total de localizaciones de almacenamiento T(S) para un codigo de Gold puede expresarse como: T(S)=6*2log(L+1). Ademas, un generador de codigos de LFSR convencional tiene alguna logica combinatoria para proporcionar las derivaciones de realimentacion (XOR), asf como una pequena maquina de estado/controlador en combinacion con un contador (o comparador + registro) para resetear, recargar y reiniciar al final de la secuencia.
En contraste, una implementacion sencilla de un codigo de memoria en un receptor puede implicar proporcionar que se almacene una memoria de longitud total para cada codigo en el receptor, incluyendo los decodificadores de direccion pertinentes. La memoria puede ser estatica o dinamica, dependiendo de la tecnologfa de implementacion elegida. Las tecnologfas mas extendidas (ASIC, FPGA) soportan memorias estaticas. Ademas, se usana tipicamente una pequena maquina de estado o controlador para direccionar la generacion para asegurar la lectura de la celula de memoria correcta. Suponiendo que la puerta-recuento equivalente de una celula de memoria estatica es 1,5 NAND2 (NAND2 representa una puerta NAND de dos entradas y tfpicamente comprende 6 transistores), entonces para tecnologfa de 0,18 |im esto da como resultado un area de 18,75 |im2 por celula de memoria. Incluyendo 200 puertas para la maquina de estado/controlador, y suponiendo un codigo de 4096 segmentos (que corresponde a la senal L1 de Galileo), esto es equivalente a 6344 puertas NAND2, con un area global de 79300 |im2. Como alternativa, para un codigo de 10230 segmentos, como para la senal E5a de Galileo, y basandose en las mismas suposiciones que antes, esto es equivalente a 15545 puertas NAND2, con un area global de 194312 |im2 (despreciando cualquier ahorro debido a la regularidad de la estructura). Esto puede representar una tara significativa para el conjunto de chips del receptor.
Observese tambien que para el caso del codigo de memoria, T(S)=L. En otras palabras, el numero de localizaciones de almacenamiento se eleva en proporcion directa a la longitud del codigo, en lugar de en proporcion al logaritmo del codigo, como para una implementacion de LFSR. Es evidente por lo tanto que a medida que la longitud del codigo de ensanchamiento aumenta, el uso de codigos de memoria exige significativamente mas localizaciones de almacenamiento que un enfoque de LFSR convencional. Este problema se agrava, en que un receptor tiene que almacenar no un codigo de ensanchamiento, sino en su lugar el conjunto completo de codigos de ensanchamiento para todos los satelites y para todas las senales de interes.
El documento US 4642647 desvela un generador y metodo de senal mejorados para navegacion de radio del tipo en el que se determina la localizacion de acuerdo con fijaciones de radio con respecto a multiples puntos de referencia,
5
10
15
20
25
30
35
40
45
50
55
60
65
proporcionando cada uno de tales puntos una transmision codificada. Se almacenan multiples secuencias de bits codificadas en una memoria de solo lectura direccionable. Las senales fantasma que comprenden una pluralidad de secuencias codificadas se generan direccionando la memoria de acuerdo con secuencias preseleccionadas.
Sumario de la invencion
Por consiguiente, una realizacion de la invencion proporciona un receptor para uso con un sistema de navegacion por satelite que comprende una constelacion de multiples satelites, en la que cada satelite transmite una senal que incorpora un codigo de ensanchamiento. El receptor incluye al menos una unidad de almacenamiento de codigo que incluye logica combinatoria para almacenar un codigo de memoria que comprende un patron fijo de segmentos. El codigo de memoria almacenado corresponde a un codigo de ensanchamiento incorporado en una senal transmitida desde un satelite. La logica combinatoria incluye funcionalidad de decodificacion de direccion para recuperar una porcion especificada del codigo de memoria almacenado, en el que la configuracion de hardware interna de dicha logica combinatoria almacenada se personaliza para el conjunto de datos almacenados y no comprende celulas de memoria normalizadas, y en el que la logica combinatoria para almacenar el codigo de memoria y la funcionalidad de direccion estan integradas en el nivel de componente ffsico con division no evidente entre las dos. El receptor incluye adicionalmente un correlador para realizar una correlacion entre una senal de entrada y el codigo de memoria almacenado desde la unidad de almacenamiento de codigo.
Se apreciara que una implementacion convencional de una celula de memoria, por ejemplo como un flip-flop o registro, esta basada en logica secuencial que mantiene el estado dependiendo de la entrada anterior, de modo que los datos a almacenarse se cargan como senales de entrada en el dispositivo. En contraste, un codigo de ensanchamiento puede considerarse como almacenado en la logica combinatoria mediante la configuracion de la conexion permanente de la logica combinatoria.
Se apreciara tambien que un LFSR usado para generar un codigo de ensanchamiento en un receptor existente comprende logica secuencial en lugar de combinatoria, puesto que su salida depende del estado interno en los registros. Ademas, los LFSR estan limitados en los codigos que pueden generar a aquellos codigos definidos mediante ciertos algoritmos matematicos. De hecho, un LFSR se considera mejora para almacenar un algoritmo matematico (que puede usarse a continuacion para generar un codigo), en lugar de para almacenar un codigo per se. En contraste, la logica combinatoria puede usarse para almacenar un codigo de ensanchamiento generico o arbitrario, por ejemplo uno sin ninguna propiedad matematica predeterminada, y uno que no se genere usando un algoritmo matematico predefinido. La logica combinatoria puede por lo tanto usarse para almacenar un codigo de memoria hecho a medida o personalizado que se ha optimizado para un sistema de navegacion por satelite particular. (Observese que la logica combinatoria no esta limitada a un codigo de memoria personalizado de este tipo; puede usarse tambien para almacenar un codigo de memoria que corresponde a un codigo de Gold o alguna otra secuencia matematica).
En general, el receptor almacena un codigo de ensanchamiento diferente para cada senal desde cada satelite en la constelacion de satelites de navegacion (para los servicios soportados por el receptor). Esto puede incluir codigos de ensanchamiento para satelites de sustitucion a usarse como repuestos, si fallara cualquier satelite en la constelacion. Existen diversas maneras en la que el conjunto de codigos de ensanchamiento puede asignarse a la unidad o unidades de almacenamiento de codigo. Por ejemplo, en una implementacion, puede usarse una unica unidad de almacenamiento de codigo para mantener el conjunto completo de codigos de ensanchamiento para todos los satelites en la constelacion. En otra realizacion, el codigo de ensanchamiento para cada senal desde cada satelite puede almacenarse en una unidad de almacenamiento de codigo separada. El experto en la materia tendra conocimiento de muchas otras implementaciones intermedias posibles para asignar los codigos de memoria a las unidades de almacenamiento de codigo.
En una realizacion, el receptor incluye multiples canales de recepcion, y puede suministrarse un codigo de memoria almacenado para un satelite desde la unidad o unidades de almacenamiento de codigo a cualquiera de los canales de recepcion para correlacion con la senal de entrada en ese canal de recepcion. Por lo tanto aunque los mismos codigos de memoria esten con conexion permanente mediante la logica combinatoria, la asignacion de los codigos de ensanchamiento a los diferentes canales de recepcion puede ser flexible. Esta flexibilidad es util como para cualquier tiempo o lugar dado en la Tierra, unicamente un subconjunto de los satelites de navegacion es visible (otros pueden verse oscurecidos por construcciones o por debajo del horizonte). Por consiguiente, la capacidad para asignar de manera flexible los codigos de ensanchamiento desde la unidad o unidades de almacenamiento de codigo a los diversos canales de recepcion permite que el numero de canales de recepcion en un receptor sea menor que el numero total de satelites, puesto que en la operacion, el sistema asigna a los canales de recepcion los codigos de ensanchamiento para aquellos satelites que estan actualmente visibles. Adicionalmente esta flexibilidad es util si fallara un satelite en la constelacion, y su lugar se tomara por uno de los satelites de repuesto (suponiendo que el codigo de ensanchamiento para este satelite de repuesto ya este almacenado en el receptor).
Observese que para receptores existentes, el numero de canales de recepcion para recibir una clase dada de senal tambien es normalmente menor que el numero de satelites en la constelacion. Esto se consigue configurando apropiadamente cada LFSR en un canal de recepcion para una senal de satelite deseada (usando el polinomio y
5
10
15
20
25
30
35
40
45
50
55
60
65
registros de ajustes iniciales mostrados en la Figura 1). La logica combinatoria de la unidad o unidades de almacenamiento de codigo no puede configurarse de manera flexible de esta manera durante la operacion, pero se puede recuperar alguna flexibilidad en el nivel de arquitectura del receptor.
En una realizacion, la unidad de almacenamiento de codigo es direccionable para especificar un segmento particular de uno o mas segmentos del codigo de memoria almacenado para salida. La capacidad para proporcionar una porcion seleccionable del codigo de memoria permite que el codigo de memoria se emita a traves de un numero limitado de patillas de salida, y tambien coincide mejor con los patrones de recuperacion para un codigo de memoria para uso normal. La unidad de almacenamiento de codigo puede incluir un secuenciador para permitir al dispositivo pasar secuencialmente uno o mas segmentos a la vez a traves del codigo producido mediante la logica combinatoria y/o una facilidad de direccion para permitir que se seleccione una porcion particular del codigo de memoria para salida. Observese que un mecanismo de salida de este tipo puede implementarse en logica secuencial (tal como para pasar a traves del codigo), pero esta salida secuencial del codigo puede considerarse como logicamente distinta del almacenamiento de codigo mediante la logica combinatoria (incluso si el almacenamiento de codigo y la salida se integraran a continuacion en el nivel de componente ffsico de la unidad de almacenamiento de codigo).
La salida desde la unidad de almacenamiento de codigo puede comprender un unico segmento a la vez, o cada salida puede comprender un conjunto de multiples segmentos. Observese que esta ultima opcion refleja una diferencia adicional entre almacenar un codigo de ensanchamiento en logica combinatoria en comparacion con usar un LFSR, en que un LFSR emite unicamente un unico segmento a la vez. En contraste, puesto que un bloque de logica combinatoria almacena el patron de segmento completo del codigo, por lo tanto pueden estar disponibles multiples segmentos de codigo para salida simultanea en cualquier momento dado (si se desea asf).
La unidad de almacenamiento de codigo es especialmente adecuada para implementacion como un dispositivo de campo de matriz de puertas programables (FPGA) o como un circuito integrado espedfico de la aplicacion (ASIC - matriz de puertas, celula convencional), aunque puede usarse cualquier tecnologfa de semiconductores apropiada (por ejemplo, personalizacion total, etc.). El uso de logica combinatoria es en general compatible con la circuitena disponible en FPGA y/o ASIC, y por consiguiente la logica combinatoria puede disenarse e implementarse usando herramientas de desarrollo de semiconductores convencionales. Se apreciara que el uso de tecnologfas convencionales tales como FPGA y ASIC tambien ayuda con la implementacion de la logica combinatoria como parte del conjunto de chips de receptor principal (evitando de esta manera la necesidad de una interfaz de alta velocidad entre la unidad o unidades de almacenamiento de codigo en un dispositivo y un conjunto de chips de receptor separado).
La unidad o unidades de almacenamiento de codigo pueden usarse para almacenar multiples niveles de un codigo jerarquico. Por ejemplo, una unidad de almacenamiento de codigo puede usarse para almacenar un codigo primario y/o un codigo secundario. Observese que si la unidad o unidades de almacenamiento de codigo mantienen tanto un codigo primario como un correspondiente codigo secundario, entonces estos pueden almacenarse como cualquiera de una secuencia larga (que representa el codigo combinado final para la salida), o como codigos primario y secundario separados. Se apreciara que la ultima configuracion es mas compacta, puesto que unicamente necesitan almacenarse N1+N2 segmentos, en comparacion con N1xN2 para almacenamiento de la secuencia de codigo completa (combinada). En otras realizaciones, la logica combinatoria puede unicamente usarse para almacenar un nivel de un codigo jerarquico, por ejemplo los codigos primarios.
Otra realizacion de la invencion proporciona un satelite para uso en un sistema de navegacion por satelite que comprende una constelacion de multiples satelites, en la que cada satelite transmite una senal que incorpora un codigo de ensanchamiento. El satelite incluye al menos una unidad de almacenamiento de codigo que incluye logica combinatoria para almacenar un codigo de memoria que comprende un patron fijo de segmentos y funcionalidad de decodificacion de direccion para recuperar una porcion especificada del codigo de memoria. La configuracion de hardware interna de dicha logica combinatoria almacenada se personaliza para el conjunto de datos almacenados y no comprende celulas de memoria normalizadas. La logica combinatoria para almacenar el codigo de memoria y la funcionalidad de direccion estan integradas en el nivel de componente ffsico con division no evidente entre las dos. El codigo de memoria corresponde a un codigo de ensanchamiento a incorporarse en una senal transmitida desde el satelite. Por lo tanto el enfoque usado para generar un codigo de ensanchamiento en un receptor para correlacion con una senal de entrada puede usarse tambien para generar un codigo de ensanchamiento para diffusion desde un satelite.
Otra realizacion de la invencion proporciona un metodo para operar un receptor para uso con un sistema de navegacion por satelite que comprende una constelacion de multiples satelites. Cada satelite transmite una senal que incorpora un codigo de ensanchamiento. El metodo incluye proporcionar al menos una unidad de almacenamiento de codigo que incluye logica combinatoria para almacenar un codigo de memoria que comprende un patron fijo de segmentos y funcionalidad de decodificacion de direccion para recuperar una porcion especificada del codigo de memoria. La configuracion de hardware interna de dicha logica combinatoria almacenada se personaliza para el conjunto de datos almacenados y no comprende celulas de memoria normalizadas. La logica combinatoria para almacenar el codigo de memoria y la funcionalidad de direccion estan integradas en el nivel de componente ffsico con division no evidente entre las dos. El codigo de memoria corresponde a un codigo de
5
10
15
20
25
30
35
40
45
50
55
60
65
ensanchamiento incorporado en una senal transmitida desde un satelite. El metodo incluye adicionalmente realizar una correlacion entre una senal de entrada y el codigo de ensanchamiento almacenado en la logica combinatoria.
Otra realizacion de la invencion proporciona un metodo de produccion de un receptor para uso con un sistema de navegacion por satelite que comprende una constelacion de multiples satelites, en la que cada satelite transmite una senal que incorpora un codigo de ensanchamiento. El metodo incluye determinar un codigo de ensanchamiento de satelite a almacenarse en el receptor, y proporcionar al menos una unidad de almacenamiento de codigo que incluye logica combinatoria para almacenar un patron fijo de segmentos que corresponden al codigo de ensanchamiento de satelite y funcionalidad de decodificacion de direccion para recuperar una porcion especificada del codigo de memoria. La configuracion de hardware interna de dicha logica combinatoria almacenada se personaliza para el conjunto de datos almacenados y no comprende celulas de memoria normalizadas. La logica combinatoria para almacenar el codigo de memoria y la funcionalidad de direccion estan integradas en el nivel de componente ffsico con division no evidente entre las dos.
En una realizacion, la logica combinatoria se genera produciendo una especificacion del patron fijo de segmentos en un lenguaje de descripcion de hardware. Esta especificacion puede a continuacion implementarse en una plataforma deseada usando smtesis logica. Observese que la especificacion de la logica combinatoria en el lenguaje de descripcion de hardware puede usar una constante para definir un codigo de salida deseado. Por consiguiente, el unico cambio necesario para definir un codigo de ensanchamiento diferente es actualizar el valor de la constante.
Breve descripcion de los dibujos
Se describiran ahora diversas realizaciones de la invencion en detalle a modo de ejemplo unicamente con referencia a los siguientes dibujos:
la Figura 1 es un diagrama esquematico de una implementacion de un registro de desplazamiento de realimentacion lineal (LFSR) convencional;
la Figura 2 es un diagrama esquematico que muestra el almacenamiento de un codigo de memoria usando logica combinatoria de acuerdo con una realizacion de la invencion;
la Figura 3 es un diagrama esquematico que muestra la arquitectura de un receptor de acuerdo con una realizacion de la invencion en la que todos los codigos de memoria se almacenan en una unica unidad de almacenamiento de codigo;
la Figura 4 es un diagrama esquematico que muestra la arquitectura de un receptor de acuerdo con otra realizacion de la invencion, en la que cada codigo de memoria se almacena en una unidad de almacenamiento de codigo separada;
la Figura 5 es un diagrama de flujo que ilustra un metodo para disenar una unidad de almacenamiento de codigo para almacenar codigos de memoria de acuerdo con una realizacion de la invencion; y
la Figura 6 es un ejemplo de un diagrama esquematico basandose en una lista de interconexiones producida por el metodo de la Figura 5 de acuerdo con una realizacion de la invencion.
Descripcion detallada
La Figura 2 es una ilustracion esquematica de un generador de codigos 10 que incluye una unidad de almacenamiento de codigo 15 de acuerdo con una realizacion de la invencion. El generador de codigos 10 se usa para almacenar y emitir uno o mas codigos de memoria, y por lo tanto toma el lugar de una unidad tal como el LFSR de la Figura 1 en un receptor convencional.
El generador de codigos 10 puede considerarse logicamente como que comprende dos componentes principales, una unidad de almacenamiento de codigo 15 y un secuenciador 25. La unidad de almacenamiento de codigo 15 comprende logica combinatoria 20, que se usa para almacenar el codigo de memoria y para proporcionar decodificacion de direccion. El secuenciador 25 se usa para especificar la direccion de la porcion deseada del codigo de memoria para salida, cargando direcciones de inicio apropiadas e incrementando direcciones actuales. (Observese que en una implementacion ffsica, la funcionalidad de estos dos componentes es probable que este integrada, como se explica en mayor detalle a continuacion, de modo que hay division no evidente entre la logica combinatoria y el secuenciador; sin embargo, aunque desde una perspectiva logica o funcional, los dos componentes pueden considerare de manera separada).
En el ejemplo de la Figura 2, la logica combinatoria 20 tiene un numero de salidas de la Salida 50. Para una direccion definida 45, las salidas 50 se definen, dependiendo de la configuracion particular de puertas en la logica combinatoria 20. Mientras se activa la carga 40, una direccion de inicio 30 se carga en el secuenciador de direcciones 25. La direccion desde el secuenciador de direcciones 25 se suministra a continuacion como la direccion 45 a la unidad de almacenamiento de codigo 15 y la correspondiente fraccion del codigo de memoria aparece en las salidas 50 de la logica combinatoria 20.
El secuenciador de direcciones incrementa la direccion 45 con cada pulso en el reloj 55 cuando se declara la entrada de activacion 35. Esto provoca que aparezcan las correspondientes fracciones o porciones del codigo de
5
10
15
20
25
30
35
40
45
50
55
60
65
memoria en las salidas 50 de la logica combinatoria 20. De otra manera, cuando no se evalua la senal de activacion, la direccion especificada 45 y por lo tanto las salidas de la logica combinatoria 20 permanecen constantes.
Se apreciara que puesto que el bloque logico 20 es combinatorio en lugar de secuencial, no almacena ninguna informacion de estado. Por lo tanto la logica combinatoria no se considera normalmente como una forma de dispositivo de memoria. Sin embargo, la configuracion de las puertas en la logica combinatoria 20 puede observarse como una forma de almacenamiento (de conexion permanente), entonces las salidas 50 desde la logica combinatoria 20 corresponden a un conjunto de bits almacenados. La logica combinatoria puede considerarse por lo tanto como una forma de memoria de solo lectura (ROM), que almacena un conjunto de bits para cada direccion 45.
Observese que los “contenidos” de la logica combinatoria estan fijados (suponiendo que el bloque de logica combinatoria sea de conexion permanente) y por lo tanto no pueda actualizarse, en contraste a muchas formas convencionales de “ROM”, tal como memoria flash, EEPROM, que no soportan alguna forma de mecanismo de escritura. Ademas, la configuracion interna de la logica combinatoria 20 es particular (personalizada) al conjunto de bits almacenado, a diferencia de una Memoria de Acceso Aleatorio (RAM), que se forma normalmente de celulas de memoria normalizadas que se cargan a continuacion con valores de datos. En otras palabras, en la mayona de dispositivos de memoria convencionales, existe una separacion logica entre la estructura de hardware general del dispositivo de memoria, y los contenidos de datos que se estan almacenando en el dispositivo (una separacion analoga se cumple tambien para la arquitectura de LFSR de la Figura 1). Con la logica combinatoria 20 sin embargo, no existe tal separacion logica, en que la estructura de hardware corresponde directamente a (es decir refleja o representa) los contenidos de datos reales que se estan almacenando (mas decodificacion de direccion).
Las salidas 50 desde la logica combinatoria 20 pueden disponerse para representar cualquier conjunto de bits dado para elegir una configuracion apropiada de puertas en la logica combinatoria (como se describe en mas detalle a continuacion). En consecuencia, la logica combinatoria de la Figura 2 puede usarse para almacenar una secuencia de segmentos que corresponde a un codigo de memoria, entonces las salidas 50 desde el bloque logico corresponden a la secuencia de segmentos del codigo de memoria. (Se apreciara que esto implica definir una ordenacion adecuada para las salidas 50 desde la logica combinatoria 20 para hacer coincidir la naturaleza secuencial del codigo de memoria. Esto puede conseguirse a traves de la union de la decodificacion de direccion con el contenido de codigo de memoria real durante smtesis logica, como se describe en mas detalle a continuacion).
Para una secuencia de codigo de memoria larga L que comprende unos pocos miles de segmentos (por ejemplo), normalmente no es conveniente emitir todos los segmentos de codigo de memoria en paralelo, puesto que esto implicana un numero muy grande de patillas de salida. Ademas, generalmente no se requiere para operaciones de receptor emitir un codigo de ensanchamiento completo de una sola vez. En su lugar, la logica combinatoria 20 emite un subconjunto de uno o mas segmentos desde el codigo de memoria para cada direccion especificada 45.
Por ejemplo, dependiendo de la arquitectura de receptor global
1. puede proporcionarse un unico segmento por incremento de direccion 45. Este segmento a continuacion se encamina a un unico correlador de receptor. En este caso unicamente un codigo de memoria esta contenido en la logica combinatoria 20.
2. Si mas de un codigo de memoria (por ejemplo codigos de memoria para mas de una senal y/o mas de un satelite) esta contenido en la logica combinatoria 20, entonces esta unidad tiene que compartirse en tiempo por varios correladores de receptor. En una implementacion de este tipo, la logica combinatoria 20 emite una primera sub-secuencia de un primer codigo de memoria cuando la direccion 45 se incrementa aun valor particular. Esta subsecuencia se encamina a un primer correlador de receptor correspondiente. Mientras el primer correlador de receptor esta funcionando a traves de su subsecuencia, se proporcionan otras subsecuencias de diferentes codigos de memoria mediante la logica combinatoria 20 a diferentes correladores de receptor. Una vez que se ha servido a todos los correladores de receptor, el secuenciador retorna al primer correlador de receptor y proporciona la segunda subsecuencia del primer codigo de memoria al primer correlador de receptor.
La longitud de las subsecuencias individuales depende del numero global de correladores de receptor a servirse por un generador de codigos individual 10. Los numeros de segmentos por subsecuencia tfpicos pueden ser N=8, 16, 32, 64 o 128. Por lo tanto para cada activacion sucesiva de la senal de reloj 55 mientras la senal de activacion 35 esta activa, el secuenciador 25 incrementa la direccion 45 y la logica combinatoria 20 emite los siguientes N segmentos a traves de las salidas 50.
Por ejemplo, suponiendo que unicamente se almacena un codigo de memoria en la logica combinatoria 20, si L=4096 y N=16, entonces el primer tictac del reloj 55 (mientras la senal de activacion 35 esta activa) emite los segmentos 0-15 del codigo de memoria almacenados en la logica combinatoria 20, el siguiente tictac del reloj 55 emite los segmentos 16-31 del codigo de memoria almacenados en la logica combinatoria 20, y asf sucesivamente, hasta que se haya emitido el codigo de memoria completo (tras lo cual retrocedemos al segmento 0). En otra realizacion, N=1, caso en el que el codigo de memoria almacenado se emite segmento a segmento desde la unidad de almacenamiento de codigo 15.
5
10
15
20
25
30
35
40
45
50
55
60
65
Se apreciara que puesto que el secuenciador 25 mantiene la informacion de estado (su posicion/direccion en la secuencia de codigo de memoria), el secuenciador 25 implica logica secuencial en lugar de logica combinatoria pura. Por ejemplo, si L=4096 y N=16, el secuenciador 25 puede implementarse en una realizacion como un contador de 8 bits.
En la realizacion de la Figura 2, el secuenciador 25 se proporciona tambien con un mecanismo de direccion en forma de senal de control de direccion 30. Esta senal de control de direccion 30 puede usarse para especificar una localizacion particular en la secuencia de codigo de memoria para emitir. Por lo tanto si continuamos con el ejemplo anterior, donde L=4096 y N=16, y el secuenciador 25 es un contador de 8 bits, entonces la senal de control de direccion 30 puede proporcionarse como un valor de 8 bits para cargar en el contador. En otras palabras, mientras la senal de activacion 35 incrementa el secuenciador 25 a la siguiente localizacion de codigo, la senal de control de direccion 30 puede usarse para establecer el secuenciador 25 a cualquier localizacion deseada (nueva) en el codigo. En otra realizacion, la senal de control de direccion 30 se sustituye por una lmea reset sencilla que devuelve el valor de contador en el secuenciador 25 a cero. Esta realizacion permite que la localizacion del secuenciador en el codigo se resetee, pero no permite que se especifique una localizacion arbitraria en la secuencia de memoria para el secuenciador.
Para un receptor que almacena multiples codigos de memoria, tal como diferentes codigos de memoria para diferentes satelites, hay varias configuraciones posibles para almacenar los diferentes codigos. En una implementacion, se proporciona una unidad de almacenamiento de codigo separada para cada codigo de memoria diferente. Como alternativa, podna usarse una unica unidad de almacenamiento de codigo grande para almacenar todos los codigos de memoria, usandose el mecanismo de direccionamiento 30 a continuacion para seleccionar tanto un codigo como una posicion de codigo para emitir. Una posibilidad adicional es que hayan multiples unidades de almacenamiento de codigos, almacenando cada unidad codigos de memoria algunos, pero no todos, los satelites o algunas, pero no todas, las senales - por ejemplo seis unidades de almacenamiento de codigos almacenando cada una codigos de memoria de cinco satelites o almacenando cada unidad de almacenamiento de codigo todos los codigos de memoria para un satelite, etc. Una posibilidad adicional es que un codigo de memoria unico se divida o se segmente a traves de multiples unidades de almacenamiento de codigo.
El uso de la logica combinatoria 20 para almacenar codigos de memoria incluyendo la decodificacion de direccion aprovecha el hecho de que una vez que se han definido y consolidado los codigos, pueden considerarse en general como fijos - por lo tanto no necesitan almacenarse en memorias convencionales (actualizables). El uso de logica combinatoria para almacenar o representar los codigos de memoria puede dar como resultado una reduccion considerable en complejidad en terminos de puertas y area del semiconductor, aunque a expensas de alguna flexibilidad. Sin embargo, alguna de esta flexibilidad puede mantenerse en el nivel de arquitectura, como se describe en mas detalle a continuacion.
La Figura 3 es un diagrama esquematico de un receptor 101 de acuerdo con una realizacion de la invencion. En particular, la Figura 3 ilustra la porcion de banda base de un receptor usada para obtener y rastrear una senal, mientras otras porciones convencionales (por ejemplo, antena, extremo frontal de RF, unidad de navegacion, etc.) se omiten por claridad. El receptor 101 puede proporcionarse como una unidad independiente, o puede incorporarse en algun dispositivo mayor, por ejemplo un telefono movil (celular), un ordenador, un automovil u otra forma de vetuculo, una cama de hospital, una aeronave o barco, un contenedor de carga y asf sucesivamente.
El receptor 101 incluye una unidad de almacenamiento de codigo 130, asf como un procesador de senales digitales (DSP) 120 y multiples canales de recepcion (Rx) 110A, 110B, 110C, etc. Se apreciara que los diferentes canales de recepcion procesan todos la misma senal de entrada, pero el procesamiento aplicado a la senal de entrada vana de un canal de recepcion a otro, como se describe en mas detalle a continuacion. La unidad de almacenamiento de codigo 130 se usa para almacenar el conjunto de codigos de memoria para la constelacion de satelites. En una realizacion, la unidad de almacenamiento de codigo 130, el DSP 120 y los canales de recepcion 110 se implementan como un unico dispositivo o conjunto de segmentos de semiconductores, aunque otras realizaciones pueden dividir estos componentes a traves de multiples dispositivos.
Se apreciara que el numero de codigos en un conjunto de codigos dado (y por lo tanto a almacenarse en el bloque logico 130) depende de los requisitos particulares del sistema de navegacion por satelite pertinente. Tales sistemas se designan en general para operar con algunos, 24-30, satelites diferentes, normalmente con uno o mas satelites adicionales proporcionados como repuestos potenciales en caso de fallo. Normalmente tambien hay multiples senales por satelite. Ademas, algunas senales de Galileo comprenden un piloto y un componente de datos (que puede manejarse en un unico canal de recepcion).
Se supone que la arquitectura de la Figura 3 esta disenada para recibir una unica senal por canal. Un canal puede asignarse de manera flexible a cualquier portadora y componente de senal de cualquier satelite que provenga desde el extremo frontal de RF. La unidad de almacenamiento de codigo 130 almacena los codigos usados en cualquier portadora y senal a traves de la constelacion de satelites.
5
10
15
20
25
30
35
40
45
50
55
60
65
En algunas realizaciones, el numero de codigos en un conjunto de codigos puede aumentarse para adaptar las senales de “pseudo-satelite”, que se emiten desde localizaciones terrestres, por ejemplo aeropuertos cercanos. Tales senales de pseudo-satelite aparecen a un receptor como senales de navegacion de satelite adicionales y por lo tanto pueden proporcionar una determinacion mas precisa y fiable en tales localizaciones.
La operacion general de un canal de recepcion 110 es la de que la senal de frecuencia intermedia real de entrada se convierte en una senal de banda base compleja. La senal de banda base a continuacion se mezcla con la salida de un oscilador controlado numericamente (NCO) por portadora para eliminar efectos Doppler de la senal. A continuacion la senal de entrada se correlaciona con un codigo de ensanchamiento local - es decir un codigo almacenado o generado en el receptor, la temporizacion del cual se controla mediante el codigo NCO. Los resultados de esta correlacion estan integrados para un tiempo predeterminado, y a continuacion se pasan al DSP 120. En este punto los discriminadores y filtros de bucle cercanos al respectivo bucle de portadora (bucle enganchado en frecuencia (FLL), bucle enganchado en fase (PLL)) y bucle de codigo (bucle enganchado en retardo (DLL)) con los NCO pertinentes.
Se apreciara que la operacion del receptor 101 hasta ahora descrita en general coincide con el comportamiento de receptores de navegacion por satelite existentes, tales como se usan para GPS. Pueden encontrarse detalles adicionales sobre tales receptores en el libro anteriormente mencionado por Misra y Enge. (Se apreciara tambien que por razones de claridad, ciertos detalles con respecto al receptor 101 que no son directamente pertinentes a un entendimiento de la invencion, tales como el manejo de los datos y codigos piloto, se omiten de la Figura 3).
En receptores existentes, el codigo de ensanchamiento local se genera mediante un LSFR, tal como se muestra en la Figura 1, que puede incorporarse en cada canal de recepcion 110A, 110B, etc. En contraste, el receptor de la Figura 3 usa una unidad de almacenamiento de codigo 130 (tal como se muestra en la Figura 2) para almacenar los codigos de memoria. La unidad de almacenamiento de codigo 130 recibe una senal de direccion desde el DSP 120 que determina que parte de los codigos almacenados emitir a los respectivos canales de recepcion 110. Esta direccion de salida se especifica mediante una maquina de estado finito (FSM)/controlador incluido en el DSP 120.
En la realizacion de la Figura 3, se supone que cada direccion corresponde a un fragmento de 32 segmentos de codigo de memoria en la unidad 130. Este fragmento de codigo de memoria se carga a continuacion en un registro con el canal de recepcion apropiado 110 para uso en la correlacion con la senal de entrada. La correlacion de la porcion de 32 segmentos del codigo de memoria almacenada en el registro se lleva a cabo bajo el control del codigo NCO en general de la misma manera que para sistemas existentes usando codigos de LFSR. (Un receptor existente puede considerarse como similar a la realizacion de la Figura 3, pero sin la unidad de almacenamiento de codigo 130, y con un codigo LFSR en lugar de un registro de memoria intermedia en cada canal de recepcion). Observese que otras realizaciones pueden usar una longitud de palabra diferente para lectura de datos desde la unidad de almacenamiento de codigo 130, dependiendo del numero global de canales de recepcion y el ancho de banda disponible en la interfaz de salida de la unidad de almacenamiento de codigo 130.
En general, la FSM/controlador en el DSP 120 controla la unidad de almacenamiento de codigo 130 para proporcionar un segmento de codigo de 32 segmentos a cada canal de recepcion 110 a su vez. Por lo tanto una vez que se ha suministrado un segmento de codigo de 32 segmentos al canal de recepcion 110A, la FSM/controlador realiza ciclos a traves de cada uno de los otros canales de recepcion 110B, 110C, ... 110N a su vez para proporcionales con su propio segmento de codigo. Mientras la unidad de almacenamiento de codigo 130 esta suministrando segmentos de codigo a los otros canales de recepcion, el canal de recepcion 110A correlaciona el segmento de codigo de 32 segmentos almacenado en memoria intermedia en su registro con la senal de entrada (esto se realiza normalmente un segmento a la vez). La FSM/controlador a continuacion provoca que la unidad de almacenamiento de codigo 130 emita el siguiente segmento de codigo de 32 segmentos del codigo de memoria apropiado en el registro del canal de recepcion 110A, y el ciclo continua. Por lo tanto la senal de direccion suministrada mediante la FSM/controlador a la unidad de almacenamiento de codigo 130 identifica en efecto tanto un canal de recepcion particular, y tambien una localizacion en la secuencia de codigo de memoria especificada para suministro a ese canal de recepcion.
En la mayona de los receptores, el numero de canales de recepcion 110 es menor que el numero de satelites en la constelacion. Esto refleja el hecho de que unicamente una proporcion limitada de los satelites son visibles en cualquier tiempo dado (el conjunto real de satelites por encima del horizonte desde cualquier localizacion dada cambia con el tiempo, a medida que los satelites progresan en sus orbitas).
Como se ilustra en la Figura 1, una implementacion de LFSR tfpica es generica, en que puede cargarse con el codigo polinomial para cualquier satelite deseado. Esto permite que el LFSR se incorpore en un canal de recepcion sin atar el canal de recepcion a un codigo de satelite dado. En su lugar, para una constelacion de satelites que usa codigos de Gold, cualquier canal de recepcion dado puede configurarse para recibir la senal desde cualquier satelite dado. Esto asegura que pueda mapearse un conjunto limitado de canales de recepcion mapearse en el subconjunto de estos satelites actualmente visibles por el receptor.
5
10
15
20
25
30
35
40
45
50
55
60
65
En contraste, los codigos de ensanchamiento en la unidad de almacenamiento de codigo 130 se fijan o son de conexion permanente en la logica combinatoria. Por lo tanto, para mantener la flexibilidad al asignar los canales de recepcion a los diversos satelites, el receptor 101 puede suministrar un codigo de memoria almacenado en la unidad de almacenamiento de codigo 130 a cualquier canal de recepcion dado 110 (como se especifica mediante el DSP 120). Esta facilidad conserva la capacidad de realizar una asignacion flexible de los canales de recepcion 110 a los satelites.
La Figura 4 representa una implementacion de receptor 101A de acuerdo con otra realizacion de la invencion. Observese que muchos aspectos de la realizacion de la Figura 4 son los mismos que para la realizacion de la Figura 3, por lo que la siguiente descripcion se centra en las diferencias entre las dos realizaciones.
La realizacion de la Figura 4 no tiene una unica unidad de almacenamiento de codigo, sino que en su lugar tiene un conjunto de unidades de almacenamiento de codigos 130A, 130B, ... 130N. Cada unidad de almacenamiento de codigo 130A, 130B, etc., almacena el codigo de ensanchamiento para una senal desde el satelite. Cada canal de recepcion 110 incluye un multiplexor 111, que esta conectado a la salida de cada una de las unidades de almacenamiento de codigo 130A, 130B, etc. (Por simplicidad, se muestra unicamente las conexiones desde las unidades de almacenamiento de codigo 130A, 130B, etc., al canal de recepcion 110A en la Figura 4; se proporcionan conexiones analogas desde las unidades de almacenamiento de codigo 130A, 130B, etc., a los otros canales de recepcion 110B, 110C, y asf sucesivamente). La salida desde el multiplexor 111 se pasa a continuacion a un flip-flop en el canal de recepcion 110, y desde allf, se carga el bit de codigo para correlacion con la senal de entrada de conformidad con los receptores existentes.
Una senal de control se suministra al multiplexor 111 desde un controlador en el DSP 120, y esta senal de control se usa para seleccionar una salida desde las diversas entradas al multiplexor. Se apreciara que esta configuracion permite que el controlador de DSP seleccione el codigo de memoria desde cualquier unidad de almacenamiento de codigo dada 130A, 130B, etc., para suministrar a un canal de recepcion dado 110A, 110B, etc. Por lo tanto aunque los codigos de memoria puedan considerarse como de conexion permanente en las diversas unidades de almacenamiento de codigo 130, pueden asignarse de manera flexible al conjunto de canales de recepcion (como para la realizacion de la Figura 3). En la operacion, por lo tanto, el DSP 120 controla los multiplexores 111 usando esta senal de control de modo que cada canal de recepcion 110 tiene en efecto una unidad de almacenamiento de codigo asignada 130.
El numero de canales de recepcion puede ser menor que el numero de satelites en la constelacion. Por lo tanto, para esta realizacion, el numero de canales de recepcion puede ser tambien menor que el numero de unidades de almacenamiento de codigo 130 - es decir M<N. La asignacion flexible entre el canal de recepcion 110 y la unidad de almacenamiento de codigo 130 por lo tanto permite que el DSP asigne los canales de recepcion 110 a aquellas unidades de almacenamiento de codigo que contienen codigos de ensanchamiento para los satelites que estan actualmente visibles. El soporte de tal asignacion flexible es tambien util si uno o mas satelites que fallaran se sustituyeran por satelites que usan codigos de memoria diferentes (suponiendo que los codigos de sustitucion estan tambien disponibles en las unidades de almacenamiento de codigo 130).
Cada unidad de almacenamiento de codigo 130A, 130B, etc., incluye un secuenciador que puede establecerse a una direccion de carga especificada (como se ha descrito anteriormente en relacion con la Figura 2). El secuenciador recibe una senal de incremento (activacion) para avanzar un segmento a traves del codigo de memoria para salida al multiplexor 111. En la realizacion de la Figura 4, la senal de incremento a una unidad de almacenamiento de codigo 130A, 130B, etc., se recibe a traves de un multiplexor correspondiente 131A, 131B, etc. Cada multiplexor 131A, 131B, etc., recibe una entrada desde el codigo NCO en cada uno de los canales de recepcion 110A, 110B, etc. Una senal de control similar que se suministra al multiplexor 111 se usa tambien para seleccionar una entrada para pasar a traves del multiplexor 131 como una senal de incremento a la unidad de almacenamiento de codigo 130. Por consiguiente, el codigo NCO en un canal de recepcion 110 puede solicitar (activar) el siguiente segmento de codigo para que se recupere desde la unidad de almacenamiento de codigo 130 cuya salida esta asignada a ese canal de recepcion.
En el receptor 101A, se accede al codigo de ensanchamiento un unico segmento a la vez (en lugar de 32 segmentos a la vez, como en la realizacion de la Figura 3), puesto que las diversas unidades de almacenamiento de codigo 130A, 130B, etc., pueden emitir a sus respectivos canales de recepcion 110A, 110B, etc., en paralelo entre sf. Por lo tanto cada canal de recepcion puede, en efecto, recibir un segmento de codigo bajo demanda desde su unidad de almacenamiento de codigo asignada. (En contraste, la unidad de almacenamiento de codigo 130 de la Figura 3 sirve al conjunto de canales de recepcion de manera secuencial, en una manera de tiempo compartido, por lo que cada acceso proporciona un canal de recepcion con suficientes segmentos hasta la siguiente vez que se sirve a ese canal de recepcion). Esta configuracion por lo tanto permite control independiente mediante el codigo NCO en cada canal de recepcion de la velocidad a la que se suministran los segmentos al correlador.
Se apreciara que las realizaciones de la Figura 3, donde todos los codigos de memoria se mantienen en una unica unidad de almacenamiento de codigo, y la Figura 4, donde cada codigo de memoria se mantiene en una unidad de almacenamiento de codigo separada, representan solamente dos posibles implementaciones. Por ejemplo, en otras
5
10
15
20
25
30
35
40
45
50
55
60
65
realizaciones puede haber multiples unidades de almacenamiento de codigo almacenando cada una multiples (pero no todos) codigos de memoria, mientras que en otras realizaciones, cada codigo de memoria puede extenderse a traves de multiples unidades de almacenamiento de codigo.
La Figura 5 es un diagrama de flujo que proporciona una vista general de alto nivel de produccion de una unidad de almacenamiento de codigo 130 de acuerdo con una realizacion de la invencion. El metodo comienza especificando el codigo de ensanchamiento deseado (510). Se apreciara que el metodo de la Figura 5 es generico, en que puede usarse con una secuencia de segmentos arbitraria (por ejemplo personalizada o hecha a mano) para un codigo de ensanchamiento. Esto es en contraste, por ejemplo, a implementaciones de LFSR, que unicamente pueden proporcionar un conjunto restringido de codigos de ensanchamiento - es decir aquellos codigos que pueden expresarse mediante ciertos algoritmos matematicos predeterminados.
La unidad de almacenamiento de codigo para el codigo de ensanchamiento deseado se describe usando un lenguaje de descripcion de hardware (HDL) (520). Un ejemplo de un HDL es VHDL, el Lenguaje de Descripcion de Hardware de Circuitos Integrados de Muy Alta Velocidad, que es el objeto de la Norma 1076 del IEEE. Otro ejemplo de un HDL es Verilog, que es el objeto de la Norma 1995 del IEEE. VHDL y Verilog son bien conocidos para el experto en la materia, y permiten la especificacion de la funcion y estructura para circuitos integrados.
Una vez que se ha desarrollado y compilado una descripcion de HDL de un circuito para generar el codigo de ensanchamiento deseado, puede realizarse (530) una simulacion para confirmar que el circuito se comporta como se espera. Existen muchas herramientas comercialmente disponibles para realizar una simulacion de este tipo. La descripcion de HDL puede a continuacion usarse como la entrada a un procedimiento de smtesis logica (540), que transforma la descripcion de HDL en una lista de interconexiones estructurales de componentes (elementos de biblioteca) para el circuito. La lista de interconexiones se usa como una entrada para la colocacion apropiada y herramientas de encaminamiento para obtener la distribucion para un dispositivo de semiconductores (550). Dependiendo de la tecnologfa seleccionada, el ASIC o dispositivo de semiconductores personalizado (560) puede fabricarse a continuacion o puede configurarse un campo de matriz de puertas programables (FPGA). De nuevo, se apreciara que existen herramientas comerciales convencionales para realizar una smtesis logica en un circuito descrito usando un HDL, y a continuacion transformar este en una implementacion real.
El Apendice 1 proporciona un programa de VHDL de ejemplo para implementar una unidad de almacenamiento de codigo 130 de acuerdo con una realizacion de la invencion. La unidad de almacenamiento de codigo (denominada como “codigo ca”) emite la secuencia de 64 segmentos definida como la constante “ca”. Se apreciara que pueden implementarse otras secuencias de codigo usando el mismo codigo VHDL ajustando adecuadamente el valor de la constante “ca” al patron de segmentos deseado.
El VHDL para codigo ca especifica 5 entradas y una salida para realizar las siguientes funciones:
fase - esta entrada especifica la direccion inicial del primer segmento de salida, y comprende 6 segmentos, que corresponden al intervalo de direcciones de la secuencia de 64 segmentos para ca; phset - esta entrada activa el valor de fase clk - entrada de reloj;
tictac - esta entrada se usa para indicar cuando se requiere otra salida de codigo (para correlacionar contra la
senal de entrada); observese que el tictac tiene una frecuencia mucho inferior que clk;
rstn - esta entrada resetea la direccion y la salida a cero;
codigo - esta salida representa el valor de codigo ca en la direccion pertinente.
En la operacion, el circuito especificado emite valores sucesivos desde la secuencia de segmentos para el codigo ca para cada valor de tictac, donde se usa la variable addr para mantener la direccion o posicion actual en la secuencia de segmentos. Se apreciara que el componente de direccion de este circuito es secuencial (en lugar de puramente combinacional), puesto que la direccion de salida actual se mantiene e incrementa para cada salida de segmento de codigo. Sin embargo, desde una perspectiva funcional, podemos considerar el circuito como que tiene una primera porcion para almacenar el codigo de ensanchamiento incluyendo la decodificacion de direccion, y una segunda porcion para generar la direccion y por lo tanto controlar la salida del codigo de ensanchamiento. Desde esta perspectiva, la primera porcion para almacenar el codigo de ensanchamiento y la decodificacion de direccion es combinacional, mientras que la segunda porcion para generar la direccion y control de la salida del codigo de ensanchamiento es secuencial. Se apreciara que esta distincion entre porciones combinacional y secuencial es evidente a un nivel funcional, pero al nivel de implementacion ffsica las dos porciones en general estan integradas (vease a continuacion).
El experto en la materia tendra conocimiento de diversas otras posibles especificaciones para una unidad de almacenamiento de codigo. Por ejemplo, la realizacion del Apendice 1 puede modificarse de modo que phset se define como siempre activa, caso en el que el circuito emitira el segmento de codigo definido mediante la direccion especificada por fase. En una realizacion de este tipo, no hay informacion de estado en el mismo circuito, sino que en su lugar esta informacion con respecto a la posicion en la secuencia de codigo debe mantenerse de manera externa, por ejemplo mediante el componente de circuito que proporciona la senal de fase (y que puede incrementar
5
10
15
20
25
30
35
40
45
50
a continuacion la senal de fase en consecuencia). En teona una implementacion de este tipo permitina a la unidad de almacenamiento de codigo que fuera puramente combinacional, aunque en la practica es probable que se proporcione un componente secuencial.
La Figura 6 es un ejemplo del diagrama esquematico basado en una lista de interconexiones derivada por la smtesis logica del codigo de VHDL del Apendice 1. Hay cinco entradas al circuito, que desde la parte superior hacia abajo son phset, tictac, fase (5:0), rstn y clk, mas una unica salida, codigo. El circuito comprende principalmente logica combinatoria en forma de puertas (observese que los rectangulos en la Figura 6 corresponden tambien a combinaciones de puertas). El circuito de la Figura 6 incluye tambien siete flip-flops (estos estan conectados todos a la senal de reloj en su entrada de activacion y a la entrada rstn por debajo). De estos siete flip-flops, seis se usan en efecto para mantener los seis bits de la direccion. El flip-flop restante se usa para almacenar en memoria intermedia el unico segmento de la salida del codigo, aunque en otras realizaciones esto pude omitirse. (Los flip-flops de direccion comprenden una proporcion relativamente alta de la distribucion de la Figura 6 debido a que el codigo es corto - unicamente 64 segmentos; para codigos mas largos los flip-flops de direccion comprendenan proporcionalmente menos del circuito). La lista de interconexiones de la Figura 6 puede usarse como entrada para una determinacion de la colocacion y encaminamiento del componente, seguido por una operacion de produccion de semiconductores (que corresponde a las operaciones 550 y 560 respectivamente en la Figura 5). La produccion de semiconductores puede conseguirse mediante cualquier metodo apropiado, tal como litograffa del dispositivo real, configuracion de un FPGA, etc.
Se apreciara que el diagrama esquematico particular de la Figura 6 (incluyendo las combinaciones de puertas que corresponden a los rectangulos de circuito) es espedfico a la tecnologfa de un fabricante particular para un cierto tipo de dispositivo, segun se especifica por diversas bibliotecas que pueden vincularse durante la smtesis logica. (Las bibliotecas espedficas de fabricante pueden usarse tambien para la colocacion y encaminamiento de circuitos). Por lo tanto para la Figura 6, el fabricante es Amtel, una comparua que realiza fabricacion por contrato de dispositivos de semiconductores, y la distribucion esta adaptada para un ASIC. Usar tecnologfa de otros fabricantes conducira a una lista de interconexiones y distribucion diferentes para implementar el circuito de VHDL del Apendice 1. Por consiguiente, la Figura 6 se proporciona unicamente como un diagrama esquematico amplio para ilustrar un resultado de smtesis logica, y su estructura detallada no es importante para un entendimiento de la presente invencion.
El uso de logica combinatoria para almacenar codigos de ensanchamiento puede conducir a un ahorro significativo en puertas en comparacion con una implementacion de memoria convencional basada en flip-flops o celulas de RAM estatica u otras arquitecturas de memoria convencionales similares de este tipo.
Tabla 1: requisitos de circuito para almacenamiento de codigo
Codigo
Registros Area en |im2 Puertas NAND equivalentes
Gal L1 4096 memoria
4096+12 79300 6344
Gal L1 4096 combinatoria
13 13745 1078
Gal E5A 10230 memoria
10230+14 194312 15545
Gal E5A 10230 combinatoria
15 27565 2514
GPS 1023 codigo LFSR
74 8282 663
GPS 1023 combinatoria
1023+10 21681 1735
GPS 1023 combinatoria
13 5400 432
La primera y tercera filas de la Tabla 1 corresponden a las estimaciones para una implementacion de memoria “convencional” (RAM estatica) para mantener un codigo de ensanchamiento, segun se ha derivado anteriormente para las senales L1 y E5a de Galileo respectivamente. La segunda y cuarta filas de la Tabla 1 corresponden a una implementacion basada en logica combinatoria usando smtesis logica, tal como se ha descrito anteriormente en relacion con las Figuras 5 y 6. Se observara a partir de la Tabla 1 que el uso de logica combinatoria proporciona un ahorro muy sustancial del 80 % o mayor en terminos de registros (flip-flops), puertas y area de circuito en comparacion con una implementacion de memoria convencional.
Observese que los numeros en las filas dos y cuatro de la Tabla 1 reflejan la salida desde smtesis logica (suponiendo una implementacion de ASIC), y debena considerarse de esta manera como implementaciones potenciales genuinas, en lugar de meras estimaciones. Se apreciara por supuesto que estos numeros variaran ligeramente para otras implementaciones potenciales, por ejemplo usando tecnologfa de diferentes fabricantes, FPGA en lugar de ASIC, y asf sucesivamente. Por ejemplo, puede ser posible proporcionar una implementacion incluso mas compacta usando una implementacion de VLSI completamente personalizada. Por supuesto, una implementacion de VLSI personalizada de este tipo sena significativamente mas cara que usar un FPGA o ASIC, aunque puede ser comercialmente viable para receptores de mercado masivo.
5
10
15
20
25
30
35
40
45
50
55
60
65
Las tres filas finales de la Tabla 1 se refieren a un codigo CA de 1023 segmentos usado para GPS. La sexta y septima filas de la Tabla 1 representan almacenar este codigo en memoria convencional y usar logica combinatoria respectivamente. De nuevo puede observarse que el uso de logica combinatoria para almacenar los codigos de memoria da como resultado un ahorro significativo de puertas y area de circuito. La quinta columna de la Tabla 1 presenta cifras para una implementacion real del codigo de ensanchamiento de 1023 segmentos usando un LFSR (puesto que los codigos de GPS son codigos de Gold). Se observara que la complejidad de implementacion relacionada a la logica combinatoria es del mismo orden que la implementacion de LFSr (que requiere un numero de registros relativamente alto), y en este caso espedfico, es incluso mas compacta. Por consiguiente, es potencialmente atractivo el uso de logica combinatoria para almacenar codigos de ensanchamiento incluso para codigos de Gold y otros codigos generados matematicamente.
Se apreciara que usar logica combinatoria para almacenar codigos da como resultado codigos que estan, en efecto, con conexion permanente en el receptor. Sin embargo, en la practica el conjunto de codigos de ensanchamiento para una constelacion de satelites es probable que sea estable durante muchos anos (este ha sido ciertamente el caso con GPS). En estas circunstancias, es en general mas importante poder asignar de manera flexible los codigos de ensanchamiento a diferentes canales de recepcion que poder cambiar los codigos de ensanchamiento ellos mismos. El primer aspecto puede adaptarse con receptores que incluyen logica combinatoria para almacenar los codigos de ensanchamiento, como se ha descrito anteriormente en relacion con las Figuras 3 y 4.
Un receptor puede proporcionarse con codigos almacenados para al menos un par de satelites que estan designados como repuestos (ademas de los codigos para la constelacion principal de satelites). Estos satelites de sustitucion se pondnan a continuacion en la constelacion de navegacion si cualquiera del conjunto original de satelites fallara. Suponiendo que los codigos asignados a los satelites de sustitucion se conocen con antelacion, pueden almacenarse tambien en el receptor usando logica combinatoria, y conectarse segun sea apropiado, por ejemplo como se ha descrito anteriormente en relacion con las Figuras 3 y 4. En otras realizaciones, puede proporcionarse un receptor con memoria convencional, tal como PROM o RAM, que podna a continuacion cargarse con cualquier codigo de ensanchamiento de satelite nuevo (para funcionar en conjunto con aquellos mantenidos en la unidad o unidades de almacenamiento de codigo descritas en el presente documento).
En algunas implementaciones, un receptor puede almacenar codigos de ensanchamiento para al menos dos constelaciones de satelites, por ejemplo Galileo y GPS, para proporcionar informacion de posicion combinada. Aunque los codigos de ensanchamiento de GPS son codigos de Gold, y se generan normalmente en un receptor usando LFSR, los codigos podnan almacenarse en su lugar como patrones de segmento completos usando logica combinatoria si asf se desea (a diferencia de usar un LFSR, que en efecto almacena un algoritmo para generar un patron de segmento, en lugar del propio patron de segmento). Como se indica a partir de la Tabla 1, el uso de logica combinatoria para almacenar codigos de GPS completos puede de hecho conducir a una implementacion mas compacta que una basada en LFSR. Por consiguiente, el uso de logica combinatoria para mantener codigos de ensanchamiento es compatible con patrones de codigo espedficos o hechos a mano asf como patrones de codigo convencionales derivados de algoritmos matematicos, tales como aquellos basados en codigos de Gold. Se apreciara tambien que la logica combinatoria puede usarse para mantener las porciones de codigo primario y/o codigo secundario de un codigo de ensanchamiento, o para mantener una secuencia de bits completa que representa la combinacion resultante de los codigos primario y secundario.
La logica combinatoria para almacenar un codigo de ensanchamiento puede incorporarse no unicamente en un receptor, sino tambien en un satelite. En este caso, la logica combinatoria se usa para almacenar el codigo de ensanchamiento para uso en la senal a difundirse a la Tierra. Sin embargo, en general el enfoque descrito en el presente documento es mas atractivo para receptores que para satelites. Por lo tanto los satelites unicamente necesitan almacenar su propio codigo de ensanchamiento (en lugar de los codigos de ensanchamiento para toda la constelacion), de modo que la presion en las instalaciones de almacenamiento es menos aguda para los satelites que para los receptores. Adicionalmente, cada satelite requerina una unidad de almacenamiento de codigo diferente particular para su propio codigo de almacenamiento. Esto aumenta los problemas de complejidad adicionales para validacion y fabricacion de hardware, en comparacion con una arquitectura de memoria convencional, en la que un conjunto convencional de celulas de memoria puede usarse en todos los satelites, y a continuacion cargarse con el codigo de ensanchamiento deseado segun sea apropiado. Ademas, los satelites no son dispositivos de mercado de masas, y por lo tanto no se ven sometidos a las mismas restricciones de coste que los receptores.
Se observara tambien que aunque el enfoque descrito en el presente documento se pretende principalmente para uso en sistemas de navegacion por satelite, podna emplearse tambien en otros sistemas de navegacion o de comunicacion (satelite, terrestre mantima) que actualmente usan LFSR para generar codigos de sincronizacion, filtros, bancos de filtros y similares. Un ejemplo particular es un pseudo-satelite, como se ha mencionado anteriormente, que genera una senal de posicionamiento analoga a la de un satelite de navegacion, pero es terrestre. Los pseudo-satelites se emplean tfpicamente en localizaciones donde se requiere alta precision, por ejemplo alrededor de los aeropuertos, para aumentar (y emular) senales de posicionamiento desde satelites. Por consiguiente, los codigos de ensanchamiento para senales de pseudo-satelite podnan almacenarse en receptores (y/o posiblemente los mismos pseudo-satelites) usando logica combinatoria como se describe en el presente documento.
5
10
15
20
25
30
35
40
45
50
En conclusion, aunque se ha descrito una diversidad de realizaciones en el presente documento, estas se proporcionan a modo de ejemplo unicamente, y muchas variaciones y modificaciones sobre tales realizaciones seran evidentes para el experto en la materia y caeran dentro del alcance de la presente invencion, que se define mediante las reivindicaciones adjuntas y sus equivalentes.
Apendice 1
-- Fichero : ca.vhd (codigos de memoria de Galileo)
-- Descripcion: LUT preprogramada para codigo ca
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cacode is port (
phase : in std_logic_vector(5 downto 0); -- fase de codigo inicial
phset : in std_logic; -- preestablecer la fase
clk : in std_logic; -- reloj
rstn : in std_logic; -- resetear
tick : in std_logic; -- tictac de segmento
code : out std_logic); -- salida de codigo
end cacode;
architecture rtl of cacode is
signal addr : std logic vector(5 downto 0); -- fase de codigo
constant ca: std logic vector(0 to 63) := (
0'
'1', '1' , '0', '1', '1', > -1 t \ -1 t 1 , 1 , '1', o o o '1', '1
0'
f \ -1 t , '1', '0', '1' , '1', '0', '1', '1', '0', '0', o o I-1 '1', '0
1'
'1', '1', '1', '0', '1', '1', '0', '0', o o o '1', '0
1'
'1', '0', '0', '1', '0', > -1 t \ -1 t 1 , 1 , '1', '0', '1', '1', '1', '0
1'
, '0', '1', '0');
begin -- rtl (nivel de transferencia de registro)
readcode: process (clk, rstn)
begin -- codigo de lectura de proceso
if rstn = '0' then -- reseteo asincrono (activo bajo) addr <= (others => '0'); code <= '0';
elsif clk'event and clk = '1' then -- elevar limite de reloj if phset = '1' then -- preestablecer la fase de codigo addr <= phase; elsif tick = '1' then
if addr >= 63 then -- ajustar contador addr <= (others => '0'); else -- incrementar contador addr <= addr + 1; end if; end if;
code <= ca(conv_integer(addr)); end if;
end process readcode; end rtl;

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Un receptor (101) para uso con un sistema de navegacion por satelite que comprende una constelacion de multiples satelites en la que cada satelite transmite una senal que incorpora un codigo de ensanchamiento, incluyendo el receptor:
    al menos una unidad de almacenamiento de codigo (15) que incluye logica combinatoria (20) para almacenar un codigo de memoria que comprende un patron fijo de segmentos, correspondiendo dicho codigo de memoria almacenado a un codigo de ensanchamiento incorporado en una senal transmitida desde un satelite, en el que dicha logica combinatoria incluye funcionalidad de decodificacion de direccion para recuperar una porcion especificada del codigo de memoria almacenado, en el que la configuracion de hardware interna de dicha logica combinatoria se personaliza para el conjunto de datos almacenados; y
    un correlador para realizar una correlacion entre una senal de entrada y el codigo de memoria almacenado recuperado desde la al menos una unidad de almacenamiento de codigo;
    caracterizado por que la configuracion de hardware interna de dicha logica combinatoria no comprende celulas de memoria normalizadas y la logica combinatoria para almacenar el codigo de memoria y la funcionalidad de direccion estan integradas en el nivel de componente ffsico sin division evidente entre las dos.
  2. 2. El receptor de la reivindicacion 1, en el que el receptor almacena un codigo de memoria diferente para cada satelite en la constelacion de satelites.
  3. 3. El receptor de la reivindicacion 2, en el que los diferentes codigos de memoria para los satelites se almacenan todos en una unica unidad de almacenamiento de codigo.
  4. 4. El receptor de la reivindicacion 2 o 3, en el que dicha al menos una unidad de almacenamiento de codigo almacena codigos de memoria para multiples satelites y es direccionable para emitir un codigo de memoria para un satelite particular.
  5. 5. El receptor de la reivindicacion 2, en el que cada codigo de memoria para una senal desde un satelite se almacena en una unidad de almacenamiento de codigo separada.
  6. 6. El receptor de cualquiera de las reivindicaciones 2 a 5, en el que el receptor incluye multiples canales de recepcion (110A, 110B), y un codigo de memoria almacenado para un satelite puede suministrarse a cualquier canal de recepcion para correlacion con la senal de entrada en ese canal de recepcion.
  7. 7. El receptor de cualquier reivindicacion anterior, en el que dicha al menos una unidad de almacenamiento de codigo incluye adicionalmente un secuenciador (25).
  8. 8. El receptor de la reivindicacion 7, en el que dicho secuenciador es sensible a una senal de incremento para emitir el siguiente subconjunto de uno o mas segmentos desde el codigo de memoria almacenado.
  9. 9. El receptor de cualquiera de las reivindicaciones 1 a 8, en el que cada salida desde la al menos una unidad de almacenamiento de codigo comprende un subconjunto que representa multiples segmentos de dicho codigo de memoria almacenado.
  10. 10. El receptor de cualquier reivindicacion anterior, en el que los codigos de ensanchamiento para los satelites comprenden secuencias de segmentos hechas a mano.
  11. 11. El receptor de cualquier reivindicacion anterior, en el que dicha al menos una unidad de almacenamiento de codigo se forma en un dispositivo de campo de matriz de puertas programables (FPGA) o en un circuito integrado espedfico de la aplicacion (ASIC).
  12. 12. El receptor de cualquier reivindicacion anterior, en el que dicha al menos una unidad de almacenamiento de codigo se forma en el mismo dispositivo de semiconductores que dicho correlador.
  13. 13. El receptor de cualquier reivindicacion anterior, en el que la logica combinatoria en la al menos una unidad de almacenamiento de codigo almacena multiples codigos de memoria, y se aplica una entrada diferente a la logica combinatoria para seleccionar uno diferente de dichos multiples codigos de memoria para emitir desde la unidad de almacenamiento de codigo.
  14. 14. Un satelite para uso en un sistema de navegacion por satelite que comprende una constelacion de multiples satelites, en la que cada satelite transmite una senal que incorpora un codigo de ensanchamiento, incluyendo el satelite al menos una unidad de almacenamiento de codigo que incluye logica combinatoria para almacenar un codigo de memoria que comprende un patron fijo de segmentos, correspondiendo dicho codigo de memoria almacenado a un codigo de ensanchamiento a incorporarse en una senal transmitida desde el satelite, en el que
    dicha logica combinatoria incluye funcionalidad de decodificacion de direccion para recuperar una porcion especificada del codigo de memoria almacenado, en el que la configuracion de hardware interna de dicha logica combinatoria se personaliza para el conjunto de datos almacenados; caracterizado por que la configuracion de hardware interna de dicha logica combinatoria no comprende celulas de memoria normalizadas y la logica 5 combinatoria para almacenar el codigo de memoria y la funcionalidad de direccion estan integradas en el nivel de componente ffsico sin division evidente entre las dos.
  15. 15. Un metodo para operar un receptor para uso con un sistema de navegacion por satelite que comprende una constelacion de multiples satelites, en la que cada satelite transmite una senal que incorpora un codigo de 10 ensanchamiento, incluyendo el metodo:
    proporcionar al menos una unidad de almacenamiento de codigo que incluye logica combinatoria para almacenar un codigo de memoria que comprende un patron fijo de segmentos, correspondiendo dicho codigo de memoria almacenado a un codigo de ensanchamiento incorporado en una senal transmitida desde un satelite, en el que 15 dicha logica combinatoria incluye funcionalidad de decodificacion de direccion para recuperar una porcion
    especificada del codigo de memoria almacenado, en el que la configuracion de hardware interna de dicha logica combinatoria se personaliza para el conjunto de datos almacenados; y
    realizar una correlacion entre una senal de entrada y el codigo de memoria almacenado recuperado desde la al menos una unidad de almacenamiento de codigo;
    20
    caracterizado por que la configuracion de hardware interna de dicha logica combinatoria no comprende celulas de memoria normalizadas y la logica combinatoria para almacenar el codigo de memoria y la funcionalidad de direccion estan integradas en el nivel de componente ffsico sin division evidente entre las dos.
ES06707601.8T 2006-03-09 2006-03-09 Un receptor y transmisor para uso en un sistema de navegación por satélite Active ES2628540T3 (es)

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 (1)

Publication Number Publication Date
ES2628540T3 true ES2628540T3 (es) 2017-08-03

Family

ID=37216090

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06707601.8T Active ES2628540T3 (es) 2006-03-09 2006-03-09 Un receptor y transmisor para uso en un sistema de navegación por satélite

Country Status (12)

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

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伪码生成装置
WO2016027727A1 (ja) * 2014-08-20 2016-02-25 ソニー株式会社 全地球航法衛星システムの受信装置および受信方法、並びにプログラム
US10845488B2 (en) * 2014-10-21 2020-11-24 Topcon Positioning Systems, Inc. Universal multi-channel GNSS signal receiver
EP3104195A1 (en) 2015-06-10 2016-12-14 European Space Agency Method and apparatus for tracking a binary offset carrier navigation signal
WO2019020201A1 (en) 2017-07-28 2019-01-31 European Space Agency RECEIVER AND METHOD FOR PROCESSING A BROADBAND SIGNAL
US11994598B2 (en) 2018-05-24 2024-05-28 European Space Agency Method and apparatus for performing joint channel and time estimation in a GNSS receiver
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 (16)

* 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
FI982203A (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
WO2001050147A1 (en) * 1999-12-30 2001-07-12 Morphics Technology, Inc. A configurable code generator system for spread spectrum applications
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
CN101443675B (zh) 2013-01-02
KR20090010027A (ko) 2009-01-28
CA2643713C (en) 2013-09-03
KR101184269B1 (ko) 2012-09-21
JP2009529814A (ja) 2009-08-20
CA2643713A1 (en) 2007-09-13
JP5781260B2 (ja) 2015-09-16
US8218601B2 (en) 2012-07-10
HK1129464A1 (en) 2009-11-27
CN101443675A (zh) 2009-05-27
BRPI0621450A2 (pt) 2012-10-09
US20090147835A1 (en) 2009-06-11
RU2438145C2 (ru) 2011-12-27
EP1991881A1 (en) 2008-11-19
BRPI0621450B1 (pt) 2019-05-07
WO2007101454A1 (en) 2007-09-13
PL1991881T3 (pl) 2017-12-29
RU2008139800A (ru) 2010-04-20
EP1991881B1 (en) 2017-05-03

Similar Documents

Publication Publication Date Title
ES2628540T3 (es) Un receptor y transmisor para uso en un sistema de navegación por satélite
WO2013023669A1 (en) A navigation system using spreading codes based on pseudo-random noise sequences
US8593345B2 (en) Signal processing system for satellite positioning signals
US8138972B2 (en) Signal processing system for satellite positioning signals
US8035555B2 (en) Spreading codes for a satellite navigation system
WO2007071810A1 (en) Performing a correlation in reception of a spread spectrum signal
EP3401704A1 (en) Efficient detection of ranging code correlation function of gnss signal
US20210063583A1 (en) Universal multi-channel gnss signal receiver
TWI390230B (zh) 提供用於多個實體通道之碼之方法以及碼記憶體
WO2016064294A1 (en) Universal multi-channel gnss signal receiver
JP4137623B2 (ja) 汎用prn符号発生回路および汎用測位用受信機
US5068872A (en) Apparatus and method for short cycling sequences of a p-code generator
US10241212B2 (en) Methods and receivers for processing GNSS signals
JP2014161012A (ja) 衛星ナビゲーション・システムに使用するための受信機および送信機
Gold et al. A Software GPS Receiver Application for Embedding in Software Definable Radios
US7184461B2 (en) High speed precision pseudo random noise shift control for fast multiple channel global positioning system signal re-tracking
RU2118054C1 (ru) Приемник спутниковых радионавигационных систем
Coelho Software defined GPS/Galileo receiver
Ffoulkes-Jones et al. NAVAJO GPS ASIC The Ultimate Single Chip Baseband
SAVOIA Navigation software development for application on LEO satellites
Thor Evaluation of a reconfigurable computing engine for digital communication Applications
Giles et al. A complete GPS time solution or precision GPS, in 1¼" cu in.