Your SlideShare is downloading. ×
ARM
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

ARM

8,828
views

Published on

Apresentação sobre microcontrolador na Engenharia de Teleinformática

Apresentação sobre microcontrolador na Engenharia de Teleinformática

Published in: Technology

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,828
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
282
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.
    • Equipe:
      • João Gabriel
      • Daniel Bruno
      • Edvaldo Júnior
      • Davyd Bandeira
  • 2.
    • Arquitetura ARM (primeiramente Acorn RISC Machine, atualmente Advanced RISC Machine) é uma arquitetura de processador de 32 bits e é usado principalmente em sistemas embarcados.
    • Muito usado na indústria e na informática, seu desenvolvimento se deu principalmente para ter o melhor desempenho possível com a limitação de ser simples, ocupar pouca área e ter baixo consumo de energia.
    • São conhecidos pela sua versatilidade pois possuem poucas instruções para programação. Encontrados em PDAs, telefones celulares, calculadoras, periféricos de computador, equipamentos POS e aplicações industriais.
  • 3. HISTÓRICO
    • Out/83, a Acorn Computers Ltd desenvolve o primeiro modelo do processador ARM;
    • 26/Abr/85, protótipos do ARM são fabricados pela VLSI Technology e são utilizados pela primeira vez em BBC Micros:
      • Primeiro processador RISC a ser comercializado
    • 80’s, os ARMs são utilizados nos desktops da Acorn (BBC Master, Acorn Archimedes);
    • 80’s, é criada uma versão estática, o ARM2aS;
    • Fim 80’s, visando uma versão totalmente estática, a Apple junta-se a Acorn para desenvolver novas versões do ARM.
  • 4. HISTÓRICO
    • Nov/90, a AdvancedRM Ltd é fundada resultante de uma junção da Arcorn com a Apple Computer e a VLSI Technology ;
    • 91, são lançados os primeiros modelos do ARM6.
    • 95, DEC e ARM lançam o StrongARM
      • Intel compra a DEC e ganha o StrongARM de “presente”.
    • 98, ARM Ltd é introduzida nas bolsas de Londres e NASDAQ
    • Ao longo dos anos 90s, ARM torna-se líder no mercado de processadores embarcados de alto desempenho e baixo consumo de energia.
  • 5.
    • Microcontroladores RISC de 16/32 bits;
    • 32kb de RAM estática e 512kB de flash para programa, ambas em chip;
    • 2 canais de 8 bits para ADC’s de 10 bits, que são convertidas em até 2.44µs;
    • 2 Timers de 32 bits;
    • Clock de 30-50Mhz e Real-Time clock de baixo consumo com alimentação independente;
    • Múltiplas interfaces seriais: 2 UARTs, 2 Fast I²C bus, SPI e SSP;
    • Controlador de vetores de interrupções com prioridades configuráveis;
    • 47 pinos de I/O com tolerância de 5V e até 9 pinos de interrupção externa sensíveis a borda ou nível;
    • Modos de Economia de Energia : “Idle e Power-down”;
    • O processador acorda via interrupção externa ou BrownOut Detection.
  • 6.
    • Conjunto de instruções ortogonais;
    • 3 Perfis de processador:
      • SO sosfisticados, Sist Tempo-Real, baixo custo,...
    • Arquitetura Load-Store.
    • Formato de instruções de 3 endereços (os dois registradores operandos e o registrador de resultado são independentemente especificados
    • Manipulação de periféricos de I/O como dispositivos mapeados na memória com suporte à interrupções.
    • Pipelines de 3 e 5 estágios
      • Busca, decodifica e executa
    • Tecnologia Thumb ;
  • 7. Diagrama de Blocos
  • 8. Pinagem
  • 9. Mapa de Memória
  • 10. Tabela de Interrupções
    • Definidas por configurações
    • programáveis:
    • FIQ – Fast Interrupt Request
      • (Maior prioridade);
    • IRQ – Vectored Interrupt Request
      • (intermediária) – 0 à 15;
    • Não-Vectored Interrup Request
      • (Menor prioridade);
    • As prioridades das interrupções
    • dos diversos dispositivos são
    • ajustadas dinamicamente.
  • 11.
    • Este bloco permite selecionar pinos do microcontrolador que possuem mais de uma função. Registros de configuração controlam os multiplexadores para permitir a conexão entre o pinos e os periféricos no chip.
    • Periféricos deve ser conectados a pinos apropriados antes de serem habilitados, e antes de qualquer interrupção relacionada seja ativada.
    • Ativação de qualquer função periférica que não é mapeada para um pino relacionado devem ser consideradas indefinidas.
  • 12.
    • Pinos que não são conectados à específicas funções periféricas são controlados pelos registros de GPIO.
    • Pinos podem ser configurados dinamicamente como entrada ou saída.
    • Separar os registros permite configurar ou limpar qualquer número de saídas simultaneamente.
    • O valor do registro de saída pode ser lido novamente, bem como os estados atuais das portas.
  • 13. Características Paralell e Fast I/O
    • Controle de direção individual dos bits,.
    • Todas os I/O viram input no reset .
  • 14. Você pode fazer a comunicação com o ARM da seguinte maneira...
  • 15. UART
    • Contém duas UARTs.
    • Além de transmitir e receber linhas de dados padrão, também fornece handshake.
    • Transmite e recebe 16 bits (FIFO).
    • Pinagem RS232:
    PINO LPC2138 RS232 21 P0.1 RXD 0 19 P0.0 TXD 1 34 P0.9 RXD 1 33 P0.8 TXD 1 37 P0.11 CTS 1 35 P0.10 RTS1
  • 16. I 2 C
  • 17. I 2 C
    • Fácil configuração como Mestre, Escravo, Mestre/Escravo.
    • Clocks programáveis (controlo de taxas de transmissão e recepção).
    • Transferência de dados bidirecional (full duplex).
    • Barramento Multi-master.
    • Sincronização de clock serial (comunicação entre dispositivos com taxas de transmissão diferentes e handshake).
  • 18.  
  • 19. SSP
    • Controlador de entrada e saída serial.
    • Capaz de operar em SPI, 4-Wire, e Microwire.
    • Interage com vários barramentos Mestre/Escravo.
    • Suporta Full Duplex.
  • 20. SPI
    • Protocolo de comunicação síncrono full dulpex.
    • Composto por quatro sinal (MOSI, MISO, SCLK, SS).
    • É mais rápido que o protocolo I 2 C por ser mais simples e de fácil programação.
    • Máxima taxa de bits de dados é 1/8 da taxa de clock.
  • 21. SPI A comunicação de um mestre com diversos escravos requer do microcontrolador ou microprocessador um número grande de pinos de seleção.
  • 22.  
  • 23. TIMER/COUNTER
    • O contador temporizador destina-se a contagem de ciclos de clock periférico ou externa e pode gerar interrupções ou desencadear outras funções em valores específicos de tempo. O temporizador/ contador pode ser parado ou resetado quando tranções do sina de entrada gera interrupção.
    • Existem pinos de entrada de captura de sinais que podem ser carregados em registros para depois, opcionalmente, gerar interrupção.
  • 24. Tabela de registros Nome Genérico Descrição RI Register interromper. É gravado na hora da interrupção. O IR pode ser lido para identificar qual dos oito possível fontes de interrupção estão pendentes. TCR Temporizador de registo. O TCR é utilizado para controlar o Timer Counter das funções. Ele pode ser desativado ou redefinido através do TCR. TC Timer Counter. O TC de 32-bit é incrementado cada PR +1 ciclos de PCLK. O TC é controlado através de TCR. PR Prescale Register. Quando o Prescale Contador (abaixo) é igual a este valor, no próximo clock TC é incrementado e PC limpo. PC Prescale Contador. O PC de 32 bits é um contador que é incrementado com o valor armazenado na PR. Quando o valor no PR é atingido, o TC é incrementado e o PC está limpo. MCR Match Control Register. CRM é utilizado para controlar se uma interrupção é gerada, e se o TC é redefinir quando ocorre uma intervenção.
  • 25. Modulador de Largura de Pulso (PWM)
    • Características
      • 7 registros;
      • 6 canais de modo simples ou 3 de modo duplo ou misturados;
      • Período e largura de pulso depende do numero do contador;
      • Todos PWM ocorrem com a mesma taxa de repetição;
      • Quando desabilitado funciona como timer padrão;
      • Contador de 32-bit c/ pré-escaler programável de 32bit
  • 26. Phase Locked Loop (PLL)
    • Sistema de Sincronização;
    • ARM7 – Geração de Clock;
    • Habilitado e desabilitado por software somente;
    • Desabilitado nos modos Reset e Power-Down;
  • 27. Phase Locked Loop (PLL)
  • 28. Phase Locked Loop (PLL)
  • 29. Phase Locked Loop (PLL)
    • PLLCON
    • PLLCFG
  • 30. Phase Locked Loop (PLL)
    • PLLSTATUS
    • PLLCFG
  • 31. Phase Locked Loop (PLL)
    • PLLFEED
    • Validando o PLL
      • Comandos: Escrita de 0xAA;
            • Escrita de 0x55;
  • 32. Phase Locked Loop (PLL)
    • Modos PLL
  • 33. Conversor A/D
    • 2 Conversores com 10 bit de aproximação na conversão AD ;
    • Input multiplexing among 6 or 8 pins (ADC0 and ADC1).
    • Faixa de medição de 0 V a VREF ( não exceder VDDA ).
    • Tempo de conversão mínimo 2.44 µs ( para 10bit).
    • Frequencia máxima gerada pelo APB 4,5Mhz;
    • Burst conversion mode for single or multiple inputs.
    • Optional conversion on transition on input pin or Timer Match signal.
    • Global Start command for both converters (LPC2134/6/8 and matching /01 devices).
  • 34. Conversor A/D
  • 35. Conversor D/A
    • 10 bit digital to analog converte
    • Resistor string architecture
    • Buffered output
    • Power-down mode
    • Selectable speed vs. power
  • 36. Real Timer Clock (RTC)
    • Medidas da passagem do tempo para manter o relógio do dispositivo;
    • Consome pouqussima energia dando suporte a sistemas alimentados por bateria.
    • Fornece segundos, minutos, horas, dia da semana, dia do mês, dia do ano, mês e ano;
    • Oscilador externo 32kHz ou pre-escaler programado do APB clock.
    • Possibiliadade de alimentação através do seu pino (VBAT) por uma bateria.
    • Registros (8 bits)
      • Miscellaneous Group;
      • Timer Counter Group;
      • Alarm Group.
  • 37. Interrupção RTC
    • Geração de Interrupção controlado pelos registradores Interrupt Location Register (ILR), Counter Increment Interrupt Reg (CIIR), registros de alarme e AMR.
    • São geradas através da transição de estado. ILR habilita CIIR e AMR.
    • Toda vez que um contador do CIIIR incrementa gera uma interrupção.
    • Registro de alarme permite ao usuário setar de contagem para interrupção.
    • AMR controla quais os registros de alarmes são mascarados.
    Real Timer Clock (RTC)
  • 38. Watch Dog Timer (WDT)
    • Reset interno quando não recarregado periodicamente;
    • Modo Debug;
    • Habilitado por software e desabilitado p elo hardware (reset) ou WTD reset/interrupt
    • Não dando a carga correta há reset do sistema
    • Programável 32-bit com pré-scaler interno
    • Período de TPCLK x 256 x 4 ate TPCLK x 2^32 x 4 de TPCLK x 4
  • 39. Watch Dog Timer (WDT)
    • Quando o microcontrolado entra num estado errado ele não consegui recarregar o registro WTD em um determinando tempo fazendo q haja um reset/int errupt
    Aplicação   Operação   Setar o tempo em WDTC registro; Setar o modo em WDMOD; Iniciar com os comandos: 0xAA – 0x55 em WDFEED; Realimentar antes do estouro; No estouro: reset contador de programa; WDTOF setado; (limpa por software)
  • 40.
    • Arquitetura e modelo de programação
  • 41. Modos de execução
    • O processador ARM possui sete modos de operação que podem intercambiados através de software, interrupções externas e processamento de exceções.
  • 42. Modos de execução
    • Normalmente as aplicações são executadas em nível de usuário. Enquanto o processador está no modo usuário o programa sendo executado é incapaz de acessar alguns recursos protegidos do sistema ou mudar de modo.
    • Os outros modos além do modo usuário são denominados modos privilegiados. Eles tem acesso completo aos recursos do sistema e podem mudar de modo livremente.
    • Cinco destes modos são considerados modos de exceção pois eles são utilizados quando uma exceção específica ocorre. Cada um deles possui registradores extras de forma que os registradores no modo de usuário não sejam corrompidos.
    • O modo de execução sys é utilizado para tarefas a nível de sistema operacional, ou seja, para tarefas que necessitam acessar completamente os recursos do sistema.
  • 43. Registradores
    • Os registradores podem ser usados para manipular dados de um byte, de meia palavra (16 bits) ou de uma palavra completa (32 bits). Quando instruções de um byte são utilizadas somente o byte menos significativo é utilizado. Quando instruções de meia palavra são utilizadas somente a meia palavra menos significativa é utilizada.
    • Os registradores R13, R14 e R15 são de propósito específico e são chamados de stack pointer (ponteiro para pilha - SP), link register (registrador de ligação -LR) e program count (contador de programa - PC) respectivamente.
    • Ao fazer referência a alguns desses registros de propósito específico deve-se sempre levar em consideração qual o modo de operação corrente. Por exemplo, fazer referência ao registro R14 subtende-se que será o R14 do modo de execução corrente.
    • Um outro registrador importante é o CPSR (Current Processor Status Register) que carrega informações sobre o estado corrente do processador, inclusive o modo de execução atual.
  • 44. Modos de execução Tabela xx – Registradores em cada modo de endereçamento
  • 45. Saved Processor Status Register - SPSR
    • Nos modos de exceção existe um registro denominado SPSR (Saved Processor Status Register) que carrega o estado do processador antes do sistema entrar em interrupção. Existe uma versão deste registro pra cada modo de exceção.
    Stack Pointer - SP
    • O stack pointer, também conhecido com registrador R13, é um registrador que aponta para o topo de uma pilha.
    • Devido existir versões diferentes do SP para cada modo de exceção, existe uma pilha dedicada para cada modo de exceção.
    • Geralmente a pilha é utilizada para salvar o contexto e liberar os registradores para que sejam utilizados na execução de uma função ou sub-rotina. Antes da sub-rotina acabar ela recupera os dados armazenados anteriormente na pilha.
  • 46. Link Register - LR
    • O link register, também conhecido com registrador R14, é um registrador que armazena o endereço de retorno de uma sub-rotina.
    • Quando uma sub-rotina é chamada, o próximo endereço, a partir do endereço corrente, é armazenado no LR.
    • Para retornar de uma sub-rotina o LR deve ser copiado para o PC. Isto pode ser feito diretamente através das instruções MOV ou BAL.
    • A instrução BAL é uma instrução que realiza desvio incondicional do fluxo de execução.
    • MOV PC,LR
    • BAL LR
  • 47. Current Processor Status Registers - CPSR
    • Este registrador inclui diversas flags condicionais, status de interrupção, o modo do processador e outras informações de status e controle.
    • O registrador SPSR possui o mesmo formato do registrador CPSR.
    • O status do processador é dividido em duas partes distintas: as flags de usuário e flag de controle de sistema. A metade mais alta é a parte acessível ao usuário e podem ser utilizadas para afetar a operação de um programa. A metade mais baixa é destinada as flags de controle de sistema.
    Figura xx – Palavra de status do processador SBZ – Bits reservados par uso futuro. I – Indica se interrupções são permitidas. F – Indica se interrupções rápidas são permitidas.
  • 48. Flags
  • 49. Conjuntos de Instruções
    • Basicamente o processador ARM7TDMI-S possui dois conjuntos de instruções: As instruções padrões de 32 bits e instruções que são armazenadas na memória com 16 bits denominado Thumb. Estas últimas instruções são denominadas Thumb e são expandidas para 32 bits quando trazidas para o processado.
    • As instruções basicamente são divididas em seis grandes classes:
      • Aritméticas;
      • Acesso à memória
      • Movimentação de dados
      • Lógicas e de manipulação de bits
      • Controle de fluxo
      • Privilegiadas.
  • 50. Exemplos de Instruções
  • 51.
    • Interface JTAG e suporte a debug
  • 52. JTAG - IEEE 1149.1
    • Acrônimo para Joint Test Action Group .
    • Grupo formado pela industria em 1985 para desenvolver um método para testar placas de circuito impresso após sua manufatura .
    • Hoje em dia é primariamente usado para acessar sub-blocos de circuitos integrados e também útil como um mecanismo de debug em embedded systems.
    • Quando utilizado como ferramenta de debug possibilita o programador acessar um bloco de debug interno a CPU, via uma interface JTAG.
    • O padrão IEEE 1149.1 define um protocolo serial de 5 pinos para acessar e controlar os níveis dos sinais nos pinos de um circuito digital, e algumas extensões para testar a blocos internos ao próprio circuito integrado.
  • 53. JTAG - IEEE 1149.1
    • Os testes de fronteira realizados via JTAG podem capturar dados em células de fronteira . Quando o microcontrolador opera no modo padrão estas células estão inativas e permitem que os dados sejam propagados através do dispositivo.
    • A operação destas células de teste são controlados através de um controlador TAP (Test Access Port) e um registro de instruções. O controlador TAP é uma máquina de estados que possui 16 estados . A operação do TAP é realizada através das linha definas pelo protocolo serial JTAG.
    • A configuração é realizada pela manipulação da máquina de estado um bit por vez através do pino TMS.
    • A cada pulso de clock TCK dados são inseridos e retirados do dispositivo através dos pinos TDI e TDO respectivamente.
  • 54. JTAG - IEEE 1149.1
  • 55. EmbeddedICE
    • EmbeddedICE é um bloco interno ao processador AMR7TDMI-S que fornece suporte a debug . Para re alizar o debug, deve-se ter um computador com um software de debug e um conversor de protocolo.
    • Um conversor converte comandos de debug remotos para dados JTAG necessários para acessar o núcleo do ARM7TDMI-S.
  • 56. EmbeddedICE – Características
    • Nenhum recurso é requisitado à plataforma alvo pelo software de debug com o objetivo de iniciar uma seção de debug.
    • Permite o software de debug se comunicar, via JTAG, diretamente com o núcleo do processador ARM7TDMI-S.
    • Possibilita a inserção de instruções diretamente no núcleo do processador ARM7TDMI-S.
    • A situação do núcleo ou estado do sistema pode ser examinado, salvo ou alterado dependendo do tipo de instruções que forem inseridas.
    • Permite que as instruções possam ser executadas de forma lenta para fins de debug ou na velocidade real do sistema.
  • 57. EmbeddedICE – Watch Point e Break Points
    • O EmbeddedICE permite inserir watchpoints e breakpoints no núcleo do processador ARM7TDMI-S. EmbeddedICE consiste de dois registradores de tempo real para watchpoint, juntamente com um registrador de controle e um registrador de status.
    • Um ou ambos dos registradores de watchpoint podem ser programados para travar o núcleo do processador ARM7TDMI-S . A execução é travada quando um casamento ocorre entre os valores programados no EmbeddedICE e os valores correntemente aparecendo no barramento de endereço, barramento de dados e alguns outros sinais de controle.
    • Cada registrador de watchpoint pode ser configurado como um watchpoint (no momento do acesso ao dado) ou um breakpoint (no momento da busca da instrução).
  • 58. Aplicações
    • iPod da Apple
    • Nintendo Ds e Game Boy Advance da Nintendo
    • Maioria dos celulares Nokia
    • Lego Mindstorms NXT;
    • Processamento de áudio no SEGA Dreamcast;