PROTOCOLO DE COMUNICAÇÃO SÉRIE RS-232

Documentos relacionados
Métodos de Transmissão. Padrões RS

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

Rede Digital com Integração de Serviços RDIS

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

EIA232. Introdução. Comunicação de Dados 3º EEA 2004/2005

Camada de Enlace de Dados

Sistemas de Entrada e Saídas II

Redes de Computadores. Prof. André Y. Kusumoto

Redes de Computadores. Prof. André Y. Kusumoto

REDES DE COMPUTADORES E A CAMADA FÍSICA

Redes: Quais as diferenças entre o Protocolo TCP e UDP

Lista de Exercícios. Camada de Enlace de Dados

Redes de Computadores

COMUNICAÇÃO SERIAL. Prof. Clayrton Henrique Microprocessadores Aula 30 Rev.02

Claudivan C. Lopes

Prof. Samuel Henrique Bucke Brito

Codificação e transmissão de sinais digitais em banda básica

Camada de Enlace de Dados

PEL/FEN Redes de Computadores 2018/1 Terceira Lista de Exercícios Prof. Marcelo Gonçalves Rubinstein

Modelo de Comunicação

Manual de procedimentos de utilização da porta RS232 dos osciloscópios Tektronix para efeitos de registo de formas de onda

Camada Física. Professor Ivan Pires. Introdução. Licenciatura Plena em Computação

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 6 de Janeiro de o Teste A

Multiplexação por Divisão de Tempo UNIP. Renê Furtado Felix.

Plano de Aula. 1 o semestre. Aula número 012 Periféricos Comunicação Serial. Conhecer os princípios de comunicação serial

ET53C - SISTEMAS DIGITAIS

O NÍVEL DE LIGAÇÃO DE DADOS. Nível de ligação de dados Controle de Fuxo Detecção de erros Controle de Erros

Conceitos Básicos sobre Comunicação Serial

Acetatos de apoio às aulas teóricas

Sistemas de Troca de Mensagens

Comunicação de Dados. Comunicação de Dados

Camada de Transporte. Protocolos TCP e UDP

Big Endian é uma ordenação usada em sistemas do tipo Unix (arquiteturas SPARC, IBM Mainframe).

Relatório Equipamento Externo

Aula. Princípios de Comunicação

de erros Exercícios E S T i G

A camada de enlace de dados executa diversas funções específicas. Dentre elas

Capítulo 3. A camada de enlace de dados

Redes Industriais. Carlos Roberto da Silva Filho, M. Eng.

Porta Série SÉRIE x PARALELO PORTA SÉRIE. Comunicação série SÉRIE PARALELA

Nome Endereço IRQ COM1 3F8 4 COM2 2F8 3 COM3 3E8 4 COM4 2E UART - Universal Asynchronous Receiver/Transmitter. descrição

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Conceitos básicos de comunicação. Prof. Marciano dos Santos Dionizio

Circuito de Recepção Serial Assíncrona

Redes de Computadores

Redes de Computadores. Camada de Enlace

Licenciatura Plena em Computação

Comunicação Serial PIC16F877A. Leandro Resende Mattioli. Centro Federal de Educação Tecnológica de Minas Gerais Unidade Araxá

APRESENTAÇÃO. opcional para acionamentos digitais (controle de bombas)

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Erros e Protocolos de Recuperação Códigos detectores e correctores de erros.

Redes de Computadores (LTIC) 2014/15. Parte 1 (8 valores) Exame Final (1ª Época) 24 de junho de Nome:

Interface Serial. Prof. Adilson Gonzaga

Data and Computer Network Endereçamento IP

Redes de Computadores

Duração do Teste: 2h.

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Unidades de Entrada e Saída

Atividade de Participação de Aula 02 (Individual) Aluno: Data: 17/08/2017

Redes de Computadores

EIC0032, Redes de Computadores 20/jan/2017 Exame Parte 2 (com consulta, 10 valores, 90 minutos) Nome:

Duração do Teste: 2h.

MANUAL PARA INSTALAÇÃO

Protocolo de Ligação de Dados

Universal Asynchronous Receiver Transmitter 8250/14550/16550/16550A

Canais de Comunicação

Redes de Computadores

Redes de Computadores I 2007/2008

Redes de Telecomunicações

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

Serviços de Comunicações Capítulo 3

Manual do usuário - Kit 4EA2SA v2.0. Kit 4EA2SA v2.0 Manual do usuário. Copyright VW Soluções

Direto ou Indireto Monolítico ou Estruturado Simétrico ou Assimétrico Padronizado ou Não-Padronizado

Capítulo6-7 Redes de Computadores Camada 2 Conceitos

Sistema Distríbuído de Medição de Grandezas

REDES INTEGRADAS DE TELECOMUNICAÇÕES I 2003 / 2004

Redes de Computadores

Transmissão serial de sinais

Transmissão serial de sinais

Ordenação. Sistemas Distribuídos e Tolerância a Falhas. Universidade da Beira Interior 07/08

PCS Sistemas Digitais I. Códigos para Detecção e Correção de Erros. Prof. Dr. Marcos A. Simplicio Jr. versão: 3.0 (Jan/2016)

Interligação de Terminais com Modem

3. Transmissão de Sinais Digitais Transmissão de bits; Sincronismo. Redes de Comunicações/Computadores I. Secção de Redes de Comunicação de Dados

Trabalho do Curso de Redes de Computadores COS765/MAB /1

Trabalho Prático 1 P2P-SDIS

Barramentos e interfaces de comunicação Arquitetura e Organização de Computadores Curso de Análise e Desenvolvimento de Sistemas

Capítulo 14. Expandindo as portas de comunicação 8031 com a PPI Interface PPI 8255

Padrões de Comunicação Serial

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Interligação de Terminais com Modem

Redes de Computadores

REDES INTEGRADAS DE TELECOMUNICAÇÕES I 2008 / 2009

Funções da Camada de

Comunicação Serial RS-232. Walter Fetter Lages

ARQUITETURA FDDI P E D R O M O N T E I R O N º 14 G P S I

2 Conceitos de transmissão de dados

SEL 337 Aplicação de Microprocessadores II

Ethernet. IEEE padronizou várias redes locais e metropolitanas com o nome IEEE 802 Os mais importantes são:

Interligação de Terminais com Modem

Redes de Computadores Lista de Exercícios (Ethernet e Endereçamento IP) Professor : Marco Antônio C. Câmara ( )

Transcrição:

LEEC Ramo APEL Redes de Computadores 4ºano, 2ºsemestre - 2005/ 06 PROTOCOLO DE COMUNICAÇÃO SÉRIE RS-232 Realizado por: Amândio Pereira...010503121 Carlos Daniel.050503245

Índice: Objectivos...pág 3 Introdução...pág 3 Descrição...pág 4 Funções implementadas...pág 6 Ensaio...pág 7 Análise...pág 8 Anexos 2

OBJECTIVOS O objectivo deste trabalho prático foi o desenvolvimento de um protocolo de comunicação série RS232 entre duas estações (PC s), recorrendo à linguagem de programação C. INTRODUÇÃO A seguinte figura (fig.1) representa o modelo em camadas da comunicação que se pretende implementar: Fig.1 - Modelo em camadas do protocolo A camada física é constituída com um cabo c/ 3 condutores (Tx, Rx e Gnd), e as portas séries dos computadores. As tensões de trabalho são -12 e 12, respectivamente 1 e 0. A ligação entre os dois DCE s (Data Communications Equipment) é feita recorrendo a interfaces DB9 (9 pinos), embora só se usem 3 pinos: Pino 2 - Rx Pino 3 - Tx Pino 5 - Gnd O tipo de transmissão é sem handshaking pois só se usam 3 condutores. A ligação entre os dois DCE s é em Null Modem (cabo cruzado). A segunda camada são os Device Drivers da porta série (/dev/ttys0 e /dev/ttys1) que são responsáveis pela leitura e escrita de sinais em tensão na porta série, estabelecendo a ligação com a Aplicação Lógica. A terceira camada interliga uma aplicação de software com os device drivers. Foi sobre esta camada que o trabalho incidiu, logo será explicada mais à frente em detalhe. A quarta camada será uma aplicação de software que faz uso do protocolo para comunicar. Não será muito abordada pois neste caso apenas foi criada para testar o protocolo. 3

DESCRIÇÃO Neste ponto pretende-se explicar o funcionamento da aplicação lógica que está situada na terceira camada, já referida atrás. Esta aplicação tem as seguintes características: -Fornece um serviço fiável à camada superior. -Função de framming: a informação é acondicionada em tramas -Estabelecimento (SET) e conclusão (DISC) da ligação. -Controlo de erros c/ pedido de retransmissão e temporizadores. Esta aplicação suporta dois tipos de tramas. As tramas de informação e as tramas de controlo: SYN SYN SOH C L BCC DADOS BCC SYN SYN SOH C L BCC As tramas de controlo tem por função dar inicio e concluir a ligação e controlo de erros. As tramas de informação têm por missão a transmissão de dados. A seguinte figura (fig.2) representa a sequência de uma ligação correcta e sem erros. Fig.2 - Esquema de transferência de dados Usando a técnica de encapsulamento de dados numa trama (framing) o receptor irá interpretar a informação enviada pelo emissor como uma sequência correcta de caracteres ordenados segundo uma lógica que tanto o emissor e o receptor entendem. 4

A trama é iniciada por dois ou mais caracteres SYN seguido de um SOH. Apesar de poder receber mais de dois SYN s, a trama será vista sempre como tendo apenas dois. Os caracteres iniciais SYN, SYN e SOH fazem parte do cabeçalho e servem para informar o receptor que se iniciou uma nova trama. O quarto octeto (C) é um campo de controlo. O quinto (L) indica o número de caracteres de dados enviados no caso das tramas de informação e será zero no caso das tramas de controlo visto não serem enviados dados. O sexto octeto da trama de controlo é o BCC que serve para detectar erros através do Ou exclusivo (XOR) entre C e L. No caso das tramas de informação existe um segundo BCC no final da trama que faz o XOR entre todos os caracteres de dados como protecção. Caso o BCC recebido seja diferente do calculado pelo receptor este rejeita a trama e pede ao emissor o reenvio da mesma. Existe também um outro mecanismo de protecção que é o recurso à numeração das tramas alternando o seu valor entre zero e um, de forma a que não ocorram situações em que as tramas sejam omitidas ou repetidas. Isto é feito no octeto C. Campo de controlo...descrição SET..Inicio da ligação DISC.... Fim da ligação UA.Confirmação de um SET ou um DISC RR.Confirmação de uma trama de informação REJ... Pedido de reenvio de uma trama de informação 5

FUNÇÕES IMPLEMENTADAS Para implementar o protocolo de comunicação foram criadas 5 funções distintas: Função header_checker - responsável pela detecção de uma sequência SYN, SYN (, SYN), SOH, para além de também ler os campos C, L e BCC. Função llopen estabelece a ligação lógica e define os parâmetros da comunicação, como seja o baudrate, o número de stop bits, bits de paridade, tipo de comunicação (assíncrona e não canónica) Função llread gere as tramas de dados que chegam à porta série, através do controlo e detecção de erros nas tramas ou sequenciamento incorrecto das mesmas Função llwrite responsável por enviar os dados correctamente para a porta série e pelo controlo do fluxo de dados Função llclose fecha a ligação lógica estabelecida anteriormente e repõe as configurações iniciais da porta série. A função llopen foi dividida em dois, de modo a garantir que esta responde quer como emissor quer como receptor, ficando assim com duas funções responsáveis por cada uma das situações (llopen_t e llopen_r). Enquanto a função llopen_t envia a trama de controlo SET e fica a espera de receber a resposta durante 3s, após o qual retransmite a mesma trama, tentando a retransmissão mais quatro vezes. Se a comunicação for bem sucedida (envio e recepção das tramas SET e UA), a função retorna com o identificador da ligação lógica. A função llopen_r espera receber uma trama de controlo do tipo SET do transmissor, que, em caso afirmativo faz a verificação do cabeçalho através da função header_checker, e se tudo tiver bem, responde com um UA, dando-se início a transmissão. Caso não receba nenhuma trama SET, a função espera durante um certo tempo, após o qual retorna um valor negativo A função llread começa por invocar a função header_checker que é responsável por verificar se o que recebeu corresponde ao inicio de uma trama (SYN-SYN-SOH), que em caso afirmativo verifica se a sequencia do cabeçalho esta correcta. Caso esta não esteja correcta, isto é, se não satisfizer a definição do campo de controlo necessário, pede para reenviar, num total de cinco tentativas, ao fim das quais retorna um valor negativo, indicativo de erro. Se a sequência do cabeçalho for a correcta, vão-se recebendo os dados que podem chegar em parcelas inferiores ao total especificado no campo L. Se não se conseguir ler o número de dados esperados então a trama é rejeitada e é lida uma nova. Após a recepção de todo o campo de dados é verificado se o BCC está correcto e, nesse caso, o bloco dos dados da trama recebida é copiado para o buffer pretendido e é confirmada a recepção da trama. Terminando isto, a função llread retorna com o número de caracteres recebidos. Se o BCC estiver errado é pedido o reenvio da mesma trama através do envio de uma trama de rejeição. A função llwrite para realizar a transferência de dados necessita de partir a informação em blocos de 255 bytes, que serão inseridos na trama de dados. Deste modo, cada vez que se forma uma nova trama de dados, é necessário alterar o valor do campo C de forma a respeitar as definições do protocolo. No caso de o receptor receber incorrectamente a trama de dados, deve enviar uma trama de rejeição, de modo a que o transmissor envie novamente essa trama. Fazendo isto num total de 5 vezes, após as quais a função llwrite retorna com um erro. 6

No caso de os dados serem correctos, verifica se já se enviou todos os dados, que em caso afirmativo retorna o numero de bytes escritos, em caso negativo recomeça todo o processo de construção de tramas. A função llclose, tal como a função llopen, também segue caminhos distintos conforme seja chamada no emissor (llclose_t) ou no receptor (llclose_r). No caso de ser chamada no emissor, esta envia uma trama DISC, para avisar o receptor que não tem mais nada a enviar, fazendo isto num total de 3 vezes. Caso a função llclose_r receba a trama DISC, simplesmente envia outra trama DISC para o emissor, que responde com uma trama UA, terminando assim a comunicação lógica. APLICAÇÃO Para testar-mos o protocolo desenvolvido criamos duas aplicações, uma para a transmissão e outra para a recepção, que fazem uso das funções desenvolvidas anteriormente (llopen, llread, llwrite e llclose). O transmissor - o programa começa por abrir o ficheiro a transmitir, Posteriormente chama a função llopen para ser estabelecida a comunicação, após o estabelecimento desta é chamada a função llwrite que fica encarregue de verificar se enviou o ficheiro completo. Finalmente é chamada a função llclose para terminar a ligação lógica. O receptor Este começa por criar o ficheiro para onde vão ser guardados os bytes recebidos. Posteriormente chama a função llopen para estabelecer a ligação lógica e chama a função llread que vai ler os bytes para o buffer, até receber uma trama DISC, após a qual chama a função llclose para terminar a ligação lógica. ENSAIO/ TESTE Para testar o protocolo foi transferido um ficheiro PDF entre dois computadores, com sucesso. Também se desligou o cabo a meio da ligação, voltando a ligar dentro dos limites de tempo, tendo a transferência prosseguido normalmente e com sucesso. 7

ANÁLISE Com este protocolo de ligação lógica RS232, foram atingidos os objectivos que eram propostos, isto é, fazer uma comunicação entre dois DTE s sem erros e á prova de falhas no nível físico (cabo). Porém existe sempre a possibilidade de erros não serem detectados, pois pode acontecer num determinado octeto de dados um bit estar errado, e o XOR resultar igual, ou seja, o XOR pode não ser afectado com a mudança de um determinado bit, num determinado octeto. Uma maneira de aumentar a fiabilidade da transmissão passaria, a nosso entender, por introduzir mais octetos de controlo BCC intercalados de n em n caracteres de dados, por forma a apertar a malha de detecção de erros, porém isso traria o inconveniente de aumentar o overhead. Uma outra limitação do protocolo é o tamanho máximo do campo de dados que é de 255 octetos, uma vez que só dispomos de um carácter de 8 bits para definir o comprimento: 1111 1111 (binário) = 255 (decimal). A solução seria introduzir um segundo carácter para o comprimento. 1111 1111 1111 1111 (binário) = 65 535 (decimal). Porém o inconveniente seria o aumento exponencial da probabilidade de erro, pois o BCC de dados passaria a abranger não 255, mas 65 535 caracteres. O uso de um tipo de comunicação assíncrona em vez da síncrona traz a desvantagem de um maior overhead devido aos start e stop bit, além de haver o probabilidade de dessincronização, caso haja uma longa sequência de zeros ou uns, porém, em relação à comunicação síncrona, têm a vantagem de ser mais simples e barata e não necessitar de uma linha extra para transmitir o sinal de relógio. Este tipo de comunicação RS232 não se aconselha para ambientes industriais visto utilizar transmissão não diferencial (tensões em relação a uma terra comum), logo é mais susceptível ao ruído. Também apresenta uma baixa capacidade de transmissão (bit rate 20 Kb/s) e limitações em relação à distância máxima possível ( 15 mts). Outro grande inconveniente é que só pode interligar dois terminais (comunicação ponto a ponto). Para ultrapassar estes obstáculos poderíamos utilizar o protocolo RS422 (bit rate 10 Mb/s e distância máxima do cabo 1.5 kms) ou o RS485, já que usam a transmissão diferencial, maior resistência ao ruído e possibilidade de interligação entre vários terminais em simultâneo. 8