biblioteca para java - intesc€¦ · biblioteca para java sade (sistema de adquisición de datos...

13
SADE Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia mediante comandos en lenguaje de alto nivel. En el siguiente diagrama se muestran los recursos con los que cuenta SADE. Descripción: SW: Se puede obtener una lectura de los switches de la tarjeta. LED: Podemos mandar información a los LEDs. IO PIN: SADE cuenta con 13 pines que se pueden configurar como entrada, salida e inclusive como PWM BiPORT: Puerto bidireccional de 8 bits que se puede configurar como entrada o salida. I2C: Protocolo de comunicación I2C para dispositivos que lo requieran. RS232 (PC): La tarjeta Symbhia cuenta con un convertidor USB-RS232 por lo que podemos utilizar los puertos COM de nuestra PC y trabajar con velocidades de transmisión de hasta 3 Megabaudios.

Upload: others

Post on 18-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

SADE

Biblioteca para JAVA

SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita elmanejo de la tarjeta Symbhia mediante comandos en lenguaje de alto nivel. En el siguiente diagramase muestran los recursos con los que cuenta SADE.

Descripción:

SW: Se puede obtener una lectura de los switches de la tarjeta.

LED: Podemos mandar información a los LEDs.

IO PIN: SADE cuenta con 13 pines que se pueden configurar como entrada, salida e inclusive como PWM

BiPORT: Puerto bidireccional de 8 bits que se puede configurar como entrada o salida.

I2C: Protocolo de comunicación I2C para dispositivos que lo requieran.

RS232 (PC): La tarjeta Symbhia cuenta con un convertidor USB-RS232 por lo que podemos utilizar los puertos COM de nuestra PC y trabajar con velocidades de transmisión de hasta 3 Megabaudios.

Page 2: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

RS232 (SADE): Protocolo RS232 para utilizarlo con dispositivos externos como por ejemplo un módulobluetooth HC-05, a diferencia del RS232 (PC) con éste recurso trabajamos a velocidades más lentas ya que está configurado para trabajar a 9600 baudios. También cuenta con un pin para utilizarlo como interrupción que indica cuando se ha hecho una recepción, es muy útil si queremos tener más control al realizar la comunicación.

Symbhia también cuenta con un PSoC que es un microcontrolador de uso general, por lo que nospermite hacer uso de sus recursos para ampliar la utilidad de SADE, por lo que podemos utilizar lossiguientes recursos:

ADC – ADC CHAN: Podemos hacer conversiones analógico-digital, en los 4 canales disponibles en el PSoC.

DAC: También se pueden realizar conversiones digital-analógico.

La siguiente imagen muestra la ubicación de cada recurso.

LED

SW

IO PIN

I2CD4 – SDAC4 - SCL

BiPORTMSB – D5LSB - D11

RS232PC

CANALESANALÓGICOS

DAC

RS232 SADEB9 – RX F10 – TX A9 – INT.

Page 3: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

Esta biblioteca hecha en JAVA tiene como objetivo utilizar los recursos SADE mediante unainterfaz creada por el usuario y la utilización de comandos predefinidos.

Programación.

El template de JAVA cuenta con 7 clases, cada una para realiza una función específica y unalibrería (libIntescRS232.dll) que se encarga de hacer la interacción con los puertos.

Clase “grafico.java”: En esta clase podemos crear nuestra parte gráfica, se pueden agregar lineas,figuras geométricas e inclusive imágenes.

Clase “HexToDec.java”: Se utiliza para hacer una conversión de hexadecimal a decimal.

Clase “Hilo.java”: En esta clase escribiremos nuestro código que se va a estar ejecutándoseconstantemente.

Clase “LibRS232.java”: Contiene las funciones necesarias para configurar el puerto COM, como porejemplo buscar los puertos disponibles, abrir puerto, la velocidad de transmisión, envio y recepción dedatos.

Clase “SADESymbhiaRevB.java”: Contiene los métodos para utilizar los recursos de SADE.

Page 4: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

A continuación se muestra como utilizar los métodos dentro de la clase“SADESymbhiaRevB.java”.

Para obtener los métodos dentro de la clase “SADESymbhiaRevB.java” se creó un objetollamado “comando” (el nombre se puede cambiar), el cual hereda dichos métodos para controlar losrecursos de SADE:

SADESymbhiaRevB comando = new SADESymbhiaRevB();

Al desplegar el menú de contenido (presionando “Ctrl” + “Espacio”), podemos posicionarnos enel método a utilizar y se desplegará un cuadro de diálogo con la descripción de dicho método.

También nos muestra los pines que podemos utilizar como entrada, salida o PWM.

Page 5: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

Algunos comandos piden ciertos parámetros, dependiendo el tipo de variable es lo que se pondrádentro de los paréntesis:

byte → Valor tipo byte, por ejemplo: (byte) 0xaaint → Valor tipo entero, por ejemplo: 1,2,3,….Boolean → Valor tipo booleano, por ejemplo: true, false

IMPORTANTE: Todos los comandos que devuelvan un valor será de tipo byte.

1) LEDS(byte VALOR_A_LEDS)

Comando que manda a los leds un valor de 8 bits, el cual tiene que ser tipo byte. Este método nodevuelve ningún valor. Acá un código de ejemplo:

byte valor = 0x55; //Se carga el número 55 (hexadecimal) = 0101 0101 (binario)comando.LEDS(valor);//Lo mandamos a los LEDs

Ubicación LEDs:

LED

Page 6: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

2) ADC(int CANAL)

Comando que se utiliza para trabajar con el ADC del PSoC seleccionando uno de los cuatro canalesanalógicos disponibles, dentro de los paréntesis se colocará el canal a usar poniendo el número del1-4. Una vez que se seleccionado el canal, siempre devolverá un byte con el valor de la conversión.

El siguiente código de ejemplo muestra como utilizar este comando:

byte valor_adc = comando.ADC(1); /*Seleccionamos el canal analógico 1 y el valor que devuelve lo guardamos en la variable tipo byte “valor_adc”*/

comando.LEDS(valor1); //Mandamos a los LEDs el valor leido por el ADC

NOTA: Es importante mandar a tierra los canales que no se utilicen para evitar lecturas erróneas.

Ubicación canales ADC:

CANALES ANALÓGICOS

Page 7: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

3) I2C_Write(byte SLAVE_ADDRESS, byte REG_ADDRESS, byte REG_DATA)

PINES: SDA – D4, SCL – C4

Con éste comando se manda a escribir a un registro de un dispositivo mediante protocolo I2C, sólo senecesitan poner los siguientes parámetros: “SLAVE_ADRESS” (Dirección esclava del dispositivo),“REG_ADRESS” (Dirección del registro a escribir), “REG_DATA” (Dato a escribir) todos siendo de tipobyte. Este comando no devuelve ningún valor.

byte dir_esclava = 0x1d; //Dirección esclava del dispositivobyte dir_registro = 0x2a; //Dirección del registro a escribirbyte dato = 0x2a; //Dato a escribir

comando.I2C_Write(dir_esclava, dir_registro, dato); /*Mandamos toda la información por I2C*/

4) I2C_Read(byte SLAVE_ADDRESS, byte REG_ADDRESS)

PINES: SDA – D4, SCL – C4

Comando que se utiliza para leer un dato de un dispositivo mediante I2C. Los parámetros que pidenson la dirección esclava y la dirección del registro a leer ambos valores de tipo byte. El comandodevuelve un byte. NOTA: Siempre se estará recibiendo un dato del registro.

byte dir_esclava = 0x1d; //Dirección esclava del dispositivobyte dir_registro = 0x01; //Dirección del registro a leer

byte dato = comando.I2C_Read(dir, dir_registro); /* Mandamos toda la información por I2C y guardamos el dato recibido en la variable tipo byte “dato” */

Ubicación I2C:

I2CD4 – SDAC4 - SCL

Page 8: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

5) SW()

Se utiliza para leer los Switches de la tarjeta Symbhia. Este comando devuelve un byte.

byte valor_sw = comando.SW(); /* Leemos de los switches y el valor que devuelve lo guardamos en la variable “valor_sw” */

Ubicación SW:

SW

Page 9: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

6) PWM(int PERIODO_PWM,int CICLO_PWM,byte PIN_FPGA)

PINES: G1, F1, E1, F3, B3, A3, A4, B5, A5, A6, C6, A7, B7.

Con este método utilizamos como PWM uno de los pines de la tarjeta Symbhia. Sólo se debenespecificar los parámetros que se encuentran dentro de los paréntesis. Este comando no devuelveningún valor. El pin seleccionado quedará funcionando como PWM hasta que no se le asigne un nuevociclo de trabajo o una nueva función.

int periodo = 10000; //Periodo del PWM (200 us) int ciclo = 100; //Ciclo de trabajo del PWM (2 us)

comando.PWM(periodo, ciclo, comando.G1); /*Seleccionamos el pin G1 de la tarjeta para utilizarlo como PWM */

Fórmulas:

valor_periodo = (Tiempo_periodo) * (50,000,000)valor_ciclo = (Tiempo_ciclo_trabajo * 50,000,00)

Ubicación PWM:

IO PIN

Page 10: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

7) Pin_Out(byte PIN_FPGA,boolean VALOR)

PINES: G1, F1, E1, F3, B3, A3, A4, B5, A5, A6, C6, A7, B7.

Se nombra el pin de la tarjeta y lo convierte como salida, cuando VALOR = true se manda un '1' lógicoy VALOR = false se manda un '0' lógico. Este comando no devuelve ningún valor.

comando.Pin_Out(comando.G1, true); /*Seleccionamos a G1 como pin de salida y mandamos un '1' lógico */

comando.Pin_Out(comando.G1, false); /*Seleccionamos a G1 como pin de salida y mandamos un '0' lógico */

8) Pin_In(byte PIN_FPGA)

PINES: G1, F1, E1, F3, B3, A3, A4, B5, A5, A6, C6, A7, B7.

Selecciona y convierte un pin de la tarjeta como entrada. Este comando sí devuelve un byte aunque únicamente son 2 valores: 0x00 y 0x01.

byte v_pin = comando.Pin_In(comando.G1); /*Seleccionamos a G1 como pin de entrada y el valor lo guardamos en “v_pin” */

Ubicación IO PIN:

PIN IO

Page 11: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

9) BiPort_Out(byte BYTE_A_ESCRIBIR)

PINES: D5 al D11

Manda un valor de 8 bits a un puerto ya predefinido. Este comando no devuelve ningún valor.

byte dato = 0x55; //Dato a mandarcomando.BiPort_Out(dato); //Mandamos a “dato” en el puerto

10) BiPort_In()

PINES: D5 al D11

Lee un byte de un puerto predefinido. Este comando regresa un byte.

byte v_puerto = comando.BiPort_In(); /* Leemos el puerto y el dato lo guardamos en “v_puerto” */

Ubicación BiPORT:

BiPORTMSB – D5LSB - D11

Page 12: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

11) DAC(byte VALOR_DAC)Comando para utilizar el convertidor Digital/analógico del PSOc. Este comando no devuelve ningún valor.

byte valor_digital = 0xff; //Valor que convertiremos a analógicocomando.DAC(valor_digital); //Hacemos la conversión D/A

Fórmula:

Voltaje de salida = 3.4 – (Valor_digital*0.011)

donde: Voltaje de salida – cuyo rango va de 0 a 3.4V y Valor digital – cuyo rango va de 0 a 255

Ubicación DAC:

DAC

Page 13: Biblioteca para JAVA - INTESC€¦ · Biblioteca para JAVA SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia

12) RS232_SADE_Write(byte DATO)

PINES: B9 – RX, F10 – TX, A9 – Bit de interrupción.

Envia un byte mediante protocolo RS232 cuya velocidad de transmisión es de 9600 baudios, es útil para comunicarnos con dispositivos externos que soporten este protocolo.

byte DATO = 0x55; //Byte a enviarcomando.RS232_SADE_Write(DATO); //Mandamos el byte “DATO”

12) RS232_SADE_Write(byte DATO)

PINES: B9 – RX, F10 – TX, A9 – Bit de interrupción.

Recepción de un byte mediante protocolo RS232 cuya velocidad de transmisión es de 9600 baudios,

byte DATO = comando.RS232_SADE_Read(); //Leemos el byte recibido y lo guardamos en//la variable “DATO”

NOTA: El bit de interrupción puede usarse para saber cuando se ha recibido un dato.

Ubicación RS232 de SADE:

RS232 SADEB9 – RX F10 – TX A9 – INT.