Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Santiago Mariño
Extensión Maracay
El Puerto serial
El puerto serial (serial port). Puerto para conectar un dispositivo a una computadora. La
información se transmite por un solo conducto y por lo tanto bit a bit de forma serial. Por
esta razón los puertos seriales tradicionales son sumamente lentos y son usados para
conectar el mouse o el teclado. En cambio el puerto paralelo puede enviar múltiples bits en
forma paralela La mayoría de los puertos serie de las PC obedecen el estándar RS-232C o
el RS-422. Las computadoras tienen dos puertos seriales: COM1 y COM2 Actualmente los
puertos seriales modernos poseen grandes velocidades como el puerto USB, el firewire o el
SATA.
El puerto serie está considerado como una de las conexiones externas más básicas de un
ordenador, y ha sido una parte integral de la mayoría de ordenadores durante más de 20
años. Aunque muchos de los nuevos sistemas están prescindiendo de los puertos serie a
favor de las conexiones USB, muchos modems siguen usando un puerto serie, como
también los hacen algunas impresoras, PDAs y cámaras digitales. Pocos equipos tienen más
de dos puertos serie.
Esencialmente, proveen una conexión estándar y un protocolo para que puedas conectar
dispositivos como los nombrados anteriormente. Existen ciertas diferencias con respecto a
los puertos paralelos, los cuales intentaremos aclarar aquí.
Todos los sistemas operativos de los ordenadores que están es uso hoy en día, soportan los
puertos serie, ya que han estado en funcionamiento durante décadas. Los puertos paralelos
son una invención más reciente y son mucho más rápidos que los puertos serie. Los puertos
USB solo tienen unos pocos años de antigüedad, y con el tiempo seguramente reemplazarán
a los puertos serie y paralelo en los próximos años.
La conexión serie
Con un ejemplo podemos ver mejor como funciona el control de flujo. Tienes un modem
que se comunica a 56 Kbps. La conexión serie entre tu ordenador y tu modem transmite a
115 Kbps, lo cual es el más de la mitad. Esto significa que tu modem está recibiendo más
datos viniendo de tu ordenador, que lo que puede transmitir por la línea de teléfono.
Incluso, aunque el modem tuviera un buffer de 128 K para almacenar datos, se quedaría sin
espacio en el buffer rápidamente y no sería capaz de funcionar adecuadamente con todo ese
flujo de datos.
Con control de flujo, el modem puede parar el flujo de datos de tu ordenador antes de que
desborde el buffer del modem. El ordenador está constantemente enviando una señal en el
pin RTS, y comprobando si hay señal en el pin CTS. Si no hay una respuesta del CTS, el
ordenador para de enviar datos, esperando al CTS para reanudar los datos. Esto permite al
modem mantener el flujo de datos de manera fluida.
Este puerto está siendo remplazado por el puerto USB para el uso en PDA´s y ratones, pero
aún viene integrado en la tarjeta principal (Motherboard) actual.
El puerto serial cuenta con 9 contactos tipo pin; se muestran las líneas eléctricas y su
descripción básica.
5.- SG (Tierra)
Este ejemplo muestra cómo utilizar el módulo EUSART del microcontrolador. La conexión
entre el microcontrolador y una PC se establece de acuerdo con el estándar de
comunicación RS-232. El programa funciona de la siguiente manera. Cada byte recibido
por medio de la comunicación serial se visualiza al utilizar los LEDs conectados al puerto
PORTB y después se devuelve automáticamente al transmisor. La manera más fácil es
comprobar el funcionamiento del dispositivo en la práctica al utilizar un programa estándar
de Windows denominado Hyper Terminal.
Comunicación serial
Nos dedicaremos a estudiarla comunicación serial asíncrona, la cual resulta muy útil
cuando necesitamos transmitir o recibir datos entre circuitos gobernados por
microcontrolador pic, o inclusive cuando deseamos establecer una comunicación entre
nuestros circuitos y nuestro pc.
Las instrucciones en pic Basic para comunicaciones serial, se rigen bajo el protocolo de
comunicación RS-232 el cual es una norma o estándar mundial que define los parámetros
en comunicación serial. Este protocolo define estándares como velocidad de transmisión en
baudios (300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200 y
128000 bps) niveles de voltaje, distancia entre otros.
Estudiaremos las instrucciones serln y serout estas instrucciones son capaces de emular
una comunicación RS-232 en cualquier microcontroladorque no posea en su hardware
USART (Universal Synchronous/ asynchoronus Receiver/ transmitter).
Instrucción Serln: la instrucción Serln se encarga de recibir uno o más valores a través de
un pin específicos, usándolo el formato asíncrono estándar 8N1 que significa 8 bits de
datos, sin revisión de paridad y bit de parada (stop). Serln trabaja por defecto con un
oscilador de 4 MHZ, y para tener transferencia de datos segura con otros ocsiladores de
mayor valor, será necesario utilizar la directiva “define osc” al inicio de programa.
Ejemplo:
Pin: en este campo definiremos cual el pin de entrada entre los puertos disponibles del
microcontrolador ejemplo: PortB. 1
Tabla 1
Ejemplo:
Este ejemplo se interpreta de la siguiente forma: microcontrolador recibe los datos por el
pin RA3 A 9600 bps en formato de dato verdadero; si no se recibe datos durante 10
milisegundo, salta a la etiqueta “inicio” si recibe datos lo almacena en la variable y
continua con el programa.
Variable: en este campo se especifica la variable en el cual se desean almacenados los datos
recibidos. Ejemplo
Proyecto
Se debe tomar en cuenta la polaridad de los condensadores de 1uF, ya que una polaridad
invertida afectara negativamente el funcionamiento del MAX232 .
Entre los pines 15 (Gnd) y 16 (Vcc) del MAX232 se debe conectar un condesador de 1uF
ya que la ausencia de este componente también afectara el funcionamiento del circuito
produciendo errores en la recepción de datos.
Procedimiento
Programación
Inicio:
End
Como velocidad de transmisión, hemos elegido utilizando 9600 bps, por el cual debemos
definir este valor en nuestro programa
La señales con las que actua el puerto del pc son digitales y la tensión con el trabaja es
+12v y -12v; adicionales resulta importante saber que la lógica es invertida es decir:
De ahí la importancia de saber cual será el formato que debemos utilizar a la hora de definir
los parámetros para la comunicación (dato verdadero, o de dato invertido).
En este caso y como se puede observa en la segunda línea de programa (symbol T9600 =
2), estaremos utilizando el formato “driven true”, debido a que el MAX232 tiene en sus
salidas un inversor para los datos proveniente del puerto serial del PC hacia el
microcontrolasdor y viceversa.
*** se debe bajar el programa visual basic 6.0 y usar tutorial para su manejo.
*****ejemplos bajados del internet se recomienda como guía y observar configuración del
diseño electrónico, el docente no se hace responsable de la programación y diseño solo se
debe usar como guía. ********
' Cabecera******************************************************
program programación con puerto serial ' Nombre de programa
dim i as byte ' Variable es de tipo byte
main: ' Inicio de programa
UART1_Init(19200) ' Inicializar el módulo USART
' 8 bits, tasa de baudios 19200, no hay bit de paridad...)
while 1 ' Bucle infinito
if UART1_Data_Ready() then ' Si se ha recibido un dato
i = UART1_Read() ' leerlo
UART1_Write(i) ' y enviarlo atrás
end if
wend
UART
EJEMPLO
Medición de temperatura por medio del sensor DS1820. Uso del protocolo ‘1-wire’...
Este ejemplo muestra la ventaja de utilizar librerías con las funciones listas para ser
utilizadas. Concretamente, no tiene que examinar la documentación proporcionada por el
fabricante para utilizar el sensor. Basta con copiar las funciones apropiadas en el programa.
Si le interesa saber cómo se declaran, basta con pulsar sobre alguna de ellas y seleccionar la
opción Help.
' Cabecera******************************************************
program diseño con puerto serial ' Nombre de programa
end sub
text = "000.0000"
Lcd_Init() ' Inicializar el Lcd
Lcd_Cmd(_LCD_CLEAR) ' Borrar el Lcd
Lcd_Cmd(_LCD_CURSOR_OFF) ' Apagar el cursor
Lcd_Out(1, 1, " Temperature: ")
Ow_Reset(PORTE, 2)
Ow_Write(PORTE, 2, 0xCC) ' Ejecutar el comando SKIP_ROM
Ow_Write(PORTE, 2, 0xBE) ' Ejecutar el comando READ_SCRATCHPAD
temp = Ow_Read(PORTE, 2)
temp = (Ow_Read(PORTE, 2) << 8) + temp
One_Wire
LCD
EJEMPLO
Las señales de audio se utilizan con frecuencia cuando se necesita llamar la atención de
usuario para hacer algo, confirmar que alguno de los botones se ha pulsado, avisar que se
ha llegado hasta los valores mínimos o máximos etc. Pueden ser una simple señal de pitido
así como melodías de una duración más larga o más corta. En este ejemplo se muestra
cómo generar un sonido por medio de funciones que pertenecen a la librería Sound.
Además de estas funciones, la función Button que pertenece a la misma librería se utiliza
para probar los botones de presión.
' Cabecera******************************************************
program diseño para puerto serial ' Nombre de programa
end sub
TRISB = 0xF0 ' Configurar los pines RB7..RB4 como entradas y RB3 como
salida
Sound_Init(PORTD, 3)
Sound_Play(880, 5000)
Melody()
while (RB4_bit <> 0)
nop ' Esperar que se suelte el botón
wend
end if
wend
Para que este ejemplo funcione apropiadamente, es necesario marcar las siguientes librerías
en la ventana Library Manager antes de compilar el programa:
Button
Sound
************************************************************************