• Nenhum resultado encontrado

5.1 CONTROLE PRINCIPAL

5.1.1 O Microcontrolador PIC16F84

O PIC16F84 pertence a uma classe de microcontroladores de 8 bits, com uma arquitetura RISC. O PIC16F84 é perfeitamente adequado para muitas aplicações, como a indústria automobilística, sensores remotos, fechaduras elétricas e dispositivos de segurança. É também um dispositivo ideal para cartões inteligentes, bem como para dispositivos alimentados por baterias, por conta do seu baixo consumo. A Figura 100 nos mostra os seus blocos básicos.

Figura 100 - Esquema do microcontrolador PIC16F84.

Segundo Souza (2002), podemos definir resumidamente o microcontrolador como um “pequeno” componente eletrônico, dotado de uma “inteligência” programável, utilizado no controle de processos lógicos.

O controle de processos lógicos citado acima deve ser entendido no caso do nosso kit de robótica Tesla, como o controle dos periféricos: motores, LED’s, autofalante e de todos os sensores.

O PIC é programável, pois toda a lógica de operação é estruturada na forma de um programa e é gravada no interior do componente.

Quanto à “inteligência” do componente, podemos associá-la à Unidade Lógica e Aritmética (ULA), pois é nessa unidade que todas as operações lógicas e aritméticas são executadas.

Quanto ao tamanho, é usado o adjetivo “pequeno”; devido ao fato de que em uma única pastilha de silício encapsulada (denominada CI ou CHIP), temos todos os componentes necessários para o controle de um processo. Dessa forma, o microcontrolador é equipado internamente com: memória de programa, memória de dados, portas de entrada e/ou saída, temporizadores, contadores, comunicação serial, PWM26, conversores analógico-digitais, etc. Essa é uma das principais características que diferencia os microcontroladores dos microprocessadores.

Segundo Cetinkunt (2008), os microprocessadores possuem uma ULA (Unidade Lógica e Aritmética) muito mais poderosa, mas não possuem todos os recursos de um microcontrolador em uma única pastilha.

Os microcontroladores PIC apresentam uma estrutura interna do tipo Harvard (Figura 101), enquanto que boa parte dos microcontroladores tradicionais apresenta uma arquitetura do tipo Von-Neumann (Figura 102).

Figura 101 - Arquitetura Harvard.

Figura 102 - Arquitetura Von-Neumann.

A diferença entre essas duas arquiteturas está na forma como os dados e o programa são processados pelo microcontrolador. Na arquitetura Von-Neumann, existe apenas um barramento interno, que é de geralmente 8 bits, por onde passam as instruções e os dados. Já na arquitetura Harvard, existem dois barramentos

26

A Modulação por largura de pulso (MLP), mais conhecida pela sigla em inglês "PWM" (Pulse-Width Modulation), de um sinal ou em fontes de alimentação envolve a modulação de sua razão cíclica (duty cycle) para transportar qualquer informação sobre um canal de comunicação ou controlar o valor da alimentação entregue a carga.

internos, sendo um de dados e outro de instruções. No caso dos microcontroladores PIC, o barramento de dados é sempre de 8 bits e o de instruções pode ser de 12, 14 ou 16 bits, dependendo do microcontrolador. A arquitetura Harvard permite que, enquanto uma instrução é executada, outra seja encontrada na memória, o que indiscutivelmente, torna o processamento mais rápido.

Observando o datasheet original no site da Microchip, podemos visualizar o diagrama de blocos do microcontrolador PIC16F84 (Figura 103).

Figura 103 - Diagrama Interno do PIC16F84.

Fonte: http://www.microchip.com.

A partir da figura, visualizamos as diversas partes que compõem o microcontrolador. Podemos observar a ULA (em inglês: ALU), diretamente ligada ao registrador W (work reg). No canto superior esquerdo temos a memória de

programas, e saindo desse bloco observamos o barramento de 14 bits (Program Bus 14). No centro da figura, temos a memória de dados (RAM), que possui um barramento de 8 bits (Data Bus 8), conforme foi explicado na definição da arquitetura Harvard; e o registrador de status (STATUS reg), onde informações importantes sobre as operações aritméticas da ULA são armazenadas.

Ao lado direito da figura, temos o primeiro periférico, a EEPROM; e outros periféricos que também podem ser observados, tais como: o timer (TMR0) e as portas paralelas (I/O Ports). A comunicação entre todos os periféricos é feita por intermédio de um barramento de 8 vias.

Observamos também que o pino (RA4/T0CKI) do microcontrolador está ligado ao timer, formando o contador externo. Na parte superior, temos o contador de linhas de programa (Program Counter) e a pilha de oito níveis (Stack). Temos ainda os circuitos internos do reset, osciladores e Watchdog Timer (WDT).

Nos microcontroladores PIC, o sinal do clock é internamente dividido por quatro. Dessa forma, para um clock externo de 4 MHz, temos um clock interno de 1 MHz, e consequentemente, cada ciclo de máquina dura 1 s.

O clock do oscilador é ligado ao microcontrolador através do pino OSC1, aqui, o circuito interno do microcontrolador divide o sinal de clock em quatro fases, Q1, Q2, Q3 e Q4 que não se sobrepõem. Estas quatro pulsações perfazem um ciclo de instrução (também chamado ciclo de máquina) e durante o qual uma instrução é executada.

A execução de uma instrução é antecedida pela extração da instrução que está na linha seguinte. O código da instrução é extraído da memória de programa em Q1 e é escrito no registro de instrução em Q4.

A descodificação e execução dessa mesma instrução fazem-se entre as fases Q1 e Q4 seguintes. Esta característica de buscar a informação num ciclo de máquina e executá-la no próximo é conhecida como PIPELINE. Na Figura 104, podemos observar a relação entre o ciclo de instrução e o clock do oscilador (OSC1) assim como as fases Q1-Q4. O contador de programa (Program Counter ou PC) guarda o endereço da próxima instrução a ser executada.

Figura 104 - Esquema dos Ciclos de Máquina.

Fonte: http://www.microchip.com.

O PIC16F84 foi o microcontrolador escolhido para ser utilizado no robô Tesla por ser: versátil e compacto. Foram levadas em consideração para sua adoção as principais características:

microcontrolador de 18 pinos, o que facilitou a montagem do hardware do robô;

13 portas configuráveis como entrada ou saída, o que permite upgrades futuros;

 4 interrupções disponíveis (TMR0, Externa, Mudança de Estado e EEPROM);

 memória de programação FLASH, que permite a gravação dos programas desenvolvidos pelos alunos diversas vezes no mesmo chip, sem a necessidade de apagá-lo por meio de radiação ultravioleta, como acontece nos microcontroladores de janela;

 memória EEPROM (não volátil) interna;

 via de programação com 14 bits e 35 instruções.

Outro ponto extremamente importante é que todos os modelos de PIC’s dessa família possuem um set de instruções bem parecido, além de muitas semelhanças entre suas características básicas. Desta forma, podemos migrar para microcontroladores mais poderosos como o PIC16F84A, o PIC16F628A, entre outros.

O PIC16F84 tem um total de 18 pinos e é mais frequentemente encontrado num tipo de encapsulamento DIP18, mas, também pode ser encontrado numa cápsula SMD27 com menores dimensões que a DIP28.

A disposição dos pinos do microcontrolador PIC16F84 pode ser observada na Figura 105.

Figura 105 - Pinagem do PIC16F84.

Fonte: http://www.microchip.com.

O nosso microcontrolador possui um total de 13 pinos de entradas e saídas separados em dois grupos denominados PORTAS. Desta forma temos a Porta A e a Porta B. Para facilitarmos o entendimento e a comparação com os datasheets originais, usaremos os termos provenientes do inglês: PORTA (port A) e PORTB (port B). Os pinos no microcontrolador PIC16F84, têm o seguinte significado:

 pino nº 1: RA2 - Segundo pino da Porta A. Não tem nenhuma função adicional.

 pino nº 2: RA3 - Terceiro pino da Porta A. Não tem nenhuma função adicional.

 pino nº 3: RA4 - Quarto pino da Porta A. O TOCK1 que funciona como entrada do temporizador, também utiliza este pino.

 pino nº 4: /MCLR - Entrada de reset e entrada da tensão de programação Vpp do microcontrolador.

 pino nº 5: Vss - Terra da alimentação.

27

SMD é uma abreviatura para Surface Mount Devices (Dispositivos de Montagem em Superfície), o que sugere que os pinos não precisam passar pelos orifícios da placa em que são inseridos, quando este tipo de componente é soldado.

28

 pino nº 6: RB0 - Bit 0 da Porta B. Tem uma função adicional que é a de entrada de interrupção.

 pino nº 7: RB1 - Bit 1 da Porta B. Não tem nenhuma função adicional.

 pino nº 8: RB2 - Bit 2 da Porta B. Não tem nenhuma função adicional.

 pino nº 9: RB3 - Bit 3 da Porta B. Não tem nenhuma função adicional.

 pino nº 10: RB4 - Bit 4 da Porta B. Não tem nenhuma função adicional.

 pino nº 11: RB5 - Bit 5 da Porta B. Não tem nenhuma função adicional.

pino nº 12: RB6 - Bit 6 da Porta B. No modo de programa é a linha de clock.

 pino nº 13: RB7 - Bit 7 da Porta B. Linha de dados no modo de programa.

 pino nº 14: Vdd - Polo positivo da tensão de alimentação.

 pino nº 15: OSC2 - Para ser ligado a um oscilador.

 pino nº 16: OSC1 - Para ser ligado a um oscilador.

 pino nº 17: RA0 - Bit 0 da Porta A. Sem função adicional.

 pino nº 18: RA1 - Bit 1 da Porto A. Sem função adicional.

A Tabela 9 descreve as características elétricas e de temperatura do PIC16F84.

Tabela 9 - PIC16F84 (Características Elétricas e de Temperatura).

Temperatura de trabalho -55ºC até 125ºC

Temperatura de armazenamento -65ºC até 155ºC

Tensão de trabalho 2,0 V a 6,0 V

Voltagem máxima no pino Vdd (em relação ao Vss) -0,3 V até 7,5 V Voltagem máxima no pino /MCRL (em relação ao Vss) -0,3 V até 14 V Voltagem aos demais pinos (em relação ao Vss) -0,6 V até (Vdd 0,6 V)

Dissipação máxima de energia 800 mW

Corrente máxima de saída no pino Vss 150 mA

Corrente máxima de entrada no pino Vdd 100 mA Corrente máxima de entrada de um pino (quando em Vss) 25 mA Corrente máxima de saída de um pino (quando em Vdd) 20 mA

Corrente máxima de entrada do PORTA 80 mA

Corrente máxima de saída do PORTA 50 mA

Corrente máxima de entrada do PORTB 150 mA

A Figura 106 ilustra a organização das memórias de programa e de dados respectivamente.

Figura 106 - PIC16F84 (Memória de Programa e de Dados).

Fonte: http://www.microchip.com.

No Anexo B dessa dissertação, temos todo o set de instruções do PIC16F84, divididas em quatro grupos, conforme as suas aplicações: operações com registradores, operações com literais, operações com bits e controles. Essa tabela facilita consideravelmente o processo de programação do microcontrolador, uma vez que nela estão listadas todas as 35 instruções do PIC16F84.

Documentos relacionados