MX2008010827A - Metodo y aparto para busqueda de espacio de codigo en un receptor. - Google Patents

Metodo y aparto para busqueda de espacio de codigo en un receptor.

Info

Publication number
MX2008010827A
MX2008010827A MX2008010827A MX2008010827A MX2008010827A MX 2008010827 A MX2008010827 A MX 2008010827A MX 2008010827 A MX2008010827 A MX 2008010827A MX 2008010827 A MX2008010827 A MX 2008010827A MX 2008010827 A MX2008010827 A MX 2008010827A
Authority
MX
Mexico
Prior art keywords
coherent
search
integration
memory
buffer
Prior art date
Application number
MX2008010827A
Other languages
English (en)
Inventor
Douglas Grover
Christopher Patrick
Kai Tang
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of MX2008010827A publication Critical patent/MX2008010827A/es

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

Landscapes

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

Abstract

Aquí se describe un aparato y métodos para ejecutar búsqueda de espacio de código de señales recibidas; una búsqueda de espacio de código se ejecuta como un buscador (220) que ejecuta una subtarea que es dinámicamente reconfigurable en cada límite de un tiempo de integración inicial; cada subtarea particular establece una configuración programable de hipótesis de integración coherente que son ejecutadas durante el tiempo de integración inicial; el buscador almacena los resultados de la hipótesis de integración coherente en una primera porción de la memoria; un acelerador de búsqueda (250) opera sobre los resultados de integración inicial; el acelerador de búsqueda puede ejecutar la integración coherente de varios depósitos de frecuencia de diferentes hipótesis de temporización, puede generar valores de energía de los resultados de integración coherente, y puede generar una suma de energía no coherente; los valores de energía de las integraciones coherentes y las sumas de energía no coherente son almacenados en una segunda porción de memoria; la capacidad para reconfigurar las subtareas y la operación del acelerador proporciona flexibilidad en dimensiones de espacio de búsqueda.

Description

METODO Y APARATO PARA BUSQUEDA DE ESPACIO DE CODIGO EN UN RECEPTOR CAMPO DE LA INVENCION La presente descripción se refiere a la ubicación de posición de un dispositivo de comunicación inalámbrica. De manera más particular, la presente descripción se refiere a un sistema Reconfigurable para búsqueda de espacio de código en un dispositivo de comunicación inalámbrica.
ANTECEDENTES DE LA INVENCION Muchos sistemas de comunicación inalámbrica utilizan espectro de esparcimiento de secuencia directa para comunicar información. Los códigos utilizados para esparcir una señal típicamente son códigos pseudoaletorios . Por lo regular, un receptor recupera la información subyacente correlacionando el código de esparcimiento con un código localmente generado. En ocasiones, un receptor puede utilizar una compensación de tiempo asociada con los códigos para establecer una referencia de tempori zación que se puede utilizar para ejecutar ubicación de posición. La determinación de la posición con base en la temporización establecida a partir de las señales de esparcimiento pseudoaleatorias se realiza en diversos sistemas de ubicación de posición. Por ejemplo, el Sistema de Navegación de Sistema de Posicionamiento Global (GPS) emplea satélites que están en órbita alrededor de la Tierra. Cualquier usuario de GPS, en cualquier parte sobre la Tierra, puede derivar información de navegación precisa incluyendo una posición tridimensional, velocidad y hora del día. El sistema GPS incluye 24 satélites que están desplegados en órbitas circulares con radios de 26,600 kilómetros en tres planos inclinados a 55° con respecto al Ecuador y separado 120° con respecto entre si. Ocho satélites están separados a una distancia igual dentro de cada una de las tres trayectorias de órbita. Las mediciones de posición que utilizan GPS se basan en mediciones de tiempos de retraso de propagación de señales GPS transmitidas desde los satélites en órbita a un receptor GPS. Normalmente, la recepción de señales desde 4 satélites se requiere para la determinación de posición precisa en 4 dimensiones (latitud, longitud, altitud y tiempo) . Una vez que el receptor ha medido los retrasos de propagación de señal respectivos, se calcula el rango para cada satélite multiplicando cada retraso por la velocidad de la luz. Después, se encuentra la ubicación y hora resolviendo un conjunto de cuatro ecuaciones con cuatro factores desconocidos que incorporan los rangos medidos y las ubicaciones conocidas de los satélites. Las capacidades precisas del sistema GPS se mantienen por medio de relojes atómicos a bordo para cada satélite y mediante estaciones de rastreo en suelo que de manera continua monitorean y corrigen el reloj del satélite y los parámetros de órbita. Cada satélite GPS transmite dos señales de espectro disperso de secuencia directa codificada en la banda L. Una señal Ll a una frecuencia de portadora de 1.57542 GHz, y una señal L2 a una frecuencia de 1.2276 GHz. La señal Ll consta de dos señales de espectro dispersos de desplazamiento de fase (PSK) moduladas en cuadratura de fase. La señal de código P (P para precisión), y la señal de código C/A (C/A para áspero/adquisición) . La señal L2 contiene únicamente la señal de código P. Los códigos P y C/A son secuencias pseudoaleatorias repetitivas de bits (también denominadas como "chips") que son moduladas en las portadoras. La naturaleza tipo reloj de estos códigos es utilizada por el receptor para realizar las mediciones de retraso de tiempo. Los códigos para cada satélite son únicos, permitiendo al receptor distinguir cuál satélite transmitió un código determinado, incluso cuando todos están a la misma frecuencia de portadora. También modulada sobre cada portadora, se encuentra una corriente de datos de 50 bits/segundo que contiene información referente al estado del sistema y a los parámetros de la órbita satelital, los cuales son necesarios para los cálculos de navegación. Las señales del código P son encriptadas, y por lo general no están disponibles para usuarios comerciales y privados. La señal C/A está disponible para todos los usuarios. Las operaciones ejecutadas en un receptor GPS son en su mayoría típicas de aquellas ejecutadas en cualquier receptor de espectro disperso de secuencia directa. El efecto de esparcimiento de la modulación del código pseudoaleatorio se puede remover de cada señal multiplicándola por una copia del código localmente generada alineada en tiempo, en un proceso conocido como desensanchamiento. Debido a que la alineación de tiempo apropiada, o retraso de código, es poco probable que sea conocida en el arranque del receptor, se debe determinar buscando durante la fase de "adquisición inicial" de una operación del receptor GPS. Una vez que se determina, la alineación en tiempo de código apropiada se mantiene durante la fase de "rastreo" de la operación del receptor GPS. Una vez que la señal recibida es desensanchada, cada señal consta de una señal PSK de 50 bits/segundo a una frecuencia de portadora intermedia. La frecuencia exacta de esta señal es incierta debido al efecto Doppler causado por el movimiento relativo entre el satélite y la unidad terminal, y al error de referencia de reloj GPS del receptor local. Durante la adquisición de señal inicial, este efecto Doppler también debe ser buscado, debido a que por lo general es desconocido previo a la adquisición. Una vez que se determina en forma aproximada la frecuencia Doppler, continúa la desmodulación de portadora. Después de la desmodulación de portadora, se deriva la tempori zación de los bits de datos mediante un bucle de sincronización de bits y por último se detecta la corriente de datos. Se lleva a cabo un cálculo de navegación una vez que las señales provenientes de los 4 satélites han sido adquiridas y aseguradas, una vez que se han realizado las mediciones Doppler y de retraso de tiempo necesarias, y una vez que se ha recibido un número de bits de datos (los suficientes para determinar los parámetros de órbita y referencia de tiempo GPS) . Un inconveniente del sistema GPS para la determinación de ubicación, es el largo tiempo necesario para la fase de adquisición de señal inicial. Tal como se mencionó anteriormente, antes que las 4 señales del satélite puedan ser rastreadas, éstas deben ser buscadas en un "espacio" de búsqueda bidimensional , cuyas dimensiones son retraso de fase de código, y desplazamiento de frecuencia Doppler. Por lo regular, si no existe un conocimiento previo de la ubicación de una señal dentro de este espacio de búsqueda, tal como seria el caso después de un "inicio en frío" del receptor, un número grande de retrasos de código (aproximadamente 2000) y frecuencias Doppler (aproximadamente 15) deben ser buscadas en cada satélite que va a ser adquirido y rastreado. Por lo tanto, para cada señal, se deben examinar hasta 30,000 ubicaciones en el espacio de búsqueda. Por lo regular, estas ubicaciones son examinadas una a la vez en secuencia, un proceso que puede tomar de 5 a 10 minutos. El tiempo de adquisición además es alargado en caso que las identidades (es decir, códigos PN) de los cuatro satélites dentro de la vista de la antena de recepción sean desconocidas. En el caso donde un receptor GPS ya ha adquirido las señales satelitales y está entonces en el modo de rastreo, el proceso de determinación de posición es virtualmente instantáneo. Sin embargo, en el uso de rutina de terminales inalámbricas, el usuario enciende la energía y rápidamente comienza la operación. Éste puede ser el caso cuando se pretende una comunicación de emergencia . En dichas situaciones, el retraso de tiempo asociado con un arranque en frío de adquisición de señal satelital GPS de 5 a 10 minutos por una unidad de terminal inalámbrica/GPS antes que se pueda obtener una posición fija, limita el tiempo de respuesta del sistema . Por lo tanto, persiste la necesidad en la técnica de un sistema y método para reducir el tiempo que se requiere para adquirir señales satelitales GPS y proporcionar una posición fija en una unidad de terminal inalámbrica /GPS .
SUMARIO DE LA INVENCION Aquí se describen aparatos y métodos para ejecutar la búsqueda de espacio de código de señales recibidas. Una búsqueda de espacio de código se ejecuta como un buscador que realiza una subtarea que es dinámicamente reconf igurable en cada límite de un tiempo de integración inicial. Cada subtarea particular establece una configuración programable de hipótesis de integración coherentes que son ejecutadas durante el tiempo de integración inicial. El buscador almacena los resultados de las hipótesis de integración coherentes en una primera porción de la memoria. Un acelerador de búsqueda opera sobre los resultados de integración iniciales. El acelerador de búsqueda puede ejecutar la integración coherente de varios depósitos de frecuencia de diferentes hipótesis de temporización, puede generar valores de energía de los resultados de integración coherente, y puede generar una suma de energía no coherente. Los valores de energía de las integraciones coherentes y las sumas de energía no coherentes son almacenados en una segunda porción de la memoria. La capacidad para reconfigurar las subtareas y la operación del acelerador proporciona flexibilidad en dimensiones de espacio de búsqueda. Aspectos de la invención incluyen un aparato para búsqueda de espacio de código. El aparato incluye una memoria, un buscador configurado para ejecutar una pluralidad de tareas programables y generar para cada tarea programable una pluralidad de resultados de integración coherente obtenidos sobre un periodo de tiempo de integración inicial, un acelerador configurado para determinar por lo menos una acumulación coherente de los resultados de integración del buscador con base en una o más longitudes de integración coherente y compensaciones de frecuencia determinadas por un modo de búsqueda seleccionadle, y un desplazador de datos configurado para transferir los resultados de integración desde el buscador a la memoria, y configurado para transferir los resultados de integración de la memoria al acelerador. Aspectos de la invención incluyen un aparato para búsqueda de espacio de código. El aparato incluye una memoria que tiene una porción asignada a la búsqueda de espacio de código, la porción depende de un modo de búsqueda programable activo, y un circuito integrado acoplado a la memoria. El circuito integrado incluye un buscador configurado para generar una pluralidad de resultados de integración coherente determinados sobre un periodo de integración inicial para cada una de una pluralidad de tareas de búsqueda programables , un acelerador configurado para determinar una acumulación coherente de resultados de integración coherente sobre una longitud de integración coherente e hipótesis de frecuencia determinadas por el modo de búsqueda programable activo, y un desplazador de datos configurado para ejecutar transferencias de datos DMA entre el buscador y la memoria y entre el acelerador y la memoria. Aspectos de la invención incluyen un método de búsqueda de espacio de código. El método incluye capturar muestras complejas de una señal inalámbrica recibida, configurar una pluralidad de tareas de búsqueda de espacio de código, ejecutar cada una de las tareas de búsqueda de espacio de código para generar una pluralidad de resultados de integración coherente obtenidos sobre un tiempo de integración inicial, y determinar una acumulación coherente de una pluralidad de resultados de integración coherente, una longitud de integración y compensación de frecuencia asociadas con la acumulación coherente con base en un modo de búsqueda de espacio de código programable. Aspectos de la invención incluyen un método de búsqueda de espacio de código. El método incluye capturar muestras complejas de una señal inalámbrica recibida, ejecutar cada una de una pluralidad de tareas de búsqueda de espacio de código para generar una pluralidad de resultados de integración coherente correspondientes a una pluralidad de hipótesis de espacio de código, almacenar la pluralidad de resultados de integración coherente en memoria, recuperar desde la memoria un número de resultados de integración coherente correspondientes a una longitud de integración, y determinar una acumulación coherente del número de resultados de integración coherente.
BREVE DESCRIPCION DE LAS FIGURAS Las características, objetivos y ventajas de las modalidades de la descripción serán más aparentes a partir de la siguiente descripción detallada cuando se considere en conjunto con las figuras, en donde elementos similares portan números de referencia similares . La figura 1 es un diagrama en bloques simplificado de una modalidad de un sistema de comunicación inalámbrica que soporta ubicación de posición . La figura 2 es un diagrama en bloques funcional simplificado de una modalidad de un sistema de procesamiento de señal de ubicación de posición que ejecuta búsqueda de espacio de código. La figura 3 es un diagrama en bloques funcional simplificado que ilustra una modalidad del flujo de datos en un receptor que ejecuta búsqueda de espacio de código. La figura 4 es un diagrama de flujo de una modalidad de un método de búsqueda de espacio de código. La figura 5 es un diagrama en bloques funcional simplificado de una modalidad de un sistema de procesamiento de señal de ubicación de posición que ejecuta búsqueda de espacio de código.
DESCRIPCION DETALLADA DE LA INVENCION Sistemas dinámicamente reconfigurables asi como métodos de búsqueda de espacio de código para la adquisición de señal y rastreo en ambientes de comunicación inalámbrica se describen en este documento. El sistema reconfigurable incluye una memoria de muestras configurada para almacenar muestras sobre uno o más incrementos de búsqueda. Un buscador reconfigurable tiene acceso a las muestras almacenadas para realizar búsqueda de espacio de código e integración coherente. El buscador reconfigurable incluye múltiples correlacionadores que pueden ser configurados de manera dinámica para soportar cualquiera de un número predeterminado de canales. La configuración del buscador y la asignación de los correlacionadores a los canales se pueden actualizar cada incremento de búsqueda. Los correlacionadores pueden generar resultados de correlación para cada una de las asignaciones de canal correspondientes y el buscador puede escribir los resultados en el almacenamiento. El tamaño del almacenamiento puede ser reasignado de manera dinámica, con base en un tiempo de integración coherente deseado. Un desplazador de datos tiene acceso al dispositivo de almacenamiento y transfiere los resultados del buscador a una memoria intermedia de muestras. La memoria intermedia de muestras se puede configurar como una memoria intermedia doble, que tiene una primera porción de memoria intermedia de muestras y una segunda porción de memoria intermedia de muestras. El desplazador de datos de manera alternativa escribe a una de la primera o segunda porciones de memoria intermedia para permitir la lectura concurrente de la porción de memoria intermedia que no está siendo escrita. El tamaño de la primera y segunda porciones de memoria intermedia de muestras se puede configurar de forma dinámica para que corresponda con un tiempo de integración inicial que puede ser el tiempo de integración coherente. Un acelerador tiene acceso a los resultados de correlación de la memoria intermedia de muestras, y de manera alternativa tiene acceso a la primera y segunda porciones de memoria intermedia de muestras en una manera que es complementaria a la tempori zación de los escritos en la memoria intermedia de muestras. El acelerador determina acumulaciones coherentes de los resultados del buscador sobre un tiempo de integración inicial que puede ser ajustado de forma dinámica. La longitud del tiempo de integración inicial se puede extender más allá de un periodo de tiempo de una modulación de datos subyacente. Por ejemplo, el tiempo de integración inicial se puede extender más allá del periodo de modulación de datos de 20 milisegundos rastreando la transición de borde y los datos recibidos. El acelerador de manera selectiva puede invertir los resultados de correlación con base en la posición de la transición de borde y el valor de los datos subyacentes. El acelerador puede generar una energía o magnitud para cada uno de los resultados de acumulación coherente. El acelerador escribe los resultados de energía en una memoria intermedia de energía. La memoria intermedia de energía también se puede configurar como una memoria intermedia doble, con primera y segunda porciones de memoria intermedia de energía. El acelerador puede escribir en una primera porción de la memoria intermedia de energía y de manera concurrente puede leer desde la segunda porción de memoria intermedia de energía. El desplazador de datos también se puede configurar para leer y escribir en la memoria intermedia de energía. El desplazador de datos puede leer los resultados de energía a partir de la memoria intermedia de energía y escribirlos en el almacenamiento, y puede leer los resultados de energía previos a partir del almacenamiento en la memoria intermedia de energía. El acelerador puede determinar integraciones no coherentes sumando múltiples resultados de energía. Los resultados son puestos en almacenamiento temporal en la memoria intermedia de energía, y el desplazador de datos puede almacenar las sumas no coherentes en el almacenamiento . La figura 1 es un diagrama en bloques simplificado de una modalidad de un sistema de comunicación inalámbrica 100 que soporta ubicación de posición . El sistema de comunicación inalámbrica 100 puede incluir uno o más elementos terrestres que pueden estar en comunicación con una terminal de usuario 110. La terminal de usuario 110 puede ser, por ejemplo, un teléfono inalámbrico configurado para operar de acuerdo con uno o más estándares de comunicación. El estándar o estándares de comunicación pueden incluir, por ejemplo, GSM, CDMA, y CDMA2000. La terminal de usuario 110 puede ser una unidad portátil, una unidad móvil o una unidad estacionaria. La terminal de usuario 110 también se puede denominar como una unidad móvil, una terminal móvil, una estación móvil, un equipo de usuario, un portátil, un teléfono, y similar. La terminal de usuario 110 por lo regular se comunica con una o más estaciones base 120a o 120b, aquí mostradas como torres celulares sectori zadas . La terminal de usuario 110 por lo regular se comunicará con la estación base, por ejemplo 120b, que proporciona la intensidad de señal más fuerte en un receptor dentro de la terminal de usuario 110. Dos estaciones base 120a y 120b y una terminal de usuario 110 se muestran en la figura 1 para propósitos de conveniencia y claridad. Por lo regular, un sistema tiene numerosas estaciones base y puede soportar más de una terminal de usuario. La terminal de usuario 110 puede determinar su posición, en parte, con base en las señales de ubicación de posición recibidas desde una o más fuentes de señal. Las fuentes de señal pueden incluir uno o más satélites 130, que pueden ser parte de un sistema de ubicación de posición basado en satélite, tal como GPS. Las fuentes de señal también pueden incluir una o más estaciones base 120a o 120b. La terminal de usuario 110 puede determinar su ubicación, en parte, determinando un pseudorango para cada fuente de señal de ubicación de posición. Cada fuente de señal de ubicación de posición transmite una señal de ubicación de posición que es esparcida utilizando un código de pseudoruido y la terminal de usuario puede determinar un pseudorango, en parte, correlacionando un código de pseudoruido localmente generado con las señales recibidas para determinar una fase de la señal de pseudoruido recibida. La terminal de usuario 110 puede determinar un pseudorango que se correlacione con un tiempo o distancia con base, en parte, en la fase de la señal de pseudoruido recibida. Cada una de las estaciones base 120a y 120b se puede acoplar a un Controlador de Estación Base (BSC) 140 que enruta las señales de comunicación hacia y desde las estaciones base apropiadas 120a y 120b. El BSC 140 se puede acoplar a un Centro de Conmutación Móvil (MSC) 150 que se puede configurar para operar como una interfaz entre la terminal de usuario 110 y una Red de Telefonía Pública Conmutada (PSTN) 170. Por lo tanto, el MSC 150 también está acoplado a la PSTN 170. El MSC 150 también se puede configurar para coordinar transferencias inter-sistema con otros sistemas de comunicación. Un Centro de Ubicación de Posición (PLC) 160 también se puede acoplar al BSC 140. El PLC 160 se puede configurar, por ejemplo, para almacenar información de ubicación de posición, tal como la ubicación de cada una de las estaciones base 120a y 120b en el sistema de ubicación de posición 100. En una modalidad, el PLC 160 se puede configurar para proporcionar la información a la terminal de usuario 110 de manera que la terminal de usuario 110 pueda determinar su ubicación con base, en parte, en pseudorangos para múltiples fuentes de señal, en donde los pseudorangos pueden ser valores de tiempo de llegada relativos. En otra modalidad, el PLC 160 se puede configurar para determinar la ubicación de la terminal de usuario 110 con base en información de pseudorango proporcionada por la terminal de usuario 110. En esta última modalidad, un servidor de red (que no se muestra) en el PLC 160 puede ejecutar la determinación de ubicación de posición a fin de descargar el procesamiento de la terminal de usuario 110. El PLC 160 se puede configurar para ordenar a las estaciones base 120a y 120b, a través del BSC 140, generar las señales de ubicación de posición. En otras modalidades, las estaciones base 120a y 120b se pueden configurar para generar de manera periódica las señales de ubicación de posición. La terminal de usuario 110 puede determinar, en conjunto con el PLC 160, su posición utilizando cualquiera de diversas técnicas de ubicación de posición. La terminal de usuario 110 o PLC 160 puede seleccionar la técnica con base, en parte, en las fuentes de señal que se utilizan para generar valores de pseudorango. Por ejemplo, una terminal de usuario 110 puede utilizar el tiempo de llegada (TOA) , diferencia de llegada en tiempo (TDOA) , trilateración avanzada de enlace hacia delante (AFLT) o alguna otra técnica de ubicación de posición. La terminal de usuario 110 o PLC 160 puede determinar la posición de la terminal de usuario 110 ejecutando una técnica de ubicación de posición, que está basada en GPS, que aumenta las señales GPS con radiobalizas basadas en tierra, tales como sistemas de ubicación de posición híbridos, y que se basan en valores de pseudorango derivados de las radiobalizas basadas en tierra. A fin de generar un primer valor fijo, tal como al momento del encendido, un receptor en la terminal de usuario 110 configurado para procesar señales satelitales GPS necesita buscar a través de todas las secuencias de código PN satelitales, todas las hipótesis de fase de código PN, y todas las compensaciones de frecuencia Doppler a fin de recibir las señales satelitales necesarias. Esto significa buscar sobre 24 satélites, un rango predeterminado de frecuencia Doppler, y 1023 hipótesis de código (lo cual por lo regular se ejecuta como 2046 desplazamientos de código de medio chip discretos y cálculo) . Después de determinar un valor fijo de posición inicial, la terminal de usuario 110 puede limitar el número de frecuencias y fases de código buscadas para un subconjunto que está basado en las señales satelitales utilizadas para determinar el valor fijo de posición inicial. La terminal de usuario 110 puede reducir el número de secuencias de código PN satelitales discretas buscadas a partir de 24 para el conjunto de satélites en realidad visibles, el cual típicamente es de 8, pero pueden ser inclusive 4. Sin embargo, la terminal de usuario 110 puede requerir realizar la búsqueda de una o más secuencias de código PN para una o más radiobalizas terrestres si un valor fijo de posición no es posible únicamente utilizando información satelital GPS. Las secuencias de código utilizadas por las radiobalizas terrestres por lo regular son distintas de las secuencias de código utilizadas por los satélites GPS. De manera adicional, la línea de tiempo y el procesamiento de las señales de ubicación de posición basadas en tierra son distintos de aquellos para GPS. La terminal de usuario 110 puede incluir un procesador de señal de recepción reconfigurable . El procesador de señal reconfigurable puede incluir múltiples recursos independientemente configurables y puede soportar múltiples tiempos de integración. Los recursos independientemente configurables se pueden configurar para ejecutar una búsqueda de una porción de espacio de código seleccionada sobre un tiempo configurable . Los resultados de búsqueda se pueden integrar de manera coherente sobre un tiempo de integración configurable . Además, los resultados de integración pueden ser integrados de manera no coherente. La ejecución del procesador de señal de recepción reconfigurable en la terminal de usuario 110 permite a la terminal de usuario 110 dedicar recursos en una manera eficiente para condiciones de procesamiento actuales. Por ejemplo, durante el valor fijo de posición inicial, la terminal de usuario 110 puede configurar el procesador de señal de recepción reconfigurable para buscar a través de un número máximo de fuentes de ubicación de posición a fin de identificar de manera rápida la identidad de las fuentes de señal de ubicación de posición. Por ejemplo, la terminal de usuario 110 de manera inicial puede buscar a través de un número máximo predeterminado de satélites GPS para identificar cuál de los satélites GPS originó las señales recibidas. Una vez que la terminal de usuario 110 determina cuál de los satélites GPS originó las señales recibidas, la terminal de usuario 110 puede reconfigurar el procesador de señal de recepción para permitir un procesamiento más enfocado de las señales satelitales identificadas. Por ejemplo, la terminal de usuario 110 puede configurar un tiempo de integración coherente más prolongado para mejorar la sensibilidad de recepción, asi como la selectividad de la frecuencia. La figura 2 es un diagrama en bloques funcional simplificado de una modalidad de un sistema de procesamiento de señal de ubicación de posición reconfigurable 200 que ejecuta búsqueda de espacio de código. El sistema de procesamiento de señal 200 incluye un servidor de muestras 210 acoplado a un buscador 220. El buscador 220 genera resultados que son almacenados en una memoria 240. Un acelerador 250 tiene acceso a los resultados del buscador en la memoria 240 y realiza procesamiento de señal adicional. Un desplazador de datos 230 escribe los resultados del buscador 220 en las ubicaciones dentro de la memoria 240. El desplazador de datos 230 también controla las operaciones de lectura y escritura entre la memoria 240 y una memoria intermedia 260 asociadas con el acelerador 250. La memoria intermedia 260 se puede dividir en una memoria intermedia de muestras 262 y una memoria intermedia de energía 264. Cada una de la memoria intermedia de muestras 262 y la memoria intermedia de energía 264 se puede configurar como memorias intermedias dobles, en donde los datos son escritos en una primera porción de la memoria intermedia, mientras que otros datos son leídos de manera concurrente de una segunda porción de la memoria intermedia . Un controlador 270 opera para configurar el buscador 220 y el acelerador 250. Por ejemplo, el controlador 270 puede configurar las subtareas ejecutadas por el buscador 220. El controlador 270 también puede configurar los tiempos de integración coherente o longitudes, así como la longitud de sumas de energía no coherentes ejecutadas por el acelerador 250. El controlador 270 también puede configurar la cantidad de memoria que se necesita para almacenar los diversos valores de correlación y sumas de energía. La cantidad de memoria que se necesita para almacenar los resultados de correlación se determina, en parte, con base en la longitud de una integración coherente y el número de sumas de energía no coherente. El controlador 270 utiliza los recursos de memoria necesarios para soportar la configuración y permite que cualquier memoria no utilizada sea utilizada para otros procesos.
El controlador 240 comunica el mapa de memoria dinámico al desplazador de datos 230 para permitir al desplazador de datos 130 tener acceso a las ubicaciones de memoria apropiadas cuando se lee o se escribe en la memoria 240. El servidor de muestras 210 por lo regular se ejecuta como una memoria, tal como RAM, que temporalmente almacena muestras complejas de las señales recibidas. En otras modalidades, el servidor de muestras 210 puede incluir un muestreador de señal, tal como un Convertidor Complejo Análogo a Digital (ADC) que está configurado para muestrear las señales de banda base recibidas y generar muestras de fase en Cuadratura Q y en Fase ( I ) . Por ejemplo, el servidor de muestras 210 se puede configurar para almacenar hasta 4 milisegundos de muestras complejas tomadas a dos veces la tasa de transferencia de chip. Por supuesto, el servidor de muestras 210 no se limita a muestras capturadas a dos veces la tasa de transferencia de chip, y la tasa de transferencia de muestra real puede ser alguna otra fracción o múltiplo de una tasa de transferencia de chip. Por ejemplo, el servidor de muestras 210 se puede configurar para almacenar muestras que son capturadas a la tasa de transferencia de chip, a cuatro veces la tasa de transferencia de chip, o algún otro intervalo. En las situaciones donde el sistema de procesamiento de señal 200 está configurado para procesar las señales GPS recibidas, la tasa de transferencia de muestreo puede ser aproximadamente 2 MHz. El servidor de muestras 210 se puede sincronizar a un reloj de tiempo real (que no se muestra) de manera que los limites de milisegundos de muestras almacenadas en el servidor de muestras 210 coinciden con limites de milisegundos GPS correspondientes a un periodo de código. El buscador 220 opera en las muestras complejas almacenadas en el servidor de muestras 210. El buscador 220 soporta 32 subtareas independientemente configurables , y cada subtarea puede ser reasignada cada 1 milisegundo. Cada subtarea busca una ventana de 32 chips a través hasta de 64 hipótesis distintas. Las subtareas pueden ser asignadas para buscar los mismos códigos o códigos diferentes correspondientes a satélites GPS. El incremento en el número de subtareas asignadas a la búsqueda de un espacio de código de un satélite particular, disminuye el tiempo de búsqueda medio. El número total de hipótesis distintas y la longitud de cada ventana, se puede modificar cambiando la configuración del hardware, y el número real y la configuración de subtareas no se limita al ejemplo antes descrito.
Por ejemplo, en una búsqueda de fase de código GPS, se puede configurar una subtarea para la búsqueda de una ventana de 32 chips de muestras a través hasta de 64 hipótesis distintas. El número de hipótesis buscadas se puede programar a través del controlador 270 y se puede ubicar en rango, por ejemplo, de 2 a 64 en múltiplos de 2. Previo a la ejecución de las búsquedas de fase de código, el buscador 220 corrige una compensación de frecuencia en la señal recibida. En una modalidad, el buscador 220 puede ejecutar un rotador para rotar las muestras de búsqueda a una frecuencia central deseada. La cantidad de compensación de frecuencia compensada por el rotador se puede determinar con base, en parte, en un bucle de corrección de frecuencia que se puede ejecutar como una búsqueda de frecuencia realizada por el sistema de procesamiento de señal 200. De manera opcional, el buscador 220 puede ejecutar la interpolación de la secuencia de chips recibidos sobremuest reados . El proceso de interpolación también se puede denominar como remuestreo de las señales de entrada previo a la correlación. En una modalidad, las señales recibidas son muestreadas a dos veces la tasa de transferencia de chips de la secuencia de código (chipx2) . Un remuest reador interpola dos muestras sucesivas e introduce un retraso variable. El retraso variable por lo regular es menor que una mitad el periodo de chip, y puede ser, por ejemplo, un cuarto del periodo de chip o múltiplos de una fracción más pequeña de un periodo de chip. Por ejemplo, el remuestreador puede introducir un retraso variable en múltiplos de un octavo de un periodo de chip, en donde los múltiplos oscilan en un rango de cero a tres. El buscador 220 desensancha la secuencia de 32 chips utilizando cada una de las hipótesis, en donde una hipótesis corresponde a una fase particular de una secuencia de código PN localmente generada. Cada hipótesis puede estar alineada, por ejemplo, a limites de medio chip para permitir una búsqueda de 32 compensaciones de fase de código. En otra modalidad, cada hipótesis se puede alinear a un limite de chip, permitiendo asi una búsqueda de 64 compensaciones de fase de código distintas. El buscador 220 está configurado para almacenar cada uno de los resultados de correlación compleja en una memoria intermedia de buscador. El desplazador de datos 230 puede almacenar los resultados de búsqueda almacenados en memoria intermedia en una ubicación en la memoria 240. En una modalidad, la memoria intermedia de búsqueda 224 está configurada como una memoria intermedia doble. El buscador 220 se puede configurar para actualizar una primera porción de la memoria intermedia doble mientras que el desplazador de datos 230 puede tener acceso a una segunda porción de la memoria intermedia doble para desplazarse previo a los resultados del buscador a la memoria 240. La configuración de memoria intermedia doble permite al buscador 220 ser limitado en cálculo en lugar de ser limitado en transferencia de datos. Al configurar una doble memoria intermedia, la transferencia de los resultados previamente calculados no necesita completarse previo a la siguiente tarea del buscador, y la transferencia de datos de resultados previos puede ocurrir de manera concurrente con el procesamiento de la tarea más reciente. Por supuesto, el buscador 220 no se limita a utilizar una configuración de doble memoria intermedia, y puede utilizar cierta configuración de memoria diferente que permite un procesamiento y transferencia de datos concurrentes. Por ejemplo, el buscador 220 puede ejecutar un almacenamiento en memoria intermedia circular que tiene un tamaño que es suficiente para permitir que todas las transferencias de datos ocurran previo a la siguiente actualización de una ubicación de memoria particular.
La configuración del buscador 220, y en particular la configuración del número de hipótesis y el espacio de código buscado, se puede configurar cada incremento de correlación. En el ejemplo que se describió anteriormente, el incremento de correlación ocurre cada milisegundo. El buscador 220 incluye un registro de comando de hardware que se puede actualizar cada incremento de correlación. El controlador 270 puede escribir una ubicación y tamaño de una cola de tarea en el registro de comando de hardware. Tal como se observó anteriormente, el buscador 220 puede ser controlado para ejecutar hasta 32 tareas separadas en una cola sencilla. El buscador 220 está configurado para tener acceso a la cola señalada por el registro de comando de hardware. El buscador 220 puede obtener una cola de tarea durante el procesamiento de una tarea, y puede determinar, con base en un valor de comparación de validez un tiempo de inicio de una tarea señalada en el registro de comando de hardware. El acelerador 250 está configurado para procesar los resultados de correlación del buscador 220. El acelerador 250 se puede configurar para operar en datos almacenados en una memoria intermedia 260 a fin de reducir el número de distintas transferencias de datos que necesitan ser iniciadas. La memoria intermedia 260 puede incluir una memoria intermedia de muestras 262 y una memoria intermedia de rejilla de energía 264. Cada una de la memoria intermedia de muestras 262 y la memoria intermedia de rejilla de energía 264 se puede acomodar como una doble memoria intermedia a fin de eliminar cualesquiera posibles problemas de contención de memoria relacionados con la lectura y escritura de ubicaciones en la memoria 240. Cada memoria intermedia doble puede incluir primera y segunda porciones o bancos de memoria. En cualquier momento determinado, un banco de la memoria intermedia está acoplado al motor de integración del acelerador 250 y el otro banco de la memoria intermedia está acoplado a, o de otra forma, es accesible al desplazador de datos 280. La asociación de los bancos con el motor de integración o desplazador de datos 280 es permutado después de cada intervalo de procesamiento. El acelerador 250 incluye un motor de integración que incluye múltiples acumuladores paralelos configurados para generar sumas de integración coherentes sobre un tiempo de integración configurable y múltiples frecuencias. Aunque el acelerador 250 se puede controlar para soportar virtualmente cualquier longitud de integración coherente, el acelerador 250 se puede optimizar para soportar un conjunto discreto de longitudes de integración. En una modalidad, el acelerador 250 se puede configurar para generar sumas de integración coherente, también denominadas como acumulaciones coherentes, sobre tiempos de integración de 10, 20, 39, 80 o 160 msegundos . Debido a que el buscador 220 genera resultados de integración coherente sobre periodos de 1 milisegundo, el tiempo de acumulación coherente, en milisegundos , corresponde a la longitud de integración coherente. El acelerador 250 se puede configurar para rastrear bordes de bit y valores de bit a fin de acomodar longitudes de integración que se extienden a través de uno o más bordes de bit. El número de trayectorias de acumulación paralelas depende del nivel aceptable de complejidad dentro del acelerador 250. En una modalidad, el acelerador 250 puede incluir, por ejemplo, seis trayectorias de multiplicador-acumulador paralelas que permite la suma de un conjunto de muestras sobre seis frecuencias distintas. La operación de las trayectorias de acumulación paralelas se puede repetir para soportar muchas frecuencias y muchos conjuntos de muestras. Las memorias intermedias del acelerador 262 pueden ser suficientes para integraciones de 20 milisegundos para todas las hipótesis de una tarea. De manera similar, las memorias intermedias de energía 264 pueden ser lo suficientemente grandes para soportar 20 frecuencias sobre cada una de las 64 compensaciones de tiempo. Las integraciones más prolongadas que 20 milisegundos se pueden ejecutar mediante el procesamiento de un subconjunto del número total de compensaciones de tiempo en una operación sencilla. Cuando se realizan integraciones de 20*N milisegundos, se utilizan N operaciones de acelerador. Cada operación procesa 63/N hipótesis de tiempo. Cada memoria de muestras mantiene 20*N milisegundos para cada una de las 64/N compensaciones de tiempo. Cada memoria de energía mantiene 20*N frecuencias para cada una de las 64/N compensaciones de tiempo. El ancho de banda de la memoria resultante y la tasa de transferencia de la transacción del acelerador, necesarias para soportar diferentes longitudes de integración, siguen siendo las mismas . Por ejemplo, el acelerador 250 se puede configurar para soportar de manera concurrente un tiempo de acumulación de 20 milisegundo sobre 64 hipótesis de tiempo distintas en una operación sencilla o se puede configurar para soportar un tiempo de acumulación de 160 milisegundos sobre 8 hipótesis de tiempo distintas en la misma operación sencilla. El acelerador 250 puede ejecutar 8 operaciones separadas para buscar las mismas 64 hipótesis de frecuencia. De esta forma, el ancho de banda de los datos utilizados por el acelerador permanece constante sin considerar el tiempo de integración. El tamaño del rango de frecuencia abarcado por el acelerador 250 por lo regular es de 500 Hertz totales extendiéndose aproximadamente 250 Hertz por debajo y 250 Hertz por encima de una frecuencia nominal. El número de hipótesis de frecuencia analizadas de manera concurrente por el acelerador 250 varia dependiendo de la longitud de integración coherente. En una modalidad, el número de hipótesis de frecuencia procesadas de manera concurrente se establece para que sea igual a la longitud de integración coherente. El acelerador 250 separa los distintos depósitos de frecuencia aproximadamente de manera uniforme a través del lapso de frecuencia. El acelerador 250 determina la integración coherente a una compensación de frecuencia particular girando las muestras de entrada por la compensación de frecuencia deseada y sumando la longitud de integración coherente. El acelerador 250 entonces puede calcular la energía de la suma coherente a fin de poblar una rejilla de energía bidimensional . La rejilla de energía bidimensional puede incluir la energía para la longitud de integración coherente actual para cada hipótesis de tiempo y cada compensación de frecuencia. El acelerador 250 se puede configurar para determinar la suma coherente para todas las frecuencias de una hipótesis de tiempo particular antes de determinar una suma coherente de otra hipótesis de tiempo. La ejecución de las sumas coherentes de esta forma puede reducir al mínimo el número de veces que se tiene acceso a la memoria. Por supuesto, en otras modalidades, la aplicación de la compensación de frecuencia puede ser más intensa en procesador, y las sumas coherentes de cada compensación de frecuencia a través de todas las hipótesis de tiempo se pueden complementar previo a la determinación de una suma coherente para otra compensación de frecuencia. Otras modalidades pueden determinar las sumas en algún otro orden . EL desplazador de datos 230 opera como un motor DMA para transferir información entre el buscador 220 y la memoria 240 y entre la memoria 240 y el acelerador 250. El desplazador de datos 230 ejecuta transferencias de memoria a ubicaciones que dependen, por lo menos en parte, en el modo de búsqueda y en la longitud de integración asociada. El desplazador de datos 230 puede determinar el mapa de memoria con base en la cola de tareas del controlador 270. El desplazador de datos 230 copia las sumas coherentes generadas por el buscador 220 para cada una de las subtareas programadas. En modalidades donde el buscador 220 almacena en las memorias intermedias dobles las sumas coherentes, el desplazador de datos 230 opera para transferir un bloque desde la memoria intermedia que no está siendo escrita mediante el buscador 220. El desplazador de datos 230 está configurado para operar en datos en el bloque de la memoria intermedia que no está asociada con las operaciones de subtarea actuales. De manera similar, el desplazador de datos 230 copia las salidas del buscador previamente almacenadas y las sumas de energía previamente determinadas a partir de la memoria 240 a la memoria intermedia 262 en el acelerador 250, y en particular, a un bloque de memoria intermedia que está asociado con la transferencia de memoria y que no está siendo escrito por el acelerador 250. El desplazador de datos 230 también copia las sumas de energía más recientes de la memoria intermedia del acelerador a la memoria 230. El controlador 270 genera la cola de tareas e información de control asociada escrita en el registro de comandos de hardware del buscador 220. El controlador 270 puede configurar virtualmente cualquier búsqueda y longitud de integración que pueda ser soportada por el espacio disponible en la memoria 240. Sin embargo, el controlador 270 por lo regular tiene un número predeterminado de configuraciones de búsqueda o modos que se pueden seleccionar y programar en cada límite de control. Por ejemplo, el controlador 270 puede seleccionar uno de un modo de búsqueda alto que abarque 1600 Hz, 20 depósitos de frecuencia distintos, 64 hipótesis y una longitud coherente de 20, un primer modo de búsqueda bajo que abarque 400 Hz, 80 depósitos de frecuencia distintos, 16 hipótesis, y una longitud coherente de 80, un segundo modo de búsqueda bajo que abarque 200 Hz, 160 depósitos de frecuencia distintos, 8 hipótesis, y una longitud coherente de 160, un modo de búsqueda de adquisición áspera que abarque 1600 Hz, 20 depósitos de frecuencia distintos, 64 hipótesis, y una longitud coherente de 10, y un modo de búsqueda de borde de bit que abarque 1600 Hz, 8 depósitos de frecuencia distintos, 8 hipótesis, y una longitud coherente de 20. La figura 3 es un diagrama en bloques funcional simplificado que ilustra una modalidad de un flujo de datos en un receptor que ejecuta un sistema de procesamiento de señal de ubicación de posición 200 para búsqueda de espacio de código. El sistema 200 se describe en el contexto del procesamiento de una búsqueda de espacio de código GPS. Sin embargo, una búsqueda de espacio de código similar se puede procesar para otra información de esparcimiento de código PN, tal como para AFLT . El servidor de muestras 210 recibe muestras de entrada compleja aproximadamente a dos veces una tasa de transferencia de chip y escribe las muestras en la memoria, tal como RAM. El servidor de muestras 210 se puede configurar para acomodar la RAM como una memoria intermedia circular y sobrescribe las entradas más anteriores con las muestras más recientes. El buscador 220 examina el contenido del registro de comandos de hardware para determinar la ubicación y tamaño de una cola de tareas. El registro de comandos de hardware en el buscador 220 se puede programar durante el procesamiento de una cola de tareas señalada por un contenido de registro de comandos de hardware previo. El buscador 220 determina un tiempo de inicio para la siguiente tarea de búsqueda programada, y puede iniciar la nueva tarea de búsqueda tan pronto como finaliza la tarea de búsqueda actual. Cada cola de tareas puede controlar hasta un número máximo predeterminado de subtareas que pueden ser procesadas en el periodo de búsqueda inicial, lo cual puede ser de un milisegundo. El buscador 220 procesa las subtareas y escribe las sumas coherentes para cada hipótesis en una memoria intermedia dentro del buscador 220. La memoria intermedia del buscador se puede organizar como una memoria intermedia doble. Los dos bloques de la memoria intermedia doble del buscador alternativamente se pueden asociar con uno del buscador 220 o el desplazador de datos 230. El bloque asociado con el buscador 220 recibe los resultados de correlación producidos por el buscador 220, mientras que el bloque asociado con el desplazador de datos 230 permite transferencias de datos de bloque desde el buscador 220 a la memoria 240. La asociación de los bloques en la memoria intermedia doble del buscador son permutados en tiempos predeterminados. Por ejemplo, la asociación de los bloques se puede permutar una vez que el buscador 220 llena su bloque asociado. El desplazador de datos 230 realiza una transferencia de datos 310 entre la memoria intermedia del buscador 220 asociado y la memoria 240. El desplazador de datos 230 no necesita sincronizar la transferencia de datos 310 con el procesamiento de integración coherente ejecutado en el buscador 220. Más bien, el desplazador de datos 230 se puede configurar para ejecutar la transferencia de datos 310 en cualquier momento durante el cual sea válida la asociación del bloque de memoria intermedia. El desplazador de datos 230 determina las ubicaciones dentro de la memoria 240 para escribir los valores, con base por lo menos en parte, en un modo de búsqueda activa iniciado por el controlador (que no se muestra) . El tamaño de la memoria 240 asignada al sistema 200 puede ser dinámico, y puede variar, por ejemplo, con base en el modo de búsqueda de código activo. Como un ejemplo, un modo de búsqueda de borde de bit que abarca 1600 Hz, 8 depósitos de frecuencia distintos, 8 hipótesis, y una longitud coherente de 20 requiere menos memoria de espacio de almacenamiento 240 que un modo de búsqueda bajo que abarque 200 Hz, 160 depósitos de frecuencia distintos, 8 hipótesis, y una longitud coherente de 160. Si la memoria 240 es compartida con procesos distintos de la búsqueda de espacio de código, tal como la situación donde la memoria 240 es memoria del sistema para un dispositivo de comunicación inalámbrica, la asignación dinámica de espacio de memoria eleva al máximo la cantidad de espacio de memoria disponible para soportar tareas distintas de la búsqueda de código. Al sistema 200 sólo se le necesita asignar suficiente espacio de memoria 240 para soportar el modo de búsqueda de código activo. EL desplazador de datos 230 también puede controlar la transferencia de datos 320 de los resultados del buscador almacenados en la memoria en una memoria intermedia de muestras con almacenamiento temporal doble 262. Debido a que el acelerador 250 consume los resultados del buscador durante la integración coherente, la transferencia de datos 320 a la memoria intermedia de muestras 262 puede ser unidireccional, desde la memoria 240 a la memoria intermedia de muestras 262. La memoria intermedia de muestras con almacenamiento temporal doble 262 puede alternar asociaciones del primer y segundo bloques entre el desplazador de datos 230 y el acelerador 250. El acelerador 250 controla las operaciones de lectura 340 de su bloque de memoria intermedia de muestras 262 asociado. El desplazador de datos 230 y el acelerador 250 pueden permutar asociaciones de bloque de memoria intermedia de muestras 262 una vez que el acelerador 250 tiene acceso a todos los datos en su bloque de memoria intermedia de muestras asociado 262. El acelerador 250 determina una suma coherente de los resultados del buscador sobre una longitud de acumulación coherente que se determina con base en el modo de búsqueda programado por el controlador. El acelerador 250 puede generar un valor de energía para cada integración coherente sumando los cuadrados de los componentes complejos del resultado de integración coherente . El acelerador 250 puede escribir los valores de energía en una memoria intermedia de energía 264 para transferencia a la memoria 240. De manera alternativa, el acelerador 250 se puede configurar para generar acumulaciones no coherentes de los valores de energía, sumando el valor de energía actual con valores de energía previos calculados para la misma ubicación de rejilla de energía. El acelerador 250 controla la transferencia de datos 350 de valores de energía hacia y desde un bloque asociado de una memoria intermedia de energía de almacenamiento temporal doble 264. La memoria intermedia de energía 264 se puede configurar como una memoria intermedia doble con bloques alternativamente asociados con uno del desplazador de datos 230 o el acelerador 250. El desplazador de datos 230 controla las transferencias de datos 330 de valores de energía entre la memoria 240 y el bloque asociado de la memoria intermedia de energía 264. De manera similar, el acelerador 250 controla las operaciones de lectura y escritura de la memoria intermedia de energía 350 entre su bloque asociado de la memoria intermedia de energía 350. Las asociaciones de los bloques de la memoria intermedia de energía 264 se pueden permutar con base en un programa determinado por el modo de búsqueda activo. El desplazador de datos 230 puede tener acceso a resultados de energía previamente almacenados de la memoria 240 y puede copiar los valores al bloque asociado de memoria intermedia de energía 264 en una operación de transferencia de datos 330. Después de la permutación de asociaciones de bloques, el acelerador 250 puede tener acceso a los valores de energía previamente transferidos por el desplazador de datos 230 y puede, por ejemplo, determinar acumulaciones no coherentes utilizando valores de energía actuales. El acelerador 250 controla la operación de escritura 350 de regreso para su bloque de memoria intermedia de energía 264. El desplazador de datos 130 puede ejecutar una transferencia de datos 330 de los valores de energía actualizados desde la memoria intermedia de energía 264 a la memoria 240 cuando los bloques de la memoria intermedia de energía 264 son permutados una vez más. El procesamiento del acelerador 250 se puede realizar en una forma canalizada a fin de procesar de manera más eficiente los datos. El proceso canalizado puede ser, por ejemplo, un canal de tres operaciones distintas. El canal puede soportar transferencia de datos de entrada para una operación, procesamiento de acumulaciones coherentes y valores de energía para una segunda operación y transferencia de datos de resultados previos desde el acelerador 250 a la memoria 24 para una tercera operación. Por lo tanto, el desplazador de datos 230 puede transferir resultados del buscador desde la memoria a la memoria intermedia de muestras (operación N+1) mientras que el acelerador 250 está operando en los resultados del buscador para una transferencia de datos previa (operación N). De manera adicional, el desplazador de datos 230 puede transferir sumas de energía acumuladas desde la memoria intermedia de energía a la memoria 240 para una tercera operación distinta (operación N-l) antes de cargar la memoria intermedia de energía con valores previamente almacenados de la memoria externa 240 (operación N+1) . La figura 4 es un diagrama de flujo de una modalidad de un método 400 de búsqueda de espacio de código. El método 400 se puede ejecutar mediante el sistema de procesamiento de señal de ubicación de posición de la figura 2 y se puede ejecutar dentro de una terminal de usuario de la figura 1. El método 400 ilustra el proceso que se extiende a través de bloques funcionales. La secuencia de operaciones en el método 400 ilustra el procesamiento de un conjunto de muestras a través del sistema. Múltiples operaciones en el sistema pueden ocurrir de manera concurrente a fin de permitir la operación continua del método sin latencia para reconfiguración o transferencia de datos. El método 400 comienza en el bloque 402, en donde el sistema captura muestras complejas de la señal recibida que va a ser buscada. Por ejemplo, un muestreador de señal puede muestrear las señales GPS recibidas a una tasa de transferencia que es aproximadamente dos veces la tasa de transferencia del código P . Las muestras complejas pueden ser almacenadas en RAM, o algún otro dispositivo de almacenamiento. El sistema procede al bloque 410, en donde un buscador está configurado para soportar un modo de procesamiento de búsqueda de código particular. El buscador puede determinar un modo de procesamiento para futuras muestras mientras que se procesan muestras de acuerdo con un modo de procesamiento actual. Por ejemplo, el buscador puede leer un registro de comandos de hardware para determinar la ubicación y tamaño de una cola de tareas. El buscador puede ejecutar las tareas de la cola de tareas a un limite de tarea o cuando el procesamiento de la tarea actual se ha completado. La cola de tareas puede incluir múltiples tareas hasta un número máximo predeterminado de tareas. Por ejemplo, una cola de tareas puede incluir hasta un máximo de 32 tareas para que el buscador ejecute en cualquier periodo de tiempo de integración inicial, el cual puede ser de 1 milisegundo . Cada tarea de búsqueda puede soportar una búsqueda a través de un número predeterminado de chips de código sobre múltiples hipótesis. El número de hipótesis buscadas puede ser programable, y puede oscilar hasta un número máximo predeterminado de hipótesis . Por ejemplo, cada tarea se puede configurar para buscar una ventana que contenga 32 chips de código y se puede configurar para buscar hasta 64 hipótesis distintas a través de la ventana de búsqueda, en donde cada hipótesis de espacio de código puede ser compensada a partir de su hipótesis más cercana por una mitad de un periodo de chip. El sistema avanza al bloque 412 y transfiere desde la memoria de muestras al buscador las muestras que son relevantes para la configuración de búsqueda. Al utilizar los ejemplos antes proporcionados, el buscador se puede configurar, de manera concebible, para buscar todo un espacio de código de un vehículo satelital sencillo en un periodo de tiempo de integración inicial de 1 milisegundo . Sin embargo, el buscador de manera más típica está configurado para buscar las muestras recibidas sobre una porción de múltiples códigos. Después de transferir las muestras relevantes, el sistema avanza al bloque 414 y ejecuta las tareas tal como se estipuló en la cola de tareas. Cada tarea produce como resultado una integración coherente de las muestras sobre un periodo de integración inicial de 1 milisegundo a través de cada una de las hipótesis aplicadas por las tareas, aunque otras modalidades pueden utilizar otros periodos de integración inicial. El buscador procede al bloque 416 y escribe los resultados de integración coherente de cada hipótesis a un bloque asociado de una memoria intermedia doble. La memoria intermedia doble incluye dos bloques alternativamente asociados con uno del buscador o un desplazador de datos. El buscador escribe en su bloque de memoria intermedia asociado para permitir al desplazador de datos transferir datos desde su bloque de memoria intermedia asociada. Al realizar un doble almacenamiento temporal, los resultados del buscador, tanto el buscador como el desplazador de datos evitan la contención de memoria al tener acceso a los datos desde la memoria intermedia. Los resultados previamente almacenados en almacenamiento temporal se pueden leer desde una porción de la memoria intermedia doble mientras que el buscador opera sobre las muestras y escribe en otra porción de la memoria intermedia doble. La memoria intermedia doble permite una transferencia de datos más flexible, ya que la transferencia de los resultados previos del buscador no necesita completarse previo al inicio de la siguiente operación del buscador. De manera adicional, la transferencia de resultados a la memoria puede ser programada de manera más flexible si las transferencias de memoria DMA por parte del desplazador de datos se pueden lograr en menos tiempo del que se utiliza para poblar los resultados del buscador . Debido a que la transferencia de los resultados únicamente ocurre del bloque de la memoria intermedia de búsqueda asociada con el desplazador de datos, el sistema procede al bloque 418 y permuta la asociación de los bloques de la memoria intermedia doble. La permutación de la asociación de los bloques permite la transferencia de los resultados más recientes a la memoria mientras se garantiza que un bloque de la memoria intermedia permanece disponible para almacenamiento de los resultados de integración actuales.
Después de la permutación de las asociaciones de bloque de la memoria intermedia doble del buscador, el sistema procede al bloque 420 en donde el desplazador de datos transfiere los resultados de la integración coherente iniciales desde el buscador a la memoria. En una modalidad, la memoria es compartida con otros procesos, y el desplazador de datos ejecuta una transferencia DMA de la memoria intermedia del buscador a ubicaciones en la memoria compartida. Después de transferir los resultados del buscador a la memoria, el sistema procede al bloque 430. En el bloque 430, el desplazador de datos transfiere por lo menos una porción de los resultados del buscador desde la memoria a un bloque asociado de una memoria intermedia de muestras para el procesamiento por parte del acelerador. La memoria intermedia de muestras también está configurada como una memoria intermedia doble, en donde cada bloque de la memoria intermedia de muestras está asociado con uno del desplazador de datos o acelerador. Las asociaciones del bloque de memoria intermedia de muestras son permutadas después de un evento predeterminado, el cual puede ser el rellenado de una memoria intermedia, tempori zación o algún otro evento . El sistema avanza al bloque 432 y transfiere por lo menos una porción de las acumulaciones de energía previas desde la memoria a un bloque asociado de una memoria intermedia de energía para acceso por parte del acelerador. El sistema también puede mover resultados actualizados desde la memoria intermedia de energía de regreso a la memoria previo a la transferencia de las acumulaciones de energía que van a ser actualizadas desde la memoria a la memoria intermedia de energía. La memoria intermedia de energía también está configurada como una memoria intermedia doble. Un bloque de la memoria intermedia doble está asociado con el desplazador de datos y el otro bloque de la memoria intermedia doble está asociado con el acelerador. Las asociaciones de memoria intermedia de energía se pueden permutar después de un evento predeterminado que puede ser distinto del evento de iniciación de la permutación de los bloques de memoria intermedia de muestras. El acelerador únicamente tiene acceso a los bloques de la memoria intermedia de muestras y la memoria intermedia de energía con la cual está asociado. Por lo tanto, el sistema avanza al bloque 434 y permuta las asociaciones de la memoria intermedia de muestras y memoria intermedia de energía para permitir al acelerador tener acceso a los valores más recientes transferidos desde la memoria por el desplazador de datos. De manera adicional, el desplazador de datos puede tener acceso a los resultados de energía más recientes del acelerador. El acelerador consume los resultados del buscador y no reescribe los resultados a la memoria intermedia de búsqueda. Por lo tanto, la permutación de los bloques de memoria intermedia de búsqueda permite espacio adicional para que el desplazador de datos transfiera a la memoria intermedia de muestras. Después de permutar las asociaciones de memoria intermedia, el sistema procede al bloque 450 y determina las acumulaciones coherentes para los resultados de búsqueda accesibles en la memoria intermedia de muestras asociada. El acelerador determina la acumulación coherente con base en el modo de búsqueda de código activo. El acelerador pudiera requerir tener que esperar múltiples permutaciones de la memoria intermedia de muestras a fin de soportar la longitud de integración deseada, dependiendo del tamaño de la memoria intermedia de muestras. Si la longitud de integración cruza un límite de datos, tal como un límite de datos de 20 milisegundos utilizados en las señales GPS, el acelerador puede rastrear la ocurrencia del límite de bits y puede compensar el valor de bits al calcular la acumulación.
El acelerador también puede determinar acumulaciones coherentes a través de múltiples depósitos de frecuencia, con base en el modo de búsqueda activa. El acelerador puede incluir múltiples trayectorias paralelas que permiten la acumulación concurrente a través de múltiples frecuencias, o múltiples resultados del buscador. El sistema avanza al bloque 452 y determina la energía asociada con cada acumulación coherente. El acelerador puede determinar la energía asociada con el valor de acumulación complejo, por ejemplo, sumando los cuadrados de los valores en fase y cuadratura. En algunas modalidades, el acelerador puede omitir la determinación de la energía acumulada y por el contrario, puede almacenar el valor de acumulación complejo en la memoria intermedia de energía. En modalidades donde el acelerador almacena sumas de acumulación coherente para la memoria intermedia en lugar de los valores de energía, las operaciones en los bloques 452-454 se pueden omitir. El acelerador puede actualizar directamente la memoria intermedia de energía con valores de acumulación coherentes. El sistema procede al bloque 454 y determina cualesquiera acumulaciones de energía no coherentes que pudieran ser especificadas por el modo de búsqueda de código. A fin de determinar una acumulación no coherente, el acelerador lee el valor de energía previo a partir de una porción deseada de una rejilla de energía almacenada en la memoria intermedia de energía y suma el valor de energía correspondiente. En algunas modalidades, el acelerador puede determinar una suma ponderada y puede escalar la suma de energía acumulada previa por una fracción predeterminada previo a la suma del valor de energía más reciente. El sistema procede al bloque 456 en donde el acelerador escribe el valor de energía acumulada de regreso en la memoria intermedia de energía. Por lo regular, el sistema no tiene acceso directo al bloque de memoria intermedia de energía asociado con el acelerador. Por lo tanto, el sistema procede al bloque 458 para esperar la siguiente ocurrencia de permutación de las asociaciones del bloque de energía. En el bloque 460, el desplazador de datos tiene acceso a los valores de energía más recientes actualizados por el acelerador. El desplazador de datos puede ejecutar una transferencia DMA de las acumulaciones de energía actualizadas a la memoria. El desplazador de datos también puede cargar cualesquiera valores de energía desde la memoria en la memoria intermedia de energía para soportar la siguiente acumulación no coherente. Después del bloque 460, el procesamiento de muestras recibidas particulares ha completado toda una trayectoria de procesamiento, desde el muestreo a la acumulación de energía. El doble almacenamiento temporal y el almacenamiento de memoria de los diversos valores intermedios permiten que todo el proceso corra de manera sustancialmente continua. El sistema no necesita detener o de otra forma esperar cambios en la configuración de búsqueda, debido a que el buscador se puede reconfigurar en cada límite de acumulación inicial, mientras que el buscador está operando en tareas previamente programadas. El doble almacenamiento temporal del buscador produce como resultado que el buscador y la entrada al acelerador elimine virtualmente la contención de memoria, mientras que incrementa la flexibilidad en el acceso a la memoria, la cual puede ser memoria compartida externa al módulo o un circuito integrado que tenga el buscador y el acelerador. La separación de la integración coherente inicial de la integración coherente más prolongada correspondiente a una longitud de integración deseada, permite mayor flexibilidad en la programación y configuración del sistema. La integración de un milisegundo es el resultado de que el buscador pueda ser utilizado para soportar virtualmente cualquier longitud de integración. La figura 5 es un diagrama en bloques funcional simplificado de una modalidad de un sistema de procesamiento de señal de ubicación de posición 500 que ejecuta búsqueda de espacio de código. El sistema 500 de la figura 5 se puede ejecutar, por ejemplo, dentro de una terminal de usuario de la figura 1. El sistema 500 incluye un medio para capturar 510 muestras complejas de una señal inalámbrica recibida. Los medios para capturar 510 las muestras complejas están acoplados a un medio para búsqueda 520. Los medios para búsqueda 550 pueden operar de acuerdo con cada una de las tareas de búsqueda de espacio de código señaladas por el registro de hardware 522 que opera como un medio para configurar una pluralidad de tareas de búsqueda de espacio de código. Los medios para búsqueda 550 generan una pluralidad de resultados de integración coherente obtenidos sobre un tiempo de integración inicial, el cual puede ser un milisegundo. Los medios para búsqueda 550 se pueden configurar para generar una pluralidad de resultados de integración coherente correspondientes a una pluralidad de hipótesis de espacio de código, tal como se define en las tareas de búsqueda.
Un medio de control 570 controla el valor escrito en el registro de hardware 522. El valor en el registro de 'hardware 522 puede señalar, por ejemplo, a una cola de tareas en la memoria que es determinada con base en un modo de búsqueda de espacio de código. Un medio para transferencia de datos 530 está acoplado a los medios para búsqueda 520 y opera para transferir la pluralidad de resultados de integración coherente a un medio para almacenamiento 540. Los medios para transferencia de datos 530 también operan para transferir la pluralidad de resultados de integración coherente desde los medios para almacenamiento 540 a los medios para almacenamiento temporal 562 y 564 dentro de, o de otra forma acoplados a un medio para aceleración 550. En particular, los medios para la transferencia de datos 530 transfieren un número de resultados de integración coherente correspondientes a una longitud de integración . Los medios para aceleración 550 operan como un medio para determinar una acumulación coherente de una pluralidad de resultados de integración coherente. La longitud de integración y compensación de frecuencia asociadas con la acumulación coherente se basan en un modo de búsqueda de espacio de código programable. Sistemas, aparatos y métodos de búsqueda de espacio de código se han descrito aqui. Los sistemas, aparatos y métodos descritos se pueden ejecutar en una terminal de usuario para procesar señales GPS, señales AFLT, y similares o alguna otra señal de esparcimiento de código. Por ejemplo, el proceso de búsqueda de espacio de código y aparato aplican a la búsqueda de cualquier espacio de código de una señal de espectro disperso recibida. Aunque modalidades particulares describen la aplicación para señales GPS, la materia sujeto reclamada es genérica a la búsqueda de espacio de código y no se limitan a GPS. Un buscador está configurado para determinar resultados de integración coherente sobre periodos o tiempos de integración inicial. Los resultados del buscador se utilizan como valores intermedios para integración coherente adicional y acumulación de energía no coherente ejecutadas en un acelerador . Valores intermedios son almacenados en memorias intermedias dobles para permitir las transferencias de datos eficientes y no contenciosas a la memoria. El uso de doble almacenamiento en memoria intermedia permite la reconfiguración de los modos de búsqueda de código con baja o ninguna latencia. Adicionalmente, la separación del procesamiento siguiendo la integración coherente sobre el periodo de integración inicial permite la reconfiguración flexible de los modos de búsqueda de espacio de código sin requerir adquisición redundante y análisis de datos. La capacidad para reconfigurar la búsqueda de espacio de código virtualmente en tiempo real, permite búsquedas de espacio de código más eficientes y permite la reconfiguración a partir de la adquisición de código rápida a búsqueda de espacio de código sensiblemente alta . Tal como aquí se utiliza, el término acoplado o conectado se utiliza para indicar un acoplamiento indirecto asi como un acoplamiento directo o conexión. En los casos donde dos o más bloques, módulos, dispositivos o aparatos están acoplados, puede haber uno o más bloques intermedios entre los dos bloques acoplados . Los diversos bloques lógicos ilustrativos, módulos y circuitos descritos en relación con las modalidades aquí analizadas, se pueden ejecutar o realizar con un procesador de propósito general, un procesador de señal digital (DSP), un procesador de Computadora de Conjunto de Instrucciones Reducidas (RISC), un circuito integrado de aplicación especifica (ASIC) , un arreglo de puerta programable en campo (FPGA) u otro dispositivo lógico programable, puerta discreta o lógica de transistor, componentes de hardware discretos, o cualquier combinación de los mismos diseñada para ejecutar las funciones aquí descritas. Un procesador de propósito general puede ser un microprocesador, pero en la alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estado. Un procesador también se puede ejecutar como una combinación de dispositivos de cómputo, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores en conjunto con un DSP núcleo, o cualquier otra configuración similar. Los pasos de un método, proceso, o algoritmo descrito en relación con las modalidades aquí analizadas se pueden incorporar directamente en hardware, en un módulo de software ejecutado por un procesador, o en una combinación de los dos. Los diversos pasos y actos en un método o proceso se pueden realizar en el orden mostrado, o se pueden realizar en otro orden. De manera adicional, uno o más pasos de proceso o método se pueden omitir o uno o más pasos de proceso o método se pueden agregar a los métodos y procesos. Un paso, bloque o acción adicional se puede agregar al inicio, fin, o elementos existentes intermedios de los métodos y procesos.
La descripción anterior de las modalidades analizadas se proporciona para permitir a aquellos expertos en la técnica hacer o utilizar la descripción. Diversas modificaciones a estas modalidades serán fácilmente aparentes para aquellos expertos en la técnica y los principios genéricos aquí definidos se pueden aplicar a otras modalidades sin apartarse del espíritu o alcance de la descripción. Por lo tanto, la descripción no pretende quedar limitada a las modalidades aquí mostradas sino que se le acordará el alcance más amplio consistente con los principios y características novedosas aquí descritas.

Claims (32)

NOVEDAD DE LA INVENCION Habiendo descrito el presente invento, considera como una novedad y, por lo tanto, se reclama propiedad lo contenido en las siguientes : REIVINDICACIONES
1. - Un aparato para búsqueda de espacio de código, el aparato comprende: una memoria; un buscador configurado para ejecutar una pluralidad de tareas programables y generar para cada tarea programable una pluralidad de resultados de integración coherente obtenidos sobre un periodo de tiempo de integración inicial; un acelerador configurado para determinar por lo menos una acumulación coherente de los resultados de integración del buscador con base en una o más longitudes de integración coherente y compensaciones de frecuencia determinadas por un modo de búsqueda seleccionable ; y un desplazador de datos configurado para transferir los resultados de integración desde el buscador a la memoria, y configurado para transferir los resultados de integración desde la memoria al acelerador .
2. - El aparato de conformidad con la reivindicación 1, caracterizado porque el buscador comprende una memoria intermedia de resultados del buscador de doble almacenamiento temporal, en donde cada bloque de la memoria intermedia de resultados del buscador de doble almacenamiento intermedio está asociado con uno del buscador o el desplazador de datos.
3. - El aparato de conformidad con la reivindicación 1, caracterizado porque el buscador está configurado para ejecutar hasta 32 tareas en un periodo de integración inicial.
4. - El aparato de conformidad con la reivindicación 1, caracterizado porque cada tarea especifica un número de hipótesis de fase de código de un código asociado, y en donde cada uno de la pluralidad de resultados de integración coherente se basa en uno del número de hipótesis de fase de código. 5.- El aparato de conformidad con la reivindicación 1, caracterizado porque el periodo de integración inicial comprende un periodo de código. 6.- El aparato de conformidad con la reivindicación 1, caracterizado porque el periodo de integración inicial comprende aproximadamente un milisegundo . 7. - El aparato de conformidad con la reivindicación 1, caracterizado porque el buscador está configurado para determinar la pluralidad de tareas programables con base en una cola de tareas que se puede actualizar cada periodo de integración inicial. 8. - El aparato de conformidad con la reivindicación 7, caracterizado porque el buscador está configurado para determinar una cola de tareas para un periodo de integración inicial futuro durante el procesamiento de tareas en una cola de tareas correspondiente a un periodo de integración inicial actual . 9. - El aparato de conformidad con la reivindicación 1, caracterizado porque el acelerador además está configurado para generar un valor de energía para cada una por lo menos de una acumulación coherente. 10. - El aparato de conformidad con la reivindicación 9, caracterizado porque el acelerador además está configurado para generar una integración no coherente de valores de energía. 11. - El aparato de conformidad con la reivindicación 1, caracterizado porque el acelerador está configurado para generar por lo menos una acumulación coherente a través de un lapso de frecuencia que es menor que o igual a aproximadamente 500 Hertz. 12.- El aparato de conformidad con la reivindicación 1, caracterizado porque el acelerador comprende una doble memoria intermedia, en donde cada bloque de la doble memoria intermedia está asociado con uno del acelerador o el desplazador de datos, y en donde el acceso por parte del acelerador y el desplazador de datos queda limitado al bloque de la doble memoria intermedia con la cual está asociado. 13.- El aparato de conformidad con la reivindicación 1, caracterizado porque se determina un número de compensación de frecuencia con base, en parte, en la longitud de integración. 14.- Un aparato para búsqueda de espacio de código, el aparato comprende: una memoria que tiene una porción asignada a la búsqueda de espacio de código, la porción depende de un modo de búsqueda programable activo; y un circuito integrado acoplado a la memoria, el circuito integrado comprende: un buscador configurado para generar una pluralidad de resultados de integración coherente determinado sobre un periodo de integración inicial para cada una de una pluralidad de tareas de búsqueda programables ; un acelerador configurado para determinar una acumulación coherente de resultados de integración coherente sobre una longitud de integración coherente e hipótesis de frecuencia determinadas por el modo de búsqueda programable activo; y un desplazador de datos configurado para ejecutar transferencias de datos DMA entre el buscador y la memoria y entre el acelerador y la memoria. 1
5. - El aparato de conformidad con la reivindicación 14, caracterizado porque cada tarea de búsqueda especifica un conjunto de hipótesis de código seleccionado a partir de un código. 1
6. - El aparato de conformidad con la reivindicación 14, caracterizado porque el buscador está configurado para soportar hasta 32 tareas de búsqueda distintas en un periodo de integración inicial. 1
7. - El aparato de conformidad con la reivindicación 14, caracterizado porque el desplazador de datos está configurado para ejecutar transferencias de datos desde la memoria a un bloque asociado de una memoria intermedia de muestras de doble almacenamiento en memoria intermedia del acelerador. 1
8. - El aparato de conformidad con la reivindicación 14, caracterizado porque el desplazador de datos está configurado para ejecutar transferencias de datos a la memoria desde un bloque asociado de una memoria intermedia del buscador de doble almacenamiento en memoria intermedia del buscador. 1
9. - Un método de búsqueda de espacio de código, el método comprende: capturar muestras complejas de una señal inalámbrica recibida; configurar una pluralidad de tareas de búsqueda de espacio de código; ejecutar cada una de las tareas de búsqueda de espacio de código para generar una pluralidad de resultados de integración coherente obtenidos sobre un tiempo de integración inicial; y determinar una acumulación coherente de una pluralidad de resultados de integración coherente, una longitud de integración y compensación de frecuencia asociada con la acumulación coherente con base en un modo de búsqueda de espacio de código programable. 20. - El método de conformidad con la reivindicación 19, que además comprende determinar una energía de la acumulación coherente. 21. - El método de conformidad con la reivindicación 19, que además comprende: determinar una energía de la acumulación coherente; y determinar una integración no coherente de una posición de rejilla de energía correspondiente a la energía . 22. - El método de conformidad con la reivindicación 21, que además comprende: almacenar la integración no coherente en un bloque de » una memoria intermedia doble de energía asociada con un acelerador: permutar una asociación del bloque de la memoria intermedia doble de energía a un desplazador de datos; y transferir la integración no coherente desde el bloque de la memoria intermedia doble de energía a una memoria . 23. - El método de conformidad con la reivindicación 19, que además comprende almacenar la pluralidad de resultados de integración coherente en un bloque de una memoria intermedia doble de buscador asociada con un buscador. 24. - El método de conformidad con la reivindicación 23, que además comprende: permutar una asociación del bloque de la memoria intermedia doble del buscador a un desplazador de datos; y transferir los resultados de integración coherente desde el bloque a la memoria intermedia doble del buscador a una memoria. 25. - El método de conformidad con la reivindicación 19, caracterizado porque la ejecución de cada una de las tareas de búsqueda de espacio de código comprende : determinar una pluralidad de hipótesis de espacio de código; y correlacionar cada una de las hipótesis de espacio de código por lo menos con una porción de las muestras complejas. 26. - El método de conformidad con la reivindicación 19, caracterizado porque la determinación de la acumulación coherente comprende: transferir la pluralidad de resultados de integración coherente desde una memoria a un primer bloque de una memoria intermedia doble de muestras; permutar una asociación del primer bloque de la memoria intermedia doble a un acelerador; y determinar la acumulación coherente de la pluralidad de resultados de integración coherente en el primer bloque, 27. - Un método de búsqueda de espacio de código, el método comprende: capturar muestras complejas de una señal inalámbrica recibida; ejecutar cada una de una pluralidad de tareas de búsqueda de espacio de código para generar una pluralidad de resultados de integración coherente correspondientes a una pluralidad de hipótesis de espacio de código; almacenar la pluralidad de resultados de integración coherente en memoria; recuperar de la memoria un número de resultados de integración coherente correspondientes a una longitud de integración; y determinar una acumulación coherente del número de resultados de integración coherente. 28. - El método de conformidad con la reivindicación 27, que además comprende determinar una energía de la acumulación coherente. 29. - El método de conformidad con la reivindicación 27, que además comprende determinar una integración de energía no coherente con base en una energía de la acumulación coherente. 30. - El método de conformidad con la reivindicación 27, caracterizado porque la ejecución de cada una de la pluralidad de tareas de búsqueda de espacio de código comprende determinar una correlación de una pluralidad de hipótesis de código por lo menos con una porción de las muestras complejas. 31. - El método de conformidad con la reivindicación 27, caracterizado porque el almacenamiento de la pluralidad de resultados de integración coherente en memoria comprende: almacenar por lo menos una porción de la pluralidad de resultados de búsqueda coherente en un bloque de una memoria intermedia doble; permutar una asociación del bloque de la memoria intermedia doble; y transferir la porción de la pluralidad de resultados de búsqueda coherente desde el bloque de la memoria intermedia doble a la memoria. 32. - Un aparato para búsqueda de espacio de código, el aparato comprende: medios para capturar muestras complejas de una señal inalámbrica recibida; medios para configurar una pluralidad de tareas de búsqueda de espacio de código; medios de búsqueda, de acuerdo con cada una de las tareas de búsqueda de espacio de código, para generar una pluralidad de resultados de integración coherente obtenidos sobre un tiempo de integración inicial; y medios para determinar una acumulación coherente de una pluralidad de resultados de integración coherente, una longitud de integración y compensación de frecuencia asociadas con la acumulación coherente con base en un modo de búsqueda de espacio de código programable . 33.- Un aparato para búsqueda de espacio de código, el aparato comprende: medios para capturar muestras complejas de una señal inalámbrica recibida; medios para buscar las muestras complejas de acuerdo con cada una de una pluralidad de tareas de búsqueda de espacio de código para generar una pluralidad de resultados de integración coherente correspondientes a una pluralidad de hipótesis de espacio de código; medios para almacenar la pluralidad de resultados de integración coherente; medios para transferir un número de resultados de integración coherente correspondientes a una longitud de integración; y medios para determinar una acumulación coherente del número de resultados de integración coherente .
MX2008010827A 2006-03-02 2007-03-02 Metodo y aparto para busqueda de espacio de codigo en un receptor. MX2008010827A (es)

Applications Claiming Priority (3)

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

Publications (1)

Publication Number Publication Date
MX2008010827A true MX2008010827A (es) 2008-09-05

Family

ID=38609838

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2008010827A MX2008010827A (es) 2006-03-02 2007-03-02 Metodo y aparto para busqueda de espacio de codigo en un receptor.

Country Status (11)

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

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI426397B (zh) * 2009-06-29 2014-02-11 Lee Ming Inst Technology Can be used in a signal interval in the unequal spacing of the sample, the signal in this interval between a single and multiple numerical integration device.
EP2326022A1 (en) * 2009-11-23 2011-05-25 Nxp B.V. Device for acquiring a spread spectrum signal
JP5549471B2 (ja) * 2010-08-09 2014-07-16 株式会社デンソー 受信機
US8792438B2 (en) * 2010-10-07 2014-07-29 Futurewei Technologies, Inc. System and method for search space reconfiguration in a communications system
KR101440692B1 (ko) * 2012-05-31 2014-09-15 한국과학기술원 Gnrss 대역확산 신호의 신속한 신호 획득 및 강건한 추적을 위한 2차원 압축 상관기
US10111248B2 (en) * 2012-06-29 2018-10-23 Blackberry Limited Method and system for cross-subframe scheduling during carrier aggregation
US9107159B2 (en) 2013-06-07 2015-08-11 Apple Inc. Enhancing jitter buffer performance through radio level feedback
DE102016109342B4 (de) 2016-05-20 2024-02-22 Infineon Technologies Ag Radarsensorsystem zur gestenerkennung und verfahren zur radarbasierten gestenerkennung

Family Cites Families (9)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
US8279910B2 (en) Method and apparatus for code space search in a receiver
US6775319B2 (en) Spread spectrum receiver architectures and methods therefor
US6532251B1 (en) Data message bit synchronization and local time correction methods and architectures
EP2093584B1 (en) Processing received satellite radio signals
MX2008010827A (es) Metodo y aparto para busqueda de espacio de codigo en un receptor.
US20020113733A1 (en) Memory reduction method for a DSP-based location processor
US8238489B2 (en) Apparatus and method for processing signal using single correlator
WO2009063062A2 (en) Gnns receiver and signal tracking circuit and system
KR101170334B1 (ko) 다중위상 코드 생성기 및 gnss 수신기
US8362953B2 (en) Sequential chip correlation array
US8362952B2 (en) Memory reduction in GNSS receiver
EP1589349A2 (en) Support of the determination of a correlation
Schmidt et al. Exploiting acceleration features of LabVIEW platform for real-time GNSS software receiver optimization
Shivaramaiah et al. Software-aided sequential multi-tap correlator for fast acquisition
US20100245170A1 (en) Gnss receiver
TW202124994A (zh) 現代化全球導航衛星系統接收器
Dötterböck et al. A GPS/Galileo software snapshot receiver for mobile phones

Legal Events

Date Code Title Description
FA Abandonment or withdrawal