Criar uma Loja Virtual Grátis
Enquete
O que vocês Acham do Site?
Bom
Ruim
Péssimo
Exelente
Ver Resultados

Rating: 2.3/5 (289 votos)




ONLINE
1




Partilhe esta Página



Total de visitas: 57294
Informática
Informática

Nesta página vocês terão mais informações sobre qualquer curso de informática.

Vocês poderão ter acesso a vídeos e artigos com cursos de informática.

Como alterar o endereço IP de um computador via PowerShell

Site:http://www.bosontreinamentos.com.br/windows-powershell/como-alterar-o-endereco-ip-de-um-computador-via-powershell/

Por: Gabriela Parente

Para o Site: Techmovie

 

Alterando configurações de rede via Windows PowerShell

Neste tutorial vamos mostrar os procedimentos necessários para efetuar a alteração do endereço IP de um adaptador de rede, além de outros parâmetros como os servidores DNS utilizados, endereço do gateway padrão, e também como configurar a máquina para usar endereços atribuídos dinamicamente via DHCP novamente.

Os comandos que serão mostrados são válidos para sistemas a partir da versão Windows 8.

Vamos aos procedimentos.
Abra o Windows PowerShell com privilégios de Administrador para realizar as tarefas a seguir.

Configurar IP Fixo

1. Primeiramente, você pode consultar as configurações de rede atuais. Para isso, execute o comando a seguir:

Get-NetIPConfiguration

Com esse comando obtemos as configurações de rede detalhadas da máquina. Preste atenção no nome do adaptador, pois ele será necessário para realizar a configuração de seu IP.

2. Para alterar o endereço IP de uma interface de rede, vamos usar o comando New-NetIPAddress. Veja o exemplo a seguir:

New-NetIPAddress 192.168.1.35 -InterfaceAlias Ethernet -DefaultGateway 192.168.1.1 -AddressFamily IPV4 -PrefixLength 24

As opções empregadas no comando foram as seguintes:

  • InterfaceAlias: Nome da interface de rede que terá a configuração alterada. No caso, será a interface de nome Ethernet.
  • DefaultGateway: Endereço IP do Gateway Padrão da rede (porta interna do roteador).
  • AddressFamily: Versão de IP a ser atribuíba - no caso, IPv4.
  • PrefixLength: Tamanho do prefixo a ser utilizada, que corresponde à máscara de sub-rede. Em nosso exemplo, usamos o valor 24, que equivale à máscara 255.255.255.0 (endereço classe C)

Veja o resultado da execução deste comando:

Alterar IP com Windows PowerShell

3. Após configurar o endereço IP, vamos configurar os endereços dos servidores DNS que serão utilizados. Para isso vamos usar o cmdlet Set-DnsClientServerAddress. Veja o exemplo a seguir:

Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 8.8.8.8

Neste exemplo, as opções significam:

  • InterfaceAlias: Nome da interface de rede que terá o DNS configurado
  • ServerAddresses: Endereços dos servidores DNS que serão atribuídos (separados por vírgulas, caso haja mais de um)

4. Após realizar as configurações, basta executar novamente o comando Get-NetIPConfiguration para verificar se elas foram realizadas com sucesso.

Get-NetIPConfiguration

Conferir configurações de rede com Windows PowerShell

Se você abrir as Propriedades do protocolo IPv4 nas Conexões de Rede do Painel de Controle, verá que os endereços aplicados com os comandos anteriores estarão configurados:

Conexões de Rede do Painel de Controle - Windows

Configurar IP dinâmico

5. Caso você queira voltar a usar IP dinâmico na interface, use o comando Set-NetIPInterface:

Set-NetIPInterface -InterfaceAlias Ethernet -DHCP enabled

E em seguida resete os endereços dos servidores DNS configurados manualmente:

Set-DnsClientServerAddress -InterfaceAlias Ethernet -ResetServerAddress

Além disso, vamos resetar a configuração do gateway padrão utilizado:

Remove-NetRoute -InterfaceAlias Ethernet

Se perguntado se deseja mesmo prosseguir com a remoção, digite "A" para confirmar e pressione enter. Então, reinicie o adaptador de rede com o comando a seguir:

Restart-NetAdapter -InterfaceAlias Ethernet

Após executar os comandos acima a estação deverá voltar a usar IP e demais configurações obtidas a partir do servidor DHCP da rede.

Configurar Horário de Logon no Active Directory via PowerShell

Site:http://www.bosontreinamentos.com.br/windows-powershell/configurar-horario-de-logon-no-active-directory-via-powershell/

Por: Gabriela Parente

Para o Site: Techmovie

 

Vamos usar um modelo (template) para o horário de logon, o que significa que teremos um usuário de teste de logon "teste01" já com o horário de logon desejado pré-configurado, e usaremos as informações desse usuário como modelo para os demais usuários que receberão a restrição de horários.

Nosso usuário atual de teste possui a seguinte configuração de horário de logon:

Horário de Logon no Windows Server 2012 ADDS

Neste modelo, o usuário não pode se logar aos sábados e domingos, e durante a semana o logon só é permitido entre as 08:00 e as 19:00, sendo negado nos demais horários.

Queremos aplicar essa mesma configuração a uma grupo de outros usuários sem ter de ajustar um por vez. Para isso usaremos um script do PowerShell associado a uma lista de usuários salva em um arquivo de texto. Vou chamar esse arquivo de "usuários.txt", e salvá-lo no diretório raiz (C:).

O arquivo usuários.txt deve conter os nomes de logon dos usuários que serão configurados, um por linha, como no exemplo:

 

Vamos ao script em si:

Comandos do script

Digite os comandos no Windows PowerShell ISE, executando-o como Administrador:

1 - Se necessário, importe o módulo do Windows PowerShell:

Import-Module ActiveDirectory -ErrorAction SilentlyContinue

2 - Vamos criar um array para armazenar os horários de logon configurados em nosso usuário de teste (teste01) que serão atribuídos aos demais usuários:

[array]$horaLogon = (Get-ADUser teste01 -Properties logonHours).logonHours

3 - Agora vamos ler o arquivo de texto que contém os nomes dos demais usuários que receberão os horários de logon, iterar sobre cada usuário e atribuir as configurações presentes no array $horaLogon (você deve estar o mesmo diretório onde o arquivo de usuários foi salvo, ou então fornecer o caminho completo até ele no comando):

foreach ($user in Get-Content C:usuários.txt) { 
Get-ADUser -Identity $user | Set-ADUser -Add @{logonhours=$horaLogon} 
}

Veja o script completo e pronto para ser executado no PowerShell ISE:

PowerShell ISE - Script de horário de logon

Agora basta executar o script e verificar se o horário de logon foi alterado corretamente para os usuários listados no arquivo.

Observação: Caso o horário de logon já esteja configurado para os usuários, você deve substituir a opção -Add do comando por -Replace, ficando assim:

foreach ($user in Get-Content C:usuários.txt) { 
Get-ADUser -Identity $user | Set-ADUser -Replace @{logonhours=$horaLogon} 
}

Verificando integridade de arquivos por meio de hashes via PowerShell

Site:http://www.bosontreinamentos.com.br/windows-powershell/verificando-autenticidade-de-arquivos-por-meio-de-hashes-via-powershell/

Por: Gabriela Parente

Para o Site: Techmovie

 

Comparando hashes de arquivos via PowerShell

Neste tutorial vamos mostrar como utilizar o Windows PowerShell para verificar a autenticidade de um arquivo baixado da Internet por meio do valor de hash disponibilizado no site de origem. Para isso faremos uso do cmdlet Get-FileHash.

1. Primeiro, calcule o hash com o cmdlet Get-FileHash:

Get-FileHash arquivo.iso -Algorithm Algoritmo-de-Hash | Format-List

Isso mostrará o hash no Powershell, de acordo com o algoritmo escolhido (MD5, SHA1, etc). Para salvá-lo em um arquivo de texto, faça o seguinte:

Get-FileHash arquivo.iso -Algorithm Algoritmo-de-Hash | Format-List > arquivo.txt

2. Copie o hash original do arquivo baixado (obtido no site de download) e execute o comando no formato a seguir para compará-lo com o hash presente no arquivo gerado no passo 1 (que também deve ser copiado):

"hash-original".equals("hash-calculado",1)

3. Se o valor retornado for 0, as duas strings são idênticas e, portanto, os hashes são iguais. Se o valor for diferente de zero, como -1, os hashes são diferentes e sua imagem iso está corrompida.

Exemplo:

Baixamos uma imagem iso de instalação do sistema operacional Debian GNU/Linux. Após o download, copiamos o hash MD5 presente no próprio site da distribuição, cujo valor é b3cd3e2e6a74b93ab41059c47c2b43fd  (imagem debian-8.5.0-i386-netinst.iso).

Vamos usar o PowerShell para verificar se essa imagem não foi corrompida durante o download. Para isso efetue os procedimentos a seguir:

1 - Vamos gerar o hash do arquivo que foi baixado e salvá-lo em um arquivo. Entramos no diretório de download do arquivo e emitimos o comando a seguir (o nome completo do arquivo é debian-8.5.0-i386-netinst.iso), especificando o hash adequado (MD5 no caso) e o nome de arquivo onde ele será salvo (hash-arquivo.txt):

Get-FileHash debian-8.5.0-i386-netinst.iso -Algorithm MD5 | Format-List > hash-arquivo.txt

Desta forma teremos o hash do arquivo que baixamos da Internet calculado e salvo no arquivo de texto hash-arquivo.txt. Veja o conteúdo do arquivo gerado contendo o hash calculado:

Hash MD% de arquivo criado no PowerShell

2 - Agora vamos efetuar a comparação do hash calculado com o obtido no site do distribuidor do arquivo que queremos verificar. Basta copiar e colar no prompt do PowerShell o hash original diretamente do próprio site, chamar o método equals() e passar como parâmetro para esse método o valor de hash contido no arquivo que acabamos de gerar (basta copiar e colar também):

Hash MD5 da iso do Debian Linux - Windows PowerShell

Copiando o Hash MD5 da iso do Debian Linux para verificação no Windows PowerShell

Não se esqueça das aspas, pois se trata de uma comparação entre duas strings. O valor "1" após a vírgula no segundo parâmetro passado ao método indica que a comparação deve ser feita ignorando o caso (não diferenciando maiúsculas de minúsculas). Se quiser fazer essa diferenciação, omita o segundo parâmetro do método. Execute o comando como segue:

"b3cd3e2e6a74b93ab41059c47c2b43fd".equals("B3CD3E2E6A74B93AB41059C47C2B43FD",1)

Cuidado com espaços no início e final da linha, pois podem comprometer toda a verificação. O resultado será True se ambas as strings forem idênticas, e False se houver diferença entre elas (ou seja, se os hashes forem diferentes). Veja o resultado obtido a seguir:

Método equals no Windows Powershell - Comparando hashes MD5

Veja que em nosso caso o resultado foi True, evidenciando que o arquivo baixado está íntegro, pois seu hash é idêntico ao fornecido no site do desenvolvedor / distribuidor.

Obviamente poderíamos fazer a comparação dos hashes visualmente, lendo caractere por caractere, mas usando o método equals() podemos efetuar a comparação mais rapidamente, sem o perigo de cometer erros, e além disso o método pode ser utilizado em script para automatizar esse tipo de tarefa.

Abaixo temos a lista de algoritmos suportados pelo cmdlet Get-FileHash:

  • SHA1
  • SHA256
  • SHA384
  • SHA512
  • MACTripleDES
  • MD5

 

Como desligar e reiniciar o Windows pela linha de comandos

Site:http://www.bosontreinamentos.com.br/windows-10/desligando-e-reiniciando-o-windows-pela-linha-de-comandos/

Por: Gabriela Parente

Para o Site: Techmovie

 

Desligar e reiniciar o Windows pela linha de comandos

O sistema operacional Microsoft Windows, incluindo a versão mais recente (Windows 10) possui um comando interno de nome shutdown que permite ao usuário efetuar o desligamento ou a reinicialização da máquina local, ou ainda de máquinas remotas (a partir da rede).

O comando pode ser executado tanto no prompt de comandos clássico (cmd) quanto no prompt do Windows PowerShell. Executando-se o comando com o argumento /? podemos ver sua ajuda completa e muitas informações sobre o uso do comando:

Ajuda do comando shutdown no Windows

Figura 01 - Ajuda do comando shutdown no Windows

Há várias opções de uso disponíveis para esse comando, sendo que destacamos as seguintes:

/l
   Fazer logoff
/s
   Desligar o computador
/r
   Reinicialização da máquina
/a
   Anular o desligamento do sistema
/m computador
   Especifica um computador de destino, diferente da máquina local, usando seu IP ou hostname (nome da máquina).
/t xxx
   Definir um período de tempo limite antes do desligamento do sistema, em xxx segundos
/i
   Exibir a interface gráfica de usuário do comando.

Exemplos

Vejamos alguns exemplos de aplicação dessas opções do comando shutdown:

1 - Desligar a máquina local (com tempo limite e aviso):

shutdown /s

2 - Reiniciar a máquina local (com tempo limite e aviso):

shutdown /r

3 - Desligar a máquina local, sem tempo limite e aviso:

shutdown /p

4 - Fazer logoff do sistema:

shutdown /l

5 - Definir que a máquina será desligada automaticamente em 10 minutos (600 segundos):

shutdown /s /t 600

6 - Desligar uma máquina remota de IP 192.168.1.103 (serviço de Registro Remoto e Firewalldevem estar configurados na máquina de destino, e o usuário deve ter permissão de administrador na máquina) com temporização de um minuto:

Devemos nos conectar à máquina remota com net use e então usar o shutdown para desligar ou reiniciá-la:

net use 92.168.1.103
[entrar com as credenciais do usuário da máquina remota]
shutdown /s /m 92.168.1.103 /t 60

7 - Cancelar o desligamento do sistema (durante o período de tempo limite, antes que o processo de desligamento se inicie!):

shutdown /a

Criar Pasta Base para os usuários no Windows Server 2012

Site:http://www.bosontreinamentos.com.br/windows-server-2012/criar-pasta-base-para-os-usuarios-no-windows-server-2012/

Por: Gabriela Parente

Para o Site: Techmovie

 

Criar Pasta Base para os usuários no Windows Server 2012

Siga o procedimento a seguir para configurar Pastas de usuário home (Pasta Base) no Windows Server 2012:

1. Criar uma pasta raiz no servidor chamada bases para armazenar as pastas home, e compartilhá-la na rede. Você pode usar o nome que quiser para esta pasta na verdade. É interessante manter essa pasta raiz oculta, usando o símbolo $ após o nome do compartilhamento. Exclua o grupo Todos das permissões, e adicione o grupo Usuários do Domínio, e dê ao grupo Controle Total sobre a pasta.

2. Configure também as permissões em nível de arquivo: Na guia Segurança, clique em Avançadas; Clique então em Desabilitar Herança, e logo em seguida escolha Converter as permissões herdadas em permissões explícitas no objeto. Aplicar. Remova também as duas entradas de de Usuários. Aplicar, OK e feche as propriedades da pasta. 3. Agora vá ao Active Directory, localize um usuário, clique com o botão direito e escolha Propriedades. Clique então na aba Perfil. Lá você encontrará a configuração para Pasta Base. Há duas opções: Caminho Local: Permite configurar uma pasta base na máquina Cliente. Conectar: Permite configurar uma pasta base no servidor. Escolha uma letra de unidade (para mapeamento automático), e digite o caminho da pasta base ( ome-servidorbases$%username%); clique em Aplicar e depois em OK. Obs. Use a variável %username% para especificar a pasta do usuário.

4. Testar: no servidor, verifique se foram criadas automaticamente pastas para os usuários dentro da pasta raiz bases$. No cliente, efetue logoff e logon, e verifique se a pasta base aparece mapeada automaticamente em Iniciar -> Computador. É possível aplicar cotas, triagem de arquivos, etc a esta pasta.

Introdução aos consoles de gerenciamento MMC – Windows Server 2012

Site:http://www.bosontreinamentos.com.br/windows-server-2012/introducao-aos-consoles-de-gerenciamento-mmc-windows-server-2012/

Por: Gabriela Parente

Para o Site: Techmovie

 

Introdução aos consoles de gerenciamento MMC

O Console de Gerenciamento Microsoft, ou MMC (Microsoft Mangement Console), juntamente com as ferramentas que o utilizam, nos auxiliam a gerenciar com mais facilidade computadores, usuários e muitos outros aspectos da rede local. Além disso, o MMC permite integrar ferramentas variadas no Windows de forma centralizada. O MMC é um framework para o gerenciamento de aplicações que que nos oferece uma interface unificada para a administração dos sistemas. O MMC não possui nenhuma função de gerenciamento inerente - ele utiliza componentes plugáveis, chamados de snap-ins, para fornecer a funcionalidade administrativa desejada.

Snap-ins

Para usarmos o MMC, adicionamos os snap-ins autônomos a um console MMC conforme nossa necessidade. Um console é um conteiner para snap-ins que utiliza o framework do MMC. Há literalmente dezenas de snap-ins pré-configurados que são disponibilizados pela Microsoft para uso em consoles personalizados. Geralmente, os consoles pré-configurados existentes no Windows Server 2012 possuem apenas um snap-in incorporado. Mas nós podemos criar nossos consoles contendo diversos snap-ins, como veremos logo adiante. Os snap-ins podem ter nós e componentes de extensão. Um nó define um nível dentro do console ou snap-in. Por exemplo, o console do meu servidor DHCP possui o nó raiz DHCP, e um nó de nível superior chamado srv100.boson.com, que define o servidor a ser gerenciado. Já elementos como Escopo e Filtros são componentes de extensão, que estendem a funcionalidade do snap-in. Cada entrada sob os nós de nível superior é uma  extensão, e mesmo as extensões podem ter suas próprias extensões. Algumas dessas extensões podem, inclusive, serem implementadas como snap-ins autônomos, e além disso, várias são opcionais e podem ser desabilitadas ou acrescentadas a um snap-in existente se desejado.

Modos do MMC

Um Console MMC possui dois modos de operação: modo de autor e modo de usuário. NO modo de autor podemos criar e alterar um console adicionando ou removendo snap-ins e também ajustando configurações do console. Já no modo de usuário o design do console é travado, e não é possível alterá-lo. Este é o modo padrão dos consoles pré-configurados do sistema, portanto podemos utilizá-los mas não alterá-los. Criamos nossos consoles personalizados no modo de autor, e ao finalizá-los devemos alterar para o modo de usuário, pois é neste modo que as ferramentas de console devem rodar, por questões de segurança. Há três níveis de modos de usuário:

  • Modo de usuário - acesso completo: Os usuários podem acessar todos os comandos de gerenciamento do MMC mas não podem adicionar nem tampouco remover snap-ins ou alterar propriedades do console;
  • Modo de usuário - acesso limitado, várias janelas: Os usuários podem acessar apenas as áreas da árvore do console que estavam visíveis quando o console foi salvo. Os usuários podem criar novas janelas mas não podem fechar janelas existentes;
  • Modo de usuário - acesso limitado, janela única: Os usuários podem acessar apenas as áreas da árvore do console que estavam visíveis quando o console foi salvo, e não podem abrir novas janelas.

Podemos abrir os consoles existentes por meio de seus nomes de arquivos, cuja extensão é .msc (microsoft console). Segue abaixo uma pequena lista de ferramentas disponíveis no servidor e seus respectivos comandos. Experimente abrir algumas delas digitando o comando correspondente na caixa executar e pressionando enter:

Ferramenta Comando
ADDS dsa.msc
Gerenciamento do Computador compmgmt.msc
DHCP dhcpmgmt.msc
Visualizador de Eventos eventvwr.msc
Gerenciamento de Política de Grupo gpmc.msc
Serviços services.msc
Windows Firewall wf.msc
Backup do Windows Server wbadmin.msc
Gerenciador do Hyper-V virtmgmt.msc
DNS dnsmgmt.msc

Para abrir um console existente no modo de autor clique com o botão direito do mouse sobre o ícone do console e escolha a opção Autor. Isso também é válido para os consoles pré-configurados do sistema. Podemos evitar que um usuário abra um console no modo de autor por meio de uma política de grupo localizada em Configuração do Usuário -> Políticas -> Modelos Administrativos -> Componentes do Windows -> Console de Gerenciamento Microsoft -> Impedir que o usuário entre no modo de autor. Neste mesmo local também é possivel configurar snap-ins permitidos ou restritos e restringir usuários a uma lista de snap-ins específicos.

Criando consoles MMC personalizados

Para criarmos consoles MMC personalizados, seguiremos os passos a seguir:

  1. Abrir e criar um novo console MMC
  2. Adicionar os snap-ins desejados
  3. Salvar o console no modo de usuário

Vamos criar um console personalizado de exemplo agora, contendo alguns snap-ins. Abra um novo console MMC. Para isso, abra a caixa Executar e digite o comando mmc, pressionando Enter logo após. Será aberto um console MMC vazio como o seguinte:

Console MMC Vazio no Windows Server

Console MMC Vazio no Windows Server

O console é dividido em três partes: o painel da esquerda é a árvore do console, que nos fornece uma lista hierárquica dos nós disponíveis no console, a partir do item Raiz do Console. O painel central é chamado de painel de detalhes, e seu conteúdo depende do item selecionado na árvore do console. E o painel do lado direito é o painel de ações, que contém atalhos para algumas das ações mais comuns no console, como chamar a ajuda e alterar o modo de exibição do painel. Vamos trabalhar com um console personalizado que nos permita gerenciar o Active Directory Domain Services, Gerenciamento de Diretivas de Grupo e Gerenciamento de Backup. Vamos começar renomeando a raiz do console para um nome mais significativo, como ADDS-GPO-Backup. Clique na Raiz do Console com o botão direito e escolha a opção Renomear. Digite o nome desejado e pressione Enter. Agora vamos adicionar os snap-ins desejados ao console. Clique no menu Arquivo -> Adicionar / remover snap-in. Será aberta a janela a seguir:Adicionar e remover snap-in no MMC do Windows Server 2012

Na lista Snap-ins disponíveis procure pelo snap-in Pasta. Selecione-o e clique no botão Adicionar na parte central da tela. Adicione três pastas destas e então clique em OK para fechar a janela. Veja o resultado a seguir:Console do ADDS com GPO e Backup

Renomeie as pastas para Active Directory, Backup e GPO.Console Active Directory mais GPO e Backup no Server 2012

 

Vamos adicionar os snap-ins principais agora. Clique no menu Arquivo -> Adicionar / remover snap-in. Clique no botão Avançada, do lado direito da tela, e então marque a opção "Permitir alteração do snap-in pai" na caixa de diálogo a seguir, e clique em OK:Alterando snap-in pai no console MMC

Aparecerá agora um combobox chamado Snap-in pai na janela principal do console. Selecione neste combobox a pasta "Active Directory"  e então procure na lista de snap-ins disponíveis o snap-in Usuários e Computadores do Active Directory. Selecione-o e clique em Adicionar. Repita o processo para as outras duas pastas, adicionando os snap-ins Backup do Windows Server (se perguntado, marque Computador Local) e Gerenciamento de Política de Grupo respectivamente. Veja o resultado abaixo:Snap-ins adicionados GPO Backup ADDS

Após adicionar os snap-ins é possível adicionar ou retirar extensões, clicando sobre o nome do snap-in na lista da Snap-ins selecionados e então clicando no botão "Editar extensões..." do lado direito, se desejado. Clique em OK para finalizar a criação do console MMC personalizado. Veja o console criado a seguir (clique nas setas ao lado das pastas na árvore do console para expandi-

las):

Console MMC Windows Server 2012 Backup GPO

O último passo necessário é salvar o console criado. Primeiramente, vamos ajustar o modo do console. Para isso, clique no menu Arquivo -> Opções, e na caixa de diálogo que será aberta, selecione o modo desejado. Vou utilizar o modo Modo de Usuário - acesso completo. Marque também a opção "Não salvar alterações nesse console" para impedir que o usuário salve alterações realizadas no console durante o uso. Você ainda pode alterar o ícone do console se quiser, clicando no botão "Alterar ícone" na parte superior da janela e selecionando um ícone do sistema ou carregando um ícone personalizado de outro local qualquer. Clique em Aplicar e em

OK para finalizar essas configurações:

Console MMC - Opções do Windows Server 2012

Para salvar, clique agora no Menu Arquivo -> Salvar, e forneça o nome desejado ao console. Eu salvei na área de trabalho do sistema, para facilitar na hora de procurar e abrir esse console. É isso aí! Console MMC personalizado criado com sucesso. Para usá-lo, basta abri-lo com um clique duplo simples, e se você quiser, pode criar atalhos para esse console em outras partes do sistema. Lembre-se de que ao abrir esse console, ele estará no modo de usuário, e não será possível alterar sua estrutura. Se precisar alterar algo, abra-o no modo de autor com o botão direito do mouse.  

Backup do Active Directory no Windows Server 2012

Site:http://www.bosontreinamentos.com.br/windows-server-2012/backup-e-restauracao-do-active-directory-no-windows-server-2012/

Por: Gabriela Parente

Para o Site: Techmovie

 

Backup do Active Directory no Windows Server 2012 (Estado do Sistema)

Neste tutorial vamos mostrar como realizar um backup do Active Directory no Windows Server 2012. Para isso efetuamos um backup de um item denominado Estado do Sistema. O Estado do Sistema (System State) contém diversos itens, tais como:

  • Registro do Sistema
  • Banco de dados COM+
  • Serviços de Certificados
  • Active Directory
  • SysVol (Políticas de Grupo e Scripts de Logon)
  • Arquivos de boot

Com um backup do estado do sistema você será capaz de restaurar em um servidor além do Active Directory, também o Registro do Windows, sites do IIS e outros itens. É possível inclusive restaurar o estado do sistema em um servidor diferente, desde que tenha o hardware idêntico ao do servidor de onde o backup se originou.

Fazendo backup do Estado do Sistema

Abra o recurso de Backup do Windows Server clicando em Ferramentas -> Backup no painel de gerenciamento do servidor. No Painel de Ações, clique no item Backup único...para abrir o assistente de backup:Console de Backup Wbadmin no Windows Server 2012 R2Na tela Opções de backup escolha a opção "Opções diferentes" para que possamos especificar os itens de backup desejados, e clique no botão Avançar:Selecionar opções de Backup no Windows Server 2012 R2Na tela Selecionar Configuração de Backup escolha a opção Personalizar e clique no botão Avançar:Selecionar configuração de Backup no Windows Server 2012 R2Na tela Selecionar Itens para Backup clique no botão Adicionar Itens para que possamos escolher os itens que farão parte de nosso backup (no caso, o Estado do Sistema):Selecionar itens de backup do estado do sistema no Windows Server 2012 R2Na janela Selecionar Itens, marque a checkbox Estado do Sistema e clique no botão OK:Selecionar itens de backup do estado do sistema no Windows Server 2012 R2Após adicionar o item Estado do Sistema, clique no botão Avançar para prosseguir com o backup:Itens de backup do estado do sistema no Windows Server 2012 R2Na tela seguinte vamos especificar o tipo de destino. Como vamos utilizar uma unidade conectada diretamente ao servidor, selecione a opção "Unidades locais". Clique em Avançar:Tipo de Destino do backup do estado do sistema no Windows Server 2012 R2Na tela Selecione o destino do backup, escolha a unidade que receberá os dados a serem salvos. No caso, será a unidade Backup (N:). Clique em Avançar para prosseguir:Destino do backup do estado do sistema no Windows Server 2012 R2Na tela de Confirmação, verifique se o item Estado do Sistema está listado na janela de Itens do backup, e clique no botão Backup para iniciar a cópia de segurança dos dados do ADDS:Confirmando o backup do estado do sistema no Windows Server 2012 R2Aguarde enquanto o backup é realizado. Esse processo pode levar vários minutos, devido ao volume de dados, e pode ser acompanhado na janela Progresso do backup:Finalizando o backup do estado do sistema no Windows Server 2012 R2Quando o backup estiver finalizado, você verá a mensagem Concluído no status da janela de Progresso do backup. Clique no botão Fechar para encerrar o processo.Finalizando o backup do estado do sistema no Windows Server 2012 R2Excelente! Backup do Active Directory /  do Sistema realizado com sucesso! Você pode conferir os arquivos de backup que foram criados olhando o conteúdo do drive de destino utilizado. Em meu caso foram copiados cerca de 7,76 GB de dados:Verificando o backup do estado do sistema no Windows Server 2012 R2

O Espectro Eletromagnético

Site: http://www.bosontreinamentos.com.br/redes-wireless/o-espectro-eletromagnetico/

Por: Gabriela Parente

Para o Site: Techmovie

 

O Espectro Eletromagnético consiste em uma classificação das ondas eletromagnéticaspelo seu comprimento de onda, em ordem crescente, mostrando a aplicação das diversas frequências mostradas na forma de uma figura ou gráfico, como se pode ver a seguir:

Diagrama do Espectro Eletromagnético

Quanto maior a frequência de uma onda eletromagnética, menor será seu comprimento de onda e mais energética ela será, oscilando um número maior de vezes por segundo.

Perceba que a luz visível também é uma forma de onda eletromagnética, assim como as ondas de rádio AM e FM, Raios infravermelhos e ultravioletas, raios-x e radiação gama.

Uma tabela com a nomenclatura dos vários comprimentos de onda presentes no espectro eletromagnético e suas respectivas frequências, comprimentos de onda e energias associadas é mostrada a seguir:

Espectro Eletromagnético - Frequências

E abaixo temos as definições para as siglas apresentadas na tabela anterior, na coluna de Classes:

Sigla Significado Tradução Livre / Aproximada
γ Gamma Rays Raios Gama
HX Hard X-Rays Raios X Hard
SX Soft X-Rays Raios X Soft
EUV Extreme Ultraviolet Ultravioleta Extremo
NUV Near Ultraviolet Ultravioleta Próximo
NIR Near Infrared Infravermelho Próximo
MIR Mid Infrared Infravermelho Médio
FIR Far Infrared Infravermelho Distante
EHF Extremely High Frequency Frequência Extremamente Alta
SHF Super High Frequency Frequência Super Alta
UHF Ultra High Frequency Frequência Ultra Alta
VHF Very High Frequency Frequência Muito Alta
HF High Frequency Frequência Alta
MF Medium Frequency Frequência Média
LF Low Frequency Frequência Baixa
VLF Very Low Frequency Frequência Muito Baixa
ULF Ultra Low Frequency Frequência Ultra Baixa
SLF Super Low Frequency Frequência Super Baixa
ELF Extremely Low Frequency Frequência Extremamente Baixa

Em nossos tutoriais iremos nos focar nas ondas eletromagnéticas de frequência na faixa das micro-ondas (“microwave”), compreendidas entre as faixas de UHF e SHF (entre 2.4 e 5 GHz), pois a transmissão de dados em redes sem fio se dá nessas faixas de frequências, quase que exclusivamente.

Redes Wireless – Ondas Eletromagnéticas

Site: http://www.bosontreinamentos.com.br/redes-wireless/introducao-as-redes-sem-fio-wireless/

Por: Gabriela Parente

Para o Site: Techmovie

 

Redes Sem Fio e Ondas Eletromagnéticas

Uma rede wireless (“sem fio”, em inglês) é uma rede de dispositivos interconectados sem o uso de cabos metálicos ou ópticos, na qual a transmissão de sinais se dá por meio de ondas eletromagnéticas transmitidas e recebidas pelos equipamentos envolvidos.

O princípio de transmissão de sinais em uma rede sem fio é similar ao da transmissão de voz e música por uma rádio FM: os dados são modulados em uma onda portadora, que é transmitida por uma antena transmissora e captada por uma antena receptora conectada ao equipamento remoto, o qual processará a informação recebida e a disponibilizará para o usuário.

Ondas Eletromagnéticas

Uma definição livre de ondas eletromagnéticas é descrita a seguir (retirada de fontes na Internet):

“A radiação eletromagnética é uma oscilação, em fase, dos campos elétricos e magnéticos, que, autossustentando-se, encontram-se desacoplados das cargas elétricas que lhe deram origem.

As oscilações dos campos magnéticos e elétricos são perpendiculares entre si e podem ser entendidos como a propagação de uma onda transversal, onde as oscilações são perpendiculares à direção do movimento da onda (como as ondas da superfície de uma lâmina de água), que pode se deslocar através do vácuo, ou entendidos como o deslocamento de pequenas partículas, dentro do ponto de vista quântico, chamadas fótons.

A radiação eletromagnética são ondas que se auto-propagam pelo espaço. Parte de todo o espectro consegue ser interpretada através do olho dos diversos animais e, para cada espécie, denomina-se essa fatia de luz de luz visível. A radiação eletromagnética compõe-se de um campo elétrico e um magnético, que oscilam perpendicularmente um ao outro e à direção da propagação de energia.

A radiação eletromagnética é classificada de acordo com a frequência da onda, que em ordem decrescente da duração (período T) da onda são: ondas de rádios, micro-ondas, radiação terahertz (Raios T), radiação infravermelha, luz visível, radiação ultravioleta, Raios-X e Radiação Gama.”

Propriedades das ondas eletromagnéticas

As ondas eletromagnéticas possuem três propriedades principais:

  • Amplitude
  • Frequência
  • Fase

Amplitude

A amplitude é a “altura” da onda, ou seja, a medida do valor de pico da energia transmitida. Quanto maior a amplitude de uma onda, maior será sua energia intrínseca.

Amplitude de Onda Eletromagnética

Amplitude de uma Onda Eletromagnética

 

Frequência

A frequência de uma onda se refere ao número de ciclos completos que ocorrem a cada segundo. Por exemplo, se uma onda oscila uma vez por segundo, sua frequência é de um ciclo por segundo; se ela oscila mil vezes por segundo, sua frequência é de mil ciclos por segundo.

Na prática, usamos a unidade de medida denominada Hertz (abreviado por Hz) para representar a frequência de uma onda, sendo que 1 Hz = 1 ciclo por segundo. Então:

Onda com mil oscilações por segundo = Frequência de 1000 Hz.

Podemos (e devemos!) usar prefixos multiplicadores para representar os valores de frequências, pois na maioria das vezes são valores muito altos, o que dificulta a leitura sem a abreviação correta. Os prefixos mais utilizados são os seguintes:

  • Kilo (k)  = multiplicado por mil (1000)
  • Mega (M) = multiplicado por um milhão (1000 000)
  • Giga (G) = multiplicado por um bilhão (1000 000 000)
  • Tera (T) = multiplicado por um trilhão (1000 000 000 000)
  • Peta (P) = multiplicado por um quatrilhão (1000 000 000 000 000).

Como exemplo, podemos citar um sinal de um telefone sem fio que opere na frequência de 900 MHz, o que equivale a 900 milhões de ciclos por segundo.

As Frequências de duas ondas distintas podem ser vistas na figura a seguir. Note a diferença de frequência entre as duas ondas representadas, sendo a primeira de frequência mais alta do que a segunda e, portanto, de comprimento de onda (tamanho da onda) menor:

Frequência de Onda Eletromagnética

Frequências de Ondas Eletromagnéticas

 

Fase

A fase de uma onda pode ser entendida como a posição relativa da onda em relação a um ponto específico de outra onda; assim, uma onda pode estar em fase com outra (ondas idênticas), ou defasada de x graus, como por exemplo ondas defasadas em 180º (ondas totalmente inversas entre si).

A fase é uma característica muito importante em diversas áreas de pesquisa e tecnologia de ondas eletromagnéticas.

Na figura a seguir vemos o deslocamento de fase que ocorre entre duas ondas eletromagnéticas de igual amplitude e frequência, chamado em inglês de “Phase Shift”. Note que a segunda onda inicia em posição diferente da primeira, 90º defasada:

Fase de uma Onda Eletromagnética

Deslocamento de Fase em Ondas Eletromagnéticas

 

 

Instalação do Hyper-V como uma Função do Windows Server 2008 R2

Site: http://www.bosontreinamentos.com.br/windows-server-2008-r2/instalacao-do-hyper-v-como-uma-funcao-do-windows-server-2008-r2/

Por: Gabriela Parente

Para o Site: Techmovie

 

Instalação do Hyper-V como uma Função do Windows Server 2008 R2No primeiro artigo sobre Virtualização com Hyper-V aprendemos a istalar o servidor Hyper-V Server 2008 R2 Core, sem interface gráfica. É possível também instalar o Hyper-V como uma função em um servidor Windows Server 2008 R2 com GUI. Para isto, siga os passos abaixo: Abra o Gerenciador de Servidores, clique em Funções e escolha Adicionar Função. Será aberta a tela abaixo. Marque a opção “Hyper-V” e clique em “Próximo”.

hyperv-GUI-01

Na próxima tela, leia a Introdução ao Hyper-V e identifique quais interfaces de rede em seu servidor serão utilizadas para configurar as redes virtuais do Hyper-V. Se desejar informações adicionais, clique nos links abaixo da seção “Informações Adicionais”. Clique em “Próximo”.

hyperv-GUI-02

Agora você irá selecionar os adaptadores de rede que serão utilizados para compor as redes virtuais. Selecione todos os adaptadores desejados clicando na caixa de seleção ao lado de cada um, e clique em “Próximo”:

hyperv-GUI-03

Na próxima tela, revise as opções de instalação e, se tudo estiver de acordo com o desejado, clique em “Instalar”.hyperv-GUI-04

Aguarde enquanto o Gerenciador do Hyper-V é instalado.hyperv-GUI-05

Após a instalação, verifique os resultados e clique em “Fechar” para encerrar o assistente:hyperv-GUI-06

Será necessário reiniciar o servidor para concluir o processo de instalação do Hyper-V. Na caixa de diálogo “Deseja reiniciar agora?” clique em “Sim”:hyperv-GUI-07Após a reinicialização, o Hyper-V continuará a ser configurado. Aguarde enquanto o

processo é concluído:

hyperv-GUI-08

Na tela “Resultados da Instalação”, verifique se aparece a mensagem “Instalação bem-sucedida” e clique em “Fechar” para encerrar o processo. Reinicie o servidor mais uma vez para finalizar o procedimento.hyperv-GUI-09

VMware Workstation 9 – Criar e Configurar Máquina Virtual

Site: http://www.bosontreinamentos.com.br/videos/vmware-workstation-9-criar-e-configurar-maquina-virtual/

Por: Gabriela Parente

Para o Site: Techmovie

 

 

VMware Workstation 9 – Criar e Configurar Máquina Virtual

VMware Workstation 9 - Criar e Configurar Máquina Virtual

Neste tutorial vou mostrar como usar o software VMware Workstation 9 para criar uma nova máquina virtual (VM). O VMware Workstation 9 pode ser baixado no site da VMware:VMware Workstation 9 - InstalaçãoÉ necessário fazer um registro no site para poder efetuar o download do software, em versão de avaliação (o software é pago). Após baixá-lo e instalá-lo, vamos à criação de uma VM.VMware Workstation 9 Download  1. Abra o software para ter acesso à sua interface.VMware Workstation 9 Interface2. No painel do lado direito, temos diversas opções, como criar uma nova máquina virtual, abrir uma VM existente, virtualizar uma máquina física, editar redes virtuais, atualizações de software, entre outras. Clique em "Create a New Virtual Machine" para criarmos uma nova máquina virtual:VMware Workstation Criando Máquina Virtual3. Será aberto o Assistente para novas Máquinas Virtuais. Marque a opção Custom (Advanced) para criarmos uma VM personalizada, e clique em Next:VMware Workstation 9 - Criando Máquina Virtual4. Na próxima tela é possível escolher o nível de compatibilidade do hardware virtual. Vou manter as configurações recomendadas e clicar em Next para prosseguir:VMware Workstation 9 - Criando Máquinas Virtuais5. Agora vamos inserir a mídia para instalação posterior do sistema operacional. Você pode usar um CD/DVD físico escolhendo a opção Installer Disc, ou uma imagem .iso com a opção Installer disc image file (iso), que é a opção que vamos escolher. Clique no botão Browse... para navegar no sistema de arquivos de seu computador e localizar a imagem iso desejada. Vou usar uma imagem do Ubuntu Linux 12.10 que possuo na minha máquina. Será utilizada a opção Easy Install, na qual o próprio VMware Workstation irá preencher alguns dados durante a instalação do sistema, como nome de usuário e senha. Também é possível deixar essa etapa para depois, escolhendo a opção I will install the operating system later. Clique em Next para prosseguir:VMware Workstation 9 - Instalando o Ubuntu Linux6. Preencha os dados requisitados - NOme completo, nome do usuário e senha. O que será pedido nesta tela vai depender muito do sistema operacional que foi selecionado na etapa anterior. Clique em Next.VMware Workstation 9 - Instalação do Ubuntu Linux7. Dê um nome para a máquina virtual, e especifique o local onde ela será salva. Clique em Next.VMware Workstation 9 - Instalar Linux Ubuntu8. Na próxima tela, configure o número de processadores virtuais e o número de núcleos de processamento por CPU. Clique em Next.VMware Workstation 9 - Instalação de Máquina Virtual Ubuntu9. Agora é a vez da Memória RAM. Configure a quantidade de RAM desejada para a máquina virtual (respeitando os limites de seu computador físico) e clique em NextVMware Workstation 9 - Configurando memória RAM10. Vamos agora escolher o tipo de rede a ser usada pela VM. Há quatro opções disponíveis:
  • Use bridged networking - A máquina virtual terá acesso direto à rede Ethernet externa, com seu próprio IP inclusive. É a opção recomendada.
  • Use network address translation (NAT) - A máquina virtual terá acesso à rede externa por meio do IP do computador hospedeiro (usada para compartilhar internet com a VM)
  • Use host-only networking - A máquina virtual só terá acesso à máquina hospedeira via rede privada virtual.
  • Do not use a network connection - Sem conexão de rede na máquina virtual.
Escolha a opção Use bridged networking e clique em Next.VMware Workstation 9 - Configurando Rede11. Agora selecione o tipo de controladora de disco a ser usada. Os tipos disponíveis são IDE e SCSI. Recomendamos sempre usar SCSI, a nçao ser quando não disponível. Clique em Next.VMware Workstation 9 - Controladora de Disco SCSI12. Vamos agora configurar o disco rígido virtual a ser usado. Como ainda não temos nenhum, vamos criá-lo. Selecione a opção Create a new virtual disk e clique em Next.WMware Workstation 9 - Criando Disco Rígido Virtual13. Escolha o tipo de HD virtual - de acordo com o tipo de controladora instalada. Marque SCSI e clique em Next.VMware Workstation 9 - Disco SCSI14. Agora especifique a capacidade do disco rígido virtual. Vou usar os 20 GB recomendados. Não marque a opção Allocate all disk space now pois isso irá alocar os 20 GB de uma vez, tomando muito tempo no processo e desperdiçando espaço do disco físico da máquina hospedeira. Deixe as outras opções como estão, e clique em Next.VMware Workstation 9 - Discos virtuais15. Na próxima tela, especifique o local onde o HD virtual será salvo. Vou deixar o local padrão (pasta do VMware Workstation). Clique em Next.VMware Workstation 9 - DIsco vmdk  16. Quase tudo pronto. Ainda é possível alterar ou acrescentar alguns itens de hardware clicando no botão Customize Hardware. Clique nesse botão para ver as opções disponíveis:VMware Workstation 9 - Sumário de Hardware17. É possível alterar todosos parâmetros de hardware já configurados, e acrescentar outros, como mais placas de rede virtuais, controladoras de discos, HDs, drives de DVD, placa de som, controladoras USB, etc.VMware Workstation 9 - Customize Hardware  18. Clique no botão Add... e veja quais itens de hardware podemos escolher para adicionar, como por exemplo uma nova interface de rede. Como não vamos adicionar mais nenhum item de hardware nesse tutorial, cancele a operação e clique em Close para fechar a tela Customize Hardware:VMware Workstation 9 - Adicionar Interface de Rede  19. Tudo pronto. Vou desmarcar a opção Power on this virtual machine after creationpara que a máquina virtual não seja inicializada logo após ter sido criada. Clique em Finish para finalizar o processo.VMware Workstation - FInalizar Configuração de Hardware20. Aí está a máquina virtual criada. Você ainda pode alterar seu hardware clicando na opção Edit virtual machine settings, ou pode inicializá-la para começar a instalação do sistema operacional clicando em Power on this virtual machine. Tudo pronto agora! Note que o sistema operacional ainda deve ser instalado para que seja possível suar a máquina virtual.VMware Workstation 9 - Máquina Virtual Ubuntu Linux criada

XenServer – Criar nova máquina virtual em um Pool de servidores

Site: http://www.bosontreinamentos.com.br/xenserver/xenserver-criar-nova-maquina-virtual-em-um-pool-de-servidores/

Por: Gabriela Parente

Para o Site: Techmovie

 

XenServer - Criar nova máquina virtual em um Pool de servidores

Vamos aprender a criar uma máquina virtual no XenServer, desta vez em um Pool de servidores. O processo é, basicamente, o mesmo de criar as VMs em um servidor isolado, porém devemos selecionar o Pool e não os servidores na hora de criar a máquina virtual.
Vou usar dois servidores XenServer conectados em Pool, rodando a versão 6.2 do sistema, ambos acessando (via pool) um repositório de VHDs NFS criado em um servidor FreeNAS.

Para começar o processo, a partir do XenCenter (em uma estação de gerenciamento), clique no nome do Pool com o botão direito do mouse e selecione a opção New VM...

Criar VM no Pool do XenServer

Para este exemplo vou criar uma máquina virtual do Windows Server 2012. Vou selecionar essa opção de sistema na tela Template. Clique em Next >:

Criar VM no Pool do XenServer

Agora damos um nome para a VM. Vou usar o nome sugerido, Windows Server 2012 (64-bit), mas você pode dar o nome que quiser. Clique em Next >

Criar VM no Pool do XenServer

Agora vamos localizar o instalador do sistema. Ele pode estar em uma mídia inserida no drive do servidor, ou em um repositório de imagens .iso. Vou usar a imagem iso que possuo no repositório de nome Iso teste.

Criar VM no Pool do XenServer

Veja a imagem selecionada. Clique em Next >:

Criar VM no Pool do XenServer

Na próxima tela devemos selecionar o Home Server para a VM. Possuo dois servidores nesse pool, de modo que posso escolher onde a máquina virtual será executada. Porém, vou escolher a primeira opção, "Don´t assign this VM a home server", de modo que a máquina virtual será sempre executada no servidor que tiver os recursos de hardware necessários no momento, automaticamente. Clique em Next >:

Criar VM no Pool do XenServer

Agora configuramos o número de processadores virtuais (vCPUs) e a memória RAM reservadas para a máquina virtual. Usarei uma vCPU e 2 GB de RAM. Clique em Next >:

Criar VM no Pool do XenServer

Agora vamos configurar o storage da VM. Possuo um repositório VHD configurado, usando um servidor FreeNAS, e a VM será armazenada nele. Porém, por padrão o XenServer me sugere usar um disco de 24 GB, o que é muito pouco. Clique no botão Properties para editar esse disco, aumentando seu tamanho:

Criar VM no Pool do XenServer

Vou aumentar o tamanho do VHD (Virtual Hard Disk) para 50 GB. Você pode usar o tamanho que quiser, desde que haja espaço livre no disco físico. Clique então em OK.

Criar VM no Pool do XenServer

O próximo passo é configurar a rede na máqiuna virtual. Selecione as interfaces de rede desejadas (vou usar duas interfaces, de um total de quatro que tenho nesse servidor) e clique em Next >:

Criar VM no Pool do XenServer

Tudo pronto para finalizar a criação da máquina virtual. Revise as configurações escolhidas e, se tudo estiver correto, clique em Create Now. Vou deixar a opção Start the new VM automatically marcada para iniciar a máquina virtual logo na sequência, assim já farei a instalação do SO.

Criar VM no Pool do XenServer

A máquina virtual então será inicializada. Selecione-a no painel do lado esquerdo no XenCenter, e clique na guia Console para visualizar a tela do Windows Server:

Criar VM no Pool do XenServer

Agora é só realizar a instalação do sistema operacional normalmente:

Criar VM no Pool do XenServer

E após alguns minutos, temos o sistema virtual do Windows Server 2012 instalado e pronto para ser utilizado:

Criar VM no Pool do XenServer

 

Processo concluído com sucesso! 

Como instalar o Oracle VirtualBox no Windows para criação de Máquinas Virtuais

Site: http://www.bosontreinamentos.com.br/virtualizacao/como-instalar-o-virtualbox-no-windows-para-criacao-de-maquinas-virtuais/

Por: Gabriela Parente

Para o Site: Techmovie

 

Baixando e Instalando o Oracle VirtualBox no Windows

Oracle VirtualBox é um software para virtualização que pode ser utilizado tanto em ambientes corporativos quanto em ambientes domésticos. É um produto que possui inúmeros recursos para criação de máquinas virtuais, suportando praticamente qualquer sistema operacional convidado que você deseje instalar - incluindo inúmeras versões do Windows, distribuições Linux, BSD, Solaris, Minix, OS/2 e até mesmo Mac OS X (com algumas modificações).

O VirtualBox é um software Open Source, sendo distribuído livremente de acordo com os termos da licença GNU GPL (General Public License), versão 2. Ele pode ser executado em ambientes Windows, Linux, Mac e Solaris.
Nesta primeira parte de nosso tutorial sobre o VirtualBox vamos mostrar como obter o software e instalar o produto em uma máquina com Windows. Os passos são muito similares caso você queira instalar o programa em outro sistema, como uma distro Linux ou o Apple OS X.

Baixando o VirtualBox

O site para download do software é www.virtualbox.org, cuja página inicial você vê na figura abaixo (acessado em 29/04/16). Veja que bem no centro da página há um botão grande para download do VirtualBox, cuja versão mais atual é a 5.0. Clique nele para ir à página de downloads e baixar o programa:

01-máquina-virtual-virtualbox

Uma vez na página de downloads, selecione a versão desejada do software. Como pretendemos instalá-lo no Windows, você deve clicar no link "x86/amd64", na linha onde se lê "VirtualBox 5.0.20 for Windows hosts". Caso deseje instalar o programa em outro sistema operacional, procure na lista a versão correspondente ao seu sistema. Há versões disponíveis para Mac OS X, Linux e Oracle Solaris:

02-máquina-virtual-virtualbox

 

Clique em Download para baixar o programa:

03-máquina-virtual-virtualbox

 

E aguarde enquanto o download é realizado. Esse processo pode demorar alguns minutos, dependendo da velocidade de sua conexão. O arquivo baixado tem 108 MB de tamanho.

04-máquina-virtual-virtualbox

 

Instalando o VirtualBox

Após terminar de baixar o programa, execute o arquivo obtido para abrir o Assistente de Instalação do Oracle VirtualBox (Setup Wizard). Clique no botão Next para iniciar o processo de instalação:

05-máquina-virtual-virtualbox

 

Na tela seguinte é possível selecionar quais recursos do programa serão instalados ou não. Para uma instalação padrão não é necessário alterar nenhum parâmetro nesta tela. Apenas clique em Next para prosseguir:

06-máquina-virtual-virtualbox

 

Na próxima tela há três opções que podem ser ativadas - criação de atalhos no Desktop (Área de Trabalho) e na barra de tarefas e registrar associação de arquivos. Eu desmarquei a segunda opção (Create a shortcut in the Quick Launch Bar) para não poluir minha barra de tarefas. Clique em Next para prosseguir:

07-máquina-virtual-virtualbox

 

Na tela seguinte aparecerá um aviso sobre as interfaces de rede. Por padrão, ao instalar o VirtualBox, as conexões de rede do computador são desativadas temporariamente enquanto o recurso de rede do programa é configurado. Caso você esteja realizando algum download no momento, espere até que o download esteja finalizado, sob pena de perder os arquivos que está baixando. Clique em Yes para prosseguir com a instalação então.

08-máquina-virtual-virtualbox

 

Pronto para instalar. Clique no botão Install para que o Oracle VirtualBox seja instalado de acordo com as informações especificadas nas telas anteriores:

09-máquina-virtual-virtualbox

 

Caso a caixa de diálogo Controle de Conta de Usuário apareça, clique em Sim para permitir que o VirtualBox seja instalado no computador. Note que o fornecedor verificado será detectado com sendo Oracle Corporation.

10-máquina-virtual-virtualbox

 

Agora aguarde enquanto o VirtualBox é instalado em seu computador:

11-máquina-virtual-virtualbox

 

No meio do processo de instalação será perguntado se deseja instalar também os controladores USB no programa. Marque a caixa 'Sempre confiar em software da "Oracle Corporation"', do lado esquerdo da caixa de diálogo, e clique em "Instalar" para instalar esses drivers. Eles são importantes para que você possa acessar dispositivos USB a partir das máquinas virtuais, como cartões de memória e pendrives.

12-máquina-virtual-virtualbox

 

Após aguardar mais alguns instantes, a instalação do VirtualBox será finalizada. Deixe marcada a opção "Start Oracle VM VirtualBox 5.0.20 after installation" para que o programa seja aberto após finalizar o instalador, e clique no botão "Finish" para encerrar o processo de instalação.

13-máquina-virtual-virtualbox

 

Pronto! Oracle VirtualBox instalado com sucesso! Veja a tela inicial do Gerenciador do programa, onde criamos, configuramos e até excluímos as máquinas virtuais:

14-máquina-virtual-virtualbox

 

Oracle VirtualBox – Criando uma Máquina Virtual

Site: http://www.bosontreinamentos.com.br/virtualizacao/oracle-virtualbox-criando-uma-maquina-virtual/

Por: Gabriela Parente

Para o Site: Techmovie

 

Nesta segunda parte de nosso tutorial sobre o Oracle VM VirtualBox, vamos mostrar como proceder para criar uma nova máquina virtual a partir do Gerenciador, a qual será utilizada posteriormente para a instalação de um sistema operacional selecionado.

Para começar, abra o Gerenciador do Oracle VM VirtualBox. Abaixo podemos visualizar o Gerenciador, e você pode ver que no meu sistema já existem diversas máquinas virtuais criadas - você pode criar quantas máquinas virtuais precisar, respeitando sempre o limite de espaço em disco rígido disponível no seu computador físico.

Para criar uma nova máquina virtual, clique no botão "Novo", no canto superior esquerdo da tela:

 

Resultado de imagem para oracle vm virtualbox

Será aberto um assistente de criação de máquina virtual. Na primeira caixa de diálogo você deve entrar com um nome para sua máquina virtual, selecionar o tipo de sistema operacional, e a versão que será instalada. No meu caso, selecionei o tipo Microsoft Windows e a versão Windows 2012 (64-bit). Configure de acordo com o sistema que você pretende instalar, e clique em Próximo para prosseguir.

Resultado de imagem para criar sistema operacional virtual box windows server

Na tela seguinte você irá ajustar a quantidade de memória RAM  ser destinada à sua máquina virtual. Cuidado para não destinar memória demais, pois como a RAM é compartilhada entre seu computador físico e a VM, existe um limite de uso para que a VM não interfira no funcionamento do seu sistema hospedeiro. Eu configurei um pouco menos de 2 GB para a VM (1966 MB, como se pode ver na figura). Você pode alocar a memória RAM clicando e arrastando a barra azul ou simplesmente digitando a quantidade de memória desejada na caixa do lado direito. Ajuste de acordo com sua necessidade e disponibilidade, e então clique no botão "Próximo" para prosseguir:

Resultado de imagem para criar maquina  virtual box windows server

Agora iremos criar um disco rígido virtual, o qual irá receber a instalação do sistema operacional posteriormente. Há três opções disponíveis nesta tela:

  • Não acrescentar um disco rígido virtual: Cria a máquina sem um HD instalado
  • Criar um novo disco rígido virtual agora: Instala um novo HD para particionamento e formatação.
  • Utilizar um disco rígido virtual existente: Permite usar na VM um HD virtual já existente, criado em outro momento.

Vou usar a opção padrão pré-selecionada, "Criar um novo disco rígido virtual agora", pois ainda não temos um disco para esse sistema. Clique então no botão "Criar":

04-virtualbox-criar-VM

 

Na tela seguinte você pode escolher o tipo de arquivo de disco rígido virtual. É possível criar arquivos compatíveis com diversos produtos de virtualização, como VHD para o Microsoft Hyper-V ou Citrix XenServer, VMDK para sistemas VMware ou HDD para Parallels. Aqui, vamos manter o tipo padrão do VirtualBox, que é o VDI (VirtualBox Disk Image). Clique em Próximopara continuar:

05-virtualbox-criar-VM

 

Na próxima tela você deve fornecer um nome para o arquivo de disco rígido virtual, e a localização no disco físico deste arquivo. Digite o nome desejado, ou mantenha o padrão sugerido, e ajuste o tamanho do seu disco rígido virtual de acordo com a necessidade de seu sistema, e disponibilidade de espaço em disco físico. Vou alocar 35 GB para esse HD; aloque o que for necessário, e clique em "Criar" para finalizar o processo.

06-virtualbox-criar-VM

 

Processo finalizado. A máquina virtual foi criada com sucesso, e você pode vê-la na lista de VMs do Gerenciador do Oracle VM VirtualBox. Porém, note que o sistema operacional ainda não foi instalado, o que deve ser feito posteriormente - o que fizemos até aqui equivale, grosso modo, a montar um computador físico a partir de componentes selecionados.

Máquina Virtual no Oracle VirtualBox

 

Introdução à Virtualização

Site: http://www.bosontreinamentos.com.br/virtualizacao/introducao-virtualizacao/

Por: Gabriela Parente

Para o Site: Techmovie

 

O que é Virtualização

Neste artigo vamos falar sobre uma das tecnologias mais importantes e promissoras da atualidade: a Virtualização. Essa tecnologia - ou conjunto de tecnologias, para ser mais exato - encontra aplicação em inúmeras áreas da TI moderna, sendo o pilar sobre o qual, por exemplo, a Computação em Nuvem é constituída. A finalidade da Virtualização é fornecer uma versão virtual de tecnologias essenciais em computação, como Hardware, Armazenamento e Redes.

  • Hardware: Essa é a aplicação mais comum da tecnologia de Virtualização, na qual um sistema operacional é instalado sobre outro sistema, com seus recursos de hardware representados por software.
  • Armazenamento: Uma camada de software é criada entre os discos físicos e os dispositivos que acessam esses discos, de modo a tornar o acesso mais flexível, personalizável e gerenciável. Também é conhecido como SDS - Software Defined Storage (Armazenamento Definido por Software).
  • Rede: Também podemos criar uma infraestrutura lógica de rede sobre uma rede física, que permita a configuração e personalização de acordo com nossas necessidades. Também chamada de SDN - Software Defined Networking (Rede Definida por Software).

Quando usamos técnicas de virtualização, portanto, os dispositivos físicos são representados por entidades de software:

  • Servidores e estações de trabalho se tornam Máquinas Virtuais (VMs / Virtual Machines)
  • Rede e Storage podem ser virtualizados, transformando-se em SDN e SDS.
  • Assim, é possível construir o que chamamos de SDDC - Software Defined Data Center(Data Center Definido por Software).

Virtualização de Hardware

A virtualização de hardware é uma combinação da engenharia de hardware e software que visa a criação de Máquinas Virtuais. Uma máquina virtual, ou VM, é uma abstração do hardware de computadores que permite a uma única máquina física agir como se fosse várias, ou seja, executando diversos sistemas operacionais simultaneamente e de forma isolada entre si. Três são os componentes principais em um sistema de hardware virtualizado:

  • Hospedeiro (Host)
  • Convidado (Guest)
  • Camada de Virtualização (Hypervisor)

A figura a seguir ilustra a relação entre esses três componentes:Camadas da Virtualização

Motivos para usar Virtualização

Porque deveríamos implantar técnicas de virtualização em uma empresa? Vários são os motivos que apontam nessa direção. Podemos citar, por exemplo:

  • Aproveitamento da capacidade de computação e performance
  • Economia de energia elétrica
  • Diminuição de espaço físico ocupado
  • Redução de custos administrativos e de gerenciamento
  • Rapidez na implantação de novos sistemas
  • Aumento na disponibilidade de sistemas

Devido a esses motivos, e outros, a Virtualização encontra inúmeras aplicações na TI atual, tais como:

  • Criação de ambientes seguros, personalizáveis e isolados.
  • Emulação de ambientes de execução separados
  • Construção de sistemas escaláveis e elásticos.
  • Otimização de Storage
  • Automação do processo de instalação de SOs (Clonagem, Appliances, etc)
  • Isolamento de Sistemas (Sandboxing)
  • Cloud Computing

E muitas outras aplicações.

Benefícios da Virtualização

A Virtualização traz inúmeros benefícios para a TI moderna, sendo que os trÊs citados a seguir se destacam:

  • Permite um uso mais eficiente da capacidade dos servidores físicos - Com a virtualização podemos rodar várias máquinas virtuais sobre um hardware existente, de modo a otimizar o uso, por exemplo, do poder de processamento das CPUs.
  • Permite um uso mais eficiente do espaço físico em um Datacenter - Esse espaço costuma ser muito caro, principalmente em locais privilegiados em grandes cidades. Ao usarmos menos hardware físico, temos menor necessidade de espaço físico para acomodá-lo.
  • Permite realizar consumo de energia mais eficiente - Com menos dispositivos físicos necessários, podemos reduzir substancialmente a necessidade de energia elétrica e, consequentemente, os gastos com essa energia.

Além disso, o uso da virtualização também traz outros benefícios, tais como:

  • Consolidação de Appliances: Servidores de produção geralmente rodam poucas ou uma única aplicação, o que acarreta o uso estimado de apenas 5 a 10% do hardware disponível.
  • Assim, ao virtualizar vários servidores em um ("consolidar"), podemos reduzir a quantidade de equipamentos físicos, o que leva à redução de:
    • Custos de Hardware
    • Manutenção de Data Center
    • Eletricidade
    • Custos com Pessoal
  • Podemos alcançar taxas de consolidação médias de 10:1 em casos extremos, o que significa que 10 servidores físicos poderiam ser substituídos por um único servidor rodando máquinas virtuais.

E, além de todos esses benefícios citados, ao empregarmos sistemas virtualizados também encontraremos aplicações para:

  • Desenvolvimento e Testes de Aplicações
  • Testes de Upgrades de Software e Sistemas
  • Treinamento e Educação

Limitações da Virtualização

Claro que essa tecnologia não é nenhuma bala de prata, não resolvendo todos os problemas existentes em TI, e também possui suas limitações. Podemos citar, entre outras:

  • Escalabilidade limitada
  • Sistemas relativamente pesados, pois cada SO virtualizado possui seu próprio kernel (se forem executados apenas SOs iguais, existem soluções para resolver essa limitação, como o uso de Contêineres)
  • Degradação de Performance - o convidado pode sofrer latências altas por conta da camada de abstração
  • Ameaças e Falta de Segurança

Conceito de Máquina Virtual

As Máquinas virtuais são criadas sobre uma camada de software denominada Hypervisor, que pode rodar sobre um sistema operacional hospedeiro na máquina, ou ainda ser executado de forma autônoma. Assim, é possível emular componentes de hardware como CPU, Discos, RAM, Redes e também instalar sistemas operacionais convidados. Uma máquina virtual é, em última instância, apenas um arquivo gravado em um disco no servidor que contém todo um sistema operacional com seu kernel, bibliotecas, interfaces e aplicações de usuário. Com o uso de máquinas virtuais é possível criar múltiplos sistemas operacionais na mesma máquina física e executá-los simultaneamente. Por exemplo, podemos ter em um mesmo servidor uma máquina virtual Linux, uma Windows Server 2012 R2 e um sistema FreeBSD rodando ao mesmo tempo.

Hypervisor

Um Hypervisor é o software utilizado para realizar o gerenciamento das máquinas virtuais. Também são conhecidos como VMM - Virtual Machine Manager (Gerenciador de Máquina Virtual). Os hypervisors foram desenvolvidos a partir do início dos anos 70 para rodar em mainframes, e são disponibilizados para PCs por diversos fabricantes atualmente. Existem dois tipos principais de hypervisores disponíveis: Tipo 1 Tipo 2.

Tipos de Hypervisores

Há dois tipos de Hypervisors principais:

  • Tipo 1: Nativo (Bare Metal): O software do hypervisor roda diretamente sobre a plataforma de hardware na função de um programa de controle para os sistemas virtualizados; os exemplos mais populares são o VMWare ESXi e o Citrix XenServer.
  • Tipo 2: Hospedado (Hosted): Neste caso o software do hypervisor é executado dentro do ambiente de um sistema operacional como um software de controle para os sistemas virtualizados. Neste caso, o hypervisor é apenas um programa que é executado sobre um sistema operacional já presente na máquina. Sistemas operacionais “Convidados” (Guests) são instalados sobre essa camada do Hypervisor. Exemplos comuns incluem o Oracle Virtualbox, VMWare Workstation e o Qemu.

A figura a seguir ilustra a arquitetura básica de um hypervisor tipo 1 (bare metal, "na lata"):Virtualização - Hypervior Tipo 1 - Bare Metal  E na figura seguinte, um hypervisor tipo 2 (hosted, "hospedado"):Virtualização - Hypervisor Tipo 2 

Hypervisor "Híbrido"

Alguns hypervisors não são facilmente classificáveis, devido ao modo como são executados. Exemplos:

  • KVM (Kernel-based Virtual Machine) no Linux;
  • bhyve, no FreeBSD

Ambos são módulos do kernel, que convertem o SO hospedeiro em um hypervisor Tipo 1. Porém, os sistemas Linux e FreeBSD são sistemas operacionais de propósito geral, com diversas outras aplicações rodando concomitantemente, de modo que os hypervisors acima podem ser considerados como sendo de Tipo 2 também.

Exemplos de Hypervisors

A lista abaixo traz os nomes de alguns dos hypervisors mais populares e utilizados atualmente. Não se trata de uma lista completa, mas apenas uma pequena listagem ilustrativa do ecossistema de softwares para virtualização:

  • VMware ESXi
  • Citrix XenServer
  • Microsoft Hyper-V
  • KVM
  • Oracle VirtualBox
  • VMware Workstation
  • Parallels
  • Qemu

Links de Referência

Nos links a seguir você poderá obter mais informações sobre os sistema de virtualização citados anteriormente: VMware: www.vmware.com XenServer: xenserver.org Qemu: wiki.qemu.org KVM: www.linux-kvm.org Oracle VirtualBox: www.virtualbox.org Citrix: www.citrix.com É isso aí pessoal! Nos próximos artigos vamos explorar mais a fundo o conceito de virtualização, aprender a utilizar os softwares citados neste artigo, e também vamos conhecer outras tecnologias correlatas e derivadas, com Computação em Nuvem (Cloud Computing), Appliances e Contêineres. 

O que é Cloud Computing (Computação em Nuvem)?

Site: http://www.bosontreinamentos.com.br/virtualizacao/o-que-e-cloud-computing-computacao-em-nuvem/

Por: Gabriela Parente

Para o Site: Techmovie

 

 

Cloud Computing (Computação em Nuvem)

Para que uma empresa possa operar e levar adiante seus negócios, necessita investir tempo e dinheiro em infraestrutura de TI, incluindo hardware, software e diversos tipos de serviços. O processo de crescimento dessa infraestrutura pode custar muito dinheiro e ser muito lento quando executado internamente. Com as tecnologias de computação em nuvem podemos deslocar parte da infraestrutura para data centers na Internet, gerenciados por empresas provedoras de serviços, diminuindo os custos e tempo anteriormente gastos. As empresas podem simplesmente se conectar à nuvem, e usar seus recursos numa base de "pay-per-use", ou "pay-as-you-go", pagando apenas pelos recursos utilizados, como fazemos com serviços tradicionais como energia elétrica.Cloud Computing - Computação em NuvemUma nuvem ("cloud") representa um conjunto de recursos que o usuário não enxerga diretamente, como Servidores, aplicações, serviços, equipamentos de storage e roteamento. Com a computação em nuvem, as empresas podem armazenar e processar seus dados em data centers de terceiros. que podem estar localizados em qualquer parte do planeta. A premissa básica da computação em nuvem é o compartilhamento de recursos com o intuito de alcançar uma economia de escala, de forma similar a um serviço comoditizado, como o serviço de energia elétrica. A nuvem permite que as empresas economizem com custos de infraestrutura, como servidores e switches, de modo a se focar em seu negócio em vez de gastar tempo e dinheiro com essa infra. As principais tecnologias que habilitam a computação em nuvem são a Internet e a Virtualização.

Características

As características básicas da tecnologia de computação em nuvem são:

  • Rapidez e agilidade
  • Custo - “Locação” / Pay-per-use
  • Acesso simplificado e global aos recursos
  • Manutenção simplificada
  • Confiabilidade
  • Provisionamento de recursos sob demanda
  • Escalabilidade e elasticidade virtualmente infinita

Serviços

A computação em nuvem oferece diferentes tipos de serviços baseados no provisionamento e disponibilização de recursos. As principais categorias de serviços de nuvem são:

  • IaaS - Infrastructure as a Service
  • PaaS - Platform as a Service
  • SaaS - Software as a Service
Pirâmide da Nuvem - Cloud Computing

Pirâmide da Nuvem

Trataremos a seguir de uma descrição sucinta dos modelos de serviço apresentados.

IaaS - Infraestrutura como Serviço

Neste modelo é fornecido ao cliente o provisionamento de processamento, armazenamento, rede e recursos básicos de computação, na forma de máquinas e dispositivos virtuais, de modo que o usuário possa instalar e rodar softwares, incluindo sistemas operacionais. Note que o usuário não tem acesso à infraestrutura da nuvem em si, somente aos sistemas disponibilizados por meio do modelo. Ex. de serviço: Amazon EC2; Dropbox; Amazon S3

PaaS - Plataforma como Serviço

Neste modelo o cliente é capaz de implementar na nuvem softwares criados ou adquiridos por ele próprio, utilizando linguagens de programação, bibliotecas e ferramentas fornecidas pelo próprio provedor. Desta forma ele pode utilizar a infra da nuvem para desenvolver e rodar aplicações. Ex. de serviço: Microsoft Azure / Google App Engine

SaaS - Software como Serviço

Aqui o usuário pode utilizar aplicações fornecidas pelo provedor que rodam na nuvem. Essas aplicações podem ser executadas em um navegador web ou em uma interface de programa específica. Foco: Informação e aplicação - Web Services Ex. de serviço: Google Apps / Google Docs; Serviços de Web Mail

Modelos de desenvolvimento de Nuvem

No geral, uma nuvem é implementada usando um dos seguintes modelos:

  • Nuvem Privada
  • Nuvem Pública
  • Nuvem Híbrida

Nuvem Privada

Uma nuvem privada é projetada e operada por uma empresa. Pode ser hospedada interna ou externamente, e gerenciada por uma equipe interna ou até mesmo terceirizada. No geral, apresenta alto nível de segurança, e faz uso das infra de rede interna da empresa. Podemos construir uma nuvem privada usando softwares como o OpenStack ou Citrix XenServer.

Nuvem Pública

Neste modelo, a nuvem á aberta ao público e qualquer um pode utilizá-la (pagando uma taxa, geralmente). É de propriedade de um provedor de serviços de nuvem. Como exemplos temos a AWS (Amazon Web Services) e o GCP (Google Cloud Platform)

Nuvem Híbrida

Aqui, os modelos de nuvem pública e privada são combinados para oferecer um serviço diferenciado, que permite:

  • Armazenar informações sigilosas na parte privada
  • Usar recursos da nuvem pública não presentes na nuvem privada
  • Combina alta eficiência com segurança aumentada

Modelos de Computação em Nuvem

Pontos importantes sobre segurança A preocupação com a segurança na nuvem é o motivo número 1 pelo qual algumas empresas evitam o uso de tecnologias de cloud computing. Algumas perguntas devem ser realizadas quando temos em mente a implantação de tecnologias de nuvem, sendo as mais comuns:

  • Meus dados estão protegidos? -> Privacidade
  • Meus dados estarão disponíveis sempre que eu precisar deles? -> Acesso à Internet
  • Acesso e comunicação com os sistemas em nuvem são protegidos (criptografados)?
  • Os custos são fixos? Posso ter surpresas, como custos ocultos?
  • Se houver um problema grave com o provedor e seus serviços, como ficam meus dados?
  • Há um plano de recuperação de desastres? E Backups?
  • Há um SLA (Service Level Agreement)?
  • Os funcionários precisam de treinamento para usar os serviços de nuvem?

Esses questionamento são muito importantes para definir o modelo de nuvem a ser implantando, e como será gerenciada a segurança relativa ao sistema.

Prós e Contras da Computação em Nuvem - Resumo

Prós

  • Permite acessar seus dados de qualquer lugar
  • Reduz custos da TI
  • Permite escalar poder de processamento
  • Sistema de cobrança por uso do serviço

Contras

  • Segurança
  • Disponibilidade de acesso
  • Taxas extras eventuais
  • Privacidade
  • Largura de banda para acesso

Exemplos de Provedores de Serviços de Nuvem

A lista a seguir traz alguns dos provedores de serviços de cloud computing mais importantes na atualidade (sem ordem específica):

  • Amazon
  • Digital Ocean
  • Rackspace
  • Microsoft
  • Dropbox
  • Google
  • Citrix
  • Heroku

Alguns fornecedores de soluções para Virtualização também oferecem serviços de cloud. É isso aí! Essa foi uma pequena introdução às tecnologias de Computação em Nuvem.

Criptografia – Tipos – Simétrica, Assimétrica e Funções de Hash

Site: http://www.bosontreinamentos.com.br/seguranca/criptografia-tipos-simetrica-assimetrica-e-funcoes-de-hash-02/

Por: Gabriela Parente

Para o Site: Techmovie

 

Tipos de Criptografia

Basicamente, há três tipos de técnicas de criptografia:

  • Criptografia de Chave Privada ou Simétrica
  • Criptografia de Chave Pública ou Assimétrica
  • Funções de Hash

Criptografia de Chave Privada

Este tipo de criptografia utiliza uma única chave.

O emissor utiliza essa chave para encriptar a mensagem, e o receptor utiliza a mesma chave para decriptá-la (chave compartilhada - shared key).

Por utilizar a mesma chave na encriptação e decriptação, trata-se de uma técnica de Criptografia Simétrica.

Criptografia de Chave Privada

A lista a seguir enumera alguns exemplos de algoritmos de chave privada conhecidos:

  • DES
  • 3DES
  • Blowfish
  • CAST5
  • AES
  • OTP (One-Time-Pad)

Estudaremos mais a fundo vários deles em outra lições aqui no site.

Criptografia de Chave Pública

Neste tipo de criptografia usamos duas chaves distintas, de modo a obtermos comunicação segura através de canais de comunicação inseguros.

Trata-se de uma técnica de Criptografia Assimétrica pelo fato de usar um par de chaves diferentes.

Cada participante possui uma chave pública e uma chave privada.

A chave privada é secreta, e só o proprietário a conhece, ao passo que a chave pública é compartilhada com todos que se comunicarão conosco.

Por exemplo: Fábio quer se comunicar com Ana de forma segura. Então, Fábio encripta a mensagem com a chave pública de Ana, de modo que a mensagem só pode ser aberta usando-se a chave privada de Ana - que só ela possui.

Criptografia de Chave Pública - Assimétrica

Na criptografia assimétrica o transmissor e o receptor possuem chaves diferentes, com tamanhos que variam entre 512 e 2048 bits, e é usada em modo de Bloco (que estudaremos posteriormente).

Exemplos de algoritmos de chave pública:

  • DSA
  • RSA
  • ElGamal

Funções de Hash

A técnica de Hash não utiliza uma chave como as técnicas vistas anteriormente. Ela utiliza um valor de hash de tamanho fixo, o qual é um valor matemático computado sobre o texto plano, usando algoritmos específicos.

As funções de Hash são usadas para verificar a integridade dos dados para garantir que não tenham sido inadvertidamente alterados.

Por exemplo, verificações de senhas podem usar funções de Hash também.

Criptografia - Hash - Resumo de mensagem

Alguns exemplos de funções de hash utilizadas atualmente incluem:

  • MD5
  • SHA-1
  • SHA-2
  • SHA-512
  • RIPEMD-160

Criptografia – Revisão de Operações 

Lógicas AND, OR, XOR e NOT

Site: http://www.bosontreinamentos.com.br/seguranca/criptografia-revisao-de-operacoes-logicas-and-or-xor-e-not/

Por: Gabriela Parente

Para o Site: Techmovie

 

Operações Lógicas AND, OR, XOR e NOT

Uma operação Lógica é uma operação matemática em Álgebra Booleana (com valores binários - bits), cujos valores podem ser iguais a 0 ou 1, o que corresponde a falso ou verdadeiro, respectivamente.

As operações lógicas mais comuns empregadas em criptografia são:

  • NOT (Não) - operação unária
  • AND (E)
  • OR (OU)
  • XOR (OU-Exclusivo)

Operação Lógica NOT (Não)

É a operação de negação (valor inverso). Ao aplicarmos a operação NOT a um valor lógico, ele muda seu estado.

Vamos analisar a sua Tabela da Verdade, que é uma tabela que mostra todas as combinações possíveis de entradas de valores e as saídas geradas com a aplicação dos diversos operadores lógicos:

Tabela da Verdade:

Tabela da Verdade da operação NOT

Operação Lógica AND (E)

Esta operação retorna valor 1 (verdadeiro) somente se todos os valores de entrada também forem verdadeiros.

Tabela da Verdade:

Tabela da Verdade - Operação AND

Operação Lógica OR (OU)

A operação lógica OR retorna 1 caso pelo menos uma das entradas possuir valor igual a 1; caso contrário, retorna o valor 0.

Tabela da Verdade:

Tabela da Verdade - Operação Lógica OR

Operação Lógica XOR (Ou Exclusivo)

A operação XOR é uma das mais utilizadas em criptografia. Essa operação retorna valor 1 se as entradas tiverem valores diferentes entre si. Se as entradas forem iguais, não importando seu valor, o resultado será zero.

Tabela da Verdade:

Tabela da Verdade XOR - Ou Exclusivo

A operação XOR possui uma propriedade importante:

A ⊕ B ⊕ A = B,  para todo  A, B

De modo que:

(A ⊕ A) ⊕ B = 0 ⊕ B = B; a operação XOR é, então, reversível, o que a torna muito utilizada em algoritmos criptográficos.

Exemplos de Operações lógicas bit-a-bit

Sejam os valores binários 1001 e 0101:

Operações Lógicas AND, OR e XOR

Web Crawlers e arquivo robots.txt

Site: http://www.bosontreinamentos.com.br/seguranca/web-crawlers-e-arquivo-robots-txt/

Por: Gabriela Parente

Para o Site: Techmovie

 

Resultado de imagem para Web Crawlers e arquivo robots.txt

Webcrawlers

Um webcrawler (rastreador web) é um bot da Internet que navega sistematicamente pelas páginas da web com o propósito de indexá-las.

Também é conhecido pelo nome de Web Spider.

Funcionamento de um Webcrawler

O webcrawler utiliza uma lista inicial de URLs para visitar, que são conhecidas como seeds (sementes).

Ele identifica todos os hyperlinks nessas URLs, e os adiciona à lista de URLs a visitar.

As páginas visitadas são então copiadas para serem processadas posteriormente com o intuito de indexá-las.

Os motores de busca utilizam webcrawlers para manterem seus bancos de dados atualizados.

Exemplo de Webcrawler

O webcrawler usado pelo Google para indexar as páginas da Web para construir a busca do google é o Googlebot

No endereço abaixo, é possível ler informações completas sobre esse webcrawler:

https://support.google.com/webmasters/answer/182072

Arquivo Robots.txt

Um arquivo robots.txt restringe acesso dos robôs webcrawlers a um site.

Os webcrawlers, antes de indexar um novo site descoberto, verificam se ele possui um arquivo robots.txt que os impeçam de acessar determinadas páginas.

No website abaixo encontramos informações sobre como criar e utilizar um arquivo robots.txt:

https://support.google.com/webmasters/answer/156449

Introdução à Criptografia

Site: http://www.bosontreinamentos.com.br/seguranca/introducao-a-criptografia/

Por: Gabriela Parente

Para o Site: Techmovie

 

Introdução à Criptografia

Resultado de imagem para criptografia

O que é Criptografia

Criptografia é o estudo da aplicação de técnicas para comunicação e armazenamento seguro de dados em sistemas computacionais (entre outros).
A palavra Criptografia vem do grego “Kryptós”, “oculto” e “Graphein”, “escrita”, portanto “escrita oculta (ou secreta)”.

Termos-chave

Algoritmo de Criptografia: Método matemático empregado para encriptar / desencriptar dados com o uso das chaves de criptografia.

Invasor: Alguém que tenta roubar informações, se passar por pessoas que eles não são, desativar sites da web, excluir dados sem permissão, parar serviços como uma loja online, etc.

Princípios Básicos

Encriptação ou cifragem é a conversão de dados legíveis para um formato ilegível (texto cifrado) por pessoas não-autorizadas, usando uma chave e um algoritmo criptográfico.

Seu objetivo é proteger a privacidade ao armazenarmos dados ou trocarmos informações com outras pessoas.

O receptor da mensagem encriptada pode decriptá-la e ler seu conteúdo, no formato original.

Desencriptação ou decriptação é o processo inverso da encriptação, ou seja, a transformação de dados encriptados (ilegíveis) em dados legíveis, usando uma chave e um algoritmo criptográfico (cifra).

Criptoanálise

Criptoanálise é o processo de transformação de dados cifrados (encriptados) em dados legíveis (decriptados) sem que se conheça a chave de encriptação.

Portanto, trata-se de “quebrar” a encriptação dos dados para obter acesso ao conteúdo das mensagens, porém com o intuito de descobrir falhas nos algoritmos para torná-los mais seguros, validá-los ou descartá-los.

Um exemplo clássico de criptoanálise foi realizada com o algoritmo de criptografia de redes wireless WEP.

Requerimentos de Segurança em Comunicações

Há quatro princípios básicos que todo sistema de segurança em comunicações deve seguir. São eles:

  • Autenticação
  • Integridade
  • Confidencialidade
  • Não-Repúdio

Integridade

Um dos conceitos mais importantes é o da Integridade, que diz respeito ao conteúdo das informações trocadas entre transmissor e receptor.

Deve-se garantir que o conteúdo da mensagem chegue íntegro a seu destino, ou seja, que não seja alterado de nenhuma forma no meio do caminho.

Autenticação

Outro princípio importante é o da Autenticação.

A autenticação assegura que a mensagem foi realmente originada pelo remetente, e não por outra pessoa. Assim podemos ter certeza de quem enviou a mensagem.

Confidencialidade

Confidencialidade significa que a informação não está disponível para pessoas e processos que não tenham autorização para acessá-la e utilizá-la. Somente pessoas autorizadas podem ter acesso à informação transmitida ou armazenada.

Não-Repúdio

Deve-se também evitar que uma mensagem, após ter sido enviada, seja repudiada pelo transmissor - ele não poderá negar que a transmitiu.

Para isso podemos utilizar, por exemplo, assinaturas digitais - técnica que estudaremos ao longo do curso.

Chaves (Keys)

Uma chave é um valor matemático que determina como uma mensagem em texto plano será criptografada para produzir um texto cifrado, e ela também é necessária para que possamos recuperar a mensagem original.

A segurança de um sistema de criptografia deve residir em suas chaves, e os algoritmos devem ser sempre de conhecimento público.

A chave é um número secreto usado por um algoritmo de criptografia para alterar o texto plano e convertê-lo em texto cifrado, e é gerada aleatoriamente.

Se mesma chave for usada para encriptar e decriptar os dados, temos uma chave simétrica.

A chave é necessária pois manter o algoritmo em segredo não é efetivo - os invasores invariavelmente quebram o algoritmo (descobrem seu funcionamento).

Um exemplo histórico disso é o algoritmo RC4, que foi postado na Internet em 1994 por hackers anônimos.

Características de uma chave

Comprimento da chave: número de bits na chave (às vezes bytes).

Espaço de chaves: coleção de todos os valores matemáticos possíveis que tenham o mesmo comprimento de uma chave. Na prática, é o tamanho da chave, medido em bits.

Uma chave de comprimento n gera um espaço de chaves de 2n valores distintos. Uma chave de 64 bits portanto tem um intervalo de 0 a 264 combinações possíveis. Cada bit adicional dobra o tempo necessário para quebrar a chave - ou seja, chaves maiores dificultam o trabalho de um invasor.

Privacy in Social Media – Privacidade nas Redes Sociais

Site: http://www.bosontreinamentos.com.br/seguranca/privacy-in-social-media-privacidade-nas-redes-sociais/

Por: Gabriela Parente

Para o Site: Techmovie

Um script simples transforma seu pendrive em uma chave para desligar o PC

Site: http://www.bosontreinamentos.com.br/noticias/malware-mr-black-transforma-roteadores-em-zumbis/

Por: Gabriela Parente

Para o Site: Techmovie

Desligue seu computador apenas retirando um pendrive

Uma nova ferramenta foi desenvolvida com a capacidade de desligar o seu computador tão rápido, que pessoas "não autorizadas" (vide autoridades) não terão a chance de examiná-lo e descobrir suas informações confidenciais presentes na máquina no momento do acesso. "USBKill", como o script é chamado, transforma qualquer pendrive USB comum em um interruptor que força um desligamento do computador após sua remoção. Desta forma, é possível desligar a máquina rapidamente caso haja a necessidade - por exemplo, se estiver trabalhando em algo “confidencial” e alguém se aproximar. O script foi postado no GitHub por um usuário chamado "Hephaestos," que proclama que a ferramenta irá impedir que os usuários se tornem o próximo Ross Ulbricht - o ex-chefão do mercado de drogas on-line Silk Road - cujo laptop estava ligado ao ser apreendido...

USBkill 2

Trecho de código do Script

Hephaestos sugere que os usuários prendam o pendrive USB com o USBKill em seus pulsos como medida de segurança adicional, para que o computador seja automaticamente desligado com um simples movimento do braço. O desenvolvedor auto-proclamado do "software para a liberdade", explica que o software é mais eficaz quando combinado com uma máquina virtual que se exclui automaticamente após a reinicialização, prevenindo as autoridades de conseguirem acessar qualquer coisa caso consigam arrancar de alguma forma as senhas de acesso ao sistema de você. Claro que, para que o processo seja totalmente efetivo, ainda é preciso que você criptografe todo o seu disco rígido - afinal, o script desliga a máquina mas ela obviamente pode ser religada novamente, a não ser que esteja usando uma VM como sugerido. O USBKill será atualizado com recursos adicionais de tempos em tempos, mas o estado atual é mais do que capaz de entregar o que prometeu.   Você pode baixar o script USBKill aqui   Fontes: Boson Treinamentos

Malware Mr. Black transforma roteadores em zumbis

Site: http://www.bosontreinamentos.com.br/noticias/malware-mr-black-transforma-roteadores-em-zumbis/

Por: Gabriela Parente

Para o Site: Techmovie

A empresa de segurança Incapsula descobriu um grande botnet utilizado para lançar ataques de negação de serviço distribuídos (DDoS). Porém, este botnet, chamado de Mr. Black, não foi feito para infectar computadores. Em vez disso, ele cria um exército de roteadores zumbis, prontos para obedecer a comandos remotos. A Incapsula observou o tráfego deste botnet ao longo de 111 dias. Durante esse tempo, foram identificados 40.269 endereços IP usados no ataque. Os equipamentos infectados apareciam espalhados ao redor do mundo, vindo de 1600 ISPs (provedores de serviço de internet). O interessante neste botnet é que ele não foi projetado usando nenhuma técnica nova de ataques. A Incapsula descobriu que os roteadores no botnet estavam todos configurados para aceitar gerenciamento remoto, significando que os usuários - os atacantes - poderiam descobri-los online e realizar alterações de configuração. Quase todos os roteadores também usavam nomes de usuário e senhas padrão, de modo que tomar o controle desses equipamentos acabou sendo uma tarefa trivial.

Ataques a Roteadores Malware Mr. Black

Como proteger seu roteador de ameaças como o Mr. Black

Seu roteador pode fazer parte dessa horda zumbi - principalmente se você vive nos países mais afetados pelo malware. E, infelizmente, o Brasil é o segundo país mais infectado, atrás apenas da Tailândia, sendo que ambos os países em conjunto respondem por 85% dos roteadores comprometidos. É interessante notar que a infraestrutura de comando e controle usada pelos desenvolvedores do botnet para direcionar os ataques está baseada primariamente na China, com um pequeno foco nos Estados Unidos.
mr. black roteador malware - países mais atacados
Há alguns passos básicos que você deve tomar para se proteger dessa ameaça e tornar sua rede caseira mais segura. A Incapsula recomenda desabilitar as configurações de gerenciamento remoto no seu roteador de banda larga e, o mais importante, que você altere o nome de usuário e senha padrão do roteador - tarefa que muitas pessoas não executam. Se essa troca de senha, seu roteador está completamente desprotegido contra esse malware, e contra outros tipos de ataques e invasões. Você pode verificar se seu roteador não está aberto a acesso remoto usando a ferramenta Open Port Finder da You Get Signal, e escanear as portas SSH (22), Telnet (23) e HTTP/HTTPS (80/443). Se você acredita que seu roteador já foi contaminado, faça uma atualização do firmware para a versão mais recente fornecida pelo fabricante. Fonte: Boson Treinamentos

Russia planeja abandonar o uso de iOS da Apple e Android ao criar seu próprio software para smartphones

Site: http://www.bosontreinamentos.com.br/noticias/russia-planeja-abandonar-o-uso-de-ios-da-apple-e-android-ao-criar-seu-proprio-software-para-smartphones/

Por: Gabriela Parente

Para o Site: Techmovie

A Rússia quer criar seu próprio sistema operacional para smartphones em um esforço para reduzir a sua dependência da tecnologia ocidental. O Ministro russo das comunicações Nikolai Nikiforo anunciou planos para substituir o iOS da Apple e plataformas Android do Google por um novo software baseado em sailfish, um sistema operacional móvel de código aberto, desenvolvido pela fabricante de telefones da Finlândia Jolla. A equipe da Jolla se reuniu com membros da comunidade de tecnologia russa no início deste mês para abrir caminho no desenvolvimento do novo software.

Sailfish OS - Jolla

Nikiforo disse que quer que o país a reduza sua dependência de tecnologia estrangeira ao longo dos próximos dez anos a 50 por cento do Market Share atual do país, que hoje é de 95 por cento. Isso vem em um momento em que a Rússia está procurando se tornar independente da indústria de tecnologia ocidental, em parte porque está enfrentando sanções crescentes por conta de sua anexação da Criméia em 2014. Além disso, a Rússia quer software para smartphones no qual ela saiba que pode confiar – ao desenvolvê-lo internamente - que não possa ser corrompido por operações clandestinas da Agência de Segurança Nacional dos EUA – NSA (ao menos em tese). Há um ano, a Apple e a fabricante de software alemã SAP se recusaram a revelar o seu código-fonte para o governo russo quando solicitado por Nikiforo. (Eles queriam determinar se o governo dos EUA havia incluído quaisquer backdoors ou falhas de segurança, que documentos vazados por Edward Snowden supostamente mostravam.) Então, com poucas opções restando, a Rússia decidiu construir seu próprio sistema de smartphone para competir no cenário mundial. O Sailfish possui atualmente 0,5% da fatia de mercado da Rússia, de acordo com dados mais recentes – abaixo até mesmo dos sistemas operacionais móveis da Microsoft e da BlackBerry. Mas o software demonstra ser uma grande promessa no país, como sendo o único software móvel no mercado totalmente open-source. Nikiforov disse que o sucesso do software irá depender do quão bem ele será recebido pelos usuários finais e fabricantes de aparelhos no país. A Rússia já começou a pagar desenvolvedores locais para migrar seus aplicativos mais populares para o Sailfish.

Drone de segurança da empresa Secom segue e fotografa intrusos

Site: http://www.bosontreinamentos.com.br/noticias/drone-de-seguranca-da-empresa-secom-segue-e-fotografa-intrusos/

Por: Gabriela Parente

Para o Site: Techmovie

Drone de segurança da empresa japonesa Secom segue e fotografa intrusos

A empresa de segurança japonesa Secom está lançando um drone que será ativado automaticamente quando um intruso for detectado e irá segui-lo ao mesmo tempo em que o filma e envia o vídeo a quem quer que faça o monitoramento do local O quadricóptero foi mostrado nesta semana na inauguração da exposição International Drone Expo que ocorreu no centro de convenções Makuhari, próximo a Tóquio, onde cerca de 50 empresas se reuniram para exibir drone e outras tecnologias relacionadas. O UAV (Unmanned Aerial Vehicle / Veículo Aéreo Não-Tripulado) será oferecido a empresas no Japão que operam em áreas de terreno relativamente grandes - grandes o suficiente para necessitar de uma câmera de segurança voadora - tais como shopping centers e supermercados com estacionamentos muito grandes. O drone pode se conectar a um sistema de detecção de intrusos que envia feixes de raios laser ao longo do perímetro de um lugar seguro. Quando o sensor detecta algum movimento no local, o drone automaticamente decola de uma estação de recarga nas proximidades para investigar a ocorrência. Ele pode enviar vídeo em tempo real de um invasor ou veículo e até mesmo filmar a placa do automóvel para uma central de segurança da Secom para análise. “O drone não sai das dependências do usuário porém grava imagens dos invasores no local”, disse o porta-voz da Secom Akihiko Takeuchi.

Drone de segurança da Secom
A bateria do equipamento permite que ele voe por apenas 10 minutos, mas ele retorna automaticamente para sua estação-base para recarregar. O dispositivo possui uma câmera de alta definição e diversos sensores, porém a Secom não forneceu detalhes a respeito do lançamento oficial do drone, que deve ocorrer em Junho. A Secom planeja oferecer os drones em um plano de aluguel mensal para as empresas como parte de seus serviços de segurança, os quais incluem alarmes tradicionais contra ladrões e guardas de segurança. A empresa tem trabalhado em soluções de segurança robotizadas desde o início da onda atual de uso de drones. O Robot X, desenvolvido há mais de dez anos, é um dróide móvel do tamanho de uma scooter consegue patrulhar uma área de forma autônoma, gravar imagens e até mesmo soltar nuvens de fumaça para espantar os intrusos. As empresas japonesas estão desenvolvendo soluções de segurança para drones no momento em que o país se conscientiza do potencial de ameaça desses dispositivos. Logo após um drone contendo traços de material radioativo ter sido descoberto no teto do escritório do Primeiro-Ministro do país, em Abril, as autoridades governamentais de Tóquio baniram o uso de drones em jardins e parques públicos.

Pesquisadores rastreiam usuários de metrô usando dados do acelerômetro de smartphones

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/noticias/pesquisadores-rastreiam-usuarios-de-metro-usando-dados-do-acelerometro-de-smartphones/

Por: Gabriela Parente

Para o Site: Techmovie

Pesquisadores rastreiam usuários de metrô usando dados do acelerômetro de smartphones

Pesquisadores da área de segurança rastrearam pessoas indo de casa para o trabalho com mais de 90% de precisão usando dados roubados de acelerômetros em smartphones com Android. Em um artigo descrevendo a pesquisa, entitulado "Podemos te rastrear se você pegar o Metrô: Rastreando Usuários do Metrô usando Acelerômetros em Smartphones” (Tracking Metro Riders Using Accelerometers on Smartphones), uma equipe de segurança da Universidade de  Nanjing, na China disse que eles foram capazes de usar acelerômetros (detectores de movimento) como um meio para um ataque com o intuito de rastrear usuários, com até 92% de precisão. Sensores de movimento estão frequentemente presentes nos smartphones modernos. Quando se trata de dispositivos Android, a equipe disse que eles foram capazes de acessar e roubar as leituras do acelerômetro de modo a rastrear os usuários, em parte porque estes dados não precisam de permissões específicas de acesso.

Chip Acelerômetro típico

Chip Acelerômetro típico

Os pesquisadores usaram um classificador de intervalos construído com técnicas de aprendizado de máquina (machine learning) que misturam dados de diferentes fontes para rastrear suas vítimas, mesclando dados do acelerômetro e da localização das estações de trens para determinar onde um usuário estava localizado durante sua viagem. Um malware instalado nos smartphones de oito voluntáiros automaticamente lia e enviava as leituras dos acelerômetros dos aparelhos. Testando sua teoria no metrô de uma grande cidade chinesa, os pesquisadores foram capazes de rastrear os usuários de Android em quatro e seis estações com uma precisão de 89 e 92%, respectivamente. As leituras e a precisão poderiam ser aumentadas se uma rede maior de estudos fosse conduzida, coletando mais dados em outras estações. Assim explica a equipe: "Descobrimos que se uma pessoa com um smartphone pega o metrô, uma aplicação maliciosa no smartphone dela pode usar as leituras do acelerômetro para rastreá-la, ou seja, inferir onde (em quais estações) ela entra e sai do trem. A razão para isso é que os trens do metrô correm sobre trilhos, fazendo com que seus padrões de movimento sejam distinguiveis de carros ou ônibus rodando nas ruas. É possível que o deslocamento de um trem entre duas estações vizinhas produza uma impressão distinta nas leituras de um acelerômetro de 3 eixos do dispositivo móvel, permitindo que atacantes em potencial possam deduzir a rota de viagem de um passageiro."

Ataque a acelerômetro smartphone

Método de ataque a um acelerômetro de smartphone

O estudo diz também que esse ataque é mais eficaz e poderoso do que ataques usando GPS ou dados da rede de celular, pois os trens do metrô geralmente percorrem rotas subterrâneas que prejudicam sinais de celular, e apps baseados em GPS geralmente necessitam de permissões específicas dos usuários para serem habilitados. A equipe disse que este ataque pode ser potencialmente ameaçador por várias razões. Plataformas móveis, incluindo o Android, permitem que os apps acessem os dados do acelerômetro sem a necessidade de permissões especiais ou consentimento específico do usuário., e portanto é “extremamente simples” criar malware que pode acessar o acelerômetro. Desta forma,  a programação diária de uma vítima pode ser inferida a partir este rastreamento. Um atacante poderia descobrir o deslocamento diário de uma vítima. e após alguns dias de trabalho conhecer detalhes como por exemplo quando a vítima está em casa ou no trabalho, quando ela sai para realizar outras atividades, para onde ela vai, qual caminho usa, e até prever onde a vítima estará em dias e horários específicos. Um prato cheio para assaltantes e sequestradores, por exemplo. Fonte:

 

 

Cifra de Feistel

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/criptografia-cifra-de-feistel/

Por: Gabriela Parente

Para o Site: Techmovie

Cifra de Feistel 

A maioria dos algoritmos de criptografia simétrica de bloco possuem uma estrutura descrita por Horst Feistel, da IBM, em 1973. As entradas do algoritmo são blocos de texto plano de comprimento 2x bits e um chave K. O bloco de texto plano é dividido em duas metades, L0 e R0. Essas duas metades passam por n rodadas de processamento e então se combinam para produzir o bloco de texto cifrado. Cada rodada r recebe como entrada Lr-1 e Rr-1, derivadas da rodada anterior, assim como uma subchave Kr, derivada da chave geral K. Essas subchaves são diferentes de K entre si pois são geradas a partir de K com um algoritmo de geração de chaves. As iterações possuem todas a mesma estrutura. Uma substituição é realizada na metade esquerda dos dados, por meio da aplicação de uma função F na metade direita dos dados com a chave e então obtendo-se o XOR da saída desta função e da metade esquerda dos dados. Adicionalmente, uma permutação é realizada invertendo-se as duas metades dos dados. A função F é chamada de round function.

Permuta Básica da Cifra de Feistel

Rede de Feistel

Resultado de imagem para feistel network

  • Como a Cifra de Feistel será aplicada depende da escolha de alguns parâmetros, como:
    • Tamanho do bloco; Geralmente 64 bits.
    • Tamanho da chave; Chaves maiores significam maior segurança, porém menor velocidade de execução do algoritmo.
    • Número de rodadas; Tamanho típico: 16
    • Algoritmo de geração de subchaves; Quanto mais complexo, melhor.
    • Função F: Quanto mais complexa, melhor.

    Decriptando cifras de Feistel

    O processo de  descriptografia de uma cifra de Feistel é igual à criptografia. Usa-se, nesse caso, o texto cifrado como entrada do algoritmo, e as subchaves Kn em ordem reversa.

    Aplicações da Cifra de Feistel

    As cifras de Feistel são usadas nos seguintes algoritmos de criptografia:
    • DES
    • Blowfish
    • RC5
    • Twofish
    • 3DES

Criptografia - Paradigmas e Técnicas de Autenticação

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/criptografia-paradigmas-e-tecnicas-de-autenticacao/

Por: Gabriela Parente

Para o Site: Techmovie

O processo de Autenticação fornece garantia sobre a identidade de um usuário, verificando se você é quem diz ser. Podemos chamar de Reclamante a pessoa (ou sistema) cuja identidade será verificada. Credenciais são a evidência que um reclamante apresenta para estabelecer sua identidade. Assim o sistema de autenticação nos fornece proteção contra ataques como man-in-the-middle, mascaramento e spoofing, por exemplo.

Tipos de Autenticação

- Autenticação de entidade: um usuário afirma ter uma identidade legítima em um sistema. - Autenticação de origem de dados: Fornece evidência de que dados, como uma mensagem de email, foram originados de um usuário legítimo. A autenticação de entidade pode ainda se subdividir em: - Unilateral: Apenas uma das partes envolvidas na comunicação se autentica - Mútua: Ambas as partes devem se autenticar.

Paradigmas de Autenticação

  • Algo que você sabe: o reclamante possui uma informação, como uma senha ou um PIN;
  • Algo que você possui: o reclamante demonstra a posse de algo, como uma chave física, um crachá, um cartão ou uma chave privada em um smart card.
  • Algo que você é: baseado em alguma característica imutável do reclamante, como impressão digital, voz, padrão de retina ou geometria das mãos.

Algo que você sabe - Senhas e PINs

Senhas são o mecanismo de autenticação mais usado para autenticar um usuário. Neste modelo, o reclamante prova sua identidade apresentando o conhecimento de uma string de caracteres. As senhas são uma das maiores vulnerabilidades de um sistema de autenticação, pois as pessoas tendem a escolher senhas fáceis de memorizar - e, por isso, fáceis de adivinhar. Tipos de ataques a senhas - Pode ser descoberta se for transmitida sem criptografia em uma rede; - Um intruso entra em um sistema e lê o arquivo de senhas; - Alguém pode adivinhar facilmente uma senha mal escolhida; - Pode ser possível quebrar uma senha usando um ataque de dicionário; - É possível inclusive enganar um usuário fazendo-o revelar sua senha.

Algo que você tem - Tokens

Um reclamante pode fornecer evidência de sua identidade ao demonstrar a posse de um token. Um token é um objeto físico, como uma chave, um documento de identidade, um dispositivo eletrônico ou um smart card, por exemplo. Geralmente os tokens são usado em conjunto com uma senha para fornecer um grau mais elevado de certeza com relação à identidade de um reclamante.

Criptografia - Tokens e Smart Cards

Criptografia - Tokens e Smart Cards

Smart Cards Um Smart Card é um token do tamanho de um cartão de crédito que contém um microprocessador, memória para armazenar programas e dados, e contatos elétricos usados como interface com um leitor de cartões, o qual também fornece energia elétrica ao dispositivo. Geralmente o smart card possui um valor secreto armazenado, como uma chave privada de assinatura digital ou um número secreto, usado para realizar a autenticação do portador do cartão. Tokens Desconectados Token de senha de uso único síncrono” É um tipo de token que não possui conexão física nem lógica com o computador cliente. Possuem um display que mostra um código de autenticação que muda, por exemplo, a cada minuto. O código pode ser usado então para realizar autenticação em um sistema, geralmente on-line, como um bankline.

Exemplo de Token Desconectado - iToken do Itaú

Exemplo de Token Desconectado - Token de Banco Brasileiro

Algo que você é - Biometria

A Biometria fornece garantia da identidade de um reclamante baseado em características humanas físicas, comportamentais e morfológicas mensuráveis. A biometria é usada geralmente em combinação com outros paradigmas de autenticação para obtermos um nível mais alto de segurança. Exemplos de Biometria Padrões de Retina - testam os padrões únicos de vasos sanguíneos no tecido da retina de uma pessoa. Impressões Digitais - Padrões únicos de impressão digital do usuário. Formato da mão - Exame das medidas geométricas da mão de uma pessoa. Padrões de Voz - O sistema explora os padrões vocais, acústicos, fonéticos ou até mesmo linguísticos. Assinatura - Padrões únicos de uma assinatura manual convencional.

Equipamentos de Biometria - Retina, Íris e Impressões Digitais

 O que é uma vulnerabilidade Zero-Day

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/o-que-e-uma-vulnerabilidade-zero-day/

Por: Gabriela Parente

Para o Site: Techmovie

Vulnerabilidade Zero-Day

Resultado de imagem para vulnerabilidade Zero-Day

Uma Vulnerabilidade Zero-Day é uma vulnerabilidade em um software ou sistema de computador que ainda não foi revelada ou ainda não foi corrigida, geralmente desconhecida do fabricante do software afetado por ela. Desta forma, pode ser usada para causar danos a programas do computador, redes, informações dos usuários e serem usadas para propagar vírus, worms ou outros tipos de malwares, em um processo que chamamos de Exploit Zero-Day. Consideram-se vulnerabilidades zero-day como sendo de alta periculosidade, e exploits são geralmente realizados (ataques zero-day/zero day exploits) antes da falha se tornar pública (ou até no mesmo dia), antes de uma solução ter sido criada pelo desenvolvedor do softwre afetado.

Formas de exploração 

As vulnerabilidades zero-day podem ser exploradas de várias formas. É muito comum, por exemplo, um usuário visitar um website falso, que contém código malicioso para explorar vulnerabilidades nos próprios navegadores do sistema do usuário ao serem abertos. Basicamente o que um atacante deseja é explorar a vulnerabilidade para infiltrar no sistema da vítima malware ou spyware, ou ainda obter acesso não autorizado às informações do usuário ou seus arquivos. Essa exploração da vulnerabilidade é chamada de ataque Zero-Day.

Ciclo de vida de uma vulnerabilidades zero-day

Podemos considerar que uma vulnerabilidade zero day tem uma espécie de ciclo de vida como segue:

  1. Uma empresa desenvolve e comercializa um software. Porém, esse software possui uma falha de segurança desconhecida da empresa, pois não foi detectada na fase de testes.
  2. Um hacker ou figura similar descobre essa vulnerabilidade e começa a explorá-la, antes que o desenvolvedor tenha a oportunidade de corrigi-la. Às vezes MUITO antes.
  3. Algum tempo depois a falha se torna pública, ou a empresa desenvolvedora do software descobre a falha e cria um patch de correção para eliminar a vulnerabilidade.

O intervalo de tempo entre a exploração da falha por um atacante e a sua correção pode variar entre algumas horas até alguns meses - sim, algumas vulnerabilidades passam meses em aberto sem que ninguém saiba sobre ela - a não ser, possivelmente, criminosos digitais.

Correção das vulnerabilidades

Para que o fabricante / desenvolvedor do software vulnerável possa corrigir a falha, após identificá-la, é necessário liberar um patch de correção para download público. Desta forma, patches de segurança são lançados regularmente para que seja possível corrigir erros e vulnerabilidades que afetem os softwares, incluindo as vulnerabilidades zero-day. Por isso é importante sempre manter seu sistema atualizado, assim como os softwares instalados em sua máquina. Isso inclui os navegadores web, aplicativos em geral e o próprio sistema operacional. Não é simples a proteção preventiva contra ataques zero-day. Já que a premissa básica desse tipo de vulnerabilidade é justamente o fato de elas não serem conhecidas, é difícil se proteger contra elas. Mesmo redes e sistemas considerados seguros estão na verdade sob risco com relação a esse tipo de vulnerabilidade, já que a segurança se aplica geralmente aos fatores de risco que são conhecidos.

Exemplos de Exploits Zero-day recentes:

Podemos citar alguns exemplos de ataques zero-day que ocorreram muito recentemente (em 2014 e 2015), como:

  • Adobe Flash Zero-day - O grupo hacker APT3 enviou inúmeros e-mails de phishing com links para servidores web comprometidos.
  • Operação Boneca Russa - Vulnerabilidades da Microsoft e da Adobe largamente exploradas pelo grupo hacker russo APT28
  • Exploit do IE 9 - IE 11 - Uma vulnerabilidade que afetava usuários do navegador Internet Explorer, permitindo acesso arbitrário à memória do computador
  • Vulnerabilidade do Kernel do Windows - Essa vulnerabilidade que permitia um exploit no Kernel do Windows, especificamente no subsistema de processamento de fontes True Type (TTF), permitindo utilizar um documento do Office para incorporar e enviar TTFs maliciosos
  • Vulnerabilidade no OS X da Apple que permite que os atacantes consigam abrir ou criar arquivos arbitrários de propriedade do usuário root em qualquer parte do sistema

Proteção contra exploits zero-day

Não existe um procedimento oficial para proteção contra exploits zero-day, pois é completamente imprevisível a descoberta de tais vulnerabilidades. Mas algumas precauções podem ser tomadas, como por exemplo:

  1. Manter os softwares sempre atualizados: Isso garante que seu sistema não terá vulnerabilidades que já foram corrigidas ainda em condições de serem exploradas.
  2. Usar um bom antivírus: Não impede que ocorra um ataque zero-day, porém pode impedir a instalação ou execução de programas maliciosos no computador.
  3. Ativar o firewall do sistema: Também não impede que ocorra um ataque, mas pode bloquear acesso a determinadas aplicações ou portas de comunicação, minimizando os danos causados pelo exploit.
  4. Não usar softwares que tenham uma má reputação em termos de histórico de vulnerabilidades. Podemos citar como exemplos o Adobe Flash Player e o Oracle Java. Nem sempre é possível seguir esta recomendação, mas se for possível, não os tenha em sua máquina.
  5. Não entre em sites suspeitos nem instale softwares de procedência duvidosa em seu computador.

O que é Esteganografia

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/o-que-e-esteganografia/

Por: Gabriela Parente

Para o Site: Techmovie

Esteganografia é a prática de esconder mensagens, arquivos ou imagens/vídeos dentro de outras mensagens, arquivos ou imagens/vídeos. O termo Esteganografia deriva da combinação das palavras em grego steganos (protegido, oculto) e graphein (escrever). É, portanto uma espécie de "escrita oculta".Usando técnicas de esteganografia podemos esconder mensagens dentro de uma imagem, por exemplo, de modo que as pessoas que olharem para essa imagem não terão nenhuma ideia de que ali há informações ocultas. A  esteganografia é uma arte antiga. Essa técnica já era citada no século 15 em tratados de criptografia como o Steganographia de Johannes Trithemius. Naquela época já se ocultavam mensagens com o uso de tintas invisíveis em cartas, por exemplo. Hoje podemos esconder informações em arquivos de computador. Por exemplo, podemos incluir em uma fotografia digital uma mensagem oculta, fazendo alterações em alguns bits específicos da imagem, sem que isso altere de forma perceptível a imagem em si. Uma das formas mais comuns de esteganografia consiste em esconder uma mensagem dentro de uma imagem. Os tipos de imagens mais usadas para esse fim são:

  • BMP
  • GIF
  • JPEG
  • TIFF

Os arquivos de imagem possuem característica que podem ser exploradas, como sua resolução, altura e largura. Para que seja possível esconder uma mensagem em um arquivo de imagem são necessários dois arquivos:

  • O arquivo contendo a imagem na qual a mensagem será inserida
  • O arquivo contendo a mensagem em si

De posse desses arquivos, podemos escolher o método que será utilizado para inserir a mensagem na imagem. Os métodos mais comuns incluem:

  • Bit menos significativo (LSB - Least Significant Bit) - Alteração de alguns bits nos pixels que formam a imagem.
  • Filtragem e mascaramento - uso de marcas d´água digitais nas imagens
  • Algoritmos e Transformação - funções matemáticas em algoritmos de compressão

O processo funciona conforme ilustra a imagem a seguir:Esteganografia - ocultando mensagens em uma imagemO destinatário, ao receber a imagem, executará o processo inverso para extrair dela a mensagem oculta, conforme podemos ver na figura abaixo:Esteganografia - Mensagem oculta recuperada

Exemplo de Ferramenta de Esteganografia

Vamos ver alguns exemplos de como esconder mensagens em arquivos digitais, com o uso de ferramentas específicas. Vamos trabalhar com a ferramenta freeware OpenPuff, que é uma ferramenta profissional de esteganografia e marcas d´água que suporta vários formatos de arquivos portadores (arquivos que carregam as mensagens ocultas), como por exemplo:

  • Imagens BMP, JPG, PNG, TGA
  • Áudio em MP3, AIFF, WAV
  • Vídeo MP4, MPG, VOB
  • Adobe FLV, PDF, SWF

Baixe o OpenPuff clicando neste link, e logo após descompacte o arquivo zipado em uma pasta do seu computador (versão para Windows). Após descompactar o arquivo, entre na pasta do OpenPuff e abra o programa executando o arquivo OpenPuff.exe:Esteganografia com OpenPuff  Aguarde enquanto o Gerador de Números Pseudo-Aleatório Criptograficamente Seguro (CSPRNG) é alimentado:Esteganografia - OpenPuff CSPRNGEm alguns segundos aparecerá a interface do OpenPuff, que é dividida em três seções: Steganography (Esteganografia), Volatile marking & Carrier Clean Up (Marca d´água e limpeza do arquivo portador), e Help & Options (Ajuda e Opções):Esteganografia com OpenPuff  Vamos esconder uma mensagem em um arquivo de imagem agora. Primeiramente, vamos criar a mensagem de teste. Abra um editor de textos, como o Bloco de Notas, e digite qualquer texto desejado nele. Salve e saia do programa (batizarei meu arquivo de texto de "mensagem.txt" para maior clareza):Bloco de Notas no Windows  Excelente. Escolha também uma imagem (ou várias) para ser a portadora da mensagem. Agora, volte ao OpenPuff e clique no botão "Hide" na seção "Steganography" para que possamos inserir o texto do arquivo mensagem.txt na imagem escolhida. Será aberta a janela a seguir:Open Puff - Esteganogradia com Mestre Yoda  Vamos configurar alguns parâmetros agora para que possamos ocultar nossa mensagem na imagem escolhida. Você precisa, primeiramente, inserir no mínimo uma senha, clicando na caixa de texto "Cryptogtaphy (A)" e digitando-a. Essa senha será usada para proteger os dados ocultos no arquivo, e também para alimentar (seed) a criptografia e codificação da mensagem. Escolha a senha de sua preferência. Opcionalmente, você pode escolher mais duas senhas, que devem ser digitadas em "(B)" e "Scrambling (C)". Vou usar apenas o padrão da senha (A) - desmarque os checkboxes "Enable (B) e (C)" neste caso. Vamos adicionar a mensagem ao OpenPuff agora. Clique no botão "Browse", na caixa "Target", seção (2) Data (no canto superior direito da tela), para escolher a mensagem-alvo, que será incorporada à imagem escolhida (no caso, meu arquivo mensagem.txt), e clique em "Abrir". Note que os dados a serem ocultados podem ter no máximo 256MB de tamanho no OpenPuff. Você pode compactar e comprimir os arquivos de dados se desejar, ANTES de ocultá-los com o OpenPuff:Esteganografia - Escolhendo mensagem no OpenPuff  Após entrar com a mensagem, clique no botão "Add", no canto inferior esquerdo, e escolha a imagem que será a portadora dessa mensagem. Clique em Abrir para adicionar a imagem:Esteganografia com OpenPuff - Escolhendo Yoda  Escolhi a imagem "Mestre-Yoda.png" que estava em meu computador. Você pode adicionar quantas imagens quiser - adicione-as até a barra inferior ficar verde:Steganography with OpenPuff - Master YodaExcelente!. Já temos tudo o que precisamos para esconder a mensagem dentro da imagem do Mestre Yoda. Na caixa "(4) Bit selection options" podemos fazer ajustes como a razão entre dados e ruído, sendo esses ajustes úteis por exemplo quando queremos espalhar os dados secretos entre vários arquivos portadores, bastando para isso expandir a seleção do formato de arquivo portador selecionado e escolher o valor desejado. Não vou mudar nada neste exemplo. Agora clique no botão Hide Data! no canto inferior direito para realizar a operação esteganográfica, e escolha um local para salvar a imagem contendo sua mensagem oculta. Em alguns instantes, você deve receber a mensagem "1/1 carrier processed", indicando que os dados foram processados com êxito:Esteganografia - OpenPuff - Dados Ocultos  Clique em "OK", verifique o relatório e então feche a caixa de diálogo clicando no botão "Done":Esteganografia - Dados ocultos com OpenPuff

Pronto! A imagem contendo sua mensagem secreta foi salva no computador. Abra-a e verifique-a minuciosamente - você perceberá que não há rastros visíveis da mensagem ocultada na imagem - mas a mensagem está lá:

Extraindo uma mensagem de um arquivo esteganografado

Vamos agora realizar o processo de extração da mensagem oculta por esteganografia em outro arquivo - no caso, no arquivo de imagem do Mestre Yoda que usamos anteriormente. Usaremos novamente o software OpenPuff, pois foi com ele que ocultamos nossa mensagem na foto. Para isso, siga os passos a seguir: 1. Abra o OpenPuff e, na tela inicial do programa, clique no botão "Unhide", na seção Steganography:OpenPuff - Unhide Steganography  2. Entre com as senhas nos campos correspondentes da seção (1). Em nosso exemplo, usei apenas a senha "Cryptography (A)", e por isso desmarquei os checkboxes "Enable (B)" e "(C)". Em seguida, clique no botão Add Carriers na seção (2) Carrier Selection para selecionar a imagem que contém a mensagem oculta:Esteganografia - Selecionar imagem para unhide no OpenPuff  3. Após selecionar a imagem, clique no botão "Unhide!" na seção (3), na parte inferior do lado direito da janela, e selecione o diretório de destino da mensagem. Clique em OK logo após.OpenPuff Esteganografia - Selecionar Diretório4. Clique em OK novamente para finalizar a tarefa:Task Processed OpenPuff  5. E então clique em Done para fechar o relatório da tarefa. Abra o diretório escolhido e encontre a mensagem, que deve estar lá. Abra-a para verificar seu conteúdo:OpenPuff task DoneVeja a mensagem recuperada a seguir:Mensagem recuperada por esteganografia com OpenPuffProcedimento finalizado com sucesso! Ocultamos uma mensagem por esteganografia em um arquivo de imagem usando o software OpenPuff, e logo após conseguimos recuperar a mensagem oculta.

Outros Softwares para Esteganografia

Neste artigo usamos o software OpenPuff para exemplificar o uso da esteganografia, mas existem muitos softwares disponíveis para esse fim. Podemos citar, entre outros:

Conheça o Lynis, ferramenta de Auditoria de Segurança Open Source

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/conheca-o-lynis-ferramenta-de-auditoria-de-seguranca-open-source/

Por: Gabriela Parente

Para o Site: Techmovie

O Lynis é uma ferramenta de auditoria de segurança open source desenvolvida pela Cisofy, utilizada para avaliar o nível de segurança de sistemas baseados em Unix / Linux. Essa ferramenta é executada diretamente no host, e não necessita instalação (opcional), podendo desta forma realizar testes de segurança mais extensos do que com softwares scanners de vulnerabilidades comuns. Lynis é escrito em Shell Script e distribuído sobre a licença GPL. Para obter o Lynis basta visitar site da Cisofy, ou se preferir clique no link a seguir para baixar o arquivo compactado do software: Download do Lynis. O Lynis roda em uma grande variedade de sistemas derivados do Unix, como por exemplo:

  • AIX
  • FreeBSD
  • HP-UX
  • Linux
  • NetBSD
  • OpenBSD
  • OS X
  • Solaris

E em muitos outros sistemas, incluindo até mesmo o Raspberry Pi.

Aplicações do Lynis

O Lynis é um software bastante flexível, sendo utilizado em várias tarefas relacionadas à segurança, como:

  • Auditoria de Segurança
  • Testes de Compliance
  • Detecção de Vulnerabildades
  • Hardening de Sistemas

E muitas outras tarefas.

Obtendo e executando o Lynis

Vou demonstrar o uso básico do Lynis em uma máquina que executa o Linux Debian. Ele pode ser obtido e instalado de várias formas diferentes, descritas a seguir:

  • Download direto (esta é a forma que iremos utilizar)
  • Repositório Git
  • Gerenciadores de pacotes (não recomendada, pois a versão pode ser muito desatualizada)
  • Homebrew (para usuários de Mac OS X)

Siga os passos a seguir para obter e executar o pacote (tem de ser root para usar o software): 1. Entre no diretório /usr/local/ para baixar o software: cd /usr/local/ 2. Baixe o pacote usando o comando a seguir: wget https://cisofy.com/files/lynis-2.1.1.tar.gzAuditoria de servidores com Lynis - Download no Linux Debian3. Descompacte o arquivo baixado: tar -xvzf  lynis-2.1.1.tar.gz 4. Entre no diretório da aplicação criado: cd lynis 5. Agora vamos executar a aplicação pela primeira vez. Para isso, basta rodar o comando ./lynis seguido das opções desejadas. Vou usar a opção de modo rápido (quick mode), que não necessita de interação do usuário. Para isso emita o comando a seguir: ./lynis --quick E agora é só aguardar enquanto os testes são realizados. Você pode acompanhar no terminal o andamento de cada teste:Auditoria de Unix e Linux com Lynis - Teste Rápido

Steghide – Esteganografia no Linux (esconder dados em imagens e outros arquivos)

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/steghide-esteganografia-no-linux-esconder-dados-em-imagens-e-outros-arquivos/

Por: Gabriela Parente

Para o Site: Techmovie

Esteganografia com steghide

O steghide é um software para esteganografia, que roda em Linux, e que pode ser utilizado para ocultar dados secretos em diversos tipos de arquivos de áudio e imagens. Com o steghide é possível comprimir os dados incorporados, além de criptografá-los e realizar verificação de integridade por meio de checksums. Os formatos de arquivo portador suportados pelo steghide são os seguintes: JPEG, BMP, WAV e AU. Sintaxe do steghide: steghide comando [argumentos]

Comandos principais: embed, --embed Incorporar os dados secretos em um arquivo portador, criando um arquivo esteganografado.

extract, --extract Extrair os dados secretos de um arquivo esteganografado info, --infoMostrar informações sobre um arquivo (portador ou esteganografado) encinfo, --encinfoMostrar uma lista de algoritmos de criptografia e os modos que podem ser usados. Não precisa de argumentos. version, --version Mostrar informações resumidas da versão do softrware.Também Não precisa de argumentos. license, --license Mostrar a licença do steghide. Não precisa de argumentos. help, --help Mostrar a ajuda. Não precisa de argumentos. Para ocultar uma mensagem em um arquivo de imagem ou som, usamos o comando embed seguido dos argumentos apropriados. Os principais argumentos são os seguintes: -ef, --embedfile arquivo Especificar o arquivo que será incorporado ou seja, o arquivo que contém a mensagem secreta. Se este argumento for omitido ou o nome do arquivo for o caractere -, os dados secretos serão lidos diretamente da entrada padrão (teclado). -cf, --coverfile arquivo Especificar o arquivo portador que será usado para incorporar os dados secretos. Esse arquivo deve estar em um dos formatos a seguir: AU, BMP, JPEG ou WAV. Se este argumento for omitido ou o nome do arquivo for o caractere -, o steghide lerá o arquivo portador a partir da entrada padrão. -sf, --stegofile nome_arquivoEspecificar o nome para o arquivo esteganografado que será criado. Se não for especificado um nome, então os dados secretos serão incorporados diretamente no arquivo portador sem salvá-lo com outro nome. -e, --encryption algoritmo [ modo ] | modo [ algoritmo ]Especificar os parâmetros de criptografia. Esta opção deve ser seguida por uma ou duas strings que identifiquem um algoritmo de criptografia e/ou modo. Use o comando encinfo para obter os nomes de todos os algoritmos de criptografia disponíveis e modos suportados. A criptografia padrão é a Rijndael-128 (AES), no modo CBC. Caso você não queira usar criptografia, use o argumento -e none -z, --compress nível Especificar o nível de compressão. O nível de compressão pode ser qualquer número entre 1 e 9, onde 1 significa mais velocidade e 9 significa melhor compressão. -Z, --dontcompress Não comprimir os dados secretos antes de incorporá-los.it. -K, --nochecksum Não embutir um checksum CRC32 checksum. -N, --dontembedname Não embutir o nome do arquivo que contém a mensagem secreta. Ao usarmos essa opção, o extrator precisará especificar um nome de arquivo para que o steghide saiba onde escrever os dados. Para extrairmos uma mensagem oculta de um arquivo esteganografado usamos o comando extract, que possui os argumentos a seguir: sf, --stegofile arquivo Especificar o arquivo esteganografado (que contém os dados secretos embutidos). Se este argumento for omitido ou o nome do arquivo for o caractere -, o steghide lerá o arquivo esteganografado a partir da entrada padrão. -xf, --extractfile arquivo Permite criar um arquivo com o nome fornecido e então escrever os dados secretos que estão embutidos no arquivo esteganografado nesse arquivo. Se este argumento for omitido, os dados incorporados serão salvos no diretório atual com seu nome original. Opções comunsHá algumas opções comuns que podem ser usadas em conjunto com todos os comandos (obviamente quando a operação for aplicável). São elas: -p, --passphrase string Usar a string como passphrase. Se a passphrase contiver espaços, use aspas para envolvê-la toda, como no exemplo -p "esta é minha passphrase". -v, --verbose Mostrar informações detalhadas sobre o status do processo de incorporação ou extração dos dados. -q, --quiet Não mostrar mensagens informativas. -f, --force Sempre sobrescrever arquivos existentes.

Instalação do steghide:

Para instalar o programa use o comando a seguir (sistemas Debian e derivados; estou usando o Kali Linux):

apt-get install steghide

Exemplos de uso:

Vamos a alguns exemplos do uso do steghide. Para isso vou usar uma fotografia do Jardim Botânico de São Paulo, em um arquivo de nome jardim-botanico.JPG, que pode ser vista a seguir, como imagem portadora da mensagem oculta:Jardim Botânico de São PauloPodemos ver do lado direito da tela as propriedades da imagem, que compararemos posteriormente com a imagem esteganografada. A mensagem que irei incorporar será salva em um arquivo de nome "mensagem.txt", no mesmo diretório da imagem, e tem o conteúdo a seguir (citação de Carl Sagan):

Saber muito não lhe torna inteligente. A inteligência se traduz na forma que você recolhe, julga, maneja e, sobretudo, onde e como aplica esta informação.

Vamos aos comandos. 1. Ocultar a mensagem na imagem:

steghide embed -cf jardim-botanico.JPG -ef mensagem.txt

Steghide no Linux - ocultando mensagemMensagem ocultada na imagem. Caso queira criar uma nova imagem com mensagem oculta sem alterar a imagem original, basta acrescentar a opção -sf seguida do nome desejado para o novo arquivo:

steghide embed -cf jardim-botanico.JPG -ef mensagem.txt -sf novo-arquivo.JPG

Vamos ver as propriedades da imagem agora:Jardim Botânico - Esteganografia com steghide no LinuxNote que a imagem aparentemente continua a mesma, sendo impossível detectar qualquer alteração somente olhando para ela. A única diferença em relação à imagem original é que o tamanho do arquivo mudou - era 51,7 KB e agora é de 51,8 KB. 2. Obter informações sobre o arquivo esteganografado (pressione "y" quando solicitado e informa a passphrase para obter informações sobre a mensagem embutida):

steghide info jardim-botanico.JPG

Obtendo dados de um arquivo esteganografado com steghide no Linux3. Extrair a mensagem da imagem:

steghide extract -sf jardim-botanico.JPG

Steghide no Linux Kali - Extraindo dados secretos4. Mostrar informações sobre os algoritmos de criptografia e modos suportados:

steghide encinfo

Steghide - Algoritmos de criptografia e modos suportados

Gpg4Win - Criando um par de chaves  OpenPGP com o Kleopatra

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/gpg4win-criando-um-par-de-chaves-openpgp-com-o-kleopatra/

Por: Gabriela Parente

Para o Site: Techmovie

Criando um certificado OpenPGP com o Kleopatra

Nesta lição vamos mostrar como gerar um par de chaves - pública e privada - usando o gerenciador de certificados Kleopatra. Em um sistema de criptografia assimétrica usamos a chave público do destinatário para criptografar a mensagem a ser enviada, e a chave privada para decriptar a informação criptografada. Um certificado OpenPGP contém as chaves pública  e privada do usuário. Para criar esse certificado, primeiramente vamos abrir o Kleopatra. Clique no  "Menu Iniciar", localize a pasta Gpg4Win, abra-a e clique sobre o item Kleopatra:

15-gpg4win-abrir-kleopatra

Será aberta a janela do aplicativo. Aqui podemos efetuar inúmeras tarefas de gerenciamento de certificados e chaves, como importar, como exportar, gerar um novo certificado e muito mais. 

16-gpg4win-kleopatra

Vamos começar criando um novo par de chaves OpenPGP. Para isso clique no menu File e escolha a opção New Certificate...

17-gpg4win-kleopatra-novo-certificado

Será aberto o assistente para criação de certificados. Nesta tela podemos escolher se criaremos um par de chaves pessoais OpenPGP ou um par de chaves X.509 e uma requisição de certificado. Vamos clicar sobre a primeira opção, "Criação a personal OpenPGP key pair":

18-gpg4win-kleopatra-novo-certificado-openpgp

Na tela seguinte vamos entrar com os detalhes pessoais para a criação das chaves. Digite seu nome completo e seu e-mail. Opcionalmente, você pode também digitar um comentário. No meu exemplo, escrevi "Bóson Treinamentos" no campo de comentário (Comment). É possível ajustar detalhes mais específicos sobre as chaves clicando no botão Advanced Settings...

Ao clicar em Advanced Settings... será mostrada a janela a seguir, que nos permite escolher o tipo de chave (RSA ou DSA), seu comprimento em bits, e especificar o uso do certificado - Assinatura, Criptografia, Certificação ou Autenticação. Também podemos determinar a validade das chaves marcando a caixa Valid until e escolhendo a data de expiração. Se desejado, faça alterações nesta tela. Eu não vou alterar nada, portanto apenas clicarei no botão Cancel. Após voltar à tela anterior e preencher as caixas de texto, clique no botão Next:20-gpg4win-kleopatra-certificado-configurações-avançadasRevise agora os parâmetros do certificado. Se tudo estiver de acordo, clique no botão Create Key para criar as chaves. Se algo estiver errado, cancele e retome o processo do início:21-gpg4win-kleopatra-parâmetros-certificado

 

Digite uma frase secreta (passphrase) para proteger sua chave privada. Clique em OK

após digitá-la.

22-gpg4win-kleopatra-chave-passphrase

E confirme a frase secreta, clicando em seguida em OK novamente.23-gpg4win-kleopatra-chave-passphrase

Muito bem! Seu par de chaves foi criado com sucesso! Você pode efetuar um backup das chaves, enviar o certificado por e-mail ou ainda fazer o upload do certificado para um serviço de diretório. No momento, vou apenas clicar em Finish para fechar o de certificados. assistente de criação 

 

Seu certificado criado, contendo ambas as chaves pública e privada, pode ser visto na janela do Kleopatra. Agora você já pode usá-lo para criptografar mensagens e também para receber e-mails seguros - desde que forneça sua chave pública a seus contatos ou publique-a em um servidor de chaves online.

 

Criptografia - Hashes MD5

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/criptografia-hashes-md5-e-rainbow-tables/

Por: Gabriela Parente

Para o Site: Techmovie

Hashes MD5 

Um Hashes MD5,  ou "Message Digest 5", é uma função de hash criptográfico já não muito usado atualmente. Ela produz um valor de hash de 32 caracteres hexadecimais (equivalente a 128 bits) independentemente do tamanho dos dados de entrada. Por isso trata-se de um Resumo (Digest) de 128 bits. Desenvolvida em 1991 por Ron Rivest, no MIT, seu código fonte pode ser encontrado na RFC 1321. A seguir temos um exemplo de hash MD5:

ce71c959b85d3b76daa12a09c531a774

 

Em 1996 uma falha foi encontrada no design do MD5. Apesar de não ser uma fraqueza fatal (na época), criptográficos começaram a recomendar o uso de outros algoritmos a partir de então.

Aplicações de um hash MD5 

Um hash pode ser usado em aplicações como:

  • Verificar se um arquivo transferido chegou intacto ao destino (""checksum" - MD5sum)
  • Armazenar hashes de senhas ("one-way has")

No mundo real não se recomenda usar o MD5 para essas aplicações, pois sua segurança está severamente comprometida. Existe um ataque de colisão que pode encontrar colisões em segundos mesmo em um computador simples, por exemplo com uma CPU Pentium 4 ou mais recente.

Efeito avalanche

Damos o nome de "Efeito avalanche" ao que ocorre com o hash quando uma minúscula mudança no texto original provoca uma mudança brutal no resultado computado no hash. Veja o seguinte exemplo: MD5 (Gabriela) = ce71c959b85d3b76daa12a09c531a774  MD5 (Gabriela) = "a" (sem acento), e o resultado final do hash mudou completamente. Desta forma, não há relação entre o conteúdo gerado na saída e os dados de entrada que originaram o hash.

Segunrança MD5 

A Segurança MD5 está fortemente comprometida. Ele é vulnerável a ataques de colisão, mesmo usando máquinas comuns com poder de processamento médio. Um ataque de colisão em um hash criptográfico é um tipo de ataque onde se tenta encontrar duas entradas que produzam o mesmo de hash na saída. Se esses valores são encontrados, dizemos que houve uma "colisão". Desde o ano de 2004 sabemos que os hashes MD5 não são resistentes à colisão, e por isso eles jamais devem ser utilizados em aplicações como certificados SSL ou assinaturas digitais, por exemplo. Outro problema grave, relativo ao uso de hashes MD5 para armazenar senhas, é o uso de Rainbow Tables para reverter um hash e descobrir a string que o originou. Vamos abordar o uso de Rainbow Tables em nosso próximo artigo sobre hashes.

Gerando um hash MD5 no Linux

Podemos gerar um hash MD5 no Linux usando o utilitário md5sum. Veja os exemplos a seguir: 1 -  Gerar hash de uma palavra ou frase digitada diretamente no terminal:

echo -n Texto | md5sum

2 - Gerar hash MD5 de um texto ou arquivo salvo no computador:

md5sum arquivo_teste

Gerando Hashes MD5 no Windows

Podemos gerar um hash no Windows  usando vários programas, como por exemplo o WinMD5Free (para arquivos), que pode ser encontrado no site http://www.winmd5.com/ Existe também o File Checksum Integrity Verifier (FCIV), que é um utilitário de prompt de comandos para computar e verificar hashes criptográficos (MD5 e SHA-1) em arquivos. Você pode se informar sobre esse utilitário na página oficial de suporte da Microsoft: http://support.microsoft.com/kb/841290

Criptografia - Cifra de César

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/criptografia-cifra-de-cesar/

Por: Gabriela Parente

Para o Site: Techmovie

Júlio César

Julio César

Cifra de César é uma técnica de criptografia bastante simples e provavelmente a mais conhecida de todas. Trata-se de um tipo de cifra de substituição, na qual cada letra de um texto a ser criptografado é substituída por outra letra, presente no alfabeto porém deslocada um certo número de posições à esquerda ou à direita. Por exemplo, se usarmos uma troca de quatro posições à esquerda, cada letra é substituída pela letra que está quatro posições adiante no alfabeto, e nesse caso a letra A seria substituída pela letra E, B por F, G, e assim sucessivamente. A cifra de César recebe esse nome pois, segundo o escritor Suetônio, foi utilizada por Júlio César para se comunicar com seus generais, protegendo mensagens militares. Essa cifra é uma cifra de substituição monoalfabética, o que significa que cada letra do texto plano é substituída por uma outra letra do alfabeto no texto criptografado (cifrado), de forma constante (sempre as mesmas letras são utilizadas). Por conta disso, ela acaba sendo extremamente simples de ser decifrada e nunca é utilizada na prática, pois não possui absolutamente nenhuma segurança. Seu valor está em aplicações educacionais e recreativas apenas. Como o texto cifrado acaba tendo exatamente o mesmo número de caracteres do texto plano, também classificamos a cifra de César como monogrâmica, sendo então classificada classificada mais corretamente como Cifra de Substituição Monoalfabética Monogrâmica.

Exemplo:

Cifra de César - Fernando Pessoa Criptografado

Criptografia - Cifra de Vigenère

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/criptografia-cifra-de-vigenere/

Por: Gabriela Parente

Para o Site: Techmovie

Cifra de Vigenère

A Cifra de Vigenère é uma técnica de criptografia por substituição polialfabética que utiliza uma série de Cifras de César diferentes, baseadas nas letras de uma palavra-chave. Esse método de criptografia foi descrito originalmente pelo criptologista italiano Giovan Battista Bellaso em um livro de 1553 de nome "La Cifra del. Sig. Giovan Battista Bellaso". Curiosamente, o método foi distribuído posteriormente - e de forma errônea - a Blaise de Vigenère no século XIX, e por isso é conhecida até os dias de hoje por "Cifra de Vigenère". Trata-se de uma cifra muito simples de entender, implementar e até mesmo quebrar, mas mesmo assim três séculos se passaram até que alguém conseguisse quebrá-la (decifrar mensagens). Chegou a receber a alcunha de "le chiffre indechiffrable" ("A Cifra Indrecifrável", em francês). Um método geral de decifrá-la foi publicado pelo criptógrafo e arqueólogo alemão Friedrich Kasisk em 1963 apenas. 

Funcionamento da cifra

Essa cifra consiste em várias cifras de César utilizadas em sequência, com valores de deslocamento diferentes e obtidos a partir de uma palavra-chave (uma espécie de "Senha"). A cifragem é realizada com uso de uma tabela de alfabetos, denominada tabula reta, ou "quadrado de Vigenère", que consiste no alfabeto escrito 26 vezes em linhas diferentes, cada um deslocado ciclicamente para a esquerda comparado com o alfabeto anterior, de forma a corresponder às 26 cifras de César possíveis. Durante o processo de criptografia, a cifra usa um alfabeto diferente de uma das linhas, e o alfabeto a ser utilizado em cada ponto depende da palavra-chave, que é repetida caso a mensagem a ser decifrada seja maior do que ela.

Quadrado de Vigenère

A figura a seguir mostra um quadrado de Vigenère, com as combinações de alfabetos 

Quadrado de Vigenère

Exemplo: Vamos encriptar a frase "Adoro programar", usando como palavra-chave a palavra "python". A palavra-chave deve ser repetida até completar o comprimento da mensagem a ser enviada, da seguinte forma:

A primeira letra do texto, que é a letra "a", é cifrada com o alfabeto da linha "p", que é a primeira letra da palavra-chave. Procuramos a letra na linha p que esteja na coluna a, que no caso é a letra "p". Esta será a primeira letra do texto cifrado. Passando para a segunda letra do texto normal, que é "d", procuramos a linha correspondente à letra "y", segunda letra da chave, e localizamos a letra que esteja na intersecção dessa linha com a coluna da letra procurada, d. No caso, a letra é "b", segunda letra do texto cifrado. E assim sucessivamente, até o final da cifragem. Para decriptar o texto, vamos à tabela na linha correspondente à chave, encontramos a letra do texto cifrado na linha, e então usamos o rótulo da coluna como texto plano (decriptado). No exemplo acima, na linha p (de python), a letra P do texto cifrado (primeira letra), aparece na coluna A, que é então a primeira letra do texto decifrado. Na linha da segunda letra da chave, y, encontramos a segunda letra do texto cifrado, b, que corresponde à coluna D - esta é a segunda letra do texto original - e assim sucessivamente até o final. Podemos testar a cifra de Vigenère usando uma ferramenta online para cifragem e decifragem no site:  http://www.vigenere.net/ Outro site muito interessante, que permite decifrar textos cifrados em Vigenère escolhendo idiomas-alvo (inglês, alemão ou espanhol) é o www.guballa.de/vigenere-solver Anterior: Cifra de César

Segurança - Exportando e Importando Chaves Públicas no Gpg4Win

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/seguranca/exportando-chaves-publicas-no-gpg4win/

Por: Gabriela Parente

Para o Site: Techmovie

Neste tutorial vamos mostrar o procedimento para exportar chaves públicas no Gpg4Win, utilizando o gerenciador de chaves Kleopatra. Você poderá dessa maneira exportar suas chaves públicas e distribuí-las para que outras pessoas possam enviar mensagens  criptografadas (ou arquivos) para você, e você também será capaz de criptografar e assinar arquivos a serem enviados para outras pessoas. Abra o Kleopatra a partir do menu Iniciar no Windows. No Kleopatra, clique com o botão direito do mouse sobre o certificado cuja chave pública você deseja exportar, e selecione a opção "Export Certificates" (atalho: Ctrl + E).

Exportando certificados no Gpg4Win

Você tem outra opção de clicar no botão "Export Certificates" na barra de ferramentas do Kleopatra:

Exportando certificados no Gpg4Win com Kleopatra

Selecione a pasta onde a chave pública será salva. Opcionalmente, você pode renomear o arquivo. Clique em "Salvar";

Salvando Chave Pública no Gpg4Win com Kleopatra

 

 

 

O que é RFC ( Request for Comments)?

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/o-que-e-um-rfc-request-for-comments/

Por: Gabriela Parente

Para o Site: Techmovie

Request for Comments - RFC

Os RFCs ("Request for Comments") são publicações que documentam os padrões, serviços  e protocolos oficiais da Internet, sendo mantidos pelo IETF - Internet Engineering Task Force ("Força-tarefa  de engenharia da Internet"), comunidade internacional aberta que desenvolve as especificações que se tornam padrões  da Internet. Muitos RFCs na verdade não são padrões oficiais, mas são publicados com propósitos informativos. Os RFCs podem conter uma página de informações ou várias centenas de páginas, dependendo da especificação, e são identificados por um número, como por exemplo RFC 3935 (esse, por exemplo, é a Declaração  da Missão do IETF). Esse número é atribuído sequencialmente a cada novo RFC publicado, e nunca é modificado; se um padrão necessitar de atualização de informações, então um novo RFC será gerado com as revisões necessárias. O próprio processo de padronização de um RFC é documentado por um RFC, de número 2026. A cada RFC é atribuído um status que diz respeito ao estado da padronização do protocolo. Os status podem ser: 

  • O Informacional (Informational)
  • Experimental (Experimental)
  • Melhor Prática Atual (Best Current Pratice/BCP)
  • Trilha dos Padrões (Standards Track)
  • Proposto (Proposed Standard)
  • Rascunho (Drafit Standard)
  • Padrão da Internet (Internet Standard)
  • Histórico (Historic)

 

Todos os RFCs podem ser consultados gratuitamente na Internet. Podemos acessar o repositório de RFCs no site rfc-editor.org, onde é possível buscar as RFCs por nome, palavra-chave, autor ou número clicando no link "Search RFCs". Veja um exemplo de busca de RFC na figura abaixo:

RFC Editor - Protocolo ICMP

Basta clicar em "PDF" na coluna "Files" para abrir e ler o RFC desejado. Segue abaixo uma tabela com alguns dos principais protocolos e padrões  e os números de seus respectivos RFCs:

Protocolo RFC
ARP 826
DHCP 2131
DNS 1034 e 1035
FTP 959
HTTP 1945
ICMP 792
IP 791
IPv6 2460
MD5 1321
NAT 3022
POP3 1939
SMTP 5321
SSH 4251
TCP 793
UDP 768

O que é uma interface de Loopback

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/o-que-e-uma-interface-de-loopback/

Por: Gabriela Parente

Para o Site: Techmovie

Interface de Loopback

Uma interface de loopback é uma interface de rede virtual que permite que um cliente e um servidor no mesmo host se comuniquem entre si usando a pilha de protocolos TCP/IP. Para a interface de loopback é reservado todo o bloco de endereços IP classe A com identificação de rede 127.0.0.0/8, e por convenção, a maioria dos sistemas atribuem o endereço IP 127.0.0.1 a esta interface (::1 em redes IPv6), além de usar o nome localhost para identificá-la. Um datagrama IP enviado à interface de loopback não deve aparecer em nenhuma rede, nem ser roteado para nenhum dispositivo de roteamento, devendo ser processado inteiramente dentro do próprio host que o originou. Se um pacote com destino a uma interface de loopback for recebido em uma interface, sem que tenha sido originado no mesmo host, deve ser descartado, pois pode se tratar de um pacote malicioso. Além disso, qualquer pacote enviado para um endereço IP do próprio host é enviado automaticamente para a interface de loopback. Veja na figura a seguir que pacotes enviados com o programa ping para o próprio IP da interface são processados pela interface de loopback (captura com Wireshark):

 

Interface de loopback no Wireshark

 

Porém, ao tentarmos capturar os mesmos pacotes usando a interface ethernet da máquina, nada é exibido, provando o processamento de pacotes no próprio host:

 

Interface de loopback no Wireshark com eth0

 

O mecanismo da interface de loopback pode ser usado para propósitos de testes de software ou de conectividade, permitindo verificar a funcionalidade de parte da pilha TCP/IP em uma máquina. Os pacotes enviados a uma interface de loopback nunca chegam à interface de rede física da máquina, o que permite inclusive testar software mesmo na ausência de tal interface de hardware. Abaixo temos a captura de tela de um pacote ICMP sendo enviado à interface de loopback de um computador usando o programa ping no prompt de comandos do Windows. Note o TTL de 128 e os tempos máximo, mínimo e médio de 0ms da transmissão:

Ping na interface de loopback do Windows

A interface de loopback aparece como se fosse uma camada de enlace para a camada de internet da pilha TCP/IP, de modo que a camada de internet (rede no modelo OSI) envia um datagrama IP para a interface de loopback como se estivesse enviando à camada de enlace normal, e a interface de loopback retorna o datagrama à fila de entrada da camada de internet. Veja na figura a seguir a saída do comando ifconfig lo no Linux, que mostra a configuração da interface de loopback do sistema:

 

Endereço de loopback no Linux com ifconfig

 

Note na figura o endereço 127.0.0.1 com a máscara de sub-rede 255.0.0.0 e o escopo da interface: Máquina, o que significa que os datagramas enviados a essa interface permanecem no host. Note também o MTU de 65536, bem diferente do usual para quadros Ethernet (1500). Algumas observações interessantes:

  • Tudo o que é enviado a um endereço de loopback é tratado como um pacote IP de entrada.
  • Tudo o que for enviado a um dos IPs do host a partir do próprio host é enviado à interface de loopback.
  • Pacotes que são enviados a endereços de broadcast ou de multicast são copiados para a interface de loopback e então enviados para a interface Ethernet do host.

Aplicações da interface de loopback

As principais aplicações de uma interface de loopback são:

  • Diagnóstico de problemas e troubleshooting
  • Testes de software e conectividade
  • Conexão a servidores que rodam na própria máquina.
  • Configuração de serviços (por exemplo, CUPS no Linux).

 

Por exemplo, podemos testar o funcionamento de um servidor SSH mesmo sem termos acesso a um cliente ssh de outra máquina no momento. Basta se conectar ao ssh usando o endereço de loopback, como ilustra a figura a seguir:

 

 

SSH na interface de loopback do Linux - Redes

 

O que é MTU – Maximum Transmission Unit

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/o-que-e-mtu-maximum-transmission-unit/

Por: Gabriela Parente

Para o Site: Techmovie

 

MTU - Maximum Transmission Unit

Existe um limite no tamanho dos dados transmitidos em uma rede que limita a quantidade de bytes que podem ser transmitidos em um único quadro. Para quadros padrão Ethernet esse limite é de 1500 bytes e para quadros 802.3 é de 1492 bytes. Esse limite, que é uma característica da camada de enlace, é conhecido como MTU, "Maximum Transmission Unit", ou "Unidade de Transmissão Máxima", e existe em diversos tipos de redes, não apenas redes locais Ethernet. Quando um datagrama a ser enviado em uma rede for maior do que o MTU da camada de enlace, o protocolo IP realizará a fragmentação dos dados, quebrando o datagrama em pedaços menores, chamados de fragmentos, cada um um com tamanho menor do que o MTU. Veja na tabela a seguir os valores típicos de MTU (Consultados no RFC 1191), Path MTU Discovery e outras fontes) usados em vários tipos de redes comuns:

Rede MTU (em bytes)
Hyperchannel 65535
WLAN 802.11 7981
Quadros Jumbo Ethernet 1501 - 9198
Tonken Ring 802.5 4464
FDDI 4352
Ethernet 1500
IEEE 802.3 / 802.2 1492
PPPoE 1492
X.25 576

Podemos descobrir o MTU usado nas interfaces de rede de um computador que rode o Windows executando o comando netsh no prompt, como segue: netsh interface ipv4 show subinterfaces.

Comando netsh mostrando o MTU das interfaces no Windows

Já no Linux basta usar o comando ifconfig: ifconfig

Comando ifconfig no Linux mostrando o MTU

Path MTU 

Quando dois hosts estão se comunicando entre si através de múltiplas redes, cada trecho de rede pode ter um MTU diferente devido às diversas tecnologias envolvidas em uma transmissão de dados de longa distância. Desta forma, o MTU das redes onde os hosts estão conectados não é tão importante quanto o menor MTU de qualquer trecho por onde os pacotes trafeguem entre esses dois hosts.Damos a esse MTU o nome de Path MTU (Caminho MTU). O caminho MTU é, portanto, o menor valor de MTU do caminho desde o endereço de origem até o endereço de destino. Assim, o caminho MTU é o maior valor que pode trafegar nessa rede sem que os pacotes sofram fragmentação. O valor do caminho MTU entre dois hosts não é necessariamente constante. Ele depende da rota que está sendo usada no momento. Além disso, o roteamento não precisa ser simétrico, de modo que o Path MTU não precisa ser o mesmo em ambas as direções - do host A para o host B e vice-versa.

Path MTU Discovery

A descoberta de caminho MTU é uma técnica que permite determinar o caminho MTU ideal entre dois hosts IP para evitar a fragmentação adicional dos datagramas IP. Essa técnica consiste em ligar o bit DF (Don´t Fragment) do cabeçalho IP dos datagramas transmitidos. Quando um dispositivo no caminho desse datagrama tiver um MTU menor do que o datagrama, esse pacote será descartado e será enviada a mensagem ICMP "Destino Inalcançável (Pacote muito grande)" de volta ao transmissor, contendo o MTU desse dispositivo. Essa informação permite que o host transmissor reduza o MTU da transmissão de forma apropriada. O processo se repete até que seja descoberto o menor MTU que permite a transmissão de dados pelo caminho todo sem que haja fragmentação.

Testando o MTU do caminho

Podemos testar o MTU do caminho entre dois hosts usando o comando ping. Para isso trabalharemos co duas opções do ping (válidas para sistemas Windows): -l tamanho-pacote Permite ajustar o tamanho (payload) do pacote enviado pelo ping para o valor tamanho-pacote -f  Habilita o bit DF no pacote transmitido (impedindo a fragmentação do pacote). Vamos a um exemplo. Primeiramente, vamos usar o ping para testar a conectividade com o site www.bosontreinamentos.com.br, porém enviando um pacote com 1500 bytes de tamanho: ping -l 1500 bosontreinamentos.com.brPing na bóson com payload de 1500 bytesOs pacotes foram enviados e recebemos a resposta como esperado. Porém, vamos agora desativar a fragmentação do pacote com a opção -f e tentar novamente enviar o payload de 1500 bytes: ping -l 1500 -f bosontreinamentos.com.brPing na bóson com bit DF desativado e payload de 1500 bytesNote que agora recebemos uma mensagem de erro dizendo que o pacote precisa ser fragmentado, mas a desfragmentação está ativa. Portanto, os 1500 bytes do payload do pacote fizeram com que o MTU do quadro fosse ultrapassado. Caso queira realizar o teste em uma máquina Linux, use as opções como segue: -M do  Não fragmentar o pacote -s tamanho-pacote justar o tamanho (payload) do pacote enviado pelo ping para o valor tamanho-pacoteVeja o resultado em um computador com Kali Linux:Ping na Bóson com payload de 1500 e bit DF desativado no LinuxO tamanho máximo de payload que consegui transmitir na rede com a fragmentação desativada foi de 1472 bytes - lembrando que o MTU da rede é de 1500 bytes:Payload mínimo transmitido em uma rede Windows MTU

Curso de Redes – Protocolo ARP – Address Resolution Protocol

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-arp-address-resolution-protocol/

Por: Gabriela Parente

Para o Site: Techmovie

Protocolo ARP: Address Resolution Protocol

Quando um quadro Ethernet é enviado de um host para outro em uma rede, é o endereço físico de 48 bits (MAC Address) que determina para qual interface o quadro é destinado. O software do driver de dispositivo não verifica o endereço IP dentro do datagrama. Como, então, podemos realizar a conexão entre dois hosts se no pacote temos endereços IP de origem e destino, mas precisamos dos endereços físicos das interfaces de rede envolvidas? O protocolo ARP fornece resolução dinâmica de endereços, que é um mapeamento entre as duas firmas de endereçamento distintas: endereços IP, e qualquer outro tipo de endereço usado na camada de enlace. No caso dos quadros Ethernet, a camada de enlace usa o MAC Address (Media Access Control), endereço físico da interface. O ARP, portanto, é um protocolo que permite obter o MAC Address de uma interface a partir de seu endereço IP. Existe também um outro protocolo que permite realizar o mapeamento inverso, ou seja, obter o endereço IP a partir de um MAC Address. Esse protocolo é conhecido por RARP (Reverse Address Resolution Protocol). A idéia principal do protocolo ARP é que a interface de rede possui um endereço de hardware (endereço físico de 48 bits). Quando quadros são trocados entre duas interfaces de rede, eles devem ser endereçados às interfaces físicas corretas. Porém, a pilha TCP/IP possui seu próprio esquema de endereçamento, que consiste em endereços IP de 32 bits (IPv6 utiliza endereços de 128 bits). Portanto, saber apenas o endereço IP de um host não é suficiente para que seja possível enviar um quadro ao host. O driver Ethernet precisa conhecer o endereço físico de destino para que seja possível enviar os dados. É aí que entra o protocolo ARP - fornecer um mapeamento dinâmico entre os endereços IP e os endereços físicos (MAC) utilizados na transmissão de dados.

Tipos de Mensagens ARP

Há dois tipos diferentes de mensagens enviadas pelo protocolo ARP, uma da origem ao destino, e outra do destino à origem. Para cada mensagem ARP, definimos como remetente quem transmite a mensagem e alvo quem deve recebê-la. As mensagens são:

  • ARP Request (Requisição ARP): Mensagem enviada requisitando a resolução de um endereço IP em endereço físico.
  • ARP Reply (Resposta ARP): Mensagem de resposta ao ARP Request, contendo o endereço físico resolvido.

Formato do Pacote ARP

A figura a seguir mostra o formato de um pacote ARP, quando usado usado em uma rede Ethernet para realizar resolução de endereço IP:Curso de Redes - Pacote ARPA descrição de cada campo é dada seguir: HTYPE - Hardware Type (Tipo de hardware): Especifica o tipo de protocolo da rede, como Ethernet, cujo valor é 1. Outros tipos comuns incluem Frame Relay (15), ATM (16) e HDLC (17). PTYPE - Protocol Type (Tipo de Protocolo): Especifica o protocolo da camada de internet para o qual a requisição do ARP é direcionada.O valor para o protocolo IPv4 é 0x0800. HLEN - Hardware Length (Comprimento do Hardware): Tamanho do endereço de hardware, em grupos de oito bits (octetos). Um MAC Address Ethernet tem o tamanho de 6. PLEN - Protocol Length (Comprimento do Protocolo): Tamanho, em octetos, do endereço especificado no campo PTYPE. Para o protocolo IPv4, o tamanho é 4OPER - Operation (Operação): Tipo de operação que o transmissor está realizando, sendo o valor 1 para ARP Request (Requisição ARP), e 2 para ARP Reply (Resposta ARP). SHA - Sender Address Hardware (Endereço Físico do Remetente): Endereço MAC do transmissor. Quando se trata de um pacote ARP Request, contém o endereço físico do remetente. Já em uma mensagem ARP Reply, contém o endereço físico procurado (resolvido). SPA - Sender Protocol Address (Endereço do Remetente): Endereço da camada de internet do remetente (IP) THA - Target Hardware Address (Endereço de Hardware do Alvo): Endereço físico do destinatário pretendido. Esse campo é ignorado em um pacote ARP Request (por razões óbvias), e em um pacote ARP Reply contém o endereço físico do host que originou a requisição ARP. TPA - Target Protocol Address (Endereço de Protocolo do Alvo): Endereço da camada de internet (IP) do destinatário pretendido.

Cache ARP

Para que o protocolo ARP possa operar de forma eficiente é necessária a manutenção de um cache ARP em cada host. Esse cache mantém os mapeamentos de endereços mais recentes de IPs para endereços MAC na memória do host, possuindo um tempo de expiração para cada entrada no cache de 20 minutos a partir do momento em que a entrada foi adicionada. Podemos examinar o cache ARP usando o comando arp -a em um prompt. A opção -a é utilizada para mostrar todas as entradas presentes no cache: arp -aComando arp -a no WindowsNote que a saída gerada pelo comando nos mostra três colunas de informações, contendo os endereços IPs de vários hosts, seus endereços físicos em notação hexadecimal, e o tipo da entrada, que pode ser dinâmica ou estática:

  • Entradas de Cache ARP Estáticas: Resoluções de endereços que são adicionadas manualmente à tabela de cache, e mantidas de forma permanente
  • Entradas de Cache ARP Dinâmicas: Resoluções de endereços que são adicionadas de forma dinâmica à tabela de cache, como resultado de resoluções ARP completadas com sucesso. São transitórias, e removidas após um período de tempo.

Captura de Pacotes ARP

Para demonstrar o funcionamento do protocolo ARP, realizei a captura de pacotes trocados entre dois hosts por meio do comando ping, usando o software analisador de pacotes Wireshark. Usei duas máquinas Windows cujos IPs são 10.24.67.21 (remetente) e 10.24.67.20 (destinatário). Após a troca de pacotes ICMP com o ping, paramos a captura dos pacotes e aplicamos um filtro para exibição apenas dos pacotes ARP. Veja o resultado:Captura de pacotes ARP com WiresharkNote que o primeiro pacote ARP transmitido (ARP Request) foi enviado em broadcast, e na coluna Info do Wireshark pode-se ler a informação "Who has 10.24.67.20? Tell 10.24.67.21", que significa que o host 10.24.67.21 está tentando descobrir quem é a máquina 10.24.67.20. O segundo pacote mostra a resposta do host 10.24.67.20 contendo a informação desejada - no caso, o endereço MAC da interface, que é 70:71:bc:58:de:7c. Os dois pacotes seguintes mostram o processo inverso, onde a máquina 10.24.67.20 usa o ARP para descobrir o MAC Address do primeiro host. Podemos também abrir um desses pacotes para analisar o conteúdo da mensagem ARP trocada. Vamos analisar o conteúdo do primeiro pacote, que foi um ARP Request entre os hosts:Captura de pacote ARP com Wireshark e análise do protocoloVamos analisar as informações contidas nesse pacote:

  • Tipo de mensagem: Request
  • Tipo de Hardware: Ethernet (1)
  • Tipo de Protocolo: IP (0x0800)
  • Tamanho do Endereço de Hardware: 6 octetos (48 bits)
  • Tamanho do Endereço do Protocolo: 4 octetos (32 bits)
  • Operação (Opcode): Request (1)
  • MAC Address do remetente: 08:00:27:66:ca:2e
  • Endereço IP do remetente: 10.24.67.21
  • MAC Address do alvo: 00:00:00:00:00:00
  • Endereço IP do alvo: 10.24.67.20

Note o endereço MAC do host alvo: 00:00:00:00:00:00. O valor é todo em zeros pois esta é justamente a informação que o pacote ARP deve descobrir, realizando a resolução do IP-alvo para o MAC Address solicitado.

Proxy ARP

O protocolo ARP não fornece nenhum tipo de método de autenticação dos pacotes ARP Reply recebidos em uma rede, e por conta disso as respostas do ARP podem vir de outra rede distinta da rede onde a solicitação ARP é originada. Desta forma, um roteador pode responder às requisições ARP em uma das redes conectadas a ele feitas por um host em outra rede. Desta forma, o remetente das mensagens ARP pode "pensar" que o roteador é o host de destino, quando na verdade o host de destino está em outra rede conectada a outra interface do roteador. Desta forma, o roteador funciona como um agente de proxy para o host de destino, retransmitindo pacotes dele para outros hosts. Alguns dos usos mais comuns para a técnica de Proxy ARP são a conexão a redes dialup ou VPN, usar múltiplos IPs em um mesmo host, e em gateways de subrede transparentes.

ARP Probe

ARP Probe ("Sonda ARP") são pacotes especiais ARP Request transmitidos em broadcast com o campo SPA (Endereço IP do remetente) contendo o valor 0.0.0.0. Esse pacote é utilizado por um host que solicitou um endereço IPv4 de um servidor DHCP, ou após a configuração manual de IP no host, para verificar se o IP atribuído já está em uso na rede. Vamos ver esse pacote em serviço. Primeiramente, vou liberar a configuração de IP de minha máquina Windows com o comando ipconfig /release: ipconfig /release Agora minha máquina está sem IP:Comando ipconfig /release no WindowsMando renovar o IP da máquina (requisitar nova configuração do servidor DHCP) e capturo os pacotes com o Wireshark: ipconfig /renew E eis a captura dos pacotes ARP Probe realizada com o Wireshark:Pacotes ARP Probe com WiresharkVamos analisar alguns dos pacotes:

  • Pacote No. 15: A máquina manda um ARP Request na rede para descobrir quem é o host 10.24.67.1 - que é o servidor DHCP da minha rede.
  • Pacote No. 16: O servidor DHCP responde com seu MAC Address por meio de um ARP Reply.
  • Pacote No. 35: Após a troca de vários pacotes DHCP, o host cliente envia o pacote ARP Probe para a rede a fim de verificar se alguém já está usando o endereço 10.24.67.21, que foi oferecido pelo servidor DHCP.

Os pacotes foram filtrados por protocolo ARP, por isso aparecem apenas alguns na captura mostrada.

Segurança do Protocolo ARP

Existem algumas situações nas quais o protocolo ARP pode ser explorado de forma maliciosa, sendo a mais comum o uso da técnica de ARP Spoofing.

Curso de Redes – Protocolo ICMP – Internet Control Message Protocol

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-icmp-internet-control-message-protocol/

Por: Gabriela Parente

Para o Site: Techmovie

Protocolo ICMP - Internet Control Message Protocol

O Protocolo ICMP, cuja sigla significa "Protocolo de Controle de Mensagens da Internet", é um protocolo que comunica mensagens de erro e outras condições que requeiram atenção em uma rede. O protocolo IP, que fornece o mecanismo para entrega de datagramas entre dispositivos, carece dessa funcionalidade, e por isso o ICMP foi criado, sendo um protocolo extremamente importante por conta dessas capacidades. Geralmente as mensagens ICMP são tratadas na camada de Internet (IP) ou então na camada de Transporte (TCP ou UDP). Neste artigo vou tratar do protocolo ICMP "original", que chamamos hoje de ICMPv4. Com o advento do IPv6, uma nova versão do ICMP foi criada, sendo batizada como ICMPv6. Tratarei das características específicas do ICMPv6 em outro artigo. O protocolo ICMPv4 é tratado na RFC 792.

Mensagens ICMP

As mensagens ICMP são transmitidas em datagramas IP, conforme podemos ver a seguir:Pacote ICMP - Curso de RedesA mensagem ICMP em si é mostrada na figura a seguir. Ela contém os campos Tipo, Código, Checksum e Conteúdo:

Mensagem ICMP

Formato da Mensagem ICMP

Podem ser usados até 256 valores diferentes (8 bits) para o campo Tipo, que identifica a mensagem ICMP em particular. No protocolo ICMPv6 as classes de mensagens são separadas, de modo que os tipos de 0 a 127 são mensagens de erro, e os tipos de 128 a 255 são mensagens informativas. Já no protocolo ICMPv4 não é possível discernir a classe de mensagens dessa forma. Alguns tipos de mensagens possuem valores diferentes no campo Código para especificar com mais detalhes o tipo. É como uma espécie de "subtipo", e cada tipo de mensagem pode ter até 256 subtipos associados. Já o campo checksum (verificação de erros) trata da mensagem ICMP completa, incluindo o campo de conteúdo.

Classes de Mensagens ICMP

As mensagens ICMP podem ser divididas em duas grandes classes:

  • Mensagens de Erro: Usadas para informar a um dispositivo transmissor que um erro ocorreu durante a transmissão do datagrama. Geralmente os erros são relacionados à estrutura do datagrama em si, ou problemas encontrados durante o tráfego dos pacotes através da rede.
  • Mensagens de Informação (Consultas / Query): São mensagens que permitem aos dispositivos trocarem informações entre si e realizarem determinados tipos de testes e diagnósticos.

Existem algumas regras específicas que governam a forma como as mensagens de erro são geradas. Mensagens ICMP de erro NÃO são geradas nos seguintes casos:

  • Como resposta a outra mensagem de erro. Isso evita o surgimento de loops infinitos de mensagens de erro. Porém, mensagens de erro podem ser geradas em resposta a mensagens de informação.
  • Resposta a datagramas de Broadcast ou Multicast.
  • Resposta a datagramas cujo endereço IP de origem não seja um endereço unicast.
  • Em resposta a fragmentos de datagramas IP, exceto o primeiro - os demais fragmentos de um datagrama não geram mensagens de erro.

Cada mensagem de erro ICMPv4 inclui o cabeçalho IP completo do datagrama e os primeiros 8 bytes do payload (dados). Isso significa que a mensagem de erro inclui o cabeçalho UDP completo, ou os primeiros 8 bytes do cabeçalho TCP - dependendo do protocolo usado. Em ambos os casos, os números de portas de origem e destino são incluídos na mensagem. Vejamos os tipos e códigos de mensagens ICMP existentes. A tabela a seguir é baseada nos dados contidos na página "Parâmetros ICMP" da IANA:

Tipo Código Descrição
0 0 Echo Reply (Resposta de Eco, usado pelo comando ping)
3   Destino Inalcançável
0 Rede de destino inalcançável
1 Host de destino inalcançável
2 Protocolo de destino inalcançável
3 Porta de destino inalcançável
4 Fragmentação requerida, e bit DF configurado
5 Falha na rota de origem
6 Rede de destino desconhecida
7 Host de destino desconhecido
8 Host de origem isolado
9 Rede proibida administrativamente
10 Host proibida administrativamente
11 Rede inalcançável para TOS
12 Host inalcançável para TOS
13 Comunicação proibida administrativamente
14 Violação de precedência de Host
15 Corte de precedência em efeito
4 0 Fonte saciável (source quench) - Controle de fluxo elementar
5   Redirecionamento
0 Redirecionamento para rede
1 Redirecionamento para host
2 Redirecionamento para tipo de serviço e rede
3 Redirecionamento para tipo de serviço e host
7   Reservado (Não atribuído)
8 0 Echo Request (Requisição de Eco, usado pelo comando ping)
9 0 Anúncio de roteador
10 0 Solicitação de roteador
11   Tempo Excedido
0 TTL igual a 0 durante o trânsito
1 TTL igual a 0 durante reconstrução
12   Problema com parâmetros: Cabeçalho IP mal formado
0 Ponteiro indica o erro
1 Faltando opção requerida
2 Comprimento errado
13 0 Timestamp
14 0 Resposta do Timestamp
15 0 Pedido de informação
16 0 Resposta de informação
17 0 Requisição de máscara de endereço
18 0 Resposta de máscara de endereço
19   Reservado para segurança
20-29   Reservado para experimentos de robustez
30   Traceroute (deprecado)
31   Erro de Conversão de Datagrama (deprecado)
32   Redirecionamento de Host Móvel (deprecado)
33   IPv6 Where-are-you (deprecado)
34   IPv6 I-am-here (deprecado)
35   Requisição de Registro Móvel (deprecado)
36   Resposta de Registro Móvel (deprecado)
37   Requisição de Nome de Domínio (deprecado)
38   Resposta de Nome de Domínio (deprecado)
39   SKIP (deprecado)
40   Photuris (deprecado) (RFC 2521)
41   Mensagens ICMP para protocolos de mobilidade experimentais (RFC 4065)
42-252   Não atribuídos
253   Experimento 1 RFC 3692
254   Experimento 2 RFC 3692
255   Reservado

Protocolo ICMP - Internet Control Message Protocol

O Protocolo ICMP, cuja sigla significa "Protocolo de Controle de Mensagens da Internet", é um protocolo que comunica mensagens de erro e outras condições que requeiram atenção em uma rede. O protocolo IP, que fornece o mecanismo para entrega de datagramas entre dispositivos, carece dessa funcionalidade, e por isso o ICMP foi criado, sendo um protocolo extremamente importante por conta dessas capacidades. Geralmente as mensagens ICMP são tratadas na camada de Internet (IP) ou então na camada de Transporte (TCP ou UDP). Neste artigo vou tratar do protocolo ICMP "original", que chamamos hoje de ICMPv4. Com o advento do IPv6, uma nova versão do ICMP foi criada, sendo batizada como ICMPv6. Tratarei das características específicas do ICMPv6 em outro artigo. O protocolo ICMPv4 é tratado na RFC 792.

Mensagens ICMP

As mensagens ICMP são transmitidas em datagramas IP, conforme podemos ver a seguir:Pacote ICMP - Curso de RedesA mensagem ICMP em si é mostrada na figura a seguir. Ela contém os campos Tipo, Código, Checksum e Conteúdo:

Mensagem ICMP

Formato da Mensagem ICMP

Podem ser usados até 256 valores diferentes (8 bits) para o campo Tipo, que identifica a mensagem ICMP em particular. No protocolo ICMPv6 as classes de mensagens são separadas, de modo que os tipos de 0 a 127 são mensagens de erro, e os tipos de 128 a 255 são mensagens informativas. Já no protocolo ICMPv4 não é possível discernir a classe de mensagens dessa forma. Alguns tipos de mensagens possuem valores diferentes no campo Código para especificar com mais detalhes o tipo. É como uma espécie de "subtipo", e cada tipo de mensagem pode ter até 256 subtipos associados. Já o campo checksum (verificação de erros) trata da mensagem ICMP completa, incluindo o campo de conteúdo.

Classes de Mensagens ICMP

As mensagens ICMP podem ser divididas em duas grandes classes:

  • Mensagens de Erro: Usadas para informar a um dispositivo transmissor que um erro ocorreu durante a transmissão do datagrama. Geralmente os erros são relacionados à estrutura do datagrama em si, ou problemas encontrados durante o tráfego dos pacotes através da rede.
  • Mensagens de Informação (Consultas / Query): São mensagens que permitem aos dispositivos trocarem informações entre si e realizarem determinados tipos de testes e diagnósticos.

Existem algumas regras específicas que governam a forma como as mensagens de erro são geradas. Mensagens ICMP de erro NÃO são geradas nos seguintes casos:

  • Como resposta a outra mensagem de erro. Isso evita o surgimento de loops infinitos de mensagens de erro. Porém, mensagens de erro podem ser geradas em resposta a mensagens de informação.
  • Resposta a datagramas de Broadcast ou Multicast.
  • Resposta a datagramas cujo endereço IP de origem não seja um endereço unicast.
  • Em resposta a fragmentos de datagramas IP, exceto o primeiro - os demais fragmentos de um datagrama não geram mensagens de erro.

Cada mensagem de erro ICMPv4 inclui o cabeçalho IP completo do datagrama e os primeiros 8 bytes do payload (dados). Isso significa que a mensagem de erro inclui o cabeçalho UDP completo, ou os primeiros 8 bytes do cabeçalho TCP - dependendo do protocolo usado. Em ambos os casos, os números de portas de origem e destino são incluídos na mensagem. Vejamos os tipos e códigos de mensagens ICMP existentes. A tabela a seguir é baseada nos dados contidos na página "Parâmetros ICMP" da IANA:

Tipo Código Descrição
0 0 Echo Reply (Resposta de Eco, usado pelo comando ping)
3   Destino Inalcançável
0 Rede de destino inalcançável
1 Host de destino inalcançável
2 Protocolo de destino inalcançável
3 Porta de destino inalcançável
4 Fragmentação requerida, e bit DF configurado
5 Falha na rota de origem
6 Rede de destino desconhecida
7 Host de destino desconhecido
8 Host de origem isolado
9 Rede proibida administrativamente
10 Host proibida administrativamente
11 Rede inalcançável para TOS
12 Host inalcançável para TOS
13 Comunicação proibida administrativamente
14 Violação de precedência de Host
15 Corte de precedência em efeito
4 0 Fonte saciável (source quench) - Controle de fluxo elementar
5   Redirecionamento
0 Redirecionamento para rede
1 Redirecionamento para host
2 Redirecionamento para tipo de serviço e rede
3 Redirecionamento para tipo de serviço e host
7   Reservado (Não atribuído)
8 0 Echo Request (Requisição de Eco, usado pelo comando ping)
9 0 Anúncio de roteador
10 0 Solicitação de roteador
11   Tempo Excedido
0 TTL igual a 0 durante o trânsito
1 TTL igual a 0 durante reconstrução
12   Problema com parâmetros: Cabeçalho IP mal formado
0 Ponteiro indica o erro
1 Faltando opção requerida
2 Comprimento errado
13 0 Timestamp
14 0 Resposta do Timestamp
15 0 Pedido de informação
16 0 Resposta de informação
17 0 Requisição de máscara de endereço
18 0 Resposta de máscara de endereço
19   Reservado para segurança
20-29   Reservado para experimentos de robustez
30   Traceroute (deprecado)
31   Erro de Conversão de Datagrama (deprecado)
32   Redirecionamento de Host Móvel (deprecado)
33   IPv6 Where-are-you (deprecado)
34   IPv6 I-am-here (deprecado)
35   Requisição de Registro Móvel (deprecado)
36   Resposta de Registro Móvel (deprecado)
37   Requisição de Nome de Domínio (deprecado)
38   Resposta de Nome de Domínio (deprecado)
39   SKIP (deprecado)
40   Photuris (deprecado) (RFC 2521)
41   Mensagens ICMP para protocolos de mobilidade experimentais (RFC 4065)
42-252   Não atribuídos
253   Experimento 1 RFC 3692
254   Experimento 2 RFC 3692
255   Reservado

As mensagens mostradas na tabela anterior podem ser categorizadas em dois grandes grupos: Perguntas e Erros. Os tipos de mensagens que são perguntas são as de números de tipo 0, 8, 9, 10, 13, 14, 15, 16, 17 e 18. As demais mensagens são mensagens de erro. Como existem literalmente dezenas de mensagens diferentes que podem ser geradas, iremos estudar apenas algumas delas mais a fundo.

Curso de Redes – Mensagens ICMP do tipo Destino Inalcançável

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-mensagens-icmp-do-tipo-destino-inalcancavel/

Por: Gabriela Parente

Para o Site: Techmovie

Mensagens ICMP do tipo Destino Inalcançável

O protocolo IP é um protocolo dito "não confiável", o que significa que não há nenhum tipo de garantia de que um pacote enviado a partir de um dispositivo chegará a seu destino. Por uma série de motivos, o pacote pode não ser entregue ao dispositivo de destino. Protocolos como o TCP (camada de transporte) e outros levam isso em consideração e fornecem confiabilidade e confirmação da recepção de dados em aplicações que precisem desses recursos. No geral esse procedimento é suficiente para que a transmissão dos pacotes ocorra tranquilamente. Porém, em alguns casos o problema pode se tornar mais grave - por exemplo, quando temos um problema permanente, como o envio de datagramas a um IP inexistente ou uma rota configurada incorretamente. Neste caso, será necessário mais do que simplesmente verificar se o pacote chegou e retransmiti-lo em caso negativo. É aí que entra o protocolo ICMP. Com o uso de mensagens do tipo Destino Inalcançável (Destination Unreachable), temos um mecanismo de retorno que informa a um dispositivo de origem que algo de errado está ocorrendo - e também o porquê desse erro. Assim, quando um dispositivo de origem (transmissor) recebe uma mensagem desse tipo, ele poderá decidir que ação tomar. As mensagens do tipo destino inalcançável sempre incluem uma parte do datagrama que não foi entregue, de modo que essa informação irá auxiliar o dispositivo de origem a descobrir o problema.

Formato da mensagem do tipo Destino Inalcançável

A figura abaixo mostra o formato de uma mensagem do tipo "Destination Unreachable"Mensagem ICMP - Destino Inalcançável 

Subtipos da mensagem Destino Inalcançável

Essa mensagem diz a um dispositivo que o datagrama enviado por ele não foi entregue por algum motivo, e a razão para essa não entrega é indicada pelo campo de código no cabeçalho ICMP da mensagem. Na tabela a seguir descrevemos todos os subtipos (códigos) existentes para a mensagem de tipo 3, destino inalcançável:

Código Mensagem Descrição
0 Rede de destino inalcançável O datagrama não pôde ser entregue à rede especificada no endereço IP. Pode ser um problema de roteamento ou endereço incorreto.
1 Host de destino inalcançável O datagrama foi entregue à rede especificada no endereço IP, porém não foi entregue ao host especificado no endereço. Geralmente, trata-se de um problema de roteamento.
2 Protocolo de destino inalcançável O protocolo especificado no campo de Protocolo é inválido para o host ao qual o datagrama foi entregue
3 Porta de destino inalcançável A porta de destino especificada no cabeçalho TCP ou UDP é inválida
4 Fragmentação requerida, e bit DF configurado Se a flag DF (Não Fragmentar) estiver ativa no cabeçalho IP do datagrama, o datagrama não deverá ser fragmentado. O roteador então deverá descartar o pacote caso seu tamanho exceda o MTU do próximo trecho de rede física. Usado geralmente no processo de Descoberta do Caminho MTU.
5 Falha na rota de origem Essa mensagem é gerada quando uma rota de origem é especificada para o datagrama mas um roteador não conseguiu encaminhar o datagrama ao próximo salto da rota.
6 Rede de destino desconhecida Não usado (0)
7 Host de destino desconhecido O host especificado é desconhecido. Gerado normalmente por um roteador no mesmo local do host de destino e significa um endereço incorreto.
8 Host de origem isolado Obsoleto
9 Rede proibida administrativamente O dispositivo de origem não possui permissão para enviar pacotes à rede onde o dispositivo de destino está localizado.
10 Host proibida administrativamente O dispositivo de origem possui permissão para enviar pacotes à rede onde o dispositivo de destino está localizado, porém não para o dispositivo em particular.
11 Rede inalcançável para TOS A rede especificada no endereço IP não pode ser alcançada devido à incapacidade de fornecer o serviço especificado no campo TOS (Tipo de Serviço) no cabeçalho do datagrama.
12 Host inalcançável para TOS O host de destino especificado no endereço IP não pode ser alcançado devido à incapacidade de fornecer o serviço especificado no campo TOS (Tipo de Serviço) no cabeçalho do datagrama.
13 Comunicação proibida administrativamente O pacote não pode ser encaminhado devido a um filtro que bloqueia a mensagem baseada em seu conteúdo.
14 Violação de precedência de Host Essa mensagem é enviada por um roteador no primeiro salto (o primeiro a manipular um pacote enviado) quando o valor de Precedência no campo TOS não é permitido.
15 Corte de precedência em efeito Enviado por um roteador ao receber um pacote cujo valor de Precedência é menor do que o mínimo permitido para a rede naquele momento.

Considerações Finais

Como sabemos, o protocolo IP é considerado um protocolo do tipo "melhor esforço", no sentido de que não há garantias de que os datagramas serão realmente entregues em seu destino. E as p´roprias mensagens ICMP são carregadas em datagramas IP, portanto, não há garantias de que as mensagens de erro ou informativas cheguem a seu destino também. Além disso, a própria mensagem  de destino inalcançável pode não ser gerada no roteador ou dispositivo de destino, por uma série de razões, e nesse caso é óbvio que o dispositivo transmissor nunca receberá mensagem alguma de erro. Por isso, devemos considerar que o envio das mensagens do tipo destino inalcançável é suplementar, e isso mostra a importância dos mecanismos de detecção e correção de erros presentes nas camadas de nível superior da pilha de protocolos.

Curso de Redes – Mensagens ICMP do tipo Source Quench – Controle de Fluxo Elementar

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-mensagens-icmp-do-tipo-source-quench-controle-de-fluxo-elementar/

Por: Gabriela Parente

Para o Site: Techmovie

Mensagens ICMP Source Quench

Quando um dispositivo (de origem) envia um datagrama em uma rede, espera-se que esse datagrama atravesse a rede e chegue a seu destino, onde será processado convenientemente. Quando o dispositivo de destino recebe datagramas em uma taxa de transmissão lenta, ele provavelmente consegue processá-los conforme os recebe, sem nenhum tipo de problema. Porém, é possível que a taxa de transmissão dos pacotes varie imensamente em uma rede, sendo que em muitos casos os datagramas são enviados em grandes quantidades de uma só vez, alternando picos de alto e baixo tráfego. Desta forma, em alguns momentos os pacotes chegam ao destino muito mais rapidamente do que em outros, e para lidar com essa situação cada dispositivo possui um buffer (memória temporária) onde os datagramas são mantidos por um período de tempo até que o dispositivo consiga processá-los. Esse buffer, contudo, possui um tamanho limitado. Em determinadas situações o tráfego recebido pelo dispositivo pode ser tão alto que o buffer é totalmente preenchido, o que levará fatalmente ao descarte dos próximos datagramas recebidos, tornando o dispositivo congestionado. Isso pode ocorrer em uma série de situações, tais como quando o dispositivo recebe datagramas oriundos de múltiplas fontes simultaneamente, ou quando um dos dispositivos que estão se comunicando é muito mais rápido do que o outro. Algumas falhas de hardware também podem ocasionar esse problema. Quando datagramas são descartados dessa forma, o dispositivo de origem não tem como saber o que está ocorrendo, pois o protocolo IP é não-confiável e sem confirmação. Desta forma, fica a cargo dos protocolos de camadas mais altas lidar com a situação - realizar o chamado "controle de fluxo" - ou então o próprio dispositivo congestionado deve fornecer um feedback para o dispositivo de origem, informando a respeito do problema de alto tráfego. Isso pode ser realizado por meio do envio de mensagens ICMPv4 chamadas de "Source Quench". Desta forma, o dispositivo congestionado indica ao dispositivo transmissor que ele está transmitindo rápido demais, e que é necessário diminuir a velocidade da transmissão de datagramas. O formato de uma mensagem ICMPv4 do tipo Source Quench, identificadas pelo tipo 4, com o código 0, pode ser visto na figura a seguir:Mensagem ICMPv4 do tipo Source QuenchAs mensagens Source Quench informam ao dispositivo de origem que o destino está congestionado, porém sem fornecer nenhuma informação específica sobre o problema, além de não especificar o que se espera que o dispositivod e origem faça, além de simplesmente diminuir a taxa de transmissão de seus datagramas. Além disso, não há uma mensagem específica que informa ao dispositivo de origem que o congestionamento de datagramas terminou e que ele pode voltar a transmitir em sua velocidade original. Assim, o tratamento de uma mensagem do tipo Source Quench fica totalmente a cargo do dispositivo de origem dos datagramas, o qual ao receber essas mensagens irá diminuir sua velocidade de transmissão, e então tentará retomar lentamente sua taxa de transmissão original aos poucos, caso pare de recebê-las. Devido a essa forma de funcionamento das mensagens Source Quench, o fluxo de controle fica geralmente a cargo da camada de transporte. O protocolo TCP possui um mecanismo de controle de fluxo muito mais efetivo do que as mensagens ICMP Source Quench. E, para finalizar, um aspecto negativo das mensagens Source Quench: elas podem ser usadas com intuito malicioso, podendo ser empregadas para diminuir a velocidade de transmissão de um host deliberadamente. Por isso, é sempre preferível se basear no controle de fluxo TCP, em vez de usar as mensagens ICMP do tipo estudado. Anterior: Mensagens ICMP do tipo Destino Inalcançável


Curso de Redes – Mensagens ICMP do tipo Time Exceeded (Tempo Excedido)

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-mensagens-icmp-do-tipo-time-exceeded-tempo-excedido/

Por: Gabriela Parente

Para o Site: Techmovie

Mensagens ICMP do tipo Time Exceeded (Tempo Excedido)

Em grandes redes podem existir inúmeros roteadores interconectados que encaminham datagramas entre os dispositivos em redes distintas. O número desses roteadores pode chegar a centenas, senão milhares de dispositivos. Por conta disso, a topologia dessas redes pode ser altamente complexa, tornando as tarefas de roteamento complicadas. Para realizar o roteamento de pacotes entre as redes os roteadores utilizam protocolos de roteamento, como o OSPF, os quais permitem encontrar as melhores rotas (caminhos) entre as redes. Porém, isso nem sempre ocorre, e em alguns casos uma rota não muito eficiente pode ser selecionada para um datagrama trafegar. Isso não costuma ser um problema, contudo, desde que os datagramas sejam entregues em suas redes de destino. Porém, em um caso extremos, pode ocorrer o chamado Loop de Roteamento, no qual um pacote fica circulando entre roteadores eternamente, sem que seja entregue em sua rede de destino. Por exemplo, o roteador 1 encaminha para o roteador 2 datagramas destinados à rede Z; o roteador 2 encaminha esses datagramas para o roteador 3, e o roteador 3 os encaminha de volta ao roteador 1. Perceba que nesse caso o datagrama ficou "preso" dentro da rede de roteadores, sem chance de ser entregue em algum momento à sua rede de destino. Esse é um grande problema, pois os datagramas que entram em um loop de roteamento consomem largura de banda e podem se acumular com o tempo, eventualmente tornando a rede inoperante por excesso de tráfego. Para evitar esse tipo de problema, cada datagrama IP possui um campo em seu cabeçalho denominado TTL - "Time to Live", ou "Tempo de Vida", cujo valor é ajustado pelo dspositivo de origem para um número que indica a quantidade de saltos que o datagrama poderá atravessar. O número de saltos é, basicamente, o número de roteadores pelos quais o datagrama poderá atravessar. Cada vez que o datagrama chega a um roteador, esse roteador decrementa o valor do TTL em seu cabeçalho IP. Caso o valor do TTL atinja zero, o datagrama terá expirado e será sumariamente descartado. Originalmente o campo TTL deveria limitar o tempo máximo, em segundos, que o datagrama poderia estar presente em uma rede, mas a forma de uso do campo neste caso acabou sendo modificada com o tempo. É aí que entra em ação o protocolo ICMP. Quando um datagrama é descartado por conta do TTL ter expirado, o roteador que o descartou informa ao dispositivo de origem a respeito enviando uma mensagem ICMPv4 do tipo Tempo Excedido (Time Exceeded). Quando o dispositivo de origem recebe essa mensagem, ele sabe que houve um problema de roteamento durante a transmissão do pacote, ou ainda que o valor do campo TTL foi ajustado para um valor muito baixo a princípio. Então, o dispositivo de origem poderá tomar uma ação, que pode ser reenviar o pacote (com um TTL mais alto), ou desistir.

Formato da mensagem Tempo Excedido

A figura a seguir ilustra o formato da mensagem ICMPv4 Time Exceeded:Mensagem ICMP do tipo Tempo Excedido - Time ExceededO campo Tipo possui o valor 11, e o campo Código pode ter os valores 0 ou 1, sendo que:

  • Valor 0: Indica expiração do campo TTL do datagrama IP;
  • Valor 1: Indica que o tempo de remontagem dos fragmentos foi excedido.

O caso do valor igual a 1 ocorre quando um datagrama IP é dividido em fragmentos (fragmentado). Neste caso, o dispositivo de destino tem a tarefa de remontar esses fragmentos para obter de volta a mensagem original. Porém, pode acontecer de um ou mais fragmentos não chegarem a seu destino, e para evitar que o dispositivo fique esperando esses fragmentos para sempre, um timer é ativado quando o primeiro fragmento chega. Se por acaso esse timer expirar antes que os outros fragmentos sejam recebidos, o dispositivo não mais esperará e a mensagem será descartada. E então, uma mensagem ICMPv4 do tipo Tempo Excedido será gerada. Note que nesse caso a mensagem é gerada pelo host de destino, e não por um roteador, como no caso do TTL decrementado até zero. Um outro uso muito importante e útil das mensagens "Tempo Excedido" é no comando traceroute (ou tracert), que é utilizada para mostrar a sequência de dispositivos por onde um datagrama passa em uma rota particular entre dois hosts, e o tempo que o datagrama leva para alcançar cada um desses saltos.

Curso de Redes – Como funciona o programa ping

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/como-funciona-o-programa-ping/

Por: Gabriela Parente

Para o Site: Techmovie

O programa ping

O programa ping, escrito por Mike Muus em 1983, é um utilitário que permite testar a conectividade entre dois hosts em uma rede. Ele funciona enviando uma mensagem ICMP do tipo Echo Request a um host, e espera o recebimento de uma mensagem ICMP do tipo Echo Reply em retorno. No geral, se você não conseguir "pingar" um host, significa que não há conectividade entre as máquinas envolvidas no processo. É um dos primeiros passos que tomamos para determinar qual o problema que afeta uma rede onde um ou mais hosts não conseguem se comunicar entre si, ou com a rede externa. Na figura a seguir podemos ver o formato das mensagens ICMP Echo Request e Echo Reply. O que as diferencia é o tipo - a mensagem Echo Request possui o tipo 8 e a Echo Reply, o tipo 0, ambas com código 0:ICMP - Mensagens Echo Request e Echo ReplyO Número de Sequência se inicia em 1 e é incrementado cada vez que uma nova mensagem Echo Request é enviada. o ping então mostra o número de sequência de cada datagrama retornado, de modo que podemos verificar se os pacotes se perderam, estão fora de ordem, ou ainda foram duplicados. Como sabemos, o protocolo IP é um serviço de entrega de datagramas do tipo "melhor esforço", de modo que qualquer uma dessas condições citadas pode vir a ocorrer. Além de mostrar o número de sequência, quando a mensagem de retorno Echo Reply é recebida, também são mostrados o TTL e o RTT (Round Trip Time) calculado. O ping calcula o RTT armazenando a hora na qual o pacote Echo Request é enviado na área de dados da mensagem ICMP. Então, quando a resposta Echo Reply é recebida, ele simplesmente subtrai esse valor de hora da hora atual (momento em que o datagrama é recebido). Erros e perda de pacotes também são relatados pelo comando ping. Veja na figura a seguir um exemplo do comando ping emitido para testar a conectividade com o host www.planetaunix.com.br (usando uma estação com Kali Linux) :Comando Ping no Kali LinuxVeja o mesmo comando sendo emitido a partir do prompt de comandos em uma estação com Windows 7:Comando ping no Windows 7Em ambos os casos emitimos o ping para uma URL (www.planetaunix.com.br),  podemos perceber que o endereço IP é resolvido e então utilizado para o envio das mensagens. Quando emitimos um comando ping, alguns segundos podem se passar antes da primeira linha de informações com o IP do host aparecer, sendo esse o tempo necessário para que o DNS determine o IP que corresponda ao hostname usado. Obviamente podemos pingar um endereço IP diretamente, se ele for conhecido. Note também que a saída padrão no Linux mostra o número de sequência de cada datagrama (campo icmp_seq=), ao passo que no prompt do Windows essa informação não é mostrada por padrão. As colunas time= e tempo= mostram o RTT do datagrama enviado (em milissegundos), ao passo que o TTL (43 no exemplo) é mostrado na coluna TTL (mesmo nome em ambos os sistemas). Já o campo bytes=32 mostra o tamanho da mensagem enviada - no caso, 32 bytes. Esse tamanho pode ser alterado por meio de opções do comando ping, que veremos mais adiante. Alterar a quantidade de bytes enviados pode ser muito útil para realização de testes específicos de conectividade. São mostradas também as estatísticas de envio dos pacotes, com dados sobre número de pacotes transmitidos, número de pacotes recebidos, pacotes perdidos e porcentagem de perda. Os RTTs mínimo, máximo e médio também são calculados e exibidos.

Sintaxe do comando ping

ping [opções] hostname ou endereço ip Opções comuns do programa ping no Windows:

-t
Dispara contra o host especificado até ser interrompido. Para ver as estatísticas e continuar, pressione Ctrl+Break; para parar, pressione Ctrl+C.
-a
Resolve endereços para nomes de host
-n Núm
Número de requisições de eco a serem enviadas (Núm)
-f
Ativa o sinalizador Don´t Fragment (Não Fragmentar) no pacote (somente IPv4).
-i TTL
Ajustar o TTL dos pacotes
-r Núm
Grava a rota dos saltos de contagem (somente IPv4)
-s Núm
Carimbo de data/hora (timestamp) para saltos de contagem (somente IPv4)
-w Tempo
Tempo limite em milissegundos a aguardar para cada resposta
-R
Usa cabeçalho de roteamento para testar também a rota (somente IPv6)
-S endereço
Endereço de origem a ser usado.
-4
Forçar o uso de IPv4
-6
Forçar o uso e IPv6

Exemplo: 1. Pingar o host www.bosontreinamentos.com.br enviando seis requisições de eco:ping -n 6 www.bosontreinamentos.com.brPing no Windows2. Capturar os pacotes de ping no Wireshark. Vamos pingar o endereço www.bosontreinamentos.com.br e capturar os pacotes ICMP trocados usando o analisador de pacotes Wireshark: ping www.bosontreinamentos.com.br Veja os oito pacotes capturados na figura a seguir (4 mensagens Echo Request e 4 mensagens Echo Reply):Capturar pacote de ping no Wireshark no WindowsVamos abrir uma das mensagens Echo Request para ver seu conteúdo:Capturando o conteúdo de uma mensagem ping ICMP com WiresharkNote os valores dos campos Tipo (8), Código (0), Checksum (ox4d56 [correct]), Identificador e Número de Sequência (ambos nas representações Big Endian e  Little Endian), e o conteúdo da mensagem, que consiste em uma sequência de caracteres (no caso, letras do alfabeto).Opções comuns do programa ping no Linux:

-b
Permitir o ping em um endereço de broadcast
-c contagem
Parar o envio de mensagens Echo Request após enviar o número de pacotes especificado por contagem
-f
Flood ping. Para cada mensagem Echo Request enviada, um ponto "." será mostrado na tela, enquanto que para cada mensagem Echo reply recebida um caractere backspace será impresso. Desta forma, temos uam forma muito rápida de mostrar quantos pacotes estão sendo descartados. Se não for fornecido um intervalo, ele será configurado para zero e os pacotes serão enviados o mais rápido que for possível, assim que eles retornarem ou uma centena de vezes por segundo, o que for mais rápido. Apenas o usuário root pode usar essa opção com o intervalo zero entre os pacotes.
-i intervalo
Esperar o intervalo em segundos especificado entre cada pacote enviado. O padrão é esperar um segundo entre cada datagrama, ou não esperar no modo flood. Somente o usuário root pode ajustar o intervalo para valores menores que 0,2 segundos.
-I endereço
Ajustar o endereço de envio para o endereço especificado.
-Q tos
Ajustar os bits relacionados a Qualidade do Serviço nos datagramas ICMP, em formato decimal ou hexadecimal. Valores comuns são: 0x02 para Custo Mínimo, 0x04 para Confiabilidade, 0x08 para Throughput, 0x10 para Baixo Delay
-q
Saída silenciosa. Nada é mostrado exceto as linhas de sumário no início e no final do envio dos pacotes.
-R
Registro de rota. Inclui a opção RECORD ROUTE no pacote Echo Request e mostra o buffer de rotas nos pacotes retornados. No cabeçalho IP so há espaço para o registro de nove rotas. Muitos hosts ignoram ou descartam essa opção.
-s tamanho_pacote
Especifica o número de bytes de dados que serão enviados (tamanho_pacote). O padrão no Linux é 56, o que resulta em 64 bytes de dados ICMP quando combinados com os 8 bytes de dados do cabeçalho ICMP.
-t ttl
Configurar o TTL (Time to Live) do pacote IP.
-M estratégia
Selecionar a estratégia a ser usada na descoberta do caminho MTU. A estratégia pode ser do (proibir fragmentação, mesmo local), want (realizar descoberta PMTU, e fragmentar localmente quando o pacote for muito grande) ou dont (não configurar a flag DF).
-w deadline
Especificar um timeout, em segundos, antes do ping encerrar o envio de pacotes, independente de quantos pacotes foram enviados ou recebidos.

Exemplos 1. Enviar 8 pacotes de ping para o endereço 192.168.1.1 e sair: # ping -c 8 192.168.1.1Ping com contagem no Linux Debian  2.  Enviar 20 pacotes de ping para o endereço 192.168.1.1, com saída silenciosa: # ping -c 20 -q 192.168.1.1Ping silencioso no Linux Debian  3. Enviar dois pacotes com tamanho de 100 bytes cada: # ping -c 2 -s 100 192.168.1.1Ping com tamanho de pacote ajustado no Linux  4. Enviar pacotes por 4 segundos antes de encerrar. Como o tempo padrão entre cada pacote é de 1 segundo, espera-se que 4 pacotes sejam enviados e recebidos: # ping -w 4 192.168.1.1Ping com deadline de 4 segundos no Linux Mint  5. Enviar 16 pacotes, com intervalo de 0,5 segundo entre cada um: # ping -c 16 -i 0.5 192.168.1.1Ping com intervalo de meio segundo no Linux Fedora  6. Enviar pacotes de flood ping por 5 segundos: # ping -f -w 5 192.168.1.1Enviando flood ping no linux centosNote que com a opção de flood (-f), 2896 pacotes foram enviados em apenas 5 segundos. Vimos neste artigo o funcionamento do programa ping, com vários exemplos de sua utilização. Trataremos no próximo artigo de um outro comando que faz uso de pacotes ICMP, o traceroute (ou tracert).

Curso de Redes – Como funciona o utilitário traceroute

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-como-funciona-o-utilitario-traceroute/

Por: Gabriela Parente

Para o Site: Techmovie

Traceroute

O utilitário traceroute, que foi escrito por Van Jacobson em 1987, é uma ferramenta de diagnóstico que nos permite ver a rota que datagramas IP seguem quando são enviados de um host a outro. O traceroute faz uso do protocolo ICMP e do campo TTL no cabeçalho IP do datagrama. O campo TTL (Time to Live) é um campo de 8 bits que o dispositivo de origem inicializa com um valor específico. O valor a ser usado neste campo varia entre os sistemas operacionais, sendo comuns os valores 128 para sistemas Windows e 64 para sistemas baseados em Unix, como o Linux (em pacotes normais; o traceroute utiliza valores totalmente diferentes). Toda vez que um datagrama chega a um roteador, seu TTL é decrementado em um antes de ser encaminhado adiante. O propósito do TTL é evitar que datagramas entrem em um loop de roteamento, o que pode ocorrer devido a algum tipo de falha durante o roteamento dos pacotes. Quando um roteador recebe um datagrama cujo TTL é igual a 0 (zero), ele não o encaminhará mais. Em vez disso, o roteador irá descartar o pacote e enviar de volta ao host que o originou uma mensagem ICMP do tipo Tempo Excedido. Essa mensagem contém o endereço IP do roteador como endereço de origem - e esse é o segredo do traceroute.

Funcionamento do traceroute

O traceroute envia um datagrama com um TTL igual a 1 ao host de destino. Ao chegar ao primeiro rotador no caminho, o TTL é decrementado, ficando com o valor zero, de modo que o datagrama é descartado e a mensagem ICMP "Tempo Excedido" é enviada de volta à origem. Desta forma, o primeiro roteador no caminho é identificado. Então, o traceroute endia um novo datagrama, desta vez com o TTL igual a 2, que passará pelo primeiro roteador, que decrementa o TTL para 1, e então será descartado no segundo roteador -  e assim, descobrimos o endereço IP deste roteador também. Esse processo continua até que um datagrama chegue ao host de destino. Porém, ao chegar no host de destino, mesmo que o TTL do datagrama seja igual a 1, ele não será descartado e, portanto, a mensagem ICMP Tempo Excedido não será gerada. Neste caso, como sabemos que o pacote chegou a seu destino? Isso vai depender do sistema operacional utilizado (mais precisamente, do utilitário presente); No Unix e derivados, o traceroute envia pacotes UDP, escolhendo portas de um valor elevado, que muito provavelmente não são utilizadas por nenhuma aplicação no host de destino. Desta forma, o host de destino irá gerar um erro ICMP do tipo "Porta Inalcançável" - e, então, tudo o que o traceroute tem a fazer é diferenciar o recebimento de mensagens Tempo Excedido da mensagem Porta Inalcançável para saber quando parar. Já no Windows, são enviados datagramas ICMP do tipo Echo Request - o famoso ping - e quando o dispositivo de origem recebe uma resposta Echo Reply, ele sabe que o pacote chegou a seu destino. Vejamos alguns exemplos 1. Comando tracert no prompt do Windows tracert Comando tracert no WindowsNo Windows usamos a palavra "tracert" em vez de "traceroute" para executar o utilitário. São mostrados os endereços dos roteadores por onde os pacotes passaram até chegar ao destino especificado. A primeira coluna da saída mostrada contém o número do salto, e as três colunas seguintes mostram os RTTs (Round Trip Times) das mensagens enviadas - o traceroute envia três mensagens por padrão para cada salto. A última coluna mostra os endereços IP dos roteadores descobertos na rota. Veja a captura desses pacotes no Wireshark:Tracert no Windows - Captura com WiresharkNote que o primeiro pacote é enviado com TTL igual a 1, sendo uma mensagem ICMP do tipo Echo Request (ping), e seu conteúdo é uma sequência de zeros perfazendo 64 bytes de dados.2. Comando traceroute no Linux Como vou usar o Linux Ubuntu para fazer o teste, primeiramente preciso instalar o pacote do traceroute. Para isso, use o comando a seguir: $ sudo apt-get install traceroute Sintaxe do traceroute no Linux: traceroute [opções] destino Opções mais comuns:

-f TTL, --first=TTL
Definir o valor de TTL inicial da sondagem, em vez de 1.
-n
Exibir endereços numéricos em vez de nomes
-I, --icmp
Usar mensagens de eco ICMP para sondagem
-T, --tcp
Usar segmentos TCP SYN para sondagem
-m TTL_MAX, --max-hops=TTL_MAX
Especificar o número máximo de saltos (hops), ou o valor máximo do TTL que o traceroute irá sondar. O padrão são 30 saltos.
-V
Imprimir versão e sair
-w segundos
Definir o timeout (tempo de espera de uma resposta) para pacotes ICMP retornados em segundos, em vez do padrão, que são 5 segundos.
-q número
Definir o número de consultas por salto.

Rodarei o utilitário para descobrir a rota até o destino www.bosontreinamentos.com.br: $ traceroute www.bosontreinamentos.com.brUtilitário traceroute no Linux UbuntuNote que foram enviados pacotes com 60 bytes de tamanho, para no máximo 30 saltos (hops). Se usarmos endereçamento IPv6 os pacotes terão tamanho de 80 bytes. Perceba que os saltos de números 12 em diante mostram apenas o caractere * (asterisco), o que indica que não houve resposta naquele ponto em um período de 5 segundos (padrão). Isso pode ser ocasionado por problemas na rede, uso de firewalls que filtram portas UDP improváveis ou ainda respostas de eco ICMP. 3. Traceroute mostrando os endereços IP dos saltos em vez dos nomes (hostnames): $ traceroute -n www.bosontreinamentos.com.brTracert no ubuntu linux numérico  4. Traceroute usando segmentos TCP SYN para efetuar a sondagem. Para este exemplo, precisarei usar o sudo, pois somente usuário root ou com privilégios administrativos pode executá-lo. $ traceroute --tcp www.bosontreinamentos.com.brTracert no Ubuntu Linux com segmentos TCPO processo foi bem mais rápido neste exemplo. Veja na figura a seguir a captura do processo no Wireshark, com um filtro de TCP aplicado. Note a flag SYN destacada:Tracert - filtrando TCP SYN con Wireshark no Linux Ubuntu

Tcpdump – Capturar e analisar tráfego de rede no Linux

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/tcpdump-capturar-e-analisar-trafego-de-rede-no-linux/

Por: Gabriela Parente

Para o Site: Techmovie

Tcpdump

O tcpdump é uma excelente ferramenta para realizar captura e análise de pacotes de rede, recomendada para profissionais que precisem realizar monitoramento e manutenção em uma rede de computadores, além de estudantes que queiram entender a fundo o funcionamento da pilha de protocolos TCP/IP. O site oficial do tcpdump, e também da biblioteca libpcap (sobre o qual ele é baseado), é o www.tcpdump.org.
O tcpdump, que é software livre, roda na linha de comandos, estando disponível em diversos sistemas operacionais, como Linux, BSD, OS X, AIX e outros. Ele faz uso da biblioteca libpcap para realizar a captura de pacotes, e existe uma versão da ferramenta para Windows, chamada de WinDump, que usa a biblioteca WinPcap. Neste artigo vamos nos focar no tcpdump em si, usando para isso um sistema Linux (Ubuntu; qualquer outro sistema Linux irá servir para testar os exemplos mostrados).

Para executar o tcpdump precisaremos de privilégios de administrador no sistema.

Instalação
Para instalar o tcpdump no Ubuntu Linux, ou em sistemas baseados em Debian, use o comando a seguir no terminal:
sudo apt-get install tcpdump

Sintaxe:

tcpdump [opções]

Opções principais:

-i interface
 Especificar a interface de rede a partir da qual o tráfego será capturado. Se for usado o parâmetro any, o programa irá capturar pacotes em todas as interfaces ativas na máquina.
-c num
Sair após capturar num pacotes
-D
Mostrar uma lista das interfaces de rede no sistema que estão disponíveis e nas quais o tcpdump pode capturar pacotes.
-n
Não realizar a resolução de nomes
-r arquivo
Ler os pacotes a partir de arquivo, o qual foi criado anteriormente com a opção -w
-w arquivo
Escrever os pacotes em arquivo, emvez de mostrá-los formatados na saída padrão
-X
Mostrar o conteúdo do pacote em Hexadecimal e ASCII; se for usado -XX, também mostrará o cabeçalho Ethernet.
src IP/Nome
Capturar pacotes originados apenas do host com o IP ou hostname especificado.
dst IP/Nome
Capturar pacotes destinado apenas ao host com o IP ou hostname especificado.
greater BYTES, > BYTES
Capturar apenas pacotes que sejam maiores que BYTES
less BYTES, < BYTES
Capturar apenas pacotes que sejam menores que BYTES
port NUM
Trabalhar com pacotes destinados ou originados de uma porta específica NUM
portrange A-B
Capturar pacotes cujas portas estejam no intervalo entre A e B.
A and B
Capturar os pacotes somente se satisfizerem às condições A e B simultaneamente
A or B
Capturar os pacotes se satisfizerem à condição A ou à condição B, ou a ambas
not A
Capturar os pacotes que não satisfaçam à condição A.
-v
Produzir uma saída ligeiramente mais verbosa. Algumas informações adicionais são exibidas, tais como os valores dos campos TTL, Identificação, Comprimento Total e Opções do pacote IP.
-vv
Saída mais verbosa do que a opção -v. Por exemplo, pacotes SMB são completamente decodificados.

 

Exemplos de uso:
1. Capturar somente o tráfego a partir da interface eth0:
sudo tcpdump -i eth0

2. Gravar os pacotes capturados em um arquivo de nome captura.cap:
sudo tcpdump -w captura.cap

3. Ler os pacotes capturados a partir do arquivo captura.cap:
sudo tcpdump -r captura.cap

4. Capturar somente o tráfego associado ao protocolo ICMP, na interface eth0:
sudo tcpdump -i eth0 icmp

5. Capturar somente o tráfego associado ao protocolo ARP, na interface eth0:
sudo tcpdump -i eth0 arp

Tcpdump capturando pacotes ARP no Ubuntu Linux

6. Capturar somente 50 pacotes a partir da interface eth0:
sudo tcpdump -c 50 -i eth0

7. Mostrar os pacotes capturados tanto em ASCII quanto em HEX, incluindo cabeçalho Ethernet:
sudo tcpdump -XX -i eth0

tcpdump com opção XX hexadecimal e ASCII

8. Capturar pacotes mostrando IPs em vez de nomes:
sudo tcpdump -n -i eth0

tcpdump com saída numérica

9. Capturar somente pacotes maiores que 100 bytes:
sudo tcpdump -i eth0 greater 100
Neste exemplo, se emitirmos um comando ping a partir de outra janela de terminal, os pacotes não serão capturados, pois são menores que 100 bytes.

10. Capturar somente pacotes destinados à porta 53:
sudo tcpdump -i eth0 port 53

tcpdump na porta 53 DNS
Para testar, abrimos um navegador e acessamos uma página qualquer da Web, como www.bosontreinamentos.com.br

11. Usando filtros de condições: Capturar pacotes que usam o protocolo e cujo endereço de destino seja 64.233.186.121
sudo tcpdump -i eth0 dst 64.233.186.121 and icmp

tcpdump com icmp no Linux
Para testar, abrimos outra janela de terminal e emitimos o comando ping para vários endereços; somente serão capturados pacotes ao ser usado o endereço discriminado no comando. Se abrirmos um navegador e tentarmos acessar esse mesmo endereço (ou o site, www.planetaunix.com.br), os pacotes não serão capturados, por conta do protocolo utilizado (http em vez de icmp), mostrando que ambas as condições (AND) precisam ser satisfeitas para que essa captura tenha efeito.

12. Capturar somente os pacotes ICMP Echo Request enviados pelo programa ping da máquina local, cujo IP é 192.169.1.105, para um endereço remoto, como 8.8.8.8
sudo tcpdump -i eth0 icmp and src 192.168.1.105 and dst 8.8.8.8

tcpdump com endereços de origem e destino, e protocolo ICMP

Existem diversas outras opções e funcionalidades disponíveis no utilitário, e recomendamos uma leitura minuciosa das páginas de manual do tcpdump para aprofundar seus conhecimentos a respeito.

Curso de Redes – Camada de Transporte da pilha TCP/IP

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/

Por: Gabriela Parente

Para o Site: Techmovie

Camada de Transporte na pilha TCP/IP

A camada de Transporte se localiza entre as camadas de Aplicação e de Internet na pilha TCP/IP, e corresponde à camada de Transporte no modelo OSI. Ela é responsável por fornecer serviços à camada de aplicação, e recebe serviços da camada de Internet. A figura abaixo mostra a relação entre as camadas citadas:

Camadas TCP/IP - Aplicação, Transporte e Internet

No geral, a camada de transporte tem o papel de fornecer funções que permitam a comunicação entre processos de aplicações (softwares) entre computadores diferentes. Assim, a camada de transporte fornece um mecanismo pelo qual diversas aplicações distintas podem enviar e receber dados usando a mesma implementação de protocolos das camadas mais baixas.
Para que isso seja possível, a camada de transporte deve realizar diversas tarefas distintas (porém relacionadas entre si). Por exemplo, os protocolos da camada de transporte devem conseguir discernir quais dados provém de quais aplicações, combinar esses dados em um fluxo de dados que será enviado às camadas mais baixas da pilha de protocolos, e efetuar as tarefas inversas no host de destino, separando os dados e os entregando às aplicações que os devem processar (processos). Além disso, a camada de transporte pode dividir grandes quantidades de dados que devem ser transmitidos em pedaços – ou segmentos – menores para que sua transmissão seja possível.
E, ainda, a camada de transporte pode fornecer serviços de conexão para as aplicações (e outros protocolos) de camadas de nível superior. Esses serviços podem ser orientados á conexão, ou sem conexão, dependendo do protocolo utilizado.
Os protocolos da camada de transporte também podem assegurar uma comunicação confiável entre os hosts, realizando controle de fluxo (taxa de transmissão de dados) e detecção de erros, além de permitir o reenvio de dados quando são perdidos ou descartados.

Funções da Camada de Transporte

As principais funções da camada de transporte são:

  • Comunicação entre processos (processo-processo)
  • Controle de Fluxo
  • Controle de Erros
  • Multiplexação e Demultiplexação
  • Controle de Congestionamento de rede
  • Estabelecer e gerenciar conexões

Vamos estudar essas funções neste artigo e nos próximos artigos, onde trataremos dos protocolos específicos que agem na camada de transporte..

Comunicação entre processos

Um processo é um software em execução, considerado uma entidade da camada de aplicação, a qual irá utilizar os serviços da camada de transporte. Em uma comunicação via rede, a camada de rede é a camada responsável por realizar a comunicação em nível de host, permitindo entregar uma mensagem a um computador de destino. Mas isso não é suficiente para que a comunicação seja efetivamente realizada, pois ao chegar na máquina de destino, uma mensagem precisa ser encaminhada adequadamente para a aplicação que irá tratá-la, ou seja, para o processo correto. É aí que a camada de transporte deve agir, sendo responsável pela entrega da mensagem ao processo apropriado. A figura a seguir compara as camadas de Internet e de Transporte no tocante à transmissão de uma mensagem:

Camada de Transporte versus Camada de Rede

Para que seja possível entregar a mensagem ao processo correto, a camada de transporte se utiliza de identificadores denominados Números de Portas (Port Numbers), que estudaremos na seção a seguir.

Números de Portas

A comunicação entre processos via rede faz uso do paradigma Cliente-Servidor, no qual um processo em um dos hosts, chamado de cliente, requer serviços de um processo em outro host, remoto, chamado de servidor. Em ambos os casos, os processos possuem o mesmo nome. Por exemplo, podemos realizar a conexão remota a um host utilizando uma aplicação (processo) cliente chamado ssh no host local, que irá se comunicar a um processo servidor de nome ssh, executado no host remoto. Desta forma, para que seja possível realizar a comunicação entre dois hosts, precisamos definir alguns parâmetros, listados a seguir:

  • Host Local
  • Processo Local
  • Host Remoto
  • Processo Remoto

Para definirmos os hosts que irão se comunicar, usamos o endereçamento IP, realizado na camada de Internet do TCP/IP (camada de Rede do modelo OSI). Já para que seja possível definir os processos em questão, usamos o conceito de números de portas, que são números inteiros no intervalo de 0 a 65535 (16 bits).

Assim, o processo cliente escolhe um número de porta a utilizar, o qual pode ser um número de porta registrado ou um número de porta efêmero. Esse número, que é utilizado apenas durante a comunicação em curso, é geralmente escolhido como um número de valor maior que 1023, de forma aleatória – isso é, na verdade, uma necessidade para que alguns programas funcionem de forma adequada. O processo servidor também utilizará um número de porta. Porém, nesse caso, a escolha do número a utilizar não será aleatória, mas sim um número escolhido especificamente para o processo em questão, chamado de número de porta bem-conhecido (well-known port number). Por exemplo, para que um cliente possa se comunicar com um servidor via ssh,  o cliente irá escolher um número de porta temporário, como por exemplo 41265, e o servidor irá utilizar um número de porta fixo e “oficial” para o serviço de ssh, que é o número 22.

Desta forma, o IP permite definir o host que está se comunicando e o número de porta define o processo (aplicação) dentro daquele host.

Os números de portas são divididos em três faixas pelo IANA (Internet Assigned Numbers Authority), que é um departamento do ICANN, empresa sem fins lucrativos que coordena a alocação de endereços IPs globalmente, além de outras informações, como os números de portas, cujas faixas são descritas como:

  • Portas Bem-conhecidas, de 0 a 1023. Atribuídas e controladas pelo ICANN
  • Portas Registradas, de 1024 a 49151. Não atribuídas nem controladas pelo ICANN, mas podem ser registradas para evitar duplicação
  • Portas Dinâmicas, Privadas ou Efêmeras, de 49152 a 65535. Não atribuídas nem controladas. Em tese, os sistemas clientes deveriam apenas usar portas desta faixa, mas na prática essa recomendação não é seguida.

Sockets

Um socket (soquete) é a combinação de um endereço IP com um número de porta, o que permite definir um processo de forma única tanto no cliente quanto no servidor. Para que seja possível usar serviços de rede da camada de transporte são necessários, portanto, um par de endereço de socket: um para o cliente e outro para o servidor. Um socket possui dados tanto da camada de Internet (endereço IP), quanto da camada de transporte (número de porta). A seguir temos uma representação de um endereço de socket:

Sockets de Rede

Encapsulamento de mensagens da Camada de Transporte

Para que uma mensagem possa ser enviada de um processo a outro, o protocolo da camada de transporte a ser utilizado deverá encapsular (e desencapsular) as mensagens. O encapsulamento ocorre, naturalmente, na máquina que origina a mensagem, de modo que quando uma aplicação possui uma mensagem a enviar, essa mensagem é passada à camada de Transporte, na qual a mensagem recebe um cabeçalho adequado, contendo entre ouras informações, os números de portas envolvidos na comunicação. Chamamos de segmentos os conjuntos de mensagens e cabeçalhos da camada de transporte, os quais são repassados à camada de Internet onde, ao receberem o cabeçalho apropriado, passam a ser chamados de pacotes. Veja como funciona o encapsulamento e desencapsulamento na figura a seguir:

Encapsulamento da Camada de Transporte

Ao chegar na máquina de destino, o segmento é desencapsulado, seu cabeçalho é descartado e a mensagem é repassada à aplicação determinada na camada de aplicação, para processamento da mensagem.

 

Protocolos da Camada de Transporte

A Camada de Transporte da suíte TCP/IP define dois protocolos de transporte padrão: o TCP (Transmission Control Protocol) e o UDP (User Datagram Protocol). O TCP implementa um protocolo de fluxo de dados confiável, podendo assegurar que os dados sejam entregues de forma confiável em seu destino, pois fornece um serviço orientado à conexão. Já o UDP implementa um protocolo de fluxo de dados não-confiável, sem conexão, e que portanto não pode garantir a entrega dos dados ao host de destino. Ambos os protocolos são muito úteis em situações distintas, e serão estudados nos próximos artigos.

Camadas TCP/IP - Aplicação, Transporte e Internet

No geral, a camada de transporte tem o papel de fornecer funções que permitam a comunicação entre processos de aplicações (softwares) entre computadores diferentes. Assim, a camada de transporte fornece um mecanismo pelo qual diversas aplicações distintas podem enviar e receber dados usando a mesma implementação de protocolos das camadas mais baixas.
Para que isso seja possível, a camada de transporte deve realizar diversas tarefas distintas (porém relacionadas entre si). Por exemplo, os protocolos da camada de transporte devem conseguir discernir quais dados provém de quais aplicações, combinar esses dados em um fluxo de dados que será enviado às camadas mais baixas da pilha de protocolos, e efetuar as tarefas inversas no host de destino, separando os dados e os entregando às aplicações que os devem processar (processos). Além disso, a camada de transporte pode dividir grandes quantidades de dados que devem ser transmitidos em pedaços – ou segmentos – menores para que sua transmissão seja possível.
E, ainda, a camada de transporte pode fornecer serviços de conexão para as aplicações (e outros protocolos) de camadas de nível superior. Esses serviços podem ser orientados á conexão, ou sem conexão, dependendo do protocolo utilizado.
Os protocolos da camada de transporte também podem assegurar uma comunicação confiável entre os hosts, realizando controle de fluxo (taxa de transmissão de dados) e detecção de erros, além de permitir o reenvio de dados quando são perdidos ou descartados.

Funções da Camada de Transporte

As principais funções da camada de transporte são:

  • Comunicação entre processos (processo-processo)
  • Controle de Fluxo
  • Controle de Erros
  • Multiplexação e Demultiplexação
  • Controle de Congestionamento de rede
  • Estabelecer e gerenciar conexões

Vamos estudar essas funções neste artigo e nos próximos artigos, onde trataremos dos protocolos específicos que agem na camada de transporte..

Comunicação entre processos

Um processo é um software em execução, considerado uma entidade da camada de aplicação, a qual irá utilizar os serviços da camada de transporte. Em uma comunicação via rede, a camada de rede é a camada responsável por realizar a comunicação em nível de host, permitindo entregar uma mensagem a um computador de destino. Mas isso não é suficiente para que a comunicação seja efetivamente realizada, pois ao chegar na máquina de destino, uma mensagem precisa ser encaminhada adequadamente para a aplicação que irá tratá-la, ou seja, para o processo correto. É aí que a camada de transporte deve agir, sendo responsável pela entrega da mensagem ao processo apropriado. A figura a seguir compara as camadas de Internet e de Transporte no tocante à transmissão de uma mensagem:

Camada de Transporte versus Camada de Rede

Para que seja possível entregar a mensagem ao processo correto, a camada de transporte se utiliza de identificadores denominados Números de Portas (Port Numbers), que estudaremos na seção a seguir.

Números de Portas

A comunicação entre processos via rede faz uso do paradigma Cliente-Servidor, no qual um processo em um dos hosts, chamado de cliente, requer serviços de um processo em outro host, remoto, chamado de servidor. Em ambos os casos, os processos possuem o mesmo nome. Por exemplo, podemos realizar a conexão remota a um host utilizando uma aplicação (processo) cliente chamado ssh no host local, que irá se comunicar a um processo servidor de nome ssh, executado no host remoto. Desta forma, para que seja possível realizar a comunicação entre dois hosts, precisamos definir alguns parâmetros, listados a seguir:

  • Host Local
  • Processo Local
  • Host Remoto
  • Processo Remoto

Para definirmos os hosts que irão se comunicar, usamos o endereçamento IP, realizado na camada de Internet do TCP/IP (camada de Rede do modelo OSI). Já para que seja possível definir os processos em questão, usamos o conceito de números de portas, que são números inteiros no intervalo de 0 a 65535 (16 bits).

Assim, o processo cliente escolhe um número de porta a utilizar, o qual pode ser um número de porta registrado ou um número de porta efêmero. Esse número, que é utilizado apenas durante a comunicação em curso, é geralmente escolhido como um número de valor maior que 1023, de forma aleatória – isso é, na verdade, uma necessidade para que alguns programas funcionem de forma adequada. O processo servidor também utilizará um número de porta. Porém, nesse caso, a escolha do número a utilizar não será aleatória, mas sim um número escolhido especificamente para o processo em questão, chamado de número de porta bem-conhecido (well-known port number). Por exemplo, para que um cliente possa se comunicar com um servidor via ssh,  o cliente irá escolher um número de porta temporário, como por exemplo 41265, e o servidor irá utilizar um número de porta fixo e “oficial” para o serviço de ssh, que é o número 22.

Desta forma, o IP permite definir o host que está se comunicando e o número de porta define o processo (aplicação) dentro daquele host.

Os números de portas são divididos em três faixas pelo IANA (Internet Assigned Numbers Authority), que é um departamento do ICANN, empresa sem fins lucrativos que coordena a alocação de endereços IPs globalmente, além de outras informações, como os números de portas, cujas faixas são descritas como:

  • Portas Bem-conhecidas, de 0 a 1023. Atribuídas e controladas pelo ICANN
  • Portas Registradas, de 1024 a 49151. Não atribuídas nem controladas pelo ICANN, mas podem ser registradas para evitar duplicação
  • Portas Dinâmicas, Privadas ou Efêmeras, de 49152 a 65535. Não atribuídas nem controladas. Em tese, os sistemas clientes deveriam apenas usar portas desta faixa, mas na prática essa recomendação não é seguida.

Sockets

Um socket (soquete) é a combinação de um endereço IP com um número de porta, o que permite definir um processo de forma única tanto no cliente quanto no servidor. Para que seja possível usar serviços de rede da camada de transporte são necessários, portanto, um par de endereço de socket: um para o cliente e outro para o servidor. Um socket possui dados tanto da camada de Internet (endereço IP), quanto da camada de transporte (número de porta). A seguir temos uma representação de um endereço de socket:

Sockets de Rede

Encapsulamento de mensagens da Camada de Transporte

Para que uma mensagem possa ser enviada de um processo a outro, o protocolo da camada de transporte a ser utilizado deverá encapsular (e desencapsular) as mensagens. O encapsulamento ocorre, naturalmente, na máquina que origina a mensagem, de modo que quando uma aplicação possui uma mensagem a enviar, essa mensagem é passada à camada de Transporte, na qual a mensagem recebe um cabeçalho adequado, contendo entre ouras informações, os números de portas envolvidos na comunicação. Chamamos de segmentos os conjuntos de mensagens e cabeçalhos da camada de transporte, os quais são repassados à camada de Internet onde, ao receberem o cabeçalho apropriado, passam a ser chamados de pacotes. Veja como funciona o encapsulamento e desencapsulamento na figura a seguir:

Encapsulamento da Camada de Transporte

Ao chegar na máquina de destino, o segmento é desencapsulado, seu cabeçalho é descartado e a mensagem é repassada à aplicação determinada na camada de aplicação, para processamento da mensagem.

 

Protocolos da Camada de Transporte

A Camada de Transporte da suíte TCP/IP define dois protocolos de transporte padrão: o TCP (Transmission Control Protocol) e o UDP (User Datagram Protocol). O TCP implementa um protocolo de fluxo de dados confiável, podendo assegurar que os dados sejam entregues de forma confiável em seu destino, pois fornece um serviço orientado à conexão. Já o UDP implementa um protocolo de fluxo de dados não-confiável, sem conexão, e que portanto não pode garantir a entrega dos dados ao host de destino. Ambos os protocolos são muito úteis em situações distintas, e serão estudados nos próximos artigos.

 

Curso de Redes – Protocolo TCP (Transmission Control Protocol)

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-transmission-control-protocol/

Por: Gabriela Parente

Para o Site: Techmovie

Protocolo TCP (Transmission Control Protocol)

O Protocolo TCP, que pertence à camada de Transporte juntamente com o UDP, fornece um serviço de entrega de pacotes confiável e orientado a conexão.

Dizemos que um serviço é orientado à conexão quando duas aplicações que estejam usando o protocolo (por exemplo, TCP) para se comunicarem entre si – normalmente um cliente e um servidor – necessitem estabelecer uma conexão uma com a outra antes que possam trocar dados.

Funções do Protocolo TCP

O protocolo TCP é um tanto complexo, e seu estudo será realizado ao longo de diversas lições. Para simplificar um pouco o processo, listamos a seguir as principais funções realizadas pelo TCP:

  • Estabelecer, Manter e Terminar Conexões
  • Fornecer Confiabilidade
  • Fornecer Controle de Fluxo
  • Multiplexação
  • Endereçamento de Aplicações
  • Controle de Congestionamento

Claramente podemos ver que o protocolo TCP é extremamente importante – não é à toa que a pilha TCP/IP o tem em seu nome. Vamos começar seu estudo conhecendo os campos que formam o cabeçalho de um segmento TCP e suas respectivas funções.

Cabeçalho TCP

Um segmento TCP é encapsulado em um datagrama IP, conforme podemos ver na figura a seguir:

Encapsulamento TCP - CUrso de Redes

E na figura a seguir podemos ver o formato completo de um cabeçalho TCP, cujo tamanho normal é de 20 bytes, conforme mostrado na ilustração anterior (mas pode ser maior, se houverem opções presentes):

Campos do Cabeçalho TCP - Curso de Redes

Segue uma descrição sucinta de cada um dos campos no cabeçalho TCP:

  • Número de Porta de Origem: número que identifica a aplicação (processo) que envia os dados
  • Número de Porta de Destino: número que identifica a aplicação (processo) que deve receber os dados
  • Número de Sequência: número que identifica o byte em um fluxo de dados do transmissor para o receptor.
    Se considerarmos o fluxo de bytes em uma direção entre dois hosts, o TCP identifica cada byte com um número de sequência. O número de sequência possui 32 bits de tamanho, com valores possíveis entre 0 e 232 – 1.
    Quando uma nova conexão é estabelecida, a flag SYN é ativada. Neste caso, o campo número de sequência possui o “número de sequência inicial” (ISN, initial sequence number), o qual é escolhido pelo host para esta conexão em particular. O número de sequência do primeiro byte de dados que será enviado será o ISN mais um.
    Como cada byte que é transmitido é numerado, o número de confirmação (acknowledgment) contém o próximo número de sequência que o host que enviou a confirmação espera receber. Portanto, é o número de sequência mais 1 do último byte de dados que foi recebido com sucesso.
  • Número de Confirmação: Se a flag ACK estiver ativada o valor deste campo será o próximo número de sequência que o destinatário espera receber. Assim é confirmada a recepção de todos os bytes anteriores, se houverem. A exceção é o primeiro ACK enviado pelos hosts da conexão, que confirma o número de sequência inicial (ISN) de cada um.
  • Comprimento do Cabeçalho (Data offset): Tamanho do cabeçalho TCP em palavras de 32 bits. O tamanho mínimo é de 5 palavras (20 bytes, sem opções) e o tamanho máximo é de 15 palavras (60 bytes, com opções). Indica o ponto de início dos dados a partir do início do segmento TCP.
  • Reservado (3 bits): Para uso futuro. Consiste atualmente na sequência 000.
  • Flags: ECN – Explicit Congestion Notification / Notificação Explícita de Congestionamento, adicionados no RFC 3168 (Cada flag usa 1 bit):
    • NS – Campo opcional adicionado ao ECN para proteger contra dissimulação acidental ou maliciosa de pacotes marcados do transmissor
    • CWR – Congestion Window Reduced, enviada pelo host transmissor para indicar que recebeu um segmento TCP com o flag ECE ativado e respondeu no mecanismo de controle de congestionamento
    • ECE – ECN-Echo. Sua função depende do valor da flag SYN. Se a flag SYN estiver ativada, então o parceiro na conexão TCP é compatível com ECN; se a flag SYN estiver desativada, um pacote com a flag “congestinamento experimentado” no datagrama IP foi recebido durante a transmissão normal
  • Flags: Bits de Controle (Cada flag usa 1 bit):
    • URG – Quando ativado, indica que o Campo Ponteiro de Urgente é válido e o recurso Transferência de dados com prioridade foi invocado
    • ACK – Bit de Confirmação. Quando ativado, indica que o segmento carrega uma mensagem de confirmação e que o valor do campo Número de Confirmação é válido, e carrega o próximo número de sequência esperado pelo host.
    • PSH – Bit de Push. Quando ativado, indica que o transmissor do segmento usa o recurso TCP Push, o qual requisita que os dados no segmento sejam imediatamente transmitidos à aplicação no dispositivo de destino
    • RST – Bit de Reset. Quando ativado indica que o transmissor encontrou um problema e deseja resetar a conexão.
    • SYN – Bit de Sincronismo. Requisição para sincronizar números de sequência e estabelecer uma conexão entre dois hosts. O campo Número de Sequência contém o número de sequência inicial (ISN) do host que transmite o segmento.
    • FIN – Bit de Finalização. Quando ativado indica que o transmissor do segmento requisita que a conexão seja encerrada.
  • Tamanho da Janela: O tamanho da janela de recepção indica o número de bytes que o transmissor deste segmento quer aceitar do host de destino, em cada transmissão. Seu valor é também o tamanho da janela de envio do host que recebe este segmento.
  • Checksum: Usado para verificação de erros do cabeçalho e dos dados transmitidos. Protege o segmento TCP contra erros de transmissão e de entrega dos dados.
  • Ponteiro de Urgente: Usado em conjunto com o flag URG para transferência de dados com prioridade. Contém o número de sequência do último byte de dados urgentes.
  • Opções: Campo opcional, que representa informações não cobertas pelos demais campos do cabeçalho TCP. Uma das opções mais comuns é o MSS (Maximum Segment Size). Se o valor do campo de opções não for um múltiplo de 32, então ele será preenchido com zeros (padding) até que seja um valor múltiplo de 32 bits.

Confiabilidade

O protocolo TCP fornece confiabilidade (“reliability”) a uma conexão por meio dos seguintes processos:

  • O TCP divide os dados recebidos da camada de aplicação em blocos de tamanho adequado para envio, chamados de segmentos. Quando um segmento é enviado, um timer é ativado, e o transmissor espera o recebimento de uma mensagem de confirmação do destinatário do segmento. Caso a confirmação não seja recebida antes do timer expirar, o segmento é considerado perdido e então será retransmitido.
  • Portanto, quando um host recebe um pacote de dados TCP, ele envia uma confirmação para o transmissor.
  • O TCP no host de destino pode reordenar os segmentos caso cheguem fora de ordem (já que datagramas IP podem chegar fora de ordem, e segmentos TCP são enviados em datagramas IP). Assim, os dados são repassados na ordem correta à aplicação que os irá processar.
  • O protocolo TCP utiliza um checksum que envolve o cabeçalho TCP e os dados transmitidos. Caso um segmento recebido possua um checksum inválido, o segmento será descartado e não será enviada a mensagem de confirmação para o transmissor.
  • Uma das principais funções do TCP é o controle de fluxo. Um host receptor permite apenas o envio de dados na medida em que seu buffer suporte.
  • Pacotes duplicados são detectados e descartados pelo TCP.

Em resumo, o protocolo TCP fornece um serviço orientado a conexão, confiável, na camada de transporte da pilha TCP/IP. Os dados são empacotados em unidades denominadas segmentos, e as mensagens enviadas recebem uma confirmação de recebimento, além de serem reordenadas no host de destino, que também verifica a ocorrência de erros de transmissão. Caso haja algum erro, os dados são retransmitidos e, caso hajam segmentos duplicados, são descartados. Além disso, o protocolo TCP permite enviar dados de múltiplas aplicações multiplexadas, e usa o mecanismo de portas de comunicação para determinar a qual aplicação enviar e entregar os dados transmitidos.

PackETH – Ferramenta para gerar pacotes de rede

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/packeth-ferramenta-para-gerar-pacotes-de-rede/

Por: Gabriela Parente

Para o Site: Techmovie

PackETH – Gerando pacotes de rede

O packETH é um software gerador de pacotes de rede que permite criar e enviar quaisquer tipos de pacotes, totalmente personalizados campo a campo, em uma rede Ethernet.
Com ele podemos ajustar inúmeros parâmetros e então enviar o pacote (ou sequência de pacotes) pela rede, sendo uma ferramenta muito útil para realização de testes em redes e estudo de protocolos.
O packETH pode ser obtido no site http://packeth.sourceforge.net/packeth/Home.html, e possui versões para Windows, Mac e Linux. A versão mais recente é a 1.8.1 (para Linux), sendo as versões para Windows e Mac ligeiramente mais antigas (até o momento).

Características básicas do packETH:
Protocolos suportados:

  • Ethernet II, 802.3, 802.1q, quadros ethernet definidos pelo usuário
  • ARP, IPv4, IPv6
  • UDP, TCP, ICMP, ICMPv6, IGMP
  • RTP e quadros Jumbo

É possível também ajustar diversos parâmetros nos pacotes, tais como:

  • Atraso entre pacotes
  • Número de pacotes a enviar
  • Velocidade de envio
  • Alterar parâmetros ao enviar, como endereços IP e MAC, entre outros

E ainda é possível salvar configurações em um arquivo e carregar essas configurações posteriormente, além de suportar o formato pcap.

O software possui versões para interface gráfica (GUI) e linha de comandos (CLI). Neste tutorial vou usar a versão para interface gráfica.

Para instalar o packETH, clique no link a seguir, que o levará à página de downloads, onde você poderá escolher a versão mais adequada a seu sistema:

Download do packETH

Se você estiver utilizando alguma distribuição Linux, é possível que o packETH esteja presente nos repositórios de sua distro. Como vou utilizar o Linux Debian nos exemplos, irei instalá-lo via apt-get. Para isso, usarei o comando a seguir (funciona também no Ubuntu e derivados):

$ sudo apt-get install packeth

Caso você queira usar a versão para Windows, sua instalação é bem simples e básica: basta baixar o pacote zipado, extrair seu conteúdo em uma pasta qualquer do sistema, e então executar o arquivo packETH.exe. Porém, você deve estar ciente do seguinte: as versões para Windows e OS X foram portadas por terceiros, e possuem alguns bugs. Por isso, recomendamos utilizar a versão para Linux, para que o software possa ser utilizado sem nenhum tipo de problemas e com todos os seus recursos funcionais.

Observação: Caso apareça o erro “O programa não pode ser iniciado porque está faltando wpcap.dll no seu computador”, você precisará instalar a biblioteca WinPcap para que seja possível utilizar o packETH. Clique aqui para baixar o WinPcap (para Windows). Se preferir, visite o site oficial do projeto WinPcap.

Erro de falta de dll WinPcap

Erro: falta biblioteca e driver WinPcap

Após instalar a biblioteca WinPcap (instalador corriqueiro – execute-o e siga as instruções para instalá-lo), tente abrir novamente o packETH.

Como citado, neste artigo vou usar a versão para Linux. Veja a tela inicial do programa aberto abaixo (é necessário privilégios de administrador para poder enviar os pacotes):

packETH no Linux Debian

A barra de ferramentas nos permite acessar os vários modos de funcionamento do programa. Veja abaixo a barra de ferramentas e a seguir uma descrição sucinta de cada um de seus botões:

Barra de Ferramentas do packETH

  • Builder – Modo de construção dos pacotes / quadros
  • Gen-b – Especificar número de pacotes a enviar, atraso, offset e CRC
  • Gen-s – Especificar tipos diferentes de pacotes, no formato pcap.
  • Pcap – Permite carregar pacotes capturados previamente com Wireshark (ou tcpdmp, etc)
  • Load – Abre uma caixa de diálogo para selecionar pacotes a serem carregados no Builder
  • Save – Salvar o pacote definido atualmente no Builder
  • Default – Carrega o pacote que foi armazenado por último com o botão Default (Salvar)
  • Default (Salvar – símbolo do disquete) – Salvar o pacote aberto atualmente para que possa ser utilizado posteriormente
  • Interface – Permite escolher a interface de rede a ser utilizada no envio dos pacotes
  • Send – Enviar os pacotes
  • Stop – Parar o envio dos pacotes

Criando pacotes com packETH

Vamos criar um pacote de exemplo simples e enviá-lo pela rede. As configurações do equipamento que utilizarei são as seguintes:

  • Host onde o pckETH será executado: Linux Ubuntu, com IP 192.168.1.114/24 e MAC Address 08:00:27:6c:c0:f4
  • Wireshark instalado neste host, para capturar e analisar os pacotes gerados
  • Host de destino: será meu gateway, de IP 192.168.1.1/24 e MAC Address c8:d7:19:ee:2a:17

Vou criar um pacote ICMP Echo request (“ping”) e  enviarei do meu host ao meu roteador. Para isso, vamos configurar os campos nas camadas de Enlace e Internet do pacote, de acordo com os dados a seguir:

Camada de Enlace

  • Ethernet ver. II
  • MAC de destino: c8:d7:19:ee:2a:17
  • MAC de origem: 08:00:27:6c:c0:f4
  • Ethertype: 0x0800 (IPv4)

Próxima camada (Next layer): IPv4

packETH - Camada de Enlace

Camada de Internet

  • Versão: 4
  • Comprimento do cabeçalho: 5
  • TOS: 00
  • Comprimento total: Auto (será calculado automaticamente)
  • Identificação: 1234
  • Flags: 2 (Don´t fragment  = Set; More fragments = Not set)
  • Offset de fragmento: 0
  • TTL: 255
  • Protocolo: 1 (ICMP)
  • Checksum do cabeçalho: Auto (será calculado automaticamente)
  • Endereço IP de origem: 192.168.1.114
  • Endereço IP de destino: 192.168.1.1
  • Opções: Vazio.

Próxima camada (Next layer): ICMP

packETH - Camada de Internet

Dados do pacote ICMP:

  • Tipo: 08 (Echo Request)
  • Código: 00
  • Checksum: Auto (será calculado automaticamente)
  • Identificador: 0001
  • Número de sequência: 0001
  • Dados: 464142494F (a palavra “FÁBIO” em hexadecimal, convertida do ASCII 7065667379)

packETH - Pacote ICMP Echo Request

Após configurar o pacote, basta clicar no botão Send para enviá-lo. Não se esqueça de antes clicar no botão Interface e selecionar a interface de rede que será utilizada no envio do pacote. Veja na figura a seguir o pacote capturado no Wireshark, e note que houve a resposta Echo Reply do meu host de destino. Note também o payload do pacote (“FÁBIO”):

packETH - Capturando ping no Wireshark

 

Exemplo 02: Enviando um pacote TCP

Vamos a um segundo exemplo. Desta vez vou enviar um pacote TCP com o flag SYN ativado, o que irá iniciar o procedimento do handshake de três vias entre os hosts. Espera-se que o host de destino responda com um pacote contendo as flags SYN e ACK ativadas, indicando que a conexão foi aceita, mas não será compeltada pois meu host irá usar uma porta fictícia (não ativa), e deverá responder de volta com um flag RST (reset).

Configurações do equipamento::

  • Host onde o pckETH será executado: Linux Ubuntu, com IP 192.168.1.100/24 e MAC Address 08:00:27:6c:c0:f4
  • Wireshark instalado neste host, para capturar e analisar os pacotes gerados
  • Host de destino: será meu gateway, de IP 192.168.1.1/24 e MAC Address c8:d7:19:ee:2a:17, com serviço de Web (porta 80) ativo (padrão)

Camada de Enlace

  • Ethernet ver. II
  • MAC de destino: c8:d7:19:ee:2a:17
  • MAC de origem: 08:00:27:6c:c0:f4
  • Ethertype: 0x0800 (IPv4)

Próxima camada (Next layer): IPv4

packETH - Camada de Enlace

Camada de Internet

  • Versão: 4
  • Comprimento do cabeçalho: 5
  • TOS: 00
  • Comprimento total: Auto (será calculado automaticamente)
  • Identificação: 7000
  • Flags: 2 (Don´t fragment  = Set; More fragments = Not set)
  • Offset de fragmento: 0
  • TTL: 15
  • Protocolo: 6 (TCP)
  • Checksum do cabeçalho: Auto (será calculado automaticamente)
  • Endereço IP de origem: 192.168.1.100
  • Endereço IP de destino: 192.168.1.1
  • Opções: Vazio.

Próxima camada (Next layer): TCP

Pacote TCP no packeth - Linux Ubuntu

 

Camada de Transporte (Dados TCP)

  • Porta de Origem: 555
  • Porta de Destino: 80
  • Número de Sequência: 100
  • Número de Confirmação (ACK): 100
  • Comprimento do Cabeçalho: 20
  • Flags: SYN
  • Tamanho da Janela: 4000
  • Checksum: Auto (será calculado automaticamente)
  • Ponteiro de Urgente: 0
  • Opções: Vazio
  • TCP payload (dados): 464142494F

Camada de Transporte - Protocolo TCP no packETH - Ubuntu Linux

Após configurar o pacote, basta clicar no botão Send para enviá-lo. Veja na figura a seguir o pacote capturado no Wireshark, e note que houve a resposta do meu gateway com as flags SYN e ACK ativadas, e veja que a máquina de origem respondeu de volta com a flag RST ativada, resetando a conexão:

Captura de pacote TCP com wireshark a partir do packETH

Gateway respondendo com flags SYN e ACK

 

Captura de pacote TCP com Wireshark e packETH no Ubuntu

Host respondendo ao gateway com flag RST ativada

Você pode criar uma infinidade de tipos de pacotes, combinando as opções de campos disponíveis, e realizar testes variados em sua rede, com testes de conectividade e segurança. Nos próximos artigos vou tratar sobre funcionalidades mais avançadas do packETH, que podem ser configuradas clicando nos botões Gen-b, Gen-s e Pcap.

Cursos de Redes - Protocolo TCP - Handshake de Três Vias

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-handshake-de-tres-vias/

Por: Gabriela Parente

Para o Site: Techmovie

Protocolo TCP - Estabelecendo uma conexão entre dois Hosts

O Protocolo TCP, como vimos nas lições anteriores, é um protocolo orientado a conexão. Isso significa que, antes que qualquer dado possa ser enviado entre dois dois hosts, uma conexão deve ser estabelecida entre eles primeiramente. Vamos estudar nessa lição o processo pela qual uma conexão TCP é estabelecida entre dois hosts em uma rede.

O processo de estabelecimento de conexões TCP se dá da seguinte forma:

  1. O host que quer iniciar a conexão, que normalmente é o cliente, envia um seguimento com a flag SYN ativada, especificando a qual número de porta no servidor de destino ele quer se conectar, juntamente com o número de sequência inicial (seq ISN).
  2. O servidor  então responde com um segmento contendo a flag SYN, e seu número de sequência inicial. Além disso, o segmento SYN enviado pelo cliente é confirmado pela ativação da flag ACK neste segmento de resposta, confirmando o ISN do cliente + 1.
  3. O cliente então confirma o segmento SYN proveniente do servidor enviando outro segmento com a flag ACK ativada e o ISN do servidor + 1.
  4. Após essa troca de três segmentos entre cliente e servidor, o processo de estabelecimento de conexão está completo. Chamamos esse processo de Handshake de três Vias ( Three-Way Handshake). Neste caso, o host que envia o primeiro segmento SYN realiza o que chamamos de uma abertura de conexão ativa. Já o outro host, em nosso exemplo o servidor que recebe o segmento SYN, realiza uma abertura de conexão passiva.

    Cada vez que um dos hosts envia um segmento com a flag SYN para estabelecer a conexão, ele escolhe um número de sequência inicial para a conexão. Esse ISN muda ao longo do tempo, de modo que cada conexão terá um ISN diferente. De acordo com a RFC 793, o ISN deve ser visualizado como um contador de 32 bits que é incrementado em um a cada 4 μs (microsegundos). Desta forma, pacotes que sofrem um atraso muito grande na rede não serão entregues e, assim, evita-se que sejam interpretados erroneamente como pertencentes a outra conexão.

    Veja na figura a seguir a captura dos pacotes trocados durante um handshake de três vias ao acessar um website a partir de um navegador:

    Handshake de três vias TCP

    Estabelecendo uma conexão TCP entre dois hosts

    Meu host é o 192.168.1.119, e estou acessando o host 186.202.153.82. Note nas figuras as flags trocadas, e os números de sequência dos segmentos TCP. Meu host envia um segmento com a flag SYN ativada, e número de sequência 0 (Seq=0); o servidor web remoto envia como resposta um segmento com as flags SYN e ACK ativas, número de sequência 0 (Seq=0) e confirmação do ISN igual a 0 + 1 =1 (Ack=1). O cliente, então, finaliza o processo enviando outro segmento ao servidor, com a flag ACK ativa, número de sequência igual ISN a 1 (Seq=1) e confirmando o ISN do servidor (Ack=1).

    A figura a seguir detalha o esquema de troca de segmentos entre os dois hosts considerados na captura anterior:

    Handshake de Três Vias TCP

Curso de Redes - Protocolo TCP - Finalizando uma conexão entre dois hosts

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-tcp-finalizando-uma-conexao-entre-dois-hosts/

Por: Gabriela Parente

Para o Site: Techmovie

Protocolo TCP - Finalizando uma conexão entre dois hosts

Na lição anterior mostramos como é estabelecida uma conexão TCP entre dois hosts em uma rede, pelo processo denominado de Handshake de Três Vias. Após o estabelecimento dessa conexão, os hosts podem trocar dados entre si livremente.

Quando a troca de dados chega ao fim - por exemplo, quando um download é finalizado ou quando você sai de um web-site - conexão entre os hosts deve ser finalizada. Para isso, é realizado um processo de finalização da conexão, parecendo o processo de estabelecimento de conexão. Porém, há algumas diferenças. Por exemplo, como as conexões realizadas via protocolo TCP são full-duplex (dados podem trafegar em ambas as direções independentemente de outra direção), cada host deve finalizar a conexão independentemente. Ou seja, cada host deve enviar um segmento com a flag FIN ativada quando terminar de enviar seus dados.

Assim quando o protocolo TCP em um host recebe um segmento com a flag FIN, ele informará à aplicação envolvida na comunicação de que o outro host encerrou a transmissão de dados.

Chamamos o processo de finalização da conexão TCP de “Handshake de Quatro Vias”, pois são trocados ao todo quatro segmentos entre os hosts, ao contrário do processo de estabelecimento de conexão, onde são trocados três segmentos.

O host que emite primeiramente o segmento FIN realiza o que chamamos de finalização ativa, e o host que recebe esse segmento realiza uma finalização passiva. A seguir listamos as etapas da finalização de uma conexão TCP:

  1. Um dos hosts (vamos chamá-lo de host A) termina de enviar seus dados e então envia um segmento TCP com a flag FIN (finalization) ativada para o outro host, e aguarda o retorno. Neste ponto, o host A ainda pode receber dados do outro host, porém não aceita mais dados da aplicação local para envio.
  2. O outro host (host B) recebe o segmento e então responde com outro segmento confirmando (ACK) o número de sequência recebido + 1. Um segmento FIN utiliza um número de sequência, assim como um segmento SYN.
  3. O host B então emite uma mensagem para a aplicação envolvida na comunicação informando que a transmissão de dados finalizou, e envia um segmento TCP com a flag FIN ativa, fechando sua conexão.
  4. O host A, após receber o segmento FIN do host B, responde de volta confirmando (ACK) o número de sequência recebido + 1 (incrementado). Neste ponto, a conexão está encerrada entre os dois hosts.

As conexões entre hosts são geralmente iniciadas por um host cliente, e podem ser finalizadas tanto pelo cliente quanto pelo servidor (ou outro host). Porém, é mais comum que o próprio cliente que iniciou a conexão a finalize, pois os processos na máquina cliente são normalmente controlados por um usuário, que em algum momento encerra a aplicação que estava transmitindo e recebendo dados pela rede – por exemplo, o cliente fecha o navegador e encerra as conexões que estavam ativas com os websites abertos.

A figura a seguir detalha o esquema de troca de segmentos entre os dois hosts ao finalizar a conexão TCP.

Handshake de quatro vias - finalizando conexão TCP

A figura anterior mostra também os estados dos dispositivos durante o processo de finalização da conexão. Inicialmente, ambos os hosts (cliente e servidor) esão no estado “ESTABLISHED“, que significa que a conexão está estabelecida e que podem trocar dados. Os demais estados são explicados a seguir:

  • FIN_WAIT_1: Após enviar o segmento FIN ao servidor, o cliente (que solicitou a finalização da conexão) entra no estado FIN_WAIT_1, no qual aguarda tanto o ACK, quanto o segmento FIN do servidor. O cliente ainda pode receber dados, mas não pode mais enviar dados nesta conexão.
  • CLOSE_WAIT: O servidor está aguardando que o processo da aplicação local sinalize que está pronta para finalizar. Após o encerramento da aplicação local, o segmento FIN é enviado ao cliente.
  • FIN_WAIT_2: Após aguardar o recebimento do segmento FIN do servidor, o cliente recebe esse segmento e envia de volta um segmento ACK.
  • LAST_ACK: O servidor está aguardando um ACK (confirmação) do segmento FIN que ele enviou anteriormente. Ao receber essa confirmação, fecha a conexão de seu lado.
  • TIME_WAIT: O cliente então aguarda por um período de tempo igual a duas vezes o MSL(maximum segment lifetime), para ter certeza de que o ACK enviado foi recebido pelo servidor. Decorrido esse tempo, o timer expira e a conexão estará fechada (CLOSED).
MSL: Maximum Segment Lifetime (Tempo de Vida Máximo do Segmento), é o tempo durante o qual um segmento TCP pode existir em uma rede antes de ser descartado. É utilizado para calcular o valor do estado TIME_WAIT, que é de 2 vezes o valor do MSL.Podemos determinar o valor do MSL em um sistema Linux (usei a distribuição Debian como exemplo) executando o comando a seguir no terminal:

 

# sysctl net.ipv4.tcp_fin_timeout

Veja a saída abaixo:

Maximum Segment Lifetime no GNU Debian Linux

O MSL desse sistema é, portanto, de 60 segundos. O RFC 793 determina que o MSL deve ser de 2 minutos, mas as implementações comuns do protocolo TCP utilizam também temporizações de 30 ou 60 segundos, por exemplo.

Também é possível executar o processo de finalização de uma conexão TCP usando um handshake de três vias. Neste caso, o host A envia o segmento FIN, e o host B responde com um único segmento combinando os passos 2 e 3 descritos anteriormente, ou seja, com as flags FIN e ACK juntas, e então o host A responde de volta com o ACK. Este é um método muito comum de finalização da conexão, e a figura a seguir mostra uma captura de pacotes do Wireshark onde podemos visualizar esse processo:

Finalizando uma conexão TCP

Na figura podemos ver que meu host, de IP 192,168,1,100, está finalizando a conexão ao servidor remoto de IP 64.233.186.121. Meu host envia o segmento FIN, recebendo de volta um segmento FIN + ACK, e então finaliza o processo confirmando a recepção desse segmento com outro ACK.

Uma observação importante é a de que uma conexão pode estar em um estado chamado “half-open” (semi-aberta), na qual um dos hosts executou o processo de finalização da conexão, mas o outro não. Assim, o host que finalizou não pode mais enviar dados por esta conexão, mas o outro host ainda pode, de modo que o host que iniciou a finalização da conexão continua a receber dados até que o outro host também finalize a conexão.

Cursos de Redes - Protocolo UDP (User Datagram Protocol)

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-udp-user-datagram-protocol/

Por: Gabriela Parente

Para o Site: Techmovie

Protocolo UDP (User Datagram Protol)

O Protocolo UDP, que permanece à camada de transporte juntamente com o protocolo TCP, é um protocolo simples, orientado a datagrama. Ele não fornece confiabilidade na transmissão, pois envia os datagramas requisitados pela aplicação sem nenhuma garantia que eles chegarão ao seu destino.

O UDP não estabelece conexões antes de enviar dados. Apenas os empacota em datagramas e os envia. Além disso, não fornece confirmação da entrega desses dados. Portanto, o UDP não fornece nenhuma garantia de que as mensagens serão entregues, e não consegue detectar mensagens perdidas, tampouco transmiti-las.

Além disso, não garante que as mensagens serão recebidas na mesma ordem em que foram enviadas, e não possui mecanismo para gerenciamento do fluxo de dados entre os dispositivos.

Basicamente, o UDP é apenas um sistema de endereçamento de portas o protocolo IP. 

É muito comum pensar que, por conta dessas características específicas, nós deveríamos sempre usar o protocolo TCP para enviar dados em rede; porém, diversas aplicações se beneficiam desse modelo de envio, sem confiabilidade, por conta de sua performance. O UDP é um protocolo simples, porém rápido.

O UDP encontra aplicações, por exemplo, em sistemas onde a performance da transmissão de dados é mais importante do que a plenitude da entrega de todos os datagramas. Como por exemplo podemos citar aplicações multimídia. Se você estiver assistindo a um vídeo streaming pela internet (como vídeos no Youtube), o mais importante é que o fluxo de transmissão seja rápido e uniforme, se "travamentos" ou "saltos" durante a exibição do vídeo. Se alguns datagramas forem perdidos ou descartados durante a transmissão, muito provavelmente nada será notado pelo usuário.

Aplicações do Protocolo UDP

O Protocolo UDP encontra inúmeras aplicações em comunicação de redes, sendo que algumas das mais comuns estão compiladas na tabela a seguir:

Porta Protocolo Aplicação
53 DNS Sistema de resolução de nomes de domínio
67 e 68 DHCP Protocolo de configuração de hosts dinâmico
161 e 162 SNMP Protocolo para gerenciamento de redes, que utiliza mensagens curtas
520 e 521 RIP Protocolo de roteamento que não requer conexões

Alguns protocolos usam, na verdade, tanto o protocolo TCP quanto o UDP para transmissão de suas mensagens. O exemplo típico é o protocolo DNS, que também usa TCP para funções que requerem confiabilidade, como transferências de zonas.

O UDP encontra uso em streaming de áudio e vídeo, VoIP, gaming, mecanismos de broadcast e conexões VPN (OpenVPN, por exemplo), entre outras.

Cabeçalho UDP

Um segmento UDP é encapsulado em um datagrama IP, conforme podemos ver na figura a seguir:

Encapsulamento de um segmento UDP - Protocolos

E na figura a seguir podemos ver o formato completo de um cabeçalho UDP, cujo tamanho é de 8 bytes, conforme mostrado na ilustração anterior:

Formato do Cabeçalho UDP

O uso dos campos “Checksum” e “Número de Porta de Origem” é opcional em IPv4; já em IPv6 apenas o campo “Número de Porta de Origem” é opcional.

Segue uma descrição sucinta de cada um dos campos no cabeçalho UDP

  • Número de Porta de Origem: número que identifica a aplicação (processo) que envia os dados
  • Número de Porta de Destino: número que identifica a aplicação (processo) que deve receber os dados
  • Comprimento: Este é um campo que especifica o comprimento em bytes do cabeçalho UDP mais os dados carregados. O tamanho mínimo é de 8 bytes devido ao comprimento do cabeçalho. O tamanho máximo possível para um datagrama UDP é de 65.507 bytes (65.535 − 8 bytes do cabeçalho UDP − 20 bytes do cabeçalho IP), devido ao protocolo IPv4. Em IPv6 é possível termos pacotes de tamanho maior do que 65.535.
  • Checksum: Pode ser usado para verificação de erros do cabeçalho e dos dados transmitidos. É opcional em IPv4 e mandatório em IPv6. Se não for usado, deverá ser preenchido com zeros.

Note que ambos os protocolos, TCP e UDP, utilizam números de portas para identificar os processos que estão se comunicando, mas esses números são independentes- as portas TCP não tem relação com as portas UDP, e vice-versa.

Comparando os protocolos TCP e UDP

Se compararmos o protocolo UDP com o protocolo TCP, vamos notar as seguintes diferenças:

  • O UDP não é confiável – as mensagens enviadas podem não alcançar o destino. O TCP trata disso tentando garantir a entrega da mensagem ao destino.
  • O UDP não ordena os datagramas enviados – se chegarem fora de ordem, não serão reordenados. O TCP os reordena no destino, caso cheguem desordenados.
  • O UDP é um protocolo mais leve, pois não realiza handshake para estabelecer e finalizar conexões nem tampouco mantém registro das conexões ativas. O TCP realiza estas tarefas.
  • Como o UDP não é orientado à conexão, ele pode enviar pacotes em broadcast ou multicast tranquilamente. O TCP é projetado para trabalhar em comunicação unicast.

 

 

Cursos de Redes - O que é um Switch

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-o-que-e-um-switch/

Por: Gabriela Parente

Para o Site: Techmovie

O que é um Switch de Rede

Switch Gerenciável Cisco Catalyst

Um Switch é um equipamento de rede que permite interconectar dispositivos em uma rede de computadores, usando comutação de pacotes para receber, processar e encaminhar dados ao dispositivo de destino.

O Switch permite a conexão de dispositivos por meio de suas portas. É possível encontrar switches com a partir de 4 quatro portas até 48 (ou mais em alguns modelos especiais), operando em velocidades que podem variar entre Fast Ethernet (100 Mbps) e 10 Gbps (ou mesmo maior, em modelos muito especializados). É possível também associar alguns modelos de switches para permitir a conexão de mais dispositivos a um mesmo segmento de rede, com maior número de portas.

Detalhe das portas de um switch Cisco Catalyst

Detalhes de por de um switch

O que fazem

Os switches utilizam os endereços de hardware (MAC Address) para processar e encaminhar dados na camada de enlace (nível 2 no modelo OSI), e alguns modelos de switch também conseguem processar dados do nível 3 (camada de rede), incorporando assim algumas funcionalidades de roteamento. Um switch que pode operar em mais de uma camada é chamado de Switch Multiplayer.

Há até mesmo switches de camada 4 e camada 7 disponíveis no mercado.

Os switches gerenciam o fluxo de dados através de uma rede transmitindo uma mensagem recebida apenas para um ou mais dispositivos para os quais a mensagem foi enviada. Cada dispositivo de rede conectado a um switch pode ser identificado usando um número de endereço MAC (endereço físico), permitindo assim que o switch controle o fluxo de tráfego. Assim, é possível obter o máximo de eficiência e segurança na de rede.

Um switch ainda pode transmitir pacotes para toda a rede, quando uma mensagem é enviada em brodcast, por exemplo. Por conta disso, o segmento de rede formado pelos dispositivos conectados a um switch é considerado ainda um Domínio de Broadcasts. Porém, um Domínio de Colisão é criado em cada porta do switch, o que elimina os problemas de colisão de dados que ocorriam ao se usar hubs.

Muitos switches permitem a conexão de diferentes tipos de redes, geralmente por meio do uso de interfaces modulares, como por exemplo Ethernet, Fibre Channel, ATM e outras.

 

Funcionamento

O switch encaminha os pacotes para o dispositivo ou grupo de dispositivos de destino, em vez de simplesmente encaminhar os pacotes para todos os nós da rede, como ocorria com os hubs, que eram dipositivos com basicamente a mesma função dos switches, porém sem muitas de suas capacidades. Para isso, ele tem a capacidade de aprender os endereços físicos dos dispositivos a ele conectados, e armazenar essa informação para uso posterior, associando os endereços físicos às portas onde esses dispositivos estão conectados.

Uma vez que o switch tenha aprendido os endereços físicos dos dispositivos a ele conectados, ele irá encaminhar os quadros da camada de enlace de dados usando um método de encaminhamento específico. Existem quatro métodos de encaminhamento que um switch pode usar:

  • Store and Forward: o switch armazena em buffer os dados e verifica cada quadro antes de encaminhá-lo; um quadro é recebido em sua totalidade antes de ser encaminhado.
  • Cut-through: o switch inicia o encaminhamento logo após o endereço de destino quadro ter sido recebido. Quando a porta de saída está ocupada no momento, o switch passa a operar no modo store and forward. Não há verificação de erros neste método.
  • Fragment Free: Este método junta benefícios dos dois métodos anteriores. Neste método os primeiros 64 bytes do quadro, onde a informação de endereçamento é armazenada, são verificados. De acordo com as especificações Ethernet, as colisões devem ser detectados durante os primeiros 64 bytes do quadro, de modo que quadros que possuam erros devido a colisões não devem ser encaminhados. Desta forma, o quadro vai sempre chegar ao seu destino pretendido. A verificação de erros dos dados reais no pacote será realizada no dispositivo de destino.
  • Adaptive Switching: Neste método é realizada uma seleção automática entre os outros três modos.
Diagrama de Switch conectando dispositivos

Diagrama de Switch conectando dispositivos

Classificação quanto à Configuração

Os switches podem ser classificados em Gerenciáveis e Não-Gerenciáveis:

  • Não-Gerenciável: Sem opções ou interfaces de configuração. Geralmente usados em pequenos ambientes SOHO.
  • Gerenciável: Possuem opções para alterar o modo de funcionamento do dispositivo. Podem usar interfaces de linha de comandos, web, ssh, console serial ou outros métodos de acesso, e permitem alterar configurações tais como habilitar protocolo Spanning Tree, Port Mirroring, configurar largura de banda das portas, aplicar filtros de MAC e criar VLANs, entre diversas outras.

Principais Fabricantes de Switches

Abaixo temos uma lista com alguns dos principais fabricantes de switches que atuam no mercado hoje. A lista não está completa, mas traz os fabricantes com maior representatividade e volume de vendas da atualidade:

  • Cisco
  • Brocade
  • TP-Link
  • Allied Telesis
  • Juniper
  • Linksys
  • TRENDnet
  • D-Link
  • NetGear
  • HP

 

O que é APIPA - Redes de Computadores

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/o-que-e-o-apipa/

Por: Gabriela Parente

Para o Site: Techmovie

Automatic Private IP Addressing - APIPA

Quando usamos endereçamento Quando usamos endereçamento IPv4 em uma rede, é necessário configurar manualmente os IPs nas estações de trabalho ou então utilizar um servidor DHCP para atribuir esses endereços automaticamente - que é o procedimento mais comum.

Porém, se o servidor DHCP falhar ou não estiver disponível em uma rede Windows, neste caso, as máquinas na rede local não receberão suas configurações de rede, incluindo o endereço IP. Para tentar garantir que, num caso desses, as máquinas ao menos consigam se comunicar entre si dentro da própria rede local (LAN), podemos usar o serviço do APIPA - também conhecido como endereço IP de Link Local.

Usando o APIPA é possível garantir que as máquinas consigam se comunicar em uma rede local, mesmo que não haja servidores DHCP disponíveis para atribuir endereços aos hosts, ou que as máquinas não possuam configuração de IP fixo. Neste caso, o cliente DHCP atribui a si próprio um endereço IP de uma faixa pré-determinada, assim como uma máscara  de sub-rede.

Quando um servidor DHCP se tornar disponível na rede novamente, o cliente efetuará  uma requisição de IPs normalmente, substituindo o endereço APIPA pelo  endereço que será fornecido pelo servidor. De acordo com a Microsoft, o serviço do APIPA verifica a cada 5 minutos se um servidor DHCP está disponível na rede.

A sigla APIPA significa Automatic Private IP Addressing, ou seja, Endereçamento IP Privado Automático.

Faixa de Endereços do APIPA

Existe uma faixa de endereços reservados pelo IETF que são atribuíveis por meio do APIPA:

169.254.0.1 até 169.254.255.254

sendo que o primeiro e último blocos dessa faixa são reservados, de modo que as estações, na verdade, irão receber endereços localizados na seguinte faixa:

169.254.1.0 até 169.254.254.255

Também será usada a máscara de sub-rede classe B 255.255.0.0

A figura a seguir mostra uma máquina com Windows 10 fazendo uso do serviço do APIPA, pois o servidor DHCP da rede foi desligado e ela não conseguiu obter configurações de rede. Note o endereço IP (169.254.61.237) e a máscara de sub-rede utilizada (255.255.0.0):

Endreçamento de link-local com APIPA

O serviço pode ser desativado a partir das Configurações de Rede do Windows, nas propriedades do Protocolo TCP/IP, guia “Configuração Alternativa” (Alternate Configuration), como podemos ver na figura a seguir:

Configuração do APIPA no Windows 10

Utilidade do APIPA

Se as máquinas em uma rede local estão recebendo endereços APIPA, isso significa que há algo de errado na comunicação com o servidor DHCP da rede.

Neste caso, as máquinas recebem endereços aleatórios para uso, determinados pelos seus sistemas operacionais, que emitem pacotes ARP na rede local para determinar quais endereços podem ser usados, pois não podemos ter endereços IP duplicados em uma rede local.

Os problemas mais comuns que podem levar uma estação a utilizar endereçamento APIPA incluem:

  • Patch Cable defeituoso
  • Servidor DHCP com problemas
  • Sem conexão adequada à rede sem fio
  • Cabeamento fixo com problemas
  • Problemas em uma ou mais portas do switch

Ou seja, problemas que, em última instância, levem à quebra de comunicação entre as estações e o servidor DHCP da rede.

Um endereço APIPA não permite que seja feito roteamento para fora da rede local, de modo que o acesso à Internet não existirá nesse caso.

Cisco Packet Tracer - Adicionando Linhas de Grade

Pesquisa feita no Site:http://www.bosontreinamentos.com.br/redes-computadores/cisco-packet-tracer-adicionar-linhas-de-grade/

Por: Gabriela Parente

Para o Site: Techmovie

Adicionando Linhas de Grade no Packet Tracer

Quando criamos diagramas de rede usando o software Cisco Packet Tracer, é muito comum desejarmos manter os elementos de rede (switches, roteadores, hosts) alinhados entre si na tela. Porém, o programa não possui uma função específica para alinhá-los automaticamente. Mesmo assim, podemos fazer, o alinhamento manual, arrastando os elementos até as posições desejadas. Para facilitar essa tarefa, você pode inserir linhas de grade no fundo do diagrama - mais precisamente, uma figura de fundo (background) contendo linhas de grade, de tamanhos variáveis.

Para ativar o background no Packet Tracer pressione a combinação de teclas Shift +i, o que abrirá a caixa de diálogo "Set Background Image", mostrada a seguir:

Cisco Packet Tracer - Adicionando Backgound Image

Alternativamente, você pode clicar no botão "Set Tiled Background" para abrir a caixa de diálogo na tela principal do Packet Tracer, como mostra a figura a seguir:

Packet Tracer - Imagem em Grid

Selecione o fundo desejado, marque a opção "Display Titled Background Image" e clique no botão "Apply" para aplicar a imagem de fundo ao seu diagrama de rede, como mostrado a seguir (selecione um background de 25 x 25 pixels): 

Cisco Packet Tracer - Imagem de Fundo em Grid

Veja na figura a seguir o diagrama de rede simples com o background quadriculado (em grid), que facilitará bastante manual dos elementos na tela:

Cisco Packet Tracer - Linhas de Grade (Grid)

Para retirar o background após o alinhamento dos componentes do diagrama, acesse novamente a caixa de diálogo "Set Background Image" com as teclas Shift +i, marque a opção "Use Original Image" e clique no  botão "Apply". O fundo de tela em grid será removido, deixando os elementos na tela alinhados: 

Cisco Packet Tracer - Imagem em Grid no fundo

Se necessário, você pode dar zoom no diagrama para efetuar o alinhamento dos elementos com mais facilidade, usando os atalhos de teclado Ctrl + i (aumentar o zoom) e Ctrl + u (diminuir o Zoom).

 

 

 

Escopos de Redes - Curso de Redes de Computadores

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/escopos-de-redes-curso-de-redes-de-computadores/

Por: Gabriela Parente

Para o Site: Techmovie

Escopos de Redes

O Escopo de uma Rede refere-se ao seu tamanho ou alcance geográfico. O tamanho de uma rede pode variar de apenas alguns poucos metros, ligando periféricos a um computador, a milhares de computadores conectados através de longas distâncias. Existem diversos escopos de redes distintos, e os principais tipos de redes quanto ao escopo podem ser:

  • LAN
  • MAN
  • WAN
  • PAN

LAN - Local Area Network

Área de rede local, ou simplesmente Rede Local, geralmente está localizada em um edifício, escritório, câmpus ou até mesmo em sua residência, possui conectividade em alta velocidade e sua característica principal é ser uma rede privativa, ou seja, alguém (pessoa ou organização) controla essa rede e o acesso a ela, em uma área geográfica limitada.

As principais tecnologias para redes LAN são a Ethernet  IEEE 801.11 (WLAN - Rede Wireless local), e este é um dos escopos de redes mais populares e comuns, justamente por conta de sua aplicação, fazendo uso de switches de rede, access points ou mesmo hubs para conexão entre os pontos de redes.

Escopo de Rede Local - LAN

MAN - Metropolitan Area Network

Rede de Área Metropolitana, é um escopo de rede intermediário entre uma LAN e uma WAN, tratando-se uma rede localizada em uma área geográfica confinada e bem definida, de tamanho médio, como por exemplo em um município ou região metropolitana. Uma das tecnologias mais utilizadas em redes MAN é conhecida como Metro Ethernet, mas historicamente houveram diversas topologias específicas utilizadas na construção de redes metropolitanas.

Escopo de Rede Metropolitana - MAN

WAN - Wide Area Network

Rede Área Ampla. Em uma WAN a comunicação se dá em uma distância relativamente longa. Geralmente podemos usar uma WAN para conectar uma LAN em um local a outra LAN em um local remoto, que pode estar localizada em um prédio vizinho ou do outro lado do planeta.

Usamos serviços de terceiros para realizar a comunicação via WAN, como por exemplo os provedores de Internet, a qual nada mais é que um grande conjunto de WANs interconectadas formando uma grande WAN mundial.

Uma WAN pode utilizar diversas tecnologias de acesso e transmissão de dados, como por exemplo MPLS, conexões via cabos submarinos, via satélite, entre outras, e faz uso extensivo de roteadores.

As redes WAN são muitas vezes representadas por uma nuvem em diagramas de rede, simbolizando a complexidade das conexões entre seus elementos internos.

Rede WAN

 

PAN - Personal Área Network

Rede de Área Pessoal, é um escopo de rede que remete a equipamentos conectados a um computador, sendo considerada a uma espécie de rede privada, consistindo em elementos que se conectam a um máquina usando tecnologias variadas, como cabos USB, Bluetooth, IR (Infra-vermelho), NFC (Near Field Communication) conectando mouses, teclados, HDs Externos, fones de ouvido wireless, celulares, etc., e sua principal característica é o espaço geográfico extremamente limitado a rede - geralmente alguns poucos metros, de acordo com o alcance dos cabos ou potência dos sinais RF utilizados.

Personal Area Network - PAN

Além dos escopos citados no artigo, existem outras classificações de redes, menos utilizadas como os escopos CAN, GAN, HAN e SAN

Topologias de Redes - Curso de Redes de Computadores

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/topologias-de-redes-curso-de-redes-de-computadores/

Por: Gabriela Parente

Para o Site: Techmovie

Topologias de Redes

As topologias de redes descrevem o arranjo dos elementos de uma rede (computadores, cabos e outros componentes). São uma espécie de "mapa" da rede, que pode ser físico ou lógico. A topologia física se refere especificamente à disposição física dos componentes da rede, ao passo que a topologia lógica mostra a forma como  os dados trafegam dentro dessa rede, independentemente da topologia física empregada. Assim, podemos ter uma rede que utiliza uma topologia física específica, e uma topologia lógica diferente.

O tipo de topologia usado afeta o tipo e recursos do hardware da rede, seu gerenciamento e as possibilidades da expansão futura.

As principais topologias de redes são as seguintes:

  • Barramento
  • Anel
  • Estrela
  • Malha
  • Híbrida
  • Ponto-a-ponto
  • Ponto-a-multiponto

Vamos descrever cada uma delas a seguir:

Topologia em Barramento (Bus)

Trata-se de uma topologia antiga, na qual havia um único caminho para o tráfego de dados, na forma de um cabo coaxial, e todas as estações (pontos da rede) são conectadas a esse mesmo cabo para trocar dados pela rede.

Neste tipo de topologia as transmissões dos dispositivos de rede se propagam por toda a extensão do meio (cabo) e são recebidas por todos os nós da rede, que devem então determinar se a transmissão é direcionada a eles para aceitá-la ou não.

Topologia Barramento - Bus

Topologia Barramento – Bus

As redes em Barramento apresentam como vantagem a facilidade de implementação e expansão, porém trazem diversas desvantagens críticas, como por exemplo:

  • Se um cabo se rompe, cai toda a rede.
  • Dificuldade em reparar defeitos – é muito difícil determinar onde está o defeito, caso o cabo se rompa, sem o uso de equipamentos de teste de custo elevado
  • Comprimento do cabo e nº de estações são limitados; quanto mais estações são conectadas ao cabo, maior a probabilidade de ocorrerem colisões de dados.
  • Performance diminui com o aumento das estações, devido ao problema de colisão de dados
  • Necessita de um Terminador próprio conectado nas extremidades do cabo, para evitar problemas de reflexão de sinal, que levam à ocorrência de colisões de dados.

Topologia em Anel (Ring)

Outra topologia antiga, não mais em uso em redes locais, mas que ocasionalmente pode ser encontrada em algumas redes legadas. O exemplo mais típico de uma rede em anel é a tecnologia Token Ring, da IBM.
A topologia em anel ainda é empregada em redes metropolitanas (MAN) e algumas redes WAN também, como redes SONET, e nesse caso possui tolerância a falhas (geralmente com o uso de múltiplos anéis redundantes).

Topologia de Rede em Anel (Ring)

Topologia de Rede em Anel (Ring)

As redes em anel, no geral, possuem um custo de implantação mais elevado, pois necessitam de equipamentos de controle especiais (não mostrados na figura) para controlar o tráfego de dados pelo cabo.

Topologia Estrela (Star)

Nesta topologia de rede todos os dispositivos (nós) são conectados a um dispositivo distribuidor de comunicações central, como um Hub ou (preferencialmente) um Switch.

Usada na maioria das redes de pequeno ou de grande porte, é a principal topologia de redes utilizada atualmente, principalmente em redes locais (LAN).

Topologia Estrela - Star Topology

Topologia em Estrela

A topologia Estrela traz uma série de vantagens, com por exemplo a facilidade para implementação e expansão da rede, custo relativamente baixo, além da (praticamente) eliminação dos problemas de colisão de dados, quando usamos Switches como dispositivos concentradores.

Uma desvantagem no uso de redes em estrela é que se o dispositivo central for danificado, toda a rede será afetada. Além disso, o número de estações é limitado pelo número de portas disponíveis para conexão ao concentrador.

Topologia em Malha (Mesh)

Esta topologia possui uma ou múltiplas conexões ao mesmo ponto, podendo ser classificada em Malha Totalmente Conectada ou Malha Parcialmente Conectada, dependendo do nível de conectividade existente entre os pontos da rede.

Permite aplicar os conceitos de redundância, tolerância a falhas e balanceamento de carga à rede. Desta forma, se um link entre dois pontos se torna inoperante, por uma razão qualquer, haverá um outro link (caminho) que permitirá o tráfego de dados entre esses pontos, mantendo a funcionalidade da rede mesmo em caso de falhas no meio de transmissão. Além disso, é possível escolher caminhos alternativos para os dados caso haja congestionamento de tráfego, e até mesmo dividir a carga de transmissão dos dados entre dois ou mais caminhos distintos.

Topologia em Malha - Mesh

Topologia em Malha

Ela tem um alto custo e é difícil de gerenciar pois o nº de conexões cresce exponencialmente, de acordo com a fórmula:

N x (N – 1) / 2

Onde N é o número de dispositivos na rede. Então, por exemplo, em uma topologia em malha totalmente conectada com, digamos, 10 nós, o número de conexões necessárias seria:

10 x (10 -1) / 2 = 45 conexões.

A topologia em malha é usada extensivamente em redes WAN, interconectando roteadores e outros equipamentos de rede, mas no geral não em redes locais, devido ao problema citado anteriormente.

Topologia Híbrida

Trata-se de uma combinação de duas ou mais topologias de rede distintas, com por exemplo uma rede em topologia estrela conectada a uma rede em topologia barramento. É uma topologia comum, se levarmos em consideração que, por exemplo, nossas redes locais são do tipo estrela, porém conectadas a redes do tipo malha ou anel quando temos conectividade com a Internet.

Topologia Ponto-a-ponto

Como o próprio nome diz, trata-se de uma topologia onde um ponto da rede é conectado diretamente a outro ponto da rede. Alguns links WAN antigos são do tipo ponto-a-ponto, como as redes T1. Podemos também conectar, por exemplo, um PC diretamente a outro por meio de um cabo ligado diretamente entre suas placas de rede, ou até mesmo conectando as portas seriais das máquinas.

Topologia Ponto-a-ponto

Topologia Ponto-a-ponto

Topologia Ponto-a-multiponto

Esta topologia lembra, fisicamente, uma topologia estrela, porém sem que necessariamente todos os nós da rede possam se comunicar completamente uns com os outros.

Um exemplo típico dessa topologia são as redes 802.11 (sem fio), na qual podemos ter diversos pontos de rede se conectando a um Access Point (AP / Ponto de Acesso), o qual gerencia a conectividade entre os pontos de rede e pode impedir que as estações e comuniquem entre si, somente trocando dados com o próprio AP.

Topologia Ponto-Multiponto

Topologia Ponto-a-Multiponto

 

O Modelo OSI - Curso de Redes de Computadores

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/o-modelo-osi-curso-de-redes-de-computadores/

Por: Gabriela Parente

Para o Site: Techmovie

Modelo OSI

O Modelo OSI (Open System Interconnection) é um modelo de referência para o projeto de protocolos de rede. É uma forma de descrever o processo a que os dados são submetidos quando transmitidos através de uma rede, e recebidos por um dispositivo receptor. Como o próprio nome diz, se trata de um modelo, abstrato, e não de um protocolo de redes real. O Modelo OSI é dividido em sete camadas, e cada camada cuida de um aspecto da comunicação em rede. Em cada camada devem estar localizados protocolos específicos que realizam trabalhos distintos, dependendo da necessidade.

As camadas OSI são as seguintes:

As sete camadas do Modelo OSI

Camadas do Modelo OSI - Curso de Redes de Computadores

Vamos analisar cada uma dessas camadas de acordo com suas funções, começando pela camada de nível mais baixo (mais próxima do hardware de rede), que é a camada física, em direção à camada de Aplicação.

Camada 1: É a Camada Física. Esta camada trata da sinalização de rede, e da conversão de bits (advindos das camadas superiores) em sinais elétricos, ópticos ou ainda ondas eletromagnéticas para envio pelos diversos meios de transmissão utilizados, carregando os dados de um ponto a outro da rede. Define os aspectos mecânicos e elétricos da rede. É o nível onde atuam as interfaces (placas) de rede.

Camada 2: Camada de Link de Dados (Data Link). Nesta camada temos a organização dos dados a serem enviados em conjuntos de bits denominados Quadros (Frames), e é aqui que especificamos os endereços físicos das Interfaces de redes envolvidas na comunicação (endereços MAC). Um endereço MAC é responsável pela identificação única dos dispositivos em uma rede, consistindo em um endereço gravado em uma memória ROM presente na própria interface física de rede.

Também é responsável pela sinalização de início e fim de transmissão de um quadro, além de gerar um código para reconhecimento de erros de transmissão de dados, conhecido como checksum.

Camada 3: Camada de Rede. Esta camada introduz a capacidade de rotear o tráfego de um ponto de rede a outro, por meio de subredes, e por isso podemos chamar essa camada de camada de roteamento. Aqui, podemos aplicar um esquema de endereçamento lógico aos pontos de rede, como por exemplo o endereço IP.

Nesta camada também pode ocorrer fragmentação dos dados a serem transmitidos, caso o tamanho desses dados exceda um limite pré-determinado, de modo que segmentos de rede que não suportem quadros de tamanho muito grande possam também enviar dados sem problemas.

O PDU da camada de rede é chamado de Pacote (como por exemplo, em pacote IP). Um PDU (Protocol Data Unit) é um nome dado a um conjunto de dados presentes em uma determinada camada de uma pilha de protocolos.

Camada 4: Camada de Transporte. No geral, a camada de transporte tem o papel de fornecer funções que permitam a comunicação entre processos de aplicações (softwares) entre computadores diferentes. Assim, a camada de transporte fornece um mecanismo pelo qual diversas aplicações distintas podem enviar e receber dados usando a mesma implementação de protocolos das camadas mais baixas. 

Na camada de transporte damos o nome de Segmento a um PDU que contenha dados TCP e Datagrama a um DPU que contenha dados UDP. 

Camada 5: Camada de Sessão. Nesta camada é efetuada a configuração das sessões de comunicações entre os dispositivos na rede. Aqui, uma sessão de comunicação pode ser iniciada, mantida e finalizada quando não houverem mais dados a transmitir, ou quando uma das partes quiser encerrar a comunicação. Além disso, permite o sincronismo e restabelecimento de uma sessão de comunicações a partir do ponto onde houve um problema de interrupção na transmissão. O PDU aqui é chamado simplesmente de Dados (Data), assim como nas camadas 6 e 7.

Além disso, nesta camada é possível determinar se a comunicação se dará em modo half-duplex ou full-duplex, além de gerenciar o uso de protocolos de tunelamento (para acesso remoto, por exemplo).

Camada 6: Camada de Apresentação. Esta camada lida com as técnicas de apresentação dos dados, o que significa basicamente que ela é responsável pela forma ocmo os dados são reconhecidos e visualizados em seu destino. Como exemplos de suas atribuições, temos a codificação de caracteres, compressão e criptografia de dados.

Camada 7: Camada de Aplicação. Esta é a camada de mais alto nível (conceitualmente), e é a responsável por fornecer os serviços de rede às aplicações que rodam no computador. Assim, seu navegador ou seu programa de e-mails acessa a rede pois é capaz de se comunicar com a camada de aplicação da pilha de protocolos.

Podemos ver na figura a seguir um resumo das funções de cada camada no modelo de referência OSI:

Resumo do Modelo de Referência OSI de Redes de computadores

A figura a seguir mostra a transmissão da dados no Modelo OSI, entre um dispositivo transmissor e um dispositivo receptor (ambos computadores neste caso):

Transmissão e Recepção de Dados no Modelo OSI

Na prática, usamos conjuntos de protocolos de redes que são baseados no Modelo OSI (com algumas modificações), como a famosa pilha TCP/IP, a qual será nosso objeto de estudo em inúmeras lições aqui no Curso de Redes de Computadores da Bóson Treinamentos em Tecnologia, começando pelo próximo tutorial.

 

Estrutura de um Pacote IPv4 - Redes de Computadores

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/estrutura-de-um-pacote-ip-redes-de-computadores/

Por: Gabriela Parente

Para o Site: Techmovie

Estrutura de um Pacote IPv4

Na camada de Internet da pilha TCP/IP, os dados provenientes da camada de transporte são empacotados em PDUs denominadas pacotes.

Na camada física, esses pacotes serão encapulados em quadros (frames) para envio pelo meio de transmissão.

Um pacote IPv4 é composto por um cabeçalho e um campo de dados, que contém os dados provenientes da camada superior (transporte). A estrutura de um pacote IPv4, incluindo cabeçalho e campos de dados, é mostrada na figura a seguir:

Estrutura de um Pacote IP

Estrutura de um Pacote IP - Cabeçalho e Dados

A seguir, vamos descrever cada um dos campos encontrados no pacote IPv4.

Campos do pacote IP

  • Versão: Indica a versão do protocolo IP que está sendo usado. Para o protocolo IPv4, o valor 4 é utilizado neste campo.
  • Tamanho do Cabeçalho (IHL, Internet Header Length): Indica o comprimento do cabeçalho do pacote em número de palavras em 32 bits (bits existentes no cabeçalho /32). Como o campo de opções pode ter tamanho variável, é importante registrar aqui o tamanho do cabeçalho, para que seja possível definir onde ele termina, e onde se inicia o campo de dados. Para um pacote que não usa nenhuma opção, o valor do IHL será de 160/32 = 5, sendo que 160 é o somatório de bits que compõem o cabeçalho do pacote.
  • DSCP: Differentiated Services Code Point. Este campo originalmente era definido co Tos (Type of Service/Tipo de serviço). É utilizado por tecnologias que necessitem de streaming de dados em tempo-real, como por exemplo VolP (Voz sobre IP).
  • ECN: Explicit Congestion Notification, este campo permite uma notificação fim-a-fim de congestionamento de rede sem descartar pacotes. É um campo de uso opcional.
  • Tamanho: Define o tamanho total do pacote em bytes, incluindo o cabeçalho e o campo de dados.
  • Identificação: Identifica o Datagrama (pacote) IP por meio de um número de identificação sequencial.
  • Flags: Usado para controlar a fragmentação dos pacotes. Possui 3 bits, com o seguinte significado (do maior o menor):
  • Bit 0: O primeiro bit é sempre 0 (reservado).
  • Bit 1: DF (Don't Fragment), quando ativado indica que o datagrama não pode ser fragmentado. Se a fragmentação for requerida na rede e este bit estiver ativado, o pacote será descartado.
  • Bit 2: MF (More Fragments): Indica o último fragmento: quando o bit for 1, há mais fragmentos depois dele; quando for 0, ele é o último fragmento do conjunto do pacote.
  • Offset do Fragmento: Determina a ordem dos fragmentos. Especifica o deslocamento relativo de um fragmento em particular em relação ao início do pacote IP original, sem fragmentação. O primeiro fragmento possui offset igual a zero.
  • É medido em blocos de 8 bytes.
  • Tempo de vida (TTL): Tempo de vida máximo do Datagrama. Impede que um pacote se perca em uma rede (Internet) e entre em loop infinito entre os roteadores. Atualmente seu valor corresponde a saltos de roteadores (hops). Toda vez que um pacote passa por u roteador, o valor desse campo é decrementado (subtrai-se 1). Quando um roteador recebe um pacote cujo TTL é igual a 0, o pacote é descartado, evitando sua permanência infinita na rede.
  • Protocolo: Indica o protocolo (presente no campo de dados) que pediu o envio do datagrama, através  de um código numérico. Os códigos são definidos pela RFC 790.
  • Checksum  do Cabeçalho: Usado para verificação de erros do cabeçalho do datagrama. Quando um pacote chega em um roteador, o roteador calcula o checksum do cabeçalho e compara o valor obtido com o valor armazenado nesse campo. Se os valores não baterem, significa que houve erro durante a transmissão dos dados, e o pacote é descartado. Toda vez que um pacote passa por um roteador, um novo checksum deve ser calculado e armazenado neste campo, pois os roteadores alteram o  conteúdo do cabeçalho IP ao decrementar o campo TTL.
  • Endereço IP de Origem: Endereço IP do remetente do pacote. Esse endereço pode ser alterado por um roteador se for utilizado um serviço de tradução de endereços, como o NAT. 
  • Endereço IP de Destino: Endereço IP do destinatário do pacote. Esse endereço também pode ser alterado por um roteador se for utilizado um serviço de tradução de endereços, como o NAT.
  • Opções + Pad: Campo opcional. Usado em situações de teste e verificação de erros na rede. As duas funções mais importantes desse campo são traçar a rota de rede que está sendo usada da origem até o destino (traceroute) e marcar o horário com que o datagrama passa por cada roteador da origem até o destino (timestamp)
  • Dados: São os dados que o datagrama está carregando, com o limite de 64 kB. Os dados não fazem parte do cálculo do checksum do cabeçalho. Os protocolos mais comuns encontrados no campo de dados são o TCP, UDP, ICMP, IGMP e OSPF, entre outros.

Fragmentação de Datagramas IP - Redes de Computador 

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/fragmentacao-de-datagramas-ip-redes-de-computadores/

Por: Gabriela Parente

Para o Site: Techmovie

Fragmentação de Datagramas IP

Quando um roteador recebe um pacote, ele examina o endereço de destino e determina para qual interface deve caminhar esse pacote, para que possa seguir seu caminho até o destino. 

Além disso, o roteador também determina o MTU da interface a ser usada. Caso o tamanho do pacote seja maior do que o MTU, e o bit DF do campo Flags do cabeçalho esteja ajustado em 0, o roteador irá fragmentar o pacote.

O propósito da fragmentação de pacotes IP, realizada pelo protocolo IP, é portanto permitir que os datagramas possam ser transmitidos em links cujo MTU seja menor do que o tamanho original desses datagramas. Esse procedimento é descrito pela RFC 791. 

Fragmentar o pacote significa dividir o pacote em unidades de menor tamanho, denominadas Fragmentos. O tamanho máximo de um fragmento é o tamanho da MTU menos o tamanho do cabeçalho IPV4, que pode variar de 20 até 60 bytes. Cada fragmento será enviado pela rede em um pacote separado, e cada um desses pacotes seguirá as seguintes regras:

  • O campo Tamanho Total será o tamanho do fragmento;
  • O bit MF (more fragments) no campo Flags será configurado em 1 para todos os fragmentos exceto o último, que terá o valor 0 ajustado;
  • O campo Offset do Fragmento será configurado (em 1), baseado no deslocamento do fragmento no campo de dados original, em unidades de blocos de oito bytes.
  • O checksum do
    • do cabeçalho deve ser recalculado.

    Assim, se tivermos um MTU de 1500 bytes e pacotes padrão com cabeçalho de 20 bytes, os offsets (deslocamentos) dos fragmentos serão múltiplos de (1500-20)/8 = 185, como por exemplo 0, 185, 370, etc.

    Exemplo de fragmentação de datagramas IP

    Vamos supor que um segmento da camada de transporte tenha um tamanho total de 4000 bytes, sem o uso de opções, e que esse segmento será enviado em pacotes IP de cabeçalho padrão de 20 bytes.

    O tamanho total do pacote IP gerado teria então 4020 bytes (4000 + 20). Vamos assumir também um caso típico que é o do envio desse pacote por um link cujo MTU é de 1500 bytes – portanto, o pacote deverá ser fragmentado por exceder esse tamanho.

    O pacote será fragmentado da seguinte forma:

    Fragmento Bytes totais Bytes do cabeçalho Bytes de Dados Flag MF Offset do fragmento
    1 1500 20 1480 1 0
    2 1500 20 1480 1 185
    3 1060 20 1040 0 370

    O primeiro offset será igual a zero. O segundo offset será igual a 0 + (Bytes de Dados / 8) = 0 + 1480/8 = 185.

    O terceiro offset será igual ao segundo offset (185) + (Bytes de dados / 8) = 185 + 1480 / 8 = 185 + 185 = 370.

    A figura a seguir ilustra o exemplo de fragmentação apresentado:

    Fragmentação de Datagramas IP - Curso de Redes

    Podemos recalcular o tamanho total do pacote a partir do offset do último fragmento e do tamanho em bytes de seus dados, da seguinte forma:

    Tamanho total = offset x 8 + bytes de dados

    Em nosso exemplo:

    Tamanho total = 370 x 8 + 1040 = 2960 + 1040 = 4000 bytes.

    Remontando os fragmentos

    Quando os pacotes chegam a seu destino, eles devem ser remontados para que possam ser processados.

    Um receptor sabe que um pacote é um fragmento caso o flag MF esteja ativo (exceto no último fragmento), e caso o campo Offset do Fragmento possua um valor diferente de zero (exceto para o primeiro fragmento).

    O receptor então irá utilizar as informações presentes nos campos de endereços IP de origem e destino, identificação do protocolo e identificação do cabeçalho IP para reconstruir o pacote original a partir dos fragmentos recebidos.

    Fragmentos que possuam a mesma identificação pertencem ao mesmo pacote, e o campo offset do fragmento permite ordenar esses fragmentos. Ao receber o último fragmento, que possui o flag MF igual a zero, o receptor pode então calcular o tamanho do campo de dados multiplicando o offset do último fragmento por 8, e adicionando o tamanho do último fragmento, como mostramos na seção anterior.

    Neste ponto, o pacote remontado é enviado para a camada de nível superior na pilha de protocolos (camada de transporte) para processamento.

Utilitário de diagnóstico de rede ipconfig

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/utilitario-de-diagnostico-de-rede-ipconfig/

Por: Gabriela Parente

Para o Site: Techmovie

ipconfig - Utilitário de diagnóstico de redes do Windows

O ipconfig é um utilitário do prompt  do Windows que fornece ao usuário informações relativas às configurações de rede TCP/IP do computador. Além disso, o ipconfig também permite realizar algumas operações de manutenção de rede, como a liberação de endereços IP obtidos via DHCP.

ipconfig /[opções]

As principais disponíveis para o comando são descritas a seguir:

Opção Significado
/? Mostra a ajuda do comando
/all Mostra informações de configuração de rede completas
/release Libera os endereços IP associados a um adaptador especificado.
/renew Renova os endereços IP de um adaptador especificado
/release6 Libera os endereços IPv6 associados a um adaptador especificado
/renew6 Renova os endereços IPv6 de um adaptador especificado
/flushdns Limpa o cache do resolvedor DNS
/registerdns Atualiza todas as concessões DHCP e registra novamente os nomes DNS
/displaydns Mostra o conteúdo do cacha do Resolvedor DNS
/showclassid Mostra todas as identificações de classe DHCP permitidas para o adaptador especificado
/setclassid Permite modificar as identificações de classe DHCP (ClassId)

Se o comando ipconfig for executado sem nenhuma opção especificada, ele retornará apenas um resumo de informações, como endereço IP, máscara de sub-rede e gateway padrão de cada adaptador de rede da máquina.

A opção /all permite visualizar todas as informações de configuração de rede disponíveis, incluindo os servidores DNS e DHCP utilizados pelo adaptador, o endereço físico (MAC Adress) das placas de rede, e se a máquina está usando endereço de configuração automática (APIPA).

Caso não seja especificado um nome de adaptador ao utilizar as opções /release e /renew, as modificações irão afetar a todos os adaptadores de rede presentes na máquina.

Exemplos de uso

  1. Mostrar informações resumidas sobre as configurações de rede da máquina

Comando ipconfig no Windows

2. Mostrar informações detalhadas sobre as configurações de rede da máquina
ipconfig /all

3. Renovar as concessões de todos os adaptadores de rede
ipconfig /renew

4. Liberar apenas a concessão do adaptador de rede de nome Conexão local:
ipconfig /release “Conexão local”

5. Mostrar o conteúdo do cache do resolvedor DNS
ipconfig /displaydns

ipconfig displaydns em uma rede Windows

6. Mostrar as identificações de classe disponíveis para o adaptador de nome Conexão Local
ipconfig /showclassid “Conexão local”

Como funciona o utilitário Pathping - Curso de Redes

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/redes-computadores/como-funciona-o-utilitario-pathping-curso-de-redes/

Por: Gabriela Parente

Para o Site: Techmovie

Utilitário de redes Pathping

O Pathping é uma ferramenta destinada a traçar rotas de rede no Windows, que combina funcionalidades dos utilitários ping e tracert, além de exibir algumas informações adicionais que não são retornadas por nenhum desses programas.

Funcionamento do Pathping

O Pathping opera enviando pacotes para cada roteador presente no caminho até seu destino durante um período de tempo, e então computa resultados baseando-se nos pacotes retornados de cada salto.

O utilitário mostra o grau de perda de pacotes em cada roteador (ou link), de modo que é possível determinar qual roteador ou link pode estar causando problemas na rede.

Por padrão, o pathping utiliza 30 saltos, e o tempo de espera padrão antes de ocorrer um timeout é de três segundos, ou 3000 milissegundos. O período padrão é de 250ms, e o número de consultas padrão a cada roteador ao longo do caminho é de 100.

Sintaxe

pathping [opções] host-ou-IPA

Opções do pathping 

Abaixo temos uma descrição para as opções mais comuns utilizadas como utilitário pathping:

Opção Significado
-h n_máx_saltos Determinar o número máximo de saltos na busca pelo host de destino. O padrão são 30.
-n Não efetuar a resolução de endereços para nomes de host
-g lista_hosts Rota ampliada de origens com lista de hosts
-i endereço Usa o endereço de origem especificado
-p milissegundos Número de milissegundos a esperar entre cada disparo de ping
-q num_consultas Número de consultas por salto (hop)
-R Teste de RSVP. Verifica se cada roteador no caminho suporta o Protocolo de Reserva de Recursos (RSVP), o qual permite que o computador reserve uma certa quantidade de largura de banda para um fluxo de dados. Usado para testes de Qualidade de Serviço (QoS)
-w milissegundos Tempo de timeout. Espera o tempo especificado, em ms, para cada mensagem de resposta
-4 Força o uso de IPv4
-6

Força o uso de IPv6

 

Exemplos de uso do pathping

1 – Traçando rotas para o host www.bosontreinamentos.com.br sem efetuar resolução de endereços:

Utilitário pathping no Windows - Redes de Computadores

2. Traçando rotas para o host www.bosontreinamentos.com.br usando no máximo 10 rotas, e realizando resolução de nomes:

Pathping com número de saltos restrito

Veja que neste caso não foi possível chegar até o host de destino, pois os 10 saltos são suficientes, como vimos no exemplo 01. Mesmo assim o rastreamento é exibido e as estatísticas são calculadas.

3 -Traçando a rota para www.ibm.com usando exatamente 3 consultas por salto:

pathping -q 3 www.ibm.com

Ferramenta de redes pathping no Windows

 

É isso aí! O pathping é mais uma ferramenta importante para se conhecer, pois pode auxiliar a diagnosticar e resolver problemas de conectividade em redes, no caso Windows. Aprenda também como funcionam as ferramentas ping e traceroute, que estão disponíveis tanto para Windows quanto para Linux e Mac OS X.

Lançamento do Raspberry Pi 2

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/raspberry-pi/lancamento-do-raspberry-pi-2-2/

Por: Gabriela Parente

Para o Site: Techmovie

Raspberry Pi 2

Há alguns dias foi anunciado o lançamento da nova versão do Raspberry Pi, batizada de “Raspberry Pi 2”.

Essa nova versão traz um hardware atualizado, possuindo processador Quad Core de 900 MHZ de clock, e 1GB de memória RAM. Em testes de benchmark, esse computador ultrapassa em muito o desempenho do modelo anterior, possuindo uma performance aproximadamente 6 vezes superior ao modelo anterior (o Raspberry Pi B+).

Uma novidade muito interessante será a habilidade de rodar os sistemas operacionais Ubuntu e Windows 10.

Além disso, a nova placa irá custar o mesmo que os modelos de primeira geração (cujo processador possui apenas um núcleo!), US$ 35,00, e de acordo com um dos criadores do Raspberry Pi, Eben Upton, será o primeiro modelo capaz de rodar como um PC de propósito geral.

Desde o lançamento do primeiro modelo do Raspberry Pi, em 2012, foram vendidas mais de 4.5 milhões de unidades, e é esperado que sejam vendidas mais de 2 milhões de unidades ainda este ano (2015), incluindo-se nessa  conta os modelos B+ e Raspberry Pi 2.

Essa nova placa, como citado anteriormente, será capaz de rodar o Linux Ubuntu e Windows 10, por conta do novo processador utilizado, o RAM Cortex A7, o qual possui núcleo com a arquitetura ARM v7, fabricado pela Broadcom.

Você pode baixar uma imagem especial do Ubuntu para o Pi 2, a Snappy Ubuntu Core, no link a seguir:

https://insights.ubuntu.com/2015/02/02/snappy-ubuntu-core-on-raspberry-pi-2/

 

Raspberry Pi 2

Especificações resumidas do Raspberry Pi 2:

  • CPU quad-core de 900MHz Broadcom BCM2836 com 1GB de RAM DDR2
  • Núcleo de processamento gráfico VideoCore IV 3D
  • 40 pinos de extensão, com 27 pinos destinados a GPIO
  • Slot para cartão de memória Micro SD
  • Quatro portas para câmera CSI (Camera Serial Interface) e display DSI (Display Serial Interface)
  • Porta Ethernet 10/100 BaseT
  • Conector Micro-USB para alimentação de  5V, 2A
  • Dimensões da placa:: 85 x 56 x 17mm

 

Saiba mais a respeito:

Vários benchmarkings com o Raspberry Pi 2 podem ser vistos aqui:

http://www.raspberrypi.org/benchmarking-raspberry-pi-2/

 

Informações sobre Windows 10 para Raspberry Pi:

http://dev.windows.com/en-us/featured/raspberrypi2support

 

Download de Imagens de Sistemas Operacionais para o Raspberry Pi:

http://www.raspberrypi.org/downloads/

 

Vídeo oficial do lançamento do Raspberry Pi 2, com Eben Upton:

http://www.element14.com/community/community/news

 

 

 

 

 

Um script simples transforma seu pendrive em uma chave para desligar o PC

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/noticias/um-script-simples-transforma-seu-pendrive-em-uma-chave-para-desligar-o-pc/

Por: Gabriela Parente

Para o Site: Techmovie

Desligue seu computador apenas retirando um pendrive

Uma ferramenta foi desenvolvida com a capacidade de desligar o seu computador tão rápido, que pessoas "não autorizadas " (vide autoridades) não terão  a chance de examiná-lo e descobrir suas informações confidenciais presentes na máquina no momento do acesso.

"USBKILL", como o script é chamado, transforma qualquer pendrive USB em um interruptor que força um desligamento do computador após sua remoção. Desta forma, é possível desligar a máquina rapidamente caso haja necessidade - por exemplo, se estiver trabalhando em algo "confidencial" e alguém se aproximar. O script foi postado no GitHub por um usuário chamado "Hephaestos", que proclama que a ferramenta irá impedir que os usuários se tornem o próximo Ross Ulbricht - o ex chefão do mercado de drogas on-line Slik Road - cujo laptop estava ligado ao ser apreendido...

USBkill 2

Trecho de código do script

Hephaesto sugere que os usuários prendam o pendrive USB com o USBSKILL em seus pulsos como medida de segurança adicional, para que o computador seja automaticamente desligado com um simples movimento do braço. O desenvolvedor auto-proclamado do "software para a liberdade", explica que o software é mais eficaz quando combinado com uma máquina virtual que se exclui automaticamente após a reinicialização, prevenindo as autoridades de conseguirem acessar qualquer coisa caso consigam arrancar de alguma forma as senhas de acesso ao sistema de você.

Claro que, para que o processo seja totalmente efetivo, ainda é preciso que você criptografe todo o seu disco rígido - afinal, script desliga a máquina mas ela obviamente pode ser religada novamente, a não ser que esteja usando VM como sugerido.

O USBKILL será atualizado com recursos adicionais de tempos em tempos, mas o estado atual é mais do que capaz de entregar o que prometeu.

Você pode baixar o script  USBKILL aqui

 

 

Novo processo de refrigeração de CPUs pode eliminar o uso de coolers

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/noticias/novo-processo-de-refrigeracao-de-cpus-pode-eliminar-o-uso-de-coolers/

Por: Gabriela Parente

Para o Site: Techmovie

Uma equipe de pesquisa da Universidade de Alabama em Huntsville acredita que seu sistema de refrigeração patenteado poderia economizar bilhões de dólares em custos de energia elétrica ao eliminar os coolers em computadores.

Dr. James E. Smith Jr., Cuong Nguyen e Xiaolin Wang são membros de uma equipe de pesquisa da Universidade do Alabama em Huntsville que desenvolveu uma nova forma de resfriar os microprocessadores de computadores usando um líquido.

Nguyen, Wang, James Smith Jr.

De acordo com o Press Release, "Um sistema de refrigeração passiva patenteado para microprocessadores de computadores que está em processo de otimização na Universidade do Alabama em Hauntsville poderia fazer com que os consumidores nos Estados Unidos economizassem mais de US$6,3 bilhões por ano em custos de energia associados aos sistemas de refrigeração de seus computadores - os coolers".

Para isso, os pesquisadores escolheram um produto da 3M chamado de Fluorinert Eletronic Liquid FC-72, que é "um líquido quimicamente e termicamente estável e não-condutivo, ideal para muitas aplicações de transferência de calor em baixa temperatura de uma e duas fases em contato direto".

Todo o sistema é passivo, o que significa que não é usada energia elétrica para refrigerar o processador no computador de testes. Isso é possível graças às características de transferência de calor excelentes do FC-72. O sistema funciona, de forma sucinta, como segue:

  • O calor gerado no microprocessador do computador evapora o líquido FC-72.
  • O vapor, que é mais leve, sobe para a câmera de troca de calor.O 
  • O FC-72 então transfere sua carga de calor para o trocador de calor, o qual por sua vez transfere po calor para o ar ao seu redor (meio ambiente).
  • A remoção do calor faz com que o FC-72 se condense de volta à forma líquida que flui para o tanque situado abaixo da câmera de troca de calor (trocador de calor).
  • A partir do tanque de retenção, o FC-72 em forma líquida passa pelo processador onde o ciclo de absorção do calor se repete.

FC-72 refrigerando um Microprocessador

Nos experimentos, o sistema conseguiu refrigerar processadores Intel Pentium 4 e Core i3 com sucesso. Os processadores de hoje possuem uma faixa de temperatura de operação tolerável entre 50 e 90ºC. Os experimentos com FC-72 conseguiram manter a temperatura nos processadores em cerca de 56ºC.

O pesquisador Cuong Nguyen explica que "um sistema de refrigeração passiva é um grande negócio, pois ao removermos um cooler convencional com ventoinha, economizamos no material de fabricação, e também eliminamos barulho, vibração e contaminação da ventoinha por poeira.

 

Malware Mr. Black transforma roteadores em zumbis

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/noticias/malware-mr-black-transforma-roteadores-em-zumbis/

Por: Gabriela Parente

Para o Site: Techmovie

A empresa de segurança Incapsula descobriu um grande botnet utilizado para lançar ataques de negação de serviço distribuídos (DDoS). Porém, este botnet chamado de Mr Black, não foi feito para infectar computadores. Em vez disso, ele cria um exército de roteadores zumbis, prontos para obedecer a comandos remotos.

A Incapsula observou o tráfego deste botnet ao longo de 111 dias. Durante esse tempo, foram identificados 40.269 endereços IP usados no ataque. Os equipamentos infectados apareciam espalhados ao redor do mundo, vindo de 1600 ISPs (Provedores de serviço de internet).

O interessante neste botnet é que ele não foi projetado usando nenhuma técnica nova de ataques. A Incapsula descobriu que os roteadores no botnet estavam todos configurados para aceitar gerenciamento remoto, significando que os usuários - os atacantes - poderiam descobri-los online e realizar alterações de configuração. Quase todos os roteadores também usavam nomes de usuário e senhas padrão, de modo que tomar o controle desses equipamentos acabou sendo uma tarefa trivial.

Ataques a Roteadores Malware Mr. Black

Como proteger seu roteador de ameaças como o Mr. Black

Seu roteador pode fazer parte dessa horda zumbi - principalmente se você vive nos países mais afetados pelo malware. E infelizmente, o Brasil é o segundo país mais infectado, atrás apenas da Tailândia, sendo que ambos os países em conjunto respondem por 85% dos roteadores comprometidos. É interessante notar que a infraestrutura de comando e controle usada pelos desenvolvedores do botnet para direcionar os ataques está baseada primariamente na China, com um pequeno foco nos Estados Unidos.

mr. black roteador malware - países mais atacados

Há alguns passos básicos que você deve tomar para se proteger dessa ameaça e tornar sua rede caseira mais segura. A Incapsula recomenda desabilitar as configurações de gerenciamento remoto no seu roteador de banda larga e, o mais importante, que você altere o nome de usuário e senha padrão do roteador - tarefa que muitas pessoas não executam. Se essa troca de senha, seu roteador está completamente desprotegido contra esse malware, e contra outros tipos de ataques e invasões.

Você pode verificar se seu roteador não está aberto a acesso remoto usando a ferramenta Open Port Finder da You Get Signal, e escanear as portas SSH (22), Telnet (23) e HTTP/HTTPS (80/443).

Se você acreditar que seu roteador já foi contaminado, faça uma atualização do firmware para a versão mais recente fornecida pelo fabricante.

Google lança Tablet Project Tango para desenvolvedores

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/noticias/google-lanca-tablet-project-tango-para-desenvolvedores/

Por: Gabriela Parente

Para o Site: Techmovie

O Google lançou um novo modelo de tablet, chamado Project Tango, cujo foco é o mercado de desenvolvedores profissionais que trabalhem com aplicações em 3D.

Trata-se de um tablet de 7, disponível nas cores branco ou preto, e com preço inicial sugerido de U$$ 512, 00 - porém somente comercializado nos Estados Unidos por enquanto. 

A disponibilidade para o resto do mundo ainda será anunciada.

Tablet Google Project Tango

Esse tablet possui características muito especiais, como funcionalidades de rastreamento, visão em profundidade e tecnologias de movimento 3D, incluindo os tradicionais sensores acelerômetro, giroscópio, GPS, sensor de luza ambiente e bússola, além de um barômetro e sensor de profundidade em 3D.

Outras características do tablet são:

  • Display IPS com resolução 1920 x 1200 pixels
  • vidro resistente a risco Corning 
  • Roda o sistema operacional Android 4.4. Kitkat (não vem com o Android Lollipop)
  • Processador Nvidia Tegra K1
  • 4GB de memória RAM
  • 128GB de espaço de armazenamento interno
  • Portas Micro-HDMI e USB 3.0
  • Slots para cartões MicroSD e SIM
  • Dimensões: 119.77 x 196.33 x 15.36mm
  • Câmeras: 4 MP 2mm RGB-IR sensor de pixels e fronta de 1 MP, foco fixo
  • Conexão 4G LTE
  • Rede sem fio Dual-Band (2.4GHz/5GHz) 802 a/b/gn

Tablet Google Project Tango 3D

Parece uma ótima configuração para um tablet, comparável aos melhores da atualidade, e com foco nas aplicações em 3D. Vamos aguardar o lançamento do tablet por aqui. Por enquanto só está disponível na Google Store

O que é o Intel Quark

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/hardware/o-que-e-o-intel-quark/

Por: Gabriela Parente

Para o Site: Techmovie

Intel® Quark™

O Intel Quark é uma família de SoCs (“System-on-chips”) de arquitetura de 32 bits da Intel, que são projetados para terem um baixíssimo consumo energético e também um tamanho físico reduzido, sendo chips que visam a mercados como IoT (Internet das Coisas), sistemas embarcados (embedded systems) e dispositivos vestíveis (wearables), onde o consumo de energia e form factor tem muita importância. São baseados no chip Pentium original.

Um SoC é um circuito integrado que integra todos os componentes de um computador (ou outro sistema eletrônico) em um único chip. São chips muito parecidos com microcontroladores, porém, possuem processadores mais poderosos, que podem inclusive executar softwares complexos como sistemas operacionais (Windows, Linux, etc).

Os chips dessa linha, de codenome “Clanton”, possuem algumas características peculiares, sendo as mais marcantes:

  • Ausência de suporte a conjuntos de instruções SIMD (MMX, SSE, etc)
  • Clock de 400 MHz (nos modelos atuais, 2015)
  • Núcleos (Cores): 01
  • Cache L2 16 KB
  • Controladora de memória RAM DDR3-800, com suporte a ECC
  • RAM: de 128 MB a 2 GB
  • Potência dissipada total: 2,2W
  • Socket: FC-BGA11E
  • Dimensões: 15mm x 15mm
  • Interfaces Ethernet: 02
  • Suorte a barramento PCI Express
  • USB 2.0, SD/SDIO/eMMC
  • SPI, UART e I2C/GPIO
  • Temperatura de operação: de -40ºC a +85ºC
  • Custo: Entre 9 e 15 dólares

Um Datasheet com as especificações completas do Intel Quark pode ser obtido aqui (PDF, 934 páginas). O diagrama de blocos do chip pode ser visto na figura abaixo:

Diagrama de Blocos do chip SoC Intel Quark

Diagrama de Blocos do SoC Intel Quark

Os núcleos dos chips Quark são menores do que os de um Intel Atom típico, com cerca de 1/5 do tamanho desses cores, consumindo até um décimo da potência consumida por eles. O primeiro chip da família, o X1000, foi apresentado durante o Intel Developer Forum de 2013, em San Francisco, Califórnia.

Aplicações

As principais aplicações dos SoCs Quark estão nas áreas automotiva, industrial e de energia. Os chips são componentes chave das sistemas de desenvolvimento Intel Galileo, Intel Edison e Intel Curie, e da futura placa Arduino 101 (Genuino 101 fora dos EUA).

Placa de desenvolvimento Intel Galileo com SoC Quark

Placa de desenvolvimento Intel Galileo com SoC Quark

Teardown do Roteador doméstico D-Link DI-524

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/hardware/teardown-do-roteador-domestico-d-link-di-524/

Por: Gabriela Parente

Para o Site: Techmovie

Esse roteador possui 4 portas LAN, uma porta WAN e Rede WiFi integrada. O manual de configuração do produto pode ser acessado na página do DI-524 no site da D-Link.

Procedimento de desmontagem:

Abaixo temos a vista traseira do roteador, mostrando, da esquerda para a direita, os conectores da antena, quatro portas ethernet para LAN, uma porta WAN e o conector de energia da fonte de alimentação:

01-di-524

Na figura a seguir vamos a parte inferior do roteador. As etiquetas trazem informações sobre o modelo, Part Number, Número de Série, versão de hardware, FCC ID e outras. Para abri-lo devemos desparafusar os dois parafusos presentes nas laterais:

02-di-524

 Basta puxar a tampa superior do aparelho após retirar os dois parafusos e teremos acesso ao seu interior:

03-di-524

Aí está a placa lógica do DI-524, ainda parafusada no chassis. Ela é presa pelos dois parafusos mostrados na parte superior da imagem abaixo:

04-di-524

Detalhe dos principais chips encontrados na placa lógica. Vamos descrever sucintamente as funções desses quatro circuitos integrados:

  • D-Link DL1005E – Switch
  • D-Link DL7500A – Processador principal (Fabricante RDC, devido à versão do aparelho – B4)
  • EtronTech EM636 165TS-7G – Memória SDRAM
  • EON EN29LV800BB-70TCP – Memória Flash 8Mbit

05-di-524

 

Na figura a seguir, detalhe do conector da antena e do fio que o conecta á placa lógica. Note que ele é preso por cola quente na placa.

06-di-524

 

Visão geral dos leds indicadores do painel frontal:

07-di-524

 

Vista interna da parte traseira do roteador, com as portas Ethernet LAN, porta WAN (esquerda), conector de energia (cor de laranja), conector da antena (extrema direita) e um chip M-TEK H50601DRG:

08-di-524

 

Para desconectar a placa do chassis, basta desparafusar os dois parafusos mostrados na figura a seguir:

09-di-524

 

E desrosquear o conector da antena para soltá-lo:

10-di-524

 

E então, levantar a placa lógica suavemente para retirá-la do chassis:

11-di-524

 

Eis a placa lógica, como o conector da antena solto á direita, e o módulo Wi-Fi na extrema esquerda (blindado):

12-di-524

 

Vista traseira da placa lógica. Apenas trilhas e pontos de solda:

13-di-524

 

D-Link DI-524 desmontado com sucesso!

14-di-524

Monitoramento de Hardware de PCs com Open Hardware Monitor

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/hardware/monitoramento-de-hardware-de-pcs-com-open-hardware-monitor/

Por: Gabriela Parente

Para o Site: Techmovie

Monitoramento de Hardware de PCs com OpenHardware MonitorO

O Open Hardware é um programa gratuito e de código aberto que pode ser usado para monitorar sensores de temperatura, ventoinhas, níveis de tensão elétrica, carga de trabalho e velocidades de clock em um computador.

O Open Hardware Monitor suporta a maioria dos chips de monitoramento de hardware encontrados nas placas-mãe atuais. A temperatura do processador pode ser monitorada por meio da leitura dos sensores de temperatura  presentes no núcleo dos processadores da Intel e da AMD. Podem ser exibidas também os valores medidos pelos sensores de placas de vídeo da ATI e da Nvidia, assim como a temperatura do SMART dos discos rígidos. Os valores monitorados podem ser exibidos na janela principal do programa em um gadget de desktop personalizável, ou ainda na área de notificação do sistema.

O software pode ser baixado no site www.openhardwaremonitor.org, na página de downloads, stand na versão 0.7.1 Beta quando este artigo foi escrito. Ele roda em Windows 32 e 64 bits (necessario .NET Framework 2.0 ou acima), e também pode ser executado em máquinas como Linux 32 bits, desde que seja instalado o Mono com WinForms no sistema.

Instalação

Rodar o Open Hardware Monitor é bem simples: no Windows, basta descompactar o arquivo zip baixado e rodar o arquivo OpenHardwareMonitor.exe com privilégios de Administrador. Não é necessário instalá-lo.

O código-fonte da aplicação está disponível em https://github.com/openhardwaremonitor

Hardware Suportado

  • Sensores do Núcleo de CPU
    • Intel Core 2, Core i3/i5/i7, Atom, Sandy Bridge, Ivy Bridge, Haswell, Broadwell, Silvermont
    • AMD K8 (família 0Fh), K10 (famílias 10h, 11h), Llano (família 12h), Fusion (família 14h), Bulldozer (família 15h), Jaguar (família 16h)
  • Sensores de Placa-Mãe
    • ITE IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8771E, IT8772E
    • Fintek F71808E, F71858, F71862, F71868AD, F71869, F71869A, F71882, F71889ED, F71889AD, F71889F
    • Nuvoton NCT6771F, NCT6772F, NCT6775F, NCT6776F, NCT6779D, NCT6791D
    • Winbond W83627DHG, W83627DHG-P, W83627EHF, W83627HF, W83627THF, W83667HG, W83667HG-B, W83687THF
  • Sensores de GPU
    • Nvidia
    • AMD (ATI)
  • Discos Rígidos
    • Sensores de Temperatura S.M.A.R.T.
    • Wear Level de SSD, Letituras/escritas em host
  • Controladoras de Ventoinhas
    • T-Balancer bigNG
    • Alphacool Heatmaster

Veja a seguir um screenshot do programa em execução em meu PC:

Open Hardware Monitor - Monitoramento de Sensores

Note as várias informações exibidas, como:

  • Tensão da bateria (VBat)
  • Velocidades de Rotação das Ventoinhas (Fans)
  • Carga de Memória
  • Clocks da GPU (NVIDIA GeForce GTX 745)
  • Temperatura do Disco Rígido

E na figura a seguir você pode observar informações referentes à CPU do computador:

Open Hardware Monitor - CPU

Podemos observar os seguintes dados:

  • Modelo do microprocessador
  • Velocidade do barramento
  • Velocidades dos núcleos da CPU
  • Temperaturas nos núcleos da CPU
  • Cargas de trabalho percentuais
  • Potência elétrica consumida

E, clicando no menu Options, você pode configurar algumas opções de funcionamento distintas para o programa:

Open Hardware Monitor Opções

Entre as opções disponíveis podemos destacar:

  • Executar o software ao iniciar o Windows
  • Iniciar minimizado
  • Alterar a unidade de temperatura de Celsius para Fahrenheit e vice-versa
  • Configurar log de sensores
  • Executar um servidor Web remoto

O programa possui alguns outros recursos que vale m a pena serem explorados, e uma de suas grandes vantagens é o fato de não precisar ser instalado no computador para rodar.

 

Tabela ASCII

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/hardware/tabela-ascii/

Por: Gabriela Parente

Para o Site: Techmovie

ASCII

Os computadores operam executando cálculos no sistema de numeração binário. Porém, como sabemos, os computadores permitem a entrada de dados na forma de texto, com letras, números decimais e símbolos, além de permitir o armazenamento desses dados.
Neste artigo vamos falar a respeito da forma como os computadores representam esses caracteres utilizando números no sistema binário de numeração.

Histórico do padrão ASCII

Em outubro de 1960, o Instituto Americano de Padrões Nacionais (ANSI – American National Standards Institute), que na época se chamava American Standards Association (ASA), começou a trabalhar em um padrão para representação de caracteres, batizado de ASCII.

Esse padrão utilizava um esquema de codificação de caracteres (representação numérica) que tinha suas raízes em códigos telegráficos de 5 bits inventados por Émile Baudot. Foi definido um código numérico de 7 bits para o ASCII na época.

Com 7 bits podemos representar 27 = 128 caracteres, mais do que suficiente para representar letras e símbolos em inglês americano. Alguns dos códigos foram utilizados para representar caracteres de controle reservados, como por exemplo caracteres que permitiam avançar uma linha, excluir uma letra, ou até mesmo tocar um bip em alguns equipamentos Teletype da época.

A primeira versão do ASCII foi publicada em 1963, e então revisada em 1967. Em março de 1968, o presidente estadunidense Lyndon B. Johnson ordenou que todos os computadores do governo federal dos Estados Unidos deveriam suportar o padrão ASCII. Assim, o padrão se tornou parte da história dos computadores, e desde então é utilizado para representação de caracteres.

Tabela ASCII

ASCII significa “American Standard Code for Information Interchange” (Código Padrão Americano para Intercâmbio de Informações), e consiste em uma tabela de códigos (criada na década de 60) utilizada pelos computadores para representar caracteres no formato numérico (binário), que é o formato padrão utilizado para armazenamento e processamento dos dados.

Desta forma, cada caractere presente em um teclado, e mais um conjunto de outros caracteres, como letras “a”, “r”, números “6′, “9”, ou ainda símbolos, como “%”, “&”, “Ö”, entre outros, podem ser representados por um conjunto de oito bits (um byte) na memória do computador.

Alguns caracteres não-imprimíveis também são representados na tabela ASCII, como por exemplo as teclas TAB, ESC e Backspace.

Abaixo temos a tabela de caracteres em ASCII original, incluindo os valores numéricos de cada caractere em decimal, binário, octal e hexadecimal.

Note que letras maiúsculas e minúsculas são consideradas caracteres diferentes entre si, cada uma com seu próprio código ASCII. Além disso, podemos perceber que a tabela original ASCII utiliza sete bits para representar os caracteres, sendo que o oitavo bit (à esquerda, MSB) é sempre zero.

Códigos ASCII

Decimal Octal Hexadecimal Binário Caractere
0 000  00 00000000  NUL
1 001 01 00000001 SOH
2 002 02 00000010 STX
3 003 03 00000011 ETX
4 004 04 00000100 EOT
5 005 05 00000101 ENQ
6 006 06 00000110 ACK
7 007 07 00000111  BEL
8  010 08 00001000 BS
9 011 09  00001001 TAB
10 012 0A 00001010 LF
11 013 0B 00001011 VT
12 014 0C  00001100 FF
13 015 0D 00001101 CR
14 016 0E 00001110 SO
15 017 0F 00001111 SI
16 020 10  00010000 DLE
17 021 11 00010001 DC1
18 022 12 00010010 DC2
19 023 13 00010011 DC3
20 024 14 00010100 DC4
21 025 15 00010101 NAK
22 026 16 00010110 SYN
23 027 17 00010111 ETB
24 030 18 00011000 CAN
25 031 19 00011001 EM
26 032 1A 00011010 SUB
27 033 1B 00011011 ESC
28 034 1C 00011100 FS
29 035 1D 00011101 GS
30 036 1E 00011110 RS
31 037 1F 00011111 US
32 040 20  00100000 Espaço
33 041 21 00100001 !
34 042 22 00100010  “
35 043 23  00100011  #
36 044 24 00100100 $
37 045 25 00100101  %
38 046 26 00100110  &
39 047 27 00100111
40 050 28 00101000  (
41  051 29 00101001 )
42 052 2A 00101010 *
43 053 2B 00101011 +
44 054 2C 00101100 ,
45 055 2D 00101101
46 056 2E 00101110 .
47 057 2F 00101111 /
48 060 30 00110000  0
49 061 31 00110001 1
50 062 32 00110010 2
51 063 33 00110011 3
52 064 34 00110100 4
53 065 35 00110101 5
54 066 36 00110110 6
55 067  37 00110111 7
56 070 38 00111000 8
57 071 39 00111001 9
58 072 3A 00111010 :
59 073 3B 00111011 ;
60 074 3C 00111100 <
61 075 3D 00111101 =
62 076 3E 00111110 >
63 077 3F 00111111 ?
64  100 40 01000000  @
65 101 41 01000001 A
66 102 42 01000010 B
67 103 43 01000011 C
68 104 44 01000100 D
69 105 45 01000101 E
70 106 46 01000110 F
71 107 47 01000111 G
72 110 48 01001000 H
73 111 49  01001001 I
74 112 4A 01001010 J
75 113 4B 01001011 K
76 114 4C 01001100 L
77 115 4D 01001101 M
78 116 4E  01001110 N
79 117 4F 01001111 O
80 120 50 01010000 P
81 121 51 01010001 Q
82 122 52 01010010 R
83 123 53 01010011 S
84 124 54 01010100 T
85 125 55 01010101 U
86 126 56 01010110 V
87 127 57 01010111 W
88 130 58  01011000 X
89 131 59 01011001 Y
90 132 5A  010110010 Z
91 133 5B 01011011 [
92 134 5C 01011100  
93 135 5D 01011101  ]
94 136 5E 01011110  ^
95 137 5F 01011111 _
96 140 60 01100000 `
97 141 61  01100001 a
98 142 62 01100010 b
99 143 63 01100011 c
100 144 64 01100100 d
101  145 65 01100101 e
102 146 66 01100110 f
103 147 67 01100111 g
104 150 68 01101000 h
105 151 69 01101001 i
106 152 6A 01101010 j
107 153 6B 01101011 k
108 154 6C 01101100 l
109 155 6D 01101101 m
110 156 6E 01101110 n
111 157 6F 01101111 o
112 160 70 01110000 p
113 161 71 01110001 q
114 162 72 01110010 r
115 163 73 01110011 s
116 164 74 01110100 t
117 165 75 01110101 u
118 166 76 01110110 v
119 167 77 01110111 w
120 170 78 01111000 x
121 171 79 01111001 y
122 172 7A 01111010 z
123 173 7B 01111011 {
124 174 7C 01111100 |
125 175 7D 01111101 }
126 176 7E 01111110 ~
127 177 7F 01111111 DEL

A seguir temos a tabela de códigos ASCII estendidos, que utiliza oito bits para representar os caracteres e contém mais 127 caracteres que incluem caracteres especiais, símbolos e letras acentuadas em vários alfabetos distintos.

Note que os códigos ASCII estendidos de seu computador podem diferir da tabela a seguir, pois eles dependem do conjunto de caracteres empregado pelo sistema operacional. O conjunto mais popular é um conjunto de caracteres denominado ISO 8859-1, também conhecido como ISO Latin 1, que contém caracteres presentes na maioria dos idiomas europeus ocidentais (incluindo o português).

Códigos ASCII estendidos

Decimal Octal Hexadecimal Binário Caractere
128  200  80  10000000  Ç
129 201 81  10000001 ü
130 202 82 10000010 é
131 203 83 10000011  â
132 204 84  10000100 ä
133 205 85 10000101 à
134 206 86 10000110 å
135 207 87 10000111 ç
136 210 88 10001000 ê
137  211 89 10001001 ë
138 212 8A 10001010 è
139 213 8B 10001011  ï
140 214 8C  10001100 î
141 215 8D 10001101 ì
142 216 8E 10001110 Ä
143 217 8F 10001111 Å
144  220 90 10010000 É
145  221  91 10010001 æ
146 222 92 10010010  Æ
147 223 93 10010011 ô
148 224 94  10010100 ö
149 225 95 10010101 ò
150 226 96 10010110 û
151 227 97 10010111 ù
152 230 98 10011000 ÿ
153 231 99  10011001 Ö
154 232  9A  10011010 Ü
155 233 9B 10011011 ø
156 234 9C 10011100 £
157 235 9D 10011101 Ø
158 236 9E 10011110 ×
159 237 9F 10011111 ƒ
160 240  A0 10100000 á
161 241 A1 10100001  í
162 242 A2 10100010 ó
163 243 A3 10100011 ú
164 244 A4 10100100 ñ
165 245 A5 10100101 Ñ
166 246 A6 10100110 ª
167  247 A7 10100111 º
168 250 A8 10101000 ¿
169  251 A9  10101001 ®
170  252 AA  10101010 ¬
171  253 AB 10101011 ½
172 254 AC 10101100 ¼
173 255 AD 10101101 ¡
174 256 AE 10101110 «
175 257 AF 10101111 »
176 260 B0 10110000
177 261 B1  10110001
178 262 B2 10110010
179 263 B3 10110011
180 264 B4 10110100
181 265 B5 10110101 Á
182 266 B6 10110110 Â
183 267 B7 10110111 À
184 270 B8 10111000 ©
185 271 B9 10111001
186 272 BA 10111010
187 273 BB 10111011
188 274 BC 10111100
189 275 BD 10111101 ¢
190 276 BE 10111110 ¥
191 277 BF 10111111
192 300 C0  11000000
193  301 C1 11000001
194 302 C2 11000010
195 303 C3 11000011
196 304 C4 11000100
197 305 C5 11000101
198 306 C6 11000110 ã
199 307 C7 11000111 Ã
200 310 C8 11001000
201 311 C9  11001001
202 312 CA 11001010
203 313 CB 11001011
204 314 CC 11001100
205 315 CD 11001101
206 316 CE 11001110
207 317 CF 11001111 ¤
208 320 D0 11010000 ð
209 321 D1 11010001 Ð
210 322 D2 11010010  Ê
211 323 D3 11010011 Ë
212 324 D4 11010100 È
213 325 D5 11010101 ı
214 326 D6 11010110 Í
215 327 D7 11010111 Î
216  330 D8 11011000 Ï
217 331  D9  11011001
218 332 DA 11011010
219 333 DB 11011011
220 334 DC 11011100
221 335 DD 11011101 ¦
222 336 DE 11011110 Ì
223 337 DF 11011111
224 340 E0 11100000 Ó
225  341 E1 11100001  ß
226 342 E2 11100010  Ô
227 343 E3 11100011 Ò
228 344 E4 11100100 õ
229 345 E5 11100101 Õ
230 346 E6 11100110 µ
231 347 E7 11100111 þ
232  350 E8 11101000 Þ
233 351  E9  11101001 Ú
234 352 EA 11101010 Û
235 353 EB  11101011 Ù
236 354 EC 11101100 ý
237 355 ED 11101101 Ý
238 356 EE 11101110 ¯
239 357 EF 11101111 ´
240 360 F0 11110000  
241 361 F1 11110001 ±
242 362 F2 11110010
243 363 F3 11110011 ¾
244 364 F4 11110100
245 365 F5 11110101 §
246 366 F6 11110110 ÷
247 367 F7 11110111 ¸
248 370 F8 11111000 °
249 371 F9 11111001 ¨
250 372 FA 11111010 ·
251 373 FB 11111011 ¹
252 374 FC 11111100 ³
253 375 FD 11111101 ²
254 376 FE 11111110  ▀
255 377 FF 11111111  

Para inserir um desses caracteres especiais em um texto, basta segurar a tecla Alt em seu teclado, e digitar a sequência numérica correspondente ao caractere desejado, em decimal. Assim, se digitarmos Alt + 225 em um editor de textos veremos o caractere alemão ß.

 

0100001010100010011100110110111101101110010101000111001001100101011010
010110111001100001011011010110010101101110011101000110111101110011

 

Métodos de Transmissão de Dados-Hardware

Pesquisa feita no Site: http://www.bosontreinamentos.com.br/hardware/metodos-de-transmissao-de-dados-hardware/

Por: Gabriela Parente

Para o Site: Techmovie

Métodos de Transmissão de Dados

Existem dois métodos para transmissão de dados através de um canal de comunicação: transmissão em série e transmissão paralela.

Transmissão Paralela

Neste tipo de transmissão são transmitidos um conjunto de bits simultaneamente. A quantidade de bits transmitidos varia conforme o sistema, sendo comuns sistemas com múltiplos de 8 bits (8,16, 32, 64).

A figura a seguir ilustra um sistema de transmissão paralela de 8 bits, transmitindo o byte "10100110":

Transmissão em paralelo de dados - hardware de computadores

A vantagem da transmissão paralela é que, por serem enviados vários bits de uma vez só, ela tende a ser rápida. Porém, existem alguns problemas inerentes a esse sistema de transmissão.

  1. É necessário uma grande quantidade de fios, ou trilhas, para transmitir os bits - um para cada bit. Assim, uma transmissão paralela de 32 bits necessita de, no mínimo, 32 fios, ou caminhos de comunicação, para realizar a interligação entre os dispositivos.

       Cada fio, como sabemos, ao ser percorrido por uma corrente elétrica, gera um campo eletromagnético ao seu redor, que pode causar interferência nos condutores adjacentes. Na transmissão paralela esse efeito pode se multiplicar pelo número de fios usados no canal, ocasionando problemas como corrupção dos dados transmitidos.

2 Além disso, os condutores empregados na confecção do canal paralelo podem não ser exatamente do mesmo comprimento - imperfeições de fabricação podem resultar em alguns fios ou trilhas ligeiramente maiores ou menores, mesmo por milésimos de milímetro (micrômetros).

Isso pode acarretar um problema conhecido como Atraso de Programação (Skew Delay), que consiste em bits que são transmitidos juntos, mas não chegam simultaneamente no receptor. Isso pode ocasionar perda de performance na transmissão, perda de dados, e é necessário criar circuitos mais complexos (e de maior custo) no receptor para lidar com o problema. 

Atraso de Propagação em transmissão paralela - hardware

O Skew Delay se agrava quando o caminho a ser percorrido pelos dados é maior, como ocorre em cabos de ligação conectados a um PC. Exemplos clássicos incluem o antigo cabo flat IDE e cabos de impressora paralela.

Transmissão em Série

Neste tipo de transmissão os bits são enviados sequencialmente (“em série”), um bit por vez. A figura a seguir ilustra esse processo:

Porém, se elevarmos suficientemente o clock do sistema em série, é possível obter velocidades de transmissão mais elevadas do que em um sistema de transmissão paralela. 

Vantagens da transmissão em série

A transmissão em série utiliza muito menos fios para realizar a transmissão de dados do  que um sistema paralelo. São no mínimo dois ou três fios (transmissões half-duplex ou full-duplex). Podem ser necessários mais alguns poucos fios, dependendo do método de comunicação usado (com ou sem clock, por exemplo).

Por conta disso, a transmissão em série apresenta menos problemas com interferência eletromagnética, o que acaba permitindo um aumento em sua taxa de transferência ("velocidade"), pois menos erros são gerados durante a transmissão. Além disso, é eliminado o problema do atraso de propagação, pois os bits não são enviados juntos, mas sim sequencialmente. 

Atualmente tem se dado preferência ao desenvolvimento e uso de sistemas de transmissão em série. Por exemplo, as interfaces USB, Firewire, SATA, PCI Express, 12C e SPI são todas interfaces de transmissão em série.

Formas de transmissão em série

Existem três formas principais de transmissão de dados em série:

1. Transmissão Assíncrona: neste tipo de transmissão, são enviados juntamente com os dados alguns bits especiais de sinalização e controle, como por exemplo bits denominados de START BIT e STOP BIT, que são empregados para indicar o início e o fim da transmissão de um conjunto de bits (por exemplo, de um byte específico).

Existem outras formas de transmissão assíncrona, que utilizam outros bits de controle.

2. Transmissão Síncrona: nesta transmissão, um sinal de sincronismo separado é utilizado para que os envolvidos na comunicação consigam ajustar sua temporização, e o receptor possa, assim, saber onde começa e onde termina cada transmissão de dados.

Geralmente temos um fio extra transmitindo um sinal de clock para realizar esse sincronismo entre os dispositivos.

3. Transmissão Diferencial: neste tipo de transmissão, o mesmo (série de bits) é enviado em dois fios diferentes, porém com a polaridade invertida em um deles.

Quando um fio é percorrido por corrente elétrica, é gerado um campo eletromagnético ao seu redor, que pode induzir uma corrente em fios adjacentes, ocasionando a ocorrência de ruídos (interferência) na transmissão. Porém, se esse fio adjacente carregar o mesmo sinal, mas com polaridade invertida, irá gerar um sinal eletromagnético de polaridade oposta, o qual irá anular o efeito da interferência causada pelo outro fio, pois os campos opostos irão se anular.

Damos o nome de “D+” a um dos fios e de “D-” ao fio que carrega o sinal invertido. Em um próximo tutorial vamos analisar mais a fundo o funcionamento da transmissão diferencial, trazendo alguns exemplos de sua aplicação prática.

 

 

File System – O que é o sistema de arquivos

Pesquisa feita no Site: http://proddigital.com.br/tecnologia/file-system-o-que-e-o-sistema-de-arquivos/

Por: Gabriela Parente

Para o Site: Techmovie

Resultado de imagem para File System – O que é o sistema de arquivos

File System- O que é?

O sistema de arquivos ou file system (também conhecido por sistema de gestão de arquivos) é a forma como os dados são organizados em algum meio de armazenamento de dados em massa, e que são frequentemente feitos em discos magnéticos. Sabendo interpretar o sistema de arquivos de um determinado disco, o sistema operacional pode descodificar os dados armazenados e lê-los ou gravá-los (conforme o que a pessoa pretender).

Fazendo analogias, tal organização assemelha-se a uma biblioteca escolar. O bibliotecário organiza os livros conforme um padrão, cuja busca, convenientemente, procura deixar mais fácil. O bibliotecário certamente, organiza os livros segundo suas características (assunto, censura, tecnologias, temas proibidos…). Depois de organizados, ou durante a organização, o bibliotecário cria uma lista com todos os livros da biblioteca, com seus assuntos, localizações e códigos respetivos, tornando assim a procura pelos livros mais fácil para os estudantes.

Aplicando esta analogia à computação, o sistema operacional seria o bibliotecário da “biblioteca de dados” do computador, ou seja, o disco de armazenamento. Exatamente igual à organização de uma biblioteca, o sistema operacional guarda os dados nos espaços vazios do disco, rotulando-os com um FCB (File Control Block, Bloco de Controle de Arquivo) e ainda criando uma lista com a posição deste dado, chamada de MFT (Master File Table, Tabela de Arquivos Mestre).

Assim, sabendo a posição do arquivo a ser aberto/gravado, o sistema operacional solicita a leitura deste, decodifica/codifica e realiza a abertura/gravação do dado.

Um file system ou sistema de arquivos é assim uma forma de criar uma estrutura lógica de acesso a dados numa partição. É também bastante importante referir que nunca poderá ter dois ou mais tipos de sistemas de ficheiros (formatos) numa mesma partição.

Tipos de Sistemas de Arquivos

Existem diversos tipos de file systems, uns mais atuais do que outros, sendo os mais conhecidos neste âmbito os seguintes:

  • FAT (Tabela de alocação de arquivos);
  • FAT 32;
  • NTFS;
  • EXT3;
  • EXT4

 

 

Curso de Eletrônica Digital – Sistemas de Numeração

Pesquisa feita no Site: Boson Treinamentos.com.br

Por: Gabriela Parente

Para o Site: Techmovie

Sistemas de Numeração

Os computadores e equipamentos eletrônicos (e as pessoas também!) usam sistemas para representar números, chamados de Sistemas de Numeração. Todo sistema de numeração possui duas características básicas:

  • Cada dígito em um número possui um valor posicional, que depende do sistema de numeração empregado (por exemplo, em um sistema decimal, o valor é uma potência de 10);
  • Cada sistema possui um conjunto de valores que são válidos em seu domínio para representação numérica. Esses valores válidos são denominados Coeficientes. Por exemplo, no sistema base 10 (decimal), os valores válidos são: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9

Vejamos um exemplo de um número no sistema decimal de numeração: o número 6754. Vamos representá-lo como 675410 – o número 10 subscrito indica a base na qual o número está sendo representado (no caso, base 10). Esse número pode ser decomposto da seguinte forma:

6×103 + 7×102 + 5×101 + 4×100 

6000 + 700 + 50 + 4 = 6754

Note que cada dígito possui um valor que depende de sua posição dentro do número. O dígito 7, por exemplo, vale na verdade 700, pois está na posição 03 (contando da direita para a esquerda, sempre), o que significa que seu valor é, na verdade, 7 vezes a base 10 elevada ao quadrado (terceira posição, começando a contagem da posição zero).

E desta forma podemos representar e decompor todos os números conhecidos no sistema decimal. Porém, os computadores e outros equipamentos e dispositivos eletrônicos não trabalham geralmente com o sistema decimal de numeração, que é reservado para nós, humanos; outros sistemas são empregados por esses equipamentos, como os que estudaremos a seguir.

Sistema Binário de Numeração

Ou base 2. O sistema binário é a linguagem natural dos computadores e dispositivos digitais, e consiste em apenas dois valores distintos (dígitos): o e 1. Chamamos a esses valores de “bits”, onde “bit” é a contração das palavras “Binary Digit”, ou dígito binário.

O sistema binário também é posicional, com seus valores sendo potências de 2, e o conjunto de valores válidos no sistema compreende os dígitos 0 e 1.

Vejamos um exemplo de um número binário:

10102.

Para que não haja confusão entre números representados no sistema decimal e números binários, usamos o índice 2 subscrito para indicar o sistema base 2. De outra forma, não saberíamos se o número em questão é um valor binário ou se é a representação do valor mil e dez no sistema decimal.

Vamos decompor esse número binário e descobrir seu valor equivalente no sistema decimal:

1 0 1 0
1×23 0x22 1×21 0x20
8 0 2 0

8 + 0+ 2 + 0 = (10)10

Portanto, o número binário 10102 (lê-se “um zero um zero”) equivale ao número decimal 10 (dez). Veremos mais sobre conversões de base adiante no curso.

Cada posição em um número binário é um bit. Assim, um número binário como 1101102  é um número de seis bits, pois possui seis posições (dígitos) binários. Se tivermos um número com, por exemplo, quatro bits, poderemos representar os valores de zero até 11112  que equivale a 15 no sistema decimal. Ou seja, com 4 bits podemos representar 16 números distintos (de 0 a 15), pois 24 = 16.

Assim, com n bits podemos efetuar a contagem de 2n números distintos. E o valor máximo da contagem será semrpr 2n-1, pois a contagem se inicia em zero.

No geral, em eletrônica, usamos dígitos binários para representar dois níveis de tensão elétrica: nível alto e nível baixo, representados respectivamente pelos bits 1 e 0.

Agrupando bits

A memória nos computadores armazena os números binários em valores múltiplos de 8 bits (23). Desta forma, chamamos um número de 8 bits de Byte, um número de 16 bits de Half Word e um número de 32 bits, Word. Podemos também atribuir um nome a um agrupamento de 4 bits: Nibble.

Sistema Hexadecimal

O sistema binário é altamente eficiente para uso em dispositivos digitais, mas pode ser complexo para nós, humanos, no quesito inteligibilidade. Para simplificar o trabalho com valores binários, podemos usar um sistema numérico relacionado chamado de Sistema Hexadecimal, o qual usa a base 16 (24), ou seja, 16 dígitos para representar os números.

Os coeficientes válidos no sistema hexadecimal de numeração são:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Usamos os algarismos de 0 a 9 e as letras do alfabeto latino da A a F para representar os valores numéricos de 0 a 15.

Representação no Sistema Hexadecimal

Podemos representar os números hexadecimais de duas formas principais:

(hhhh)16 ou 0xhhhh

Exemplo: 0xA23E ⇔(A23E)16

Decompondo esse valor teremos:

A 2 3 E
10×163 2×162 3×161 14×160
40960 512 16 14

Portanto: A23E16 = 40960 + 512 + 48 + 14 = 4153410

Veja que para o dígito A usamos o valor 10 no cálculo, e para o dígito E usamos o valor 14. Mais à frente temos uma tabela de equivalência de todos os valores decimais, hexadecimais e binários (até 4 bits).

Usamos a notação hexadecimal para representar, entre outros:

  • Números em geral
  • Endereços de memória
  • Conteúdo de registradores ou da memória (valores armazenados em si).

O uso do sistema hexadecimal simplifica muito a representação de valores do sistema binário. Por exemplo, o número hexadecimal mostrado anteriormente, se representado em binário, ficaria assim:

A23E16 ⇔ 10100010001111102 

Um dígito hexadecimal equivale a um nibble (4 bits) do sistema binário. A tabela a seguir mostra um mapeamento entre valores decimais, binários e hexadecimais:

Decimal Hexadecimal Binário
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

 

Curso de Eletrônica Digital – Conversão entre bases numéricas Binária e Decimal

Pesquisa feita no Site: Boson Treinamentos.com.br

Por: Gabriela Parente

Para o Site: Techmovie

Conversão entre bases numéricas Binária e Decimal

Nesta lição vamos mostrar como efetuar conversão entre bases numéricas, tendo como foco as bases Binária e Decimal.

Convertendo de Binário para Decimal

Como vimos na lição anterior, os números são compostos por algarismos cujos valores dependem de sua posição relativa dentro do número. Usaremos esse fato para efetuar uma conversão de um número no sistema binário para um número equivalente no sistema decimal.

Tomemos como exemplo o número binário 110100112; vamos convertê-lo para decimal. Para isso, devemos multiplicar cada dígito binário individual por dois elevado ao valor de cada posição onde ele se encontra, e então somar os valores para obter o resultado final. Assim temos:

1 1 0 1 0 0 1 1
1 x 27 1 x 26 0 x 25 1 x 24 0 x 23 0 x 22 1 x 21 1 x 20
128 64 0 16 0 0 2 1

Somando os valores individuais:

128 + 64 + 0 + 16 + 0 + 0 + 2 + 1 = 21110

Vejamos um segundo exemplo. Vamos converter o número binário 11101112 para decimal:

1 1 1 0 1 1 1
1 x 26 1 x 25 1 x 24 0 x 23 1 x 22 1 x 21 1 x 20
64 32 16 0 4 2 1

Somando os valores:

64 + 32 + 16 + 0 + 4 + 2 + 1 = 11910

Convertendo de Decimal para Binário

Para efetuar a conversão de um número decimal para um número equivalente binário podemos usar o método das divisões sucessivas. Neste método, dividimos o número decimal que será convertido sucessivamente por 2 (sempre divisão inteira), até que o quociente seja igual a zero. Usaremos os restos de cada divisão para descobrir o valor da conversão.

Exemplo: Converter 21110 em binário:

Valor Dividido por Igual a Resto Obs.
211 2 = 105 1 LSB
105 2 = 52 1  
52 2 = 26 0  
26 2 = 13 0  
13 2 = 6 1  
6 2 = 3 0  
3 2 = 1 1  
1 2 = 0 1 MSB

Agora, após efetuar as divisões sucessivas, vamos ler os valores dos restos indo do dígito mais significativo (MSB, Most Significant Bit) para o menos significativo (LSB, Least Significant Bit):

21110 ⇔ 110100112 

Exemplo 2: Converta 102410 para binário:

Valor Dividido por Igual a Resto Obs.
1024 2 512 0 LSB
512 2 256 0  
256 2 128 0  
128 2 64 0  
64 2 32 0  
32 2 16 0  
16 2 8 0  
8 2 4 0  
4 2 2 0  
2 2 1 0  
1 2 0 1 MSB

Lendo os valores dos restos do MSB para o LSB:

102410 ⇔ 100000000002

Obs.: Em um número binário, a posição mais à direita (dígito) é chamada de LSB (Least Significant Bit / Bit menos Significativo), pois é o bit com menor valor no número, e a posição mais à esquerda é chamada de MSB (Most Significant Bit / Bit mais significativo), pois é o bit com maior valor dentro do número.

Curso de Eletrônica Digital – Conversão entre sistemas Binário e Hexadecimal

Pesquisa feita no Site: Boson Treinamentos.com.br

Por: Gabriela Parente

Para o Site: Techmovie


Conversão entre sistemas Binário e Hexadecimal

Nesta lição vamos mostrar como efetuar a conversão de números entre os sistemas Binário e Hexadecimal de numeração.

Convertendo de Binário para Hexadecimal

Para converter um número binário para hexadecimal nós devemos:

  1. Dividir o valor binário em seus nibbles constituintes (grupos de quatro bits, contando da direita para a esquerda);
  2. Converter cada nibble em seu dígito hexadecimal correspondente, conforma a tabela abaixo:
Hexadecimal Binário
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

Exemplo: Converter o número binário 110010101001000111112 em hexadecimal:

Número binário: 110010101001000111112
Nibbles: 1100 1010 1001 0001 1111
Dígitos hexadecimais: C A 9 1 F

Então, temos que:

11001010100100011111⇔ CA91F16 (ou 0xCA91F)

Se, ao realizar a divisão do número binário em grupos de quatro bits, o último nibble ficar com três bits ou menos, complete o número com zeros à esquerda até completar os quatro bits necessários. (esses bits não fazem diferença para o valor numérico, mas é importante colocá-los para evitar confusões durante a conversão).

Conversão de Hexadecimal para Binário

Para converter um número do sistema hexadecimal de numeração para o sistema binário, siga os passos abaixo:

  1. Convertemos cada dígito hexadecimal em seu nibble correspondente (grupo de quatro bits), conforme tabela anterior.
  2. Combinamos os nibbles para obter o número binário final.

Exemplo: Vamos converter o número hexadecimal 0xF13B em seu correspondente binário:

Número Hexadecimal F13B16
Dígitos individuais F 1 3 B
Nibbles 1111 0001 0011 1011
Número em Binário 11110001001110112

Curso de Eletrônica Digital - Código BCD

Pesquisa feita no Site: Boson Treinamentos.com.br

Por: Gabriela Parente

Para o Site: Techmovie

Código BCD – Binary-Coded Decimal (Decimal Codificado em Binário)

Existem alguns equipamentos que representam os números decimais usando códigos específicos em vez de usar o sistema binário comum. O código mais conhecido nesta categoria é o Código BCD, no qual cada dígito decimal é representado por um grupo de quatro bits (nibble).

Para isso são usados os valores binários que representam os números decimais de 0 a 9, com quatro dígitos (bits) para representação dos valores; os valores de 10 a 15 (também gerados com quatro bits) são ignorados.

Na tabela abaixo listamos os números em decimal de 0 a 9 e seus equivalentes em código BCD:

Decimal BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Acrescentaremos zeros sempre que necessário para que os números em BCD tenham sempre 4 dígitos (chamamos esse processo de “padding”).

Vejamos agora alguns exemplos de conversão de valores decimais em código BCD:

Exemplo 1 – Converter o número 523 em código BCD:

Tomamos cada dígito desse número separadamente e o substituímos pelo seu equivalente em BCD, de acordo com a tabela anterior:

Número Decimal 52310
Dígitos 5 2 3
Equivalentes BCD 0101 0010 0011
Código BCD 010100100011BCD

 

Exemplo 2 – Converter o número BCD 1001011000100000BCD em seu equivalente decimal:

Dividiremos o número em grupos de 4 dígitos e converteremos cada grupo isoladamente para seu equivalente em decimal:

Número em BCD 1001011000100000BCD
Nibbles 1001 0110 0010 0000
Equivalentes Decimais 9 6 2 0
Número decimal 962010

Lembre-se: os seis números que podem ser representados em binário e que vem após o 9 (de 10 a 15) NÃO podem ser usados em código BCD – não possuem um equivalente decimal! Assim, por exemplo, o número 1011 – que equivale a 11 em decimal – não é um número válido em BCD; para representar o número 11 devemos usar o valor BCD 00010001BCD.

 

Curso de Eletrônica Digital-Sistema Hexa Decimal

Sistema Hexadecimal de Numeração

Pesquisa feita no Site: Boson Treinamentos.com.br

Por: Gabriela Parente

Para o Site: Techmovie

 

 

Eletrônica Digital- Efetuando Adição Binária

Adição Binária 

Pesquisa feita no Site: Boson Treinamentos.com.br

Por: Gabriela Parente

Para o Site: Techmovie

Podemos efetuar operações aritméticas com valores em binário, sendo a operação mais comum a Adição Binária (soma de bits). A tabela a seguir mostra os resultados possíveis em uma soma de dois bits (bit e bit B), incluindo além da soma em si o bit de Carry ("vai-um"). O carry indica se devemos somar 1 à próxima coluna à esquerda durante o cálculo:

Note que sempre que um dos valores a serem somados for igual a zero, o resultado é trivial, como em uma soma algébrica comum. Porém, quando os dois bits são iguais a 1, o resultado será igual a zero e teremos um bit de carry gerado. Ou seja, a soma 1 + 1 é igual a 0 e “vai um”, que é a soma do valor 1 à segunda casa binária, à esquerda da casa que contém os bits somados:

+ 1
    1
  10

A próxima tabela mostra os resultados possíveis quando o carry de uma coluna anterior (chamado de carry-in) é adicionado às entradas A e B. Teremos como resultados a soma S e um valor chamado carry-out (vai-um-saída):

Entradas Saídas
Carry-in A B S Carry-out
0  0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

A próxima tabela mostra os resultados possíveis quando carry de uma coluna anterior (chamado de carry-in) é adicionado às entradas A e B. Teremos como resultados a soma S e um valor chamado carry-out (vai-um-saída):

Entradas Saídas
Carry-in A B S Carry-out
0  0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Por exemplo, ao somarmos os bits 1 + 1 com um carry de 1, teremos como resultado o valor 1 e um carry-out gerado (outro bit 1 – “vai-um”), que será transportado para a próxima casa binária à esquerda, transformando-se em um carry-in (a ser somado).

Com o auxílio dessa tabela, vamos resolver alguns exemplos de adição binária:

1 – Efetuar: 111102 + 11002

Resolução:

Adição Binária - Exercício 1 - Eletrônica Digital

Resposta: 1010102

2 – Somar: 11100102 + 10011102

Resolução:

Eletrônica Digital - Adição Binária - Exercício 02

Resposta: 110000002

3 – Efetuar: 10112 + 1012 + 10012

Resolução:

Técnicas Digitais - Adição Binária - Exercício 03

Resposta: 110012

 

 

 

Efetuando Subtração Binária

Subtração Binária

Na lição anterior mostramos como realizar a soma de números binários. Agora, é a vez de trabalharmos com a subtração de valores binários, uma operação muito importante em aritmética binária também.

A tabela a seguir mostra os resultados possíveis ao efetuar uma subtração entre dois bits. Damos os nomes de Diferença e Borrow (“emprestar”) às saídas obtidas nessa operação. O borrow indica se devemos tomar emprestado um bit da coluna imediatamente à esquerda (um “vai-um” ao contrário):

Entradas Saídas
A B Diferença Borrow
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0

Note que quando temos os bits A e B iguais, ou quando o primeiro bit é igual a 1 e o segundo é igual a 0, o resultado da subtração é trivial, como se espera de uma operação comum. Porém, quando o primeiro bit é 0 e o segundo bit equivale a 1, a subtração tem como resultado o valor 1 e um bit de borrow deve ser utilizado (emprestado da próxima casa binária).

Vejamos alguns exemplos de subtração binária:

Exemplo 01: Efetuar 100112 – 10012

Resolução:

Eletrônica Digital - Subtração Binária - Exercício 01

Resposta: 100112 – 10012 = 10102

Exemplo 02: Efetuar 100012 – 10102

Resolução:

Lógica Digital - Subtração Binária - Exercício 02

Resposta: 100012 – 10102 = 1112

Pesquisa feita no site:

http://www.bosontreinamentos.com.br/eletronica/eletronica-digital/efetuando-subtracao-binaria/

 

Efetuando Subtração Binária com Complemento de 1 – Eletrônica Digital

Subtração Binária com Complemento de 1

Na lição anterior aprendemos a calcular o resultado de uma subtração binária usando bits de borrow. Agora, vamos mostrar uma outra técnica para realização de subtração entre números binários, denominada Subtração com Complemento de 1, que é uma técnica utilizada pelos computadores para realizar esse tipo de cálculo. Para humanos, a subtração usando o método do borrow é mais simples, mas certamente é de valia conhecer outros métodos também, especialmente para quem trabalha com projetos de lógica digital ou programação de computadores.

O complemento de 1 de um bit é o seu inverso (o de 1 é 0 e o de 0 é 1). Podemos usar esse complemento de 1  para efetuar uma subtração binária, de acordo com o procedimento  a seguir:

  1. Iguale o número de casas binárias dos números envolvidos no cálculo, acrescentando zeros à esquerda se necessário. Obtenha o complemento de 1 do subtraendo (número que será subtraído do minuendo; “número de baixo”)
  2. Some o complemento de 1 obtido no passo a) ao minuendo (número “de cima” no cálculo)
  3. Se o número estourar (ultrapassar o número de casas binárias dos valores envolvidos na subtração), a resposta será um valor positivo. Somamos então o estouro ao LSB (bit menos significativo) do resultado do passo b). Chamamos essa operação de EAC (End-Around-Carry / vai-um final ao redor). Caso não haja estouro, simplesmente aplique o complemento de 1 neste resultado, e o valor obtido será um número negativo.

Vejamos um exemplo de subtração binária usando esta técnica:

Exemplo 01: Efetue o cálculo de 110012 – 100012, usando o complemento de um.

Resolução:

Eletrônica Digital - Subtração Binária com Complemento de 1 - 01

Resultado: 110012 – 100012 = 10002

Exemplo 02: Calcule 10112 – 1012:

Resolução:

Igualamos o número de casas binárias dos números acrescentando um zero ao 1012:

Subtração binária com complemento de 1 - exemplo 02

Resultado: 10112 – 1012 = 1102

Exemplo 03: Efetuar 1012 – 110002 usando o complemento de um.

Resolução: Note que neste exemplo o segundo número (subtraendo) é menor do que o primeiro (minuendo) na subtração, de forma que o resultado deve ser um valor negativo.

realizando subtração binária - exemplo 03

Neste caso obtivemos um número negativo. O valor real do número será dado pelo complemento de 1 do resultado anterior, incluindo o bit de estouro:

Complemento de 1: subtração de números binários - lógica digital

Resultado: 1012 – 110002 = -100112 (-1910)

Curso de Eletrônica Digital – O que é uma Tabela-Verdade

O que é uma Tabela-Verdade

Tabela-verdade é uma tabela que descreve a saída de um circuito lógico em relação aos níveis lógicos presentes nas entradas do circuito. Uma tabela-verdade é composta por uma coluna para cada valor de entrada, e uma coluna final para os valores de saída computados, dependendo da operação lógica utilizada.
Veja a seguir uma tabela-verdade que representa um circuito lógico de duas entradas:

Circuito Lógico Representado:

Circuito Lógico - Tabela da Verdade

Na figura acima temos um circuito lógico, representado por u retângulo, que pode implementar qualquer função lógica. Esse circuito possui duas entradas, A e B, e uma saída S. Os níveis lógicos na saída S dependem dos níveis nas entradas A e B, e podem ser listados com o uso de uma tabela-verdade.

Tabela-Verdade:

Tabela-Verdade de duas entradas - Eletrônica Digital

A tabela traz todas as combinações possíveis dos níveis lógicos nas entradas A e B, e mostra os níveis correspondentes na saída S. Por exemplo, quando A e B estão no nível lógico 0, a saída correspondente estará em nível 1.

Podemos criar tabelas-verdade para qualquer número de entradas, e o valor da saída S depende do circuito lógico analisado na tabela.
Na tabela mostrada anteriormente, temos duas entradas e quatro linhas; para uma tabela de três entradas, teremos oito linhas. O número de combinações das entradas será igual a 2n para uma tabela-verdade de n entradas. Desta forma, uma tabela com, digamos, 5 entradas terá no total 25 linhas = 32 linhas. Da mesma forma, uma tabela com 4 entradas terá no total 24 linhas = 16 linhas, ou combinações possíveis de valores.
Também devemos escrever a os valores  das entradas em uma seqüência binária, o que simplifica a criação da tabela e permite evitar problemas, como o de encontrar uma combinação em particular em uma tabela grande.

Veja a seguir exemplos de tabelas-verdade de três e de quatro entradas:

Tabela para circuito de três entradas:

Tabela-verdade e circuito lógico de 3 entradas

Tabela para circuito de quatro entradas:

Tabela-verdade de quatro entradas - Lógica Digital

Questões:

1.) Qual o valor da saída na tabela mostrada anteriormente (de 4 entradas) quando as entradas A e C possuírem nível lógico igual a 1, e as entradas B e D estiverem em nível lógico igual a 0?

2.) Quantas linhas terá uma tabela-verdade utilizada para representar um circuito digital de sete entradas?

Respostas:

1.) Nível lógico 1

2.) 27 = 128 linhas

Portas Lógicas e Tecnologias TTL e CMOS

Uma Porta Lógica Digital é um dispositivo eletrônico que implementa funções lógicas (booleanas) e toma decisões baseado em diferentes combinações de níveis lógicos digitais (0 e 1) aplicados às suas entradas.
Uma porta lógica pode ter uma ou mais entradas, dependendo do circuito lógico que é implementado, e no geral somente possui uma saída digital. Podemos conectar e combinar diversas portas lógicas para obter circuitos ou funções lógicas adicionais, como circuitos combinacionais ou sequenciais.

As portas lógicas podem ser obtidas comercialmente na forma de circuitos integrados, que estão disponíveis em duas tecnologias ou famílias básicas, a tecnologia TTL (Transistor-Transistor Logic / Lógica Transístor-Transístor), que no geral utiliza transístores bipolares (BJT) NPN e PNP, e a tecnologia CMOS (Complementary Metal-Oxide Semiconductor / Metal-óxido Semicondutor Complementar), que usa Transístores de Efeito de Campo (FET) dos tipos MOSFET ou JFET. Também podemos criar portas lógicas com a combinação de componentes eletrônicos discretos, como diodos, transístores e resistores, e até mesmo com relés, válvulas eletrônicas e dispositivos mecânicos.

As portas lógicas digitais são como blocos de construção básicos, com os quais são construídos circuitos eletrônicos digitais complexos, como microprocessadores, memórias de computador, circuitos de controle digitais, multiplexadores e muitos outros.

Estados Lógicos

Em lógica digital existem apenas dois estados permitidos (dois níveis de tensão elétrica), sendo denominados como nível alto (ligado) e nível baixo (desligado), 1 e 0, ou ainda, Verdadeiro e Falso. Representamos esses estados lógicos em álgebra booleana por meio dos valores binários 1 e 0.

Há duas formas de representar esses níveis lógicos por meio de um circuito digital:

  • Lógica Positiva: O nível lógico 0 (ou baixo / low) é representado eletricamente por uma tensão de zero volts (na prática, próxima a zero volts), e o nível lógico 1 (ou alto / high) é representado por uma tensão elétrica mais alta, como por exemplo 5 volts.
  • Lógica Negativa: Os níveis lógicos são inversos em relação à Lógica Positiva. Esse tipo de lógica é muito pouco empregada, por isso vamos utilizar em nosso curso sempre as noções de lógica positiva.

É interessante notar que, quando usamos circuitos que implementem a tecnologia TTL, os estados lógicos são dados por intervalos de valores de tensão elétrica, e não valores específicos em si. A figura a seguir mostra os níveis lógicos de entrada e saída comuns (e aceitáveis) em um circuito TTL típico:

Níveis de Tensão Elétrica em lógica TTL

Níveis de Tensão Elétrica em Lógica TTL

De acordo com a figura, ao usarmos um dispositivo lógico construído com tecnologia TTL, uma tensão elétrica entre 2,0V e 5,0V é considerada como um nível lógico 1 (ALTO), ao passo que uma tensão elétrica abaixo de 0,8V é considerada como um nível lógico 0 (BAIXO). Já a tensão elétrica entre 0,8V e 2,0V é uma região indeterminada, não representando nem o nível 0 nem o nível 1, e portanto devemos evitar que o circuito opere nessa região, para que não sejam produzidos valores de saída errôneos / falsos.

A seguir temos uma figura que traz os níveis lógicos e suas respectivas tensões elétricas utilizadas em tecnologia CMOS padrão:

Níveis de Tensão Elétrica em um dispositivo CMOS

Níveis de Tensão Elétrica em um dispositivo CMOS

Os níveis apresentados na imagem correspondem aos valores de tensão de entrada aceitáveis em um dispositivo CMOS típico, sendo que a tensão elétrica pode, na verdade, ser maior do que 5V (os dispositivos CMOS suportam até 18 VDD na entrada). A saída deve ser de no máximo 0,05V para o nível 0 (baixo) em tecnologia CMOS, e entre 4,95 e 5V para o nível 1 (alto).

Idealmente, para qualquer circuito digital, os níveis de tensão que representam os valores lógicos 0 e 1 deveriam ser, respectivamente, de 0V e 5V; porém, isso é muito difícil de obter na prática, e por isso as tecnologias supracitadas possuem as faixas de valores aceitáveis para cada nível.

Com estas duas tecnologias, a TTL e a CMOS, são construídas as portas lógicas usadas nos mais diversos circuitos digitais existentes. As portas lógicas básicas são as portas AND, OR e NOT, mais as portas NAND, NOR, XOR e XNOR.

TTL ou CMOS?

Ao escolher entre as famílias de circuitos digitais TTL e CMOS para um projeto eletrônico, devemos levar alguns pontos em consideração, pois ambas possuem vantagens e desvantagens de uso:

  • TTL: Uma de suas principais desvantagens é o fato de seu consumo elétrico ser relativamente elevado, por serem construídos co transistores bipolares, que consomem uma boa quantidade de corrente elétrica. Além disso, as portas TTL possuem uma velocidade de operação limitada por conta desses transistores, o que significa que a transição entre um estado lógico 0 (Desligado / OFF) para um estado lógico 1 (Ligado / ON) leva um certo tempo, denominado Atraso de Propagação, o que pode causar impacto negativo caso haja necessidade de alta velocidade de chaveamento entre os níveis lógicos.
  • CMOS: O consumo elétrico de dispositivos CMOS é muito mais baixo do que o dos dispositivos TTL, por serem baseados em tecnologia FET, estando na faixa de 1 a 2 microampères (1 a 2 uA)!. Assim, são ideais para uso em dispositivos nos quais o consumo elétrico seja um ponto crítico – tais como dispositivos portáteis, por exemplo.Uma outra vantagem dos dispositivos CMOS é seu baixo tempo de chaveamento, o que significa que a passagem de um nível lógico para outro se dá de forma muito rápida também.
    Porém, os circuitos CMOS possuem uma desvantagem que deve ser levada em consideração: eles são danificados com muita facilidade por eletricidade estática. Por isso, devem ser protegidos contra descargas que possam afetar os circuitos onde se encontram, e também ao serem manuseados, pois os circuitos integrados CMOS são muito sensíveis, e podem se danificar até mesmo com um simples contato com as mãos do técnico que os manipula. Usar uma pulseira antiestática é uma boa ideia nesse caso.

Simbologia

Existem dois conjuntos de símbolos para representar as portas lógicas, ambos definidos pelo padrão ANSI/IEEE Std 91-1984 e seu suplemento, o ANSI/IEE Std 91a-1991. O primeiro conjunto, cujos símbolos possuem formatos distintos para cada porta lógica, é mais utilizado em desenhos simples, e às vezes conhecido como “padrão militar’, devido ás suas origens. Já o segundo conjunto, refinado pelo IEC e batizado de padrão IEC 60617-12, com formatos retangulares dos símbolos, permite a representação de uma quantidade muito maior de dispositivos do que é possível usando a simbologia tradicional.

Em nossos tutoriais iremos sempre mostrar ambos os símbolos, de modo que você será capaz de desenhar e entender qualquer diagrama de circuito lógico apresentado.

Porta Lógica NOT (Inversora)

Porta Lógica NOT (Inversora)

A porta lógica NOT é a mais básica de todas as portas lógicas, possuindo uma única entrada, e sua saída é o complemento dessa entrada. É uma porta inversora (ou buffer inversor), ou seja, o valor lógico da entrada é invertido na saída. Assim se uma entrada A possui nível lógico igual a 0, então a saída S terá o nível lógico 1, e se a entrada estiver em nível lógico 1, a saída terá o nível 0.

A figura abaixo mostra o símbolo da porta lógica NOT:

Porta Lógica NOT inversora

O círculo na saída da figura (lado direito) representa o complemento lógico (inverso). E, abaixo, o símbolo da porta NOT usando o formato retangular, do padrão IEC:

Porta Lógica NOT - diagrama IEC

Expressão lógica

Podemos escrever uma expressão como:

Expressão Lógica NOT que indica que a saída S é o complemento da entrada A, e essa expressão pode ser lida como “A negado” ou “A barrado”.

A seguir, temos a tabela-verdade da porta NOT:

Tabela-verdade operação lógica NOT

A porta lógica NOT implementa uma função de uma única entrada, por isso é classificada como uma porta unária.

No mundo real temos as portas NOT disponíveis em circuitos integrados, tanto com tecnologia TTL quanto CMOS. Como exemplo, podemos citar o CI 7404, que é um TTL (lógica transístor-transístor) contendo seis portas inversoras independentes. A figura abaixo mostra a pinagem desse circuito integrado:

CI 7404 - Porta Lógica NOT - pinagem

Um outro exemplo de CI contendo portas lógicas NOT, desta vez usando tecnologia CMOS, é o circuito integrado 4069, que também possui seis portas inversoras integradas.

Porta NOT com Transístor

Podemos implementar uma porta NOT usando um transístor e dois resistores, de maneira bem simples, como ilustra a figura a seguir:

Porta lógica NOT com transístor

Quando a tensão na base do transistor – entrada “A” – está em nível alto, a sua saída S estará em nível baixo, pois haverá condução de corrente entre coletor e emissor. Quando a base estiver em nível baixo, o transístor não estará conduzindo, de modo que o nível de tensão na saída S será alto (próximo à tensão de alimentação, +VCC).

Porta AND com transístores

Podemos implementar uma porta lógica AND usando componentes discretos como transistores e resistores, conforme mostra o diagrama esquemático a seguir:

Porta Lógica AND com transistores

 

Porta Lógica AND

Porta Lógica AND

A porta lógica AND (E) é um circuito lógico que possui ao menos duas entradas, e que fornece na saída o valor lógico 1 apenas quando todas as entradas também tiverem o nível lógico igual a 1 (alto).

A expressão booleana para a operação lógica AND é indicada por um ponto . como em A.B, que se lê “A AND B” ou ainda “A e B”, e também podemos simplesmente representar essa mesma expressão lógica como AB (sem utilizar o ponto).

Símbolos

As figuras abaixo mostram os símbolos de uma porta lógica AND com duas entradas:

Porta Lógica AND - Símbolo

Símbolo convencional

 

Porta lógica AND - padrão IEC

Símbolo padrão IEC

E logo a seguir, temos a tabela-verdade para uma porta AND de duas entradas:

Tabela-verdade porta lógica AND de duas entradas

Assim como acontece com a porta OR, podemos construir portas AND com duas, três, quatro ou mais entradas, e a saída do circuito lógico será sempre igual a zero se qualquer uma das entradas tiver o valor lógico baixo (zero).

O circuito integrado TTL 7408 implementa quatro portas lógicas AND de duas entradas, independentes entre si. Veja abaixo o diagrama de pinagem desse CI:

Circuito Integrado 7408 - portas lógicas AND de duas entradas

Outros exemplos de circuitos integrados contendo portas AND são o 7411, que implementa três portas AND com tecnologia TTL de três entradas, e o 4082, que traz duas portas AND com tecnologia CMOS de quatro entradas.

Porta Lógica OR

Porta Lógica OR

A porta lógica OR (disjunção lógica) recebe ao menos duas entradas e produz um valor na saída igual a 1 se ao menos uma dessas entradas tiver valor lógico igual a 1.

Nas figuras a seguir podemos ver os símbolos de uma porta OR com duas entradas:

 

Porta Lógica OR - Símbolo

 

Porta Lógica OR - Padrão IEC

Padrão IEC

A expressão lógica OR é dada por S = A + B, sendo que o sinal + indica a operação booleanaOR, (e não a adição matemática!), e lemos A + B como “A OR B“.

Veja a seguir a tabela-verdade da porta lógica OR de duas entradas, A e B:

Tabela-verdade da porta OR de duas entradas

Podemos construir portas OR com duas, três, quatro ou mais entradas, e seu funcionamento é sempre o mesmo – saída igual a 1 se ao menos uma das entradas possuir nível lógico igual a 1.

Circuitos OR: Um exemplo de circuito integrado que implementa portas OR é o TTL 7432, que possui quatro portas OR independentes de duas entradas. A figura abaixo mostra o diagrama de pinagem desse circuito integrado:

CIrcuito Integrado 7432 quad-OR

Há diversas outras  implementações de portas OR em circuitos integrados, como por exemplo o 4071 (CMOS, com 4 portas OR de duas entradas) e o 4072 (CMOS, com duas portas OR de 4 entradas).

Veja a seguir o símbolo de uma porta OR de três entradas (A, B e C):

Porta Lógica OR de 3 entradas

E a tabela-verdade da porta OR de três entradas pode ser vista abaixo:

Tabela-Verdade da porta lógica OR de três entradas

Note que o único caso em que teremos valor lógico igual a 0 (zero) na saída é quando todas as entradas possuem valor 0 também; em todos os outros casos, a saída é igual a 1.

Porta OR com transístores

Podemos implementar uma porta lógica OR usando transistores e resistores, conforme mostra o diagrama esquemático a seguir:

Porta Lógica OR com transístores

Porta Lógica OR com transístores. Fonte: Wikimedia Commons

Porta Lógica NOR

Porta Lógica NOR

A porta lógica NOR é uma porta que conta com ao menos duas entradas, e cujo nível lógico de saída será igual a 0 quando houver ao menos uma entrada em nível lógico alto (1). A palavra NOR significa “NOT OR”, indicando que, basicamente, se trata de uma porta OR com a saída invertida (em complemento).

As figuras a seguir mostram os símbolos utilizados para representar uma porta NOR:

Porta Lógica NOR

Porta Lógica NOR - IEC

Símbolo IEC

 

Expressão Lógica

A expressão lógica de uma porta NOR é dada por:

Expressão lógica da porta NOR

Ou seja, a expressão lógica de uma porta OR, porém com o resultado invertido, o que é denotado pela barra sobre a expressão A + B.

Tabela-Verdade

A seguir, temos a tabela-verdade para uma porta NOR de duas entradas:

Tabela-verdade para porta lógica NOR de duas entradas

Note que a saída somente apresenta nível lógico igual a 1 quando ambas as entradas estão em nível lógico igual a zero; em todos os outros casos, a saída será igual a zero (nível baixo).

E abaixo, a tabela-verdade para uma porta lógica NOR de três entradas:

Porta NOR - Tabela-verdade de três entradas

Circuitos NOR

Um exemplo de circuito integrado clássico que implementa portas NOR é o TTL 7402, que possui quatro portas NOR independentes de duas entradas. A figura abaixo mostra o diagrama de pinagem desse circuito integrado:

Porta NOR - Circuito integrado TTL 7402

Há diversas outras  implementações de portas NOR em circuitos integrados, como por exemplo o 7425 (TTL, com duas portas NOR de quatro entradas) e o 4025 (CMOS, com três portas NOR de 3 entradas).

Porta NOR com transístores

Podemos implementar uma porta lógica NOR usando transistores e resistores, conforme mostra o diagrama esquemático a seguir:

Porta NOR com transístores

Figura: http://www.electronics-tutorials.ws/logic/logic_6.html

Porta NOR a partir de outras portas

Podemos também implementar uma porta NOR utilizando outras portas lógicas, caso não estejam disponíveis circuitos integrados apropriados ou transístores. Abaixo, vemos um diagrama que ilustra a composição de uma porta NOR a partir de portas NAND (estudadas na próxima lição):

Porta NOR a partir de portas NAND

Fonte: Wikimedia Commons

Porta Lógica NAND

Porta Lógica NAND

A Porta Lógica NAND (Não E) é uma porta lógica que possui no mínimo duas entradas, e cujo valor lógico em sua saída será igual a 0 (zero) somente quando todas as suas entradas tiverem nível lógico igual a 1.

NAND significa “NOT AND”, o que denota sua principal característica – ser uma função de complemento em relação à função AND, e podemos ver seus símbolos nas figuras a seguir:

 

Porta Lógica NAND

Note que se trata de uma porta AND com a saída invertida, o que é mostrado pelo círculo e pela barra inclinada nos diagramas.

Expressão Lógica

A expressão booleana de uma porta NAND é dada por:

Expressão lógica de uma porta NAND

Ou seja, trata-se da expressão lógica de uma porta AND, porém com o resultado invertido (em complemento), o que é denotado pela barra sobre a expressão AB.

Tabela-Verdade

A seguir, temos a tabela-verdade para uma porta NAND de duas entradas:

Tabela-verdade de uma porta lógica NAND

Note que a saída somente apresenta nível lógico igual a 0 quando ambas as entradas estão em nível lógico igual a 1; em todos os outros casos, a saída será igual a 1 (nível alto).

Veja abaixo o diagrama e a tabela-verdade para uma porta lógica NAND de três entradas:

Porta NAND de três entradas - símbolo e tabela-verdade

Circuitos NAND

Um exemplo de circuito integrado clássico que implementa portas NAND é o TTL 7400, que possui quatro portas NAND independentes de duas entradas. A figura abaixo mostra o diagrama de pinagem desse circuito integrado:

TTL 7400 - Quad NAND Porta Lógica

Existem muitas outras  implementações de portas NAND na forma de chips, como por exemplo o 7410 (TTL, com três portas NAND de três entradas) e o 74C30 (CMOS, com uma porta NAND de 8 entradas!).

Porta NAND com transístores

Podemos implementar uma porta lógica NAND usando transistores e resistores, conforme mostra o diagrama esquemático a seguir:

Porta Lógica NAND com transístores

Quando o nível lógico (tensão) na base dos dois transístores é alto, simultaneamente, ambos conduzem e o nível lógico na saída (coletor de T1) será 0; em qualquer outro caso, sempre haverá ao menos um transístor em corte (não conduzindo), e o nível na saída será igual à 1 (nível alto = +Vcc).

Porta NAND a partir de outras portas

Podemos também implementar uma porta NAND utilizando outras portas lógicas, caso não estejam disponíveis circuitos integrados apropriados ou transístores. Abaixo, vemos um diagrama que ilustra a composição de uma porta NAND a partir de portas NOR (estudadas na lição anterior):

Porta NAND a partir de portas lógicas NOR

Na próxima lição apresentaremos a Porta Lógica XOR (Ou-Exclusivo).

Porta Lógica XOR – Eletrônica Digital

Porta Lógica XOR – OU Exclusivo

A porta XOR (Exclusive OR / OU Exclusivo) é uma porta de duas entradas que produz em sua saída o nível lógico 1 quando suas entradas tiverem valores diferentes entre si, e o nível lógico 0 zero) quando as entradas forem iguais.

Podemos ver nas figuras abaixo os símbolos de uma porta lógica XOR:

Porta Lógica XOR

Porta Lógica XOR - IEC

Símbolo IEC

Expressão Lógica

A expressão booleana de uma porta XOR é dada por:

Expressão Lógica de uma porta XOR - Ou Exclusivo

a qual lemos como “A ou-exclusivo B” ou simplesmente, “A XOR B”

Tabela-Verdade

A seguir, temos a tabela-verdade para uma porta XOR:

Tabela-Verdade de uma Porta Lógica XOR

 

Portas XOR a partir de portas básicas

A porta XOR não é uma porta básica, como as estudadas anteriormente, mas pode ser construída a partir de portas básicas. Por exemplo, o circuito abaixo, composto apenas de portas básicas (NOT, AND e OR), implementa uma porta XOR:

Porta Lógica XOR construída a partir de portas básicas AND, OR e NOT

Diagrama criado com o simulador Logisim

Circuitos XOR

Um exemplo de circuito integrado clássico que implementa portas XOR é o TTL 7486, que possui quatro portas XOR independentes. A figura a seguir ilustra o diagrama de pinagem desse circuito integrado:

Circuito TTL 7486 - Quatro portas XOR

 

Existem muitas outras  implementações de portas XOR na forma de chips, como por exemplo o 4070 (CMOS, com quatro portas XOR).

 

 

Porta Lógica XNOR – Eletrônica Digital

Podemos ver nas figuras abaixo os símbolos de uma porta lógica XNOR:

Porta Lógica XNOR - Diagrama

Porta Lógica XNOR - Diagrama IEC

Expressão Lógica

A expressão booleana de uma porta XNOR é dada por:

Porta XNOR - Expressão booleana

a qual lemos como “A ou-não-exclusivo B” ou simplesmente, “A XNOR B”. Perceba que se trata da mesma expressão lógica de uma porta XOR, porém com a saída invertida (barrada).

Tabela-Verdade

A seguir, temos a tabela-verdade para uma porta XNOR:

Tabela-verdade porta lógica XNOR - Ou não -exclusivo

Portas XNOR a partir de portas básicas

A porta XNOR não é uma porta básica, como as estudadas anteriormente, mas assim como a porta XOR, pode ser construída a partir de portas básicas. Por exemplo, o circuito abaixo, composto apenas de portas básicas (OR e NAND), implementa uma porta XNOR:

Porta XNOR construída com portas OR e NAND

Circuitos XNOR

Um exemplo de circuito integrado clássico que implementa portas XNOR é o TTL 74266, que possui quatro portas XNOR independentes. A figura a seguir ilustra o diagrama de pinagem desse circuito integrado:

Porta XNOR - Chip TTL 74266

Outro exemplo de circuito integrado que implementa portas XNOR é o CMOS 4077, também trazendo quatro portas XNOR independentes.

 

 

Porta Lógica XNOR

A porta lógica XNOR, também conhecida como OU-Não-Exclusivo (Exclusive NOR), é uma porta lógica de duas entradas que apresenta nível lógico alto (1) em sua saída quando as entradas possuírem níveis lógicos iguais entre si, e nível lógico baixo na saída quando suas entradas forem diferentes. Basicamente, ela implementa a função inversa da porta XOR.

Introdução à Álgebra Booleana – Curso de Eletrônica Digital

Álgebra de Boole

A álgebra booleana foi desenvolvida pelo matemático inglês George Boole (1815 – 1864) para ser usada em estudos de lógica. Foi apresentada pela primeira vez de forma completa em um trabalho de nome “An Investigation of the Laws of Thought”, publicado em 1854.

George Boole

A Álgebra de Boole consiste em uma ferramenta matemática que nos permite descrever a relação entre as saídas de um circuito lógico e suas entradas por meio do uso de uma equação, também chamada de expressão booleana. Com a álgebra booleana também é possível simplificar a expressão booleana que determina um circuito, de modo que esse circuito possa ser reprojetado de forma mais simples, possivelmente usando uma quantidade menor de portas lógicas (ou ainda de conexões entre as portas lógicas utilizadas).

Na Álgebra de Boole, somente dois valores são permitidos: 0 ou 1. Damos o nome de variável booleana a uma quantidade que pode assumir esses valores lógicos, em momentos distintos (não ao mesmo tempo).

Geralmente esses níveis lógicos (0 e 1) são usados para representar os níveis de tensão elétrica em um ponto do circuito. É comum, por exemplo, que valores de tensão entre 0 e 0,8V sejam considerados como um nível lógico baixo (0), e que valores entre 2,5 a 5V sejam considerados como nível lógico alto (1), em lógica TTL. Os valores entre 0,8 e 2,5V são considerados como indefinidos e não-válidos.

Circuito Lógico e Álgebra de Boole

Todo circuito lógico pode ser analisado por meio de Álgebra Booleana

Representaremos em nossos tutoriais as variáveis lógicas por meio de letras. Vamos usar a letra S para representar a saída de um circuito digital, e as letras a partir de A para representar as entradas desse circuito, como temos feito em nossos tutoriais sobre as diversas portas lógicas existentes.

A álgebra de boole se vale de três operações básicas: as operações NOT, OR e AND. Por conta disso, é considerada mais simples de trabalhar do que com a álgebra convencional, que faz uso de raízes, decimais, números negativos, etc.

Chamaremos essas operações básicas de Operações Lógicas, e podemos construir circuitos eletrônicos que apresentem em sua saída o resultado de uma operação lógica. Chamamos esses circuitos de Portas Lógicas, estudadas em nossos tutoriais anteriores.

Na próxima parte de nosso curso de Eletrônica Digital vamos tratar dos Circuitos Lógicos e sua Descrição Algébrica.

Curso de Eletrônica Digital – Resumo de Portas Lógicas

Resumo de Portas Lógicas

Nos artigos anteriores apresentamos diversas portas lógicas e suas características principais. A partir dos próximos artigos nós vamos começar a explorar circuitos digitais mais complexos formados por portas lógicas e outros componentes, como somadores, comparadores, flip-flops e muitos outros. Como as portas lógicas são tão importantes no mundo da eletrônica digital, você deve ter um conhecimento sólido a respeito delas e sua operação.

Abaixo, temos um sumário com informações sobre as portas lógicas que estudamos anteriormente. É muito importante memorizar seus símbolos, equações booleanas e tabelas-verdade.

Porta Lógica Equação Tabela-Verdade Símbolos

NOT

Expressão Lógica Porta Lógica NOT Tabela-verdade operação lógica NOT Porta Lógica NOT inversoraPorta Lógica NOT - diagrama IEC

OR

Expressão Lógica Porta OR Tabela-verdade da porta OR de duas entradas Porta Lógica OR - SímboloPorta Lógica OR - Padrão IEC

AND

Expressão Lógica Porta AND Tabela-verdade porta lógica AND de duas entradas Porta Lógica AND - SímboloPorta lógica AND - padrão IEC

NOR

Expressão lógica da porta NOR Tabela-verdade para porta lógica NOR de duas entradas Porta Lógica NORPorta Lógica NOR - IEC

NAND

Expressão lógica de uma porta NAND Tabela-verdade de uma porta lógica NAND Porta Lógica NAND - símbolo comumPorta Lógica NAND - símbolo IEC

XOR

Expressão Lógica de uma porta XOR - Ou Exclusivo Tabela-Verdade de uma Porta Lógica XOR Porta Lógica XORPorta Lógica XOR - IEC

XNOR

Porta XNOR - Expressão booleana Tabela-verdade porta lógica XNOR - Ou não -exclusivo Porta Lógica XNOR - DiagramaPorta lógica XNOR - IEC

Na tabela a seguir temos também uma listagem dos principais circuitos integrados que implementam as portas lógicas estudadas, de forma a facilitar a pesquisa caso seja necessário escolher um deles para uso em seus projetos:

Porta Lógica Nº de entradas por porta Nº de portas por chip TTL Básico 74xx CMOS família 4000
NOT 1 6 7404 4069
AND 2 4 7408 4081
3 3 7411 4073
4 2 7421 4082
OR 2 4 7432 4071
3 3 4075
4 2 4072
NAND 2 4 7400 4011
3 3 7410 4013
4 2 7420 4012
8 1 7430 4068
12 1 74134
13 1 74133
NOR 2 4 7402 4001
3 3 7427 4025
4 2 7425 4002
5 2 74260
8 1 4078
 XOR  2  4  7486  4070
XNOR 2 4 74266 4077

Curso de Eletrônica Digital – Sistemas Analógicos x Sistemas Digitais

Sistemas Analógicos x Sistemas Digitais

Os sistemas digitais operam usando valores discretos para representar  números, letras e símbolos. Esses valores discretos simbolizam os estados ON (ligado) e OFF (desligado), os quais podem ser representados por zeros e uns (0 e 1).

Já os sistemas analógicos permitem medir sinais físicos de magnitudes variáveis, incluindo sinais elétricos. Um sistema analógico pode ser empregado em eletrônica para, por exemplo, monitorar e controlar sinais correspondentes à temperatura, pressão, posição, velocidade, etc., que são sinais cujo valor varia continuamente e podem apresentar uma grande gama de valores mensuráveis.

Podemos representar quantidades analógicas usando um sistema digital, por meio do emprego de técnicas de conversão específicas.

Representação Analógica

O valor de uma medida qualquer pode assumir qualquer valor possível dentro de um intervalo considerado. Por exemplo, a temperatura de um ambiente pode assumir inúmeros (possivelmente infinitos) valores, como por exemplo 29º C, ou ainda 29,5º C, ou até mesmo 29,534º C, dependendo da precisão considerada.

Dizemos que valores analógicos podem variar em um determinado intervalo de valores contínuo.

Outro exemplo: A tensão em uma pilha comum AA pode se encontrar em qualquer ponto entre 0V e 1,5V, como por exemplo 50 mV (0,o5V), ou ainda 1,2577V.

Forma de Onda Analógica

Representação de um Sinal Analógico

Sistema Analógico

Assim, em um sistema analógico, os dispositivos trabalham com valores representados de forma analógica, ou seja, valores que podem variar em um intervalo contínuo de valores (possivelmente infinito).

Como exemplo de sistema analógico podemos citar um amplificador de guitarra, cuja potência de saída pode variar de 0 até o máximo suportado, digamos, 30W.

Representação Digital

Neste caso, as quantidades são representadas por valores discretos. e não contínuos, que chamamos de dígitos. Por exemplo, podemos estabelecer que a representação de uma quantidade qualquer será feita somente por meio de valores 0 e 1, ou seja, usando o sistema binário de numeração. Ou ainda, que a quantidade a ser representada somente usará números inteiros para sua representação.

Podemos diferenciar a representação de valores analógicos e digitais da seguinte forma:

  • Valores analógicos: valores contínuos
  • Valores digitais: valores discretos

Forma de Onda Digital

Representação de um sinal digital. Note que só há dois valores discretos válidos: 0 e 1

Sistema Digital

Trata-se do sistema que consiste na combinação de dispositivos eletrônicos, mecânicos, magnéticos ou outros, que são projetados para operar com valores digitais, ou seja, quantidades que somente assumem valores discretos.

Como exemplos de sistemas digitais podemos citar os computadores, calculadoras e sistemas de áudio digital, como o CD (compact disc).

Sistema Analógico x Sistema Digital

Exemplo de representação de dados em um sistema analógico e em um sistema digital: Relógios de pulso.

Representando valores Analógicos de forma Digital

A maior parte dos valores mensuráveis no mundo físico é analógica. Um sinal analógico, como foi notado, é uma quantidade cujo valor varia continuamente, como por exemplo a temperatura medida com um termômetro comum, de mercúrio. Conforme a temperatura aumenta o diminui, a expansão e contração do mercúrio ocorre de forma contínua, sem saltos de valor, relativa à uma escala de temperatura medida em graus. Em dado momento a temperatura pode ser de 32ºC, e em outro momento pode ser de 32,70ºC, por exemplo, ou então qualquer valor mensurável entre esses dois valores – dependendo apenas da precisão do termômetro empregado.

Para que um equipamento eletrônico, como um computador por exemplo, analise, interprete e processe esse tipo de informação, nós a representamos de forma digital, pois é muito mais fácil para esse equipamento operar dessa forma, com as quantidades em formato digital.

Assim, podemos representar a temperatura medida pelo termômetro de forma digital, usando apenas os e 1s, usando um circuito eletrônico simples que permita a manipulação desse valor e seu armazenamento se for desejado. Em vez de lidarmos com um intervalo infinito de valores analógicos, podemos representar os valores usando apenas valores “ligado” e “desligado” (geralmente, +5 V e 0V, respectivamente).

Exemplo de representação digital de valores analógicos

Um dos exemplos mais comuns de representação digital de quantidades analógicas é a gravação de música em CDs. Os Compact Discs permitem o armazenamento digital de áudio de forma relativamente simples e com alta qualidade de som. A música produzida por instrumentos musicais e pela voz humana é analógica, e para que possa ser armazenada em um CD ou DVD deve primeiramente ser convertida em formato digital, o qual é reconvertido em analógico quando reproduzimos a música – pois nossa audição também responde a sinais analógicos.

Exemplo de representação digital de valores analógicos

Um dos exemplos mais comuns de representação digital de quantidades analógicas é a gravação de música em CDs. Os Compact Discs permitem o armazenamento digital de áudio de forma relativamente simples e com alta qualidade de som. A música produzida por instrumentos musicais e pela voz humana é analógica, e para que possa ser armazenada em um CD ou DVD deve primeiramente ser convertida em formato digital, o qual é reconvertido em analógico quando reproduzimos a música – pois nossa audição também responde a sinais analógicos.

Vantagens e Desvantagens do uso de Sistemas Digitais

Existem diversas vantagens no uso de um sistema digital em vez de u sistema analógico para o projeto e construção de dispositivos, como por exemplo:

  • Facilidade para o armazenamento de informações
  • Sistemas geralmente podem ser programados
  • Maior facilidade de projeto
  • São menos afetados por ruídos (interferências) do que os sistemas analógicos
  • Nível de integração em circuitos integrados (CIs) é imenso

A principal desvantagem é que o mundo real é praticamente todo analógico, sendo necessário efetuar conversões entre os sistemas com frequência. Por conta dessa desvantagem, para que possamos aplicar técnicas digitais ao lidar com valores de entrada e saída analógicos, nós devemos:

  1. Converter entradas analógicas para o formato digital
  2. Processar os dados digitalizados (e armazená-los se necessário)
  3. Converter as saídas digitais para o formato analógico

Exemplo de Conversão de Sistemas Analógicos para Sistemas Digitais

Exemplo clássico desse processo: Gravação e Reprodução de Áudio de CDs. Basicamente, o processo é o seguinte:

  1. Os instrumentos musicais (analógicos) produzem sons durante o processo de gravação, e esse sons são captados por microfones ou outros equipamentos de entrada.
  2. O sinal analógico é convertido em sinal digital por meio de um processo de conversão A/D (analógico/digital), usando circuitos eletrônicos apropriados
  3. Os dados digitalizados e processados são armazenados no CD (mixagem, prensagem, etc)
  4. Para reproduzir o CD, o tocador de CDs (CD player) lê as informações digitais gravadas na superfície do CD e, após processá-las, as converte em um sinal analógico (conversão D/A)
  5. O sinal analógico é então amplificado e enviado para reprodução nas caixas de som (alto-falantes).

Como o sinal analógico gerado pelos instrumentos digitais é representado de forma digital? Para representar os sons musicais, nesse caso, são tomadas várias amostras do sinal analógico para serem convertidas em sequências de 0s e 1s – bits – como mostrado na figura a seguir:

Amostragem Analógico-Digital - Eletrônica

 

A figura mostra que, ao longo do tempo, são tomadas amostras dos valores analógicos em pontos específicos e essas amostras são representadas por valores binários específicos, dependendo da posição na onda analógica de onde foram retiradas. Para isso, o sinal analógico é enviado a um circuito denominado Conversor Analógico-Digital (Analog-Digital Conversor – ADC) que interpreta os vários níveis do sinal analógico e atribui a cada um deles uma string (sequência) determinada de bits.

Para cada valor distinto de tensão, uma sequência específica de bits é gerada, e essa atribuição de valores, denominada amostragem, ocorre inúmeras vezes por segundo. Quanto maior a quantidade de amostras retiradas por unidade de tempo, maior será a resolução do sinal digital obtida, e mais próximo do som analógico original será o sinal digital resultante.

Como mostrado na figura anterior, os valores digitais gerados são representados por strings de bits, que são dígitos binários – números representados no sistema binário de

Instalação do software Arduino IDE em ambiente Windows

Arduino IDE

Este artigo explica os procedimentos para a Instalação do Software Arduino IDE em ambiente Windows.

Para baixar o software Arduino IDE acesse a página http://arduino.cc/en/Main/Software, role a página até a seção Arduino 1.0.6 e escolha a versão de seu sistema operacional. A princípio vou instalar a versão para Windows, clicando no linkWindows Installer.

Após baixar o software, conecte o Arduino (vamos tratar da versão Uno aqui, e os passos servem também para as versões Mega, DUemilanove e Nano) ao computador usando o cabo USB A – B. Verifique se o LED

Power (PWR) acende no Arduino.

 

Após conectar a placa do Arduino ao computador, vamos esperar o Windows reconhecê-la e iniciar o processo de instalação dos drivers.Esse processo falhará, mas não se preocupe – é o processo correto.

Arduino-Driver-Não-Instalado

Agora execute o instalador baixado e siga os passos do assistente de instalação até o final.

Após o término da instalação,vamos testar o Arduíno.

Testando o Arduino:

Abra o IDE a partir do menu Iniciar:

Arduino-IDE

Primeiramente vamos selecionar nossa placa. Clique no menu Tools, submenu Board, e então selecione sua placa na lista suspensa. Em nosso caso, será o Arduino Uno:

Arduino - Selecionar Placa

 

Clique em File -> Examples -> 01.Basics -> Blink. Será aberta uma nova janela com o código do programa. Dê uma olhada no código e vamos alterá-lo, pois na verdade esse programa já está carregado, por padrão, na placa do Arduíno – por isso há um LED amarelo piscando nela!

Altere o código da seção loop() para ficar assim:

void loop() {

 digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)

 delay(2000);             // wait for a second

 digitalWrite(13, LOW);  // turn the LED off by making the voltage LOW

 delay(500);           // wait for a second

}

Alteramos o tempo no qual o LED fica aceso e apagado, respectivamente para 2 segundos e meio segundo.

Após alterar o código, vamos selecionar a porta de comunicação correta para que possamos enviar o programa para o Arduino. Clique no menu Tools, submenu Serial Port, e então selecione a porta COM (emulada) onde o arduino está conectado. Provavelmente aparecerá uma única porta. No meu caso, é a COM3:

Arduino - Porta Serial

Após selecionar a porta correta, clique no botão Upload para compilar o programa e enviá-lo para a placa:

Arduino-IDE-Barra-Ferramentas

Feito! Agora olhe na placa e verifique que o LED amarelo pisca a intervalos de 2 segundos aceso e 0.5 segundo apagado.

 

Arduino-LED-Piscando

 

Arduíno – Pinagem e Anatomia de um sketch (projeto)

Arduíno – Pinagem e Anatomia de um sketch

Um projeto do Arduíno é chamado desketch, e consiste tipicamente em duas partes (rotinas): a rotina de setup, que inicializa o sketch, e a rotina de loop, que normalmente contém o código principal do programa (é como a função main() da linguagem C).

Vamos ver como funcionam essas duas rotinas.

Rotina de setup

Antes que possamos trabalhar com o Arduíno, precisamos configurar alguns itens. Essa configuração é realizada dentro de uma rotina chamada setup(), a qual é chamada sempre que o sketch é inicializado. Geralmente inicializamos os pinos de entrada e saída digitais, e podemos também definir a taxa de transmissão serial, entre outras coisas. É comum declaramos as variáveis usadas no programa antes da definição da função setup().

Veja um exemplo da função setup:

void setup() {
 pinMode(13, OUTPUT);
 Serial.begin(9600);
}

Neste código o pino 13 é configurado como uma saída (irá escrever um nível lógico neste pino) e a comunicação serial do dispositivo é configurada com a taxa de transmissão de 9600 bauds (bits por segundo). A rotina de setup sempre é requerida nos sketches, mesmo que não haja nada a inicializar – neste caso, apenas coloque a função sem código nenhum dentro, como é mostrado abaixo:

void setup() {
 // Rotina sem nada a declarar
}

O texto que é inserido após os caracteres // é um comentário. Devemos sempre comentar nosso código, pois ele permite documentá-lo e ajuda a quem vai trabalhar com esse código posteriormente a entendê-lo com mais facilidade – inclusive nós mesmos. Não é necessário escrever uma tese como comentário – uma pequena descrição já é bastante útil.

Podemos comentar o código de duas formas:

// Comentário de uma linha

/* Comentário que

ocupa múltiplas linhas*/

Rotina de loop

A rotina de loop é onde o programa é efetivamente executado. Trata-se exatamente do que o nome sugere – um loop infinito. Os códigos contidos nessa rotina são executados eternamente – ou até que o Arduíno seja interrompido.

É na rotina de loop que escreveremos nosso programa efetivamente. Veja um exemplo de uma rotina de loop:

void loop() {
 digitalWrite(13, HIGH);
 delay(1000);
 digitalWrite(13, LOW);
 delay(1000);
}

Nesta rotina, o código é executado ininterruptamente, e um LED conectado ao pino configurado (13) acende e apaga a intervalos de um segundo (1000 milissegundos), até que o Arduíno seja desligado.

Pinagem do Arduíno

Para que possamos criar nossos sketches tirando o máximo proveito do Arduíno Uno é necessário que conheçamos as funções de seus pinos. A figura a seguir mostra a função de cada um dos pinos do Arduíno, e na sequência temos uma breve descrição de cada um:

Pinagem do Arduíno

Pinagem do Arduíno

 

Pino

Função

AREF – Analog Reference Tensão de referência para entradas analógicas.
Digital Ground Terra digital
Digital I/O Pins (2-13) Pinos de entrada e saída digitais, que operam em 5V e podem receber ou fornecer um máximo de 40mA de corrente. Os pinos 2 e 3 também podem ser usados para gerar interrupções.
Serial OUT (TX) e Serial IN (RX) Usados para transmitir e receber dados seriais TTL.
Analog In (0-5) Entradas analógicas, que fornecem uma resolução de 10 bits (1024 valores distintos); medem por padrão valores de 0 a 5V.
PWM Os pinos 3,5,6,9,10 e 11 podem ser usados como saída PWM de 8 bits.
SPI Os pinos 10.11.12 e 13 suportam comunicação SPI com o uso da biblioteca apropriada.
Reset Reseta o microcontrolador quando em nível baixo.
Voltage In Podemos fornecer tensão elétrica através desse pino ou acessá-la caso usemos uma fonte de alimentação externa.
5 Volt Power Pin Saída regulada de 5V
3.3 Volt Power Pin Fornece tensão de 3.3V a partir de um regulador on-board, com 50mA máx.
 
 

Arduíno – Piscando LEDs em sequência – Sketch 01

Arduíno – Piscando LEDs em sequência

Neste artigo vamos continuar a explorar o Arduíno criando um novo projeto e utilizando componentes eletrônicos que não usamos ainda.
Nosso sketch de hoje é um projeto bem simples, no qual teremos quatro LEDs que acenderão e apagarão de forma sequencial. Neste projeto vamos precisar de alguns componentes eletrônicos, conforme mostra a listagem a seguir:

  • Uma placa de testes (breadboard) onde os componentes serão conectados.
  • Quatro LEDs, que podem ser de mesma cor ou de cores variadas (vermelho, verde, amarelo ou laranja) – a seu gosto.
  • Quatro resistores de 150Ω (usarei resistores de 1KΩ, pois são os que eu tinha disponíveis na hora de executar o projeto; os LEDs brilharão um pouco menos mas ainda assim acenderão).
  • Fios diversos para conexão (jumpers)
  • Arduíno UNO

O diagrama do circuito que iremos montar pode ser visto na figura a seguir, criada com o software livre Fritzing:

Esquema de ligação dos componentes

Esquema de ligação dos componentes

 

Você pode ver pelo diagrama que cada LED é conectado a um dos pinos digitais do Arduíno, os quais serão configurados como saída via código, e há um resistor limitador de corrente conectado entre cada LED e seu respectivo pino. Esse resistor visa a proteger os LEDs contra excesso de corrente que pode danificá-los (e eventualmente ao Arduíno também). Veja no quadro abaixo como calcular o valor da resistência para esses resistores:

Vamos calcular os valores dos resistores com a fórmula: R = (Vop – Vled) / I Onde Vop é a tensão de operação do circuito, que no caso é de 5V; Vled é a tensão direta no LED, a qual pode variar dependendo da cor; usaremos o valor de 2,0 V, que é a tensão para LEDs verdes geralmente (outras cores possuem tensões menores, à exceção dos LEDs azuis); e I é a corrente máxima que um LED suporta, em Ampères. No caso, é de 20 mA, que equivale a 0,02A.R é o valor da resistência a calcular.Então, temos o seguinte cálculo:R = (5 – 2) / 0,02R = 150 Ω
IMPORTANTE: AO CONECTAR OS COMPONENTES ELETRÔNICOS, CERTIFIQUE-SE DE QUE O ARDUÍNO NÃO ESTEJA ENERGIZADO PARA EVITAR QUE A PLACA SEJA DANIFICADA ACIDENTALMENTE.

 

Veja uma ilustração de nosso circuito montado na breadboard:

Arduino-desenho-breadboard
Após montado na breadboard, ele ficará conforme mostra a foto abaixo:

 

arduino-foto-sketch-01

Detalhe da mini breadboard com os quatro LEDs:

arduino-breadboard-sketch-01

 

Vamos ao código-fonte do programa usado para fazer os LEDs piscarem em sequência. Digite-o no Arduíno IDE:

arduino-breadboard-sketch-01

Vamos ao código-fonte do programa usado para fazer os LEDs piscarem em sequência. Digite-o no Arduíno IDE:

 

arduino-uno-codigo-sketch-01

No código apresentado começamos por declarar um array de LEDs. Poderíamos ter declarado uma variável para cada LED, mas é mais fácil criar um array, onde cada posição irá representar um dos pinos no qual cada LED será conectado. Ao criarmos o array já atribuímos um conjunto de dados com os números dos pinos digitais que serão usados. O array terá quatro posições (para 4 LEDs), numeradas de 0 a 3.

Criamos também uma variável contadora chamada contador que será usada na estrutura de controle que define qual LED acenderá ou apagará em sequência.

Usamos também uma variável chamada timer, a qual define o tempo de intervalo no qual cada LED acenderá e apagará, em milissegundos. A função delay(timer) realiza essa tarefa. Para que um LED acenda usaremos a função digitalWrite(), sendo chamada na formadigitalWrite(leds[contador], HIGH) para que o LED acenda, e para que o LED apague, a função executada será digitalWrite(leds[contador], LOW).

O laço for utilizado faz a contagem entre 0 e 3 com o uso da variável contador, para determinar qual LED será ativado e desativado. A posição 0 equivale ao primeiro valor armazenado no array (pino 8), a posição 1 equivale ao pino 9, e assim por diante.

Após digitar o código no IDE, carregue-o no Arduíno, aguarde alguns segundos e verifique se os LEDs piscam sequencialmente. Se piscarem, o trabalho estará concluído. Caso contrário, verifique as conexões na breadboard e também o código utilizado.

 

 

Instalando o software Arduíno IDE no Ubuntu Linux

Como instalar o Arduíno IDE no Ubuntu

Este artigo explica como obter, instalar e testar o software Arduíno IDE no Ubuntu Linux (e outras distribuições baseadas em Debian).

Para baixar o software Arduino IDE acesse a página http://arduino.cc/en/Main/Software, role a página até a seção Arduino 1.0.6 e escolha a versão de seu sistema operacional. Para Linux temos opções para sistemas de 32 e 64 bits, em arquivos compactados com a extensão tgz. Neste artigo baixarei e instalarei a versão de 64 bits numa máquina com Ubuntu Linux. Porém, como o software do Arduino está disponível nos repositórios do Ubuntu, efetuarei a instalação pelo método mais simples – o bom e velho apt-get.

Para começar, conecte o Arduino (vamos tratar da versão Uno aqui, e os passos servem também para as versões Mega, Duemilanove e Nano) ao computador usando o cabo USB A – B. Verifique se o LED Power (PWR) acende no Arduino.

Verifique também se a placa foi reconhecida pelo Ubuntu emitindo o comando lsu

$ lsusb

lsusb

 

 

 

 

Se sua placa foi reconhecida, proceda á instalação do software executando os comandos a seguir:

$ sudo apt-get update

$ sudo apt-get install arduino

Aguarde enquanto o apt baixa os pacotes e os instala em seu sistema.

Após o término da instalação, vamos configurar e testar o Arduíno.

 

Configurando e Testando o Arduíno:

Abra o IDE clicando no Lançador e digitando arduino na caixa de pesquisa. Clique no ícone do pacote:

abrir-lançador

 

 

 

 

Recomendo também arrastar o ícone do Arduino para o lançador, a fim de facilitar a execução do IDE sempre que desejado:

Recomendo também arrastar o ícone do Arduino para o lançador, a fim de facilitar a execução do IDE sempre que desejado:

adicionar-ao-lançador

 

 

 

 

 

 

 

É necessário adicionar seu usuário ao grupo “dialout” para que seja possível enviar código ao Arduíno. Clique em Add na caixa de diálogo que surge para executar essa operação:

permissão

 

 

 

 

 

 

 

Digite sua senha para autenticação e clique em Autenticar:

autenticar

 

 

 

 

 

O IDE será aberto:

teste

 

 

 

 

 

 

 

 

 

 

 

 

Primeiramente vamos selecionar nossa placa. Clique no menu Tools, submenu Board, e então selecione sua placa na lista suspensa. Em nosso caso, será o Arduino Uno:

configurar-placa

 

 

 

 

 

 

 

 

 

 

 

Agora, vamos selecionar a porta de comunicação correta para que possamos enviar os programas para o Arduino. Clique no menu Tools, submenu Serial Port, e então selecione a porta COM (emulada) onde o arduino está conectado. Provavelmente aparecerá uma única porta. Caso não seja possível selecionar uma porta (se a opção Serial Port aparecer em cinza), reinicie o sistema, e tente novamente.

Antes de reiniciar o sistema:

configurar-porta-01

 

 

 

 

 

 

 

Após reiniciar o sistema:

configurar-porta-02

 

 

 

 

 

 

 

Veja que apareceu a porta /dev/ttyACM0. Agora nosso Arduíno está configurado corretamente, e podemos passar ao teste carregando um projeto no microcontrolador.

 

Carregando um projeto

Clique em File -> Examples -> 01.Basics -> Blink. Será aberta uma nova janela com o código do programa. Dê uma olhada no código e vamos alterá-lo, pois na verdade esse programa já está carregado, por padrão, na placa do Arduíno – por isso há um LED amarelo piscando nela!

Altere o código da seção loop() para ficar assim:

 

void loop() {

 digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)

 delay(2000);             // wait for a second

 digitalWrite(13, LOW);  // turn the LED off by making the voltage LOW

 delay(500);           // wait for a second

}

Alteramos o tempo no qual o LED fica aceso e apagado, respectivamente para 2 segundos e meio segundo.

 

Após alterar o código, clique no botão Upload para compilar o programa e enviá-lo para a placa:

upload

 

 

Verifique a mensagem de confirmação de envio no rodapé da janela:

rodapé

 

 

 

 

Feito! Agora olhe na placa e verifique que o LED amarelo pisca a intervalos de 2 segundos aceso e 0.5 segundo apagado:

teste

 

 

 

 

 

 

 

 

Software e drivers instalados com sucesso no Ubuntu Linux!!!
Nos próximos artigos, começaremos a aprender a criar projetos para o Arduíno.

Enviando e recebendo dados com Serial Monitor no Arduíno

Enviando e recebendo dados com Serial Monitor

Podemos enviar informações do Arduíno para o PC (ou outros dispositivos) usando o IDE (ou outro programa de terminal serial qualquer), de modo a verificarmos se nosso programa está operando da forma esperada, e assim podermos detectar e eliminar erros de programação, ou efetuarmos qualquer outro tipo de comunicação com a máquina.

E também podemos enviar dados e comandos do PC para o Arduíno, de modo a poder controlar dispositivos eletrônicos a ele conectados.

As placas de Arduíno possuem ao menos uma porta serial (UART / USART), chamada de Serial. Ela realiza comunicação por meio dos pinos digitais 0 (RX) e 1 (TX), assim como via USB com o PC. Veja um detalhe da placa de um Arduino UNO mostrando esses pinos e sua identificação:

serial-01

Se usarmos esses pinos com a função de TX/RX, não poderemos utilizá-los para outras funções.

Podemos usar a ferramenta de  Monitor Serial presente no IDE para comunicação com a placa. Para isso, basta clicar no botão Serial Monitor na barra de ferramentas, e selecionar a taxa de transferência desejada em bauds (a mesma que será inserida no código):

serial-02

 

Vamos trabalhar em nosso projeto com o Arduíno UNO, que possui as características descritas acima. Outras placas podem possuir características diferentes, como o Arduino Mega, que possui três portas seriais adicionais, e o Arduino Due, que possui três portas seriais TTL de 3.3V a mais. Nosso projeto funcionará em qualquer uma das placas.

Vamos ver alguns exemplos de comunicação serial com o Arduino, usando a classe Serial.

A classe Serial

A classe Serial possui diversas funções para comunicação, sendo algumas delas listadas na tabela a seguir:

Vamos trabalhar em nosso projeto com o Arduíno UNO, que possui as características descritas acima. Outras placas podem possuir características diferentes, como o Arduino Mega, que possui três portas seriais adicionais, e o Arduino Due, que possui três portas seriais TTL de 3.3V a mais. Nosso projeto funcionará em qualquer uma das placas.

Vamos ver alguns exemplos de comunicação serial com o Arduino, usando a classe Serial.

A classe Serial

A classe Serial possui diversas funções para comunicação, sendo algumas delas listadas na tabela a seguir:

Função Significado
available() Obtém o número de bytes disponíveis para leitura na porta serial.
begin() Configura a taxa de dados em bauds para transmissão serial de dados
end() Desabilita a comunicação serial, permitindo que os pinos TX e RX (0 e 1) sejam usados para entrada e saída geral de sinais.
print() Imprime dados na porta serial em formato legível por humanos (texto ASCII)
println() Idem a print(), porém adicionando um caractere de retorno de carro (ASCII 13) e um de nova linha (ASCII 10) no final da string.
read() Lê dados a partir da porta serial.
readBytes() Lê caracteres a partir da porta serial em um buffer até que uma determinada quantidade de caracteres tenha sido lida.
write() Escreve dados binários na porta serial

Vamos a um exemplo: exibir números sequenciais no monitor serial:

Exemplo 01: Exibir números sequenciais no Monitor Serial:

Conecte o Arduino na porta USB de seu PC, abra o IDE e digite o seguinte código em um novo projeto:

/* Testando a saída serial do Arduíno
Vamos escrever números na porta serial*/
void setup(){
  Serial.begin(9600); //Enviar e receber dados em 9600 baud
  Serial.println("Gerando valores sequenciais");
}
int numero = 0;
void loop() {
  Serial.print("Valor: ");
  Serial.println(numero);
  delay(500);
  numero++;
}

Após digitar o código no IDE, compile-o e envie-o para execução no Arduíno. Então, abra o Serial Monitor para verificar os dados sendo transmitidos do Arduino para seu PC:

serial-03

 

Exemplo 02: Exibindo valores da 1 a 255 em vários sistemas

Neste segundo exemplo, vamos exibir os números de 1 a 255 no monitor serial nos sistemas decimal, binário e hexadecimal.

Conecte seu arduino à porta USB, abra o IDE no PC e digite o código a seguir:

/* Exibindo valores em diferentes sistemas de numeração */
void setup(){
Serial.begin(9600);  Serial.println(“Exibindo valores em sistemas diversos”);
}
 
int valor = 0;
 
void loop(){
for (valor = 0; valor <= 255; valor++)  {
Serial.print(“DEC: “);
Serial.print(valor);
Serial.print(” HEX: “);
Serial.print(valor, HEX);
Serial.print(” BIN: “);
Serial.println(valor, BIN);
/* Se o valor for 255, não repetir mais a geração de números.
Entrar nesse loop para sempre:
*/
 if(valor == 255) {
    while(true) {
      continue;
    }
 }
}
}

Após digitar o código, compile-o e envie para execução no Arduino. Veja a saída esperada:

serial-04

Enviando dados do PC para o Arduíno via porta serial

Queremos agora efetuar o processo inverso: enviar caracteres do PC para o Arduíno, o que pode ser muito útil para, por exemplo, controlar dispositivos a partir do computador conectado a um Arduíno.

Vamos criar um projeto para demonstrar o uso da função Serial.read():

 

Ex. 03: Controlando um LED a partir do PC

Neste projeto vamos fazer um LED piscar em uma velocidade proporcional a um valor numérico enviado a partir do PC. Crie um novo projeto no IDE e digite o código abaixo:

/* Enviando dados do PC para o ArduínoVamos piscar um LED de forma proporcional ao valor recebido a partir do PC */
const int ledPin = 13; // Pino ao qual o LED será conectado
int piscando = 0; // variável para armazenar taxa de “piscagem”
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT); // Pino 13 será de saída de sinais
}
 
void loop()
{
if (Serial.available()) { // Verificar se há caracteres disponíveis
char caractere = Serial.read(); // Armazena caractere lido
if ( isDigit(caractere) ) {  // Verificar se o caractere ASCII é um dígito entre 0 e 9
  piscando = (caractere – ‘0’); // Convertendo ASCII em valor numérico (0 = 48)
  piscando = piscando * 100; // Escalando taxa de tempo multiplicando por 100ms
}
}
pisca(); // Chamando a função blink(), que será declarada abaixo.
}
/* Declarando a função pisca() que fará o LED piscar na taxa deternminada pelo valor armazenado na variável piscando
*/
void pisca()
{
digitalWrite(ledPin, HIGH);
delay(piscando);
digitalWrite(ledPin, LOW);
delay(piscando);
}

Conecte um LED ao arduíno usando uma protoboard e um resistor de aproximadamente 470 ohms conforme a iliustração abaixo mostra:

 

serial-05

Compile e envie o código digitado ao Arduíno. Logo após, abra o Serial Monitor, digite um número entre 0 e 9 e clique no botão Send para enviar o valor ao Arduíno:

serial-06

 

Observe que o LED piscará numa velocidade diferente para cada número enviado a partir do IDE. Desta forma, atingimos nosso objetivo de enviar dados a partir do PC para a placa do Arduíno, controlando um dispositivo eletrônico conectado a ele.

 

Usando outro programa para comunicação serial com o Arduino

Podemos também acessar a porta serial usando outro programa, como o PuTTY. Para isso, abra o PuTTY (que pode ser baixado gratuitamente em http://www.putty.org/) e faça os ajustes conforme as figuras a seguir:

Em Session, clique em Serial no tipo da conexão, digite o nome da porta serial na caixa Serial line (a minha é COM 3), e a velocidade em bauds em Speed (9600 no meu caso):

Arduino Putty

Em Terminal, clique em Force On nas seções Local echo e Local line editing:

serial-08

 

 

Clique no botão Open para abrir a conexão e observe as mensagens sendo enviadas do Arduíno para o PuTTY ao enviarmos o programa do exemplo 02:

arduino-serial-09

Arduíno – Tocando sons em um alto-falante – Sketch 02

Neste artigo iremos criar um projeto simples mas muito interessante: iremos fazer com que o Arduíno toque sons de frequências diversas em um alto-falante (ou outro transdutor de áudio qualquer).

Para isso usaremos a função tone do Arduíno. Essa função gera um sinal sonoro com uma frequência e duração ajustáveis, sendo que ajustaremos a frequência usando um potenciômetro e a duração via código.

Conectaremos o potenciômetro de tom ao pino de entrada analógica 0 (A0) do Arduíno, e usaremos um outro potenciômetro para controlar o volume do som que será reproduzido no alto-falante. Confira a lista de componentes necessária e o esquema do circuito:

Lista de componentes:

1 Arduíno Uno1 Potenciômetro de 1KΩ

1 Potenciômetro de 10KΩ

1 Alto-falante de 8Ω (ou outro transdutor, como um buzzer)

Esquema do circuito:

circuito_som

Veja um desenho das conexões dos componentes ao Arduíno:

desenho_som

E, finalmente, o código que será utilizado:

const int pino_falante = 9; // Conectar falante ao pino 9
const int pot_freq = 0; // potenciômetro para ajuste de frequência - pino A0
void setup(){// Aqui não vai nada neste sketch}
void loop(){
  int ler_potenc = analogRead(pot_freq); // Ler entrada para ajuste de frequência
  // mapear os valores analógicos lidos para valores significativos:
  int frequencia = map(ler_potenc, 0, 1023, 100, 3000); // 100 Hz a 3 KHz
  int tempo = 300; //duração do tom, em ms
  tone(pino_falante, frequencia, tempo); // envia som ao falante
  delay(300); //pausa de 300ms
}

O Código

Vamos à explicação do código empregado.

Começamos declarando duas constantes, pino_falante, que servirá para ajustar o pino digital 9 para a conexão do alto-falante, e pot_freq, que determina que o pino analógico 0 será o local de conexão do potenciômetro de mudança de tom.

Na função setup() não precisamos ajustar nada neste sketch – mas ela tem de estar lá, mesmo que vazia.

Dentro da função principal do programa (loop) começamos por declarar uma variável de nome ler_potenc, a qual receberá o retorno da chamada da função analogRead, a qual lê o valor de tensão a partir do pino pot_freq (A0). Essa leitura será utilizada para determinar a frequência do tom a ser gerado.

Na sequência declaramos uma variável chamada frequencia, que receberá o retorno da função map. A função map é usada para mapear um par de valores (no caso, o intervalo de 0 a 1023) para outro par de valores mais significativos para o programa em questão (no caso, os valores de 100 a 3000). Lembre-se que a entrada analógica tem uma resolução de 10 bits, o que significa que ela pode discriminar 1024 valores distintos de tensão. Esses valores mapeados representarão as frequências que serão geradas posteriormente, na faixa de 100 a 3000 Hz.

Declaramos então a variável inteira tempo, que receberá um valor para ajustar o tempo de duração do tom executado, em milissegundos.

A função tone será usada para gerar o tom e enviá-lo ao pino digital pino_falante (9), onde está conectado o alto-falante. Essa função recebe três parâmetros: número do pino, frequência do som em Hertz e duração do tom em milissegundos. O terceiro parâmetro é opcional – se omitido, a função tocará o tom até que seja interrompida.

E para finalizar, adicionamos um intervalo entre os sons, de 300 milissegundos, com o uso da função delay. Você pode mudar esse valor à vontade.
É isso aí! Até o próximo projeto!

 

Arduino – Controlando LEDs com um botão (pushbutton)

Controlando LEDs com um botão (pushbutton) no Arduino

Neste projeto vamos efetuar o controle de três LEDs por meio de um botão de pressão (pushbutton), de modo que quando o botão for pressionado, o estado dos LEDs mudará – se estiverem acendendo em sequência, irão parar, e se estiverem apagados, iniciarão a sequência acendendo um por um. Para que isso seja possível, vamos lançar mão do recurso de Interrupções presente no Arduino.

Para isto vamos precisar dos seguintes componentes:

  • 1 Chave Pushbutton
  • 3 LEDs, cores a sua escolha
  • 3 Resistores de 220 Ω
  • 1 Resistor de 10 KΩ
  • 1 Arduino Uno ou compatível

Na figura a seguir temos o diagrama esquemático para as ligações dos componentes utilizados no circuito:

Arduino - Controlando LEDs com um pushbutton

 

Fig. 01 – Esquema de um Arduíno controlando três LEDs por meio de um botão

Os três resistores de 220 Ω são utilizados para limitar a corrente nos LEDs, impedindo que sejam danificados durante o uso. Já o resistor de 10 KΩ é utilizado como resistor de pull-down, para manter o pino D2 do Arduino em nível baixo de tensão, evitando assim ruídos que possam causar o disparo do circuito inesperadamente.

Na figura a seguir vemos o protótipo do circuito montado em uma breadboard:

Arduino - Controlando LEDs com pushbutton

Fig. 02 – Controlando LEDs com um botão.

E, no quadro abaixo, o código do sketch que foi utilizado para realizar o projeto. Logo na sequência vamos explicar seu funcionamento, incluindo algumas noções sobre as interrupções citadas no início do artigo.

volatile int estado = LOW;
int LEDs[] = {8, 9, 10};
int contador = 0;
int timer = 100;
int pausa = 500;
 
void setup() {
for (contador=0;contador<3;contador++){
pinMode(LEDs[contador], OUTPUT);
}
attachInterrupt(0, ligaDesliga, RISING);
}
 
void loop() {
if (estado) {
for (contador=0;contador<3;contador++) {
digitalWrite(LEDs[contador], HIGH);
delay(timer);
}
delay(pausa);
for (contador=0;contador<3;contador++) {
digitalWrite(LEDs[contador], LOW);
delay(timer);
}
delay(pausa);
}
}
 
void ligaDesliga() {
static unsigned long tempoAnterior = 0;
unsigned long novoTempo = millis();
if (novoTempo – tempoAnterior < 40) {
}
else {
estado = !estado;
tempoAnterior = novoTempo;
}
}

Funcionamento do sketch

Vamos analisar a operação do código usado no nosso projeto. Primeiramente, temos a declaração de algumas variáveis, logo no início do código:

volatile int estado = LOW;
int LEDs[] = {8, 9, 10};
int contador = 0;
int timer = 100;
int pausa = 500;

Todas as varáveis são do tipo int, número inteiro. A variável estado é utilizada para armazenar o estado dos LEDs: quando em nível alto (HIGH), os LEDs estarão piscando, e quando em nível baixo (LOW), estarão apagados. Por padrão, o programa inicia com os LEDs apagados, e a variável é declarada como volatile, palavra-chave usada para definir variáveis que podem ser alteradas fora da seção do sketch onde são declaradas.

A variável LEDs é, na verdade, um array (vetor) de três posições, que conterá os números dos pinos onde os três LEDs estarão conectados no Arduíno. Já a variável count é usada dentro de laços for para, primeiramente, configurar os pinos onde os LEDs estão conectados como pinos de saída, e posteriormente, para definir a sequência na qual os LEDs serão acesos e apagados.

A variável timer permite configurar o intervalo de tempo entre o acendimento de cada LED, sendo inicializada com o valor de 100 ms (0,1 segundo). E a variável pausa define um período de pausa entre o acendimento e o apagamento dos LEDs, tendo o valor padrão de 500 ms (meio segundo). Você pode experimentar com outros valores de temporização se desejar.

Função setup()

Na função de setup do Arduíno temos um laço for que é utilizado para configurar o modo de funcionamento dos pinos do Arduíno onde os LEDs estão conectados, por meio da função pinMode(), e também a configuração do pino de interrupção (pino 2, interrupção 0), que é configurado para disparar a função ligaDesliga, no modo RISING (quando o nível passa de baixo para alto).

Função loop()

No corpo principal do programa é verificado primeiramente o estado dos LEDs; se o estado for Verdadeiro (TRUE), então os LEDs serão acesos, por meio do uso da função digitalWrite, que envia o nível lógico HIGH para os pinos de saída onde os LEDs estão conectados, e se o estado for Falso (FALSE), então os LEDs serão apagados (nível lógico baixo com a função digitalWrite).

Função ligaDesliga()

Essa é uma função definida pelo programador. Ela possui grande importância no sketch, pois é invocada sempre que o botão é pressionado, permitindo alterar o estado dos LEDs (ligar / desligar a sequência de acendimento), e é declarada com tipo de retorno void, ou seja, não retorna valores ao programa, apenas realiza uma operação.

O pino digital 2 (D2) permite usar uma das duas interrupções que o Arduino Uno possui (o Arduino Mega possui quatro interrupções), a interrupção 0. A outra interrupção (1) está ligada ao pino 3. Essa interrupção foi configurada para ser acionada quando o pino alterar seu estado lógico de LOW para HIGH, ou seja, no modo RISING. O pino é mantido no estado LOW pelo uso de um resistor de pull-down, o resistor R4, de 10 KΩ. Usamos esse resistor para que não haja flutuações no nível lógico do pino, que poderiam levar ao seu disparo acidental, provocando funcionamento errático do circuito. Ao pressionarmos o botão, o pino é levado do nível baixo para o nível alto, pois o botão está ligado ao pino +5V da placa, e a interrupção é acionada, chamando a função ligaDesliga que definimos no código.

Quando a função ligaDesliga é acionada, são declaradas duas novas variáveis:tempoAnterior e novoTempo. Usamos essas variáveis para eliminar um problema bastante comum que ocorre ao usarmos chaves mecânicas para acionamento de circuitos eletrônicos: o Bounce.

Bounce Quando uma chave interruptora é acionada e se move de uma posição aberta (desligada) para fechada (ligada), é muito comum que o contato elétrico não seja perfeito e acabe produzindo sinais espúrios, que chamamos de bounces, o que pode levar à uma variação do sinal de nível baixo para nível alto diversas vezes até que o contado do botão se estabilize. Isso pode fazer, no caso de nosso circuito, com que o nível lógico do pino conectado ao pushbutton se altere de LOW para HIGH diversas vezes, ativando a interrupção a ele conectada de forma análoga.Geralmente, leva entre 10 e 15 ms para que uma chave se estabilize e o bounce desapareça, e por isso no código vamos usar uma rotina que espera um tempo maior que esse quando a chave é acionada, para eliminar os efeitos do bounce, antes de efetivamente realizar a função programada.

A variável tempoAnterior, do tipo long, é declarada como sendo sem sinal e estática. Uma variável estática mantém seu valor entre chamadas a uma função, e precisamos que essa variável mantenha seu valor a cada chamada para que seja possível calcular o período de pressionamento do botão e, assim, eliminar o bounce.

A variável novoTempo recebe o retorno da chamada da função interna millis(), a qual retorna o número de milissegundos decorridos desde o início do programa, sendo essa atribuição feita cada vez que a rotina de interrupção dor acionada. O programa efetua então uma comparação entre os valores das variáveis novoTempo e tempoAnterior, verificando se existe uma diferença menor do que 40 milissegundos; se a diferença for menor, nada é executado, pois assumimos que o botão não foi pressionado e sim sofreu apenas bounce; já se a diferença for maior que 40 milissegundos, assumimos que o botão foi realmente pressionado e então o estado dos LEDs é invertido (verdadeiro para falso ou falso para verdadeiro), e o valor de novoTempo é atribuído a tempoAnterior, atualizando assim a temporização.

Para testar o programa, após compilá-lo e gravá-lo no Arduíno, basta pressionar o pushbutton e verificar como os LEDs começam a piscar, e são desligados ligados a cada vez que o botão é pressionado novamente.

 

Conheça o Industruino, Módulo Controlador Industrial compatível com Arduino

O que é o Industruino

O Industruino é uma placa compatível com o Arduino Leonardo, acomodada em um case, e que inclui também uma área para prototipagem, um painel LCD onboard e um painel de controle de membrana. Seu objetivo primário é o uso em projetos de automação, equipamentos para registro de dados coletados, ou ainda para instalações de arte interativa, sendo uma alternativa aos tradicionais CLPs (Controladores Lógicos Programáveis) em muitas aplicações.

O Industruino, que é desenvolvido na Bélgica pela ES-Gear, foi criado por dois designers de produtos que resolveram investir no projeto após construírem um sistema de controle de acesso RFID baseado em Arduino, e verificarem que a solução construída em placas de prototipagem “não parecia a solução mais elegante para uma instalação permanente e acessível”.

No momento, a empresa comercializa três produtos, sendo dois Industruinos (PROTO e IND.I/O), e um módulo de comunicação Ethernet, que adiciona conectividade de rede ao Industruino. Os equipamentos possuem as seguintes especificações:

Industruino PROTO

Controlador Industrial Industruino PROTO

  • Níveis de I/O: 5V
  • Área de prototipagem: inclusa
  • Isolação Galvânica: Sem
  • Regulador de Tensão de entrada: 8-28V
  • Compatível com Módulo Ethernet: Sim
  • LCD 128×64 pixels com backlight
  • Porta de Expansão IDC 14p
  • Microcontrolador Atmega 32u4 ou AT90USB1286
  • Pinos Digitais de I/O: 17
  • Canais PWM: 6 (32u4) / 4 (1286)
  • Memória Flash: 32 KB (32u4) / 128KB (1286)
  • SRAM 2,5 KB
  • EEPROM 1 KB
  • Clock de 16 MHz
  • Montagem em trilho DIN

Vendido na forma de kit para montagem.

Industruino IND.I/O

Controlador Industrial Industruino IND.I/O

Industruino IND.I/O

  • Níveis de I/O: 12/24V
  • Área de prototipagem: não inclusa
  • Isolação Galvânica: Com
  • Regulador de Tensão de entrada: 6,5-32V
  • Compatível com Módulo Ethernet: Sim
  • Transceiver RS485 half-duplex
  • Montagem em trilho DIN
  • LCD 128×64 pixels com backlight
  • Microcontrolador Atmega 32u4 ou AT90USB1286
  • Canais Digitais de I/O: 8
  • Canais de Entrada analógicos: 4
  • Canais de Saída analógicos: 2
  • Memória Flash: 32 KB (32u4) / 128KB (1286)
  • SRAM 2/8 KB
  • EEPROM 4 KB
  • Clock de 16 MHz
  • Tensão de Operação do MCU: 5V

Módulo Ethernet

Módulo Ethernet para Industruino

Módulo Ethernet para Industruino

  • Controladora Wiznet W5500
  • Nº Máx. Sockets: 8 TCP/UDP
  • Tx. Transmissão: 10/100
  • Buffer RAM: 32 KB
  • Memória FRAM 8 KB
  • Slot para cartão Micro-SD
  • Montagem em trilho DIN

Os produtos podem ser adquiridos no próprio website, sendo enviados a partir de Hong Kong via HK Speedpost e Fedex para países fora da Europa, e seus valores de venda atuais são:

  • Kit Industruino Proto: 52 Euros
  • Kit Industruino IND.I/O: 110 Euros
  • Módulo de Expansão Ethernet: 29 Euros

Arduino – Conhecendo as funções analogRead, analogWrite e analogReference

analogRead, analogWrite e analogReference

Nesta lição vamos conhecer mais três funções muito importantes usadas no desenvolvimento de software para o Arduino: analogRead(), analogWrite() e analogReference(). Essas funções permitem usar os pinos de entrada e saída analógicas da placa.

Função analogRead()

A função analogRead() lê o valor de um pino analógico especificado. O Arduino Uno possui um conversor analógico-digital de 10 bits e seis canais (O Arduino Mega possui 16 canais e as placas Mini e Nano, 8 canais). 10 bits significa que as tensões de entrada entre 0 e 5 volts aplicadas ao pino serão mapeadas em valores inteiros entre 0 e 1023 (210). Dessa forma, temos uma resolução de leitura de 5 V / 1024 = 4,9 mV por unidade de medida. Essa resolução é devida ao conversor analógico-digital (ADC) utilizado na placa do Arduino. Quanto maior o núemro de bits, maior será a resolução, e mais precisos os valores mensurados nos pinos. Tanto a faixa de tensão de entrada quanto a resolução dos pinos pode ser alterada com a função analogReference(), discutida mais à fernte neste artigo.
Uma entrada analógica demora cerca de 100 μs para ser lida, então a taxa máxima de leitura é de cerca de 10.000 vezes por segundo.

Essa função retorna um número inteiro entre 0 e 1023, por padrão. a figura a seguir mostra a localização dos pinos de entrada analógica em uma placa Arduino Uno:

Entradas Analógicas no Arduino Uno

Entradas Analógicas no Arduino Uno

Na figura a seguir, a localização das entradas analógicas em uma placa Arduino Mega:

Entradas Analógicas no Arduino Mega

Entradas Analógicas no Arduino Nano

Sintaxe da Função:

analogRead(pino);

Parâmetros:

pino: número do pino analógico de entrada que será lido (pinos de A0 a A5 na maioria das placas, sendo de 0 a 15 no Arduino Mega e de 0 a 7 nos Arduinos Nano e Mini).

Exemplo: Vamos efetuar a leitura de um sinal aplicado à entrada analógica A2 do Arduino, por meio de um resistor, sensor ou potenciômetro, armazenando o valor lido na variável valor e mostrando no Serial Monitor os valores lidos.:

int pino = 2;
int valor = 0;
 
void setup()
{
Serial.begin(9600);
}
 
void loop()
{
valor = analogRead(pino);
Serial.println(valor);
}

Função analogWrite()

A função analogWrite() permite escrever um valor analógico (na verdade, um sinal PWM) em um pino. Geralmente usamos essa função para ativar / desativar dispositivos conectados ao Arduino, como LEDs, atuadores, motores, entre outros.
A chamada à função analogWrite() gera um sinal de onda quadrada de uma razão cíclica (duty cicle) especificada, até que uma nova chamada à função seja realizada. A frequência do sinal PWM na maioria dos pinos é de cerca de 490 Hz. No Arduino Uno e placas similares, os pinos 5 e 6 possuem uma frequência de cerca de 980 Hz. No Arduino Leonardo os pinos 3 e 11 também possuem a frequência de 980 Hz.
Essa função opera nos pinos 3, 5, 6, 9, 10 e 11 na maioria das placas de Arduino (as que possuem os chips ATmega168 ou ATmega328). No Arduino Mega, funciona nos pinos 2 a 13 e 44 a 46. Você pode identificar facilmente esses pinos na placa por possuirem o sinal ~ ao lado do número do pino, indicando a funcionalidade de PWM presente.
Uma característica interessante dessa função é a de que não é necessário chamar a função pinMode() para configurar o pino como saída antes de chamar a função analogWrite(), e a função não retorna valor algum.
Tome cuidado para não se confundir: a função analogWrite() não tem nada a haver com os pinos analógicos da placa, nem com a função analogRead()!!!

Sintaxe da Função:

analogWrite(pino, valor);

Parâmetros:

pino: número do pino que receberá o sinal de saída

valor: razão cíclica (duty cicle), um valor entre 0 e 255 (de sempre desligado a sempre ligado)

Exemplo: Vamos iluminar um LED de acordo com um valor de entrada lido a partir de um potenciômetro. Em outas palavras, vamos construir um dimmer extremamente simples. O potenciômetro será ligado ao pino 3, um pino de entrada analógica, e o LED ao pino de saída PWM 10. A variável valor irá armazenar o valor lido a partir do potenciômetro e seu valor será usado para definir o grau de iluminação do LED.

int entradaPotenciometro = 3
int LED = 10
int valor = 0
 
void setup()
{
pinMode(LED, OUTPUT);
}
 
void loop()
{
valor = analogRead(entradaPotenciometro);
analogWrite(LED, valor / 4)
}

Note que ao chamarmos a função analogWrite(), definimos o pino que será escrito (LED, pino 10), e o valor que será escrito é o valor lido do potenciômetro dividido por 4. Fazemos essa divisão pois a entrada recebe valores que vão de 0 a 1023, porém a saída da função somente pode entregar valores entre 0 e 255, ou seja, um quarto da resolução de leitura.

Função analogReference()

A função analogReference() é utilizada para configurar a tensão de referência usada nas entradas analógicas – mais precisamente, o valor superior da faixa de valores de entrada. Quando o Arduino realiza uma leitura analógica, ele efetua ma comparação entre a tensão medida no pino analógico utilizado com um valor de tensão denominado Tensão de Referência Analógica, que por padrão é o valor de tensão de operação normal da placa, 5 volts.

Assim, como vimos anteriormente, ao usar uma tensão de referência de 5V, cada unidade retornada na leitura de valores pela função analogRead() terá o valor de 4,9mV (0,00488V, mais precisamente). porém, algumas vezes precisamos medir valores de tensão em uma faixa distinta, por exemplo, entre 0 e 3V, ou entre 0 e 4,5V. Nesse caso, para que o ADC saiba qual é o valor superior da faixa (o inferior é zero), usamos a função analogReference(). O valor mais baixo de tensão de referencia possível no Arduino é de 1,1V.

Desta forma, se, por exemplo, precisarmos medir valores em uma faixa de tensão entre 0 e 3V, ajustamos o valor de referência para 3V, e a partir daí cada unidade de medida do ADC será interpretada pelo Arduino como sendo 3 V / 1024 = 2,9 mV (0,0292V) por unidade de medida.

Essa função possui cinco opções de configuração, que são as seguintes:

  • DEFAULT: A tensão de referência analógica padrão, que é de 5 volts, em placas Arduino de 5V, ou 3,3 volts, nas placas de 3,3V (por exemplo, Arduino Due).
  • INTERNAL: Referência interna, que equivale a 1,1 volts nos chips ATmega168 e ATmega328, ou 2,56 volts no Atmega8. Não está disponível no Arduino Mega.
  • INTERNAL1V1: Tensão de referência interna de 1,1V, somente para o Arduno Mega.
  • INTERNAL2V56: Tensão de referência interna de 2,56V, também somente para o Arduno Mega.
  • EXTERNAL: Este é um valor de tensão aplicada no pino AREF da placa, no intervalo de 0 a 5 volts apenas, que será usada como referência externa.

Esta função não retorna nenhuma informação ao programa. Abaixo vemos a localização do pino AREF em uma placa Arduino Uno:

Pino AREF no Arduino

Pino AREF no Arduino

Sintaxe da Função:

analogReference(tipo);

Parâmetros:

tipo: é o tipo da referência que será usada, podendo ser DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2v56 ou EXTERNAL

Um ponto importante a se notar quando a função analogReference() for usada é de que você não deve usar valores menores que 0V ou maiores do que 5V com a opção dereferência externa no pino AREF. Além disso, se for usar a opção EXTERNAL não se esqueça de configurar essa opção ANTES de chamar a função no programa, sob pena de danificar o chip microcontrolador de seu Arduino.

Exemplo: Precisamos ligar um sensor ao Arduino que gera sinais de saída entre 0 e 4V. Para que a precisão das leituras seja a melhor possível, vamos alterar a opção de tensão de referência analógica para o intervalo entre 0 e 4V, usando uma fonte de tensão externa:

void setup()
{
analogReference(EXTERNAL);
}
Agora basta aplicar uma tensão de exatos 4V ao pino AREF da placa para usar esse valor de tensão como referência analógica. Tome cuidado para não usar valores de tensão abaixo de 1,1V ou maiores do que 5V, para não danificar sua placa.
 

 

Arduino – Conhecendo as funções Tone e noTone

Tone e noTone

Vamos explorar neste artigo as funções Tone() e noTone(), que permitem gerar tons de frequências pré-estabelecidas e interromper a execução dos tons, respectivamente.

 

A função Tone() gera um sinal de onda quadrada de uma frequência especificada, com 50% de ciclo de trabalho (duty cicle) em um pino da placa. É possível especificar também uam duração para o sinal gerado, o qual sem essa especificação continua a ser executada até que uma chamada à função NoTone() seja realizada.
Geralmente usamos essa função para gerar um tom de áudio (dapi o nome Tone), o qual pode ser reproduzido em um alto-falante ou transdutor piezoelétrico (buzzer).
Somente é possível gerar um tom por vez. Se houver um tom sendo tocado em um pino do Arduino, uma chamada à função Tone() em outro pino não surtirá efeito. Se a chamada à função for realizada no mesmo pino onde há um tom tocando, a frequência do tom é ajustada de acordo. Caso você queira tocar um som em outro pino, quando já houver um tom tocando em um pino diferente, primeiramente você deverá chamar a função NoTone() no pino atual para interromper o som, antes de tocar o próximo.
Ao usar a função Tone() tome cuidado, pois ela pode interferir com as saídas PWM dos pinos 3 e 11, em placas que não sejam o Arduino Mega.

A tabela a seguir as frequências mínima e máxima que podem ser geradas com essa função, em vários modelos de placas Arduino:

Placa Frequência mín., em Hz Frequência máx., em Hz
Uno, Mega, Leonardo 31 65535
Zero 41 275000
Due Não disponível Não disponível

Sintaxe:

tone(pino, frequência)

tone(pino, frequência, duração)

Parâmetros

pino: o pino no qual o tom será gerado

frequência: a frequência do tom em Hz, um número do tipo unsigned int

duração: duração do tom em milissegundos, um valor do tipo unsigned long. Esse parâmetro é opcional.

Função noTone()

A função noTone() interrompe a geração do sinal de onda quadrada (“tom”) disparado pela função Tone(). Se não houver nenhum tom sendo gerado, chamar a função noTone não tem efeito algum.

Sintaxe

noTone(pino)

Parâmetros

pino é o número do pino no qual o tom gerado será interrompido.

Exemplo de uso das funções Tone() e noTone(): Vamos gerar uma nota “Lá” por um segundo, em seguida uma nota “Sol’ por mais um segundo, e pausar por mais um segundo, repetindo todo o processo na sequência.

Para isso precisamos saber as frequências das notas que serão geradas. Vamos usar as frequências a seguir:

  • Lá: 440 Hz
  • Sol: 392 Hz
int buzzer = 9;  // conectar um buzzer ao pino 9
unsigned int la = 440;
unsigned int sol = 392;
unsigned long tempo = 1000;
 
void setup()
{
 
}
 
void loop()
{
tone(buzzer, la);
delay(tempo);
noTone(buzzer);
tone(buzzer, sol,tempo);
delay(tempo);
noTone(buzzer);
delay(tempo);
}
A função delay(buzzer) é usada para que tenhamos a temporização de 1 segundo (1000 ms) entre as notas. A figura a seguir mostra a conexão dos componentes para esse sketch. Note o resistor de 1 KΩ entre o pino 9 da placa e o buzzer – ele é essencial para evitar danos ao seu Arduino:
Protoboard cm buzzer e funções Tone e noTone no Arduino
Basta compilar o código e gravar no Arduino para executar a sequência de notas no buzzer.
 

[youtube https://www.youtube.com/watch?v=rfaCcTMitvs]

Arduino – O que são as Bibliotecas

Bibliotecas no Arduino

Uma biblioteca é um trecho de software que fornece funcionalidade específica a um programa, como por exemplo a capacidade de escrever em um display de LCD ou de controlar a posição de um servomotor. O uso de uma biblioteca simplifica o desenvolvimento de aplicações, pois o código da biblioteca já está pronto, e só precisa ser incorporado ao programa em desenvolvimento para que suas funções possam ser acessadas e utilizadas pelo desenvolvedor. Assim, podemos estender o uso do Arduino incorporando bibliotecas específicas durante o desenvolvimento de um sketch.

Na plataforma Arduino existem três tipos diferentes de bibliotecas de software disponíveis:

  • Core (biblioteca essencial)
  • Padrão
  • Adicionais (de terceiros)

Algumas das bibliotecas necessitam de um hardware especial para serem utilizadas, muitas vezes na forma de Shields. Vamos entender a seguir as aplicações de cada tipo de biblioteca citada na lista anterior.

Biblioteca Core

A biblioteca essencial vem instalada na IDE do Arduino e é imprescindível para o desenvolvimento de programas, desde os mais simples (como piscar um LED) até projetos complexos, como realizar automação de uma residência (em conjunto com outras bibliotecas). Desta forma, a programação do Arduino fica muito simplificada, pois o programador não tem a necessidade de entender como o código da biblioteca funciona internamente – basta saber como usá-la.

Algumas funções comuns fornecidas pela biblioteca core são as funções digitalRead,digitalWrite, Serial.begin e analogRead, entre outras.

Bibliotecas Padrão

As bibliotecas padrão são incluídas na instalação do IDE do Arduino, porém não são incluídas por padrão nos projetos que você cria, pois o Arduino possui recursos de memória limitados, e assim essas bibliotecas somente são incluídas de forma explícita quando você necessita delas. A inclusão de uma biblioteca padrão é feita por meio de uma declaração #include no início do código do seu sketch. Por exemplo, se você quiser incluir em um sketch a biblioteca padrão Stepper, usada para permitir o controle de motores de passo, você deve incluir a seguinte declaração no início de seu código:

#include

Note que o nome da biblioteca deve estar envolvido entre os caracteres < e >, finaliza com a extensão .h e você não deve usar o ponto-e-vírgula no final desta linha. Após a inclusão da biblioteca, você pode usar as funções que ela codifica em seu programa. Para saber quais são essas funções e como utilizá-las, você deve consultar a documentação específica da biblioteca.

As bibliotecas padrão do Arduino são:

  • EEPROM – Usada para ler e gravar dados em uma memória EEPROM no Arduino. No Uno a EEPROM tem o tamanho de 1024 bytes e no Mega, de 4096 bytes.
  • Ethernet – Permite conectar o Arduino à Internet ou à rede local usando um shield Ethernet.
  • Firmata – Esta biblioteca permite a comunicação entre o Arduino e aplicações em um computador via protocolo de comunicação serial
  • GSM – Conectar a uma rede GSM/GPRS usando um shield GSM.
  • LiquidCrystal – Com essa biblioteca podemos controlar displays de cristal líquido (LCD).
  • SD – Biblioteca muito importante, usada para que seja possível esvrever e ler dados em cartões de memória SD/SDHC.
  • Servo – Controlar motores servo
  • SPI – Comunicação com dispositivos usando o barramento SPI (Serial Peripheral Interface)
  • SoftwareSerial – Permite a comunicação serial usando os pinos digitais da placa.
  • Stepper – Controlar motores de passo
  • TFT – Permite desenhar imagens e formas e escrever texto em uma tela TFT
  • WiFi – Permite conexão à rede local e Internet por meio de um shield WiFi.
  • Wire – Biblioteca que permite enviar e receber dados por meio de uma interface  TWI/I2C (interface a dois fios) em uma rede de dispositivos ou sensores.

Existem algumas outras bibliotecas padrão que somente estão disponíveis em alguns modelos específicos de Arduino, como por exemplo a biblioteca AudioZero, que permite reproduzir arquivos de áudio de um cartão SD em uma placa Arduino Zero.

Veremos exemplos do uso de cada uma destas bibliotecas em projetos ao longo de nossas lições de Arduino.

Bibliotecas de Terceiros (adicionais)

Essas bibliotecas são disponibilizadas por desenvolvedores diversos que contribuem voluntariamente com software para a plataforma, e não são distribuídas por padrão com o IDE do Arduino. Para usá-las, você precisa baixá-las e então efetuar sua instalação por meio do IDE. Elas oferecem funções adicionais a bibliotecas existentes ou novas funcionalidades não presentes em nenhuma biblioteca padrão, permitindo estender o uso do Arduino de forma praticamente ilimitada.

Para importar uma nova biblioteca você deve efetuar os seguintes passos (no IDE versão 1.6.6):

  • Abra o IDE do Arduino e clique no menu Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas. Será aberta a janela do Gerenciador de Bibliotecas, que você pode ver abaixo:

Gerenciador de Bibliotecas no Arduino

  • Procure a biblioteca desejada na lista, rolando a tela se necessário. Note que há dezenas de bibliotecas disponíveis para instalação. Como exemplo, vou incluir a biblioteca Adafruit AM2315, que permite usar um sensor de temperatura/umidade com interface I2C da Adafruit Industries. Clique sobre a biblioteca para selecioná-la, selecione a versão no meu drop-down à direita (se houver mais de uma disponível) e então clique no botão Instalar:

Sensor de temperatura AM2315 Adafruit para Arduino

Aguarde enquanto a biblioteca é baixada e instalada. Após o término da instalação, verifique se tudo correu bem clicando no menu Sketch -> Incluir Biblioteca, e role para baixo o submenu, até a seção “Recommended” ou “Contributed“, e você deverá encontrar a biblioteca adicionada lá:

Biblioteca Instalada - Adafruit 2315 Sensor arduino

É isso aí, biblioteca adicionada e prontinha para uso!

Caso a biblioteca que você precisa não esteja presente no Gerenciador de Bibliotecas, você ainda poderá instalá-la baixando-a da Internet e efetuando a importação da biblioteca. Para isso, siga os passos a seguir:

  • Baixar a biblioteca desejada no site do desenvolvedor (algumas estão presentes no próprio site do Arduino)
  • Iniciar o IDE do Arduino
  • Adicionar a biblioteca ao IDE clicando em Sketch -> Incluir Biblioteca -> Adicionar biblioteca .ZIP

Instalar bibliotecas no Arduino

  • Navegue até a pasta onde você baixou a biblioteca e a selecione. Por exemplo, eu baixei a biblioteca NewSoftSerial, que é uma versão melhorada da biblioteca padrão SoftwareSerial:

Biblioteca NewSoftSerial Arduino

Clique em OK para inclui-la no IDE. Aparecerá a mensagem “Biblioteca adicionada às suas bibliotecas. Veja o menu “Incluir Biblioteca” na parte inferior da janela da IDE.

  • Para ver a biblioteca instalada, clique no menu Sketch -> Incluir Biblioteca, e role até a parte final do submenu, na seção “Contributed“. Lá você encontrará a biblioteca adicionada, se tudo correu bem:

Biblioteca NewSoftSerial adicionada no Arduino

Agora é só usar a nova biblioteca em seus projetos, quando necessário.

Você pode desenvolver suas próprias bibliotecas para o Arduino, e também pode instalar as bibliotecas manualmente. Veremos esse processo em outro artigo.

Neste artigo estudamos sucintamente as bibliotecas de software do Arduino. Como citado no texto, muitas das bibliotecas atendem a um determinado hardware específico, como um shield ou um sensor, e na próxima lição iremos conhecer os Shields para Arduino.

Arduino – Conhecendo os Shields

 

Shields

No artigo anterior falamos sobre as Bibliotecas no Arduino, que podem ser utilizadas para expandir a funcionalidade das placas. Agora vamos explorar os Shields, que são uma outra forma de aumentar as funções que um Arduino pode desempenhar – porém, desta vez, usando dispositivos de hardware.

Suponha que você queira controlar seu Arduino remotamente, usando uma conexão WiFi, Bluetooth ou XBee. Como proceder nestes casos, já que as placas do Arduino (e seus clones) não possuem essas funcionalidades? Neste caso, lançamos mão dos Shields – placas de hardware que podem ser plugadas no Arduino, contendo circuitos eletrônicos que permitem desempenhar as funções citadas, e muitas outras, dependendo da placa. É até possível empilhar shields uns sobre os outros, pois muitos deles possuem seus próprios conectores iguais aos do Arduino, de modo que é possível acrescentar mais de uma funcionalidade simultânea à sua placa.

Frequentemente, um shield necessita de bibliotecas de software específicas para funcionar corretamente, e você deve instalá-las no IDE do Arduino, baixando-as do website do fabricante do Shield. Algumas inclusive estão presentes como bibliotecas padrão do Arduino.

Você pode adquirir os shields prontos para usar, ou na forma de kits para montagem, caso no qual você mesmo monta e solda os conectores e outros componentes na placa do shield, o que geralmente barateia seu preço. Ou ainda, se você tiver conhecimentos adequados de eletrônica, pode até mesmo criar seus próprios shields a partir do zero, de modo a acrescentar a funcionalidade que bem entender a seu Arduino.

A seguir apresento uma lista (não completa) com os shields mais comuns usados em projetos envolvendo Arduinos:

  • Shields de Motor: São usados para efetuar o controle de motores DC, de passo ou servomotores, podendo ser utilizados na construção de pequenos robôs ou veículos robotizados, por exemplo. As figuras a seguir mostram alguns exemplos de shields de motor:

Motor Shield ComMotion da Sparkfun para Arduino

Motor Shield ComMotion da Sparkfun para Arduino (Imagem: Sparkfun)

Abaixo um shield de motor Duinopeak, que permite controlar 2 motores de passo e 4 motores DC:

Motor Shield Duinopeak

Motor Shield Duinopeak (Imagem: DX.com)

Vista lateral do shield: note o comprimento dos pinos inferiores, usados para conectar a placa sobre o Arduino:

Motor Shield Duinopeak Vista Lateral

Motor Shield Duinopeak Vista Lateral (Imagem: DX.com)

E veja o Duinopeak com vários motores conectados:

Motor Shield Duinopeak Com motores

Motor Shield Duinopeak com motores conectados. Note que o shield está conectado sobre o Arduino (na verdade, empilhado sobre outro shield ainda) (Imagem: DX.com)

  • Shield Ethernet: Um shield Ethernet permite conectar o Arduino a uma rede local ou à Internet, de modo a responder a comandos remotos ou reportar o status da placa ou de sensores conectados a ela. Esse é um shield extrememente útil e é recomendado que o hobbysta / estudante tenha ao menos um desses para realizar projetos que requeiram acesso remoto. A figura a seguir mostra um shield Ethernet – note a porta Ethernet da lado esquerdo do shield:

Shield Ethernet

Shield Ethernet. Ele possui um soquete microSD integrado, que permite gravar dados se desejado. (Imagem: DX.com)

Esse shield é baseado no chip Ethernet Wiznet W5100, suportado pela biblioteca oficial do Arduino.

  • Shield WiFi: Esse shield permite a comunicação via rede wireless com o Arduino, permitindo operar um robô remotamente, além de permitira também a conexão à rede local e à Internet. Nas figuras a seguir vemos exemplos de shields WiFi para Arduíno
  • :

Shield WiFi da Sparkfun - Módulo CC3000

Shield WiFi da Sparkfun – Módulo CC3000 (Imagem: Sparkfun)

E abaixo um shield WiFi da ElecFreaks:

Shield WiFi da ElecFreaks com chip WizFi210

Shield WiFi da ElecFreaks com chip WizFi210 (Imagem: ElecFreaks)

  • USB Host Shield: Um shield USB permite implementar uma controladora USB, de modo que seja possível conectar o Arduino a outros dispositivos via porta USB, incluindo smartphones com Android, o que adiciona funções de controle via celular, e a outros dispositivos, como pendrives, câmeras digitais e muito mais.

Shield USB Host Keyes para Arduino

Shield USB Host Keyes para Arduino (Imagem: DX.com)

E a seguir, outro exemplo de shield USB, da Duinopeak:

Shield USB Host Duinopeak para Arduino

Shield USB Host Duinopeak para Arduino (Imagem: DX.com)

  • Proto Shield: Um Proto Shield fornece uma área para soldagem de componentes, e alguns elementos já conectados, como LEDs, resistores ou conectores. Podem ser usados para prototipagem, de modo que é possível construir o shield com as funções desejadas adicionando a eletrônica necessária, em vez de usar uma protoboard externa. Veja abaixo um exemplo de proto shield:

Proto Shield da Adafruit

Proto Shield da Adafruit (Imagem: Adafruit)

  • Shield microSD/SD: Com este shield você pode equipar o Arduino com a capacidade de armazenar grandes volumes de dados em cartões SD, o que é muito útil em aplicações que necessitem de registros (log) de dados em dispositivos de armazenamento de massa. Veja um exemplo a seguir:

Shield para cartão SD Maker Studio

Shield para cartão SD Maker Studio (Imagem: DX.com)

  • Shield MP3: Como o próprio nome já demonstra, com esse shield podemos trabalhar cm arquivos de música em formato MP3 no Arduino. A música pode ficar armazenada em um cartão SD e então se reproduzida por meio desse shield em alto-falantes ou caixas de som. Muitos shields também permitem reproduzir outros formatos de áudio, como WMA, Ogg Vorbis e FLAC, além de terem a funcionalidade de captura de som. Abaixo vemos um exemplo de shield MP3 da Adafruit conectado a um par de alto-falantes:

Shield MP3 da Adafruit

Shield MP3 da Adafruit (Imagem: Adafruit)

  • Shield LCD TFT: Com este shield podemos conectar uma tela de LCD TFT (cristal líquido) ao Arduino, de modo a possibilitar a visualização de informações através desse tipo de visor, desde informações textuais até gráficos e imagens. Veja abaixo um shield LCD da ElecFreaks:

Shield LCD para Arduino

Shield LCD para Arduino (Imagem: ElecFreaks)

Usando um Shield

Para utilizar um shield basta conectá-lo sobre a placa do Arduino, efetuar as conexões elétricas necessárias com outros componentes, importar sua biblioteca, e escrever o programa (sketch). Veja na figura a seguir um shield Bluetooth da Adafruit conectado sobre um Arduino Uno:

Shield Adafruit Bluetooth para Arduino

Shield Adafruit Bluetooth Bluefruit EZ-Link (Imagem: Adafruit)

Veja que o shield se encaixa perfeitamente sobre a placa do Arduino, e há a possibilidade de soldarmos conectores no shield para que seja possível expandir as conexões para os pinos do Arduino abaixo. Muitos shields já vem com os pinos soldados, bastando então efetuar conexões como necessário para o projeto. Desta forma, é possível inclusive empilhar shields um sobre o outro, expandindo bastante as funcionalidades da placa. A figura a seguir mostra dois shields empilhados sobre uma placa:

Shields empilhados Arduino

Shields empilhados (Imagem: Wikimedia Commons)

Vimos neste artigo diversos shields que podem ser usados em conjunto com um Arduino; existem muitos outros disponíveis. Em nossos projetos com Arduino iremos explorar de forma mais aprofundada esses e outros shields, conhecendo suas peculiaridades e o modo de escrever código para usá-los.

[youtube https://www.youtube.com/watch?v=mQdD82Vq3oM]

Arduino – Mudando a cor de um LED RGB sequencialmente

 

Projeto: Mudando a cor de um LED RGB com Arduino

Os LEDs RGB possuem três LEDs em um único encapsulamento: um vermelho (R, red), um verde (G, green) e um azul (B, blue), com seus anodos ou seus catodos conectados entre si (configurações anodo comum ou catodo comum). Portanto, possuem quatro terminais, uma para cada cor e um comum.

Neste projeto vamos aprender a controlar um LED RGB, de modo que seja possível controlar as cores que ele exibirá. Faremos um sequencial, no qual o LED piscará com uma cor diferente por vez, e ainda vamos incrementar o código controlando a intensidade do brilho – a cada piscada, o LED brilhará um pouco mais intenso, até atingir um valor máximo, e então voltará ao brilho mínimo, reiniciando o processo.

O esquema a seguir mostra a ligação de um LED RGB de catodo comum a um Arduino, da forma como trabalharemos no projeto. Note que serão usados três resistores limitadores de corrente, um para cada LED interno do conjunto.

Arduino - conectando LEDs RGB

Os resistores R1, R2 e R3 podem ser resistores de 220 Ω, e o LED utilizado é um LED RGB de catodo comum (conectado ao GND). Cada terminal do LED será conectado a um pino digital do Arduino, sendo que conectaremos o terminal vermelho ao pino 3, o verde ao pino 5 e o azul ao pino 6, que são pinos capazes de fornecer saída em PWM, que precisaremos para controlar a intensidade de brilho do LED.

Veja na imagem abaixo o conjunto montado em uma breadboard, com a cor azul acesa no LED:

Arduino e LED RGB

Na listagem abaixo temos o código a ser utilizado neste projeto. Usaremos a funçãoanalogWrite() para controlar qual LED é aceso, e qual a intensidade de brilho com o qual ele emitirá luz.

const int vermelho = 3; // configurar pinos ligados ao LED
const int verde = 5;
const int azul = 6;
int cor = 0; // valor de 0 a 255 para representar a matiz (graduação de cor)
 
void setup() {
// sem declaração; usando função analogWrite()
}
 
void loop() {
// escrever os valores RGB nos pinos:
analogWrite(vermelho, cor);
delay (500);
analogWrite(vermelho, 0);
delay (100);
analogWrite(verde, cor);
delay (500);
analogWrite(verde, 0);
delay (100);
analogWrite(azul, cor);
delay (500);
analogWrite(azul, 0);
delay (100);
 
cor = cor + 15; // incrementar a intensidade da cor
if (cor > 255) {
  cor = 0;
  delay(10);
}
}

pós carregar o código no Arduino, observe que o LED piscará, acendendo uma cor por vez em sequência, e começando com um brilho fraco, o qual irá aumentar ao longo do tempo. Ao atingir o valor máximo de brilho, o LED se apaga e o processo é reiniciado.

Note que neste projeto foi usado um LED RGB cristal (transparente), no qual podemos ver claramente a distinção entre os LEDs coloridos internos. Se você quiser misturar as cores para obter novos tons, use um LED RGB difuso. Trataremos disso em um próximo projeto.

 

 

Ler valores analógicos a partir de um potenciômetro com Arduino

 

Neste projeto vamos aprender a ler um valor de tensão usando um pino analógico. Utilizaremos um potenciômetro para ajustar esse valor, o qual poderia também ser fornecido a partir de outra fonte, como um sensor, por exemplo.

Os valores lidos podem ser usados para disparar eventos, como acionar um alarme, motor ou outro elemento qualquer. Neste tutorial os valores lidos serão exibidos no monitor serial.

Abaixo temos o diagrama esquemático a ser utilizado:

Ler dados a partir de um potenciômetro com Arduino

É um projeto bem simples. Vamos precisar de um potenciômetro de 10 kΩ (outros valores próximos também servirão), e de um resistor de baixo valor (47 Ω são suficientes) para evitar que uma corrente em excesso possa danificar seu Arduino.

Vamos começar conectando o potenciômetro entre os pinos 5V e GND, e seu terminal central (divisor de tensão) será conectado ao pino analógico A0, a partir de onde será feita a leitura do valor da tensão elétrica.

Código do sketch

Abaixo temos o código utilizado no projeto:

const int potenciometro = 0; // pino de entrada do potenciômetro
int valor = 0;
 
void setup() {
Serial.begin(9600);
}
 
void loop() {
valor = analogRead(potenciometro);
Serial.println(valor);
delay(100);
}
 

Funcionamento

Um potenciômetro possui três terminais. Dois desses terminais são conectados a um material resistivo interno, e o terceiro terminal é conectado a um eixo giratório que pode ser rotacionado para fazer contato ao longo do material resistivo.

Geralmente esse é o terminal central. Conforme o potenciômetro gira, a resistência entre o terminal central e os outros terminais muda, aumentando em relação a um dos terminais e diminuindo em relação ao outro terminal.

Desta forma, se aplicarmos uma tensão elétrica entre os terminais laterais do potenciômetro, podemos variar sua resistência em relação ao terminal central, provocando uma queda de tensão cujo valor irá depender da posição do eixo giratório.

Essa tensão será lida no pino A0 do Arduino, e poderemos ler no monitor serial um valor numérico associado, que irá variar de 0 para quando a tensão estiver em seu nível mais baixo até um valor máximo (1023), para quando a tensão estiver próxima de 5 volts.

Note que não será exibido o valor da tensão em si, pois não se trata de um voltímetro, mas sim um valor numérico mapeado a partir da leitura do nível de tensão em A0.

Vamos usar o monitor serial para exibir esse valor numérico proporcional à tensão elétrica lida no pino A0. Conforme ajustamos o potenciômetro, o nível de tensão será modificado, e o valor exibido no computador será alterado de acordo. A leitura é feitam em intervalos de 100 ms, ajustado pela função delay().

A figura a seguir ilustra o circuito montado em uma matriz de contatos:

Arduino ocm potenciômetro e resistor - entrada analógica

Após compilar e carregar o código no Arduino, abra o monitor serial clicando em Ferramentas -> Monitor serial no Arduino IDE (ou pressione a combinação de teclas Ctrl + Shift + M), e observe que os valores capturados na entrada analógica aparecerão. Movimente o eixo do potenciômetro e você verá os valores sendo alterados de acordo com a rotação aplicada, como podemos ver na captura de tela abaixo:

Monitor Serial - Capturando valore analógicos com um potenciômetro

Na figura podemos ver que eu variei a rotação do potenciômetro de um valor próximo ao máximo até zero, e depois de volta ao valor máximo, ou seja, no terminal central do potenciômetro fomos da tensão máxima até 0V, e de volta à tensão máxima (aproximadamente 5V, fora a queda no resistor de 47Ω).

Você pode aprender mais sobre a função analogRead() neste artigo, que também traz informações sobre as funções analogWrite() e analogReference().

É isso aí! Vamos aprimorar essa técnica nos próximos projetos, a fim de efetuarmos a leitura de sinais de sensores e o controle de cargas a partir dos valores lidos.

 

 

 

Arduino – Função map() – Mapeando intervalos de valores numéricos

Função map() no Arduino

A função map() permite efetuar o mapeamento de um intervalo numérico em outro intervalo numérico desejado. Isso significa que em um intervalo numérico que vai de um valor mínimo até um valor máximo, o valor mínimo será mapeado em um novo_mínimo, e o valor máximo será mapeado em um novo_máximo, e os valores intermediários serão remapeados em novos valores intermediários, de forma correspondente.

Sintaxe:

map(valor,Mínimo_Atual,Máximo_Atual,Novo_Mínimo,Novo_Máximo);

Onde:

  • valor: Número a ser mapeado, geralmente contido em uma variável.
  • Mínimo_Atual: Limite inferior do intervalo de valores atual
  • Máximo_Atual: Limite superior do intervalo de valores atual
  • Novo_Mínimo: Limite inferior do novo intervalo de valores mapeados
  • Novo_Máximo: Limite superior do novo intervalo de valores mapeados

Exemplo: Queremos mapear os valores em um intervalo que vai de 0 a 1023 para um novo intervalo entre 0 e 200. Os valores atuais serão lidos a partir de uma variável chamada valor, e os novos valores mapeados serão gravados em uma variável de nome novo_valor:

novo_valor = map(valor,0,1023,0,200);

A função também pode mapear valores de forma inversa, bastando para isso trocar a posição dos valores mínimo e máximo novos:

novo_valor = map(valor,0,1023,200,0);

A função map() opera somente com números inteiros, não retornando valores de ponto flutuante (fracionários). Se um número fracionário for gerado, ele será truncado antes de ser retornado. A função não arredonda os valores mapeados.

Funcionamento interno

Internamente, a função map() é codificada da seguinte forma:

long map(long x, long in_min, long in_max, long out_min, long out_max)
{
return (x – in_min) * (out_max – out_min) / (in_max – in_min) + out_min;
}

Na prática

Vamos aplicar a função map() em um projeto simples. Vamos usar o mesmo circuito que foi utilizado anteriormente quando mostramos como ler um valor de tensão aplicado a um pino analógico. Os valores retornados, que por padrão estão no intervalo entre 0 e 1023 (resolução de 10 bits dos pinos analógicos), serão remapeados para um outro intervalo, de 8 bits (valores entre 0 e 255).  Os valores lidos serão exibidos no monitor serial.

Abaixo temos o diagrama esquemático a ser utilizado:

Ler dados a partir de um potenciômetro com Arduino

Usaremos um potenciômetro de 10 kΩ (outros valores próximos também servirão), e um resistor de baixo valor (47 Ω são suficientes) para evitar que uma corrente em excesso possa danificar o Arduino.

Vamos começar conectando o potenciômetro entre os pinos 5V e GND, e seu terminal central (divisor de tensão) será conectado ao pino analógico A0, a partir de onde será feita a leitura do valor da tensão elétrica. Para maiores informações sobre o funcionamento do circuito utilizado, consulte o projeto “Lendo valores analógicos a partir de um potenciômetro“.

Código do sketch

Abaixo temos o código utilizado no projeto:

const int potenciometro = 0;
int valor = 0.0;
int valor_mapeado;void setup() {
Serial.begin(9600);
}

void loop() {
valor = analogRead(potenciometro);
valor_mapeado = map(valor,0,1023,0,255);
Serial.println(valor_mapeado);
delay(200);
}

Testando a função map()

Após compilar e carregar o código no Arduino, abra o monitor serial clicando em Ferramentas -> Monitor serial no Arduino IDE (ou pressione a combinação de teclas Ctrl + Shift + M), e observe que os valores capturados na entrada analógica aparecerão. Movimente o eixo do potenciômetro e você verá os valores sendo alterados de acordo com a rotação aplicada, como podemos ver na captura de tela abaixo:

Arduino - Função map() e monitor serial

Na figura podemos ver que eu variei a rotação do potenciômetro de um valor próximo ao máximo até zero, e depois de volta ao valor máximo, ou seja, no terminal central do potenciômetro fomos da tensão máxima até 0V, e de volta à tensão máxima (aproximadamente 5V, fora a queda no resistor de 47Ω). Os valores mostrados estão no intervalo entre 0 e 255, e não entre 0 e 1023, como seria o normal, pois estão senado remapeados pela função.

[youtube https://www.youtube.com/watch?v=NxrlQza-vG0]

Associações em Série e em Paralelo de Capacitores

Vamos analisar neste artigo as associações de capacitores em série e em paralelo.

Associação em Paralelo de Capacitores

Quando os capacitores são associados em paralelo, somamos suas capacitâncias, da mesma forma que fazemos com resistores associados em série. Deste modo:

Ctot = C1 + C2 + … + Cn

Podemos pensar num arranjo de capacitores em paralelo como se fossem um único capacitor com capacitância maior. Porém, a maior tensão que pode ser aplicada a um arranjo de capacitores em paralelo com segurança é limitada pela tensão do capacitor com menos valor de tensão suportada.

Veja um exemplo a seguir de capacitores associados em paralelo:

Associação em paralelo de Capacitores

Neste exemplo temos que Ctot = C0 + C1 + C2 = 10μF +10μF + 22μF = 42μF.

Associação em Série de Capacitores

Quando conectamos dois ou mais capacitores em série, a capacitância total obtida será sempre menor do que o valor do menor capacitor do conjunto. Usamos uma fórmula para calcular a capacitância equivalente em série que é similar à fórmula da resistência em paralelo:

Associação de Capacitores em série - fórmula

Geralmente conectamos capacitores em série em um circuito para que o conjunto possa suportar uma tensão elétrica maior do que as tensões individuais nos capacitores, pois a tensão elétrica será diferente em cada capacitor. Veja um exemplo de associação em série de capacitores:

Associação em Série de capacitores

Neste exemplo temos que 1/Ctot = 1/C0 + 1/C1 + 1/C2, ou seja:

1/Ctot = 1/10 + 1/10 + 1/22 = 4,07μF.

Já as tensões em cada capacitor podem ser calculadas individualmente com a fórmula (Ctot / Cn) * Vin. Por exemplo, a tensão sobre os terminais de C1 será de (4,07 / 10) * 12 = 4,884V. Lembre-se de que a tensão em um dado capacitor não deve nunca exceder seu valor nominal de tensão, pois isso acarretará a destruição do componente.

[youtube https://www.youtube.com/watch?v=u70egVhjpcc]

Curso de Eletrônica – Divisores de Tensão

Divisor de Tensão Resistivo

Um Divisor de Tensão resistivo é um circuito formado por uma associação em série de resistores, com o intuito de obter valores de tensão diferentes (e menores) do valor da tensão da fonte que alimenta esse circuito. Para isso podemos usar a partir de dois resistores ligados em série e uma fonte de alimentação para obter uma tensão elétrica que será uma fração da tensão de entrada.

A tensão total aplicada (Vs) é dividida e sofre uma queda de forma proporcional em todos os resistores desse circuito em série. O valor da queda de tensão em um resistor é proporcional ao valor de sua resistência, e quanto maior a resistência do componente, maior será a queda de tensão, enquanto um valor de resistência menor impões uma queda de tensão também menor.

Fórmula
Podemos calcular o valor da queda de tensão em um resistor usando uma fórmula simples. É possível efetuar esse cálculo inclusive sem conhecer o valor da corrente do circuito. A fórmula que usaremos é a seguinte:

Fórmula do divisor de tensão

Onde:
Vn = Valor da queda de tensão sobre um resistor n
Rn = Valor da resistência do resistor n
Rt = Resistência total da associação
Vs = Tensão de entrada do circuito.

Vamos a um exemplo. Dado o circuito a seguir, calcule o valor da tensão que será medida sobre o resistor R2:

Divisor de Tensão resistivo

A resistência total da associação e série é de 100Ω + 150Ω + 220Ω = 470Ω . Aplicando a fórmula temos que:

VR2 = (150 / 470) * 10 = 3,19V.

Portanto, temos que a queda de tensão sobre um resistor (ou grupo de resistores) em um circuito em série é igual à razão entre a resistência desse resistor e a resistência total, multiplicada pela tensão de entrada.

Aplicações
Os divisores de tensão se prestam a inúmeras aplicações em eletricidade e eletrônica. Por exemplo, podemos construir uma fonte de alimentação para fornecer valores de tensão variados a partir de uma tensão de entrada única, de modo a não precisarmos de diversas fontes distintas, uma para cada tensão.
Um potenciômetro é um resistor variável que pode ser usado como divisor de tensão ajustável, para criar tensões de referência, medir posicionamento em um joystick, ajustar níveis de áudio e muitas outras aplicações.

Em muitas lições posteriores usaremos esses conceitos de divisores de tensão, por isso é muito importante estudar esse tema com afinco.
[youtube https://www.youtube.com/watch?v=ysuGUCgepn8]

Curso de Eletrônica – Condutância Elétrica

Condutância Elétrica

Definimos a condutância de um condutor como sendo o inverso de sua resistência elétrica. Simbolizamos a condutância com a letra G. Desta forma, se R é a resistência e G é a condutância de um condutor qualquer submetido a uma tensão elétrica V e atravessado por uma corrente elétrica I, temos que:

Condutância Elétrica

resistência indica a oposição de um material condutor à passagem da corrente elétrica, e a condutância, inversamente, indica a facilidade com a qual o condutor deixa fluir a corrente elétrica.

Unidade de medida
A unidade de medida da condutância no S.I. é o siemens, abreviado pela letra S, em homenagem ao inventor alemão Werner von Siemens . Quanto maior o valor em siemens de um condutor, melhor ele conduz a corrente elétrica, pois mais baixa é sua resistência elétrica.

A condutância de um condutor (assim como a resistência) depende de alguns fatores, como o formato físico do condutor (geometria), o material de que ele é feito e a temperatura do condutor, entre outras..

Vejamos um exemplo de cálculo:

Exemplo 01: Dado um elemento condutor cuja resistência é de 125 Ω, calcule sua condutância.

Exemplo 01: Dado um elemento condutor cuja resistência é de 125 Ω, calcule sua condutância.
G = 1/R = 1/125 = 0,008 S

Condutância Infinita - Supercondutor

E teremos então um material Supercondutor, um tipo de material muito especial, no qual não há aquecimento joule e, portanto, não há perda de energia por dissipação de calor.

Observação: Não devemos confundir a condutância elétrica com a condutividade de um material, que é característica específica de cada material, e é o oposto da resistividade. Podemos calcular a condutância com base na condutividade, de acordo com a fórmula abaixo:

Condutância calculada a partir da condutividade elétrica

onde a condutância G equivale ao produto da condutividade σ pela área A da seção transversal do condutor, dividida pelo comprimento l. Essa é uma relação similar à existente entre a resistência elétrica e a resistividade de um material condutor. Vamos estudar esses conceitos nas próximas lições de nosso curso de eletrônica.

[youtube https://www.youtube.com/watch?v=rH0YLDlGjn8]

Curso de Eletrônica – Resistividade e Condutividade Elétricas

Resistividade Elétrica

Em um condutor qualquer, sua resistência elétrica depende de alguns fatores, como o comprimento do condutor, a área de sua secção transversal e de um parâmetro denominado resistência específica do material, também chamada de resistividade.

Baseando-se nesses parâmetros, podemos calcular a resistência de um condutor usando a fórmula conhecida como Segunda lei de Ohm:

Curso de Eletrônica - Resistividade Elétrica - Fórmula

Onde temos que:

R = resistência elétrica do condutor, em ohms

l = comprimento do fio, em metros (m)

A = área da secção reta do fio, em m2

ρ = resistência específica do material, em Ωm (ohms por metro)

A letra grega ρ (rho) representa a resistividade de um material, a qual permite comparar a resistência elétrica de diferentes condutores independentemente de seus comprimentos ou áreas. Valores mais altos de resistividade indicam que o material apresenta maior resistência elétrica que outro material de iguais dimensões e menor resistividade.

Abaixo temos uma tabela com valores de resistividade de diversos materiais:

Material

Resistividade ρ (em Ωm)

Alumínio 2,82 x 10-8
Ouro 2,44 x 10-8
Prata 1,59 x 10-8
Cobre 1,72 x 10-8
Ferro 10,0 x 10-8
Platina 10,6 x 10-8
Chumbo 0,22 x 10-6
Tungstênio 5,6 x 10-8
Níquel-cromo 100 x 10 -8
Latão 7 x 10-8
Grafite (carbono) 3,5 x 10-5
Silício 640
Vidro comum entre 1010 e 1014
Enxofre 1015
Borracha (neoprene) 109
Teflon 1014
Água pura 2,5 x 105
Pele humana aprox. 5,0 x 105

Podemos notar pela tabela que a resistividade dos bons condutores, como os metais cobre, alumínio e prata, é da ordem de 1021 vezes menor do que a resistividade de materiais isolantes, como o Teflon e o Vidro.

Condutividade Elétrica

O inverso da resistividade é a condutividade elétrica, simbolizada pela letra grega σ (sigma), e calculada pela fórmula a seguir:

Curso de Eletrônica - Condutividade Elétrica

A unidade de medida da condutividade elétrica é o siemens por metro (S/m).

Vamos ver alguns exemplos de cálculos de resistividade e condutividade:

Exemplo 01: Vamos determinar a resistência de duas barras de materiais de secção circular, uma de cobre e outra de grafite, ambas com um comprimento de 1 metro e com 2 mm de diâmetro. Consultando a tabela anterior, temos que as resistividades dos materiais são:

Cobre: 1,72 x 10-8 Ωm

Grafite: 3,5 x 10-5 Ωm

Vamos aos cálculos:

a.) Para o cobre:

Cálculo de resistividade elétrica

Temos a fórmula final para o nosso exemplo. Agora vamos aplicar o valor das resistências específicas dos materiais de acordo com a tabela anterior. Para o cobre a resistência específica é de 1,72 x 10-8 Ωm. Aplicando na fórmula temos:

Resistividade do fio de cobre

Já para o grafite, cuja resistência específica é de 3,5 x 10-5 Ωm, teremos:

Resistividade do grafite

Repare que a resistência da barra de grafite é muito maior – cerca de 1976 vezes – do que a da barra de cobre, pelo fato do cobre ser um excelente condutor elétrico, e o grafite ser um condutor pobre (mas não é um isolante!).

Exemplo 02: Vamos determinar a resistência de um condutor de alumínio, cuja área da seção transversal é de 2,1 mm2 e o comprimento é de 27 m.

Resolução: Já temos a área da seção transversal calculada, então vamos aplicar os dados à fórmula geral da resistividade. A resistência específica do alumínio, de acordo com nossa tabela, é de 2,82 x 10-8Ωm.

Então:

Resistividade do fio de alumínio

Exemplo 03: Calcule a condutividade da barra de cobre analisada no exercício 01.

No exercício 01 calculamos a resistência de uma barra de cobre de 1m de comprimento por 2mm de diâmetro. Para calcularmos sua condutividade, basta calcular o inverso de sua resistividade – e não o inverso da resistência elétrica, que é chamada de Condutância – cuidado para não confundir os termos!

A resistência específica do cobre é de 1,72 x 10-8 Ωm. Então temos:

Condutância da barra de cobre

Algumas observações importantes sobre a resistividade elétrica:

  • Os materiais isolantes sólidos podem ser considerados como materiais de altíssima resistividade que satisfazem à segunda lei de Ohm até um certo limite.
  • As soluções eletrolíticas (como água com sal de cozinha) também satisfazem à segunda lei de Ohm.
  • Os gases ionizados não satisfazem a segunda lei de ohm, portanto não podemos aplicar os mesmos cálculos vistos aqui a, por exemplo, uma lâmpada de neon.

[youtube https://www.youtube.com/watch?v=w-kEIyFwf4I]

Curso de Eletrônica – Corrente Elétrica

Corrente Elétrica

Definimos como Corrente Elétrica o fluxo de cargas elétricas que passam por uma seção de um condutor por unidade de tempo. Simbolizamos a corrente elétrica com a letramaiúscula, e não com a letra C, que corresponde à unidade de carga elétrica Coulomb.

Energia, de várias formas (calor, luz, magnetismo) pode fazer com que um elétron seja liberado da camada de valência de um átomo. Quando o átomo perde um elétron dessa forma, ele deixa de ser eletricamente neutro e passa a ser conhecido como um íon positivo, pois agora possui uma carga elétrica total positiva – possui mais prótons do que elétrons. Já os elétrons liberados tendem a se deslocar a átomos próximos, os quais acabam com mais elétrons do que prótons, transformando esses átomos em íons negativos.

Vamos entender melhor como esse fenômeno ocorre. Suponha dois corpos carregados eletricamente, um com excesso de cargas negativas (excesso de elétrons) e o outro com excesso de cargas positivas (falta de elétrons), como mostrado na figura a seguir:

Corrente Elétrica - corpos carregados com íons

Vamos conectar esses dois corpos usando um fio ou uma barra de um material condutor, como cobre, prata ou alumínio, conforme segue:

Corrente Elétrica - Metal Condutor

Ao conectarmos os dois corpos por meio de um condutor, criamos um caminho para que as cargas elétricas possam fluir. O corpo da esquerda possui mais elétrons que o corpo da direita – mais cargas elétricas negativas, ou íons negativos (com excesso de elétrons). O condutor em si é neutro, pois seus átomos possuem a mesma quantidade de elétrons e prótons.

Os elétrons extras na camada mais externa dos íons negativos (corpo da esquerda) são atraídos pelos íons positivos do corpo da direita, além de sofrerem repulsão dos elétrons em excesso dos próprios íons negativos. Isso faz com que um elétron em um dos íons negativos “salte” da órbita do átomo onde se encontra e acabe em um átomo adjacente mais à direita, no metal do condutor, conforme vemos na figura a seguir:

Curso de Eletrônica - Corrente Elétrica

Agora o átomo do fio condutor possui um elétron extra, o que o transforma também em um íon negativo, e o átomo que cedeu esse elétron a ele se tornou neutro, recebendo um novo elétron proveniente de outro íon negativo próximo a ele no corpo carregado.

Os elétrons no fio condutor sentem a atração dos íons positivos no corpo da direita, além da repulsão dos elétrons em excesso no corpo da esquerda, e eventualmente o elétron extra adquirido pelo condutor salta para outro átomo adjacente, e então mais outro, e outro, provocando um movimento contínuo de elétrons fluindo da esquerda para a direita. Isso não ocorre com apenas um elétron por vez na realidade, mas sim com bilhões e bilhões deles em um movimento contínuo, como mostra a figura a seguir:

Corrente Elétrica - cargas elétricas

Este fluxo de elétrons é o que denominamos como Corrente Elétrica. Podemos resumir esse fenômeno dizendo que a partir do momento em que existe uma força ou “pressão” produzida pelas cargas positivas e negativas, ela fará com que os elétrons fluam do ponto mais negativo para o mais positivo. O corpo positivo possui uma deficiência de elétrons, e o lado negativo possui um excesso de elétrons, e um fluxo contínuo se dará entre esses pontos (desde que haja contato entre eles, por meio de um condutor). A quantidade de corrente elétrica que flui entre esses pontos é mensurável e calculável, como veremos a seguir.

Unidade de medida: Ampère

Para explorarmos mais a fundo esse conceito, definimos ΔQ como a quantidade de cargas que atravessam uma área S de um condutor em um intervalo de tempo Δt, de modo que a corrente média Imed é definida como:

Imed = ΔQ / Δt

Corrente Elétrica - Carga / tempo

Como a quantidade de carga elétrica é medida em Coulombs e a unidade de tempo adotada é o segundo, medimos a corrente elétrica em Coulombs por Segundo; porém, a unidade de medida de corrente elétrica padrão que usamos no dia a dia é chamada de Ampère, representado pela letra A. Desta forma,

1 ampère = 1 coulomb por segundo

O Ampère é uma unidade relativamente grande de corrente, por isso em eletrônica comumente usamos seus submúltiplos, como mostra a tabela a seguir:

Submúltiplo Símbolo Valor N. Científica
miliampère mA 0,001A 1 x 10-3 A
microampère µA 0,000001A 1 x 10-6 A
nanoampère nA 0,000000001A 1 x 10-9 A
picoampère pA 0,000000000001A 1 x 10-12 A

André Ampère - corrente elétrica

Se uma corrente de 1A atravessa um condutor de cobre, o número de elétrons que passa por uma seção transversal do fio em um segundo é igual a  um Coulomb por segundo. Sabendo que um elétron possui uma carga de –1,602×10-19C, e calculando o número de cargas elétricas (elétrons) em um Coulomb temos que:

Cargas elétricas e coulombs

Portanto, 1 Ampère equivale ao fluxo de 6,242 x 1018 elétrons em um segundo passando por uma seção de um condutor.

No cálculo o número resultante é negativo porque os elétrons, na verdade, fluem na direção oposta da corrente definida convencionalmente, e lhes é atribuída carga negativa. Porém, todas as fórmulas usadas em eletrônica consideram que a corrente I é composta de cargas positivas. Seguiremos essa convenção normal – não fará diferença alguma nos resultados finais de nossos cálculos.

Vamos agora a um exemplo de cálculo:

Exemplo 01: Quantos elétrons passam por uma seção de um condutor em 3 segundos se uma corrente de 2A o atravessa?

R.: A carga que atravessa esse condutor é de:

ΔQ = I x Δt = 2A x 3s = 6C (6 Coulombs).

Um elétron possui uma carga em módulo (sem o sinal) de 1,602 x 10-19C, portanto:

número de elétrons = carga elétrica / carga de um elétron = 6 / 1,602 x 10-19C = 3,745 x 1019elétrons.

Abaixo temos uma tabela que mostra, de forma aproximada, os valores de corrente elétrica que são consumidos por diversos dispositivos eletro-eletrônicos comuns:

Dispositivo Corrente consumida
LED 20mA
Ventilador 1A
Notebook de 2 a 3A
Lâmpada fluorescente (CFL) de 1 a 2A
Forno de microondas de 8 a 13A
Telefone celular 200mA

Ao manipularmos circuitos eletrônicos onde haja fluxo de corrente elétrica (equipamentos ligados, portanto), devemos tomar muito cuidado pois uma corrente elétrica entre 100 mA e 1 A, dependendo da constituição física da pessoa, pode ser suficiente para causar uma parada cárdiorrespiratória em caso de choque elétrico, podendo levar à morte. Todo cuidado é pouco!

[youtube https://www.youtube.com/watch?v=lOOYmOLAmpc]

Curso de Eletrônica – Tensão Elétrica

Tensão Elétrica

Para que uma corrente elétrica possa fluir entre dois pontos, é necessário que exista uma Tensão Elétrica entre esses pontos. Quando uma tensão elétrica é aplicada sobre um condutor, há o surgimento de uma Força Eletromotriz (FEM), que é responsável por colocar em movimento os elétrons livres dentro do condutor.

Podemos nos referir à Tensão Elétrica também como Diferença de Potencial (ddp), expressão que indica claramente a natureza dessa grandeza elétrica – a diferença de energia potencial (cargas) que existe entre dois pontos quaisquer.

Veja na figura a seguir um circuito que mostra a ligação entre uma fonte de tensão elétrica (bateria) e uma lâmpada, conectados por meio de condutores (fios) e uma chave liga-desliga (switch):

Circuito com bateria, chave e LED vermelho

Circuito 01

Quando a chave está aberta (desligada), não há passagem de corrente pelo circuito. Quando a chave é ligada (fechada), porém, a corrente elétrica começa a circular pelo circuito, acendendo o LED. Isso ocorre pois há uma tensão elétrica nos terminais da bateria, e essa tensão “empurra” os elétrons livres através do circuito, na direção do pólo negativo para o positivo (sentido anti-horário na figura); o sentido convencional da corrente aponta na direção oposta (positivo para o negativo, sentido horário na figura). Dizemos que há um acúmulo de cargas negativas (excesso de elétrons) no pólo negativo da bateria, e consequentemente, acúmulo de cargas positivas (falta de elétrons) no pólo positivo. Essa diferença de cargas entre os dois pontos é que dá origem à tensão elétrica.

A unidade de medida da tensão elétrica é o Volt, simbolizado pela letra V, em homenagem ao físico italiano Alessandro Volta que inventou o que é considerada a primeira “pilha” química, em 1799. Já a tensão elétrica em si podemos simbolizar com as letras V ou U; eu uso preferencialmente a letra U, para evitar expressões do tipo “V = 9V”, que podem causar confusão na hora de representar e calcular um circuito.

Para ficar mais claro o conceito de tensão elétrica, podemos fazer uma analogia com um tanque de água. Veja na figura abaixo um tanque cheio de água, com uma abertura para escoamento na parte inferior. Consideramos a água em si (quantidade de água) como se fosse a carga elétrica, a altura da coluna de água como a tensão elétrica, e o fluxo de água que sai pelo cano como a corrente elétrica. Note que quanto maior a altura da coluna de água (maior potencial energético = maior tensão), maior será a força com a qual a água será expulsa – maior o fluxo de água, ou corrente.

Tensão Elétrica - água

Analogia entre Tensão Elétrica e um tanque com água. Adaptado de Sparkfun, licença Creative Commons CC BY-NC-SA 3.0

Funcionamento da Tensão Elétrica

Na bateria mostrada na figura do início do artigo, ocorrem reações químicas internamente que fazem com que elétrons livres se acumulem em grande quantidade na região próxima ao terminal negativo (ânodo), causando uma concentração de elétrons nesse local. Esse acúmulo de cargas possui uma grande força repulsiva, pois cargas de mesmo sinal se repelem, e podemos imaginar essa força repulsiva como uma espécie de “pressão elétrica”. Quando fornecemos um caminho condutor entre o terminal negativo e o terminal positivo da bateria, por exemplo usando um fio e um LED como no exemplo, os elétrons no terminal negativo  são pressionados a se deslocar pelo circuito, ocasionando o surgimento de uma corrente (fluxo) de elétrons através do circuito.

Os elétrons se movem em uma velocidade bastante baixa, geralmente uma fração de milímetro por segundo. Porém, o efeito causado por esse movimento é quase instantâneo, pois os elétrons “empurram” uns aos outros, numa velocidade próxima à velocidade da luz, e enquanto os elétrons na base da bateria se deslocaram apenas uns centésimos de milímetro, os elétrons na outra opnta do condutor conectado também já se deslocaram, dando a impressão de que as cargas viajaram quase que instantaneamente.

Um ponto que deve ficar bem claro é de que sempre medimos a tensão elétrica entre dois pontos, não importa onde estejam no circuito, e a tensão pode variar dependendo dos pontos escolhidos para sua mensuração.

O Volt

Vamos realizar uma definição mais formal da unidade de medida da tensão elétrica, o Volt. Dizemos que uma diferença de potencial de 1 Volt é igual a 1 joule de energia dividido por 1 coulomb de carga elétrica. Assim:

Fórmula Volt = Joule / Coulomb

Ou seja, se houverem dois pontos com uma tensão elétrica de 1 volt entre eles, então há “força” elétrica suficiente para realizar 1 joule de trabalho movendo 1 coulomb de cargas entre os pontos.

Podemos também definir a tensão em termos de potência. A potência representa quanta energia, por unidade de tempo (segundo), um circuito consome em funcionamento, sendo medida em Watts. Em termos de potência, então, definimos o volt como sendo:

Fórmula - Volt = Watt / Ampère

Portanto, a tensão elétrica é igual à potência dividida pela corrente que atravessa um circuito. Daí podemos derivar a Lei Geral da Potência, expressa pela fórmula P = UI, onde a potência P é medida em Watts, a tensão U em Volts e a corrente I em Ampères.

Vejamos alguns exemplo de cálculo:

Exemplo 01: No circuito 01, mostrado no início da lição, temos uma bateria de 9 V alimentando uma carga que consome 0,3 A. Calcule a potência consumida pelo circuito.

Resposta: 

Calculando corrente a partir da potência e tensão elétricas.

Medindo a tensão elétrica

Usamos um equipamento denominado Voltímetro para realizar a medição de tensão elétrica (ou, mais comumente, um multímetro com a função de voltímetro). A figura abaixo mostra a medição de uma bateria de 9 V usando um multímetro digital Tektronix na função de Tensão Contínua:

Multimetro medindo tensão elétrica - Tektronix

Para medir a tensão elétrica com o voltímetro conectamos as pontas de prova nos pontos cuja diferença de potencial desejamos medir, e não interrompendo o circuito, como procedemos para medir a corrente elétrica. A tensão elétrica pode ser contínua (polaridades definidas) ou alternada (alterna as polaridades). Vamos tratar da diferença entre Corrente / Tensão Contínua e Alternada em outra lição.

Associando Baterias

Podemos obter valores de tensão diferentes ao associarmos baterias, geralmente com o intuito de obtermos um valor de tensão maior do que o de uma única bateria. É possível associar as baterias em série, para obtermos um valor maior de tensão, que equivale ao somatório das tensões das baterias empregadas no circuito. A associação em série de baterias significa que conectamos o terminal positivo de um bateria ao terminal negativo de outra, sucessivamente, deixando livres apenas o terminal positivo da última bateria conectada e o terminal negativo da primeira.

A tensão total, numa associação em série de baterias, é dada pela fórmula Vtot = V1 + V2 + … + Vn

A figura a seguir mostra uma associação em série de 4 pilhas de 1,5 V cada, totalizando uma tensão de 6 V:

Associação em série de baterias

Podemos obter diferentes níveis de tensão nesse arranjo de baterias simplesmente derivando pontos intermediários de medição, como ilustra a figura a seguir, onde temos um ponto com tensão de 6 V, um de 4,5 V e um de 3 V, sempre em relação ao ponto comum, considerado como 0 v, e usando quatro pilhas de 1,5 V como no exemplo anterior:

Associação em série de baterias - split

A ilustração a seguir mostra o que acontece com lâmpadas conectadas a cada conjunto de pilhas associadas em série. Note que a corrente aumenta conforme a tensão aumenta, gazendo com que a lâmpada brilhe com mais intensidade:

Associação em série de tensão - lâmpada

Fontes de Tensão Elétrica

Há diversos mecanismos pelos quais podemos gerar uma tensão elétrica entre dois pontos, além das reações químicas que ocorrem dentro de pilhas e baterias. Podemos citar como exemplos de mecanismos que geram tensão elétrica:

  • Indução magnética: Geradores elétricos, incluindo os presentes em usinas hidrelétricas e nucleares
  • Efeito termoelétrico: Sensores de temperatura
  • Efeito piezoelétrico: Sensores de pressão
  • Efeito fotovoltaico: Fotocélulas / painéis solares
  • Reações químicas: como já citadas, pilhas e baterias.

Ao longo de nosso curso de Eletrônica, vamos estudar o funcionamento de cada um dos mecanismos em mais detalhes. Enquanto isso, aproveite para assistir a um vídeo sobre Tensão Elétrica:

[youtube https://www.youtube.com/watch?v=shuW_SucDEk]

Curso de Eletrônica – Resistência Elétrica

Resistência Elétrica

Uma das grandezas elétricas fundamentais é a Resistência Elétrica que, em poucas palavras, definimos como a “dificuldade oferecida por um condutor à passagem da corrente elétrica”. Em um material condutor qualquer, elétrons livres colidem frequentemente com outros elétrons, íons e impurezas dentro da grade cristalina do material, o que limita seu movimento.

Em 1826, o físico alemão Georg Simon Ohm publicou alguns resultados de experimentos que tratavam da resistência elétrica de diferentes materiais, e descobriu uma relação linear entre a quantidade de corrente que flui através de um material quando uma tensão elétrica específica é aplicada a ele. A razão entre a tensão elétrica aplicada e a corrente elétrica resultante foi chamada de Resistência Elétrica, e pode ser definida pela fórmula a seguir:

Lei de Ohm - Resistência Elétrica

Chamamos esta fórmula de Lei de Ohm, onde R é a resistência do material, dada pela razão entre tensão em volts e a corrente, em ampères. A unidade de medida escolhida para a resistência elétrica foi o Ohm, abreviada pela letra grega omega, Ω, em homenagem a Georg Ohm. Temos então que 1 ohm é a resistência obtida quando aplicamos uma tensão de 1 V e obtemos uma corrente de 1 A.

A lei de Ohm só pode ser aplicada a materiais ditos ôhmicos, que são materiais cuja resistência permanece constante mesmo com a variação da tensão elétrica. Já os materiais ditos não-ôhmicos não seguem esse padrão, não obedecendo à lei de Ohm. Por exemplo, um diodo semicondutor apresenta variações significativas em sua resistência dependendo da tensão aplicada e sua polaridade.

Condutores, Formato e Resistência

A resistência elétrica de um fio de material condutor varia com diversos fatores, como o material em si, a temperatura e sua forma. Se duplicarmos o comprimento de um fio, sua resistência elétrica também duplicará, o que significa que a resistência é diretamente proporcional ao comprimento do fio. Já se duplicarmos a área da secção transversal do fio, sua resistência elétrica cairá pela metade, mostrando que a área transversal de um condutor e sua resistência elétrica são inversamente proporcionais.

O primeiro fenômeno é facilmente explicável se imaginarmos que, ao aumentarmos o comprimento do fio, haverá muito mais choques entre os elétrons e a estrutura do material em si, pois o caminho a se percorrer é maior. Já no segundo caso, ao aumentarmos a área da secção transversal, haverá mais espaço para os elétrons livres se movimentarem, diminuindo o número de choques e interações entre eles e a grade cristalina do material condutor em si. Assim, um fio de maior diâmetro pode suportar uma corrente mais alta, pois os elétrons podem ser distribuídos por uma área maior de condução. Já uma área menos tende a concentrar muitos elétrons em um espaço de passagem reduzido, aumentando significativamente o número de colisões entre eles, o que inclusive ocasiona o aumento de temperatura do material. Por esse motivo, fios de pequeno diâmetro não são indicados para instalações elétricas de corrente elevada, pois seu aquecimento aumenta o risco de incêndio e outros danos.

A figura abaixo ilustra a relação entre o comprimento e o diâmetro de um condutor com sua resistência elétrica:

Relação entre comprimento e diâmetro de um condutor e sua resistência elétrica

Relação entre comprimento e diâmetro de um condutor e sua resistência elétrica

O material de que é formado o condutor também tem um papel crucial na determinação de sua resistência. Cada material possui o que chamamos de Resistência Específica, ou Resistividade, e você pode ler mais a respeito da Resistividade neste artigo.

O inverso da resistência elétrica é chamado de Condutância Elétrica, e é uma grandeza que determina o quão bem um condutor pode conduzir a corrente elétrica. Para ler mais sobre condutância elétrica, acesse esta lição.

Resistores

Chamamos de Resistor ao componente eletrônico projetado para introduzir resistência de valor específico em um circuito eletrônico. Abaixo vemos os símbolos comumente usados para representar um resistor em um diagrama esquemático:

Símbolos de um Resistor

Símbolos de um Resistor

O símbolo da esquerda é usado com muito mais frequência em nossos diagramas. Vamos estudar com muito mais detalhes os resistores e suas aplicações em outra lição.

Medindo a Resistência Elétrica

Podemos medir a resistência de um condutor qualquer usando um equipamento chamado de Ohmímetro, ou ainda, o que é mais comum, um multímetro com a função de medição de resistência. Veja na figura a seguir a medição da resistência elétrica de um resistor (componente eletrônico) com o uso de um multímetro:

Curso de Eletrônica - Medir Resistência Elétrica

Medindo a resistência de um resistor com um multímetro

Note que a marcação no corpo do resistor traz o valor “5K6“, que significa que sua resistência elétrica é de 5600 Ω. Porém, o valor medido é de 5,89KΩ, ou 5890Ω, o que se explica pelo fato do resistor possuir uma tolerância de 10% (também marcada no corpo) para mais ou para menos do valor da resistência nominal (marcada). Também podemos ver a marcação “25W“, que significa que esse resistor pode dissipar uma potência de até 25 Watts, bastante alta por sinal para circuitos eletrônicos. Na prática, em eletrônica costumamos utilizar resistores de baixa dissipação, como 1/4 W e até mesmo 1/8 W.

Calculando a Resistência Elétrica

Vamos aplicar a fórmula da Lei de Ohm para calcular a resistência de um elemento no exemplo a seguir:

Exemplo 01: Uma lâmpada, alimentada por uma fonte cuja tensão elétrica é de 12 V, é atravessada por uma corrente de 300mA. Qual a resistência da lâmpada? (Vamos ignorar a resistência da fonte e dos fios condutores).

Resolução:

Primeiramente, vamos transformar miliampères em ampères: 300mA = 300/1000 A = 0,3A.

Aplicando a lei de Ohm temos então:

Calculando a resistência elétrica

Portanto, a resistência da lâmpada é de 40 Ω.

No próximo artigo vamos explorar a Lei de Ohm, juntando os conceitos de Resistência, Corrente e Tensão Elétricas.

[youtube https://www.youtube.com/watch?v=BUa-wIO1FyY]

Curso de Eletrônica – Resistores

Resistor

Um resistor é um dos componentes mais comuns e fundamentais em Eletrônica. Sua finalidade é impedir o fluxo livre de corrente elétrica em um circuito por meio de sua resistência elétrica, e impor uma queda de tensão ou limitação de corrente.

Um resistor consiste geralmente em dois conectores ligados a um condutor de energia elétrica pobre, que pode ser constituído por uma variedade de materiais, como veremos mais à frente.

Os resistores são componentes passivos, o que significa que eles apenas consomem energia, e não podem gerá-la.

Podemos ver abaixo os símbolos utilizados para representar resistores em esquemas eletrônicos:

Símbolos de um Resistor

O símbolo da esquerda é o mais tradicional, usado nos Estados Unidos e no Brasil. O símbolo da direita é mais usado em esquemas europeus e em outros países, e ambos são válidos para desenhar nossos circuitos.

Na figura abaixo podemos ver diversos resistores de tipos diferentes, cada qual com uma aplicação distinta:

Resistores variados, incluindo potenciômetro deslizante e LDR

Resistores variados

As aplicações mais comuns dos resistores são a limitação de corrente em dispositivos semicondutores como LEDs, polarização de transístores, controle de cargas em capacitores, ajuste da resposta de frequência em circuitos de áudio, como pull-up ou pull-down em entradas de circuitos lógicos digitais, entre muitas outras.

Além dos resistores comuns como os mostrados na ilustração acima, existem também alguns tipos especiais de resistores, como por exemplo potenciômetros e trimpots, que são resistores variáveis – cuja resistência pode se ajustada conforme a necessidade, e resistores que tem sua resistência alterada quando alguma característica do ambiente é modificada, como a luminosidade, temperatura ou pressão. Os resistores ainda podem ser do tipo SMD (surface mount device) ou through-hole.

A resistência elétrica dos resistores é medida em Ohms (Ω). Os valores de resistência dos resistores podem ser lidos de duas maneiras: diretamente, com o valor escrito no próprio corpo do componente, ou por meio de um código de cores, que é de longe a forma mais comum.

Resistores podem ser associados entre si de diversas formas, permitindo obter valores de resistências diferentes dos encontrados comumente nos componentes vendidos no mercado, sendo os tipos de associação mais comuns a associação em Série e a associação em Paralelo.

Os resistores axiais possuem tradicionalmente o código de cores impresso em seu corpo em uma sequência de três faixas coloridas que expressam o valor da resistência do componente, e mais uma faixa que expressa a tolerância desse valor (desvio possível para mais ou para menos, em porcentagem).

Resistor - Cores e Tolerância

Resistor com quatro faixas de identificação

 

As duas primeiras faixas representam um dígito de 0 a 9, enquanto a terceira faixa indica um multiplicador decimal (número de zeros que devem ser anexados aos dígitos). Abaixo temos uma tabela com o código de cores de resistores de quatro faixas:

Código de Cores de Resistores - Curso de Eletrônica

Código de Cores de Resistores

Tolerância

A resistência real de um resistor pode ser diferente do seu valor nominal, tanto maior quanto menor. O limite da resistência real é chamado de tolerância. Os valores de tolerância mais comuns para resistores de carbono são +-5%, +-10% e +-20% Dessa forma, um resistor de 100Ω que possua tolerância de +-5% pode na verdade, ter uma resistência real de qualquer valor entre 95 e 105Ω, portanto 5Ω a mais ou a menos que o valor nominal de 100Ω.

Os resistores de fio enrolado geralmente possuem tolerância mais estrita, de +-5%.

Potência

Os resistores também possuem uma especificação de potência, que indica a quantidade de energia que o resistor pode dissipar (na forma de calor) antes de se danificar. Caso a potência seja exercida, o resistor se danificará – literalmente, “queimará”. A especificação de potência é dada em Watts (W).

Os resistores de carbono geralmente são vendidos com especificações de potência que podem variar entre 1/16W e 2W, ao passo que resistores de fio enrolado possuem especificações de potência maiores, de 2W a até centenas de Watts.

Vamos interpretar os códigos de cores de alguns resistores para descobrir seus valores:

Exemplo 1:

Resistor 01 - Código de Cores

1º dígito: Vermelho = 2

2º dígito: Marrom = 1

Multiplicador: Laranja = 103 = x 1000

Tolerância: Prata = ± 10%

Resultado: Resistor de 21000 Ω (21KΩ), com 10% de tolerância.

Exemplo 2:
Resistor 02 - Código de Cores

1º dígito: Amarelo = 4

2º dígito: Violeta = 7

Multiplicador: Vermelho = 102 = x 100

Tolerância: Ouro = ± 5%

Resultado: Resistor de 4700 Ω (4,7kΩ / 4K7), com 5% de tolerância.

Existem resistores cujo código de cores é formado por 5 ou 6 faixas, em vez das 4 faixas que identificam s resistores mais comuns. As faixas adicionais são usadas para representar maior precisão dos valores de resistência e para indicar o coeficiente de temperatura do resistor.

Valores de Resistência

Como vimos nos exemplos anteriores, e com base na tabela de código de cores, os resistores podem apresentar valores de resistência desde frações de ohm até milhões de ohms. A tabela a seguir mostra uma equivalência entre valores de resistência em ohms, quiloohms (kΩ, milhares de ohms) e megaohms (MΩ, milhões de ohms):

Tabela de equivalência entre ohm, quiloohm e megaohm

Estabilidade

A estabilidade de um resistor é sua habilidade de manter um valor de resistência preciso mesmo em condições que a afetariam, como sua temperatura, umidade, vibrações, corrente e tensão elétrica. O coeficiente de temperatura de um resistor (Tc) é expresso na mudança da resistência em partes por milhão para cada grau Celsius de desvio da temperatura ambiente (considerada como sendo 25º C), podendo ser um valor positivo ou negativo.

Já o coeficiente de tensão, expresso como Vc, descreve a mudança no valor de resistência que pode ocorrer em decorrência de alteração no valor da tensão elétrica aplicada sobre o resistor. Geralmente afeta resistores cujo elemento resistivo é baseado em carbono.

Composição dos resistores

Os resistores podem ser fabricados com diversos materiais, como por exemplo:

  • Filme de carbono – Tipo popular e barato de resistor, que consiste em um substrato cerâmico recoberto com um filme (película) de um composto de carbono. Geralmente são encontrados com valores de resistência que podem variar de 0,1Ω a 22MΩ.
  • Filme de metal – Um filme metálico é depositado sobre um substrato cerâmico, possuindo características superiores aos resistores baseados em carbono. Podem alcançar tolerâncias de 5%, 2% ou até mesmo 1%. O metal utilizado é geralmente uma liga de níquel-cromo, que possui um coeficiente de temperatura linear, podendo ser utilizados em ambientes que possuem grande variação de temperaturas.
  • Fio Enrolado – Um fio de níquel-cromo ou Constantan (Ni-Cu) enrolado em uma espiral em um eixo de cerâmica é o elemento resistivo nesse tipo de resistor. Esse conjunto então é recoberto por uma camada de material cerâmico para isolá-lo. Esse tipo de resistor possui, normalmente valores que vão de 1Ω a até 100KΩ.

Tipos de Resistores

Podemos classificar os resistores em dois tipos: Resistores Fixos e Resistores Variáveis.

Resistores Fixos

Um resistor fixo é aquele que somente possui um valor de resistência, o qual permanece sempre constante (em condições normais de operação). Há dois tipos principais de resistores fixos por composição: os resistores de carbono e os de fio enrolado.

Resistores Variáveis

Os resistores variáveis permitem alterar a resistência de um circuito, conforme a necessidade. Geralmente são classificados como Potenciômetros, Reostatos e Trimmers.

Resistores e a Lei de Ohm

Se uma tensão contínua é aplicada em um resistor, a quantidade de corrente que irá atravessar esse resistor pode ser encontrada usando-se a Lei de Ohm. Podemos também descobrir a potência dissipada na forma de calor no resistor com a fórmula da Potência Geral, ou Lei da Potência de Ohm, conforme as fórmulas a seguir:

Lei de Ohm - Tensão

Lei de Ohm

Lei da Potência de Ohm

Lei da Potência de Ohm

Onde R é a resistência do resistor expressa em Ohms (Ω), P é a potência dissipada em Watts (W), U é a tensão elétrica em Volts (V) e I é a corrente em Ampères (A).

Vejamos alguns exemplos de cálculos:

Exemplo 1: Calcule a corrente que atravessa o resistor no circuito a seguir, sabendo que a fonte fornece 12 V de tensão, e o resistor tem uma resistência de 100 Ω:

Circuito com resistor e fonte de 12V

Resolução: 

Circuito com resistor e fonte -resposta

Exemplo 2: Usando o mesmo circuito do exemplo anterior, calcule a potência dissipada pelo resistor.

Resolução:

Circuito potência do resistor

Medindo o valor da Resistência de um Resistor

Podemos medir o valor da resistência de um resistor com o uso de um Ohmímetro, ou ainda com um multímetro, que geralmente possui  essa função embutida. Para isso, basta conectar as pontas de prova do aparelho medidor aos terminais do resistor que se deseja medir, preferencialmente com o resistor desconectado do circuito. Veja na figura a seguir a medição da resistência elétrica de um resistor com o uso de um multímetro:

Curso de Eletrônica - Medir Resistência Elétrica

Medindo um resistor com um multímetro

A marcação no corpo do resistor traz o valor “5K6“, o que significa que sua resistência elétrica é de 5600 Ω. Esse resistor, por ser de alta potência de dissipação, não traz a marcação de sua resistência na forma de um código de cores, mas sim de forma direta para leitura. Porém, o valor apresentado pelo multímetro é de 5,89KΩ, ou 5890Ω, o que se explica pelo fato do resistor possuir uma tolerância de 10% (também marcada no corpo) para mais ou para menos do valor da resistência nominal (marcada). Ou seja, seu valor real pode oscilar entre 5040 Ω (-10%) e 6160 Ω (+10%). O valor medido está, portanto, dentro da tolerância indicada. Também podemos ver a marcação “25W“, que significa que esse resistor pode dissipar uma potência de até 25 Watts, bastante alta por sinal para circuitos eletrônicos. Na prática, em eletrônica costumamos utilizar resistores de baixa dissipação, como 1/4 W e até mesmo 1/8 W.

Circuitos e Aplicações dos Resistores

Os resistores são empregados em uma infinidade de aplicações em circuitos eletrônicos, geralmente para limitar corrente ou provocar queda de tensão. A lista a seguir elenca algumas das aplicações mais comuns dos resistores:

  • Limitação de corrente em transístores e polarização
  • Proteção contra excesso de corrente em LEDs e outros dispositivos
  • Como Pullup e Pulldown em circuitos microcontrolados
  • Controle de volume de áudio
  • Redes RC e filtros
  • Divisores de Tensão

E diversas outras aplicações. Vamos estudar cada um desses circuitos em nosso curso de Eletrônica.

[youtube https://www.youtube.com/watch?v=tOG_MSa3u2M]

Curso de Eletrônica – Lei de Ohm

Lei de Ohm

Em 1826, o físico Georg Simon Ohm publicou alguns resultados de experimentos relacionados à resistência elétrica de diversos materiais, considerando os efeitos observáveis da passagem de corrente elétrica sobre esses materiais, e descobriu uma relação linear entre a quantidade de corrente que fluía por um material quando uma determinada tensão elétrica era aplicada a ele. Ele então definiu a resistência como sendo uma razão entre a tensão aplicada e a corrente elétrica resultante, originando a famosa fórmula:

Lei de Ohm - Resistência Elétrica
 

Chamamos esta fórmula de Lei de Ohm, onde R é a resistência elétrica, em ohms, U é a tensão elétrica, em volts, e I é a corrente elétrica, dada em ampères. De acordo com essa lei, a resistência de um ohm equivale a uma corrente elétrica de um ampère fluindo em um condutor submetido à tensão elétrica de um volt. Portanto,

Resistência, Tensão e Corrente - Lei de Ohm

Com a fórmula da Lei de Ohm, se tivermos duas grandezas, é possível calcular a terceira. Para memorizar mais facilmente a fórmula da Lei de Ohm e suas transformações, podemos usar o Círculo da Lei de Ohm, que pode ser visto na figura a seguir:

Círculo da Lei de Ohm - Fórmulas

Círculo da Lei de Ohm

Basta colocar o dedo indicador sobre a grandeza que se deseja calcular, e a fórmula correspondente aparecerá. Por exemplo, cobrindo-se a letra “I”, que representa a corrente elétrica, descobrimos que ela equivale à tensão elétrica “U” dividida pela resistência elétrica “R”. Já a tensão elétrica equivale à resistência multiplicada pela corrente.

Calculando grandezas com a Lei de Ohm

Vamos realizar alguns cálculos simples mostrando a aplicação da Lei de Ohm para determinar corrente, tensão  e resistência elétricas em circuitos simples.

Exemplo 01: No circuito a seguir, calcule a corrente que atravessa o resistor R1:

Calculando a Corrente no Circuito usando a Lei de Ohm

Exemplo 01

Neste circuito temos que a tensão da bateria é de 9V, e o resistor R1 possui uma resistência de 150Ω. Portanto, para calcular a corrente que atravessa R1 basta realizar o seguinte cálculo, adaptando a fórmula apresentada da Lei de Ohm:

Resposta do exercício 01 = corrente de 60 mA

Portanto, a corrente que atravessa o resistor é de 60 mA.

Exemplo 02: No circuito a seguir, calcule a resistência de R2, sabendo que a corrente total que atravessa o circuito é de 61 mA:

Calculando resistência com a Lei de Ohm

Exemplo 02

Neste caso temos dois resistores associados em série, e o diagrama esquemático nos informa os valores da tensão elétrica, que é de 9V, e a corrente total, de 61 mA, e além disso, temos o valor de um dos resistores, R1, que é de 100Ω. Para calcularmos a resistência de R2 precisamos saber que a corrente que atravessa o circuito todo é a mesma, portanto os 61 mA dizem respeito à relação entre a tensão de 9V e a resistência total do circuito, que é dada pela soma das resistências individuais dos resistores (associação em série). Porém, também podemos calcular essa resistência total, bastando para isso aplicar a lei de ohm, como segue:

Resposta exercício 02 resistência e corrente

A resistência total nesse circuito é de 147,5Ω, aproximadamente. Se R1 possui uma resistência de 100Ω, então a resistência de R2 pode ser facilmente calculada subtraindo-se o valor de R1 do valor da resistência total:

Calculando resistência em associação série com lei de ohm

 

O valor de R2 é, portanto, de 47,5Ω (valor arredondado).

Exemplo 03: No circuito a seguir, calcule o valor da tensão da fonte de alimentação, sabendo que a corrente total que atravessa o circuito é de 500 mA (0,5 A):

Calculando Tensão Elétrica com Lei de Ohm

Exemplo 03

Neste circuito temos a corrente elétrica total, que é de 500 mA (0,5 A), e três resistores de valores diferentes associados em série. Para que possamos calcular o valor da tensão elétrica da bateria, precisamos primeiramente calcular o valor da resistência equivalente do circuito. Como os resistores estão associados em série, basta somarmos os valores de suas resistências individuais para obtermos a resistência total:

Calcular voltagem com a Lei de Ohm

A resistência equivalente o circuito é de 228Ω. Agora podemos aplicar a Lei de Ohm para calcular o valor da tensão da bateria:

Calculando Tensão Elétrica com a Lei de Ohm

Portanto, a tensão da fonte de alimentação é de 114 volts.

Para saber mais sobre a Lei de Ohm, assista ao vídeo a seguir, onde alguns exemplos são explicados passo-a-passo:

[youtube https://www.youtube.com/watch?v=6iHvCoNOpK8]

Curso de Eletrônica – Carga Elétrica e Lei de Coulomb

Carga Elétrica

A carga elétrica é uma propriedade básica da matéria portada por algumas partículas elementares, que faz com que a matéria experimente uma força quando posicionada em um campo eletromagnético.

 

As cargas elétricas são de dois tipos gerais: positivas e negativas. Cargas elétricas de mesmo tipo exercem uma força de repulsão entre si, enquanto cargas de sinais opostos atraem-se mutuamente, quando próximas.

Um objeto possui carga elétrica negativa se possuir um excesso de elétrons, e carga elétrica positiva se tiver falta de elétrons (portanto, mais prótons do que elétrons em seus átomos). A matéria carregada eletricamente sofre influência de, e produz um campo eletromagnético. Desse modo, podemos dizer que a quantidade de carga elétrica que um corpo possui é determinada pela diferença entre q quantidade de prótons e a quantidade de elétrons que o corpo possui. Se o corpo tiver mais prótons que elétrons, está carregado com carga positiva; se tiver mais elétrons do que prótons, sua carga é negativa. Observe que apenas os elétrons podem variar, pois somente essas partículas podem se desligar de um átomo – os prótons estão sempre fixos no núcleo atômico, salvo em condições muito especiais, como uma explosão nuclear.

Cargas Elétricas - Atração e Repulsão

Atração e Repulsão de Cargas Elétricas

A unidade de medida de carga elétrica é o Coulomb, representado pela letra C, e o símbolo da carga elétrica é a letra Q.

A carga elétrica é quantizada, medida em múltiplos inteiros de uma unidade individual chamada de carga elementar e, que equivale a aproximadamente 1,602 x 10-19 C (tanto para prótons quanto para elétrons); quarks (partículas constituintes dos prótons e dos nêutrons) possuem valores de carga que são múltiplos inteiros de e/3. A carga do próton é +e e a do elétron, -e (negativa), por convenção.

Um coulomb equivale, portanto, a 6,242 x 1018 e, e é definido como a quantidade de cargas que atravessa a secção transversal de um condutor carregando um ampère em um segundo. Portanto:

Coulomb - Ampère por segundo

Uma das características mais importantes das cargas elétricas é de que elas são capazes de exercer uma força. Essa força está presente em um Campo Eletrostático, que envolve os corpos carregados. Se dois corpos de cargas de sinais diferentes forem colocados próximos um ao outro, o campo eletrostático irá se concentrar na região entre os corpos, e podemos representar o campo elétrico por meio de linhas de força entre os dois corpos. Quaisquer elétrons que adentrem esse campo serão atraídos pelo corpo com carga positiva, e repelidos pelo corpo com carga negativa. A figura a seguir ilustra esse fenômeno:

Campo Elétrico - Cargas Diferentes

Campo Eletrostático – Cargas Opostas

Já quando duas cargas de mesma polaridade são posicionadas próximas entre si. as linhas de força irão se repelir mutuamente. A figura abaixo ilustra esse fenômeno:

Campo Eletrostático – Cargas Iguais

Lei de Coulomb

É uma lei da física que descreve a interação eletrostática entre partículas eletricamente carregadas. Essa lei foi descoberta / publicada em 1785 pelo físico francês Charles Augustin de Coulomb. A lei de Coulomb diz o seguinte:

A magnitude da força eletrostática de interação entre duas cargas pontuais é diretamente proporcional ao produto das magnitudes das cargas e inversamente proporcional ao quadrado da distância entre elas.

Podemos expressar a lei de coulomb com a fórmula a seguir:

Fórmula da Lei de Coulomb

Onde:

  • F é a força de interação entre as cargas, em Newtons
  • K é a constante de coulomb, que vale 8,9875517873861764 x 109N.m2/c2
  • q1 e q2 são as cargas, em módulo (sem sinal)
  • d é a distância entre as cargas, em metros.

Podemos arredondar a constante k para o valor 9,0 x 10N.m2/c2

Como o coulomb é uma unidade de valor bem específico, é comum utilizarmos múltiplos ou submúltiplos em cálculos que envolvam carga elétrica. A tabela a seguir mostra alguns múltiplos e submúltiplos do coulomb, com seus respectivos valores:

Submúltiplos
Nome Símbolo Valor
femtocoulomb fC 10-15 C
picocoulomb pC 10-12 C
nanocoulomb nC 10-9 C
microcoulomb μC 10-6 C
milicoulomb mC 10-3 C
Múltiplos
Nome Símbolo Valor
kilocoulomb KC 103 C
megacoulomb MC 10C
gigacoulomb GC 109 C
teracoulomb TC 1012 C
petacoulomb PC 1015 C

Vejamos agora alguns exemplos de cálculos envolvendo cargas elétricas.

Exemplo 01: Um material possui uma carga em excesso de 12,48 x 1018 elétrons. Qual sua carga em coulombs?

Resolução:

Temos que a carga Q = Número total de elétrons / Carga de um coulomb. Então:

Resolução Exercício 01 de Carga Elétrica

A carga elétrica do material é de 2 coulombs.

Exemplo 02: Uma carga de 3,5C atravessa a seção transversal de um condutor metálico. Calcule quantos elétrons passam por esse condutor por segundo.

Resolução:

Sabemos que 1C de carga equivale a 6,24 x 1018e (número de cargas elementares = número de elétrons). Então, se temos 3,5C de carga, basta multiplicarmos os valores para determinar o número total N de elétrons que atravessam esse condutor:

Resolução do exercício 02 de Cargas Elétricas e Lei de Coulomb

Portanto, pelo condutor passam 2,184 x 1019 elétrons por segundo.

Exemplo 03: Duas cargas pontuais, cada uma com uma carga de +1,0 C, estão separadas por uma distância de 1,0 m. Determinar a magnitude da força de repulsão elétrica entre elas.

Resolução:

Sabemos que a força é de repulsão pois ambas as cargas possuem o mesmo sinal (+). Vamos extrair os dados do enunciado do problema:

Portanto, pelo condutor passam 2,184 x 1019 elétrons por segundo.

Exemplo 03: Duas cargas pontuais, cada uma com uma carga de +1,0 C, estão separadas por uma distância de 1,0 m. Determinar a magnitude da força de repulsão elétrica entre elas.

Resolução:

Sabemos que a força é de repulsão pois ambas as cargas possuem o mesmo sinal (+). Vamos extrair os dados do enunciado do problema:

  • q1 = 1,0 C
  • q2 = 1,0 C
  • d = 1,0 m
  • F = ?

Vamos usar a constante de coulomb arredondada para 9,0 x 109N.m2/c2. Aplicando a fórmula da Lei de Coulomb temos:

Exercício 03 de Lei de Coulomb

 

Portanto, a força de repulsão entre as duas cargas é de 9,0 x 109 Newtons.

Exemplo 04: Duas esferas estão carregadas com uma carga idêntica de -6,25 nC (nanocoulombs). A distância que as separa é de 61,7 cm. Determine a magnitude da força de repulsão elétrica entre elas.

Resolução:

Novamente, sabemos que a força é de repulsão porque ambas as esferas possuem carga de mesmo sinal, neste caso, negativa. Extraindo os dados do enunciado temos as seguintes informações:

  • q1 = -6,25 nC = -6,25 x 10-9 C
  • q2 = -6,25 nC = -6,25 x 10-9 C
  • d = 61,7 cm = 0,617 m
  • F = ?

Lembrando que 1 nC (nanocoulomb) equivale a 1 x 10-9 C. Os valores das cargas elétricas de cada esfera serão utilizados sem o sinal (em módulo). Vamos aplicar a fórmula da Lei de Coulomb para calcular a força de repulsão:

Exercício 04 de Lei de Coulomb

Portanto, a força de repulsão entre as esferas é de 9,23 x 10-7 Newtons.

Exemplo 05: Duas esferas com cargas de +3,37 μC (microcoulombs) e -8,21 μC atraem-se com uma força de -0,0626 N. Determine a distância que separa essas duas esferas.

Resolução:

Desta vez a força de interação entre as esferas é de atração, pois seus sinais são opostos. Isso significa que uma das esferas possui excesso de elétrons enquanto a outra esfera possui falta de elétrons. Vamos aos dados que usaremos no cálculo:

  • q1 = +3,37 μC = +3,37 x 10-6 C
  • q2 = -8,21 μC = -8,21 x 10-6 C
  • F = -0,0626 N (a força é negativa pois é de atração).
  • d = ?

Vamos aplicar os valores obtidos do enunciado do exercício na fórmula da Lei de Coulomb. Mas antes, vamos transformar a fórmula para que possamos calcular a distância de acordo com os outros parâmetros da fórmula:

Calcular distância com a Lei de Coulomb

E então, calculando:

Calculando distância via Lei de Coulomb

 

Portanto, a distância entre as esferas é de 1,99 m.

Eletricidade Estática

Quando um corpo possui cargas elétricas, ele se mantém carregado por um período de tempo variável, se essas cargas não forem descarregadas de alguma forma, sendo transferidas de ou para outro corpo. Quando isso ocorre, temos cargas em repouso no corpo em questão, às quais damos o nome de Eletricidade Estática. Vamos estudar a Eletricidade Estática em nosso próximo artigo, pois ela tem uma grande importância para nosso estudo de Eletricidade e Eletrônica.

[youtube https://www.youtube.com/watch?v=yvMgFHbOXyE]

Curso de Eletrônica – Medindo Corrente Elétrica com um Multímetro

Medindo Corrente Elétrica com o Multímetro

Nesta parte 02 do tutorial sobre uso de um multímetro, vamos mostrar como proceder para medir corrente elétrica em um circuito simples  e mostramos como medir tensão e resistência elétricas.

A medição de corrente elétrica com o multímetro deve ser realizada colocando-se o aparelho em série com o ramo do circuito que desejamos medir, pois a corrente deve atravessá-lo para que possa ser mensurada. Esse procedimento é diverso da medição de tensão elétrica, na qual colocamos as pontas de provas entre os dois pontos cuja diferença de potencial queríamos medir.

Vamos usar o circuito a seguir em nossos exemplos:

Curso de Eletrônica - Medir corrente com um multímetro

Temos uma fonte de tensão elétrica de 9V (uma bateria) e três resistores conectados a ela, sendo R1 e R2 resistores de 100 Ω, e R3 um resistor de 10 KΩ. R1 e R3 estão em série, assim como R1 e R2, e R2 e R3 estão em paralelo entre si.

Vamos às medidas. Primeiramente vamos determinar qual escala do multímetro usar. Para isso, vamos determinar a corrente total neste circuito, usando a Lei de Ohm. Primeiramente vamos calcular a resistência equivalente do circuito, que é dada por:

Eletrônica - Resistência Equivalente

Com o valor de resistência equivalente de 199Ω, vamos agora calcular a corrente total que passa pelo circuito:

Medindo corrente com multímetro - corrente total

Sabemos agora que a corrente total no circuito é de 45 mA. Podemos então selecionar a escala mais adequada de medição no multímetro, que no caso é a escala de 200 mA, corrente contínua. Claro que nem sempre será possível efetuar os cálculos de corrente como fizemos neste exemplo, pois os circuitos podem ser muito complexos ou os valores dos resistores podem estar ilegíveis, sem contar que podem haver outros tipos de componentes conectados, como capacitores, indutores, integrados, etc.; Na dúvida, sempre comece medindo pela escala mais alta.

Observação: a potência total dissipada pelo circuito é de P = U x I = 9 V x 0,045 A = 0,405 W. Portanto, procure usar resistores que suportem esse valor de potência (ao menos em R1, por onde a corrente total irá circular), como por exemplo 0,5 W, sob risco de queimá-los.

Veja o circuito montado em uma breadboard na figura abaixo:

Medindo corrente elétrica - circuito na breadboard

Vamos às medições de corrente. Primeiramente, ajustaremos a escala do multímetro e plugaremos a ponta de prova no borne correto, onde se lê “mA B”:

Medindo Corrente elétrica: Escala do multímetro

Medindo Corrente Elétrica: Escala do multímetro

Medição #01: Corrente que passa por R1

Para medir a corrente que atravessa R1, vamos desconectar um de seus terminais do circuito e então colocá-lo em série com o multímetro (função de amperímetro, A), como mostra a ilustração a seguir:

Medindo corrente elétrica em R1

Veja a corrente que foi medida no multímetro:

Medindo a corrente elétrica em R1 com o multímetro

O multímetro nos mostra o valor de 45,5 mA, muito próximo do valor calculado da corrente total, que foi de 45 mA. Essa pequena diferença se deve às tolerâncias dos resistores e às resistências dos fios (que não foram consideradas no cálculo), além da precisão do multímetro. Esperávamos esse valor, pois toda corrente atravessa esse resistor, que está ligado diretamente à fonte de alimentação do circuito.

Medição #02: Corrente que passa por R2

Agora vamos medir a corrente que passa pelo resistor R2. Conectamos de volta R1 e desconectamos um dos terminais de R2 para efetuar a medição. Esperamos obter um valor de corrente menor do que o que foi medido em R1, pois a corrente se divide entre os dois ramos do circuito, onde estão R2 e R3 respectivamente. Veja como deve ser feita a conexão no circuito para a medição:

Medindo corrente em R2

Veja a corrente que foi medida no multímetro:

Eletrônica - Medindo corrente em R2 com o amperímetro

Agora o multímetro mostra o valor de 45,1 mA. Como sabemos, a corrente total é de 45,5 mA, portanto faltam 45,5 – 45,1 = 0,4 mA. Onde está essa corrente? Atravessando o resistor R3 provavelmente. É o que veremos agora:

Medição #03: Corrente que passa por R3

Vamos medir a corrente que atravessa o resistor R3, cuja resistência é de 10 KΩ. Reconectamos R2 e desconectamos um dos terminais de R3 para efetuar a medição, conforme ilustra o diagrama esquemático abaixo:

Medindo a corrente elétrica em R3 com o multímetro

Veja a corrente que foi medida no multímetro:

Medindo a corrente elétrica em R3 com o ammeter

Eis os 0,4 mA que faltavam. Essa corrente circulou pelo ramo do circuito onde está R3, mostrando que a corrente se divide ao encontrar resistores em paralelo. Estudaremos esse fenônemo com muito mais detalhes nas lições sobre Análise de Circuitos, Leis de Kirchhoff, Teorema de Thevenin, e outras.

É isso aí! Aprendemos a medir corrente com um multímetro nesta lição. Não se esqueça: para isso, você deve colocar o multímetro em série com o ramos do circuito cuja corrente deseja medir, frequentemente desconectando algum componente desse circuito. Na próxima aula sobre multímetros vamos aprender a medir o ganho de transístores.

[youtube https://www.youtube.com/watch?v=qixMyb1-Xzg]

 

Curso de Eletrônica - Como usar Um Multímetro   Usando um Multímetro   Um Multímetro é um aparelho para testes e medição de grandezas elétricas, extremamente popular entre técnicos e engenheiros eletrônicos devido à sua grande utilidade, permitindo, mesmo nos modelos mais simples, efetuar a medição de Corrente, Tensão e Resistência Elétricas, permitindo assim realizar diversos tipos de diagnósticos em circuitos elétricos. Alguns modelos mais incrementados permitem realizar medições adicionais, como Capacitância, Frequência, Temperatura, Indutância e outras. Vamos utilizar neste artigo um Multímetro Digital, pois é o tipo mais amplamente usado hoje em dia, em larga escala. Porém, existem também os multímetros Analógicos, dos quais falaremos posteriormente. Os multímetros também podem ser de Bancada, que geralmente possuem várias funções extras, mais alcance de escala e maior precisão, e portáteis (de mão), muito úteis para carregar em uma maleta de ferramentas ou bolsa. Vamos usar um multímetro portátil neste artigo para realizar medições. Antes de prosseguir, recomendamos que o leitor revise seus conhecimentos sobre alguns conceitos básicos de eletricidade, tais como:

  • Corrente Elétrica
  • Tensão Elétrica
  • Resistência Elétrica

Partes de um Multímetro

Um multímetro possui três partes principais:

  • Display (Visor)
  • Botão de Seleção (Chave Seletora)
  • Bornes onde são conectadas as Pontas de Prova (Ponteiras)

O Visor é onde os resultados das medições são exibidos. Dependendo do modelo do multímetro, pode ter 3 ou mais dígitos, e um dígito adicional para representar o sinal de negativo. O botão de seleção é um botão rotativo, de múltiplas posições, que usamos para selecionar a função que desejamos medir, e a precisão da escala de medição, e também para desligar o multímetro quando não em uso, para economizar sua bateria, que geralmente é uma bateria de 9 V. As ponteiras são conectadas em bornes específicos presentes no multímetro, sendo uma ponteira geralmente na cor vermelha para representar a polaridade positiva, e outra ponteira na cor preta, para representar a polaridade negativa. Comumente, um multímetro possui mais de dois bornes de conexão para as ponteiras, os quais permitem a medição de outras grandezas quando as ponteira são trocadas de conector. Na foto abaixo podemos ver um exemplo de um multímetro típico (um Minipa modelo ET-2020), o qual usarei nas medições apresentadas no artigo: Multímetro Minipa ET-2020

Multímetro Minipa ET-2020

Esse multímetro nos permite realizar medições de Tensão Alternada e Contínua, Resistência, Corrente Elétrica (contínua apenas), realizar teste em baterias de 1,5 V e 9 V, e testar o ganho (hFE) de transístores NPN e PNP, além de realizar teste de continuidade. A figura abaixo mostra a localização de cada uma dessas funções na escala do multímetro:

Grandezas medidas pelo multímetro e escalas

Grandezas medidas pelo multímetro e suas escalas

Para efetuar essas medições, é necessário conectar as pontas de prova nos bornes corretos. A figura a seguir mostra as funções que são medidas em cada borne, lembrando que a ponteira preta sempre deve ser conectada ao borne COM, e a vermelha, ao demais bornes, conforme o teste que se deseja realizar: Bornes do multimetro e suas funções

Bornes do Multimetro e conexão das ponteiras

Efetuando Medições

Para efetuarmos medições, a primeira coisa a se fazer é determinar a grandeza a ser mensurada. Vamos começar efetuando medição de Tensão Elétrica. Para isso, vamos conectar as pontas de prova nos bornes conforme segue:

  • Ponteira vermelha no borne
  • Ponteira preta no borne COM

Agora, precisamos determinar que tipo de tensão elétrica vamos medir: Contínua (DCV) ou Alternada (ACV) . Vou efetuar a medição de uma Bateria de 9V, que opera com Tensão Contínua. Para isso, precisamos localizar no Multímetro a escala de tensão contínua, e ajustar sua precisão para acomodar o valor que pretendemos medir, que é de aproximadamente 9V. Para isso, escolhemos na escala o valor que for mais próximo e acima do valor esperado na medição, para evitar danos ao multímetro. Se estiver com dúvida com relação ao valor da tensão que será medida, coloque a chave de seleção no valor mais elevado e depois vá baixando, para aumentar a precisão, até o valor máximo ainda seguro para a medição. No meu caso, o valor de escala mais próximo e acima de 9V é o de 20 DCV (tensão contínua), que permite medir valores de 0 até 19,99 V. Veja a escala selecionada na figura abaixo: Multimetro - Escala de tensão DCV 20 Vamos à medição. Após selecionar a escala correta no aparelho girando a chave seletora, conecte as pontas de prova aos pólos da bateria, com firmeza, e verifique no visor do multímetro o valor medido. Caso você inverta a polaridade das ponteiras, não haverá problema, pois o multímetro mede a tensão em relação ao ponto comum (COM). Neste caso, a única diferença que você verá é que o sinal aparecerá com o sinal de negativo no visor. Veja a medição realizada na figura abaixo: Medindo uma bateria de 9V com o multimetro

Medindo a tensão elétrica de uma bateria de 9V com o multimetro

Note o valor medido: 9,81 V, um pouco acima do esperado para esta bateria, que é de 9 V. Isso pode se dar por conta de ajustes de calibração do multímetro ou por conta de variações na tensão da bateria em si. Note que esse multímetro possui uma posição específica para medição de baterias, tando de 9V quanto pilhas de 1,5V. Mas muitos multímetros não possuem essa opção, então a forma mais comum de efetuar essa medição é a que acabamos de mostrar.

Medindo Tensão Alternada: Rede Elétrica

Vamos medir agora a tensão da rede elétrica, em uma tomada de 110 V. Essa tensão é alternada, portanto vamos ter de alterar a posição da chave seletora para ACV, escolhendo a escala de 200 V (neste caso sabemos o valor que será medido; caos não soubéssemos se a tomada é de 110 V ou de 220 V, deveríamos colocar a chave seletora na posição 750 V para não danificar o multímetro). Veja a medição na figura a seguir: Medindo Resistência com o Multímetro: Posição 200 M

Medindo Resistência: Posição 200 M

Na posição 200M (que mede até 200 MΩ), o multímetro mostra o valor 01,0. A precisão do valor mostrado é muito baixa, e isso nos indica que a faixa da escala escolhida está muito elevada. Vamos alterar a posição da chave seletora para 20M para conseguirmos maior precisão nessa medição:

Medindo Resistência: Posição 20 M

Note que agora o valor mostrado é de 0,05, ainda muito impreciso. Vamos mudar novamente a posição da chave seletora, abaixando um nível da escala, para 2000K (que equivale a 2M): Medindo Resistência: Posição 2000 K

Medindo Resistência: Posição 2000 K

Na posição 2000K temos uma precisão melhor. Veja que o multímetro agora mostra o valor 051, e como a escala está em KΩ, isso indica que a resistência do resistor é de 51 KΩ. Podemos obter maior precisão nessa medição alterando novamente a escala, pois temos uma posição mais próxima de 51 KΩ, que é a posição 200K: Medindo Resistência: Posição 200 K

Medindo Resistência: Posição 200 K

Conseguimos a melhor precisão possível para essa medição: 51,6 na posição 200K, o que significa que a resistência medida é de 51,6 KΩ. Esse resistor é, na verdade, um resistor de 47 KΩ, e o valor apresentado (um pouco acima) se deve à tolerância do valor da resistência, que é de 10%. Portanto, o resistor pode ter sua resistência entre 42,3 KΩ e 51,7 KΩ (47 ±10%), o que indica que nosso resistor está em bom estado. O que acontece se tentarmos medir esse resistor em uma escala mais abaixo? Vamos medi-lo agora alterando a posição da chave seletora para 20 K: Medindo Resistência: Posição 20 K

Medindo Resistência: Posição 20 K

Veja que agora o multímetro não mostrou nenhum valor de resistência, e em vez disso, mostrou o valor “I”. Interpretamos esse valor com sendo “Infinito”, ou seja, o valor medido está além do valor máximo que pode ser medido nessa posição da escala. Neste caso, basta alterar a chave seletora para uma posição acima, ou até que um valor concreto seja mostrado no visor. Vamos medir a resistência de um pedaço de fio de cobre agora.

Medindo a Resistência de um Fio de Cobre

Um fio de cobre é um excelente condutor de eletricidade, e justamente por isso esperamos medir um valor de resistência muito baixa, tendendo a zero ohms. Na prática, fatores como o comprimento do fio, seu diâmetro, se é sólido ou de fios trançados, sua temperatura, etc.influenciam no valor da resistência medida. De qualquer forma, esperamos que o valor medido seja muito baixo, e por isso vamos colocar a escala do multímetro no menor valor possível, que no caso do meu aparelho é de 200 Ω (ou seja, mede até 200 ohms). Veja na figura a seguir essa medição sendo realizada: Medindo um fio de cobre com o multímetro

Medindo um fio de cobre com o multímetro

O valor medido foi de apenas 6,7 Ω e, na prática, pode ser até um pouco menor, devido ao contato entre as pontas de prova e o pedaço de fio, que é imperfeito. Também usei uma garra jacaré para fixar uma das ponteiras ao fio, pois precisei de uma das mãos para disparar a fotografia! Esse tipo de medição é muito útil para testar, por exemplo, cabos de força de equipamentos, que podem estar rompidos e, assim, impedir que a energia elétrica chegue ao aparelho, tornando-o inoperante. Caso a resistência medida seja maior do que alguns poucos ohms, ou se aparecer o valor “I”, então o cabo estará com problemas – provavelmente rompido. Na parte 02 desta lição sobre Multímetros vamos efetuar a medição de Corrente Contínua em um circuito simples e, posteriormente, medir o ganho de transístores NPN e PNP.[youtube https://www.youtube.com/watch?v=RfcTeP_PErY?list=PLA50BBmr8ti4g3j6rRJfiYqoyomWeDLU9][youtube https://www.youtube.com/watch?v=V7b7Bltf_3I?list=PLA50BBmr8ti4g3j6rRJfiYqoyomWeDLU9][youtube https://www.youtube.com/watch?v=kkWXLujBOts?list=PLA50BBmr8ti4g3j6rRJfiYqoyomWeDLU9][youtube https://www.youtube.com/watch?v=UWez5nbTL80?list=PLA50BBmr8ti4g3j6rRJfiYqoyomWeDLU9][youtube https://www.youtube.com/watch?v=OUytzHqFfso?list=PLA50BBmr8ti4g3j6rRJfiYqoyomWeDLU9][youtube https://www.youtube.com/watch?v=sgm0hN-4Sy8?list=PLA50BBmr8ti4g3j6rRJfiYqoyomWeDLU9][youtube https://www.youtube.com/watch?v=_rDPgBe0yYk?list=PLA50BBmr8ti4g3j6rRJfiYqoyomWeDLU9]

 

Curso de Eletrônica - Como funciona um LED RGB

 

Como funciona um LED RGB

 

Um LED RGB consiste em três LEDs encapsulados em um mesmo dispositivo, que podem ser controlados individualmente, cada um com uma cor distinta: um vermelho (Red), um verde (Green) e um azul (Blue). Abaixo podemos ver os símbolos esquemáticos de LEDs RGB de dois tipos: anodo comum e catodo comum:

LED RGB - anodo e catodo comuns

Eles possuem quatro terminais, sendo que três deles são conectados a cada LED de cor individual, e o quarto terminal é comum a todos. Existem duas configurações possíveis para esse terminal ("perna"): anodo comum e catodo comum.

É possível ativar as cores  individualmente, fazendo com que o LED se acenda uma das três cores disponíveis, ou ainda combinar as cores dos LEDs individuais para que sejam produzidas cores diferentes. Como internamente os três LEDs se localizam muito próximos entre si, o olho humano não é capaz de distingui-los, enxergando a mistura de cores finais.

Podemos gerar inúmeras cores distintas, combinando diferentes níveis de cada cor primária do LED. Podemos usar para isso a técnica de PWM, a qual permite ajustar o nível de brilho em cada um dos LEDs e, portanto a mistura dessas cores.

Na imagem abaixo podemos ver um LED RGB. Note que alguns dos terminais possuem tamanhos diferentes. No caso da ilustração, perceba que um dos terminais é maior, sendo esse o terminal comum (catodo no LED mostrado). O pino da esquerda correspondente ao LED interno vermelho, o central, ao verde, e o da direita, ao azul. É importante consultar o datasheet do componente para determinar as funções dos pinos; em sua ausência, teste os pinos, sempre usando um resistor (recomendo ao menos 220 Ω) em série com cada LED interno (proteção contra sobrecorrente), e lembrando que o terminal mais comprido é o catodo (ou anodo, dependendo do LED), o qual é conectado ao +V ao GND.

LED RGB Cristal

LED RGB

A figura a seguir mostra a pinagem do LED apresentado, assim como as dimensões dos pinos, em mm. Informações retiradas do datasheet LED:

LED RGB - Dimensões e pinagem

Na figura a seguir podemos ver uma sugestão de conexão de um LED RGB a uma breadboard (protoboard). O segundo pino da esquerda para a direita é o comum (anodo ou catodo):

Conectando LED RGB a uma breadboard

E na figura seguinte, o LED (catodo comum) conectado a uma fonte de energia, com três resistores limitadores de corrente 220 Ω protegendo cada LED individual. Nesta configuração, as três cores acenderão simultaneamente:

LED RGB conectado a uma bateria

Uma característica importante dos LEDs RGB é que cada LED individual interno, por ser de cor distinta, possui sua própria tensão de operação, o que deve ser levado em conta ao se projetar um circuito - os LEDs geralmente operam com a mesma corrente, porém com tensões diferentes; de acordo com a Lei de Ohm, isso significa que cada pino do LED irá necessitar de um resistor de valor de resistência diferente. A intensidade luminosa também tende a ser diferente, sendo que a cor vermelha geralmente possui menor intensidade do que o verde e o azul.

Abaixo temos alguns dados retirados do datasheet de um LED, modelo YSL-R596CR3G4B5C-C10 ilustrado o que foi dito:

Especificações de um LED RGB - Datasheet

Note que a corrente direta (IF) é a mesma para cada cor, mas a tensão elétrica é diferente, assim como a intensidade luminosa (medida em milicandelas, mcd), e a degradação luminosa após 1000 horas de uso – a cor verde se degrada mais rapidamente do que as demais.

Tipos de LEDs RGB

Os LEDS RGB são encontrados em dois tipos principais: Difuso e Transparente. Os LEDs transparentes possuem o invólucro em plástico transparente, e é possível visualizar os LEDs individuais dentro dele. Geralmente, ao acender mais de uma cor simultaneamente, conseguimos enxergá-las separadamente, sendo que este tipo de LED é muito útil para sinalização e iluminação, mas não para mixar as cores básicas e formar novas cores. Possui um brilho maior que os LEDs difusos.

Já os LEDs difusos tem o encapsulamento feito com resina epoxy translúcida, que não permite que vejamos os LEDs individuais internamente. Neste tipo de LED a luz gerada é difundida uniformemente no invólucro do dispositivo, sendo possível misturar a luz dos LEDs individuais e perceber um novo tom de cor, resultante da mistura das cores acionadas. A luz pode ser percebida em todos os lados do componente, pois a luz é espalhada em um ângulo de visão maior – porém com menor luminosidade.

LEDs Bicolores

Além dos LEDs RGB existem outros tipos de LEDs que trazem mais de uma cor em um único encapsulamento. Um LED bicolor possui, como o nome sugere, duas cores disponíveis – pois contém dois LEDs em um único encapsulamento. Podem ser encontrados em duas formas: com dois ou com três pinos (terminais).

Em um LED bicolor de dois pinos, dois LEDs de cores diferentes são combinados em um encapsulamento e conectados inversamente em paralelo. A figura a seguir esquematiza esse LED:

LED bicolor de dois pinos - verde e vermelho

A tabela da verdade a seguir mostra os estados possíveis para esse LED:

A B Estado
0 0 LEDs Apagados
0 1 Vermelho aceso
1 0 Verde aceso
1 1 LEDs apagados

Com este tipo de LED, portanto, apenas uma das cores pode ser acesa por vez.

Já em um LED bicolor de três pinos, dois LEDs de cores diferentes são conectados em reverso (mas não em paralelo), e um pino comum (catodo) é conectado a GND. A figura a seguir mostra o esquema interno desse LED:

LED bicolor de três pinos

A tabela da verdade a seguir mostra os estados possíveis para esse LED:

A B Estado
0 0 LEDs Apagados
0 1 Vermelho aceso
1 0 Verde aceso
1 1 Ambos acesos

Neste segundo tipo de LED bicolor, é possível acender um ou ambos os LEDs simultaneamente.

Nos próximos artigos falaremos mais sobre outros tipos de arranjos de LEDs, como os bargraphs e displays de sete segmentos.

[youtube https://www.youtube.com/watch?v=C0EvhO0UHgw]

Curso de Eletrônica - O que é um LDR (Light Dependent Resistor)

LDR (Light Dependent Resistor)

Um LDR (Resistor Dependente da Luz) é um tipo especial de resistor que apresenta uma mudança em sua característica de resistência elétrica quando submetido à ação da luz.

Também chamados de fotorresistores, apresentam um valor de resistência elevada em um ambiente escuro, e quando expostos à luz, têm a condutividade aumentada. Ou seja, oferecem baixa resistência elétrica quando iluminados.

Abaixo vemos os símbolos mais usuais para um LDR (o da esquerda é mais usual):

LDR - Light Dependent Resistor

E a foto abaixo mostra um LDR típico:

LDR - Light Dependent Resistor típico

Funcionamento de um LDR

Os LDRs são fabricados com materiais de alta resistência, como por exemplo o Sulfeto de Cádmio (Cds) ou Sulfeto de Chumbo (Pbs). Esses materiais possuem poucos elétrons livres quando colocados em ambientes escuros, e liberam elétrons quando há incidência de luz sobre eles aumentando sua condutividade. Chamamos a esse efeito de fotocondutividade.

Quando cessa a incidência de luz sobre o componente, os elétrons retornam à camada de valência e a resistência do material volta a aumentar.

No geral, os LDRs possuem resistências entre 1 MΩ e 10 MΩ no quando em ambiente escuro, e resistências que podem chegar a menos de 100 Ω quando iluminados.

Alguns LDRs são projetados para responder em luz infravermelha (como os de Sulfto de Chumbo - Pbs) ou ainda em luz ultravioleta.

Tipos de fotocondutores

Há dois tipos de fotocondutores:

  • Intrínseco: utiliza um material fotocondutivo que envolve a excitação de portadores de carga da banda de valência para a banda de condução;
  • Extrínseco: utiliza um material que envolve a excitação de portadores de carga entre uma impureza e a banda de valência e de condução. São mais empregados para operação no espectro do infravermelho.

Curva característica de resistência de um LDR

O gráfico a seguir mostra a curva característica de resistência de um LDR em relação à quantidade de luz incidente sobre ele, medida em lux:

Gráfico de iluminância versus resistência em LDR

Note que a resistência decai conforme a quantidade de luz incidente sobre o LDR aumenta. A quantidade de luz é medida em Lux, que mede o fluxo luminoso por unidade de área (iluminância); equivale a um lúmen por metro quadrado. A tabela a seguir mostra alguns valores típicos de iluminância em Lux para diversas fontes luminosas comuns:

 

Fonte de Luz Iluminância em Lux
Lua cheia 0,27 a 1,0
Lâmpada incandescente de 60 W a 1 m 50
Lâmpada fluorescente 500
Luz do Sol direta 32000 – 100.000
Pôr-do-sol 400

Expectro de luz

O efeito de diminuição da resistência também depende do comprimento de onda da radiação que atinge o LDR. Na figura a seguir podemos ver um gráfico de resposta espectral de um LDR típico.

LDR - Resposta espectral de Luz

Você pode notar no gráfico que a resposta relativa do LDR considerado é  muito maior entre cerca de 530 nm - ou seja, ele responde muito melhor à variação de luminosidade nessa faixa de comprimento de onda.

Tempo de Recuperação

A resistência do LDR não varia instantaneamente quando suas condições luminosas variam. Existe uma latência (tempo) que decorre até que a resistência atinja um valor estável.

Expressamos esse tempo de recuperação em KΩ/s, sendo um valor típico cerca de 200KΩ/s na passagem de um ambiente claro para um escuro, e muito mais rápido no sentido inverso – em torno de apenas 10 ms na transição do escuro para o iluminado. Esse é um fator importante que deve ser levado em consideração ao criar projetos que utilizem LDRs para, por exemplo, acionar dispositivos de acordo com o nível de iluminação ambiente.

Aplicações de LDRs

Falando em projetos que utilizam LDRs, listamos abaixo as principais aplicações desses componentes eletrônicos:

  • Acionamento de relés
  • Sistemas de iluminação noturna
  • Controle remoto de dispositivos
  • Luz intermitente
  • Controle de flashes
  • Compressores de áudio

Exemplo de uso de LDR

O circuito abaixo é um exemplo clássico de aplicação de um LDR: um LED acionado pela ausência de luz:

LDR - Circuito acionador de LED

 

Ao bloquear a incidência de luz sobre o LDR1, o transístor Q1 é polarizado e permite a passagem de corrente entre coletor e emissor, ativando o LED1.

É isso aí! Nesta lição exploramos os LDRs, resistores especiais que tem sua resistência elétrica alterada de acordo com a luz incidente.

[youtube https://www.youtube.com/watch?v=70UAjueO2Pg]
 Curso de eletrônica - Eletricidade Estática e ESD

Eletricidade Estática e ESD

A Eletricidade Estática é uma forma de eletricidade que ocorre quando existe um acúmulo de cargas elétricas, positivas ou negativas, na superfície de um corpo, causando um desbalanceamento de cargas. O nome Estática indica que estas cargas não se deslocam como ocorre na eletricidade dinâmica (corrente elétrica), na qual as cargas elétricas fluem através de um condutor.

O acúmulo de cargas em corpos ocorre quando a superfície desses corpos se toca e se separa, sendo que ao menos uma dessas superfícies possui uma alta resistência à passagem de corrente - portanto, é um isolante. Então, se dois materiais forem atritados entre si, cargas elétricas (elétrons) podem ser transferidas de um corpo para outro, e quando eles são separados, estas cargas permanecem presentes em suas superfícies, de forma estacionária.

Praticamente todo mundo já interagiu em algum momento com um corpo carregado de eletricidade. Um exemplo clássico ocorre quando usamos uma blusa de lã - o atrito da lã com nosso próprio corpo provoca o acúmulo de cargas tanto na lã, como em nossa pele, e é comum retirarmos a blusa e sentirmos os pelos do braço se arrepiando, ou ainda ouvirmos estalos, ou, em alguns casos mais raros, até mesmo vermos pequenas faíscas, caso tiremos essa roupa no escuro. Esse efeito, chamado de Descarga Eletrostática, se da por conta da descarga de energia estática acumulada.

Como ocorre a eletrização dos corpos

Todos os materiais são formados por átomos, que geralmente contém  a mesma quantidade de elétrons e prótons, por tanto, uma carga elétrica neutra (balanceada), pois os elétrons possuem carga negativa e os prótons, carga positiva. Os prótons permanecem no núcleo atômico e não podem ser retirados de lá, a não ser em uma reação nuclear no núcleo atômico também encontramos os Nêutrons, como o próprio nome diz, são neutros, não possuindo carga elétrica. Já os elétrons circundam o núcleo em "camadas" de distâncias variadas até o núcleo. Quando dois corpos quaisquer entram em contato físico, é possível que elétrons da camada mais externa dos átomos se movam de um corpo para outro, de modo que o corpo que recebe esses elétrons acaba com uma carga elétrica negativa acumulada (excesso de elétrons), e o corpo que perdeu elétrons fica com uma carga positiva (falta de elétrons). Quando separamos esses corpos, as cargas adquiridas se mantém, e então dizemos que ambos os corpos estão carregados com eletricidade estática - estão eletrizados.

Átomo Neutro - Eletrônica

Átomo Neutro - Mesmo número de prótons (bolinhas vermelhas) e elétrons (bolinhas pretas). As bolinhas azuis representam os nêutrons, que não influenciam nos fenômenos elétricos.

A figura a seguir ilustra esse processo de eletrização por atrito:

Eletrização por atrito - eletricidade estática

Eletrização por atrito de dois corpos

No geral, se um material tiver os elétrons na última camada com uma ligação fraca ao átomo, ele tende a perder elétrons, ao passo que materiais que possuam a última camada com poucos elétrons (pouco preenchida) tende a ganhar elétrons. Quando esses materiais são postos em contato, a transferência dos elétrons pode ocorrer. Damos a esse fenômeno o nome de "efeito triboelétrico". O prefixo tribo - desse termo vem do grego e significa "atritar, esfregar", o que mostra claramente como se dá o efeito.

A eletrização de um corpo também pode se dar por contato. Neste caso, um dos corpos considerados é um condutor que possui cargas elétricas em sua superfície (está eletrizado) e, ao tocar em um outro corpo com um potencial elétrico diferente, haverá a distribuição das cargas entre ambos os corpos, até que atinjam o equilíbrio entre si. Se os corpos forem então separados, ambos estarão carregados, com a mesma quantidade de cargas. Assim, é possível carregar um condutor transferindo para ele parte da carga contida no outro corpo.

Série Triboelétrica

A série triboelétrica é uma listagem de materiais ordenados de acordo com a separação de cargas que ocorre quando são trocados por outro corpo. Em outras palavras, a série triboelétrica mostra quais materiais adquirem carga positiva ou negativa quando atritados ou quando entram em contato entre si, e a intensidade relativa da quantidade de cargas adquiridas. Sempre que um material está numa posição mais inferior da série, e é atritado com um material em posição superior, ele adquire uma carga mais negativa ( e o material acima, uma carga mais positiva). Quanto mais longe os materiais estiverem entre si na listagem, maior a quantidade de cargas que eles podem adquirir se atritados um com o outro. Abaixo temos uma listagem resumida de materiais na série triboelétrica:

Materiais mais positivamente carregados (+)

  • Espuma de Poliuretano
  • Cabelo
  • Nylon / Pele seca
  • Vidro
  • Acrílico
  • Couro
  • Quartzo
  • Mica
  • Seda
  • Alumínio
  • Papel
  • Algodão

Aço (sem carga)

  • Âmbar
  • Poliestireno
  • Borracha
  • Níquel
  • Enxofre
  • Prata
  • Acetato
  • Borracha Sintética
  • Poliéster
  • Polietileno
  • Polipropileno
  • Vinil
  • Silicone
  • Ebonite

Materiais mais negativamente carregados (-)

Portanto, se você atritar um dos materiais do final da lista com um dos materiais do inicio da lista, como por exemplo um pedaço de plástico polipropileno com um tecido de nylon, haverá a transferência de cargas (elétrons) entre eles, ficando ambos eletrizados - o material do início da lista mais positivamente, e o final, mais negativamente.

Podemos fazer um experimento caseiro e simples para demonstrar o acúmulo de eletricidade estática em corpos após o atrito entre eles: vamos esfregar um objeto de plástico contra um tecido sintético e então aproximar esse objeto de uma bolinha de isopor suspensa por um fio de linha. Veja o que acontece:

Eletricidade Estática atraindo bolinha de isopor

Perceba que a bolinha de isopor é atraída em direção ao plástico, devido às cargas elétricas acumuladas sobre este objeto. O mesmo efeito pode ser obtido, de forma ainda mais simples, penteando seu cabelo (seco) com um pente de plástico e então aproximando o pente de um montinho de papel picado sobre a mesa. Veja o que ocorre:

Eletricidade Estática atraindo papel picado

Os pedacinhos de papel picado são atraídos em direção ao pente, devido às cargas elétricas acumuladas sobre ele, que atraem os átomos que compõe o papel devido a diferença de cargas entre esses objetos.

Perigos da Eletricidade Estática: Descarga Eletrostática

Como vimos anteriormente, cargas elétricas podem se acumular na superfície dos corpos, incluindo um corpo humano, se objetos forem atritados entre si. A quantidade de cargas que podem se acumular dessa forma é altamente variável, dependendo de uma série de fatores, como os tipos de materiais envolvidos, duração do contato, umidade do ar, entre outros. A tensão elétrica que se acumula pode, na verdade chegar a milhares de volts em muitos casos. É isso, mesmo, você leu direito: milhares de volts. Uma simples esfregadela dos pés em um tapete ou carpete, mesmo calçando sapato, pode fazer com que seu corpo acumule mais de mil volts de eletricidade estática. Em casos extremos esta tensão pode chegar a quase 10.000 volts!

Já tocou na maçaneta da porta, ou mesmo no braço de outra pessoa e sentiu um leve choque? Se sim, o que você experimentou foi uma descarga eletrostática (ESD, electrostatic discharge). As cargas acumuladas no seu corpo foram rapidamente descarregadas sobre outro corpo que tinha muito menos cargas, ou então estava neutro (ou vice-versa). A corrente elétrica nesses casos é muito baixa, por isso você não sofre nada além da pequena descarga, porém a tensão é elevada. E é aí que podemos ter problemas.

Descarregar três ou quatro mil volts em uma maçaneta é uma coisa; agora imagine descarregar essa tensão elétrica sobre um corpo extremamente sensível, como um chip semicondutor (circuito integrado), que funciona com, por exemplo, 5V de tensão! Em um caso desses, é altamente provável que o chip seja destruído internamente – você não o verá em chamas, mas sua conexões internas podem ser totalmente destruídas, e o chip fica inutilizado. Este é um problema gigantesco em um laboratório de eletrônica ou de informática, onde técnicos manuseiam componentes eletrônicos e placas sensíveis, como por exemplo um microprocessador de computador ou uma placa de vídeo – elementos que tem custo elevado, inclusive, e que podem ser danificados permanentemente simplesmente por serem tocados por uma fração de segundo!

Para evitar esse tipo de problema é recomendado que o técnico ou engenheiro que vai manusear componentes delicados use algum equipamento de proteção contra ESD, como por exemplo uma pulseira anti-estática, que deve conectar o braço da pessoa a algum ponto aterrado, preferencialmente na bancada de trabalho. Assim, evita-se o acúmulo de cargas no corpo e diminui-se drasticamente o problema da ESD. Também recomenda-se armazenar componentes sensíveis à ESD em embalagens adequadas, como por exemplos sacos plásticos antiestáticos.

Pulseira Anti-estática

Procure também usar roupas fabricadas com tecidos de fibras naturais, como algodão, em vez de usar tecidos sintéticos quando estiver no laboratório ou trabalhando com dispositivos e componentes sensíveis, pois os tecidos sintéticos tendem a acumular cargas estáticas com muito mais facilidade.

Um outro grande perigo de uma descarga eletrostática se dá quando a descarga causa uma faísca em um ambiente onde há gases inflamáveis, como por exemplo em ambientes industriais. Muitos acidentes são causados por conta desse fenômeno, algumas vezes com prejuízo de vidas humanas, além do prejuízo material envolvido.

Veja abaixo uma simulação interativa e divertida da Universidade do Colorado sobre eletricidade estática e ESD. Clique na perna do John Travolta e a arraste para frente e para trás para carregar seu corpo com eletricidade estática; depois, clique e arraste seu braço para produzir uma descarga na maçaneta da porta:

[youtube https://www.youtube.com/watch?v=bLSyoeo8XeQ?list=PLUYgUK-nZTo-wLdsJ6P_XfhVZ0kh8Xczo]

Eletrônica - O que são Resistores de Pull-Up

Resistores de Pull-Up

Curso de Eletrônica - Resistores de Pull-up

Introdução

Resistores de Pull-Up são muito comuns quando usamos microcontroladores (MCUs) ou qualquer dispositivo que opere com lógica digital. Este tutorial irá explicar quando e onde usar  resistores de pull-up, e então faremos um cálculo simples para mostrar porque os resistores de pull-up são importantes.

Leituras sugeridas

Abaixo listamos alguns conceitos que são importantes conhecer antes de prosseguir com o estudo dos pull-ups:

  • O que são Circuitos Eletrônicos?
  • Resistores
  • Tensão, Corrente e Resistência
  • Logica Digital
  • Entradas /Saídas

O que é um Resistor de Pull-Up

Digamos que você tenha um microcontrolador com um pino configurado como entrada. Se não houver nada conectado ao pino e seu programa efetuar a leitura do pino, ele será alto (VCC) ou baixo (OV)? É difícil dizer. Este fenômeno é conhecido como Estado Flutuante. Para prevenir esse estado desconhecido, um resistor de pull-up ou de pull-down irá assegurar que o pino esteja em um estado alto ou baixo, usando uma pequena quantidade de corrente.

Por motivo de simplicidade, vamos nos focar neste tutorial em resistores de pull-up, pois eles são mais comuns que os resistores de pull-down. Eles operam usando os mesmos princípios, exceto que o resistor de pull-up é conectado ao nível alto de tensão (geralmente 3,3v ou 5v), e o resistor de pull-down é conectado ao terra, ou nível baixo.

Os pull-ups são frequentemente usados com botões e chaves interruptoras. Veja o circuíto abaixo:

Curso de Eletrônica - Resistores de Pull-up

Com um resistor de pull-up, o pino de entrada irá ler um estado em nível alto quando o botão não está sendo pressionado. Em outras palavras, uma pequena quantidade de corrente flui entre VCC e o pino de entrada, de modo que o pino de entrada possui um valor próximo a VCC. Quando o botão é pressionado, ele conecta o pino de entrada diretamente a GND (ground). A corrente flui através do resistor até o terra, de modo que o pino agora apresenta nível baixo de tensão. Tenha em mente que, s e o resistor não estivesse no circuito, o botão conectaria o VCC diretamente ao GND, o que é uma situação muito ruim, e é conhecida como um curto circuito.

Bem, qual valor de resistor você deve escolher?

A resposta mais fácil e curta é que você quer um resistor cujo valor esteja próximo a 10 KΩ para ser usado como pull up.

Um resistor de valor baixo é chamado de pull-up forte (corrente maior flui), e um resistor de valor alto é chamado de pull-up fraco (menor corrente flui).

Curso de Eletrônica - Resistores de Pull-up

O valor do resistor de pull-up precisa ser escolhido para satisfazer a duas condições:

  1. Quando o botão é pressionado, o pino de entrada vai a nível baixo. O valor do resistor R1 controla quanta corrente você quer que flua a partir de VCC através do botão, e então para GND.
  2. Quando o botão não é pressionado, o pino de entrada fica com nível alto. O valor do resistor de pull-up controla a tensão no pino de entrada.

Para a primeira condição, não queremos um valor de resistência muito baixo. Quanto menor a resistência, mais energia será usada quando o botão é pressionado. Geralmente queremos um valor de resistência grande (como 10kΩ), mas não o queremos tão grande que chegue a causar conflito com a condição 2. Um resistor de 4MΩ poderia trabalhar como um pull-up, mas sua resistência é tão grande que pode não conseguir realizar seu trabalho em 100% do tempo.

A regra geral para a condição 2 é usar um resistor de pull-up (R1) que seja uma ordem de magnitude (1/10) menor do que a impedância de entrada (R2) do pino de entrada. Um pino de entrada em um microcontrolador possui uma impedância que pode variar entre 100 kΩ e 1 MΩ. Para esta discussão, impedância é só uma forma incrementada de dizer "resistência" e é representada pelo resistor R2 na figura acima. Assim, quando o botão não está sendo pressionado, uma quantidade muito pequena de corrente flui de VCC através do resistor R1 ao piano de entrada. O resistor de pull-up R1 e a impedância R2 do pino de entrada dividem a tensão, e esta tensão precisa ser alta o suficiente para que o pino de entrada apresente um nível alto quando lido.

Por exemplo, se você usar um resistor de 1 MΩ como pull-up R1 e a impedância do pino de entrada R2 estiver na ordem de 1 MΩ  (formando um divisor de tensão), a tensão no pino de entrada será em torno de metade da tensão VCC, e o microcontrolador pode não registrar o pino como não estando no nível alto. Em um sistema 5v, o que um microcontrolador lê em um pino de entrada se sua tensão for de 2,5v? É um nível alto (HIGH) ou baixo (LOW)? O MCU não sabe e você ler esse valor tanto como nível alto quanto como nível baixo. Uma resistência entre 10kΩ e 100kΩ para R1 deve evitar a maioria dos problemas.

Como os resistores de pull-up são tão comumente necessários, muitos microcontroladores como o ATmega328 na plataforma Arduíno possuem pull-ups internos que podem ser habilitados ou desabilitados. Para habilitar os pull-ups internos em um Arduíno, você pode usar a seguinte linha de código na função setup():

pinMode(5, INPUT_PULLUP); // Habilita o resistor de pull-up interno no pino 5

Outra coisa a se notar é que quanto maior a resistência para o pull-up, mais devagar o pino responderá a mudanças de tensão. Isso ocorre porque o sistema que alimenta o pino de entrada é essencialmente um capacitor acoplado com o resistor de pull-up, desta maneira formando um filtro RC, e filtros RC levam algum tempo para carregar e descarregar. Se você tiver um sinal que mude realmente rápido (como um USB), um resistor de pull-up de valor elevado pode limitar a velocidade na qual o pino pode mudar de estado de forma confiável. É por isso que você verá frequentemente resistores de valores entre 1kΩ e 4.7KΩ em linhas de sinais USB.

Todos esses fatores contam na decisão sobre qual valor o resistor de pull-up deve ter.

Calculando o Valor de um Resistor de Pull-upv

Usando um resistor de pull-up

igamos que você queira limitar a corrente a aproximadamente 1mA quando o botão é pressionado no circuito acima, onde o valor de VCC 5V.Qual valor de resistência você deve usar?

É fácil demonstrar como calcular o resistor de pull-up usando a Lei de Ohm:

V = I x R

Em relação ao esquema acima, a Lei de Ohm agora é:

Calculando corrente com resistor de pull-up

Rearranjamos a equação acima com um pouco de álgebra simples para resolvê-la para o resistor:

Cálculo de corrente elétrica com resistor de pull-up

Lembre-se de converter todas as unidades em volts, ampères e ohms antes de efetuar o cálculo (por ex,.: 1mA = 0,001 Ampères). E solução então é usar um resistor de 5kΩ.

[youtube https://www.youtube.com/watch?v=AQ3PeiEw1gg&w=560&h=315]

Curso de Eletrônica - O que é eletricidade

O que é eletricidade?

Inicio

A eletricidade nos rodeia - tecnologias como telefones celulares, computadores, lâmpadas, aparelhos de ar-condicionado e vídeo-games funcionam à base de energia elétrica. É quase impossível não depender da eletricidade em nosso mundo moderno. E, mesmo que você que você consiga se "desplugar", a eletricidade ainda é encontrada na natureza, desde os raios em uma tempestade até os sinais elétricos nas sinapses em nossos neurônios. Mas, o que exatamente é a eletricidade? Bem, esta é uma questão um tanto quanto complicada, e quanto mais nos aprofundamos no assunto, mais questões vão surgindo - e na verdade, não há uma resposta definitiva, apenas representações abstratas de como a eletricidade interage com o meio ao nosso redor.

Animação: Relâmpagos

A Eletricidade é um fenômeno natural que ocorre na natureza e se apresenta de muitas formas diferentes. Vamos nos focar neste tutorial na noção de Corrente Elétrica, o fenômeno que alimenta nossos equipamentos eletro-eletrônicos. Vamos tentar entender como a eletricidade flui de uma fonte de energia através de fios, acendendo LEDs, acionando motores e alimentando nossos dispositivos de comunicação.

A Eletricidade é definida sucintamente com o fluxo de cargas elétricas, mas há muito mais por trás dessa simples declaração. De onde as cargas vem? Como elas se movem? Para onde vão? Como a carga elétrica provoca movimento mecânico, ou produz luz? São muitas as questões a serem respondidas, e para começar vamos precisar analisar o que ocorre em nível atômico na matéria, estudando um pouco sobre os átomos que constituem basicamente tudo com o que nós interagimos na vida.

Por tanto, vamos falar um pouco sobre física básica, abordando conceitos como força, energia, átomos, partículas atômicas e campos. Não nos aprofundaremos em demasia nesses assuntos, e caso queira conhecer mais a respeito, deverá consultar outras fontes - como as que citaremos no final do artigo.

Átomos

Para entender os fundamentos da eletricidade, precisamos primeiramente entender os átomos, que são blocos fundamentais na construção da matéria. Os átomos se apresentam em diferentes formas nos elementos químicos, como hidrogênio, oxigênio, ferro e cobre. Os átomos de muitos tipos podem se combinar para formar moléculas, as quais constituem a matéria que nós podemos ver e tocar fisicamente.
Os átomos são muito, mas muito pequenos, com no máximo cerca de 300 pm (picômetros) de tamanho  (3 x 10-10 ou 0.0000000003 metros!). Uma moedinha de cinco centavos pode ter cerca de 3,2 x 1022   átomos (32.000.000.000.000.000.000.000 de átomos) de metal em sua contribuição.

Porém, mesmo o átomo não é pequeno o suficiente para explicar como funciona a eletricidade. Precisamos mergulhar mais a fundo e observar os blocos de construção dos próprios átomos, que são as partículas subatômicas - em nosso caso, prótons, elétrons e nêutrons.

Blocos de Construção dos Átomos

Um átomo é "construído" com uma combinação de três partículas distintas: prótons e os nêutrons se localiza, densamente unidos. Rodeando o núcleo encontramos grupos de elétrons em órbita, uma região chamada de "eletrosfera". Veja um modelo conceitual simples de átomo na figura a seguir:

Curso de Eletrônica: Modelo de um átomo

Um modelo de átomo muito simplificado. Não está em escala, mas é útil para entender como um átomo é constituído. Um núcleo central de prótons e nêutrons é rodeado por elétrons em órbita (a exceção é o átomo de hidrogênio, que não possui nêutrons).

Todo átomo tem ao menos um próton em seu núcleo. O número de prótons no átomo é importante, por que ele define que elemento químico o átomo representa. Por exemplo, um átomo com apenas um próton é o hidrogênio, um átomo com 29 prótons é o cobre, e um átomo com 79 prótons é o ouro. Esta contagem do número de prótons é conhecida como Número Atômico do átomo.

Os nêutrons no núcleo servem a um propósito muito importante: eles mantém os prótons unidos no núcleo e determinam o isótopo do átomo. Mas os nêutrons não são importantes em nosso estudo sobre eletricidade, de modo que não falaremos sobre eles neste tutorial.

Já os elétrons são críticos para o funcionamento da eletricidade - aliás, a própria palavra eletricidade é derivada em elétron. Em sua forma mais estável, um átomo terá o mesmo número de elétrons e de prótons, sendo então um átomo neutro. De acordo com o modelo atômico de Bohr mostrado abaixo, um núcleo com 29 prótons é rodeado por exatos 29 elétrons:

Curso de Eletrônica - Modelo de átomo de cobre

O modelo atômico de Bohr é um modelo muito útil para nossos estudos sobre eletricidade.

Os elétrons não ficam presos eternamente aos átomos. Os elétrons na órbita ("camada") mais externa do átomo são chamados de valência. Se houver força externa suficiente, um elétron da camada valência pode escapar da órbita do átomo e se tornar livre. Elétrons livres nos permite movimentar cargas, o que é preceito fundamental da eletricidade. Vamos falar então sobre as cargas elétricas.

Cargas Circulantes

Como mencionamos anteriormente, a eletricidade é definida como o fluxo de cargas elétricas. Carga é uma propriedade da matéria, assim como massa, volume ou densidade. Podemos medir as cargas elétricas, determinando a quantidade de cargas que um copo possui. E um outro conceito chave no entendimento das cargas elétricas é que elas existem em dois tipos: positivas (+) ou negativas (-).

Para que possamos mover as cargas necessitamos de portadores de carga, e eles são os elétrons. Os elétrons carregam uma carga negativa (por convenção), enquanto os prótons possuem carga positiva. Já os nêutrons não possuem carga - são "neutros". Os elétrons e os prótons carregam a mesma quantidade de carga - apenas o tipo é diferente.

Eletrônica - Elétron, próton e nêutron em um átomo

Um átomo de lítio

As cargas dos elétrons e dos prótons são importantes, pois elas nos fornecem meios de exercer força sobre elas: a Força Eletrostática

Força Eletrostática

A Força Eletrostática, também conhecida como Lei de Coulomb, é uma força que opera entre cargas. Cargas do mesmo tipo se repelem mutuamente, enquanto cargas de tipos opostos se atraem.

Eletrônica - Atração e repulsão

A quantidade de força que age sobre duas cargas depende da distância entre elas. Quanto mais próximas duas cargas estiverem entre si, maior a força, tanto de atração, quanto de repulsão. Graças à força eletrostática, os elétrons "empurração" outros elétrons e serão atraídos por prótons. Esta força é parte da "cola" que mantém os átomos unidos, e é também a força que precisamos para fazer como que os elétrons e, consequentemente, as cargas possam fluir.

Fazendo com que as cargas circulem

Os elétrons nos átomos podem agir como portadores de carga, porque cada elétron carrega uma carga negativa. Se pudermos libertar um elétron de um átomo e força-lo a se mover, poderemos criar eletricidade.

Considere o modelo atômico de um átomo de cobre, um dos melhores materiais para carregar cargas elétricas. Seu estado estável, o cobre possui 29 prótons em seu núcleo e um número igual de elétrons orbitando ao redor desse núcleo. Os elétrons orbitam em distâncias variáveis do núcleo do átomo, e elétrons mais próximos ao núcleo sofrem uma força de atração muito maior do que os elétrons posicionados em órbitas mais distantes. Os elétrons mais externos de um átomo são chamados de elétrons de valência, e requerem pouca força para se libertarem do átomo em questão.

Eletrônica - Elétron de valência em um átomo

Diagrama de átomo de cobre: 29 prótons no núcleo, rodeados por camadas de elétrons em circulação. Os elétrons mais próximos do núcleo são muito difíceis de remover enquanto os elétrons de valência, na camada externa precisam de pouca energia para serem ejetados do átomo.

Usando força eletrostática suficiente nos elétrons de valência - tanto "empurrando" com um outra carga negativa "puxando" com uma carga positiva - podemos ejetar o elétron da órbita ao redor do átomo, criando assim um elétron livre.

Consideramos agora um fio de cobre: matéria preenchida com incontáveis átomos de cobre (na verdade, podemos contá-los!). Enquanto nosso elétron livre flutua no espaço entre os átomos, ele é empurrado e puxado pelas cargas ao redor daquele espaço. Neste caos o elétron livre irá eventualmente encontrar um outro átomo para se acomodar; desta forma, a carga negativa deste elétron irá ejetar outro elétron da camada de valência do átomo.

elétron irá ejetar outro elétron da camada de valência do átomo. Agora temos um novo elétron vagando pelo espaço livre, eventualmente agindo como o anterior. Este efeito em cadeia pode continuar indefinidamente e criar um fluxo de elétrons denominado Corrente Elétrica.

Curso de Eletrônica - Corrente Elétrica
Um modelo muito simplificado de cargas fluindo através de átomos e constituindo uma corrente elétrica.

Condutividade

Alguns tipos de átomos elementares são mais eficientes do que outros na tarefa de libertar seus elétrons. Para obter o melhor fluxo possível de elétrons nós precisamos usar átomos que não “prendam” os elétrons da camada de valência com muita força. A condutividade de um elemento mede o quão fortemente unido um elétron está a um átomo.

Elementos que possuem alta condutividade, com elétrons de alta mobilidade, são chamados de Condutores. Estes são os tipos de materiais que usamos para fazer fios e outros componentes que auxiliam no fluxo de elétrons. Metais como cobre, prata e ouro são geralmente as melhores escolhas para bons condutores.

Já elementos com baixa condutividade são chamados de Isolantes. Os isolantes servem a um propósito muito importante: impedir o fluxo de elétrons. Isolantes comuns são o vidro, borracha, plástico e o ar.

Eletricidade Estática e Dinâmica

Há duas formas que a eletricidade pode assumir: estática ou dinâmica. Quando trabalhamos com eletrônica, é muito mais comuns lidarmos com eletricidade dinâmica, mas é importante que tenhamos uma boa compreensão sobre eletricidade estática também.

Eletricidade Estática

A eletricidade estática existe quando há um acúmulo de cargas opostas em objetos separados por um isolante. Ela existe até que os grupos de cargas opostas possam encontrar um caminho entre si para balancear o sistema.

Eletricidade Estática - Isolantes

Quando as cargas encontram um meio de se igualarem, uma descarga eletrostática ocorre. A atração das cargas se torna tão grande que elas podem fluir através até mesmo dos melhores isolantes. Descargas eletrostáticas podem ser perigosas dependendo de qual meio as cargas atravessam e para quais superfícies elas são transferidas. Cargas que se equalizam por meio do ar podem resultar em uma descarga visível, pois os elétrons transferidos colidem com outros elétrons no ar,o qual se torna excitado e libera energia na forma de luz.

Eletricidade - Descarga Elétrica

Uma descarga controlada. Cargas opostas são criadas em cada um dos condutores até que sua atração seja tão grande que elas acabem fluindo através do ar.

Um dos exemplos mais dramáticos de descarga eletrostática é o raio. Quando um sistema de nuvens coleta carga suficiente em relação a outro grupo de nuvens ou ao solo, as cargas tentarão se equalizar. Quando a nuvem é descarregada, quantidades massivas de cargas positivas (às vezes negativas) percorrem através do ar a partir do solo até a nuvem, causando o efeito visível do relâmpago.

Também podemos ver o efeito da eletricidade estática quando nos penteamos com um pente plástico e depois o aproximamos de papel picado sobre a mesa. O papel é atraído para o pente devido à eletricidade estática acumulada. A fricção do pente com o cabelo provoca a transferência de elétrons de um material para o outro, de modo que o objeto que ganha elétrons se torna negativamente carregado, e o que perde elétrons, se torna positivamente carregado.

Eletricidade Estática atraindo papel picado

Pente atraindo papel picado por meio de eletricidade estática.

Ao trabalharmos com eletrônica, geralmente não teremos de lidar com eletricidade estática. Quando o fizermos, será geralmente para tentar proteger componentes eletrônicos sensíveis contra descargas eletrostáticas, que podem danificá-los facilmente. Medidas preventivas contra eletricidade estática incluem o uso de pulseiras anti-estáticas, mantas de borracha e outros tipos de equipamento de segurança.

Alguns equipamentos fazem uso do fenômeno da eletricidade estática, como por exemplo as impressoras a Laser, que utilizam cargas estáticas para formarem as imagens a serem impressas no papel.

Eletricidade Dinâmica

Eletricidade dinâmica é a forma de eletricidade que permite a existência de todos os nossos equipamentos eletrônicos. Esta forma de eletricidade existe quando as cargas são capazes de fluir em movimento constante. De forma oposta à eletricidade estática onde as cargas se acumulam e permanecem em descanso, na eletricidade dinâmica  as cargas estão sempre se movimentando. Este é o tipo de eletricidade com a qual nos ocuparemos no resto do tutorial.

Circuitos

Para que possa fluir, a corrente elétrica necessita de um circuito, que pode ser descrito como um loop fechado de materiais condutores. Um circuito pode ser tão simples quanto um fio conectado ponta com ponta, porém circuitos realmente úteis normalmente  contém uma combinação de fios e outros componentes que controlam o fluxo de eletricidade. Um circuito, porém, não pode ter partes isolantes internamente que o dividam em seções separadas.

Se você tiver um fio de cobre e quiser induzir um fluxo de elétrons através dele, todos os elétrons livres precisam fluir na mesma direção. O cobre é um excelente condutor, perfeito para fazer cargas fluírem. Se um circuito feito com fios de cobre é quebrado, as cargas não fluirão através do ar, o que as impedirá também de prosseguir a partir do ponto onde o fio se partiu.

Por outro lado, se o fio for conectado nas duas pontas, todos os elétrons possuirão um átomo vizinho e poderão fluir na mesma direção geral.

 

Após essas reflexões, conseguimos entender como os elétrons podem fluir (se movimentar num condutor), mas como fazemos para que eles entrem em movimento a princípio? Então, uma vez que os elétrons estejam fluindo, como eles produzem a energia necessária para acender lâmpadas ou girar motores, por exemplo? Para entendermos como isso ocorre, vamos estudar os Campos Elétricos.

Campos Elétricos

Vimos anteriormente, de forma sucinta, como os elétrons fluem através da matéria para criar eletricidade. Agora, precisamos de uma fonte para induzir esse fluxo de elétrons. Geralmente, essa fonte de fluxo de elétrons virá na forma de um campo elétrico.

O que é um campo?

Um campo é uma ferramenta que usamos para modelar interações físicas que não envolvem nenhum tipo de contato observável. Os campos não podem ser vistos, pois eles não possuem aparência física, porém o efeito que eles exercem é bem real.

Todos nós estamos familiarizados com um campo em particular: o Campo Gravitacional Terrestre, que é o efeito de um corpo massivo atraindo outros corpos. O campo gravitacional da Terra pode ser modelado com um conjunto de vetores que apontam todos para o centro do planeta; independente de onde você estiver na superfície do planeta, você sentirá a força te puxando em direção ao centro:

Curso de Eletrônica - Campo Elétrico

A força ou intensidade dos campos não é uniforme em todos os pontos do campos. Quanto mais longe estivermos da origem do campo, menor será o efeito do campo sentido. A magnitude do campo gravitacional terrestre diminui a medida em que nos afastamos do centro do planeta.

Ao continuar nossa exploração sobre campos elétricos lembre-se de como o campo gravitacional da Terra funciona, pois ele possui muita similaridade com os campos elétricos. Campos gravitacionais exercem uma força nos objetos que possuem massa, e os campos elétricos exercem uma força em objetos que possuam cargas.

Campos Elétricos

Campos elétricos são uma ferramenta importante para compreendermos como a eletricidade surge e continua a fluir. Os campos elétricos descrevem as forças que atraem ou repelem cargas no espaço entre elas. Comparados ao campo gravitacional da Terra, os campos elétricos possuem uma diferença muito importante: enquanto o campo gravitacional geralmente atrai apenas outros objetos que possuam massa, os campos elétricos repelem cargas com a mesma frequência com que as atraem.

A direção dos campos elétricos é sempre definida como a direção para a qual uma carga de teste positiva se moveria se fosse lançada dentro do campo. A carga de teste tem de ser infinitamente pequena, para evitar que sua própria carga influencie o campo elétrico em si.

Podemos então começar a construir campos elétricos para cargas solitárias, positivas e negativas. Se você soltar uma carga de teste positiva próxima a uma carga negativa, a carga de teste será atraída em direção da carga negativa. Então, para uma carga negativa única nós podemos desenhar as setas de nosso campo elétrico apontando para dentro em todas as direções. A mesma carga de teste despejada próxima a outra carga positiva resultaria em repulsão entre ambas, o que significa que nós desenharíamos setas “saindo” da carga positiva:

Campos Elétricos em Eletrônica

Campos elétricos de cargas únicas. Uma carga negativa tem um campo elétrico em direção interna porque ela atrai cargas positivas. A carga positiva, por sua vez, possui um campo elétrico em sentido externo, pois repele cargas de mesmo tipo.

Grupos de cargas elétrica podem ser combinados para formarem campos elétricos mais completos:

Eletrônica - Campos Elétricos

O campo elétrico uniforme visto acima “aponta” para longe das cargas positivas, em direção Às negativas. imagine uma carga de teste minúscula inserida no campo elétrico formado; ela seguiria a direção das setas. Como vimos, a eletricidade geralmente envolve o fluxo dos elétrons – cargas negativas – que fluem contra campos elétricos.

Os campos elétricos nos fornecem a força necessária para induzir um fluxo de corrente. Um campo elétrico em um circuito é como uma “bomba de elétrons”: uma grande fonte de cargas negativas que podem impulsionar os elétrons, os quais fluirão através do circuito em direção à massa de cargas positivas.

Potencial Elétrico (Energia)

Quando aproveitamos a energia elétrica para acionar nossos circuitos, equipamentos e gadgets, estamos realmente transformando energia. Circuitos eletrônicos devem ser capazes de armazenar energia e transformá-la em outras formas, como calor, luz ou movimento. A energia armazenada de um circuito é chamada de energia potencial elétrica.

Energia Potencial

Para entendermos a energia potencial precisaremos entender a energia de um modo geral. Energia é definida como a habilidade de um objeto de realizar trabalho sobre outro objeto, o que significa mover esse objeto por uma certa distância. A energia existe  em muitas formas, algumas das quais podemos ver (como a energia mecânica) e outras que não podemos ver (como energia química ou elétrica) Independente de qual forma seja considerada, a energia existe em um de dois estados: Cinética e Potencial.

Um objeto possui energia cinética quando está em movimento. A quantidade de energia cinética que um objeto possui depende de sua massa e velocidade. Já a energia potencial é uma forma de energia armazenada quando um objeto está em repouso. Ela descreve quanto trabalho o objeto pode realizar se colocado em movimento. É um tipo de energia que nós podemos, geralmente, controlar. Quando um objeto é colocado em movimento, sua energia potencial se transforma em energia cinética.

Curso de Eletrônica - Potencial Elétrico

Voltemos à gravidade como exemplo. Uma bola de boliche que esteja em repouso (parada) no topo de um edifício possui uma grande quantidade de energia potencial (armazenada). Uma vez que seja arremessada lá de cima, a bola – atraída pelo campo gravitacional – acelera em direção ao chão. Conforme a bola acelera, energia potencial é convertida em energia cinética (energia do movimento). Eventualmente toda a energia da bola será convertida de potencial para cinética, e então transferida para o chão (ou para o objeto como qual a bola se chocar). Quando a bola está no chão, possui muito pouca energia potencial.

Energia Potencial Elétrica

Da mesma forma que a massa em um campo gravitacional possui energia potencial gravitacional, cargas em um campo elétrico possuem energia potencial elétrica. A energia potencial elétrica de uma carga descreve quanta energia armazenada ela possui, e quando colocada em movimento por uma força eletrostática, essa energia se torna cinética, e então a carga pode realizar trabalho.

Como a bola de boliche no alto do edifício, uma carga positiva nas proximidades de outra carga positiva possui energia potencial elevada; se deixada livre para se mover, a carga seria repelida pela outra carga igual. Já uma carga de teste positiva colocada próxima a uma carga negativa teria pouca energia potencial, de forma análoga à bola de boliche no chão.

Eletricidade - Energia Potencial

Para incutir algo com energia potencial, temos de realizar trabalho movendo o objeto por uma certa distância. No caso da bola de boliche, o trabalho vem de carregarmos a bola por dezenas de andares, subindo, no sentido contrário ao do campo gravitacional.  De forma similar, trabalho deve ser realizado para empurrar uma carga positiva contra a direção de um campo elétrico (tanto em direção a outra carga positiva, quanto para longe de uma carga negativa). Quanto mais longe a carga for deslocada no campo, mais trabalho teremos de realizar. Igualmente, se você tentar empurrar uma carga negativa para longe de uma carga positiva – contra o campo elétrico – terá de realizar trabalho.

Para uma carga localizada em um campo elétrico sua energia potencial elétrica dependerá do tipo (positiva ou negativa), quantidade de carga, e sua posição no campo. A energia potencial elétrica é medida na unidade joule (J).

Potencial Elétrico

O potencial elétrico é criado a partir de energia potencial elétrica para ajudar a definir quanta energia é armazenada em um campo elétrico. É um outro conceito que nos auxilia a modelar o comportamento de campos elétricos. Potencial Elétrico não é a mesma coisa que energia potencial elétrica!

Em qualquer ponto de um campo elétrico o potencial elétrico é a quantidade de energia potencial elétrica dividida pela total de carga naquele ponto. Tiramos a quantidade de cargas da equação e ficamos com uma idéia de quanta energia potencial áreas específicas do campo elétrico podem fornecer. O potencial elétrico é medido em unidades de joules por coulomb (J/C), os quais nós definimos como sendo um Volt (V).

Em qualquer campo elétrico há dois pontos de potencial elétrico que são de interesse significativo para nós. Há o ponto de alto potencial, onde uma carga positiva teria a energia potencial mais alta possível, e há o ponto de baixo potencial, onde uma carga teria a energia potencial mais baixa possível.

Um dos termos mais comuns que discutimos quando falamos de eletricidade é a voltagem (tensão). Uma tensão é a diferença de potencial entre dois pontos em um campo elétrico. A tensão elétrica nos dá uma ideia de quanta força (“pressão”) um campo elétrico possui.


Agora que entendemos os conceitos de potencial e energia potencial, vamos discutir outro ponto extremamente importante: A corrente elétrica.

Eletricidade em Ação!

Após estudar um pouco de física de partígulas, teoria de campos e energia potencial, sabemos o suficiente para fazer com que a eletricidade flua. Vamos criar um circuito!

Primeiro, revisemos os ingredientes de que precisamos para “fazer” eletricidade:

  • A definição de eletricidade é o Fluxo de Cargas. Geralmente nossas cargas serão carregadas por elétrons livres.

  • Elétrons (carga negativa) são retidos fracamente em átomos de materiais condutores. Com um pequeno empurrãozinho podemos libertar elétrons de átomos e fazê-los se movimentarem em uma direção geral uniforme.

  • Um circuito fechado  de material condutor fornece um caminho para que os elétrons fluam continuamente.

  • As cargas são impelidas por um campo elétrico. Precisamos de uma fonte de potencial elétrico (tensão / voltagem), a qual empurrará os elétrons de um ponto de baixa energia potencial para um ponto de energia potencial mais elevada.

Um Curto-circuito

Baterias são fontes de energia comuns, as quais convertem energia química em energia elétrica. Elas possuem dois terminais, os quais se conectam ao resto do circuito. Em um terminal há um excesso de cargas negativas, enquanto no outro terminal se acumulam as cargas positivas. Temos aqui então uma diferença de potencial pronta para entrar em ação.

Pilha Elétrica - Eletrônica

Se nós conectarmos nosso fio “recheado” de átomos condutores de cobre à bateria, o campos elétrico irá influenciar os elétrons livres (de carga negativa) nos átomos do cobre. Empurrados a partir do terminal negativo e atraídos pelo terminal positivo de forma simultânea, os elétrons no cobre se moverão de átomo em átomo criando o fluxo de cargas que nós conhecemos como eletricidade – Corrente Elétrica.

Fluxo da corrente elétrica em um circuito

 

Após um segundo do fluxo da corrente, os elétrons terão se movido na verdade muito pouco – frações de centímetro. Contudo, a energia produzida pelo fluxo de corrente é enorme, especialmente por não haver nada no circuito para diminuir o fluxo ou consumir a energia. Conectar um condutor puro diretamente aos terminais de uma fonte de energia não é uma boa idéia. A energia se move de forma muito rápida através do sistema (quase à velocidade da luz!) e é transformada em calor no fio, o qual pode rapidamente se fundir (derreter) ou entrar em combustão.

Acendendo uma Lâmpada

Em vez de desperdiçar essa energia toda, sem mencionar que a bateria pode ser danificada e o fio pegar fogo, vamos construir um circuito que faz algo realmente útil. Geralmente um circuito elétrico irá transformar energia elétrica em energia de outra forma – luz, calor, movimento, etc. Se conectarmos uma pequena lâmpada à bateria com os fios conectados entre ambos, teremos um circuito simples, porém funcional:

Acendendo uma lâmpada por meio de corrente elétrica

Esquema: Uma bateria (à esquerda) conectada a uma lâmpada (à direita). O circuito é completado quando a chave (no topo) é fechada. Com o circuito fechado, os elétrons podem fluir, empurrados a partir do terminal negativo da bateria através da lâmpada, em direção ao terminal positivo da bateria.

Enquanto os elétrons se movem a passo de tartaruga, o campo elétrico afeta o circuito inteiro quase instantaneamente (praticamente velocidade da luz!) Os elétrons ao longo do circuito, quer esteja no potencial mais baixo, mais alto, ou próximos à lâmpada, são influenciados pelo campo elétrico. Quando a chave é fechada e os elétrons são submetidos ao campo elétrico, todos os elétrons no circuito (na camada de valência!) começam a fluir praticamente ao mesmo tempo. As cargas mais próximas à lâmpada a atravessarão e começarão a transformar a energia, de elétrica em luminosa (e térmica também).

Avançando

Neste tutorial nós mostramos apenas uma minúscula parte do assunto. Ainda há muitos conceitos a serem explorados, e o faremos em nossos próximos tutoriais sobre Eletricidade e Eletrônica. A partir daqui, os próximos passos serão entender a Lei de Coulomb (um pouquinho de matemática…), trabalhar as grandezas elétricas (Tensão, Resistência, Corrente, Potência) e a Lei de Ohm.