Objectivos
Objectivos Gerais
Aprendizagem de conceitos básicos sobre sistemas de aquisição de dados e controlo para aplicação a sistemas, experiências e detectores em Física. Projecto, desenvolvimento e utilização de sistemas de aquisição de dados e controlo num laboratório de pequena/média dimensão recorrendo a lógica programável. Domínio das ferramentas específicas do “ofício”: placa DE2 da Altera (FPGA Cyclone II), Verilog HDL e o ambiente Quartus II.
Descrição da cadeira
Esta disciplina apresenta os conceitos e princípios básicos de sistemas de aquisição de dados e controlo em Física e reforça a compreensão desses conceitos através de aplicações ao mundo real. Decorrendo exclusivamente em ambiente laboratorial, é nela dado especial ênfase à capacidade de aplicação dos conceitos na resolução de problemas concretos para se obter um produto final funcional. O seminário de arranque da cadeira com apresentação de projectos passados é particularmente importante porque para além de motivar os alunos, estabelece o nível de exigência que é norma na cadeira. Cada um dos projectos apresentados resultou sempre de um caso de estudo que se traduziu no cumprimento de um caderno de encargos negociado na sexta semana de aulas com cada grupo de trabalho. A realização dos exercícios laboratoriais e dos projectos requer a utilização extensiva de Verilog para implementação de sistemas em lógica digital usando FPGAs de última geração. Em particular, será dada ênfase quer à compilação e síntese do VerilogHDL como também à simulação. A apropriação por parte dos alunos da maioria dos conceitos decorre do projecto e implementação de vários exercícios simples. O ambiente de desenvolvimento do Quartus® II (uma IDE - Integrated Development Environment - que permite programar em várias linguagens, entre elas o Verilog, compilá-las e enviar o programa para a FPGA, disponibilizando também entre outras ferramentas, debuggers, simuladores, analisadores lógicos, etc.) será explorado extensivamente nas acções de desenho, compilação e síntese, e simulação.
Enquadramento curricular
O programa da cadeira pressupõe a montante conhecimentos normalmente adquiridos em cadeiras introdutórias de programação, sistemas digitais, electrónica e instrumentação. Funcionando com base em projecto individual é possível desenvolver projectos com graus de complexidade distintos, em função da formação, curso e inserção curricular da disciplina. No actual curriculum do Mestrado Integrado em Engenharia Física Tecnológica, esta unidade é uma opção do 2º semestre do 4º ano (2º ciclo).
Objectivos operacionais
No término da cadeira o estudante deve:
- saber utilizar lógica programável para a implementação flexível de hardware de aquisição e controlo.
- implementar e optimizar soluções de síntese em VerilogHDL
- criar e compilar projectos no ambiente do Quartus II analisando os resultados no simulador interno.
- saber utilizar um computador pessoal para aquisição de sinais a partir de equipamentos de laboratório
- reconhecer diversos protocolos de comunicação: PCI, RS-232, etc.
- saber instalar placas de aquisição e software específico de aquisição, proceder ao seu teste e debug e eliminar possíveis fontes de incompatibilidade.
- saber utilizar os recursos disponíveis em rede para obter informação técnica, exemplos de aplicações, actualizações dos drivers dos equipamentos e procedimentos.
- valorizar o log-book (livro de laboratório) como instrumento de trabalho, quer durante a realização da cadeira, quer como referência para aplicações futuras.
- valorizar a existência de um caderno de encargos, de prazos e de um orçamento como sistema de enquadramento do trabalho a realizar.
- valorizar o trabalho em equipa e a desagregação do projecto em tarefas de desenvolvimento autónomo.
- reconhecer a necessidade de considerar no desenvolvimento dos projectos a existências de normas de segurança e de legislação adequadas
Conteúdos
Programa
Tópicos gerais sobre sistemas de aquisição de dados. Grandezas e medições. O sistema físico. Caracterização dos sinais: escalas de tempo, resolução e precisão. Sinais analógicos e níveis digitais. Margens de ruído.
Arquitecturas de lógica programável. Introdução à programação de FPGAs. Software e linguagens de programação. O ambiente de simulação do QuartusII e a linguagem VerilogHDL (Hardware Description Language). Compilação e síntese. Exemplos simples de implementações de blocos de hardware em FPGAs. Simulação. Analisador lógico interno e externo às FPGAs. Analisador TimeQuest.
Blocos sequenciais em Verilog: flip-flops, latches e registos. A Placa DE2: Botões de pressão e ON/OFF, LEDs, mostradores LCD e de 7 segmentos. Modularidade e reutilização de código. Optimização de funções lógicas comuns. Entradas assíncronas em sistemas sequenciais. Máquinas de estados. Sincronismo. Clocks. O circuito PLL.
Memória: ciclos de leitura/escrita e tempos de acesso. Tipos de memória. Arquitectura interna. Endereçamento. Leitura e escrita assíncrona em SRAMs.
Input/Output (I/O). Blocos analógicos: amplificadores operacionais, conversores analógico-digital (ADC) e digital-analógico (DAC). Interface com dispositivos analógicos. Controlo de dispositivos analógicos.
Vídeo. Sincronismo horizontal e vertical. Frequências de varrimento. Áudio.
Sensores, transdutores e actuadores. Grandezas mecânicas, magnéticas e eléctricas. Princípios de funcionamento: efeitos termoeléctricos, electromagnéticos, optoelectrónicos, piezoeléctricos, resistivos e capacitivos. Modelo e função de transferência. Gama de medição, sensibilidade, linearidade, fontes de erro, resposta em frequência. Condicionamento de sinal. Filtragem. Amplificação. Linearização. Isolamento. Transdutores como elementos de um sistema de controlo. Motores. Controlo de posição. Servomotores. Determinação digital de posição. Motores passo a passo.
Extensão opcional ao Programa
O processador Nios II. Consola de operação do Nios. Acesso à memória, instruções ALU, registos, etc.
Crítica ao programa. Comparação com outros programas.
Programas com conteúdo similar e/ou com a mesma metodologia de ensino podem encontrar-se em várias universidades de referência como no Massachusetts Institute of Technology (6.111), no Imperial College (EE3 & ISE3 DSD) ou na Universidade do Colorado (ECEN3100). Noutro âmbito refira-se o programa Universitário da Altera em colaboração com várias universidades e empresas. Os seus programas foram incluídos como referência em apêndice. A aquisição do programa por parte dos alunos acarreta uma elevada carga de trabalho, que resulta em grande medida de aos trabalhos (e mesmo aos exercícios) se atribuir um carácter de projecto. No entanto essa metodologia, que é reconhecida pelos alunos como muito importante e motivadora na cadeira, não se afasta da prática internacional. Este problema foi alvo de várias reflexões envolvendo ex-alunos (para permitir algum distanciamento) tendo-se concluído pela manutenção da actual estrutura por parecer optimizar o custo-beneficio.
Organização
As aulas de laboratório estão organizadas em três módulos. O primeiro módulo acompanha a componente mais formal do ensino, consistindo em três exercícios, cada um com um horizonte temporal de uma semana, iguais para todos os grupos de trabalho. Estes três exercícios são por isso a ferramenta que permite, por um lado solidificar as noções de programação de hardware por Verilog e as potencialidades da DE2, mas também, a familiarização com o equipamento de medida do laboratório e a interface com detectores e actuadores, por exemplo. O primeiro trabalho, ainda comum para todos os grupos já requer uma abordagem típica de um projecto, com a desagregação em módulos independentes e a necessidade de uma calendarização e divisão de tarefas claras. O terceiro trabalho é constituído por um projecto com tema livre podendo, também, ser realizado num laboratório de investigação. Este trabalho requer a definição de um caderno de encargos que servirá de linha condutora ao seu desenvolvimento.
Calendarização das aulas
Seminário de objectivos e metodologias. Apresentação do laboratório.
1ª Semana
Apresentação da cadeira. Sessão de apresentação dos trabalhos realizados em anos anteriores: discussão e motivação. Apresentação do laboratório. As regras de funcionamento e de conduta. Condições de segurança a observar. Formação de grupos de trabalho.
Introdução à DE2, ao Quartus II e ao Verilog
2ª Semana – Exercício 1
Objectivo: a) Escrever “Ola Mundo” no mostrador de 7 segmentos. b) Implementar um cronómetro de milésimas de segundo.
Identificação das ferramentas principais de PCLD: a placa DE2 e o ambiente de desenvolvimento Quartus II. Implementação de lógica booleana e sequencial.
No exercício a) recorre-se ao projecto DE2_top acessível a partir do Quartus II para comunicar com os mostradores de 7 segmentos. O código será alterado de acordo com o objectivo pedido. No exercício b) recorre-se uma vez mais ao projecto DE2_top para implementar sequencialmente: i) um contador a partir do sinal clk_50 e saída nos LEDs da DE2; ii) a indicação no mostrador de 7 segmentos do número na base decimal que corresponde à posição dos interruptores da DE2 na base binária; iii) um cronómetro com resolução de milésimas de segundo, com o sinal de START/STOP dado externamente (por um gerador de sinal) e o tempo decorrido indicado no mostrador de 7 segmentos.
3ª Semana – Exercício 2
Objectivo: Implementar um sistema de alarme.
Exploração do ambiente Quartus II. Analisador lógico interno. Implementação de máquinas de estado. Clocks. Modificação da frequência com PLL.
Implementar um sistema de alarme que deve dar sinal imediatamente se uma janela for aberta, e após 30 s se uma porta for aberta. O código para desarmar o alarme deve consistir em quatro dígitos decimais. O estado do alarme é indicado pelo estado dos LEDs.
4ª Semana – Exercício 3
Objectivo: Implementar uma mira técnica num monitor VGA
Memória. Interface com dispositivos analógicos. Áudio e Vídeo.
Gerar uma imagem de mira técnica (não gravada em memória) num monitor VGA. Verificar a resolução de saída e taxa de refrescamento compatível com o monitor, construindo um sinal de clock VGA, alterando a frequência de um dos cristais da DE2 com um PLL. Construir os pulsos de sincronismo horizontal e vertical da VGA assim como o sinal de saída RGB.
5ª Semana – Recuperação
Esta semana permite optimizar o código dos exercícios 1 a 3, estruturando módulos. É possível também recuperar algum dos exercícios que tenha derrapado no período de execução.
DE2 – Jogo de Squash
6-9ª Semana – Trabalho 1
Objectivo: Implementar um jogo de squash, integrando parcialmente os módulos desenvolvidos nos exercícios anteriores da cadeira, de forma a controlar com um cursor externo à DE2 a raquete que permitirá jogar squash num monitor VGA.
Projecto Final de PCLD
9ª Semana – Projecto final I
Objectivo: Discussões e apresentações dos cadernos de encargos dos projectos finais.
Introdução aos trabalhos finais. Projecto livre que envolve tipicamente o projecto e construção de um sistema de aquisição e controlo de um detector, a automação de uma experiência ou o desenvolvimento de um pequeno equipamento com unidade de microcontrolo embebida.
Apresentação do projecto de caderno de encargos proposto por cada grupo para o terceiro trabalho.
Sessões de negociação dos cadernos de encargos tendo em conta a sua exequibilidade, assim como as condições de equidade entre grupos.
O caderno de encargos. Objectivo e conteúdo.
- Título do trabalho
- Resumo.
- Motivação.
- As especificações técnicas e requisitos mínimos.
- Condições de segurança e observações legais aplicáveis ao projecto
- Cronograma de desenvolvimento e implementação do projecto
- Orçamento previsto.
Apresentação de temas possíveis para os trabalhos . Por exemplo:
- Controlo remoto por SMS
Projecto e implementação de um sistema de controlo remoto (por short message service, SMS) para uma casa “inteligente”, através do protocolo GSM. Neste trabalho será necessário implementar uma interface do modem GSM com a FPGA.
- Quadro branco táctil
Desenvolvimento de um dispositivo de aquisição em tempo real da escrita em quadro branco de uso comum. Reconhecimento da posição da caneta por triangulação com recurso a ultra sons. Funcionamento alternativo como touch screen actuando sobre uma apresentação projectada a partir de computador em quadro branco.
- Macroscópio de força superficial
Construção de um digitalizador 3D por captura de posição através de toque de ponta de prova na superfície do objecto. Reconstrução em computador da topografia medida.
- Engenho de furar de precisão.
Construção de um engenho com microcontrolador dedicado para furar placas de circuito impresso com movimentos automáticos em XYZ. Construção do mapa de furações e alinhamento a partir da leitura do layout da placa.
- Sistema de controlo de acessos.
Desenvolvimento de um sistema de controlo de acessos através da leitura de cartão de banda magnética ou impressão digital. Capacidade de hierarquização de níveis de segurança. Possibilidade de controlo simultâneo de acessos a diferentes divisões utilizando um único sistema central. Geração de alarmes.
10ª-15ª Semana – Projecto Final II
Acompanhamento do desenvolvimento do projecto. Sessões de ponto de situação da evolução dos trabalhos. Discussão crítica das soluções implementadas. Análise do sucessivo cumprimento dos requisitos mínimos do projecto.
Material de Consulta e Bibliografia
A cadeira não funciona na base de um esquema de guia de laboratório que, se seguido criteriosamente e consultada a bibliografia aconselhada, garante o cumprimento dos objectivos traçados. Pelo contrário, nela estimula-se o desenvolvimento de ferramentas de auto-aprendizagem, que além de melhor apetrecharem os alunos para a resolução de novos problemas, lhes dá um sentimento de propriedade do conhecimento adquirido e uma maior motivação. Há, naturalmente uma lista de livros aconselhada. Mas essa lista não dispensa a procura de informação adicional em livros, manuais de equipamentos, manuais de linguagens de programação, datasheets de componentes, etc., e claro também disponível na internet onde se encontram múltiplos fóruns de discussão, e inúmeros sítios de recursos.
Bibliografia Principal
- Contemporary Logic Design, Gaetano Boriello e Randy H. Katz, Prentice Hall (2004)
Um texto excelente e actual sobre lógica digital.
- VerilogHDL (2ª edição) , Samir Palnitkar, Pearson Education, (2003)
Verilog de A a Z. É um livro onde os conceitos são entendidos e não só mecanizados. Há abundantes exemplos de implementação.
- Fundamentals of Digital Logic with Verilog Design (2ª Edição), Stephen Brown e Zvonko Vranesic, Ed. McGraw-Hill (2007)
Introdução ao desenho de lógica digital, incluindo inúmeros exemplos em Verilog para ilustrar os conceitos fundamentais, e tutoriais e exemplos no ambiente de desenvolvimento Quartus II.
Bibliografia secundária
- Digital Design, Principles & Practices (4ª edição), J.F. Wakerly, Prentice Hall (2005)
- FPGA-based System Design, Wayne Wolf, Prentice Hall (2004)
- Physical data acquisition for digital processing : components, parameters, and specifications; Gayle F. Miner e David J. Comer. Prentice Hall (1992).
- Applied electronic instrumentation and measurement , David Buchla e Wayne McLachlan, Prentice Hall (1992).
- High-Speed Digital Design - A handbook of black magic, Howard Johnson e Martin Graham, Prentice Hall (1993)
- PC interfacing for data acquisition and process control; Editor Sanjay Gupta e Jai P. Gupta., 2ª edição. Instrument Society of America (1994).
Avaliação
No final da época de avaliação do semestre, realiza-se uma sessão pública (laboratorial) de apresentação dos projectos que são avaliados tomando como matriz o caderno de encargos negociado entre as partes.
A nota final da cadeira é obtida de acordo com a seguinte regra
NF = 0,15×(NE1+NE2+NE3)/3x10+ 0,25×NT1 + 0,6×NPF
onde NF representa a nota final, NE1, NE2 e NE3 as notas dos três exercícios (0, 1 ou 2), NT1 a nota do primeiro trabalho (de 0 a 20) e NPF a nota obtida no projecto final tomando como referência o caderno de encargos (de 0 a 20).


