Entendendo os Registradores de Deslocamento - Shift Register MakerHero

Entendendo os Registradores de Deslocamento – Shift Register Deixe um comentário

Os Registradores de Deslocamento ou Shift Register são um Circuito Integrado amplamente utilizado em placas de circuito e em projetos dos mais diversos tipos

Para entender melhor os Registradores de Deslocamento, vamos utilizar conhecimentos na área de eletrônica digital, onde deixo o post sobre Circuitos Lógicos – Lógica Booleana em CI’s como uma recomendação, além do post Entendendo os Flip Flops para auxiliar no entendimento e estudo destes circuitos.

Entendendo um Shift Register

Vamos “começar pelo começo”: O que é um Shift Register ou Registrador de Deslocamento afinal?

Antes de entendermos o Registrador de Deslocamento vamos voltar para os Flip Flops. Os FF (Flip Flops) são capazes de armazenar um bit de dado para cada pulso de clock no circuito e para cada pulso ocorre uma atualização do estado deste dado armazenado.

O Shift Register consiste em uma sequência de Flip Flops tipo D com suas saídas conectadas às entradas do FF seguinte, com todos os Clocks interligados, fazendo com que a cada pulso do clock o valor armazenado no FF anterior passe para o FF seguinte, fazendo com que o circuito do Registrador seja capaz de armazenar mais de 1 bit de dado, como representado abaixo.

Gif do modelo de registradores de deslocamento funcionando

Na representação temos um modelo de Shift Register montado com os pontos de Debug marcados em Azul, onde as saídas nomeadas de Qa à Qg representam as saídas de cada FF tipo D, o CLK representa o sinal de Clock do sistema e o botão com o resistor de pull down representa os dados de entrada (ponto DATA em Debug).

As saídas dos FF’s são consequentemente as saídas do Registrador de Deslocamento neste caso.

Os Registradores de Deslocamento são capazes de armazenar e transmitir os dados binários de forma paralela ou sequencial(Série), onde este modelo básico que simulei é responsável pela conversão de dados em série para dados em paralelo, por exemplo.

Alguns Registradores podem, ainda, possuir mais alguns pinos, como por exemplo o Master Clear, responsável por resetar todos os estados dos FF’s para nível lógico baixo. Isto irá depender de cada CI e do seu funcionamento, mas independente das nomenclaturas dos pinos e da adição de algumas funcionalidades extras, ainda sim são considerados Registradores de Deslocamento e possuem seu funcionamento base igual.

Dados Seriais e Dados Paralelo

Antes de entendermos o que são os Registradores, temos que entender o que são esses Dados e qual a diferença entre Serial e Paralelo.

O Dado (Data em inglês) é o nome dado às informações enviadas de um ponto a outro de um sistema, independente da forma que está sendo enviada. Uma boa analogia seria uma conversa entre duas pessoas, onde os dados são as palavras que você está falando e escutando. Estas informações no mundo da eletrônica são dadas em Binário, por exemplo.

Serial e Paralelo dizem respeito ao como este Dado está sendo transmitido, onde, seguindo a analogia da conversa, a própria conversa seria o “como”. Você consegue transmitir as palavras através da conversa, falando e escutando, ou através de uma carta, lendo e escrevendo, por exemplo. Neste caso, as palavras são as mesmas, a mensagem é a mesma, mas o modo como você está passando elas é diferente (Lendo e Escrevendo ou Falando e Escutando)

Entendendo esta analogia, temos os “meios de comunicação” Serial e Paralelo, onde no meio Serial nós utilizamos uma passagem sequencial dos dados, um a um, através de um único pino do nosso CI para fazer a comunicação de envio e/ou recebimento destes dados. No meio Paralelo nós temos um pino dedicado para cada Bit de dado, onde caso tenhamos um Byte de informação (8 Bits) teríamos 8 pinos do circuito dedicados para a transmissão dos dados, sendo cada pino responsável por um Bit.

Aplicações dos Registradores de deslocamento

Agora que entendemos que os Registradores de Deslocamento são CI’s responsáveis por armazenar e transmitir dados sequenciais, vamos entender as configurações básicas que podemos utilizar e as suas aplicações.

Os Registradores podem funcionar com as seguintes configurações: Paralelo-Paralelo, Série-Série, Paralelo-Série ou Série-Paralelo.

Estas nomenclaturas ditam o Input e o Output do Registrador, sendo o primeiro referente ao tipo de Input e o segundo referente ao tipo de Output, logo um Registrador Série-Paralelo diz respeito a um registrador com Input Série e Output Paralelo, por exemplo.

Registradores de Deslocamento Série-Paralelo

Uma utilização comum desta configuração Série-Paralelo seria para o controle de uma sequência de LED’s, onde um pino do microcontrolador seria responsável por controlar vários LED’s simultaneamente.

 

Registradores de Deslocamento Série-Paralelo

Vamos supor que temos um quadrado de LED’s, onde cada LED é controlado por um dos pinos de saída do circuito (Saída paralela), interligados da seguinte forma:

Exemplo controlador de circuito de leds

Para acender todos os LED’s na transversal, formando a letra X (LED’s 1, 4, 7, 6, 10, 11, 13 e 16) teríamos que enviar a sequência serial 1001 0110 0110 1001, onde o bit menos significativo seria o LED de menor número, enquanto o bit mais significativo representa o LED de maior número. 

Exemplo funcionamento do controlador de circuito de leds

Neste caso do X, os LED’s são espelhados, logo a sequência de mais significativo e menos significativa fica um pouco mais complicada de se entender. Vamos pegar a seguinte forma, onde a sua sequência seria 0110 001 0100 0010.

Exemplo funcionamento do controlador de circuito de leds

Os dados entram de forma Serial e, a cada pulso do clock, vão percorrendo LED por LED, até que os pulsos acabem (neste caso depois de 16 pulsos), como ilustrado no gif a seguir.

Utilização do conversor Serial-Paralelo para registradores de deslocamento

Este foi um exemplo simples de como é utilizado o conversor Serial-Paralelo ou Série-Paralelo, mas o céu é o limite, existem diversas aplicações para este circuito e diversas configurações de CI’s para este circuito, onde são adicionadas múltiplas funcionalidades e opções ao circuito.

Registradores de Deslocamento Paralelo-Série

O registrador Paralelo-Série é responsável por obter dados Paralelo e converter em dados Serial

Registrador de Deslocamento Paralelo-Série

Uma utilização comum desta configuração Paralelo-Série é para o controle de uma rede de sensores por parte de um microcontrolador.

Vamos supor que estamos montando um controle de estacionamento de um shopping, onde temos que sinalizar para um vigia quantos carros estão estacionados e quantas vagas ainda existem disponíveis. Neste caso, cada vaga teria que possuir um sensor de presença de carro e todos os sensores devem ser conectados a um microcontrolador para fazer a contagem de quais possuem um carro e quais não possuem.

Utilização do Registrador de Deslocamento Paralelo-Série

Neste caso, teremos múltiplas entradas convertidas em uma única saída, onde cada sensor será responsável por um bit dentro do dado serial. Neste tipo de conversor, Paralelo-Série, é praticamente obrigatória a existência de um novo sinal para habilitar e desabilitar a leitura dos sensores, para evitar que o dado Serial saia com os dados inconsistentes.

Circuito Paralelo Serial Completo - Registradores de Deslocamento
Circuito Paralelo Serial Completo

Vamos, então, adicionar um novo sinal, chamado Enable, para que, quando acionarmos este sinal o valor atual do sensor seja registrado e quando este sinal estiver em nível lógico 0 o valor dos sensores não sejam armazenados. No nosso exemplo, o sinal de enable, nada mais é do que uma porta AND associada entre o sinal Enable e o sinal referente a vaga, onde a saída desta AND é conectada ao sinal de SET do FF responsável por cada BIT

Circuito do sinal de Enable
Circuito do sinal de Enable

Este sinal de Enable, funciona então, praticamente como tirar uma foto, onde registramos um momento dos sensores para fazer a contagem dos carros através deste registro, onde o Qx_1 representa o sinal atual do sensor e o Qx_2 representa o sinal quando habilitado do sensor. Para uma configuração mais precisa e parecida com os CI’s comerciais, podemos colocar o sinal de SET e RESET dos FF como sendo complementares.

Saída serial de sinal Enable

E agora, o que fazer?

Bem, da parte teórica temos tudo o que precisamos para começar a implementar os registradores nos nossos projetos, agora é mão na massa!!!

Faça um registrador com os CI’s de FF e vá adicionando aos poucos funcionalidades e sinais para Habilitar o circuito, Resetar o circuito e deixe a sua imaginação fluir.

Gostou de aprender sobre os Registradores de Deslocamento?


Se você tiver dúvidas, sugestões ou experiências para compartilhar, fique a vontade para deixar um comentário abaixo. E para não perder nenhum conteúdo como este, não deixe de nos seguir no Instagram.

Faça seu comentário

Acesse sua conta e participe