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

Post on 17-Apr-2015

110 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PROGRAMAÇÃO DE PERIFERICOS

NOMES: Marcos Goulart

Paulo Weiss

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

RS-485

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).

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.

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,

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

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.

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.

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.

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.

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.

Exemplo do envio do caracter 'A':

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,

TEMPORIZAÇÃO DOS SINAIS

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.

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.

MAX232

MAX232

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.

Pinagem do cabo serial

Pinagem do cabo serial

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.

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.

MODO DE TRANSMISSÃO

MODO DE RECEPÇÃO

DIAGRAMA DE BLOCOS MOSTRANDO OS REGISTRADORES DA UART 8250

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

REGISTRADOR DE STATUS

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

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.

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.

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.

Registradores de controle

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

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).

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.

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.

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).

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)

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.

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.

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

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”.

RS422

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

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.

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.

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.

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.

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.

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.

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.

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).

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.

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.

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.

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.

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.

Gráfico Distancia x taxa de transmissão

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.

Funcionamento físico

Transceptor MAX-485

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

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.

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.

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.

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.

Exemplo de um sistema RS-485

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

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.

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

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.

Rede de Manufatura utilizando RS 485

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.

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

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.

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.

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.

Permitir que equipamentos RS232 possam se comunicar com equipamentos RS485.

Isolar eletricamente um sistema do outro.

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

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

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

REGISTRADORES DA UART

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:

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)

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.

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.

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.

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.

top related