SlideShare uma empresa Scribd logo
1 de 21
Comunicação Serial
em Unix usando
linguagem C
Prof. Rômulo Silva

Abr/2008
Rômulo C. Silva
Comunicação Serial
Transferência de um bit por vez
Usada em dispositivos de rede, teclados,
mouse, MODEMs e terminais
Velocidade de transmissão expressa em bps
(bits-por-segundo) ou “baud-rate”
Padrão RS-232:
Padrão elétrico definido pela EIA (Eletronic
Industries Association)
Existem 3 categorias: A, B e C, sendo RS-232C
a mais usada

Rômulo C. Silva
RS-232
DTE (Data Terminal Equipment):
equipamento que faz o processamento dos
sinais.
DCE (Data Circuit-terminating Equipment modem ): equipamento que faz a conexão
Um cabo de conexão entre dispositivos DTE
e DCE contém ligações em paralelo, não
necessitando mudanças na conexão de
pinos.

Rômulo C. Silva
RS-232C

Rômulo C. Silva
RS-232
Sinal

Significado

SG ou GND

Terra

TD ou TX

Tranmissão de dados

RD ou RX

Recepção de dados

DTR

Terminal de dados pronto

DSR

Conjunto de dados pronto

RTS

Pronto p/ enviar (computador)

CTS

Envie os dados (modem)

DCD

Portadora detectada

RI

Indicador de telefone tocando

FG

Frame Ground
Rômulo C. Silva
RS-232 C

Rômulo C. Silva
RS-232
Especifica um conector de 9 ou 25 pinos

Rômulo C. Silva
RS-232
Os sinais de temporização de transmissão e
recepção são utilizados somente quando o
protocolo de transmissão utilizado for
síncrono.
Para protocolos assíncronos, padrão 8 bits,
os sinais de temporização externos são
desnecessários.

Rômulo C. Silva
Etapas da Comunicação Serial
Abertura da porta de comunicação
Configuração da porta
Transmissão de dados
Recepção de dados

Rômulo C. Silva
Comunicação Serial em Unix
Como todos os dispositivos, a porta serial é
tratada como um arquivo (diretório padrão
/dev)

Rômulo C. Silva
Abertura da Porta Serial
fd = open(arquivoPorta, flags);
Função retorna um file descriptor que
permite o acesso à porta.
Flags:
O_NOCTTY : programa não será um terminal
controlador da porta. Evita que o processo seja
afetado por interrupção via teclado.
O_NDELAY : programa não irá cuidar da linha do
sinal DCD. Evita que o processo seja colocado
para “dormir” até haja sinal na linha DCD
O_RDWR : porta será aberta para leitura e
gravação
Rômulo C. Silva
Abertura da Porta Serial em Unix
#include
#include
#include
#include
#include
#include

<stdio.h> /* Standard input/output definitions */
<string.h> /* String function definitions */
<unistd.h> /* UNIX standard function definitions */
<fcntl.h> /* File control definitions */
<errno.h> /* Error number definitions */
<termios.h> /*POSIX terminal control definitions */

/* * 'open_port()' - Open serial port 1. * * Returns the
file descriptor on success or -1 on error. */
int open_port(void) {
int fd; /* File descriptor for
fd = open("/dev/ttyS0", O_RDWR
O_NDELAY);
if (fd == -1) { /* * Could not
perror("open_port: Unable to
}
else fcntl(fd, F_SETFL, 0);
return (fd);
}

the port */
| O_NOCTTY |
open the port. */
open /dev/ttyS0 - ");

Rômulo C. Silva
Escrever na Porta Serial
Uso da chamada de sistema write:
n = write(fd, "ATZr", 4);
if (n < 0)
fputs("write() of 4 bytes failed!n", stderr);

Rômulo C. Silva
Leitura de dados da Porta Serial
Uso da chamada de sistema read
Retorna a quantidade de bytes disponíveis
no buffer da porta serial
Se não há bytes disponíveis, o programa
fica bloqueado até haja dados disponíveis
O comportamento da função read pode ser
alterado para retornar imediatamente
quando não houver dados através da
chamada:
fcntl(fd, F_SETFL, FNDELAY);

P/ restaurar o comportamento de read:
fcntl(fd, F_SETFL, 0);
Rômulo C. Silva
Leitura da Porta Serial
n=read(fd, buf, 5); /*tenta 5 bytes colocando
na variável buf */
if(n < 0) {
perror(“Sem dadosn”);
}

Rômulo C. Silva
Fechar a porta Serial
Chamda de sistema close.
close(fd);

Rômulo C. Silva
Configuração da Porta Serial
No arquivo <termios.h> encontra-se
definida uma estrutura (struct) que guarda
informações de configuração da porta serial
As funções tcgetattr e tcsetattr permite
ler e atribuir uma configuração à porta
serial, respectivamente

Rômulo C. Silva
Configuração da Porta Serial –
struct termios

Rômulo C. Silva
Configuração da Porta Serial
Em difentes SOs, a taxa de transmissão e
recepção (baud-rate) é armazenada em
locais diferentes.
As funções cfsetospeed e cfsetispeed
permitem configurar a taxas de
transmissão e recepção, independente do
SO.

Rômulo C. Silva
Configuração da Porta Serial
struct termios options;
/* * Get the current options for the port... */
tcgetattr(fd, &options);
/* * Set the baud rates to 19200... */
cfsetispeed(&options, B19200);
cfsetospeed(&options, B19200);
/* * Enable the receiver and set local mode... */
options.c_cflag |= (CLOCAL | CREAD);
/* * Set the new options for the port... */
tcsetattr(fd, TCSANOW, &options);
Rômulo C. Silva
Configuração da Porta Serial
Flags para função tcsetattr:

Rômulo C. Silva

Mais conteúdo relacionado

Mais procurados

Aula 6 emu8086
Aula 6   emu8086Aula 6   emu8086
Aula 6 emu8086
LCCIMETRO
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentium
EMSNEWS
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
Rafael Cruz
 

Mais procurados (19)

Assembly
AssemblyAssembly
Assembly
 
Profibus s7
Profibus s7Profibus s7
Profibus s7
 
Pic16f628a
Pic16f628aPic16f628a
Pic16f628a
 
Implatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com LinuxImplatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com Linux
 
Configuração
ConfiguraçãoConfiguração
Configuração
 
Unix Sockets
Unix SocketsUnix Sockets
Unix Sockets
 
Instalacao roip
Instalacao roipInstalacao roip
Instalacao roip
 
Aula 6 emu8086
Aula 6   emu8086Aula 6   emu8086
Aula 6 emu8086
 
Programando microcontroladores pic março
Programando microcontroladores pic marçoProgramando microcontroladores pic março
Programando microcontroladores pic março
 
Linux network administration | Curso de Redes | 3Way Networks
Linux network administration | Curso de Redes | 3Way NetworksLinux network administration | Curso de Redes | 3Way Networks
Linux network administration | Curso de Redes | 3Way Networks
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 
ARM
ARMARM
ARM
 
Linguagem Assembly
Linguagem AssemblyLinguagem Assembly
Linguagem Assembly
 
Aula 15 processadores
Aula 15 processadoresAula 15 processadores
Aula 15 processadores
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
Processador CISC RISC SET de instruções
Processador CISC RISC SET de instruçõesProcessador CISC RISC SET de instruções
Processador CISC RISC SET de instruções
 
Ficha de trabalho 1
Ficha de trabalho 1Ficha de trabalho 1
Ficha de trabalho 1
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentium
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
 

Semelhante a Comunicação Serial Linux

Ac.m4 tarefa video-emil
Ac.m4 tarefa video-emilAc.m4 tarefa video-emil
Ac.m4 tarefa video-emil
fantic3o
 
Estrutura Básica de um
Estrutura Básica de um Estrutura Básica de um
Estrutura Básica de um
Ana Covas Grilo
 

Semelhante a Comunicação Serial Linux (20)

Java Comunicação Serial
Java Comunicação SerialJava Comunicação Serial
Java Comunicação Serial
 
Ac.m4 tarefa video-emil
Ac.m4 tarefa video-emilAc.m4 tarefa video-emil
Ac.m4 tarefa video-emil
 
Exer ic prova
Exer ic provaExer ic prova
Exer ic prova
 
Linux lpi 101
Linux lpi 101Linux lpi 101
Linux lpi 101
 
Glossário de Termos Técnicos em Redes de Computadores
Glossário de Termos Técnicos em Redes de ComputadoresGlossário de Termos Técnicos em Redes de Computadores
Glossário de Termos Técnicos em Redes de Computadores
 
Introdução a Redes de Computadores
Introdução a Redes de ComputadoresIntrodução a Redes de Computadores
Introdução a Redes de Computadores
 
Ac15 entrada e saída
Ac15   entrada e saídaAc15   entrada e saída
Ac15 entrada e saída
 
Estrutura básica de um computador
Estrutura básica de um computadorEstrutura básica de um computador
Estrutura básica de um computador
 
Estrutura Básica de um
Estrutura Básica de um Estrutura Básica de um
Estrutura Básica de um
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Cartao referencia ccs
Cartao referencia ccsCartao referencia ccs
Cartao referencia ccs
 
Configuração
ConfiguraçãoConfiguração
Configuração
 
Redes aula13
Redes aula13Redes aula13
Redes aula13
 
Camadas de Transporte
Camadas de TransporteCamadas de Transporte
Camadas de Transporte
 
Redes Camadas de Transporte
Redes Camadas de TransporteRedes Camadas de Transporte
Redes Camadas de Transporte
 
Ko 7 kdp-06
Ko 7 kdp-06Ko 7 kdp-06
Ko 7 kdp-06
 
io
ioio
io
 
Treinamento arduino (1).pptx
Treinamento arduino (1).pptxTreinamento arduino (1).pptx
Treinamento arduino (1).pptx
 
Dispositivos [Entrada E SaíDa]
Dispositivos [Entrada E SaíDa]Dispositivos [Entrada E SaíDa]
Dispositivos [Entrada E SaíDa]
 
Aula 8 – Componentes de um computador
Aula 8 – Componentes de um computadorAula 8 – Componentes de um computador
Aula 8 – Componentes de um computador
 

Último

A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 

Último (20)

Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 

Comunicação Serial Linux

  • 1. Comunicação Serial em Unix usando linguagem C Prof. Rômulo Silva Abr/2008 Rômulo C. Silva
  • 2. Comunicação Serial Transferência de um bit por vez Usada em dispositivos de rede, teclados, mouse, MODEMs e terminais Velocidade de transmissão expressa em bps (bits-por-segundo) ou “baud-rate” Padrão RS-232: Padrão elétrico definido pela EIA (Eletronic Industries Association) Existem 3 categorias: A, B e C, sendo RS-232C a mais usada Rômulo C. Silva
  • 3. RS-232 DTE (Data Terminal Equipment): equipamento que faz o processamento dos sinais. DCE (Data Circuit-terminating Equipment modem ): equipamento que faz a conexão Um cabo de conexão entre dispositivos DTE e DCE contém ligações em paralelo, não necessitando mudanças na conexão de pinos. Rômulo C. Silva
  • 5. RS-232 Sinal Significado SG ou GND Terra TD ou TX Tranmissão de dados RD ou RX Recepção de dados DTR Terminal de dados pronto DSR Conjunto de dados pronto RTS Pronto p/ enviar (computador) CTS Envie os dados (modem) DCD Portadora detectada RI Indicador de telefone tocando FG Frame Ground Rômulo C. Silva
  • 7. RS-232 Especifica um conector de 9 ou 25 pinos Rômulo C. Silva
  • 8. RS-232 Os sinais de temporização de transmissão e recepção são utilizados somente quando o protocolo de transmissão utilizado for síncrono. Para protocolos assíncronos, padrão 8 bits, os sinais de temporização externos são desnecessários. Rômulo C. Silva
  • 9. Etapas da Comunicação Serial Abertura da porta de comunicação Configuração da porta Transmissão de dados Recepção de dados Rômulo C. Silva
  • 10. Comunicação Serial em Unix Como todos os dispositivos, a porta serial é tratada como um arquivo (diretório padrão /dev) Rômulo C. Silva
  • 11. Abertura da Porta Serial fd = open(arquivoPorta, flags); Função retorna um file descriptor que permite o acesso à porta. Flags: O_NOCTTY : programa não será um terminal controlador da porta. Evita que o processo seja afetado por interrupção via teclado. O_NDELAY : programa não irá cuidar da linha do sinal DCD. Evita que o processo seja colocado para “dormir” até haja sinal na linha DCD O_RDWR : porta será aberta para leitura e gravação Rômulo C. Silva
  • 12. Abertura da Porta Serial em Unix #include #include #include #include #include #include <stdio.h> /* Standard input/output definitions */ <string.h> /* String function definitions */ <unistd.h> /* UNIX standard function definitions */ <fcntl.h> /* File control definitions */ <errno.h> /* Error number definitions */ <termios.h> /*POSIX terminal control definitions */ /* * 'open_port()' - Open serial port 1. * * Returns the file descriptor on success or -1 on error. */ int open_port(void) { int fd; /* File descriptor for fd = open("/dev/ttyS0", O_RDWR O_NDELAY); if (fd == -1) { /* * Could not perror("open_port: Unable to } else fcntl(fd, F_SETFL, 0); return (fd); } the port */ | O_NOCTTY | open the port. */ open /dev/ttyS0 - "); Rômulo C. Silva
  • 13. Escrever na Porta Serial Uso da chamada de sistema write: n = write(fd, "ATZr", 4); if (n < 0) fputs("write() of 4 bytes failed!n", stderr); Rômulo C. Silva
  • 14. Leitura de dados da Porta Serial Uso da chamada de sistema read Retorna a quantidade de bytes disponíveis no buffer da porta serial Se não há bytes disponíveis, o programa fica bloqueado até haja dados disponíveis O comportamento da função read pode ser alterado para retornar imediatamente quando não houver dados através da chamada: fcntl(fd, F_SETFL, FNDELAY); P/ restaurar o comportamento de read: fcntl(fd, F_SETFL, 0); Rômulo C. Silva
  • 15. Leitura da Porta Serial n=read(fd, buf, 5); /*tenta 5 bytes colocando na variável buf */ if(n < 0) { perror(“Sem dadosn”); } Rômulo C. Silva
  • 16. Fechar a porta Serial Chamda de sistema close. close(fd); Rômulo C. Silva
  • 17. Configuração da Porta Serial No arquivo <termios.h> encontra-se definida uma estrutura (struct) que guarda informações de configuração da porta serial As funções tcgetattr e tcsetattr permite ler e atribuir uma configuração à porta serial, respectivamente Rômulo C. Silva
  • 18. Configuração da Porta Serial – struct termios Rômulo C. Silva
  • 19. Configuração da Porta Serial Em difentes SOs, a taxa de transmissão e recepção (baud-rate) é armazenada em locais diferentes. As funções cfsetospeed e cfsetispeed permitem configurar a taxas de transmissão e recepção, independente do SO. Rômulo C. Silva
  • 20. Configuração da Porta Serial struct termios options; /* * Get the current options for the port... */ tcgetattr(fd, &options); /* * Set the baud rates to 19200... */ cfsetispeed(&options, B19200); cfsetospeed(&options, B19200); /* * Enable the receiver and set local mode... */ options.c_cflag |= (CLOCAL | CREAD); /* * Set the new options for the port... */ tcsetattr(fd, TCSANOW, &options); Rômulo C. Silva
  • 21. Configuração da Porta Serial Flags para função tcsetattr: Rômulo C. Silva