Apresentando o MCU ESP32-C3 – Um microcontrolador de ótimo custo-benefício, baseado na tecnologia RISC-V com conectividade WiFi e Bluetooth LE 5.0 para aplicações IoT
Em 2014, a Espressif lançou o ESP8266, e em 2016, o ESP32. O ESP8266, com sua conectividade à rede WiFi, trouxe facilidade nos casos de sistemas conectados simples, enquanto o ESP32 se destinou aos casos em que eram necessárias mais possibilidades de comunicação (WiFi + Bluetooth/Bluetooth LE), mais capacidade de processamento, ou funcionalidades com maior segurança. Esses dois chips se tornaram líderes disparados do segmento no mercado IoT, dando fôlego ao desenvolvimento de inúmeros dispositivos conectados. Ao mesmo tempo, o próprio mercado do IoT não apenas se tornou muito mais notável, mas também amadureceu muito em termos de custo e expectativas. Por esse motivo, a Espressif sabe que sempre deve levar em consideração o balanço entre funcionalidades e custo ao lançar um novo produto. Mais que isso, se compreende que o conceito “tamanho único” não é viável, e sempre há necessidade de diversos tipos de produtos para diversas aplicações diferentes. Com isso em mente, para aplicações simples mas com um nível alto de segurança, a Espressif está lançando o ESP32-C3.
O ESP32-C3 procura atender as necessidades mais simples de dispositivos conectados. Os critérios considerados ao projetá-lo são:
- Segurança é de suma importância. Até mesmo as soluções de mais baixo custo devem oferecer um nível apropriado de segurança para os riscos de um ambiente conectado.
- A disponibilidade do Bluetooth Low Energy (BLE) é útil para aprimorar a experiência do usuário e diagnósticos de campo.
- Enquanto o custo é um parâmetro de extrema importância, a disponibilidade de memória suficiente para usos comuns não fica atrás. A otimização do uso de memória para a utilização de dispositivos em campo é uma tarefa desafiadora.
O ESP32-C3 é um microcontrolador de núcleo simples de 32 bits baseado na tecnologia RISC-V com 400KB de SRAM, capaz de rodar a 160MHz. Possui integrados WiFi 2.4GHz e Bluetooth LE 5.0 de longo alcance. Conta com 22 GPIO programáveis com suporte a ADC, SPI, UART, I2C, RMT, TWA e PWM. Um datasheet detalhado pode ser acessado pelo link:
https://www.espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf
Nos trechos a seguir neste artigo, discutiremos alguns dos principais benefícios do ESP32-C3.
Segurança
Os ataques aos dispositivos conectados geralmente visam os seguintes efeitos:
- Ganhar acesso a dados sensíveis
- Ganhar controle desautorizado do dispositivo
- Roubar a identidade do dispositivo e, consequentemente, obter acesso ao servidor ou nuvem à qual o dispositivo faz parte
Existem diversas formas de executar esses ataques, tanto remotamente através de falhas de software ou protocolo, ou fisicamente pelo acesso direto à flash e injeção de falhas. Assim, os ataques podem se tornar permanentes ao se instalar firmwares maliciosos padronizados no dispositivo.
É importante que a plataforma de conectividade ofereça proteção contra esse tipo de ataques. O ESP32-C3 é projetado de forma a combater essas ameaças.
- Boot Seguro: o ESP32-C3 implementa um esquema de autenticação baseada no padrão RSA-3072 para assegurar que somente aplicações confiáveis podem ser usadas na plataforma. Essa funcionalidade protege contra a execução de uma aplicação maliciosa que seja gravada na flash. O boot precisa ser eficiente, para que dispositivos que precisam ligar instantaneamente (assim como lâmpadas inteligentes) não sofram atrasos, dessa forma o Secure Boot foi planejado de forma a não tomar mais de 100ms para ser completado.
- Encriptação de Flash: o ESP32-C3 usa uma encriptação baseada em AES-128-XTS, onde tanto firmware e dados de configuração podem ficar encriptados na flash. O controlador de flash suporta a execução de aplicações encriptadas. Isso não só protege dados armazenados no dispositivo, mas também evita mudanças mal intencionadas de firmware.
- Assinatura Digital e HMAC Periférico: o ESP32-C3 possui um periférico que pode gerar assinaturas digitais, usando uma chave privada que é protegida de acesso. Similarmente, o periférico HMAC pode gerar um “resumo” criptográfico protegido de acesso do firmware. A maioria dos serviços em nuvem para IoT usa certificação do tipo X.509, e a assinatura digital protege a chave privada que define a identidade do dispositivo. Isso disponibiliza uma forte proteção para a identidade do dispositivo mesmo em casos de vulnerabilidades de software.
- “World Controller”: o ESP32-C3 possui uma novidade batizada “world controller”, que disponibiliza dois ambientes de execução completamente isolados entre si. Dependendo da configuração, isso pode ser usado para criar um ambiente de execução confiável (TEE – trusted execution environment) ou um esquema de separação privilegiada. Se o firmware de aplicação tem uma tarefa que lida com dados sensíveis, ele pode tirar vantagem do world controller para isolar a execução.
Bluetooth LE 5.0 de Longo Alcance
Tipicamente, dispositivos conectados utilizam WiFi para se comunicar com os servidores. Entretanto, quando só existe o WiFi como meio de comunicação, isso oferece um pouco de dificuldade para a configuração de rede dos dispositivos, pois falham ao entregar feedback confiável quando tentam se integrar à rede, enquanto ao mesmo tempo integrações iOS e Android possuem uma complexidade elevada. A disponibilidade do Bluetooth LE neste dispositivo torna a integração à rede mais simples. Além disso, BLE possibilita uma descoberta e controle mais simplificados dos dispositivos no local.
Versões anteriores do protocolo BLE tinham alcance menor, e não eram adequados a aplicações em ambientes de grande porte, como por exemplo, galpões. O ESP32-C3 traz o suporte ao protocolo BLE 5.0, que possui redundância de pacotes, assim aumentando o alcance (tipicamente 100m). Suporta também o protocolo BLE Mesh, tornando-o um forte candidato a controlar dispositivos numa rede local, e para comunicação direta com outros dispositivos BLE 5.0.
Memória
Com inúmeras usabilidades, que possuem as mais diversas necessidades de memória, é complicado determinar qual seria a melhor capacidade de memória para um chip, porém é importante sempre oferecer a possibilidade de uso de ao menos uma, às vezes duas, conexões TLS à nuvem, que são ativas no protocolo BLE a todo o tempo, ao passo que há um espaço razoável para a aplicação. Os 400KB de SRAM podem atender a essas exigências, enquanto mantém o custo do produto final no escopo desejado. Além disso, o ESP32-C3 possui memória com particionamento dinâmico de instrução (IRAM) e dados (DRAM). Dessa forma, a memória usável é efetivamente maximizada. É importante notar também que há uma otimização de memória do subsistema Bluetooth em comparação com o ESP32.
Suporte a Software e Desenvolvimento
O ESP32-C3 terá suporte de desenvolvimento na popular ESP-IDF, plataforma da Espressif. Se observarmos na totalidade de softwares que habilitam os dispositivos conectados, uma grande porção disso é composta de soluções independentes de hardware. O ESP-IDF já suporta milhões de dispositivos conectados, e é submetido a rigorosos ciclos de testagem. A maturidade do ambiente da Espressif, tanto quanto sua familiaridade com APIs e ferramentas tornam mais fácil aos desenvolvedores a criação de aplicações para o ESP32-C3. Com a disponibilidade do ESP-IDF, outros componentes de software como serviços em nuvem podem ser usados no ESP32-C3 sem nenhuma modificação.
O ESP32-C3 também suporta a operação em modo host, permitindo o uso de WiFi e Bluetooth LE para microcontroladores externos através de comandos ESP-AT e SDKs embarcadas.
O ESP32-C3 disponibiliza inúmeras possibilidades por um custo muito próximo ao ESP8266. Há uma variante, ESP32-C3F que possui flash integrada para projetos simples. O ESP32-C3-MINI-1 possui um encapsulamento pequeno (13×16 mm) e suporte a uma temperatura de operação de até 105ºC. Para facilidade de migração, foi assegurado que o modulo ESP32-C3-WROOM-1 possui pinagem perfeitamente compatível com os módulos ESP-WROOM-02D e ESP-WROOM-02.
Conclusão
Como mencionado antes nesse artigo, o ESP32-C3 visa os casos mais comum de projetos para dispositivos conectados. Ainda assim, é uma solução que pode atingir casos mais específicos, graças a todas as funcionalidades apresentadas.
Não deixe de nos dizer o que achou desse post aqui nos comentários.