SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
Comunicaci´on Serial As´ıncrona
Zaraos V´azquez Jorge Alejandro , Toala Hern´andez Jahaziel,
Rodr´ıguez Morales Guillermo de Jesus
Instituto Tecnol´ogico de Tuxtla Gutierrez, Chiapas
aleh.kz@hotmail.com
angelblack 035@hotmail.com
nemesis rmgj@hotmail.com
Resumen – En esta pr´actica utilizaremos dos
Stellaris, donde se quiere manipular la trama de
datos que recibir´a un Stellaris se configuraran las
UART’s como objetivo principal de la pr´actica es
recibir y transmitir datos por la UART, lo que se
pretende hacer es manipular el dato que se recibe.
I. INTRODUCCI´ON
UART es el componente clave del subsistema de comunica-
ciones series. El UART toma bytes de datos y transmite los
bits individuales de forma secuencial. En el destino, un segundo
UART reensambla los bits en bytes completos. La transmisi´on
serie de la informaci´on digital (bits) a trav´es de un cable ´unico
u otros medios es mucho m´as efectiva en cuanto a costo que la
transmisi´on en paralelo a trav´es de m´ultiples cables. Se utiliza
un UART para convertir la informaci´on transmitida entre su
forma secuencial y paralela en cada terminal de enlace. Cada
UART contiene un registro de desplazamiento que es el m´etodo
fundamental de conversi´on entre las forma serie y paralelo.
La transmisi´on serial es aquella donde la informaci´on es
enviada bit por bit hacia un determinado destino. Es lenta
pero mucho m´as confiable por lo que tiende a usarse para
transmisiones a larga distancia que no requieran de altas
velocidades de respuesta. La transmisi´on serial as´ıncrona es
aquella en la que los bits de datos de una car´acter se transfieren
de manera independiente en el tiempo con respecto a otro
car´acter, precedidos de un bit de arranque y un bit de paro.
De tal manera que para esta t´ecnica cada car´acter consta de
tres partes: un bit de inicio, bits de caracteres y un bit de
paro. El bit de inicio siempre es cero y se utiliza para anunciar
que comienza un car´acter. El bit de paro siempre es 1, valor
que se mantiene por al menos el tiempo correspondiente a
un bit para indicar que ha culminado el car´acter enviado.
La unidad receptora puede detectar un car´acter a trav´es del
conocimiento de las siguientes reglas:
Una l´ınea desocupada siempre se encuentra en estado
uno.
El inicio de la transmisi´on puede detectarse a partir
del bit de inicio que es siempre cero. Los bits que le
prosiguen le corresponden a los bits del car´acter.
Para se˜nalar la culminaci´on de la transmisi´on se
utiliza un bit de alto, el cual consiste en una l´ınea
que se mantiene en estado uno por m´as tiempo de lo
predeterminado para un bit.
De tal manera el reloj interno del receptor, que conoce la ve-
locidad de transmisi´on de los bits examina la l´ınea de tiempos y
puede reconocer el inicio y fin de una trama. El tiempo del bit de
paro puede ser el concerniente a uno o dos bits, que es el tiem-
po que necesitar´an las unidades para sincronizarse de nuevo.
II. FUNDAMENTOS TE´ORICOS
A. Stellaris LM4F120
El stellairs LM4F120 LaunchPad Evaluation Board
es una plataforma de evaluacion de bajo costo para
ARM Cortex -M4F basados en microcontroladores de
Texas Instrument, el dise˜no de el LaunchPad stellaris
destaca LM4F120H5QR microcontrolador con un dispos-
itivo de interfaz USB 2,0 y un m´odulo de hibernaci´on.
El EK-LM4F120XL tambi´en cuenta con botones pro-
gramables de usuario y un LED RGB para aplicaciones
personalizadas, las cabeceras de la apilables Stellaris R
LM4F120 LaunchPad BoosterPack XL hace que sea f´acil
y sencillo para ampliar la funcionalidad de la Stellaris
R LaunchPad, al conectarse a otros perif´ericos con
Stellaris R BoosterPacks y BoosterPacks MSP430 TM
.
El Stellaris R LM4F120 LaunchPad funciona a bordo
de emulaci´on, lo que significa que se puede programar y
depurar sus proyectos sin la necesidad de herramientas
adicionales.Compatibilidad del BoosterPackDos de doble-
genero, 20-pines de cabeceras apilables ofrecen grandes op-
ciones de conexi´on de la caja.
Estos 40 pines permiten a˜nadir soporte de pantallas,
interfaces inal´ambricas, sensores y otras capacidades a los
proyectos muy f´acilmente y tambi´en ofrecen compatibili-
dad b´asica con los actuales MSP430 y C2000 LaunchPad’s.
El microcontrolador Stellaris ofrece una LM4F120H5QR
80 MHz, 32-bit ARM Cortex-M4 CPU con pun-
to flotante, 256Kbytes de 100.000 FLASH ciclo de
escritura-borrado y muchos perif´ericos tales como ADC
1MSPS, 8 UARTs, 4 SPIs, 4 I2Cs, USB y hasta 27
timers, algunos configurable hasta 64 bits. Dos in-
terruptores de uso general de usuarios, un bot´on de
reinicio, LED de encendido y LED programable RGB.
Fig. 1 Stellaris LM4120 LaunchPad
B. UART
UART son las siglas de ¨Universal Asynchronous
Receiver-Transmitter”( en espa˜nol, Transmisor-Receptor
As´ıncrono Universal ). ´Este controla los puertos y dis-
positivos serie. Se encuentra integrado en la placa base
o en la tarjeta adaptadora del dispositivo. Un UART
dual, o DUART, combina dos UARTs en un solo chip. El
receptor / transmisor as´ıncrono (UART) API universal
proporciona un conjunto de funciones para el uso de los
m´odulos UART Stellaris. Se proporcionan funciones para
configurar y controlar los m´odulos UART, para enviar y
recibir datos, y para gestionar las interrupciones para los
m´odulos UART.
El Stellaris UART realiza las funciones de conversiones
de paralelo a serie y serie-paralelo. Es muy similar en fun-
cionalidad a un 16C550 UART, pero no es compatible.
Algunas de las caracter´ısticas de la Stellaris UART son:
Un poco 16x12 FIFO de recepci´on y un poco 16x8
transmisi´on FIFO.
Generador de velocidad en baudios programable.
Generaci´on autom´atica y extracci´on de inicio,
parada y bits de paridad.
Interfaz serial programable.
5, 6, 7, o 8 bits de datos, par, impar, palo o ningu-
na generaci´on bit de paridad y detecci´on, 1 o 2
bits de parada generaci´on generaci´on de velocidad
de transmisi´on, de la CC a procesador clock/16
Este controlador se encuentra en driverlib/uart.c, con
driverlib/uart.h que contiene las definiciones de API para
el uso de aplicaciones.
Fig. 2 Diagrama Bloques UART
C. Comunicaci´on Serial As´ıncrona
El otro m´etodo, el utilizado en las computadoras,
consiste en agregar marcadores dentro del flujo de bits
para ayudar a seguir cada bit de datos. al introducir
un bit de inicio que indica el inicio de un corto flujo
de datos, la posici´on de cada bit puede ser determinado
cronometrando los bits a intervalos regulares, enviando
bits de inicio al comienzo de cada flujo de 8 bits los
dos sistemas pueden no estar sincronizados por una
se˜nal de reloj, lo ´unico que es importante es que am-
bos sistemas est´en configurados a la misma velocidad.
Cuando el dispositivo receptor de la comunicaci´on recibe
el bit de inicio comienza un temporizador de corto tiempo.
Al mantener los flujos cortos no hay suficiente tiempo para
que el reloj salga de sincron´ıa. Este m´etodo es conocido
como comunicaci´on as´ıncrona debido a que las terminales
de la comunicaci´on no est´an sincronizados por una l´ınea
de se˜nal.
Cada flujo de bits es separado en grupos de 5
a 8 bits llamados palabras. Usualmente en el am-
biente de la computaci´on se encuentran palabras
de 7 y 8 bits, el primero es para acomodar to-
das las letras may´usculas y min´usculas del alfabeto
en c´odigo ASCII, con un total de 127 caracteres.
Las palabras de 8 bits son utilizadas para corresponder
a un byte. Por convenci´on, el bit menos significativo de
la palabra es enviado primero y el m´as significativo al
final. Durante la comunicaci´on, el transmisor codifica
cada palabra agreg´andole un bit de inicio al principio
y 1 o 2 bits al final. Algunas ocasiones agregar´a un
bit de paridad entre el ´ultimo bit de la palabra y el
primer bit de paro, esto es utilizado como como verifi-
caci´on de integridad de datos. Al paquete de bits que
se transmiten usualmente se le llama marco de datos.
Fig.3 Marco de datos de comunicaci´on serial as´ıncrona.
III. DESARROLLO DE LA PR´ACTICA
Para hacer el desarrollo de una manera entendible
es realizado un diagrama de procesos donde se
muestra de forma estructurada como realizamos la
pr´actica. Se puede observar en la siguiente figura.
Fig.4 Diagrama de procesos.
A. Elecci´on de pr´actica
En base al proyecto designado transmitir datos a
un RFID y recibiendo su respuesta dependiendo si
la tag est´a cerca o lejos, lo primero a realizar para
poder cumplir el proyecto es poder manipular el da-
to que es transmitido de un Stellaris, para poder
comprobar esto se tendr´a que realizar un progra-
ma que ser´a el receptor de datos utilizando las UARTS.
B. Diagrama
Planteamos una propuesta de dise˜no.
Fig.5 Diagrama de la pr´actica
Para poder configurar las UART’s antes debemos
saber en donde est´an ubicadas en que perif´ericos
en que pines realizamos la b´usqueda de estos en el
datasheet y los plasmamos en un mapa de pines.
Fig.6 Mapa de pines de la UART
C. Algoritmo
Transmisor
• Ajustar el reloj para que se ejecute desde el
cristal
• Habilitar perif´ericos de cada UART
• Habilitar los puertos correspondientes de cada
UART
• Establecer pines GPIO Rx y Tx de cada UART
• Configurarlos los pines como UART
• Configurar la velocidad de transmisi´on de cada
UART
• Abrir ciclo while
• Enviar datos en las direcciones de cada UART
Receptor
• Ajustar el reloj para que se ejecute desde el
cristal
• Habilitar perif´ericos de cada UART
• Habilitar los puertos correspondientes de cada
UART
• Establecer pines GPIO Rx y Tx de cada UART
• Configurarlos los pines como UART
• Configurar la velocidad de transmisi´on de cada
UART
• Se verifica el buffer en la direcci´on de cada
UART
• Se obteniene el dato que hay en cada UART
• Abrir ciclo while
• Se Verifica si hay datos disponibles en la
direcci´on de UART
• Enviar datos en las direcciones de cada UART
con lo que hayan obtenido
D. Programaci´on de la pr´actica
TRANSMISOR
Como en el algoritmo seguimos los pasos primero que nada
ajustamos el reloj para que se ejecute desde el cristal.
Habilitamos los perif´ericos de cada UART poniendo la
palabra UARTx (x el numero de UART), habilitamos
los puertos correspondientes de las UART’s habilitamos
puerto ”A” para UART0, puerto “B” para UART1,
puerto “C” para UART3, puerto “E” para UART 5 y 7.
Fig.7 Configuraci´on de perif´ericos y puertos UART.
Establecemos los pines de UART0 PA0(RX) y
PA1(TX) y los establecemos como tipo UART
a este y todos los pines, establecemos los pines
de UART1 PB0(RX) y PB1(TX), establece-
mos los pines de UART3 PC6(RX) y PC7(TX)
Establecemos los pines de UART5 E4(RX) y E5(TX),
establecemos los pines de UART7 E0(RX) y E1(TX).
En el caso de UART1, UART3, UART5, UART7 con-
figuramos la resistencias pull-up para que se habiliten.
Fig.8 Configuraci´on de pines y resistencias pull-up UART
Configuramos la velocidad de transmisi´on de datos a
9600 baudios establecemos nuestros bits de paridad y de
parada en cada direcci´on de UART.
Fig.9 Configuraci´on de velocidad de transmisi´on de datos UART
Dentro de un ciclo while(1) enviamos caracteres
con una funci´on de la UART estableciendo la di-
recci´on base de la uart y car´acter que enviaremos
de cualquier tipo hexadecimal, char, decimal, etc.
Fig.10 Enviar caracteres a cada UART
RECEPTOR
Como en el algoritmo seguimos los pasos primero que
nada ajustamos el reloj para que se ejecute desde el cristal.
Se Verifica si hay datos disponibles en la direcci´on de
UART, Enviar datos en las direcciones de cada UART
con lo que hayan obtenido.
Habilitamos los perif´ericos de cada UART poniendo
la palabra UARTx (x el numero de UART), habilitamos
los puertos correspondientes de las UART’s habilitamos
puerto ”A” para UART0, puerto “B” para UART1, puerto
“C” para UART3, puerto “E” para UART 5 y 7.
Establecemos los pines de UART0 PA0(RX) y PA1(TX)
y los establecemos como tipo UART a este y todos los
pines, establecemos los pines de UART1 PB0(RX) y
PB1(TX), establecemos los pines de UART3 PC6(RX)
y PC7(TX), establecemos los pines de UART5 E4(RX)
y E5(TX), establecemos los pines de UART7 E0(RX) y
E1(TX). En el caso de UART1, UART3, UART5, UART7
configuramos la resistencias pull-up para que se habiliten.
Configuramos la velocidad de transmisi´on de datos a
9600 baudios establecemos nuestros bits de paridad y de
parada en cada direcci´on de UART.
Verificamos si hay algo en el buffer que ser´a el car´acter
que escribamos en el teclado. Dentro de un ciclo while(1)
hacemos condiciones donde verificaremos si hay o no datos
disponibles en la UART si hay un dato lo obtenemos (el
dato obtenido ser´a lo que se escriba en el teclado) una vez
obtenido el dato lo enviamos a la direcci´on base de las
UART’s sumando una unidad para poder ver el cambio.
Fig.11 Recepci´on de datos por la UART.
E. Pruebas y Resultados
Ya que en la hyperterminal solo podemos visualizar
lo que tenemos en UART0 lo que hacemos en puentear
UART1 a UART0 para ver como se transmite el dato.
Fig.12 Puente de UART1 a UART0
Fig.13 Prueba transmisi´on UART1 en la hyperterminal
Para la prueba del receptor utilizaremos el transmisor
como se muestra en la Fig. 10 por la UART3 env´ıa un
car´acter decimal 67 pero en la tabla de ASCII el 67 en tipo
char es igual a ‘C’ en la hyperterminal solo podemos visu-
alizarlo as´ı, enviamos este car´acter de UART3 a el Stellaris
receptor por la UART0 ah´ı podremos ver la C.
Fig.14 Puente transmisor UART3 a receptor UART0
Como se muestra en la Fig. 11 el receptor UART1
le suma uno al dato obtenido, es decir, que el da-
to que transmite UART3 est´a en 67 decimal en-
tonces al recibir UART1 le suma 1 siendo as´ı 68
decimal y esto en c´odigo ASCII es ‘D’ entonces
en la hyperterminal visualizaremos el car´acter ‘D’.
Fig.15 Puente transmisor UART3 a receptor UART1
Fig.16 Receptor en la hyperterminal
IV. CONCLUSIONES
El prop´osito de la practica se alcanzo, la comunicaci´on
serial as´ıncrona se obtuvo con ´exito comprendiendo a lo
largo de la practica como enviar y recibir caracteres en la
UART, adem´as de que se configuran mas UART’s para
enviar y transmitir no solamente con la UART0.
Referencias
[1] Stellaris LM4F120H5QR Microcontroller, Data Sheet Texas In-
struments Incorporated, 108 Wild Basin, Suite 350 Austin, TX
78746
[2] Stellaris peripheral driver library, User’s Guide, Texas Instru-
ments Incorporated, 108 Wild Basin, Suite 350 Austin, TX 78746
[3] http://e2e.ti.com/support/microcontrollers/stellaris arm/f/471/
t/185704.aspx
[4] http://jmnlab.com/usart/usart.htmlhttp://jmnlab.com/usart/
usart.html
[5] http://www.tecnotopia.com.mx/mecatronica/ puertoserialasin-
crono.htm
[6] http://www.ti.com/ww/en/launchpad/stellaris head.html
[7] http://www.ti.com/lit/an/spma017/spma017.pdf
[8] http://www.bluesock.org/ willg/dev/ascii.html
[9] http://www.ti.com/tool/ek-lm4f120xl

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

DIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMADIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMA
 
Informe N°2-Microcontroladores
Informe N°2-MicrocontroladoresInforme N°2-Microcontroladores
Informe N°2-Microcontroladores
 
Intel
IntelIntel
Intel
 
Taxímetro con Pic16F887
Taxímetro con Pic16F887Taxímetro con Pic16F887
Taxímetro con Pic16F887
 
Proyecto2
Proyecto2Proyecto2
Proyecto2
 
Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01
 
Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03
 
Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02
 
Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04
 
Mm card 7
Mm card 7Mm card 7
Mm card 7
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08
 
Compare capture pwm mode 5
Compare capture pwm mode 5Compare capture pwm mode 5
Compare capture pwm mode 5
 
Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07
 
Usart 3
Usart 3Usart 3
Usart 3
 
Proyecto1
Proyecto1Proyecto1
Proyecto1
 
Cartilla pic16f877
Cartilla pic16f877Cartilla pic16f877
Cartilla pic16f877
 
Introducción al microcontrolador MSP430
Introducción al microcontrolador MSP430Introducción al microcontrolador MSP430
Introducción al microcontrolador MSP430
 
Adc 4
Adc 4Adc 4
Adc 4
 
Curso de microcontroladores capitulo 09
Curso de microcontroladores capitulo 09Curso de microcontroladores capitulo 09
Curso de microcontroladores capitulo 09
 

Similar a Comunicación Serial Asíncrona con el Stellaris

Arquitectura decomputadoras
Arquitectura decomputadorasArquitectura decomputadoras
Arquitectura decomputadorasLuiFer Cvil
 
interfaces y perifericos.pdf
interfaces y perifericos.pdfinterfaces y perifericos.pdf
interfaces y perifericos.pdfSatoshiNakamoto23
 
Conexiones en-serie-microcontroladores
Conexiones en-serie-microcontroladoresConexiones en-serie-microcontroladores
Conexiones en-serie-microcontroladoresDanny Tierra
 
El Modem
El ModemEl Modem
El ModemK1988
 
Sistemas numéricos y microprocesadores
Sistemas numéricos y microprocesadoresSistemas numéricos y microprocesadores
Sistemas numéricos y microprocesadoresConfesorAD
 
arquitectura pipeline
arquitectura pipelinearquitectura pipeline
arquitectura pipelineIngrid L
 
Informatica respaldo
Informatica respaldoInformatica respaldo
Informatica respaldoRul Castro
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadoresupc
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadoresupc
 

Similar a Comunicación Serial Asíncrona con el Stellaris (20)

Arquitectura decomputadoras
Arquitectura decomputadorasArquitectura decomputadoras
Arquitectura decomputadoras
 
motor paso a paso
 motor paso a paso motor paso a paso
motor paso a paso
 
Apunt2d
Apunt2dApunt2d
Apunt2d
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Expo diseno
Expo disenoExpo diseno
Expo diseno
 
Registro universal
Registro universalRegistro universal
Registro universal
 
Jonathan ango
Jonathan angoJonathan ango
Jonathan ango
 
interfaces y perifericos.pdf
interfaces y perifericos.pdfinterfaces y perifericos.pdf
interfaces y perifericos.pdf
 
Puerto serie asincrónico
Puerto serie asincrónicoPuerto serie asincrónico
Puerto serie asincrónico
 
Conexiones en-serie-microcontroladores
Conexiones en-serie-microcontroladoresConexiones en-serie-microcontroladores
Conexiones en-serie-microcontroladores
 
El Modem
El ModemEl Modem
El Modem
 
Tema5 ce-secuenciales
Tema5 ce-secuencialesTema5 ce-secuenciales
Tema5 ce-secuenciales
 
Sistemas numéricos y microprocesadores
Sistemas numéricos y microprocesadoresSistemas numéricos y microprocesadores
Sistemas numéricos y microprocesadores
 
arquitectura pipeline
arquitectura pipelinearquitectura pipeline
arquitectura pipeline
 
Señales y sistemas de teleproceso
Señales y sistemas de teleprocesoSeñales y sistemas de teleproceso
Señales y sistemas de teleproceso
 
Informatica respaldo
Informatica respaldoInformatica respaldo
Informatica respaldo
 
HARDWARE EN LOS ORDENADORE
HARDWARE EN LOS ORDENADOREHARDWARE EN LOS ORDENADORE
HARDWARE EN LOS ORDENADORE
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Protocolo comunicación serial
Protocolo comunicación serialProtocolo comunicación serial
Protocolo comunicación serial
 

Más de Alejandro Zaraos Vázquez (7)

T37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandroT37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandro
 
Tipos de lenguaje formal según Chomsky
Tipos de lenguaje formal según ChomskyTipos de lenguaje formal según Chomsky
Tipos de lenguaje formal según Chomsky
 
Ieee formato
Ieee formatoIeee formato
Ieee formato
 
Formato ieee
Formato ieee Formato ieee
Formato ieee
 
Practica Bases de datos
Practica Bases de datosPractica Bases de datos
Practica Bases de datos
 
Stellaris usando ENERGIA
Stellaris usando ENERGIAStellaris usando ENERGIA
Stellaris usando ENERGIA
 
Gramática y autómatas
Gramática y autómatasGramática y autómatas
Gramática y autómatas
 

Comunicación Serial Asíncrona con el Stellaris

  • 1. Comunicaci´on Serial As´ıncrona Zaraos V´azquez Jorge Alejandro , Toala Hern´andez Jahaziel, Rodr´ıguez Morales Guillermo de Jesus Instituto Tecnol´ogico de Tuxtla Gutierrez, Chiapas aleh.kz@hotmail.com angelblack 035@hotmail.com nemesis rmgj@hotmail.com Resumen – En esta pr´actica utilizaremos dos Stellaris, donde se quiere manipular la trama de datos que recibir´a un Stellaris se configuraran las UART’s como objetivo principal de la pr´actica es recibir y transmitir datos por la UART, lo que se pretende hacer es manipular el dato que se recibe. I. INTRODUCCI´ON UART es el componente clave del subsistema de comunica- ciones series. El UART toma bytes de datos y transmite los bits individuales de forma secuencial. En el destino, un segundo UART reensambla los bits en bytes completos. La transmisi´on serie de la informaci´on digital (bits) a trav´es de un cable ´unico u otros medios es mucho m´as efectiva en cuanto a costo que la transmisi´on en paralelo a trav´es de m´ultiples cables. Se utiliza un UART para convertir la informaci´on transmitida entre su forma secuencial y paralela en cada terminal de enlace. Cada UART contiene un registro de desplazamiento que es el m´etodo fundamental de conversi´on entre las forma serie y paralelo. La transmisi´on serial es aquella donde la informaci´on es enviada bit por bit hacia un determinado destino. Es lenta pero mucho m´as confiable por lo que tiende a usarse para transmisiones a larga distancia que no requieran de altas velocidades de respuesta. La transmisi´on serial as´ıncrona es aquella en la que los bits de datos de una car´acter se transfieren de manera independiente en el tiempo con respecto a otro car´acter, precedidos de un bit de arranque y un bit de paro. De tal manera que para esta t´ecnica cada car´acter consta de tres partes: un bit de inicio, bits de caracteres y un bit de paro. El bit de inicio siempre es cero y se utiliza para anunciar que comienza un car´acter. El bit de paro siempre es 1, valor que se mantiene por al menos el tiempo correspondiente a un bit para indicar que ha culminado el car´acter enviado. La unidad receptora puede detectar un car´acter a trav´es del conocimiento de las siguientes reglas: Una l´ınea desocupada siempre se encuentra en estado uno. El inicio de la transmisi´on puede detectarse a partir del bit de inicio que es siempre cero. Los bits que le prosiguen le corresponden a los bits del car´acter. Para se˜nalar la culminaci´on de la transmisi´on se utiliza un bit de alto, el cual consiste en una l´ınea que se mantiene en estado uno por m´as tiempo de lo predeterminado para un bit. De tal manera el reloj interno del receptor, que conoce la ve- locidad de transmisi´on de los bits examina la l´ınea de tiempos y puede reconocer el inicio y fin de una trama. El tiempo del bit de paro puede ser el concerniente a uno o dos bits, que es el tiem- po que necesitar´an las unidades para sincronizarse de nuevo. II. FUNDAMENTOS TE´ORICOS A. Stellaris LM4F120 El stellairs LM4F120 LaunchPad Evaluation Board es una plataforma de evaluacion de bajo costo para ARM Cortex -M4F basados en microcontroladores de Texas Instrument, el dise˜no de el LaunchPad stellaris destaca LM4F120H5QR microcontrolador con un dispos- itivo de interfaz USB 2,0 y un m´odulo de hibernaci´on. El EK-LM4F120XL tambi´en cuenta con botones pro- gramables de usuario y un LED RGB para aplicaciones personalizadas, las cabeceras de la apilables Stellaris R LM4F120 LaunchPad BoosterPack XL hace que sea f´acil y sencillo para ampliar la funcionalidad de la Stellaris R LaunchPad, al conectarse a otros perif´ericos con Stellaris R BoosterPacks y BoosterPacks MSP430 TM . El Stellaris R LM4F120 LaunchPad funciona a bordo de emulaci´on, lo que significa que se puede programar y depurar sus proyectos sin la necesidad de herramientas adicionales.Compatibilidad del BoosterPackDos de doble- genero, 20-pines de cabeceras apilables ofrecen grandes op- ciones de conexi´on de la caja.
  • 2. Estos 40 pines permiten a˜nadir soporte de pantallas, interfaces inal´ambricas, sensores y otras capacidades a los proyectos muy f´acilmente y tambi´en ofrecen compatibili- dad b´asica con los actuales MSP430 y C2000 LaunchPad’s. El microcontrolador Stellaris ofrece una LM4F120H5QR 80 MHz, 32-bit ARM Cortex-M4 CPU con pun- to flotante, 256Kbytes de 100.000 FLASH ciclo de escritura-borrado y muchos perif´ericos tales como ADC 1MSPS, 8 UARTs, 4 SPIs, 4 I2Cs, USB y hasta 27 timers, algunos configurable hasta 64 bits. Dos in- terruptores de uso general de usuarios, un bot´on de reinicio, LED de encendido y LED programable RGB. Fig. 1 Stellaris LM4120 LaunchPad B. UART UART son las siglas de ¨Universal Asynchronous Receiver-Transmitter”( en espa˜nol, Transmisor-Receptor As´ıncrono Universal ). ´Este controla los puertos y dis- positivos serie. Se encuentra integrado en la placa base o en la tarjeta adaptadora del dispositivo. Un UART dual, o DUART, combina dos UARTs en un solo chip. El receptor / transmisor as´ıncrono (UART) API universal proporciona un conjunto de funciones para el uso de los m´odulos UART Stellaris. Se proporcionan funciones para configurar y controlar los m´odulos UART, para enviar y recibir datos, y para gestionar las interrupciones para los m´odulos UART. El Stellaris UART realiza las funciones de conversiones de paralelo a serie y serie-paralelo. Es muy similar en fun- cionalidad a un 16C550 UART, pero no es compatible. Algunas de las caracter´ısticas de la Stellaris UART son: Un poco 16x12 FIFO de recepci´on y un poco 16x8 transmisi´on FIFO. Generador de velocidad en baudios programable. Generaci´on autom´atica y extracci´on de inicio, parada y bits de paridad. Interfaz serial programable. 5, 6, 7, o 8 bits de datos, par, impar, palo o ningu- na generaci´on bit de paridad y detecci´on, 1 o 2 bits de parada generaci´on generaci´on de velocidad de transmisi´on, de la CC a procesador clock/16 Este controlador se encuentra en driverlib/uart.c, con driverlib/uart.h que contiene las definiciones de API para el uso de aplicaciones. Fig. 2 Diagrama Bloques UART C. Comunicaci´on Serial As´ıncrona El otro m´etodo, el utilizado en las computadoras, consiste en agregar marcadores dentro del flujo de bits para ayudar a seguir cada bit de datos. al introducir un bit de inicio que indica el inicio de un corto flujo de datos, la posici´on de cada bit puede ser determinado cronometrando los bits a intervalos regulares, enviando bits de inicio al comienzo de cada flujo de 8 bits los dos sistemas pueden no estar sincronizados por una se˜nal de reloj, lo ´unico que es importante es que am- bos sistemas est´en configurados a la misma velocidad. Cuando el dispositivo receptor de la comunicaci´on recibe el bit de inicio comienza un temporizador de corto tiempo. Al mantener los flujos cortos no hay suficiente tiempo para que el reloj salga de sincron´ıa. Este m´etodo es conocido como comunicaci´on as´ıncrona debido a que las terminales de la comunicaci´on no est´an sincronizados por una l´ınea de se˜nal. Cada flujo de bits es separado en grupos de 5 a 8 bits llamados palabras. Usualmente en el am- biente de la computaci´on se encuentran palabras de 7 y 8 bits, el primero es para acomodar to- das las letras may´usculas y min´usculas del alfabeto en c´odigo ASCII, con un total de 127 caracteres.
  • 3. Las palabras de 8 bits son utilizadas para corresponder a un byte. Por convenci´on, el bit menos significativo de la palabra es enviado primero y el m´as significativo al final. Durante la comunicaci´on, el transmisor codifica cada palabra agreg´andole un bit de inicio al principio y 1 o 2 bits al final. Algunas ocasiones agregar´a un bit de paridad entre el ´ultimo bit de la palabra y el primer bit de paro, esto es utilizado como como verifi- caci´on de integridad de datos. Al paquete de bits que se transmiten usualmente se le llama marco de datos. Fig.3 Marco de datos de comunicaci´on serial as´ıncrona. III. DESARROLLO DE LA PR´ACTICA Para hacer el desarrollo de una manera entendible es realizado un diagrama de procesos donde se muestra de forma estructurada como realizamos la pr´actica. Se puede observar en la siguiente figura. Fig.4 Diagrama de procesos. A. Elecci´on de pr´actica En base al proyecto designado transmitir datos a un RFID y recibiendo su respuesta dependiendo si la tag est´a cerca o lejos, lo primero a realizar para poder cumplir el proyecto es poder manipular el da- to que es transmitido de un Stellaris, para poder comprobar esto se tendr´a que realizar un progra- ma que ser´a el receptor de datos utilizando las UARTS. B. Diagrama Planteamos una propuesta de dise˜no. Fig.5 Diagrama de la pr´actica Para poder configurar las UART’s antes debemos saber en donde est´an ubicadas en que perif´ericos en que pines realizamos la b´usqueda de estos en el datasheet y los plasmamos en un mapa de pines. Fig.6 Mapa de pines de la UART
  • 4. C. Algoritmo Transmisor • Ajustar el reloj para que se ejecute desde el cristal • Habilitar perif´ericos de cada UART • Habilitar los puertos correspondientes de cada UART • Establecer pines GPIO Rx y Tx de cada UART • Configurarlos los pines como UART • Configurar la velocidad de transmisi´on de cada UART • Abrir ciclo while • Enviar datos en las direcciones de cada UART Receptor • Ajustar el reloj para que se ejecute desde el cristal • Habilitar perif´ericos de cada UART • Habilitar los puertos correspondientes de cada UART • Establecer pines GPIO Rx y Tx de cada UART • Configurarlos los pines como UART • Configurar la velocidad de transmisi´on de cada UART • Se verifica el buffer en la direcci´on de cada UART • Se obteniene el dato que hay en cada UART • Abrir ciclo while • Se Verifica si hay datos disponibles en la direcci´on de UART • Enviar datos en las direcciones de cada UART con lo que hayan obtenido D. Programaci´on de la pr´actica TRANSMISOR Como en el algoritmo seguimos los pasos primero que nada ajustamos el reloj para que se ejecute desde el cristal. Habilitamos los perif´ericos de cada UART poniendo la palabra UARTx (x el numero de UART), habilitamos los puertos correspondientes de las UART’s habilitamos puerto ”A” para UART0, puerto “B” para UART1, puerto “C” para UART3, puerto “E” para UART 5 y 7. Fig.7 Configuraci´on de perif´ericos y puertos UART. Establecemos los pines de UART0 PA0(RX) y PA1(TX) y los establecemos como tipo UART a este y todos los pines, establecemos los pines de UART1 PB0(RX) y PB1(TX), establece- mos los pines de UART3 PC6(RX) y PC7(TX) Establecemos los pines de UART5 E4(RX) y E5(TX), establecemos los pines de UART7 E0(RX) y E1(TX). En el caso de UART1, UART3, UART5, UART7 con- figuramos la resistencias pull-up para que se habiliten. Fig.8 Configuraci´on de pines y resistencias pull-up UART Configuramos la velocidad de transmisi´on de datos a 9600 baudios establecemos nuestros bits de paridad y de parada en cada direcci´on de UART. Fig.9 Configuraci´on de velocidad de transmisi´on de datos UART Dentro de un ciclo while(1) enviamos caracteres con una funci´on de la UART estableciendo la di- recci´on base de la uart y car´acter que enviaremos de cualquier tipo hexadecimal, char, decimal, etc. Fig.10 Enviar caracteres a cada UART RECEPTOR Como en el algoritmo seguimos los pasos primero que nada ajustamos el reloj para que se ejecute desde el cristal. Se Verifica si hay datos disponibles en la direcci´on de UART, Enviar datos en las direcciones de cada UART con lo que hayan obtenido. Habilitamos los perif´ericos de cada UART poniendo la palabra UARTx (x el numero de UART), habilitamos
  • 5. los puertos correspondientes de las UART’s habilitamos puerto ”A” para UART0, puerto “B” para UART1, puerto “C” para UART3, puerto “E” para UART 5 y 7. Establecemos los pines de UART0 PA0(RX) y PA1(TX) y los establecemos como tipo UART a este y todos los pines, establecemos los pines de UART1 PB0(RX) y PB1(TX), establecemos los pines de UART3 PC6(RX) y PC7(TX), establecemos los pines de UART5 E4(RX) y E5(TX), establecemos los pines de UART7 E0(RX) y E1(TX). En el caso de UART1, UART3, UART5, UART7 configuramos la resistencias pull-up para que se habiliten. Configuramos la velocidad de transmisi´on de datos a 9600 baudios establecemos nuestros bits de paridad y de parada en cada direcci´on de UART. Verificamos si hay algo en el buffer que ser´a el car´acter que escribamos en el teclado. Dentro de un ciclo while(1) hacemos condiciones donde verificaremos si hay o no datos disponibles en la UART si hay un dato lo obtenemos (el dato obtenido ser´a lo que se escriba en el teclado) una vez obtenido el dato lo enviamos a la direcci´on base de las UART’s sumando una unidad para poder ver el cambio. Fig.11 Recepci´on de datos por la UART. E. Pruebas y Resultados Ya que en la hyperterminal solo podemos visualizar lo que tenemos en UART0 lo que hacemos en puentear UART1 a UART0 para ver como se transmite el dato. Fig.12 Puente de UART1 a UART0 Fig.13 Prueba transmisi´on UART1 en la hyperterminal Para la prueba del receptor utilizaremos el transmisor como se muestra en la Fig. 10 por la UART3 env´ıa un car´acter decimal 67 pero en la tabla de ASCII el 67 en tipo char es igual a ‘C’ en la hyperterminal solo podemos visu- alizarlo as´ı, enviamos este car´acter de UART3 a el Stellaris receptor por la UART0 ah´ı podremos ver la C.
  • 6. Fig.14 Puente transmisor UART3 a receptor UART0 Como se muestra en la Fig. 11 el receptor UART1 le suma uno al dato obtenido, es decir, que el da- to que transmite UART3 est´a en 67 decimal en- tonces al recibir UART1 le suma 1 siendo as´ı 68 decimal y esto en c´odigo ASCII es ‘D’ entonces en la hyperterminal visualizaremos el car´acter ‘D’. Fig.15 Puente transmisor UART3 a receptor UART1 Fig.16 Receptor en la hyperterminal IV. CONCLUSIONES El prop´osito de la practica se alcanzo, la comunicaci´on serial as´ıncrona se obtuvo con ´exito comprendiendo a lo largo de la practica como enviar y recibir caracteres en la UART, adem´as de que se configuran mas UART’s para enviar y transmitir no solamente con la UART0. Referencias [1] Stellaris LM4F120H5QR Microcontroller, Data Sheet Texas In- struments Incorporated, 108 Wild Basin, Suite 350 Austin, TX 78746 [2] Stellaris peripheral driver library, User’s Guide, Texas Instru- ments Incorporated, 108 Wild Basin, Suite 350 Austin, TX 78746 [3] http://e2e.ti.com/support/microcontrollers/stellaris arm/f/471/ t/185704.aspx [4] http://jmnlab.com/usart/usart.htmlhttp://jmnlab.com/usart/ usart.html [5] http://www.tecnotopia.com.mx/mecatronica/ puertoserialasin- crono.htm [6] http://www.ti.com/ww/en/launchpad/stellaris head.html [7] http://www.ti.com/lit/an/spma017/spma017.pdf [8] http://www.bluesock.org/ willg/dev/ascii.html [9] http://www.ti.com/tool/ek-lm4f120xl