Como projetar dispositivos IoT de borda de baixa potência usando MCUs PG23 da Silicon Labs

By Jacob Beningo

Contributed By DigiKey's North American Editors

Os projetistas através de uma gama de aplicações industriais e de consumo da Internet das Coisas (IoT), desde interruptores de luz, medidores de energia e fechaduras inteligentes até inversores solares e painéis de segurança, precisam encontrar um equilíbrio adequado de alto desempenho e baixa potência — especialmente para projetos alimentados por bateria — enquanto também garantem que suas implementações sejam seguras. Em muitos casos, a base de tais projetos é um microcontrolador (MCU), portanto, o projetista deve considerar cuidadosamente qual deles usar.

Junto com um sólido suporte à segurança, fatores a serem considerados incluem desempenho do núcleo do processador, eficiência, suporte periférico e de E/S, fator de forma geral e suporte ao ecossistema. Enquanto um MCU pode atender aos requisitos de projeto em termos de desempenho e potência, a implementação de um projeto seguro tem uma curva de aprendizado que pode causar atrasos ou resultar na não implementação adequada da segurança.

Este artigo discute brevemente considerações de segurança para dispositivos IoT de borda. Em seguida, apresenta o MCU EFM32PG23 da Silicon Labs e mostra como aplicá-lo para projetos seguros de IoT na borda, com ênfase na baixa potência.

Questões de segurança com dispositivos IoT

O número de ataques remotos a dispositivos conectados à Internet continua a aumentar. Os desenvolvedores de embarcados podem ser tentados a pensar que seu dispositivo IoT na borda não precisa de segurança porque ele não contém "nada de valor". A verdade é que quase todo dispositivo tem algo que um hacker pode achar valioso, sejam os dados do sensor, os dados do cliente, o firmware real que está no dispositivo, ou o acesso que o dispositivo fornece como porta dos fundos para redes conectadas. A segurança é uma característica crítica que deve ser projetada em cada dispositivo IoT na borda desde o início: ela não deve ser anexada no sistema no final do ciclo de projeto. Caso contrário, o dispositivo será altamente vulnerável a ataques.

Cada dispositivo IoT na borda tem várias áreas de segurança que precisam ser consideradas, tais como identificação do dispositivo, configuração do dispositivo, e atualizações de software/firmware. A Figura 1 mostra uma lista de preocupações comuns e como essas elas se traduzem em um requisito de segurança do dispositivo. Cada exigência de segurança tem uma tecnologia associada que é frequentemente utilizada para atender a essa demanda e frustrar os possíveis ataques.

Preocupação Requisitos de segurança Tecnologia
Identificação do dispositivo O dispositivo IoT pode ser identificado de forma única, lógica e fisicamente. Atestado seguro
Configuração do dispositivo A configuração do software e firmware do dispositivo IoT pode ser alterada, e tais alterações só podem ser realizadas por entidades autorizadas. Atualização segura
Atualização de software e firmware O software e firmware do dispositivo IoT pode ser atualizado por entidades autorizadas, usando apenas um mecanismo seguro e configurável.
Proteção de dados O dispositivo IoT pode proteger os dados que armazena e transmite contra acesso não autorizado e modificações. Gerenciamento de chaves seguras
Acesso lógico às interfaces O dispositivo IoT pode limitar o acesso lógico a suas interfaces locais e de rede somente a entidades autorizadas. Depuração segura
Atualização de software e firmware O software e firmware do dispositivo IoT pode ser atualizado por entidades autorizadas, usando apenas um mecanismo seguro e configurável. Atualização segura
Registro de eventos da segurança cibernética O dispositivo IoT pode registrar eventos de segurança cibernética e tornar os registros acessíveis somente a entidades autorizadas. Antiadulteração
Integridade do software As tentativas de violação da segurança são registradas e os desenvolvedores podem selecionar tecnologias apropriadas de contramedidas do sistema para proteger a segurança. Inicialização segura

Figura 1: As preocupações com a segurança, as exigências e a tecnologia associada que os projetistas de aplicações IoT na borda precisam considerar são muitas. (Fonte da imagem: Silicon Labs)

Um grande problema que muitas das equipes de embarcados desenvolvem nas aplicações IoT de borda é que elas não têm experiência em segurança interna. O resultado é que elas devem fazer o melhor internamente para aprender e implementar a segurança ou usar uma fonte externa. De qualquer forma, o custo e o tempo podem ser extraordinários.

Existe uma alternativa: a equipe de desenvolvimento pode selecionar um MCU projetado com a segurança em mente e que fornece soluções de segurança prontas para uso que requerem pequenos ajustes de configuração para a aplicação em questão.

Introdução aos dispositivos MCU série PG23 da Silicon Labs

A série de microcontroladores EFM32PG23 da Silicon Labs é uma opção interessante para aplicações de dispositivos IoT na borda por várias razões. Primeiro, o MCU PG23 pode executar a própria solução de segurança de IoT Secure Vault da Silicon Labs. O Secure Vault é uma plataforma para a segurança e a prova de futuro dos dispositivos IoT que recentemente se tornou a primeira solução de segurança IoT a obter o status com certificado PSA nível 3. Algumas das características que o Secure Vault traz para os MCUs PG23 incluem Identidade Segura do Dispositivo, Gerenciamento e Armazenamento Seguro de Chaves e Detecção Avançada de Violações.

O Secure Vault tira proveito de uma impressão digital única gerada por uma função fisicamente não-clonável (PUF). Um PUF pode ser usado para criar uma chave AES simétrica que desaparece fisicamente quando o sistema é desligado. A chave simétrica AES não existe nem mesmo quando o chip está desligado, tornando impossível a remoção do dispositivo. Um PUF é uma solução eficaz para o principal desafio de gerenciamento enfrentado por muitas aplicações IoT de borda. De fato, o PUF pode ser dimensionado para suportar tantas chaves quantas forem necessárias para suportar uma aplicação. O Secure Vault também inclui um sistema de detecção de violação que faz com que a chave não possa ser reconstruída uma vez que o dispositivo é desligado após um evento de adulteração. As principais características de segurança podem ser resumidas como:

  • Atestado seguro
  • Gerenciamento de chaves seguras
  • Armazenamento seguro de chaves
  • Antiadulteração

Outro motivo pelo qual os MCUs PG23 são bem adequados para aplicações IoT de borda é que eles são projetados para aplicações de baixa potência. O consumo ativo de corrente para o PG23 é de 21 microamperes por megahertz (µA/MHz). O consumo de corrente é de 1,03 µA com 16 quilobytes (Kbytes) de RAM ativos no modo EM2, ou 0,7 µA com o relógio em tempo real (RTC) ativado no modo EM4. Os níveis de baixo consumo de corrente ajudam os desenvolvedores, enquanto trabalham para projetar um dispositivo eficiente em termos energéticos, seja ele conectado a uma rede elétrica ou alimentado por bateria.

A última característica do PG23 a ser examinada aqui é a capacidade do MCU. O PG23 tem um processador Arm® Cortex®-M33 com clock de até 80 MHz. O processador pode operar na faixa de 1,71 volts a 3,8 volts usando uma única fonte de alimentação. Para desenvolvedores que trabalham com aplicações de sensores, existe uma interface de sensor de baixa energia (LESENSE). O MCU vem em um invólucro QFN de 40 pinos medindo 5×5 milímetros (mm) ou um invólucro QFN de 48 pinos medindo 6×6 mm. Um diagrama de blocos do PG23 é mostrado na Figura 2. O MCU também tem cinco estados de potência: EM0 para modo de funcionamento, EM1 para sono, EM2 para suspensão profunda, EM3 para parada, e finalmente, EM4 para desligamento.

Diagrama do MCU PG23 da Silicon Labs que tem uma ampla gama de periféricos (clique para ampliar)Figura 2: O MCU PG23 tem uma ampla gama de periféricos, memória e modos de economia de energia. (Fonte da imagem: Silicon Labs)

Começando com a placa de desenvolvimento PG23-PK2504A

A melhor maneira de começar com o PG23 é usar a placa de desenvolvimento PG23-PK2504A. A placa tem um processador EFM32PG23B310F512 que é suportado por seus próprios 512 Kbytes de flash e 64 Kbytes de RAM. A placa de desenvolvimento inclui uma ampla gama de sensores embutidos, interfaces e um LCD de segmento 4×10 (Figura 3).

Diagrama da placa de desenvolvimento PG23-2504A da Silicon LabsFigura 3: A placa de desenvolvimento PG23-2504A vem com um MCU EFM32PG23, bem como um LCD de segmento 4×10, sensores de temperatura e umidade, uma referência de tensão e interfaces de expansão. (Fonte da imagem: Silicon Labs)

Com a placa em mãos, os desenvolvedores podem baixar e instalar o Simplicity Studio (sob a aba "Getting Started"). O Simplicity Studio é uma plataforma de lançamento para tudo o que é necessário para avaliar, configurar e desenvolver com os microcontroladores EFM32. O software inclui materiais iniciais, documentação, ferramentas compatíveis e recursos.

Quando um desenvolvedor abre o Simplicity Studio e se conecta a uma placa de desenvolvimento, o software identificará a placa e fornecerá recomendações, por exemplo, projetos, documentação e demonstrações (Figura 4). O desenvolvedor pode então escolher o melhor caminho para eles começarem a experimentar o PG23.

Imagem do Simplicity Studio da Silicon Labs (clique para ampliar)Figura 4: O Simplicity Studio da Silicon Labs detecta a placa e fornece recomendações personalizadas para o início, documentação, projetos de exemplo e muito mais. (Fonte da imagem: Silicon Labs)

Uma característica que vale a pena destacar na placa de desenvolvimento PG23-PK2504A é o interruptor que decide como a placa de desenvolvimento é alimentada. Há duas opções; AEM ou BAT (Figura 5). No modo AEM, há um resistor de detecção de corrente em série com a fonte de alimentação LDO e o PG23. A vantagem deste modo é que os desenvolvedores podem medir o consumo de corrente do processador para ajudar na otimização de energia. Uma vez otimizada a aplicação, os desenvolvedores podem mudar para o modo BAT para executar a placa de desenvolvimento a partir de uma bateria de célula do tipo moeda.

Diagrama do PG23-PK2504A da Silicon Labs que fornece uma opção para alimentar a placa através de USB-CFigura 5: O PG23-PK2504A fornece uma opção para alimentar a placa através de USB-C em seu modo AEM, que permite que a corrente do processador seja medida. Alternativamente, o processador pode ser alimentado através de uma bateria de célula do tipo moeda CR2032. (Fonte da imagem: Silicon Labs)

Dicas e truques para minimizar o uso de energia em uma aplicação IoT

Minimizar o consumo de energia é crítico para cada projeto IoT de borda, sejam eles operados por bateria ou não. A otimização de um projeto para uso de energia pode ser demorada se os desenvolvedores não forem cuidadosos. Abaixo estão várias "dicas e truques" que os desenvolvedores devem ter em mente que podem ajudar a otimizar rapidamente uma aplicação IoT para baixa potência:

  • Use uma arquitetura de software orientada a eventos. Quando o sistema não está processando um evento, coloque-o em um estado de baixa potência.
  • Esboce o perfil do consumo da bateria do sistema ao longo de vários ciclos de carga/descarga. Registre o consumo de corrente e a tensão de operação e plote-os ao longo do tempo.
  • Aproveite os modos de baixa potência para desativar automaticamente os sinais de clock, periféricos e a CPU.
  • Em aplicações simples, explore usando o recurso "suspender na saída" do Arm Cortex-M para minimizar as sobrecargas de interrupções ao despertar o sistema.
  • Se utilizar um RTOS, utilize seu modo "tickless", ou sem tiques, para evitar que o RTOS desperte inadvertidamente o sistema.
  • Ao otimizar nas iterações, acompanhe a economia de energia de cada mudança. Em certo momento, os desenvolvedores descobrem um "joelho" onde o tempo gasto na otimização tem um baixo retorno sobre o investimento em termos de economia de energia. É hora de parar de otimizar e passar para a próxima etapa.

Os desenvolvedores que seguirem estas "dicas e truques" pouparão um bom tempo e sofrimento ao começarem seu próximo projeto seguro de IoT de baixa potência.

Conclusão

A necessidade de MCUs seguros e de baixa potência está em crescimento para aplicações IoT de borda. Junto com um sólido suporte para segurança, os fatores que os projetistas precisam considerar a fim de atender às necessidades de projetos baseados na borda incluem o desempenho central do processador, a eficiência, o suporte periférico e de E/S, o fator de forma geral e o suporte do ecossistema.

Como mostrado, o MCU EFM32PG23 da Silicon Labs pode ajudar os desenvolvedores a resolver vários problemas associados ao projeto de baixa potência e segurança do dispositivo. Sua placa de desenvolvimento associada fornece todas as ferramentas necessárias para começar, e seguindo algumas "dicas e truques" importantes, um projeto de baixa potência pode ser rapidamente implementado.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is an embedded software consultant. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Masters of Engineering from the University of Michigan.

About this publisher

DigiKey's North American Editors