Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Embarcados: Microcontroladores Prof. Protásio Laboratório de Microengenharia/DEE/CEAR/UFPB Apresentação da disciplina ▪ Disciplina ▪ Sistema Embarcados: microcontroladores ▪ Horário ▪ Às quintas-feiras das 14h00 às 16h00 ▪ Contato ▪ protasio@cear.ufpb.br ▪ Onde me encontrar ▪ Laboratório de microengenharia Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 2 Apresentação da disciplina ▪ Ementa ▪ Sistemas embarcados: contexto, características e especificações. ▪ Hardware para sistemas embarcados: ▪ estrutura geral de unidades de processamento (processador, memórias, barramentos, subsistemas internos, interfaceamento e modos de operação), ▪ microcontroladores, DSPs, ASIPs, lógica reconfigurável, ASICs, ▪ interface de entrada (sensores, sample-hold, conversores A/D), ▪ interface de saída (conversores D/A, atuadores), ▪ elementos de memória embarcada e externa. ▪ Gerenciamento de eficiência energética. ▪ Metodologias e ferramentas de projeto. ▪ Microcontroladores: famílias, programação assembly e C, contadores, temporizadores e dispositivos de segurança de operação, interrupções. ▪ Programação concorrente e em tempo real. ▪ Redes de microcontroladores e protocolos de comunicação. ▪ Sistemas com comunicação sem fio. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 3 Apresentação da disciplina ▪ Bibliografia ▪ Ed Lipiansky. Embedded Systems Hardware for Software Engineers. McGraw Hill, 2012. ▪ Elecia White. Making Embedded Systems: Design Patterns for Great Software, O’Reilly, 2012. ▪ Frank Vahid and Tony Givargis. Embedded System Design: A Unified Hardware/Software Approach. Department of Computer Science and Engineering. University of California. 1999. ▪ NOERGAARD, Tammy. Embedded Systems Architecture. Newnes ed. 2005. ▪ Data sheets. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 4 Etapas do Curso ▪ 1ª Teoria ▪ Sistema embarcados ▪ Definições ▪ Arquitetura e Metodologia de Projeto ▪ 2ª Teoria/Prática ▪ Organização, programação, IDE e projeto inicial em MCU1 ▪ Organização, programação, IDE e projeto inicial em MCU2 : ▪ Organização, programação, IDE e projeto inicial em MCUn ▪ 3ª Aplicação ▪ Desenvolvimento de projetos com MCUs Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 5 Apresentação da disciplina ▪ Avaliações ▪ 1ª. Prova escrita ▪ 2ª. Seminários: documentos escritos e apresentação. ▪ 3ª. Projeto de um sistema embarcado: relatório e apresentação. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 6 Etapas do Curso ▪ Para cada microcontrolador (MCU): ▪ ARQUITETURA E ORGANIZAÇÃO ▪ FAMÍLIAS ▪ CLOCKS ▪ REGISTRADORES ▪ MEMÓRIAS ▪ RISC X CISC ▪ PLACAS EXPERIMENTAIS ▪ IDE ▪ ESTRUTURA DE PROGRAMAÇÃO EM “ASSEMBLY” E “C” ▪ BOTÕES E LEDS ▪ INTERRUPÇÕES ▪ PERIFÉRICOS Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 7 Sistemas Embarcados Conceitos Iniciais O que é um sistema embarcado? Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 9 O que é um sistema embarcado? ▪É um sistema computacional que é parte de um sistema maior e que realiza alguns dos requerimentos deste sistema. ▪ IEEE Standard Computer Dictionary, 1990. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 10 O que é um sistema embarcado? ▪É qualquer sistema que utiliza uma CPU de propósito geral, mas não é um computador de propósito geral. ▪ WOLF, Wayne and FREY, Ernest. Tutorial on Embedded System Design, Design on VLSI in Computer & Processors, 1992. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 11 O que é um sistema embarcado? ▪É um sistema computacional aplicado. ▪ NOERGAARD, Tammy. Embedded Systems Architecture, 2005. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 12 O que é um sistema embarcado? ▪É um sistema baseado em microprocessamento que é construído para controlar a função, ou conjunto de funções, deste sistema, mas não é programável pelo usuário final na mesma forma que um PC é. ▪ HEATH, Steve. Embedded system design. 2ed, 2003. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 13 O que é um sistema embarcado? ▪ É um sistema computadorizado construído para uma aplicação que não seja a computação em si. ▪ Entretanto, não há uma definição clara o suficiente do que seja um sistema embarcado, no sentido de definir: ▪ Qual o tamanho ▪ Sistema de controle de um navio ▪ Controle remoto de TV ▪ Qual a rapidez de processamento ▪ Um celular de última geração ▪ Um nó sensor com um microcontrolador de 8-bits ▪ Onde é localizado ▪ Em uma indústria (fixo) ▪ Junto ao uma baleia (móvel) Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 14 Sistema Embarcado: exemplos Mercado Dispositivo embarcado Automotivo Sistema de ignição Controle do motor Sistema de freio antitravamento Eletrônica de consumo Televisão analógica e digital Set-Top Boxes (DVDs, VCRs, TV a cabo, etc.) Personal Data Assistant (PDAs) Aparelhos domésticos (refrigerador, tostadeira, forno de microondas, etc.) Brinquedos, Jogos Telefones, celulares, pagers, GPS Câmeras Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 15 Sistema Embarcado: exemplos Mercado Dispositivo embarcado Controle industrial Robôs Sistemas de controle Médico Bombas de infusão Máquina de hemodiálise Próteses eletroeletrônica Monitores cardíacos Rede Roteadores, Hubs, gateways Escritório Fax Fotocopiadoras Impressoras Monitores, escâneres Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 16 Sistema Embarcado: exemplos ▪ Universidade de Michigan ▪ Tiny generators to harvest energy from the bug’s movements ou body heat. Utilidade: monitoramento de desastre Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 17 Características de Sistemas Embarcados ▪ Todos os sistemas embarcados apresentam as seguintes características comuns: ▪ Hardware embarcado ▪ Software e Firmware embarcado ▪ Restrições (muitas restrições) Características de Sistemas Embarcados ▪ Forte acoplamento entre HW e SW. ▪ Requer um misto de metodologias de projeto em HW, SW e FW. ▪ Requer projetos distintos em HW, SW e FW. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 19 Características de Sistemas Embarcados ▪ Conceitos básicos ▪ Hardware ▪ São os equipamentos físicos utilizados para processamento, armazenamento e/ou transmissão de programas ou dados de computadores ▪ IEEE Standard Computer Dictionary Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 20 Características de Sistemas Embarcados ▪ Conceitos básicos ▪ Software ▪ Programa de computador e possível documentação associada e os dados pertinentes à operação de um sistema computadorizado. ▪ IEEE Standard Computer Dictionary ▪ São programas que operam em níveis de abstração superior ao nível de HW. Em geral, detalhes de HW são abstraídos (WOLF, 1992). ▪ Por exemplo: através do sistema operacional. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 21 Características de Sistemas Embarcados ▪ Conceitos básicos ▪ Firmware ▪ São programas que manipulam diretamente o HW sem qualquer nível de abstração intermediário (WOLF, 1992). ▪ Frequentemente, são programas residentes em ROM. ▪ É a combinação de um dispositivo (HW) e as instruções e dados que residem como SW somente de leitura neste dispositivo ▪ IEEE Standard Computer Dictionary Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 22 Características de Sistemas Embarcados ▪ Nem todo Sistema Embarcado tem SW. ▪ HW e SW, em geral,têm metodologias de desenvolvimento aplicáveis em diferentes projetos ▪ podem ser reutilizados ▪ FW, em geral, são ad hoc. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 23 Características de Sistemas Embarcados ▪ Vantagens do uso de Sistemas Embarcados ▪ Como eram os sistemas de controles antes do advento dos SE? ▪ Exemplo: calculadoras eletrônicas ▪ Antes de 1970, eram construídas com centenas de chips discretos que implementavam as funções lógicas necessárias. ▪ Após, com o uso de microprocessadores, as calculadoras ficaram baratas e mais funcionais Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 24 Características de Sistemas Embarcados ▪ O uso de MCU facilita a atualização (upgrade) do Sistema Embarcado ▪ Antes, era necessário modificar o HW ▪ Após, faz-se necessário somente modificar o SW ▪ Facilita a manutenção ▪ Pode até ser feita remotamente ▪ Sistema Embarcado tiver link de comunicação Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 25 Características de Sistemas Embarcados ▪ O uso de sistemas embarcados promove controle mais preciso ▪ Com o uso de controladores digitais, por exemplo, o motor de um carro pode ter seu desempenho melhorado pela medição da temperatura, mistura do combustível, posição do acelerador, etc. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 26 Características de Sistemas Embarcados ▪ O uso de sistemas embarcados promove proteção da propriedade intelectual ▪ Antes, com sistemas baseados em chips e componentes de prateleira era relativamente fácil fazer engenharia reversa. ▪ Após, existem proteção de conteúdo da memória interna de µP sendo extremamente difícil obter o FW e/ou SW de controle. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 27 Sistemas embarcados HARDWARE EMBARCADO HARDWARE EMBARCADO ▪ Consiste de todos os: ▪ Componentes eletrônicos, tais como: ▪ circuitos integrados, indutores, capacitores, resistores, cristais osciladores, LEDs e displays; ▪ Componentes eletromecânicos ou mecânicos, tais como: ▪ sensores de pressão, temperatura, fluxo, relês, atuadores, etc.; ▪ e os demais componentes de suporte (placas, chassis, etc.) e específicos dependentes da aplicação. HARDWARE EMBARCADO ▪ O principal componente de um sistema embarcado é a unidade de processamento (CPU). ▪ Diagrama de bloco de uma unidade de processamento CPU PORTAS DE ENTRADAS DE DADOS PORTAS DE SAÍDAS DE DADOS Memória de Programa Memória de Dados HARDWARE EMBARCADO ▪ Tipos de unidades de processamento ▪ MPU - Micro Processor Unit ▪ Caracterizada pela alta capacidade de processamento. ▪ Interliga memória externa com unidades externas de I/O ▪ MCU - Micro Controller Unit ▪ Caracterizado por conter em um único CI: ▪ Processador (em geral, com baixa capacidade de processamento) ▪ Dispositivos de entrada: ADC, Entradas binárias, etc. ▪ Dispositivos de saída: DAC, Saídas binárias, etc. ▪ Outros periféricos: timers, counters, rádios, etc. ▪ Memórias: RAM, Flash, etc. ▪ Também é denominado de computador em um chip, controlador embarcado. ▪ DSP - Digital Signal Processor ▪ Caracterizado pela alta capacidade de processamento matemático. ▪ DSC - Digital Signal Controller ▪ Meio termo entre MCU e DSP Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 31 HARDWARE EMBARCADO ▪ Exemplo generalizado HARDWARE EMBARCADO ▪ Air-bag electronics block diagram ▪ It consist of ▪ Crash detection sensors (typically piezoelectric) with a signal conditioning amplifier ▪ A microcontroller distinguishing between crashes and normal vehicle dynamics, ▪ An igniter triggering for the pyrotechnic inflator used for air-bag deployment and seat belt tightening. FONTE: http://web.iitd.ac.in/~achawla/public_html/736/18-Control%20Systems%20in%20Automobiles_v3.pdf HARDWARE EMBARCADO ▪ Electronic fuel injection FONTE: http://web.iitd.ac.in/~achawla/public_html/736/18-Control%20Systems%20in%20Automobiles_v3.pdf HARDWARE EMBARCADO ▪ Electronically controlled damping system FONTE: http://web.iitd.ac.in/~achawla/public_html/736/18-Control%20Systems%20in%20Automobiles_v3.pdf HARDWARE EMBARCADO ▪ Brush DC Motor Control FONTE: http://www.infineon.com/ HARDWARE EMBARCADO ▪ Brushless DC (BLDC) motors FONTE:http://www.freescale.com/webapp/sps/site/application.jsp?code=APLBDCM Sistemas embarcados Software Embarcados SOFTWARE EMBARCADO ▪ São os softwares que realizam os requisitos do sistema em que este está implementado. ▪ Software embarcado podem atuar: ▪ DETERMINISTICAMENTE ▪ Produz sempre a mesma resposta para uma dada entrada. ▪ EM TEMPO REAL ▪ Sempre reage a um evento rápido suficiente dependente do sistema. ▪ TOLERANTE À FALHA ▪ Na ocorrência de erros, recupera-se ou opera em condições com baixa degradação. ▪ Exemplo de aplicação: em satélites. ▪ EM APLICAÇÕES CRÍTICAS ▪ Na ocorrência de erro, emita alertas. Ex: sistema de monitoramento cardíaco. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 39 SOFTWARE EMBARCADO ▪ Em geral, no desenvolvimento dos software embarcado é usada compilação-cruzada. ▪ Compilação-cruzada ▪ O compilador-cruzado é executado em uma máquina (ex. computador desktop ou notebook) diferente da máquina alvo (ex. microcontrolador) em que o código compilado irá ser executado. ▪ Em geral, o fabricante da máquina embarcada alvo vende ou fornece o compilador-cruzado (cross- compiler). Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 40 SOFTWARE EMBARCADO ▪ Em geral, a linguagem de programação usada na produção de softwares embarcados é a C. ▪ Outra oferecem suporte à programação-orientada à objeto (em geral, em C++) ▪ Abstração de dados, encapsulamento, herança, com certas limitações. ▪ Java é também utilizada, mas somente em sistemas embarcados com maior poder de processamento, devido sua necessidade de máquina virtual. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 41 SOFTWARE EMBARCADO ▪ Compilação-cruzada e depuração-cruzada ▪ Oferecer depuração-cruzada, em geral, produz alguma perda de recursos do processador para dar suporte à depuração. ▪ Existem diversos processadores embarcados que não dão suporte à depuração-cruzada. Sistemas Embarcados RESTRIÇÕES RESTRIÇÕES ▪ Sistemas embarcados são caracterizados por terem um conjunto diverso de restrições: ▪ No hardware embarcado ▪ Pouca memória RAM para dados e pouca ROM ou Flash para programa. ▪ Unidade de processamento rudimentar ▪ Baixa velocidade de processamento ▪ Em geral, precisa ter baixo consumo de energia ▪ Isso influencia diretamente no tempo de descarga da bateria Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 44 RESTRIÇÕES ▪ Sistemas embarcados são caracterizados por terem um conjunto diverso de restrições: ▪ No hardware embarcado ▪ No projeto, em geral, deve-se ter um equilíbrio entre a velocidade de processamento (VP) e o consumo de energia (CE): ▪ Maior VP, Maior CE ▪ Menor VP, Menor CE ▪ Há uma infinidade de opções de unidade de processamento (isso é bom, ok?) ▪ Nem sempre os periféricos são os de melhor desempenho, principalmente, em MCU Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 45 RESTRIÇÕES ▪ No software embarcado ▪ O código precisa ser extremamente otimizado ▪ Pouca disponibilidade de depuração-cruzada efetiva ▪ Quando não se tem isso, é preciso habilidade para verificar se o sistema está operando corretamente ▪ Depuração baseada em printf ▪ Em geral, requer um tempo de aprendizado alto das instruções de acesso aosperiféricos ou especificidades para cada unidade de processamento ▪ Linguagem Assembly diferentes ▪ Mesmo em C, a interação é específica para cada unidade de processamento RESTRIÇÕES ▪ Em todas as etapas do projeto, o custo é um fator que deve ser sempre observado ▪ Lembre-se: o sistema embarcado faz parte de um sistema maior. ▪ Este é o objetivo do projeto e o sistema embarcado não pode/deve onerá-lo. ▪ Tempo de projeto é uma restrição ▪ Lembre-se: tem uma outra equipe trabalhando no sistema maior e o mercado exige rapidez. ▪ A manufaturabilidade deve ser prevista ▪ O sistema embarcado projetado ▪ pode ser reproduzido? ▪ Tem confiabilidade? ▪ Pode ser testando? ▪ É flexível? ▪ Em campo (no consumidor final), pode ser alterado para atender uma possível modificação? ▪ Recall RESTRIÇÕES ▪ Em geral, sistemas embarcados não possuem sistema operacional, assim: ▪ Programação embarcada, não tendo o suporte de um SO, é muito diferente da programação para computadores de uso geral ▪ Deve-se sempre atentar para: ▪ Tempo de inicialização ou reinicialização ▪ Inicialização de variáveis ▪ Vetor de inicialização ▪ Tratamento de interrupção ▪ Interfaces de entrada e saída Tarefas ▪ Faça uma lista de 10 sistemas (equipamentos ou dispositivos) que você acha que tem um sistema embarcado. ▪ Classifique o possível sistema embarcado de acordo com sua: ▪ Capacidade de processamento. É usada uma MCU, MPU, DSC ou DSP? ▪ Capacidade de memória ▪ Velocidade de processamento ▪ Criticidade ▪ Tamanho do sistema alvo ▪ Linguagens de programação que podem ser usadas ▪ Consumo de energia ▪ Necessita de componentes eletrônico? Quais? ▪ Necessita de componentes eletromecânicos? Quais?
Compartilhar