A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SISTEMAS EMBARCADOS I UNIDADE 6 – SISTEMAS DE INTERRUPÇÃO TURMA: 7º Período DISCIPLINA: Sistemas Embarcados I PROFESSOR: Pedro Pacheco Bacheti

Apresentações semelhantes


Apresentação em tema: "SISTEMAS EMBARCADOS I UNIDADE 6 – SISTEMAS DE INTERRUPÇÃO TURMA: 7º Período DISCIPLINA: Sistemas Embarcados I PROFESSOR: Pedro Pacheco Bacheti"— Transcrição da apresentação:

1 SISTEMAS EMBARCADOS I UNIDADE 6 – SISTEMAS DE INTERRUPÇÃO TURMA: 7º Período DISCIPLINA: Sistemas Embarcados I PROFESSOR: Pedro Pacheco Bacheti pedro.exercicios@gmail.com www.sites.google.com/site/professorengpedro Serra (ES), Novembro de 2014.

2 INTRODUÇÃO ________________________________________________________________________________ Uma interrupção consiste em um evento externo ao programa que provoca um desvio no seu fluxo, de forma que a CPU passa executar um subprograma em resposta ao evento. Ao término da execução desse subprograma (chamado de ISR (Interrupt Servicing Routine) ou RTI (Rotina de Tratamento de Interrupção)), o fluxo do programa retorna ao ponto em que se encontrava antes da interrupção. As interrupções são úteis quando necessitamos que a CPU responda rapidamente a um evento,mas sem a perda de capacidade de executar outras operações enquanto ele não ocorra. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

3 INTRODUÇÃO ________________________________________________________________________________ O tempo decorrido entre o início do evento e o início da execução da RTI é chamado de latência de interrupção e quanto menor, mais rapidamente a CPU responde ao evento. No caso da família MSP430, a latência de interrupção é fixa e determinada. São necessários 06 ciclos de clock para que a CPU reconheça a interrupção e efetue todo o procedimento de desvio do fluxo do programa. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

4 INTRODUÇÃO ________________________________________________________________________________ Como resposta a um evento de interrupção, a CPU executa os seguintes procedimentos:  A instrução em execução é completada  O conteúdo do contador de programa (PC) é salvo na pilha, de forma que o programa possa posteriormente retornar ao ponto em que se encontrava.  O conteúdo do registrador SR é salvo na pilha, de forma a preservar os bits de modo de operação e flags matemáticos da CPU.  Caso existam múltiplas interrupções simultâneas, aquela com mais alta prioridade é tratada primeiro e assim sucessivamente. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

5 INTRODUÇÃO ________________________________________________________________________________  O flag da interrupção é apagado automaticamente pela CPU. Em alguns tipos de interrupção, em que um flag é ativado por mais de um tipo de interrupção, o flag deve ser apagado pelo software do usuário.  O conteúdo do registrador SR é apagado, com exceção do bit SCG0. Isso faz com que o chip saia de um eventual modo de baixo consumo em que se encontra. Outro feito de apagamento do SR é que o bit GIE é também apagado, impedido que novas interrupções não mascaráveis ocorram durante o tratamento atual.  O vetor correspondente à interrupção acionada é carregado no PC, o que provoca o desvio do fluxo do programa para a RTI correspondente. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

6 INTRODUÇÃO ________________________________________________________________________________ REGISTRADORES DA CPU SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO Fone: pg.9

7 CATEGORIAS DE INTERRUPÇÃO ________________________________________________________________________________ Existem 02 categorias básicas de interrupção na família MSP430: -Não mascaráveis -Mascaráveis * A única diferença entre elas é que as não mascaráveis não podem ser desativadas pelo controle geral de interrupções (o bit GIE do SR), enquanto as mascaráveis dependem de que o bit GIE esteja ativado “1” para que possam ser reconhecidas pelo controlador de interrupções da CPU. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

8 CATEGORIAS DE INTERRUPÇÃO ________________________________________________________________________________ Além das 02 categorias anteriores, ainda existe uma terceira: o reset Na família MSP430 o reset é trarado como uma categoria especial de interrupção não mascarável, possuindo prioridade máxima e um vetor próprio (0xFFFE) SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

9 CATEGORIAS DE INTERRUPÇÃO ________________________________________________________________________________ Existem 03 eventos capazes de gerar uma interrupção não mascarável:  Uma transição de nível no pino RST/NMI quando ele está configurado no modo NMI.  Uma falha no oscilador: caso os osciladores (LFXT1 ou XT2) deixe de funcionar, flag OFIFG é ativado, sinalizando a falha no oscilador. Caso a interrupção esteja habilitada, o programa será desviado para o endereço apontado pelo respectivo vetor.  Uma violação de acesso à memória FLASH. * Observe que cada interrupção descrita pode ser individualmente habilitada/desabilitada pelo software do usuário. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

10 CATEGORIAS DE INTERRUPÇÃO ________________________________________________________________________________ Um detalhe de extrema importância sobre esta categoria de interrupções: após a ocorrência de uma NMI, os seus respectivos controles de habilitação de interrupção (OFIE, NMIE e ACCVIE) são automaticamente apagados pelo hardware do microcontrolador, após efetuando o desvio para a rotina de tratamento de interrupção. Caso uma ou mais interrupções deste tipo estejam sendo utilizadas na aplicação, é importante que as mesmas sejam novamente habilitadas dentro da própria RTI. O fabricante recomenda que esta operação seja feita pouco antes da execução da instrução de retorno de interrupção e que os flags sejam habilitados em uma única operação de escrita, de forma a evitar que uma interrupção NMI possa acontecer antes do término do tratamento da NMI corrente, o que acessaria em um aninhamento de interrupções, que por sua vez poderia levar a uma condição conhecida como “estouro da pilha” (overflow). SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

11 VETORES DE INTERRUPÇÃO ________________________________________________________________________________ A arquitetura MSP430 inclui um sistema de controle de interrupções dotado de 16 diferentes vetores, cada um deles possui um grau de prioridade, sendo o vetor 15 o de menor prioridade e o vetor 31 o de maior prioridade. Cada vetor armazena o endereço em que está localizada a sub rotina responsável pelo tratamento do evento especificado. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

12 VETORES DE INTERRUPÇÃO ____________________________ SISTEMAS EMBARCADOS I

13 ORGANIZAÇÃO DA MEMÓRIA – MSP430G ________________________________________________________________________________ SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

14 REGISTRADORES DE CONTROLE DE INTERRUPÇÃO ________________________________________________________________________________ A arquitetura MSP430 prevê 02 tipos básicos de registradores de controle de interrupção, todos localizados na área de registradores SFR: os registradores de habilitação de interrupção (IE_x) e os registradores sinalizadores de interrupção (IFG_x). Além deles, muitos flags de interrupção encontram-se localizados nos registradores de controle de periféricos. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

15 REGISTRADORES DE CONTROLE DE INTERRUPÇÃO ________________________________________________________________________________ IE1 SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

16 REGISTRADORES DE CONTROLE DE INTERRUPÇÃO ________________________________________________________________________________ IE2 SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

17 REGISTRADORES DE CONTROLE DE INTERRUPÇÃO ________________________________________________________________________________ IFG1 SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

18 REGISTRADORES DE CONTROLE DE INTERRUPÇÃO ________________________________________________________________________________ IFG2 SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

19 TRATAMENTO DE INTERRUPÇÃO ________________________________________________________________________________ Para realizarmos o tratamento de interrupções em C, utilizamos a diretiva #pragma vector = que informa ao compilador que a próxima função deve ter o seu endereço de entrada armazenado na tabela de vetores de interrupção, na posição indicada após o sinal de igual. A palavra reservada _interrupt informa ao compilador que a função definida por ela é uma função de tratamento de interrupção. Isso faz com que o compilador gere os códigos de salvamento de registradores na entrada da função e de retorno de interrupção na sua saída. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO

20 TRATAMENTO DE INTERRUPÇÃO _______________________________ Para habilitar interrupções em linguagem C é necessário declarar a biblioteca “intrincics.h”. - Comandos de habilitação: __bis_SR_register(GIE); __enable_interrupt(); - Comandos de desabilitação: __bic_SR_register(GIE); __disable_interrupt(); SISTEMAS EMBARCADOS I

21 REFERÊNCIAS ________________________________________________________________________________ - PEREIRA, FÁBIO. Microcontroladores Família MSP430, 1 ed. São Paulo: Érica, 2005. SISTEMAS EMBARCADOS I – SISTEMA DE INTERRUPÇÃO


Carregar ppt "SISTEMAS EMBARCADOS I UNIDADE 6 – SISTEMAS DE INTERRUPÇÃO TURMA: 7º Período DISCIPLINA: Sistemas Embarcados I PROFESSOR: Pedro Pacheco Bacheti"

Apresentações semelhantes


Anúncios Google