Manual de FreeBSD
Anterior | Capítulo 24. Comunicaciones serie | Siguiente

# 24.2. Introducción

## 24.2.1. Terminología

bps

  Bits por segundo -- la tasa a la cual los datos son transmitidos

DTE

  Data Terminal Equipment (Equipo terminal de datos) -- por ejemplo, su computadora

DCE

  Data Communications Equipment (Equipo de comunicación de datos) -- su modem

RS-232

  Estándar EIA para hardware de comunicación serie

Cuando se habla de tasa de comunicación de datos, ésta sección no usa el término “baud”. Baud se refiere al número de estados de transición eléctricos que pueden realizarse en un periodo de tiempo, mientras que “bps” (bits por segundo) es el término correcto a usar (al menos parece no molestar demasiado a los más aferrados).

## 24.2.2. Cables y puertos

Para conectar un modem o terminal a su sistema FreeBSD necesitará un puerto serie en su computadora y el cable apropiado para conectar a su dispositivo serie. Si ya está familiarizado con su hardware y el cable que requiere, puede saltarse esta sección.

### 24.2.2.1. Cables

Existen diferentes tipos de cables serie. Los dos tipos más comunes para nuestros propósitos son cables null-modem y cables RS-232 estándar (“normal”). La documentación de su hardware debería describir el tipo de cable requerido.

#### 24.2.2.1.1. Cables null-modem

Un cable null-modem pasa algunas señales, como “tierra”, normalmente, pero cambia otras señales. Por ejemplo, el pin “envío de datos” en un extremo va al pin “recepción de datos” en el otro.

Si le gusta fabricar sus propios cables, puede construir un cable null-modem para utilizar con terminales. Esta tabla muestra los nombres de señal y números de pin en un conector DB-25.

Señal | Pin # |  | Pin # | Señal
--- | --- | --- | --- | ---
SG | 7 | conecta a | 7 | SG
TD | 2 | conecta a | 3 | RD
RD | 3 | conecta to | 2 | TD
RTS | 4 | conecta a | 5 | CTS
CTS | 5 | conecta a | 4 | RTS
DTR | 20 | conecta a | 6 | DSR
DCD | 8 |  | 6 | DSR
DSR | 6 | conecta a | 20 | DTR

> Nota: Conectar “Data Set Ready” (DSR) y “Data Carrier Detect” (DCD) intérnamente en la capucha del conector, y entonces a “Data Terminal Ready” (DTR) en la capucha remota.

#### 24.2.2.1.2. Cables estándard RS-232C

Un cable serie estándar pasa todas las señales RS-232C normalmente. Esto es, el pin “envío de datos” en un extremo va al pin “envío de datos” en el otro extremo. Este es el tipo de cable a utilizar para conectar un modem a su sistema FreeBSD, y también es apropiado para algunas terminales.

### 24.2.2.2. Puertos

Puertos serie son los dispositivos a través de los cuales los datos son transferidos entre una computadora FreeBSD y la terminal. Esta sección describe los tipos de puertos que existen y como son referidos en FreeBSD.

#### 24.2.2.2.1. Tipos de puertos

Existen varios tipos de puertos serie. antes de comprar o construir un cable, necesita asegurarse que coincida con los puertos en su terminal y en su sistema FreeBSD.

La mayoría de las terminales tienen puertos DB25. Computadoras personales, incluyendo PCs corriendo FreeBSD, tienen puertos DB25 o DB9. Si tiene una tarjeta multipuertos serie para su PC, tal vez tenga puertos RJ-12 o RJ-45.

Vea la documentación que acompaña su hardware para las especificaciones sobre el tipo de puerto en uso. Una inspección visual del puerto también funciona en la mayoría de los casos.

#### 24.2.2.2.2. Nombres de puerto

En FreeBSD, se accesa cada puerto serie a través de una entrada en el directorio `/dev`. Existen dos tipos de entradas:

- Puertos de llamada-entrante son llamados `/dev/ttyd`N`` donde `N` es el número de puerto, iniciando desde cero. Generalmente, los puertos de llamada-entrante se utilizan para terminales. Los puertos de llamada-entrante requieren que la línea serie especifique la señal data carrier detect (DCD) para funcionar correctamente.

- Puertos de llamada-saliente son llamados `/dev/cuaa`N``. Usualmente no se utilizan los puertos de llamada-saliente para terminales, solo para modems. Puede utilizar el puerto de llamada-saliente si el cable serie o la terminal no soporta la señal de carrier detect.

Si tiene conectada una terminal al primer puerto serie (`COM1` en MS-DOS®), entonces usará `/dev/ttyd0` para referirse a la terminal. Si la terminal está en el segundo puerto serie (también conocido como `COM2`), utilice `/dev/ttyd1`, y así sucesivamente.

## 24.2.3. Configuración del kernel

FreeBSD soporta cuatro puertos serie por omisión. en el mundo MS-DOS éstos son conocidos como `COM1`, `COM2`, `COM3`, y `COM4`. FreeBSD actualmente soporta tarjetas de interfaz serie “tontas”, como la BocaBoard 1008 y 2016, así como tarjetas multipuerto más inteligentes como las fabricadas por Digiboard y Stallion Technologies. De cualquier manera, el kernel por omisión solo busca por los puertos COM estándares.

Para ver si su kernel reconoce cualquiera de sus puertos serie, mire los mensajes mientras el kernel esta arrancando, o utilice el comando `/sbin/dmesg` para repetir los mensajes de arranque del kernel. En particular busque por mensajes que inicien con el caracter `sio`.

> Sugerencia: Para ver solamente los mensajes que contienen la palabra `sio`, use el comando:

>     # /sbin/dmesg | grep 'sio'

Por ejemplo, en un sistema con cuatro puertos serie, éstos son los mensajes de arranque del kernel específicos de puerto serie:

    sio0 at 0x3f8-0x3ff irq 4 on isa
    sio0: type 16550A
    sio1 at 0x2f8-0x2ff irq 3 on isa
    sio1: type 16550A
    sio2 at 0x3e8-0x3ef irq 5 on isa
    sio2: type 16550A
    sio3 at 0x2e8-0x2ef irq 9 on isa
    sio3: type 16550A

Si su kernel no reconoce todos sus puertos serie, probablemente necesitará configurar un kernel FreeBSD personalizado para su sistema. Para información detallada sobre configurar su kernel, por favor vea Capítulo 8.

Las líneas de dispositivo relevantes para su fichero de configuración del kernel podrín verse de esta manera, para FreeBSD 4.X:

    device     sio0    at isa? port IO_COM1 irq 4
    device      sio1    at isa? port IO_COM2 irq 3
    device      sio2    at isa? port IO_COM3 irq 5
    device      sio3    at isa? port IO_COM4 irq 9

y de esta manera, para FreeBSD 5.X:

    device     sio

Puede comentar o remover completamente líneas de dispositivos que no tenga en el caso de FreeBSD 4.X; para FreeBSD 5.X tiene que editar su fichero `/boot/device.hints` para configurar sus puertos serie. Por favor diríjase a la página de manual sio(4) para mayor información sobre puertos serie y configuración de tarjetas multipuertos. Tenga cuidado si está utilizando un fichero de configuración que fué usado anteriomente para una versión diferente de FreeBSD porque las banderas de dispositivo y la sintaxis han cambiado entre versiones.

> Nota: `port IO_COM1` es una substitución para `port 0x3f8`, `IO_COM2` es `0x2f8`, `IO_COM3` es `0x3e8`, y `IO_COM4` es `0x2e8`, las cuales son direcciones de puerto comunes para sus respectivos puertos serie; interrupciones 4,3,5 y 9 son peticiones comunes de líneas de interrupción. Note también que puertos serie regulares no pueden compartir interrupciones en PCs con bus ISA (las tarjetas multipuerto tienen electrónicos que les permiten a los 16550A's compartir una o dos líneas de peticiones de interrupción).

## 24.2.4. Archivos especiales de dispositivo

La mayoría de dispositivos en el kernel son accesados a través de “ficheros especiales de dispositivo”, los cuales están localizados en el directorio `/dev`. Los dispositivos `sio` son accesados a través de los dispositivos `/dev/ttyd`N`` (dial-in) y `/dev/cuaa`N`` (call-out). FreeBSD provee también dispositivos de inicialización (`/dev/ttyid`N`` y `/dev/cuaia`N``) y dispositivos de bloqueo (`/dev/ttyld`N`` y `/dev/cuala`N``). Los dispotivos de inicialización son utilizados para inicializar los parámetros de comunicación de puerto cada vez que un puerto es abierto, como `crtscts` para modems que utilizan señalización `RTS/CTS` para control de flujo. Los dispositivos de bloqueo son utilizados para bloquear banderas en puertos y prevenir que usuarios o programas cambien ciertos parámetros; vea las páginas de manual termios(4), sio(4), y stty(1) para información de las propiedades de terminales, bloqueo e inicialización de dispositivos y aplicación de opciones de terminal, respectivamente.

### 24.2.4.1. Creando ficheros de dispositivo especiales

> Nota: FreeBSD 5.0 incluye el sistema de ficheros devfs(5) el cual crea automáticamente nodos de dispositivos según se necesiten. si está corriendo una versión de FreeBSD con `devfs` habilitado entonces puede saltarse esta sección.

Un script de shell llamado `MAKEDEV` en el directorio `/dev` administra los ficheros especiales de dispositivo. Para utilizar `MAKEDEV` para crear un fichero especial de dispositivo dial-up para `COM1` (port 0), `cd` a `/dev` y ejecute el comando `MAKEDEV ttyd0`. De la misma manera, para crear ficheros especiales de dispositivo para `COM2` (port 1), utilice `MAKEDEV ttyd1`.

`MAKEDEV` no crea solamente el fichero especial de dispositivo `/dev/ttyd`N`` también crea los nodos `/dev/cuaa`N``, `/dev/cuaia`N``, `/dev/cuala`N``, `/dev/ttyld`N``, y `/dev/ttyid`N``.

Despues de crear ficheros especiales de dispositivo nuevos, asegúrese de revisar los permisos en los ficheros (especialmente los ficheros `/dev/cua*`) para asegurarse que solamente los usuarios que deben tener acceso a esos ficheros especiales de dispositivo puedan leer y escribir en ellos -- probablemente no desee permitir al usuario promedio utilizar sus modems para marcar al exterior. Los permisos por omisión en los ficheros `/dev/cua*` deberían ser suficientes:

    crw-rw----    1 uucp     dialer    28, 129 Feb 15 14:38 /dev/cuaa1
    crw-rw----    1 uucp     dialer    28, 161 Feb 15 14:38 /dev/cuaia1
    crw-rw----    1 uucp     dialer    28, 193 Feb 15 14:38 /dev/cuala1

Estos permisos permiten al usuario `uucp` y usuarios en el grupo `dialer` utilizar dispositivos call-out.

## 24.2.5. Configuración de puerto serie

El dispositivo `ttyd`N`` (o `cuaa`N``) es el dispositivo regular que usted deseará abrir para sus aplicaciones. Cuando un proceso abre el dispositivo, tendrá un conjunto por omisión de propiedades de terminal E/S. Puede ver estas propiedades con el comando

    # stty -a -f /dev/ttyd1

Cuando cambia las propiedades de este dispositivo, las propiedades son efectivas hasta que el dispositivo es cerrado. Cuando es reabierto regresa a las propiedades por omisión. Para realizar cambios al conjunto por omisión, usted puede abrir y ajustar las propiedades del dispositivo de “estado inicial” . Por ejemplo, para activar el modo `CLOCAL`, comunicación de 8 bits y control de flujo `XON/XOFF` por omisión para `ttyd5`, teclée:

    # stty -f /dev/ttyid5 clocal cs8 ixon ixoff

La inicialización para todo el sistema de los dispositivos serie es controlada en `/etc/rc.serial`. Este fichero afecta las propiedades por omisión de dispositivos serie.

Para prevenir que ciertas propiedades sean cambiadas por una aplicación, haga ajustes al dispositivo “bloquear estado”. Por ejemplo, para confinar la velocidad en `ttyd5` a 57600 bps, teclée:

    # stty -f /dev/ttyld5 57600

Ahora, una aplicación que abra `ttyd5` y trate de cambiar la velocidad del puerto se mantendrá con 57600 bps.

Naturalmente, debería crear los dispositivos de estado inicial y bloqueo de estado escribible únicamente para la cuenta `root` .

Anterior | Inicio | Siguiente
Comunicaciones serie | Subir | Terminales

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.