Baixe o app para aproveitar ainda mais
Prévia do material em texto
MICROCONTROLADORES EMICROCONTROLADORES E IOTIOT UNIDADE 2 – PARALELISMOUNIDADE 2 – PARALELISMO Autora: Eliny dos Santos GomesAutora: Eliny dos Santos Gomes Revisor: Lucas Gonçalves CorreiaRevisor: Lucas Gonçalves Correia INICIAR 2.1 Paralelismo em nível de instruções, processadores superescalares e multicore A melhoria na velocidade dos processadores tem sido buscada ao longo de muitas pesquisas e diversas abordagens foram testadas. Podemos citar algumas, como a atuação direta na implementação física do processador utilizando transistores rápidos. Outra melhoria é fazer aprimoramentos na arquitetura, por exemplo, adicionando o paralelismo Introdução Caro(a) estudante, Atualmente, as pesquisas estão sempre a frente buscando a melhoria dos processadores, e essa busca tem muito a ver com o aumento no tempo de processamento e isso veio com um dos avanços da tecnologia, pois os transistores estão cada vez menores e, assim, aumentando a velocidade dos processadores. A lei de Moore, que surgiu em meados dos anos 1960, dizia que o poder de processamento dos computadores em geral dobraria a cada 18 meses. Essa informação até hoje é válida, mas não podemos garantir que irá se manter, pois os avanços só aumentam e encontram outros modos de progredir. Tendo isso em mente, estudaremos, nesta unidade, algumas formas de melhoramento de arquitetura e o paralelismo de instruções, que aumenta consideravelmente a qualidade nos processadores. Abordaremos, também, as portas de entrada e saída e como as interrupções básicas funcionam. Por fim, iremos conhecer as características e funcionamento dos timers/contadores. Conhecendo o hardware, podemos implementar o software de modo mais integral usando todas as possibilidades. Bons estudos! 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 1/16 a nível de instrução. Os processadores que usam o paralelismo de instrução executam as instruções de modo paralelo, teoricamente de forma transparente ao programador. No entanto, o paralelismo pode ser pensado em vários níveis, tais como: Paralelismo por múltiplas CPUs; Paralelismo em chip; Paralelismo por instrução; Paralelismo por processador (multiprocessadores); Paralelismo em computadores (multicomputadores). O paralelismo por múltiplas CPUs é uma das estratégias de arquitetura introdutora do que entendemos por acoplamento de unidades. Esse acoplamento pode ser considerado forte ou fraco, dependendo de sua proximidade. Em outras palavras, quando temos uma CPU fortemente acoplada, considera-se o caso de sistemas multicore, que possuem mais de um núcleo e que estão no mesmo hardware. Por outro lado, uma CPU fracamente acoplada, que é o caso da computação em grid, temos computadores em rede (uma ou mais) que trabalham em conjunto para atender a um processo específico. O paralelismo em chip visa aumentar a produtividade, fazendo com que sejam executadas várias tarefas ao mesmo tempo. As técnicas utilizadas são multithreading , que é a capacidade de um programa ou processo de sistema operacional fazer o gerenciamento para mais de um usuário ou para várias solicitações do mesmo usuário sem cópias do programa em execução, e multicore , que consiste em um único componente com duas ou mais unidades de processamento atuando de modo independente (chamados núcleos), executando várias instruções ao mesmo tempo. O paralelismo por instrução, também conhecido como técnica pipeline, baseia-se na execução de mais de uma instrução pela CPU, sendo que essa técnica é composta por etapas e nela as instruções que podem ser simultâneas devem ser de etapas diferentes do processo. Cada uma dessa etapas é chamada de estágio de pipe, ou segmento de pipe. O paralelismo por processador (multiprocessadores) busca a melhoria no desempenho, tendo duas ou mais CPUs associadas, encarregadas de executar uma determinada tarefa e que podem ser usadas com técnicas diferentes como computadores matriciais (matriz de processadores dedicados), multiprocessadores (processadores independentes) e multicomputadores. Os multicomputadores usam a técnica de união de CPUs fracamente associadas, usando a troca de mensagens para execução de uma determinada tarefa. É usada a clusterização de servidores para executar o processamento paralelo. Pode-se conceituar cluster como um conjunto de computadores em rede, que usa um sistema operacional distribuído e funciona como uma máquina única. Um pipeline possui várias etapas, exemplificando com o clássico de cinco fases, como o usado no MIPS (do inglês, microprocessor without interlocked pipeline stages ) ou seja, microprocessador sem estágios intertravados de pipeline, da arquitetura RISC, sendo as seguintes etapas: » Clique nas abas para saber mais sobre o assunto 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 2/16 Quadro 1 – Pipeline arquitetura simples Número de clock NÚMERO DA INSTRUÇÃO 1 2 3 4 5 6 7 8 9 Instrução i IF ID EX MEM WB Instrução i + 1 IF ID EX MEM WB Instrução i + 2 IF ID EX MEM WB Instrução i + 3 IF ID EX MEM WB Instrução i + 4 IF ID EX MEM WB Fonte: HENNESSY, 2014, p. 567. Os microcontroladores 8051, do tipo core, têm uma arquitetura de base Von Newmann e do tipo CISC, com grande número de instruções, o que torna bem complexo a implementação de paralelismo de instrução. No entanto, o Arduino ATMEGA328 tem uma arquitetura de base Harvard e do tipo RISC de alto desempenho e possui um número reduzido de instruções que facilita a implementação do pipeline. 2.2 Portas de entrada e saída Vamos conhecer as portas de entrada e saída de dois tipos de microcontroladores, o 8051 e o Arduino Uno, cujo núcleo microcontrolador é o ATMEGA328P que, atualmente, é uma das placas mais utilizadas. 2.2.1 Programação e rotinas Ciclo de busca de instrução (Instruction Fetch – IF) Decodificação de instrução (Instruction Decode – ID) Execução de endereço efetivo (Execution – EX) Referência de memória Instrução da ALU registrador – registrador Instrução da ALU registrador – imediato Acesso à memória (Memory Access – MEM) Etapa de Write-Back (Write-Back – WB) 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 3/16 O microcontrolador 8051 , da família MSC51, é um circuito integrado com 40 pinos, sendo quatro portas (0 a 3) com oito pinos cada, ou seja, são 32 pinos de entrada ou saída que podem ser acessados individualmente ou como portas de oito bits. Seu acesso é bem simples, uma vez que cada porta possui apenas um registro associado. Para acionar um pino, é necessário apenas escrever no registro associado e, para ler, é necessário ver o estado do registrador associado. Suas funções, símbolos e descrição estão descritas a seguir: » Clique nas abas para saber mais sobre o assunto Como notamos, todos os bits de portas são bidirecionais, podendo ser programados individualmente como entrada para receber informações ou como saída para ativar ou desativar interfaces de saída. Cada bit de uma porta é organizado por três circuitos básicos: Flip flop tipo D : armazenar informação; Driver de corrente : excitar o circuito acionador de uma interface de saída; Buffer de entrada : receber a informação de entrada. Como vimos, alguns bits da porta 1 e todos da porta 3 podem assumir funções alternativas, além de ser entrada e saída. Quadro 2 – Funções alternativas: P1, do 8052/32, e da P3 PINOS DAS PORTAS FUNÇÕES ALTERNATIVAS P1.0* T2 (entrada de clock externa do timer/contador 2) P1.1* Captura/trigger de recarregamento do timer/contador 2 P3.0 RXD (porta de entrada do canal de comunicação serial) P3.1 TXD (porta de saída do canal de comunicação serial) P3.2 INT0 (entrada de interrupção externa 0) P3.3 INT1 (entradada interrupção externa 1) P3.4 T0 (entrada de clock externa do timer/contador 0) Porta 0 Porta 1 Porta 2 Porta 3 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 4/16 P3.5 T1 (entrada de clock externa do timer/contador 1) P3.6 WR(sinal de escrita de memória de dados externa) P3.7 RD (sinal de leitura de memória de dados externa) *P1.0 e P1.1 somente no 8052/32. Fonte: GIMENEZ, 2015, p.122. Quadro 3 – Exemplo de programação de porta P0: programação de todos os bits para trabalharem como entrada de informação, que é definida externamente para o microcontrolador: » MOV P0,#0FFh: Representação simbólica é: (P0) [ #FFh; » Significa que o conteúdo da P0 será inicializado com o valor constante FFh » Essa instrução escreve 1 lógico nos oito latches da P0, e todos os bits da P0 serão programados para operarem como bits de entrada de informação externa para o determinado sistema Fonte: Elaborado pela autora, 2020. » Microcontrolador ATMEGA328P O ATMEGA328P é um microcontrolador de arquitetura avançada RISC AVR, da Atmel, com 28 pinos, de alto desempenho, baixo consumo. Figura 1 – Microcontrolador ATMEGA328P. Fonte: Elaborada pela autora, 2020. O projeto Arduino engloba hardware e software e tem o objetivo de aplicações em projetos interativos utilizando o microcontrolador ATMEGA e, conforme seu modelo, tem algumas características específicas. Por exemplo, o Uno possui um clock de 16 MHz, 2 kB de memória RAM, 32 k de memória flash, 14 portas entrada ou saída digitais e seis entradas analógicas. Como vimos, o Arduino possui dois tipos de portas, analógicas e digitais. Sendo que as portas digitais servem como entrada e saída e as saídas podem ser comum ou PWM. 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 5/16 » Portas digitais Devemos utilizar as portas digitais quando usamos valores bem definidos de tensão e trabalhamos com valores digitais binários. Sendo assim, usamos projeto de sistemas de apenas dois valores, 0 e 5 V (ou aproximadamente). As portas 0 e 1 podem ser utilizadas como entrada e saída, porém, normalmente, são usadas para o sistema de comunicação do Arduino, ou seja, pinos de RX – recepção e TX – transmissão, podendo ter conflito com o upload do software. Figura 2 – Porta digitais. Fonte: Elaborada pela autora, 2020. » Portas analógicas O Arduino possui seis portas analógicas que são apenas entradas, podendo ter infinitos valores de tensão entre 0 e 5 V. Figura 3 – Portas analógicas. Fonte: Elaborada pela autora, 2020. Com os conversores analógicos digitais de dez bits de precisão, essas portas analógicas têm as suas medições em torno de 0,005 V. Os dez bits (2¹⁰) descrevem saídas de 0 a 1023. 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 6/16 Figura 4 – Conversão. Fonte: Elaborada pela autora, 2020. O uso de conversor analógico/digital é importante para a amostragem de sinais analógicos. No entanto, é importante usá-lo corretamente, conhecendo suas configurações e seus limites de uso. Desse modo, teremos otimização e confiabilidade no sinal resultante. VOCÊ SABIA? Toda vez que estudar um componente novo, ganhe tempo conhecendo suas características elétricas e funcionais. Assim, terá segurança nas suas aplicações e programações.Como temos muitos tipos e fabricantes de microcontroladores, é necessário o entendimento de suas características e famílias. Acesse os links indicados a seguir e saiba mais: Fabricante Microchip : < https://www.microchip.com/ > Fabricante Atmel, em 2016, teve uma fusão com a Microchip : < http://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf > Databook dos microcontroladores Motorola : < Acessar > Esses são apenas alguns exemplos de databook, então, se for usar outro microcontrolador, procure um databook específico. 2.3 Interrupções básicas A família do 8051 tem um conjunto de interrupções que servem para gerenciamento de variáveis. Vamos conhecê- las, mas antes precisamos entender um pouco sobre os modos de gerenciamento de variáveis, que se dividem em duas formas básicas, usadas para controlar ou monitorar uma determinada variável qualquer interconectada ao microcontrolador: 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 7/16 https://www.microchip.com/ http://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf https://catalogcdns3.ulife.com.br/content-cli/CTI_MICIOT_20/unidade_2/ebook/documents/1988_Microprocessor_Microcontroller_and_Peripheral_Data_Volume_2.pdf Varredura é o processo em que uma rotina é desenvolvida pelo programador dentro do loop do programa principal e a cada ciclo. Essa variável é lida e analisada, podendo gerar ou não outras ações; Interrupção é o processo composto de uma sub-rotina de atendimento a essa fonte de interrupção. Neste caso, deve ser posicionada fora do loop do programa principal, e já vem em endereços de memória predeterminados pelo fabricante. As interrupções são analisadas a cada fim do ciclo de busca de instrução. Sendo reconhecida a instrução que está em execução, é finalizada e, caso esteja habilitada para ser atendida, isso é realizado. O registrador que gerencia é o Interrupt Enable (IE). Cada fonte de interrupção deve ter a sua sub-rotina de atendimento posicionada a partir do endereço de memória que foi definida pelo fabricante.A característica fundamental de atendimento a uma fonte de interrupção é que deve ser finalizada com uma instrução RETI (Return Interruption) e, quando executada, o microprocessador retorna ao programa principal na instrução imediatamente posterior à instrução em que foi registrada a solicitação da interrupção. Fluxograma 1 – Fluxo de processamento de uma interrupção Fonte: GIMENEZ, 2015, p.137. Resumindo, o processo de atendimento a uma fonte de interrupção consiste em entender o processo e funcionamento de uma chamada a uma sub-rotina. VOCÊ SABIA? Qual é a comunicação mais comum que conhecemos? É a comunicação entre as pessoas!E como acontece? Com interrupções.Quando uma pessoa chama outra, a pessoa que foi chamada, geralmente, tem que parar o que está fazendo ( interrupção ) e atender à solicitação de quem a chamou. No ATMEGA328P, as interrupções externas são acionadas pelos pinos INT0 ou INT1 e os pinos do PCINT. Caso esses pinos estejam configurados como saída, a interrupção será desencadeada. Trata-se de algo muito útil para 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 8/16 gerar interrupções de software. As interrupções externas podem ser setadas pelo aumento de borda ou queda de borda. A configuração é feita no registro EICRA. 2.3.1 Fontes de interrupção O microcontrolador 8051 tem pelo menos cinco entradas de interrupção e pode ter mais em outros modelos de 8051. Vamos avaliar as interrupções básicas: interrupções externas (duas); interrupções pelos timers/contadores (duas); interrupção pela interface de comunicação serial. As entradas de interrupção externa são denominadas interrupção 0 (INT0) e interrupção 1 (INT1), e são usados os pinos P3.2 e P3.3, respectivamente. Os quatro bits menos significativos do registrador de controle (TCON) dos timers/contadores fazem o gerenciamento da interrupção externa. Tabela 1 – TCON BITS 7 6 5 4 3 2 1 0 TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Fonte: Elaborada pela autora, 2020. » Clique nas abas para saber mais sobre o assuntoComo vimos, as duas entradas de interrupções têm a capacidade para gerar interrupções por nível lógico 0 ou por borda de descida, e a programação é feita nos bits IT0 e IT1 do registrador TCON. As interrupções dos timers/contadores funcionam em determinados intervalos de tempo programados previamente, essas fontes de interrupção são geradas dependente do tempo sendo realizadas por sub-rotinas de atendimento. Quando essas são geradas TF0 e TF1 vão de 0 para 1, ficando em nível lógico 1 até que a fonte de interrupção seja atendida. Tabela 2 – TCON BITS 7 6 5 4 3 2 1 0 IT0 (TCON.0) IE0 (TCON.1) IT1 (TCON.2) IE1 (TCON.3) 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 9/16 TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Fonte: Elaborada pela autora, 2020. TR0 (TCON.4) : bit de controle que tem a responsabilidade e fazer o timer/contador 0 contar ou parar a contagem: Bit com nível zero (0): para de realizar a contagem; Bit com nível um (1): continua realizando a contagem; TF0 (TCON.5) : bit que indica o estouro do timer/contador 0, indicando que um determinado tempo ou contagem foi gerado e, então, sinaliza a interrupção. É setado por hardware quando reconhece o estouro e resetado, também, por hardware quando a interrupção é atendida; TR1 (TCON.6) : bit de controle que tem a responsabilidade e fazer o timer/contador 1 contar ou parar a contagem: Bit com nível zero (0): para de realizar a contagem; Bit com nível um (1): continua realizando a contagem; TF1 (TCON.7) : bit que indica o estouro do timer/contador 1, indicando que um determinado tempo ou contagem foi gerado e, então, sinaliza a interrupção. É setado por hardware quando reconhece o estouro e resetado, também, por hardware quando a interrupção é atendida. A fonte de interrupção de comunicação serial é gerada por lógica (OR) entre os flags RI e TI e nenhum desses é liberado por hardware após o atendimento da interrupção; RI sinaliza que um dado acabou de ser recebido pela interface de comunicação serial (registrador SBUF – oito bits – de recepção); TI sinaliza quando um dado acabou de ser transmitido (registrador SBUF de transmissão). Todos os bits responsáveis por gerar interrupções têm a facilidade de serem setados ou ressetados por software ou hardware com o mesmo resultado. As interrupções podem ser geradas por software e, se ainda estiverem pendentes, podem ser canceladas por software. Tabela 3 – IE (Interrupt Enable) BITS 7 6 5 4 3 2 1 0 IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 IE EA -- ET2 ES ET1 EX1 ET0 EX0 Fonte: Elaborada pela autora, 2020. 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 10/16 O registrador de função especial IE tem a função de gerenciar as fontes de interrupção (nível lógico 0: desabilita a fonte de interrupção; nível lógico 1: habilita a fonte de interrupção). EA : tem a função de habilitar todas a interrupções de uma só vez; ET2 : tem a função de habilitar a fonte de interrupção de overflow ou captura o timer/contador 2; ES : tem a função de habilitar a fonte de interrupção da interface do canal de comunicação serial; ET1 : tem a função de habilitar a fonte de interrupção de overflow do timer/contador 1; EX1 : tem a função de habilitar a fonte de interrupção externa 1; ET0 : tem a função de habilitar a fonte de interrupção de overflow do timer/contador 0; EX0 : tem a função de habilitar a fonte de interrupção externa 0. Também é necessário programar a prioridade da fonte de interrupção feita pelo registrador de função especial chamado IP – Interrupt Priority (nível lógico 0: prioridade menor; nível lógico 1: prioridade maior). Tabela 4 – IP (Interrupt Priority) BITS 7 6 5 4 3 2 1 0 IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 IP -- -- PT2 PS PT1 PX1 PT0 PX0 Fonte: Elaborada pela autora, 2020. PT2 : bit de prioridade da fonte de interrupção do timer/contador 2; PS : bit de prioridade da fonte de interrupção do canal de comunicação serial; PT1 : bit de prioridade da fonte de interrupção do timer/contador 1; PX1 : bit de prioridade da fonte de interrupção externa 1; PT0 : bit de prioridade da fonte de interrupção do timer/contador 0; PX0 : bit de prioridade da fonte de interrupção externa 0. 2.4 Timers/contadores Os timers/contadores da família de microcontroladores com núcleo do 8051 são responsáveis por gerar as rotinas de tempo e determinar a velocidade ( baud rate ) da comunicação serial. Nessa família, existem dois: timer/contador 0 e timer/contador 1. No entanto, em alguns membros dessa família, podem existir outros que devem ser avaliados especificamente. Um timer/contador é um circuito sequencial composto por um registrador de contagem (conjunto de flip-flops do tipo D) e portas lógicas. Ele é projetado para ser um contador ascendente cíclico. 2.4.1 Características e funcionamento 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 11/16 Os registradores de contagem são de 16 bits, sendo os oito bits mais significativos chamados de TH0 ou TH1 e os menos significativos TL0 e TL1. Eles podem ser configurados para trabalhar como timer ou como contadores de eventos. Quando configurados como timer, são incrementados a cada ciclo de máquina e, se configurados como contador, são incrementados em resposta a uma transição de sinal elétrico externo de 1 para 0 (borda de descida). VOCÊ SABIA? Tempo! Tudo na vida das pessoas está ligado ao tempo: Pessoas falam por unidade de tempo; Pessoas andam por unidade de tempo; O coração das pessoas bate em média entre 50 e 80 vezes por minuto; As pessoas contam a sua idade em anos, que podem ser dividido em meses, em semanas, em dias, em horas, minutos e segundos. O TMOD (Timer Mode) é o registrador de função especial que programa os timers/contadores 0 e 1. Tabela 5 – Símbolos e funções BITS 7 6 5 4 3 2 1 0 TMOD GATE C/T’ M1 M0 GATE C/T’ M1 M2 TIMER 1 TIMER 2 Fonte: Elaborada pela autora, 2020. GATE : gerencia o controle de ativar ou a contagem dos timers/contadores; Nível lógico 0 : contagem é ativada ou desativada – depende do estado dos bits TR0 ou TR1; Nível lógico 1 : a contagem dos timers/contadores é habilitada somente enquanto o pino INT0 ou INT1 igual a um e TR0 e TR1 igual a um; C/T’ : seleciona o tipo de operação [timer (0) ou contador (1)]; M1 : define o modo de operação (TMOD.5); M0 : define o modo de operação (TMOD.4); M1=0/M0=0 – Modo “0” : programa os registradores de contagem para 13 bits; M1=0/M0=1 – Modo “1” : programa os registradores de contagem para 16 bits; M1=1/M0=0 – Modo “2” : programa os registradores de contagem para oito bits (TLX) com recarga automática (THX); M1=1/M0=1 – Modo “3” : programa dois timers/contadores de oito bits. O TCON (Timer Control) é o registrador de função especial que controla os timers/contadores 0 e 1. 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 12/16 Tabela 6 – Registrador TCON BITS 7 6 5 4 3 2 1 0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Fonte: Elaborada pela autora, 2020. TF1 : flag que sinaliza o estouro da contagem ( overflow ) do timer/contador 1; TR1 : controle de ligar e desligar a contagem do timer/contador 1: Nível lógico 0 : desabilita a contagem do timer/contador 1; Nível lógico 1 : habilita a contagem do timer/contador 1; TF0 : flag que sinaliza o estouro da contagem ( overflow ) do timer/contador 0; TR0 : controle de ligar e desligar a contagem do timer/contador 0: Nível lógico 0 : desabilita a contagem do timer/contador 0; Nível lógico 1 : habilita a contagem do timer/contador 0; IE1: flag de detecção da interrupção externa 1; IT1 : flag que define o tipo de detecção para a interrupção externa 1: Nível lógico 0 : sensível ao nível lógico baixo (0 lógico); Nível lógico 1 : sensível a borda de descida; IE0 : flag de detecção da interrupção externa 0; IT0 : flag que define o tipo de detecção para a interrupção externa 0: Nível lógico 0 : sensível ao nível lógico baixo (0 lógico); Nível lógico 1 : sensível a borda de descida. Os timers/contadores 0 e 1 possuem quatro modos de operação e são selecionados por bits (M1 e M0) do registrador TMOD, sendo que os modos 0, 1, 2 programam os timers/contadores 0 e 1 de forma semelhante, e o modo 3 programa os timers/contadores 0 e 1 diferentemente um do outro. » Modo 0 Programado no modo 0, o tamanho do registrador de contagem é configurado em 13 bits (oito bits mais significativos da contagem feitos por meio do registrador TH0 ou TH1 e os cinco bits menos significativos da contagem ficam dentro do registrador TL0 e TL1). Assim, é possível que a contagem se limite a 8.192. Fluxograma 2 – Timer/contador programado no modo 0 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 13/16 Fonte: GIMENEZ, 2015, p.151. » Modo 1 Quando configurado no modo 1, os timers/contadores apresentam o mesmo hardware do modo 0, a diferença é que os registradores e contagem são de 16 bits (oito bits do registrador TH0 ou TH1 e oito bits do registrador TL0 ou TL1), sendo usados para gerar tempos maiores, pois a contagem está limitada a 65.636. » Modo 2 Quando configurado no modo 2, o registrador de contagem tem oito bits, correspondendo ao registrador de contagem TL0 ou TL1. Os TH0 e TH1 serão definidos como registradores de recarga, sendo inicializados apenas quando o registrador de contagem estourar ( overflow ). Assim, o conteúdo do registrador de recarga é copiado para o registrador de contagem TL0 ou TL1. O registrador de recarga automática deve ser definido inicialmente pelo programa. Fluxograma 3 – Timer/contador programado no modo 0 Fonte: GIMENEZ, 2015, p.151. » Modo 3 No modo 3, o timer/contador 1 programado fornece simplesmente o valor de seu contador, ou seja, define dois timers/contadores de oito bits independentes. É usado em aplicações que requerem um contador extra de oito bits. Se o timer/contador 0 está, nesse modo, o timer/contador 1 pode ser ligado ou desligado dentro e fora do seu próprio modo 3, que ainda pode ser usado em outras funções: 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 14/16 Gerador de baud rate pela interface de comunicação serial; Aplicações sem interrupções. Fluxograma 4 – Timer/contador programado no modo 0 Fonte: GIMENEZ, 2015, p.151. Podemos concluir que, analogamente, às pessoas, assim como os timers/contadores, também foram implementados nos microcontroladores com a referência de intervalos de tempo. Além das implementações que podem ser usadas, como ligar e desligar máquinas por um determinado tempo. Síntese Caro(a) estudante, Finalizamos a unidade e, e concluímos conhecemos mais algumas características dos microcontroladores 8051 e do ATMEGA328P, comparando e aprofundando o conhecimento em suas portas de entrada e saída, além de conhecermos também suas programações e rotinas. Ainda, visitamos o conhecimento dos conceitos de gerenciamento de variáveis, ou seja, varredura e interrupção, usados para controlar ou monitorar uma determinada variável e aprofundamos os conceitos de interrupção. Por fim, avaliamos o registrador de função especial TCON, que faz o controle dos timers/contadores do 8051 e seus modos de funcionamento. Agora, vamos colocar tudo isso em prática nos próximos projetos. Referências bibliográficas 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 15/16 BARBIERI FILHO, Plínio; HETEM JR, A. Fundamentos de Informática : Lógica para Computação. 1. ed. São Paulo: LTC, 2012. GIMENEZ, S. P. Microcontroladores 8051 : conceitos, operações, fluxogramas e programação. 1. ed. São Paulo: Érica, 2014. GIMENEZ, S. P. Microcontroladores 8051 : teoria e prática. 1. ed. São Paulo: Érica, 2010. HENNESSY, J. L.; PETTERSON, D. A. Arquitetura de computadores : uma abordagem quantitativa. 5. ed. Rio de Janeiro: Elsevier, 2014. STALLINGS, W. Arquitetura e Organização de Computadores . 8. ed. São Paulo: Pearson, 2010. 22/04/2024, 10:08 Unidade 2 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 16/16
Compartilhar