Índice
Transcrição
Índice
Índice Dia 05 de fevereiro de 2014. .............................................................................................2 Apresentação................................................................................................................................................... 2 Dia 12 de fevereiro de 2013. .............................................................................................3 -Processador .................................................................................................................................................... 3 -Von Neumann ................................................................................................................................................ 3 -Harvard ........................................................................................................................................................... 4 -Von Neumann x Harvard ................................................................................................................................ 4 -Equipamentos que utilizam a arquitetura Harvard........................................................................................ 5 -RISC x CISC ...................................................................................................................................................... 5 Dia 19 de fevereiro de 2014. .............................................................................................8 Microprocessadores x Microcontroladores .................................................................................................... 8 Bits, Flags, Nibles, Bytes e Words. ................................................................................................................... 8 Dia 26 de fevereiro de 2014. .............................................................................................9 - PIC16F887 ...................................................................................................................................................... 9 CPU RISC de alta performance ........................................................................................................................ 9 Características especiais do microcontrolador ............................................................................................... 9 Características de baixo consumo: .................................................................................................................. 9 Características dos periféricos....................................................................................................................... 10 Dia 09 de março de 2014 .................................................................................................11 Estrutura interna do PIC16F887. ................................................................................................................... 11 Alguns exemplos do compartilhamento de pinos. ........................................................................................ 12 Dia 16 de abril de 2014. ..................................................................................................14 O que é ciclo de máquina? ............................................................................................................................ 14 Memória de programa. ................................................................................................................................. 14 - Vetor de reset.............................................................................................................................................. 15 - Vetor de interrupção. .................................................................................................................................. 15 - Tamanho da memória e páginas de memória. ........................................................................................... 15 - Pilha (stack). ................................................................................................................................................ 16 Set de instruções. .......................................................................................................................................... 16 Dia 05 de fevereiro de 2014. Apresentação – conversa com os alunos. Neste dia houve uma conversa com alunos para conhecimento e esclarecimento de alguns tópicos como: - Proibição do uso do celular ou outros que façam uso de fones de ouvido ou reprodução de tipos diversos de mídia na sala de aula, proibição essa imposta pelos órgãos competentes da área da educação e que o colégio bem como seus colaboradores devem fazer cumprir. - Comportamento, procurar dar o exemplo de conduta e esperar ser seguido. - A apresentação propriamente dita, vestir-se adequadamente e proibição do uso de boné, gorro, toca ou outro tipo qualquer de acessório para uso na cabeça, também essas são regras. - Possíveis métodos de avaliação como trabalhos, chamada oral, prova bimestral ou outros. Dia 12 de fevereiro de 2013. -Processador O processador é a unidade central de processamento de um computador ou sistema computacional, normalmente é um circuito integrado que executa instruções de máquina realizando diversos cálculos e tomadas de decisão, o que o torna o cérebro do computador, pois todas as tarefas são executas por ele. Este componente processa os dados que recebe, transformando-os em outros dados que chamamos de informação, todo processamento realizado é controlado por um programa desenvolvido por um analista e implementado por um profissional programador ou equipe desses a fim de realizar uma determinada tarefa ou um lote de tarefas com volumes diversos, precisão e velocidade, que é o principal objetivo dos sistemas computacionais. O processador também é denominado CPU (Central Processing Unit) ou UCP (Unidade Central de Processamento). Microprocessador é o nome dado ao processador usado em PCs (Computadores Pessoais), servidor, notebook, Workstation e mainframe usados por pessoas, empresas e instituições em geral e se deve ao fato das técnicas de construção dos chips que usam uma grande escala de integração de componentes, ou seja, milhões de componentes discretos em uma pequena pastilha, normalmente de silício que formam o componente em questão. Arquitetura VON NEUMANN x HARVARD -Von Neumann: A Arquitetura de Von Neumann (de John Von Neumann) é uma arquitetura de computador que se caracteriza pela possibilidade de uma máquina digital armazenar seus programas no mesmo espaço de memória que os dados, podendo assim manipular tais programas e dados com um único barramento. A máquina proposta por Von Neumann reúne os seguintes componentes: (I) uma memória, (II) uma unidade aritmética e lógica (ALU), (III) uma unidade central de processamento (CPU), composta por diversos registradores, e (IV) uma Unidade de Controle (CU), cuja função é a mesma da tabela de controle da Máquina de Turing universal: buscar um programa na memória, instrução por instrução, e executá-lo sobre os dados de entrada. Cada um dos elementos apresentados é realizado à custa de componentes físicos independentes, cuja implementação tem variado ao longo do tempo, conforme a evolução das tecnologias de fabricação, desde os relés eletromagnéticos, as válvulas, até aos semicondutores, abrangendo os transistores e os circuitos integrados, com média, alta ou muito alta densidade de integração (MSI medium scale, LSI - large scale, ou VLSI - very large scale integration), medida em termos de milhões transistores por pastilha de silício. As interações entre os elementos exibem tempos típicos de instrução que também têm variado ao longo do tempo, conforme as tecnologias de fabricação. Atualmente, as CPUs processam instruções sob o controle de relógios cujos períodos típicos são da ordem de menos de 1 nanosegundo, ou seja, 1−9 segundos. O mesmo vem acontecendo com as memórias que tem velocidade de barramentos de 800MHz a 2,4GHz. Outras tecnologias são as portas USB, que na sua versão mais recente USB3.0 pode transferir dados a uma velocidade de até 4,8Gbps. -Harvard: A Arquitetura de Harvard baseia-se em um conceito mais recente que a de Von-Neumann, tendo vindo da necessidade de por o microcontrolador para trabalhar mais rápido. É uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador. Baseia-se na separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados, permitindo que um processador possa acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de Von Neumann, pois pode buscar uma nova instrução enquanto executa outra. A principal vantagem desta arquitetura é dada pela dupla ligação às memórias de dados e programa (código), permitindo assim que o processador leia uma instrução ao mesmo tempo em que faz um acesso à memória de dados. -Von Neumann x Harvard Nessas distintas arquiteturas, temos vantagens e desvantagens, como se pode observar a seguir: Arquitetura tipo Harvard: Caminhos de dados e de instrução distintos, dessa forma, seus componentes internos têm a seguinte disposição. Arquitetura Von-Neumann, processa uma única informação por vez, visto que nessa tecnologia as instruções e dados percorrem o mesmo barramento, o que torna o processo lento em relação à arquitetura Harvard. - Von Neumann Arquitetura mais simples. Mais lento, pois não permite acesso simultâneo a dados e instruções. Geralmente CISC. Alguns exemplos de componentes com arquitetura Von Neumann: - 4004 – processador com 46 instruções. - 8080 – Processador com 78 instruções. - 8085 – Processador com 150 instruções. - Z80 – Processador com mais de 500 instruções. - 8051 – Microcontrolador com 111 instruções. - Harvard Arquitetura mais complexa. Mais rápido, pois permite acesso simultâneo a dados e instruções. Geralmente RISC Permite o Pipelining. Alguns exemplos de componentes com arquitetura Von Neumann: - Intel 8086 e 8088 - Microcontroladores PIC – 35 instruções na versão PIC16. Normalmente a arquitetura Havard também possui um repertório com menos instruções do que a de Von-Neumann. Os microcontroladores com arquitetura Havard são também conhecidos como "microcontroladores RISC" (Reduced Instruction Set Computer - Computador com Conjunto Reduzido de Instruções), e os microcontroladores com uma arquitetura Von-Neumann, são conhecidos como "microcontroladores CISC" (Complex Instruction Set Computer - Computador com um Conjunto Complexo de Instruções), apesar de isso não ser uma regra. -Equipamentos que utilizam a arquitetura Harvard: Os PICs (microcontroladores PIC) são uma família de microcontroladores fabricados pela Microchip Technology, que processam dados de 8 bits, de 16 bits e mais recentemente 32 bits, com extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de instruções RISC (componentes que começam com conjuntos de 35 instruções), com recursos de programação por Memória flash, EEPROM e OTP. Os microcontroladores PIC têm famílias com núcleos de processamento de 12 bits, 14 bits e 16 bits e trabalham em velocidades de 0kHz (ou DC) a 48MHz, usando ciclo de instrução de 4 períodos de clock, o que permite uma velocidade de no máximo 12 MIPS para essas famílias, podendo ser mais rápidos em outras famílias. Há o reconhecimento de interrupções tanto externas como de periféricos internos. Funcionam com tensões de alimentação de 2 a 6V e os modelos possuem encapsulamento de 6 a 100 pinos em diversos formatos (SOT23, DIP, SOIC, TQFP, etc.). Fonte: http://sistemasuniban.blogspot.com.br/2010/04/arquiterura-von-neumann-vs-harvard.html -RISC x CISC CISC - (sigla para Complex Instruction Set Computer, ou, em uma tradução literal, "Computador com um Conjunto Complexo de Instruções"): é uma linha de arquitetura de processadores capaz de executar centenas de instruções complexas diferentes sendo, assim, extremamente versátil. Exemplos de processadores CISC são os 386 e os 486 da Intel. Os processadores baseados na computação de conjunto de instruções complexas contêm uma micro programação, ou seja, um conjunto de códigos de instruções que são gravados no processador, permitindo-lhe receber as instruções dos programas e executá-las, utilizando as instruções contidas na sua micro programação. Seria como quebrar estas instruções, já em baixo nível, em diversas instruções mais próximas do hardware (as instruções contidas no microcódigo do processador). Como característica marcante esta arquitetura contém um conjunto grande de instruções, a maioria deles em um elevado grau de complexidade. Examinando do ponto de vista um pouco mais prático, a vantagem da arquitetura CISC é que já temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho dos programadores de linguagem de máquina; disponibilizando, assim, praticamente todas as instruções que serão usadas em seus programas. Os processadores CISC têm a vantagem de reduzir o tamanho do código executável por já possuírem muito do código comum em vários programas, em forma de uma única instrução. Porém, do ponto de vista da performance, os CISCs têm algumas desvantagens em relação aos RISCs, entre elas a impossibilidade de se alterar alguma instrução composta para se melhorar a performance. O código equivalente às instruções compostas do CISC pode ser escrito nos RISCs da forma desejada, usando um conjunto de instruções simples, da maneira que mais se adequar. Sendo assim, existe uma disputa entre tamanho do código X desempenho. RISC - Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instruções (RISC), é uma linha de arquitetura de processadores que favorece um conjunto simples e pequeno de instruções que levam aproximadamente a mesma quantidade de tempo para serem executadas. Muitos dos microprocessadores modernos são RISCs, por exemplo DEC Alpha, SPARC, MIPS, e PowerPC. Os computadores atuais mixam as duas arquiteturas, criando o conceito de arquitetura híbrida, incorporando os conceitos das duas arquiteturas e a inclusão de um núcleo RISC aos seus processadores. O tipo de microprocessador mais comum em desktops, o x86, é mais semelhante ao CISC do que ao RISC, embora chips mais novos traduzam instruções x86 baseadas em arquitetura CISC em formas baseadas em arquitetura RISC mais simples, utilizando prioridade de execução. Os processadores baseados na computação de conjunto de instruções reduzidas não têm micro programação, as instruções são executadas diretamente pelo hardware. Como característica, esta arquitetura, além de não ter microcódigo, tem o conjunto de instruções reduzidas, bem como baixo nível de complexidade. A ideia foi inspirada pela descoberta de que muitas das características incluídas na arquitetura tradicional de processadores para ganho de desempenho foram ignoradas pelos programas que foram executados neles. Mas o desempenho do processador em relação à memória que ele acessava era crescente. Isto resultou num número de técnicas para otimização do processo dentro do processador, enquanto ao mesmo tempo tentando reduzir o número total de acessos à memória. RISC é também a arquitetura adotada para os processadores dos videogames modernos, que proporcionam um hardware extremamente dedicado somente à execução do jogo, tornando-o muito mais rápido em relação a micro computadores com mais recursos, embora com processador x86. Seguem alguns links sobre as diferenças, vantagens e desvantagens destes dois sistemas de processadores quanto ao conjunto de instruções que pode caracterizar um componente como RISC ou CISC. http://www.gruponetcampos.com.br/2011/03/arquitetura-cisc-e-risc-qual-diferenca/ http://pt.wikipedia.org/wiki/CISC Dia 19 de fevereiro de 2014. Microprocessadores x Microcontroladores Basicamente podemos dizer que: - Microprocessador é um componente eletrônico composto por uma unidade central de processamento, barramento de endereço, barramento de dados e barramento de controle, não possui memória nem periféricos (temporizadores, conversores ADC ou DAC, hardware de comunicação serial, entre outros), devendo esses serem ligados externamente no projeto computacional que usa o Microprocessador escolhido. - Microcontrolador é um componente eletrônico que tem os mesmos recursos do microprocessador, porém já tem em seu chip a memória de programa, a memória de dados e vários periféricos, tudo em um encapsulamento único. Bits, Flags, Nibles, Bytes e Words. Em sistemas computacionais eletrônicos a base numérica é a binária, onde os dígitos variam entre 0 e 1, onde o 0 equivale a 0Vcc ou estar ligado ao GND do circuito e o 1 equivale a +Vcc, ou seja, em um circuito alimentado por +5Vcc essa será a tensão equivalente ao digito 1. Cada dígito pode ser tratado de maneira individual ou em conjunto o que nos dá as seguintes possibilidades: Bit - Um bit é a menor unidade em um sistema digital podendo, por exemplo, endereçar apenas duas possibilidades, 0 e 1. Flag - Um flag contém apenas um bit e normalmente é parte de um byte, mas especificamente um registrador, em sistemas computacionais microcontrolados os registradores são amplamente usados para configurar dispositivos ou representar o status dos dispositivos, um flag pode ser usado, por exemplo, para ligar ou desligar um determinado dispositivo ou periférico do microcontrolador em uso. Nibles - Um nible é um conjunto de 4 bits o que permite 16 combinações. Byte - Um byte é um conjunto de 8 bits, ou dois nibles, que permite 256 combinações, é a unidade mais usada para determinar capacidades de armazenamento e também transferências de dados digitais, também pode ser usada com seus multiplicadores mais comuns, Kbytes, Mbytes entre outros. Word - Em sistemas computacionais de estrutura Harvard como os PICs os barramentos podem ter tamanhos que não são bit, nibles ou bytes esses barramentos podem ter tamanhos de 12, 14, 16 ou outras capacidades em bits, para esses tamanhos de barramentos damos o nome de words. Dia 26 de fevereiro de 2014. - PIC16F887 O microcontrolador escolhido para nossos estudos é o PIC16F887, um microprocessador da família de 8bits da MICROCHIP que pode ser encontrando e vários encapsulamentos entre eles o DIP de 40 pinos o que facilita seu uso prático, seguem abaixo as principais características deste PIC: CPU RISC de alta performance. • • • • • • • • Apenas 35 instruções. Maioria das instruções realizadas em um ciclo de máquina exceto as de desvio. Velocidade de operação de DC a 20MHz com ciclo de DC a 200ns. Capacidade de interrupção. Pilha com 8 endereços de retorno por hardware. 8K x 14 words de memória de programa flash. 368 bytes de memória RAM. 256 bytes de memória EEPROM. Características especiais do microcontrolador. • • • • • • • • • • • • Oscilador interno de precisão. o Calibrado em fábrica com precisão de 1%. o Frequências de 31KHz a 8MHz selecionável por software. o Ajuste fino via software. o Modo de partida com duas velocidades. o Detector de falha no oscilador a cristal para operações críticas. o Troca o tipo de oscilador durante a execução do programa para baixar consumo. Função SLEEP para redução de consumo. Tensão de trabalho de 2,0Vcc a 5Vcc. Faixa de temperatura de trabalho industrial e estendida. Power On Reset (POR). Power-up Timer (PWRT) e Oscillator Start-up Timer (OST). Brown-out Reset (BOR) com opções de controle por software. Watchdog Timer (WDT) melhorado com baixo consumo, com oscilador interno (selecionável por software até 268 segundos com o uso de prescaler) e controle de habilitação por software. Proteção de código de programa. Alta capacidade de gravação das memórias FLASH e EEPROM: o 100.000 de ciclos de escrita para a memoria FLASH. o 1.000.000 de ciclos de escrita para a memoria EEPROM. o Mínimo de 40 anos de retenção dos dados das memorias FLASH e EEPROM. A memória de programa pode ser gravada durante a execução do programa. Capacidade de gravação e depuração In Circuit. Características de baixo consumo: • Corrente de Standby: - 50 nA @ 2.0V • Corrente de operação: - 11 µA @ 32 kHz, 2.0V - 220 µA @ 4 MHz, 2.0V • Corrente do circuito de Watchdog Timer: - 1 µA @ 2.0V Características dos periféricos. • • • • • • • • • • • Até 35 pinos de I/O com controle individual de direção. o Capacidade de fornecer ou drenar até 20mA por pino. o Interrupção por mudança de estado. o Programação individual de resistores de PULL-UP. o Ultra Low-Power Wake-up (ULPWU). Módulo comparador analógico com: o Dois comparadores analógicos. o Tensão de referencia interna programável em % da alimentação (CVref). o Tensão de referencia fixa de 0,6V. o Acesso externo às entradas e saídas dos comparadores. o Pode ser usado para habilitar ou desabilitar o TIMER1. Conversor análogo digital: o Até 14 canais com 10 bits de resolução. TIMER0 – Temporizador e contador de 8 bits com prescaler programável de 8 bits. TIMER1 – timer melhorado: o Temporizador e contador de 16 bits com prescaler. o Modo de entrada com gate externo. o Opção de oscilador interno de 32Khz. TIMER2 – Temporizador e contador de 8 bits, registrador de período, prescaler e postscaler. Módulo de captura, comparação e PWM melhorado. o 16 bits de captura com resolução máxima de 12,5nS. o Comparador com resolução máxima de 200nS. o PWM com 10 bits de resolução, tempo morto programável, frequência máxima de 20KHz e 1, 2 ou 4 saídas. Módulo de captura, comparação e PWM: o 16 bits de captura com resolução máxima de 12,5nS. o Comparador de 16 bits com resolução máxima de 200nS. o PWM com resolução de 10 bits e frequência máxima de 20KHz. Módulo UART melhorado: o Suporta RS485, RS232 e LIN 2.0. o Detecção automática de velocidade de transmissão. o Pode tirar o microcontrolador do estado de SLEEP no START BIT. In Circuit Serial Programing (ICSP) programação do chip diretamente no circuito via dois pinos. Master Synchronous Serial Port (MSSP) – este módulo suporta os 4 modos de comunicação SPI a 3 fios e os modos mestre e escravo do I2C com máscara de endereço. Dia 09 de março de 2014 Estrutura interna do PIC16F887. Na figura abaixo podemos identificar vários dos conceitos explicados anteriormente, entre eles podemos destacar: • • • Mais de um barramento como “DATA BUS”, usado para trafego de dados entre a ALU (Aritmetic Logic Unit – Unidade Lógica e Aritmética) e memória e periféricos do nosso chip, característica da arquitetura Von Neumann. Uso de vários tipos de memória como a RAM para registradores e dados, memória Flash para programa e EEPROM para armazenamento dados não voláteis. Os vários recursos do microcontrolador como os Timers, conversor AD entre outros. Alguns exemplos do compartilhamento de pinos. Notem no desenho acima que os pinos RB0 a RB3 estão sendo usados como entradas (leitura de teclas) e como saídas (acionamento dos LEDS), notem ainda que a porta D (RD0 a RD7) está sendo usada para acionar 04 displays de 7 segmentos a LED usando uma varredura com os pinos RB4 a RB7 e os transistores Q1 a Q4. O uso dos pinos como entrada e como saída para poder ler uma tecla e também acionar o LED pode ser necessário dependendo do custo da sua aplicação e é controlado por software, fazendo as funções de entrada e saída se alternarem em tempos curtos e relativamente precisos a fim de poderem ler as teclas com boa precisão e ao mesmo tempo conseguir dar ao usuário da aplicação uma diferença bastante nítida dos estados de apagado e aceso do LED, bem como a varredura dos displays que devem oferecer uma boa nitidez e clareza para sua leitura. No exemplo abaixo temos a ligação de um display LCD de caracteres ligados à porta D, um teclado configurado como matriz de 3 colunas e 4 linhas ligados à porta B, um botão ligado ao pino RA0, dois LEDs ligados aos pinos RE0 e RE1 e um relé ligado ao pino RE2. Notem que foram usados resistores de pull-down (ligados ao terra) nos pinos do LCD, o que não é necessário tendo em vista que os pinos da porta D podem impor tanto o nível alto como o nível baixo quando configurados como saída. VDD U1 +88.8 RV1 13 14 1 Volts 50% +88.8 mA 1k +88.8 2 3 4 5 6 7 Volts 8 9 10 OSC1/CLKIN OSC2/CLKOUT MCLR/Vpp/THV U2 RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD RA0/AN0 RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CKI RA5/AN4/SS RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RE0/AN5/RD RC2/CCP1 RE1/AN6/WR RC3/SCK/SCL RE2/AN7/CS RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT VSS RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16877 33 34 35 36 37 38 39 40 3 4 7 8 13 14 17 18 15 16 17 18 23 24 25 26 1 11 19 20 21 22 27 28 29 30 D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19 D0 D1 D2 D3 D4 D5 D6 D7 D[0..15] +5V OE LE D[0..15] 74LS373 U3 3 4 7 8 13 14 17 18 1 11 D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19 D8 D9 D10 D11 D12 D13 D14 D15 OE LE 74LS373 No esquema acima podemos ver uma aplicação não muito comum, pois faz uso de displays de 7 segmentos hexadecimais e usa 2 CIs 74LS373 que são buffers com retenção para multiplexar, em conjunto com os pinos RD6 e RD7 os pinos da porta B, e o pino RA0 está sendo usado como entrada analógica. Dia 16 de abril de 2014. O que é ciclo de máquina? O que se deve saber é que nesse microcontrolador a frequência do clock interno equivale a ¼ da frequência do clock do circuito oscilador escolhido, ou seja, se tivermos um cristal de 4MHz ligado aos pinos CLKIN / CLKOUT do PIC a frequência usada como referencia interna para processamento e periféricos que façam uso do clock será de 1MHz. Abaixo é possível ver um gráfico de tempo que explica melhor essa técnica: Notem que no primeiro ciclo de máquina é buscada(fetch 1) a primeira instrução no próximo ciclo ela é executada(execute 1) e ao mesmo tempo é buscada(fetch 2) a segunda instrução e assim por diante, isso ocorre até encontrar uma instrução de salto (CALL SUB_1), nesse momento também é buscada a instrução seguinte porém durante a execução da instrução CALL a próxima instrução buscada é descartada e será realizado o salto para a rotina SUB_1. O que significa que a grande maioria das instruções do PIC são realizadas em um único ciclo de maquina, exceto aquelas de salto e algumas condições de teste como indicada no data sheet. Memória de programa. A memória deste chip tem um tamanho de 8Kword, cada Word tem 14 bits e fica armazenada em uma memória flash, esta é uma memória não volátil que pode ser gravada por hardware externo (gravador) ou pode ser gravada pelo software da sua aplicação o que possibilita um software dinâmico ou ainda a implantação da técnica de boot loader, pequeno programa que pode ser usado por exemplo para que o usuário da aplicação faça as atualizações disponibilizadas do firmware, outra opção é o uso desta memória como uma expansão da EEPROM existente no chip. Outras características importantes desta memória são: - Vetor de reset. Neste chip o vetor de reset é o endereço 0x0000, endereço inicial da memória e destino do contador de programa (PC Program Counter) sempre que o chip é devidamente alimentado ou que o pino MCLR recebeu um pulso de reset (pulso negativo). - Vetor de interrupção. Todos os periféricos deste chip inclusive o pino INT (entrada de interrupção externa) podem gerar uma interrupção para o programa principal, apesar de existirem neste chip 15 fontes de interrupção todas usam o mesmo vetor, este vetor é o endereço 0x0004 da memória de programa. - Tamanho da memória e páginas de memória. Como descrito acima a memória deste chip é de 8Kword, ou seja, 8.192 endereços de programa e cada endereço é composto por uma palavra (Word) de 14 bits, isso gera um problema de gerenciamento dos endereços, ou seja, para endereçar 9.192 endereços são necessários 13 bits e a Word tem apenas 14 bits, porém essa Word tem que conter o opcode (código da instrução) e o endereço do salto. Veja alguns exemplos de opcode de instruções de salto: Instrução CALL OPCODE 100 KKK KKKK KKKK GoTo 101 KKK KKKK KKKK Obs KKK KKKK KKK equivalem a 11 dos 13 bits do endereço de destino KKK KKKK KKK equivalem a 11 dos 13 bits do endereço de destino Para solucionar o problema a memória de programa foi dividida em 04 páginas de 2.048 endereços cada página e foi implementado um registrador PCLATCH para armazenar dois bits que são os bits mais significativos para completar o endereço. Veja abaixo uma representação das páginas de memória do chip. - Pilha (stack). A pilha de memória é um bloco na memória separado para armazenar endereços de retorno das instruções de chamada de sub rotinas e interrupção, ou seja, sempre que ocorre um desvio do programa para atender a uma interrupção ou a uma chamada de sub rotina o endereço seguinte ao endereço em execução é salvo nessa memória, no final da rotina uma instrução de retorno da rotina busca na pilha o endereço de retorno para dar continuidade no programa principal. Uma característica importante desta pilha é que ela é limitada em 8 endereços, ou seja, somente será possível atender a 8 chamadas de rotinas ou atendimento de interrupção em sequência, sem que ocorram o encerramentos dessas rotinas por retorno, caso aconteçam mais de 8 chamadas a sub rotinas ao ocorrer a nona chamada o endereço da primeira chamada é perdido e assim por diante. Outra característica é que o tamanho das words da pilha é de 13 bits, ou seja, ela pode armazenar um endereço de retorno completo sem se preocupar com as páginas do endereço, no entanto no caso de chamadas de sub rotinas por software (CALL) deve-se antes ajustar o PCLATCH referente ao endereço da rotina que será chamada. Set de instruções. Instrução Descrição Ciclos Status afetado Instruções com registradores em nível de Bytes ADDWF f,d Soma o conteúdo do registro W com o conteúdo de um registrador F qualquer 1 C,DC,Z ANDWF f,d Operação “E” entre o conteúdo do registro W e conteúdo de um registro F qualquer 1 Z CLRF f Limpa o conteúdo de um registrador F qualquer 1 Z CLRW - Limpa o conteúdo do registrador W 1 Z 1 Z COMF f,d Complementa o conteúdo de um registrador F qualquer DECF f,d Decrementa o conteúdo de um registrador F qualquer 1 Z DECFSZ f,d Decrementa o conteúdo de um registrador F qualquer, pula próxima instrução se “zero” 1(2) - INCF f,d Incrementa o conteúdo de um registrador F qualquer 1 Z INCFSZ f,d Incrementa o conteúdo de um registrador F qualquer, pula próxima instrução se “zero” 1(2) - IORWF f,d Operação “OU” entre o conteúdo do registro W e conteúdo de um registro F qualquer 1 Z MOVF f,d Move o conteúdo de um registrador F qualquer 1 Z MOVWF f Move o conteúdo do registro W para um registrador F qualquer 1 - NOP - Consome um ciclo, sem executar nada 1 - RLF f,d Gira a esquerda o conteúdo de um registrador F qualquer, considerando o “Carry” 1 C RRF f,d Gira a direita o conteúdo de um registrador F qualquer, considerando o “Carry” 1 C SUBWF f,d Subtraí o conteúdo do registro W com o conteúdo de um registrador F qualquer 1 C,DC,Z SWAPF f,d Troca os “nibble’s” de um registrador qualquer 1 - XORWF f,d Operação “OU Exclusivo” entre o conteúdo do registro W e conteúdo de um registro F qualquer 1 Z Instruções com registradores em nível de Bit BCF f,b Zera um bit de um registrador F qualquer 1 - BSF f,b Seta um bit de um registrador F qualquer 1 - BTFSC f,b Testa um bit de um registrador F qualquer, pula próxima instrução se igual a zero 1(2) - BTFSS f,b Testa um bit de um registrador F qualquer, pula próxima instrução se igual a “1” 1(2) - Operações com Literais e de controle ADDLW k Soma o valor “k” ao registrador W 1 C,DC,Z ANDLW k Operação “E” entre o valor “k” e o registrador W 1 Z CALL k Chama uma sub-rotina representada por “k” 2 - CLRWDT - Limpa o WatchDog Timer 1 TO,PD GOTO k Desvia para o endereço representado por “k” 2 - IORLW k Operação “OU” entre o valor “k” e o registrador W 1 - MOVLW k Move o valor “k” para o registrador W 1 - RETFIE - Retorno de uma interrupção 2 - RETLW k Retorno de uma sub-rotina com valor “k” no registrador W 2 - RETURN - Retorno de uma sub-rotina 2 - SLEEP - Entra em modo “Standby” 1 TO,TP SUBLW k Subtraí o valor “k” do registrador W 1 C,DC,Z XORLW k Operação “OU Exclusivo” entre o valor “k” e o registrador W 1 Z
Documentos relacionados
Introdução a família de microcontroladores PIC
microcontroladores PIC como, memórias, arquiteturas, formato das instruções, registradores etc... Lets Go... É no ano de 1969 que uma equipa de engenheiros japoneses pertencentes à companhia BUSICO...
Leia mais