Semana da Tecnologia
Transcrição
Semana da Tecnologia
José dos Santos Garcia Neto Microcontroladores Semana da Tecnologia Onde tudo começa ..... O SILÍCIO. Elemento do Químico: Silício Número de período: 3 Símbolo: Si Bloco: p Número atômico: 14 Estado Físico: sólido a 298 K Peso atômico: 28.0855 (3) r Cor: escuro cinzento Número de grupo: 14 Classificação: Semi-metálico Disponibilidade: Silício está presente no sol, nas estrelas e é um componente principal de uma classe de meteoritos. Silício compõe 25.7% da crosta da terra através do peso e é o segundo elemento mais abundante, só perde para o oxigênio. É achado em grande parte como óxidos de silício como areia (sílica), quartzo, cristal de pedra, ametista, ágata, pederneira, jaspe e opala. Também é achado silício em minerais como amiantos, barro e mica. Silício é importante para os vegetais e para a vida animal, é um ingrediente importante na composição do aço. Carboneto de silício é um abrasivos importante. Trabalhadores submetidos ao silício em suspensão por longos períodos, podem contrair doença pulmonar séria conhecida como silicosis. Silício elementar transmite mais que 95% de todos os comprimentos de onda de infravermelho e foi usado em laser para produzir luz coerente a 456 nm. Luz coerente é aquela formada por ondas de mesma freqüência, fase e direção. É a luz que se rege pelo "princípio da coerência". Ciclo parcial da produção de semicondutores. Jazida de Silício Petrolina – Brasil Pastilha unitária de um componente. Produção e dopagem das pastilhas de silício. Pastilhas de silício. Componente semicondutor Configuração física do interior de um microcontrolador, as trilhas no interior dos componentes tem de 0,09 a 0,13 mícron . (1 mícron = 1x10-6 m) HISTÓRICO. Linha do Tempo, Curiosidades, Comparativos Observemos o histórico da evolução das CPU's, seu uso e suas capacidades ao longo do tempo, desde a concepção do Microprocessador em 1969. Através da comparação dos dispositivos que faziam (fazem) uso das diversas tecnologias podemos ter uma noção do desempenho atingido pelas unidades mais famosas . HISTÓRICO. 1969 - Uma equipe de engenheiros japoneses pertencentes à companhia BUSICOM chega aos Estados Unidos com a encomenda de alguns circuitos integrados para calculadoras a serem implementados segundo os seus projetos. A proposta foi entregue à INTEL e Marcian Hoff foi o responsável pela sua concretização. Como ele tinha tido experiência de trabalho com um computador (PC) PDP8, lembrou-se de apresentar uma solução substancialmente diferente em vez da construção sugerida. Esta solução pressupunha que a função do circuito integrado seria determinada por um programa nele armazenado. Isso significava que a configuração deveria ser mais simples, mas também era preciso muito mais memória que no caso do projeto proposto pelos engenheiros japoneses. Depois de algum tempo, embora os engenheiros japoneses tenham tentado encontrar uma solução mais fácil, a idéia de Marcian venceu e o primeiro microprocessador nasceu. Ao transformar esta idéia num produto concreto, Frederico Faggin foi de uma grande utilidade para a INTEL. Ele transferiu-se para a INTEL e, em somente 9 meses, teve sucesso na criação de um produto real a partir da sua primeira concepção. Em 1971, a INTEL adquiriu os direitos sobre a venda deste bloco integral. Primeiro eles compraram a licença da companhia BUSICOM que não tinha a mínima percepção do tesouro que possuía. Neste mesmo ano, lançou no mercado um microprocessador designado por 4004. OBS: História do microprocessador visto do lado de Busicom. A gestão Busicom concordou no novo design Marcian Hoff e os chips foram entregues no final de 1970. Em meados de 1971 a Busicom, que tinha direito exclusivo sobre o projeto e seus componentes, pediu a Intel para baixar os seus preços. A Intel renegociou seu contrato e Busicom desistiu de seus direitos exclusivos para os chips de [4]. Poucos meses depois, no dia 15 de novembro de 1971, a Intel anunciou a disponibilidade imediata da primeira família de microprocessadores do chipset, a MSC-4 (todos a partir da concepção BUSICOM) com um anúncio na Electronic News. HISTÓRICO. 1944 - Harward – Mark I A IBM Automatic Sequence Controlled Calculator (ASCC), chamado de Mark I pela Universidade de Harvard, foi o primeiro grande computador digital automático no E.U.A.. É considerado por alguns como a primeira calculadora universal. O ASCC eletromecânica foi concebido por Howard H. Aiken, construído na IBM e enviado para Harvard em fevereiro de 1944. Iniciou-se os cálculos para a Marinha E.U. Bureau de Navios em maio e foi apresentado oficialmente para a universidade em 7 de agosto de 1944. A principal vantagem o Mark I era que era totalmente automático não precisa de nenhuma intervenção humana uma vez que inicio o trabalho. Foi o primeiro computador totalmente automático a ser concluído. Foi também muito confiável, muito mais cedo do que computadores eletrônicos. É considerado como "o início da era do computador moderno" [3] e "o verdadeiro amanhecer da era do computador”. O programa era armazenado em cartões perfurados, enquanto que os dados eram acessados em uma memória independente baseada em lógica eletromecânica de reles. HISTÓRICO. 1970 - Central Air Data Computer (US-Navy) – MP944 Concebidos e desenvolvidos entre Junho de 1968 e concluído em Junho de 1970. Este conjunto de chips de computador altamente integrado foi projetado para o "TomCat E.U. Marinha F14A Jet Fighter" pelo Sr. Steve Geller e Ray Holt enquanto trabalhava para Garrett Corp AiResearch sob contrato da Grumman Aircraft, o contratante principal para a Marinha E.U.A. O MOS-LSI chips foram fabricados pela American Microsystems. 1971 - Intel 4004 – O primeiro microprocessador comercial (1971) Processador de 4-bit 4004 Clock de 108 kHz 2300 transistors Velocidade estimada de 0.06 MIPS. 1971 - Texas Instruments - TMS 1000 Texas Instruments TMS1000 família de microcontroladores de 4-bit foi introduzido em 1974. O TMS 1000 microcontroladores tinha projeto muito simples, apenas 2 4-bit registros gerais, 43 instruções (expandido para 54 instruções em TMS1100/TMS1300), 1-nível de profundidade da pilha, mude registro contador de programa e sem interrupções. HISTÓRICO. 1972 - Intel 8008 A Americana CTC pediu à INTEL e à Texas um microprocessador de 8 bits para usar em terminais. Mesmo apesar da CTC acabar por desistir desta idéia, tanto a Intel como a Texas continuaram a trabalhar no microprocessador e, em Abril de 1972, os primeiros microprocessadores de 8 bits apareceram no mercado com o nome de 8008 (Intel). Endereçava 16KB de memória, 45 instruções e velocidade de 300 000 operações por segundo. Esse microprocessador foi o precursor dos microprocessadores atuais 1973 - Texas Instruments - U.S. Patent 3,757,306 HISTÓRICO. 1974 –Intel 8080 O microprocessador Intel 8080 foi lançado em abril de 1974, como uma evolução do 8008.O 8080 é um microprocessador encapsulado em um único microchip LSI (Large Scale Integration) com 40 pinos DIP (dual inline packaging), tem um ciclo de máquina de 72 micro-segundos e possui um conjunto de 72 instruções. Ele possui um barramento de dados bidirecional de 8 bits e um barramento de endereços (unidirecional) de 16 bits, permitindo endereçar 64k bytes. Pode endereçar até 256 portas de entrada e 256 de saída compatível TTL (Transistor-toTransistor Logic). Preços a partir de $360. 1974 –Motorola 6800 O 6800 foi o primeiro microprocessador de 8 bits produzido pela Motorola, lançado no mercado pouco depois do Intel 8080 em fins de 1974. Possuía 78 instruções, incluindo a infame e não-documentada instrução de teste de barramento Halt and Catch Fire (HCF). Pode ter sido o primeiro microprocessador com um registrador de índice. 1974 –Motorola 6800 Contudo, os outros não baixaram os braços. Frederico Faggin deixa a Intel e funda a Zilog Inc. Em 1976, a Zilog anuncia o Z80. HISTÓRICO. 1976 – Zilog Z80 Frederico Faggin deixa a Intel e funda a Zilog Inc. Em 1976, a Zilog anuncia o Z80. Durante a concepção deste microprocessador, Faggin toma uma decisão crítica, e ele decide que o novo microprocessador deve ser compatível com o 8080 que até então dominava o mercado. Outras características adicionais foram introduzidas, de tal modo que o Z80 se tornou um microprocessador muito potente no seu tempo. Ele podia endereçar diretamente 64KB de memória, tinha 176 instruções, grande número de registros, refresh de memória RAM dinâmica, uma única alimentação, maior velocidade de funcionamento e outras. O Z80 tornou-se um grande sucesso e muitos projetos transferiram-se do 8080 para o Z80. Pode dizer-se que o Z80 se constituiu sem sombra de dúvida como o microprocessador de 8 bits com maior sucesso no seu tempo. Além da Zilog, outros novos fabricantes como Mostek, NEC, SHARP e SGS apareceram. O Z80 foi o coração de muitos computadores como o Spectrum, Partner, TRS703, Z-3 e Galaxy, que foram aqui usados. 1976 –Intel 8085 Em 1976, a Intel lança uma versão melhorada do microprocessador de 8 bits é a linha 8085. Contudo, o Z80 era tão superior a este que, que bem depressa, a Intel perdeu a batalha. Ainda que mais alguns microprocessadores tenham aparecido no mercado (6809, 2650, SC/MP etc.), tudo estava decidido. Já não havia mais grandes melhorias a introduzir pelos fabricantes que fundamentassem a troca por um novo microprocessador, assim, o 6502 e o Z80, acompanhados pelo 6800, mantiveram-se como os mais representativos microprocessadores de 8 bits desse tempo. HISTÓRICO. 1977 - Apple II - MOS 6502 (1 MHz) 1977 - Atari 2600 – MOS 6507 (1,19 MHz ) 1978 - Intel 8086 (4,77 Mhz) 1978 - Texas Instruments - Speak & Spell - TMS 1000 HISTÓRICO. 1978 - Magnavox Odyssey² - Intel 8048 (1,79 MHz) 1979 - Motorola 6808 (1 MHz) 1980 - Intel 8051(NMOS) / 80C51(CMOS) (12 MHz ) 1980 - General Instrument - PIC1650 ("Programmable Intelligent Computer") (1 MHz) HISTÓRICO. 1982 - Motorola 68000 (68 k) - 16 bit ( 8 Mhz ) 1982 - Sinclair Zx Spectrum - Z80 ( 3,50 MHz ) 1982 - Intel 80186 ( 6,0 MHz ) 1982 - Intel 80286 ( 8,0 MHz ) HISTÓRICO. 1983 - Intel 8088 ( 4,77 MHz ) 1983 - IBM PC-XT - Intel 8085/8086/8088 ( 4,77MHz ) 1983 - MSX - Z80 ( 3,58 MHz ) 1983 - Nintendo NES - MOS 6502 ( 1,79 MHz ) HISTÓRICO. 1984 - Apple Macintosh - Motorola 68000 ( 8 MHz ) 1985 - Sega Master System - Z80 ( 3.54MHz ) 1986 - Intel 80386 - 32 bit ( 25 MHz ) 1988 - Sega Mega Drive - 68000 (7,67 MHz ) e Z80 ( 3,58 MHz ) HISTÓRICO. 1989 - Nintendo Game Boy - Z80 ( 4,19 MHz ) 1989 - Intel 80486 (33 MHz ) 1989 - General Instrument >> Microchip PIC (Peripheral Interface Controller) HISTÓRICO. 1990 - SNK Neo-Geo - 68000 (12 MHz) e Z80 (4 MHz) 1990 - Sega Game Gear - Z80 ( 3,58 MHz ) 1990 - Nintendo Super-NES - WDC 65c816 ( 3.58 MHz ) HISTÓRICO. 1990 - HP 48G - HP Saturn Yorke ( 4 MHz ) 1991 - AIM Alliance (Apple/IBM/Motorola) 1991 - AIM - PowerPC 601 (G1) ( 60 MHz ) 1992 - MIPS lança a primeira CPU de 64 bit 1992 - MIPS R4000 ( 100 MHz ) (SGI) 1993 - Intel 80586 (Pentium) - ( 75 MHz ) HISTÓRICO. 1993 - Atari Jaguar - 68000 ( 25,59 MHz ) 1993 - Panasonic 3DO - ARM60 ( 12,5 MHz ) 1994 - Motorola - 68060 ( 50 MHz ) HISTÓRICO. 1994 - Sony Playstation - MIPS R3000 ( 33,87 MHz ) 1994 - Sega Saturn - 2x SuperH2 - 32-bit (28,6 MHz) 1995 - AIM PowerPC (620/630) - 64-bit (G2) 1995 - Intel Pentium Pro ( 166 MHz ) HISTÓRICO. 1996 - Nintendo 64 - NEC VR43009 ( 93,75 MHz ) 1996 - Us Robotics PalmPilot 1000 - 68328 (16 MHz ) 1996 - Atmel - AVR (AT90S) ( 8 MHz ) 1997 - AIM - PowerPC (740/750)(G3) ( 366 MHz ) 1997 - Intel Pentium MMX ( 166 MHz ) 1997 - Intel Pentium II - ( 233 MHz ) HISTÓRICO. 1998 Sega Dreamcast - Hitachi SuperH4 ( 200 MHz ) 1998 - Apple iMac - 233 MHz PPC G3 (PowerPC 750) 1999 - Intel Pentium III ( 450 MHz ) 1999 - HP 49G - HP Saturn York ( 4 MHz ) HISTÓRICO. 1999 - AIM - PPC (7400/7410)(G4) ( 550 MHz ) 2000 - Intel Pentium IV ( 1,4 GHz ) 2000 - Sony Playstation 2 -"Emotion Engine"(Toshiba/ Sony) (MIPS R5900) ( 294 MHz ) 2001 - Nintendo Game Cube - PPC 750 (G3) (485 MHz ) HISTÓRICO. 2001 - MS Xbox - Pentium/Celeron ( 733 MHz ) 2002 - Apple iPod – 2 x ARM 7 ( 90 MHz ) 2003 - Atmel - AVR Mega (ATmega) ( 16 MHz ) 2003 - HP 49G+ - ARM ( 75MHz ) HISTÓRICO. 2003 - Motorola >> Freescale (Spin-Off) 2003 - IBM PPC 970 (G5) ( 2 GHz ) 2004 - Nintendo DS - ARM946E-S (67 MHz) e ARM7 (33 MHz) 2004 - Sony Playstation Portable - MIPS R4000 ( 222 MHz ) HISTÓRICO. 2005 - MS Xbox 360 - PPC Tri - Core ( 3,2 GHz ) 2006 - Atmel - AVR 32-Bit (AT32) (133 MHz ) 2006 - Sony Playstation 3 - 3,2 GHz Cell Broadband Engine with 1 PPE and 7 SPEs – 2006 2006 - Intel Core Duo – 64 bit ( 1,8 GHz ) HISTÓRICO. 2006 - Nintendo Wii - IBM PowerPC - ( 729MHz ) REFERÊNCIAS 1-Augarten S.: Bit by Bit, page 261, Ticknor & Fields, 1984 2-Stine, G.H., The Untold Story of the Computer Revolution, page 163, Arbor House, 1985 3-Augarten S.: Bit by Bit, page 262-263, Ticknor & Fields, 1984 4-Reid, T.R.: The Chip, Page 141-142, Simon and Schuster, 1984 5-http://www.cpu-museum.com/4004_e.htm#Busicom%20141-PF Busicom 141-FP 5-Calculateur Busicom HL-21 6-Pocket-size calculator Busicom LE-120A "HANDY-LE" 7-Augarten S.: Bit by Bit, page 263-265, Ticknor & Fields, 1984 8-Agreement between Intel & NCM 9-http://en.wikipedia.org/wiki/Busicom Citação: Motorola (1976) escreveu: «"Lançamos nosso microprocessador M6800 em fins de 1974 e ele conquistou ampla aceitação pela indústria em 1975.” Wheeler, Gerry (Dezembro de 1977). "Undocumented M6800 Instructions". BYTE 2 (12): 46-47. Halt and Catch Fire instruction http://www.cpu-world.com/CPUs/TMS1000/index.html http://wwwusers.rdc.puc-rio.br/rmano/i8080.html http://www.mikroelektronika.co.yu/portuguese/index.htm Picbook-pt.pdf http://pt.wikipedia.org/wiki/Apple_II http://pt.wikipedia.org/wiki/Atari_2600 http://pt.wikipedia.org/wiki/Ficheiro:I8086.jpg http://pt.wikipedia.org/wiki/Speak_&_Spell REFERÊNCIAS http://en.wikipedia.org/wiki/Magnavox_Odyssey%C2%B2 http://en.wikipedia.org/wiki/Motorola_6800_family http://pt.wikipedia.org/wiki/Intel_8051 http://en.wikipedia.org/wiki/Motorola_68000 http://pt.wikipedia.org/wiki/ZX_Spectrum http://pt.wikipedia.org/wiki/Intel_80186 http://pt.wikipedia.org/wiki/Intel_80286 http://pt.wikipedia.org/wiki/Intel_8088 http://pt.wikipedia.org/wiki/IBM_Personal_Computer_XT http://pt.wikipedia.org/wiki/MSX#Modelos_de_MSX_no_Brasil http://pt.wikipedia.org/wiki/Ficheiro:Nintendo_entertainment_system.png http://pt.wikipedia.org/wiki/Computador_pessoal#Primeiros_computadores_pessoais http://pt.wikipedia.org/wiki/Ficheiro:Sega_master_system.jpeg http://pt.wikipedia.org/wiki/Intel_80386 http://en.wikipedia.org/wiki/Mega_Drive http://en.wikipedia.org/wiki/Game_Boy http://en.wikipedia.org/wiki/Intel_80486#Models http://en.wikipedia.org/wiki/PIC_microcontroller#History http://en.wikipedia.org/wiki/Neo_Geo_(console) http://pt.wikipedia.org/wiki/Sega_Game_Gear http://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_System http://en.wikipedia.org/wiki/File:HP48G.jpg http://pt.wikipedia.org/wiki/PowerPC http://upload.wikimedia.org/wikipedia/commons/c/cb/KL_P1_Family.jpg http://pt.wikipedia.org/wiki/Atari_Jaguar http://pt.wikipedia.org/wiki/3DO_Interactive_Multiplayer REFERÊNCIAS http://en.wikipedia.org/wiki/Motorola_68060 http://pt.wikipedia.org/wiki/PlayStation http://en.wikipedia.org/wiki/SSF_(emulator) http://pt.wikipedia.org/wiki/Pentium_Pro http://pt.wikipedia.org/wiki/Nintendo_64 http://en.wikipedia.org/wiki/File:PalmPilot5000.jpg http://pt.wikipedia.org/wiki/Pentium_II http://pt.wikipedia.org/wiki/Sega_Dreamcast http://pt.wikipedia.org/wiki/IMac_G3 http://pt.wikipedia.org/wiki/Pentium_III http://en.wikipedia.org/wiki/HP-49G http://pt.wikipedia.org/wiki/Pentium_4 http://pt.wikipedia.org/wiki/PlayStation_2#Bot.C3.B5es http://pt.wikipedia.org/wiki/Nintendo_GameCube http://pt.wikipedia.org/wiki/Xbox http://pt.wikipedia.org/wiki/Ficheiro:IPod_2G.jpg http://en.wikipedia.org/wiki/PowerPC_970#PowerPC_970 http://en.wikipedia.org/wiki/Nintendo_DS http://pt.wikipedia.org/wiki/PlayStation_Portable http://pt.wikipedia.org/wiki/Xbox_360 http://en.wikipedia.org/wiki/PlayStation_3 http://en.wikipedia.org/wiki/Core_microarchitecture http://pt.wikipedia.org/wiki/Nintendo_Wii REFERÊNCIAS http://en.wikipedia.org/wiki/Harvard_Mark_I http://pessoal.utfpr.edu.br/gustavo/apostila_micro.pdf http://www.lps.usp.br/lps/arquivos/conteudo/grad/dwnld/mcu.pdf http://pt.wikipedia.org/wiki/Intel_8051 http://pt.wikipedia.org/wiki/Conjunto_de_instru%C3%A7%C3%B5es_ortogonal http://pt.wikipedia.org/wiki/Microcontrolador_PIC http://www.microcontrolador.com.br/lista.php?&id=98 http://www.sabereletronica.com.br/secoes/leitura/67 http://searchmobilecomputing.techtarget.com/sDefinition/0,,sid40_gci213940,00.html http://pt.wikipedia.org/wiki/Microcontrolador_PIC MICROCONTROLADOR x MICROPROCESSADOR. Precisamos deixar bem claro é a diferença entre microcontrolador e microprocessador. O microprocessador Microprocessador (MPU ou μP) – Circuito integrado, digital, implementado em um único chip (componente), capaz de executar um programa, armazenado em alguma memória, que contenha a lista de instruções para realização de uma seqüência de tarefas lógicas e/ou aritméticas pré estipuladas. É chamado de Unidade Central de Processamento (CPU) ou Core. O microcontrolador. Microcontrolador (MCU ou μC) – Circuito integrado, digital, implementado em um único chip (componente), que consta de uma CPU mais uma serie de periféricos, de utilidade típica em atividades de controle eletrônico, já embutidos no mesmo chip (componente), como por exemplo: memória flash, memória RAM, memória EEPROM, UART, timer, PWM, comparadores, osciladores, conversor analógicodigital(AD), relógio (RTC) e outros. MICROCONTROLADOR x MICROPROCESSADOR. O microprocessador Arquitetura próxima de um microprocessador O microcontrolador. Arquitetura de um microcontrolador. Arquiteturas Entendemos por arquitetura de hardware -Modo de acesso as memórias de programa e as memória de dados. - Arquitetura von-NEWMANN - Arquitetura HAVARD - Natureza, quantidade e complexidade das instruções disponíveis no “set” de instruções. - Forma de acesso as diferentes estruturas de armazenamento, internas da CPU. - Quantidade de CPU's ou Cores) que operam conjuntamente no mesmo dispositivo Arquitetura von-Neumann Os microcontroladores que usam esta tecnologia, só tem disponível uma zona de memória, e um barramento de dados de 8 bits. Como todos os dados são trocados, usando estes 8 bits, este barramento é sobrecarregado ficando a comunicação mais lenta com isto perdendo eficiência. O CPU pode ler uma instrução, ou ler/escrever dados de/para a memória. Ambas as situações ao mesmo tempo são impossíveis, pois as instruções compartilham o mesmo barramento para dados e programas. Os microcontroladores com uma arquitetura von-Neumann são designados por “microcontroladores CISC”. O nome CISC deriva de Computador com um Conjunto Complexo de Instruções (Complex Instruction Set Computer). Arquitetura HARVARD A arquitetura de Harvard é um conceito mais recente que a de von-Neumann. Adveio da necessidade de pôr o microcontrolador a trabalhar mais rapidamente. Na arquitetura de Harvard, a memória de dados está separada da memória de programa. Assim, é possível uma maior fluência de dados através da unidade central de processamento e, claro, uma maior velocidade de funcionamento. A separação da memória de dados da memória de programa, faz com que as instruções possam ser representadas por palavras de mais que 8 bits. Temos disponíveis microcontroladores de 12, 14 e 16 bits para via de instrução, o que permite que todas as instruções ocupem uma só palavra de instrução. É também típico da arquitetura Harvard ter um set de instruções menor que a de von-Neumann's, instruções essas, geralmente executadas apenas num único ciclo de máquina. Os microcontroladores com a arquitetura Harvard, são também designados por "microcontroladores RISC” e dispões da via de dados distinta da via de programa. A via de dados de 8 bits liga a CPU a RAM. A via de programa pode ter 12, 14, ou 16 bits e liga o CPU a ROM. Assim, O CPU pode ler uma instrução, ao mesmo tempo que faz um acesso a memória de dados. Como todos os registros RAM são de 8 bits, todos os dados trocados dentro do microcontrolador estão no mesmo formato. Adicionalmente, durante a escrita dos dados, apenas 8 bits de dados são considerados. Por outras palavras, só se pode trabalhar com 8 bits de dados, no máximo. Programa para estes microcontroladores, depois de compilado, será armazenado ROM interna. Esta via no tem apenas 8 bits, mas sim 12, 14 ou 16. Os restantes 4, 6,ou 8 bits representam a própria instrução, especificando a CPU o que fazer com os dados de 8 bits. As vantagens deste ,modelo, são as seguintes: -Todos os dados são de 8 bits. Como o barramento usado para leitura do programa tem 12, 14 ou 16 linhas, ambas as instruções e dados podem ser lidos simultaneamente. Assim, todas as instruções são executadas em apenas um ciclo. A única exceção são as instruções de salto, que são executadas em dois ciclos. -Como a ROM e RAM são separadas, o CPU pode executar duas instruções simultaneamente. Enquanto a leitura/escrita da RAM esta sendo feita, a próxima instrução esta sendo lida pelo outro barramento. -Nesta arquitetura, o barramento de programa é maior que um byte, o que Arquitetura HARVARD possibilita que cada linha de programa seja feita de instrução + dados. Por outras palavras: uma linha de programa – uma instrução. Arquitetura Set de Instruções ● CISC (Complex Instruction Set Computer). Possui um grande conjunto de instruções, que geralmente implementam funções especificas e de alto nível. Apropriado para ser programado diretamente, mas com poucas oportunidades de otimização. As instruções são processadas mais lentamente porem o “hardware” e mais simples. ● RISC (Reduced Instruction Set Computer) Possui um conjunto pequeno de instruções básicas e fundamentais. Mais apropriado para ser programado através de compiladores. O código pode ser muito otimizado de acordo com o compilador. As instruções são processadas rapidamente mas necessitam de “hardware” mais complexo. Arquitetura Formas de Acesso Acesso Ortogonal Uma determinada arquitetura de CPU é ortogonal quando todos os registradores podem ser acessados através de um mesmo método de endereçamento, de forma que qualquer operação ou qualquer instrução pode ser executada em qualquer registrador. Acesso Não Ortogonal Uma arquitetura não é Ortogonal (ou seja, e radial) quando determinados registradores são alocados em um espaço de memória e os registradores que formam os operandos das instruções são endereçados de forma diferente dos demais, geralmente mantendo o resultado em um registrador especial conhecido como acumulador CLOCK O clock, é quem dá o sinal de partida para o microcontrolador e é obtido a partir de um componente externo chamado “oscilador”, que pode ser externo ou interno dependendo do microcontrolador. Se considerarmos o um microcontrolador um relógio, o nosso clock, corresponderia ao pêndulo e emitiria um ruído correspondente ao deslocar do pêndulo. Também, a força usada para dar corda ao relógio, podia comparar-se à alimentação elétrica. O clock do oscilador, é ligado ao microcontrolador através de pinos, neste exemplo, 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, faz-se entre as fases Q1 e Q4 seguintes. No diagrama em baixo, podemos observar a relação entre o ciclo de instrução e o clock. 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. 3 CLOCKS DE MAQUINA PLL Phase Locked Loop PLLs ou Phase Locked Loop (que alguns traduzem por Elo Travado em Fase) são encontrados em receptores de AM, FM, modems, sintetizadores de freqüências, telefones sem fio, telefones celulares, instrumentos digitais e analógicos e numa infinidade de outras aplicações onde freqüências estejam presentes. O PLL trabalha com freqüências do mesmo modo que um amplificador operacional trabalha com tensões, daí sua importância na eletrônica moderna. Ou seja é um multiplicador de clock. PIPELINING Cada ciclo de instrução inclui as fases Q1, Q2, Q3 e Q4. A extração do código de uma instrução da memória de programa, é feita num ciclo de instrução, enquanto que a sua descodificação e execução, são feitos no ciclo de instrução seguinte. Contudo, devido à sobreposição – pipelining (o microcontrolador ao mesmo tempo que executa uma instrução extrai simultaneamente da memória o código da instrução seguinte), podemos considerar que, para efeitos práticos, cada instrução demora um ciclo de instrução a ser executada. No entanto, se a instrução provocar uma mudança no conteúdo do contador de programa (PC), ou seja, se o PC não tiver que apontar para o endereço seguinte na memória de programa, mas sim para outro (como no caso de saltos ou de chamadas de sub-rotinas), então deverá considerar-se que a execução desta instrução demora dois ciclos. Isto acontece, porque a instrução vai ter que ser processada de novo, mas, desta vez, a partir do endereço correto. O ciclo de chamada começa na fase Q1, escrevendo a instrução no registro de instrução (Instruction Register – IR). A descodificação e execução continua nas fases Q2, Q3 e Q4 do clock. Fluxograma das Instruções no Pipeline PWM PULSE WIDTH MODULATION O modulo de geração de Modulação por Largura de Pulso (PWM) e um recurso muito utilizado para o controle de motores e conversores CC-CC em geral. A partir dele e possível gerar um sinal analógico, apesar de sua saída ser um sinal digital que assume apenas os níveis lógicos alto (um) e baixo (zero). A saída gerada e uma onda quadrada, com freqüência constante e largura de pulso variável. Estes conceitos estão diretamente relacionados com o período fixo e o ciclo ativo (duty cycle) respectivamente. A freqüência de uma onda pode ser definida como a quantidade de vezes que ela se repete no tempo. E o período e cada pedaço dessa onda que ira se repetir. O duty cycle define o tempo de sinal ativo (nível lógico alto) em um período fixo. Assim, quando temos um duty cycle de 100%, temos nível lógico alto por todo o período. Um duty cycle de 50% define a metade do período em nível lógico alto e a outra metade em nível lógico baixo. Se uma saída TTL for utilizada, a tensão media de saída em um duty cycle de 50% será 2,5V. Estes conceitos são demonstrados na figura abaixo. Devemos lembrar que o PWM nem sempre possui estado inicial positivo, podendo iniciar o período com nível lógico baixo. Largura de pulso e período de um PWM Sinais modulados por Largura de Pulso PWM PULSE WIDTH MODULATION A figura a seguir ira exemplificar o funcionamento de um PWM em um microcontrolador onde o registrador PTPER possui o valor referente ao período do PWM e os registradores PWM1H e PWM2H representam dois canais de saída PWM. Sinais PWM com mesmo período e largura de pulso diferentes Desta forma, para configurar a freqüência do PWM iremos considerar no exemplo um PWM de 10 kHz com largura de pulso inicial do ciclo ativo de 40%, onde o clock utilizado será de 3,2 MHz. Período da base de tempo do relógio: Período= 1/3,2×10-6 =312,5×10−9 Valor do modulo de clock 100μs: Módulo= 100×10−6 / 312,5×10−9=320 CONVERSÃO ANALÓGICO DIGITAL (AD) Diagrama de blocos de uma conversão A/D de um sinal de temperatura A temperatura e um sinal analógico. O sensor de temperatura converte a temperatura em um sinal de impulsos elétricos analógicos. O conversor A/D recebe esse sinal e o transforma em sinal digital, através de amostragem, entregando ao processador. Este, por sua vez, manipula esses dados e envia-os para o display, mostrando em graus a temperatura do forno. A figura abaixo mostra a representação do sinal analógico de temperatura e seu equivalente na forma digital. A informação digital é diferente de sua forma original continua em dois aspectos fundamentais: 1 - É amostrada porque é baseada em amostragens, ou seja, são realizadas diversas leituras, do sinal continuo em um intervalo de tempo fixo. 2 - E quantizada porque e atribuído um valor proporcional a cada amostra. Representação de um sinal de temperatura analógico e digital. EMI Electromagnetic Interference EMI (interferência eletromagnética) é a interrupção do funcionamento de um dispositivo eletrônico quando está nas proximidades de um campo electromagnético (campo de EMI) na freqüência de rádio (RF) do espectro que é causado por um outro dispositivo eletrônico. Problemas com a EMI podem ser minimizado pela garantia de que todos os equipamentos eletrônicos são operados com um bom sistema de aterramento elétrico. Além disso, os fios e cabos que ligam os periféricos em um sistema eletrônico ou sistema informatizado deve, ser protegidos para manter a energia RF indesejadas fora do dispositivo. Componentes especializados, tais como filtros de linha, capacitores e indutores podem ser instalados em cabos de energia e cabos de interligação para reduzir a susceptibilidade a EMI em alguns sistemas. COMO ESCOLHER O PROCESSADOR CERTO PARA A APLICAÇÃO Antes de começarmos a desenvolver um sistema baseado em um microcontrolador, devemos equacionar o seguinte pontos: Quantas portas de entradas e saídas serão necessária ? Teremos comunicação serial ? Que padrão ? Será necessário rede ethernet ? Teremos conversão AD ? Qual a necessidade de precisão ? O dispositivo ira trabalhar embarcado (consumo) ? Necessitaremos de PWM ? Necessitaremos de Comparadores ? Qual a freqüência pretendida ? Terá oscilador externo ? Quantas interrupções de tempo teremos e quais as grandezas ? Teremos relógio externo ? Qual a disponibilidade de documentação e suporte ao microcontrolador ? Qual o suporte do fabricante ? Quando definimos muito bem os requisitos do projeto, a larga oferta e naturalmente filtrada, e fica muito mais simples fazer a escolha adequada. PONTOS DE ESCLARECIMENTOS O que é microprocessador ? O que é microcontrolador ? O que são periféricos ? Qual a diferença entre microcontrolador e microprocessador ? O que é arquitetura RISC ? e CISC ? O que são memórias ? Quais os tipos que existem ? O que é memória RAM ? O que é memória PROM ? O que é memória E2PROM ? O que é memória Flash ? Qual a diferença entre CI analógico e CI digital ? FABRICANTES (79 ATÉ O MOMENTO DA INFORMAÇÃO) ADVANCED MICRO DEVICES (AMD) Alcatel Altera ANALOG DEVICES (AD) ATC Semiconductor Devices ATMEL Benchmarq Broadcom BURR-BROWN (BB) CENTRONIC Cherry Semiconductors Crystal (Cirrus Logic) Cypress CYRIX DALLAS Semiconductor Corp (DS) EG&G Vactec Ecliptek Corporation EM-MARIN Euroquartz Fairchild FUJITSU General Semiconductors HARRIS Semiconductors High Brightness Solutions HITACHI Honeywell - Solid State Electronics Center Hewlett Packard Hyundai IDT Infineon Technologies INTEL Intersil International Rectifier (IRF) ISD - Information Storage Devices Isocom Kingbright Lattice Semiconductor Corporation LINEAR Technologies (LT/LTC) MAXIM Integrated Products MICREL Semiconductor MAXIM Integrated Products MICREL Semiconductor MICROCHIP Micro Linear Micron Mitel Semiconductors Mitsubishi Mosel Vitelic MOTOROLA NATIONAL Semiconductors (NS) NEC Newport NJRC - New Japan Radio Company OKI Panasonic PHILIPS Semiconductors QT Optoelectronics Ricoh Rohm Samsung Semiconductors Sanyo Semtech SGS-Thomson (ST) Sharp Siemens Siliconix Sony Telcom Temic Semiconductors TEXAS Instruments Semiconductors (TI) Torex Semiconductors Ltd TOSHIBA America Electronic Components Unitrode Wolfson Microelectronics Ltd Winbond Electronics Corp XICOR Inc XILINX ZILOG Zetex Semiconductors (ZTX) ORIGEM DO PIC (Peripheral Integrated Controler) As raízes dos PICs se originaram na universidade de Harvard com um projeto para o Departamento de Defesa, mas este foi vencido por um projeto de memória mais simples (e mais confiável na época) da Universidade de Princeton. A arquitetura Harvard foi primeiramente usada no 8x300 da Signetics, e foi adotada pela General Instruments para uso como Interface Controladora de Periféricos PIC (PIC1650) que foi projetada para compensar o fraco barramento de I/O da sua CPU CP1600 de 16 bits. Em 1985 a General Instruments vende a divisão de microeletrônica para Arizona Microchip Technology . O novo fabricante desativou quase todos os projetos que estavam então ultrapassados. No entanto, os microcontralores PIC foram renovados e continuaram a evoluir e hoje, a Microchip Technology, atual fabricante dos micro-controladores PIC, oferece uma ampla variedade de modelos. PIC PROCESSADORES E PERIFERICOS Os PIC (Peripheral Integrated Controler) são uma família de microcontroladores, que processam dados de 8 bits (recentemente foi lançada uma família de 16 bits com prefixo 24F) com extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de instruções RISC (sets de 35 instruções e de 76 instruções), com recursos de programação por memória FLASH, EEPROM e OTP. Os microcontroladores PIC têm famílias de 12 bits, 14 bits e 16 bits de núcleo de processamento e trabalham em velocidade de 0kHz (ou DC) a 48MHz usando ciclo de instrução mínimo de 4 períodos de clock o que permite uma velocidade chegue ao máximo de 10 MIPS. 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 encapsulamentos (SOT23, DIP, SOIC, TQFP, etc.) Seus principais periféricos internos (a disponibilidade varia conforme o modelo) são: • Conversores Analógico-Digitais de 8 a 12 bits • Contadores e timers de 8 e 16 bits • Comparadores Analógicos • USARTs • Controladores de comunicação I2C, SSP, USB • Controladores PWM • Controladores de LCD • Controladores de motores • Periféricos para LIN, CAN • Controladores Ethernet • Periféricos IRDA • Codificadores para criptografia Keeloq • Watchdog timer • Detectores de falha na alimentação • Portas digitais com capacidade de 25mA (fornecer ou drenar) para acionar circuitos externos • Osciladores internos PLACA DE ACESSO A ETHERNET / INTERNET Como podemos observar a placa de acesso a ethernet / internet necessita de poucos componentes para suporte ao processador. Placa 1 2 x 24LC256 – memórias PROMS de 256 kbits 1 x ENC28J60 – driver de ethernet 1 x PIC24FJ128 – microcontrolador de 16 bits com 128Kbytes de memória de programa 8K de memória SDRAM encapsulamento TQFP 64 pinos smd. Placa 2 1 x 24LC256 – memórias PROMS de 256 kbits 1 x PIC18F67J60 – microcontrolador de 8 bits com 128Kbytes de memória de programa 3.8K de memória SDRAM, drive de ethernet interno encapsulamento TQFP 64 pinos smd. LISTA DE MICROCONTROLADORES MICROCHIP E SEUS PERIFERICOS INTERNOS