Prévia do material em texto
Cassiana Fagundes da Silva INTRODUÇÃO AOS SISTEMAS EMBARCADOS (SE) Sumário INTRODUÇÃO ������������������������������������������������� 3 INTRODUÇÃO, ASPECTOS HISTÓRICOS E EVOLUÇÃO DOS SE ������������������������������������� 4 CONCEITOS BÁSICOS ������������������������������������ 9 TIPOS, CLASSIFICAÇÕES E CARACTERÍSTICAS ������������������������������������� 11 ÁREAS DE APLICAÇÃO �������������������������������� 16 VISÃO GERAL DO DESENVOLVIMENTO DE UM SE ������������������������������������������������������ 20 TECNOLOGIAS APLICADAS EM SE ������������� 25 MICROCONTROLADORES E PROCESSADORES PARA SE ������������������������ 29 Processadores da arquitetura ARM ����������������������������������� 34 Processadores da arquitetura RISC-V ������������������������������� 36 CONSIDERAÇÕES FINAIS ���������������������������� 38 REFERÊNCIAS BIBLIOGRÁFICAS & CONSULTADAS �������������������������������������������� 40 2 INTRODUÇÃO Neste e-book abordaremos diferentes tópicos que nos permitirão entender sobre os conceitos dos Sistemas Embarcados (SE), seu histórico e evolução ao longo dos anos, principalmente com o desenvolvimento dos recursos tecnológicos da microeletrônica e miniaturização dos processadores� Além disso, também faremos uma reflexão sobre os principais aspectos, tipos e classificações de sistemas embarcados de modo que possamos entender em quais situações esses diferentes tipos podem ser utilizados conforme aplicação a ser desenvolvida� Diante dessas informações, torna-se possível discutir e ter uma visão geral sobre o desenvolvimento e arquitetura de um sistema embarcado apresentando as principais tecnologias de microcontroladores e processadores como, por exemplo, arquiteturas RISC, CISC e interfaces de comunicação (SPI, I2C), e como dispositivos de entrada e saída são usados e interpretados pelo SE� 3 INTRODUÇÃO, ASPECTOS HISTÓRICOS E EVOLUÇÃO DOS SE Os sistemas embarcados (SE) têm sido utilizados desde o surgimento dos computadores a partir da década de 1940� Inicialmente, os computadores se caracterizavam pelo seu tamanho, custo e pela forma de execução de suas tarefas, ou seja, uma única tarefa era realizada por vez em um determi- nado espaço de tempo� Porém, à medida que as décadas foram passando e os recursos tecnoló- gicos avançando, a microeletrônica e o tamanho dos componentes foram sendo aprimorados na capacidade de armazenamento e tamanho (De- nardin; Barriquelo, 2019)� Nas décadas de 1960 e 1970, os primeiros micro- processadores começaram a ser desenvolvidos, e o conceito de sistemas embarcados começou a ser aplicado� No entanto, a utilização desta nova tecnologia de microprocessadores era utilizada restritamente a sistemas militares e aeroespa- ciais, devido à sua capacidade de realizar tarefas complexas com tamanho e consumo de energia reduzidos, mas pincipalmente ao seu alto custo (Hennessy, 2019)� 4 O primeiro sistema embarcado surgiu com o desenvolvimento do Projeto Apollo, que tinha o objetivo de projetar e simular um conjunto de missões espaciais da NASA para enviar o homem à Lua� Esse sistema embarcado, chamado de Apollo Guidance Computer (AGC), era usado para coletar e fornecer informações sobre voos, além de controlar automaticamente todas as funções de navegação� Para conhecer mais sobre o projeto Apollo e o primeiro sistema embarcado AGC, desenvolvido por Charles Stark Draper, do MIT, você pode ler o texto em inglês de David Scott, disponível em: https://klabs.org/history/ history_docs/ech/agc_scott.pdf� Em português, o site Museu Capixaba do Computador possui um texto que explica toda a complexidade desse aconte- cimento, além dos avanços tecnológicos que esse evento causou. Disponível em: https://museucapixaba.com.br/ hoje/computador-apollo-guidance-computer-agc-de-1968/� Na mesma década, foi desenvolvido pelos Estados Unidos, em 1961, o primeiro sistema embarcado de produção em massa e era conhecido como “LGM- 30 Míssil Minuteman”, o computador guia do míssil nuclear. O sistema apresentava como característica o uso de um disco rígido para armazenamento SAIBA MAIS 5 https://klabs.org/history/history_docs/ech/agc_scott.pdf https://klabs.org/history/history_docs/ech/agc_scott.pdf https://museucapixaba.com.br/hoje/computador-apollo-guidance-computer-agc-de-1968/ https://museucapixaba.com.br/hoje/computador-apollo-guidance-computer-agc-de-1968/ da memória principal e sua funcionalidade era controlar a orientação e estabilidade do foguete� Posteriormente, uma nova versão foi elaborada e o computador foi substituído por outro que utili- zava um grande volume de circuitos integrados, reduzindo o preço deles� No mesmo tipo de aplicação, isto é, outro sistema embarcado para voos, o SE do caça Tomcat F-14 da marinha americana, desenvolvido e lançado nos anos 1970, possuía o primeiro microprocessador baseado em sistema embarcado Garret CADC� Ele era composto por oito processadores e 19 chips de memória e tinha a função de controlar boa parte das operações do caça Tomcat F-14. Nessa época, com o desenvolvimento de tecnologias de software, várias bibliotecas de códigos direciona- dos para sistemas embarcados específicos, com processadores específicos, começaram a surgir. Ainda na década de 1970, os sistemas embarcados só evoluíram em decorrência da indústria da defesa militar, apesar de que com o passar do tempo outras áreas, como jogos, medicina e aviação, também possibilitaram o estímulo tanto da criação como do uso de sistemas embarcados (Pichetti, 2022)� Por outro lado, na década de 1980, vários compo- nentes externos foram integrados no mesmo chip do processador, resultando em circuitos integrados 6 chamados microcontroladores� Outro fator que ajudou na difusão dos sistemas embarcados foi a criação do Consórcio PC/104 pela Ampro, RTD e outros fabricantes� Esse grupo estabeleceu um modelo de microprocessadores Intel implantado em uma placa-mãe de aproximadamente quatro polegadas quadradas, e um pouco menos de uma polegada de altura (Vieira; Piosenava, 2021)� Resumidamente, podemos dizer que os sistemas embarcados evoluíram significativamente em termos de desempenho, tamanho, eficiência energética e capacidade de processamento� Isso foi decorrente dos avanços na microeletrônica e na fabricação de chips cada vez menores e mais poderosos, tornan- do possível a inclusão de sistemas embarcados em dispositivos portáteis e de tamanho reduzido (Neto; De Oliveira, 2019)� Figura 1: Placa-mãe� Fonte: Shutterstock� 7 Além disso, houve uma evolução nas tecnologias de comunicação e conectividade, o que permitiu a interconexão de sistemas embarcados em redes e a troca de informações em tempo real, impul- sionando o desenvolvimento de dispositivos e sistemas inteligentes, como casas automatizadas, carros autônomos, wearables (definidos por todo e qualquer tipo de dispositivos vestíveis) e a Internet das Coisas (IoT), em que múltiplos sistemas embar- cados podem interagir entre si e com o ambiente (Torres, 2019)� Outro ponto a ser considerado foi a evolução dos sistemas operacionais e ferramentas de desenvolvimento específicas para esse tipo de sistema, ou seja, o desenvolvimento de software embarcado possibilitou a programação e configu- ração dos sistemas para atender as necessidades específicas de cada aplicação (Torres, 2019 apud Szwarcfiter, 2021). 8 CONCEITOS BÁSICOS Os sistemas embarcados são sistemas computa- cionais projetados para realizar funções específicas dentro de um dispositivo ou sistema maior� Eles são projetados para operar de forma autônoma e integrada ao dispositivo ou sistema em que estão incorporados� Esses sistemas são compostos por hardware e software projetados para atender os requisitos específicos da aplicação em que são utilizados (De Almeida, 2016)� Ao contrário dos computadores pessoais conven- cionais, os sistemas embarcados são projetados para desempenhar tarefas específicas de forma eficientee confiável, em vez de serem dispositi- vos de propósito geral� Eles são encontrados em uma ampla gama de dispositivos eletrônicos que usamos em nosso cotidiano, como smartphones, eletrodomésticos, veículos, sistemas de controle industrial, dispositivos médicos, entre outros� Cabe ressaltar que esses sistemas podem variar em complexidade, isto é, desde sistemas simples com poucos recursos até sistemas altamente so- fisticados, como carros autônomos ou sistemas de controle de tráfego aéreo� Dependendo da complexidade de aplicação, os SE devem operar em tempo real ou com requisitos de tempo restrito, cuja resposta rápida e confiável é crucial. 9 Podemos dizer que um sistema embarcado é composto por um conjunto de componentes de hardware e software� Os componentes de har- dware são, por exemplo, processadores, memória, interfaces de comunicação e sensores, que são integrados no dispositivo ou sistema em que es- tão embarcados� Os softwares embarcados, que podem incluir sistemas operacionais em tempo real, são drivers de dispositivo de E/S, algoritmos de controle e aplicativos específicos. 10 TIPOS, CLASSIFICAÇÕES E CARACTERÍSTICAS Vários são os tipos de sistemas embarcados, cada um com suas características e aplicações especí- ficas. Em relação aos tipos existentes de sistemas embarcados destacamos os SE de tempo real, projetados para responder a eventos e estímulos do ambiente em tempo real; os SE de controle usados para controlar e monitorar dispositivos e processos; SE de redes que estão conectados a redes de comunicação e são capazes de trocar in- formações e se comunicar com outros dispositivos. Os sistemas embarcados são classificados, con- forme determinadas propriedades e requisitos considerados por Denardin e Barriquelo (2019), da seguinte maneira� Figura 2: Classificação dos sistemas embarcados. Classificações dos Sistemas Embarcados Complexidade Arquitetura Tempo de resposta Conectividade Aplicação Fonte: Denardin; Barriquelo, 2019� Adaptado� 11 Os sistemas embarcados, conforme a sua com- plexidade, podem ser classificados em: y Sistema embarcado de complexidade simples: requer funcionalidades e recursos limitados, geral- mente projetados para realizar tarefas específicas e mais simples� y Sistemas complexos: caracterizam-se por serem mais robustos e sofisticados, capazes de executar múltiplas tarefas e oferecer uma ampla gama de funcionalidades� Em relação à arquitetura, os sistemas embarcados estão baseados em: y Sistemas embarcados baseados em micro- controladores: adotam microcontroladores como a unidade de processamento principal e são ampla- mente utilizados em dispositivos de baixo custo e com requisitos de processamento relativamente simples� y Sistemas embarcados baseados em micro- processadores: usam microprocessadores mais poderosos e geralmente possuem recursos adi- cionais, como sistemas operacionais completos, capacidade de execução de aplicativos e interfaces de usuário mais sofisticadas. 12 y SoC (System on a Chip): são sistemas que integram vários componentes em um único chip, incluindo processador, memória, controladores de periféricos, interfaces de comunicação e outros� Por outro lado, considerando o tempo de resposta, os sistemas embarcados podem ser: y Sistemas de tempo real: são de sistemas que possuem requisitos de tempo rígidos, cujas tarefas devem ser executadas dentro de prazos determinísticos para garantir o funcionamento adequado do sistema� y Sistemas de tempo não real: adotam sistemas cujos requisitos de tempo não são tão rigorosos, permitindo alguma flexibilidade na resposta às tarefas� Por que os sistemas embarcados de tempo real mere- cem mais atenção no desenvolvimento de um projeto do que os sistemas embarcados que podemos chamar de “comuns”? Ou essa atenção deverá ser tomada para ambos os tipos de sistemas embarcados? Por esta e outras situações, os sistemas embarcados de tempo real merecem mais atenção no desenvolvi- mento de um projeto em comparação com os sistemas REFLITA 13 embarcados “comuns”: devido à natureza crítica das aplicações em que são utilizados. Dentre as razões po- demos destacar os requisitos de tempo, confiabilidade e previsibilidade� Assim, os sistemas embarcados “comuns” também exigem atenção no desenvolvimento, mas os sistemas embarcados de tempo real apresentam desafios adicio- nais e críticos que precisam ser cuidadosamente abor- dados. No entanto, isso não significa que os sistemas embarcados “comuns” devam ser negligenciados� Todos os sistemas embarcados, independentemente do tipo, devem ser projetados com consideração aos requisi- tos e restrições específicas de sua aplicação, levando em conta a eficiência de recursos, a confiabilidade, a segurança e a escalabilidade� Tratando-se de conectividade, os SE são definidos como: y Autônomos: são os sistemas que operam de forma independente e não possuem conectividade externa. y Conectados: possuem conectividade com ou- tros dispositivos ou redes, permitindo a troca de informações e a comunicação com outros sistemas. De acordo com a aplicação para qual os sistemas embarcados foram desenvolvidos, pode-se dividir em grandes áreas como automotiva, indústria, medicina, eletrônico de consumos, entre outros� 14 Nesse sentido, segundo Denardin e Barriquelo (2019), os sistemas embarcados se caracterizam por determinadas características: y Especificidade da aplicação (executar tarefas específicas conforme requisitos da aplicação); y Restrições de recurso (limite de capacidade de armazenamento e processamento para atender as restrições de custo, tamanho e consumo); y Tempo real (precisam responder e concluir tarefas dentro de prazos determinísticos); y Baixo consumo de energia (operar com baixo consumo de energia); y Conectividade (capacidade de conexão a redes ou outros dispositivos – isso permite a comunicação e a troca de informações com outros sistemas); y Confiabilidade e tolerância a falhas (projetados para serem confiáveis e capazes de lidar com falhas); y Tempo de vida longo (incorporados em produ- tos que têm um ciclo de vida longo, como veículos, equipamentos industriais e dispositivos médicos); y Projeto customizado (desenvolvido de acordo com os requisitos específicos da aplicação e do ambiente em que será utilizado)� Assim, podemos dizer que a maioria das caracte- rísticas descritas são encontradas nos sistemas embarcados, embora a natureza exata e a ênfase em cada característica possam variar dependendo da aplicação e dos requisitos do sistema específico. 15 ÁREAS DE APLICAÇÃO Os sistemas embarcados são amplamente utilizados em uma variedade de áreas e setores devido à sua capacidade de fornecer funcionalidades específi- cas e desempenho otimizado� Para entendermos como essas áreas podem ser aplicadas, podemos categorizá-las em: eletrônicos, indústria, área da saúde, área espacial, telecomunicações, cidades inteligentes, eficiência energética, entre outras. Os sistemas embarcados estão cada vez mais pre- sentes no nosso dia a dia por meio dos eletrônicos como os smartphones, tablets, TVs inteligentes, entre outros� No caso dos smartphones, podemos dizer que eles dependem fortemente de sistemas embarcados, pois possuem processadores pode- rosos, memória, sensores, câmeras e interfaces de comunicação (E/S) que são controlados pelos SE� Além disso, eles utilizam e são controlados por SO (sistemas operacionais) específicos para tais arquiteturas, que permitem uma ampla gama de recursos, como chamadas telefônicas, navegação na web, e-mail, redes sociais, jogos, reprodução de mídia, entre outros. No caso dos eletrônicos como TVs inteligentes, os sistemas embarcados permitem a conexão com a internet e a execução de aplicativos, além de ofe- recerem recursos de streaming de vídeo, acesso a 16 serviços de vídeo sob demanda, navegação na web e interação com conteúdo digital� Nesse sentido, osSE, nessas TVs, controlam o processamento de vídeo, a interface do usuário e a conectividade com outros dispositivos� Nos dispositivos de áudio, os sistemas embar- cados são amplamente utilizados por meio de alto-falantes bluetooth, fones de ouvido sem fio e sistemas de som domésticos� Nesses dispositivos, os SE controlam a reprodução de áudio, ajustes de equalização, conectividade sem fio e outros recursos específicos do dispositivo. O mesmo acontece com as câmeras digitais modernas, em que os sistemas embarcados con- trolam o processamento de imagem, a captura de fotos e vídeos, a exposição, o foco automático, os ajustes de cor, a estabilização de imagem e outros recursos específicos da câmera. Além disso, os SE também oferecem interfaces de usuário intuitivas e opções de conectividade para transferência de mídia. A câmera Amaryllo, por exemplo, apresenta um sistema operacional GNU/Linux embarcado, em que é possível, pela vasta quantidade de re- cursos, prover acesso à câmera via Skype e outros elementos (Bauermeister, 2023)� 17 Ainda na categoria de eletrônicos, podemos tam- bém destacar os sistemas embarcados usados nos dispositivos de jogos como nos consoles de PlayStation, Xbox e Nintendo Switch. Os sistemas embarcados que existem nos consoles de jogos permitem o controle do processamento gráfico, o processamento de áudio, a conectividade on- -line, a execução de jogos e a interação com os controladores, ou seja, a interação com o joystick� No ambiente industrial os sistemas embarcados normalmente são usados em grande escala e es- tão presentes em controle do motor, sistemas de segurança ativa (como freios ABS e controle de estabilidade), sistemas de navegação, controle de climatização, entre outros� Ainda na indústria, os SE desempenham um papel crucial nesses ambientes para automação e controle de processos quando usados em controladores lógicos programáveis (CLPs), sistemas de aquisição de dados, sistemas de controle de robôs, sistemas de monitoramento e controle de produção, entre outros� Na indústria aeroespacial e de defesa, os sistemas embarcados são encontrados em aviões, satélites, veículos espaciais, sistemas de mísseis, sistemas de comunicação e controle de voo� Esses siste- mas exigem alta confiabilidade, desempenho e tolerância a falhas. 18 Na área médica não seria diferente, pois os siste- mas embarcados são usados em equipamentos de monitoramento de pacientes, aparelhos de imagem médica, dispositivos de administração de medicamentos, dispositivos de suporte à vida, próteses e implantes médicos� Outra aplicação dos sistemas embarcados, na atualidade, é nas casas inteligentes para desenvol- vimento de dispositivos e sistemas de automação residencial como, por exemplo, os sistemas de controle de iluminação, termostatos inteligentes, sistemas de segurança, sistemas de áudio/vídeo, eletrodomésticos conectados e sistemas de ge- renciamento de energia� Nas áreas de telecomunicações e redes de com- putadores as aplicações envolvem sistemas embarcados em roteadores, switches, pontos de acesso sem fio, gateways, sistemas de telefonia, com o objetivo de fornecer conectividade e geren- ciamento de rede� Para saber mais sobre as diferentes aplicações dos sistemas embarcados e suas áreas de atuação, aces- se o vídeo disponível em: https://www.youtube.com/ watch?v=FvX33N1JOXY. Esse vídeo aborda aplicações de sistemas embarcados na área de robótica� SAIBA MAIS 19 https://www.youtube.com/watch?v=FvX33N1JOXY https://www.youtube.com/watch?v=FvX33N1JOXY VISÃO GERAL DO DESENVOLVIMENTO DE UM SE Pensando em sistemas embarcados como uma visão geral, percebemos que eles são diferentes dos sistemas operacionais instalados em com- putadores e determinadas máquinas� No caso dos sistemas embarcados, existem determinadas limitações, principalmente pelo fato de os siste- mas embarcados apresentarem uma arquitetura de hardware SoC, ou seja, System on a Chip, que pode conter um ou mais processadores, memória, interfaces de comunicação com os periféricos e outros componentes� Nesse sentido, entendemos que os sistemas em- barcados são projetados para atender as necessi- dades de um conjunto de aplicações ou executar funções específicas de determinada aplicação. Em outras palavras, significa dizer que os softwares nos sistemas embarcados são projetados para maximizar as funções específicas do hardware e da aplicação para o qual foi desenvolvido e será implantado� Em relação à parte física de um projeto de siste- mas embarcados, precisamos entender o papel dos sensores e atuadores e como esses são pro- 20 gramados para controlar a aplicação (Denardin; Barriquelo, 2019)� Figura 3: Combinação de sensores e atuadores em um SoC� Fonte: www�tecniar�com�br� Os sensores são elementos físicos que possibilitam a captação de grandezas nos ambientes e fornecem um sinal elétrico que deve ser interpretado pelo hardware. Como exemplos de sensores destaca- mos os sensores de umidade, de temperatura, de gás, entre outros� Já os atuadores são elementos físicos que pro- vocam mudança ao meio considerando o que foi programado. Como exemplos de atuadores des- tacamos as lâmpadas, motores, braços robóticos, entre outros� Os microcomputadores SoC apresentam os prin- cipais componentes básicos de um computador� São exemplos de SoC os dispositivos conhecidos 21 http://www.tecniar.com.br/wp-content/uploads/2018/05/TECNI-AR_Parker_Store_Brasil_CLP_PCLpng.png por Arduino, Raspberry Pi, Esp32, entre outros (Denardin; Barriquelo, 2019)� Vale destacar que a arquitetura de um sistema embarcado se refere à organização e estrutura dos componentes que compõem esse sistema eletrônico para realização de funções específicas e dedicadas� No entanto, o desenvolvimento dessa arquitetura depende das necessidades e requisitos do projeto específico, mesmo assim, independen- temente do projeto, determinados componentes comuns são necessários, dentre os quais destaca- mos: processador, memória, periféricos, sistema operacional, interfaces de entrada e saída (E/S), firmware e fontes de energia. O processador é definido por muitos como sendo o “cérebro” do sistema embarcado e responsável por executar as instruções do programa. Pode ser um microcontrolador de baixa potência, um processador de propósito geral ou um processa- dor especializado, dependendo dos requisitos do sistema� Além dos processadores, os sistemas embarcados incluem diferentes tipos de memória para armazenar dados e instruções. Podendo incluir memória RAM para armazenamento temporário de dados, memória flash para armazenamento permanente de programas e dados e memória de acesso direto ao hardware (DMA) para transferência eficiente de dados. 22 Os periféricos são componentes adicionais conec- tados para fornecer funcionalidades específicas que incluem interfaces de comunicação, como UART, SPI ou I2C, portas GPIO para entrada/saída digital (E/S), conversores analógico-digitais (ADC) e digitais-analógicos (DAC), interfaces de rede, como Ethernet ou Wi-Fi, interfaces de armazenamento, como USB ou cartões SD, entre outros (Denardin; Barriquelo, 2019)� Muitos sistemas embarcados executam um sistema operacional como, por exemplo, o Linux embarcado, FreeRTOS, Micrium UC/OS, para ge- renciar os recursos do sistema, fornecendo uma interface de programação e facilitando a execução de múltiplas tarefas� O firmware é o software de baixo nível que está armazenado na memória não volátil do sistema embarcado, fornecendo as instruções básicas para inicializar o hardware e executar as funções principais do sistema� Enquanto as interfaces permitem a interação com o sistema embarcado, como botões, teclados, telas, sensores, atuadores, entre outros dispositivos externos que fornecem entrada de dados ou saída de informações. Por fim, as fontes de energia têm requisitos de energia específicos e podem incluir fontes de energia inte- gradas, como bateriasou adaptadores de energia� 23 Além desses componentes básicos, a arquitetura de um sistema embarcado também pode envol- ver o desenvolvimento de drivers de dispositivo, algoritmos de controle, protocolos de comunica- ção e outras camadas de software para fornecer funcionalidades específicas ao sistema. A escolha desses componentes depende dos requisitos do sistema embarcado em termos de aplicação, de- sempenho, tamanho, consumo de energia, custo e outros fatores-chave� 24 TECNOLOGIAS APLICADAS EM SE Os sistemas embarcados adotam diferentes tipos de tecnologias de acordo com a aplicação e a especificidade das tarefas que serão executadas. Dentre as tecnologias descritas podemos destacar os microcontroladores, que são dispositivos inte- grados que combinam um processador, memória, periféricos de entrada/saída e outros componentes essenciais em um único chip� Os sistemas embarcados muitas vezes dependem de sensores para coletar informações do ambiente e atuadores para interagir com o mundo físico. Existem diversos tipos de sensores, como sen- sores de temperatura, pressão, luz, movimento, entre outros� Os atuadores podem incluir motores, relés, válvulas, entre outros dispositivos que exe- cutam ações físicas em resposta aos comandos do sistema embarcado� Além dos sensores e atuadores, também são necessárias tecnologias de comunicação sem fio que permitam a comu- nicação com outros dispositivos ou redes� Para isso, são utilizadas várias tecnologias, como Wi-Fi, Bluetooth, Zigbee, LoRa, Cellular (como 3G, 4G, 5G) e muitas outras� Essas tecnologias permitem a conectividade e troca de dados entre sistemas 25 embarcados e outros dispositivos ou servidores (De Almeida, 2021)� A tecnologia ASIC (Application-Specific Integrated Circuit) adota um circuito integrado projetado espe- cificamente para uma aplicação ou função especia- lizada� Os ASICs são desenvolvidos para atender os requisitos exatos de um sistema embarcado específico, oferecendo desempenho otimizado, menor consumo de energia e menor tamanho em comparação com soluções genéricas. A tecnologia CISC (Complex Instruction Set Compu- ting) é uma arquitetura de processador que possui um conjunto de instruções complexas e variadas. Os processadores CISC são capazes de executar tarefas complexas em um único ciclo de clock, o que pode ser vantajoso para certas aplicações que exigem suporte a um conjunto amplo de ins- truções. O FPGA (Field-Programmable Gate Array) é um dispositivo de hardware reconfigurável que pode ser programado para executar tarefas espe- cíficas. Normalmente, grande parte dos sistemas embarcados utilizam dessas tecnologias devido à sua flexibilidade e capacidade de implementar lógica personalizada. Dentre as aplicações que mais utilizam esses sistemas embarcados são as que adotam prototipagem rápida, desenvolvimento de sistemas de controle e processamento de sinal� 26 Por outro lado, a arquitetura RISC (Reduced Instruction Set Computing) é uma arquitetura de processador que possui um conjunto reduzido e simplificado de instruções. Os processadores RISC tendem a executar instruções em ciclos de clock únicos, o que melhora a eficiência e o desempenho geral do processador� A tecnologia denominada por Flash é um tipo de memória não volátil que permite o armazenamento de dados mesmo quando a energia é removida� A memória Flash é amplamente utilizada em sistemas embarcados para armazenamento de firmware, siste- ma operacional, dados do usuário e outros arquivos necessários para o funcionamento do sistema� Já a SRAM (Static Random Access Memory) é uma memória estática de acesso aleatório que retém os dados armazenados enquanto a energia é fornecida� A SRAM é mais rápida e mais cara, além de consumir mais energia e por conta disso é usada em sistemas embarcados para armazenar dados temporários, buffers e caches� Ao contrário da SDRAM (Synchronous Dynamic Random Access Memory), que é uma memória dinâmica de acesso aleatório que requer uma atualização periódica dos dados armazenados� A SDRAM é mais lenta em comparação com a SRAM, mas oferece maior capacidade de armazenamento a um custo mais baixo, utilizada para armazenar dados do sistema 27 e executar operações de leitura e gravação de forma eficiente. Já a memória cache é uma memória de alta veloci- dade e baixa capacidade que armazena temporaria- mente os dados mais frequentemente acessados pelo processador� O cache é usado para reduzir o tempo de acesso à memória principal, melhorando o desempenho geral do sistema� É amplamente aplicado em sistemas embarcados para acelerar as operações de leitura e escrita, especialmente em processadores de alto desempenho� A VRAM (Video Random Access Memory) é um tipo de memória especializada utilizada para armazenar dados de imagem e vídeo. A VRAM é projetada para suportar a taxa de transferência necessária para exibir gráficos em tempo real em dispositivos, como monitores, painéis de exibição, telas sensíveis ao toque e outros dispositivos de saída visual. Para programar e desenvolver software para siste- mas embarcados, são utilizadas várias linguagens de programação, como C, C++, Python e Assembly� Também são empregadas ferramentas de desen- volvimento, como compiladores, depuradores e ambientes de desenvolvimento integrado (IDEs), bem como protocolos de comunicação, como SPI (Serial Peripheral Interface), I2C (Inter-Integrated Circuit) e UART (Universal Asynchronous Receiver-Transmitter)� 28 MICROCONTROLADORES E PROCESSADORES PARA SE Os sistemas embarcados em sua arquitetura utili- zam de microcontroladores e processadores para que possam funcionar e desenvolver suas tarefas conforme a aplicação para qual os sistemas foram desenvolvidos� Figura 4: Diferentes tipos de microcontroladores� Fonte: blog�eletrogate�com� Os microcontroladores ARM Cortex-M são uma família de processadores projetados especifica- mente para aplicações de sistemas embarcados de baixa potência e baixo custo. Eles são ampla- mente utilizados em uma variedade de dispositivos, 29 https://blog.eletrogate.com/introducao-aos-microcontroladores-pic-parte-1/ desde eletrodomésticos inteligentes até sistemas de segurança e automação industrial� Dentre suas principais características chaves estão: y Eficiência energética: Cortex-M são projetados para oferecer uma excelente eficiência energética, permitindo um menor consumo de energia em aplicações alimentadas por baterias ou energia limitada� y Desempenho otimizado: microcontroladores fornecem um bom equilíbrio entre desempenho e consumo de energia� Eles podem lidar com tarefas em tempo real e executar instruções de maneira eficiente, garantindo um processamento rápido e responsivo� y Conjunto de instruções: a arquitetura do conjunto de instruções Cortex-M é baseada na arquitetura RISC (Reduced Instruction Set Computing), que oferece instruções simples e eficientes, permitindo uma execução rápida e otimizada de tarefas. y Periféricos integrados: microcontroladores Cortex-M possuem uma variedade de periféricos integrados, como UART (Universal Asynchronous Receiver-Transmitter), SPI (Serial Peripheral Inter- face), I2C (Inter-Integrated Circuit), PWM (Pulse Width Modulation) e GPIO (General Purpose Input/ Output), facilitando a comunicação com outros dispositivos e a interação com o ambiente� 30 y Tamanhos de memória variados: os microcon- troladores Cortex-M estão disponíveis em diferen- tes versões, com opções de memória variadas, incluindo memória flash para armazenamento de código, memória SRAM para armazenamento de dados temporários e memória EEPROM para armazenamento não volátil� y Ferramentas de desenvolvimento: diversas ferramentas de desenvolvimento disponíveis para os microcontroladores Cortex-M, incluindo compi- ladores, depuradores e ambientes de desenvolvi- mento integrado (IDEs), facilitam a programação e o desenvolvimento de aplicativos para esses dispositivos�Os microcontroladores PIC (Programmable Interface Controller) são uma família de microcontroladores amplamente utilizados em sistemas embarcados� Eles são desenvolvidos pela empresa Microchip Technology e são conhecidos por sua facilidade de uso, eficiência energética e ampla disponibilidade no mercado� A linha de microcontroladores PIC abrange uma ampla gama de modelos, desde dispositivos simples e de baixo custo até microcontroladores mais avançados com recursos adicionais� Alguns aspectos-chave dos microcontroladores PIC incluem: Arquitetura RISC, Consumo de energia, Periféricos integrados, Tamanhos de memória, Ferramentas de desenvolvimento amplamente suportados� 31 Além disso, eles são comumente utilizados em uma variedade de aplicações, como automação residencial, eletrônicos de consumo, sistemas de controle industrial, dispositivos médicos e muitos outros sistemas embarcados� Para saber mais sobre os microcontroladores PIC e seu uso em sistemas embarcados, acesse este link: https:// embarcados.com.br/pic/� Os microcontroladores AVR são uma família de microcontroladores amplamente utilizados em sistemas embarcados� Eles são desenvolvidos pela Microchip Technology (anteriormente Atmel Corporation) e são conhecidos por sua arquitetura RISC (Reduced Instruction Set Computing), possuindo facilidade de uso e ampla disponibilidade� Esses mesmos microcontroladores são amplamente uti- lizados em uma variedade de aplicações, incluindo automação residencial, eletrônicos de consumo, sistemas de controle industrial, dispositivos mé- dicos e muitos outros sistemas embarcados� Sua arquitetura eficiente, facilidade de uso e ampla disponibilidade tornam os microcontroladores AVR uma escolha popular entre os desenvolvedores de sistemas embarcados� SAIBA MAIS 32 https://embarcados.com.br/pic/ https://embarcados.com.br/pic/ Os microcontroladores MSP430 são uma família de microcontroladores de baixa potência desenvol- vidos pela Texas Instruments. Eles são projetados especificamente para aplicações com requisitos rigorosos de consumo de energia e são amplamente utilizados em sistemas embarcados alimentados por bateria� Em relação aos processadores, podemos destacar o Intel x86, AMR Cortex-A, RISC-V. Os processado- res Intel x86 são uma família de processadores baseados na arquitetura x86, desenvolvida pela Intel Corporation� Normalmente são utilizados em computadores pessoais, laptops, servidores e muitos outros dispositivos eletrônicos� Como características desse processador destacamos a arquitetura de conjunto de instruções (ISA), Desempenho e poder de processamento, suporte a tecnologias avançadas, diferentes linhas de produtos e evolução contínua (De Almeida, 2016). A Intel continua a desenvolver e aprimorar os processadores x86, lançando regularmente novas gerações com melhorias significativas. Essas melhorias incluem aumento da velocidade de clock, aumento do número de núcleos, redução do consumo de energia, melhorias em instruções SIMD (Single Instruction, Multiple Data) para pro- cessamento paralelo e muito mais� 33 Os processadores Intel x86 têm sido amplamente adotados na indústria de tecnologia devido à sua compatibilidade, desempenho e suporte a uma ampla gama de aplicativos e tecnologias� Eles desempenham um papel crucial em dispositivos eletrônicos modernos e são uma escolha popular para sistemas que exigem poder de processamento significativo e suporte a software amplo. Já os processadores ARM Cortex-A são uma fa- mília de processadores desenvolvidos pela ARM Holdings. Eles são projetados para oferecer um alto desempenho e eficiência energética em disposi- tivos como smartphones, tablets, dispositivos de Internet das Coisas (IoT), sistemas embarcados e outros dispositivos móveis. Como características principais desses processadores destacamos os processadores da arquitetura ARM e da arquitetura RISC-V (De Almeida, 2016)� PROCESSADORES DA ARQUITETURA ARM Os processadores ARM Cortex-A são baseados na arquitetura ARM, que é um conjunto de instruções (ISA – Instruction Set Architecture) amplamente utilizada em dispositivos móveis e sistemas em- barcados� Essa arquitetura é conhecida por sua eficiência energética e desempenho otimizado. 34 Os processadores Cortex-A são projetados para oferecer um equilíbrio entre desempenho e efi- ciência energética� Eles são capazes de fornecer poder de processamento substancial para lidar com tarefas intensivas em computação, como jogos e streaming de vídeo, ao mesmo tempo em que consomem menos energia para prolongar a vida útil da bateria� Multicore e SMP são projetados com suporte a múltiplos núcleos (multicore) e Symmetric Multipro- cessing (SMP) – Como os próprios nomes indicam –, permitindo a execução simultânea de várias tarefas em paralelo� Isso melhora a capacidade de resposta do sistema e permite que os dispositivos executem várias tarefas simultaneamente. A família de processadores Cortex-A também oferece uma ampla variedade de opções, desde modelos de baixo consumo de energia para dispo- sitivos móveis até processadores de alto desem- penho para servidores e sistemas embarcados� Essa escalabilidade permite que os fabricantes personalizem os processadores de acordo com as necessidades específicas de seus dispositivos. Por fim, os processadores Cortex-A são projetados para suportar uma variedade de tecnologias avan- çadas, como aceleração de hardware para gráficos 35 3D, criptografia e decodificação de vídeo, suporte a tecnologias de virtualização e muito mais� PROCESSADORES DA ARQUITETURA RISC-V Os processadores RISC-V são baseados na ar- quitetura RISC-V, uma arquitetura de conjunto de instruções (ISA – Instruction Set Architecture) de código aberto desenvolvida pela Universidade da Califórnia, Berkeley� Diferentemente de outras arquiteturas como x86 e ARM, a RISC-V é livre de royalties e permite que qualquer pessoa desen- volva e implemente processadores RISC-V sem restrições de propriedade intelectual. Algumas características e pontos-chave dos pro- cessadores RISC-V são arquitetura de conjunto de instruções aberta; modularidade e flexibilidade; escalabilidade; eficiência energética e comunidade ativa e suporte (De Almeida, 2016)� Outro aspecto importante dos processadores RISC-V é que eles são projetados para serem escaláveis, atendendo a uma ampla variedade de aplicações, desde sistemas embarcados de baixa potência até servidores de alto desempenho� A arquitetura suporta a adição de extensões especializadas para acelerar tarefas específicas, como criptografia, 36 processamento de sinais digitais (DSP) e apren- dizado de máquina� Os projetos de processadores RISC-V geralmente enfatizam a eficiência energética. Isso é particu- larmente importante em dispositivos móveis e sistemas alimentados por bateria, haja vista que a vida útil da bateria é um fator crítico, porque per- mite a implementação de técnicas avançadas de economia de energia para maximizar a eficiência. A abordagem aberta, flexível e modular da ar- quitetura RISC-V permite que ela seja adaptada para atender uma ampla variedade de requisitos de aplicação, oferecendo benefícios como custo reduzido, inovação acelerada e independência de fornecedores específicos de arquitetura. Por conta de tudo isso, os processadores RISC-V estão ganhando popularidade em diversas áreas, desde sistemas embarcados e IoT, até centros de dados e computação de alto desempenho� 37 CONSIDERAÇÕES FINAIS Os sistemas embarcados desempenham um papel fundamental em nossa vida cotidiana, estando presentes em uma ampla variedade de dispositivos e aplicações. Eles são projetados para executar tarefas específicas, controlar sistemas e fornecer funcionalidades especializadas� Ao longo do tempo, os sistemas embarcados evoluíram significativamente, tornando-se cada vez mais poderosos, eficientes e versáteis. Eles se tornaram menores em tamanho, mais eficientesem termos de consumo de energia e capazes de lidar com tarefas complexas em tempo real. Isso possibilitou a criação de dispositivos portáteis, dispositivos inteligentes, sistemas de automação residencial, sistemas de segurança, dispositivos médicos, veículos autônomos e muitos outros. Os sistemas embarcados oferecem diversas vanta- gens, como tamanho compacto, eficiência energé- tica, baixo custo, alto desempenho e confiabilidade. Além disso, eles são projetados para operar em ambientes específicos e lidar com requisitos que surgem em tempo real, garantindo que as tarefas sejam executadas dentro de prazos determinados. Essa capacidade é crucial em aplicações críticas, como sistemas de controle industrial, sistemas de segurança, sistemas médicos e transporte� 38 No entanto, o desenvolvimento de sistemas em- barcados apresenta desafios únicos. É necessário considerar restrições de recursos, como memória limitada e capacidade de processamento, bem como requisitos rigorosos de tempo real� Além disso, a segurança e a confiabilidade são aspectos cruciais a serem considerados, pois muitos siste- mas embarcados lidam com dados sensíveis ou controlam sistemas críticos. Em resumo, os sistemas embarcados são compo- nentes essenciais em uma ampla gama de dispo- sitivos e aplicações, fornecendo funcionalidades especializadas, controle e automação� Eles são projetados para atender requisitos específicos, operar em tempo real e fornecer desempenho otimizado� Com o contínuo avanço da tecnologia, os sistemas embarcados continuarão a desempenhar um papel vital em nossa sociedade, impulsionando a inovação e melhorando a eficiência em diversas áreas. 39 Referências Bibliográficas & Consultadas BAUERMEISTER, G. Utilizando câmeras em Sistemas Linux Embarcados. Embarcados� 15/07/2015. Disponível em: https://embarcados. com.br/utilizando-cameras-em-sistemas-linux- embarcado/. Acesso em: 25 de julho de 2023. DE ALMEIDA, R� Programação de sistemas embarcados: desenvolvendo software para microcontroladores em linguagem C� 1� ed� São Paulo: Editora GEN LTC. 2016. [Minha Biblioteca]� DE ALMEIDA SÁ, Y� Desenvolvimento de aplicações IA: robótica, imagem e visão computacional. 1. ed. São Paulo: Editora Saraiva. 2021. [Minha Biblioteca]. DENARDIN, W� G�; BARRIQUELO, C� H� Sistemas operacionais de tempo real e sua aplicação em sistemas embarcados. 1. ed. São Paulo: Editora Blucher. 2019. [Biblioteca Virtual]. HENNESSY, J� Arquitetura de computadores: uma abordagem quantitativa. 6. ed. São Paulo: Editora Grupo GEN. 2019. [Minha Biblioteca]. https://embarcados.com.br/utilizando-cameras-em-sistemas-linux-embarcado/ https://embarcados.com.br/utilizando-cameras-em-sistemas-linux-embarcado/ https://embarcados.com.br/utilizando-cameras-em-sistemas-linux-embarcado/ NETO, A�; DE OLIVEIRA, Y� Eletrônica analógica e digital aplicada à IOT. 1. ed. Rio de Janeiro: Editora Alta Books. 2019. [Minha Biblioteca]. PICHETTI, R� F� et al� Computação gráfica e processamento de imagens. 1. ed. Porto Alegre: Editora Grupo A. 2022. [Minha Biblioteca]. SZWARCFITER, J� Teoria computacional de grafos: os algoritmos. 1. ed. Porto Alegre: Editora Grupo GEN. 2021. [Minha Biblioteca]. TORRES, F�; DA SILVA, P�; GOULART, C� et al� Pensamento computacional. 1. ed. Porto Alegre: Editora Grupo A. 2019. [Minha Biblioteca]. VIEIRA, P� O�; PIOSENAVA, H� Z� MicroPython: aprenda a programar microcontroladores� 1� ed. São Paulo: Editora Saraiva. 2021. [Minha Biblioteca]� _GoBack Introdução Introdução, aspectos históricos e evolução dos SE Conceitos Básicos Tipos, Classificações e Características Áreas de Aplicação Visão geral do desenvolvimento de um SE Tecnologias aplicadas em SE Microcontroladores e Processadores para SE Processadores da arquitetura ARM Processadores da arquitetura RISC-V Considerações finais Referências Bibliográficas & Consultadas