Puerto Serial COM

INSTITUTO TECNOLÓGICO SUPERIOR DE SAN ANDRÉS TUXTLA INGENIERÍA EN SISTEMAS COMPUTACIONALES Ana Francisca Lule Rangel 6°

Views 126 Downloads 73 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INSTITUTO TECNOLÓGICO SUPERIOR DE SAN ANDRÉS TUXTLA INGENIERÍA EN SISTEMAS COMPUTACIONALES

Ana Francisca Lule Rangel 6° SEMESTRE / Grupo B CONCEPCIÓN MEZO MAZABA.

SAN ANDRÉS TUXTLA VER. Enero- junio 2017

Contenido Definición de puerto ...................................................................................................................... 1 Definición de puerto serial........................................................................................................... 1 Esquema (arquitectura del puerto serial) ................................................................................ 1 Características técnicas ............................................................................................................... 3 Características del puerto serial COM .................................................................................. 3 Terminales eléctricas del puerto serial. ............................................................................... 4 Variante física del puerto serial .............................................................................................. 4 Velocidad de transmisión del puerto serial COM .............................................................. 5 Usos específicos del puerto serial COM .............................................................................. 5 Aplicaciones .................................................................................................................................... 5 Ejemplo de programación en ensamblador ............................................................................ 5 Comunicación serial en lenguaje ensamblador. ................................................................ 5 Ejemplo 1. ..................................................................................................................................... 8 Ejemplo 2. ..................................................................................................................................... 9 Bibliografía ..................................................................................................................................... 12

Definición de puerto En la informática, un puerto es una forma genérica de denominar a una interfaz a través de la cual los diferentes tipos de datos se pueden enviar y recibir. Dicha interfaz puede ser de tipo físico, o puede ser a nivel de software (por ejemplo, los puertos que permiten la transmisión de datos entre diferentes ordenadores) en cuyo caso usa frecuentemente el término puerto lógico.

Definición de puerto serial Un puerto serie o puerto en serie es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, donde la información es transmitida bit a bit, enviando un solo bit a la vez; en contraste con el puerto paralelo que envía varios bits simultáneamente. La comparación entre la transmisión en serie y en paralelo se puede explicar usando una analogía con las carreteras: una carretera tradicional de un único carril (en una carretera de ida y vuelta) por cada sentido corresponde a la transmisión en serie, y una carretera autovía con varios carriles por sentido corresponde a la transmisión en paralelo, siendo los vehículos los bits que circulan por el cable.

Esquema (arquitectura del puerto serial) Los puertos seriales (también llamados RS-232, por el nombre del estándar al que hacen referencia) fueron las primeras interfaces que permitieron que los equipos intercambien información con el "mundo exterior". El término serial se refiere a los datos enviados mediante un solo hilo: los bits se envían uno detrás del otro (consulte la sección sobre transmisión de datos para conocer los modos de transmisión).

1

Originalmente, los puertos seriales sólo podían enviar datos, no recibir, por lo que se desarrollaron puertos bidireccionales (que son los que se encuentran en los equipos actuales). Por lo tanto, los puertos seriales bidireccionales necesitan dos hilos para que la comunicación pueda efectuarse. La comunicación serial se lleva a cabo asincrónicamente, es decir que no es necesaria una señal (o reloj) de sincronización: los datos pueden enviarse en intervalos aleatorios. A su vez, el periférico debe poder distinguir los caracteres (un carácter tiene 8 bits de longitud) entre la sucesión de bits que se está enviando. Ésta es la razón por la cual en este tipo de transmisión, cada carácter se encuentra precedido por un bit de ARRANQUE y seguido por un bit de PARADA. Estos bits de control, necesarios para la transmisión serial, desperdician un 20% del ancho de banda (cada 10 bits enviados, 8 se utilizan para cifrar el carácter y 2 para la recepción). Los puertos seriales, por lo general, están integrados a la placa madre, motivo por el cual los conectores que se hallan detrás de la carcasa y se encuentran conectados a la placa madre mediante un cable, pueden utilizarse para conectar un elemento exterior. Generalmente, los conectores seriales tienen 9 ó 25 clavijas y tienen la siguiente forma (conectores DB9 y DB25 respectivamente):

Un PC posee normalmente entre uno y cuatro puertos seriales. Puerto serie asincrónico A través de este tipo de puerto la comunicación se establece usando un protocolo de transmisión asíncrono. En este caso, se envía en primer lugar una señal inicial anterior al primer bit de cada byte, carácter o palabra codificada. Una vez enviado el código correspondiente, se envía inmediatamente una señal de stop después de cada palabra codificada. La señal de inicio (start) sirve para preparar al mecanismo de recepción o receptor, la llegada y registro de un símbolo, mientras que la señal de stop sirve para predisponer al mecanismo de recepción para que tome un descanso y se prepare para la recepción del nuevo símbolo. La típica transmisión start-stop es la que se usa en la transmisión de códigos ASCII a través del puerto RS-232, como la que se establece en las operaciones con teletipos.

El puerto serie RS-232 (también conocido como COM) es del tipo asincrónico, utiliza cableado simple desde 3 hilos hasta 25 y conecta computadoras o microcontroladores a todo tipo de periféricos, desde terminales a impresoras y módems pasando por mouses. La interfaz entre el RS-232 y el microprocesador generalmente se realiza mediante el chip UART 8250 (computadoras de 8 y 16 bits, PC XT) o el 16550 (IBM Personal Computer/AT y posteriores). El RS-232 original tenía un conector

2

tipo DB-25, sin embargo la mayoría de dichos pines no se utilizaban, por lo que IBM estandarizó con su gama IBM Personal System/2 el uso del conector DB-9 (ya introducido en el AT) que se usaba, de manera mayoritaria en computadoras. Sin embargo, a excepción del mouse, el resto de periféricos solían presentar el DB-25 La norma RS-422, similar al RS-232, es un estándar utilizado en el ámbito industrial. Puertos serie modernos Uno de los defectos de los puertos serie iniciales era su lentitud en comparación con los puertos paralelos -hablamos de 19.2 kbits por segundo- sin embargo, con el paso del tiempo, están apareciendo multitud de puertos serie de alta velocidad que los hacen muy interesantes ya que presentan las ventajas del menor cableado y solucionan el problema de la merma de velocidad usando un mayor apantallamiento, y más barato, usando la técnica del par trenzado. Por ello, el puerto RS-232, e incluso multitud de puertos paralelos, se están sustituyendo remplazándose por los nuevos puertos serie como el USB, el FireWire o el Serial ATA. Tipos de comunicación en serie Simplex En este caso el emisor y el receptor están perfectamente definidos y la comunicación es unidireccional. Este tipo de comunicaciones se emplean, usualmente, en redes de radiodifusión, donde los receptores no necesitan enviar ningún tipo de dato al transmisor. Duplex, half duplex o semi-duplex En este caso ambos extremos del sistema de comunicación cumplen funciones de transmisor y receptor y los datos se desplazan en ambos sentidos pero no de manera simultánea. Este tipo de comunicación se utiliza habitualmente en la interacción entre terminales y una computadora central. Full Duplex El sistema es similar al duplex, pero los datos se desplazan en ambos sentidos simultáneamente. Para que sea posible ambos emisores poseen diferentes frecuencias de transmisión o dos caminos de comunicación separados, mientras que la comunicación semi-duplex necesita normalmente uno solo. Para el intercambio de datos entre computadores este tipo de comunicaciones son más eficientes que las transmisiones semidúplex.letty.

Características técnicas Características del puerto serial COM 

En el ámbito de la electrónica comercial se le denomina como conector DB9 ("Dsubminiature type B, 9 pin"), esto es D-subminiatura tipo B, con 9 pines.



Se utilizaba principalmente para la conexión del ratón (Mouse), algunos tipos antiguos de escáneres y actualmente para dispositivos como PDA´s ("Personal Digital Assistant") ó asistentes personales digitales.



Cada puerto, permite conectar solamente 1 dispositivo.



Para conectar y desconectar los dispositivos, así como para que la computadora los reconozca de manera correcta, es necesario apagar y reiniciar la computadora.

3

Terminales eléctricas del puerto serial. El puerto serial cuenta con 9 contactos tipo pin; se muestran las líneas eléctricas y su descripción básica.

Esquema de las líneas del puerto serial COM 1. DCD (Detecta la portadora) 2. RxD (Recibe datos) 3. TxD (Transmite datos) 4. DTR (Terminal de datos listo) 5. SG (Tierra) 6. DSR (Equipo de datos listo) 7. RTS (Solicita enviar) 8. CTS (Disponible para enviar) 9. RI (Indica llamada)

Variante física del puerto serial Se pueden encontrar algunos dispositivos externos e incluso computadoras que tienen un puerto serial diferente al común de 9 pines. Este puerto serial consta de 25 pines, es tipo macho y se utiliza con frecuencia acompañado de un adaptador para poder ser utilizado con conectores de 9 pines.

Conector serial de 25 pines tipo hembra del dispositivo

Adaptador para el puerto serial de 25 pines a 9 pines

4

Velocidad de transmisión del puerto serial COM La forma de medir la velocidad de transmisión del puerto serial es en KiloBytes/segundo (KB/s): Puerto

Velocidad en (KiloBytes/segundo)

Serial COM

112 KB/s

Usos específicos del puerto serial COM El uso principal que se le asignaba era para conectar el ratón (Mouse), e incluso escáneres, pero con la salida al mercado del puerto USB se dejó de utilizar con este fin. Un uso actual es para conectar algunos tipos de PDA´s, agendas electrónicas, conexiones directas entre computadoras ("Laplink"), dispositivos electrónicos para prácticas académicas y colectoras de datos.

Aplicaciones Advanced Serial Port Terminal está específicamente desarrollada para establecer conexión con un puerto serie y enviar/recibir datos en ese puerto. Nuestra aplicación de terminal de puerto serie es una utilidad imprescindible ya que puede enviar y recibir varios datos (cadenas ASCII, binario, octal y hexadecimal), redirigir el flujo de entrada/salida de datos a un archive específico, verificar y solucionar problemas de configuración del modem sin sobrecargar el puerto serie.

Ejemplo de programación en ensamblador Comunicación serial en lenguaje ensamblador. En lenguaje ensamblador, se puede acudir a la interrupción 14H de la ROM-BIOS para configurar, leer, escribir o simplemente para conocer el estado del puerto; cada una de estas cuatro opciones es un servicio de la interrupción, y se seleccionan a través del registro AH. La figura 1 muestra los valores que debe contener el registro AH para invocar cada uno de los servicios. En todos los casos, el registro DX debe contener el número del puerto serie; el primero de ellos, COM1 se especifica como 00h.

5

Para configurar o inicializar el puerto serie, bastará con utilizar el servicio 00 de la interrupción, colocando en el registro AL los valores equivalentes a los parámetros, como se puede observar en la figura 2. Con éste método es posible obtener frecuencias de transmisión que van desde los 110 hasta los 9600 baudios.

6

Para enviar un dato por el puerto serial, bastará con colocar en el registro AH el valor 01 correspondiente a este servicio y en el registro AL el dato a ser enviado, invocando de nuevo la interrupción 14H. La lectura de un dato que ha llegado al puerto se logra con el servicio 02, el cual devuelve en el registro AL el dato. La lectura del estado del puerto se consigue a través del servicio 03 de esta misma interrupción, y retorna en el registro AX el estado del puerto, el cual contendrá los bits que se muestran en la figura 3.

Por ejemplo, podemos utilizar el lenguaje ensamblador para configurar el puerto serial para 1200 baudios, sin bit de paridad, sin bit de parada y 8 bits, realizando el siguiente programa: mov ah,0

;servicio 00 de INT 14h: inicializar puerto

mov a1,83 ;configuración: 1200 baudios, no paridad, ; un bit de parada, 8 bits de datos mov dx,00 ;Seleccionar puerto COM1 int 14

;interrupción del BIOS

mov ah,4c ;servicio 4ch de INT 21h: terminar int 21

;interrupción servicio del DOS

Este programa (en donde todas las cantidades están expresadas en hexadecimal) se puede tornar ejecutable utilizando algunos de los ensambladores para PC, o utilizando el comando DEBUG del DOS. Otra forma de seleccionar los parámetros de la comunicación y lograr ésta, es mediante la modificación y consulta de los registros correspondientes al circuito integrado que maneja la

7

comunicación serial: el UART 8250 o similar. Como se sabe, este circuito integrado puede ser manejado como un puerto, en el cual es posible la escritura o lectura de sus estados.

Comunicación con el puerto paralelo en lenguaje ensamblador. En lenguaje ensamblador, se puede leer un dato del puerto mediante la instrucción IN o escribir un dato en el puerto con la instrucción OU, en ambos casos el registro AL debe participar activamente en la instrucción, bien sea como fuente (en operaciones de escritura) o destino (en operaciones de lectura) del dato, como en los siguientes casos: out DX, AL in

AL,DX

;lleva al puerto DX el contenido del registro AL ;lleva al registro AL, el contenido del puerto DX

Otra, exigencia, es que el número del puerto sobre el que se va a realizar la transferencia de datos debe estar señalado por le registro DX, a excepción de los casos en los cuales el número del puerto es inferior a 255 (FFh), en cuyo caso la instrucción que lee o escribe puede señalar directamente el puerto.

Ejemplo 1. Conexión entre dos computadoras mediante el cable serial, una computadora se deja escuchando mediante el hyperterminal (dejando la configuración predeterminada) y la otra computadora es donde se ejecuta el programa. pila segment stack "STACK" pila ends

data segment data ends

code segment assume cs:code,ds:data,ss:pila inicio: mov AH,00; INICIALIZO PUERTO mov AL, 11100111b ;paramertos de puerto POR DEFAULT mov DX,00 ;puerto

com1

INT 14h

MOV AH,01; enviar datos por el puerto

8

MOV AL, 52; caracter a ser enviado INT 14h

; La funcio 4CH de la inte 21HF devuelve el control al sistema operativo MOV AH,4CH INT 21H code ends end inicio

Ejemplo 2. El siguiente es un código empleado para establecer una comunicación serial entre un computador y un microcontrolador de la marca Motorola de referencia HC908GP32. El condigo consiste en enviar caracteres desde teclado de un computador conectado por el puerto serial hasta el microcontrolador, este a su vez tiene conectado por su puerto PTB un display de 7 segmentos de la siguiente manera: Display de 7 segmentos —————— Microcontrolador ———————PC El microcontrolador recibe los caracteres desde el PC si son numero desde 0 hasta 9 entonces los muestra en el display de la contrario muestra la letra E indicando error. El siguiente es el código que se debe quemar en el microcontrolador explicado paso a paso. FLS

EQU $8000; se iniciará en la posición 8000 de la memoria

RST

EQU $FFFE

CONFIG1

EQU $1F

PTB

EQU $01; se inicia el Puerto B

DDRB

EQU $05; se configura el DRRB

SCDR

EQU $0018

TC

EQU $06

SCISR

EQU $0016

SCRF

EQU $05

CONT

EQU $60; se crea apuntador en la posición 60 de nombre CONT

DATO

EQU $61; se crea apuntador en la posición 61 de nombre DATO

VAR

EQU $62; se crea apuntador en la posición 62 de nombre VAR

SCC1

EQU $0013

SCC2

EQU $0014

SCBR

EQU $0019

ORG

FLS; se configura como punto de partida del programa FLS

9

MAIN:

BSET

0, CONFIG1; de deshabilita el COP

; Se configura todo el sistema para establecer la comunicación MOV

#$03, SCBR

BSET

6, SCC1

BSET

2, SCC2

BSET

3, SCC2

MOV

#$FF, DDRB; configure todo el Puerto B como salida

INICIO: MOV LDHX

#$00, PTB; apaga todo el puerto

#MSG; carga el mensaje “INGRESE UN NUMERO”

TX:

LDA, X

CMP

#$FF

BEQ

PRINT

BRCLR TC, SCISR,*; Espera que se envié un dato al micro STA

SCDR

AIX

#$01

BRA

TX

PRINT:

BSR

DELAY

BRCLR SCRF, SCISR,* LDA

SCDR

CMP

#$39

BGT

ERROR

CMP

#$30

BLO

ERROR

SUB

#$30

STA

DATO

LDHX

#TABLA; carga el número correspondiente en la tabla

TXA ADD

DATO

TAX LDA

, X

EOR

#$80

STA

PTB; envía el número correspondiente al display

BSR

DELAY

BRA

INICIO

ERROR: MOV

#$F9, PTB; envía la letra E al display

BSR

DELAY; va a la subrutina para esperar un tiempo

10

BRA

INICIO; vuelve al inicio del programa

; genera una rutina temporizadora con la variable VAR DELAY:

MOV

#$00, CONT

SIGA:

CLR

VAR

LAZO:

NOP

NOP NOP NOP NOP DEC

VAR

BNE

LAZO

DEC

CONT

BNE

SIGA

RTS ; envía un mensaje al computador “INGRESE UN NUMERO” MSG:

DB

“INGRESE UN NUMERO”, $FF

TABLA:

DB

3F; tabla de los número del 0 al 9

DB

06

DB

5B

DB

4F

DB

66

DB

6D

DB

7D

DB

07

DB

7F

DB

67

ORG

RST

DW

MAIN; regresa al comienzo del programa

END; termina el programa

11

Bibliografía http://hgr.tripod.com/puertos_ensamblador.html https://mteheran.wordpress.com/2008/08/18/programa-de-comunicacion-serial-en-assembler-parael-microntrolador-hc908gp32/ http://www.informaticamoderna.com/El_puerto_serial.htm http://lomejorbueno.blogspot.mx/2012/10/arquitectura-de-puerto-serial.html https://zonaemec.files.wordpress.com/2014/08/6_puertos-conexic3b3n.pdf

12