Consulta
Consulta
Consulta
MICROCONTROLADORES
Consulta N° 4
Comunicación serial
Integrantes
Alex Acosta
Pamela Morales
Fecha de Envío
22 de abril del 2019
Fecha de Entrega
29 de abril del 2019
AMBATO - ECUADOR
I. TEMA
Comunicación serial
II. OBJETIVOS
a. Objetivo General
b. Objetivos Específicos
COMUNIACIÓN SERIAL
La comunicación serial es un protocolo muy común (no hay que confundirlo con el Bus
Serial de Comunicación, o USB) para comunicación entre dispositivos que se incluye de
manera estándar en prácticamente cualquier computadora. La mayoría de las
computadoras incluyen dos puertos seriales RS-232. La comunicación serial es también
un protocolo común utilizado por varios dispositivos para instrumentación; existen
varios dispositivos compatibles con GPIB que incluyen un puerto RS-232. Además, la
comunicación serial puede ser utilizada para adquisición de datos si se usa en conjunto
con un dispositivo remoto de muestreo.
Este protocolo está disponible en los puertos seriales de la mayoría de las computadoras
personales (PC).
El primer puerto serial denominado comúnmente COM1 tiene asignada la interrupción
IRQ4 y sus registros empiezan en la dirección de la memoria %3F8, y de ahí en adelante
hasta la %3FE. Para las máquinas que tienen un segundo puerto serial este se denomina
COM2, tiene asignada la interrupción IRQ3 y sus registros se alojan en las direcciones
%2F8 hasta la %2FE. Los puertos denominados COM3 y COM4 a pesar de que se
mapean en un espacio diferente de los puertos anteriores, comparten las interrupciones,
COM1 con COM3 y COM2 con COM4, por esto es muy difícil utilizar los cuatro cuando
se trata de hacerlos funcionar mediante interrupciones. [1]
Características eléctricas
Uno de los protocolos de comunicación que podemos emplear con nuestros dispositivos
electrónicos embebidos, es la utilización de la comunicación serial para poder interactuar
con diferentes dispositivos.
La comunicación serial sólo utiliza tres líneas, una para recibir los datos Rx, otra para
trasmitir los datos Tx y la línea común GND. En nuestro caso específico para el PIC
16F887 las líneas TX y RX corresponden a los pines 25 y 26 (Puerto RC6 y RC7
respectivamente) como puede ser observado en la siguiente figura. Para cualquier otro
PIC, solo basta con buscar donde están ubicados estos pines con ayuda del datasheet.
El pic 16F887 solo tiene un puerto UART físico, es por eso que solo tiene 1 solo RX y
un solo TX para realizar la comunicación serial. Existen otros PICS que poseen más de
1 UART facilitando realizar varias comunicaciones con el dispositivo al tiempo. Si
necesitamos adicionar más puertos de comunicación serial, podremos hacerlo con ayuda
del PIC C Compiler creando UARTS VIRTUALES.
Cada dato se transmite bit a bit, un bit a la vez, por lo tanto se hace mucho más lenta,
pero tiene la ventaja de necesitar menos líneas y las distancias a las cuales se puede
transferir la información son mayores, además con el uso de los módem se puede
trasmitir a cualquier parte del mundo.[3]
MAX232
El circuito integrado tiene salidas para manejar niveles de voltaje del RS-232 (aprox. ±
7.5 V) que las produce a partir de un voltaje de alimentación de + 5 V utilizando
multiplicadores de voltaje internamente en el MAX232 con la adición de condensadores
externos. Esto es de mucha utilidad para la implementación de puertos serie RS-232 en
dispositivos que tengan una alimentación simple de + 5 V.
Las entradas de recepción de RS-232 (las cuales pueden llegar a ± 25 V), se convierten
al nivel estándar de 5 V de la lógica TTL. Estos receptores tienen un umbral típico de
1.3 V, y una histéresis de 0.5 V.
FTDI
DIRECTIVA DE CONFIGURACIÓN:
Esto quiere decir que cada vez que queramos utilizar la función printf tenemos que se debe
haber incluido previamente esta directiva, que posibilita la comunicación del PIC con otro
dispositivo utilizando el protocolo de comunicación serie RS232, además de la función printf
esta directiva permite el uso de otras funciones para la entrada y salida de datos serie como:
getc, getchar, gets, puts y kbhit .Como vemos la directiva use RS232 admite una serie de
parámetros que son los que van entre paréntesis separados por comas, estos son los siguientes:
BAUD con este parámetro establecemos la velocidad en baudios a la que queremos que se
transmitan los datos por el puerto serie, 9600 es lo normal.
BITS número de bits que utilizaremos en la transmisión, el estándar establece que pueden ser
8 6 9, para la comunicación con microcontroladores con 8 son suficientes.
PARJTY nos permite utilizar un bit de paridad para la comprobación de errores, está opción
la dejamos a No.
XMIT está opción nos configura porque patilla del PIC saldrán los datos,está opción junto
con la siguiente sí que la tendremos que cambiar a nuestras necesidades.
RCV nos configura porque patilla del PIC se recibirán los datos. La forma de hacer la llamada
a la función printf es la siguiente:
printf(Nombre Funci6n, Cadena de caracteres , valores);
Como vemos la función printf también admite parámetros que podremos utilizar para
formatear el texto de salida. Vamos a ver cuáles son:
Nombre de una función, si no lo ponemos los datos se transmitirán vía RS232 a través de los
pines que hayamos configurado en la directiva #use RS232.
Una cadena de caracteres encerrada entrecomillas dobles.
Datos o nombres de variables cuyo valor queremos que se muestren.
pulc(data)
putcbar(data) data es un carácter de 8 bits
puts(string) string es una cadena de caracteres constante a matriz de caracteres
terminada con un cero
printfname,cstring,values) frame: función a utilizar para escribir la cadena indicada,
por defecto se utiliza putc()
cslring: cadena de caracteres o matriz de caracteres terminada en O.
values:valores a indicar en la cadena, se debe indicar %ni
value=getc()
values=getch()
value=getchar() value es un carácter de 8 bits. Espera recibir un carácter por la línea
RS232 y devuelve su valor.
valoFkbhit()
valor = 0 (false) si getc() debe esperar a que llegue un carácter
valor = 1 (true) si ya hay un carácter para ser leído por getc()
INTERRUPCIONES
enable_interrupts(INT_RDA);
enable_interrupts{GLOBAL);
INSTRUCCIÓN:
valor-=getc();
Características:
Ilustración 6: FTDI
SOFTWARE Putty
PuTTY es un cliente SSH y Telnet con el que podemos conectarnos a servidores remotos
iniciando una sesión en ellos que nos permite ejecutar comandos. El ejemplo más claro es
cuando empleamos PuTTY para ejecutar comandos en un servidor VPS y así poder instalar
algún programa o configurar alguna parte del servidor. [4]
Fuente: https://dronmodelling.es/accesorios-controladoras-vuelo/-modulo-de-conexion-ftdi232--
138.html
Fuente: https://www.adslzone.net/postt246752.html
V. CONCLUSIONES
VI. BIBLIOGRAFÍA
[2] H. Rooney «Prtocolo RS232,» 2017. [En línea]. Disponible en: http://rdedatos.tripod.com/rs232.htm
[Último acceso: 08-04.2018].
[4] E. García, Compilador C CCS y Simulador Proteus para Microcontroladores PIC, Marcombo, 2002.