Generador de onda sinusoidal desfasado CNC basado en FPGA
En algunos experimentos e investigaciones, a veces se necesitan dos señales de la misma frecuencia con una diferencia de fase. Por lo general, se implementa utilizando una red de cambio de fase, como cambio de fase de resistencia-condensador, cambio de fase de transformador, etc. Existen muchas deficiencias en el uso de estos métodos, tales como: la forma de onda de salida se ve afectada por la forma de onda de entrada, la operación de cambio de fase es inconveniente, el ángulo de cambio de fase se ve afectado por factores como la frecuencia de la señal y la carga conectada, etc. Si se utiliza síntesis de frecuencia digital directa y tecnología de cambio de fase digital, se pueden obtener señales altamente estables y precisas con diferencias de frecuencia y fase, que son fáciles de implementar.
2. El principio de composición del sistema del generador de formas de onda y de cambio de fase
La Figura 1 muestra el diagrama de bloques de composición del sistema del generador de formas de onda y de cambio de fase.
Figura 1 Diagrama de bloques principal de la composición del sistema de forma de onda y generador de forma de onda desfasada
El reloj estándar (generado por el circuito oscilador de cristal) se agrega a la base programable Contador de n-base y su desbordamiento. Se agregan pulsos al contador de direcciones que se pueden preestablecer con un valor inicial para generar la señal de dirección requerida por la memoria de forma de onda. La frecuencia de generación de la señal de dirección es proporcional a la frecuencia del reloj y cambia repetidamente. , de modo que la memoria de datos de forma de onda genera una secuencia sinusoidal periódica, D/A. El convertidor genera una forma de onda de voltaje (o corriente) sinusoidal analógica continua, como se muestra en la Figura 2.
Figura 2 La relación entre la frecuencia y la fase de dos formas de onda sinusoidales de la misma frecuencia en un ciclo y el ciclo de reloj
Para facilitar el cambio de fase, suponga que la onda sinusoidal en un ciclo tiene un muestreo máximo de 360 puntos, es decir, la memoria de datos de forma de onda almacena los datos de 360 formas de onda sinusoidales. Dado que el valor inicial de la primera ejecución del contador de direcciones de la forma de onda desfasada es m, la diferencia de fase entre las dos ondas sinusoidales es m°. Es decir, hay n intervalos de pulso de reloj estándar entre puntos de muestreo adyacentes. La frecuencia a la que se leen una vez todos los datos de la memoria de datos de forma de onda de la Figura 1 es: . Cambiar n y m puede cambiar la frecuencia y la fase de la señal de salida. Si la frecuencia del reloj es de 100 MHz, entonces. Por ejemplo, si n es 1000 ym es 120, se genera una señal sinusoidal con una fase de 120° y una frecuencia de 277,8Hz. Cuando n=1, la frecuencia de señal más alta es 277,8 KHz.
3. Diseño de software y hardware del sistema
FPGA es un dispositivo lógico programable a gran escala desarrollado en la década de 1990. Con el avance de la tecnología EDA y la tecnología microelectrónica, el retraso del reloj de FPGA puede alcanzar el nivel ns. El modo de trabajo tiene perspectivas de aplicación muy amplias en velocidad ultra alta y medición y control en tiempo real, y FPGA tiene alta integración y alta confiabilidad. Casi todo el sistema de diseño se puede descargar en el mismo chip para realizar el llamado sistema en un. chip, reduciendo así en gran medida el tamaño del sistema. Con este fin, el autor diseñó un generador de señales de onda sinusoidal digital de alta precisión basado en FPGA. Este dispositivo puede generar señales de onda sinusoidal bidireccionales cuya frecuencia, fase y amplitud se pueden preestablecer y ajustar digitalmente. El rango de diferencia de fase es de 0~359° en pasos de 1°. El sistema utiliza el chip de matriz de puerta programable en campo XC2S100E-6PQ208E de la serie Spartan II de Xilinx. La frecuencia de reloj máxima del chip puede alcanzar los 200 MHz, el voltaje de funcionamiento es de 2,5 V, utiliza un proceso CMOS de 0,22 μm/18 μm y está fabricado con 6 capas de cableado metálico. El número de puertas del sistema es 100.000 y el número de matrices CLB es 20. ×30, y la capacidad del bloque RAM es de 40 Kbit, el número máximo de E/S de usuario es 202.
El bloque RAM interno de la FPGA se utiliza para almacenar los datos de 360 puntos de muestreo de un ciclo de onda sinusoidal. Cada dato es de 8 bits. Se utiliza un convertidor A/D de 8 bits AD7524 para generar la señal sinusoidal. Luego use la salida de un convertidor A/D de 10 bits AD7520 como voltaje de referencia del AD7524 para ajustar digitalmente la amplitud de la onda sinusoidal de salida. La generación de otra onda sinusoidal desfasada adopta la misma estructura de circuito. El diagrama esquemático del circuito general se muestra en la Figura 3. El tubo digital LED se utiliza para mostrar la frecuencia, la diferencia de fase y la amplitud de la señal de salida. El interruptor DIP BCD se utiliza para preestablecer los valores de frecuencia, fase y amplitud. Los dos botones se utilizan para ajustar los valores de frecuencia, fase y amplitud hacia arriba y hacia abajo respectivamente.
Para ahorrar gastos generales de hardware y líneas de puerto de E/S FPGA, se utiliza un interruptor DIP de 2 bits para configurar los estados de visualización, preajuste y ajuste, es decir, frecuencia, diferencia de fase y amplitud.
El sistema está diseñado de forma modular utilizando el lenguaje de descripción de hardware VHDL. Se divide en módulos de control de ajuste preestablecido de frecuencia, diferencia de fase y amplitud, módulos de generación de formas de onda sinusoidales y desfasadas, y módulos de visualización. y módulos de nivel superior, etc. A través de la plataforma de desarrollo de software Xilinx ISE 5.2 y la herramienta de simulación ModelSim Xilinx Edition 5.6 XE, los archivos de diseño se completan automáticamente con compilación lógica, simplificación, síntesis y optimización lógica, diseño y enrutamiento lógico, simulación lógica y, finalmente, la programación y descarga de el chip FPGA. Debido a limitaciones de espacio, aquí solo presentamos el método de diseño del módulo de generación de formas de onda sinusoidal y de fase desplazada (el programa completo se puede obtener del autor). Este módulo se divide en dos procesos. Parte del programa es la siguiente:
proceso (clk)
temperatura variable: std_logic:='0'
comenzar
si rise_edge (clk) entonces
si temp='1' entonces vlt;=v1; temp:=not temp;v11lt;=d;
else vlt;=v2; temp:= not temp; v12lt; = d;
end if;
case v is --La siguiente declaración cuando es la tabla ROM de datos de 360 formas de onda sinusoidales. y por último se dan aquí varios.
cuando "000000000"=gt;dlt;="10000000";cuando "000000001"=gt;dlt;="10000010";
cuando "000000010"=gt;dlt ;="10000100";cuando "000000011"=gt;dlt;="10000111";
......
cuando "101100100"=gt;dlt;= "01110111"; cuando "101100101"=gt;dlt;="01111001";
cuando "101100110"=gt;dlt;="01111100"; cuando "101100111"=gt;dlt;=" 01111110";
cuando otros=gt; null;
finalizar caso;
finalizar si;
finalizar proceso;
proceso (clk)
recuento de variables, recuento, b: rango de enteros de 0 a 277778;
comenzar
si rise_edge(clk) entonces
if sw='0' then signlt;='1';
else --Usa la resta para implementar la operación de división.
si cuenta; 277778 entonces cuenta:=cuenta n;b:=b 1;--La señal n se envía desde el módulo de ajuste y preajuste de frecuencia.
else
si cuenta=b entonces cuenta:=1
si signo='1' entonces v1lt;="000000000"; ;signlt;='0';end if;--La señal m se envía desde el módulo de preajuste y ajuste de fase.
si v1="101100111" entonces v1lt;="000000000"; else v1lt;=v1 1;finalizar si;
if v2="101100111" entonces v2lt;="000000000 ";else v2lt;=v2 1;finalizar si;
else
cuenta:=cuenta 1;
finalizar si;
finalizar si;
finalizar si
finalizar si
finalizar proceso
Utilice ModelSim Xilinx Edition 5.6d XE para este módulo; La forma de onda simulada por la herramienta de simulación se muestra en la Figura 4.
4. Conclusión
Este diseño es un generador de señal de onda sinusoidal digital de alta precisión con desplazamiento de fase basado en FPGA, que hace pleno uso del lenguaje de descripción de hardware VHDL para una programación conveniente, mejora la eficiencia del desarrollo, acorta el ciclo de desarrollo y hace el sistema es fácil de depurar y modificar. Los experimentos muestran que la forma de onda generada por el sistema es estable, tiene una fuerte capacidad antiinterferente, ajuste conveniente de frecuencia, fase y amplitud, alta precisión y tiene cierto valor de desarrollo y producción.