arm

58
Equipe: João Gabriel Daniel Bruno Edvaldo Júnior Davyd Bandeira

Upload: lius-fontenelle-carneiro

Post on 16-Nov-2014

9.385 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: ARM

Equipe:•João Gabriel•Daniel Bruno•Edvaldo Júnior•Davyd Bandeira

Page 2: ARM

•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.

Page 3: ARM

HISTÓRICOOut/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.

Page 4: ARM

HISTÓRICONov/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.

Page 5: ARM

•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.

Page 6: ARM

•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;

Page 7: ARM

Diagramade Blocos

Page 8: ARM

Pinagem

Page 9: ARM

Mapa de Memória

Page 10: ARM

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.

Page 11: ARM

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.

Page 12: ARM

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.

Page 13: ARM

Características Paralell e Fast I/O

Controle de direção individual dos bits,.

Todas os I/O viram input no reset.

Page 14: ARM

Você pode fazer a comunicação com o ARM

da seguinte maneira...

Page 15: ARM

UARTConté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

Page 16: ARM

I2C

Page 17: ARM

I2CFá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).

Page 18: ARM
Page 19: ARM

SSPControlador 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.

Page 20: ARM

SPI

Protocolo de comunicação síncrono full dulpex.Composto por quatro sinal (MOSI, MISO, SCLK, SS).É mais rápido que o protocolo I2C por ser mais

simples e de fácil programação.Máxima taxa de bits de dados é 1/8 da taxa de clock.

Page 21: ARM

SPI

A comunicação de um mestre com diversos escravos requer do microcontrolador ou

microprocessador um número grande de pinos de seleção.

Page 22: ARM
Page 23: ARM

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.

Page 24: ARM

Tabela de registrosNome 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.

Page 25: ARM

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

Page 26: ARM

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;

Page 27: ARM

Phase Locked Loop (PLL)

Page 28: ARM

Phase Locked Loop (PLL)

Page 29: ARM

Phase Locked Loop (PLL) PLLCON

• PLLCFG

Page 30: ARM

Phase Locked Loop (PLL) PLLSTATUS

• PLLCFG

Page 31: ARM

Phase Locked Loop (PLL) PLLFEED

• Validando o PLL– Comandos: Escrita de 0xAA;

Escrita de 0x55;

Page 32: ARM

Phase Locked Loop (PLL) Modos PLL

Page 33: ARM

Conversor A/D2 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).

Page 34: ARM

Conversor A/D

Page 35: ARM

Conversor D/A 10 bit digital to analog converte Resistor string architecture Buffered output Power-down mode Selectable speed vs. power

Page 36: ARM

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.

Page 37: ARM

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)

Page 38: ARM

Watch Dog Timer (WDT) Reset interno quando não recarregado periodicamente; Modo Debug; Habilitado por software e desabilitado pelo 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

Page 39: ARM

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/interrupt

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)

Page 40: ARM

Arquitetura e modelo de programação

Page 41: ARM

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.

Page 42: ARM

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.

Page 43: ARM

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.

Page 44: ARM

Modos de execução

Tabela xx – Registradores em cada modo de endereçamento

Page 45: ARM

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.

Page 46: ARM

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

Page 47: ARM

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.

Page 48: ARM

Flags

Page 49: ARM

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.

Page 50: ARM

Exemplos de Instruções

Page 51: ARM

Interface JTAG e suporte a debug

Page 52: ARM

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.

Page 53: ARM

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.

Page 54: ARM

JTAG - IEEE 1149.1

Page 55: ARM

EmbeddedICE EmbeddedICE é um bloco interno ao processador AMR7TDMI-S que fornece

suporte a debug. Para realizar 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.

Page 56: ARM

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.

Page 57: ARM

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).

Page 58: ARM

Aplicações iPod da AppleNintendo Ds e Game Boy Advance da NintendoMaioria dos celulares NokiaLego Mindstorms NXT;Processamento de áudio no SEGA Dreamcast;