0% encontró este documento útil (0 votos)
49 vistas20 páginas

Comunicación Serie

Este documento describe cómo establecer la comunicación serie entre un DSP F28335 y una PC. Explica los pasos para configurar los bloques SCI en Simulink, instalar el driver USB-RS232, y probar la transmisión de datos y el control de LEDs a través de la comunicación serie.

Cargado por

francisco
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
49 vistas20 páginas

Comunicación Serie

Este documento describe cómo establecer la comunicación serie entre un DSP F28335 y una PC. Explica los pasos para configurar los bloques SCI en Simulink, instalar el driver USB-RS232, y probar la transmisión de datos y el control de LEDs a través de la comunicación serie.

Cargado por

francisco
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 20

Comunicación serie

Introducción
En la siguiente nota de aplicación se detalla cual es el procedimiento necesario
para poder realizar la comunicación serie entre el DSP F28335 y la PC.

Para ello se debe hacer uso de los bloques SCI (Serial Communications Interface)
de Simulink. En el caso de la transmisión, el bloque de función SCI Transmit permite
transmitir datos escalares o vectoriales usando el Módulo de hardware SCI especificado
(siendo las opciones A,B o C). Se observa que el módulo SCIA está vinculado con el puerto
físico de transmisión del DSP, por lo tanto se trabaja con esta opción.

Por otro lado, el bloque de recepción SCI Receive recibe datos escalares o
vectoriales permintiendo comunicaciones digitales en serie entre el DSP y otros periféricos
asíncronos.

Conexionado
Se emplea un adaptador USB- RS232 y un cable serie que utiliza terminales Tx, Rx y
Gnd.

En la ficha del cable se disponen los conectores de Tx y Rx en una conexión


cruzada. La conexión se debe llevar a cabo de la siguiente forma.

1
Como se observa en la imagen el punto blanco señaliza que el conector debe
coincidir con el terminal Rx de la placa.

Driver
Descargar el driver del conversor USB-RS232, el cual es PL-2303 Vista Driver. Para
más información visitar el siguiente link (http://www.puntoflotante.net/SERIAL%20USB-
DB9.htm)

Una vez instalado debe verificarse en administrador de dispositivos que figure


Prolific USB-to-Serial Com Port, dentro de la pestaña de Puertos (COM & LPT).

Programa
Hecha la conexión correctamente e instalado el driver, se procede a realizar un
programa en Simulink que verifique la comunicación serial.

Abriendo la configuración Model Configuration Parameters en Simulink, se


acceden a las opciones de Coder Target-Groups-SCI_A.

2
Dentro de esta configuración se observan las siguientes opciones:

 Enable loopack: en caso de que se habilite esta opción, el pin Tx del DSP se
conecta internamente al pin Rx y puede transmitir datos desde el puerto de salida
al puerto de entrada verificando la integridad de la transmisión.

 Suspension mode: esta opción permite depurar el programa. Cuando éste se


encuentra en un punto de interrupción, determina si se debe realizar la instrucción
siguiente en el programa. En caso de seleccionar Free run el programa continúa
funcionando sin considerar el punto de interrupción.

 Blocking mode: si se habilita, el sistema espera hasta que los datos estén
disponibles para leer (cuando se alcanza la longitud de los datos). En caso de que

3
no se habilite esta opción, el sistema verifica el registro FIFO periódicamente (en
modo de sondeo) en busca de datos para leer. Si hay datos, el bloque lee y
muestra el contenido. Cuando no hay datos, el bloque emite el último valor y
continúa.

 En las siguientes configuraciones para la comunicación se utiliza: un bit de stop y


paridad impar. La longitud de carácter seleccionada es de 8bits ya que para este
tipo de transmisión se envian bytes.

 Desired baud rate: se utiliza una tasa de transmisión de 9600 bits/sec. Es


importante aclarar que no debe excederse de dicho valor ya que el cable utilizado
sólo permite llegar a este límite de tasa de transmisión.

 Communication mode: en el modo de comunicación se selecciona la opción


Raw_data. Dicha función permite el envío de datos cuando el lado transmisor está
listo para enviar, independientemente si el lado receptor está listo.

 La siguiente opción es Data byte order que designa el formato en el que se


almacenan los datos de más de un byte. En este caso, se opta por Little_Endian la
cual comienza enviando el byte más significativo y por último el menos
significativo.

 Data swap width permite establecer la cantidad de datos que van a ser
transmitidos, seleccionando para este caso 16bits.

Ejemplo de aplicación: Transmisión de una constante


El objetivo de esta prueba es verificar la transmisión datos. Se utiliza el bloque SCI
Transmit vinculado con una constante, cuyo valor es el que se desea transmitir.

4
Como se detalló previamente, se configura la transmisión de datos de 16bits
permitiendo enviar valores desde 0 hasta 65535.

Los bloques de Simulink para este ejemplo de aplicación se configuran de la siguiente


forma:

5
Dentro de parámetros, se selecciona SCI module A, el cual es el módulo que está
vinculado con las salida física Tx del puerto propio del DSP. A su vez, un encabezado y
finalizador de paquete con los caracteres “S” y “E” respectivamente.

No se selecciona la opción Enable transmit FIFO interrupt. En caso de que se tilde


dicha función, se genera una interrupción en la ejecución del programa siempre que el
registro FIFO esté lleno.

6
Para el bloque constante la configuración es la siguiente:

Se utiliza un valor de 1000 y el tiempo de muestreo de 1 segundo, esto quiere


decir que el puerto serie transmite cada 1 segundo. A su vez se tilda la función Interpret
vector parameter as 1-D la cual evalúa la constante como un vector de N elementos.

7
En los atributos de señal se accede la opción Output data type, seleccionando
para este caso uint16 (entero sin signo de 16 bits) ya que se trabaja con 2 bytes.

Resultado
Para esta aplicación, el valor de la constante transmitida (100010) convertida a
binario es 00000011 111010002. Si se realiza el pasaje de ambos bytes a ASCII se obtiene
como resultado los siguientes caracteres: ♥Þ .

Se verificó en la pantalla del programa HyperTerminal la recepción de estos


caracteres tal como se esperaba. De esta forma se verifica que la transmisión de datos se
lleva a cabo correctamente.

Ejemplo de Aplicación: Prueba ECO


Se realiza un programa en Simulink que permite hacer un Eco en la comunicación,
con el objetivo de poder verificar tanto la transmisión como recepción de datos por
comunicación serie.

8
Se mantienen las mismas opciones de Model Configuration Parameters que fueron
establecidas en el ejemplo anterior.

El bloque SCI Receive se configura de la siguiente forma:

9
Para esta aplicación se selecciona el módulo SCIA, no se usa encabezado o
finalizador adicional de paquete y como tipo de dato se emplea entero sin signo de 8bits.

Data length: indica cuántos tipos de datos recibirá el bloque. Los datos se
heredan de la entrada (la longitud de los datos ingresó originalmente en el bloque de
transmisión SCI del lado del host).

Initial output: indica cual es valor inicial de la salida Tx al inicial la comunicación


serie.

Action taken when connection times out: indica que ocurre con la salida cuando

10
finaliza la transmisión. Si se selecciona Output the last received value, el bloque emite el
último valor recibido. Si no se ha recibido un valor, el bloque emite el valor indicado en
Initial output.

Si selecciona Output custom value, usa el valor de salida cuando el parámetro de


conexión agote el tiempo de espera para establecer el valor personalizado.

Sample time: indica el tiempo de muestreo en la recepción, para este caso se


selecciona un tiempo de muestreo de 1 segundo.

La configuración del bloque SCI Transmit es la que se muestra a continuación.

Se utiliza el módulo A, y en este caso en particular se decide no emplear


encabezado o finalizador de paquete.

11
Resultado
Se observa como resultado que los datos introducidos por el programa
HyperTerminal son recibidos y transmitidos efectivamente. De esta forma se verifica que
la prueba Eco.

Ejemplo de Aplicación: Control de Leds por comunicación serie


En este caso se controlan el LED1 y LED2 del DSP F28335, enviando la orden de
encendido por puerto serie.

El esquema utilizado es el que se muestra a continuación:

12
El bloque SCI Receive permite recibir el dato, el cual es un carácter ASCII enviado a
través del programa HyperTerminal. Luego el bloque MATLAB Function permite procesar
el dato ingresado de acuerdo a una lógica programada. En caso de que se cumpla ciertas
condiciones de MATLAB Function encenderá un led o el otro, y en caso contrario se
mantendrán en su estado.

El bloque de función SCI Receive se configura de la siguiente manera:

13
Se utiliza el módulo SCI_A, sin encabezado ni finalizador de paquete. El valor inicial
es cero para que los Leds se encuentren inicialmente apagados. Data length de 1
indicando que solo se recibe de a un tipo de dato y tiempo de muestreo de 1ms. También
se selecciona Output the last received value, para que el bloque emita el último valor
recibido.

Al hacer doble clic en MATLAB Function se accede al editor de bloque, tal como se
muestra en la siguiente imagen.

14
Dentro de esta opción se programa el bloque para llevar a cabo el control de los
leds. Para ello, se aclara que la función cuenta con dos salidas y una entrada.

Se inicializan las salidas en cero, para que al inicio del programa los leds estén
apagados. Se emplea un conficional “if” para indicar, si la entrada “u” toma el valor 97 (lo
que en ASCII significa “a”) la salida x toma valor 1 (mientras y=0). Si no se cumple esta
condición y la entrada es igual a 115 (que en ASCII implica “s”) entonces la salida “x” se
mantiene en cero y la salida “y” es la que toma el valor 1. En caso de que ninguna de los
caracteres sea enviado las salidas se mantienen en su estado.

Los bloques GPIO Digital Output que se utilizan son el GPIO9 y el GRIO11, los cuales
están asociados a los LED1 y LED2 del DSP respectivamente.

Mediante este programa se observa que el bloque Matlab Function procesa en


formato decimal los datos ingresados en ASCII.

15
Ejemplo de Aplicación: Control en la transmisión de la salida del ADC.
En este ejemplo de aplicación se controla el envío de la salida del ADC, mediante
un caracter ASCII.

Como se observa en la imagen se utiliza del bloque SCI Receive, el cual permite
recibir el dato enviado por comunicación serie. Luego ese dato es procesado por el bloque
MATLAB function según una lógica programada. De acuerdo a los condicionales utilizados,
se activa la salida y prendiendo un LED o se activa el bloque Switch permitiendo transmitir
el dato convertido por el ADC.

El bloque SCI Transmit se configura de la siguiente forma:

16
Se selecciona el módulo SCI A, no se utiliza encabezado ni finalizador de paquete
en este caso y tipo de dato de 8bits sin signo. Data length 1 y valor inicial de la salida 0.
Output custom value para que el bloque emita el último valor recibido y output value
when connection times out en 0. El tiempo de muestreo en este caso es T.

El bloque Matlab Function se configura tal como se detalla a continuación:

17
Se declara una funcion de una entrada y dos salidas. Luego se inicializan las
variables de salida en cero, y se emplea un condicional “if”. En caso de recibir a la entrada
el valor 97 en decimal ( que en ASCII es “a”) la salida x toma valor 1. Si la entrada es 115
(que en ASCII el carácter es “s”) la salida y toma el valor 1.

El bloque ADC se configura de la siguiente forma:

18
Se selecciona el modulo A, con conversión secuencial e inicio de conversión por software.
El tiempo de muestreo debe ser mayor al tiempo de SCI Receive, en este caso 10veces T.
El tipo de Dato en uint16 y en la pestaña input chaneles se eligen las siguientes opciones

19
Trabajos a futuro:
 Usar sólo conexión USB para la comunicación

20

También podría gustarte