Como se mencionó anteriormente, nuestro sistema consta de un módulo de acondicionamiento de señales, un microcontrolador de 16 bits con capacidad de adquisición y procesamiento digital de señales y una interfase gráfica implementada en una computadora personal que sea accesible al usuario.
Las funciones que lleva a cabo el microcontrolador son las de digitalizar las señales de voltaje y de corriente, previamente acondicionadas, para llevar a cabo algunos procesamientos sobre ellas y enviar registros de resultados y formas de onda correspondientes a voltajes y corrientes de las 3 fases.
Los procesamientos que realiza el microcontrolador sobre las señales adquiridas son los correspondientes a voltajes, corrientes y potencias para las tres fases así como el periodo del sistema de potencia. Los registros de resultados junto con los nombres que utiliza el microcontrolador para designarlos y su tamaño en bytes se indican en la tabla 3.1.
El diagrama del contenido de las tramas de registros de resultados y de las formas de onda se muestra en la figura 3.1.
Va Vb Vc Ia Ib Ic Pa Pb Pc Periodo Fase
Vector de corriente
Nx2 Vector de voltaje
Envío de registros de datos
Envío de formas de onda
Figura 3.1 Envío de resultados 3.2.1 Envío de datos desde el microcontrolador
La manera en que se envían los datos desde el microcontrolador es siguiendo dos tramas, una correspondiente a los registros de resultados y la otra correspondiente a las formas de onda.
Los registros de resultados corresponden a algunos cálculos realizados sobre las señales de voltaje y corriente de las tres fases. Estos registros son enviados por el puerto serial del microcontrolador usando una subrutina llamada ‘Send_Reg’. La tabla 3.1 indica cuales son los registros de resultados que se envían y su orden correspondiente.
Número de registro
Nombre de
registro Contenido Tamaño en bytes
1 Va Voltaje de la fase A 2 2 Vb Voltaje de la fase B 2 3 Vc Voltaje de la fase C 2 4 Ia Corriente de la fase A 2 5 Ib Corriente de la fase B 2 6 Ic Corriente de la fase C 2 7 Pa Potencia de la fase A 2 8 Pb Potencia de la fase B 2 9 Pc Potencia de la fase C 2
10 Period Periodo del sistema de potencia 2
11 Fase Fase actual 1
Tabla 3.1 Registros enviados por el microcontrolador
Una vez enviados los registros de resultados se procede a enviar las formas de onda. Las formas de onda son enviadas utilizando una subrutina llamada ‘send_Wave’. Para esto es necesario saber cual es la fase que se enviará para ser desplegada en la interfase gráfica.
La digitalización de las formas de onda correspondientes a voltajes y corrientes para las tres fases se lleva a cabo continuamente mediante el convertidor analógico-digital del HC16. El envío de dichas formas de onda se lleva a cabo una fase a la vez. Esto es, dependiendo del
serial. Si el valor de dicho registro es 1 se enviarán las formas de onda de la fase A, si es 2 se enviarán las de la fase B y si es 3 se enviarán las de la fase C.
Al inicio de la trama que contiene las formas de onda se incluye una variable que indica su tamaño en bytes. El tamaño de la trama es variable ya que depende del número de muestras discretas contenidas en los vectores en memoria para las señales de voltaje y corriente.
Gracias a esta variable podemos identificar en la interfase gráfica el número de muestras tomadas para cada señal. Este dato es muy importante para los análisis a realizar posteriormente en la interfase.
3.2.2 Configuración de la recepción de datos en la interfase gráfica
Como se explicó anteriormente, uno de los objetivos principales de este trabajo de tesis es la creación de una interfase gráfica que sea capaz de establecer una comunicación confiable y segura entre el microcontrolador y una computadora personal.
Como el microcontrolador HC16 utiliza un protocolo serial de comunicación a través de una interfase serial asíncrona tipo UART para enviar o recibir datos, la interfase que se diseñe para comunicarse con el tiene que tener disponible este protocolo para la correcta recepción de datos.
El programa que utilizamos para comunicarnos con el microcontrolador, como ya se ha venido mencionando, es LabView. Este programa permite, de una manera sencilla, establecer una comunicación serial con cualquier dispositivo compatible con el protocolo RS 232.
La manera de implementar este tipo de comunicación es mediante la creación de un instrumento virtual que sea capaz de manejar este protocolo y que se configure utilizando los mismos parámetros que el microcontrolador utiliza para enviar datos, eso es para que exista una correcta sincronía entre el envío y la recepción de los datos.
Para poder implementar correctamente el protocolo RS-232 en LabView, primero debemos inicializar el puerto serial de la computadora. Para esto utilizamos un instrumento virtual diseñado exclusivamente para inicializar el puerto.
En la figura 3.2 se puede apreciar el panel frontal del instrumento que corresponde a la configuración de puerto serial de la PC. También puede observarse el diagrama de la configuración de dicho instrumento.
Por lo tanto, la configuración del puerto serial queda establecida como sigue: Puerto de comunicaciones 1
Bits de datos 8
Bits de paro 1
Bits por segundo 19200
Paridad ninguna Tabla 3.2 Configuración del puerto serial
Esta es la misma configuración que quedó establecida en el código del microcontrolador. Una vez configurado el puerto serial, es necesario configurar la recepción de datos tanto para cuando se reciben los registros de resultados como para recepción de las formas de onda.
Para esto utilizamos otro instrumento virtual en el cual únicamente indicamos el número de puerto que se va a utilizar y el número de bytes a leer. Para el caso de la recepción de los vectores de resultados, el instrumento queda configurado de la siguiente manera:
deben leer. Para el caso de la recepción de los registros de resultados, se deben leer 21 bytes, esto es debido a que se tienen 10 registros de resultados de dos bytes cada uno y uno de un byte que indica la fase actual que se mandará en las formas de onda.
Como lo indica la figura 3.3, la etapa de recepción, conversión y envío de la trama de vectores de resultados no consiste únicamente en leer los datos que provienen del puerto serial. Una vez que estos datos son leídos, es necesario convertirlos a algún formato que sea compatible con los formatos que se manejan en la interfase gráfica. Esto es debido a que los datos que envía el microcontrolador se encuentran en formato Q15 y este formato no es útil para poder realizar los cálculos en la interfase gráfica. Para entender mejor lo anterior, a continuación se dará una breve explicación de la aritmética fraccional binaria.
La representación de fracciones binarias sin signo se realiza de la misma manera que se realizaría para representar fracciones decimales, por ejemplo, si quisiéramos representar el número 0.62510 en binario, se tendría que proceder de la siguiente forma:
0.62510 = 1*0.5 + 0*0.25 + 1*0.125 = 1* 2-1
+ 0* 2-2
+ 1* 2-3
= 0.1012
Cada lugar a la derecha del punto decimal representa una potencia negativa de dos, tal como para la base 10, donde estas potencias representan una potencia negativa de 10. De igual forma, hay m bits a la derecha del punto decimal. La precisión con la que se representa el número es 2-m. A pesar de que es posible representar números mayores a uno poniendo dígitos
a la izquierda del punto decimal, generalmente esta notación se restringe para la representación de números menores de uno, siendo estos comúnmente utilizados para realizar cálculos en dispositivos como los DSP’s.
El número mas grande que se puede representar con este tipo de notación es 1-2-m;
mientras que el número mas pequeño que se puede representar es 2-m. Siendo m el número de
bits a la derecha del punto decimal.
Las fracciones binarias con signo se forman de manera similar a los números binarios enteros con signo. Si utilizamos un solo dígito a la izquierda del punto decimal, este será el encargado de representar el número –1 (=-(20)). El resto de la representación de la fracción se
mantiene sin cambios. Por lo tanto, este bit representa el bit de signo de la misma manera que en la representación de complemento a dos para enteros. Si este bit vale uno, el número es negativo, si no es así, el número es positivo. El mayor número positivo que puede ser representado sigue siendo 1-2-m, pero el número negativo mas grande que puede ser
representado es –1. La resolución es aún 1-2-m.
La terminología que se utiliza para nombrar a la resolución de las fracciones binarias con signo se conoce como Qm. Si en un número hay m bits a la derecha del punto decimal, se dice que el número se encuentra en formato Qm. Por lo tanto, para un número de 16 bits, donde se utilizan 15 bits a la derecha del punto decimal y un bit para el signo, se dice que este número se encuentra en notación Q15.
Siguiendo entonces en la figura 3.3, primero se realiza la conversión de la trama de datos (string) a un arreglo de bytes y luego a números enteros sin signo. Posteriormente se toman los vectores del 1 al 10 (vectores de 2 bytes) para realizar la conversión correspondiente
para obtener un arreglo de datos con formato de punto flotante de precisión simple. Este arreglo se normaliza en 32768 (215) para obtener un arreglo de fracciones correspondiente a los
vectores de resultados. Por último, se toma la trama en formato de entero sin signo para posteriormente obtener de ahí el último registro, el cual corresponde a la fase actual de las formas de onda. Este último byte se puede tomar en formato entero sin signo debido a que el valor de este únicamente puede ser 1, 2 o 3.
Después de recibir y convertir los registros de resultados, se deben recibir y convertir las formas de onda para poder ser procesadas. Para esto, primero convertimos a formato entero sin signo el valor del registro Nx2, el cual indica el número de muestras multiplicadas por dos que contienen las formas de onda de voltaje y corriente. La figura 3.4 muestra este procedimiento.
Figura 3.4 Recepción y conversión del registro Nx2.
Una vez convertido el valor del registro Nx2, se envía a los siguientes pasos para ser utilizado en la recepción y conversión de las formas de onda de voltaje y corriente. Las figuras 3.4 y 3.5 muestran los procedimientos que se siguen para la conversión de los vectores que contienen a las formas de onda de voltaje y corriente.
Este procedimiento es muy similar al que se siguió para la conversión de los registros de resultados. Una vez que se tiene la trama en formato entero sin signo, dependiendo del número de muestras que se hayan tomado, se separan en dos bytes cada valor de muestra tomada para hacer la conversión a punto flotante para posteriormente normalizar el vector para volverlo fraccionario y finalmente multiplicarlo por el factor de escalamiento mencionado anteriormente, ya sea para el vector de voltaje o de corriente según corresponda. Así obtenemos un arreglo que contiene los valores correspondientes a las muestras tomadas de las
Figura 3.5 Recepción y conversión del vector de voltaje.
Figura 3.6 Recepción y conversión del vector de corriente.
Una vez que tenemos los arreglos que contienen los valores convertidos de los vectores de voltaje y corriente, estos se envían hacia otras partes de la interfase para realizar los procesamientos correspondientes sobre ellos. En las secciones siguientes se explicarán dichos procesamientos.