desenvolvimento de um sistema de aquisição e armazenamento de

103
DESENVOLVIMENTO DE UM SISTEMA DE AQUISIC ¸ ˜ AO E ARMAZENAMENTO DE DADOS PARA MEDIC ¸ ˜ OES OCEANOGR ´ AFICAS Rafael Mazza Buchmann Projeto de Gradua¸c˜ ao apresentado ao Curso de Engenharia Eletrˆonica e de Computa¸c˜ ao da Escola Polit´ ecnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necess´ arios`aobten¸c˜aodot´ ıtulo de Engenheiro. Orientadores: Carlos Jos´ e Ribas D’ ´ Avila abio Nascimento de Carvalho Rio de Janeiro Mar¸co de 2014

Upload: lykhanh

Post on 07-Jan-2017

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: desenvolvimento de um sistema de aquisição e armazenamento de

DESENVOLVIMENTO DE UM SISTEMA DE AQUISICAO E

ARMAZENAMENTO DE DADOS PARA MEDICOES OCEANOGRAFICAS

Rafael Mazza Buchmann

Projeto de Graduacao apresentado ao Curso

de Engenharia Eletronica e de Computacao

da Escola Politecnica, Universidade Federal

do Rio de Janeiro, como parte dos requisitos

necessarios a obtencao do tıtulo de Engenheiro.

Orientadores: Carlos Jose Ribas D’Avila

Fabio Nascimento de Carvalho

Rio de Janeiro

Marco de 2014

Page 2: desenvolvimento de um sistema de aquisição e armazenamento de
Page 3: desenvolvimento de um sistema de aquisição e armazenamento de

Buchmann, Rafael Mazza

Desenvolvimento de um Sistema de Aquisicao

e Armazenamento de Dados para Medicoes

Oceanograficas/Rafael Mazza Buchmann. – Rio de

Janeiro: UFRJ/ Escola Politecnica, 2014.

XIV, 89 p.: il.; 29, 7cm.

Orientadores: Carlos Jose Ribas D’Avila

Fabio Nascimento de Carvalho

Projeto de Graduacao – UFRJ/ Escola Politecnica/

Curso de Engenharia Eletronica e de Computacao, 2014.

Referencias Bibliograficas: p. 74 – 78.

1. Instrumentacao Eletronica. 2. Aquisicao de Dados.

3. Microcontrolador. 4. MSP430. I. D’Avila, Carlos Jose

Ribas et al. II. Universidade Federal do Rio de Janeiro,

Escola Politecnica, Curso de Engenharia Eletronica e de

Computacao. III. Tıtulo.

iii

Page 4: desenvolvimento de um sistema de aquisição e armazenamento de

Endure and Survive.

iv

Page 5: desenvolvimento de um sistema de aquisição e armazenamento de

Agradecimentos

Agradeco a minha famılia pela estrutura e incentivo, em especial meus pais Mario

Buchmann (in memoriam) e Vera Lucia Rocha Mazza Buchmann.

Agradeco a minha namorada e “dupla na graduacao” Mayara Cunha Cagido pelo

infinito carinho, amor, paciencia e dedicacao.

Agradeco aos colegas e grandes amigos que fiz durante a graduacao.

Agradeco a todos os bons professores e profissionais os quais tive o prazer de con-

viver, em especial meus orientadores Carlos Jose Ribas D’Avila e Fabio Nascimento

de Carvalho.

v

Page 6: desenvolvimento de um sistema de aquisição e armazenamento de

Resumo do Projeto de Graduacao apresentado a Escola Politecnica/ UFRJ como

parte dos requisitos necessarios para a obtencao do grau de Engenheiro Eletronico

e de Computacao.

Desenvolvimento de um Sistema de Aquisicao e Armazenamento de Dados para

Medicoes Oceanograficas

Rafael Mazza Buchmann

Marco/2014

Orientadores: Carlos Jose Ribas D’Avila

Fabio Nascimento de Carvalho

Curso: Engenharia Eletronica e de Computacao

Este trabalho apresenta o desenvolvimento de um modulo de baixo consumo para

uso submarino, capaz de ler e digitalizar dados medidos por sensores, armazenando-

os e transmitindo-os para uma unidade central. Atraves do estudo de arquiteturas

para processamento de dados, protocolos de comunicacao digital, aplicacoes de am-

plificadores operacionais e conversores A/D, foi modelada a solucao teorica para o

ambiente e seus requisitos de autonomia, protecao mecanica e baixo consumo de

corrente. A partir deste anteprojeto, implementou-se um prototipo capaz de fazer a

leitura e armazenamento dos dados. Apos a realizacao de uma pesquisa para buscar

o microcontrolador mais adequado, definiu-se a utilizacao do MSP430, fabricado

pela Texas Instruments, trazendo ao modulo versatilidade e eficiencia.

Palavras-chave: Instrumentacao Eletronica, Aquisicao de Dados, Microcontrolador,

MSP430.

vi

Page 7: desenvolvimento de um sistema de aquisição e armazenamento de

Abstract of Undergraduate Project presented to POLI/UFRJ as a partial fulfillment

of the requirements for the degree of Engineer.

DEVELOPMENT OF A DATA ACQUISITION AND STORAGE SYSTEM FOR

OCEANOGRAPHIC MEASUREMENTS

Rafael Mazza Buchmann

March/2014

Advisors: Carlos Jose Ribas D’Avila

Fabio Nascimento de Carvalho

Course: Electronic Engineering

This work presents the development of a low-power module for subsea use, capable

of reading and digitalize data measured by sensors, storing and transmitting it to

a central unit. Through the study of architectures for data processing, digital com-

munication protocols, operational amplifiers and ADC’s applications, the theoretical

solution for the environment and autonomy requirements, mechanical protection and

low current consumption was modeled. From the outline, a prototype capable of

reading and storing data was implemented. After the initial search for the most

suitable microcontroller, the Texas Instruments’ MSP430 brings versatility and ef-

ficiency to the module.

Keywords: Electronic Instrumentation, Data Acquisition, Microcontroller, MSP430.

vii

Page 8: desenvolvimento de um sistema de aquisição e armazenamento de

Lista de Siglas

A/D – Analogico para Digital

ADC – Analog-to-Digital Converter

ANSI – American National Standards Institute

ARM – Advanced RISC Machine

CCS – Code Composer Studio

CI – Circuito Integrado

CMRR – Common Mode Rejection Rate

COPPE – Instituto Alberto Luiz Coimbra de Pos-Graduacao e Pesquisa de Enge-

nharia

DEL – Departamento de Engnharia Eletronica e de Computacao

EB – USB Experimenter’s Board MSP-EXP430F5529

FET – Field-effect Transistor

FPGA – Field-programmable Gate Array

GPIO – General Purpose Input/Output

HDL – Hardware Description Language

HDMI – High-definition Multimedia Interface

I2C – Inter-Integrated Circuit

IDE – Integrated Development Environment

LED – Light Emitting Diode

LIOc – Laboratorio de Instrumentacao Oceanografica

LSB – Least Significant Bit

viii

Page 9: desenvolvimento de um sistema de aquisição e armazenamento de

MCU – Microcontroller Unit

MSB – Most Significant Bit

PC – Personal Computer

PGA – Programmable-gain Amplifier

PGIA – Programmable-gain Instrumentation Amplifier

PIC – Programmable Interface Controller

ppm – Partes por Milhao

RISC – Reduced Instruction Set Computer

RTI – Referred to Input

RTO – Referred to Output

SAR – Successive Approximation Register

SBC – Single-board Computer

SINAD – Signal-to-noise and distortion ratio

SisCAT – Sistema de Controle, Aquisicao e Telemetria

SO – Sistema Operacional

SPI – Serial Peripheral Interface

SPS – Samples per Second

THD – Total Harmonic Distortion

TJB – Transistor de Juncao Bipolar

UART – Universal Asynchronous Receiver/Transmitter

USCI – Universal Serial Communication Interface

VHSIC – Very High Speed Integrated Circuits

ix

Page 10: desenvolvimento de um sistema de aquisição e armazenamento de

Sumario

Lista de Figuras xii

Lista de Tabelas xiv

1 Introducao 1

1.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Delimitacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.6 Descricao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Analise Comparativa 4

2.1 Requisitos do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Estado da Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.1 FPGA (Field-programmable Gate Array) . . . . . . . . . . . . 6

2.2.2 SBC (Single-board Computer) . . . . . . . . . . . . . . . . . . 9

2.2.3 Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.4 Escolha da Tecnologia . . . . . . . . . . . . . . . . . . . . . . 14

2.3 Unidade Principal do Modulo . . . . . . . . . . . . . . . . . . . . . . 17

2.3.1 Micromint: MicroBolt . . . . . . . . . . . . . . . . . . . . . . 17

2.3.2 Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3.3 Microchip: PIC . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.4 Escolhido – Texas: MSP430 LaunchPad . . . . . . . . . . . . 19

3 Anteprojeto 24

3.1 Consideracoes Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1.1 Relacao Um-para-um . . . . . . . . . . . . . . . . . . . . . . . 25

3.1.2 Comunicacao Serial . . . . . . . . . . . . . . . . . . . . . . . . 27

3.2 Principais Componentes . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2.1 Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2.2 Pre-Amplificador . . . . . . . . . . . . . . . . . . . . . . . . . 31

x

Page 11: desenvolvimento de um sistema de aquisição e armazenamento de

3.2.3 Conversor Analogico/Digital . . . . . . . . . . . . . . . . . . . 40

3.2.4 Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.2.5 Armazenamento de Dados . . . . . . . . . . . . . . . . . . . . 46

3.2.6 Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.3 Sugestao de Implementacao . . . . . . . . . . . . . . . . . . . . . . . 48

3.4 Cuidados Adicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.4.1 Alimentacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.4.2 Ruıdo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.4.3 Protecao Mecanica . . . . . . . . . . . . . . . . . . . . . . . . 53

4 Prototipo 54

4.1 USB Experimenter’s Board MSP-EXP430F5529 (EB) . . . . . . . . . 54

4.1.1 Componentes da Placa . . . . . . . . . . . . . . . . . . . . . . 56

4.1.2 Operacao do Modulo . . . . . . . . . . . . . . . . . . . . . . . 58

4.2 Codigo em Linguagem C . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.2.1 Relogio: Clock.c . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.2.2 Medicao: Medir.c . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.2.3 Armazenamento: Armazenar.c . . . . . . . . . . . . . . . . . . 62

4.2.4 Programa Principal: main.c . . . . . . . . . . . . . . . . . . . 63

5 Testes 65

5.1 Material Utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.2 Consumo de Corrente . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.3 Obtencao de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.3.1 Potenciometro . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5.3.2 Sinal Senoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.3.3 Sinal Quadratico . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.3.4 Sinal Dente-de-Serra . . . . . . . . . . . . . . . . . . . . . . . 70

5.3.5 Analise dos Resultados . . . . . . . . . . . . . . . . . . . . . . 71

6 Conclusao 72

6.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Referencias Bibliograficas 74

A Codigo 79

A.1 Programa Principal (main.c) . . . . . . . . . . . . . . . . . . . . . . . 79

A.2 Rotina de Medicao (Medir.c e Medir.h) . . . . . . . . . . . . . . . . . 82

A.3 Armazenamento de Dados no Cartao

microSD (Armazenar.c e Armazenar.h) . . . . . . . . . . . . . . . . . 85

xi

Page 12: desenvolvimento de um sistema de aquisição e armazenamento de

Lista de Figuras

2.1 Chip FPGA Altera Stratix IV EP4SGX230. . . . . . . . . . . . . . . 6

2.2 Kit para Iniciantes em FPGA Altera Cyclone V GX. . . . . . . . . . 8

2.3 SBC Micromint Electrum 100, Utilizado em um dos Projetos Atuais

do LIOc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4 BeagleBone Black (a) e Raspberry Pi (b). . . . . . . . . . . . . . . . 11

2.5 Microcontrolador MSP430F5529, da Texas Instruments. . . . . . . . . 12

2.6 ArduinoPro (a) e Wireless SD Shield, Periferico para Utilizacao de

Tecnologia Sem Fio e Cartao de Memoria (b). . . . . . . . . . . . . . 13

2.7 Micromint MicroBolt. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.8 Microchip PICkit 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.9 Launchpads da Texas Instruments: MSP-EXP430G2 (a) e

MSP-EXP430F5529LP (b). . . . . . . . . . . . . . . . . . . . . . . . 20

2.10 USB Experimenter’s Board MSP-EXP430F5529, da Texas Instruments. 21

3.1 Exemplo de Sistema de Medicao Subaquatica. . . . . . . . . . . . . . 25

3.2 Conexao para o Modulo e o Sensor em uma Linha de Fundeio. . . . . 26

3.3 Diagrama de Blocos Geral. . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4 Amplificador Subtrator. . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.5 Amplificador de Instrumentacao. . . . . . . . . . . . . . . . . . . . . 33

3.6 Circuito Basico do Amplificador de Carga. . . . . . . . . . . . . . . . 35

3.7 Circuito Basico do Amplificador Logarıtmico. . . . . . . . . . . . . . 37

3.8 Grafico Exemplo de uma Funcao Linearizada por Logaritmo. . . . . . 38

3.9 Pinos Acessıveis do Microcontrolador no LaunchPad. . . . . . . . . . 43

3.10 Logotipo da Plataforma Code Composer Studio. . . . . . . . . . . . . 45

3.11 BoosterPack para Utilizacao de Cartao MicroSD. . . . . . . . . . . . 46

3.12 Cartao microSD e Compartimento na USB Experimenter’s Board

MSP-EXP430F5529. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.13 Diagrama de Blocos da Sugestao de Implementacao do Modulo de

Aquisicao e Armazenamento de Dados. . . . . . . . . . . . . . . . . . 49

3.14 FuelTank, o BoosterPack para Alimentacao do LaunchPad. . . . . . . 50

3.15 Caixa com Protecao IP-68 da Empresa CFW Eletrica. . . . . . . . . 53

xii

Page 13: desenvolvimento de um sistema de aquisição e armazenamento de

3.16 Prensa cabo IP-68 da Empresa Cemar Legrand. . . . . . . . . . . . . 53

4.1 Experimenter’s Board MSP-EXP430F5529 Utilizada para o Prototipo

em Laboratorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.2 Principais Componentes da EB. . . . . . . . . . . . . . . . . . . . . . 56

4.3 Tela Inicial do Modulo. . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.4 Formato dos Dados Armazenados no Cartao microSD. . . . . . . . . 59

4.5 Parte da Janela do software Code Composer Studio, IDE da Texas

Instruments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.6 Erro Apresentado no LCD pela Ausencia do Cartao microSD. . . . . 63

5.1 Variacao de Tensao no Potenciometro: Dados do Cartao de Memoria. 67

5.2 Sinal Senoidal com Amplitude 2.5 Vpp e Frequencia 100 Hz: Captura

de Tela do Osciloscopio. . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.3 Sinal Senoidal com Amplitude 2.5 Vpp e Frequencia 100 Hz: Dados

do Cartao de Memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.4 Sinal Quadratico com Amplitude 2.5 Vpp e Frequencia 100 Hz: Cap-

tura de Tela do Osciloscopio. . . . . . . . . . . . . . . . . . . . . . . . 69

5.5 Sinal Quadratico com Amplitude 2.5 Vpp e Frequencia 100 Hz: Dados

do Cartao de Memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.6 Sinal Dente-de-Serra com Amplitude 2.5 Vpp e Frequencia 100 Hz:

Captura de Tela do Osciloscopio. . . . . . . . . . . . . . . . . . . . . 70

5.7 Sinal Dente-de-Serra com Amplitude 2.5 Vpp e Frequencia 100 Hz:

Dados do Cartao de Memoria. . . . . . . . . . . . . . . . . . . . . . . 70

xiii

Page 14: desenvolvimento de um sistema de aquisição e armazenamento de

Lista de Tabelas

2.1 Caracterısticas dos SBCs . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2 Comparativo entre as Tecnologias . . . . . . . . . . . . . . . . . . . . 15

2.3 Caracterısticas dos LaunchPads MSP430. . . . . . . . . . . . . . . . . 21

3.1 Potenciometros Digitais. . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.2 Resolucao dos ADCs. . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

xiv

Page 15: desenvolvimento de um sistema de aquisição e armazenamento de

Capıtulo 1

Introducao

1.1 Tema

Este trabalho consiste no desenvolvimento de um sistema de aquisicao e armaze-

namento de dados para sensores submarinos. Sua composicao e embasada pelos

conceitos de instrumentacao eletronica, principalmente o estudo de aplicacoes de

amplificadores operacionais, conversores A/D e microcontroladores.

1.2 Delimitacao

A criacao deste modulo tem como principal demanda sensores sem armazenamento

proprio de dados, presentes tanto em cadeias de medicao oceanograficas como em

sistemas com apenas um elemento para medicao. Por se tratar de um equipamento

marinho, a especificidade do ambiente impoe como principais requisitos a autonomia

e a protecao mecanica.

Para este projeto de graduacao, o desenvolvimento teorico da solucao apresenta

comparativos e resultados conhecidos de sistemas de medicao semelhantes e atuais.

Neste primeiro desenvolvimento, o prototipo esta limitado ao modulo principal de

processamento, composto pelo microcontrolador MSP430, e ao armazenamento de

dados em um cartao microSD, nao sendo especificado nenhum sensor e nao incluindo

o comportamento do modulo em rede.

1

Page 16: desenvolvimento de um sistema de aquisição e armazenamento de

1.3 Justificativa

O Laboratorio de Instrumentacao Oceanografica (LIOc/COPPE/UFRJ) conta com

projetos, atuais e futuros, envolvendo a aquisicao de dados de sensores submarinos.

O estudo e desenvolvimento de um modulo versatil e economico tornou-se necessario

para o melhor entendimento deste topico e expansao da area de eletronica e com-

putacao do laboratorio.

1.4 Objetivos

O objetivo principal deste trabalho e criar um modulo capaz de medir diversos

tipos de sensores (e.g. temperatura, pressao hidrostatica) em ambiente submarino,

com a finalidade de promover as condicoes iniciais para a confeccao de um produto

confiavel, que possa integrar projetos futuros do laboratorio. Apos a realizacao

de uma pesquisa previa, concluiu-se que e adequado criar uma solucao dedicada

para o ambiente submarino e que, para este projeto, ha produtos que atendem as

especificacoes de consumo com razoavel capacidade de armazenamento e precisao

de medicao, gerando uma implementacao satisfatoria.

Como benefıcios complementares, ha o know-how adquirido sobre arquiteturas de

processamento, o envolvimento pratico direto do aluno com a area de instrumentacao

e a expansao do topico de pesquisa em microcontroladores para o laboratorio, ori-

ginando novos trabalhos que abordam este tema.

1.5 Metodologia

A partir da necessidade do laboratorio pelo sistema de aquisicao de dados, foram es-

tabelecidos os requisitos do projeto. Posteriormente, foi feita a pesquisa das possıveis

tecnologias a serem aplicadas e o microcontrolador MSP430 foi escolhido como cen-

tro de processamento. Em seguida, foram avaliados os componentes perifericos

necessarios para a modelagem do modulo completo.

2

Page 17: desenvolvimento de um sistema de aquisição e armazenamento de

Com o intuito de produzir resultados preliminares, um prototipo contendo a

parte de aquisicao e armazenamento dos dados foi montado e, atraves de medicoes

(e.g. consumo de corrente), os dados obtidos reforcaram a boa escolha do microcon-

trolador MSP430 para este projeto.

A pesquisa foi feita majoritariamente em sites de grandes fabricantes de compo-

nentes eletronicos, artigos produzidos por estes fabricantes, consultas aos profissio-

nais da area (professores e pesquisadores), projetos de graduacao e livros das diversas

areas de interesse (e.g. instrumentacao eletronica, hardware, sistemas operacionais).

1.6 Descricao

A etapa inicial consiste na analise comparativa das tecnologias, apresentada no

capıtulo 2, especialmente os sistemas presentes em cadeias submarinas atuais, bus-

cando entender seu funcionamento e definir caracterısticas utilizadas no projeto.

Visando menor perda de energia, simplicidade de implementacao e versatilidade, a

abordagem do sistema foi estudada e o componente principal do modulo especificado.

O capıtulo 3 desenvolve o anteprojeto do sistema completo, constituıdo do centro

de processamento (microcontrolador MSP430) e seus perifericos necessarios (pre-

amplificador, conversor A/D, cartao microSD).

No capıtulo 4, apresenta-se um modulo funcional do sistema, capaz de obter e ar-

mazenar dados e o software necessario para a aplicacao, utilizando preferencialmente

rotinas economicas para configuracao de intervalos de medicao e armazenamento de

dados em cartao de memoria.

A partir do prototipo, foi feita a obtencao de medidas de consumo e dados validos

em ambiente de laboratorio, descritos no capıtulo 5.

Ao final, as conclusoes e propostas de trabalhos futuros, no capıtulo 6, encerram

o trabalho.

Para os principais pontos de decisao o texto estara em negrito, possibilitando

a compreensao das partes fundamentais do projeto e uma leitura resumida, caso

desejado.

3

Page 18: desenvolvimento de um sistema de aquisição e armazenamento de

Capıtulo 2

Analise Comparativa

Considerando a demanda caracterizada na secao 1.2, o objetivo deste capıtulo e

escolher, dentre as diversas opcoes presentes no mercado atual, a arquitetura e o

componente principal do sistema, responsavel pelo gerenciamento do modulo de

medicao.

Apos descrever as caracterısticas das tecnologias selecionadas, determina-se a

opcao adotada atraves da realizacao de uma analise comparativa entre os principais

aspectos considerados para o desenvolvimento deste trabalho.

2.1 Requisitos do Sistema

Os principais requisitos sao:

• Baixo consumo (menor que 10 mA com 3.3 Vcc de alimentacao);

• Capacidade de Processamento;

• Memoria suficiente para programacao do modulo e armazenamento de dados;

• Grande autonomia:

– Funcionamento por bateria, visando longos perıodos (maior que 2 meses)

de autonomia;

4

Page 19: desenvolvimento de um sistema de aquisição e armazenamento de

• Relogio interno:

– Armazenamento de data e hora das medicoes;

• Leitura de sinal analogico ou digital:

– O sinal a ser medido pode ser analogico (vindo do sensor), convertido pos-

teriormente pelo modulo desenvolvido ou digital, convertido previamente

por dispositivo externo;

• Amplificador de ganho ajustavel:

– Como o sistema pode ser utilizado por sensores genericos, o sinal de

entrada deve ser ajustado para melhor aproveitamento;

• Conversor A/D de 12 bits ou mais, podendo ser necessaria a inclusao de com-

ponente externo ao modulo principal;

• Possibilidade de rede para comunicacao com um sistema central;

• Protecao adequada ao ambiente marinho e profundidades superiores a cin-

quenta metros.

2.2 Estado da Arte

Apos orientacao inicial, buscou-se definir quais as tecnologias que poderiam se ade-

quar ao desenvolvimento. Alem de atender os requisitos da secao 2.1, o comparativo

tem como foco tambem os seguintes pontos:

• Ferramentas para a pesquisa e desenvolvimento:

– Variedade de modelos;

– Kits de desenvolvimento;

– Literatura acessıvel;

– Ambientes online para discussoes e solucoes;

5

Page 20: desenvolvimento de um sistema de aquisição e armazenamento de

• Facilidade de implementacao e continuidade a pesquisa:

– Adequacao ao perfil do atual e dos futuros desenvolvedores, integran-

tes da equipe de eletronica do LIOc, constituıda majoritariamente por

estagiarios da graduacao em engenharia eletronica e da computacao da

UFRJ.

Das tecnologias pesquisadas, as que se mostraram mais apropriadas

foram: FPGA, SBC e microcontrolador.

A seguir, apresenta-se uma descricao objetiva de cada uma destas e suas carac-

terısticas consideradas na escolha.

2.2.1 FPGA (Field-programmable Gate Array)

O FPGA e um chip contendo um arranjo (ou matriz) programavel de portas logicas

(figura 2.1). Utilizando a porta logica como bloco base, pode-se entao construir

qualquer sistema digital, desde que o FPGA possua portas suficientes [1]. Com

a atual tecnologia de semicondutores, existem chips com possibilidade de milhoes

de portas logicas [2], tornando possıvel a realizacao de estruturas cada vez mais

complexas e poderosas.

Figura 2.1: Chip FPGA Altera Stratix IV EP4SGX230 [3].

6

Page 21: desenvolvimento de um sistema de aquisição e armazenamento de

Atualmente, o FPGA pode ser empregado como o centro de processamento con-

figuravel do sistema ou atuar como controle e interface para um microprocessador

de maior porte, combinando a robustez da execucao sequencial de um processador

com o paralelismo possibilitado pelas diversas unidades logicas do FPGA [4]. Assim

como o processamento, o mesmo pode ser feito tambem com blocos de memoria e

interfaces de conexao, ou seja, o FPGA pode ser configurado para desempenhar es-

tas funcoes, ou atuar como controle, possibilitando a utilizacao de blocos perifericos

dedicados [5].

Quanto ao consumo medio, com a necessidade de especificacao de cada

componente e a infinidade de aplicacoes do FPGA, essas informacoes nao

sao fornecidas pelos fabricantes pesquisados, ja que o consumo de corrente

e totalmente dependente do circuito gerado.

2.2.1.1 Programacao

O comportamento do FPGA e modelado nas linguagens de descricao de hardware

(HDL - Hardware Description Language), tornando-o totalmente dedicado e otimi-

zado para a aplicacao designada, com o custo de que todas as acoes possıveis do

sistema devem ser levadas em consideracao pelo projetista. Assim, projetar o sis-

tema requerido envolve descrever desde a estruturacao das interfaces seriais e geracao

das referencias de clock ate o comportamento geral do modulo, como por exemplo,

medir e entrar em estado de espera [6].

Atualmente, uma alternativa a HDL reside em interfaces graficas, aonde o sis-

tema e construıdo por diagrama de blocos e seu codigo correspondente e gerado

automaticamente. Softwares com tal capacidade, como por exemplo o LabVIEW,

da National Instruments, sao pagos e podem necessitar de treinamento especiali-

zado [7].

7

Page 22: desenvolvimento de um sistema de aquisição e armazenamento de

2.2.1.2 Plataformas

Para o desenvolvimento inicial, e interessante o uso de kits vendidos pelos proprios fa-

bricantes, proporcionando confiabilidade e minimizando erros oriundos da utilizacao

de material de desenvolvedores independentes. Com componentes perifericos (e.g.

LEDs, displays) que auxiliam o andamento do trabalho, o projetista modela o FPGA

e, posteriormente, pode criar seu proprio circuito, com somente o chip principal e

os perifericos voltados para sua aplicacao.

A serie Cyclone, da Altera Corporation, e descrita como de baixo custo e baixo

consumo [5] e algumas variantes da serie (SE, SX e ST) apresentam um processador

ARM Cortex-A9 MPCore integrado a placa. Um exemplo de kit de desenvolvimento

e o modelo Cyclone V GX Starter Kit (figura 2.1).

Figura 2.2: Kit para Iniciantes em FPGA Altera Cyclone V GX [5].

Caracterısticas: Cyclone V GX Starter Kit

• FPGA modelo Cyclone V GX 5CGXFC5C6F27C7N;

• 77 mil elementos logicos programaveis;

• Memoria interna: 4884 kB;

• Conexao USB para programacao;

8

Page 23: desenvolvimento de um sistema de aquisição e armazenamento de

• GPIO: 2x20 pinos;

• Barramentos de memoria: SRAM 16 bits de 4 MB e LPDDR2 32 bits de 4 GB;

• Conexao HDMI (High-definition multimedia interface) compatıvel com DVI 1.0

e HDCP v1.4;

• CODEC de Audio: 24 bits;

• LEDs, 4 displays de 7 segmentos, push-buttons e switches ;

• Alimentacao: 12 VDC;

• Cartao microSD;

2.2.2 SBC (Single-board Computer) [8]

Diferente do FPGA, o SBC ja e um computador completo, dotado de memoria,

processador, interfaces de vıdeo, entrada e saıda (I/O), sistema operacional e tudo

que pode ser visto tambem em computadores pessoais (PCs), sendo construıdo em

apenas uma placa de circuito impresso (figura 2.3). Em geral, um SBC e limitado

por seu espaco fısico, possui consumo reduzido em relacao ao PC e portabilidade, o

que o torna uma boa escolha para sistemas embarcados.

Figura 2.3: SBC Micromint Electrum 100, Utilizado em um dos Projetos Atuais do

LIOc [9, 10].

9

Page 24: desenvolvimento de um sistema de aquisição e armazenamento de

2.2.2.1 Programacao

De maneira analoga a um PC, o SBC opera e e configurado por meio de um sistema

operacional (SO). Geralmente, os SBCs presentes no mercado (descritos a seguir) sao

solucoes de codigo aberto (Linux e derivados), completamente programaveis atraves

de linguagens de alto nıvel [11].

Para a customizacao do SO, a estrutura do sistema segue padroes semelhantes

em diferentes placas, existindo amplos foruns para discussao e pessoas pelo mundo

trabalhando conjuntamente em busca de solucoes comuns, como, por exemplo, nos

foruns Stack Overflow e VivaLinux [12, 13].

2.2.2.2 Plataformas

No caso do SBC, nao ha kits de desenvolvimento e prototipagem posterior, pois

a placa adquirida ja e um produto final e nao deve haver alteracao posterior em

hardware.

Dos diversos tipos de SBCs disponıveis no mercado, dois modelos se sobressaem

pelo foco em baixo consumo e popularidade [14]: o BeagleBone Black Rev. A5B, da

BeagleBoard.org Foundation [15], e o Raspberry Pi Rev. B, da The Raspberry Pi

Foundation [16]. A tabela 2.1 apresenta as caracterısticas principais destas placas.

10

Page 25: desenvolvimento de um sistema de aquisição e armazenamento de

(a) (b)

Figura 2.4: BeagleBone Black [15] (a) e Raspberry Pi [16] (b).

Tabela 2.1: Caracterısticas dos SBCs [14]

BeagleBone Black Raspberry Pi

Processador 1 GHz TI Sitara AM3359 700 MHz ARM1176JZFS

ARM Cortex A8

RAM 512 MB DDR3L @ 400 MHz 512 MB SDRAM @ 400 MHz

Armazenamento 2 GB on-board eMMC, MicroSD SD

Vıdeo 1 Micro-HDMI 1 HDMI, 1 Vıdeo Composto

Audio Stereo (HDMI) Stereo (HDMI ou 3.5 mm)

SO Padrao Angstrom Raspbian

Consumo 210-460 mA @ 5 V 150-350 mA @ 5 V

GPIO 65 pinos 8 pinos

1 USB Host 2 USB Hosts

Perifericos 1 Mini-USB Client 1 Micro-USB Power

1 10/100 Mbps Ethernet 1 10/100 Mbps Ethernet

Conector para RPi camera

11

Page 26: desenvolvimento de um sistema de aquisição e armazenamento de

2.2.3 Microcontrolador

Aplicado amplamente em solucoes mais usuais, com boa capacidade de processa-

mento e facilidade de elaboracao, o microcontrolador (figura 2.5) tambem e um

computador, porem sua simplicidade e a ausencia de certos componentes (e.g. sis-

tema operacional) o tornam mais economico e compacto que o FPGA e o SBC.

Figura 2.5: Microcontrolador MSP430F5529, da Texas Instruments [17].

2.2.3.1 Programacao

As rotinas de comportamento do microcontrolador sao gravadas no chip atraves de

softwares que utilizam linguagem de programacao e armazenadas em memoria in-

terna disponıvel. As linguagens mais comuns sao de alto nıvel, derivadas de C ANSI,

mas ainda e possıvel encontrar microcontroladores programaveis em linguagens de

baixo nıvel. Algumas plataformas, como por exemplo o Arduino [18], desenvolvem

seu software para a gravacao do codigo, construindo funcoes e rotinas que possam

simplificar o desenvolvimento do projeto.

12

Page 27: desenvolvimento de um sistema de aquisição e armazenamento de

2.2.3.2 Plataformas

Da mesma maneira que o FPGA, visando facilitar a elaboracao de projetos, grandes

empresas produzem kits de desenvolvimento modulares (figura 2.6), compostos por

uma placa de circuito impresso com o microcontrolador como componente principal,

pinos de facil acesso aos terminais do microcontrolador, componentes de interacao

com o usuario como conectores, botoes, LEDs sinalizadores e qualquer outro meca-

nismo que torne mais simples, rapida e eficiente sua utilizacao. A maioria dos kits

possui ainda modulos perifericos, expandindo a capacidade da placa principal com

conectores especıficos, interfaces de comunicacao, paineis LCD, tornando o projeto

mais voltado para um objetivo especıfico.

(a) (b)

Figura 2.6: ArduinoPro [19] (a) e Wireless SD Shield, Periferico para Utilizacao deTecnologia sem Fio e Cartao de Memoria [20] (b).

A primeira plataforma estudada foi o Arduino [18], que utiliza microcontrolado-

res ATmega, da Atmel [21], devido ao uso previo do autor durante a graduacao e

a proposta de facilidade de implementacao. Para a comparacao inicial entre tecno-

logias, as caracterısticas consideradas foram do Arduino Pro (figura 2.6), descrito

como “destinado a instalacao semi-permanente em objetos ou exposicoes” [19], en-

fatizando sua aplicacao em sistemas ativos por longa duracao.

13

Page 28: desenvolvimento de um sistema de aquisição e armazenamento de

Caracterısticas: Arduino Pro [19]

• Microcontrolador ATmega168 ou ATmega328;

• Tensao de Operacao: 3.3 V ou 5 V;

• Tensao de Alimentacao: 3.35-12 V ou 5-12 V;

• I/O Digital: 14 (sendo 6 saıdas do PWM);

• Entradas Analogicas: 6;

• Corrente DC: 40 mA;

• Memoria:

– Flash: 16 kB (ATmega168) ou 32 kB (ATmega328), sendo 2 kB usado

para inicializacao (bootloader);

– SRAM: 1 kB (ATmega168) ou 2 kB (ATmega328);

– EEPROM: 512 bytes (ATmega168) ou 1 kB (ATmega328);

• Velocidade do Clock: 8 MHz (Versao 3.3 V) ou 16 MHz (Versao 5 V).

2.2.4 Escolha da Tecnologia

Analisando as tres opcoes e seus exemplos, considerados para uma visao geral de

cada tecnologia, conclui-se que todas podem ser empregadas na construcao de um

sistema de aquisicao de dados que preencha a maioria dos requisitos citados na

secao 2.1.

A tabela 2.2 apresenta um resumo das particularidades.

14

Page 29: desenvolvimento de um sistema de aquisição e armazenamento de

Tabela 2.2: Comparativo entre as Tecnologias

FPGA SBC Microcontrolador

Programacao Descricao de Sistema Operacional Alto Nıvel

hardware (Linux) (C/C++)

Plataformas de Kit Fixo Kit

desenvolvimento Modular

Limitacao Numero de Configuracao Chip principal

portas logicas preestabelecida

Vantagem Personalizacao Estrutura completa Facilidade

Desvantagem Programacao (HDL) Consumo Simplicidade

Analisando os requisitos definidos e as consideracoes no inıcio da secao 2.2,

constatou-se o seguinte:

Especificacoes nao atendidas:

Consumo medio: Pelas especificacoes nominais, o SBC Raspberry Pi apresenta

consumo nominal mınimo (140 mA) cerca de tres vezes maior que o Arduino-

Pro, com 40 mA, possuindo um excedente de 30 mA da corrente requisitada

para o projeto. O Raspberry Pi foi o SBC encontrado com menor

consumo nominal, enquanto que para o microcontrolador, foram en-

contrados, posteriormente, componentes com consumo nominal na

ordem de 2.5 mA, como e o caso do MSP430, da Texas Instruments

[22];

Facilidade e praticidade de implementacao: Destacam-se o microcontrolador

e o SBC, com programacao mais acessıvel, ja que as linguagens de alto nıvel

sao mais exploradas e utilizadas pelo desenvolvedor e os possıveis usuarios

futuros do modulo de aquisicao. Exclui-se entao o FPGA, ja que a HDL

exige um amplo aprendizado inicial e possui logica diferente das linguagens de

programacao de alto nıvel, utilizadas no microcontrolador e SBC;

15

Page 30: desenvolvimento de um sistema de aquisição e armazenamento de

Componentes: Com possibilidade de desenvolvimento modular e especıfico, o FPGA

e o microcontrolador se mostram superiores ao SBC, que possui construcao

fixa, com partes excessivas para este projeto.

Assim, descartam-se o SBC pelo consumo e o FPGA pela dificuldade de con-

figuracao. Apesar destes possuirem capacidade de processamento, quantidade de

memoria e recursos adicionais superiores, o baixo consumo do microcontrolador,

atendendo as necessidades de gerenciamento das medicoes feitas, se sobressai como

solucao para o desenvolvimento do modulo de aquisicao e armazenamento de dados.

Escolhe-se entao o microcontrolador como unidade principal do sis-

tema de aquisicao de dados.

Cabe ressaltar ainda a existencia de diversos fabricantes consagrados, inumeros

kits de desenvolvimento, dos mesmos grandes fabricantes ou de producao indepen-

dente, uma forte comunidade presente na Internet com duvidas, solucoes, discussoes,

sistemas semelhantes e sugestoes de decisoes. Considera-se tambem viavel a evolucao

deste trabalho em um futuro produto final, ja que a partir do kit de desenvolvi-

mento, o circuito pode ser extraıdo e otimizado, visando consumo ainda menor,

area diminuıda e expansao do projeto.

16

Page 31: desenvolvimento de um sistema de aquisição e armazenamento de

2.3 Unidade Principal do Modulo

Tao grande quanto o universo de tecnologias de processamento digital visto na secao

2.2 e o numero de microcontroladores no mercado [23], cada um possuindo ainda

diversos modelos com caracterısticas particulares.

Indicacoes de professores e pesquisadores da UFRJ, pesquisas na Internet e o

conhecimento adquirido ao longo do curso de graduacao trouxeram nomes dos fa-

bricantes conhecidos e os chips mais utilizados. Novamente, o objetivo desta secao

e apresentar as principais caracterısticas que apontaram o modulo escolhido para o

anteprojeto apresentado no capıtulo 3 e prototipado no capıtulo 4.

Os modulos baseados em microcontroladores cotados para o projeto foram o

MicroBolt, da empresa Micromint [24], o Arduino [18], plataforma baseada em con-

troladores da Atmel Corporation [21], o PIC, da Microchip Technology [25] e o

LaunchPad MSP430, da Texas Instruments [26], escolhido ao final da analise.

Para tornar a analise simples e objetiva, sera apresentado apenas a

motivacao para utilizar o modulo e a(s) razao(oes) de seu descarte como

opcao.

2.3.1 Micromint: MicroBolt

Motivacao: A primeira ideia para o modulo do microcontrolador foi checar o

fabricante Micromint. O recente projeto SisCAT [10], do LIOc, e desenvolvido no

SBC Electrum 100 (figura 2.3), da Micromint, e a possibilidade de permanecer com

plataformas de mesma origem e uma pratica comum, pois o relacionamento com a

empresa para suporte e pesquisas e mantido.

Descarte: Baseado em um microcontrolador NXP LPC2106 ARM7, com consumo

nominal de 200 mW [24], o MicroBolt (figura 2.7) foi o modulo encontrado que mais

se aproximou do desejado. Apesar do bom trabalho previo com produtos desta

empresa, os seguintes fatores descartam a Micromint:

17

Page 32: desenvolvimento de um sistema de aquisição e armazenamento de

• Necessidade de uma solucao que atendesse melhor aos requisitos de consumo

de corrente;

• Ausencia de uma forte comunidade para auxılio na pesquisa e desenvolvimento;

• Inexistencia de perifericos modulares.

Figura 2.7: Micromint MicroBolt [24].

2.3.2 Arduino

Motivacao: A plataforma Arduino vem se popularizando nos ultimos anos. Com a

proposta de solucoes faceis e robustas, e amplamente utilizada em projetos academicos

de todo tipo [18].

Baseado em microcontroladores ATmega da Atmel, o modulo Arduino (figura 2.6)

possui diversas interfaces disponıveis, comunicacao via USB, modulos perifericos de

encaixe (chamados de Shields) e programacao simples atraves de interface propria,

baseada em linguagem C.

Descarte: Infelizmente, os controladores usados e as solucoes nao sao moldadas

visando baixo consumo e nao ha nenhuma solucao Arduino com consumo dentro do

requisitado por este projeto [27].

18

Page 33: desenvolvimento de um sistema de aquisição e armazenamento de

2.3.3 Microchip: PIC

Motivacao: Pioneiro no conceito de microcontroladores, o PIC vem se atualizando

e ainda e muito referenciado.

Descarte: Pelas limitacoes dos kits de desenvolvimento encontrados (figura 2.8),

necessitando de hardware adicional e poucas interfaces, com solucoes melhores ela-

boradas somente por terceiros, o tradicional PIC acaba se mostrando ultrapassado

quando avaliado pela facilidade de desenvolvimento e aprendizado inicial.

Figura 2.8: Microchip PICkit 3 [28].

2.3.4 Escolhido – Texas: MSP430 LaunchPad

A Texas Instruments, grande fabricante de circuitos integrados, traz ambientes de

desenvolvimento bastante didaticos e facilitados para a aplicacao de suas tecnologias.

Para microcontroladores, sao oferecidos atualmente sete kits de desenvolvimento,

denominados LaunchPads, com arquiteturas e focos variados [29].

O LaunchPad e uma plataforma baseada em Arduino, com entrada USB para

interface com computador, LEDs auxiliares, contatos (jumpers) com configuracoes

rapidas de hardware, botoes com exemplos de funcionamento e acesso aos pinos do

microcontrolador.

19

Page 34: desenvolvimento de um sistema de aquisição e armazenamento de

Para a adicao de componentes perifericos, os chamados BoosterPacks (semelhan-

tes aos Shields do Arduino) sao placas que se encaixam ao LaunchPad, contendo

componentes especıficos como cartoes de memoria, conectores, protoboards, entre

outros.

Com consumo nominal medio menor que 100 µA/MHz, ADC interno, software

proprio para programacao em alto nıvel, comunidade online e vasta documentacao

disponıvel [22], a Texas apresenta dois modulos de desenvolvimento com foco em

baixıssimo consumo, os LaunchPads MSP-EXP430G2 e MSP-EXP430F5529LP (fi-

gura 2.9), ambos baseados no microcontrolador MSP430.

(a) (b)

Figura 2.9: Launchpads da Texas Instruments [29]: MSP-EXP430G2 (a) e MSP-

EXP430F5529LP (b).

20

Page 35: desenvolvimento de um sistema de aquisição e armazenamento de

Tabela 2.3: Caracterısticas dos LaunchPads MSP430.

MSP-EXP430G2 MSP-EXP430F5529LP

Pinos de acesso 20 40

ADC 10 bits 12 bits

Frequencia de operacao 16 MHz 25 MHz

Memoria Flash 16 kB 128 kB

Memoria RAM 512 B 8 kB

Timers 2 (16 bits) 4 (16 bits)

Interfaces 1 I2C, 2 SPI, 1 UART 2 I2C, 4 SPI, 2 UART

Para uma experiencia ainda mais completa, ha o USB Experimenter’s Board

MSP-EXP430F5529 [30], um kit de desenvolvimento contendo o MSP430F5529

(o mesmo do LaunchPad da figura 2.9b) e diversos componentes adicionais inte-

grados em uma mesma placa, alem de oferecer acesso aos pinos do microcontrolador

(figura 2.10).

Figura 2.10: USB Experimenter’s Board MSP-EXP430F5529, da Texas Instru-

ments [30].

21

Page 36: desenvolvimento de um sistema de aquisição e armazenamento de

Caracterısticas: USB Experimenter’s Board MSP-EXP430F5529

• Microcontrolador MSP430F5529:

– Memoria:

∗ Flash: 128 kB;

∗ SRAM: 8 kB (10 kB desabilitando a USB);

– USB 2.0;

– Arquitetura: RISC 16 bits (ate 25 MHz);

– Timers: 3 tipo A, 1 tipo B (descricao detalhada no manual da serie

MSP430x5xx [31]);

– USCI: 2 UART/SPI/I2C;

– Conversor A/D: 12 bits, 16 canais;

– Comparador: 12 canais;

– I/O: 63;

• Desenvolvimento via USB;

• 5 touchpads capacitivos (funcao botao ou slider);

• Cartao microSD (1 GB incluso);

• Display LCD: 102x64, preto e branco;

• Botoes: 4 push buttons (2 configuraveis, 1 Reset, 1 USB Bootstrap – descricao

detalhada no manual da serie MSP430x5xx [31]);

• LEDs: 3 para uso geral, 5 nos touchpads capacitivos, 1 indicador de ali-

mentacao;

• Potenciometro (Thumb Wheel);

• Suporte a tecnologia RF da Texas;

22

Page 37: desenvolvimento de um sistema de aquisição e armazenamento de

• Tecnologia eX-FET para Spy-By-Wire (JTAG – 2 fios) para programacao e

debug ;

• Cabecalho JTAG completo (4 fios);

• Alimentacao: USB, JTAG, Baterias, Fonte Externa;

• Acesso aos pinos de I/O do F5529.

Com especificacoes melhores do que o MSP-EXP430G2 (tabela 2.3) e

a possibilidade de desenvolvimento do prototipo tanto com o LaunchPad,

quanto com a Experimenter’s Board, o MSP430F5529 foi escolhido para

a construcao do modulo de aquisicao de dados.

O emprego das principais capacidades e particularidades desse circuito serao

descritos ao longo do trabalho.

23

Page 38: desenvolvimento de um sistema de aquisição e armazenamento de

Capıtulo 3

Anteprojeto

O projeto completo de um sistema de aquisicao de dados com os restritos requisitos

apresentados e discutidos no capıtulo 2, partindo desde a escolha da tecnologia

ate a concepcao de um produto completo em placa propria, programacao total do

comportamento do modulo e todos os resultados necessarios para sua validacao foi

entendido como alem do escopo de um projeto de graduacao.

Decidiu-se, entao, limitar a parte prototipada, mostrando resultados iniciais e

apresentar o desenvolvimento teorico da solucao atraves de um estudo preliminar,

ou seja, um anteprojeto.

3.1 Consideracoes Iniciais

Para a realizacao de medidas debaixo d’agua, uma possıvel configuracao apresenta

uma boia com um conjunto de sensores em linha sob o nıvel do mar (figura 3.1).

Um exemplo da utilizacao desta configuracao esta presente no SisCAT [10], projeto

atual do LIOc.

24

Page 39: desenvolvimento de um sistema de aquisição e armazenamento de

Figura 3.1: Exemplo de Sistema de Medicao Subaquatica.

Uma cadeia subaquatica e entao formada pelos diversos sensores, de varios tipos

e ainda com singulares modos de operacao. Baseado nessa diversidade, optou-

se por apresentar um modulo versatil e de simples configuracao para a

aquisicao e armazenamento de dados.

3.1.1 Relacao Um-para-um

Conforme ilustrado na figura 3.2, optou-se por cada modulo ser responsavel por um

sensor, podendo ser diretamente acoplado a ele fısica e eletricamente, desde que nao

interfira nas medicoes. Por sua vez, o conjunto e preso a linha de fundeio, que liga

a cadeia a boia na superfıcie. Havendo necessidade de associacao dos modulos em

rede, um cabo paralelo a linha de fundeio faz essa conexao.

25

Page 40: desenvolvimento de um sistema de aquisição e armazenamento de

Figura 3.2: Conexao para o Modulo e o Sensor em uma Linha de Fundeio.

A escolha de um modulo para cada sensor estabelece compromissos a serem

considerados:

• Independencia:

– O mau funcionamento de um componente nao interfere na cadeia;

– Possibilidade de configuracoes sem boia, ja que todo o equipamento ne-

cessario estara acoplado ao sensor.

• Simplicidade:

– Sem rotinas concorrentes;

– Funcionamento dedicado;

– A proximidade entre o modulo e o sensor reduz a impedancia do cabo,

fonte comum de problemas [32].

26

Page 41: desenvolvimento de um sistema de aquisição e armazenamento de

• Contras:

– Com muitos modulos, o consumo e custo total aumentam;

– Subaproveitamento de componentes que possuem diversos canais (e.g ADC).

3.1.2 Comunicacao Serial

Quando dois circuitos digitais sao conectados, e necessario que a comunicacao entre

eles utilize o mesmo tipo de barramento, para que nao haja conflitos na transmissao

e recepcao dos dados. Atentando para o diagrama da figura 3.3, enquanto blocos

como Conversor A/D, Armazenamento e Rede, geralmente apresentam apenas um

tipo de saıda, voltada para o melhor desempenho do componente, e desejado que

um dispositivo central, como o microcontrolador, seja capaz de interpretar mais de

um padrao.

Para todos os microcontroladores estudados [19, 24–26], o emprego da comu-

nicacao serial e maior em comparacao a paralela, ja que utiliza menos pinos, o que

minimiza problemas por conexoes e espaco fısico.

No caso do MSP430, estao disponıveis as seguintes conexoes digitais [31]:

GPIO (General Purpose Input/Output): Sem uso direcionado, cada pino e

programavel (inclusive pode ser usado como UART, I2C ou SPI) e, geralmente,

utilizado de maneira mais simples, como Enable, Reset ou transmissao de

dados brutos;

UART (Universal Asynchronous Receiver/Transmitter): Constituıdo de dois

pinos, transmissor (Tx) e receptor (Rx), o sinal e transmitido de maneira

assıncrona. Apesar de antigo, e amplamente aplicado, devido a simplicidade e

compatibilidade com padroes RS-232, RS-485;

27

Page 42: desenvolvimento de um sistema de aquisição e armazenamento de

SPI (Serial Peripheral Interface): Tambem conhecido como SSI (Synchronous

Serial Interface), este barramento sıncrono estabelece obrigatoriamente a relacao

mestre/escravo, aonde o dispositivo mestre e responsavel pelo pulso de sincro-

nismo e por designar qual escravo recebera a mensagem, quando necessario.

Para isso, o barramento utiliza de 4 pinos:

• SCLK (Serial Clock);

• MOSI (Master Output, Slave Input);

• MISO (Master Input, Slave Output);

• SS (Slave Select — E especificado como CS no diagrama de pinagem do

MSP-EXP430F5529LP da figura 3.9).

I2C ou I2C(Inter-Integrated Circuit): E um barramento com apenas dois fios:

Serial Data Line (SDA), para transmissao e recepcao de dados, e Serial Clock

(SCL), enviado pelo dispositivo mestre, para o sincronismo. A descriminacao

dos escravos e feita por enderecos nas mensagens.

Alem dos barramentos de comunicacao digital, o MSP430 apresenta entradas

analogicas (Analog In), referentes aos canais de um conversor A/D interno ao chip.

3.2 Principais Componentes

A figura 3.3 mostra o diagrama de blocos da solucao proposta, aonde o

modulo e composto por um pre-amplificador, conversor A/D, controle,

armazenamento e rede.

28

Page 43: desenvolvimento de um sistema de aquisição e armazenamento de

Figura 3.3: Diagrama de Blocos Geral.

Definicao dos Componentes do Modulo:

• Sensor: Transforma a grandeza medida em tensao;

• Pre-Amplificador: Ajusta adequadamente a amplitude do sinal e remove

componentes ruidosas;

• Conversor A/D: Quantifica o sinal analogico, possibilitando armazenamento

em memoria digital;

• Controle: Recebe os dados devidamente tratados, controla os ciclos de medicoes,

envia e recebe dados da memoria externa ou pela rede, gerencia consumo;

• Armazenamento: Guarda os dados em memoria de maior capacidade;

• Rede: Possibilita a comunicacao com a terra ou entre modulos.

29

Page 44: desenvolvimento de um sistema de aquisição e armazenamento de

A ideia inicial era que, para cada aplicacao particular, bastaria que fossem modi-

ficados poucos parametros (e.g. ganho do amplificador, tempo de aquisicao, tempo

em espera) por software e o modulo estaria pronto para o especificado. No entanto,

ao longo deste estudo, foi constatado que as etapas de amplificacao e digitalizacao

sao completamente dependentes do comportamento do sensor (e.g. resposta em

frequencia, impedancia, fundo de escala, sensibilidade), impossibilitando a escolha

de apenas um amplificador e um conversor A/D para qualquer tipo de sensor sub-

marino.

Os topicos 3.2.2 e 3.2.3, referentes a essas etapas, apresentam algumas solucoes

possıveis, ressaltando pontos positivos e negativos, visando referenciar estudos fu-

turos mais detalhados e direcionar cada aplicacao. Desta forma, nao apenas serao

especificados componentes para um modulo versatil, como tambem serao apresen-

tadas, de forma introdutoria, abordagens para solucoes mais especıficas.

Para atender a maioria dos tipos de sensores, o Amplificador de Ins-

trumentacao AD8422 e o Conversor A/D de 12 bits, interno ao MSP430

modelo F5529, sao suficientes para o bom condicionamento de um sinal

bem comportado, ou seja, com frequencia baixa (menor que a maxima

do ADC e respeitando o Teorema da Amostragem de Nyquist [33]), am-

plitude maior que o ruıdo e baixa impedancia em relacao a de entrada

do amplificador.

Conforme orientacao, os circuitos integrados de amplificadores, potenciometros

e conversores indicados foram retirados do catalogo online da Analog Devices, onde

tambem se encontram os datasheets dos quais as especificacoes tecnicas apresentadas

foram obtidas [34].

30

Page 45: desenvolvimento de um sistema de aquisição e armazenamento de

3.2.1 Sensor

Considera-se, para este trabalho, que o sensor e um elemento generico fornecido.

Os sensores que utilizarao deste modulo sao, em geral, transdutores que obtem

as informacoes desejadas (e.g. temperatura, pressao) e as convertem para tensao

analogica.

A tensao produzida pela conversao e diferencial e de baixa amplitude (da or-

dem de milivolts), tornando a leitura direta analogica ou sua digitalizacao imediata

impraticavel, devido a ruıdos externos ou oriundos do proprio modulo.

Como caracterıstica adicional, solucoes comerciais de sensores que ja fornecem

saıda digital atraves de algum protocolo de dados serial (e.g. EIA RS-232) podem ser

diretamente interpretadas pelo MSP430. Neste caso, a ligacao e feita diretamente

do sensor ao microcontrolador, por entradas digitais disponıveis, para transmitir e

receber dados de acordo com o protocolo do sensor, nao necessitando dos estagios

de pre-amplificacao e conversao A/D.

3.2.2 Pre-Amplificador

Para ser enviado ao modulo de controle, o sinal analogico do sensor deve ser pre-

viamente tratado. Neste topico sao propostas as possibilidades para a amplificacao

do sinal analogico vindo do sensor. As solucoes sao baseadas na utilizacao

de Amplificadores Operacionais, pela construcao simples, alta confiabili-

dade, bom desempenho para a aplicacao e existencia de uma ampla gama

de circuitos integrados [35, 36].

3.2.2.1 Amplificador Previamente Fornecido pelo Fabricante do Sensor

Visando maior facilidade para o usuario, fabricantes podem disponibilizar o pre-

amplificador para seus sensores ou indicar como construı-lo em seus manuais. Esta

solucao ja condiciona o sinal para ser digitalizado pelo ADC e interpretado pelo

microcontrolador.

31

Page 46: desenvolvimento de um sistema de aquisição e armazenamento de

Observacao: PGA (Programmable-gain Amplifier) Interno ao MSP430

– Versoes do MSP430 com ADC Sigma-Delta de 24 bits contam tambem com

um estagio de amplificacao na entrada, constituıdo de um PGA. Como nao foram

encontradas informacoes detalhadas sobre esses, o uso do circuito nao pode ser

recomendado.

3.2.2.2 Amplificador de Instrumentacao - Amp. Int.

Com o sinal vindo do sensor de maneira diferencial, o amplificador subtrator e

indicado para utilizacao (figura 3.4).

Figura 3.4: Amplificador Subtrator [37].

A tensao de saıda e dada pela equacao 3.1 a seguir:

Vout = V2

((Rf +R1)Rg

(Rg +R2)R1

)− V1

(Rf

R1

)(3.1)

para Rf/R1 = Rg/R2, a equacao 3.1 fica:

Vout =Rf

R1

· (V2 − V1) (3.2)

32

Page 47: desenvolvimento de um sistema de aquisição e armazenamento de

Uma melhoria da configuracao diferencial muito popular e o chamado amplifi-

cador de instrumentacao, apresentado na figura 3.5. Com a possibilidade de ganho

elevado, ajustado por apenas um resistor (Rgain), o Amp. Int. possui grande re-

jeicao a tensoes de modo comum (CMRR), baixo ruıdo, baixo drift e impedancia

de entrada elevada. Com essas caracterısticas e a existencia de circuitos

integrados, o Amp. Int. se torna uma solucao superior ao subtrator, na

maioria dos casos.

Figura 3.5: Amplificador de Instrumentacao [37].

A equacao 3.3 apresenta a tensao de saıda do amplificador de instrumentacao:

Vout = (V2 − V1) ·(

1 +2R1

Rgain

)· R3

R2

(3.3)

Em CIs, os resistores R1, R2 e R3 sao fixos, deixando Rgain externo para controle

do ganho. Neste caso, uma boa conduta e usar um potenciometro digital, controlado

pelo MSP430. Na tabela 3.1 sao vistos CIs com opcoes de interface de comunicacao

serial (I2C ou SPI), 1024 posicoes e memoria nao volatil. Dessa forma, o ganho

do amplificador e configuravel por software e nao ha necessidade de mudancas no

circuito caso seja feita a troca do sensor.

33

Page 48: desenvolvimento de um sistema de aquisição e armazenamento de

Tabela 3.1: Potenciometros Digitais.

Part# #Canais Valor Nominal (kΩ) Interface

AD5270 1 20, 50, 100 SPI

AD5272 1 20, 50, 100 I2C

AD5175 1 10 I2C

AD5235 2 25, 250 SPI

Os CIs de amplificadores de instrumentacao que apresentaram boas

caracterısticas de alta impedancia de entrada, baixo consumo, ampla faixa

de frequencia, rail-to-rail e baixo ruıdo foram: AD627, AD8223, AD8422

e sua versao de melhor performance DC, AD8422BRZ.

Pode-se ainda considerar os Amplificadores de Instrumentacao de Ganho Pro-

gramavel (PGIA) AD625 e AD8557, com ganho configuravel diretamente por inter-

face digital propria.

Caracterısticas: AD627

• Consumo: 85 µA maximo;

• Alimentacao: +2.2 V a ±18 V ;

• Ganho (G): 5 a 1000;

• Saıda rail-to-rail;

• Performance DC:

– Acuracia do ganho: 0.03% (G=5)(AD627A);

– Drift do ganho: 10 ppm/C (G=5);

– Offset maximo na tensao de entrada: 125 µV (AD627B dual supply);

– Drift maximo do offset na tensao de entrada: 1 µV/C;

– Corrente maxima de polarizacao: 10 ηA;

• Ruıdo: 38 ηV/sqrtHz RTI a 1kHz (G=100);

34

Page 49: desenvolvimento de um sistema de aquisição e armazenamento de

• Especificacoes AC:

– CMRR: mınimo de 83 dB (G=5);

– Largura de banda: 80 kHz (G=5);

– Tempo de estabilizacao (settling time): 135 µs (G=5, degrau de 5 V).

3.2.2.3 Amplificador de Carga

Hidrofones podem possuir impedancia muito elevada (capacitiva, da ordem de mi-

crofarads), sendo percebida pelo amplificador como uma grande capacitancia com

pequena variacao de carga. Para que essa variacao apresente-se como tensao na

saıda, o amplificador de carga e um circuito indicado [38, 39].

Figura 3.6: Circuito Basico do Amplificador de Carga.

Neste caso, a tensao na saıda sera:

∆Vout =−∆Q

C2

=−VC ·∆C

C2

(3.4)

e as frequencias de corte inferior (f1) e superior (f2):

f1 =1

2π ·R1 · C1

(3.5)

f2 =1

2π ·R2 · C2

(3.6)

35

Page 50: desenvolvimento de um sistema de aquisição e armazenamento de

Como cada aplicacao demanda componentes diferentes, nao ha CIs comerciais

para amplificadores de carga completos. Os amplificadores operacionais su-

geridos para esta aplicacao utilizam transistores FET, para aumentar a

impedancia de entrada. Sao exemplos o AD745, sua versao mais atual

ADA4637-1 e AD8067.

Caracterısticas: ADA4637-1

• Alimentacao: ±5 V a ±15 V ;

• Offset de Tensao: 200 µV maximo;

• Offset drift : 1 µV/C;

• Corrente de polarizacao na entrada: 5 ρA maximo;

• Produto Ganho-Banda (GBW): 79 MHz;

• Ruıdo de tensao na entrada: 6.1 ηV/√Hz a 1 kHz;

• Slew rate: 170 V/ηs;

• Ganho em malha aberta: 120 dB;

• CMRR: 116 dB.

3.2.2.4 Amplificador Logarıtmico

Sinais de temperatura variam pouco ao longo do tempo, podendo ser considerados

com pequena faixa de frequencia ou ate como nıvel DC, para a maioria dos tipos de

medicao. Em casos mais complexos, como por exemplo, a resposta de um hidrofone

a passagem de uma embarcacao com motor em funcionamento, o sensor apresentara

na saıda um sinal com diversas componentes em frequencia e variadas amplitudes.

36

Page 51: desenvolvimento de um sistema de aquisição e armazenamento de

A percepcao e distincao das componentes de menor amplitude sao tratadas neste

trabalho de duas formas:

1. Utilizando um conversor A/D de alta resolucao, mostrado posteriormente no

topico 3.2.3;

2. Amplificando a parcela de menor amplitude com ganho maior e a de maior am-

plitude com ganho menor, considerando tambem o limite superior de excursao

do sinal de saıda.

Para o segundo caso, deseja-se um amplificador cujo ganho seja inversamente

proporcional a amplitude do sinal de entrada, de maneira que o sinal resultante pos-

sua toda a informacao, porem com tensoes na mesma ordem de grandeza. O circuito

que pode produzir este comportamento e o Amplificador Logarıtmico, representado

na figura 3.7.

Figura 3.7: Circuito Basico do Amplificador Logarıtmico.

Explorando o comportamento exponencial da corrente de coletor do TJB [40]:

IC = ISO · (eVBE/VT − 1) ≈ ISO · eVBE/VT (3.7)

VBE = VT · ln(ICISO

)(3.8)

no circuito da figura 3.7:

VBE = −Vout (3.9)

IC =VinR

(3.10)

37

Page 52: desenvolvimento de um sistema de aquisição e armazenamento de

a tensao de saıda do amplificador logarıtmico e dada por:

Vout = −VT ln

(Vin

ISO ·R

)(3.11)

onde:

• VT : Tensao termica do transistor;

• ISO: Corrente de saturacao da juncao base-emissor do transistor;

Com a saıda sendo uma funcao nao linear da entrada, o sinal fica comprimido

pelo fator logarıtmico. Reescrevendo a tensao de saıda em termos genericos:

Vy =−VT

logn(e)(3.12)

Vx = ISOR (3.13)

Vout = Vy logn

(VinVx

)(3.14)

e pela figura 3.8, nota-se a compressao do sinal atraves do comportamento linear do

grafico com o eixo x em escala logarıtmica.

Figura 3.8: Grafico Exemplo de uma Funcao Linearizada por Logaritmo.

38

Page 53: desenvolvimento de um sistema de aquisição e armazenamento de

Desta forma, arbitrando, por exemplo, Vx = Vy = 1, n=10 e Vin um sinal entre

1 µV e 100 mV, a amplitude do sinal de saıda sera:

Vout(min) = log(1× 10−6) = −6 V (3.15)

Vout(max) = log(1× 10−3) = −3 V (3.16)

mostrando que o sinal de 1 µV a 100 mV pode ser amplificado e comprimido em

uma faixa de -6 V a -3 V.

Dadas as dificuldades do emprego deste circuito (e.g. valores negativos ou in-

finitos, oriundos da funcao logaritmo) e considerando tambem que, para o caso do

transistor, VT e IOS sao muito dependentes da temperatura, os integrados de um

amplificador logarıtmico possuem circuitos de ajuste e compensacao (datasheet do

AD8310 [34]).

Esta solucao e indicada apenas em aplicacoes especıficas cuja precisao sera sobre-

posta a versatilidade do projeto. Alem disso, o sinal de saıda estara com a informacao

desejada, porem codificada pelo fator logarıtmico, necessitando decodificacao, que

se traduz em pos-processamento.

A complexidade desta solucao gera maior consumo de corrente, con-

sideracao fundamental para este projeto.

CIs que podem ser considerados para estudo futuro sao: AD8310,

AD8307, AD640 e AD641.

Caracterısticas: AD8310

• Alimentacao: 2.7 V a 5 V;

• Consumo de corrente: 8 mA tıpico;

• Faixa de operacao: DC a 440 MHz;

• Tempo de subida: < 15 ηs;

39

Page 54: desenvolvimento de um sistema de aquisição e armazenamento de

• Capacidade de corrente: 25 mA;

• Faixa dinamica: -91 dBV a +4 dBV (95 dB);

• Linearidade: ±0.4 dB;

• Inclinacao (Slope): +24 mV/dB;

• Tempo de inicializacao: 100 ηs;

• Corrente inativa: 1 mA.

3.2.3 Conversor Analogico/Digital

O microcontrolador e um circuito digital, que por sua vez guardara dados em uma

unidade armazenamento. Ate agora, o sinal vindo do sensor foi amplificado, mas

ainda e analogico e, portanto, nao pode ser devidamente armazenado em uma

memoria. O conversor analogico/digital tornara a medida feita pelo sensor inter-

pretavel para o microcontrolador, possibilitando seu processamento e a entrega dos

dados adquiridos ao usuario.

Alguns microcontroladores atuais possuem ADC integrado, facilitando sua uti-

lizacao e reduzindo ruıdos provenientes da interligacao de componentes, fonte de

problemas para sinais de baixa amplitude. Para aplicacoes mais especıficas, porem,

pode ser necessario o ADC externo ao microcontrolador, exigindo entao cuidados

especiais, relacionados principalmente a ruıdos.

3.2.3.1 ADC Interno ao Modulo de Controle

O microcontrolador MSP430 possui conversor A/D interno. Nos mais de quatrocen-

tos tipos de chips MSP430 sao encontradas os seguintes tipos de ADC: Conversores

de aproximacoes sucessivas (SAR) de 10 e 12 bits e do tipo Sigma-Delta (Σ-∆) de

16 e 24 bits [22]. A tabela 3.2 mostra a quantidade de nıveis discretos e o valor de

tensao acrescido a cada nıvel destes ADCs, considerando fundo de escala de 3.3V.

40

Page 55: desenvolvimento de um sistema de aquisição e armazenamento de

Tabela 3.2: Resolucao dos ADCs.Bits Nıveis Discretos (ND) ∆V (3.3V/(ND-1)) %FS

10 1024 3.23 mV 0,09812 4096 805.86 µV 0,02416 65536 50.35 µV 0,001524 16777216 196.70 ηV 0,000006

Para a maioria das aplicacoes, o conversor de 12 bits presente no

MSP430-EXPF5529LP do prototipo e suficiente. A economia de um CI

no modulo gera menor consumo e exclui eventuais problemas de confi-

guracao, intefaceamento e conexoes fısicas.

ADCs de maior capacidade (16 bits ou mais) geram um aumento consideravel

do consumo do modulo e necessitam de maiores cuidados relacionados a ruıdos,

explicados no topico 3.4.2.

3.2.3.2 ADC Externo ao Modulo de Controle

O uso de um ADC externo tem como principal objetivo evitar a troca do chip

microcontrolador e atender especificacoes nao executaveis pelo ADC interno.

O maior problema encontrado no estudo dos ADCs externos foi atender aos

requisitos do sistema, que serao analisados a seguir.

Solucoes de maior precisao, mantendo o baixo consumo, acabam nao

sendo adequadas para alta velocidade, como e o caso do AD7789, um ADC

Sigma-Delta de 24 bits, apresentando frequencia do sinal de saıda de ate

16.6 Hz. Por outro lado, o AD1871, tambem Σ-∆ de 24 bits, utilizado

para audio, opera a 96 kHz, mas possui consumo nominal de 40 mA.

Outros integrados de conversores avaliados apresentam uma estrutura tao

complexa e consumo tao proximo ao do MSP430 que tornam a intencao

inicial, de nao trocar o controlador, incoerente.

Os ADCs de 24 bits avaliados durante a pesquisa so garantem precisao

em frequencia baixa ou com consumo muito alem do desejado. Em altas

frequencias (na ordem de quilohertz), os ADCs de 24 bits perdem 7 a 8

bits de precisao.

41

Page 56: desenvolvimento de um sistema de aquisição e armazenamento de

Considerando o compromisso entre numero de bits, frequencia do sinal

e consumo de corrente, o AD7988-1 e apresentado como boa opcao.

Caracterısticas: AD7988-1

• Alimentacao: 2.5 V;

• Consumo: 700 µW a 100 kSPS;

• Resolucao: 16 bits;

• Nao Linearidade: ±0.6 LSB;

• SINAD: 91.5 dB a 10 kHz;

• THD: -114 dB a 10 kHz;

• Interface de Saıda SPI.

Gerado entao o sinal digital, a conexao do ADC externo com o MSP430 e feita

atraves de UART ou SPI.

3.2.4 Controle

Como visto no capıtulo 2, o microcontrolador responsavel pelo gerenciamento das

atividades do sensor foi o MSP430. Com o objetivo de aproximacao ini-

cial, familiarizacao com a tecnologia e desenvolvimento do prototipo, o

MSP430F5529, presente no LaunchPad MSP-EXP430F5529LP e na USB

Experimenter’s Board MSP-EXPF5529, foi o microcontrolador escolhido

para o estudo.

Ambas as placas sao kits de desenvolvimento que possibilitam a facil interacao e

acesso do usuario aos pinos do microcontrolador, possuindo tambem uma interface

USB montada para programacao e alimentacao.

Como vantagem, a Experimenter’s Board ja possui componentes adicionais (cartao

microSD, touchpads, display LCD, potenciometro) integrados a placa de circuito im-

presso.

42

Page 57: desenvolvimento de um sistema de aquisição e armazenamento de

Figura 3.9: Pinos Acessıveis do Microcontrolador no LaunchPad [41].

43

Page 58: desenvolvimento de um sistema de aquisição e armazenamento de

Observa-se a possibilidade futura de utilizar outro MSP430, em especial para

beneficiar-se de componentes internos mais poderosos, como o ADC Σ-∆ de 24 bits,

necessario para obtencao de dados com maior qualidade de alguns sensores com

espectro de frequencia mais amplo. Como a estrutura, programacao e as interfaces

principais sao iguais para a maioria dos MSP430, o foco no modelo F5529 nao

invalida este trabalho como referencia para a montagem de um modulo baseado em

outro MSP430 ou microcontroladores de estrutura semelhante.

O microcontrolador possui diversos pinos de acesso (figura 3.9) para a interligacao

com os outros componentes do modulo. As conexoes externas podem ser feitas de

maneira digital, atraves de GPIO, UART, SPI, I2C ou analogica, atraves de Analog

Inputs.

Observacao: A Experimenter’s Board tambem permite acesso aos pinos do MCU.

As rotinas, configuracoes de porta e acesso as funcoes do MSP430 sao controladas

via programacao, descrita a seguir.

3.2.4.1 Programacao

Para programar o comportamento do MCU e a interacao com seus perifericos, o

microcontrolador possui uma interface USB (presente fisicamente nas placas de de-

senvolvimento) para comunicacao com um PC.

O maior cuidado relacionado a programacao do modulo reside no pequeno espaco

(16 kB - 128 kB) para o programa. Falhas ou falta de cuidado na programacao, que

apresentem vazamento ou alocacao de grandes quantidades de memoria, acabariam

por impossibilitar o funcionamento do dispositivo por longos perıodos.

As rotinas sao entao desenvolvidas em codigo C/C++ e compiladas para o

MSP430 [22]. Com a popularidade do MSP430, existem IDEs desenvolvidos, nao

so pela Texas, que ajudam no desenvolvimento de uma solucao completa, com o

basico da programacao ate sugestoes de rotinas para melhor uso. As plataformas

mais utilizadas sao:

44

Page 59: desenvolvimento de um sistema de aquisição e armazenamento de

Code Composer Studio (CCS): Principal IDE da Texas, baseada em Eclipse

[42]. Reune vasta documentacao e codigos para diversos microcontroladores

da empresa. Possui versao de avaliacao (90 dias), gratuita limitada ou paga.

Recomendada para grandes projetos, pela organizacao e acessibilidade;

Energia: Outra solucao atual da Texas, baseada nas plataformas Arduino [18] e

Wiring [43]. Com foco no desenvolvimento de prototipos mais simples, pos-

sui diversos exemplos de configuracoes basicas e amostras de funcoes carac-

terısticas do modulo;

CrossWorks: Desenvolvido pela empresa Rowley, segue a mesma linha do CCS,

contendo mais recursos voltados para gerenciamento de projetos. Tambem e

uma plataforma paga;

MSPGCC: Voltado para desenvolvimento em Linux, nao pode ser considerado

uma IDE, sendo um conjunto de componentes (e.g. compilador, debugger)

acionados por linha de comando;

Para o desenvolvimento do prototipo, o software CCS apresenta uma

interface mais completa. A tomada de decisao e as funcionalidades serao

apresentadas no capıtulo 4.

Figura 3.10: Logotipo da Plataforma Code Composer Studio [17].

45

Page 60: desenvolvimento de um sistema de aquisição e armazenamento de

3.2.5 Armazenamento de Dados

Os 128 kB de memoria Flash presentes no MSP-EXP430F5529LP, para armazenar

a rotina de controle e dados obtidos de um sensor por longos perıodos de tempo,

limitaria bastante a programacao e o possıvel pos-processamento dos dados. Assim,

o uso de um cartao microSD como unidade externa de armazenamento e a solucao

adequada.

Para o LaunchPad, ha disponıvel um BoosterPack (figura 3.11) para esta funcao,

onde a conexao com o microcontrolador e feita atraves de SPI. Ja na Experimenter’s

Board, o microSD faz parte da placa (figura 3.12).

Em uma solucao dedicada, nao ha cuidados especıficos em adicionar um slot para

o cartao na mesma placa que o MCU.

Figura 3.11: BoosterPack para Utilizacao de Cartao MicroSD [44].

46

Page 61: desenvolvimento de um sistema de aquisição e armazenamento de

Figura 3.12: Cartao microSD e Compartimento na USB Experimenter’s Board MSP-

EXP430F5529 [17].

Como o tipo de memoria (Flash) e o mesmo para o armazenamento externo

e interno, a melhor opcao e colocar os dados vindos de medicoes diretamente no

cartao e deixar o espaco no microcontrolador somente para sua rotina de execucao,

instrucoes e dados fixos ou pouco alterados. Isso evita contato do usuario final do

modulo com dados de servico e proporciona melhor organizacao do conteudo.

3.2.6 Rede

Uma vez que o modulo esteja embaixo d’agua, nao e interessante retira-lo para

a obtencao de uma pequena quantidade de dados ou alteracao de parametros de

medicao, como por exemplo o sincronismo do relogio. Para isso, cada modulo da

cadeia de sensores deve ser ligado a rede, como escravo, havendo tambem um mestre,

que estara apto a realizar essas operacoes sem remover os sensores do ambiente e

fornecer o sinal de sincronismo.

47

Page 62: desenvolvimento de um sistema de aquisição e armazenamento de

Opcoes para uma rede serial sao via barramento I2C ou configuracao de UARTs

para recepcao e transmissao, adotando um protocolo adequado para este tipo de

rede, como o RS-485.

A configuracao de um dispositivo mestre para gerenciamento da rede esta fora

do escopo do projeto, limitando este topico a relatar a possibilidade do modulo ser

integrante da rede, que se traduz na capacidade do MSP430 em se comunicar com

outro dispositivo, totalmente viavel pela presenca do barramento I2C e de UART,

configuraveis por software.

3.3 Sugestao de Implementacao

Concluindo a escolha dos componentes e das interfaces, foi apresentado um conjunto

de possibilidades para o modulo de aquisicao. Como sugestao para uma solucao

fechada de um modulo versatil, as escolhas indicadas (figura 3.13) para aquisicao de

um sensor generico foram:

• Amplificador de instrumentacao AD627 conectado a entrada Analog In do

microcontrolador;

• Potenciometro digital AD5270, controlado pelo barramento SPI, para mu-

danca no ganho do amplificador;

• Microcontrolador MSP430 F5529;

• Conversor A/D de 12 bits, interno ao MCU;

• Rede configurada por software utilizando o barramento I2C;

• Armazenamento de dados em cartao microSD, via SPI.

Considerando a tensao de alimentacao de +3.3 Vcc, o AD627 podera condicionar

o sinal vindo de um sensor com 3.3 mV (G = 1000) ate 660 mV (G = 5) de saıda.

Esta margem de amplitude abrange uma grande gama de sensores submarinos de

temperatura e pressao hidrostatica.

48

Page 63: desenvolvimento de um sistema de aquisição e armazenamento de

Figura 3.13: Diagrama de Blocos da Sugestao de Implementacao do Modulo de

Aquisicao e Armazenamento de Dados.

3.4 Cuidados Adicionais

3.4.1 Alimentacao

O MSP430 pode ser alimentado por tensoes de 1.8 V a 3.6 V, ou via USB (5 V),

reduzida para 3.3 V por um conversor DC-DC interno, no caso dos kits de desen-

volvimento [41].

Considerando que alguns CIs de amplificadores e conversores A/D trabalham

com tensao mınima de 5V, a alimentacao do modulo deve ser escolhida de ma-

neira a atender todos os integrados, sem que haja necessidade de duas fontes de

alimentacao ou componentes trabalhando fora da faixa especificada, o que leva-

ria a mau funcionamento e problemas posteriores. Alguns perifericos consomem

49

Page 64: desenvolvimento de um sistema de aquisição e armazenamento de

tambem uma corrente consideravel em modo de espera, o que diminui a autonomia

do modulo.

Para evitar esta condicao, o circuito periferico (e.g. amplificador) pode ser ali-

mentado por um pino GPIO, ao inves de diretamente pela bateria. Desta forma, o

controle sobre o pino ativaria o periferico somente quando desejado.

Como sugestao de alimentacao para o LaunchPad, ha um BoosterPack produzido

pela Texas Instruments que utiliza uma bateria recarregavel de 3.7 V, 1200 mAh,

LiPo (Lithium Ion Polymer), apresentado na figura 3.14.

Figura 3.14: FuelTank, o BoosterPack para Alimentacao do LaunchPad.

Para estimar o tempo de duracao desta bateria em funcionamento e designa-la

como adequada ao projeto, considera-se o consumo nominal do microcontrolador

em standby (Istandby) de 500 ηA e em modo ativo de 100 µA/MHz [22], operando a

25 MHz (frequencia maxima do MSP-EXP430F5529LP). O consumo de corrente do

MCU, em modo ativo, sera:

IMCUativo = 100 µA/MHz · 25MHz = 2.5 mA (3.17)

Dos datasheets, obtem-se que o AD627 tem o consumo maximo de corrente de

85 µA e o potenciometro AD5270 consome 1 µA. Considerando que os perifericos

sao desligados quando o modulo nao esta medindo, o consumo em standby do modulo

sera o mesmo do MCU.

50

Page 65: desenvolvimento de um sistema de aquisição e armazenamento de

Desprezando o consumo de corrente da rede e considerando que a gravacao

em cartao ja esteja incluıda no funcionamento do microcontrolador, o consumo do

modulo ativo sera:

Iativo = 2.5 mA+ 85 µA+ 1 µA = 2.586 mA (3.18)

Para uma medicao de 10 minutos (16h) a cada hora do dia, o consumo medio

sera:

Imedio =Iativo + 5 · Istandby

6(3.19)

Imedio =2.5705× 10−3

6(3.20)

Imedio = 428 µA (3.21)

assim, o tempo estimado de duracao da bateria sera:

tbateria =1200 mAh

428 µA= 2804 h (3.22)

tbateria =2804 h

24 h= 117 dias (3.23)

logo, com autonomia de aproximadamente 4 meses, pode-se considerar esta bateria

como adequada ao projeto.

Outra boa opcao para a alimentacao do modulo e a bateria de Li-ion (Lithium-

Ion), muito comum em aparelhos celulares e dispositivos portateis, podendo chegar

a 3000mAh, dando maior autonomia ao modulo. Optando por uma solucao mais

simples, a Experimenter’s Board usa duas pilhas AA em serie, de 1.5 V cada.

3.4.2 Ruıdo

E sabido que circuitos eletronicos reais sempre apresentam componentes ruidosas. A

partir do conteudo encontrado em Noise Reduction Techniques in Electronic Systems

e Notas de Aula de Instrumentacao e Tecnicas de Medida [32, 36], pode-se dividir

o ruıdo em tres tipos basicos:

51

Page 66: desenvolvimento de um sistema de aquisição e armazenamento de

1. Gerado pelo proprio dispositivo;

2. Advindo do sinal de entrada;

3. Externo, que e propagado para dentro do circuito.

O estudo de ruıdos em circuitos hıbridos (com componentes analogicos e digitais)

demanda atencao a medida que o projeto exige precisao. A abordagem e feita de

maneira preventiva, adotando cuidados na confeccao e elaboracao da placa.

No caso do uso direto do LaunchPad, a simples insercao de um BoosterPack ja

transmite ruıdos oriundos do contato sem solda feito pelas placas. Assim, para a

utilizacao de um ADC de 24 bits, por exemplo, e necessario que todo o modulo esteja

disposto em uma unica placa, projetada minimizando efeitos ruidosos, com cuidados

como: plano de terra, separacao fısica da parte analogica da digital, alimentacao

regulada e encapsulamento especıfico.

Para este trabalho, o estudo do ruıdo associado ao sinal, desde sua geracao no

sensor ate o recebimento dos bits pelo ADC, possui pontos crıticos na entrada do

pre-amplificador, onde o sinal e ainda de amplitude muito baixa e no conversor A/D,

onde o ruıdo gerado pela transicao rapida dos bits em um sinal digital de um circuito

vizinho (e.g. microcontrolador) pode alterar os bits menos significativos do ADC,

caso a precisao do mesmo seja muito alta (16-24 bits).

Para minimizar os efeitos no sinal de entrada, o amplificador escolhido deve

possuir CMRR alto e introduzir ruıdo de ordem menor que a amplitude mınima do

sinal, sendo descartado na quantizacao feita pelo ADC.

Em relacao a insercao de um ADC de 16-24 bits, indica-se, adicionalmente, que

a alimentacao do ADC deve ser maior, ja que a divisao de uma tensao de apenas

3.3V em 24 bits significa uma variacao de 196.70ηV no LSB, amplitude que pode

ser facilmente sobreposta por um ruıdo.

52

Page 67: desenvolvimento de um sistema de aquisição e armazenamento de

3.4.3 Protecao Mecanica

Para o modulo ser submetido a alta profundidade, a protecao adequada a pressao

hidrostatica, possıveis choques mecanicos e entrada de agua deve ser designada.

Para isso, a norma ABNT NBR IEC 60529 [45] estabelece os “graus de protecao

para involucros de equipamentos eletricos (codigo IP)”.

Para atender as especificacoes do modulo, a caixa que ira abriga-lo deve entao

possuir codigo de protecao IP-68 (figura 3.15), certificando total protecao contra

poeira e imersao contınua em agua (devendo ser especificada a profundidade de

acordo com o desejado).

Figura 3.15: Caixa com Protecao IP-68 da Empresa CFW Eletrica [46].

As conexoes externas devem fazer uso de prensa-cabos, tambem especificados

como IP-68 (figura 3.16).

Figura 3.16: Prensa cabo IP-68 da Empresa Cemar Legrand [47].

53

Page 68: desenvolvimento de um sistema de aquisição e armazenamento de

Capıtulo 4

Prototipo

Consolidado o anteprojeto do modulo de aquisicao, objetiva-se criar um prototipo

para que os problemas e dificuldades praticas do projeto possam ser vistas e anali-

sadas.

Como o objetivo principal do trabalho e apresentar um sistema capaz de obter

dados de um amplo conjunto de sensores, o foco deste capıtulo e o estudo do MSP430

por meio da Experimenter’s Board e o desenvolvimento do codigo em linguagem C

a ser gravado no microcontrolador.

Para simplificar a explicao do projeto, a placa USB Experimenter’s

Board MSP-EXP430F5529 podera ser referenciada apenas por EB.

4.1 USB Experimenter’s Board

MSP-EXP430F5529 (EB) [30]

O primeiro contato pratico com o MSP430 e feito por meio dos kits de desenvol-

vimento LaunchPad e Experimenter’s Board, que possuem o mesmo controlador:

MSP430F5529. Pelo acesso aos pinos do MCU, as placas trazem ao usuario grande

simplicidade na montagem do sensor e oferecem as primeiras impressoes do pro-

cesso de configuracao de um microcontrolador de uso especıfico (baixo consumo) e

profissional como o MSP430.

54

Page 69: desenvolvimento de um sistema de aquisição e armazenamento de

Inicialmente, optou-se por utilizar o LaunchPad, com seu tamanho reduzido e a

possibilidade de componentes perifericos especıficos em BoosterPacks. Porem, ape-

sar da EB possuir componentes que nao serao utilizados em um sistema de aquisicao

de dados embarcado (e.g. touchpads), complicacoes burocraticas na importacao dos

componentes e a dificuldade em encontrar um fornecedor confiavel para o Booster-

Pack do cartao micro SD impossibilitaram sua aquisicao imediata. Sendo assim,

optou-se pela praticidade e reducao da compra a apenas um componente, a Experi-

menter’s Board, disponıvel para pronta entrega no proprio site do fabricante [30].

A placa utilizada no prototipo, apresentada na figura 4.1, vem acompanhada de

dois cabos USB para a conexao com o computador e insercao do codigo, um manual

para inıcio rapido, um cartao microSD de 1 GB e um compartimento para duas

pilhas AA. Por ja possuir a unidade para cartao microSD integrada e o conector

para alimentacao externa, nao houve necessidade de hardware adicional.

Figura 4.1: Experimenter’s Board MSP-EXP430F5529 Utilizada para o Prototipo

em Laboratorio [17].

55

Page 70: desenvolvimento de um sistema de aquisição e armazenamento de

4.1.1 Componentes da Placa

A figura 4.2 ilustra os principais blocos da EB, descritos em seguida.

Figura 4.2: Principais Componentes da EB [30].

eZ430-FET Emulator: Interface USB para a gravacao do codigo no microcontro-

lador;

PWR SW: Chave seletora de Alimentacao (USB superior direita, USB da interface

eZ-430 FET inferior esquerda ou JTAG/alimentacao externa);

Ext Pwr: Conectores para alimentacao externa;

RST: Botao de Reset da placa;

Buttons: Dois botoes programaveis;

microSD: Entrada para cartao;

56

Page 71: desenvolvimento de um sistema de aquisição e armazenamento de

RF EVMs: Conectores para inclusao de modulos RF;

102x64 Dot Matrix LCD: Display para interacao com o usuario;

LEDs: 3 LEDs (vermelho, verde e amarelo) programaveis;

Cap-Touch Slider / Buttons: Touchpad capacitivo com LEDs;

eZ-RF / PIN Acc: Acesso ao modulo RF (se incluso) e aos pinos do MSP430F5529;

PIN Access: Acesso aos pinos do MSP430F5529;

F5529: Microcontrolador MSP430F5529;

Accelerometer: Sensor de aceleracao;

BSL: Bootstrap Loader para a inicializacao do sistema, caso seja desejado que o

programa inicialize pelo botao;

5529 USB: Conector USB acessıvel ao microcontrolador, para comunicacao;

5529 JTAG: Interface mais antiga, porem ainda utilizada, para gravacao do codigo

no microcontrolador;

Thumb Wheel: Potenciometro ligado ao microcontrolador.

Para o prototipo, sao utilizados os botoes e o potenciometro na configuracao de

um relogio apresentado no LCD, a alimentacao, feita por duas pilhas AA alcalinas

e o sensor, conectado ao pino 7.0, localizado no canto inferior direito da placa.

57

Page 72: desenvolvimento de um sistema de aquisição e armazenamento de

4.1.2 Operacao do Modulo

O sistema de aquisicao de dados ira operar da seguinte forma:

1. O modulo e iniciado assim que e alimentado;

2. O LCD apresenta um relogio com data e hora a serem configurados (figura

4.3):

• O potenciometro altera o valor do campo selecionado;

• O botao S1 confirma o valor;

3. Preenchidos todos os campos, o display e apagado e a medicao e iniciada;

4. Quando desejado, o botao S2 interrompe a medicao e o modulo retorna para

a tela do relogio (item 2).

Figura 4.3: Tela Inicial do Modulo [17].

Cada ciclo de medicao gera um arquivo no cartao de memoria com o nome

“DADOSx”, onde x e incrementado a cada nova configuracao do relogio (DADOS,

DADOS1, DADOS2, ...). Dentro deste arquivo, estao armazenados data (mm/dd/a-

aaa), hora (hh:mm:ss) e valor (0-4095, referente a resolucao 212 do ADC) obtido em

cada medicao (figura 4.4), separados por um caracter de espacamento (TAB). A in-

sercao do espacador torna o arquivo legıvel em diversos softwares, como Excel [48],

MATLAB [49] ou Octave [50].

58

Page 73: desenvolvimento de um sistema de aquisição e armazenamento de

Figura 4.4: Formato dos Dados Armazenados no Cartao microSD.

A conversao dos valores obtidos em tensao e simples. Se o modulo e alimentado

por uma tensao superior a 3 V, o conversor DC-DC interno da placa mantem o nıvel

em 3 V. Sendo 4096 nıveis possıveis, o valor em Volts e:

V alor(V ) = V alor(nivel) · 3

4096− 1(4.1)

4.2 Codigo em Linguagem C

Para executar o algoritmo de operacao, o modulo necessita do codigo referente a

rotina de trabalho, que fara com que receba os dados por uma das entradas Analog

In e armazene-os no cartao de memoria.

A IDE Eclipse [42] e utilizada atualmente pela equipe de desenvolvi-

mento do LIOc, o que torna o CCS uma boa escolha para dar continuidade

a este trabalho.

59

Page 74: desenvolvimento de um sistema de aquisição e armazenamento de

Utilizando a plataforma CCS v5.5 (figura 4.5) em sua versao completa de ava-

liacao de 90 dias, mencionada no topico 3.2.4.1, o codigo em C foi desenvolvido com

base nos exemplos da Texas “MSP-EXP430F5529 User Experience”, que apresenta

todas as funcionalidades da EB e “MSP430F55xx adc 07”, com exemplo de obtencao

de dados pelo ADC.

Figura 4.5: Parte da Janela do software Code Composer Studio, IDE da Texas

Instruments.

60

Page 75: desenvolvimento de um sistema de aquisição e armazenamento de

Os codigos fonte usados como referencia estao inclusos na instalacao do CCS (ou

no site da Texas [30]) e permitem a utilizacao e modificacao sob uma declaracao

de compreensao e utilizacao de direitos autorais, descrita em todos os arquivos da

Texas Instruments. Esta declaracao esta presente nos codigos desenvolvidos pelo

autor deste trabalho, presentes no apendice A.

Apos a inspecao detalhada e estudo do funcionamento dos exemplos citados, o

programa para o sistema de aquisicao e armazenamento foi construıdo.

Para entender melhor o funcionamento do modulo, serao descritos os principais

arquivos e suas funcoes. Os codigos criados ou alterados de alguma forma estao

dispostos no apendice A.

4.2.1 Relogio: Clock.c

O arquivo Clock.c faz parte do exemplo da Texas e nao foi alterado. Este apresenta

um relogio completo com interface grafica para o display da placa. Para a confi-

guracao do modulo de aquisicao, optou-se por inserir manualmente a hora antes de

cada medicao, utilizando-se das seguintes funcoes:

void SetupRTC(void) – Funcao responsavel pela inicializacao do Real Time

Clock, relogio em tempo real do sistema;

void SetTime(void) – Apresenta o relogio no display, possibilitando sua confi-

guracao e armazenando os valores inseridos nas variaveis date e time;

void DigitalClockUpdate(void) – Atualiza as variaveis date e time, possibili-

tando sua utilizacao na construcao da string de medicao.

4.2.2 Medicao: Medir.c

Este arquivo apresenta as funcoes relacionadas a obtencao do valor digital do ADC

e a construcao de uma string correspondente.

61

Page 76: desenvolvimento de um sistema de aquisição e armazenamento de

uint16 t Sensor getValue(void) – Obtem o valor do ADC (0-4095) referente

a entrada analogica (pino 7.0 da placa), considerando a alimentacao (3 V) como

fundo de escala. Esta e a funcao principal a ser alterada para definir o

comportamento do conversor A/D;

char* Sensor getMeasure(void) – A partir do valor obtido em Sensor_getValue(),

monta-se uma string com a data, hora e valor da medicao;

char* itoa(int value, char* result, int base) – Esta funcao converte o inteiro

value em uma string result, utilizando a base numerica base.

Observacao: O Tipo uint16_t e um unsigned int definido nos arquivos da Texas

Instruments.

4.2.3 Armazenamento: Armazenar.c

O arquivo original SDCard.c contem uma interface interativa para visualizar os

dados do cartao microSD no LCD da placa. Como esta nao e a intencao do modulo

de medicao, utilizou-se apenas de uma funcao de escrita no cartao (WriteFile()).

Esta funcao foi dividida em quatro partes, visando separar o acesso ao cartao, a

criacao do arquivo, sua escrita e fechamento, etapas que ocorrem em diferentes

pontos do programa desenvolvido.

FRESULT MountSD(void) – Monta e acessa o cartao microSD;

FRESULT OpenFile(char fileName) – Abre o arquivo de nome fileName. Se

o arquivo nao existir, este sera criado;

FRESULT WriteFile(char* fileName, char* text, WORD size) – Escreve

o texto text, de tamanho size no arquivo fileName;

FRESULT CloseFile(void) – Fecha o arquivo que esta aberto no momento.

62

Page 77: desenvolvimento de um sistema de aquisição e armazenamento de

Observacoes: O tipo FRESULT e um flag que indica o sucesso ou erro ocorrido

durante o acesso ao cartao microSD. O erro de montagem do cartao e apresentado

no LCD (figura 4.6), heranca do arquivo de origem, SDCard.c;

O tipo WORD e um unsigned int definido nos arquivos da Texas Instruments.

Figura 4.6: Erro Apresentado no LCD pela Ausencia do Cartao microSD [17].

4.2.4 Programa Principal: main.c

O programa principal e responsavel pela inicializacao dos componentes da

placa, como o display, os botoes e o potenciometro e pelo loop principal,

constituıdo da configuracao do relogio, medicao e armazenamento dos

dados.

O primeiro ponto a ser observado no programa principal, e sua composicao basica

em duas partes:

1. Setup: Fixa, executada uma unica vez logo que a placa e alimentada;

2. Main Loop: Iterativa, executada repetidamente apos o Setup.

Partindo desta logica, recomenda-se a inicializacao das variaveis na parte 1 e

cuidado com o uso da memoria na parte 2, ja que a alocacao repetida pode ocasionar

o estouro da memoria disponıvel e o mau funcionamento do modulo.

63

Page 78: desenvolvimento de um sistema de aquisição e armazenamento de

Inicializacoes e Configuracoes do Setup

• Portas (GPIO);

• Cristal para referencia de clock ;

• Clock principal (25 MHz);

• Interrupcoes;

• Relogio (Real time clock);

• Display (LCD);

• Potenciometro da placa (Thumb Wheel);

• Variaveis do sensor.

Execucoes no Loop Principal (na ordem de disparo)

• Ajustar hora;

• Montar Cartao microSD;

• Abrir/Criar Arquivo “DADOS”;

• Desabilitar potenciometro da placa;

• Desabilitar Display ;

• Executar Medicoes;

• Reabilitar potenciometro da placa;

• Reabilitar Display ;

• Fechar Arquivo;

• Incrementar Nome do Arquivo (DADOS1, DADOS2, ...);

• Reiniciar Loop.

64

Page 79: desenvolvimento de um sistema de aquisição e armazenamento de

Capıtulo 5

Testes

Estabelecidas as conexoes para o sensor e a estrutura logica do modulo, testes foram

feitos no laboratorio de eletronica do DEL/UFRJ, para obter valores de consumo

de corrente e verificar a qualidade dos dados do modulo.

5.1 Material Utilizado

• Modulo de aquisicao e armazenamento de dados (MSP-EXP430F5529);

• 2 pilhas AA para alimentacao do modulo;

• Potenciometro (5 kΩ), como sensor;

• Gerador de funcoes (Minipa MFG-4221 20 MHz DDS Function Generator),

como sensor;

• Osciloscopio Digital (Tektronix TDS1012C-EDU) para a medicao do sinal de

entrada do modulo;

• Multımetro Digital (Minipa ET-2650B) para medicao de corrente na fonte

(pilhas);

• Notebook (Dell Inspiron 1525) para a leitura dos dados armazenados no cartao;

65

Page 80: desenvolvimento de um sistema de aquisição e armazenamento de

5.2 Consumo de Corrente

O consumo de corrente e um requisito fundamental do projeto, estabelecido na secao

2.1 como 10 mA para o modulo completo. Para o prototipo desenvolvido, um dos

componentes que possui consumo consideravel (visto em 3.2.2) nao esta presente, o

pre-amplificador.

O modulo possui dois estados basicos, ambos ativos:

1. Insercao de data e hora;

2. Medicao.

No estado 1, onde o display fica ligado e os botoes e o potenciometro da placa

estao ativos, a corrente medida foi de 8.15 mA.

Na segunda etapa, o modulo faz a medicao e o armazenamento dos dados. A

corrente media foi de 7.20 mA.

Tendo em vista que este e o primeiro prototipo, solucoes para a

reducao do consumo ainda serao melhor estudadas futuramente. Entao,

considerou-se que, como o prototipo consume menos que 10 mA nesta

etapa inicial, isto atende aos requisitos, mesmo sem a parte de ampli-

ficacao.

5.3 Obtencao de Dados

Para os testes executados relativos aos dados do cartao de memoria, o modulo operou

com taxa de 1 SPS para a utilizacao com o potenciometro e 5700 SPS (taxa maxima

conseguida) para os sinais analogicos do gerador de funcoes. De modo a garantir a

fidelidade dos valores medidos, utilizou-se a frequencia de 100 Hz para os sinais de

entrada, muito abaixo da taxa de Nyquist [33].

Foram aplicados 4 sinais na entrada (pino 7.0) do modulo:

1. Terminal central do potenciometro de 5 kΩ com os terminais das extremidades

conectados a Terra e +3 V;

66

Page 81: desenvolvimento de um sistema de aquisição e armazenamento de

2. Sinal senoidal de frequencia 100 Hz, amplitude de 2.5 Vpp e offset de 1.25 V

(para o sinal variar de 0 a 2.5 V, pois o ADC foi configurado para apenas

valores positivos);

3. Sinal quadratico de frequencia 100 Hz, amplitude de 2.5 Vpp e offset de 1.25 V;

4. Sinal dente-de-serra de frequencia 100 Hz, amplitude de 2.5 Vpp e offset de

1.25 V.

5.3.1 Potenciometro

O potenciometro teve seu valor alterado excursionando a posicao do tap central de

um extremo ao outro. Apos o teste, o cartao foi lido no computador. A aplicacao

da equacao 4.1 e os dados captados originaram a figura 5.1.

Figura 5.1: Variacao de Tensao no Potenciometro: Dados do Cartao de Memoria.

67

Page 82: desenvolvimento de um sistema de aquisição e armazenamento de

5.3.2 Sinal Senoidal

Para os sinais periodicos, configurou-se o gerador de funcoes e observou-se a forma

de onda no osciloscopio (figura 5.2). Novamente, apos o teste, o cartao foi lido no

computador e os dados tratados para a obtencao da figura 5.3.

Figura 5.2: Sinal Senoidal com Amplitude 2.5 Vpp e Frequencia 100 Hz: Captura

de Tela do Osciloscopio [17].

Figura 5.3: Sinal Senoidal com Amplitude 2.5 Vpp e Frequencia 100 Hz: Dados do

Cartao de Memoria.

68

Page 83: desenvolvimento de um sistema de aquisição e armazenamento de

5.3.3 Sinal Quadratico

O mesmo procedimento foi feito para a onda quadrada, visto nas figuras 5.4 e 5.5.

Figura 5.4: Sinal Quadratico com Amplitude 2.5 Vpp e Frequencia 100 Hz: Captura

de Tela do Osciloscopio [17].

Figura 5.5: Sinal Quadratico com Amplitude 2.5 Vpp e Frequencia 100 Hz: Dados

do Cartao de Memoria.

69

Page 84: desenvolvimento de um sistema de aquisição e armazenamento de

5.3.4 Sinal Dente-de-Serra

Finalmente, para a onda dente-de-serra, as figuras 5.6 e 5.7 apresentam os dados do

osciloscopio e do microSD.

Figura 5.6: Sinal Dente-de-Serra com Amplitude 2.5 Vpp e Frequencia 100 Hz:

Captura de Tela do Osciloscopio [17].

Figura 5.7: Sinal Dente-de-Serra com Amplitude 2.5 Vpp e Frequencia 100 Hz:

Dados do Cartao de Memoria.

70

Page 85: desenvolvimento de um sistema de aquisição e armazenamento de

5.3.5 Analise dos Resultados

Conclui-se deste capıtulo, que a obtencao, o armazenamento e o formato dos da-

dos criados atendem as expectativas geradas para este projeto. Os investimen-

tos futuros devem ser relacionados a reducao do consumo, aumento da

frequencia de amostragem e no estudo de tensoes de referencia para o

ADC, com a finalidade de otimizar o desempenho do sistema.

71

Page 86: desenvolvimento de um sistema de aquisição e armazenamento de

Capıtulo 6

Conclusao

Este trabalho consolida a elaboracao de um modulo de aquisicao e armazenamento

de dados, tendo sua aplicacao em ambiente submarino, aonde o baixo consumo de

corrente e uma condicao crucial para a autonomia necessaria. Apresentou-se ainda o

estudo teorico da solucao, de fundamental importancia para a analise macroscopica

dos componentes (fısicos e logicos) que integram o sistema. Assim, considera-se que

o objetivo principal do trabalho foi cumprido.

A partir da teoria, pode-se conhecer melhor as tecnologias atuais e encontrar uma

solucao que satisfizesse todos os requisitos estabelecidos no inıcio do trabalho. Com

o conhecimento adquirido, a descoberta do microcontrolador MSP430 apresentou

uma plataforma estruturada e em constante evolucao. Outro benefıcio da escolha

do MSP430 foi a superacao das expectativas em relacao ao suporte fornecido pela

Texas Instruments. A qualidade e quantidade de material disponıvel, as plataformas

de desenvolvimento e a facilidade relacionada a compra de componentes reforcam a

excelencia da empresa e sua posicao de lideranca no mercado atual.

Desenvolvendo o primeiro prototipo, foram encontradas dificuldades anteriores

a montagem, na escolha e compra do produto. Tendo, enfim, posse de uma placa

de desenvolvimento, a elaboracao de um sistema permitiu a geracao de dados que

validaram as escolhas feitas teoricamente.

72

Page 87: desenvolvimento de um sistema de aquisição e armazenamento de

O modulo resultante deste trabalho sera utilizado nos proximos projetos do LIOc,

inicialmente de menor porte, onde sua aplicacao provera novas conclusoes e o aper-

feicoamento da plataforma.

6.1 Trabalhos Futuros

Todo o material gerado sera utilizado pelo LIOc com o objetivo de, futuramente,

possuir um modulo robusto e com qualidade de produto final, para ser aplicado em

projetos de grande porte do laboratorio.

Citado ao longo do trabalho, a utilizacao de componentes mais especıficos, como

o conversor A/D de 24 bits, tambem e um objeto de estudos futuros.

Outra solucao que eleva o nıvel de precisao e a qualidade do modulo e o auto-

ajuste do ganho do amplificador.

Na fase atual, o modulo desenvolvido sera objeto de estudo de outros projetos de

graduacao. No momento, vislumbra-se a possibilidade de sua implementacao em um

glider, um planador submarino, desenvolvido por integrantes da equipe de pesquisa

do LIOc.

73

Page 88: desenvolvimento de um sistema de aquisição e armazenamento de

Referencias Bibliograficas

[1] IDOETA, I. V., CAPUANO, F. G. Elementos da Eletronica Digital. Editora

Erica, 1984.

[2] NATIONAL INSTRUMENTS. “Introducao a tecnologia FPGA”. . Disponıvel

em: <http://www.ni.com/white-paper/6984/pt/>. Ultimo Acesso: 8

de marco de 2014.

[3] WIKIPEDIA. “Field-programmable gate array”. . Disponıvel em:

<http://en.wikipedia.org/wiki/Field-programmable gate array>.

Ultimo Acesso: 9 de marco de 2014.

[4] EE TIMES. “ESC - Xilinx Extensible Processing Platform com-

bines best of serial and parallel processing”. Disponıvel em:

<http://www.eetimes.com/document.asp?doc id=1313958>. Ultimo

Acesso: 9 de marco de 2014.

[5] ALTERA. “Cyclone V GX Starter Kit”. Disponıvel em:

<http://www.altera.com/products/devkits/altera/kit-terasic-

cyclone-v-gx-starter.html>. Ultimo Acesso: 8 de marco de

2014. “Copyright, Trademark, Patent, and Warranty Information:

http://www.altera.com/common/legal.html”.

[6] WESTE, N. H. E., HARRIS, D. M. CMOS VLSI Design - A Circuits and

Systems Perspective. Pearson, 2011.

[7] NATIONAL INSTRUMENTS. “Modulo NI LabVIEW

FPGA - National Instruments”. . Disponıvel em:

<http://sine.ni.com/nips/cds/view/p/lang/pt/nid/11834>.

Ultimo Acesso: 8 de marco de 2014.

[8] ROSCH, W. L. Hardware Bible. Que Publishing, 2003.

[9] MICROMINT USA. “Electrum 100”. . Disponıvel em:

<http://wiki.micromint.com/index.php/Electrum Documentation>.

Ultimo Acesso: 5 de janeiro de 2014.

74

Page 89: desenvolvimento de um sistema de aquisição e armazenamento de

[10] DE MELLO, M. C. Desenvolvimento de software para controle, aquisicao de

dados e telemetria em uma boia meteo-oceanografica. Projeto final de

graduacao, Universidade Federal do Rio de Janeiro, Rio de Janeiro, RJ,

Brasil, 2013.

[11] TANENBAUM, A. S. Modern Operating Systems.

[12] STACK OVERFLOW. “Stack Overflow”. Disponıvel em:

<http://stackoverflow.com/>. Ultimo Acesso: 16 de marco de

2014.

[13] VIVA O LINUX. “Viva o Linux - A maior comunidade GNU/Linux da America

Latina!” Disponıvel em: <http://www.vivaolinux.com.br/>. Ultimo

Acesso: 16 de marco de 2014.

[14] MAKE. “How to Choose the Right Platform: Rasp-

berry Pi or BeagleBone Black?” Disponıvel em:

<http://makezine.com/magazine/how-to-choose-the-right

-platform-raspberry-pi-or-beaglebone-black/>. Ultimo Acesso: 9

de marco de 2014.

[15] BEAGLEBOARD.ORG FOUNDATION. “BeagleBoard.org - community

supported open hardware computers for making”. Disponıvel em:

<http://beagleboard.org/>. Ultimo Acesso: 17 de marco de 2014.

[16] THE RASPBERRY PI FOUNDATION. “Raspberry Pi — An

ARM GNU/Linux box for $25. Take a byte” Disponıvel em:

<http://www.raspberrypi.org/>. Ultimo Acesso: 17 de marco

de 2014.

[17] BUCHMANN, R. M. “Fotos do Acervo do Autor”, marco de 2014.

[18] ARDUINO. “Arduino”. . Disponıvel em: <http://arduino.cc>. Ultimo

Acesso: 6 de janeiro de 2014.

[19] ARDUINO. “Arduino Board Pro”. . Disponıvel em:

<http://arduino.cc/en/Main/ArduinoBoardPro>. Ultimo Acesso: 12

de marco de 2014.

[20] ARDUINO. “ArduinoWirelessShield”. . Disponıvel em:

<http://arduino.cc/en/Main/ArduinoWirelessShield#.UyCVTvldXlh>.

Ultimo Acesso: 12 de marco de 2014.

[21] ATMEL CORPORATION. “Atmel”. Disponıvel em:

<http://www.atmel.com>. Ultimo Acesso: 6 de janeiro de 2014.

75

Page 90: desenvolvimento de um sistema de aquisição e armazenamento de

[22] TEXAS INSTRUMENTS. MSP430 Product Brochure, 2014. SLAB034W.

“Courtesy of Texas Instruments”.

[23] WIKIPEDIA. “Microcontrolador”. . Disponıvel em:

<http://pt.wikipedia.org/wiki/Microcontrolador>. Ultimo

Acesso: 12 de marco de 2014.

[24] MICROMINT USA. “MicroBolt”. . Disponıvel em:

<http://www.micromint.com/products/by-family/modules/49.html>.

Ultimo Acesso: 6 de janeiro de 2014.

[25] MICROCHIP TECHNOLOGY. “Microchip Technology Inc”. Disponıvel em:

<http://www.microchip.com/>. Ultimo Acesso: 6 de janeiro de 2014.

[26] TEXAS INSTRUMENTS. “MSP430 Microcontroller”. . Disponıvel em:

<http://www.ti.com/lsds/ti/microcontroller/16-bit msp430/

overview.page>. Ultimo Acesso: 15 de fevereiro de 2014. “Courtesy of

Texas Instruments”.

[27] ARDUINO. “Arduino - Compare”. . Disponıvel em:

<http://arduino.cc/en/Products.Compare>. Ultimo Acesso: 6

de janeiro de 2014.

[28] MICROCHIP. “PICkit 3”. Disponıvel em:

<http://www.microchip.com/Developmenttools/ProductDetails

.aspx?PartNO=PG164130>. Ultimo Acesso: 1 de fevereiro de 2014.

[29] TEXAS INSTRUMENTS. “TI LaunchPad Eva-

luation Ecosystem”. . Disponıvel em:

<http://www.ti.com/ww/en/launchpad/launchpad.html>. Ultimo

Acesso: 18 de fevereiro de 2014. “Courtesy of Texas Instruments”.

[30] TEXAS INSTRUMENTS. “MSP430F5529 USB Experimenter’s Bo-

ard - MSP-EXP430F5529 - TI Tool Folder”. . Disponıvel em:

<http://www.ti.com/tool/msp-exp430f5529>. Ultimo Acesso: 13 de

marco de 2014. “Courtesy of Texas Instruments”.

[31] TEXAS INSTRUMENTS. MSP430x5xx and MSP430x6xx Family - User’s

Guide, 2013. SLAU208M. “Courtesy of Texas Instruments”.

[32] OTT, H. Noise Reduction Techniques in Electronic Systems. Wiley, 1988.

[33] HAYKIN, S. Communication Systems. John Wiley & Sons, Inc, 2001.

76

Page 91: desenvolvimento de um sistema de aquisição e armazenamento de

[34] ANALOG DEVICES. “Analog Devices — Semiconductors and Signal Proces-

sing ICs”. Disponıvel em: <http://www.analog.com/en/index.html>.

Ultimo Acesso: 18 de janeiro de 2014.

[35] ANALOG DEVICES. Op Amp Applications. julho de 2002.

[36] PINO, A. V. Notas de Aula de Instrumentacao e Tecnicas de Medida, UFRJ.

2013.2.

[37] WIKIPEDIA. “Operational amplifier applications”. . Disponıvel em:

<http://en.wikipedia.org/wiki/Operational amplifier applications>.

Ultimo Acesso: 29 de janeiro de 2014.

[38] KESTER, W. Practical Design Techniques for Sensor Signal Conditioning.

1999. Analog Devices.

[39] TEXAS INSTRUMENTS. Signal Conditioning Piezoelectric Sensors, 2000.

SLOA033A. “Courtesy of Texas Instruments”.

[40] SEDRA, A. S., SMITH, K. C. Microelectronic Circuits. Oxford, 2004.

[41] TEXAS INSTRUMENTS. MSP-EXP430F5529LP User’s Guide, 2014. “Cour-

tesy of Texas Instruments”.

[42] ECLIPSE. “The Eclipse Foundation open source community website.” Dis-

ponıvel em: <http://www.eclipse.org/>. Ultimo Acesso: 15 de feve-

reiro de 2014.

[43] WIRING. “Wiring”. Disponıvel em: <http://wiring.org.co/>. Ultimo

Acesso: 30 de janeiro de 2014.

[44] TEXAS INSTRUMENTS. “TI LaunchPad - BoosterPacks”. . Disponıvel

em: <http://www.ti.com/ww/en/launchpad/boosterpacks.html>.

Ultimo Acesso: 10 de fevereiro de 2014. “Courtesy of Texas Instruments”.

[45] ABNT - ASSOCIACAO BRASILEIRA DE NORMAS TECNICAS. NBR IEC

60529:2005 Versao Corrigida 2:2011 — Graus de protecao para involucros

de equipamentos eletricos (codigo IP).

[46] CFW ELETRICA. “Catalogo Digital de Caixas”. Disponıvel em:

<http://www.cfweletrica.com.br/public/imgs/up/conexel

catalogo5 caixas.pdf>. Ultimo Acesso: 16 de fevereiro de 2014.

[47] CEMAR LEGRAND. “Catalogo Digital”. Disponıvel em:

<http://files.cemar.com.br/catalogo digital/downloads/5

Processos industriais.pdf>. Ultimo Acesso: 16 de fevereiro de 2014.

77

Page 92: desenvolvimento de um sistema de aquisição e armazenamento de

[48] MICROSOFT. “Microsoft Excel software

de planilhas Office.com”. Disponıvel em:

<http://office.microsoft.com/pt-br/microsoft-excel-software-

de-planilhas-FX010048762.aspx>. Ultimo Acesso: 16 de marco de

2014.

[49] MATHWORKS. “MATLAB - The Language of Technical Computing”.

. Disponıvel em: <http://www.mathworks.com/products/matlab/>.

Ultimo Acesso: 16 de marco de 2014.

[50] MATHWORKS. “GNU Octave”. . Disponıvel em:

<https://www.gnu.org/software/octave/>. Ultimo Acesso: 16

de marco de 2014.

78

Page 93: desenvolvimento de um sistema de aquisição e armazenamento de

Apendice A

Codigo

A.1 Programa Principal (main.c)

/∗∗ UFRJ − Univers idade Federa l do Rio de Jane i ro∗ DEL − Departamento de Engenharia E l e t r o n i c a e da Computacao∗∗ Tı tu lo : main . c∗ Autor : Rafae l Mazza Buchmann∗ Pro je to Fina l : Pesquisa e Desenvolvimento de um Sistema de Aquis i c a o∗ e Armazenamento de Dados para Medic oes Oceanogr a f i cas

∗ Orientadores : Car los Jos e Ribas D ’ Avi la∗ Fabio Nascimento de Carvalho∗∗ Observacao : Comentarios em I n g l e s pertencem ao programa o r i g i n a l ,∗ coment a r ios em portugues foram i n s e r i d o s pe lo autor .∗∗ Baseado em: UserExper ience . c − Main Appl i ca t ion∗∗ Copyright (C) 2010 Texas Instruments Incorporated∗ http ://www. t i . com/∗∗ R e d i s t r i b u t i o n and use in source and binary forms , with or without∗ modi f i ca t i on , are permitted provided that the f o l l o w i n g c o n d i t i o n s∗ are met :∗∗ R e d i s t r i b u t i o n s o f source code must r e t a i n the above copyr ight∗ not i ce , t h i s l i s t o f c o n d i t i o n s and the f o l l o w i n g d i s c l a i m e r .∗∗ R e d i s t r i b u t i o n s in binary form must reproduce the above copyr ight∗ not i ce , t h i s l i s t o f c o n d i t i o n s and the f o l l o w i n g d i s c l a i m e r in∗ the documentation and/ or other m a t e r i a l s provided with the∗ d i s t r i b u t i o n .∗∗ Neither the name o f Texas Instruments Incorporated nor the names∗ o f i t s c o n t r i b u t o r s may be used to endorse or promote products∗ der ived from t h i s so f tware without s p e c i f i c p r i o r wr i t t en∗ permis s ion .∗∗ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS∗ ”AS IS ” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT∗ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS

79

Page 94: desenvolvimento de um sistema de aquisição e armazenamento de

∗ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE∗ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,∗ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES∗ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR∗ SERVICES ;∗ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER∗ CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT, STRICT∗ LIABILITY , OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN∗ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE∗ POSSIBILITY OF SUCH DAMAGE.∗∗/

#inc lude <s t d i n t . h>#inc lude <s t d l i b . h>#inc lude <msp430 . h>#inc lude ”HAL PMM. h”#inc lude ”HAL UCS. h”#inc lude ”HAL Board . h”#inc lude ”HAL Buttons . h”#inc lude ”HAL Dogs102x6 . h”#inc lude ”HAL Wheel . h”#inc lude ”Clock . h”#inc lude ” S e t t i n g s . h”

// Meus Inc lude s#inc lude ”Medir . h”#inc lude ”Armazenar . h”

// Setupu i n t 1 6 t timeoutCounter ;

i n t main ( void )

u i n t 8 t con t ra s t = ∗ ( ( unsigned char ∗) cont ras tSe tpo intAddres s ) ;u i n t 8 t b r i g h t n e s s = ∗ ( ( unsigned char ∗) b r i ghtne s sSe tpo in tAddre s s ) ;

WDTCTL = WDTPW | WDTHOLD; // Stop watchdog t imer

// Basic GPIO i n i t i a l i z a t i o nBoard in i t ( ) ;

// Set Vcore to accomodate f o r max . a l lowed system speedSetVCore (3 ) ;

// Use 32 .768kHz XTAL as r e f e r e n c eLFXT Start (XT1DRIVE 0) ;

// Set system c lock to max (25MHz)I n i t F L L S e t t l e (25000 , 762) ;

SFRIFG1 = 0 ;SFRIE1 |= OFIE ;

// Globa l ly enable i n t e r r u p t se n a b l e i n t e r r u p t ( ) ;

// Setup r e a l time c l o ck

80

Page 95: desenvolvimento de um sistema de aquisição e armazenamento de

SetupRTC ( ) ;

// Set up LCDDogs102x6 in i t ( ) ;Dogs102x6 back l i ght In i t ( ) ;

// Br ightnes s not programed in Flash Yeti f ( b r i g h t n e s s == 0xFF)

// Set Defau l t Br ightnes sb r i g h t n e s s = 11 ;

Dogs102x6 setBack l ight ( b r i g h t n e s s ) ;Dogs102x6 setContrast ( con t ra s t ) ;Dogs102x6 c learScreen ( ) ;

// Set up wheelWhee l in i t ( ) ;B u t t o n s i n i t (BUTTON ALL) ;Buttons inte r ruptEnab le (BUTTON ALL) ;buttonsPressed = 0 ;

// St r ing com Valor do Sensorchar ∗ St r ingSensor ;

// Limpando a TelaDogs102x6 c learScreen ( ) ;

// Var i a v e i s para o Armazenamento no microSDchar NomeArquivo [ 7 ] = ”Dados” ;i n t nArquivoInt = 1 ;char nArquivoChar [2 ]= ”” ;

// Main loopwhi l e (1 )

buttonsPressed = 0 ;//Limpar a Tela a cada Loop

Dogs102x6 c learScreen ( ) ;

// Ajustar a horaSetTime ( ) ;// Mostrar a hora ( Exemplo I n i c i a l )// Di sp l ayDig i ta lC lock ( ) ;

// In i c i ando o Cartao SDMountSD( ) ;

// Abrir arquivoOpenFile ( NomeArquivo ) ;

/∗∗ O potenci ometro da Experimenter ’ s Board u t i l i z a o ADC∗ em seu d r i v e r .∗ Como e s t e pot e usado para a j u s t a r a hora no i n ı c i o do∗ programa , o p t e i por d e s a b i l i t a−l o ne s t e ponto e∗ h a b i l i t a−l o novamente ao fim da medicao para e v i t a r∗ p o s s ı v e i s c o n f l i t o s no ADC.

∗/

81

Page 96: desenvolvimento de um sistema de aquisição e armazenamento de

// Desab i l i t ando Wheel ( Potenci ometro da placa )Whee l d i sab le ( ) ;

//Apagando o Display para Economizar EnergiaDogs102x6 setBack l ight (0 ) ;

Dogs102x6 setContrast (0 ) ;Dogs102x6 c learScreen ( ) ;

whi l e ( ! ( buttonsPressed & BUTTON S2) )// MedirSt r ingSensor = Sensor getMeasure ( ) ;

// Armazenar no Cartao SD// WriteFi l e ( NomeArquivo , Str ingSensor , TamanhoPalavra ) ;

Wri teFi l e ( NomeArquivo , Str ingSensor , 22) ;Wri teFi l e ( NomeArquivo , ”\n” ,1 ) ;

// Re in ic iando WhellWheel enable ( ) ;Whee l in i t ( ) ;

// Re in ic iando DisplayDogs102x6 setBack l ight ( b r i g h t n e s s ) ;Dogs102x6 setContrast ( con t ra s t ) ;Dogs102x6 c learScreen ( ) ;

// Fechar ArquivoC l o s e F i l e ( ) ;

// Incrementar Arquivo de Teste ( Teste1 , Teste2 , . . . )nArquivoInt++;i t o a ( nArquivoInt , nArquivoChar , 1 0 ) ;s t r cpy ( NomeArquivo , ”” ) ; //Limpar St r ing em cada loops t r c a t ( NomeArquivo , ”Dados” ) ;s t r c a t ( NomeArquivo , nArquivoChar ) ;

//Fim do loop p r i n c i p a l

A.2 Rotina de Medicao (Medir.c e Medir.h)

/∗∗ UFRJ − Univers idade Federa l do Rio de Jane i ro∗ DEL − Departamento de Engenharia E l e t r o n i c a e da Computacao∗∗ Tı tu lo : Medir . c∗ Autor : Rafae l Mazza Buchmann∗ Pro je to Fina l : Pesquisa e Desenvolvimento de um Sistema de Aquis i c a o∗ e Armazenamento de Dados para Medic oes Oceanogr a f i cas

∗ Orientadores : Car los Jos e Ribas D ’ Avi la∗ Fabio Nascimento de Carvalho∗∗ Observacao : Comentarios em I n g l e s pertencem a pedacos de∗ fun c o e s obt idas na b i b l i o t e c a do Code Composer Studio ,

82

Page 97: desenvolvimento de um sistema de aquisição e armazenamento de

∗ coment a r ios em portugues foram i n s e r i d o s pe lo autor .∗/

#inc lude <s t d i n t . h>#inc lude <s t d l i b . h>#inc lude <msp430 . h>#inc lude ”HAL Board . h”#inc lude ”Medir . h”#inc lude ”Clock . h”

u i n t 1 6 t Valor Int ;char ValorChar [ 4 ] ;char Medida [ 2 5 ] ;i n t n ;

char ∗ Sensor getMeasure ( void ) //Montar a St r ing de Medicao

// Atua l i za r a horaDig ita lClockUpdate ( ) ;

// Medir// Board ledToggle (LED2) ; // P i s ca r LED ( I l u s t r a t i v o )// Delay ent re medidas// d e l a y c y c l e s (25000000) ; // 25 Mcic los /25MHz = 1 s

Valor Int = Sensor getValue ( ) ;

s t r cpy ( ValorChar , ”” ) ; //Limpar St r ingi t o a ( ValorInt , ValorChar , 1 0 ) ;

//Montando a St r ing a s e r retornadas t r cpy ( Medida , ”” ) ; //Limpar St r ing em cada loops t r c a t ( Medida , date ) ; // date e time da func ao Clock . cs t r c a t ( Medida , ”\ t ” ) ; // Separando os campos por TAB para serem l i d o s

no Excels t r c a t ( Medida , time ) ;s t r c a t ( Medida , ”\ t ” ) ;s t r c a t ( Medida , ValorChar ) ;

r e turn Medida ;

u i n t 1 6 t Sensor getValue ( void ) // Usar o ADC para obter o va l o r do pino7 .0

// Usare i o pino 7 .0 da placa , que e o A12// (Re) In i c i ando A/DP6SEL |= BITC ; // Enable A/D channel A12ADC12CTL0 = ADC12SHT02 + ADC12ON; // Sampling time ,

ADC12 onADC12CTL1 = ADC12SHP; // Use sampling

t imerADC12MCTL0 = ADC12INCH 12 ; // Use A12 ( Pot

Externo ) as inputADC12CTL0 |= ADC12ENC; // Enable

conve r s i on s

// measure ADC value

83

Page 98: desenvolvimento de um sistema de aquisição e armazenamento de

ADC12IE = 0x01 ; // Enablei n t e r r u p t

ADC12CTL0 |= ADC12SC; // Star tsampling / conver s i on

b i s S R r e g i s t e r ( LPM0 bits + GIE) ; // LPM0,sensorADC12 ISR w i l l f o r c e e x i t

ADC12IE = 0x00 ; // Disab lei n t e r r u p t

re turn ADC12MEM0;

// Funcao para conver t e r i n t em char ∗// Pois O CCS nao pos su i a func ao i t o a por padrao ./∗∗ C++ ve r s i on 0 .4 char ∗ s t y l e ” i t o a ” :∗ Written by Lukas Chmela∗ Released under GPLv3 .∗ Fonte : http ://www. jb . man . ac . uk/˜ s lowe /cpp/ i t o a . html

∗/char ∗ i t o a ( i n t value , char ∗ r e s u l t , i n t base )

// check that the base i f v a l i di f ( base < 2 | | base > 36) ∗ r e s u l t = ’ \0 ’ ; r e turn r e s u l t ;

char ∗ ptr = r e s u l t , ∗ptr1 = r e s u l t , tmp char ;i n t tmp value ;

do tmp value = value ;va lue /= base ;∗ptr++ = ”

zyxwvutsrqponmlkj ihgfedcba9876543210123456789abcdefghi jklmnopqrstuvwxyz” [35 + ( tmp value − value ∗ base ) ] ;

whi le ( va lue ) ;

// Apply negat ive s i gni f ( tmp value < 0) ∗ptr++ = ’− ’ ;∗ptr−− = ’ \0 ’ ;whi l e ( ptr1 < ptr )

tmp char = ∗ptr ;∗ptr−−= ∗ptr1 ;∗ptr1++ = tmp char ;

re turn r e s u l t ;

/∗∗ UFRJ − Univers idade Federa l do Rio de Jane i ro∗ DEL − Departamento de Engenharia E l e t r o n i c a e da Computacao∗∗ Tı tu lo : Medir . h∗ Autor : Rafae l Mazza Buchmann∗ Pro je to Fina l : Pesquisa e Desenvolvimento de um Sistema de Aquis i c a o∗ e Armazenamento de Dados para Medic oes Oceanogr a f i cas

∗ Orientadores : Car los Jos e Ribas D ’ Avi la∗ Fabio Nascimento de Carvalho

84

Page 99: desenvolvimento de um sistema de aquisição e armazenamento de

∗∗ Observacao : Comentarios em I n g l e s pertencem a pedacos de∗ fun c o e s obt idas na b i b l i o t e c a do Code Composer Studio ,∗ coment a r ios em portugues foram i n s e r i d o s pe lo autor .∗/

#i f n d e f MEDIR H#d e f i n e MEDIR H

#inc lude <s t d i n t . h>#inc lude <s t d l i b . h>#inc lude <msp430 . h>#inc lude ”HAL Board . h”#inc lude ”Clock . h”

extern char ∗ Sensor getMeasure ( void ) ;extern u i n t 1 6 t Sensor getValue ( void ) ;extern char ∗ i t o a ( int , char ∗ , i n t ) ;

#e n d i f /∗ MEDIR H ∗/

A.3 Armazenamento de Dados no Cartao

microSD (Armazenar.c e Armazenar.h)

/∗∗ UFRJ − Univers idade Federa l do Rio de Jane i ro∗ DEL − Departamento de Engenharia E l e t r o n i c a e da Computacao∗∗ Tı tu lo : Armazenar . c∗ Autor : Rafae l Mazza Buchmann∗ Pro je to Fina l : Pesquisa e Desenvolvimento de um Sistema de Aquis i c a o∗ e Armazenamento de Dados para Medic oes Oceanogr a f i cas

∗ Orientadores : Car los Jos e Ribas D ’ Avi la∗ Fabio Nascimento de Carvalho∗∗ Observacao : Comentarios em I n g l e s pertencem ao programa o r i g i n a l ,∗ coment a r ios em portugues foram i n s e r i d o s pe lo autor .∗∗ Baseado em: SDCard . c − Accesses the SD Card∗∗ Copyright (C) 2010 Texas Instruments Incorporated∗ http ://www. t i . com/∗∗ R e d i s t r i b u t i o n and use in source and binary forms , with or without∗ modi f i ca t i on , are permitted provided that the f o l l o w i n g c o n d i t i o n s∗ are met :∗∗ R e d i s t r i b u t i o n s o f source code must r e t a i n the above copyr ight∗ not i ce , t h i s l i s t o f c o n d i t i o n s and the f o l l o w i n g d i s c l a i m e r .∗∗ R e d i s t r i b u t i o n s in binary form must reproduce the above copyr ight∗ not i ce , t h i s l i s t o f c o n d i t i o n s and the f o l l o w i n g d i s c l a i m e r in∗ the documentation and/ or other m a t e r i a l s provided with the∗ d i s t r i b u t i o n .∗∗ Neither the name o f Texas Instruments Incorporated nor the names

85

Page 100: desenvolvimento de um sistema de aquisição e armazenamento de

∗ o f i t s c o n t r i b u t o r s may be used to endorse or promote products∗ der ived from t h i s so f tware without s p e c i f i c p r i o r wr i t t en∗ permis s ion .∗∗ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS∗ ”AS IS ” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT∗ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS∗ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE∗ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,∗ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES∗ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR∗ SERVICES ;∗ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER∗ CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT, STRICT∗ LIABILITY , OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN∗ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE∗ POSSIBILITY OF SUCH DAMAGE.∗∗/

#inc lude <s t d i o . h>#inc lude <s t d i n t . h>#inc lude <s t r i n g . h>

#inc lude ”msp430 . h”#inc lude ”HAL Board . h”#inc lude ”HAL Buttons . h”#inc lude ”HAL Dogs102x6 . h”#inc lude ”HAL SDCard . h”#inc lude ” f f . h”

/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

∗ @brie f This func t i on w i l l c r e a t e a new f i l e , wr i te s , and c l o s e the∗ f i l e . This func t i on w i l l ove rwr i t e your f i l e .∗ @param fi leName Spec i f y the f i l ename o f the f i l e∗ @param text Data to wr i t e to f i l e∗ @param s i z e Data s i z e to be wr i t t en∗ @return None∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/

/∗ Vou d i v i d i r a func ao o r i g i n a l Wri teFi l e em 3 :∗ MountSD( ) ;∗ WriteFi l e ( ) ;∗ CloseSD ( ) ;∗/

// Var i a v e i s// Result codeFRESULT rc ;// F i l e system ob j e c tFATFS f a t f s ;// F i l e ob j e c tFIL f i l ;UINT bw;

// This image has been crea ted by ImageDog us ing

86

Page 101: desenvolvimento de um sistema de aquisição e armazenamento de

// ’ Safety Yel low DangerGenera l . png ’s t a t i c const u i n t 8 t warningSign [ ] =

0x30 , // Image width in p i x e l s0x06 , // Image he ight in rows (1 row = 8 p i x e l s )0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0

x00 , 0x00 , 0x00 , 0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x03 , 0x04 , 0x13 , 0 x6f , 0x1c , 0xb8 , 0x5e , 0x27 , 0

x1b , 0x06 , 0x01 , 0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0

x00 , 0x00 , 0x00 , 0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0

x00 , 0x00 , 0x00 , 0x01 , 0x06 ,0x09 , 0x27 , 0xde , 0x38 , 0 xf0 , 0xc3 , 0x07 , 0 x0f , 0 x0f , 0 x0f , 0x87 , 0

xc0 , 0 xf0 , 0x3c , 0 x4f , 0x13 ,0x0c , 0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0

x00 , 0x00 , 0x00 , 0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0

x0c , 0x13 , 0 x4f , 0xbc , 0x70 ,0xe0 , 0x80 , 0x00 , 0x00 , 0x00 , 0xe0 , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0

x00 , 0x00 , 0x00 , 0x00 , 0xc0 ,0 xf0 , 0x78 , 0x9e , 0x27 , 0x19 , 0x06 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0

x00 , 0x00 , 0x00 , 0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x06 , 0x19 , 0x27 , 0x9e , 0x78 , 0

xf0 , 0xc0 , 0x00 , 0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0 xf0 , 0 xfc , 0 xfc , 0 xfc , 0 xf8 , 0

x00 , 0x00 , 0x00 , 0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x80 , 0xe0 , 0x78 , 0x1e , 0x47 , 0x13 , 0x0c , 0x03 , 0

x00 , 0x00 , 0x00 , 0x00 , 0x00 ,0x00 , 0x02 , 0x0d , 0x13 , 0 x4f , 0x3c , 0 xf0 , 0xc0 , 0x80 , 0x00 , 0x00 , 0

x00 , 0x00 , 0x00 , 0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x38 , 0x7e , 0x7e , 0x7e , 0x7e , 0x3c , 0

x00 , 0x00 , 0x00 , 0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0xc0 , 0 xf0 , 0x3c , 0

x8f , 0x23 , 0x08 , 0x06 , 0x01 ,0xe0 , 0x50 , 0 xf0 , 0xe0 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0

x60 , 0x60 , 0x60 , 0x60 , 0x60 ,0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0

x60 , 0x60 , 0x60 , 0x60 , 0x60 ,0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0x60 , 0

x60 , 0xe0 , 0xe0 , 0x10 , 0xe0 ;

/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

∗ @brie f Stop with dying message , part o f the FatFs sample p r o j e c t∗ by ChaN∗ @param rc FatFs re turn value∗ @return None∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/

void d i e (FRESULT rc )

buttonsPressed = 0 ;Dogs102x6 in i t ( ) ;Dogs102x6 c learScreen ( ) ;Dogs102x6 imageDraw ( warningSign , 2 , 29) ;

87

Page 102: desenvolvimento de um sistema de aquisição e armazenamento de

Dogs102x6 stringDraw (0 , 27 , ”WARNING! ” , DOGS102x6 DRAW NORMAL) ;Dogs102x6 stringDraw (1 , 0 , ”NO SD CARD FOUND! ” ,

DOGS102x6 DRAW NORMAL) ;whi l e ( ! buttonsPressed )

// Wait in low power mode 3 u n t i l a button i s pre s s edb i s S R r e g i s t e r ( LPM3 bits + GIE) ;

FRESULT MountSD( void )

// Reg i s t e r volume work area ( never f a i l s )f mount (0 , &f a t f s ) ;

r e turn rc ;

FRESULT OpenFile ( char ∗ f i leName )

// Open f i l erc = f open(& f i l , f i leName , FA WRITE | FA CREATE ALWAYS) ;i f ( rc )

d i e ( rc ) ;re turn rc ;

FRESULT WriteFi l e ( char ∗ f i leName , char ∗ text , WORD s i z e )

// Write to f i l erc = f w r i t e (& f i l , text , s i z e , &bw) ;i f ( rc )

d i e ( rc ) ;

re turn rc ;

FRESULT C l o s e F i l e ( void )

// Close the f i l erc = f c l o s e (& f i l ) ;i f ( r c )

d i e ( rc ) ;

re turn rc ;

/∗∗ UFRJ − Univers idade Federa l do Rio de Jane i ro

88

Page 103: desenvolvimento de um sistema de aquisição e armazenamento de

∗ DEL − Departamento de Engenharia E l e t r o n i c a e da Computacao∗∗ Tı tu lo : Armazenar . h∗ Autor : Rafae l Mazza Buchmann∗ Pro je to Fina l : Pesquisa e Desenvolvimento de um Sistema de Aquis i c a o∗ e Armazenamento de Dados para Medic oes Oceanogr a f i cas

∗ Orientadores : Car los Jos e Ribas D ’ Avi la∗ Fabio Nascimento de Carvalho∗∗ Observacao : Comentarios em I n g l e s pertencem a pedacos de∗ fun c o e s obt idas na b i b l i o t e c a do Code Composer Studio ,∗ coment a r ios em portugues foram i n s e r i d o s pe lo autor .∗/

#i f n d e f ARMAZENAR H#d e f i n e ARMAZENAR H

#inc lude <s t d i o . h>#inc lude <s t d i n t . h>#inc lude <s t r i n g . h>

#inc lude ”msp430 . h”#inc lude ”HAL Board . h”#inc lude ”HAL Buttons . h”#inc lude ”HAL Dogs102x6 . h”#inc lude ”HAL SDCard . h”#inc lude ” f f . h”

void d i e (FRESULT rc ) ;extern FRESULT MountSD( void ) ;extern FRESULT OpenFile ( char ∗ f i leName ) ;extern FRESULT WriteFi l e ( char ∗ f i leName , char ∗ text , WORD s i z e ) ;extern FRESULT C l o s e F i l e ( void ) ;

#e n d i f /∗ ARMAZENAR H ∗/

89