sejam bem-vindos à nossa aula sobre arquitetura de microcontroladores eu sou o professor Jorge wattes e gostaria de começar fazendo minha breve autodescrição eu sou loiro tenho cabelo curto hoje estou utilizando barba eu tenho pele clara estou utilizando uma camiseta de algodão na cor vinho nessa aula você vai aprender a identificar e comparar a arquitetura de microcontroladores para selecionar a mais adequada a cada aplicação Esse é o Sumário da nossa aula faremos um breve Uma Breve revisão da arquitetura de um computador e em seguida você será apresentado a um conceito muito importante a exploração do espaço
de projeto depois apresentaremos a família de microcomputadores arm principal fornecedor do mercado de sistemas embarcados finalmente veremos alguns critérios de seleção de microcontroladores no contexto de diferentes aplicações vamos começar vamos revisar alguns conceitos importantes para essa aula a arquitetura de vão nilman é um modelo computacional em que a CPU memória e dispositivos de entrada e saída compartilham o mesmo barramento para acessar todos os dados e instruções e de uma maneira simplificada ela descreve o computador como conhecemos até hoje a arquitetura de Von Newman é caracterizada pelo uso de uma única memória compartilhada pelas instruções e
dados essa abordagem simplifica o design de hardware e software tornando-a popular em Sistemas computacionais Gerais e em aplicações embarcadas iniciais onde a simplicidade era crucial no entanto o fato de instruções e dados competirem pelo mesmo barramento limita a taxa de transferência e o desempenho a arquitetura de Harvard foi desenvolvida para superar essas limitações separando a memória de instruções e de dados essa separação permite que os processadores possam buscar instruções e acessar dados ao mesmo tempo eliminando gargalo do modelo anterior especialmente os processadores com pipeline vão utilizar esse modelo quando nos referimos a um microcontrolador estamos
falando de um sistema computacional completo dentro de um un chip Onde encontramos a CPU As Memórias de dados e as instruções e várias interfaces de entradas e saídas tal qual descrito nesses modelos A nomenclatura System onchip vai aparecer como um equivalente para microcontroladores Ambos são chips que possuem um processador memória e algumas interfaces de entrada e saída o nome microcontrolador é mais antigo e recente o nome System onsip tem sido associado a sistemas com mais recursos e com mais desempenho vai ser muito comum você ver o termo microcontrolador se associado a plataformas de 8 ou
16 bits e o termo system onchip associado a plataformas de 32 bits no fim um microcomputador também é um System onsip isso não tem a ver com a quantidade de bits do processador E com isso terminamos a nossa revisão Como já dissemos o nosso objetivo é estabelecer alguns parâmetros para que você possa comparar diferentes arquiteturas de micro contadores e assim selecionar a mais adequada para cada aplicação durante o projeto de uma aplicação embarcada é preciso buscar e avaliar diferentes soluções de projeto dentro de um conjunto de opções possíveis com o objetivo de encontrar a melhor
configuração para o sistema embarcado levando em consideração restrições como custo desempenho e consumo de energia cada uma das soluções candidatas deve ser qualificada em relação a todas as restrições que o projeto apresenta esse processo é chamado de exploração do espaço de projeto design Space exp dse o espaço de projeto é um conjunto de todas as possíveis escolhas que envolvem por exemplo arquitetura algoritmos componentes de hardware e parâmetros de configuração todos eles podem ser combinados para criar um sistema embarcado graficamente É como se você pudesse desenhar várias soluções possíveis para um plano daí cada uma delas
Estaria mais próxima ou mais distante daquilo que o seu projeto tem como requisito ou restrição as restrições com as quais os projetistas TM que lidar são desempenho relacionado à velocidade de processamento consumo de energia custo tamanho físico e facilidade de desenvolvimento o que vai afetar o tempo do projeto o objetivo é explorar várias alternativas para alcançar a solução ótima ou satisfatória respeitando essas restrições o processo permite que os engenheiros avaliem os tradeoffs entre diferentes abordagens como usar processador mais rápido versus reduzir o consumo de energia ou ainda licenciar uma biblioteca mais cara e terminar o
projeto mais rápido versus optar por uma solução sem custo mas com menos recursos reduzindo os gastos do projeto uma plataforma multicore é um sistema computacional que possui múltiplos núcleos de processamento ou cores em um único chip de processador cada núcleo é capaz de executar instruções de forma independente ou em paralelo aumentando a capacidade de processamento e a eficiência do sistema aplicações embarcadas podem recorrer a múltiplos cores por diversas razões o processamento paralelo permite executar várias tarefas simultaneamente como processamento de sinais controle de periféricos e comunicação já a separação de tarefas permite que um núcleo gerencie
a interface do usuário Enquanto o outro executa tarefas críticas de tempo real segurança e isolamento propõe dividir funções seguras e não seguras entre núcleos diferentes como faz por exemplo a arquitetura Arm trust Zone há ainda o uso de multicore para oferecer baixo consumo a eficiência energética pode ser superior em relação a sistema de núcleo único pois vários núcleos podem operar a frequências mais baixas e entregar a mesma computação economizando energia em comparação com um único núcleo em alta potência existe ainda o recurso de ativar ou desativar núcleo dinamicamente economizando energia quando partes do sistema não
são necessárias um exemplo disso é o sistema big li da Arm que é uma arquitetura de processador multicore Projetada para melhorar a eficiência energética de dispositivos móveis e sistemas embarcados ele combina núcleos de Alto desempenho os bigs que nesse caso são exemp A exemplo são os Cortex a15 com núcleos de baixo consumo de energia os liros dentro de um mesmo chip permitindo que o sistema alterne dinamicamente Entre esses núcleos conforme a necessidade de desempenho disponibilizar hardwares especializados dentro de um sistema on chip é mais uma estratégia para obter baixo consumo esses hardwares também chamados de
aceleradores são capazes de oferecer o mesmo processamento de uma CPU a um custo de potência menor na figura temos um exemplo de um codificador de vídeo ao deslocar certas tarefas para unidades especializadas o System onsip pode manter o consumo de energia baixo pois essas unidades consomem significativamente menos energia do que a CPU principal Faria ao realizar as mesmas operações então Você acaba de ver algumas formas diferentes de fazer um sistema usar menos energia para funcionar são possibilidades a ser a se usar numa exploração de um espaço de projetos em Sistemas embarcados é fundamental que o
dispositivo alterne entre modos de alta performance quando mais desempenho é necessário como durante o processamento de dados ou comunicação e modos de baixo consumo quando o sistema está em inatividade perfis de energia com suporte a modos de baixo consumo como slip Deep slip permitem que o dispositivo gerencie a distribuição de energia eles são essenciais em aplicações embarcadas para melhorar a eficiência energética e maximizar a duração da bateria esses modos de economia de energia permitem que o sistema desacelere ou Desative certos componentes durante períodos de inatividade reduzindo significativamente o consumo de energia você deve consultar a
documentação do microcontrolador para saber quais perfis de energia estão disponíveis e em que condições cada um deles opera não é apenas o processador que pode ser colocado em modo de baixo consumo componentes periféricos como memórias controladores de redes e módulos de comunicação como wi-fi ou Bluetooth também podem ser desativados ou colocado em estado de baixo consumo quando não estão em uso a arquitetura arm Cortex oferece uma combinação de autto desempenho e eficiência energética em diferentes segmentos desde dispositivos de baixo custo e controle simples como a família Cortex M até sistemas mais complexos e exigentes como
a família Cortex a isso faz da arm uma escolha popular em aplicações embarcadas e smartphones a família Cortex m o m é de microcontrolador oferece microcontroladores de baixo custo e baixo consumo de energia usada em sensores dispositivos de IOT automação e controle é uma arquitetura de 32 bits para sistemas de baixo custo e aplicações de controle simples oferecendo ainda suporte a modos de baixo consumo como se pode ver na tabela a família Cortex M oferece vasta Gama de arquiteturas cada linha dessa tabela na verdade representa uma família de processadores ou uma arquitetura além disso a
arm não fabrica os chips mas licencia diversos fabricantes que fazem isso assim para cada linha dessas pode facilmente existir algumas centenas de diferentes produtos as famílias vão desde os modelos mais simples como o m0 até os modelos mais sofisticados cada um oferecendo cursos de desempenho diferenciados que devem ser explorados de acordo com as necessidades da aplicação note por exemplo que na família M4 é introduzida uma unidade de ponto flutuante fpu que executa operações aritméticas diretamente em números float não inteiros os modelos mais simples que o M4 implementam operações com números tipo float em software enquanto
os modelos acima do M4 fazem essa operação com este hardware O que significa que eles podem fazer as operações numéricas em Muito menos tempo os modelos M4 também recebem o hardware para processamento de sinais chamados de DSP então o fabricante Espera que esse processador seja utilizado em aplicações que realmente utilizam algoritmos mais sofisticados à medida que os modelos vão ficando mais complexos eles também oferecem mais memória tanto para dados quanto para programa programa de aplicação algumas vezes ocorre do projetista recorrer ao modelo mais sofisticado simplesmente por necessidade de memória quando a sua aplicação precisa lidar
com volume de dado maior e não por ser necessário um processamento mais rápido é importante destacar que todos esses modelos da tabela coexistem ou seja os mais sofisticados não substituem os mais simples A ideia é que eles sejam adotados nas aplicações de maneira a utilizar o mínimo de recursos necessários finalmente embora o Cortex M seja tradicionalmente usado em configurações single Core existem versões multicores disponíveis como o ctex m33 e o ctex m55 além de outras que permite maior paralelismo e eficiência em aplicações avançadas outros aspectos que se pode mencionar sobre a família Cortex M são
a família Cortex M abrange microcontroladores desde o de baixo custo Cortex m0 até os mais avançados que incluem os ctex M7 o que proporciona escalabilidade para uma ampla Gama de necessidades de processamento permitindo que a mesma base de código seja adaptada para diferentes dispositivos arm oferece uma extensa biblioteca de software e suporte a ferramentas de desenvolvemento como o k o aar embedded Workbench e o gcc facilitando o desenvolvimento e a depuração o ecossistema arm é amplamente adotado o que significa que os desenvolvedores TM acesso a uma grande comunidade documentação e bibliotecas otimizadas para trabalhar com
microcontroladores Cortex M muitos periféricos e chips de fabricantes terceiros também são otimizados para trabalhar com essa arquitetura tornando-a uma escolha Popular até aqui Você já viu várias frentes que poderiam ser usadas na exploração do espaço do projeto a maioria delas somente olhando para o hardware do sistema as aplicações embarcadas podem ser fatoradas em dois grandes grupos no primeiro deles estão aquelas aplicações onde são poucos os dados de entrada e não é necessário aplicar uma grande transformação nesses dados tipicamente o software coleta o dado do sensor e e aplica algumas operações algébricas simples o resultado já
pode ser enviado para um outro sistema do processamento ou entregue ao próprio usuário da aplicação como exemplo temos a leitura de um sensor de temperatura seguida de aplicação de algumas transformações linear para conversão em graus c e exibição do resultado em algum display tipicamente para essas aplicações microcontroladores de 8 ou 16 bits costumam ser apropriados tem ainda um grupo de micro controladores de 32 bits bem pequenos que também se adequam a essas aplicações o segundo grupo de aplicações recebe dados de sensores mais complexos com uma maior quantidade de informações como imagens ou trechos de áudios
e ap e aplicam uma transformação computacional mais complexa nessas entradas este segundo grupo de aplicações embarcadas requer mais capacidade de processamento para executar a computação envolvida nessas transformações e também mais memória para poder armazenar os dados de entradas e os resultados dessas transformações aqui como exemplo temos processamentos de imagens ou algoritmos de Inteligência Artificial nesse grupo de aplicação tipicamente processadores de 32 bits com maior disponibilidade de memória são mais apropriados algumas plataformas ainda oferecem hardwares auxiliares de processamento de sinais e ou de imagens também são encontradas versões com outros recursos especializados como processadores neurais ou
processadores gráficos por exemplo a seguir vamos avaliar como processadores de 8 16 ou 32 bits podem ser empregados em diferentes domínios de aplicações e identificar algumas características relevantes que devem ser consideradas no processo de exploração do espaço de projeto microcontroladores de 8 bits são uma escolha Popular para diversas aplicações embarcadas devido ao seu custo reduzido simplicidade e eficiência em tarefas de controle simples embora eles não possuam o poder de processamento de microcontroladores de 32 ou 64 bits ainda são bastante úteis em Sistemas que exigem baixo consumo de energia e baixo custo aqui estão alguns exemplos
de aplicações que podem se Ben oficiar do uso de microcontroladores de 8 bits sistemas de controle de automação residencial como controle de iluminação termostato e controle de peanas medidores simples como temperatura umidade em Sistemas de controle climático de peso em balanças digitais ou ainda de nível em tanques de água ou de combustível dispositivos para controle de pequenos motores como ventiladores e brinquedos motorizados sistemas de alarme simples como detectores de movimento e sensores de abertura de portas e janelas controladores de eletrodomésticos para ligar e desligar cafeteiras por exemplo dispositivos de interface hid o Human interface devices
como teclados simples Mouses controle remoto infravermelho rastreadores de atividade como medidores de frequência cardíaca simples sistemas de controle de irrigação automática para jardins ou pequenos Campos contadores ou cronômetros como em painéis esportivos ou na cozinha sistemas de identificação com o uso de rfid simples em controle de acesso microcomputadores de 32 bits são mais poderosos em termos de capacidade de processamento e memória o que os tornas o que os torna ideal para uma gama mais Ampla de aplicações especialmente aquelas que exigem um maior desempenho maior volume de dado e integração com diversos periféricos eles são amplamente
utilizados em Sistemas que precisam de processamento de dados com maior velocidade interface gráfica e conectividade avançada aqui estão alguns exemplos de aplicações que se beneficiam de microcontroladores de 32 bits automação industrial e controle de processos como monitoramento de controle de processos industriais e sistema escada ou controle de robôs industriais o motivo aqui é que esses sistemas podem exigir processamento rápido de dados muitos sensores comunicação com outras máquinas e também interface gráfica sistemas de navegação como rastreadores de veículos drones e sistemas de geolocalização os GPS a razão é que pode ser necessário executar cálculos de coordenadas
e integrar com meios de conectiv atividade sem fio como GSM wi-fi ou Bluetooth dispositivos de realidade aumentadas e realidade virtual como óculos jogos interativos simuladores de treinamento o motivo aqui é o processamento gráfico 3D multitarefa incluindo vídeo áudio e sensores de movimento simultaneamente sistemas de monitoramento de saúde como relógios inteligentes que monitoram frequência cardíaca pressão arterial e atividades físicas nesse caso a razão está ligada ao processamento de dados de múltiplos sensores e a conectividade sem fio para sincronizar com smartphones ou sistemas de nuvem dispositivos de comunicação sem fio avançados como rádios definidos por software SDR
e gateways de comunicação wi-fi Bluetooth z gbi ou laora outro exemplo são dispositivos de comunicação sem fio avançados como os rádios definidos por softwares os SDR e gateways de comunicação como wi-fi bluetooth zgb e laora o motivo pode ser o processamento de pacote de dados e o controle de protocolo e comunicação ou ainda algum tipo de criptografia de dados já o controle de robôs e drones pilotando ou autônomos também utiliza microcontroladores de 32 bits robôs e drones requerem o processamento de múltiplos sensores câmera lidar sensores ultrassônicos e mous controle de motores e execução de algoritmos
de navegação e controle de movimento Outro exemplo é o reconhecimento de imagens e processamento de vídeo com câmeras de segurança inteligente neste caso o processador de alto nível ele é necessário para lidar com grande volume de dados e muitas vezes com algum tipo de integração com sistemas de comunicação Outra área é o entretenimento e áudio como fones de ouvido inteligentes autofalantes bluetooth e também em Sistemas de áudio em automóveis dispositivos de áudio e entretenimento digital frequentemente exigem processamento de sinais de áudio em tempo real com controle de volume equalização e conectividade sem fio também é
necessário executar algoritmos de ento digital de sinais como os dsps outro exemplo são os sistemas de pagamento móvel e leitores de cartão a necessidade aqui pode ser gerenciar a comunicação com sistemas de pagamento Seguros realizar criptografia de dados e controlar os módulos NFC ou Bluetooth já os sistemas de visualização e interface gráficas como os painéis de contoles de máquinas interfaces de usuário com botões e toques neste caso a plataforma deve permitir o gerenciamento de gráfico em alta resolução animação e interação com o usuário por meio de telas sensíveis ao tox que demandam memória elevada e
desempenho Ainda temos o micro os microcontroladores de 16 bits que tem mais capacidade de processamento e memória do que os de 8 bits mas ainda são mais econômicos e eficientes do que os de 32 bits isso os torna uma escolha adequada para aplicações que exigem mais precisão e processamento mas não precisam de um poder computacional muito elevado entre as aplicações típicas nós temos sistemas de controle de motor sensor de pressão para aplicações médicas medidores digitais e instrumentação científica um recurso adicional frequentemente presente em plataformas utilizadas em aplicações embarcadas são os dsps digital signal processor ou
processador de sinais digitais os microcontroladores com DSP são ideais para aplicações que exigem manipulações e análises eficiente de dados como em Sistemas de áudio comunicação e imagem essas aplicações ente demandam funções como filtragem essas aplicações frequentemente demandam funções como filtragem compressão e modificação de sinais um DSP pode realizar cálculos matemáticos complexos como operações vetoriais utilizando menos ciclos de clock do que uma CPU normal de fato as operações vetoriais são um grande diferencial nos dsps isso melhora o desempenho e permite atender as exigências de rapidez e precisão em tarefas como reconhecimento de voz filtragem de ruído
e processamentos de áudio e em dispositivos de IOT por exemplo microcontroladores com DSP podem ser utilizados para executar algoritmos de reconhecimento de voz e detecção de som de sons específicos eles processam sinais de áudio em tempo real extraindo características relevantes para Ativar comandos ou responder a eventos o arm Cortex M4 que vimos há pouco é um exemplo de microcontrolador que oferece DSP integrado hoje exploramos várias possibilidades para para nos ajudar a selecionar o micro controlador mais adequado a cada aplicação esse conjunto de opções de processadores de 8 a 32 bits bem como as diferentes combinações
de arquitetura abrem todo um espaço de exploração que você vai poder fazer quando tiver realizando o seu projeto de uma aplicação embarcada por isso cada fabricante oferece um conjunto de plataformas com diferentes combinações de processadores capacidades de memória e interfaces de entradas e saídas para que os engenheiros possam fazer o melhor combinação possível na implementação de seus projetos essa melhor combinação vai depender dos requisitos e pode resultar por exemplo no menor custo na maior velocidade de computação ou ainda no menor tempo de desenvolvimento dependendo das restrições do projeto Obrigado por participar da nossa aula caso
surjam dúvidas sinta-se à vontade para entrar em contato com a equipe do curso pelos canais de comunicação disponível Bons estudos e até a próxima