02 março 2012

Como funcionam os registradores de deslocamento (Shift-Registers)




Como funcionam os registradores de deslocamento (Shift-Registers)
No artigo anterior estudamos alguns divisores/contadores binários especiais capazes de fazer a divisão por qualquer módulo fixo ou programável. Vimos na ocasião que cada módulo permitia ter diversas configurações usando circuitos integrados comuns. Também estudamos divisores programáveis capazes de dividir uma frequência ou fazer a contagem em qualquer módulo, circuitos de grande utilidade em muitos projetos de Eletrônica Digital. Um elemento de grande importância nos projetos de equipamentos digitais é o registrador de deslocamento ou shiftregister. Os shift- registers nada mais são do que o resultado da utilização de flip-flops de uma forma especial, eles são o tema deste artigo.


1 - O QUE É UM REGISTRADOR DE DESLOCAMENTO

Um registrador de deslocamento ou “shift-register”, como também é chamado pelo termo em inglês, consiste num conjunto de flip-flops que podem ser interligados de diversas formas, como, por exemplo, as apresentadas na figura 1.

Estes circuitos podem deslocar uma informação (bit) aplicada na entrada de uma posição a cada pulso de clock. Por exemplo, o bit 1 aplicado na entrada aparece na saída do primeiro flip-flop no primeiro pulso de clock, depois desloca-se, aparecendo na saída do segundo flip-flop no segundo pulso de clock e assim por diante, até aparecer na saída do final da sequência, figura 2.

Na configuração mostrada na figura 1 (a), cada flip-flop tipo D tem sua saída conectada à entrada do flip-flop seguinte e todos eles são controlados pelo mesmo CLOCK.

Para entender como funciona este circuito, vamos partir da situação inicial em que todos eles estejam desativados ou com suas saídas Q no nível baixo.

Inicialmente vamos aplicar à entrada de dados um nível alto (1). Conforme podemos ver, esta entrada é feita pela entrada J do primeiro flipflop (FF1).

Com a chegada do pulso de clock a este flip-flop, ele muda de estado e com isso “armazena” o pulso aplicadoà entrada, o qual aparece em sua saída depois de um curto intervalo de tempo.

Veja que este sinal é armazenado com o flanco positivo do sinal de clock, quando então o nível alto deve estar presente na entrada do flip-flop. O intervalo de tempo que decorre entre a aplicação do sinal na entrada de dados e seu aparecimento na saída do flip-flop é da ordem de alguns nanossegundos nos integrados das famílias lógicas comuns, mas é importante que em muitas aplicações mais rápidas ele seja levado em conta.

No próximo pulso de clock, ocorre algo interessante: a entrada do primeiro flip-flop já não tem mais o nível alto,
e portanto FF1 não muda de estado.

No entanto, na saída de FF1, temos nível alto, e esta saída está ligada à entrada do segundo flip-flop (FF2). Isso significa que, com a chegada do segundo pulso de clock, o nível lógico da saída do primeiro se transfere para a saída do segundo, depois é claro, de um pequeno intervalo de tempo, veja a tabela I.

A sequência de bits aplicados à entrada (a) aparece na saída (b) depois de certo número de clock.

Isso significa que o bit 1 aplicado na entrada se “deslocará” mais um pouco no circuito, passando para a saída do segundo flip-flop.

É claro que, se nessa segunda passagem, tivermos aplicado um novo nível 1 na entrada do circuito, ao mesmo tempo que o primeiro se transfere para o segundo flip-flop, o segundo se transfere para a saída do primeiro flip-flop, veja a figura 3.

Chegando agora um terceiro pulso de clock, teremos nova transferência e o nível alto ou bit 1 se transfere para a saída do flip-flop seguinte, ou seja FF3. Em outras palavras, a cada pulso de clock, os níveis existentes nas saídas dos flip-flops, sejam eles 0 ou 1, se transferem para o flip-flop seguinte.

Assim, supondo que apliquemos, em sequência, na entrada de um shiftregister como o indicado, os níveis 0101, teremos a seguinte sequência de condições de saída para os flipflops de um shift-register que use 4 deles:
Veja então que no quinto pulso de clock, o primeiro pulso de clock, o primeiro nível lógico, aparece na saída do último flip-flop (FF4) e se lermos a saída dos flip-flops teremos registrado os níveis aplicados na entrada: 0101.

O leitor já deve ter percebido que aplicando um dado binário num shiftregister, depois do número apropriado de pulsos de clock, ele pode armazenar este dado.

Para retirar o dado em sequência, basta continuar aplicando pulsos de clock ao circuito, conforme a seguinte tabela:
figura 4 mostra o que ocorre em pormenores:

Veja então que para armazenar um dado de 4 bits num registrador devemos aplicar 4 pulsos de clock e para ler em sequência, mais 4 pulsos de clock.

Para “apagar” os dados registrados num shif-register, como o indicado, basta aplicar um pulso na entrada CLEAR. Todos os flip-flops terão suas saídas levadas ao nível baixo ou 0.

2 - TIPOS DE REGISTRADORES DE DESLOCAMENTO

Dependendo da maneira como a informação entra e como ela pode ser obtida num registrador de deslocamento,
podemos ter diversas configurações que nos levam a muitos tipos de circuitos. Assim, existem circuitos em que temos uma entrada serial ou duas, e também podemos ter uma ou duas linhas de saída.

A seguir, veremos os principais tipos como suas denominações.

a) SISO - Serial-in/Serial-out

No exemplo, os dados foram aplicadosà entrada do registrador na forma de níveis lógicos um atrás do outro, acompanhando o sinal de clock. Dizemos que este registrador opera com a carga de dados “serial” ou em série. Em outras palavras, este circuito tem entrada serial ou serial-in.

Exatamente como ocorre com a porta serial de um computador, os dados são “enfileirados” e entram um após outro e vão sendo armazenados em flip-flops, conforme o circuito da figura 5.
b) PISO - Parallel-in/Serial out

No entanto, existe uma segunda possibilidade de operação para os shift-registers, que é a de operar com a entrada de dados em paralelo e sair com estes mesmos dados em série. Dizemos que se trata de um shiftregister com entrada paralela e saída serial.
Na figura 6 temos um diagrama que usa 4 flip-flops tipo D e que tem entrada de dados paralela e saída serial.

Analisemos como ele funciona: Os dados são colocados ao mesmo tempo na entrada, pois ela opera em paralelo. Por exemplo, se vamos armazenar o dado 0110, esses dados são aplicados ao mesmo tempo nas entradas correspondentes (S) dos flipflops.

No primeiro pulso de clock, os flipflops“armazenam” esses dados. Assim, os flip-flops que possuem nível 1 em sua entrada S passam esse nívelà saída (FF2, FF3). Por outro lado, os que possuem nível 0 na sua entrada, mantém este nível na saída (FF1 e FF4).

Isso significa que, após o pulso de clock, as saídas dos flip-flops apresentarão os níveis 0110.

c) SIPO - Serial-In/Parallel-out

Da mesma forma, como verificamos na figura 7, podemos carregar os dados em série e fazer sua leitura em paralelo.

Os registradores que operam desta forma podem ser também denominados conversores série-paralelo ou paralelo-série, conforme o modo de funcionamento.

d) PIPO - Parallel-in/Parallel-out

Estes são circuitos em que os dados são carregados ao mesmo tempo e depois lidos ao mesmo tempo pelas saídas dos flip-flops, veja a figura 8. Os registradores de deslocamento podem ainda ser classificados quanto à direção em que os dados podem ser deslocados.

Dizemos que se trata do tipo Shift- Right, quando os dados são deslocados para a direita e que se trata de um tipo Shift-Left, quando os dados são deslocados somente para a esquerda.
Existem ainda os tipos bidirecionais como o mostrado na figura 9, em que os dados podem ser deslocados nas duas direções. Este é um registrador do tipo SISO.

Veja que o sentido de deslocamentoé determinado por uma entrada que atua sobre portas que modificam o ponto de aplicação dos sinais em cada flip-flop, exatamente como estudamos nos contadores up e down das lições anteriores.

Com a aplicação de um nível lógico conveniente na entrada LEFT/ RIGHT, podemos determinar o sentido de deslocamento dos dados no circuito.

3 - OPERANDO COM BINÁRIOS
Conforme o leitor já percebeu, os registradores de deslocamento podem memorizar números binários, recebendo-os em série ou paralelo e entregando-os depois em série ou paralelo.

Nos computadores, esta configuração é bastante usada tanto na conversão de dados de portas como nas próprias memórias e outros circuitos internos.

É interessante observar que na configuração que tomamos como exemplo, em que são usados 4 flipflops, os bits armazenados seguem uma determinada ordem.

Assim, quando representamos o número 5 (0101), cada um dos bits tem um valor relativo, que depende da sua posição no dado, conforme já estudamos em lições anteriores.
MSB significa bit mais significativo, ou seja, de maior peso, enquanto que LSB significa bit menos significativo ou de menor peso.

Estamos trabalhando com dados de 4 bits, e não 8, como é comum nos computadores, obtendo assim o “byte”, para maior facilidade de entendimento.
Ligando então 4 flip-flops de modo a obter um shitf-register, como observamos na figura 10, entrando com os dados de tal forma que o bit menos significativo (LSB) seja o primeiro, depois de 4 pulsos de clock, ele vai aparecer, na saída do último flip-flop.
Da mesma forma, se o shiftregister for carregado em paralelo, o bit menos significativo (LSB) deve entrar no último, de modo que na leitura ele seja o primeiro a sair.

4 - SHIFT-REGISTERS OU REGISTRADORES DE DESLOCAMENTO INTEGRADOS

Podemos encontrar registradores de deslocamento nas famílias TTL ou CMOs. Vamos dar alguns exemplos de circuitos integrados comuns que podem ser usados em projetos, analisando suas principais características.

7495 - SHIFT-REGISTER DE 4 BITS

(Da esquerda para a direita - entrada e saída em paralelo)

Este circuito integrado TTL pode operar de duas formas: Shift ou Load. Na figura 11 temos sua pinagem.

Para operar no modo shift, basta colocar a entrada Mode no nível baixo. Uma transição do nível alto para o
nível baixo na entrada de clock SRT movimenta os dados de uma etapa para a direita.

Uma transição do nível alto para o baixo na entrada SLT movimenta o dado no sentido inverso.

É interessante observar que este circuito usa dois clocks, um para movimentar os dados para a direita e outro para a esquerda.

No modo Load, esta entrada deve ir ao nível alto, e a informação carregada nas entradas LA, LB, LC e LD entram no circuito na transição do nível alto para o baixo da entrada de comando na entrada shift-left (SLT). A frequência máxima de operação de um 7495 standard é de 36 MHz. Velocidades maiores de operação podem ser conseguidas com os tipos LS.

74164 - SHIFT-REGISTER DE 8 BITS

(Entrada serial, saída paralela) Na figura 12 temos a pinagem deste shift register TTL.

Este circuito pode ser usado na configuração de serial-in/serial-out ou serial in/parallel-out ou seja, entrada e saída de dados em série, ou entrada de dados em série e saída em paralelo.

Na operação normal, uma das saídas seriais é mantida no nível alto e os dados são aplicados à segunda entrada serial. A entrada Clear é mantida no nível alto e a cada pulso do nível baixo para o alto do clock, os dados movem-se de um estágio no circuito.

O conteúdo do shift pode ser zerado levando-se a entrada clear por um instante ao nível baixo.

A frequência máxima de operação deste circuito na série Standard é de 36 MHz.

74165 - SHIFT- REGISTER DE 8 BITS (Entrada Paralela, saída serial)

Este circuito integrado TTL contém um shift- register de 8 bits com entrada paralela e saída de dados serial. A pinagem é mostrada na figura 13.
Para operação normal EN deve ficar no nível baixo e LOAD no nível alto. Nestas condições, os dados são deslocados um estágio na transição positiva do sinal de clock.

Quando a entrada LOAD é levada ao nível baixo, o conteúdo das entradas de A até H é carregado no registrador. clock. Quando a entrada de controle está no nível alto, os dados são aplicados a cada etapa do shift- register com a transição positiva do clock.

Fazendo EN=0 e LOAD=1 os dados são deslocados uma etapa no circuito a cada transição positiva do sinal de clock. A última etapa do circuito dispõe de um acesso para a saída complementar.

Damos a seguir alguns registradores de deslocamento da família CMOS.

4014 - SHIFT- REGISTER ESTÁTICO DE 8 BITS (Entrada paralela e saída em série)

Este circuito integrado CMOS tem a pinagem mostrada na figura 14.
Um controle série/paralelo controla a entrada e habilita as etapas individuais de cada um dos 8 estágios. As saídas Q são disponíveis nos estágios 6, 7 e 8. Todas as saídas podem fornecer ou drenar a mesma intensidade de corrente.

Quando a entrada de controle paralelo/ série está no nível baixo, os dados são deslocados pelo circuito a cada transição positiva do sinal de clock. Quando a entrada de controle está no nível alto, os dados são aplicados a cada etapa do shift- register com a transição positiva do clock.

A frequência máxima de operação deste tipo de circuito depende da tensão de alimentação. Para uma alimentação de 10 V, esta frequência é da ordem de 5 MHz, caindo para 2,5 MHz com uma alimentação de 5 V.
.
4015 - DOIS SHIFT- REGISTERS DE 4 BITS (Entrada serial, Saída paralela)

A pinagem deste circuito fornecido em invólucro DIL de 16 pinos é mostrada na figura 15.

Neste circuito integrado encontramos dois shift- registers que podem ser usados de modo independente.

Na operação normal RST deve ser colocado no nível baixo. Levando esta entrada ao nível alto, o circuito resseta o shift-register correspondente, levando todas suas saídas ao nível lógico 0.

Os dados são deslocados a cada transição positiva do pulso de clock.

Para uma alimentação de 10 V, a frequência máxima de operação é de 5 MHz, caindo para metade com alimentação de 5 V.

4021 - SHIFT- REGISTER DE 8 BITS (Parallel in, Serial out)

Este circuito integrado, cuja pinagem é mostrada na figura 16, é semelhante ao 4014.


A diferença está no fato de que a carga (LOAD) pode ser feita de forma assíncrona. Isso significa que esta entrada independe do sinal de clock.

Nenhum comentário: