Microcontroladores e FPGAs
Aplicações em Automação
Descrição do livro
Este livro efetua uma comparação detalhada, enfatizando os periféricos e as funcionalidades, dos microcontroladores PIC 16F628, da Microchip, MC68HC908, da Motorola, COP8CCE9, da National Semiconductors, e AT89C51, da Atmel, que são os mais utilizados no mercado brasileiro, tanto em sistemas embarcados como em aplicações de automação.
A obra comenta e explica, por meio de exemplos, os comandos do compilador PicBasicPro, ferramenta amplamente difundida, que facilita a programação de microcontroladores PIC. Apresenta aplicações práticas como a descrição de um sistema de acionamento de motores e a utilização de microcontroladores em sensores de pressão, de inclinação e de temperatura. Os códigos-fonte para aquisição de dados e a programação dos microcontroladores são discutidos e explicados. São analisados os elementos necessários para o condicionamento de sinais e a conversão A/D e D/A (analógico para digital e digital para analógico).
Descreve, ainda, o projeto de seis periféricos de microcontroladores, os quais são mapeados em circuitos programáveis (FPGAs), com a respectiva programação em VHDL. Inclui, também, o projeto de uma CPU especial que executa as funcionalidades de periféricos de microcontroladores e um sistema que integra microcontroladores e FPGAs, permitindo processamento paralelo.
Este livro pode ser utilizado por alunos, professores, engenheiros e profissionais interessados em adquirir e aprimorar conhecimentos sobre sistemas digitais e aplicações de automação e instrumentação.
Ver menos ▲Sumário
Sumário
- Dedicatória
- Agradecimentos
- Sobre os Autores
- Prefácio
- Parte I – Apresentação e Comparação de Microcontroladores
- Capítulo 1 – Microcontrolador PIC16F628, da Microchip
- 1.1 Principais Características do Microcontrolador PIC16F628
- 1.1.1 Principais Características dos Periféricos do PIC 16F628
- 1.2 Seleção de Osciladores do PIC 16F628
- 1.3 Modos de Reset do PIC 16F628
- 1.3.1 POR (Power-On Reset)
- 1.3.2 BOD (Brown-Out Detect)
- 1.3.3 OST (Oscillator Start-up Timer)
- 1.3.4 WDT (Watchdog Timer)
- 1.4 Interrupções do PIC 16F628
- 1.5 Módulo CCP (Capture/Compare/PWM)
- 1.6 Timers – Temporizadores
- 1.7 Modo SLEEP
- 1.1 Principais Características do Microcontrolador PIC16F628
- Capítulo 2 – Microcontrolador MC68HC908, da Motorola
- 2.1 Principais Características do MC68HC908JL8
- 2.2 MON (Módulo Monitor ROM)
- 2.3 Módulo KBI (Keyboard Interrupt Module)
- 2.4 Módulo TIM (Timer Interface Module)
- 2.5 Módulo SIM (System Integration Module)
- 2.6 Módulo COP (Computer Operating Properly)
- 2.7 Módulo LVI (Low Voltage Inhibit)
- 2.8 Módulo BREAK
- 2.9 Módulo OSC
- Capítulo 3 – Microcontrolador COP8CCE9, da National
- 3.1 Características do Microcontrolador COP
- 3.2 Economia de Energia – Modos HALT e IDLE
- 3.3 Detector de Condições Ilegais
- 3.4 Timers – Temporizadores
- 3.4.1 Timer Tx: Processor Independent PWM Mode do COP8CBE9
- 3.4.2 Timer Tx: External Event Counter Mode do COP8CBE9
- 3.4.3 Timer Tx: Input Capture Mode do COP8CBE9
- 3.5 Conjunto de Portas
- 3.6 Multi-Input Wake-Up
- 3.7 Virtual EEPROM
- 3.8 In-System Programming
- 3.9 Microwire/Plus ISP
- 3.10 Interrupções
- 3.11 Monitor Watchdog/Clock
- Capítulo 4 – Microcontrolador AT89C51, da Atmel
- 4.1 Características do AT89C51
- 4.2 Modos de Oscilação
- 4.3 Registradores de Funções Especiais – SFR
- 4.4 Timers/Counters – Temporizadores e Contadores
- 4.4.1 Clock de Saída Programável
- 4.4.2 Programmable Watchdog Timer
- 4.5 SPI do AT89S8252
- 4.6 Interrupções do AT89S8252
- 4.7 Estrutura de Nível de Prioridade
- 4.8 Modo Idle e Modo Power Down
- Capítulo 5 – Periféricos de Microcontroladores
- 5.1 Principais Periféricos de Microcontroladores
- 5.2 Microcontroladores Java
- Parte II – Desenvolvimento de Aplicações com Base em Microcontrolador
- Capítulo 6 – Introdução a Sensores e Conversores A/D
- 6.1 Teoria Básica sobre Sensores
- 6.2 Exemplos de Sensores Usados em Automação
- 6.2.1 Sensor de Fim de Curso (chave-limite)
- 6.2.2 Sensor Indutivo
- 6.2.3 Sensor Capacitivo
- 6.2.4 Sensor Fotoelétrico
- 6.2.5 Sensor Ultra-Sônico
- 6.3 Condicionamento de Sinal e Conversor A/D
- 6.3.1 Condicionamento de Sinal
- 6.3.2 Conversão Analógica para Digital
- 6.4 Conversor A/D do Microcontrolador HC908
- 6.5 Desenvolvimento do Programa para o Microcontrolador
- 6.6 Interface entre o Microcontrolador e o Dispositivo Atuador
- Capítulo 7 – Sistema de Estufa para Pintura de Peças
- 7.1 Introdução
- 7.2 Módulo para o Posicionamento da Peça para a Pintura
- 7.2.1 Acionamento do Motor de Passo
- 7.2.2 Estágio de Potência para o Acionamento do Motor de Passo
- 7.2.3 Sensor de Infravermelho para Indicar o Posicionamento da Peça
- 7.3 Módulo para o Controle da Pintura e do Nível de Tinta do Reservatório
- 7.4 Módulo para o Controle de Temperatura e Secagem da Peça
- 7.4.1 Conversor A/D
- 7.4.2 Sensor de Temperatura
- 7.4.3 Condicionamento do Sinal para o Sensor de Temperatura
- 7.4.4 Conversão Hexadecimal para Decimal
- 7.4.5 Circuito com Estágio de Potência
- 7.4.6 Aquecedor e Resfriador
- 7.4.7 Controle e Tomada de Decisão
- 7.5 Código-Fonte dos Módulos Desenvolvidos
- Capítulo 8 – Medida de Pressão na Faixa das Intracranianas
- 8.1 Medições de Pressão PIC
- 8.2 Definição do Problema
- 8.3 Medição da Pressão (Manômetro de Coluna de Água)
- 8.3.1 Tipos de Referência de Pressão
- 8.3.2 Unidade de Medida de Pressão
- 8.3.3 Sensor de Pressão MPX5100 da Motorola
- 8.3.4 Especificação do Sensor de Pressão
- 8.4 Sistema de Transmissão
- 8.5 Kit de Desenvolvimento com o Microcontrolador M68HC11EVBU
- 8.5.1 Programa de Gerenciamento do Sistema
- 8.5.2 Equação do Circuito de Condicionamento de Sinal
- 8.6 Funcionamento do Sistema
- 8.7 Validação do Manômetro
- 8.8 Descrição dos Programas
- 8.8.1 Código Assembly para Aquisição de Dados do Sensor
- 8.8.2 Programa para Aquisição de Dados
- 8.8.3 Código C++ para Porta Serial COM2 do Computador
- Capítulo 9 – Projeto de um Inclinômetro para Veículos Off-Road
- 9.1 Introdução
- 9.2 Definição do Problema
- 9.3 Sensor ADXL-105JQC (Acelerômetro)
- 9.3.1 Especificação do Acelerômetro
- 9.3.2 Princípio de Funcionamento do Acelerômetro
- 9.4 Inclinômetro Completo para Veículo Off-Road
- 9.5 Descrição do Software Desenvolvido
- Capítulo 10 – Medidor de Temperatura com Uso de Termostato Digital Programável
- 10.1 Introdução
- 10.2 Termostato Digital Programável DS1821 da Dallas
- 10.2.1 Características do Sensor DS1821
- 10.3 Protocolo 1-Wire da Dallas
- 10.3.1 Comunicação Mestre-Escravo
- 10.4 Medidor de Temperatura Completo
- 10.5 Descrição do Software Desenvolvido
- Parte III – Integração entre Microcontroladores e FPGAs
- Capítulo 11 – Compilador PicBasicPro
- 11.1 Breve Apresentação do PICBASIC
- 11.2 Sintaxe das Declarações do PICBASIC
- 11.2.1 Direção das PORTAS
- 11.2.2 Variáveis
- 11.2.3 Aliases
- 11.2.4 Arrays
- 11.2.5 Constantes
- 11.2.6 Constantes Numéricas
- 11.2.7 Pinos
- 11.2.8 INCLUDE
- 11.2.9 DEFINE
- 11.2.10 DEVICE
- 11.2.11 Operadores Matemáticos
- 11.3 Sintaxe dos Principais Comandos do PICBASIC
- 11.3.1 @
- 11.3.2 ADCIN
- 11.3.3 ASM... ENDASM
- 11.3.4 BRANCH
- 11.3.5 BUTTON
- 11.3.6 CALL
- 11.3.7 CLEAR
- 11.3.8 CLEARWDT
- 11.3.9 COUNT
- 11.3.10 DISABLE INTERRUPT
- 11.3.11 DTMFOUT
- 11.3.12 END
- 11.3.13 FOR... NEXT
- 11.3.14 FREQOUT
- 11.3.15 GOSUB
- 11.3.16 GOTO
- 11.3.17 HPWM
- 11.3.18 HSERIN
- 11.3.19 HSEROUT
- 11.3.20 I2CREAD
- 11.3.21 I2CWRITE
- 11.3.22 IF.. THEN
- 11.3.23 INPUT
- 11.3.24 LCDOUT
- 11.3.25 LOOKDOWN
- 11.3.26 LOOKDOWN2
- 11.3.27 LOOKUP
- 11.3.28 LOOKUP2
- 11.3.29 NAP
- 11.3.30 ON INTERRUPT
- 11.3.31 OUTPUT
- 11.3.32 OWIN
- 11.3.33 OWOUT
- 11.3.34 PAUSE
- 11.3.35 PAUSEUS
- 11.3.36 PEEK
- 11.3.37 PEEKCODE
- 11.3.38 POKE
- 11.3.39 POKECODE
- 11.3.40 POT
- 11.3.41 PULSIN
- 11.3.42 PULSOUT
- 11.3.43 PWM
- 11.3.44 RANDOM
- 11.3.45 READ
- 11.3.46 READCODE
- 11.3.47 RESUME
- 11.3.48 RETURN
- 11.3.49 REVERSE
- 11.3.50 SELECT CASE
- 11.3.51 SERIN
- 11.3.52 SERIN2
- 11.3.53 SEROUT
- 11.3.54 SEROUT2
- 11.3.55 SHIFTIN
- 11.3.56 SHIFTOUT
- 11.3.57 SLEEP
- 11.3.58 SOUND
- 11.3.59 STOP
- 11.3.60 SWAP
- 11.3.61 TOGGLE
- 11.3.62 WHILE... WEND
- 11.3.63 WRITE
- 11.3.64 XIN
- 11.3.65 XOUT
- 11.4 Programas Básicos
- 11.5 Programas Avançados
- Capítulo 12 – Conceitos de VHDL e FPGAs
- 12.1 Estrutura Interna de um FPGA
- 12.2 Roteamento e Configuração de um FPGA
- 12.3 VHDL – Descrição Estrutural e Comportamental
- 12.4 Exemplo dos Estilos de Descrições em VHDL
- 12.4.1 Descrição Algorítmica
- 12.4.2 Descrição de Fluxo de Dados
- 12.4.3 Descrição Estrutural
- 12.5 Elementos Sintáticos do VHDL
- 12.6 Exemplos de Circuitos em VHDL
- 12.6.1 Porta AND
- 12.6.2 Multiplexadores
- 12.6.3 Decodificadores
- 12.6.4 Comparadores
- 12.6.5 Estatísticas de Recursos Usados em FPGAs
- Capítulo 13 – Periféricos de Microcontroladores em FPGAs
- 13.1 Principais Periféricos de Microcontroladores
- 13.2 Periféricos Descritos em VHDL e Implementados em FPGA
- 13.3 Código VHDL do Periférico PWM
- 13.4 Código VHDL do Periférico de Captura
- 13.5 Código VHDL do Periférico de Timer
- 13.6 Código VHDL do Periférico de Prescaler
- Capítulo 14 – Arquiteturas Alternativas para Microcontroladores
- 14.1 Arquitetura–I: Um Microcontrolador Educacional
- 14.2 Arquitetura–II: Uma CPU Auxiliar
- 14.3 Arquitetura–III, Unidade de Processamento para Emular Periféricos
- 14.4 Arquitetura–IV, UPEMs Paralelas
- 14.5 Análise Qualitativa das Arquiteturas Propostas
- Capítulo 15 – Arquitetura Interna de uma UPEM
- 15.1 Especificação das UPEMs
- 15.2 Definição do Conjunto ISA
- 15.3 Arquitetura para Cada Unidade de Processamento
- 15.4 Código VHDL da CPU da UPEM
- Capítulo 16 – Integração de Microcontroladores com Projetos em FPGAs
- 16.1 Programas de Emulação em uma UPEM: do PICBASIC ao VHDL
- 16.2 UPEMs: Recursos utilizados no FPGA XC2S200
- 16.3 Ambiente de Testes e Validações Práticas
- 16.3.1 Primeiro Teste Real: Função de um Periférico de Timer
- 16.3.2 Segundo Teste Real: Função de um Periférico de Captura
- 16.3.3 Terceiro Teste Real: Função de um Periférico de Transmissão Serial
- 16.3.4 Quarto Teste Real: Função de um Periférico Gerador de PWM
- 16.3.5 Quinto Teste Real: Duas UPEMs em Paralelo
- 16.3.6 Sexto Teste Real: Uma UPEM Enviando um Texto ao Display LCD
- 16.3.7 Sétimo Teste Real: Integração entre uma UPEM e um PIC16F628
- Apêndice A – Lista de Termos, Abreviaturas e Siglas
- Apêndice B – Referências Bibliográficas
