Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Las diferencias entre ambas son mínimas, por lo que a veces se habla
indistintamente de V.24 y de RS-232C (incluso sin el sufijo "C"), refiriéndose
siempre al mismo estándar.
RS-232C
Banda prohibida 3 V
Impedancia de la carga 3 K a 7 K
Cada pin puede ser de entrada o de salida, teniendo una función especifica cada
uno de ellos. Las más importantes son:
Pin Función
DC Detección de Portadora
D
Las señales TXD, DTR y RTS son de salida, mientras que RXD, DSR, CTS y DCD son
de entrada. La masa de referencia para todas las señales es SG (Tierra de Señal).
Finalmente, existen otras señales como RI (Indicador de Llamada), y otras poco
comunes que no se suelen utilizar.
DB-25 DB-9
1 1 - Masa chasis -
7 5 SG Signal Ground -
22 9 RI Ring Indicator E
A partir de la gama Pentium, las UART de las placas base son todas de alta
velocidad, es decir UART 16550A. De hecho, la mayoría de los módems
conectables a puerto serie necesitan dicho tipo de UART. Los portátiles suelen
llevar otros chips: 82510(con buffer especial, emula al 16450) o el 8251 (no es
compatible). A veces los portátiles apuran mucho el estándar, rebajando los
niveles de tensión, lo cual limita el alcance y puede hacer que el JDM
Programmer del Capítulo 2 no funcione correctamente.
Para controlar al puerto serie, la CPU emplea direcciones de puertos de E/S y
líneas de interrupción (IRQ). En el AT-286 se eligieron las direcciones 3F8h (o
0x3f8) e IRQ 4 para el COM1, y 2F8h e IRQ 3 para el COM2. El estándar del PC
llega hasta aquí, por lo que al añadir posteriormente otros puertos serie, se
eligieron las direcciones 3E8 y 2E8 para COM3-COM4, pero las IRQ no están
especificadas (COM3 suele tener IRQ4 y COM4 IRQ3) . Cada usuario debe
elegirlas de acuerdo a las que tenga libres o el uso que vaya a hacer de los
puertos serie (por ejemplo, no importa compartir una misma IRQ en dos puertos
siempre que no se usen conjuntamente).
Mediante los puertos de E/S se pueden intercambiar datos, mientras que las IRQ
producen una interrupción para indicar a la CPU que ha ocurrido un evento (por
ejemplo, que ha llegado un dato, o que ha cambiado el estado de algunas
señales de entrada). La CPU debe responder a estas interrupciones lo mas rápido
posible, para que dé tiempo a recoger el dato antes de que el siguiente lo
sobreescriba. Sin embargo, las UART 16550A incluyen unos buffers de tipo FIFO,
dos de 16 bytes (para recepción y transmisión), donde se pueden guardar varios
datos antes de que la CPU los recoja. Esto también disminuye el número de
interrupciones por segundo generadas por el puerto serie.
DTE con DTE sin control de flujo hardware (p.ej. 2 ordenadores entre sí).
El cable que hay que usar para el proyecto es este último, aunque no es
necesario conectar DCD, DSR y DTR. Si se va a comprar, el cable módem
estándar funciona perfectamente. Si se va a fabricar entonces conviene
rodear los cables con malla metálica (soldar con el pin 1).
El Hyperterminal permite:
2.1 Descripción.
En modo asíncrono la USART usa el modo estándar NRZ (non return to zero), con
un bit de start, 8 o 9 bits de datos y un bit de parada. La USART no tiene
implementada la paridad, pero puede generarse y comprobarse por software,
usando el noveno bit para ello.
- Circuito de Muestreo.
- Transmisor Asíncrono.
- Receptor Asíncrono.
2.2 Configuración.
Generador de Baud Rate: Para generar un baud rate de 2400 bps con un reloj de
4 MHz hay que poner el valor decimal 25 en SPBRG, con el flag BRGH=0. Se
comete un error de sólo el 0.17 %, que no dará problema alguno. Para baud rates
más grandes se llegan a cometer errores de hasta el 10 %.
3. Ir a 1.
Para recibir datos hay que usar una pata que pueda generar interrupciones (RB0
por ejemplo). Cuando se detecte un flanco de bajada 1->0 entonces empieza la
recepción de un byte (el estado por defecto es 1 y el bit de start es 0). Se
muestrea entonces a intervalos regulares de forma que coincida más o menos en
el centro de cada bit. Si el puerto está a uno se pone un uno en el registro usado
para recibir (inicializado a 0x00) y los rotaremos una posición (se recibe el LSB
primero). Comprobaremos que el bit de stop es correcto, y así tendremos en un
registro el byte recibido. Para tener una buena temporización se puede optar por
un generador de baud rate externo o bien podemos "contar instrucciones" que
sabemos que se ejecutan a fosc/4. En vez de muestrear solo una vez cada bit
sería recomendable hacerlo tres veces si el canal es ruidoso.
Para transmitir es muy sencillo. Se elige una pata. Se configura como salida y se
pone a '1' como valor por defecto. Para empezar a transmitir se pone a cero la
salida. Se espera el tiempo de un bit (416us para 2400bps) y se procede igual con
el resto de bits empezando por el LSB. Por último poner la salida a 1 (bit de stop).
Si no se quiere transmitir más dejar entonces la salida a '1'. Si se quiere
transmitir más, entonces hay que dejar la salida a '1' el tiempo de un bit (stop
bit) y comenzar otra vez con el start bit .
Sincrona
Asincrona