Metodologia de desenvolvimento de aplicações • Organização: – O desenvolvimento de aplicações para microprocessadores / microcontroladores – Sistemas de desenvolvimento – O ambiente de projecto da KEIL – O gerador de formas de onda revisitado – Co-projecto: Um exemplo na aquisição e visualização de sinais analógicos Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 1 O desenvolvimento de aplicações para Ps / Cs • As ferramentas de apoio para o desenvolvimento de aplicações baseadas Ps ou em Cs são idênticas, mas é importante distinguir que: – As aplicações baseadas em Ps estão normalmente associadas ao processamento de informação e o trabalho do projectista é sobretudo ao nível algorítmico – As aplicações baseadas em Cs situam-se a maior parte das vezes ao nível do pormenor (muitas vezes mesmo ao bit), em estreita ligação com o hardware da aplicação Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 2 O ciclo de projecto • As quatro principais etapas no projecto com Ps / Cs (tal como noutras áreas da electrónica) são as seguintes: Especifi- Represen- EspecifiSíntese cação tação cação inicial formal formal Etapa 1 Circuito mínimo Etapa 2 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 3 Verificação de projecto Validação Produto Protótipo de projecto Etapa 3 Etapa 4 O ciclo de projecto (cont.) Especifi- Represen- EspecifiSíntese cação tação cação inicial formal formal Etapa 1 Etapa 2 Circuito mínimo Verificação de projecto Validação Produto Protótipo de projecto Etapa 3 Etapa 4 • Em relação a este modelo de projecto, repare-se que: – A mesma base (i.e. o mesmo hardware) pode ser reutilizado de aplicação para aplicação, muitas vezes sem qualquer alteração, o que não sucede com as soluções baseadas em hardware dedicado – A maior flexibilidade (para acomodar modificações) é contra-balançada pela menor rapidez, face à alternativa da solução baseada em hardware dedicado – Poderão co-existir ambas? (Cs, hardware dedicado) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 4 O ciclo de projecto (cont.) Especifi- Represen- EspecifiSíntese cação tação cação inicial formal formal Etapa 1 Circuito mínimo Etapa 2 Verificação de projecto Validação Produto Protótipo de projecto Etapa 3 Etapa 4 • Assumindo o pressuposto da reutilização do hardware, o ciclo de projecto costuma também representar-se da seguinte forma: Detecção de erros por simulação Desenvolvimento (escrita de rotinas) Simulação Implementação Detecção de erros por experimentação Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 5 Experimentação Regras básicas de projecto • Existem dois factores principais que condicionam o sucesso do trabalho de projecto (e o sucesso não se restringe a colocar o sistema a funcionar...): – A definição de uma organização modular que oriente o desenvolvimento das rotinas e que esteja em sintonia com as características da aplicação-alvo – A escolha de uma linguagem com o nível de abstracção mais adequado à complexidade e características da aplicação-alvo (assembly? C?) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 6 Regras básicas de projecto (cont.) • Satisfeitos os factores principais, a maior parte das dificuldades no projecto ficam a dever-se à não observância de questões triviais, como por exemplo: – Garantir a inicialização de uma área de stack – Guardar o conteúdo de registos e posições de memória, no início de subrotinas ou atendimento a interrupções – Analisar em detalhe a forma como são actuadas as flags – Comentar de forma sucinta e concisa o código assembly Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 7 Regras básicas de projecto: Modularidade e hierarquia • Aspectos principais a referir: – Começar por esboçar um modelo organizativo da solução – Identificar as relações de hierarquia e inter-dependência entre as várias rotinas que integram o modelo anterior – Identificar e caracterizar os parâmetros de entrada e de saída associados a cada uma das rotinas – Só então começar com o trabalho de escrita de código Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 8 Regras básicas de projecto: Escolha da linguagem • A escolha a efectuar resume-se, na maior parte dos casos, às duas alternativas seguintes: – Baixo nível de abstracção (assembly), sobretudo para pequenos segmentos de código, onde queremos ter um conhecimento preciso do que se passa ao nível temporal – Alto nível de abstracção (C), em todos os restantes casos • Em ambos os casos, no entanto, as ferramentas de apoio ao projecto têm um papel fundamental Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 9 Sistemas de desenvolvimento • Os sistemas de apoio ao desenvolvimento de aplicações baseadas em Ps / Cs integram normalmente duas componentes principais: – Aplicações (sobretudo para) Windows para controlar / observar o sistema-alvo: Correr uma rotina passo-apasso, visualizar o conteúdos dos registos, etc. – Uma ponta de emulação, para substituir o P / C no sistema-alvo, de forma a permitir realizar as operações anteriores Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 10 Sistemas comerciais de baixo custo: Ceibo Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 11 Aplicações do domínio público: ApBuilder 2.21 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 12 O ApBuilder 2.21 (cont.) • Configuração do porto série num 80C51 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 13 O ApBuilder 2.21 (cont.) • Porto série: Código ASM produzido pelo ApBuilder Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 14 O ApBuilder 2.21 (cont.) • Descrição da instrução cjne: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 15 O ambiente de projecto da KEIL Detecção de erros por simulação Desenvolvimento (escrita de rotinas) Simulação Implementação Experimentação Detecção de erros por experimentação • Actividades correspondentes às primeiras duas etapas do ciclo de desenvolvimento: – Criação dos ficheiros que integram a arquitectura modular – Geração do código objecto (via compilador ou assembler) – Ligar (link) os vários ficheiros de código objecto num único bloco – Simular o funcionamento do código executável (para detectar e corrigir os erros, antes da implementação) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 16 O ambiente de projecto da KEIL (cont.) • A KEIL proporciona várias ferramentas para apoio a estas etapas, com destaque as seguintes: – – – – – Compilador de C para código objecto (C51) Cross-assembler (A51) Linker (BL51) Gestor de bibliotecas de ficheiros (LIB51, library manager) Um ambiente de simulação / depuração (debugging), com a designação de dScope Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 17 O ambiente de projecto da KEIL (cont.) • O ambiente integrado de desenvolvimento pode representar-se pela interacção entre as quatro primeiras ferramentas (numa aplicação interactiva designada por Vision) e o dScope: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 18 Vision C51: Compilador Biblioteca C A51: Macro Assembler LIB51: Gestor da Biblioteca RTX51: Sist. oper. tempo real BL51: Linker dScope Simulador de CPU e periféricos Monitor-51 Emulador / Programador de PROM O Vision • As principais componentes do Vision são o editor, o gestor de projecto e o gerador do código objecto Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 19 O dScope • Esta aplicação permite-nos realizar a depuração do código desenvolvido, mesmo sem hardware exterior Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 20 O dScope (cont.) • Repare-se na percentagem de código que foi já executado (que importância tem esta indicação?) e na visualização mista (ASM+C) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 21 O gerador de formas de onda revisitado • Para comparar a complexidade relativa do desenvolvimento em C e em ASM, para um caso de complexidade reduzida (embora não trivial), revisitaremos o gerador de formas de onda • O desenvolvimento da solução em C permite-nos avaliar estas duas abordagens quanto à facilidade do processo de projecto, bem como comparar o código objecto produzido nas duas situações Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 22 Atribuição de recursos Forma de onda + P0.0 Frequência + P0.1 Valor máximo + P0.2 Valor mínimo + 87C51 P0 8 1 0 P0.5 Tecla Menos (-) P0.7 Saída analógica AmpOps Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 23 Função 2 P0.6 P1 8 P0.4 Tecla Mais (+) P0.3 Conversor D/A Função 1 1 0 (que modificações foram efectuadas, em relação à atribuição inicial?) Organização das rotinas • Mantendo uma organização semelhante à que foi anteriormente considerada, quando se efectuou o desenvolvimento em assembly, resultam quatro rotinas principais: – – – – A rotina principal propriamente dita (main) A geração das formas de onda O atraso que determina a frequência A gestão do sistema Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 24 O gerador de formas de onda no Vision • Vision: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 25 O gerador de formas de onda no dScope • dScope: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 26 Co-projecto na aquisição e visualização de sinais • Encerraremos as metodologias de projecto com a consideração de um caso em que a mesma especificação funcional tanto pode ser implementada com um C como com hardware dedicado: – Em hardware dedicado, proporcionando maior rapidez – Com um C, ganhando em flexibilidade – Ou mesmo com base numa solução mista (co-projecto) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 27 Conceitos básicos de coprojecto • O co-projecto procura identificar quais as partes da especificação funcional a implementar em: – Hardware dedicado, que através de paralelismo (possibilidade de realizar várias operações em simultâneo) permite satisfazer requisitos de rapidez elevada – Código residente em memória, mais lento (só uma instrução é executada de cada vez) mas com vantagens de outros tipos (custo, em última análise) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 28 Conceitos básicos de coprojecto (cont.) • O co-projecto está essencialmente associado a metodologias e ferramentas que tem por objectivo automatizar a actividade de projecto, sendo por isso vocacionado sobretudo para complexidade elevada • Contudo, mesmo para exemplos relativamente simples é possível ilustrar as alternativas em confronto e as soluções de compromisso procuradas Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 29 Especificação do sistema • Em termos gerais, o objectivo consiste em desenvolver um sistema para: – Capturar (digitalizando e guardando em memória) sinais analógicos de muito baixa frequência – Visualizar as formas de onda associadas a estes sinais, usando para o efeito um osciloscópio de baixo custo • Porque é que a visualização directa não é possível? • Quais são as dificuldades principais a enfrentar? Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 30 Especificação do sistema: Captura • Principais especificações da captura: – Pretende-se um, dois ou quatro sinais de entrada, com selecção por uma só tecla e indicação por três leds – Memória total para aquisição: 32 Kbytes – Pretende-se 10 alternativas para o tempo total de captura, entre 1 s e 24 h, com selecção por uma só tecla e com indicação através de 10 leds – O fim da captura provoca a passagem à visualização Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 31 Especificação do sistema: Visualização • Principais especificações da visualização: – É o modo definido por omissão (o sistema deve passar a este modo após reset ou após completar a aquisição) – A especificação do número de canais activos (1, 2 ou 4) vale também para a visualização – A visualização de mais do que um sinal de entrada deve ser feita em faixas horizontais distintas do écran do osciloscópio Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 32 Representação visual Canais de entrada analógicos Circuitos limitadores Saída analógica para o osciloscópio NV RAM (32 Kbytes) 15 Base de tempo 8 Reset Tecla de início de captura Tecla do modo de captura e Introdução ao Projecto com Sistemas Digitais e Microcontroladores visualização Metodologia de desenvolvimento de aplicações - 33 Sistema a desenvolver 3 Saída de trigger 10 Indicação Tecla do Indicação do do modo de tempo total tempo total de captura de captura captura e visualização Indicação de captura completa Representação visual e interface com o utilizador INI: Inicialização 1 canal 2 canais 4 canais NCA: Número de canais activos TTC: Tempo total de captura IC: Início de captura NCA Ligar Modo de visualização Modo de aquisição IC Aquisição completa TTC INI Simbologia: 1s 5s 30 s 1m 15 m 30 m 2h 6h 12 h 24 h Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 34 Tecla LED A importância do coprojecto • O que é que torna este exemplo particularmente interessante sob o ponto de vista do co-projecto? – Seria possível a implementação da componente da especificação funcional correspondente à captura através de um C da família 80C51 a 12 MHz? – E no que respeita à componente da especificação funcional que diz respeito à parte da visualização? Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 35 Implementação apenas com um C Entradas analógicas Saída de trigger LED (14) Teclas (4) Porto Microcontrolador com A/D (para o D/A) Dados Endereços e controlo Saída analógica EPROM Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 36 NV RAM Conversor D/A Implementação apenas com um C(cont.) Entradas analógicas LED (14) Teclas (4) Porto Microcontrolador com A/D Saída de trigger (para o D/A) Dados Endereços e controlo • Apesar de não nos permitir satisfazer os requisitos de rapidez na visualização, deveríamos equacionar se seria admissível: EPROM Saída analógica NV RAM Conversor D/A – Aceitar uma visualização menos confortável, o que permitiria aumentar o tempo entre operações consecutivas de escrita no conversor D/A? – Reduzir o número de amostras por canal, para que diminuísse o número de operações de escrita no D/A por intervalo de tempo? Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 37 Implementação apenas com hardware dedicado D[0..7] Entradas analógicas A[0..15] Gerador de endereços para a NVRAM Bloco de aquisição (inclui o conversor A/D) /RD, /WR Bloco de visualização Controlador (máquina de estados) Teclas 4 Interface com as teclas e LED 14 LED Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 38 Para o conversor D/A Saída de trigger Bloco de temporização Implementação apenas com hardware dedicado (cont.) • Apesar de permitir verificar todos os requisitos apresentados, esta implementação apresenta as desvantagens principais seguintes: – Flexibilidade para permitir modificações posteriores, voluntariamente ou em resultado de erros de projecto – Maior complexidade (exercício: representar o diagrama de transição de estados do controlador) – Custo superior, a não ser em casos especiais (quais?) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 39 Implementação mista Entradas analógicas LED (14) Teclas (4) Microcontrolador com A/D Dados Endereços e controlo (para o D/A) Saída analógica EPROM DP RAM Controlador de visualização Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 40 Conversor D/A Saída de trigger Implementação mista (cont.) Entradas analógicas LED (14) Teclas (4) • Continuamos a poder satisfazer todos os requisitos da especificação, mas: Microcontrolador com A/D Dados Endereços e controlo (para o D/A) Saída analógica EPROM DP RAM Controlador de visualização Conversor D/A Saída de trigger – A memória para armazenamento dos valores digitalizados terá agora que dispor de um duplo porto de acesso – Se o controlo da visualização não for suficientemente simples para poder ser implementado num dispositivo programável de média complexidade,como é que esta alternativa de implementação se compara com a anterior? Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 41 Co-projecto: Conclusão • O exemplo considerado continha apenas duas componentes funcionais, com características que tornavam simples a identificação das vantagens e desvantagens associadas à implementação por hardware dedicado ou código residente em memória • Nos casos reais em que a metodologia de co-projecto tem aplicabilidade, a complexidade das situações requer o uso de ferramentas de apoio à decisão Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 42 Conclusão • Objectivo principal do capítulo: Introduzir as metodologias de desenvolvimento de aplicações baseadas em microcontroladores e apresentar alguns exemplos concretos • Pistas para a continuação do estudo: – Projecto de “sistemas embutidos” (embedded systems) – Modelação e síntese automática no co-projecto entre hardware e software Introdução ao Projecto com Sistemas Digitais e Microcontroladores Metodologia de desenvolvimento de aplicações - 43