Iniciando com CC3000: Seu microcontrolador com Wi-Fi - Parte 1

CC3000
Este post faz parte da série Iniciando com CC3000. Leia também os outros posts da série:

Wi-Fi com certeza é a rede sem fio mais ubíqua no mundo atual. Você pode encontrar uma ou várias redes Wi-Fi em quase todos os locais de centros urbanos, incluindo shoppings, cafés e, em especial, dentro de casa. Tal infraestrutura existente cria um grande potencial para produtos embarcados sem fio, focados em automação, sensoriamento e entretenimento. 

 

Visando este mercado latente, a Texas Instruments criou o CC3000: um módulo de baixo custo (U$12.50 na Digikey para 1 peça) que implementa toda a parte complexa da comunicação Wi-Fi, e ainda complementa implementando as  camadas de rede e de transporte. No nível físico da rede o módulo necessita apenas de uma antena externa, e a Texas disponibiliza um guia de como proceder para o desenvolvimento do layout da placa.

 

 

cc3000_klein

 

O CC3000 tem suporte para IPv4  com DHCP e suporta até quatro sockets simultâneos (UDP e TCP). Por ser focado em aplicações embarcadas, consome menos de 5uA no modo Shut Down. Além disso, pode ser alimentado diretamente por uma bateria e possuí I/Os com alimentação separada, simplificando a interface com dispositivos que trabalham com tensão diferente do CC3000. A comunicação com o microcontrolador/microprocessador é realizada através de uma interface SPI (até 16 MHz),  periférico comumente presente até nos mais modestos microcontroladores. O CC3000 tem uma taxa máxima de transmissão de dados de 4Mbps para sockets TCP e 7Mbps para sockets UDP. 

 

CC3000_block_diagram

 

Para simplificar a sua implementação, a Texas ainda disponibiliza uma biblioteca que abstrai  o controle de baixo nível do CC3000, e requer apenas que o desenvolvedor implemente a interface SPI de seu microcontrolador, seguindo um padrão pré-determinado. Para os microcontroladores da Texas, já são fornecidos os códigos fontes com tais implementações, e ela ainda fornece um guia de como portar a biblioteca para dispositivos de outros fabricantes.

 

SmartConfigTM

 

Mesmo com os módulos mais caros, existe uma grande dificuldade que dificulta o uso massivo de Wi-Fi em aplicações embarcadas: a configuração da rede. Geralmente, em um ambiente, diversas redes Wi-Fi coexistem, cada uma com um nome (SSID) e, normalmente, uma senha. De forma a conectar um dispositivo à uma rede específica, tais informações precisam ser passadas ao dispositivo, o que acaba sendo um grande problema em produtos com interfaces limitadas a um ou dois botões e alguns LEDs.

 

Para resolver tal problema, a Texas criou e implementou no CC3000 o que foi chamado de SmartConfigTM:  Um protocolo proprietário que possibilita um computador ou celular passar as informações do SSID e chave de rede  para o CC3000 via Wi-Fi, mesmo sem ele estar sequer conectado em alguma rede.

 

O que acontece basicamente é o seguinte: o computador começa realizar broadcast na rede com pacotes UDP contendo as informações em questão. O CC3000, então, fica varrendo todos os canais de Wi-Fi procurando por estas mensagens UDP. Quando ele consegue recuperar tal informação, ele automaticamente a salva em sua memória não volátil, possibilitando conexões automáticas posteriores, e se conecta na rede.

 

Mas então quer dizer que a senha da minha rede fica sendo disponibilizada para todos em seu alcance? Sim, mas apenas durante o procedimento do SmartConfigTM. Porém, para as aplicações que não permitam que tal informação seja disponibilizada nem por poucos instantes, existe o modo do SmartConfigTM criptografado, onde é passado uma chave AES-128, já pré-configurada no dispositivo a ser conectado, para o computador.

 

Com esta ferramente poderosa, qualquer dispositivo munido de apenas um botão, utilizado para iniciar o procedimento do SmartConfigTM, pode ser conectado facilmente à uma rede Wi-Fi. 

 

Kits de Desenvolvimento

 

Por causa de todas essas características interessantes, apesar de ter pouco tempo de mercado, o sucesso do CC3000 já é notável. Diversas ferramentas de desenvolvimento de terceiros foram criadas baseadas no CC3000.

 

Como exemplo, a Adafruit desenvolveu duas placas de desenvolvimento com o CC3000: um Shield de Arduino e uma placa para usos mais compactos. Além disso, disponibilizou uma biblioteca de acesso ao CC3000 para o Arduino. 

 

1491_LRG

Além das placas de terceiros, a própria Texas Instruments desenvolveu alguns kits de desenvolvimento com o CC3000, incluindo um Booster Pack para ser utilizado diretamente com as LaunchPads, simplificando o processo de avaliação do módulo.

 

CC3000+Boost+MSP430-+Angled

Conclusão 

 

O modulo CC3000 tem diversas características interessantes e um custo relativamente baixo, e resolve o problema de configuração de rede com o SmartConfigTM, abrindo um leque de possibilidades de desenvolvimento de produtos enorme. 

 

Na Parte II deste artigo eu dou um pequeno tutorial introdutório de como fazer um código para o CC3000 utilizando a LaunchPad do MSP430.

 

Referências

 

Página do CC3000

Página do SmartConfigTM

 

 

Outros artigos da série

Iniciando com CC3000: Seu microcontrolador com Wi-Fi - Parte 2 >>
Este post faz da série Iniciando com CC3000. Leia também os outros posts da série:
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Luis Filipe Rossi
Engenheiro eletricista (POLI-USP 2008) e mestre em engenharia (POLI-USP 2012), e especialista em projetos de sistemas embarcados, atuando tanto no desenvolvimento de hardware como firmware. É sócio fundador da Condor Instruments Ltda e já trabalhou como consultor em diversos produtos comerciais.

3
Deixe um comentário

avatar
 
3 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Rafael DiasMatheus QuickIniciando com CC3000: Seu microcontrolador com Wi-Fi - Parte 2 - Embarcados - Sua fonte de informações sobre Sistemas Embarcados Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Matheus Quick
Visitante
Matheus Quick

muito bom, da para fazer diversas coisas.

trackback

[…] Na primeira parte deste Post, eu dei uma breve explicação sobre o CC3000 e destaquei algumas de suas principais características. Nesta segunda parte, vou dar um pequeno tutorial introdutório de como fazer um projeto bem simples utilizando o CC3000. […]

Rafael Dias
Visitante
Rafael Dias

opa!
Estou justamente começando a prospectar o uso de uma solução para wi-fi. Encontrei este chip da texas e o seu artigo veio bem a calhar.