26.2. Terminologia serial e hardware
Anterior | Capítulo 26. Comunicações Seriais | Próxima

## 26.2. Terminologia serial e hardware

Os termos a seguir são frequentemente usados ​​em comunicações seriais:

bps

  Bits por Segundo (bps) é a taxa na qual os dados são transmitidos.

DTE

  Equipamento Terminal de Dados (DTE) é um dos dois terminais em uma comunicação serial. Um exemplo seria um computador.

DCE

  Equipamento de Comunicações de Dados (DTE) é o outro terminal em uma comunicação serial. Normalmente, é um modem ou terminal serial.

RS-232

  O padrão original que definiu as comunicações seriais de hardware. Desde então, foi renomeado para TIA-232.

Ao se referir a taxas de dados de comunicação, esta seção não usa o termo baud. Baud refere-se ao número de transições de estado elétrico feitas em um período de tempo, enquanto bps é o termo correto a ser usado.

Para conectar um terminal serial a um sistema FreeBSD, são necessárias uma porta serial no computador e o cabo adequado para conectar ao dispositivo serial. Os usuários que já estão familiarizados com hardware serial e cabeamento podem pular esta seção com segurança.

### 26.2.1. Cabos Serial e Portas

Existem vários tipos diferentes de cabos seriais. Os dois tipos mais comuns são cabo null-modem e cabo padrão RS-232. A documentação do hardware deve descrever o tipo de cabo necessário.

Estes dois tipos de cabos diferem em como os fios são conectados ao conector. Cada fio representa um sinal, com os sinais definidos resumidos em Tabela 26.1, “RS-232C Nomes dos Sinais”. Um cabo serial padrão passa todos os sinais RS-232C diretamente. Por exemplo, o pino “Transmitted Data” em uma extremidade do cabo vai para o pino “Transmitted Data” na outra extremidade. Este é o tipo de cabo usado para conectar um modem ao sistema FreeBSD e também é apropriado para alguns terminais.

Um cabo de modem nulo alterna o pino “Transmitted Data” do conector em uma extremidade com o pino “Received Data” na outra extremidade. O conector pode ser um DB-25 ou um DB-9.

Um cabo de modem nulo pode ser construído usando as conexões de pinos resumidas em Tabela 26.2, “Cabo Null-Modem DB-25 para DB-25”, Tabela 26.3, “Cabo DB-9 para DB-9 Null-Modem” e Tabela 26.4, “Cabo DB-9 para DB-25 Null-Modem”. Enquanto o padrão exige um pino direto 1 para fixar uma linha “Protective Ground”, ele é freqüentemente omitido. Alguns terminais funcionam usando apenas os pinos 2, 3 e 7, enquanto outros exigem configurações diferentes. Em caso de dúvida, consulte a documentação do hardware.

Tabela 26.1. RS-232C Nomes dos Sinais

Siglas | Nomes
--- | ---
RD | Received Data
TD | Transmitted Data
DTR | Data Terminal Ready
DSR | Data Set Ready
DCD | Data Carrier Detect
SG | Signal Ground
RTS | Request to Send
CTS | Clear to Send

Tabela 26.2. Cabo Null-Modem DB-25 para DB-25

Sinal | Pin # |  | Pin # | Sinal
--- | --- | --- | --- | ---
SG | 7 | conecta-se a | 7 | SG
TD | 2 | conecta-se a | 3 | RD
RD | 3 | conecta-se a | 2 | TD
RTS | 4 | conecta-se a | 5 | CTS
CTS | 5 | conecta-se a | 4 | RTS
DTR | 20 | conecta-se a | 6 | DSR
DTR | 20 | conecta-se a | 8 | DCD
DSR | 6 | conecta-se a | 20 | DTR
DCD | 8 | conecta-se a | 20 | DTR

Tabela 26.3. Cabo DB-9 para DB-9 Null-Modem

Sinal | Pin # |  | Pin # | Sinal
--- | --- | --- | --- | ---
RD | 2 | conecta-se a | 3 | TD
TD | 3 | conecta-se a | 2 | RD
DTR | 4 | conecta-se a | 6 | DSR
DTR | 4 | conecta-se a | 1 | DCD
SG | 5 | conecta-se a | 5 | SG
DSR | 6 | conecta-se a | 4 | DTR
DCD | 1 | conecta-se a | 4 | DTR
RTS | 7 | conecta-se a | 8 | CTS
CTS | 8 | conecta-se a | 7 | RTS

Tabela 26.4. Cabo DB-9 para DB-25 Null-Modem

Sinal | Pin # |  | Pin # | Sinal
--- | --- | --- | --- | ---
RD | 2 | conecta-se a | 2 | TD
TD | 3 | conecta-se a | 3 | RD
DTR | 4 | conecta-se a | 6 | DSR
DTR | 4 | conecta-se a | 8 | DCD
SG | 5 | conecta-se a | 7 | SG
DSR | 6 | conecta-se a | 20 | DTR
DCD | 1 | conecta-se a | 20 | DTR
RTS | 7 | conecta-se a | 5 | CTS
CTS | 8 | conecta-se a | 4 | RTS

### Nota:

Quando um pino em uma extremidade se conecta a um par de pinos na outra extremidade, geralmente é implementado com um fio curto entre o par de pinos em seu conector e um fio longo no outro pino único.

As portas seriais são os dispositivos através dos quais os dados são transferidos entre o computador host do FreeBSD e o terminal. Vários tipos de portas seriais existem. Antes de comprar ou construir um cabo, verifique se ele irá se encaixar nas portas do terminal e no sistema FreeBSD.

A maioria dos terminais tem portas DB-25. Os computadores pessoais podem ter portas DB-25 ou DB-9. Um cartão serial multiportas pode ter portas RJ-12 ou RJ-45/. Consulte a documentação que acompanha o hardware para especificações sobre o tipo de porta ou verifique visualmente o tipo de porta.

No FreeBSD, cada porta serial é acessada através de uma entrada em `/dev`. Existem dois tipos diferentes de entradas:

- As portas de chamada são nomeadas `/dev/ttyu`N`` onde `N` é o número da porta, começando do zero. Se um terminal estiver conectado a primeira porta serial (`COM1`), use `/dev/ttyu0` para se referir ao terminal. Se o terminal estiver na segunda porta serial (`COM2`), use `/dev/ttyu1` e assim por diante. Geralmente, a porta de chamada é usada para terminais. As portas de chamada requerem que a linha serial declare o sinal “Data Carrier Detect” para funcionar corretamente.

- As portas de chamadas de saida são nomeadas `/dev/cuau`N`` nas versões 8.X e superiores do FreeBSD e `/dev/cuad`N`` nas versões 7.X e inferiores do FreeBSD. As portas de chamada de saida geralmente não são usadas para terminais, mas são usadas para modems. A porta de evocação pode ser usada se o cabo serial ou o terminal não suportar o sinal “Data Carrier Detect”.

O FreeBSD também fornece dispositivos de inicialização (`/dev/ttyu`N`.init` e `/dev/cuau`N`.init` ou `/dev/cuad`N`.init`) e dispositivos de bloqueio (`/dev/ttyu`N`.lock` e `/dev/cuau`N`.lock` ou `/dev/cuad`N`.lock`). Os dispositivos de inicialização são utilizados para inicializar os parâmetros da porta de comunicações de cada vez que uma porta é aberta, tal como o `crtscts` para modems que usam `RTS/CTS` sinalização para controle de fluxo. Os dispositivos de bloqueio são usados ​​para bloquear sinalizadores nas portas para impedir que usuários ou programas alterem determinados parâmetros. Consulte termios(4), sio(4), e stty(1) para obter informações sobre configurações de terminal, bloqueio e inicialização de dispositivos e configuração de opções de terminal, respectivamente.

### 26.2.2. Configuração de Porta Serial

Por padrão, o FreeBSD suporta quatro portas seriais que são comumente conhecidas como `COM1`, `COM2`, `COM3` e `COM4`. O FreeBSD também suporta placas de interfaces seriais multi-port, como o BocaBoard 1008 e 2016, bem como placas multi-port mais inteligentes, como as feitas pela Digiboard. No entanto, o kernel padrão procura apenas as portas padrão `COM`.

Para ver se o sistema reconhece as portas seriais, procure por mensagens de inicialização do sistema que começam com `uart`:

    # grep uart /var/run/dmesg.boot

Se o sistema não reconhecer todas as portas seriais necessárias, entradas adicionais podem ser adicionadas ao `/boot/device.hints`. Este arquivo já contém entradas `hint.uart.0.*` para entradas `COM1` e `hint.uart.1.*` para `COM2`. Ao adicionar uma entrada de porta para `COM3` use `0x3E8` e para `COM4` use `0x2E8`. Endereços comuns de IRQ são `5` para `COM3` e `9` para `COM4`.

Para determinar o conjunto padrão de configurações de terminal E/S usadas pela porta, especifique o nome do dispositivo. Este exemplo determina as configurações para a porta de chamada em `COM2`:

    # stty -a -f /dev/ttyu1

A inicialização de dispositivos seriais em todo o sistema é controlada por `/etc/rc.d/serial`. Este arquivo afeta as configurações padrão dos dispositivos seriais. Para alterar as configurações de um dispositivo, use `stty`. Por padrão, as configurações alteradas estão em vigor até que o dispositivo seja fechado e, quando o dispositivo for reaberto, volte para o conjunto padrão. Para alterar permanentemente o conjunto padrão, abra e ajuste as configurações do dispositivo de inicialização. Por exemplo, para ativar o modo `CLOCAL`, comunicação de 8 bits e controle de fluxo `XON/XOFF` para `ttyu5`, digite:

    # stty -f /dev/ttyu5.init clocal cs8 ixon ixoff

Para impedir que determinadas configurações sejam alteradas por um aplicativo, faça ajustes no dispositivo de bloqueio. Por exemplo, para bloquear a velocidade de `ttyu5` para 57600 bps, digite:

    # stty -f /dev/ttyu5.lock 57600

Agora, qualquer aplicativo que abra `ttyu5` e tente alterar a velocidade da porta será bloqueado com 57600 bps.

Anterior | Acima | Próxima
Capítulo 26. Comunicações Seriais | Principal | 26.3. Terminais

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.