Prévia do material em texto
Sistemas Embarcados Material Teórico Responsável pelo Conteúdo: Prof. Me. Tales Gouveia Fernandes Revisão Textual: Prof.ª Esp. Kelciane da Rocha Campos Especificação de Sistemas Microcontrolados • Definição de Systems-on-Chip (SoCs); • Família de Microcontroladores e Processadores Digitais de Sinais (DSPs); • Interfaces com Dispositivos de Memórias; • Operações sobre Memória. • Aprender sobre a ciência e a tecnologia de um microcontrolador; • Fundamentar o princípio de funcionamento de um microcontrolador; • Estudar sobre os sistemas de memória; • Observar as diferenças entre os sistemas de memória; • Reconhecer a necessidade do uso de memórias; • Conhecer arquiteturas de memória e formas de acesso a elas. OBJETIVOS DE APRENDIZADO Especifi cação de Sistemas Microcontrolados Orientações de estudo Para que o conteúdo desta Disciplina seja bem aproveitado e haja maior aplicabilidade na sua formação acadêmica e atuação profissional, siga algumas recomendações básicas: Assim: Organize seus estudos de maneira que passem a fazer parte da sua rotina. Por exemplo, você poderá determinar um dia e horário fixos como seu “momento do estudo”; Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma alimentação saudável pode proporcionar melhor aproveitamento do estudo; No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam- bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados; Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus- são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e de aprendizagem. Organize seus estudos de maneira que passem a fazer parte Mantenha o foco! Evite se distrair com as redes sociais. Mantenha o foco! Evite se distrair com as redes sociais. Determine um horário fixo para estudar. Aproveite as indicações de Material Complementar. Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma Não se esqueça de se alimentar e de se manter hidratado. Aproveite as Conserve seu material e local de estudos sempre organizados. Procure manter contato com seus colegas e tutores para trocar ideias! Isso amplia a aprendizagem. Seja original! Nunca plagie trabalhos. UNIDADE Especifi cação de Sistemas Microcontrolados Definição de Systems-on-chip (SoCs) O hardware de um sistema embarcado equivale a um System-on-Chip, sendo diferente de um sistema Single Board Computer (SBC). Um sistema Single Board Computer é basicamente um computador completo construído em uma única placa, ou seja, em uma mesma placa estão conectados o microprocessador, memória, dispositivos de entrada e saída e também outras características funcionais de um computador. Inicialmente, este sistema foi desenvolvido para uso educacional ou controla- dores computacionais de tamanho reduzido. É possível encontrar no mercado diferentes tipos de computadores pessoais ou portáteis integrados em uma única placa de circuito impresso. Um dos mais conhecidos é o Raspberry Pi, o qual está exemplificado na Figura 1, cuja porta- bilidade e custo reduzido, quando comparado a computadores pessoais, o torna competitivo na utilização em PDVs (sistema de ponto de venda utilizados em mercados e lojas de conveniência). Figura 1 – Exemplo de um sistema Single Board Computer, contendo um processador Raspberry Pi, memória, interfaces de comunicação e conexões para dispositivos de entrada e saída. Fonte: Wikimedia Commons Diferentemente de computadores convencionais, SBCs frequentemente não têm aumento ou mudanças em seus barramentos, consequentemente não aumen- tam o suporte a novos periféricos. No entanto, há possibilidade de extensão de módulos, expandindo, assim, recursos que antes eram limitados. Já um System-on-Chip é um circuito integrado, abreviado como CI, que con- tém várias partes de um sistema computacional. 8 9 Em geral, a tecnologia System-on-Chip possui a característica de incluir vários subsistemas em um único chip de semicondutores e a capacidade de processamento é enorme, tornando possível rodar softwares tais como um sistema operacional os executa. Os sistemas SoCs foram desenvolvidos para consumir pouca energia, ter um preço reduzido e maior confiabilidade quando comparado com sistemas de múltiplos chips que são substituíveis pelos SoCs. Essa tecnologia geralmente possui núcleos de 32 bits para CPU e núcleos separados para USB, tanto que o consumo otimizado de energia é importante, pois os SoCs recebem energia de fontes externas. A composição básica e geral de um SoC consiste em uma unidade central de processamento, blocos de memória incluindo ROM, RAM, EEPROM e memória flash; outros periféricos e interfaces exteriores podem ser adicionados, incluindo padrões USB, Ethernet e Unidade de Processamento Gráfico (do inglês Graphics Processing Unit - GPU). A Figura 2 ilustra o diagrama de iteração dos elementos citados anteriormente que compõem um System-on-Chip, cujos periféricos estão se comunicando por um barramento central. MMC RAM USB CPU Controle RAM Controle USB Tela Vídeo Memória Interna Debug GPU Barramento compartilhado de um System on Chip (SOC) DMA Armazenamento I/O Flash Figura 2 – O diagrama do SoC indica que o sistema é mais do que ser núcleos de CPU, ou seja, além de ter núcleo de processamento possui um barramento compartilhado de interconexão de periféricos, além de ser usado para acesso direto à memória. Cada fabricante constrói o SoC contendo os periféricos que deseja, assim o diagrama pode variar de fabricante para fabricante, porém mantendo os principais periféricos. Em resumo, as principais diferenças entre os System-on-Chip e os Single Board Computer são: um SoC é composto por várias unidades funcionais concentradas em um único chip de silício. Já os SBC são computadores pessoais completos integrados em uma única placa de circuito impresso. Os SoCs são amplamente utilizados pela indústria de sistemas embarcados, pois a composição em único chip de várias funcionalidades reduz muito o tamanho dos projetos de hardware. No entanto, os SBCs são considerados produtos de prateleira, ou seja, mais utilizados 9 UNIDADE Especificação de Sistemas Microcontrolados por indústrias que não demandam funcionalidades específicas e níveis altos de processamentos dedicados. Por fim, quando se fala em SBCs considera-se tanto o hardware quanto o software, o qual pode conter um SoC, uma fonte de energia, memórias, interfaces de conexão e conectividade multimídia, como USB, HDMI, Ethernet, entre outros. Estas são as principais diferenças e definições da tecnologia System-on-Chip e do sistema Single Board Computer, as quais estão ligadas diretamente aos sistemas embarcados. Família de Microcontroladores e Processadores Digitais de Sinais (DSPs) De uma forma geral, tanto os microcontroladores quanto os processadores digitais de sinais DSP (do inglês Digital Signal Processing) são circuitos integrados disponíveis nos mais variados tipos de encapsulamento, destinados ao processa- mento de comandos de execução e tratamento de sinais de informação, respec- tivamente. Ambos são considerados tecnologias System-on-Chip, pois todos os periféricos necessários para sua operação e funcionamento estão em um único chip. Os tamanhos também são muito pequenos, mesmo contendo vários perifé- ricos, como memórias, barramentos, timers, portas de comunicação, converso- res de sinal analógico em digital. Importante! Os tamanhos do encapsulamento podem variar de fabricante para fabricante, além do mais cada microcontrolador ou DSPpode ter mais ou menos periféricos internos. No entanto, há dois padrões de encapsulamentos, um é chamado de Dual In-Line Package (DIP), em português Pacote duplo em linha, o qual tem o invólucro plástico ou metálico e duas fileiras de pinos em lados opostos do CI, em seu lado maior. Já o segundo padrão é o Plastic Leaded Chip Carrier (PLCC), em português Portador plástico de chip sem fio condutor, possui quatro lados, podendo ser retangular ou quadrado, com um terminal em “J” e espaçamento de pino de 1,27 mm. Essa configuração requer menos espaço na placa soldada quando comparada com a configuração do DIP. Trocando ideias... Esses dispositivos são amplamente usados em automação industrial, residen- cial e predial, eletrodomésticos, brinquedos eletrônicos e em qualquer situação em que seja necessário o controle de um dispositivo de sinais eletrônicos. Tomando como exemplo um elevador, quando um botão é acionado para ir até um andar específico, o microcontrolador recebe essa informação como um dado de entra- da, interpreta-o e aciona os motores do elevador até o respectivo andar, para e abre as portas. Já no caso do DSP, sua gama de aplicação envolve processamento de áudio e vídeo, como no caso de cancelamento de ruído, cujo DSP captaria o ruído ambiente e geraria um “antirruído”, ou seja, um sinal invertido ou espelhado 10 11 ao do ruído, o qual o anularia. Para ambos os exemplos, o processamento é dito de tempo real, no entanto para o caso do uso do DSP, é praticamente impossível captar e eliminar ruídos instantaneamente, assim há projeção de filtros digitais que estimam ruídos e que consigam minimizar seus efeitos. Para ambas tecnologias, há duas filosofias de desenvolvimento do conjunto de instruções, chamadas RISC e CISC. A principal diferença entre essas filosofias é que na RISC (do inglês Reduce Instruction Set Computing) o conjunto de instruções é reduzido, oposto ao da CISC (do inglês Complex Instruction Set Computing), em que o conjunto de instruções é mais complexo. Via de regra, quanto maior a complexidade da instrução maior é o espaço ocupado no chip, podendo comprometer o desempenho do sistema dependendo do conjunto de instruções. Um conjunto de instruções extensos pode indicar que há trechos excedentes, ou seja, que não são utilizados na execução do programa. Assim, procurar desenvolver trechos de instruções que serão compatíveis com as funcionalidades requeridas pela solução otimiza e facilita a manutenção do siste- ma de maneira geral. Os microcontroladores ARM e PICs de 16 e 32 bits são exemplos de arquite- tura RISC, os quais possuem instruções simples que executam 1 ou 2 ciclos de máquina, enquanto os Intel 8051 são mais rápidos por permitirem acesso simul- tâneo às memórias, representando, assim, a arquitetura CISC. Os ciclos de máquina são chamados clock, o qual fornece a sensibilidade de tempo para o microcontrolador, ou seja, ele fornece um sinal oscilante e contínuo em forma de onda qua- drada. A diferença de tempo entre dois níveis altos da onda quadrada corresponde a um ciclo de clock. Com isso, cada instrução do microcontrolador para ser processada respeita o tempo de subida da onda quadrada. Quanto mais rápido o sinal oscilante, mais veloz será o processamento, de maneira que o clock define a velocidade do microcontrolador. Ex pl or Após assimilar o conceito das arquiteturas dos microcontroladores e proces- sadores digitais de sinal, compreender algumas famílias destas tecnologias será importante para a escolha de qual se adaptará melhor à solução proposta, tanto na parte do hardware quanto na parte do firmware. Iniciaremos pela família 8051 da Intel, a qual foi uma das primeiras fabricantes a produzi-lo com início em 1981, porém não sendo a única; AMD, Siemens e Philips também são concorrentes desta linha de microcontroladores. Além do 8051 pro- priamente dito, existem variantes como o 8031 (sem memória ROM interna e com apenas 128 bytes de memória RAM), o 8751 (com 4 kB de memória EPROM) e o 8052 (com 8 kB de memória ROM e 256 bytes de memória RAM). Por terem diferenças pontuais, todos esses microcontroladores serão citados como o 8051. Basicamente essa família de microcontroladores de 8 bits possui como prin- cipais características frequência de clock de 12MHz, com algumas versões que 11 UNIDADE Especificação de Sistemas Microcontrolados alcançam 40 MHZ. Pode ter até 64KB de memória de dados externa, além de 128 bytes de memória RAM interna. Para memória programável, há disponíveis 4KB, podendo ser expandidos para 64KB externos. Há também 4 portas bidire- cionais para entrada e saída de dados, cada uma com endereçamento de 8 bits, cujas duas portas iniciais podem ser dedicadas à conexão de memórias externas. Pode-se ainda usar dois temporizadores/contadores de 16 bits, um canal serial e 5 fontes de interrupção com prioridades selecionais por software para duas delas. Estas características formam o núcleo da família 8051 da Intel, cuja extensão de memória, adição de conversores e portas de entrada e saída podem ocorrer respeitando cada microcontrolador e recomendações indicadas pelo fabricante no datasheet. Datasheet é o nome da folha de especificações de um microcontrolador, sendo forne- cida pelo fabricante com o objetivo de indicar as principais características técnicas do componente e sua forma correta de utilização. São disponibilizados em inglês e possuem diagramas que indicam posicionamentos de portas, memórias e circuitos internos. Ex pl or Outros microcontroladores bastante utilizados e conhecidos, cujo fabricante é a Microchip, são chamados de PIC (do inglês Peripherica Interface Controller). O PIC12F675 é da família de microcontroladores de 8 bits, igual ao Intel 8051, ou seja, significa que a unidade lógica e aritmética (ULA ou do inglês ALU - Arith- metic and Logique Unit) lida com palavras de no máximo 8 bits. As características básicas da família desse microcontrolador é ter alto desempe- nho na arquitetura RISC, possuindo apenas 35 instruções (Assembly), as quais são executadas em um ciclo de clock. Estão disponíveis 368 bytes de memória RAM interna e para memória programável há disponível 3KB. O clock máximo chega a 20 MHz e o ciclo de instrução pode ser tão pequeno quanto 200 ns. Possui ainda a capacidade de interrupção com oito níveis de profundidade da pilha, bem como modos de endereçamento direto, indireto e relativo. É possível optar pela utilização de oscilador interno ou externo (RC, ressonador ou cristal), do modo sleep para economia de energia, da ampla faixa de tensões de operação (2 V a 5,5 V). Além disso, possui memória flash de alta persistência. Por fim, estão disponíveis 6 pinos para entrada/saída, possibilidade de fornecimento de corrente para acionamento de LEDs, módulo conversor analógico/digital de resolução de 10 bits com quatro canais de entrada multiplexáveis e entrada para tensão de referência do A/D. Na sequência, o DSP foi projetado para realizar diversas manipulações e trans- formações matemáticas em um conjunto de números analógicos, ou seja, sinais contínuos no tempo que passam por um conversor analógico-digital (A/D), trans- formando-se em dados digitais discretos. 12 13 Importante! Um sinal contínuo é aquele cuja função matemática que o descreve é definida para todos os valores da sua variável independente, ou seja, em qualquer instante do tempo esse sinal possui um valor válido. Já os sinais discretos são aqueles cuja função matemática que os descreve é definida apenas para alguns valores da sua variável independente, sendo assim existem intervalos de tempo em que esse sinal não possui um valor válido. Você Sabia? Uma das principais características do DSP é a de realizar uma operação de multiplicação e acumulação (denominada normalmente de MAC, do inglês Multiply and Acumulate) em um único clock. Para isso ser possível, existe uma integração da unidade multiplicadora com a unidade acumuladora em seu barramentode dados principal, essa é a principal diferença de hardware comparado com os microcontroladores, pois suas operações de multiplicação são realizadas por somas e deslocamentos sucessivos. Com estes conceitos, surgiram os dsPICs, os quais foram desenvolvidos para proporcionar a performance de um DSP com a simplicidade de um microcontro- lador em um único chip. Difere dos processadores genéricos na sua arquitetura de hardware, software e no conjunto de instruções otimizado para o tratamento digital de sinais. A demanda por desempenho é alta para tratamento de sinais di- gitais, aplicações podem depender de processamento em tempo real, assim seria impossível realizar apenas com circuitos analógicos. Um dos DSPs mais utilizados é o dsPIC30F, cuja fabricação também é da Mi- crochip e segue a linha dos microcontroladores da família PIC, no entanto sua arquitetura é própria para tratar sinais analógicos e digitais de áudio e vídeo. As principais características envolvem a possibilidade de utilização de 84 instruções, as quais são executas utilizando 16 bits por operação de dados. O clock pode chegar a 120 MHz, rodando 30 milhões de instruções por segundo (do inglês MIPS - Million Instructions per Second). Com isso a disponibilidade de memória é maior quando comparado com os outros microcontroladores, sendo que há 8 KB de memória RAM e 144 KB para dados de programa. O diferencial está na disponibilidade de Codec de áudio, suporte aos protocolos I2S e AC’97, 2 mó- dulos de conectividade CAN 2.0B, 16 canais de conversores AD, sendo que 4 podem ser utilizados simultaneamente. Atualmente, os DSPs são empregados em uma grande variedade de produtos eletrônicos, mas predominantemente em soluções para telecomunicações, como filtros, compressão, multiplexação e cancelamento de eco. Além de ser primor- dial em produtos de processamento de áudio, como em gravações de estúdio, sintetizadores, mixers, filtros digitais e no reconhecimento de voz. 13 UNIDADE Especificação de Sistemas Microcontrolados Interfaces com Dispositivos de Memória Como comentado anteriormente, tanto nos microcontroladores quanto nos DSPs há internamente uma memória, seja para armazenar dados permanentes, no caso o software embarcado, quanto dados vindos de processamentos, como, por exemplo, o resultado de uma multiplicação. Também existe uma memória que armazena as instruções básicas do processador. Memórias eletrônicas têm como principais características o tempo de acesso, o qual é o tempo necessário para acessar a memória e realizar uma operação de leitura ou gravação. Uma característica relevante é a capacidade correspondendo à quantidade efetiva de dados que podem ser armazenados no interior da memória. Ter a característica de não volatilidade é poder manter seus dados mesmo quando não houver energia elétrica, mas o contrário também pode ser encontrado em me- mórias do tipo volátil. Por fim, o tempo de latência é uma característica que indica o intervalo mínimo entre cada operação de leitura ou escrita na memória, o qual deve ser essencialmente respeitado, pois pode acarretar a utilização de espaços in- devidos da memória, podendo causar a perda ou manipulação incorreta de dados. Levando em consideração estas características, ainda existem várias tecnologias de fabricação de memórias, sendo que algumas delas também são utilizadas em computadores pessoais. Os tipos de memórias mais usadas e suas particularidades estão destacadas a seguir. A Memória de Acesso Aleatório, ou memória RAM (do inglês Random Access Memory), é do tipo volátil, ou seja, os dados são gravados temporariamente, en- quanto houver energia elétrica. Sempre que alimentada, inicia com dados aleató- rios. A aleatoriedade consiste no fato de que, para acessar um determinado endere- ço, não é necessário percorrer desde o início todos os endereços, mas sim pode-se acessar diretamente o endereço desejado. Outra memória bastante utilizada é a Memoria Exclusivamente de Leitura, ou memória ROM (do inglês Read Only Memory). Esta memória é oposta à memó- ria RAM, ou seja, é do tipo não volátil, retendo os dados mesmo que cesse o fornecimento de energia elétrica. Ela é conhecida como apenas de leitura, pois não permite escrita e geralmente é programada pelo fabricante do hardware. Nos computadores pessoais, é usada para armazenar o conjunto de rotinas básicas do sistema operacional, denominado sistema básico de entrada e saída, ou BIOS (do inglês Basic Input/Output System). Também é muito usada em calculadoras e em impressoras para armazenar seus modelos de letras. Já a Memória Programável Exclusivamente para Leitura, ou memória PROM (do inglês Programmable Read Only Memory), é um tipo especial de memória ROM, cujo fabricante a vende limpa, sem nenhum software gravado. Com isso, os desenvolvedores do projeto ficam encarregados de gravarem os dados que são realmente relevantes para o funcionamento do sistema, pois só é possível gravar nela uma única vez. 14 15 Há também a Memória Programável Apagável Exclusivamente para Leitura, ou memória EPROM (do inglês Electrically Programmable Read Only Memory). Nada mais é que um tipo de memória PROM, porém seu conteúdo pode ser apa- gado quando submetido a processos especiais não muito convencionais, como, por exemplo, iluminar o ponto de restauração com luz ultravioleta. Pode ser reprogra- mada apenas algumas poucas vezes. Seguindo a mesma linha da PROM e da EPROM, existe a Memória Programável apagável Eletricamente Exclusivamente para Leitura, ou memória EEPROM (do inglês Electrically Erasable Programmable Read Only Memory). Seu conteúdo também pode ser programado e apagado por processos elétricos, no entanto esse processo pode ser repetido várias vezes. Contudo, as operações de escrita são realizadas de forma mais lenta quando comparadas com o processo de leitura. A Figura 3 ilustra estes dois tipos de memórias. Por fim, criou-se a memória FLASH, sendo programável e apagável eletrica- mente por processos convencionais e de forma rápida. Quando comparada com a memória EEPROM, atinge velocidades superiores de leitura e escrita, além do mais possui elevada capacidade de armazenamento. Figura 3 – Exemplos de memórias. A) Memória EEPROM; B) memória EPROM Fonte: Wikimedia Commons Operações sobre Memórias Compreendidos os principais tipos de memórias e suas características, podemos detalhar quais são as situações e razões em que são escolhidas e utilizadas essas memórias, no contexto de um projeto de sistema embarcado. A memória pode ser considera de programa quando é utilizada para armazenar o firmware do sistema embarcado, geralmente uma memória FLASH, que fornece ao programador a possibilidade de gravar muitas vezes o seu software embarcado. Em determinadas situações, o espaço livre dessa memória pode ser reutilizado como extensão da memória de dados, ou seja, para armazenamento temporário de informações processadas. Além do mais, memória de programa sempre utiliza uma das tecnologias de memória não volátil, assim seus dados estarão disponíveis mesmo quando não existe alimentação. Devido a essa característica, um sistema 15 UNIDADE Especificação de Sistemas Microcontrolados embarcado pode manter sempre seu firmware internamente, sem a necessidade de uma gravação a cada execução. Como comentado anteriormente, há a memória de dados, a qual compreende a parte onde serão alocados, armazenados, os registros, as variáveis e todos os espaços reservados para o processamento temporário. Por ser uma das memó- rias de tecnologia volátil, quando houver o corte da energia, essa memória perde seus dados. Em um microcontrolador ou DSP, o funcionamento dessa memória é semelhante ao da memória RAM de um computador pessoal. Por fim, memórias de armazenamento são utilizadas pelos sistemas embarcados como uma memória extra não volátil acoplada ao hardware, para que assim in- formações posam ser gravadas de modo seguro. Com isso, fabricantes introdu- zem memóriasEEPROM no encapsulamento dos microcontroladores, gerando uma concorrência de espaço físico com periféricos internos, de maneira que a quantidade de memória interna é inversamente proporcional à quantidade de periféricos internos. Na prática, por ser uma memória que não perde dados quando a alimentação é desligada, torna-se uma opção para guardar parâme- tros de processamento. Importante! Além das memórias usuais descritas até o momento, existem posições de memórias que recebem nomes específicos, tendo como funcionalidade armazenar as configurações e também o estado de funcionamento atual do microcontrolador ou DSP. Estas posições de memória são chamadas de registradores (do inglês SFR - Special Function Regiters). Normalmente, cada bit do registrador tem uma função específica. Com isso, existe um registrador para definir se as portas são de entrada ou de saída, ativar e desativar in- terrupções, apresentar o estado do microcontrolador, o estado dos conversores, entre outras definições. Por serem construídos com a mesma tecnologia do processador, os registradores têm o menor tempo de acesso do sistema, no entanto armazenam uma instrução ou um único endereço por ciclo de memória. Todo fabricante indica na folha de datasheet a tabela de todos os registradores do microcontrolador em questão. Importante! A memória de armazenamento para se conectar aos demais componentes do sistema utiliza barramentos, os quais são canais de informação por onde passam os dados para gravação e leitura dessas memórias. A definição da estrutura destes barramentos segue basicamente uma das duas arquiteturas mais difundidas no meio da eletrônica digital, sendo a arquitetura Harvard e a arquitetura de Von Neumann. O método em que são processados os dados provenientes da memória de dados e da memória de programa é o que torna a arquitetura Harvard diferente da arqui- tetura de Von Neumann. Quando um microcontrolador possui uma única área de memória na qual ficam armazenados tanto os dados temporários quanto o firmware do sistema embarcado, ou seja, existe apenas um barramento para o tráfego de ambos os dados, dizemos que esse sistema segue a arquitetura de Von Neumann. 16 17 No entanto, quando os dados temporários ficam armazenados em uma área de memória e o firmware do sistema embarcado fica armazenado em outra área de memória, ou seja, existem barramentos diferentes, dizemos que esse sistema segue a arquitetura Harvard. Ter disponíveis barramentos diferentes para o fluxo de ambos os dados proporciona ter múltiplos acessos à memória, de maneira que há possibilidade de acessos simultâneos à memória de dados e à memória de programa, isso aumenta o desempenho no processamento de dados, quando comparado com a arquitetura de Von Neumann. Conforme pode ser observado no diagrama da Figura 4, o qual representa a arquitetura de Von Neumann, não existe separação entre memória de dados tem- porários e memória do firmware, uma vez que há uma única área de memória. Desta forma, a unidade de controle deve executar uma única ação por vez: ou acessa os dados ou executa uma instrução. Memória Unidade de Controle ULA Acumulador Entrada Saída Figura 4 – Arquitetura de Von Neumann Já no diagrama da Figura 5, o qual representa a arquitetura de Harvard, pode- -se observar a distinção entre a memória de dados temporários e a memória do firmware. Sendo assim, o barramento, representado pelas setas bidirecionais, proporciona acesso múltiplo às memórias, fazendo com que o microcontrolador possa executar mais de uma ação por vez: acessando os dados e/ou executando uma instrução. ULA I/O Memória de Dados Memória Firmware Unidade de Controle Figura 5 – Arquitetura de Harvard 17 UNIDADE Especificação de Sistemas Microcontrolados Além das arquiteturas de Harvard e de Von Neumann serem importantes na comunicação entre memórias, periféricos e CPU, existem pequenas unidades de memória para alocação temporária de dados que trabalham diretamente com a unidade de processamento e que também utilizam uma dessas arquiteturas. Essas unidades correspondem aos registradores, os quais também têm a função de armazenar os resultados de operações lógicas e aritméticas temporariamente até que esse dado seja reutilizado em outra instrução ou transferido para outro tipo de memória disponível no sistema. Uma outra função do registrador é a de contador de instrução, sendo que ele é responsável por armazenar o endereço da próxima instrução a ser executada. No momento em que essa instrução inicia a execução, o conteúdo desse regis- trador é logo atualizado para o endereço da próxima instrução a ser executada, e assim segue o ciclo de contagem de instruções. Com isso, um microcontrolador pode ter seu funcionamento resumido na se- guinte sequência de etapas, denominada ciclo de instruções. A primeira etapa é buscar uma instrução na memória. Já a segunda etapa é interpretar a operação, à qual a instrução está se referindo. Na terceira etapa, os possíveis dados necessários para a execução da operação são resgatados ou das memórias ou dos registradores. Desta forma, a quarta etapa executa a operação com os dados e armazena o resultado no lugar definido pela instrução. Por fim, a quinta etapa coincide com a primeira, cujo processo se reinicia buscando uma nova instrução. Este ciclo de instrução tem duração indefi- nida, desde que a energia elétrica se mante- nha ou não ocorram erros no firmware que termine sua execução. Em termos de hardware, uma instrução nada mais é do que um conjunto em sequên- cia de bits, no qual a ausência de energia é re- presentada pelo zero e a presença de energia é representada pelo número um. Com isso, ULA, presente em um microcontrolador, nada mais é que uma unidade de processa- mento matemático, a qual realiza as opera- ções lógicas e aritméticas. A F D R B Figura 6 – Típico esquema simbólico da representação de uma ULA. As letras A e B são representações dos dados de entrada. Já a letra F representa a instrução a ser executada. A letra R representa a saída do resultado da operação. Por fim, a letra D são indicadores de estouro da capacidade do registrador ou de quando o resultado é zero 18 19 As instruções são basicamente decompostas nas operações fundamentais arit- méticas, tais como adição, subtração, multiplicação, divisão, lógicas booleanas, nos deslocamentos, nos complementos ou nos decrementos e incrementos. Desta for- ma, a ULA possui dois registradores de entrada de dados representados na Figura 6 por A e B. Um vem de algum registrador especial e outro vem do barramento de dados ou de programa. Os outros são o tipo de operação a ser realizado, repre- sentado na Figura 6 pela letra F, e o local onde colocar a resposta dessa operação representado na Figura 6 pela letra R. Por fim, a ULA possui alguns flags (sinali- zadores) de overflow (estouro da capacidade do registro de resposta) e de quando o resultado é zero, representado na Figura 6 pela letra D. 19 UNIDADE Especificação de Sistemas Microcontrolados Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Livros Sistemas Embarcados Hardware e Firmware na Prática OLIVEIRA, A. Schneider de; ANDRADE, F. Souza de. Sistemas embarcados hardware e firmware na prática. 2ª ed. São Paulo: Érica, 2010. Vídeos Como funciona um Microcontrolador https://youtu.be/4YYA0AZy6NI Leitura Folha Datasheet do Microcontrolador Intel 8051 http://bit.ly/2PZk1WW Folha Datasheet do Microcontrolador Microchip PIC12F675 http://bit.ly/2PWzw24 Folha Datasheet do Microcontrolador dsPIC30F http://bit.ly/2PZynqh 20 21 Referências BINDAL, A. Electronics for embedded systems. Cham: Springer International Publishing, 2017. HOLT, A.; HUANG, C. Y. Embedded operating systems: a practical approach. 2nd edition. ed. Cham: Springer International Publishing AG, 2018. QIAN, K.; HARING, D. D.; CAO, L. Embedded software development with C. New York: SpringerScience+Business Media, 2009. OLIVEIRA, A. Schneider de; ANDRADE, F. Souza de. Sistemas embarcados: hardware e firmware na prática. 2ª ed. São Paulo: Érica, 2010. 21