Pll

Embed Size (px)

Citation preview

Phase Locked Loop Se muestra las especificaciones ejecutables y el diseo con la capacidad de simulacin de Simulink. En l se destacan: 1. La creacin de modelos conceptuales de sistemas de procesamiento de seales y ejecucin de simulaciones 2. Adicin de las mquinas de estados finitos para el diseo 3. La creacin de modelos de componentes fsicos 4. Utilizando la seal discreta en el tiempo para crear modelos de seal mixta 5. Conversin de los modelos digitales a punto fijo 6. Opcional: (aun no implementado) de generacin de C y / o HDL Qu es un bucle de fase cerrado? Un bucle de enganche de fase (PLL) es un sistema de realimentacin de bucle cerrado de control que genera y enva una seal en relacin a la frecuencia y fase de una entrada ("referencia") de la seal. Un enganche de fase del circuito de bucle responde a la frecuencia y la fase de las seales de entrada, automticamente subir o bajar la frecuencia de un oscilador controlado hasta que se corresponde con la referencia tanto en frecuencia y fase. Este tipo de mecanismo se utiliza ampliamente en la radio, las telecomunicaciones, ordenadores y otras aplicaciones electrnicas donde se desea estabilizar una seal generada o para detectar seales en presencia de ruido. Desde un circuito integrado puede contener una completa de enganche de fase bloque de construccin de bucle, la tcnica se utiliza ampliamente en los dispositivos electrnicos modernos, con frecuencias de seal de una fraccin de un ciclo por segundo hasta gigahercios muchos. Un bucle de fase lineal, cerrado en Simulink El primer paso de la demostracin se muestra cmo modelar y simular un PLL lineal que puede rastrear una seal de 1 MHz de referencia. Un clsico o PLL lineal utiliza un mezclador como un detector de fase. Esto produce un componente de CC que es proporcional (pero no lineal) con la diferencia de fase y un componente en una frecuencia que es el doble de la frecuencia de entrada. Un filtro de bucle se utiliza para deshacerse del segundo componente. La salida del filtro de bucle se alimenta en un VCO que aumenta la frecuencia si hay una diferencia de fase positiva y que disminuye la frecuencia si hay una diferencia de fase negativa. Comience con los componentes bsicos de un PLL: un bloque de Multiplicar (Math Library), un bloque analgico de diseo del filtro (la biblioteca de diseo de filtro en el Signal Processing Blockset) y un oscilador controlado por voltaje (Communications Blockset, componentes sublibrary en la biblioteca de sincronizacin). Haga doble clic sobre los bloques para mostrar cmo configurar los parmetros de cada bloque: El bloque analgico de diseo del filtro; mtodo de Diseo: Butterworth, el tipo de filtro: paso bajo, el orden del filtro: 5, la frecuencia de paso de banda borde: 1e6 * 2 * pi. El bloque VCO, la frecuencia en reposo: 1E6, la sensibilidad de entrada: fase de 1E5, inicial: 0.

Phase-Locked Loop Linear o analogico

Ref

butterOut

Ref Osc2*pi*1e6 (rad/s)

Var

Vco PFD Loop Filter

Scope Continuous-Time VCO Zero-Order Hold Continuous-Time VCO

B-FFT Spectrum Scope

Con el fin de simular el sistema, se necesita una entrada de prueba y visualizacin. Para ello, aadir un bloque de onda sinusoidal (Simulink Library Fuentes) y un bloque de Alcance (Simulink biblioteca de sumideros) para el modelo. Establezca los parmetros de la onda sinodal a: Sine Wave bloque; Frecuencia: 2 * pi * 1E6, Todos los dems parmetros: por defecto. Aadir otros ejes para el bloque mbito de aplicacin, y conectar las dos entradas a las salidas del bloque de onda sinusoidal y el bloque de VCO. Cambiar el tiempo de simulacin de 50 puntos (50e-6). Conectar un bloque mbito segundo a la salida del filtro de Butterworth. Marque el bloque apropiado. Ejecutar la simulacin!

Para evaluar la calidad del PLL vamos a mirar el espectro de la seal generada. Agregar un bloque de Espectro de la biblioteca de procesamiento de seales sumideros (sinks) y cambiar sus parmetros: Parmetros del espectro de alcance; buffer de entrada: en adelante, Tamao del buffer 512, la superposicin de bfer: 256, tipo de ventana: Kaiser, Beta: 5, Especifique la longitud FFT: apagado, Nmero de promedios espectrales: 1.

Para poner a prueba la solidez de la PLL se comporta a las diferencias de fase y la frecuencia se puede cambiar la frecuencia y la fase compensada parmetros del seno. Por ejemplo, los bloqueos de PLL a frecuencias de hasta aproximadamente 1,05 MHz, pero que no se bloquee a 1,1 MHz.Adems, para otras frecuencias de 1 MHz a continuacin, la seal generada tendr un desplazamiento de fase con respecto a la portadora (la razn es que el filtro Butterworth no tiene un polo en cero (sin integrador puro). Obsrvese tambin la ondulacin en el seal de control, que es debido a los armnicos segundos de la multiplicacin. Un PLL bomba de carga con indicador digital de fase de frecuencia Detector en Simulink Los mejores resultados se puede lograr con una bomba de carga y un filtro de bucle. La bomba de carga, "bombas" de corriente en un filtro de fin de ciclo segundo. La tensin de rama del filtro de bucle se utiliza como entrada para el VCO. Un detector de fase digital de la frecuencia (DFP) determina si una corriente positiva o negativa se bombea en el filtro. Adelanto de fase corresponde a una frecuencia negativo (salida y por lo tanto disminuye la frecuencia VCO), mientras que retardo de fase corresponde a una corriente positiva. El PFD trata de una mquina de estados finitos que responde a cruces por cero de las seales de entrada. Si la seal de referencia tiene un flanco positivo primero un interruptor se activa que las bombas de una corriente positiva en el filtro de bucle, hasta que un flanco positivo de la seal del VCO se detecta (retardo de fase). Vamos a empezar por crear un modelo de comportamiento del PLL. Para modelar el PFD se utiliza una mquina de flujo de estados. Crear el cuadro de acuerdo con el siguiente diagrama:

Actualizar el diagrama y crear eventos de entrada (flanco ascendente) para la referencia y la var y una variable de salida para el s. Para poder alimentar a la seal de referencia y la seal de VCO a la carta, use un bloque Mux (enrutamiento de la biblioteca de Simulink) Implementar la bomba de carga con un bloque de ganancia. Establezca el parmetro de ganancia para 260E-6 (amperios). Un modelo de comportamiento para el filtro de bucle se puede crear con un bloque de transferencia de Fcn simple. Para establecer los parmetros de este bloque, tenemos que encontrar la funcin de transferencia para el filtro de bucle. La aplicacin de la transformada de Laplace a las ecuaciones diferenciales se obtiene:

Establece el coeficiente de Numerador del bloque Fcn transferencia a [R1 * C1, 1], y establecer el coeficiente de Denominador a [C1 * C2 * R1, (C1 + C2), 0]. A continuacin, ajuste la ganancia del bucle cambiando la sensibilidad de entrada del VCO a 3E5. Cambiar la fase inicial de-pi / 2. Asigne valores a las variables C1 , C2 y R1 en el espacio de trabajo de MATLAB: C2 = 17E-12; C1 = 82E-12;

R1 = 23e3; Ejecutar la simulacin con el Stateflow abrir para ver la animacin. Experimente con el desplazamiento de fase y frecuencia del bloque de onda sinusoidal para poner a prueba el PLL.Cambiador de Bomba Phase-Locked Loop con Detector Digital de Fase y Frecuencia

Ref

Ref Osc2*pi*1.1e6 (rad/s)

Ip Var

R1*C1.s+1 C1*C2*R1.s2 +(C1+C2)s Loop Filter Vco

PFD

Scope

Continuous-Time VCO Continuous-Time VCO

1 Ref 2 Var 260e-6 Charge Pump Chart 1 Ip

s

Una aplicacin para la bomba de carga de PFD, y filtro de bucle En el modelo anterior hemos utilizado modelos behaviorable para el PFD (diagrama de estado), la bomba de carga (Ganancia) y filtro de bucle (funcin de transferencia). Simulink tambin tiene la capacidad para simular una ejecucin fsica de estos tres componentes. Abra el modelo powerpll .

Continuous Cambiador de Bomba Pump Phase-Locked Loop Con Detector Digital de Fase y Frecuencia pow erguiref U D U contrl v ar D

Ref Osc2*pi*1e6 (rad/s)

Vco PFD Charge Pump Loop Filter

Scope

Continuous-Time VCO Continuous-Time VCO

En este ejemplo, el detector de frecuencia de fase se lleva a cabo por dos biestables y una puerta NAND. La bomba de carga y el filtro de bucle se implementan utilizando cuadras de la Blockset SimPowerSystem. Esta extensin de Simulink permite dibujar circuitos elctricos directamente en Simulink. Esto elimina el trmino necesidad de derivar las ecuaciones diferenciales y funciones de transferencia y facilita la experimentacin con diferentes topologas de red. Ejecutar la simulacin para validar el correcto comportamiento del PLL. Un PLL totalmente digital en Simulink PLL se utilizan cada vez ms en el dominio digital, esto significa que, aparte para el detector de frecuencia de fase, tambin el filtro de bucle y VCO necesitan ser para ser convertidos a sistemas de tiempo discreto. El filtro del bucle se puede convertir de Laplace a la z de dominio mediante una transformacin adecuada (por ejemplo, mantenedor de orden cero, etc bilineal). El VCO (oscilador controlado por voltaje) debe ser reemplazado por un suboficial (Oscilaator de control numrico). Abra el modelo DPLL para ver un ejemplo.

Phase-Locked Loop con NCO Todo digital

double

Ref Ip Var double

Ref Osc2*pi*1.1e6 (rad/s)

Digital Filter Loop Filter

double

Vco PFD

Scope

double

cos

ctrl

NCO

B-FFT Spectrum Scope

El filtro digital ha llevado a cabo utilizando un bloque de filtro digital de la biblioteca de diseo de filtro de la Signal Processing Blockset de. Los coeficientes del filtro se puede reproducir utilizando el cdigo siguiente:G = tf([0 R1*C1, 1],[C1*C2*R1, (C1+C2), 0]) Transfer function: 1.886e-006 s + 1 --------------------------3.206e-017 s^2 + 9.9e-011 s Gd = c2d(G,1e-8) Transfer function: 580.8 z - 577.7 --------------------z^2 - 1.97 z + 0.9696 Sampling time: 1e-008 a = Gd.den{1} a = 1.0000 -1.9696 0.9696

b= Gd.num{1}/Gd.num{1}(2) b = 0 1.0000 -0.9947

El VCO ha sido reemplazado por un subsistema que contiene un bloque que convierte la salida del filtro a un valor incremental que recorra una tabla de consulta del bloque de NCO. El valor de incremento constante que se agrega corresponde a una frecuencia de aproximadamente 1MHz. El bloque de retardo unidad se utiliza como un registro que hace que este sistema de realizacin en el software (en Simulink se rompe el bucle algebraica).

1 ctrl

double

ctrl

inc

int16

inc NCO cos

double

1

double

1 cos

To Center Freq

z Unit Delay NCO

Este digital PLL se puede convertir automticamente a los de punto flotante de cdigo ANSI C utilizando Real-Time Workshop.

La conversin de la Digital PLL de punto fijo. Muchos de los sistemas de procesamiento de seales se implementan como dispositivos de mano (por ejemplo, GPS, telfonos mviles, multimedia) y la necesidad de ser costo-effictive. Para ello, a menudo es necesario convertir el sistema de datos de tipo de punto fijo con el fin de implementar el algoritmo en cualquiera de un DSP de punto fijo, un FPGA o un ASIC (circuito integrado de aplicacin especfica). Fijo-pont tipos de datos sin embargo, introducir una serie de graves problemas en el proceso de diseo: Encontrar las longitudes ptimas de textos y la longitud de fraccin La escritura y la comprensin entera cdigo C es muy complicado y propenso a errores Entero cdigo C es difcil de depurar, localizacin de errores es difcil Voluntariado (secuencial) C (paralelo) de HDL es un reto

Simulink evitar estos desafos mediante: 1. Separando los tipos de datos de la algoritms 2.Separando los tipos de datos a partir del valor Simulink logra esto proporcionando las siguientes capacidades: Simulink puede mostrar el tipo de datos en el diagrama de bloques Los mismos bloques que operan en datos de coma flotante tambin operan en el punto fijo de datos. Por consiguiente es fcil de cambiar. Simulink puede registrar el rango de las seales del modelo, junto con los desbordamientos (si existe). Simulink puede sugerir y aplicar longitudes fraccin, basado en los rangos de una simulacin de referencia.

Vamos a utilizar el PLL totalmente digital para mostrar cmo convertir un modelo de punto flotante de Simulink a punto fijo, utilizando las capacidades mencionadas anteriormente. En primer lugar, active el etiquetado de tipo de datos para mostrar los tipos de datos de todas las seales en el modelo: el men Formato -> Puerto / Seal de Pantallas -> Tipos de datos del puerto. Todos etiqueta se lea "doble" que es una de 8 bytes de punto flotante de tipo de datos. Para convertir el modelo, vamos a cambiar el tipo de datos de la NCO (que en realidad estamos cambiando el tipo de datos de las entradas en la tabla de consulta). Abra el subsistema de Suboficiales y de la ventana del bloque de suboficiales de dilogo de parmetros. Seleccione la segunda ficha para cambiar el tipo del bloque de datos. Establecer el tipo de datos de salida a escala binaria punto con una longitud de palabra de 16 bits y una longitud fraccin de 14 bits. Use un bloque de conversin de tipo de datos para establecer el tipo de dato de la seal de referencia a "heredar a travs de propagacin hacia atrs". Actualizar el diagrama. Ntese que la salida de la NCO y el bloque de tipo de datos de conversin han cambiado a sfix16_n14. Este tipo de datos tiene un rango de [-2 2]. Para cambiar la salida del bloque Stateflow, abra el Explorador de modelos de flujo de estados (men Ver -> Explorador de modelos). A continuacin, seleccione el objeto s de datos en el panel central, y cambiar su tipo de datos a una de 16 bits firmado nmero de punto fijo con 14 bits de escala.

Actualizar el diagrama, tenga en cuenta que el modelo completo es ahora de punto fijo. Tenga en cuenta que no tena que realizar ningn cambio en el propio algoritmo, o sustituir cualquiera de los bloques en el modelo. Correr el modelo muestra que el PLL no se comporta correctamente. Optimizacin de punto fijo de tipos de datos Para resolver el problema, vamos a usar las herramientas de punto fijo disponibles en Simulink de punto fijo.

1. Para verificar que los tipos de punto fijo de datos de hecho son la causa de la conducta incorrecta, ejecutar una simulacin de referencia con el tipo de datos configurado para reemplazar "dobles" True. Tenga en cuenta que los tipos de datos en el modelo ha cambiado a "doble" de nuevo, y que el PLL se comporta de nuevo correctamente! 2. Ejecutar la simulacin de referencia de nuevo, pero ahora con el modo de registro ajustado al mnimo, los mximos y los desbordamientos. Tenga en cuenta el registro de los rangos (no se desborda debido a los tipos de datos de punto flotante) 3. Ejecutar una simulacin activa de nuevo, pero con el tipo de datos anulan en "Usar la configuracin local". Tenga en cuenta los desbordamientos en el bloque de filtro de bucle (acumulador y salida del producto). 4. Utilice las capacidades de la herramienta autoscaling de Punto Fijo para optimizar la longitud de fraccin de las variables internas del filtro. Abra la ficha de punto fijo de la ventana del bloque de filtro de bucle de dilogo de parmetros. Cambiar el modo de redondeo al ms prximo Cambiar el modo de tipo de datos de todas las variables internas a la ampliacin binario punto. Utilice una longitud de palabra de 32 bits para la salida del producto y el acumulador y una longitud de palabra de 16 bits para el Estado y Ouptut. En la herramienta de Punto Fijo seleccionar Auto-escala usando de referencia y establecer un margen de seguridad 10 por ciento proponer y aceptar las longitudes nueva fraccin utilizando los dos botones en la parte inferior de la vista de cuadro de dilogo de la herramienta de Punto Fijo

Warning: Parameter precision loss occurred for ''Numerator coefficients''. The parameter's value cannot be represented exactly using the run-time data type. A small quantization error has occurred. You can control this diagnostic on the Diagnostics pane of the Configuration Parameters dialog. This originated from 'dpll_fixpt/Loop Filter'.

Warning: Parameter precision loss occurred for ''Denominator coefficients''. The parameter's value cannot be represented exactly using the run-time data type. A small quantization error has occurred. You can control this diagnostic on the Diagnostics pane of the Configuration Parameters dialog. This originated from 'dpll_fixpt/Loop Filter'. Warning: Parameter precision loss occurred for ''Numerator coefficients''. The parameter's value cannot be represented exactly using the run-time data type. A small quantization error has occurred. You can control this diagnostic on the Diagnostics pane of the Configuration Parameters dialog. This originated from 'dpll_fixpt/Loop Filter'. Warning: Parameter precision loss occurred for ''Denominator coefficients''. The parameter's value cannot be represented exactly using the run-time data type. A small quantization error has occurred. You can control this diagnostic on the Diagnostics pane of the Configuration Parameters dialog. This originated from 'dpll_fixpt/Loop Filter'. Warning: Overflow occurred. This originated from 'dpll_fixpt/NCO/NCO'.

double

Phase-Locked Loop Todo Digital con NCO 16-bit fixed-point version Ref Osc

2*pi*1.1e6 (rad/s)

Convert

sf ix16_En14

Ref Ip Var sf ix16_En14

Digital Filter Loop Filter

sf ix16_En9

Vco PFD

Scope

sf ix16_En14

cos

ctrl

NCO

B-FFT Spectrum Scope

Ejecutar la simulacin de nuevo para ver que los desbordamientos han desaparecido y que el PLL de punto fijo se ejecuta como se esperaba!

Tenga en cuenta que las cerraduras de PLL a la frecuencia de entrada 1,1 MHz, luego de alrededor de 10 mu. Software y hardware de generacin de cdigo Esto concluye la demostracin. El siguiente paso sera generar VHDL, Verilog o cdigo ANSI C a partir del modelo.