programaÇÃo de perifericos nomes: marcos goulart paulo weiss
TRANSCRIPT
![Page 1: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/1.jpg)
PROGRAMAÇÃO DE PERIFERICOS
NOMES: Marcos Goulart
Paulo Weiss
![Page 2: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/2.jpg)
Protocolos de comunicaçãoRS-232C, RS-422
RS-485
![Page 3: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/12.jpg)
Exemplo do envio do caracter 'A':
![Page 13: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/14.jpg)
TEMPORIZAÇÃO DOS SINAIS
![Page 15: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/17.jpg)
MAX232
![Page 18: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/18.jpg)
MAX232
![Page 19: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/20.jpg)
Pinagem do cabo serial
![Page 21: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/21.jpg)
Pinagem do cabo serial
![Page 22: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/24.jpg)
MODO DE TRANSMISSÃO
![Page 25: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/25.jpg)
MODO DE RECEPÇÃO
![Page 26: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/26.jpg)
DIAGRAMA DE BLOCOS MOSTRANDO OS REGISTRADORES DA UART 8250
![Page 27: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/37.jpg)
![Page 38: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/39.jpg)
![Page 40: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/44.jpg)
![Page 45: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/48.jpg)
![Page 49: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/49.jpg)
![Page 50: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/51.jpg)
![Page 52: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/55.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/56.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/61.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/62.jpg)
Gráfico Distancia x taxa de transmissão
![Page 63: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/64.jpg)
Funcionamento físico
Transceptor MAX-485
![Page 65: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/66.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/67.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/68.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/69.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/70.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/71.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/72.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/73.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/74.jpg)
Rede de Manufatura utilizando RS 485
![Page 75: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/75.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/76.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/77.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/78.jpg)
![Page 79: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/79.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/80.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/81.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/82.jpg)
![Page 83: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/83.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/84.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/85.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/86.jpg)
REGISTRADORES DA UART
![Page 87: PROGRAMAÇÃO DE PERIFERICOS NOMES: Marcos Goulart Paulo Weiss](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/87.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/88.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/89.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/90.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/91.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/92.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042601/552fc10c497959413d8c33be/html5/thumbnails/93.jpg)