programaÇÃo de perifericos nomes: marcos goulart paulo weiss

93
PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Upload: internet

Post on 17-Apr-2015

110 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

PROGRAMAÇÃO DE PERIFERICOS

NOMES: Marcos Goulart

Paulo Weiss

Page 2: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Protocolos de comunicaçãoRS-232C, RS-422

RS-485

Page 3: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

O QUE É RS-232C

O standard RS-232C define interfaces mecânicas, elétricas e lógicas entre o dispositivo terminal, onde estão os dados(DTE/PC), e o dispositivo que transporta os dados (DCE/modem).

Page 4: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

SERIAL X PARALELA

As portas série são: mais lentas (a porta série é oito vezes

mais lenta do que a porta paralela) podem comunicar a distâncias muito

maiores mais flexíveis no que respeita a

transferência de dados bidirecionais.

Page 5: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Taxa de Transferência (Baud Rate)

Refere-se a velocidade com que os dados são enviados através de um canal e é medido em transições elétricas por segundo.

Na norma EIA232, a taxa de transferência e a taxa de bit (bit rate) são idênticas. Nesse caso, uma taxa de 9600 bauds corresponde a uma transferência de 9600 dados por segundo, ou um período de 104 ms (1/9600 s).

Outro conceito é a eficiência do canal de comunicação que é definido como o número de bits de informação utilizável (dados) enviados através do canal por segundo. Ele não inclui bits de sincronismo, formatação, e detecção de erro,

Page 6: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

IDENTIFICAÇÃO DE ERROS Ruídos e distúrbios elétricos momentâneos

podem causar mudanças nos dados quando estão trafegando pelos canais de comunicação. Se o receptor falhar ao detectar isso, a mensagem recebida será incorreta, resultando em conseqüências possivelmente sérias.

Dois metodos usados: Paridade Checksun

Page 7: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

PARIDADE

O bit de paridade é adicionado ao pacote de dados com o propósito de detecção de erro.

EX.: ADOTADO PARIDADE PAR Dado Bit de Paridade 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1

Na recepção do pacote, a paridade do dado precisa ser recomputada pelo hardware local e comparada com o bit de paridade recebido com os dados.

Se apenas 1 bit mudar de estado, a paridade não irá coincidir, e um erro será detectado.

Se um número par de bits for trocado, a paridade coincidirá e o dado com erro será validado.

Contudo, uma análise estatística dos erros de comunicação de dados tem mostrado que um erro com bit simples é muito mais provável que errosem múltiplos bits na presença de ruído randômico. Portanto, a paridade é um método confiável de detecção de erro.

Page 8: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

CHECKSUMOutro método de detecção de erro envolve o cálculo de um “checksum” quando mensagens commais de um byte são transmitidas pelo canal de comunicação. Um número de checksum é adicionado a seqüência do pacote de dados de tal forma que a soma dos dados mais o checksum é zero.

1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 + 0 1 0 0 1 1 0 0 dados 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 ________________________ 1 1 0 0 1 0 0 0 1 0 soma aritmética

0 0 1 0 0 0 1 0 Soma truncada – 8 bits + 1 1 0 1 1 1 1 0 Checksum (complemento de 2)

____________________ 0 0 0 0 0 0 0 0 Soma + Checksum = 0

A correção de erros em uma transmissão, contudo, abaixa a eficiência do canal, e o resultado é uma queda na transmissão.

Page 9: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

SISTEMAS SINCRONOS

Em sistemas síncronos, canais separados são usados para transmitir dados e informação de tempo. Como o transmissor é responsável pelos pulsos de dados e de temporização, o receptor irá ler o canal de dados apenas quando comandado pelo transmissor, e portanto a sincronização é garantida.

Page 10: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

SISTEMAS ASSINCRONOS A informação trafega por um canal único.

O transmissor e o receptor devem ser configurados antecipadamente. Um oscilador preciso no receptor irá gerar um sinal de clock interno que é igual (ou muito próximo) ao do transmissor.

O comprimento do pacote de dados é pequeno em sistemas assíncronos para minimizar o risco do oscilador do transmissor e do receptor variar. Quando osciladores a cristal são utilizados, asincronização pode ser garantida sobre os 11 bits de período.

Page 11: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Exemplo do envio do caracter 'A': A UART programada para uma palavra de

tamanho 8 bits, com 1 stop bit, paridade impar e com uma velocidade de 300 bps.

Como a letra ‘A’ na tabela ASCII possui 2 bits em 1 e os demais em 0, o bit de paridade esta em 1 de forma a gerar um numero impar de bits em 1.

Page 12: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Exemplo do envio do caracter 'A':

Page 13: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

TIPOS DE LIGAÇÕES

Simplexpode haver transferência de dados do DTE para o CDE, ou vice-versa.

Half-duplexapenas uma linha de dados está disponível, e é usada alternadamente

Full-duplexatuam simultaneamente como receptores e transmissores. Existem fisicamente duas linhas de dados,

Page 14: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

TEMPORIZAÇÃO DOS SINAIS

Page 15: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Características dos Sinais Todas as linhas, sejam elas de informações de dados,

temporização ou controle, podem ser representadas pelo mesmo circuito elétrico equivalente da figura acima

Este circuito equivalente aplica-se aos sinais originados tanto no DTE quanto no DCE.

A capacitância “Co” deve assumida como pequena e consistir apenas de elementos parasitas. “Ro” e “Vo” são escolhidos de forma tal que a corrente de curto-circuito não exceda a 500 mA.

Page 16: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Conversores de nível TTL – RS232

A maioria dos equipamentos digitais utilizam níveis TTL ou CMOS. Portanto, o primeiro passo para conectar um equipamento digital a uma interface RS232 é transformar níveis TTL (0 a 5 volts) em RS232 e vice-versa. Isto é feito por conversores de nível.

Page 17: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

MAX232

Page 18: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

MAX232

Page 19: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Polling ou Interrupção

A comunicação com uma porta série pode ser feita por polling ou por interrupção.

Em polling, é executado um ciclo que repetidamente verifica a porta para ver se existe algum caracter a ser lido.

Por interrupção, é mais eficaz mas é mais difícil de programar. Cada porta série está ligada a uma linha IRQ. Uma interrupção é sinalizada nessa linha de cada vez que um caracter é recebido pela porta. O programa ao detectar a interrupção, aponta para uma rotina que vai retirar o caracter da porta e colocá-lo na memória.

Page 20: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Pinagem do cabo serial

Page 21: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Pinagem do cabo serial

Page 22: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

O QUE É A UART O UART (Universal Asynchronous

Receiver Transmitter), é um chip que faz parte da porta série e cuja principal função é converter os dados do formato paralelo para o formato série e vice-versa. Adiciona-se também o start bit, stop bit e bit de paridade.

Page 23: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

FUNCIONAMENTO DA UART

MODO DE TRANSMISSÃO A UART (8250) recebe dados em paralelo do

PC, converte para serial e envia para outro dispositivo.

Depois de programada a UART executa este processo automaticamente. O microcomputador passa o Byte para a UART, ela automaticamente transforma para serial, acrescenta os bits de inicio, fim e paridade e transmite o dado.

Page 24: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

MODO DE TRANSMISSÃO

Page 25: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

MODO DE RECEPÇÃO

Page 26: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

DIAGRAMA DE BLOCOS MOSTRANDO OS REGISTRADORES DA UART 8250

Page 27: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

REGISTRADOR DE DADOS REGISTRADOR DE RECEPÇÃO: obtem-

se o byte contido nesses registrador proveniente da conversão serial para paralelo dos bits de entrada

REGISTRADOR DE TRANSMISSÃO: uma operação de escrita carrega um byte nesse registrador para ser convertido de paralelo para serial

Page 28: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

REGISTRADOR DE STATUS

REG. DE STATUS DE LINHA REG. DE STATUS DO MODEM REG. IDENTIF. DE INTERRUPÇÃO

Page 29: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Registrador de Status de Linha: utilizado para indicar condições de operação da linha. Bit 0: 1 = existe byte pronto para ser lido no registrador de recepção. Bit 1: 1 = um byte no registrador de recepção foi sobre escrito por um novo

byte. 0 primeiro byte foi perdido. Bit 2: 1 = erro de paridade. Bit 3: 1 = stop bit invalido Bit 4: 1 = interface detecta a linha em zero durante um tempo maior que a

duração de um byte assincrono. Bit 5: Buffer de transmissão vazio. 1 = um byte e movido do buffer de

transmissão para o registro de deslocamento, onde o byte e transmitido serialmente.

Bit 6: Transmissor vazio. 1 = registro de deslocamento vazio.

Page 30: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Registrador de Status do Modem: utilizado para indicar o status do modem.

Bits 0 – 3: 1 = ocorreu uma mudanca no respectivo pino desde a ultima leitura na porta.

Bit 4 - 7: indica o status dos pinos da porta.

Page 31: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Registrador de Identificação de Interrupção: Apos uma interrupção, o bit 0 recebe 0, e os bits 1 e 2 determinam a fonte da interrupção.

Page 32: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Registradores de controle

REG. CONTROLE DE LINHA REG.CONTROLE DE INTERRUPÇÃO REG.CONTROLE MODEM

Page 33: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Registrador de Controle de Linha: utilizado para formatação dos dados.

Bits 0 - 1 : quantidade de bits por caracter. (00 = 5 bits, 01 = 6 bits, 10 = 7 bits, 11 = 8 bits) word

Bit 2 : quantidade de bits por caracter. (0 = 1 stop bit, 1 = 2 stop bits) Obs. Se a quantidade de bits por caracter for igual a 5, o numero de stop bits será automaticamente 1 ½ stop bits.

Bits 3 - 5 : determinam a paridade. (000 = sem paridade, 001 = paridade impar, 011 = paridade par, 101 = marca (mark), 111 = espaco (space) )

Bit 6 : 1 = saida Tx vai para o nível lógico 0. Bit 7 : 1 = registro de transmissão recebe o byte de menor ordem

(LSB) da taxa de transmissão e o registro de controle de interrupção recebe o byte de maior ordem (MSB).

Page 34: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Registrador de Controle de Interrupção: utilizado para habilitar os quatro tipos de interrupção do 8250.

Bit 0: 1 = uma interrupção e gerada quando um byte estiver disponível no registrador de recepção.

Bit 1: 1 = uma interrupção e gerada quando a 8250 puder receber um novo byte para trasnmissão.

Bit 2: 1 = uma interrupção e gerada quando ocorrer um erro de paridade, overrun (sobre escrita) ou stop bit.

Bit 3: 1 = uma interrupção e gerada quando qualquer entrada da porta serial mudar de estado.

Page 35: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Registrador de Controle do Modem

Bit 0: 1 = ativa a saida DTR. Bit 1: 1 = ativa a saida RTS. Bit 2: Saida definida pelo usuário.

Normalmente em 0. Bit 3: Saida definida pelo usuário.

Normalmente em 0.

Page 36: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Finalmente, para programar a taxa de transferencia (velocidade da comunicacao), e preciso utilizar o bit 7 (DLAB) do Registrador de Controle de Linha, em conjunto com o Registradores de Controle de Interrupcao e com o Registrador de Dados, da seguinte forma:

1. Colocar o bit DLAB em 1 para indicar que a parte baixa (LSB) da programacao velocidade sera colocada no Registrador de Dados, e a parte alta (MSB) no Registrador de Controle de Interrupcao.

2. Escrever no Registrador de Controle de Interrupcao o valor desejado de acordo com a tabela a seguir (00H para 9600bps, por exemplo).

3. Escrever no Registrador de Dados o valor desejado de acordo com a tabela a seguir (0CH para 9600bps, por exemplo).

Page 37: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss
Page 38: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

ENDEREÇOS DA UART8250(COM1)

03FEHReg.Status Modem

03FDHReg.Status Linha

03FCHReg.Contr.Modem

03FBHReg.Contr.Linha

03FAHReg.Identif.Interrupção

03F9HReg.Contr.Interrupção

03F8HDados(escrita/leitura)

Page 39: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss
Page 40: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

CONTROLE DO FLUXO DE DADOS QUANDO É USADO?

Quando a conexão entre um DTE e um DCE for superior à velocidade entre os DCES, haverá perda de dados no DTE.

COMO É FEITO O CONTROLE DO FLUXO DE DADOS?O controle de fluxo pode ser feito por hardware ou por software.

O controle do fluxo de dados por software, também conhecido como XON/XOFF utiliza 2 Caracteres ASCII; VANTAGEM: de não necessitar linhas adicionais, às linhas TxD e RxD. DESVANTAGEM: está no protocolo de comunicação que não poderá utilizar os caracteres ASCII 17 e 19 em suas mensagens.

O controle do fluxo de dados por hardware, também conhecido como RTS/CTS utiliza 2 linhas extras em seu cabo serial além das 2 linhas para transmissão de dados.

Page 41: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Evolução do RS232

Resumindo o RS232 define os níveis de tensão, a temporização, o protocolo de troca de dados e a disposição mecânica dos conectores.

Page 42: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

A interface RS232 tem como principal atrativo a sua implementação simples e barata.

Page 43: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Principais limitações

Operação por níveis de tensão, sendo extremamente suscetível a ruídos;

Utilização ponto a ponto, não permitindo que mais de dois dispositivos; usem a mesma “linha de dados”.

Page 44: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss
Page 45: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

RS422

Devido as limitações, foi desenvolvido o RS422 que é uma evolução do padrão RS232

Page 46: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

A principal novidade é a implementação de linhas de transmissão balanceadas unidirecionais,não reversíveis, o que torna a comunicação extremamente imune a ruídos, permitindo maiores distancias.

Page 47: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Não permite múltiplos drivers somente múltiplos receivers

O principal uso do padrão RS422 é para estender a comunicação RS232 a grandes distâncias.

Page 48: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss
Page 49: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss
Page 50: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Características gerais:

Sinais: A RS422 possui sinais de comunicação Tx+, Rx+, Tx- e RX-, 4 fios.

O modo de transmissão é por diferencial elétrico. Pode utilizar outros sinais para controle.

Page 51: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss
Page 52: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Número max de equipamentos: 10 em uma conexão de barramento único.

Distância Max.: Até 1200 metros para o último ponto.

RS-449 - Especifica o padrão de pinagem para RS422/423 com conectores DB9 e DB37.

RS-530 - Especifica o padrão de pinagem da RS422 para conectores DB25.

Page 53: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

RS 485

O padrão RS-485, criado em 1983, é capaz de prover uma forma bastante robusta de comunicação multiponto que vem sendo muito utilizada na indústria em controle de sistemas e em transferência de dados.

Page 54: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

CARACTERISTICAS

O RS485 é uma evolução do padrão RS422, tendo como principal enfoque a comunicação em rede.

Com apenas um par de fios é possível se comunicar com diversos equipamentos em rede usando o mesmo barramento.

Page 55: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Assim como o RS422, o RS485 utiliza linha de dados balanceada, bastante similar as linhas de dados da interface RS422, logo também permite comunicação a grandes distâncias de maneira extremamente confiável.

Page 56: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

O padrão RS-485 é administrado pela Telecommunication Industry Association(TIA) que é responsável pelo setor de comunicação da Electronic Industries Alliance (EIA), e este último é credenciado pelo American National Standards Institute (ANSI).

Page 57: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Operação

No RS-232, devido a necessidade de um terra comum entre os dispositivos, há limitações do comprimento do cabo, onde os principais problemas são a interferência e a resistência do cabo.

Page 58: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

O padrão RS-485 utiliza um princípio diferente, no qual apenas dois fios são utilizados, que serão chamados de A e B para exemplificarmos o funcionamento.

Page 59: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Nesse caso tem-se nível lógico 1 quando, por exemplo A for positivo e B negativo, conseqüentemente tem-se nível lógico 0 quando B for positivo e A negativo, idem ao RS 422.

Page 60: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Distância e taxa de transmissão

O RS 485 é robusto, pois se um ruído é introduzido na linha, ele é induzido nos dois fios de modo que a diferença entre A e B dessa interferência é tende a ser quase nula, com isso o alcance pode chegar a aproximadamente 1200 metros.

Page 61: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Porém quanto maior a distância a ser percorrida pelos dados menor será a taxa de transmissão

Tem-se como base que para distância de até 40 pés a taxa pode chegar a 10Mbps e para uma distância de 4000 pés a taxa varia em torno de 100Kbps.

Page 62: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Gráfico Distancia x taxa de transmissão

Page 63: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Como o padrão RS-485 foi desenvolvido para atender a necessidade de comunicação multiponto o seu formato permite conectar até 32 dispositivos, sendo 1transmissor e 1 receptor por dispositivo.

Page 64: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Funcionamento físico

Transceptor MAX-485

Page 65: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Ro: Saída para recepção RE: habilitação da recepção DE: habilitação da transmissão DI: Entrada para transmissão VCC,GND: Alimentação do circuito

integrado A: Entrada não inversora B: Entrada inversora

Page 66: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Operação do transceptor

Normalmente conecta-se juntos os pinos RE e DE de forma que o transceptor esteja apenas recebendo ou transmitindo.

O CI deve sempre permanecer em modo de recepção.

Page 67: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Para que um dispositivo transmita um dado pelo barramento, é necessário ativar o pino DE, fazendo com que RE seja desabilitado, para então transmitir a informação necessária pelo pino DI, e ao fim da transmissão, desabilitar DE reabilitando RE, de forma que o transceptor volte ao modo de recepção.

Page 68: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Problemas físicos

Quando todos os dispositivos estão em modo de recepção, o nível lógico do barramento pode ficar indefinido, assim adicionam-se resistores de pull-up no pino A e pull-down no pino B.

Page 69: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Outro problema que ocorre é a reflexão do sinal, este problema pode ser evitado colocando-se dois resistores de igual valor entre as linhas A e B.

Page 70: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Exemplo de um sistema RS-485

Sistema RS-485 com comunicação Half-duplex

Page 71: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Formas de Aplicação

Mestre/escravo É o tipo de aplicação onde um dispositivo

central é quem comanda os demais dispositivos. O dispositivos escravos recebem um endereço e apenas respondem ao mestre quando são chamados.

Page 72: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Tem-se assim uma forma de evitar colisões de dados na rede, visto que apenas o mestre ou o escravo estão transmitindo.

Page 73: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Uma grande forma de aplicação desse sistema é em industrias de manufaturas, onde um computador central comanda várias máquinas como: CNC, máquina de comando numérico, etc.

Page 74: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Rede de Manufatura utilizando RS 485

Page 75: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Comunicação Half-duplex com todos se comunicando

É o tipo de aplicação onde todos dispositivos comunicam-se entre si.

O funcionamento do protocolo de comunicação depende da aplicação, assim como evitar choques de informação depende do protocolo adotado.

Page 76: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Um exemplo aqui colocado é o sistema do robô desenvolvido pela Mecajun/LCVC para o desafio inteligente de robôs no ENECA.

Page 77: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Uma webcam transmite as informações para a placa central (Vortex86), esta toma as decisões e envia a placa de controle dos motores. Quando um evento ocorre na placa de controle com os sensores de toque e luz a informação deve ser enviada tanto para os motores como para a placa central, pois a possibilidade de batidas, ou seja, necessita de um método de comunicação flexível, que é possibilitado pelo RS -485.

Page 78: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss
Page 79: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Conversão RS-232/RS-485

Outra grande vantagem do padrão RS-485 é a facilidade de conversão do padrão RS-232 ao RS-485, simplesmente utilizando um CI, com isso tem-se que a compatibilidade com dispositivos já existentes no mercado é mantida.

Page 80: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

As  principais aplicações de um conversor RS232 RS422 RS485 Aumentar a distância de comunicação de

um sistema serial RS232 para maiores distâncias.

Permitir que equipamentos RS232 possam se comunicar com equipamentos RS422.

Page 81: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Permitir que equipamentos RS232 possam se comunicar com equipamentos RS485.

Isolar eletricamente um sistema do outro.

Page 82: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss
Page 83: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

SPECIFICATIONS RS232 RS423 RS422 RS485

Mode of Operation

SINGLE SINGLE

DIFFERENTIAL DIFFERENTIAL-ENDED -ENDED

Total Number of Drivers and Receivers on One Line (One driver active at a time for RS485 networks)

1 DRIVER 1 DRIVER 1 DRIVER 32 DRIVER

1 RECVR 10 RECVR 10 RECVR 32 RECVR

Maximum Cable Length 50 FT. 4000 FT. 4000 FT. 4000 FT.

Maximum Data Rate (40ft. - 4000ft. for RS422/RS485) 20kb/s 100kb/s 10Mb/s-100Kb/s 10Mb/s-100Kb/s

Maximum Driver Output Voltage +/-25V +/-6V -0.25V to +6V -7V to +12V

Driver Output Signal Level (Loaded Min.) Loaded +/-5V to +/-15V +/-3.6V +/-2.0V +/-1.5V

Driver Output Signal Level (Unloaded Max) Unloaded +/-25V +/-6V +/-6V +/-6V

Driver Load Impedance (Ohms) 3k to 7k >=450 100 54

Max. Driver Current in High Z State Power On N/A N/A N/A +/-100uA

Max. Driver Current in High Z State Power Off +/-6mA @ +/-2v +/-100uA +/-100uA +/-100uA

Slew Rate (Max.) 30V/uS Adjustable N/A N/A

Receiver Input Voltage Range +/-15V +/-12V -10V to +10V -7V to +12V

Receiver Input Sensitivity +/-3V +/-200mV +/-200mV +/-200mV

Receiver Input Resistance (Ohms), (1 Standard Load for RS485) 3k to 7k 4k min. 4k min. >=12k

Tabela de Comparações dos Padrões

Page 84: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

EXEMPLO DE CONFIGURAÇÃO EM C: compilador Turbo C++ versão 1.0 (Borland)

Page 85: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Compilador gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)

Page 86: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

REGISTRADORES DA UART

Page 87: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

porta base: 3F8 COM 1 porta base: 2F8 COM 2 porta base: 3E8 COM 3 porta base: 2E8 COM 4

As portas da UART funcionam da seguinte forma:

Page 88: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

UART Registers

Bit

0 1 IER 2 IIR 3 LCR 4 MCR 5 LSR 6 MSR

Rcv/Send DLL Int enable DLH Int id (read only) Line control Modem control Line status Modem status

0

Byte received

Received data avail int

Int pending: Word size:

Data terminal ready (DTR) Data ready (DR) Delta CTS

  0=pending 0=5 bits

Byte to be transmited 1=not 1=6 bits

    2=7 bits

1

Divisor latch low byte

Transmiter holding reg empty

Interrupt id: 3=8 bits

Request to send (RTS) Overrun error Delta DSR

  0=MCR change  

(115200/divisor= 1=Data ready  

 baud rate) 2=Trransm empty  

2

 

Receiver line status int

3=LSR change Stop bits:

0 Parity error Trailing edge ring

    0=1 bit

    1=2 bits

3   Modem status int 0 Parity enable out/02 Framming error Delta DCD

4

 

0 0

Parity select:

Loop back Break intClear to send

(CTS)

  0=odd

  1=even

5   0 0 Stick parity 0Send holding reg

emptyData set ready

(DSR)

6   0 0 Set break 0Transmiter empty

(TE) Ring indicator

7   0 0Divisor latch

access 0 0Data carrier

detect (DCD)

Page 89: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Conversor comercial RS485 / RS422 / RS232 Isolado IP – 7520

Fabricado para aplicações industriais possuindo  construção robusta, borneira removível, circuitos de proteção e isolação e uma ampla faixa de temperatura de trabalho.

Page 90: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Sistema de sintonia automática que permite a operação na mesma rede RS422 ou RS232 de dispositivos  com velocidade e formato de dados diferentes, sendo o controle de fluxo totalmente automático e transparente ao usuário não sendo necessário o uso de RTS /CTS para controle de fluxo.

Page 91: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Pode operar tanto a 2 dois fios ( Half duplex RS485 rede) como a 4 fios ( Full Duplex RS422) ou seja, o mesmo equipamento pode ser utilizado como conversor RS485 RS232 ou como conversor RS422 RS232, Isto garante uma grande compatibilidade com a maioria dos protocolos RS 485.

Page 92: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss

Fonte chaveada e optoacopladores possibilitando isolamento galvânico com uma tensão de isolação de até 3500V.

Montagem em trilho Din ou em fundo de painéis e até mesmo fixado em paredes.

Page 93: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss