• Nenhum resultado encontrado

CAPÍTULO 2. Características comuns das Interfaces. 2.1 Comunicação Serial x Comunicação Paralela. Interfaces e Periféricos 12

N/A
N/A
Protected

Academic year: 2021

Share "CAPÍTULO 2. Características comuns das Interfaces. 2.1 Comunicação Serial x Comunicação Paralela. Interfaces e Periféricos 12"

Copied!
11
0
0

Texto

(1)

CAPÍTULO 2

Características comuns

das Interfaces

Neste capítulo estudaremos diversas características comuns de hardware e software encontradas nas interfaces, por exemplo, uma interface pode ser assíncrona, serial, desbalanceada e configurada em full-duplex, tal como a RS-232 normalmente opera. Considerando características de software podemos ter interfaces cujo acesso se dá através da memória ou através de instruções específicas. Veremos em seguida, estas características.

2.1 Comunicação Serial x Comunicação Paralela

De uma forma geral, a comunicação entre o núcleo do computador e os dispositivos de E/S poderia ser classificada em dois tipos: comunicação paralela ou serial. Vamos a seguir analisar as características destes tipos.

2.1.1 Comunicação paralela:

Na comunicação paralela grupos de bits são transferidos simultaneamente (em geral, byte a byte) através de diversas linhas condutoras dos sinais. Desta forma, como vários bits são transmitidos simultaneamente a cada ciclo, a taxa de transferência de dados tende a ser alta.

Observe também que, dependendo da distância entre a interface e o periférico ao utilizar um cabeamento paralelo, a quantidade de condutores (fios) é multiplicada pela quantidade de bits transferidos a cada ciclo, implicando em custo maior. Além disso, há outro problema que veremos adiante.

(2)

Na comunicação serial os bits são transferidos um a um, através de um único par condutor. Os bytes a serem transmitidos são serializados, isto é, são "desmontados" bit a bit, e são individualmente transmitidos, um a um. Na outra extremidade do condutor, os bits são contados e quando formam oito bits, são remontados, reconstituindo os bytes originais. Nesse modo, o controle é comparativamente muito mais simples que no modo paralelo e é de implementação mais barata. Como todos os bits são transferidos pelo mesmo meio físico (mesmo par de fios), as eventuais irregularidades afetam todos os bits igualmente. A transmissão serial é intrinsecamente mais lenta (de vez que apenas um bit é transmitido de cada vez).

Se a comunicação serial é intrinsecamente mais lenta que a paralela, por que as interfaces seriais voltaram a serem utilizadas nos computadores modernos (Exemplo: SATA, USB)?

Resposta: O SKEW

Um dos problemas importantes diz respeito à propagação dos sinais no meio físico, isto é, no cabo de conexão entre o dispositivo e a interface. Essa propagação deve se fazer de modo que os sinais (os bits) correspondentes a cada byte cheguem simultaneamente à extremidade oposta do cabo, onde então serão reagrupados em bytes. Como os condutores que compõem o cabo usualmente terão pequenas diferenças físicas, a velocidade de propagação dos sinais digitais nos condutores poderá ser ligeiramente diferente nos diversos fios. Dependendo do comprimento do cabo, pode ocorrer que um determinado fio conduza sinais de forma mais rápida (ou mais lenta) que os demais fios e que desta forma um determinado bit x em cada byte se propague mais rápido e chegue à extremidade do cabo antes que os outros n-1 bits do byte. Este fenômeno é chamado

skew, e as consequências são catastróficas: os bits x chegariam fora de ordem (os bytes chegariam

embaralhados) e a informação ficaria irrecuperável. Em decorrência desse problema, há limites para o comprimento do cabo que interliga um dispositivo ao computador, quando se usa o modo paralelo.

A transmissão serial tem recebido aperfeiçoamentos importantes (seja de protocolo, de interface e de meio de transmissão) que vem permitindo o aumento da velocidade de transmissão por um único par de fios, cabo coaxial ou de fibra ótica. Como o aumento da velocidade de transmissão em interfaces paralelas ocasiona mais skew, a tendência tem sido no sentido do aperfeiçoamento das interfaces seriais que hoje permitem taxas de transferência muito altas com relativamente poucas restrições de distância.

(3)

2.2 Transmissão Síncrona x Assíncrona:

Além da comunicação ser feita de forma serial ou paralela podemos também classificar esta comunicação em termos da sincronização de envio e recebimento dos bits. Em uma transmissão de dados entre a CPU (via controladora) e seu periférico é necessário que os bits transmitidos sejam corretamente recebidos levando-se em conta o tempo (momento do envio e duração dos mesmos). Para garantir a correta transmissão dos bits podemos utilizar dos métodos diferentes: transmissão síncrona ou assíncrona.

2.2.1 Transmissão síncrona

Na transmissão síncrona, o intervalo de tempo entre dois caracteres subsequentes é fixo e os dois dispositivos (transmissor e receptor) são sincronizados, ou seja, possuem clock único ou sincronizado todo o tempo. Quando não há caracteres a serem transferidos, o transmissor continua enviando caracteres especiais de forma que o intervalo de tempo entre caracteres se mantém constante e o receptor mantém-se sincronizado. No início de uma transmissão síncrona, os clocks dos dispositivos transmissor e receptor são sincronizados através de uma string de sincronização e então se mantém sincronizados por longos períodos de tempo (dependendo da estabilidade dos relógios), podendo transmitir dezenas de milhares de bits antes de terem necessidade de sincronizar novamente. Outra forma de manter o sincronismo é a utilização de uma linha (condutor) específica para o clock.

Em resumo, na transmissão síncrona é fundamental que cada dispositivo comande seu clock para geração e recepção dos bits de forma sincronizada o tempo todo, isso pode ser garantido com:

Ter clocks independentes no transmissor e receptor, sendo que a frequência e a fase destes clocks é garantida estar em sincronia pelo uso de osciladores precisos e o envio de transmissão periódica de uma string de sincronização que mantém os clocks funcionando como se fossem um só.

Utilizar o gerador de clock somente no transmissor e enviar o clock para o receptor através de uma linha (condutor) específica para o clock (este é o método mais confiável mas gasta uma linha de comunicação para tal.

2.2.2 Transmissão assíncrona

Na transmissão assíncrona, o intervalo de tempo entre os caracteres não é fixo. Podemos exemplificar com um digitador operando um terminal, não havendo um fluxo homogêneo de caracteres a serem transmitidos.

Como o fluxo de caracteres não é homogêneo, não haveria como distinguir a ausência de bits sendo transmitidos de um eventual fluxo de bits zero e o receptor nunca saberia quando virá o próximo caractere, e, portanto, não teria como identificar o que seria o primeiro bit do caractere. Para resolver estes problemas de transmissão assíncrona, foi padronizado que na ausência de caracteres a serem transmitidos o transmissor mantém a linha sempre no estado 1, isto é, transmite ininterruptamente bits 1, o que distingue também de linha interrompida (este estado é chamado idle). Quando for transmitir um caractere, para permitir que o receptor reconheça o início do caractere, o transmissor insere um bit de partida (start bit) antes de cada caractere. Convenciona-se que esse start bit será um bit zero,

(4)

interrompendo assim a sequência de bits 1 que caracteriza a linha livre (idle). Para maior segurança, ao final de cada caractere o transmissor insere um (ou dois, dependendo do padrão adotado) bits de parada (stop bits), convencionando-se serem bits 1 para distingui-los dos bits de partida.

Os bits de informação são transmitidos em intervalos de tempo uniformes entre o start bit e o(s) stop bit(s). Portanto, transmissor e receptor somente estarão sincronizados durante o intervalo de tempo entre os bits de start e stop. A transmissão assíncrona também é conhecida como "start-stop".

A taxa de eficiência de uma transmissão de dados é medida como a relação de número de bits úteis dividido pelo total de bits transmitidos. No método assíncrono, a eficiência é menor que a no método síncrono, uma vez que há necessidade de inserir os bits de partida e parada, de forma que a cada caractere são inseridos de 2 a 3 bits que não contém informação.

Análise da transmissão em uma interface serial assíncrona:

Na figura abaixo temos a representação de um byte enviado através de uma interface serial assíncrona. Vamos tentar identificar o byte/caractere sendo transmitido, tempo de transmissão de um bit, tempo de transmissão do byte/caractere, a eficiência e o tempo (delay) que o receptor terá para capturar os bits transmitidos. Suponha que a frequência do clock (velocidade de transmissão) é de 9600bps.

• Byte sendo transmitido:

Após o start-bit e antes do stop-bit temos: 1 0 0 1 0 0 1 0

Como o bit menos significativo é transmitido primeiro, invertemos: 0 1 0 0 1 0 0 1 que é 73 em decimal ou a letra I (í maiúscula) na tabela ASCII.

Tabela ASCII:

http://www.ascii-code.com/

• Tempo de transmissão de 1 bit: t = 1/9600 = 0,000104s = 0,104ms

(5)

• Tempo de transmissão do byte (devemos acrescentar todos bits necessários) t = 10 x 0,104 = 1,04ms

• Eficiência = 8/10 = 80%

• Tempo para o início da captura dos bits no receptor:

Assim que o receptor detecta o start-bit ele contará o tempo do start-bit mais a metade do tempo de um bit a fim de que as amostras (samples na figura) sejam feitas exatamente na metade do tempo de transmissão dos bits, reduzindo assim a probabilidade de capturar bits errados devido a diferenças entre as velocidades de clock do transmissor e do receptor.

Assim:

t = 0,104 + 0,052 = 0,156ms

2.3 Modos de transmissão

Uma comunicação é dita simplex quando permite comunicação apenas em um único sentido, tendo em uma extremidade um dispositivo apenas transmissor (transmitter) e do outro um dispositivo apenas receptor (receiver). Não há possibilidade de o dispositivo receptor enviar dados ou mesmo sinalizar se os dados foram recebidos corretamente. Transmissões de rádio e televisão são exemplos de transmissão simplex.

Uma comunicação é dita half-duplex (também chamada semi-duplex) quando existem em ambas as extremidades dispositivos que podem transmitir e receber dados, porém não simultaneamente. Durante uma transmissão half-duplex, em determinado instante um dispositivo A será transmissor e o outro B será receptor, em outro instante os papéis podem se inverter. Por exemplo, o dispositivo A poderia transmitir dados que B receberia; em seguida, o sentido da transmissão seria invertido e B transmitiria para A a informação se os dados foram corretamente recebidos ou se foram detectados erros de transmissão. Uma transmissão é dita full-duplex (também chamada apenas duplex) quando dados podem ser transmitidos e recebidos simultaneamente em ambos os sentidos. Poderíamos entender uma linha full-duplex como funcionalmente equivalente a duas linhas simplex, uma em cada direção.

(6)

2.4 Transmissão balanceada x desbalanceada

As interfaces seriais podem ser classificadas quanto à referência em relação ao “terra” em balanceadas e desbalanceadas.

2.4.1 Transmissão desbalanceada

Neste caso, o sinal tem como referência o “terra” dos sistemas conectados. Os circuitos de acoplamento são simples, em contrapartida, este tipo de interface oferece baixa imunidade a ruídos. Qualquer ruído induzido nos fios do cabeamento irão facilmente deformar os bits transmitidos, fazendo com que o receptor interprete os bits enviados de forma errada.

Um circuito de acoplamento desbalanceado é um circuito no qual o transmissor e receptor não são diferenciais, ou seja, o valor binário transmitido corresponde a um valor absoluto de tensão.

Exemplo:

Podemos considerar TX como o computador e RX como o periférico (ou vice e versa). Considere as seguintes condições no receptor (RX):

Se VA > 3,5V, então saída TTL = bit 1 Se VA < 1,5, então saída TTL =bit 0

Ao transmitir (TX) um bit ‘1’ o valor de saída (VA) pode variar (em função do ruído) e chegar ao receptor como sendo 4,5V, em vez de 5V (TTL). Nesse caso o bit chegaria correto.

Por outro lado se ao transmitir (TX) um bit ‘1’ o valor de saída (VA) variar (em função do ruído) e chegar ao receptor como sendo 3V, em vez de 5V (TTL) o receptor não saberá distinguir se o bit é 0 ou 1, gerando uma saída que pode ser 0 ou 1, podendo ocasionar um erro.

O mesmo poderia ocorrer na transmissão de um bit ‘0’.

2.4.2 Transmissão desbalanceada

Neste caso o sinal é enviado através de um par de fios desacoplado do “terra”, ou seja, não tem o “terra” como referência. Os sinais são tratados por amplificadores diferenciais. A grande vantagem está na alta imunidade a ruídos uma vez que estes são em sua maioria cancelados pelo amplificador diferencial. Um circuito de acoplamento balanceado é um circuito no qual o transmissor e receptor são diferenciais, ou seja, o valor binário transmitido é resultado da diferença de potencial entre um par de fios.

(7)

Exemplo:

Podemos considerar TX como o computador e RX como o periférico (ou vice e versa). Considere as seguintes condições no receptor (RX):

Se VA – VB > 0, então saída TTL = bit 1 Se VA – VB < 0, então saída TTL = bit 0

Quano ocorre injeção de ruído no barramento o ruído tende a ocorrer igualmente nas linhas VA e VB, como o receptor (amplificador diferencial) fará a subtração entre VA e VB o ruído tenderá a ser cancelado. Ao transmitir (TX) um bit ‘1’ (VA = 5V e VB = 0V) o valor de saída (VA) pode variar (em função do ruído) e chegar ao receptor como sendo 5,3 em vez de 5V, o valor de saída (VB) pode variar (em função do ruído) e chegar ao receptor como sendo 0,3V em vez de 0V.

VA – VB = 5,3 – 0,3 = 5V, que é maior que 0, portanto, bit 1.

O mesmo poderia ocorrer na transmissão de um bit ‘0’, quando VA = 0V e VB = 5V.

Circuitos balanceados apresentam maior imunidade a ruído e por isso são recomendados para taxas de transmissão elevadas.

Ao interligar equipamentos que empregam interfaces de comunicação com circuitos balanceados, é importante observar a correspondência entre as polaridades de um mesmo circuito (ligar o condutor “A” do transmissor com o condutor “A” do receptor e ligar o condutor “B” de forma análoga).

2.5 Mecanismos de Entrada e Saída (E/S) de dados

Os seguintes métodos de E/S serão dicutidos: a) E/S Programada (Polling)

b) Interrupção

c) DMA (Direct Memory Access)

2.5.1 E/S Programada

Não existe uma controladora dedicada, a CPU realiza a operação de E/S.

Exemplo 1: Leitura direta

Para verificar se um botão está pressionado o teste é feito diretamente no pino digital de I/O, dentro do programa principal:

(8)

No Arduino o pino de I/O é lido diretamente com a função digitalRead():

//Leitura de um pino I/O (pino 5) no Arduino

btnState = digitalRead(5); if ( btnState == HIGH) { //Botão pressionado }

Exemplo 2: Leitura utilizando registrador de status

Processador fica em loop lendo registrador de status do dispositivo até que um bit de status DISPONÍVEL seja ligado pelo dispositivo.

• Quando esse bit é ligado significa que o dispositivo acaba de escrever um novo caractere em um registrador (buffer) de saída de dados.

• Quando isso ocorre, o programa lê o caractere do registrador de dados do, desligando o bit de status DISPONÍVEL.

No Arduino a função Serial.available() verifica se o status da Serial, ou seja, se há dados no buffer. A função Serial.read() lê o byte da Serial e limpa o status (desliga o bit DISPONÍVEL).

Atenção: Se houver mais bytes na serial o correto seria que Serial.read() fosse chamada dentro de um loop, até que todos os bytes fossem lidos, para que o status fosse limpo.

//Leitura da porta serial no Arduino if(Serial.available() > 0){

incomingByte=Serial.read(); }

2.5.2 Interrupção

Em Ciência da Computação, uma interrupção é um sinal de um dispositivo que tipicamente resulta em uma troca de contextos, isto é, o processador para de fazer o que está fazendo para atender o dispositivo que pediu a interrupção.

Um programa qualquer está em execução na CPU e a seguinte sequência de eventos ocorre:

O dispositivo E/S solicita o serviço de transferência apenas quando este estiver pronto para enviar/receber o(s) dado(s).

A interrupção causa um desvio no fluxo do programa via hardware.

A interrupção pára o programa que está rodando e desvia o fluxo para a Rotina de Tratamento da Interrupção

Quando finaliza a rotina de tratamento da interrupção, o processador retoma a execução do programa interrompido.

(9)

Rotina de Tratamento da Interrupção:

Função especial que realiza o serviço de transferência daquele dispositivo externo que solicitou a interrupção e verifica a ocorrência de possíveis erros na transferência de dados.

Requer hardware especial (Controlador de interrupções), que identifica o dispositivo que gerou a interrupção e define a prioridade das interrupções e quais serão atendidas.

Observe que a E/S por interrupção é muito mais eficiente que a E/S programada (ou polling), pois evita que a CPU tenha que ficar em um loop testando bits que indiquem o status do dispositivo. Com a interrupção a CPU pode se dedicar inteiramente ao programa principal, sendo interrompida só quando necessário.

2.5.3 DMA

Significa acesso direto à memória (DMA - Direct Memory Access).

Uma controladora lê dados da memória principal ou escreve dados na memória principal sem que seja necessária intervenção direta do processador.

Observações:

Libera a CPU da intermediação entre dispositivo periférico e memória.

Uma transferência por DMA essencialmente copia um bloco de memória de um dispositivo para outro.

(10)

Atenção

Como a CPU não participa durante a fase de transferência não é possível realizar nenhum tipo de verificação de erro ou processamento, assim, o DMA é bastante utilizado para a comunicação com dispositivos de armazenamento (CD-ROM, HD, etc) onde grandes blocos de dados são transferidos por vez, sem necessidade de processamento durante a transferência.

2.6 Endereçamento

As interfaces possuem tipo de endereçamento que podem ser categorizados como segue: a) E/S mapeada em porta

b) E/S mapeada na memória

c) Híbrido (pode ser mapeada em porta ou memória)

2.6.1 E/S mapeada em porta

Utilizam-se instruções específicas na programação para enviar e receber dados para a porta.

E/S mapeada em porta utiliza uma classe especial de instruções do processador. Isto é normalmente encontrado em processadores Intel, especificamente as instruções IN e OUT, que podem escrever de um a quatro bytes (outb, outw, outl) em um dispositivo de E/S. Estes dispositivos possuem um espaço de endereços separado da memória geral, implementado por um pino extra de E/S na interface da CPU ou por um barramento inteiro dedicado a entrada/saída. Por esta área de memória, dedicada a E/S, ser isolada da memória principal ela é, às vezes, chamada de E/S isolada.

(11)

Exemplos em Assembly:

Leitura de dados da porta (entrada):

IN registrador, [endereço]

Lê o valor contido no endereço da porta para o registrador. Escrita de dados na porta (saída):

OUT [endereço], registrador

Escreve o valor contido no registrador no endereço da porta.

2.6.1 E/S mapeada em memória

O método de mapeamento de E/S em memória utiliza a via de endereços para endereçar tanto a memória quanto os dispositivos de E/S e as instruções da CPU usadas para acessar a memória também são usadas para acessar os dispositivos. Para acomodar os dispositivos de E/S áreas do espaço endereçável da CPU devem ser reservadas para E/S. A reserva de espaço pode ser temporária ou permanente. Cada dispositivo de E/S monitora a via de endereçamento da CPU e responde a qualquer acesso da CPU ao espaço de endereço destinado ao dispositivo, conectando a via de dados ao registrador do hadware do dispositvo desejado.

2.6.1 Híbrido

As duas formas de endereçamento anteriores são possíveis. Resumo dos três tipos:

A figura a seguir mostra o tipo (a), onde os dispositivos de E/S estão mapeadas na sua memória específica (mapeamento em porta), completamente independente da memória principal (memória RAM).

No tipo (b) há um espaço de endereçamento compartilhado entre a memória principal e os dispositivos de E/S (mapeamento em memória).

Referências

Documentos relacionados

ESCOLAS ESTADUAIS ENDEREÇOS BAIRRO

Durante la fase di spegnimento non sarà possibile riaccendere la stufa, terminata la fase di spegnimento il sistema si riposizio- na automaticamente in stand-by (si visualizza

representação gráfica có rre go d o b aú SEDE CURRAL ENGENHO entrada açude GALINHEIRO açude 5 10 0 40 ANTIGA TULHA MOINHO ESTÁBULO pomar Implantação representação

Quando o tratamento com Fluvoxamina Generis for descontinuado a dose deve ser gradualmente diminuída durante um período de pelo menos uma a duas semanas, de forma a reduzir o risco

arrematado e da comissão da Gestora do Leilão no prazo estipulado, ficará sujeito ao pagamento do valor correspondente a 25% (vinte e cinco por cento) do lance ofertado, a título

Nesse contexto, objetivo deste artigo é classificar alternativas de sistemas de janela estáticos e dinâmicos quanto a indicadores de desempenho de iluminação natural

Para se verificar a compreensão e aplicabilidade dos instrumentos foi feito um estudo piloto, uma vez que, apesar de parte dos instrumentos serem já validados na

cocoamidopropil betaina hidrogenada Dados não disponíveis aminas, C12-14 (numeração par)- alquildimetil, N-óxidos Dados não disponíveis alquil poliglucoside Dados não