FPGA CDMA tracking

1

Considere un transmisor CDMA que use DSSS que esté en movimiento con respecto al receptor (satélite). Supongamos que el código PN está sincronizado con un chip, es decir, que la adquisición se ha completado. ¿Cómo se implementa el seguimiento de código actualmente en los FPGA?

Lo que me gustaría hacer es usar un PLL para sincronizar con el reloj del chip satélite. La teoría es maximizar la correlación cruzada dirigiendo el PLL. Sin embargo, parece que no puedo modificar el detector de fase dentro del PLL en los FPGA en las partes de Altera.

Lo que puedo pensar es:

  1. Usar PLL externo
  2. Use un PLL totalmente digital con un NCO (tiene un error de cambio de fase finito)
  3. Encuentre un FPGA que tenga PLL internos con la capacidad de usar un PD personalizado
  4. Implemente un PLL interno fuera de la lógica FPGA, y tenga un VCO y filtro externos
  5. Tener un bucle de control que modifique los contadores de PLL

Entonces, ¿qué se usa generalmente para un sistema así en la actualidad? ¿Alguna nota de la aplicación sobre el tema?

    
pregunta user110971

1 respuesta

1

Se deben considerar diferentes relojes y tasas:

  1. La velocidad de viruta (recibida) de la señal (modificada por Doppler)
  2. La tasa de muestreo
  3. El (los) reloj (es) en que se ejecuta su FPGA.

diseños de señal síncrona

Su propuesta utilizando el PLL interno requeriría ejecutar parte de la lógica FPGA (el generador de código) con una relación de fase fija a la tasa de chip recibida (que es variable para un receptor / transmisor en movimiento). Como desea modular este código en la señal recibida, el proceso de muestreo también debería ser una fase fija para los chips. Combinar señales de diferentes dominios de reloj en un mezclador es imposible (a menos que emplee una conversión de frecuencia de muestreo, ni siquiera piense en esto).

Así que, básicamente, todo está fijado a la tasa de chip. Me atrevo a decir que esta no es una configuración común , ya que la mayoría de los sistemas tienen restricciones de tiempo adicionales, es decir, para interfaces de memoria, y los receptores GNSS necesitan rastrear más de una señal.

osciladores controlados numéricos

Para ser independiente de la velocidad de viruta observada variable, necesita emplear un oscilador controlado numérico. Este oscilador puede ejecutarse en la frecuencia de muestreo o en el reloj FPGA. Ejecutarlo en la frecuencia de muestreo facilita las cosas ya que solo hay un error de reloj local.

Es posible que desee asegurarse de que la fracción entre la frecuencia de muestreo y la velocidad de viruta no sea un armónico de orden bajo. De hecho, tonos espurios no se pueden evitar por completo, pero la consideración del ruido de cuantificación y sus armónicos y el efecto en su señal pueden salvar su día. Fractional-N es una necesidad, el vaciado puede ayudar.

Me atrevo a decir que esta es una configuración muy común .

opcional: reloj FPGA > > tasa de muestreo

Puede estar tentado a ejecutar la lógica FPGA en el reloj ADC. Esto facilita módulos simples ya que hay datos válidos en cada ciclo de reloj. Sin embargo, esto normalmente solo funciona para una parte de su diseño. Si tiene un filtro de reducción, su tasa de símbolos será menor después de ese filtro y la señalización asíncrona (Avalon ST) es obligatoria.

El uso del diseño asíncrono (con el reloj lógico > frecuencia de muestreo) desde el inicio de la ruta de su señal le da un valor adicional:

  1. Puedes multiplexar en el tiempo parte de tu ruta de señal.
  2. Puede detener o reconfigurar el ADC sin poner el FPGA en espera.
  3. La dependencia implícita del reloj se evita para su HDL, lo que facilita su comprensión.
respondido por el Andreas

Lea otras preguntas en las etiquetas