Prévia do material em texto
1 APOSTILA TÉCNICA APROFUNDADA Microprocessadores Tema 6 Projetos Com Microcontroladores Engenharia Elétrica - 8º semestre Resumo completo por módulos, com teoria, cálculos, diagramas e aplicação Módulos deste tema Módulo 1 - Plataformas de hardware e software para projetos com microcontroladores Módulo 2 - Limitações dos microcontroladores em projetos embarcados de alto desempenho Módulo 3 - Boas práticas de programação de software embarcado Módulo 4 - Comunicação sem fio e Internet das Coisas (IoT) Microprocessadores Tema 6 - Projetos Com Microcontroladores 2 Objetivos e mapa de estudo Propósito do material da faculdade Discutir sobre os aspectos de escolha em um projeto com microcontroladores é um exercício primordial na formação do profissional, que irá atuar em equipes com pessoas com diferentes visões, incluindo questões de custos, desempenho, qualidade, ética e perspectivas futuras da aplicação. O que você deve dominar ao terminar este tema • Explicar os conceitos com terminologia técnica correta e linguagem simples. • Interpretar o funcionamento e os diagramas associados. • Aplicar as equações dentro de suas hipóteses e unidades. • Comparar componentes, topologias e tecnologias. • Reconhecer limitações, falhas, riscos e critérios de seleção. Mapa progressivo dos módulos Módu lo Questão central Resultado esperado 1 Como compreender e aplicar plataformas de hardware e software para projetos com microcontroladores? Analisar, calcular quando aplicável e justificar uma decisão de engenharia. 2 Como compreender e aplicar limitações dos microcontroladores em projetos embarcados de alto desempenho? Analisar, calcular quando aplicável e justificar uma decisão de engenharia. 3 Como compreender e aplicar boas práticas de programação de software embarcado? Analisar, calcular quando aplicável e justificar uma decisão de engenharia. 4 Como compreender e aplicar comunicação sem fio e internet das coisas (iot)? Analisar, calcular quando aplicável e justificar uma decisão de engenharia. Microprocessadores Tema 6 - Projetos Com Microcontroladores 3 Módulo 1 - Plataformas de hardware e software para projetos com microcontroladores Fundamento → compreensão → funcionamento → análise → aplicação de engenharia 1. Visão geral O módulo trata de plataformas de hardware e software para projetos com microcontroladores. Sua finalidade é permitir que o estudante reconheça o fenômeno, equipamento ou arquitetura, modele seu comportamento e utilize os resultados em decisões de projeto, operação, diagnóstico e proteção. Dentro de Microprocessadores, esse conhecimento é importante porque afeta prazo, risco e manutenção. Ele aparece em aplicações como: Problema: implementar uma função embarcada com recursos limitados. Solução: dividir requisitos entre hardware e firmware, configurar periféricos e validar tempo, memória e falhas. Sensor / evento → Periférico integrado → CPU + firmware → Driver / comunicação Figura conceitual - caminho funcional do assunto estudado. 2. Conceitos fundamentais Conceitos centrais explicados Conceito: Plataforma Definição técnica: Conjunto de MCU, placa, toolchain, bibliotecas e depuração. Explicação simples: É o ecossistema do projeto. Importância: Afeta prazo, risco e manutenção. Conceito: BSP/HAL Definição técnica: Camada de suporte ao hardware. Explicação simples: Padroniza acesso a periféricos. Importância: Facilita portabilidade. Conceito: Prototipagem Definição técnica: Implementação rápida para validar hipóteses. Explicação simples: Testa ideia antes do produto final. Importância: Reduz incerteza técnica. Desenvolvimento dos subassuntos do material-base Os blocos abaixo reorganizam os pontos teóricos distribuídos nas páginas do módulo. Foram removidas chamadas de vídeo, alternativas de questões e repetições, mas preservado o desenvolvimento conceitual necessário ao estudo. Análise e projeto O verdadeiro desafio que qualquer projetista enfrenta não é apenas prezar pela funcionalidade, mas encontrar a implementação que pode otimizar simultaneamente grande número de métricas desse projeto. Outras requerem conhecimento das tecnologias disponíveis no mercado. Assim, dependendo do projeto, a escolha de um modelo ou família de microcontrolador pode ser uma decisão que envolve não só o(s) projetista(s), mas também profissionais de outros departamentos que podem considerar custos, futuros projetos e perspectivas diversas de uma empresa. Ter o suficiente para atender quatro pessoas. Esse, portanto, não é um problema de resposta única. Tem muitas respostas possíveis, dependendo do preço dos itens individuais, do apetite dos visitantes etc. Métricas de custo Medem o custo, o custo unitário e o preço do produto. Incluem o custo de NRE (Non-Recurring Engineering ou engenharia não recorrente). Esse é um custo monetário único para projetar o sistema. Uma vez que este é projetado, qualquer número de unidades pode ser fabricado sem incorrer em qualquer custo adicional; daí o Microprocessadores Tema 6 - Projetos Com Microcontroladores 4 termo não recorrente. O tempo para produzir o protótipo, tempo para mercado e facilidade de uso são algumas das métricas que também afetam o custo e o preço. Métricas de eficácia do sistema Em muitas aplicações, como as militares, a eficácia do sistema na implementação de seu objetivo é mais importante do que o custo. Confiabilidade, facilidade de manutenção, adequação do projeto e flexibilidade estão relacionadas às métricas desse grupo. Outras métricas incluem aquelas que podem orientar o projetista na escolha de muitos componentes disponíveis no mercado. Facilidade de uso, suporte de software, segurança e disponibilidade de fornecedores de segunda fonte são também métricas a se considerar. As restrições de projeto representam os requisitos que são colocados no sistema - normalmente uma combinação de demandas de diferentes pessoas em níveis diversos da organização e do ambiente onde o sistema deve operar. Os requisitos podem ser funcionais ou não funcionais. Energia É a quantidade de energia consumida pelo sistema. Tem um efeito direto na vida útil de uma bateria. Ele determina os requisitos de resfriamento do chip; mais energia significa mais calor e, portanto, a necessidade de mais resfriamento. A energia consumida por um dispositivo pode afetar a confiabilidade geral do sistema e muitas outras métricas de projeto. Alguns microcontroladores que podem entrar em estado de baixo consumo de energia e são eficientes neste requisito são: A série STM32 da STMicroelectronics, a série Kinetis L da NXP, a série H8 Super Low Power da Renesas, a série PSoC 6 da Cypress, a série eXtreme Low Power PIC da Microchip e a série MSP430 da Texas Instruments. Segurança A invasão por hackers está aumentando e é uma ameaça especialmente relevante para microcontroladores usados em automóveis e em IoT. Em resposta, os fabricantes estão implementando camadas de segurança, como criptografia e segurança física. Atualmente, os usuários podem comprar microcontroladores certificados com os mais recentes padrões de segurança com hardware seguro no chip. As empresas que oferecem microcontroladores de segurança independentes incluem a STMicroelectronics (série ST33), Renesas (série AE-5 e RS-4), Infineon (OPTIGA Trust e OPTIGA TPM), Cypress (PSoC 64), Microchip e Texas Instruments (série MSP430). Custo Microcontroladores estão dentro de uma ampla faixa de preço, de cem unidades por alguns dólares a alguns dólares por unidade. Para escalar, é necessário considerar o custo total versus o poder de desempenho individual. Ao começar a trabalhar, deve-se atentar para a existência de microcontroladores da mesma família com mais memória FLASH e SRAM ou capacidade de interface com uma memória externa, para eventual expansão do projeto. Disponibilidade Refere-se à probabilidade de que um sistema esteja operando. Às vezes, indica a possibilidade de obter o mesmo produto de mais de um fabricante. Esse significado veio do fato de que muitos dispositivos são feitospor mais de um fabricante. Esse tipo de disponibilidade, preferencialmente chamado de “fornecedores de segunda fonte”, é importante quando o projetista do sistema precisa considerar a confiabilidade e a longevidade do fornecimento. Time-to-market É o tempo necessário para desenvolver um sistema até o ponto em que ele possa ser lançado e vendido aos clientes. Os principais contribuintes são o tempo de projeto, o tempo de fabricação e o tempo de teste. Passos para a seleção de um microcontrolador Mesmo considerando os aspectos já mencionados, selecionar o microcontrolador certo para um produto é uma tarefa de paciência. Não há apenas uma série de recursos técnicos a serem considerados, mas também questões de negócio, como custo e prazos de entrega, que podem paralisar um projeto. Muitos profissionais, depois de alguns projetos, tendem a pautar a sua escolha por essas experiências, desconsiderando outras famílias de microcontroladores com a qual têm pouca familiaridade. Esse pode ser um comportamento aceitável, pois certamente a experiência conta muito para a conclusão mais rápida e sem erros quando o profissional já conhece as ferramentas envolvidas. A curva de aprendizado para uma equipe usar um novo dispositivo pode ser recompensada por um produto final mais integrado e preparado para as novas necessidades. Portanto, decisões de escolha de microcontroladores devem ser tomadas com participação ampla de profissionais da empresa, sem deixar novas opções de fora nem modismos não testados suficientemente tomarem a dianteira nesta escolha. Microprocessadores Tema 6 - Projetos Com Microcontroladores 5 3. Funcionamento A sequência funcional deve ser lida do estímulo ou entrada até a resposta do sistema. Em cada etapa, o engenheiro observa as variáveis de estado, conversões, atrasos, perdas e condições de falha. 1. Configurar clock, alimentação e periféricos. 2. Adquirir eventos e dados por hardware. 3. Processar o algoritmo no firmware. 4. Atuar/comunicar e tratar falhas dentro do prazo. 4. Equações e relações matemáticas orçamento de memória = disponível - reservado Variáveis e unidades: Bytes. Significado físico: Margem para firmware. margem CPU = 1 - utilização Variáveis e unidades: Fração ou %. Significado físico: Folga de processamento. Condições de validade • Unidades coerentes no SI. • Hipóteses e condições de contorno explicitadas. • Resultados validados contra limites do equipamento e do processo. 5. Componentes, elementos ou equipamentos Elemento/equipamen to Função Princípio Características e limitações Placa Disponibilizar MCU e interfaces. Hardware de desenvolvimento. Pode não representar ambiente final. IDE/toolchain Compilar e depurar. Ferramentas de software. Licença e suporte. Bibliotecas Reutilizar drivers. APIs. Qualidade e dependências. A tabela resume a função principal. A seleção final deve considerar tensão, corrente, frequência, ambiente, tolerância, proteção, manutenção e vida útil conforme a natureza do elemento. 6. Aplicação prática Problema implementar uma função embarcada com recursos limitados. Solução dividir requisitos entre hardware e firmware, configurar periféricos e validar tempo, memória e falhas. Funcionamento Configurar clock, alimentação e periféricos. Adquirir eventos e dados por hardware. Processar o algoritmo no firmware. Resultado esperado Resultado tecnicamente verificável, dentro dos limites de desempenho, segurança e operação. 7. Exemplo de engenharia Dimensionamento de recursos embarcados Problema: Uma função deve executar em 1 ms com CPU de 80 MHz e usa 48.000 ciclos. Microprocessadores Tema 6 - Projetos Com Microcontroladores 6 Resolução passo a passo 1. Tempo=48.000/80 MHz=0,6 ms. 2. Margem bruta=1,0-0,6=0,4 ms. 3. Interrupções, cache, DMA e variação de caminho precisam entrar no pior caso. Resultado: Tempo nominal=0,6 ms; margem bruta=40%. Interpretação de engenharia: Medir no hardware e no pior caminho é obrigatório para concluir atendimento temporal. 8. Pontos críticos e cuidados • Ler o datasheet e erratas. • Respeitar níveis elétricos e corrente por pino. • Evitar bloqueios em tarefas críticas. • Medir tempo, memória e consumo no alvo. • Planejar atualização e recuperação de falhas. Erros e modos de falha recorrentes Erro/modo de falha Consequência Prevenção ou verificação Overflow de buffer/pilha Corrupção de memória ou reset Dimensionar, monitorar e testar pior caso Bloqueio em ISR Perda de eventos e jitter ISR curta e processamento em tarefa Nível elétrico incompatível Dano ao pino Condicionar e proteger a interface 9. Relação com outros assuntos • Eletrônica digital e instrumentação. • Automação e controle em tempo real. • Comunicação e sistemas embarcados. A relação entre disciplinas é importante porque o comportamento elétrico, a instrumentação, o controle, a comunicação e a proteção formam um único sistema na aplicação real. 10. Complementos técnicos Complemento técnico: bibliotecas aceleram o desenvolvimento, mas o engenheiro deve conhecer custos temporais, estados de erro e acesso concorrente aos periféricos. Complemento: além de fazer o firmware funcionar, é necessário demonstrar pior tempo de execução, uso de pilha, condições de corrida, recuperação de falha, atualização segura e comportamento após reset. Normas e referências normativas relacionadas • IEC 61508 - segurança funcional quando o sistema embarcado executa função de segurança. Consultar a edição vigente e o escopo aplicável. • MISRA C - diretrizes para C em sistemas críticos, quando adotadas pelo projeto. Consultar a edição vigente e o escopo aplicável. • IEC 60529 - graus de proteção do invólucro do produto, quando aplicável. Consultar a edição vigente e o escopo aplicável. 11. O que realmente precisa ser memorizado • Plataforma inclui hardware e software. • Prototipagem não substitui projeto final. • Verificar licença e manutenção. Microprocessadores Tema 6 - Projetos Com Microcontroladores 7 • Reservar margem de CPU e memória. • Planejar depuração e atualização. • orçamento de memória = disponível - reservado - Margem para firmware. • margem CPU = 1 - utilização - Folga de processamento. 12. Resumo final do módulo • O assunto central é Plataformas de hardware e software para projetos com microcontroladores. • Plataforma: Conjunto de MCU, placa, toolchain, bibliotecas e depuração. • BSP/HAL: Camada de suporte ao hardware. • Prototipagem: Implementação rápida para validar hipóteses. • Plataforma inclui hardware e software. • Prototipagem não substitui projeto final. • Verificar licença e manutenção. • Reservar margem de CPU e memória. • Planejar depuração e atualização. Checklist de domínio □ Consigo explicar, sem consultar o texto, o que é plataformas de hardware e software para projetos com microcontroladores e por que esse assunto é usado? □ Consigo diferenciar Plataforma de BSP/HAL e dar uma aplicação de cada um? □ Consigo identificar as unidades, hipóteses e significado físico das equações principais? □ Consigo refazer o exemplo numérico e interpretar o sinal, a ordem de grandeza e o limite do resultado? □ Consigo reconhecer os três principais erros de projeto ou operação discutidos no módulo? Microprocessadores Tema 6 - Projetos Com Microcontroladores 8 Módulo 2 - Limitações dos microcontroladores em projetos embarcados de alto desempenho Fundamento → compreensão → funcionamento → análise → aplicação de engenharia 1. Visão geral O módulo trata de limitações dos microcontroladores em projetos embarcados de alto desempenho. Sua finalidade é permitir que o estudante reconheça o fenômeno, equipamento ou arquitetura, modele seu comportamento e utilize os resultados em decisões de projeto, operação, diagnóstico e proteção. Dentro de Microprocessadores, esse conhecimento é importante porque define viabilidade de tempo real. Ele aparece em aplicações como: Problema: implementar uma função embarcada com recursos limitados. Solução: dividir requisitos entre hardware e firmware, configurar periféricos e validar tempo,memória e falhas. Sensor / evento → Periférico integrado → CPU + firmware → Driver / comunicação Figura conceitual - caminho funcional do assunto estudado. 2. Conceitos fundamentais Conceitos centrais explicados Conceito: Limite de processamento Definição técnica: Quantidade finita de instruções por prazo. Explicação simples: A CPU pode não terminar tudo a tempo. Importância: Define viabilidade de tempo real. Conceito: Limite de memória Definição técnica: Capacidade finita de Flash, RAM e armazenamento. Explicação simples: Código, pilha e buffers competem por espaço. Importância: Pode causar falhas difíceis. Conceito: Limite elétrico Definição técnica: Restrições de tensão, corrente, temperatura e EMI. Explicação simples: O chip opera somente dentro das margens. Importância: Afeta confiabilidade. Desenvolvimento dos subassuntos do material-base Os blocos abaixo reorganizam os pontos teóricos distribuídos nas páginas do módulo. Foram removidas chamadas de vídeo, alternativas de questões e repetições, mas preservado o desenvolvimento conceitual necessário ao estudo. Esses computadores são “embutidos” em dispositivos, dando-lhes um desempenho que melhora as suas funcionalidades. Esses dispositivos inteligentes podem fazer mais e mais rápido do que nunca, mas nem todos os microcontroladores embarcados são criados de forma a ter o mesmo desempenho e confiabilidade. Alguns têm mais exigências do que outros. Um sistema embarcado é um computador com funções de controle específicas, podendo ser parte de um sistema de computador maior ou um dispositivo autônomo. Pode conter os processadores programáveis, que são os microcontroladores, ou os processadores de sinal digital (DSPs), e a maioria deles deve operar dentro de restrições de tempo real. Os sistemas críticos embarcados são definidos para aplicações das forças armadas, transporte ferroviário, controle médico, industrial, exploração espacial, aviação, instrumentação nuclear e muitas outras indústrias. Além da IEC (International Electrotechnical Commission), outras organizações como a ISO (International Organization for Standardization) e a ITU (International Telecommunication Union) desenvolvem normas e guias internacionais para áreas com sistemas críticos, definindo critérios e requisitos para áreas particulares como ferrovias e aviação. Microprocessadores Tema 6 - Projetos Com Microcontroladores 9 De acordo com essas normas, alguns sistemas críticos embarcados devem sobreviver em ambientes adversos: Choques e vibrações severas, radiação ionizante em taxas elevadas - como no espaço e em temperaturas extremas, de baixas a altas -, entre outros. A confiabilidade é uma questão da mais alta prioridade nas infraestruturas que apoiam a nossa sociedade, com muitos sistemas complexos cujas funções necessitamos proteger e manter em funcionamento, sejam estas para um avião, uma planta nuclear, um equipamento de terapia com radiação ou um sistema de frenagem de um trem. A confiabilidade pode ter o seu foco em propriedades diferentes, dependendo do sistema e das funções desempenhadas. Probabilidade de produzir os resultados requisitados, tempo de resposta alcançado, graus de tolerância a falhas ou de prevenção de intrusões deliberadas em sistemas são algumas dessas propriedades em que se busca confiabilidade. Determinismo Os sistemas críticos embarcados são altamente determinísticos, devendo executar em tempo real as respostas aos eventos. mais consistente será sua capacidade de resposta mais consistente será sua capacidade de resposta. Um fator primário que afeta esse requisito é quantas interrupções um sistema deve tratar simultaneamente. Em geral, aumentar o número de interrupções no sistema prejudicará seu determinismo. O determinismo afeta, portanto, diretamente a capacidade de resposta, confiabilidade e precisão. Se um desenvolvedor souber que a latência está fixada em 50 ou 500 ciclos, isso pode ser levado em consideração durante o processamento. No entanto, quando a latência pode variar de 50 a 500 ciclos, o melhor que os desenvolvedores podem fazer é assumir uma latência típica, como 200 ciclos, e suportar qualquer variação como erro. Além disso, a latência do pior caso pode começar a se aproximar das limitações de prazo em tempo real e ameaçar a confiabilidade do sistema. Reduzir o número potencial de interrupções simultâneas, mesmo as de baixa frequência, pode aumentar substancialmente o determinismo do sistema. Quanto mais alta a frequência do sinal, maior a carga na CPU quando as interrupções são empregadas e maior o potencial de aumento da latência para outras tarefas. Logo, para eventos com maior frequência de ocorrência, a carga da CPU se torna uma consideração importante. As aplicações de computação do futuro se tornarão ainda mais dependentes de sistemas críticos embarcados à medida que continuarem a aumentar o alcance dos sistemas autônomos. Estes representam o próximo grande passo na fusão de máquinas, computação, sensoriamento e software para criar sistemas inteligentes capazes de interagir com as complexidades do mundo real. Devem, portanto, ter grande capacidade em desempenho e confiabilidade, exigindo essa capacidade dos sistemas críticos embarcados. Os microcontroladores Hercules TMS470M/TMS570M e RM4x da Texas Instruments de 16/32 bits são dispositivos que seguem nessa linha. Também alguns modelos de PIC, como o PIC12F1612 e o PIC16F1613. Outros fabricantes que lançaram modelos para aplicações críticas foram a NXP com a série NXP LPC17xx, como LPC1769 e LPC1788, a Freescale, com os modelos Kinetis K20, e a Renesas, com o modelo V850. Falhas no software também são consideradas sistemáticas, pois este é totalmente determinístico e, embora desafiador, pode ser formalmente comprovado como correto antes da implementação do produto. O gerenciamento de falhas sistemáticas é obtido por meio de processos robustos que incluem verificações e balanços em cada atividade de desenvolvimento. Ilha segura O conceito de ilha segura inclui a implementação de mecanismos de segurança de hardware para as memórias flash e SRAM internas. Em um sistema típico, a flash é usada como memória de instrução da CPU e a SRAM fornece memória de dados da CPU. Ambas, bem como a conexão entre elas e a CPU, devem estar funcionando corretamente para garantir a operação correta do software. O diagnóstico de tempo de execução primário para SRAM e flash é a lógica ECC (código de correção de erros) nos dados aumentados por endereço e paridade de controle. A tecnologia ECC é uma forma bem aceita e eficaz de detectar falhas aleatórias. Ela codifica os dados de uma forma que permite aos sistemas não apenas detectar quando a memória foi corrompida, mas também corrigir erros de bit único, se desejado, para que a operação do sistema possa continuar ininterrupta. 3. Funcionamento A sequência funcional deve ser lida do estímulo ou entrada até a resposta do sistema. Em cada etapa, o engenheiro observa as variáveis de estado, conversões, atrasos, perdas e condições de falha. 1. Configurar clock, alimentação e periféricos. Microprocessadores Tema 6 - Projetos Com Microcontroladores 10 2. Adquirir eventos e dados por hardware. 3. Processar o algoritmo no firmware. 4. Atuar/comunicar e tratar falhas dentro do prazo. 4. Equações e relações matemáticas Ucpu = Σ(Ci/Ti) Variáveis e unidades: Carga periódica. Significado físico: Estimativa de utilização. stack livre = total - pior uso Variáveis e unidades: Bytes. Significado físico: Margem contra overflow. Tj = Ta + P·RθJA Variáveis e unidades: °C. Significado físico: Estimativa térmica. Condições de validade • Unidades coerentes no SI. • Hipóteses e condições de contorno explicitadas. • Resultados validados contra limites do equipamento e do processo. 5. Componentes, elementos ou equipamentos Elemento/equipamen to Função Princípio Características e limitações CPU Processar tarefas. Clock e arquitetura. Prazo e consumo. RAM/Flash Guardar dados e código. Memória integrada. Capacidade/endurance. InterfacesConectar periféricos. Pinos e controladores. Número, taxa e compatibilidade. A tabela resume a função principal. A seleção final deve considerar tensão, corrente, frequência, ambiente, tolerância, proteção, manutenção e vida útil conforme a natureza do elemento. 6. Aplicação prática Problema implementar uma função embarcada com recursos limitados. Solução dividir requisitos entre hardware e firmware, configurar periféricos e validar tempo, memória e falhas. Funcionamento Configurar clock, alimentação e periféricos. Adquirir eventos e dados por hardware. Processar o algoritmo no firmware. Resultado esperado Resultado tecnicamente verificável, dentro dos limites de desempenho, segurança e operação. 7. Exemplo de engenharia Orçamento de CPU Problema: Tarefas periódicas usam 1 ms/5 ms, 0,5 ms/10 ms e 2 ms/20 ms. Resolução passo a passo 1. U1=1/5=20%. 2. U2=0,5/10=5%. Microprocessadores Tema 6 - Projetos Com Microcontroladores 11 3. U3=2/20=10%. 4. Utilização somada=35%, antes de interrupções e sistema. Resultado: Carga periódica estimada: 35%. Interpretação de engenharia: A média não substitui análise de pior caso, prioridades e bloqueios. 8. Pontos críticos e cuidados • Ler o datasheet e erratas. • Respeitar níveis elétricos e corrente por pino. • Evitar bloqueios em tarefas críticas. • Medir tempo, memória e consumo no alvo. • Planejar atualização e recuperação de falhas. Erros e modos de falha recorrentes Erro/modo de falha Consequência Prevenção ou verificação Overflow de buffer/pilha Corrupção de memória ou reset Dimensionar, monitorar e testar pior caso Bloqueio em ISR Perda de eventos e jitter ISR curta e processamento em tarefa Nível elétrico incompatível Dano ao pino Condicionar e proteger a interface 9. Relação com outros assuntos • Eletrônica digital e instrumentação. • Automação e controle em tempo real. • Comunicação e sistemas embarcados. A relação entre disciplinas é importante porque o comportamento elétrico, a instrumentação, o controle, a comunicação e a proteção formam um único sistema na aplicação real. 10. Complementos técnicos Complemento técnico: bibliotecas aceleram o desenvolvimento, mas o engenheiro deve conhecer custos temporais, estados de erro e acesso concorrente aos periféricos. Complemento: além de fazer o firmware funcionar, é necessário demonstrar pior tempo de execução, uso de pilha, condições de corrida, recuperação de falha, atualização segura e comportamento após reset. Normas e referências normativas relacionadas • IEC 61508 - segurança funcional quando o sistema embarcado executa função de segurança. Consultar a edição vigente e o escopo aplicável. • MISRA C - diretrizes para C em sistemas críticos, quando adotadas pelo projeto. Consultar a edição vigente e o escopo aplicável. • IEC 60529 - graus de proteção do invólucro do produto, quando aplicável. Consultar a edição vigente e o escopo aplicável. 11. O que realmente precisa ser memorizado • Medir pior caso, não média. • Reservar margem de memória. • Evitar alocação dinâmica sem estratégia. • Verificar temperatura e alimentação. • Escalar arquitetura quando o requisito exceder o MCU. • Ucpu = Σ(Ci/Ti) - Estimativa de utilização. Microprocessadores Tema 6 - Projetos Com Microcontroladores 12 • stack livre = total - pior uso - Margem contra overflow. • Tj = Ta + P·RθJA - Estimativa térmica. 12. Resumo final do módulo • O assunto central é Limitações dos microcontroladores em projetos embarcados de alto desempenho. • Limite de processamento: Quantidade finita de instruções por prazo. • Limite de memória: Capacidade finita de Flash, RAM e armazenamento. • Limite elétrico: Restrições de tensão, corrente, temperatura e EMI. • Medir pior caso, não média. • Reservar margem de memória. • Evitar alocação dinâmica sem estratégia. • Verificar temperatura e alimentação. • Escalar arquitetura quando o requisito exceder o MCU. Checklist de domínio □ Consigo explicar, sem consultar o texto, o que é limitações dos microcontroladores em projetos embarcados de alto desempenho e por que esse assunto é usado? □ Consigo diferenciar Limite de processamento de Limite de memória e dar uma aplicação de cada um? □ Consigo identificar as unidades, hipóteses e significado físico das equações principais? □ Consigo refazer o exemplo numérico e interpretar o sinal, a ordem de grandeza e o limite do resultado? □ Consigo reconhecer os três principais erros de projeto ou operação discutidos no módulo? Microprocessadores Tema 6 - Projetos Com Microcontroladores 13 Módulo 3 - Boas práticas de programação de software embarcado Fundamento → compreensão → funcionamento → análise → aplicação de engenharia 1. Visão geral O módulo trata de boas práticas de programação de software embarcado. Sua finalidade é permitir que o estudante reconheça o fenômeno, equipamento ou arquitetura, modele seu comportamento e utilize os resultados em decisões de projeto, operação, diagnóstico e proteção. Dentro de Microprocessadores, esse conhecimento é importante porque evita implementação sem critério de aceitação. Ele aparece em aplicações como: Problema: implementar uma função embarcada com recursos limitados. Solução: dividir requisitos entre hardware e firmware, configurar periféricos e validar tempo, memória e falhas. Sensor / evento → Periférico integrado → CPU + firmware → Driver / comunicação Figura conceitual - caminho funcional do assunto estudado. 2. Conceitos fundamentais Conceitos centrais explicados Conceito: Requisitos Definição técnica: Descrição verificável do comportamento e das restrições. Explicação simples: Define o que o firmware deve fazer. Importância: Evita implementação sem critério de aceitação. Conceito: Arquitetura em camadas Definição técnica: Separação entre drivers, serviços e aplicação. Explicação simples: Isola hardware da lógica. Importância: Melhora teste e manutenção. Conceito: Teste embarcado Definição técnica: Verificação unitária, integração e alvo real. Explicação simples: Comprova comportamento normal e de falha. Importância: Reduz risco operacional. Desenvolvimento dos subassuntos do material-base Os blocos abaixo reorganizam os pontos teóricos distribuídos nas páginas do módulo. Foram removidas chamadas de vídeo, alternativas de questões e repetições, mas preservado o desenvolvimento conceitual necessário ao estudo. A variedade de programas escritos em C, portanto, tende a refletir claramente a diferença no nível de habilidade de codificação entre programadores experientes e menos experientes. Não é desejável que o código-fonte varie muito em qualidade, dependendo das habilidades e experiência de codificação individuais dos programadores. 1. A necessidade de regras não é compreendida. Os métodos apropriados para lidar com a violação destas também não são amplamente compartilhados. 2. Existem regras muito numerosas para aprender. No entanto, as existentes não são abrangentes o suficiente para cobrir todo o escopo da codificação. Devido a tais circunstâncias, existem, de fato, algumas convenções de codificação estabelecidas em nível de organização ou departamento que perderam seu significado e não são mais estritamente observadas. No entanto, as organizações que as possuem, não importa o tipo de formato em que as preparem, são pelo menos melhores do que aquelas sem nenhum. Ainda há algumas empresas que não conseguem chegar a um consenso sobre a convenção de codificação a ser seguida internamente e estão confiando em grande parte nos julgamentos individuais dos programadores para decidir como o código-fonte deve ser escrito. Dica No caso de microcontroladores, a experiência de muitos programadores mostra que essa preocupação deve ser colocada em segundo plano. Digamos que vale a ideia de qualquer outro desenvolvimento de software: Não otimize até que saiba que precisa, e então não otimize até que saiba o que precisa otimizar. Escreva o Microprocessadores Tema 6 - Projetos Com Microcontroladores 14 código para que seja confiável, legível e fácil de manter primeiro. A otimizaçãoprematura é mais um problema em sistemas embarcados. Não é realmente necessária Não é realmente necessária. A alocação de memória dinâmica permite reutilização da mesma memória para fazer coisas diferentes em momentos distintos. Os sistemas embarcados tendem a fazer a mesma coisa o tempo todo. A alocação dinâmica de memória torna muito difícil depurar, especialmente com algumas das ferramentas de depuração limitadas disponíveis no sistema embarcado. Ao alocar coisas estaticamente, é possível saber onde as coisas estão o tempo todo, o que significa que é muito mais fácil inspecionar o estado de algo. O padrão MISRA-C Embora seguir padrões de programação pareça sempre ser tedioso e cerceador, ainda é uma das melhores escolhas para seguir boas práticas de programação, em particular para sistemas embutidos que operam em áreas críticas, como a automobilística. Com sua primeira versão em 1998, o MISRA-C teve a sua última versão em 2012 e vem se tornando um padrão para empresas de sistemas embarcados. Essas empresas pretendem utilizar melhores práticas no desenvolvimento de software seguro e portável em linguagem C. As diretrizes proíbem o comportamento indefinido crítico e restringem o uso de comportamento definido pela implementação e extensões do compilador. Eles também limitam o uso de recursos de linguagem que podem ser facilmente mal utilizados ou mal interpretados. No geral, as diretrizes são projetadas para melhorar a confiabilidade, legibilidade, portabilidade e manutenção. Diretiva Uma diretriz na qual as informações relativas à conformidade geralmente não estão totalmente contidas no código-fonte - requisitos, especificações, projetos, todos devem ser levados em consideração. Ferramentas de análise estática podem auxiliar na verificação da conformidade com as diretivas, se fornecidas com informações extras não derivadas do código-fonte. Uma pergunta mais profunda pode ser Uma pergunta mais profunda pode ser: É possível testar a qualidade em um produto? Sim, basta construir uma peneira de teste tão apertada que nenhum produto ruim possa passar por ela. Então rejeita-se sistematicamente tudo que não passa. Construir um software de qualidade conforme ele está sendo desenvolvido é muito mais eficaz do que tentar testá-lo depois de construído. As técnicas de verificação e validação (V&V) podem ser aplicadas em todo o ciclo de vida do produto para ajudar a garantir que o software correto está sendo construído e que ele está sendo construído corretamente. O foco da verificação e a validação é detectar defeitos o mais cedo possível após eles serem introduzidos e removê-los na origem. Isso não apenas torna a remoção de defeitos mais barata, mas também fornece uma confiança muito maior de que a qualidade está sendo incorporada ao produto, em vez de tentar filtrá-la antes do envio. Definição # 1 Validação é a determinação da exatidão do programa final ou software produzido a partir de um projeto de desenvolvimento em relação às necessidades e aos requisitos do usuário. Geralmente é realizada pela averiguação de cada estágio do ciclo de vida de desenvolvimento de software. Definição # 2 A verificação envolve a avaliação do software durante cada fase do ciclo de vida para garantir que ele atenda aos requisitos definidos na fase anterior. A validação envolve testar o software ou sua especificação no final do esforço de desenvolvimento para garantir que ele atenda aos seus requisitos (que faça o que deve). Embora tenham definições separadas, é possível obter o máximo benefício usando-as sinergicamente e tratando 'V&V' como uma definição integrada. 3. Funcionamento A sequência funcional deve ser lida do estímulo ou entrada até a resposta do sistema. Em cada etapa, o engenheiro observa as variáveis de estado, conversões, atrasos, perdas e condições de falha. 1. Configurar clock, alimentação e periféricos. 2. Adquirir eventos e dados por hardware. 3. Processar o algoritmo no firmware. Microprocessadores Tema 6 - Projetos Com Microcontroladores 15 4. Atuar/comunicar e tratar falhas dentro do prazo. 4. Equações e relações matemáticas Utilização CPU = Σ(Ci/Ti) Variáveis e unidades: Ci: execução; Ti: período. Significado físico: Estimativa de carga periódica. Margem = prazo - pior tempo Variáveis e unidades: Tempo em s. Significado físico: Folga de tarefa em tempo real. Cobertura = itens testados/itens totais Variáveis e unidades: Indicador, não prova de correção. Significado físico: Mede extensão do teste. Condições de validade • Unidades coerentes no SI. • Hipóteses e condições de contorno explicitadas. • Resultados validados contra limites do equipamento e do processo. 5. Componentes, elementos ou equipamentos Elemento/equipamen to Função Princípio Características e limitações HAL/driver Acessar hardware. Abstração de registradores. Pode ocultar custo temporal. Máquina de estados Organizar comportamento. Estados e transições explícitas. Explosão de estados. Watchdog Recuperar travamentos. Reset se não houver serviço periódico. Não corrige causa raiz. A tabela resume a função principal. A seleção final deve considerar tensão, corrente, frequência, ambiente, tolerância, proteção, manutenção e vida útil conforme a natureza do elemento. 6. Aplicação prática Problema implementar uma função embarcada com recursos limitados. Solução dividir requisitos entre hardware e firmware, configurar periféricos e validar tempo, memória e falhas. Funcionamento Configurar clock, alimentação e periféricos. Adquirir eventos e dados por hardware. Processar o algoritmo no firmware. Resultado esperado Resultado tecnicamente verificável, dentro dos limites de desempenho, segurança e operação. 7. Exemplo de engenharia Dimensionamento de recursos embarcados Problema: Uma função deve executar em 1 ms com CPU de 80 MHz e usa 48.000 ciclos. Resolução passo a passo 1. Tempo=48.000/80 MHz=0,6 ms. 2. Margem bruta=1,0-0,6=0,4 ms. Microprocessadores Tema 6 - Projetos Com Microcontroladores 16 3. Interrupções, cache, DMA e variação de caminho precisam entrar no pior caso. Resultado: Tempo nominal=0,6 ms; margem bruta=40%. Interpretação de engenharia: Medir no hardware e no pior caminho é obrigatório para concluir atendimento temporal. 8. Pontos críticos e cuidados • Ler o datasheet e erratas. • Respeitar níveis elétricos e corrente por pino. • Evitar bloqueios em tarefas críticas. • Medir tempo, memória e consumo no alvo. • Planejar atualização e recuperação de falhas. Erros e modos de falha recorrentes Erro/modo de falha Consequência Prevenção ou verificação Overflow de buffer/pilha Corrupção de memória ou reset Dimensionar, monitorar e testar pior caso Bloqueio em ISR Perda de eventos e jitter ISR curta e processamento em tarefa Nível elétrico incompatível Dano ao pino Condicionar e proteger a interface 9. Relação com outros assuntos • Eletrônica digital e instrumentação. • Automação e controle em tempo real. • Comunicação e sistemas embarcados. A relação entre disciplinas é importante porque o comportamento elétrico, a instrumentação, o controle, a comunicação e a proteção formam um único sistema na aplicação real. 10. Complementos técnicos Complemento técnico: bibliotecas aceleram o desenvolvimento, mas o engenheiro deve conhecer custos temporais, estados de erro e acesso concorrente aos periféricos. Complemento: além de fazer o firmware funcionar, é necessário demonstrar pior tempo de execução, uso de pilha, condições de corrida, recuperação de falha, atualização segura e comportamento após reset. Normas e referências normativas relacionadas • IEC 61508 - segurança funcional quando o sistema embarcado executa função de segurança. Consultar a edição vigente e o escopo aplicável. • MISRA C - diretrizes para C em sistemas críticos, quando adotadas pelo projeto. Consultar a edição vigente e o escopo aplicável. • IEC 60529 - graus de proteção do invólucro do produto, quando aplicável. Consultar a edição vigente e o escopo aplicável. 11. O que realmente precisa ser memorizado • Requisitosdevem ser testáveis. • Separar hardware e aplicação. • Evitar bloqueios longos. • Tratar falhas e watchdog. • Testar no hardware real e medir pior caso. • Utilização CPU = Σ(Ci/Ti) - Estimativa de carga periódica. Microprocessadores Tema 6 - Projetos Com Microcontroladores 17 • Margem = prazo - pior tempo - Folga de tarefa em tempo real. • Cobertura = itens testados/itens totais - Mede extensão do teste. 12. Resumo final do módulo • O assunto central é Boas práticas de programação de software embarcado. • Requisitos: Descrição verificável do comportamento e das restrições. • Arquitetura em camadas: Separação entre drivers, serviços e aplicação. • Teste embarcado: Verificação unitária, integração e alvo real. • Requisitos devem ser testáveis. • Separar hardware e aplicação. • Evitar bloqueios longos. • Tratar falhas e watchdog. • Testar no hardware real e medir pior caso. Checklist de domínio □ Consigo explicar, sem consultar o texto, o que é boas práticas de programação de software embarcado e por que esse assunto é usado? □ Consigo diferenciar Requisitos de Arquitetura em camadas e dar uma aplicação de cada um? □ Consigo identificar as unidades, hipóteses e significado físico das equações principais? □ Consigo refazer o exemplo numérico e interpretar o sinal, a ordem de grandeza e o limite do resultado? □ Consigo reconhecer os três principais erros de projeto ou operação discutidos no módulo? Microprocessadores Tema 6 - Projetos Com Microcontroladores 18 Módulo 4 - Comunicação sem fio e Internet das Coisas (IoT) Fundamento → compreensão → funcionamento → análise → aplicação de engenharia 1. Visão geral O módulo trata de comunicação sem fio e internet das coisas (iot). Sua finalidade é permitir que o estudante reconheça o fenômeno, equipamento ou arquitetura, modele seu comportamento e utilize os resultados em decisões de projeto, operação, diagnóstico e proteção. Dentro de Microprocessadores, esse conhecimento é importante porque permite monitoramento e automação distribuída. Ele aparece em aplicações como: Problema: implementar uma função embarcada com recursos limitados. Solução: dividir requisitos entre hardware e firmware, configurar periféricos e validar tempo, memória e falhas. Sensor / evento → Periférico integrado → CPU + firmware → Driver / comunicação Figura conceitual - caminho funcional do assunto estudado. 2. Conceitos fundamentais Conceitos centrais explicados Conceito: IoT Definição técnica: Dispositivos conectados que medem, processam e trocam dados. Explicação simples: Liga objetos físicos a serviços digitais. Importância: Permite monitoramento e automação distribuída. Conceito: Comunicação sem fio Definição técnica: Transmissão por radiofrequência. Explicação simples: Dispensa cabo, mas compartilha o meio. Importância: Facilita mobilidade e retrofit. Conceito: Segurança embarcada Definição técnica: Proteção de identidade, firmware e dados. Explicação simples: Impede uso e atualização não autorizados. Importância: É requisito de ciclo de vida. Desenvolvimento dos subassuntos do material-base Os blocos abaixo reorganizam os pontos teóricos distribuídos nas páginas do módulo. Foram removidas chamadas de vídeo, alternativas de questões e repetições, mas preservado o desenvolvimento conceitual necessário ao estudo. 4. Microcontroladores para projetos de comunicação sem fio e Internet das Coisas (IoT) O que é a Internet da Coisas? A expressão Internet das Coisas (Internet of Things - IoT) tem nos acompanhado nos últimos anos para indicar oportunidades de negócios e grande conjunto de equipamentos ligados de alguma forma à internet. Na escala micro, as "coisas" podem ser indivíduos, componentes, como uma unidade de iluminação inteligente em um edifício comercial de escritórios, ou o próprio edifício, como um item em um portfólio de ativos sendo monitorados. O valor da IoT está nos dados que são coletados e, em seguida, analisados para fornecer ideias ou ações. Para garantir a integridade desses dados, todo o sistema deve ser seguro e gerenciado. Uma parte vital disso é a escolha do protocolo de conectividade. Os dispositivos IoT podem coletar, armazenar, compartilhar dados e executar funções de controle, como em medidores inteligentes e lâmpadas, veículos autônomos e sofisticados equipamentos industriais - aumentando o uso de inteligência artificial e aprendizado de máquina (machine learning). Conforme a IoT se expande, mais empresas estão usando soluções de sistema em um chip para economizar espaço e melhorar a integração. As medidas de segurança que protegem os dispositivos e as redes IoT de ataques estão sendo incorporadas com mais frequência às operações centrais por meio de uma arquitetura de Microprocessadores Tema 6 - Projetos Com Microcontroladores 19 segurança. A plataforma IoT deve ter base flexível, segura e eficiente, que abranja conectividade, dispositivo e gerenciamento de dados. A IoT é o principal impulsionador da transformação digital, possibilitando que as empresas reinventem produtos, serviços, operações internas e modelos de negócios. Eles fazem todos os dispositivos funcionarem juntos como um sistema para fornecer os serviços inteligentes. Os dados de detecção são Microcontroladores enviados ao microcontrolador para processamento e estes geram sinais para os atuadores. Dessa forma, todo o sistema pode ser controlado até o estado de destino. São usados para manipular o ambiente São usados para manipular o ambiente. Os atuadores são uma Atuadores espécie de dispositivo transdutor, pegando um sinal elétrico como entrada e convertendo-o em um movimento físico mecânico. Todo o sistema IoT deve ser incorporado com inteligência embutida para melhorar a eficiência da colaboração. Assim, o microcontrolador para IoT deve ser equipado com técnicas inteligentes para coordenar todos os componentes para trabalharem juntos de forma eficiente. O microcontrolador pode ser considerado o “cérebro” do sistema IoT, pois pode buscar dados de sensores, analisar dados com técnicas de inteligência computacional e gerar os comandos finais de controle. Camada de sensoriamento Na camada de sensoriamento ou detecção, o microcontrolador interage com dispositivos terminais, como sensores e atuadores. Essa camada inclui a seleção de tipos de sensores de acordo com os diferentes tipos de tarefas. Os dados do sensor são as entradas do microcontrolador. O atuador recebe o sinal de saída do microcontrolador e executa as ações correspondentes. Modelos de microcontroladores para IoT Para determinar qual microcontrolador funcionará melhor com seu projeto, é necessário conhecer o que eles fazem e alguns dos seus principais recursos. Dentro dessas características, a camada de comunicação é essencial. É assim que a aplicação se conecta à internet via Wi-Fi, ethernet ou outros meios. Esse é um aspecto importante das aplicações de IoT. As ferramentas de desenvolvimento já existentes para a plataforma escolhida, a comunidade de desenvolvedores, são também importantes. Facilita muito o desenvolvimento quando existe um conjunto maduro de ferramentas, documentação e suporte da comunidade para ajudar a criar programas que serão executados no microcontrolador selecionado para sua aplicação IoT. Um dos desafios iniciais é integrar seus dados em uma nuvem. Nesse ponto, será preciso utilizar protocolos como o MQTT (MQ Telemetry Transport). Esse é o principal protocolo de mensagens leves para sensores e pequenos dispositivos móveis, otimizado para redes TCP/IP. Bare Metal Significa que não há, de fato, nenhum sistema operacional. Essa é a abordagem original para trabalhar com microcontroladores, e ainda é a mais popular porque é econômica e eficiente. A principal desvantagem dessa opção, no caso de IoT, é que ela fornece menos suporte para o desenvolvedor do software no caso de acesso à internet. Assim como não se concebe atualmente um microcontrolador sem comunicação serial, a comunicação sem fio pode vir a ser padrão pela necessidade de todo sistema microcontrolado de se integrarem rede em futuro próximo. Os dois núcleos são denominados CPU de protocolo (PRO_CPU) e CPU de aplicativo (APP_CPU). Ou seja, basicamente o processador PRO_CPU lida com Wi-Fi, bluetooth e outros periféricos internos como SPI, I2C, ADC etc. O APP_CPU é deixado de fora para o código do aplicativo. Essa diferenciação é feita no Espressif Internet Development Framework (ESP-IDF) - o framework oficial de desenvolvimento de software para o chip. Arduino e outras implementações para o desenvolvimento são baseadas no ESP-IDF, que usa o freeRTOS para alternar entre os processadores e a troca de dados entre eles. O ESP32 possui uma lista completa de periféricos, como temporizadores e watchdog, relógio de tempo real, ADC e sensores incorporados, Conversor Digital para Analógico (DAC), sensor de toque, Coprocessador de Baixo Consumo (Ultra Low Power - ULP), Interface MAC Ethernet, Controlador SD/ SDIO/MMC, Transmissor Receptor Universal Assíncrono (UART), Interface I2C e SPI, contador de pulsos, Modulação de Largura de Pulso (PWM), dentre outros. 3. Funcionamento A sequência funcional deve ser lida do estímulo ou entrada até a resposta do sistema. Em cada etapa, o engenheiro observa as variáveis de estado, conversões, atrasos, perdas e condições de falha. Microprocessadores Tema 6 - Projetos Com Microcontroladores 20 1. Configurar clock, alimentação e periféricos. 2. Adquirir eventos e dados por hardware. 3. Processar o algoritmo no firmware. 4. Atuar/comunicar e tratar falhas dentro do prazo. 4. Equações e relações matemáticas autonomia ≈ capacidade/corrente média Variáveis e unidades: h, se unidades coerentes. Significado físico: Estimativa de bateria. Imédia = Σ(Di·Ii) Variáveis e unidades: Di: fração de tempo. Significado físico: Consumo por modos. link margin = Prx - sensibilidade Variáveis e unidades: dB. Significado físico: Folga do enlace. Condições de validade • Unidades coerentes no SI. • Hipóteses e condições de contorno explicitadas. • Resultados validados contra limites do equipamento e do processo. 5. Componentes, elementos ou equipamentos Elemento/equipamen to Função Princípio Características e limitações Rádio Transmitir/receber. Wi-Fi, BLE, LoRa etc. Alcance, consumo e coexistência. Antenna Acoplar RF ao espaço. Radiação eletromagnética. Layout e ambiente. Boot seguro Validar firmware. Assinatura e raiz de confiança. Gestão de chaves. A tabela resume a função principal. A seleção final deve considerar tensão, corrente, frequência, ambiente, tolerância, proteção, manutenção e vida útil conforme a natureza do elemento. 6. Aplicação prática Problema implementar uma função embarcada com recursos limitados. Solução dividir requisitos entre hardware e firmware, configurar periféricos e validar tempo, memória e falhas. Funcionamento Configurar clock, alimentação e periféricos. Adquirir eventos e dados por hardware. Processar o algoritmo no firmware. Resultado esperado Resultado tecnicamente verificável, dentro dos limites de desempenho, segurança e operação. 7. Exemplo de engenharia Estimativa de autonomia IoT Problema: Dispositivo consome 40 mA por 2 s a cada 10 min e 20 µA em repouso; bateria de 2400 mAh. Microprocessadores Tema 6 - Projetos Com Microcontroladores 21 Resolução passo a passo 1. Duty ativo=2/600=0,00333. 2. Iavg≈40·0,00333 + 0,020·0,99667=0,153 mA. 3. Autonomia ideal=2400/0,153=15.686 h≈654 dias. Resultado: Autonomia ideal≈1,8 ano. Interpretação de engenharia: Autodescarga, temperatura, retransmissões e regulador reduzem a autonomia real. 8. Pontos críticos e cuidados • Ler o datasheet e erratas. • Respeitar níveis elétricos e corrente por pino. • Evitar bloqueios em tarefas críticas. • Medir tempo, memória e consumo no alvo. • Planejar atualização e recuperação de falhas. Erros e modos de falha recorrentes Erro/modo de falha Consequência Prevenção ou verificação Overflow de buffer/pilha Corrupção de memória ou reset Dimensionar, monitorar e testar pior caso Bloqueio em ISR Perda de eventos e jitter ISR curta e processamento em tarefa Nível elétrico incompatível Dano ao pino Condicionar e proteger a interface 9. Relação com outros assuntos • Eletrônica digital e instrumentação. • Automação e controle em tempo real. • Comunicação e sistemas embarcados. A relação entre disciplinas é importante porque o comportamento elétrico, a instrumentação, o controle, a comunicação e a proteção formam um único sistema na aplicação real. 10. Complementos técnicos Complemento técnico: bibliotecas aceleram o desenvolvimento, mas o engenheiro deve conhecer custos temporais, estados de erro e acesso concorrente aos periféricos. Complemento: além de fazer o firmware funcionar, é necessário demonstrar pior tempo de execução, uso de pilha, condições de corrida, recuperação de falha, atualização segura e comportamento após reset. Normas e referências normativas relacionadas • IEC 61508 - segurança funcional quando o sistema embarcado executa função de segurança. Consultar a edição vigente e o escopo aplicável. • MISRA C - diretrizes para C em sistemas críticos, quando adotadas pelo projeto. Consultar a edição vigente e o escopo aplicável. • IEC 60529 - graus de proteção do invólucro do produto, quando aplicável. Consultar a edição vigente e o escopo aplicável. 11. O que realmente precisa ser memorizado • Escolher protocolo por alcance, taxa e energia. • Calcular corrente média por duty cycle. • Projetar atualização segura. Microprocessadores Tema 6 - Projetos Com Microcontroladores 22 • Proteger chaves e identidade. • Validar RF no ambiente real. • autonomia ≈ capacidade/corrente média - Estimativa de bateria. • Imédia = Σ(Di·Ii) - Consumo por modos. • link margin = Prx - sensibilidade - Folga do enlace. 12. Resumo final do módulo • O assunto central é Comunicação sem fio e Internet das Coisas (IoT). • IoT: Dispositivos conectados que medem, processam e trocam dados. • Comunicação sem fio: Transmissão por radiofrequência. • Segurança embarcada: Proteção de identidade, firmware e dados. • Escolher protocolo por alcance, taxa e energia. • Calcular corrente média por duty cycle. • Projetar atualização segura. • Proteger chaves e identidade. • Validar RF no ambiente real. Checklist de domínio □ Consigo explicar, sem consultar o texto, o que é comunicação sem fio e internet das coisas (iot) e por que esse assunto é usado? □ Consigo diferenciar IoT de Comunicação sem fio e dar uma aplicação de cada um? □ Consigo identificar as unidades, hipóteses e significado físico das equações principais? □ Consigo refazer o exemplo numérico e interpretar o sinal, a ordem de grandeza e o limite do resultado? □ Consigo reconhecer os três principais erros de projeto ou operação discutidos no módulo? Microprocessadores Tema 6 - Projetos Com Microcontroladores 23 Referências e orientação de uso Fonte principal: PDF do tema fornecido pela Universidade Estácio de Sá. O texto foi reorganizado e complementado tecnicamente para estudo; chamadas interativas, alternativas de exercícios e repetições foram excluídas. Para projeto e operação reais, consultar as edições vigentes das normas, requisitos da concessionária/empresa, estudos do sistema e documentação dos fabricantes. A apostila não substitui procedimento de segurança, estudo executivo ou responsabilidade técnica. Referências apresentadas no material-fonte • INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS. IEEE recommended practice for software requirements specifications.In: IEEE Std 830-1998, pp.1-40, 20 Oct. 1998, doi: 10.1109/IEEESTD.1998.88286. • MONK, S. Programação com Arduino: Começando com sketches. 1. ed. Porto Alegre: Bookman, 2017. • MOTOR INDUSTRY SOFTWARE RELIABILITY ASSOCIATION. MISRA C: 2012 guidelines for the use of the C language in critical systems. March. 2013, ISBN 978-1-906400-10-1. Amendment 1, April 2016. • Addendum 2, April 2016. Technical Corrigendum 1, June 2017. • OLIVEIRA, A. S. de; ANDRADE, F. S. de. Sistemas embarcados: Hardware e firmware na prática. 1. ed. São Paulo: Érica, 2010.• PECKOL, J. K. Embedded systems: A contemporary design tool. 1. ed. New Jersey: Wiley, 2019. • ZANCO, W. da S. Microcontroladores PIC18 com linguagem C: Uma abordagem prática e objetiva. São Paulo: Érica, 2010.