Sistemas Microcontrolados Aula 2: Arquitetura de Sistemas uc Marco Jose da Silva mdasilva@utfpr.edu.br Sistemas Embarcados: Definição Sistemas embarcados = Sistemas de processamento de informações embarcados em um produto maior Peter Marwedel (TU Dortmund) Dois tipos de computação Desktop produção milhões/ano Embarcado bilhões/ano Sistemas não embarcados PCs, servidores, e notebooks Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 2
Exemplos sistemas embarcados Controle automotivo: motor, freios Aviões motor, controles de vôo Forno de microondas Câmera digital Telefone celular Smart phones Sensores inteligentes... Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 3 Um Exemplo de Sistema Embarcado Diagrama em Bloco de uma Câmera Digital Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 4
Componentes de um Sistema Embarcado Memória Controladores Interface Software (Aplicação) Coprocessadores Processador ASIC Conversores Analógico Digital Analógico Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 5 Componentes de um Sistema Embarcado Componentes Analógicos Sensores, atuadores, Componentes Digitais Processadores, coprocessadores, memórias, barramentos Controladores, hardware de aplicação específica Conversores Conversor Analógico-Digital (ADC), DAC Software Sistema Operacional Aplicações (ex. interface com usuário) Firmware (programação em baixo nivel) Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 6
Características dos Sistemas Embarcados Aplicação Específica Aplicações são conhecidas a priori Otimização para custo, área, potência, e desempenho Processamento Digital de Sinais Sinais são representados digitalmente Sistemas Reativos Reage a mudanças no ambiente do sistema Tempo Real Tarefas devem ser computadas antes de um deadline Distribuído, em Rede, Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 7 Outra definição Sistema embarcado: sistema que possui um processador mas não é um computador de propósito geral Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 8
Histórico e Evolução Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 9 Histórico Transistor (1947) 1o. uc e up 4 bits Circuito integrado (1958) Microeletrônica: grande motor desenvolvimento 4004 e TMS1000 (1971) Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 10
Evolução de computadores Lei de Moore (Gordon Moore cofundador da Intel) Número de transistores em um chip dobrará a cada ano. Desde 1970, isso diminuiu um pouco. Número de transistores dobra a cada 18 meses. Custo de um chip permaneceu quase inalterado. Maior densidade de empacotamento significa caminhos elétricos mais curtos, gerando maior desempenho. Menor tamanho dos chips --> computadores menores --> maior flexibilidade. Redução nos requisitos de consumo e resfriamento. Menos interconexões aumenta a confiabilidade. Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 11 Lei de Moore Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 12
Estrutura e função Todo sistema eletrônico complexo, incluindo o computador, possui uma hierarquia. Constituído de um conjunto de subsistemas interrelacionados, cada qual também podendo ser hierárquico. Projetista lida com um nível particular do sistema. Estrutura é o modo como os componentes são interrelacionados. Função é a operação individual de cada componente como parte da estrutura. Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 13 Função de um computador Processamento, armazenamento e transferência (movimentação) de dados. Controle destas 3 funções. *** Figuras retiradas do livro Arquitetura e Organização de Computadores - William Stallings. Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 14
Funções - operações a) Movimentação de Dados: ex: teclado para Display b) Armazenagem: ex: internet para disco c) Processamento de/para memória: ex: atualizar dados bancários d) Processamento da memória para E/S: ex: imprimir dados bancários Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 15 Estrutura Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 16
Evolução dos computadores Primeira geração 1945-1957 Válvulas eletrônicas. Sem SO. Programadores submetiam seus programas em linguagem de máquinas, 1 bit por vez. ENIAC (Electronic Numerical Integrator Computer) - 1946 30 toneladas e área de 140 m 2. 18 mil válvulas e consumo de 140KW. Máquina decimal e não binária. 5 mil adições ou 360 multiplicações por segundo. Programado manualmente por chaves. Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 17 Evolução de computadores Segunda geração - 1958-1964 Transistores no lugar de válvulas (menor, mais barato e dissipa menos calor). Primeiros sistemas em lotes (Assembly) Programa inteiro era carregado na memória. Dias para execução completa de um programa. Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 18
Evolução de computadores Terceira geração - 1965-1971 Hardware Circuitos Integrados. Portas lógicas e/ou células de memória. Sistemas Operacionais Multiprogramação. Uso do processador maximizado. Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 19 Evolução de computadores A partir da 3 a geração, menor consenso sobre a definição das gerações restante. Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 20
Evolução de computadores Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 21 Processadores de propósito geral Um sistema construído com um microprocessador requer memória, entradas e saídas externas Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 22
Arquitetura Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 23 Arquitetura de Von Neumann Baseia a estrutura de quase todos os computadores, desde o smartphone até o mainframe. Barramento Memória UC CPU ULA I/O Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 24
Arquitetura de Von Neumann A UC, ULA e memória comunicam-se usando o barramento. A memória é dividida em endereços que representam bytes. Endereços de memória possuem instruções ou dados. Exemplo: "leia o byte que está na posição 2 da memória, some com aquele que está na posição 3 e guarde na posição 4". Operações lógicas e aritméticas são feitas na ULA. E quem comanda esse processo de transferir dados entre a memória e a ULA é a UC. A UC possui um ciclo infinito de buscar a instrução na memória, decodificá-la e executá-la. Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 25 Arquitetura de Von Neumann Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 26
Ciclo de instruções Execução repetida de um ciclo de instruções (fetch, decode e execute). Buscar instrução Decodificar instrução Executar ação Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 27 Sistema Embarcados (possível organização) Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 28
O que é um microcontrolador? Microprocessador + Memória de programa + Memória de dados + Periféricos Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 29 Estrutura básica de um uc http://www.mikroe.com/eng/products/view/11/book-pic-microcontrollers/ Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 30
Arquitetura interna de um uc Arquitetura von-neumann Arquitetura Harvard Memória UC CPU ULA I/O Único barramento para memórias e Entrada-Saída Barramentos separados (possibilidade execução de atividade em paralelo) Microprocessadores DSP, Microcontroladores Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 31 Memórias Tipos: Leitura/escrita. (Volátil) Ex: RAM (Random Access Memory) Somente leitura. (Não-volátil) Ex: ROM (Read-Only Memory) UV-ROM Leitura/escrita. (Não-volátil) Ex: EEPROM, FLASH Endereço = posição de mem. Conteúdo = informação no end. Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 32
CPU - Central Processor Unit Unidade central de processamento (UCP) Acumulador: registrador especial, sempre um dos operandos da ULA Decodificador de instruções: interpreta as instruções (microcódigo) Unidade lógica e aritmética (ULA): executa funções AND, OR, +, *,... Status Register (PSW): registrador especial com flags Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 33 Instruções Instrução de Máquina Um comando codificado como uma sequência de bits compreensível para a unidade de controle. Linguagem de Máquina Conjunto das instruções reconhecidas pela unidade de controle Tipos de Instruções: Transferência: copia dados de uma localização para outra Aritmética/Lógica: Comanda operações na ULA Controle: direciona a execução do programa Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 34
Conjunto de instruções Instruction Set Divisão de valores armazenados na memória (x=y z) 1. Carrega y em R1 2. Carrega z em R2 3. Se R2 = 0, PULE para instrução 6 4. Comande a ULA para dividir R1 e R2 e armazenar o resultado em R3 5. Armazena R3 em x 6. PARE Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 35 RISC vs. CISC RISC (Reduced Instruction Set Computing) Poucas instruções. Simples e rápidas. Ex: PowerPC, SPARC. CISC (Complex Instruction Set Computing) Muitas instruções. Mais complexas e convenientes Ex: Intel, AMD. Sistemas Embarcados Marco Jose Da 36 Silva mdasilva@utfpr.edu.br Slide 36
Registradores Posição de memória p.ex. variável de um programa SFR - Special Function Register (Registrador de Função Especial) Tem alguma função no uc: Flags, controlar periférico, etc. Portas (SFR) Mapeiam Dados para pinos do uc TTL/CMOS 5V 1 = 5V, 0 = 0V Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 37 PIC 16F887 Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 38
Alguns exemplos básicos Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 39 Exemplo: Microcontrolador PIC 16F628A http://sourceforge.net/projects/picsim/ Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 40
Etapas de gravação no uc Program written in C Compiled Program (Assembly) HEX (PIC Executable) Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 41 Exemplo: LED V HIGH =5V V LED 2V I = 20mA V R V I HIGH LED PIC PORTB R = 150Ω Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 42
Programa em C Pisca LED void main() { INTCON=0; OPTION_REG=0; TRISB=0; PORTB=0; while(1) { delay_ms(500); PORTB=~PORTB; } } http://www.mikroe.com/mikroc/pic/ Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 43 Programa em C Sequencial LED void main() { INTCON=0; OPTION_REG=0; TRISB=0; PORTB=1; while(1) { delay_ms(500); PORTB=PORTB<<1; if(portb==0) PORTB=1; } } Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 44
Programa em C Display 7 Segmentos void main() { INTCON=0; OPTION_REG=0; TRISB=0; PORTB=1; while(1) for(i=0;i<10;i++) { PORTB=mask(i); delay_ms(200); } } char mask(char num) { switch (num) { case 0 : return 0xEE; case 1 : return 0x28; case 2 : return 0xCD; case 3 : return 0x6D; case 4 : return 0x2B; case 5 : return 0x67; case 6 : return 0xE7; case 7 : return 0x2C; case 8 : return 0xEF; case 9 : return 0x6F; } } Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 45 Obrigado!!! Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 46