Edição 2005/2006
EEC2104
Microprocessadores
Apresentação da disciplina
Missão e Objectivos
• Ganhar competências que permitam desenvolver aplicações
baseadas em microprocessadores (MPs) e microcontroladores
(MCs) de 8 bits, nomeadamente:
– Análise do hardware de suporte
– Programação modular em linguagem assembly – Interacção entre hardware e software
MP0506, [email protected] 3
Programa
• Introdução à arquitectura de microprocessadores (uPs)
– Execução de programas residentes em memória – Arquitectura e conceitos básicos sobre uPs de 8 bits
• A família Intel MCS51
– Arquitectura de base e – Interface com o exterior
– Tipos de instruções e modos de endereçamento – Processamento de interrupções
– Periféricos internos
– Variantes da arquitectura base
• Memórias e periféricos de Entrada/Saída (E/S)
– Tipos de memórias
– Periféricos de E/S (digital e analógica) – Interface com um microprocessador genérico
MP0506, [email protected] 4
Docentes e metodologia
• Docentes
– António José Araújo ([email protected]) P13,15 – Augusto Silva Gomes ([email protected]) P1,7,11,14 – João Paulo Sousa ([email protected]) P2,6,9,12; T1:7 – José Martins Ferreira ([email protected]) P3,4,5,8,10; T8:15
• Metodologia
– Aulas teóricas: apresentação da matéria recorrendo a transparências e discussão de casos típicos e exemplos representativos.
– Aulas práticas: resolução de exercícios de aplicação e realização de trabalho de laboratório individual e em grupo.
MP0506, [email protected] 5
Avaliação
• Distribuída com exame final (NGA, §1.3)
• Componente distribuída (peso 25%)
– Questionários (15..20 min) a realizar em 3 aulas práticas – Contam para avaliação os 2 melhores
– Nota mínima para acesso a exame: 6 valores (em 20)
• Exame final (peso 75%)
– Eventual material de consulta é fornecido – Uma questão de valorização
• Obtenção de frequência
– Nota mínima de 6 valores na componente distribuída – Presença registada em 9 aulas práticas
Avaliação
• Nota de frequência obtida no ano anterior
– Substitui a componente distribuída da avaliação para os alunos que prescindem frequentar de novo
• Melhoria de classificação
– Por exame
– Para os alunos sem frequência anterior: não é considerada a componente distribuída
– Para os alunos com frequência anterior: é considerada a
componente distribuída (nota de frequência anterior) com o peso de 25% desde que tenham prescindido de frequentar de novo
• Aspectos omissos
MP0506, [email protected] 7
Bibliografia e material de apoio
• Livros (existentes na biblioteca)
1. Ken Arnold; Embedded Controller Hardware Design; LLH Publishing, 2001; ISBN: 1-878707-52-3
2. J.M.Martins Ferreira; Introdução ao Projecto com Sistemas Digitais
e Microcontroladores; FEUP Edições, 1998
3. Sencer Yeralan, Ashutosh Ahluwalia; Programming and Interfacing
the 8051 Microcontroller; Addison Wesley, 1995
• Apoio online
– Disciplina no Moodle da FEUP (chave: #microp)
http://moodle.fe.up.pt//course/view.php?id=9 – Arquivo http://www.fe.up.pt/~jmf/mp
Edição 2005/2006
EEC2104
Microprocessadores
MP0506, [email protected] 9
Paradigmas de projecto
• Paradigma da interligação
– As operações a executar são definidas pelo estabelecimento de ligações físicas
– O hardware muda consoante a operação a efectuar – Exemplo: máquina de estados de moore ou de mealy
• Paradigma do programa residente (von Neumann, 1945)
– As operações a executar (programa) são armazenadas em memória na forma de códigos de operação
– O hardware não muda! – Exemplo: computador digital
O que é um computador?...
• Computador digital
– Sistema capaz de executar um programa residente em memória
• Blocos constituintes de um computador digital
– Memória (MEM)
• Armazena o programa (e, eventualmente, os dados)
– Processador (CPU)
• Executa as instruções do programa
– Unidade de Entrada/Saída (ES)
MP0506, [email protected] 11
Processador básico...
• Unidade lógica e aritmética (ALU)
– Circuito combinacional (na maioria dos casos)
– Suporta um conjunto pré-definido de instruções aritméticas e lógicas
• Unidade de controlo (CTU)
– Circuito sequencial
– Dá sequência às operações de baixo nível necessárias à execução de uma instrução
MP0506, [email protected] 12
Micros, micros, micros...
• Microprocessador (µP)
– CPU num único circuito integrado.
– Exemplos: 8080, Z80, 6800, 8086, Pentium
• Microcomputador
– Computador em que o CPU é um µP. – Exemplos: Spectrum, IBM PC, Apple
• Microcontrolador (µC)
– CPU+MEM+IO num único circuito integrado. – Exemplos: 8051, Z8, C166
MP0506, [email protected] 13
Algumas datas...
• 1945: ENIAC
– Electronic Numerical Integrator And Computer – 18.000 válvulas (MTBF=15h)
– Programação por recablagem
• 1947: O transístor
– NCR 304, em 1957
• 1958: O circuito integrado
– IBM System 360, DEC PDP-8 em 1965
1945 1947 1958
Alguns µPs da Intel...
• 1971: 4004 (2.3k, 10u, 46 instruções, 400kHz)
• 1974: Intel 8080
• 1977: 8051 (µC)
• 1985: 80386
• 1993: Pentium
• 2004: Pentium M (140M, 0.09u); Itanium 2 (410M, 0.13u)
• 2005: Itanium dual core
1945 1947 1958 1971 1974 1977 1985 1993 2004 2005
MP0506, [email protected] 15
Avaliação e aprofundamento...
• Perceber:
– Que disciplina é esta? como vai funcionar?... – Quais os paradigmas de projecto apresentados?
• Definir, distinguir:
– Computador? processador?
– Microprocessador? microcomputador? microcontrolador?
• Estudar:
– Livro 2: secções 5.1 a 5.3 e 5.6
Edição 2005/2006
EEC2104
Microprocessadores
Arquitectura de um microprocessador básico
MP0506, [email protected] 17
De que estamos a falar?
ISP SP DSP LSP OT MP LAcc ABUS DBUS PC Controlo e descodificação CBUS IP C LIR IR CPU Acc Clock LPC TMP ALU Reset Interrupt Flags OAcc
Execução de um programa
• Continuamente:
– Ler da memória a próxima instrução – Descodificá-la
– Executá-la (p. ex. obter operandos, operar, armazenar resultado)
• Questões em aberto:
– Como se podem ler posições de memória? – Como se geram os endereços de memória? – Como se indica à ALU a operação a efectuar? – Como se movimentam operandos/resultados?
MP0506, [email protected] 19
(esquecer por enquanto o sinal CE, de activação do circuito e o sinal WR que dá ordem de escrita)
Leitura de uma memória
• Recebe:
– Por ABUS um número binário que representa o endereço a aceder – Um sinal (RD) que dá a ordem de
leitura
• Responde:
– Por DBUS com um número binário que é o conteúdo da posição que foi
endereçada ABUS DBUS RD WR CE MEM MP0506, [email protected] 20 IPC: Increment PC
LIR,LAcc: Load IR, Load Acc
Para ler uma instrução
• O CPU envia à memória:
– O endereço pretendido – O sinal de leitura
• E recebe:
– A resposta da memória, guardando-a internamente• Hardware necessário:
– Registo para o endereço (PC) – Registo para a instrução (IR)
– Sequenciador IPC LIR LAcc
ABUS DBUS PC IR Controlo e descodificação CBUS CPU Acc Clock
MP0506, [email protected] 21
Um registo...
• Elemento que permite armazenar n
bits de informação
• Constituição base:
– Conjunto de n flip-flops – Clock comum
– Eventualmente:
• Com saídas de 3 estados • Com possibilidade de contagem
• Exemplos:
– IR, Acc: registos simples – PC: contador ascendente
com carregamento paralelo
DBUS LIR IR D Q Clk D Q Clk D Q Clk
Execução de uma instrução
• Exemplo:
carregar o registo acumulador com uma constante
0000h 0001h 0002h
74
74
6E
6E
cseg at 0000h
mov a,#110
end
MP0506, [email protected] 23
Execução de uma instrução
• Exemplo:
carregar o registo acumulador com uma constante
– Dar ordem de leitura da instrução (RD) em CBUS – Guardar a resposta da memória em IR (LIR) – Descodificar a instrução e executá-la:
• Endereçar posição seguinte (IPC) • Dar ordem de leitura (RD) em CBUS • Guardar a resposta em Acc (LAcc)
– Endereçar posição de memória seguinte (IPC)
Depende da instrução! 75h 0000h 0001h 6Eh ABUS RD DBUS LIR IPC LACC
(Valores definidos pelo uP) (Valores definidos pela memória)
MP0506, [email protected] 24
Avaliação e aprofundamento...
• Conhecer:
– Quais as fases de execução de um programa residente em memória?
– Qual a sua relação com a arquitectura interna de um uP?
• Definir, distinguir:
– Program Counter? Instruction Register? – Registo?