You are on page 1of 84

Sistemas Embarcados

Fbio de Sousa Cardoso

Agenda

Reviso Histrica - Apostila Generalidades - Apostila Sistemas Embarcados Introduo a Microcontroladores Arquitetura bsica de Microcontroladores Arquitetura do Microcontrolador MSP430 Simuladores Exerccio Prtico

Sistemas Embarcados

Reviso Histrica Generalidades

HARDWARE PC

Sistemas Embarcados

Definio Tipos

Processadores Microprocessadores Microcontroladores DSPs PLDS FPGAs CLP

Caractersticas
4

Introduo a Microcontroladores

Tudo comeou com a necessidade de usar CPUs mais simples para implementar tarefas dedicadas. Contudo, qualquer controle implicar em:

CPU controle ROM programa de controle RAM pilha e dados Porta Paralela perifricos e I/O Porta Serial comunicao A/D e D/A sinais analgicos Timers temporizao
5

Introduo a Microcontroladores

Surge a necessidade de CPUs dedicadas, menos rpidas, sem instrues complexas, compactas, etc.... Microcontroladores, que so simples, baratos e eficientes.
6

Introduo a Microcontroladores

Os microcontroladores apresentam recursos incorporados dentro de um nico integrado.

Introduo a Microcontroladores

Microcontrolador = microcomputador de um nico chip ao qual so adicionados elementos para uso industrial perifricos especializados para aplicaes de automao e controle memria RAM e ROM internas

Introduo a Microcontroladores

Usa-se o nome de Microcontrolador para designar dispositivos de uso genrico; Existem vrios microcontroladores que tm aplicaes especficas:

Controlador de teclado 80C51SL-BG ; Controlador de comunicaes universal 82C152. INTEL 8048, 8049, 8051, 8052, 8096. ZILOG Z8. MOTOROLA 6801, 6804, 6805, 68HC11. NATIONAL COP400, COP800, NS8050.
9

Fabricantes conhecidos so:


Introduo a Microcontroladores
Vrias combinaes de perifricos so oferecidas caracterizando o que se conhece por famlia de um microcontrolador Perifricos comumente encontrados:
portas de entrada/sada bits, vetores de bits contadores/temporizadores interfaces seriais unidades PWM temporizadores do tipo watchdog conversores A/D unidades detectoras e geradoras de eventos

10

Introduo a Microcontroladores
Microcontroladores podem ser caracterizados como:
genricos especficos
controle de um display de cristal lquido controle de vdeo controle de barramento

A escolha de um microcontrolador baseada na aplicao e no custo Microcontrolador escolhido deve requerer o menor nmero de perifricos externos possvel e o menor esforo de programao
11

Introduo a Microcontroladores
Em resumo: Um controlador usado para controlar processos ou ambientes. Monitorar e controlar (janelas, temperatura, ar condicionado). Aplicaes: Equipamentos eletrnicos Automveis e Controle, Instrumentao, Aeroespacial, Robtica, Integrados em processadores Dependendo da aplicao pode-se escolher microcontr. de 8 bit, 16 bit ou 32 bit.
12

Introduo a Microcontroladores

13

Arquitetura Bsica de Microcontroladores

14

Arquitetura Bsica de Microcontroladores


Dados

Processador

Endereos

Memria

Controle

Escrita A D /W R /R D
Endereo

Leitura
Endereo

Dado

Dado

15

Arquitetura Bsica de Microcontroladores

16

Arquitetura Bsica de Microcontroladores

Microcontrolador 8051
17

Arquitetura Bsica de Microcontroladores

18

Arquitetura Bsica de Microcontroladores

19

Arquitetura Bsica de Microcontroladores

20

Arquitetura Bsica de Microcontroladores

21

Arquitetura Bsica de Microcontroladores

22

Arquitetura Bsica de Microcontroladores

23

Arquitetura Bsica de Microcontroladores

24

Arquitetura Bsica de Microcontroladores

25

Arquitetura Bsica de Microcontroladores

26

Arquitetura Bsica de Microcontroladores

27

Arquitetura Bsica de Microcontroladores

28

Arquitetura Bsica de Microcontroladores

29

Arquitetura Bsica de Microcontroladores

30

Arquitetura Bsica de Microcontroladores


Muitas aplicaes de controle precisam de programas pequenos e operam sobre pequenos volumes de dados memrias RAM e ROM internas Tipos de Memrias utilizadas RAM - memria voltil ROM - memria no-voltil, pode ser gravada apenas uma vez EPROM - memria no-voltil, gravada eletricamente e apagada expondo uma janela luz ultravioleta por alguns minutos EEPROM/FLASH - memria no voltil, pode ser gravada e apagada eletricamente para o apagamento e gravao necessria a utilizao de tenses especiais, diferentes das normalmente utilizadas para a leitura.
31

Arquitetura Bsica de Microcontroladores


Memria EEPROM: pode-se realizar o
apagamento seletivo de apenas um byte Memria FLASH: s pode ser apagada em blocos
o tamanho de cada bloco varia de acordo com o modelo e/ou fabricante

O preo da produo da memria EEPROM um pouco mais elevado do que a mem ria FLASH Portanto a memria FLASH uma alternativa mais econmica.
32

Arquitetura Bsica de Microcontroladores


Mapa de memria
Processador
A0 A0

Memria 64 k-end
...
A15 A16 A17 A18 A19 rd/wr/ data

Incio

Fim

Memria Ok Invlido Eco Invlido Eco


33

1 mega-end.

A15 /CS

rd/wr/ data

...

00000 0FFFF 10000 1FFFF 20000 2FFFF 30000 3FFFF 40000 4FFFF

Arquitetura Bsica de Microcontroladores


As portas de entrada e sa da so utilizadas para interface com o processo fsico sendo controlado
pode-se utilizar o microcontrolador de forma a acionar chaves, ler sensores de luminosidade, etc.

Sinais de interface operam com nveis de tenso padronizados


portas que operam sobre dois nveis 0 e 1 (desligado e ligado) portas que operam sobre valores de 8 (ou 16) bits

Deve-se adaptar estes sinais a outros nveis de tenso e a outras grandezas (temperaturas, velocidades, etc.) com a utilizao de transdutores e de conversores A/D e D/A.
34

Arquitetura Bsica de Microcontroladores

35

Arquitetura Bsica de Microcontroladores

Conv. DA

36

Arquitetura Bsica de Microcontroladores

Von Newman Dados e instrues no mesmo barramento Simples e prtico Arquitetura Harward - 8051 Barramentos separados para instrues e dados Permite operaes simultneas nos barramentos
Dados Endereos

Memria Programa

Controle

Processador
Dados

Endereo

Memria Dados

Controle

37

Arquitetura Bsica de Microcontroladores

38

Arquitetura Bsica de Microcontroladores


Instrues de Desvio, Aritmtica, Lgicas, Booleanas e de transferncia de dados Modos de endereamento Circuito de Reset Clock - Cristal Registradores (Reg. Status flags), Pilha Projeto do Hardware - Fonte - EMI BOM Busca e compras de materiais - componentes Esquemtico Layout Problemas de encapsulamentos Montagem - Projeto Mecnico Debugar a placa .................Software - codigo 39

Arquitetura Bsica de Microcontroladores


Modos de Endereamento ver Apostila Tipos de Instrues ver Apostila Conjunto de Instrues ver Apostila Exemplos de cdigos Assembler para o 8051 ver Apostila

40

Arquitetura do Microcontrolador MSP430

41

Arquitetura do Microcontrolador MSP430


MSP430 incorpora CPU 16 bits Sistema de clock flexvel Arquitetura Von-Neuman Arquitetura de baixo consumo de bateria 27 Instrues e 7 modos de endereamento Extensivo vetor de interrupes Flash programvel In-system Etc...

42

Arquitetura do Microcontrolador MSP430

43

Arquitetura do Microcontrolador MSP430

44

Arquitetura do Microcontrolador MSP430


MSP430 incorpora CPU 16 bits Sistema de clock flexvel desenvolvido para aplicaes a bateria.

ACLK um low frequency auxiliary clock usado para o modo stand-by DCO (high-speed digitally controlled oscillator) pode gerar o master clock (MCLK) usado para processamento em alta performance

Arquitetura Von-Neuman Arquitetura de baixo consumo de bateria 27 Instrues e 7 modos de endereamento Extensivo vetor de interrupes Flash programvel In-system

45

Arquitetura do Microcontrolador MSP430


Registradores Formato das Instrues e modos de endereamento

46

Arquitetura do Microcontrolador MSP430

Modos de operao

47

Arquitetura do Microcontrolador MSP430

48

Endereamento
Arquitetura Von Newman Endereamento de 64KB Endereo final da flash 0FFFFh End. Inicial da RAM 0200h 16 bytes para os SFRs
Vetor de interrupes Memria de Programa - Pode ser usada para cdigo e dados Memria de Dados Acesso aos Perifricos usando instrues tipo word ou byte Registrados de Funes Especiais
49

Reset do Sistema e Inicializao


O reset tratado como uma interrupo no mascarvel O circuito interno de reset gera:

POR power-on reset reset na energizao do chip;


Gerado na energizao do chip 0 no pino RST (quando ele ativado na funo reset) Quando o SVS (mod. superv. aliment.) detecta queda de alimentao

PUC power-up clear confirmao de alimentao estvel (sinal secundrio de reset);


POR ativo Estouro do Watchdog quando configurado no modo reset Violao de acesso ao registr. de contr. do watchdog Violao de acesso ao registr. de contr. da flash Busca de instrues em rea de registradores
50

Reset do Sistema e Inicializao

Efeitos do Reset - Inicializao


Pino RST configurado para modo reset Portas configuradas modo de entrada digital Registrados SR (status) apagado Watchdog ativado no modo reset O contador de programa carregado com o contedo do vetor de reset 0xFFFE No h ajuste do SP (apontador do topo da pilha) Inicializar o SP para o topo da RAM Inicializar o watchdog para os requisitos da aplicao Configurar os perifricos para os requisitos da aplicao
51

O software deve em seguida:


Sistema de Interrupes

Categorias de Interrupes Mascarveis bit GIE=1 para serem reconhecidas pelo controlador de interrupo No Mascarveis no podem ser desativas pelo bit GIE do SR Reset no mascarvel de mxima prioridade Apesar dos 16 vetores de interrupo:

Vrios mdulos possuem flags que especificam o evento originador. A RTI deve providenciar a verificao de cada flag de forma a identificar o evento causador da interrupo H perifricos que possuem um registrador cujo contedo especifica qual das fontes de interrupes internas ao perifrico foi causadora da interrupo. Registradores de habilitao de interrupo IEx Registradores sinalizadores IFGx 52 Os flags esto distribudos nos registradores de controle dos perifricos

Registradores de Controle de Interrupes


Sistema de Interrupes

53

Sistema de Interrupes

Interrupo consiste em um evento que provoca um desvio, de forma que a CPU passa a executar um subprograma RTI (Rotina de Tratamento de Interrupo) ou ISR (Interrupt Servicing Routine) No MSP430 a latncia de interrupo fixa (seis ciclos de clock) Procedimento de interrupo no MSP430

A instruo em execuo completada O contedo do PC e do SR so salvos na pilha Tratamento das prioridades O flag de interrupo apagado (nem sempre) SR apagado (no todo) chip sai do modo de baixo consumo. GIE apagado impedindo novas interrupes mascarveis O vetor da interrupo carregado no PC provocando desvio 54 para RTI

Sistema de Interrupes

55

Sistema de Interrupes

56

Sistema de Interrupes

57

Sistema de Interrupes
Para tratamento de interrupes, utiliza-se a diretiva #pragma vector= que informa ao compilador que a funo seguinte tem o seu endereo de entrada na tabela de vetores de interrupo (posio indicada aps o sinal =). A palavra _interrupt informa ao compilador que a funo definida de tratamento de interrupo Para habilitar as interrupes pode-se utilizar as funes do arquivo intrinsics.h _bis_SR_register(GIE); _enable_interrupt(); _bic_SR_register(GIE); _disable_interrupt(); 58

Sistema de Interrupes
#include <msp430x41x.h> #include <stdio.h> int ticks = 0; void main (void) { //Timer setup code WDTCTL = WDTPW + WDTHOLD; //Stop WDT IE2 |= BTIE; //Enable BT interrupt BTCTL = BTSSEL+BTIP2+BTIP1+BTIP0; _EINT(); //Enable interrupts while (ticks < 100) printf("Done\n"); } // Timer interrupt service routine #pragma vector = BASICTIMER_VECTOR __interrupt void basic_timer(void) { ticks += 1; printf("Interrupt\n"); }

59

Sistema de Interrupes
#include <msp430x41x.h> #include <stdio.h> int ticks = 0; void main (void) { //Timer setup code WDTCTL = WDTPW + WDTHOLD; //Stop WDT IE2 |= BTIE; //Enable BT interrupt BTCTL = BTSSEL+BTIP2+BTIP1+BTIP0; _EINT(); //Enable interrupts while (ticks < 100) printf("Done\n"); } // Timer interrupt service routine #pragma vector = BASICTIMER_VECTOR __interrupt void basic_timer(void) { ticks += 1; printf("Interrupt\n"); }

60

Mdulo Oscilador
Mdulo bsico de clock (BCS) composto por osciladores capazes de funcionar como cristal e um oscilador interno controlado digitalmente (DCO). O BCS pode ser configurado para operar sem componentes externos, com um resistor externo, com um ou dois cristais externos ou com circuitos ressonantes. Os sinais provenientes desses osciladores podem ser selecionados para gerar trs sinais de clock: MCLK (Master clock) utilizado para sincronizar a CPU ACLK (auxiliar clock) fonte de clock de preciso para perifricos durante modos de baixo consumo SMCLK (sub-main clock) fonte de clock alternativo para 61 diversos perifricos

Mdulo Oscilador

62

Mdulo Oscilador

63

Mdulo Oscilador

64

Mdulo Oscilador

65

Mdulo Oscilador
void init_All(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P3SEL |= 0x30; // P3.4,5 = USART0 TXD/ RXD BCSCTL1 |= XTS; // ACLK= LFXT1= HF XTAL do { IFG1 &= ~OFIFG; for (i=0xFF; i>0; i--); } while ((IFG1 & OFIFG)); BCSCTL2 |= SELM_3; ME1 |= UTXE0 + URXE0; UCTL0 |= CHAR; UTCTL0 |= SSEL0; UBR00 = 0x45; UBR10 = 0x00; UMCTL0 = 0x00; UCTL0 &= ~SWRST; IE1 |= URXIE0 + UTXIE0; IFG1 &= ~UTXIFG0;

// Clear OSCFault flag // Time for flag to set // OSCFault flag still set? // MCLK = LFXT1 (safe) // Enable USART0 TXD/RXD // 8 -bit character // UCLK= ACLK // 8MHz 115200 // 8MHz 115200 // 8MHz 115200 modulation // Initialize USART state machine // Enable USART0 RX/TX interrupt // Clear inital flag on POR

66

Portas de E/S
PxOUT Escrita nas portas PxIN Leitura das portas PxDIR Configurao da direo individual dos pinos da porta (1-sada e 0-entrada) PxSEL Funo dos pinos (0-normal e 1alternativa) PxIFG Sinaliz. Mudana de estado nos pinos da porta PxIES Controle da borda de sensibilidade da interrupo da porta PxIE Habilitao das Interrupes das portas

67

Portas de E/S
Exerccio 1. Verifiquem as conexes fsicas da placa 2. Como esta a configurao do hardware com relao as portas 3. Identifique o que pode ser feito visto o hardware j implementado 4. Controle os leds a partir das teclas 5. Compile 6. Simule 7. Rode na placa
68

Timer A

69

Timer A
TACTL Contador Modos de Operao Temporizao

Captura p. Temporizao

Comparao p. gerao de sinais


70

Timer A

MCx=01 Contagem progressiva a cada pulso de clock at atingir o valor programado no TACCR0 (mdulo de contagem) EQU0 pe ativado reiniciando TAR=0 TAIFG setado com interrupo habilitada ocorre o desvio.

71

Timer A

72

Timer A

73

Timer A

74

Timer A

75

Timer A

76

Timer A

77

Timer A

78

Timer A

79

Timer A
#include <msp430x14x.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= 0x01; // P1.0 output CCTL0 = CCIE; // CCR0 interrupt enabled CCR0 = 50000; TACTL = TASSEL_2 + MC_2; // SMCLK, contmode _BIS_SR(LPM0_bits + GIE); } // Timer A0 interrupt service routine #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) { P1OUT ^= 0x01; // Toggle P1.0 CCR0 += 50000; // Add Offset to CCR0 } // Enter LPM0 w/ interrupt

80

Timer A
#include <msp430x14x.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= 0x01; // P1.0 output CCTL1 = CCIE; // CCR1 interrupt enabled CCR1 = 50000; TACTL = TASSEL_2 + MC_2; // SMCLK, Contmode _BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt } // Timer_A3 Interrupt Vector (TAIV) handler #pragma vector=TIMERA1_VECTOR __interrupt void Timer_A(void) { switch( TAIV ) { case 2: // CCR1 { P1OUT ^= 0x01; // Toggle P1.0 CCR1 += 50000; // Add Offset to CCR1 } break; case 4: break; // CCR2 not used case 10: break; // overflow not used } }

81

Timer A
//******************************************************************************* // MSP-FET430P140 Demo - Timer_a PW M TA1-2 upmode, DCO SMCLK // Description; This program will generate a two PW M outputs on P1.2/1.3 using // Timer_A in an upmode. The value in CCR0, defines the period and the // values in CCR1 and CCR2 the duty PW M cycles. Using ~ 800kHz SMCLK as TACLK, // the timer period is ~ 640us with a 75% duty cycle on P1.2 and 25% on P1.3. // ACLK = na, SMCLK = MCLK = TACLK = default DCO ~ 800kHz. //****************************************************************************** #include <msp430x14x.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= 0x0C; // P1.2 and P1.3 output P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 otions CCR0 = 512-1; // PW M Period CCTL1 = OUTMOD_7; // CCR1 reset/set CCR1 = 384; // CCR1 PW M duty cycle CCTL2 = OUTMOD_7; // CCR2 reset/set CCR2 = 128; // CCR2 PW M duty cycle TACTL = TASSEL_2 + MC_1; // SMCLK, up mode _BIS_SR(LPM0_bits); } // Enter LPM0
82

Arquitetura do Microcontrolador MSP430


ADC12, ADC10, DAC12 USART (SPI, I2C, ...) Flash Memory controller; Supply Voltage Supervisor; Hardware Multiplier; DMA controller; Watchdog Timer Comparator
83

Arquitetura do Microcontrolador MSP430


- no diretrio slac015b -> diversos exemplos, realmente teis; - no diretrio RS232 -> um exemplo para RS232 e rotinas de baixo n vel para o LCD; - FET_R445.exe -> ambiente de desenvolvimento mais atual; - LCD.pdf -> data sheet do LCD; - msp430f149.pdf -> data sheet do MSP430F149; - slau049e.pdf -> user's guide do MSP430F149.
84

You might also like