arquitetura de arquitetura de sistemas embarcados
play

Arquitetura de Arquitetura de Sistemas Embarcados Sistemas - PowerPoint PPT Presentation

Arquitetura de Arquitetura de Sistemas Embarcados Sistemas Embarcados


  1. Arquitetura de Arquitetura de Sistemas Embarcados Sistemas Embarcados ����������� ������������������ ����������������������� ����

  2. Overview Overview • Processadores de propósito único – Customizados – Padronizados • Processadores de periféricos – Temporizadores – Contadores – UART – PWM – LCD – Teclado – …. ����������� ���������������������� �

  3. Introdução Introdução • Processadores de propósito único – Realizam computação específica – Processadores customizados • Projetados para uma unica tarefa – ������������� ������������ ����� ������������ • “Off-the-shelf” -- • Exemplos: – Periféricos – Transmiss ão serial – Conversão analógico-digital ����������� ���������������������� �

  4. Temporizadores, , contadores contadores, , Temporizadores watchdog timers watchdog timers • Temporizadores: mede intervalos de tempo – Gera ção de saída para eventos temporais • Ex: sinal verde deve permanecer por 10 seg. – Para medi ção de eventos em entradas • Ex: medida de velocidade de automóvel ����������� ���������������������� �

  5. Temporizadores, , contadores contadores, , Temporizadores watchdog timers watchdog timers • Baseado na contagem de pulsos de clock • Considere periodo do clock = 10ns • Se contamos 20.000 pulsos de relógio • Então se passaram 200 microsegundos • Um contador de 16-bits deveria contar até 65,535*10 ns = 655.35 microseg., resolução = 10 ns ����������� 16-bit up Cnt 16 Clk counter Top Reset ����������� ���������������������� �

  6. Contadores Contadores • Contador: semelhante a um temporizador porém conta pulsos de uma entrada genérica (em vez do timer) – Ex: contagem de carros passando por um sensor – Dispositivo pode ser configurado ������������� como temporizador ou contador Clk 2x1 16-bit up Cnt 16 mux counter Cnt_in Top Reset Mode ����������� ���������������������� �

  7. Outras estruturas estruturas temporizadoras temporizadoras Outras • Temporizadores de ���������������������� Intervalos ����� – Indica quando um 16-bit up counter Clk Cnt 16 intervalo de tempo ocorreu Reset – Setando o Intervalo = desejado Top • ����������������� ����������� Terminal count ������������������ ��������� �������� ����������� ���������������������� �

  8. Outras estruturas estruturas temporizadoras temporizadoras Outras ��������������� 16-bit up Clk Cnt1 counter 16 • Contadores em Top1 cascata 16-bit up Cnt2 16 counter • Prescaler Top2 – Divisão do clock ������������������� Prescaler 16-bit up Clk – Aumenta o range, counter diminui a resolução Mode ����������� ���������������������� �

  9. Exemplo: : Temporizador Temporizador de de Reação Reação Exemplo reaction indicator /* main.c */ button light #define MS_INIT 63535 LCD time: 100 ms void main(void){ int count_milliseconds = 0; • Medindo o tempo entre acendimento da configure timer mode set Cnt to MS_INIT lampada e o usuário apertar o botão wait a random amount of time turn on indicator light – Temporizador de 16-bits, período do clk start timer de 83.33 ns, contador incrementa a while (user has not pushed reaction button){ cada 6 ciclos if(Top) { stop timer – Resolu ção = 6*83.33=0.5 microseg. set Cnt to MS_INIT start timer reset Top – Range = 65535*0.5 microseg = 32.77 count_milliseconds++; mileseg. } } turn light off – Para contar milesegundos contador printf(“time: %i ms“, count_milliseconds); deve ser inicializado com 65535 – } 1000/0.5 = 63535 ����������� ���������������������� �

  10. Watchdog timer Watchdog timer • Deve resetar o osc clk overflow overflow to system temporizador a prescaler scalereg timereg reset cada X unidades or interrupt checkreg de tempo, caso contrário o /* main.c */ watchdog_reset_routine(){ /* checkreg is set so we can load value into temporizador main(){ timereg. Zero is loaded into scalereg and wait until card inserted 11070 is loaded into timereg */ gera um sinal call watchdog_reset_routine checkreg = 1 while(transaction in progress){ scalereg = 0 • Uso comum: if(button pressed){ timereg = 11070 perform corresponding action } call watchdog_reset_routine detec ção de } void interrupt_service_routine(){ eject card falha , self-reset /* if watchdog_reset_routine not called every reset screen < 2 minutes, interrupt_service_routine is } called */ } ����������� ���������������������� ��

  11. Watchdog timer Watchdog timer • Outro uso: osc clk overflow overflow to system reset timeouts prescaler scalereg timereg or interrupt – Ex:, máquina checkreg ATM – 16-bit timer, 2 /* main.c */ watchdog_reset_routine(){ /* checkreg is set so we can load value into microsec. main(){ timereg. Zero is loaded into scalereg and wait until card inserted 11070 is loaded into timereg */ resolution call watchdog_reset_routine checkreg = 1 – ������� value = while(transaction in progress){ scalereg = 0 if(button pressed){ timereg = 11070 2*(2 16 -1)–X = perform corresponding action } call watchdog_reset_routine 131070–X } void interrupt_service_routine(){ eject card – For 2 min., X = /* if watchdog_reset_routine not called every reset screen 120,000 microsec. < 2 minutes, interrupt_service_routine is } called */ } ����������� ���������������������� ��

  12. Transmissão Serial Serial Usando Usando UARTs UARTs Transmiss ão • UART: Universal Asynchronous Receiver embedded device Transmitter 0 1 1 1 0 1 1 0 – Transmite dado serialmente 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 – Recebe dado serialmente e converte para paralelo Sending UART Receiving UART start bit end bit • Parity: bit extra para data detec ção de erros • Bits de Start e de stop • Baud rate – Mudan ças de sinal por 1 0 0 1 1 0 1 1 segundo – Bit rate é usada frequentemente ����������� ���������������������� ��

  13. Pulse width modulator - - PWM PWM Pulse width modulator • Gera pulsos com pwm_o tempo de high/low clk especificado 25% duty cycle – average pwm_o is 1.25V • Duty cycle: % do pwm_o tempo em nível alto clk – Onda quadrada: 50% duty cycle – average pwm_o is 2.5V. 50% duty cycle pwm_o clk 75% duty cycle – average pwm_o is 3.75V. ����������� ���������������������� ��

  14. Pulse width modulator - - PWM PWM Pulse width modulator • Uso comum: controle de tensão para pwm_o equipamento elétrico clk – Mais simples que 25% duty cycle – average pwm_o is 1.25V conversor DC-DC ou conversor digital- pwm_o anlógico clk – Velocidade de motor, lampadas com controle 50% duty cycle – average pwm_o is 2.5V. de luminosidade pwm_o • Outro uso: codifica ção de comandos, recebe clk temporização do usuário 75% duty cycle – average pwm_o is 3.75V. para decodificar ����������� ���������������������� ��

  15. Controlando um motor DC motor um motor DC motor Controlando com um PWM com um PWM % of Maximum Input Voltage RPM of DC Motor clk_div counter clk Voltage Applied ( 0 – 254) controls how 0 0 0 fast the counter 2.5 50 1840 8-bit counter < increments pwm_o comparator cycle_high, 3.75 75 6900 pwm_o = 1 counter >= 5.0 100 9200 cycle_high, cycle_high pwm_o = 0 Relationship between applied voltage and speed of the DC Motor Internal Structure of PWM void main(void){ The PWM alone cannot drive the 5V DC motor, a possible way to /* controls period */ implement a driver is shown PWMP = 0xff; below using an MJE3055T NPN /* controls duty cycle */ transistor. PWM1 = 0x7f; 5V DC From processor MOTOR while(1){}; } A B ����������� ���������������������� ��

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend