Sie sind auf Seite 1von 12

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CENTRO TECNOLGICO DEPARTAMENTO DE INFORMTICA E ESTATSTICA Curso de Cincias da Computao

SEMINRIO ASSEMBLY: Arquitetura PIC

DOUGLAS DAL POZZO DIEGO VITTI

Florianpolis Santa Catarina Fevereiro 2007

UNIVERSIDADE FEDERAL DE SANTA CATARINA


CENTRO TECNOLGICO DEPARTAMENTO DE INFORMTICA E ESTATSTICA Curso de Cincias da Computao

SEMINRIO ASSEMBLY: Arquitetura PIC

Este trabalho destina-se a cumprir requisito de avaliao da disciplina INE5309 Programao de sistemas, turma 0432 de 2006.2 ministrada pelo professor Dr. Antnio Augusto Frhlich.

DOUGLAS DAL POZZO DIEGO VITTI

Florianpolis Santa Catarina Fevereiro 2007

Histrico
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 ento 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 microeletrnica. O novo fabricante desativou quase todos os projetos que estavam ento 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 So Micro-controladores
Micro-controlador um componente cujo ncleo possui os mesmos blocos funcionais de um microprocessador. No entanto, sua aplicao um pouco mais geral. Para isso, no mesmo chip so embutidos interfaces de comunicao com o mundo externo. Nesse sentido, um micro-controlador um sistema completo, com sistema de memria, sistema de entrada e sada, tudo isso em um nico chip.

Caracterizao da Arquitetura de Micro-controladores PIC


A arquitetura PIC possui uma famlia 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 memrias separadas: uma memria de dados e outra memria de programa (instrues). Essas duas memrias so conectadas por barramentos distintos e isso permite o uso de diferentes tamanhos de palavras para dados e instrues.

Diagrama de blocos da arquitetura Harvard e da arquitetura von-Neumann. A arquitetura Harvard possui memrias para dados e instrues separadas o que possibilita diferentes tamanhos de barramentos. Isso permite, no caso dos PICs, que todas as instrues 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 instrues simples. Isso implica em maior cdigo para a programao de funes mais avanadas. Em geral esses micro-controladores apresentam um conjunto entre 30 e 40 instrues. Algumas aplicaes dos Micro-controladores PIC Os micro-controladores possuem larga aplicao em dispositivos eletrnicos que requerem algum tipo de controle digital. Mquinas de lavar roupas, microondas, telefones, ar-condicionado so alguns exemplos. Isso acontece pelas suas caractersticas como simplicidade, facilidade de programao, baixo preo.

Diagrama de blocos do PIC16F84

Anlise comparativa: arquitetura PIC vs. arquitetura MIPS Para fins de comparao da arquitetura PIC com a arquitetura MIPS ser utilizado o micro-controlador PIC16F84 e o processador MIPS-RS2000. Cada implementao especfica de cada uma dessas arquiteturas possuem pequenas mudanas que no ir interferir de modo considervel nessa comparao.

Nmero de instrues PIC Arquitetura MIPS-32 65 instrues MIPS (contm instrues para operaes em ponto RISC Von Neumann flutuante) Um nico caminho de dados de 32 bits para dados e instrues.

PIC 35 instrues RISC Harvard Um caminho de dados de 14 bits para instrues Um caminho de dados de 8 bits para dados

Modos de endereamento PIC 3 modos de endereamento Endereamento direto Endereamento indireto Endereamento relativo MIPS-32 5 modos de endereamento: - endereamento em registrador - endereamento de base ou deslocamento - endereamento imediato - endereamento relativo ao PC - endereamento pseudo-indireto

Registradores / memria PIC 12 registradores MIPS-32 32 registradores de uso geral memria acessada via instrues de transferncia de dados

Suporte a procedimentos

1. Parmetros so carregados nos registradores de passagem de 1. Parmetros so carregados nos registradores de passagem de parmetros parmetros

CALL <endereo do incio do procedimento>


1. Endereo de retorno (PC + 1) salvo no topo da pilha. 2. Endereo do incio do procedimento carregado em PC. ... execuo ... resultado colocado em um endereo para retorno ...

jal <endereo do incio do procedimento>


1. Endereo de retorno (PC + 1) salvo em $ra. 2. Endereo do incio do procedimento carregado em PC. ... execuo ... resultado colocado em registrador de retorno ...

RETURN
1. O elemento do topo da pilha retirado e carregado em no PC

jr $ra
1. O endereo armazenado em $ra carregado em no PC

Organizao da Memria
A memria do micro-controlador PIC16F84 dividida em 2 blocos: memria de programa e memria de dados. Pela arquitetura Harvard, cada memria tem o seu prprio barramento o que possibilita que ambas sejam acessadas dentro do mesmo ciclo do relgio. A memria de dados ainda pode ser dividida em 2 blocos: General Purpouse RAM (GPR) e Special Function Registers (SFR). A memria denominada SFR utilizada para o controle do dispositivo. A memria GPR usada para armazenamento das variveis e constantes do programa. Esta memria tambm contm a memria de dados EEPROM (Electronically Erasable Programmable Read-Only Memory ) que mantm seu estado mesmo quando o dispositivo estiver desligado e acessada indiretamente atravs de registradores de uso especfico.

Organizao da Memria de Dados A memria de dados dividida em dois blocos. O primeiro a rea de registro de funo especial (SFR) , enquanto o segundo a rea do registro de propsito geral(GPR). O SFR controla a operao do dispositivo. Blocos de memria de dados so 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 propsito geral. As reas alocadas do SFR so para os registradores que controlam as funes perifricas. Alocaes requerem o uso do controle para seleo do bank. Esses controles so localizados no registro de STATUS. Figura abaixo mostra o mapa de organizao da memria de dados. Instrues MOVWF e MOVF podem mudar valores do registro W para qualquer local no arquivo de registro (FF), e vice-versa. A memria de dados pode ser acessada diretamente usando o endereo absoluto de cada arquivo do registro ou indiretamente atravs do FILE SELECT REGISTER(FSR). Endereamento indireto usa o valor presente do RPO bit para acesso nas reas alocadas da memria de dados ARQUIVOS DO REGISTRO DE PROPOSITO GERAL Cada registro de propsito geral (GPR) tem 8 bits de tamanho e acessado diretamente ou indiretamente pelo FSR( seo 2.5). Os endereos do GPR em Bank 1 so mapeados para endereos em Bank 0. como exemplo, o local de endereo 0Ch ou 8Ch vo acessar o mesmo GPR. REGISTROS DE FUNES ESPCECIAIS O registro de funo especial usado pelo CPU e funes perifricas para controlar a operao do dispositivo. Esses registros so de RAM esttica. Os registros de funes especiais podem ser classificados em duas classes, o ncleo e perifrico. STATUS REGISTER O registro de STATUS contm a posio aritmtica da ALU, RESET e a seleo de BANK para a memria de dados. a posio de

O registro de STATUS pode ser o destino para qualquer instruo. Se o registro de STATUS a destino para uma instruo que afeta o Z, DC ou bits de C, ento o write para esses trs bits desabilitado. Esses bits so programados ou zerados de acordo com a lgica do dispositivo. Alem disso, os TO E PD bits no so writable. Portanto o resultado de uma instruo com o registro de STATUS como destino pode ser diferente do que se esperava. Por exemplo, CLRF STATUS, vai limpar os trs bits de cima e colocar o Z bit. Isso deixa o registro de STATUS como ooou u1uu ( onde u = no mudado). S as instrues de BCF, BSF, SWAPF E MOVWF devem ser usados para alterar o registro de STATUS, porque essas instrues no afetam qualquer bit de STATUS. PCL E PCLATH O contador do programa especifica os endereos da instruo para localizar a execuo. 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 contm o endereo de retorno da execuo A rea de dados da pilha no faz parte do programa e o ponteiro da pilha no pode ser lido ou escrito. O PC deslocado na pilha quando uma instruo de chamada executada. A pilha deslocada no evento de RETURN, TETLW ou em uma execuo de instruo de RETFIE. Depois de a pilha ter sido deslocada oito vezes, o nono deslocamento sobrescrever o valor que foi armazenado no primeiro deslocamento. deslocamento sobrescrever o segundo deslocamento e assim por diante. O dcimo

Conjunto de Instrues As instrues da famlia PIC16CXX so formadas por words de 14 bits divididas em um OPCODE que identifica a instruo e um ou mais operandos sobre os quais a instruo ir operar. As instrues so classificadas em 3 tipos: Byte-Oriented:

Para as instrues orientadas a bytes, f representa um file register e 'd' representa o endereo de destino. O file register especifica qual registrador ser usado pela instruo.
14-Bit Opcode Status MSb LSb Affected BYTE-ORIENTED FILE REGISTER OPERATIONS Add W and f 1 0 0 0111 dfff ffff C,DC,Z AND W with f 1 0 0 0101 dfff ffff Z Clear f 1 0 0 0001 lfff ffff Z Clear W 1 0 0 0001 0xxx xxxx Z Complement f 1 0 0 1001 dfff ffff Z Decrement f 1 0 0 0011 dfff ffff Z Decrement f, Skip if 0 1 (2) 0 0 1011 dfff ffff Increment f 1 0 0 1010 dfff ffff Z Increment f, Skip if 0 1 (2) 0 0 1111 dfff ffff Inclusive OR W with f 1 0 0 0100 dfff ffff Z Move f 1 0 0 1000 dfff ffff Z Move W to f 1 0 0 0000 lfff ffff 0 0 0000 0xx0 No Operation 1 0000 Rotate Left f through Carry 1 0 0 1101 dfff ffff C Rotate Right f through Carry 1 0 0 1100 dfff ffff C Subtract W from f 1 0 0 0010 dfff ffff C,DC,Z Swap nibbles in f 1 0 0 1110 dfff ffff Exclusive OR W with f 1 0 0 0110 dfff ffff Z Description Cycles

Mnemonic, Operands ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF f, d f, d f f, d f, d f, d f, d f, d f, d f, d f f, d f, d f, d f, d f, d

Notes 1,2 1,2 2 1,2 1,2 1,2,3 1,2 1,2,3 1,2 1,2

1,2 1,2 1,2 1,2 1,2

Bit-oriented:

Para as instrues orientadas a bit, 'b' representa a posio de um bit de um campo do file register.
Mnemonic, Operands BCF BSF BTFSC BTFSS f, b f, b f, b f, b 14-Bit Opcode MSb LSb BIT-ORIENTED FILE REGISTER OPERATIONS Bit Clear f 1 0 1 00bb bfff ffff Bit Set f 1 0 1 01bb bfff ffff Bit Test f, Skip if Clear 1 (2) 0 1 10bb bfff ffff Bit Test f, Skip if Set 1 (2) 0 1 11bb bfff ffff Description Cycles Status Affected Notes 1,2 1,2 3 3

Literal and Control Instructions:

Mnemonic, Operands ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW k k k k k k k k k

14-Bit Opcode Status MSb LSb Affected BIT-ORIENTED FILE REGISTER OPERATIONS Add literal and W 1 1 1 111x kkkk kkkk C,DC,Z AND literal with W 1 1 1 1001 kkkk kkkk Z Call subroutine 2 1 0 0kkk kkkk kkkk Clear Watchdog Timer 1 0 0 0000 0110 0100 TO,PD Go to address 2 1 0 1kkk kkkk kkkk Inclusive OR literal with W 1 1 1 1000 kkkk kkkk Z Move literal to W 1 1 1 00xx kkkk kkkk Return from interrupt 2 0 0 0000 0000 1001 Return with literal in W 2 1 1 01xx kkkk kkkk Return from Subroutine 2 0 0 0000 0000 1000 Go into standby mode 1 0 0 0000 0110 0011 TO,PD Subtract W from literal 1 1 1 110x kkkk kkkk C,DC,Z Exclusive OR literal with W 1 1 1 1010 kkkk kkkk Z Description Cycles

Notes

Tabela : Descrio dos operandos das instrues. O Algoritmo de Multiplicao


MULT MULT

CLRF RESULTADO LOOP MOVF TEMPX,W BTFSC TEMPY,0 ADDWF RESULTADO BCF STATUS,C RRF TEMPY,F BCF STATUS,C RLF TEMPX,F MOVF TEMPY,F BTFSS STATUS,Z GOTO MULT RETURN

; ; ; ; ; ; ; ; ; ; ;

clear file RESULTADO endereo simblico do inicio da subrotina mover o contedo do endereo TEMPX para W Bit test TEMPY, skip if 1th bit is clear RESULT = W + f bit clear STATUS, C = clear the carry flag rotate right file bit clear STATUS rotate left file and store itself mover o contedo do endereo TEMPY para W bit test, skip if clear

Execuo do algoritmo
MOVF MOVWF MOVF MOVWF CALL MOVF MOVWF x,W TEMPX y,W TEMPY MULT RESULTADO,W z

Das könnte Ihnen auch gefallen