microcontroladores 1 curso técnico eletrônica
TRANSCRIPT
MICROCONTROLADORES 1Curso Técnico Eletrônica
Prof. Fábio Kurt Schneider
AVALIAÇÃO
Nota 1:APS = 20% (Projeto de Sistemas Microcontrolados)
EXERCÍCIOS ASSEMBLY = 10% (ASSEMBLY)
AVALIAÇÃO TEÓRICA/PRÁTICA = 70% (ARQUITETURA INTERNA E ASSEMBLY)
Nota 2:Função otimizada em ASSEMBLY = 20% (ALTO DESEMPENHO)
LABORATÓRIOS = 40%
PROJETO FINAL = 40%
• PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO)
PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO)
Dia/Mês ou
SemanaConteúdo das Aulas
Número de
Aulas
08-09/08/17
Informações da disciplina e avaliação
Definição da APS
Introdução a microcontrolador genérico
- Sistema microprocessado típico; Microprocessador hipotético: barramentos de dados,
endereços, e controle, ULA, registros internos, PC, SP, Acc; Microcontrolador
vs.microprocessador; Principais famílias de microcontroladores;
3
15-16/08/17
Microcontrolador específico - Arquitetura interna ATMEGA328.
- Descrição dos pinos; Organização de memória; Memória SRAM interna de dados; Memória
SRAM interna de uso específico; Acesso à memória externa; Interrupção, Temporizadores, ADC
Ferramentas de Desenvolvimento de Sistemas Microcontrolados
3
22-23/08/17
Algoritmos
Instruções Lógicas e Aritméticas , Instruções de Controle de Fluxo, Exemplos em assembly com o
uControlador específico
3
29-30/08/17Instruções Assembly e exemplos: controle de fluxo, laços, escrita e leitura em memória, controle
periféricos.... 3
05-06/09/17Instruções Assembly e exemplos: controle de fluxo, laços, escrita e leitura em memória, controle
periféricos....3
12-13/09/17 Simulação 3
19-20/09/17
Entrega E AVALIAÇÃO APS
1 – Esquemático (Power, uC, Periféricos, Conectores)
2 – Explicativo dos blocos do sistema
3 - Tabela Características
4 – B.O.M. e R$
3
26-27/09/17SEMANA TECNOLÓGICA
3
03-04/10/17 Avaliação 1 – Teórico prática 3
10-11/10/17 Definição Projeto Final – Recuperação Prova Teórico Prática 3
PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO)
Dia/Mês ou
SemanaConteúdo das Aulas
Número de
Aulas
03-04/10/17 Avaliação 1 – Teórico prática 3
10-11/10/17 Definição Projeto Final – Recuperação Prova Teórico Prática 3
17-18/10/17 Interrupções e Temporizadores 3
24-25/10/17 Comunicação serial (WIFI, Bluetooth, ...) 3
31/10/17
01/11/17Dispositivos de entrada e saída (teclado, LCD, monitor - PC) 3
07-08/11/17 Desenvolvimento do Projeto 3
14/11/17 Desenvolvimento do Projeto 3
21-22/11/17 Desenvolvimento do Projeto 3
28-29/11/17 Apresentação e AVALIAÇÃO Projeto Final 3
05-06/12/17 Recuperação Projeto Final 3
12-13/12/17 3
~17 semanas x 3h Como isto pode impactar sua vida?
• Fábio Kurt Schneider: • Apucarana 1967-1984,
• CEFET-Curitiba 1985-1989 (Eng. Elétrica – Eletrônica e Telecomunicações),
• Engenheiro de Desenvolvimento 1989-1993 (In-circuit emulator and bus analyser, Fontes CC de elevada potência, Medidor de água em leite, medidorde gordura em leite),
• CEFET-PR 1993-1995 Mestrado em Eng. Biomédica (Medição de Fluorescênciapara determinar Concentração de Oxigênio - OPTOELETRÔNICA),
• Professor Efetivo CEFET desde 01/09/1995
• University of Washington 2001-2006 – Ph.D. Eng. Elétrica
• UTFPR: Desde 2006 orientador de mestrado e doutorado: CPGEI e PPGEB
• PROPPG (03/2013 a 08/2016)
"Alex Jhonata Santos De Oliveira" <[email protected]>,
"Artur Heineck Hahn" <[email protected]>,
"Ingrid Do Rocio Gasparin" <[email protected]>,
"Jorge Lucas Vicilli Jabczenski" <[email protected]>,
"Leonardo Braga De Cristo" <[email protected]>,
"Lucas Eduardo Bonancio Skora" <[email protected]>,
"Ludwig Aumann" <[email protected]>,
"Luiz Fernando De Almeida Mota" <[email protected]>,
"Pedro Andre Silveira Paiva" <[email protected]>,
"Victor Hugo Dambrat Bergossi" <[email protected]>,
"Fellipe Arcanjo Trindade" <[email protected]>,
"Fernanda Franco Grilo Machado" <[email protected]>,
"Gustavo Brizola Da Silva" <[email protected]>,
"Jean Carlo Do Carmo" <[email protected]>,
"Laura De Barros Gunha" <[email protected]>,
"Lucas Albuquerque Sales" <[email protected]>,
"Lucas Rafael De Andrade" <[email protected]>,
"Matheus Augusto Burda" <[email protected]>,
"Miguel Michalouski Santos Lima" <[email protected]>,
"Pedro Henrique Fracaro Kiche" <[email protected]>,
"Sarah Guebur Quoos" <[email protected]>,
"Thiago Augusto De Souza" <[email protected]>,
"Vinicius Rodrigues Gemin" <[email protected]>,
Instruções executadas por segundo
Maior que 16 milhões
Programável com comunicação serial
USB, ....
Memória de Programa Flash 32 kB
Memória RAM 4 kBRegistradores Internos Maior ou igual 32 registradoresTimers 3 ou +ADC Pelo menos 1, 10 ou mais bits, amostragem ,aior
ou igual a 1MHzPinos I/O Pelo menos 10 disponíveis em conector
Pino de controle preparado para ligar/desligar dispositivo EXTERNO.
Tensão 5-12V externo e corrente (dispositivo ligado) de 600 mA
DAC Opcional de 10 ou mais bits
Aps: Projete um Sistema Microcontrolado com custo de componentes SMD preferencialmente
inferior a USD 5,00 (OU O MAIS PRÓXIMO DE 5USD) capaz de apresentar as seguintes
características:
Apresentar um Relatório Impresso Simplificado INDIVIDUAL contendo:
•Tabela de Características do sistema projetado
•Esquemático completo
•Explicativo 5-15 de cada bloco usado para atender as principais características do sistema
•Lista de materiais COM PREÇO na origem (mouser, digikey, arrow, ...)
Entendendo a Disciplina Microcontroladores1 no curso técnico
Microcontroladores 1 – Técnico em Eletrônica
• Competência:• Analisar e Implementar Sistemas Microcontrolados Básicos.
• Habilidades Básicas:• Desenvolver Sistemas Microcontrolados Básicos
• Programar com linguagem de baixo nível sistemas Microcontrolados básicos
• Bases Tecnológicas:• Arquitetura de Microcontroladores
• Linguagem Assembly
Relembrando Digital 3
• Reconhecer Elementos Básicos da Arquitetura Interna de um MICROPROCESSADOR
• Identificar elementos e Interpretar Diagramas de um Sistema Microprocessado
Elaborado por Gilson Yukio Sato
Sistema Microprocessado
Sistema Microprocessado
hardware firmware
software
• Essas transparências foram baseadas em materiais elaborados pelos professores Hugo Vieira Neto, Eduardo Bertonha e Gabriel Kovalhuk, Paulo Demantova
Elaborado por Gilson Yukio Sato
Hardware
Clock
Reset
Interrupções
Bus de Dados
ROM RAM E/SP
(CPU)
DXSEL
Bus de Endereços e Controle
Perifé-ricos
Elaborado por Gilson Yukio Sato
Hardware
• Clock
• Reset
• Reinicializa o microprocessador
• Vetor de Reset
• Primeiro endereço da memória de
programa a ser executado após o reset do
sistema
Elaborado por Gilson Yukio Sato
Hardware• ROM
• Programa + dados não voláteis
• RAM• Dados de trabalho
• E/S• Interfaces dispositivos externos
• DX SEL• Seleção de memória e periférico
Elaborado por Gilson Yukio Sato
Hardware
• Bus de dados• Bidirecional
• Bus de endereços• Saída (geralmente)
• Bus de controle• Saídas e entradas
Elaborado por Gilson Yukio Sato
Hardware
• Interrupção• Evento externo que desvia o fluxo normal
de execução
• Após o atendimento da interrupção o fluxo normal de execução é retomado
• Vetor de Interrupção• Endereço da memória de programa para
onde ocorre o desvio do fluxo de execução para o atendimento de uma interrupção
Elaborado por Gilson Yukio Sato
FirmwareINÍCIO
FIM
Acionar o interruptor
A lâmpada acendeu?Sim
Apanhar lâmpada nova
Não
Posicionar escada
Subir na escada
Retirar lâmpada antiga
Colocar lâmpada nova
C Compilador
Assembler
0110...11011101...00010101...10000000...0101
...
Mnemônicos
Elaborado por Gilson Yukio Sato
Firmware
• Algoritmo
• Baixo nível
• Código de Máquina, Assembly
• Alto nível
• C, BASIC, Pascal
• Necessita ser compilada ou interpretada
Elaborado por Gilson Yukio Sato
Firmware
• Montador (Assembler)
• mnemônicos do assembly códigos das
instruções
• Compilador / Interpretador
• linguagem alto nível linguagem
assembly
• Link-editor (Linker)
• interconecta diferentes trechos de
programa
Elaborado por Gilson Yukio Sato
Microprocessador Genérico
ULA
Unidade de Controle
Registradores
Bus interno dados
Bus interno controle
Bus interno endereço
Bu
ffer
Bu
ffer
Bu
ffer
bus ends
bus ctrl
bus dados
Elaborado por Gilson Yukio Sato
ULA
• ULA (ALU)• Unidade Lógico Aritmética
• Lógicas: AND, OR, XOR
• Aritméticas: Soma, Subtração
• Unidade de Controle• Interpreta instruções
• Gera sinais para comandar demais blocos
Elaborado por Gilson Yukio Sato
Registradores
• Gerais• Armazenamento temporário de dados
• Entradas e saída da ULA
• Índices • Índice que pode ser usado como ponteiro
para acesso de dado
Elaborado por Gilson Yukio Sato
Registradores
• Flags• Sinalizam eventos
• PC (Program Counter)• Indica o endereço da próxima instrução
• SP (Stack Pointer)• Indica topo da pilha
• Pilha – LIFO (Last In, First Out)
• Armazenamento de dados
História
Use sempre boas referencias para aprender!!!
• Arquitetura de computadoresDavid A. Patterson & John L. Hennessy. Computer Organization & Design, The Hardware/Software Interface. Morgan Kaufmann
• https://pt.coursera.org/learn/comparch• Introdução• Instruções• Microcódigo• Pipelining• Cache• Superescalar x VLIW x• Predição de desvio• Multi
https://www.cis.upenn.edu/~milom/cis501-Fall11/lectures/00_intro.pdf
https://www.cis.upenn.edu/~milom/cis501-Fall11/lectures/00_intro.pdf
https://www.cis.upenn.edu/~milom/cis501-Fall11/lectures/00_intro.pdf
https://www.cis.upenn.edu/~milom/cis501-Fall11/lectures/00_intro.pdf
CIS 501: Comp. Arch. | Prof. Joe Devietti | Instruction Sets
35
What Is An ISA?http://www.cis.upenn.edu/~cis501/• ISA (instruction set architecture)
• A well-defined hardware/software interface• The “contract” between software and hardware
• Functional definition of storage locations & operations• Storage locations: registers, memory• Operations: add, multiply, branch, load, store, etc
• Precise description of how to invoke & access them
• Not in the contract: non-functional aspects• How operations are implemented• Which operations are fast and which are slow• Which operations take more power and which take less
• Instructions (Insns)• Bit-patterns hardware interprets as commands
ARM ADD Documentationhttp://www.cis.upenn.edu/~cis501/
CIS 501: Comp. Arch. | Prof. Joe Devietti | Instruction Sets
36
CIS 501: Comp. Arch. | Prof. Joe Devietti | Instruction Sets
37
The Sequential Modelhttp://www.cis.upenn.edu/~cis501/
• Basic structure of all modern ISAs• Often called Von Neumann, but in ENIAC before
• Program order: total order on dynamic insns• Order and named storage define computation
• Convenient feature: program counter (PC)• Insn itself stored in memory at location pointed to
by PC• Next PC is next insn unless insn says otherwise
• Processor logically executes loop at left
• Atomic: insn finishes before next insn starts• Implementations can break this constraint physically• But must maintain illusion to preserve correctness
Fetch
Decode
Read Inputs
Execute
Write Output
Next Insn
CIS 501: Comp. Arch. | Prof. Joe Devietti | Instruction Sets
38
Programmabilityhttp://www.cis.upenn.edu/~cis501/• Easy to express programs efficiently?
• For whom?
• Before 1980s: human• Compilers were terrible, most code was hand-assembled• Want high-level coarse-grain instructions
• As similar to high-level language as possible
• After 1980s: compiler• Optimizing compilers generate much better code than you or I• Want low-level fine-grain instructions
• Compiler can’t tell if two high-level idioms match exactly or not
• This shift changed what is considered a “good” ISA…
Maximizing Performancehttp://www.cis.upenn.edu/~cis501/
• Instructions per program:• Determined by program, compiler, instruction set architecture (ISA)
• Cycles per instruction: “CPI”• Typical range today: 2 to 0.5• Determined by program, compiler, ISA, micro-architecture
• Seconds per cycle: “clock period”• Typical range today: 2ns to 0.25ns• Reciprocal is frequency: 0.5 Ghz to 4 Ghz (1 Hz = 1 cycle per sec)• Determined by micro-architecture, technology parameters
• For minimum execution time, minimize each term• Difficult: often pull against one another
CIS 501: Comp. Arch. | Prof. Joe Devietti | Instruction Sets
39
(1 billion instructions) * (1ns per cycle) * (1 cycle per insn) = 1 second
Execution time = (instructions/program) * (seconds/cycle) * (cycles/instruction)
CIS 501: Comp. Arch. | Prof. Joe Devietti | Instruction Sets
40
Example: Instruction Granularityhttp://www.cis.upenn.edu/~cis501/
• CISC (Complex Instruction Set Computing) ISAs• Big heavyweight instructions (lots of work per instruction)+ Low “insns/program”– Higher “cycles/insn” and “seconds/cycle”
• We have the technology to get around this problem
• RISC (Reduced Instruction Set Computer) ISAs• Minimalist approach to an ISA: simple insns only+ Low “cycles/insn” and “seconds/cycle” – Higher “insn/program”, but hopefully not as much
• Rely on compiler optimizations
Execution time = (instructions/program) * (seconds/cycle) * (cycles/instruction)
CIS 501: Comp. Arch. | Prof. Joe Devietti | Instruction Sets
41
Compiler Optimizationshttp://www.cis.upenn.edu/~cis501/
• Primarily goal: reduce instruction count• Eliminate redundant computation, keep more things in registers
+ Registers are faster, fewer loads/stores– An ISA can make this difficult by having too few registers
• But also…• Reduce branches and jumps (later)• Reduce cache misses (later)• Reduce dependences between nearby insns (later)
– An ISA can make this difficult by having implicit dependences
• How effective are these?+ Can give 4X performance over unoptimized code– Collective wisdom of 40 years (“Proebsting’s Law”): 4% per year• Funny but … shouldn’t leave 4X performance on the table
História INTEL
• 100%+ transistors pelomesmo preço a cada 18 meses
Moore – 50 Anos
36 anos
A EVOLUÇÃO DE UMA TECNOLOGIA
• MOTORCYCLE
• MICROPROCESSADORES
• MICROCONTROLADORES
Sistema MICROPROCESSADO x MICROCONTROLADOR x
SISTEMA MICROCONTROLADO• Componentes de um MICROPROCESSADOR:
• Componentes de um SISTEMA MICROPROCESSADO:
• MICROCONTROLADOR:
Elaborado por Gilson Yukio Sato
Microprocessador X Microcontrolador
• Microcontrolador• μP + períféricos• Períféricos:
• temporizador/contador, • interface serial, • barramentos de comunicação• ADC• DAC• ...
• Sistemas embarcados
Elaborado por Gilson Yukio Sato
Arq
uit
etu
ra In
tern
a
RST
Unidade Lógico-
Aritmética
Latchs e Drivers
Latchs e Drivers
Latchs e Drivers
Latchs e Drivers
Circuito de Clock
Registros p/ Endereçar Memória
OTPROM/ EPROM/
Flash
Temporização e Controle
Canal Serial
Timers / Counters
Registros 16 bits PC, SP,
DPTR
RAM Interna
Xtal1 Xtal2 T0 T1P0P2
P1 P3
8 8
8 8
TxDRxD PSENALE
EA
Microcontroladores 1 – Técnico em Eletrônica
• Competência:• Analisar e Implementar Sistemas Microcontrolados Básicos.
• Habilidades Básicas:• Desenvolver Sistemas Microcontrolados Básicos
• Programar com linguagem de baixo nível sistemas Microcontrolados básicos
• Bases Tecnológicas:• Arquitetura de Microcontroladores
• Linguagem Assembly
2008: microcontroller architectures and vendors EXAMPLES (WIKIPEDIA):
• ARM core processors (many vendors)
• ARM Cortex-M cores are specifically targeted towards microcontroller applications
• Atmel AVR (8-bit), AVR32 (32-bit), and AT91SAM (32-bit)
• Cypress Semiconductor's M8C Core used in their PSoC (Programmable System-on-Chip)
• Freescale ColdFire (32-bit) and S08 (8-bit)
• Freescale 68HC11 (8-bit), and others based on the Motorola 6800 family
• Intel 8051, also manufactured by NXP Semiconductors, Infineon and many others
• Infineon: 8-bit XC800, 16-bit XE166, 32-bit XMC4000 (ARM based Cortex M4F), 32-bit TriCore and, 32-bit Aurix Tricore Bit microcontrollers[19]
• MIPS
• Microchip Technology PIC, (8-bit PIC16, PIC18, 16-bit dsPIC33 / PIC24), (32-bit PIC32)
• NXP Semiconductors LPC1000, LPC2000, LPC3000, LPC4000 (32-bit), LPC900, LPC700 (8-bit)
• Renesas Electronics: RL78 16-bit MCU; RX 32-bit MCU; SuperH; V850 32-bit MCU; H8; R8C 16-bit MCU
• Silicon Laboratories Pipelined 8-bit 8051 Microcontrollers and mixed-signal ARM-based 32-bit microcontrollers
• STMicroelectronics STM8 (8-bit), ST10 (16-bit) and STM32 (32-bit)
• Texas Instruments TI MSP430 (16-bit), MSP432 (32-bit), C2000 (32-bit)
• Toshiba TLCS-870 (8-bit/16-bit)
MCU Arch Flash (KB) RAM (KB) Clock (MHz) Current (mA) mA/MHz Price (USD)
at 1kLPC1765FBD100,551 ARM Cortex-M3
(32)256 64 100 50 0.5 5.06
ATxmega128A1 AVR (8) 128 8 32 20 0.63 6.05
MSP430F5436AIPZR MSP430 (16) 192 16 25 10 0.4 4.797
PIC32MX340F128L-80I/PT
PIC32 (32) 128 32 80 55 0.69 4.82
STM32F103VBT6 ARM Cortex-M3 (32)
128 20 72 33 0.46 4.29
8 vs 16 vs 32 Bit Microcontrollers--A Case Study Embedded Design
Traditional microcontroller projects have been based on 8-bit architectures. However, 16-bit and 32-bit architectures
(such as the ARM Cortex-M3) are becoming very attractive alternatives with competitive pricing and power
consumption requirements.
http://stratifylabs.co/embedded%20design%20tips/2013/10/01/Tips-8-vs-16-vs-32-Bit-Microcontrollers/
Instruções executadas por segundo
Maior que 16 milhões
Programável com comunicação serial
USB, ....
Memória de Programa Flash 32 kB
Memória RAM 4 kBRegistradores Internos Maior ou igual 32 registradoresTimers 3 ou +ADC Pelo menos 1, 10 ou mais bits, amostragem ,aior
ou igual a 1MHzPinos I/O Pelo menos 10 disponíveis em conector
Pino de controle preparado para ligar/desligar dispositivo EXTERNO.
Tensão 5-12V externo e corrente (dispositivo ligado) de 600 mA
DAC Opcional de 10 ou mais bits
Aps: Projete um Sistema Microcontrolado com custo de componentes SMD preferencialmente
inferior a USD 5,00 (OU O MAIS PRÓXIMO DE 5USD) capaz de apresentar as seguintes
características:
Apresentar um Relatório Impresso Simplificado INDIVIDUAL contendo:
•Tabela de Características do sistema projetado
•Esquemático completo
•Explicativo 5-15 de cada bloco usado para atender as principais características do sistema
•Lista de materiais COM PREÇO na origem (mouser, digikey, arrow, ...)
Elaborado por Gilson Yukio Sato
Microcontrolador - Famílias
• MCS51 - Intel e outras empresas
• M68HC11 - Motorola
• Z8 - Zilog
• COP8 - National
• PIC - Microchip
• AVR - Atmel
ATMEGA328