SEMINÁRIO ASSEMBLY: Arquitetura PIC



Documentos relacionados
DOUGLAS DAL POZZO DIEGO VITTI

PIC16F628a. Pinagem do PIC16F628a:

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto Prof. Vargas

Curso PIC 1 Desbravando o PIC. Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division

Introdução aos Microcontroladores PIC

Arquitetura de Computadores. Prof. João Bosco Jr.

MICROCONTROLADORES PIC PRIMEIROS PASSOS

Programação Daniel Corteletti Aula 3 Parte III Página 1/7

Estrutura de um Computador

Acetatos de apoio às aulas teóricas

ARQUITETURA DE PROCESSAMENTO

Hardware Parte I. Fábio Rodrigues de la Rocha

BARRAMENTO DO SISTEMA

7. Técnicas de Programação

Sistemas Microcontrolados

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz

Arquitetura de Computadores. Tipos de Instruções

Componentes do Computador e. aula 3. Profa. Débora Matos

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

5. Conjunto de Instruções do MCU PIC

Curso de Programação PIC Prof. Msc. Engº Getúlio Teruo Tateoki

2 Formalidades referentes ao trabalho

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Microprocessadores. Prof. Leonardo Barreto Campos 1

1.1. Microprocessadores e microcontroladores Sistemas genéricos e sistemas dedicados. 2. Microcontrolador PIC:

Dispositivos de Entrada e Saída

Organização e Arquitetura de Computadores I

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Servo-Motor. por. Nuno Monteiro & Gabriel Dinis Eng. Electrotécnica, UTAD Junho de nuno_monteiro@portugalmail.com gabrieldinis@portugalmail.

Introdução à Arquitetura de Computadores

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

ULA Sinais de Controle enviados pela UC

Organização Básica do Computador

Organização de Computadores 1

3. Arquitetura Básica do Computador

MODELAGEM DO PIC16F84 PARA PROJETO DE SISTEMAS EMBUTIDOS BASEADOS EM MICROCONTROLADOR

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

MICROCONTROLADORES. PIC16F87x

MEC MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO MÉDIA E TECNOLÓGICA CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO ESPÍRITO SANTO

UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL-REI - UFSJ DEPARTAMENTO DE ENGENHARIA ELÉTRICA - DEPEL INTRODUÇÃO AOS MICROCONTROLADORES PIC

Computadores de Programação (MAB353)

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Informática I. Aula 4. Aula 4-11/09/2006 1

Capítulo 2 (Livro Texto*) - Notas de Aula - Parte II

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

Visão Geral de Sistemas Operacionais

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de

MODOS DE ENDEREÇAMENTO

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Microcontroladores. Édilus de Carvalho Castro Penido Ronaldo Silva Trindade

Microcontrolador PIC 16F877

Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal. Memória principal

Componentes de um Computador: Modelo Von Neumann

Nível da Microarquitetura

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Microprocessadores e Microcontroladores Parte 3. Expansão de Memória Mapeamento de Memória

Introdução à Engenharia de Computação

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

ARQUITETURA DE COMPUTADORES

ISL - Introdução. Sistema. Binário. Introdução. Tipos de Computador. Sub title text goes here. Unused Section Space 2. Unused Section Space 1

ARQUITETURA DE COMPUTADORES Prof. João Inácio

Introdução à Computação: Arquitetura von Neumann

Prof. Esp. Lucas Cruz

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

Sistemas Operacionais. Prof. André Y. Kusumoto

Organização e Arquitetura de Computadores

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Registradores de uma CPU. Registradores de uma CPU - Acumulador

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de

Aula 2. - Elaboração de algoritmos/fluxogramas. - Gravação do programa no microcontrolador

Memória Cache. Prof. Leonardo Barreto Campos 1

ARQUITETURA DE COMPUTADORES

Microcontroladores e Microprocessadores

ARQUITETURA DE COMPUTADORES

Memórias Prof. Galvez Gonçalves

Tecnologia da Informação. Prof Odilon Zappe Jr

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

SIS17-Arquitetura de Computadores

28/9/2010. Unidade de Controle Funcionamento e Implementação

Unidade Central de Processamento

1. Microcontrolador PIC. 1.1 Introdução

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Introdução a Ciência da Computação Conceitos Básicos de Sistema PROFESSORA CINTIA CAETANO

Arquitetura de Computadores - Revisão -

Armazenar dados e programas que serão utilizados pelo processador (CPU Unidade Central de Processamento)

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

Arquitetura de Computadores. Arquitetura de Computadores 1

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

SISTEMAS DIGITAIS. Memórias. Prof. Guilherme Arroz Prof. Carlos Sêrro Alterado para lógica positiva por Guilherme Arroz.

Arquitetura de Computadores

for Information Interchange.

Transcrição:

UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Curso de Ciências da Computação SEMINÁRIO ASSEMBLY: Arquitetura PIC DOUGLAS DAL POZZO DIEGO VITTI Florianópolis Santa Catarina Fevereiro 2007

UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Curso de Ciências da Computação SEMINÁRIO ASSEMBLY: Arquitetura PIC Este trabalho destina-se a cumprir requisito de avaliação da disciplina INE5309 Programação de sistemas, turma 0432 de 2006.2 ministrada pelo professor Dr. Antônio Augusto Fröhlich. DOUGLAS DAL POZZO DIEGO VITTI Florianópolis Santa Catarina Fevereiro 2007

Histórico Os micro-controladores PIC originaram-se em 1975 a partir do projeto de um processador de 16 bits da General Instrument's Microelectronics Division. Esse processador, denominado CP1600, apresentava baixa performance de I/O e então essa mesma companhia desenvolveu o primeiro micro-controlador PIC (PIC1650) para ser usado em conjunto com o processador CP1600, aumentando a performance desse processador com a passagem do controle de tarefas de I/O para o micro-controlador PIC. Em 1985 a General Instrument's vendeu seu setor de microeletrônica. O novo fabricante desativou quase todos os projetos que estavam então ultrapassados. No entanto, os micro-controladores PIC foram renovados e continuaram a evoluir e hoje, a Microchip Technology, atual fabricante dos micro-controladores PIC, oferece uma ampla variedade de modelos. O Que São Micro-controladores Micro-controlador é um componente cujo núcleo possui os mesmos blocos funcionais de um microprocessador. No entanto, sua aplicação é um pouco mais geral. Para isso, no mesmo chip são embutidos interfaces de comunicação com o mundo externo. Nesse sentido, um micro-controlador é um sistema completo, com sistema de memória, sistema de entrada e saída, tudo isso em um único chip. Caracterização da Arquitetura de Micro-controladores PIC A arquitetura PIC possui uma família de micro-controladores de 12, 14 e 16 bits. É uma arquitetura RISC baseada em outra arquitetura denominada arquitetura Harvard. A arquitetura Harvard surgiu a partir da necessidade de melhorar o desempenho dos micro-controladores. Para isso, ela define o uso de duas memórias separadas: uma memória de dados e outra memória de programa (instruções). Essas duas memórias são conectadas por barramentos distintos e isso permite o uso de diferentes tamanhos de palavras para dados e instruções.

Diagrama de blocos da arquitetura Harvard e da arquitetura von-neumann. A arquitetura Harvard possui memórias para dados e instruções separadas o que possibilita diferentes tamanhos de barramentos. Isso permite, no caso dos PICs, que todas as instruções ocupem uma única word de 14 bits, por exemplo, enquanto os dados ocupem somente 8 bits. Por pertencer a arquitetura RISC, os micro-controladores PIC apresentam instruções simples. Isso implica em maior código para a programação de funções mais avançadas. Em geral esses micro-controladores apresentam um conjunto entre 30 e 40 instruções. Algumas aplicações dos Micro-controladores PIC Os micro-controladores possuem larga aplicação em dispositivos eletrônicos que requerem algum tipo de controle digital. Máquinas de lavar roupas, microondas, telefones, ar-condicionado são alguns exemplos. Isso acontece pelas suas características como simplicidade, facilidade de programação, baixo preço.

Diagrama de blocos do PIC16F84 Análise comparativa: arquitetura PIC vs. arquitetura MIPS Para fins de comparação da arquitetura PIC com a arquitetura MIPS será utilizado o micro-controlador PIC16F84 e o processador MIPS-RS2000. Cada implementação específica de cada uma dessas arquiteturas possuem pequenas mudanças que não irá interferir de modo considerável nessa comparação.

Número de instruções PIC Arquitetura MIPS-32 PIC 65 instruções MIPS 35 instruções (contém instruções para operações em ponto RISC Harvard RISC flutuante) Von Neumann Um caminho de dados de 14 bits para instruções Um único caminho de dados de 32 bits para Um caminho de dados de 8 bits para dados dados e instruções. PIC 3 modos de endereçamento Endereçamento direto Endereçamento indireto Endereçamento relativo Modos de endereçamento MIPS-32 5 modos de endereçamento: - endereçamento em registrador - endereçamento de base ou deslocamento - endereçamento imediato - endereçamento relativo ao PC - endereçamento pseudo-indireto PIC Registradores / memória MIPS-32 12 registradores 32 registradores de uso geral memória acessada via instruções de transferência de dados Suporte a procedimentos 1. Parâmetros são carregados nos registradores de passagem de parâmetros 1. Parâmetros são carregados nos registradores de passagem de parâmetros CALL <endereço do início do procedimento> 1. Endereço de retorno (PC + 1) é salvo no topo da pilha. 2. Endereço do início do procedimento é carregado em PC.... execução... resultado é colocado em um endereço para retorno... RETURN 1. O elemento do topo da pilha é retirado e carregado em no PC jal <endereço do início do procedimento> 1. Endereço de retorno (PC + 1) é salvo em $ra. 2. Endereço do início do procedimento é carregado em PC.... execução... resultado é colocado em registrador de retorno... jr $ra 1. O endereço armazenado em $ra é carregado em no PC

Organização da Memória A memória do micro-controlador PIC16F84 é dividida em 2 blocos: memória de programa e memória de dados. Pela arquitetura Harvard, cada memória tem o seu próprio barramento o que possibilita que ambas sejam acessadas dentro do mesmo ciclo do relógio. A memória de dados ainda pode ser dividida em 2 blocos: General Purpouse RAM (GPR) e Special Function Registers (SFR). A memória denominada SFR é utilizada para o controle do dispositivo. A memória GPR é usada para armazenamento das variáveis e constantes do programa. Esta memória também contém a memória de dados EEPROM (Electronically Erasable Programmable Read-Only Memory ) que mantém seu estado mesmo quando o dispositivo estiver desligado e é acessada indiretamente através de registradores de uso específico.

Organização da Memória de Dados A memória de dados é dividida em dois blocos. O primeiro é a área de registro de função especial (SFR), enquanto o segundo é a área do registro de propósito geral(gpr). O SFR controla a operação do dispositivo. Blocos de memória de dados são dispostos para ambos, a área de SFR e a área de GPR. A área de GPR é alocada para deixar mais que 116 bytes de RAM de propósito geral. As áreas alocadas do SFR são para os registradores que controlam as funções periféricas. Alocações requerem o uso do controle para seleção do bank. Esses controles são localizados no registro de STATUS. Figura abaixo mostra o mapa de organização da memória de dados. Instruções MOVWF e MOVF podem mudar valores do registro W para qualquer local no arquivo de registro ( FF ), e vice-versa. A memória de dados pode ser acessada diretamente usando o endereço absoluto de cada arquivo do registro ou indiretamente através do FILE SELECT REGISTER(FSR). Endereçamento indireto usa o valor presente do RPO bit para acesso nas áreas alocadas da memória de dados ARQUIVOS DO REGISTRO DE PROPOSITO GERAL Cada registro de propósito geral (GPR) tem 8 bits de tamanho e é acessado diretamente ou indiretamente pelo FSR( seção 2.5). Os endereços do GPR em Bank 1 são mapeados para endereços em Bank 0. como exemplo, o local de endereço 0Ch ou 8Ch vão acessar o mesmo GPR. REGISTROS DE FUNÇÕES ESPCECIAIS O registro de função especial é usado pelo CPU e funções periféricas para controlar a operação do dispositivo. Esses registros são de RAM estática. Os registros de funções especiais podem ser classificados em duas classes, o núcleo e periférico. STATUS REGISTER O registro de STATUS contém a posição aritmética da ALU, RESET e a seleção de BANK para a memória de dados. a posição de

O registro de STATUS pode ser o destino para qualquer instrução. Se o registro de STATUS é a destino para uma instrução que afeta o Z, DC ou bits de C, então o write para esses três bits é desabilitado. Esses bits são programados ou zerados de acordo com a lógica do dispositivo. Alem disso, os TO E PD bits não são writable. Portanto o resultado de uma instrução com o registro de STATUS como destino pode ser diferente do que se esperava. Por exemplo, CLRF STATUS, vai limpar os três bits de cima e colocar o Z bit. Isso deixa o registro de STATUS como ooou u1uu ( onde u = não mudado). Só as instruções de BCF, BSF, SWAPF E MOVWF devem ser usados para alterar o registro de STATUS, porque essas instruções não afetam qualquer bit de STATUS. PCL E PCLATH O contador do programa especifica os endereços da instrução para localizar a execução. O PC é 13bits de tamanho, o byte menor é chamado do registro de PCL. Esse registro pode ser lido e escrito. O byte maior é chamado do registro de PCH. Esse registro contem o PC<12;8> BITS. STACK A pilha contém o endereço de retorno da execução A área de dados da pilha não faz parte do programa e o ponteiro da pilha não pode ser lido ou escrito. O PC é deslocado na pilha quando uma instrução de chamada é executada. A pilha é deslocada no evento de RETURN, TETLW ou em uma execução de instrução de RETFIE. Depois de a pilha ter sido deslocada oito vezes, o nono deslocamento sobrescrever o valor que foi armazenado no primeiro deslocamento. O décimo deslocamento sobrescrever o segundo deslocamento e assim por diante.

Conjunto de Instruções As instruções da família PIC16CXX são formadas por words de 14 bits divididas em um OPCODE que identifica a instrução e um ou mais operandos sobre os quais a instrução irá operar. As instruções são classificadas em 3 tipos: Byte-Oriented: Para as instruções orientadas a bytes, f representa um file register e 'd' representa o endereço de destino. O file register especifica qual registrador será usado pela instrução. Mnemonic, Operands Description Cycles 14-Bit Opcode Status MSb LSb Affected Notes BYTE-ORIENTED FILE REGISTER OPERATIONS ADDWF f, d Add W and f 1 0 0 0111 dfff ffff C,DC,Z 1,2 ANDWF f, d AND W with f 1 0 0 0101 dfff ffff Z 1,2 CLRF f Clear f 1 0 0 0001 lfff ffff Z 2 CLRW - Clear W 1 0 0 0001 0xxx xxxx Z COMF f, d Complement f 1 0 0 1001 dfff ffff Z 1,2 DECF f, d Decrement f 1 0 0 0011 dfff ffff Z 1,2 DECFSZ f, d Decrement f, Skip if 0 1 (2) 0 0 1011 dfff ffff 1,2,3 INCF f, d Increment f 1 0 0 1010 dfff ffff Z 1,2 INCFSZ f, d Increment f, Skip if 0 1 (2) 0 0 1111 dfff ffff 1,2,3 IORWF f, d Inclusive OR W with f 1 0 0 0100 dfff ffff Z 1,2 MOVF f, d Move f 1 0 0 1000 dfff ffff Z 1,2 MOVWF f Move W to f 1 0 0 0000 lfff ffff NOP - No Operation 1 0 0 0000 0xx0 0000 RLF f, d Rotate Left f through Carry 1 0 0 1101 dfff ffff C 1,2 RRF f, d Rotate Right f through Carry 1 0 0 1100 dfff ffff C 1,2 SUBWF f, d Subtract W from f 1 0 0 0010 dfff ffff C,DC,Z 1,2 SWAPF f, d Swap nibbles in f 1 0 0 1110 dfff ffff 1,2 XORWF f, d Exclusive OR W with f 1 0 0 0110 dfff ffff Z 1,2 Bit-oriented:

Para as instruções orientadas a bit, 'b' representa a posição de um bit de um campo do file register. Mnemonic, Operands Description Cycles 14-Bit Opcode Status MSb LSb Affected Notes BIT-ORIENTED FILE REGISTER OPERATIONS BCF f, b Bit Clear f 1 0 1 00bb bfff ffff 1,2 BSF f, b Bit Set f 1 0 1 01bb bfff ffff 1,2 BTFSC f, b Bit Test f, Skip if Clear 1 (2) 0 1 10bb bfff ffff 3 BTFSS f, b Bit Test f, Skip if Set 1 (2) 0 1 11bb bfff ffff 3 Literal and Control Instructions: Mnemonic, Operands Description Cycles 14-Bit Opcode Status MSb LSb Affected BIT-ORIENTED FILE REGISTER OPERATIONS ADDLW k Add literal and W 1 1 1 111x kkkk kkkk C,DC,Z ANDLW k AND literal with W 1 1 1 1001 kkkk kkkk Z CALL k Call subroutine 2 1 0 0kkk kkkk kkkk CLRWDT - Clear Watchdog Timer 1 0 0 0000 0110 0100 TO,PD GOTO k Go to address 2 1 0 1kkk kkkk kkkk IORLW k Inclusive OR literal with W 1 1 1 1000 kkkk kkkk Z MOVLW k Move literal to W 1 1 1 00xx kkkk kkkk RETFIE - Return from interrupt 2 0 0 0000 0000 1001 RETLW k Return with literal in W 2 1 1 01xx kkkk kkkk RETURN - Return from Subroutine 2 0 0 0000 0000 1000 SLEEP - Go into standby mode 1 0 0 0000 0110 0011 TO,PD SUBLW k Subtract W from literal 1 1 1 110x kkkk kkkk C,DC,Z XORLW k Exclusive OR literal with W 1 1 1 1010 kkkk kkkk Z Notes

Tabela : Descrição dos operandos das instruções. O Algoritmo de Multiplicação MULT CLRF RESULTADO ; clear file RESULTADO MULT LOOP ; endereço simbólico do inicio da subrotina MOVF TEMPX,W ; mover o conteúdo do endereço TEMPX para W BTFSC TEMPY,0 ; Bit test TEMPY, skip if 1th bit is clear ADDWF RESULTADO ; RESULT = W + f BCF STATUS,C ; bit clear STATUS, C = clear the carry flag RRF TEMPY,F ; rotate right file BCF STATUS,C ; bit clear STATUS RLF TEMPX,F ; rotate left file and store itself MOVF TEMPY,F ; mover o conteúdo do endereço TEMPY para W BTFSS STATUS,Z ; bit test, skip if clear GOTO MULT RETURN Execução do algoritmo MOVF x,w MOVWF TEMPX MOVF y,w MOVWF TEMPY CALL MULT MOVF RESULTADO,W MOVWF z