usbscope - notícias [engenharia eletrica - ufpr] · estudo dos microcontroladores definição do...

62
i UNIVERSIDADE FEDERAL DO PARANÁ WALTER LUCIANO ESPÍNDOLA LEANDRO SILVA PIECARZ USBSCOPE Curitiba – PR 2007

Upload: lamminh

Post on 01-Oct-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

i

UNIVERSIDADE FEDERAL DO PARANÁ

WALTER LUCIANO ESPÍNDOLA

LEANDRO SILVA PIECARZ

USBSCOPE

Curitiba – PR 2007

Page 2: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

ii

UNIVERSIDADE FEDERAL DO PARANÁ

WALTER LUCIANO ESPÍNDOLA

LEANDRO SILVA PIECARZ

USBSCOPE

Projeto de Graduação na área de Engenharia

Elétrica apresentado à Universidade Federal do

Paraná, como requisito parcial para a obtenção do

título de Engenheiro Elétrico .

Orientador: Márlio José do Couto Bonfim

Curitiba – PR 2007

Page 3: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

iii

LEANDRO PIECARZ WALTER LUCIANO ESPÍNDOLA

USBSCOPE – OSCILOSCÓPIO USB

Este Trabalho de Diplomação foi julgado e aprovado como requisito parcial para a obtenção do Título de Engenheiro Eletricista, do Curso Superior de Engenharia Elétrica da Universidade Federal do Paraná.

Curitiba, 29 de Junho de 2007

Prof. M.Sc. Ademar Luiz Pastro Universidade Federal do Paraná

Prof. Dr. Marlio J. do C. Bonfim Prof. Dr. Marlio J. do C. BonfimUniversidade Federal do Paraná

OrientadorUniversidade Federal do Paraná

Prof. MSc. Raimundo Ribeiro P. Júnior Coordenador de Curso

Departamento de Engenharia Elétrica

BANCA EXAMINADORA

Prof. Dr. Eduardo Parente RibeiroUniversidade Federal do Paraná

Page 4: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software
Page 5: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

i

AGRADECIMENTO

Este trabalho se deve ao empenho, esforço e confiança dos membros da

equipe, os quais sempre perseveraram para a realização desta pesquisa.

Agradecemos aos nossos mestres que nos ensinaram o valor e a

importância do conhecimento para o crescimento pessoal e profissional.

Devemos agradecer aos fabricantes, pelo fornecimento dos componentes,

a titulo de amostra, sem custos para este trabalho.

Agradecemos em especial ao profo. Dr. Marlio J. do C. Bonfim do

Departamento de Engenharia Elétrica da Universidade Federal do Paraná pela

constante disposição em ensinar, orientando as pesquisas desenvolvidas neste

projeto .

Agradecemos ao profo. M.Sc. Ademar Luiz Pastro do Departamento de

Engenharia Elétrica da Universidade Federal do Paraná pelas críticas construtivas,

na primeira fase do projeto.

Agradecemos ao profo. Dr Eduardo Parente Ribeiro do Departamento de

Eletrica da Universidade Federal do Paraná pelos comentários referentes ao

direcionamento de nossas pesquisas.

Agradecemos principalmente à nossos familiares e amigos, que souberam

compreender nossos momentos de ausência na execução deste trabalho, nos

apoiando e incentivando a todo instante.

Page 6: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

ii

RESUMO

O projeto USBSCOPE consiste no desenvolvimento de protótipo para a digitalização e transferência de sinais analógicos para o microcomputador via porta de comunicação USB, de modo semelhante a um osciloscópio digital. O osciloscópio possui dois canais de 8 bits, com taxa de amostragem variável, sete escalas de tempo e oito escalas de amplitude variando de 0,2V a 50V controlados por software. O hardware consiste em um estágio de amplificação com ganho variável de dois canais, dois multiplexadores para a seleção das escalas e um microcontrolador PIC 18F2550 responsável pelo controle da conversão do sinal analógico em digital, pelo controle do multiplexador e também pela transferência das amostras para o microcomputador via interface USB. O firmware para o microcontrolador foi elaborado em linguagem C e Assembler. O software da interface visual no microcomputador foi elaborado em Visual Basic com características similares às de um osciloscópio convencional de bancada.

.

Palavras-chave

Osciloscópio USB

Microcontrolador PIC

Aquisição de dados via USB

Page 7: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

iii

ABSTRACT

The USBSCOPE project aims the development of a prototype to digitalize and transfer analog signals to the microcomputer via USB interface, in a way similar to a digital oscilloscope. The oscilloscope has two 8 bits channels with variable sampling rate, seven time scales and eight amplitude scales varying from 0,2V to 50V controlled by software. The hardware consists of two variable gain amplifier stages, two multiplexer switches for the scale selection and a microcontroller PIC 18F2550 to control the analog to digital conversion, multiplexer and also for the transference of the samples to the microcomputer via USB. The firmware for the microcontroller was developed in language C and Assembler The software of the visual interface in the microcomputer was developed in Visual Basic code with characteristics similar to a conventional workbench oscilloscope.

Key words

Oscilloscope USB

Microcontroller PIC

Acquisition of data saw USB

Page 8: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

iv

LISTA DE FIGURAS

FIGURA 1 – CONEXÃO MESTRE - ESCRAVO SPI................................................XIII

FIGURA 2 – SINAIS NA COMUNICAÇÃO SPI.........................................................XIII

FIGURA 3 – TOPOLOGIA USB...............................................................................XVI

FIGURA 4 – CORTE TRANSVERSAL DO CABO USB...........................................XVI

FIGURA 5 – CONVERSOR ANALÓGICO DIGITAL.................................................XXI

FIGURA 6 - CIRCUITO BÁSICO DO AMPLIFICADOR OPERACIONAL .............XXIII

FIGURA 7 - DIAGRAMA DO CAD E MICROCONTROLADOR USB SEPARADOS

- - -XXVIII

FIGURA 8 - DIAGRAMA DO MICROCONTROLADOR COM USB E CAD INTERNO

- - -XXVIII

FIGURA 9 - DIAGRAMA DE TEMPOS DO CONVERSOR A/D ...........................XXIX

FIGURA 10 - FACES DA PLACA DE CIRCUITO IMPRESSO ............................XXXII

FIGURA 11 - FACE SUPERIOR ..........................................................................XXXII

FIGURA 12 - LAYOUT DA FACE INFERIOR .....................................................XXXIII

FIGURA 13 - ASPECTO FINAL DO PROTÓTIPO ............................................XXXIV

FIGURA 14 - TELA INICIAL DO CCS - PCWH ..................................................XXXVI

FIGURA 15 - ESQUEMA ELETRÔNICO DO PROGRAMADOR JDM .............XXXVII

FIGURA 16 - PROGRAMADOR ICSP .............................................................XXXVIII

FIGURA 17 - MICROCONTROLADOR 18F2550 ..............................................XXXIX

FIGURA 18 - OPÇÕES DE CRIAÇÃO DO VISUAL BASIC ...................................XLII

FIGURA 19 - TELA DO USBSCOPE ....................................................................XLVI

Page 9: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

v

LISTA DE QUADROS

QUADRO 1 – CRONOGRAMA DO PROJETO............................................................X

QUADRO 2 – OPÇÕES DE CONFIGURAÇÃO DAS PORTAS DO 18F2550... .XXXIV

QUADRO 3 – RELAÇÃO DE RESISTORES.......................................................XXXV

QUADRO 4 – RELAÇÃO DE CAPACITORES......................................................XXXV

QUADRO 5 – RELAÇÃO DE CIRCUITOS INTEGRADOS...................................XXXV

QUADRO 6 – RELAÇÃO DE COMPONENTES...................................................XXXV

QUADRO 7 – PINOS UTILIZADOS NO PIC..............................................................XL

Page 10: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

vi

SUMÁRIO

AGRADECIMENTO.......................................................................................................I

RESUMO......................................................................................................................II

ABSTRACT.................................................................................................................III

LISTA DE FIGURAS...................................................................................................IV

LISTA DE QUADROS..................................................................................................V

SUMÁRIO...................................................................................................................VI

1 CAPÍTULO..............................................................................................................VIII

1.1 INTRODUÇAO.................................................................................................viii

1.2 OBJETIVO.......................................................................................................viii

1.2.1 Objetivo Geral............................................................................................ix

1.2.2 Objetivo Específico....................................................................................ix

1.3 JUSTIFICATIVA................................................................................................ix

1.4 PROCEDIMENTOS METODOLÓGICOS..........................................................x

1.5 CRONOGRAMA DO PROJETO........................................................................x

2 CAPÍTULO................................................................................................................XI

2.1 EMBASAMENTO TEÓRICO............................................................................xi

2.2 PRINCIPAIS CONCEITOS..............................................................................xi

2.2.1 Osciloscópio..............................................................................................xi

2.2.2 Comunicação SPI.....................................................................................xii

2.2.3 Comunicação USB...................................................................................xiv

2.2.4 Digitalização do Sinal...............................................................................xx

2.2.5 Amplificação do Sinal..............................................................................xxii

3 CAPÍTULO...........................................................................................................XXIV

3.1 ARQUITETURA DO PROTOTIPO................................................................xxiv

3.1.1 Análise dos Componentes.....................................................................xxiv

3.1.2 Escolha dos Componentes...................................................................xxvii

3.1.3 Conversor A/D e Microcontrolador USB Separados.............................xxvii

3.1.4 Microcontrolador USB com CAD interno..............................................xxviii

3.1.5 Definição da Arquitetura.......................................................................xxviii

4 CAPITULO...........................................................................................................XXXI

4.1 HARDWARE..................................................................................................xxxi

Page 11: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

vii

4.1.1 Desenvolvimento....................................................................................xxxi

4.1.2 Layout da Placa.....................................................................................xxxi

4.1.3 Correções do Circuito...........................................................................xxxiii

4.1.4 Aspecto Final do Protótipo...................................................................xxxiv

4.1.5 Relação dos Componentes..................................................................xxxiv

5 CAPITULO.........................................................................................................XXXVI

5.1 FIRMWARE.................................................................................................xxxvi

5.1.1 Software Utilizado................................................................................xxxvi

5.1.2 Programador Utilizado.........................................................................xxxvi

5.1.3 Programacão do Microcontrolador.....................................................xxxviii

5.1.4 Descrição do Firmware..............................................................................xl

6 SOFTWARE...........................................................................................................XLII

6.1.1 Software Utilizado....................................................................................xlii

6.1.2 Estruturação do Código..........................................................................xliii

6.1.3 Interface Gráfica......................................................................................xlv

6.1.4 Driver do Dispositivo USB......................................................................xlvii

7 CONCLUSÕES E PERSPECTIVAS..................................................................XLVIII

REFERÊNCIAS BIBLIOGRÁFICAS.............................................................................L

ANEXO A....................................................................................................................LII

ANEXO B...................................................................................................................LIII

ANEXO C...................................................................................................................LV

Page 12: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

viii

1 CAPÍTULO

1.1 INTRODUÇAO

As medições realizadas em qualquer circuito eletrônico são de fundamental

importância para o técnico reparador ou simplesmente para um estudante de

eletrônica, no desenvolvimento de seus experimentos. Essas medições podem ser

feitas de várias maneiras, com simples instrumentos de bancada como os

multímetros, ou com equipamentos mais sofisticados, com funções especiais que

tornam os resultados mais precisos e confiáveis, como os osciloscópios, podendo

acrescentar funções como memorização e impressão dos sinais visualizados.

Analisando os custos dos equipamentos de medição, que são proporcionais à

complexidade, confiabilidade e precisão requerida, buscamos com este protótipo

uma alternativa de baixo custo, com recursos limitados, mas de grande praticidade,

associado aos recursos disponíveis em qualquer microcomputador com uma porta

de comunicação USB.

O protótipo, designado USBSCOPE, envolve um circuito eletrônico destinado

a digitalização e transferência dos sinais medidos para o microcomputador e

também um software para a interpretação e visualização dos sinais em uma

interface gráfica, similar a tela de um osciloscópio.

1.2 OBJETIVO

O objetivo deste projeto é construir um protótipo que permita a aquisição de

sinais e a transferência destes, via porta de comunicação USB, para um

microcomputador que será responsável pela interpretação dos sinais através de um

software.

Page 13: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

ix

1.2.1 Objetivo Geral

Temos como objetivo deste projeto desenvolver um hardware e um software,

aplicado a medição de sinais eletrônicos, buscando praticidade e custos reduzidos.

1.2.2 Objetivo Específico

Projetar um circuito eletrônico para a aquisição de sinais com dois canais de

oito bits, com taxa de amostragem variável de 0,5s a 0,02s, oito escalas de

amplitude variando de 0,2V a 50V, com seletor de sinal CC-CA via hardware.

Desenvolver uma interface gráfica para visualização dos sinais na tela do

microcomputador.

Desenvolver um Firmware para a comunicação via USB.

Implementar o circuito eletrônico em uma placa de circuito impresso, com

dimensões reduzidas, fazendo uso da tecnologia SMD.

1.3 JUSTIFICATIVA

Dentre os principais motivos que nos levaram a realização deste projeto,

podemos citar:

• O fato do tema do projeto estar correlacionado com o uso de

comunicação USB, sendo um grande desafio e extremamente

interessante para os membros do grupo.

• Possibilitar a aplicação de conhecimentos de eletrônica analógica e

digital, associados a recursos de programação de Firmware e Sofware.

• Os modelos de equipamentos com funções similares ao do projeto,

geralmente são para comunicação via porta paralela ou serial, de

custos elevados e em alguns casos, importados.

• A possibilidade do protótipo desenvolvido, poder evoluir para uma

versão mais elaborada, que permita comercialização futura.

Page 14: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

x

1.4 PROCEDIMENTOS METODOLÓGICOS

O projeto será realizado por meio de pesquisa bibliográfica em de livros,

manuais, Internet, normas técnicas, apresentadas apropriadamente no decorrer dos

capítulos.

A pesquisa é científica, aplicada, explicativa e de laboratório, em que na

execução do trabalho usamos recursos como Internet, livros, manuais, datasheets

de componentes e equipamentos de medição em laboratório.

1.5 CRONOGRAMA DO PROJETO

As etapas do projeto foram desenvolvidadas conforme planejado no

cronograma,

com a apresentação prevista para a primeira semana de Julho. Quadro 1 – Cronograma do Projeto

Atividades / Mês Março Abril Maio Junho JulhoEstudo dos MicrocontroladoresDefinição do hardwareConfecção da placa e montagemTestes e calibraçãoEstudo do SoftwareDesenvolvimento do SoftwareTestes de Software Apresentação

Page 15: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xi

2 CAPÍTULO

2.1 EMBASAMENTO TEÓRICO

No presente trabalho pretende-se uma solução de como transferir sinais de

medições eletrônicas para um microcomputador através da porta USB, de maneira

satisfatória. Serão abordados aspectos conceituais do hardware envolvido, bem

como do firmware necessário, apresentando-se os softwares usados na

implementação do presente projeto.

Abordaremos conceitos básicos das funções existentes em um osciloscópio

comercial, que serão implementados na interface gráfica do nosso protótipo.

Mostraremos as características principais do protocolo de comunicação USB.

Neste trabalho, portanto, serão abordados conceitos de medição de sinais

eletrônicos, processos de conversão dos sinais analógicos em digitais, possíveis

alternativas dos componentes utilizados com suas vantagens e desvantagens,

normatização aplicada ao padrão de comunicação escolhido e estudo dos

problemas localizados durante a implementação do projeto.

2.2 PRINCIPAIS CONCEITOS

2.2.1 Osciloscópio

O osciloscópio é basicamente um dispositivo de visualização gráfica que

mostra sinais elétricos no tempo, que além de uma medida quantitativa, apresenta

também uma medida qualitativa da grandeza que está sendo objeto de análise.

O monitor de um osciloscópio é, geralmente, um retângulo de 10cmx8cm,

subdividido em quadrículos que permitem a leitura dos sinais visualizados. Os eixos

vertical e horizontal possuem escalas que são ajustadas pelos seletores de base de

tempo e amplitude, Para se medir um sinal elétrico com um osciloscópio, é

necessário se dispor das “ponteiras de prova”, que deverão ser conectadas aos

canais do osciloscópio e à fonte do sinal elétrico que se deseja medir.

Page 16: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xii

Os osciloscópios geralmente são de dois canais, o que significa que dois

sinais podem ser observados (simultaneamente ou não) com o instrumento. Existem

também osciloscópios com mais canais. Cada um dos canais possui uma entrada

para uma ponteira de prova e alguns comandos independentes.

Tanto os osciloscópios analógicos quanto os digitais permitem a visualização

de qualquer um dos seus dois canais, ou dos dois canais de forma simultânea.

Citamos as funções mais comuns encontradas em um osciloscópio:

• CH1: mostra o sinal do canal 1;

• CH2: mostra o sinal do canal 2;

• ALT e CHOP: mostram os dois canais de forma simultânea.

• ADD: mostra um sinal correspondente à soma do canal 1 com o canal 2.

• Amplitude máxima do sinal.

Os botões para selecionar as escalas horizontal e vertical do osciloscópio

permitem um ajuste da imagem de acordo com a freqüência e a amplitude de um

sinal. O ajuste da escala de tempo é comum aos dois canais do osciloscópio. A

escala de amplitude é independente para cada um dos canais do osciloscópio. O

ajuste dos seletores das escalas de tempo e de amplitude varia de acordo com o

sinal a ser analisado.

A amplitude dos sinais mostrados por um osciloscópio pode ser

determinada diretamente. Para isso, basta observar a escala do eixo vertical do

osciloscópio, quando um determinado sinal está sendo mostrado em função do

tempo. Deve-se contar o número de divisões e multiplicar pela escala que está

sendo utilizada.

2.2.2 Comunicação SPI

O SPI é um protocolo de comunicação síncrono e opera no modo full-duplex.

O protocolo SPI é composto por 4 sinais, são eles:

• Sinais de dados: MOSI (Master data Output, Slave data Input) e MISO

(Master data Input, Slave data Output) são responsáveis pela transferência de

dados entre o master e o slave.

• Sinais de controle: SCLK (Serial Clock) e /SS (Slave Select).

Page 17: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xiii

A figura 1 ilustra a conexão entre dois dispositivos spi. O dispositivo da direita

é denominado dispositivo mestre e o da esquerda dispositivo escravo. O dispositivo

mestre possui o controle do sinal de clock (SPICLK) e é quem controla o processo

de trocas de mensagens e dados. Os pinos de dados são denominados SPISIMO e

SPISOMI. No primeiro pino os dados entram quando o dispositivo é escravo (Slave

In) e saem quando o dispositivo é mestre (Mestre Out). No segundo pino a operação

é inversa. Na figura abaixo as setas indicam a direção dos dados.

Figura 1 – Conexão Mestre - Escravo SPI

Onde:

• SPITXBUF - É o buffer que contém o dado a ser transmitido.

• SPIRXBUF - É o buffer que contém o dado recebido.

• SPIDATA - É o registro de dados. Os dados a serem transmitidos são

transferidos para este registro. Na realidade ao mesmo tempo em que o

mestre transmite dados ele recebe dados do dispositivo escravo. Neste caso

o mestre deve, por software, aceitar ou não o dado.

• Registros de controle - São os registros utilizados para configurar a interface

SPI, como estabelecer a freqüência do clock, definir se o dispositivo será

mestre ou escravo e outras funções. Figura 2 – Sinais na Comunicação SPI

Page 18: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xiv

O mestre inicia uma transmissão enviando o sinal de relógio SPICLK. Dados

seriais são enviados pelo pino SPISIMO, do lado do mestre, e pelo pino SPISOMI,

do lado do escravo. Por exemplo, na subida do clock os dados são disponibilizados

nos pinos anteriores e na descida subseqüente do relógio os dados são

armazenados no registro SPIDATA. Assim na descida de cada pulso de clock o

escravo captura um bit vindo do mestre e o mestre captura um bit vindo do escravo.

Deste modo ambos dispositivos transmitem e recebem dados simultaneamente.

Cabe ao software de aplicação determinar se o dado é significativo ou não.

O mestre pode iniciar uma transmissão a qualquer momento, uma vez que ele

controla o sinal de clock, porém cabe ao projetista determinar como o mestre irá

saber quando o escravo está pronto para transmitir dados. Isto pode ser feito, por

exemplo, através de sinais de interrupção ou varredura por software.

2.2.3 Comunicação USB

Idealizado em 1995 por um grupo de empresas de tecnologia, o padrão USB

(Barramento Serial Universal), permite que sejam conectados até 127 equipamentos

em cada computador através de hubs. Tudo isso sem a necessidade de desligar o

computador para fazer as ligações e com reconhecimento automático doa aparelhos

adicionados. É o chamado plug and play.

A configuração do USB é automática, sendo desnecessária a preocupação

com drivers e programas ao acrescentar novos dispositivos. As controladoras USB

detectam automaticamente a conexão ou remoção de um periférico. Estas também

gerenciam e controlam o driver e a largura da banda exigida por cada dispositivo,

além também de definir a alimentação elétrica correta.

As primeiras interfaces USB atendiam à especificação 1.0 (Low Speed).

Posteriormente, foram introduzidas modificações que deram origem à especificação

1.1 (Low/ Full Speed), na qual seguem a maioria dos computadores produzidos

antes de 2000. A partir de meados de 2001 os computadores passaram a ter

barramento USB 2.0 (Low/ Full/ High Speed). A principal diferença das

especificações está na taxa de transferência, suportando as seguintes velocidades:

• Low speed – taxa de transferência de 1,5 Mbits/s

• Full speed – taxa de transferência de 12 Mbits/s

Page 19: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xv

• High speed – taxa de transferência de 480 Mbits/s

2.2.3.1.Características

As principais características do padrão USB estão abaixo listadas de acordo

com os benefícios propiciados por estas:

• Auto-identificação de periféricos, configuração e mapeamento de drivers

automático.

• Conexão dinâmica e reconfiguração de periféricos.

• Sensível a dispositivos cuja largura da banda de transmissão vai de poucos

Kbps até alguns Mbps.

• Suporta transferências isossíncronas assim como assíncronas para o mesmo

conjunto de fios

• Suporta conexões múltiplas de vários dispositivos, com até 127 periféricos.

• Protocolo reduzido, resultando em uma alta utilização do barramento.

• Suporta um grande número de pacotes de tamanhos variados

• A inserção e remoção dinâmica de periféricos é identificada e percebida em

tempo real pelo usuário.

• Consistente com a arquitetura plug and play dos PC’s.

• Compatível com as interfaces dos sistemas operacionais existentes.

2.2.3.2.Topologia USB

O barramento USB conecta dispositivos e hosts que suportam este padrão. A

interconexão física da USB usa a topologia tiered-star (estrela disposta em camadas

/ níveis). Um hub, conector, é o centro de cada estrela. Cada segmento de cabo é

uma conexão pontual entre o host e hub ou função, ou um hub conectado a outro

hub ou função. Existe apenas um host num sistema USB. A interface USB para o

sistema do computador hospedeiro refere-se ao controlador do mesmo. O

controlador do host pode ser implementado em combinação de hardware e software.

Page 20: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xvi

Um hub pode prover mais pontos de conexão. A figura seguinte ilustra a topologia

do USB:

Figura 3 – Topologia USB

2.2.3.3.Conexão Elétrica

As transferências de sinal e potencial são feitas através de um cabo, com

quatro fios, como mostrado na figura 4:

Figura 4 – Corte Transversal do Cabo USB

Os cabos USB possuem no seu interior dois pares de fios. Um par é trançado

e formado, geralmente, por fios de cor branco e verde. É através desses fios que

trafegam os dados, no formato serial. Esses dois sinais formam o par diferencial. Ao

invés de ter um fio terra e outro de sinal, os dois levam o mesmo sinal, mas com

polaridades invertidas, chamados de D+ e D-. A vantagem do par diferencial é a alta

imunidade a ruídos elétricos e interferências em geral. O outro par é usado para a

alimentação dos dispositivos ligados no barramento. O fio preto é o terra e o

Page 21: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xvii

vermelho traz uma tensão de +5 volts, e a corrente que pode ser fornecida é de 500

mA. Envolvendo esses dois pares de fios temos uma camada formada por uma folha

de alumínio e uma blindagem externa, formada por uma malha de cobre.

Envolvendo tudo temos uma capa de plástico.

2.2.3.4.Controlador Host

O host USB interage com os dispositivos através do controlador do mesmo. O

host é responsável por:

• Detectar a conexão e remoção de dispositivos USB.

• Gerenciar o fluxo de controle e de dados entre ele e os periféricos.

• Coletar estatísticas de atividades e estado.

• Fornecer alimentação aos dispositivos conectados.

O software do sistema USB no host gerencia interações entre dispositivos

USB e o software do dispositivo instalado no próprio hospedeiro.

Existem cinco áreas de interação entre o software do sistema USB e o

software do dispositivo:

• Enumeração e configuração do dispositivo.

• Transferências isossíncronas de dados.

• Transferências assíncronas de dados.

• Gerenciamento de energia.

• Gerenciamento de informações de barramentos e dispositivos.

Sempre que possível, o software do sistema usa interfaces existentes no host

para gerenciar as interações acima.

2.2.3.5.Protocolo USB

O USB é um barramento receptor. O controlador do host inicia todas as

transferências de dados.

Todas as transações do barramento envolvem a transmissão de até três

pacotes. Cada transação se inicia quando o controlador do host envia um pacote

USB descrevendo o tipo e a direção da transação, o endereço do dispositivo USB e

Page 22: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xviii

o número do ponto final (endpoint). O ponto final de um dispositivo é a única porção

endereçável deste que é a fonte de informação em um fluxo de comunicações entre

o host e o próprio. O número de endpoint é um valor de 4 bits entre 0(hex) e F(hex),

inclusive, associado a um ponto final de um periférico USB.

Este primeiro pacote é conhecido como "pacote de sinal" (token packet).

O dispositivo USB, que é endereçado, seleciona a si mesmo pela

decodificação do endereço apropriado. Em uma dada transação, dados são

transferidos do host para o dispositivo ou vice-versa. A direção da transferência é

especificada no token packet. A fonte da transação envia então um pacote de dados

ou indica que não há mais dados para serem transferidos. O destinatário, em geral,

responde com um "pacote aperto de mão" (handshake packet), indicando o sucesso

da transferência.

O modelo para transferências de dados entre a fonte ou um destino no host e

um ponto final de um dispositivo é conhecido como pipe (tubo ou canal). Existem

dois tipos de pipe: correntes (stream) e mensagens.

Uma corrente de dados não possui uma estrutura USB definida, enquanto as

mensagens possuem.

Além disto, os tubos possuem associações com as bandas de transmissão de

dados, tipos de serviços de transferência e características de endpoint, como

direção e tamanho de buffers. A maioria dos tubos passam a existir quando um

dispositivo é configurado. Uma mensagem de pipe, default control pipe, sempre

existe enquanto o dispositivo está sendo alimentado, para que possa fornecer

acesso às configurações, informações de controle e status deste.

A listagem da transações permite o controle do fluxo para várias correntes de

tubos (stream pipes). O mecanismo de controle de fluxo permite a construção de

listas flexíveis, que acomodam serviços concorrentes de misturas heterogêneas de

stream pipes. Múltiplas correntes de pipes podem ser "servidas" em diferentes

intervalos e com pacotes de diferentes tamanhos.

2.2.3.6.Fluxo de Dados

O barramento suporta dados funcionais e substituição de controles entre o

host e periféricos, assim também como um conjunto de pipes uni ou bidirecionais. As

transferências de dados realizam-se entre o software do host e um endpoint

Page 23: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xix

particular em um dispositivo USB. Algumas destas associações é que são chamadas

de pipes (tubos ou canais). Geralmente, o movimento de dados através de um tubo

é independente do fluxo de dados em outro tubo.

Um dado dispositivo USB deve possuir vários endpoints. Por exemplo, o

dispositivo deve ter um ponto final que suporte um tubo transportando dados para o

dispositivo e outro que suporte o transporte de dados no sentido contrário.

A arquitetura USB compreende quatro tipos básicos de transferências de

dados:

• Transferência de Controle

Usada para configurar um dispositivo no instante de sua conexão e pode ser

usada para outros propósitos específicos, incluindo controle de outros pipes no

dispositivo.

• Transferência de Volume de Dados

Gerada e consumida em grandes quantidades e simultaneamente. Possui

uma ampla e dinâmica latitude em transmissões de reserva. Este tipo de dado é

seqüencial. A largura das bandas de transmissão para este tipo de transferência de

dados pode variar dependendo de outras atividades concorrentes do barramento. É

um tipo de transmissão que assegura a integridade dos dados mas não a velocidade

de transmissão.

• Transferências Interruptas de Dados

Usada para caracteres ou coordenadas com percepções humanas ou

características de respostas regenerativas. Alguns dados podem ser apresentados

para transferências por um dispositivo em qualquer instante e é distribuída pelo USB

a uma taxa nunca mais lenta quanto a especificada pelo dispositivo.

• Transferência Isossíncrona de Dados

Ocupa uma quantidade pré-negociável da banda de transmissão do

barramento, com a distribuição de pulsos. Chamada também de transferência de

correntes em tempo real (streaming real-time transfers).

2.2.3.7.Caracterização de Dispositivos

Page 24: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xx

Todos os dispositivos USB são acessados por um endereço atribuído durante

sua conexão e enumeração. Cada componente adicionado suporta um ou mais

pipes através dos quais o host pode se comunicar com eles. Todo componente USB

também suporta um canal especialmente designado no ponto final zero para que

seja incluído o canal de controle (control pipe). Através deste pipe de controle,

dispositivos USB suportam um mecanismo de acesso comum para obter

informações.

O canal de controle no endpoint zero é a informação necessária para

descrever completamente o dispositivo USB. Esta informação é dividida em três

categorias:

• Standard

A definição é comum para todos os periféricos USB e inclui itens como a

identificação do vendedor, classe do dispositivo e o gerenciamento de alimentação.

Configurações, interface e descrições de endpoint dos dispositivos carregam

informações relacionadas sobre o mesmo.

• Class

A definição desta informação varia, dependendo das classes de dispositivos

USB.

• Vendedores USB

O vendedor de dispositivos USB é livre para adicionar qualquer informação

desejada.

2.2.4 Digitalização do Sinal

Para digitalizar um sinal, precisamos de uma base de tempo e um Conversor

Analógico Digital (ADC), que forneça uma aproximação digital do sinal original. A

aproximação digital é registrada em n – bits e a variação pode ser reduzida para

uma precisão de, no máximo, uma parte de 2n. A base de tempo determina a

velocidade com que podemos amostrar a forma de onda e varia com o tipo de ADC.

Em geral, quanto maior for o número de bits, mais lento é o dispositivo.

O bit mais significativo (msb) é o que registra a maior variação de tensão, e o

bit menos significativo (lsb) registra a menor variação de tensão.

Page 25: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxi

2.2.4.1.Conversor Analógico Digital

Um conversor A/D é um circuito que converte um nível de tensão (ou

corrente) em um valor numérico (digital) correspondente. É a base de qualquer

instrumento de medição digital. Existem várias topologias de circuitos conversores A/

D, cada uma delas com características específicas priorizando a velocidade de

conversão, a resolução, a simplicidade ou o custo.

Figura 5 – Conversor Analógico Digital

• Conversor A/D Paralelo ou Flash

O processo de conversão A/D é feito de modo paralelo (todos os bits

simultaneamente), o que possibilita uma maior velocidade de operação. O sinal de

entrada é comparado com 2n-1 valores intermediários de tensão distribuídos

linearmente dentro da faixa dinâmica do conversor (n = nº de bits do conversor).

Para cada valor intermediário é utilizado um comparador de tensão. A saída dos

2n-1 comparadores é combinada por um conjunto de portas digitais, fornecendo o

resultado de saída em código binário.

• Conversor A/D de Rampa Simples

É baseado na geração de uma rampa de tensão linear no tempo, obtida pela

integração da tensão de entrada (circuito integrador com AMPOP).

• Conversor A/D de Rastreamento

O rastreamento funciona pela saída de um comparador impulsionando a

direção de contagem. O contador emite uma palavra digital que o D/A converte para

V+. O sinal de controle configura a taxa do relógio, então, à medida que o contador

vai para frente e para trás em volta do binário da tensão de entrada, o relógio é

Page 26: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxii

desacelerado para conseguir uma representação melhor. A característica

interessante do A/D de rastreamento é que ele segue um alvo em movimento.

• Conversor Carga-Equilíbrio

O projeto de equilíbrio de carga é mais comum para dispositivos lentos e de

baixo custo (mas pode ser bastante preciso). A idéia é carregar um capacitor via

tensão do sinal integrado. Isso é usado para acionar um mono-estável que envia um

pulso de gatilho breve para uma fonte de corrente precisa. A freqüência da fonte de

corrente irá cancelar a construção da carga no capacitor em função do integrador e,

portanto, a freqüência fornece uma medida da tensão de entrada. A freqüência é

medida com um contador.

• Conversor por Aproximações Sucessivas

Uma abordagem antiga para a conversão A/D é por aproximações

sucessivas, começando com o bit mais significativo e indo até o menos significativo.

O comparador simplesmente informa se a aproximação é alta demais. Podemos

pensar nisso como um elo de realimentação buscando seu ponto operacional, mas,

na verdade, ele nunca será encontrado, já que a aproximação não é igual ao sinal

de entrada.

2.2.5 Amplificação do Sinal

Tendo em vista que o sinal elétrico a ser convertido pode ser da escala de

mili-volts, é necessário que eles sejam aplicados a um amplificador, que fornece um

alto ganho para o sinal diferencial de entrada obtendo um sinal de saída adequado

para a análise.

Este ganho pode ser regulado variando o valor da resistência entre os

terminais de controle de ganho deste componente e é ajustado durante a montagem

do sistema.

Page 27: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxiii

Figura 6 - Circuito Básico do Amplificador Operacional

.

Page 28: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxiv

3 CAPÍTULO

3.1 ARQUITETURA DO PROTOTIPO

Entre as várias possibilidades de desenvolvimento do protótipo podemos citar:

• Conversor AD e microcontrolador separados.

• Microcontrolador com USB e CAD interno.

3.1.1 Análise dos Componentes

Fazendo a análise dos componentes necessários para a montagem do

protótipo, destacamos os seguintes como principais:

• Microcontrolador

• Conversor Analógico Digital

• Multiplexador

• Amplificador Operacional

3.1.1.1.Microcontrolador

FTDI FT232BM USB UART

Este microcontrolador se destaca principalmente por disponibilizar

gratuitamente, no site do fabricante, drives de controle para os sistemas

operacionais Windows 98/Me/200/XP/CE.NET, Linux e Mac OS-X/9/8, com

exemplos de aplicação e código fonte para as linguagens C++, LabView, Delphi,

Visual Basic, Java e Python, juntamente com uma ampla documentação. Seria ideal

para a nossa aplicação se não fosse a limitação do número de saídas. Tem as

seguintes características:

• 32 pinos com encapsulamento LQFP

• 284 Bytes de buffer de recebimento

• 128 Bytes de buffer de envio

• Taxa de transferência entre 300 a 1M Baud (RS232)

• Compatível com USB1.1 e USB2.0

Page 29: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxv

• EPROM programável via USB

Atnel AT90USB82

Este fabricante possui a linha AT90USB com capacidades de memória Flash

de 8 a 128Kb, com conversor A/D de 10bits e várias outras características

necessárias para o protótipo, mas a documentação de referência para programação

e outros detalhes de aplicação são destinados para usuários mais avançados,

dificultando seu uso no presente projeto. Tem as seguintes características:

• 32 pinos com encapsulamento QFN32 e TQPP32

• 8 kB de memória Flash para o programa

• 512 Bytes SRAM para dados

• 512 Bytes EEPROM

• 22 I/Os programáveis

Microchip 18F2550

Este foi o mais adequado a nossa aplicação. O microcontrolador da

Microchip é baseado na arquitetura Harvard com modelo de instruções RISC

(Reduced Instruction Set Computer). Desta forma possui apenas 35 instruções em

Assembler viabilizando o aprendizado e programação. Possui uma vasta

documentação a respeito da programação e aplicações práticas, favorecendo na

solução dos problemas que pudessem ocorrer na implementação do protótipo.

Citamos as principais características:

• 28 pinos com encapsulamento PDIP e SOIC

• 32 kB de memória Flash para o programa

• 2 kB de memória SRAM para dados

• 24 pinos de I/O individualmente configurados

• Conversor A/D com10 canais de 10 bits

• Proteção de Código Programável

• Modo SLEEP para diminuição de consumo de energia.

• Opções de oscilador selecionável: RC, XT, HS, LP

• Programação Serial “in-circuit” (através de dois pinos)

Page 30: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxvi

• Bytes de identificação (ID) programáveis pelo usuário

3.1.1.2.Conversor Analógico Digital

Analog Device AD7912

O fator determinante na escolha foi a taxa de conversão disponível com a

interface serial, sendo que tínhamos a opção de outros fabricantes mas com

interface paralela ou freqüência de clock acima de 20MHz. Tem as seguintes

características:

• Dois canais de 10 bits

• Taxa de conversão máxima de 1MSPS com 18MHz de clock

• Interface serial SPI

• Encapsulamento 8 pinos MSOP

3.1.1.3.Multiplexador

Maxim Max4638ESE

O chaveador multiplexador foi escolhido dado suas dimensões e numero de

canais. Tem as seguintes características:

• Oito canais multiplexados

• Encapsulamento 8 pinos SOIC

3.1.1.4.Amplificador Operacional

Texas OPA2350

Este componente estava disponível em nosso laboratório, sendo adequado à

aplicação em questão, com as seguintes características:

• Dois canais

• Largura de banda de 38 MHz

• Encapsulamento 8 pinos SOIC

Page 31: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxvii

3.1.2 Escolha dos Componentes

A escolha dos componentes foi realizada tendo como base os requisitos

mínimos de desempenho do protótipo mencionados no objetivo do projeto, item

1.2.2. Também levamos em conta a facilidade de aquisição dos componentes,

buscando fabricantes que disponibilizassem amostras sem custos para nosso

projeto.

O microcontrolador escolhido foi o 18F2550 da Microchip por possuir

características de desempenho, ferramentas para desenvolvimento e dimensões

apropriadas para a construção do protótipo.

O conversor AD escolhido foi o AD 7912 da Analog Device, com dois canais

de 10 bits e interface SPI (Serial Peripheral Interface).

Usamos dois multiplexadores da Maxim, o MAX4051, com oito canais

multiplexados através de três bits de controle, para a seleção das escalas.

Na entrada de sinal para o conversor AD usamos um amplificador operacional

da Texas, o OPA2350U, possibilitando um range de oito escalas através do controle

de ganho.

3.1.3 Conversor A/D e Microcontrolador USB Separados

Com esta arquitetura temos um conversor A/D de dois canais comunicando

com um microcontrolador via SPI (Serial Peripheral Interface). O microcontrolador é

responsável pelo controle do fluxo de dados da comunicação USB e SPI. Na entrada

do conversor A/D precisamos de um amplificador operacional para cada canal. O

controle de escalas pode ser feito diretamente pelo microcontrolador ou através de

um multiplexador.

Page 32: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxviii

Figura 7 - Diagrama do CAD e Microcontrolador USB Separados

3.1.4 Microcontrolador USB com CAD interno

Nesta arquitetura o microcontrolador e responsável pela conversão A/D dos

dois canais, assim como pelo controle do fluxo de dados da comunicação USB. Faz-

se necessário, para cada um dos canais, a utilização de um amplificador operacional

juntamente com um multiplexador, com o objetivo de fazermos a seleção das

escalas através do controle de ganho do amplificador.

Figura 8 - Diagrama do Microcontrolador com USB e CAD Interno

3.1.5 Definição da Arquitetura

Inicialmente começamos desenvolvendo o sistema com conversor A/D e

microcontrolador separados, mas não pode ser totalmente implementado devido a

características do protocolo SPI do conversor A/D.

Na parte do microcontrolador (máster), o sinal de clock somente é enviado

quando se quer realizar a transmissão ou recepção de dados, sempre são oito ciclos

de clock.

Page 33: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxix

Na parte do conversor A/D (slave), o conversor precisa do sinal de clock

para dar início à conversão do dado. Essa conversão começa no primeiro ciclo e o

envio do dado só começa a partir do quarto pulso de clock. O dado é enviado bit por

bit sendo que o ultimo bit é enviado no quarto pulso de clock, o penúltimo bit no

quinto pulso, e assim sucessivamente até o primeiro bit do dado.

Diante desse atraso ocorreria a perda de seis clocks do dado convertido

que seria enviado para o microcontrolador, resultando numa perda na escala de

resolução. A figura abaixo mostra o diagrama de tempos do conversor A/D.

Figura 9 - Diagrama de Tempos do Conversor A/D

A solução adotada para resolver este problema foi a utilização do conversor

interno do próprio microcontrolador, que apesar de proporcionar uma freqüência de

amostragem mais baixa manteria a resolução em dez bits.

A freqüência de amostragem máxima (F s ) foi estimada pelas equações:

610486464×

==FT

oscad sT ad

61033,1 −×=

Para 10 bits serão usados T ad×11 , então:

TT adc ×= 1161048

6411−×

×=T csT c

51047,1 −×=

T acq é fornecido pelo datasheet com um valor médio s61045,2 −× .

65 1045,21047,111

−− ×+×=

+=

TTFacqc

s kHzF s 3,58=

Page 34: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxx

Entre duas conversões consecutivas temos T acq×3 , portanto:

TTTT adacqctotal ×++= 3 sT total510114,2 −×=

Page 35: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxxi

4 CAPITULO

4.1 HARDWARE

Inicialmente começamos implementando o hardware da arquitetura

mensionada no item 3.1.3, conversor A/D e do microcontrolador USB separados,

mas diante dos problemas apresentados, fizemos pequenas modificações no

mesmo hardware para adequá-lo à arquitetura do item 3.1.4, microcontrolador USB

com conversor A/D interno.

4.1.1 Desenvolvimento

Tanto no desenvolvimento do esquema eletrônico quanto na elaboração da

placa de circuito impresso foi utilizado uma versão freeware do software Eagle.

O esquema eletrônico foi fundamentado nas informações contidas nos

datasheets dos componentes, disponível na homepage do fabricante, juntamente

com o direcionamento recebido do orientador do projeto. O esquema eletrônico está

no Anexo_A.

O layout da placa de circuito impresso foi dimensionado tendo como

referência as medidas de caixa de um “pen drive”, com o objetivo de usarmos a

mesma caixa para suportar o nosso circuito, usando inclusive o conector USB e o de

áudio.

Dada as dimensões da placa de circuito e impresso optou-se por tercerizar

sua confecção, ficando a nosso encargo a montagem dos componentes.

4.1.2 Layout da Placa

Com os padrões de encapsulamentos dos componentes definidos, fizemos

a distribuição destes nos dois lados da placa de circuito , resultando em duas faces

com vários pontos de interligação entre elas.

Page 36: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxxii

A placa de circuito impresso ficou com dimensões de 25mm de largura e

70mm de comprimento, adequadas ao tamanho invólucro do “pen drive”, como

mostrado na figura 10.

Figura 10 - Faces da Placa de Circuito Impresso

Na face superior, figura 11, temos como principais componentes o

microcontrolador, o conversor A/D e o aplificador operacional .

Devido a necessidade de programação do firmware do microcontrolador, foi

previsto um ponto de conexão para o programador ICSP™ (In-Circuit Serial

Programming™).

Figura 11 - Face Superior

Na face inferior, figura 12, foram posicionados os dois multiplexadores e o

oscilador cristral de 16MHz.

Page 37: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxxiii

Figura 12 - Layout da Face Inferior

4.1.3 Correções do Circuito

A primeira alteração foi devido à substituição do oscilador semicondutor por

um cristal de 16MHz, para uma maior precisão do clock, conforme recomenda a

especifição USB 2.0 (Universal Serial Bus Specification Revision 2.0) , para o modo

Full-speed uma tolerância de ±0,25%.

Na elaboração do layout foi determinado erroneamente o encapsulamento

dos multiplexadores como SOIC1, ao invés do encapsulamento SOIC com

dimensões menores que fora previsto, sendo necessário prolangar alumas

conexões dos pinos do multiplexador.

Eliminamos o conversor A/D externo, pelas limitações mencionadas no item

3.1.3, relocado as conexões de entrada do conversor para os pinos 2 e 3 do

microcontrolador, entradas analógicas AN0 e AN1.

Em função do uso das entradas analógicas AN0 e AN1 do microcontrolador foi

necessário relocar as conexões do multiplexador que inicialmente estavam nos

pinos 2 e 3 para os pinos 11 e 12, por razões de configuração das portas anlógicas

sendo necessário obdecer a seguinte ordem da tabela abaixo:

Page 38: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxxiv

Quadro 2 – Opções de Configuração das Portas do 18F2550

4.1.4 Aspecto Final do Protótipo

Todo circuito foi elaborado com o objetivo de acomodá-lo no invólucro de um

pen-drive, com o correto dimensionamento da placa de circuito impresso e

disposição dos conectores adequadamente para um encaixe perfeito. A figura 13

mostra o aspecto final do protótipo.

Figura 13 - Aspecto Final do Protótipo

4.1.5 Relação dos Componentes

Page 39: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxxv

• Resistores

ValorR1, R9 10 MΩR2, R10 4 MΩR3, R11 2 MΩR4, R12, R17, R18 1 MΩR5, R13 400 kΩR6, R14 200kΩR7, R15 100kΩR8, R16 40kΩR19, R20, R21, R22 10kΩ

Quadro 3 – Relação de Resistores

• Capacitores

ValorC1, C2, C3, C4, C5, C8, C10 0,1µFC6 470 nfC7, C9 15pFC11, C12 10µFC13, C14 20nF

Quadro 4 – Relação de Capacitores

• Circuitos Integrados

Quadro 5 – Relação de Circuitos Integrados

• Outros Componentes

Cristal Q1 HS 16MhzConector SV1 PIN MA05-1Conector X1 USBConector X2 JACK

Quadro 6 – Relação de Componentes

IC1 AD7912IC2, IC3 MAX4051IC4 OPA2350U1 18F2550

Page 40: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxxvi

5 CAPITULO

5.1 FIRMWARE

O firmware descrito neste capítulo está relacionado com o

microcontrolador 18F2550, mostraremos os detalhes de programação e as

ferramentas utilizadas.

5.1.1 Software Utilizado

Para programar o firmware usamos o software PCWH 4.013, da empresa

CCS (Custom Computer Service), que faz a compilação em linguagem C,

suportando as famílias dos microcontroladores da Microchip de 12 bits, 14 bits e

16bits.

O software inclui várias funções e rotinas pré-definidas que permitem ao

programador uma maior agilidade na elaboração dos programas.

Figura 14 - Tela Inicial do CCS - PCWH

5.1.2 Programador Utilizado

A transferência do firmware para o microcontrolador foi realizada com o

auxílio do programador PICPlus. Possui as mesmas características eletrônicas do

programador JDM, figura 15, não precisando de fonte de alimentação externa,

Page 41: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxxvii

aproveitando o recurso existente no microcontrolador de programação em baixa

tensão (LVP).

Figura 15 - Esquema Eletrônico do Programador JDM

O programador PICPlus faz as seguintes conexões com o microcontrolador

via porta serial:

• Pino 1 (VDD) do conector ICSP alimenta o PIC no pino 20 (VDD) e habilita

programação em baixa tensão no pino 26 (PGM).

• Pino 2 (PGD) do conector ICSP faz a programação de dados com o PIC no

pino 28 (PGD).

• Pino 3 (VSS) do conector ICSP alimenta o PIC nos pinos 8 (VSS) e 19 (VSS).

• Pino 4 (VPP) do conector ICSP conecta a tensão de programação do PIC no

pino 1(VPP).

• Pino 5 (PGC) do conector ICSP conecta o clock de programação do PIC no

pino 27 (PGD)

Page 42: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxxviii

Figura 16 - Programador ICSP

5.1.3 Programacão do Microcontrolador

O PIC18F2550 possui uma arquitetura baseada em acumulador (o

registrador W), todas as instruções lógicas e aritméticas são referenciadas à ele. Os

registradores são divididos em duas categorias: especiais (SFR) e de propósitos

geral (GPR).

A maior parte dos SFRs são usados para configurar e usar os diversos

periféricos disponíveis. O registrador de STATUS sinaliza condições especiais

ocorridas durante as operações.

Os principais registradores configurados para nosso projeto foram os

relacionados às definições de clock (CONFIG1L, CONFIG1H, OSCCON), nas

definições da USB (UCON, UCFG, USTAT, UADDR, UFRMH:UFRML), nas

definições de SPI (SSPSTAT, SSPCON1) e na configuração de portas como entrada

e saída (TRISA, TRISB). A programação de cada registrador é feita movendo-se um

valor equivalente ao valor binário que represente as condições necessárias para

cada função ou configuração.

Page 43: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xxxix

Figura 17 - Microcontrolador 18F2550

O quadro abaixo mostra as funções dos pinos utilizados no PIC18F2550.

Pino Função Descrição

1MCRL Entrada de reset, em nível baixo reseta o sistemaVpp Entrada de tensão da programação

2 AN0 Entrada analógica 03 AN1 Entrada analógica 14 RA2 Digital i/o5 RA3 Digital i/o6 RA4 Digital i/o7 RA5 Digital i/o8 Vss Referência à terra para a lógica e os pinos de i/o9 OSC1 Entrada do oscilador de cristal ou entrada de clock externo

10 OSC2 Conecta o cristal ou ressonador 11 RC0 Digital i/o12 RC1 Digital i/o14 Vusb Regulador de tensão interno do USB 3.3V15 D - Linha diferencial negativa do USB (input/output)16 D+ Linha diferencial positiva do USB (input/output)19 Vss Referência à terra para a lógica e os pinos de i/o

Page 44: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xl

20 Vdd Fonte positiva para a lógica e os pinos de i/o26 PGM Pino que permite a programação em baixa tensão ICSP27 PGC Clock de programação ICSP28 PGD Pino de dados da programação ICSP

Quadro 7 – Pinos Utilizados no PIC

5.1.4 Descrição do Firmware

Faremos uma breve descricao dos pontos principais do firmware que foi

compilado em linguagem “C”. A rotina completa encontra-se no Anexo B. Os

comandos serao mostrados em formatação itálico e negrito.

Comecamos fazendo a chamada do arquivo de definicao de todos os

registradores enderecados para o 18F2550, existente no banco de dados do

compilador CCS: #include <18F2550.h

Fazemos a configuracao dos fusíveis:

HSPLL - oscilador de cristal de alta frequencia com PLL habilitado.

NOWDT - watchdog desabilitado.

NOPROTECT - proteção de codigo desabilitada.

LVP – programacao em baixa tensão habilitada.

DEBUG - RB6 e RB7 dedicados para InCircuitDebug

USBDIV - clock USB do 96MHz PLL/2

PLL5 - cristal de 20MHz PLL prescaler /5

CPUDIV1-clock do núcleo 96MHz PLL/2

VREGEN - regulador interno de tensão USB habilitado

#fuses

HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREG

EN

Ativamos o EndPoint1 para as transferencias IN Bulk/Interrupt

#define USB_EP1_TX_ENABLE USB_ENABLE_BULK

Ativamos o EndPoint1 para as transferencias OUT Bulk/Interrupt

#define USB_EP1_RX_ENABLE USB_ENABLE_BULK

Page 45: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xli

Determinamos o tamanho de 4 bytes reservado para o Buffer Tx EndPoint1

#define USB_EP1_TX_SIZE 4

Determinamos o tamanho de 3 bytes reservado para o Buffer Rx EndPoint1

#define USB_EP1_RX_SIZE 3

Fazemos a inclusão das bibliotecas USB do compilador CCS para o hardware

18F2550, configuração da USB e descritores:

#include <pic18_usb.h>

#include <PicUSB.h>

#include <usb.c>

Configuramos as entradas analógicas do conversor A/D:

setup_adc_ports(AN0_TO_AN1)

Inicializamos o USB: usb_init()

Habilitamos os periféricos e interrupções: usb_task()

Esperamos que o Pic seja enumerado pelo windows:

usb_wait_for_enumeration()

Fazemos a seleção do canal, aguardamos 10µs para configurar, iniciamos a

leitura do canal A0 e enviamos o pacote de dados de 4 bytes para a USB

set_adc_channel(0); delay_us(10); entrada_0 = read_adc();

usb_put_packet(1,envia,4,USB_DTS_TOGGLE)

Page 46: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xlii

6 SOFTWARE

Apresentaremos o software desenvolvido para a interface gráfica bem como

detalhes do driver utilizado para a instalação do dispositivo USB no

microcomputador.

6.1.1 Software Utilizado

A programação da interface gráfica foi desenvolvida no Visual Basic 6.0,

rodando em qualquer microcomputador com sistema operacional Windows.

O Visual Basic estrutura o programa em varias seções, oferece uma séria

de opções sobre o que desejamos criar, podendo ser: um executável, uma DLL, um

ActiveX, etc, como mostrado na figura 18. Usaremos somente "standard EXE" que é

o usual para criação de programas executáveis.

Figura 18 - Opções de criação do Visual Basic

O Visual Basic fornece muitas possibilidades de desenhar gráficos,

geralmente os gráficos são feitos através dos objetos “Printer “, “Form” ou “Picture”.

Eles representam a superfície as quais os gráficos podem ser aplicados. Neste

aplicativo nos usamos o objeto “Form” como tela base e o objeto “Picture”, para

plotarmos o gráfico dos sinais.

Page 47: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xliii

6.1.2 Estruturação do Código

Cada objeto colocado no formulário , “Form”, é dotado de uma janela de

propriedades que permite configurar o mesmo. Também possui eventos, e baseados

nestes eventos criamos nosso programa na janela de codificação.

O programa inicia com a declaração das variáveis gerais que serão usadas

em várias sub-rotinas, e dentro destas existe a declaração das variáveis locais.

A seguir apresentaremos as principais partes da rotina com comentários

dos pontos mais importantes. Os comandos serao mostrados em formatação itálico

e negrito . A rotina completa encontra-se no Anexo C.

• Rotina de início

Pressionando o botão de comando cmdCiclo iniciamos o programa que

executa continuamente as sub-rotinas DoEvents, cmdEntradas através dos

comandos de laço Do e Loop.

Private Sub cmdCiclo_Click() Do DoEvents cmdEntradas_Click cmdAnalogicas_Click LoopEnd Sub

• Rotina de leitura analógica

Primeiramente testa se o pipes de comunicação myOutPipe e myInPipe

estão configurados, então atribui valor 4 para o Send_Buf(0) , se houver

erro no processo, mostra a mensagem de "Falha na leitura analógica",

caso contrário transfere os valores dos canais para a variável

lblAnalogica.

If (myOutPipe <> INVALID_HANDLE_VALUE) And (myInPipe <> INVALID_HANDLE_VALUE) Then

Send_Buf(0) = 4 If (Send_Receive(Send_Buf, 1, Rec_Buf, 4, 1000, 1000) <> 1) Then MsgBox "Falha na leitura analógica" Else For i = 0 To 1 lblAnalogica(i).Caption = Rec_Buf(i) Next i End If End If

Page 48: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xliv

• Rotina de plotagem

Começa com a definição da escala da área de plotagem com Picture1.Scale,

em seguida identifica em qual posição encontra-se o seletor de canal, Select

Case Slider1.Value. Neste ponto temos três opções de canais, para CH1 e

CH2 corresponde ao Case 0, somente CH1 corresponde ao Case 1, somente

CH2 corresponde ao Case 2 . Selecionado a opção correta, inicia a plotagem

com o comando Picture1.Line , interligando cada ponto amostrado com linhas,

incrementando a variável X2 ate atingir o limite estabelecido na escala com a

variável vetorhoriz . O processo se repete para os dois canais e ao final de

cada plotagem a tela e limpa para a nova plotagem

Picture1.Scale (0, 255)-((vetorhoriz), -1)Select Case Slider1.Value

Case 0 For i = 0 To 1 If i = 0 Then Picture1.Line (x1, aux)-(x2, Rec_Buf(i)), vbRed aux = Rec_Buf(i) x1 = x2 x2 = x1 + 1 Else Picture1.Line (x12, aux2)-(x22, Rec_Buf(i)), vbGreen aux2 = Rec_Buf(i) x12 = x22 x22 = x12 + 1 End If If x2 = (vetorhoriz) Then x2 = 0 x1 = 0 x12 = 0 x22 = 0 Picture1.Cls End If qtz(i) = Rec_Buf(i) Next i

• Rotina de conversão para valores de tensão

Inicia com a seleção do fator de conversão correspondente a cada uma das

posições do seletor de escalas Select Case Slider. Com o FATOR

Page 49: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xlv

determinado, os valores de tensão instantânea iblVinst , tensão máxima

iblVmax e tensão mínima iblVmin do quadro são caculados.

For i = 0 To 1 Select Case Slider(i).Value Case 0 FATOR = 0.196 Case 1 FATOR = 0.078 Case 2 FATOR = 0.0391 Case 3 FATOR = 0.0195 Case 4 FATOR = 0.0078 Case 5 FATOR = 0.0039 Case 6 FATOR = 0.00195 Case 7 FATOR = 0.00078 End Select lblVinst(i) = ((qtz(i) - 128) * FATOR) max(i) = lblVinst(i) min(i) = lblVinst(i) If max(i) > lblVmax(i) Then lblVmax(i) = max(i) End If If min(i) < lblVmin(i) Then lblVmin(i) = min(i) End If Next i

6.1.3 Interface Gráfica

A visualização gráfica foi desenvolvida com base na tela de um

osciloscópio convencional, de forma simplificada, incluindo algumas funções básicas

de seleção, como o seletor de escalas vertical e horizontal, seletor do canal de sinal

ativo e a visualização dos valores medidos.

Page 50: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xlvi

Figura 19 - Tela do USBSCOPE

Na figura 19, e mostramos a tela do USBSCOPE com as seguintes

funções:

1) Botão ON inicia a visualização gráfica e o botão OFF encerra o

aplicativo gráfico.

2) Seletor de escala vertical para os canais 1 e 2, com uma faixa de

0,02 V a 0,5 V por divisão.

3) Seleção de escala horizontal em segundos por divisão.

4) Seletor de canais com três opções, CH1 – CH2 para visualização

simultânea dos canais 1 e 2, CH1 para visualizar somente o canal 1

e CH2 para visualizar somente canal 2.

5) Indicador dos valores de tensão instantânea, tensão máxima e

tensão mínima do quadro atual de plotagem, para os canais 1 e 2.

6) Opção de escolha da visualização gráfica, no modo dinâmico a tela

será constantemente atualizada e no modo estático o gráfico fica

congelado na plotagem atual da tela.

7) Tela de visualização gráfica dos canais 1 e 2, com dez divisões no

eixo “X” e no eixo “Y”.

Page 51: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xlvii

6.1.4 Driver do Dispositivo USB

No inicio dos estudos da parte de comunicação USB, constatamos que o

assunto envolvia conhecimentos mais aprofundados do protocolo gerenciador da

comunicação. O desenvolvimento do driver seria, com certeza, um desafio

extremamente interessante, mas envolveria um tempo de pesquisa muito maior do

que estava planejado em nosso cronograma.

Buscamos como alternativa, um software que simplifica bastante o

desenvolvimento, o EasyHID. Este gera a base do código fonte tanto no lado do

microcontrolador em linguagem “C”, quanto no lado do computador em Visual Basic.

O dispositivo USB seria reconhecido automaticamente pelo Windows como um

Dispositivo de Interface Humana (HID), não sendo necessário desenvolver driver

especiais para a aplicação.

A Microchip também disponibiliza em seu site, o driver para dispositivos

HID, relatando uma limitação na velocidade de transferência de 64 kB/s. Existe

também, outra opção de driver customizado que permite a comunicação USB sem a

limitação de velocidade do anterior, o qual foi adotado em nosso projeto. O driver faz

parte do pacote de instalação “MCHPFSUSSB_Setup”, que inclui a biblioteca

“mpusbapi.dll”, necessária para intermediar a nossa interface gráfica em Visual

Basic com o driver “mchpusb” do firmware do microcontrolador.

Page 52: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xlviii

7 CONCLUSÕES E PERSPECTIVAS

Neste trabalho foi desenvolvido um dispositivo de aquisição de dados

analógicos através da interface USB, visando a uma utilização semelhante à de um

osciloscópio digital.

O protótipo envolvendo a comunicação USB mostrou-se um grande desafio

mas ao mesmo tempo, extremamente interessante, sendo de grande valia para um

futuro aprofundamento nos estudos deste protocolo de comunicação, que é

atualmente um dos principais para transferência de dados entre microcomputadores

e periféricos. No decorrer do projeto tivemos contato com vários softwares,

proporcionando o aprendizado de linguagens de programação como “assembler”,

“C” e “Visual Basic”, além do conhecimento dos recursos a da grande versatilidade

disponíveis em um microcontrolador com interface USB.

Obteve-se sucesso na maioria dos itens especificados inicialmente, a saber:

desenvolvimento do protótipo funcional em dimensões reduzidas (formato

pen drive)

desenvolvimento do firmware do microcontrolador

desenvolvimento da interface gráfica no microcomputador

programação do microcontrolador via interface serial

aquisição de sinais analógicos em 2 canais e transferência para o

microcomputador via interface USB

seleção das escalas de tensão via software de controle

A taxa de amostragem de 1 MSPS prevista inicialmente não foi conseguida

devido à utilização do conversor A/D interno do PIC, que é limitado a taxas de

amostragem da ordem de 60 kSPS. O controle da base de tempo foi efetuado

unicamente no software em Visual Basic, o que limita o número de escalas

utilizadas e reduz a taxa de amostragem máxima. Estas limitações são

relativamente simples de serem contornadas, porém exigiriam um maior tempo de

desenvolvimento.

O protótipo desenvolvido pode ter a sua característica de velocidade de

conversão melhorada se forem implementadas memórias intermediárias entre o

Page 53: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

xlix

conversor A/D externo e o PIC, com velocidades de clock compatíveis com a taxa de

transferência e conversão requeridas.

Sugere-se que o circuito eletrônico seja montado em uma placa que

permita isolar os sinais analógicos dos digital, reduzindo assim interferências e

possibilitando aumento da resolução do conversor A/D e melhoria da relação sinal

ruído.

Faz-se necessário implementar uma proteção contra picos de tensão acima

do valor tolerado pelo circuito, nas entradas dos canais.

A interface gráfica poderá ser otimizada com outras funções e análises do

sinal encontradas nos osciloscópios comerciais (FFT, cálculo de parâmetros dos

sinais, médias, etc), tornando-o mais versátil.

Page 54: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

l

REFERÊNCIAS BIBLIOGRÁFICAS

ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 6023: informação e documentação: citações em documentos: apresentação. Rio de Janeiro, 2002.

ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 10520: informação e documentação: referências: elaboração. Rio de Janeiro, 2002.

ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 14724: informação e documentação: trabalhos acadêmicos: apresentação. Rio de Janeiro, 2002.

MATIC, NEBOJSA, Basic for PIC microcontroller. 2003

LÓPEZ, ANDRÉS CÁNOVAS, MANUAL DE USUARIO DEL COMPILADOR PCW DE CCS.

USATEGUI, M. ÂNGELO, MARTINEZ, IGNÁCIO ÂNGULO, Microcontroladores PIC: Diseño práctico de aplicaciones., 3 ed, McGRAW – HILL

HELLEBUYCK, CKUCK, Programming PIC Microcontrollers with PicBasic. Editora Newnes.

CADSOFT COMPUTER, EAGLE: Easily Applicable Graphical Layout Editor – Manual V. 4.1. 2 ed, 2004

Universal Serial Bus Revision 2.0 specification. Disponível em 30/04/2007 no site http://www.usb.org/developers/docs/

Microcontroladores e informações. Disponível em 2/04/2007 no site http://www.microchip.com

Microcontroladores e informações. Disponível em 2/04/2007 no site http://www.ftdichip.com/

Microcontroladores e informações. Disponível em 2/04/2007 no site http://www.atmel.com/

Microcontroladores e informações. Disponível em 2/04/2007 no site http://www.cypress.com/index.html

Componentes semicondutores e informações. Disponível em 6/04/2007 no site http://www.analog.com/en/

Componentes semicondutores e informações. Disponível em 6/04/2007 no site http://www.national.com

Componentes semicondutores e informações. Disponível em 6/04/2007 no site http://www.ti.com

Page 55: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

li

Componentes semicondutores e informações. Disponível em 8/04/2007 no site http://www.semiconductors.philips.com

Programado para PIC e informações sobre ICSP. Disponível em 20/04/2007 no site http://www.jdm.homepage.dk/newpic.htm

Software EasyHID e informações sobre dispositivos de interface humana. Disponível em 8/05/2007 no site http://www.mecanique.co.uk/products/usb/easyhid.html

Projetos com PIC usando interface USB. Disponível em 10/05/2007 no site http://picmania.garcia-cuervo.com/USB_0_Desencadenado.htm

Projeto de Pablo Hoffman e Martin Szmulewicz de um osciloscópio USB. Disponível em 20/05/2007 no site http://pablohoffman.com/cgi-bin/twiki/bin/view/Oscusb/WebHome

Projetos com PIC usando interface USB. Disponível em 11/05/2007 no site http://www.hobbypic.com/

Códigos em Visual Basic par downloud. Disponível em 22/05/2007 no site http://usbee.com/download.htm

Informações sobre enumeração do protocolo USB. Disponível em 15/05/2007 no site http://www.usbdeveloper.com/UnderstandUSB/understandusb.htm

Tutorial de projetos com PIC e interface USB. Disponível em 18/05/2007 no site Disponível em http://www.electronicfr.com/usb.html

Projetos de criação de uma interface USB. Disponível em 18/05/2007 no site http://www.create.ucsb.edu/~dano/CUI/

Informações e links sobre PIC e USB. Disponível em 19/05/2007 no site http://www.bensherlock.co.uk/projects/gadgets/usb-pic

Informações sobre o bootloader para o PIC18F2550. Disponível em 22/05/2007 no site http://www.techsanctuary.com/node/64

Temas e links relacionados com osciloscópios.. Disponível em 10/06/2007 no site http://www.mikrocontroller.net/articles/USB_Oszilloskop

Page 56: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

lii

ANEXO A

Page 57: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

liii

ANEXO B// *************************************************************************// PicUSB.c// Realizado com o compilador CCS PCWH 4.013// *************************************************************************#include <18F2550.h>#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN#use delay(clock=48000000) // Cristal de 20MHz

// =========================================================================// Definicões para a biblioteca dinamica CCS. Estão explicados em usb.h// =========================================================================

#define USB_HID_DEVICE FALSE// Desabilitamos o uso das diretivas HID#define USB_EP1_TX_ENABLE USB_ENABLE_BULK// Ativa EP1(EndPoint1) para as transferencias IN Bulk/Interrupt#define USB_EP1_RX_ENABLE USB_ENABLE_BULK// Ativa EP1(EndPoint1) para as transferencias OUT Bulk/Interrupt#define USB_EP1_TX_SIZE 4// Tamanho reservado para o Buffer Tx EndPoint1#define USB_EP1_RX_SIZE 3// Tamanho reservado para o Buffer Rx EndPoint1

// =========================================================================// Includes das bibliotecas USB do compilador CCS.// =========================================================================

#include <pic18_usb.h> //Microchip PIC18Fxx5x Hardware para o CCS PIC USB Driver#include <PicUSB.h> //Configuração do USB e dos descritores para dispositivo#include <usb.c> //Handles usb ,tokens e descritores

// =========================================================================

#define LED0 PIN_C1 // PORTC.1 Led0 #define LED1 PIN_C0 // PORTC.0 Led1 #define LED2 PIN_A2 // PORTA.2 Led2 #define LED3 PIN_A5 // PORTA.5 Led3#define LED5 PIN_A4 // PORTA.4 Led0 #define LED6 PIN_A3 // PORTA.3 Led0

#define LED_ON output_high // Saida em 1#define LED_OFF output_low // Saida em 0

#define modo recibe[0] // Byte que indica o modo de operacao#define param1 recibe[1] // Primeiro parametro recebibdo#define param2 recibe[2] // Segundo parametro recebibdo

#define entrada_0 envia[0] // Byte a envíar en las entradas#define entrada_1 envia[1] // Byte a envíar en las entradas#define entrada_2 envia[2] // Byte a envíar en las entradas#define entrada_3 envia[3] // Byte a envíar en las entradas

#define ACENDE_LED 1 // Modo de eacender leds#define APAGA_LED 2 // Modo de apagar leds#define ENTRADAS 3 // Modo de ler as entradas#define ANALOGICAS 4 // Modo de ler as entradas analogicas

Page 58: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

liv

void main(void) // Programa Principal int8 recebe[3]; // Declaramos a variavel recibe com 3 bytes int8 envia[4]; // Declaramos a variavel envia com 4 bytes

set_tris_b(0x0F); // Nibble alto como saidas setup_adc_ports(AN0_TO_AN1); // configura entradas analogicas do conversor A/D setup_adc(ADC_CLOCK_INTERNAL); // configura clock interno para o ADC usb_init(); // Inicializamos o USB

usb_task(); // Habilita o periferico usb e as interrupções usb_wait_for_enumeration(); // Esperamos que o PicUSB seja configurado pelo PC

while (TRUE) // executa sempre (ciclo infinito) if(usb_enumerated()) // Se o PicUSB está configurado

if (usb_kbhit(1)) // Se o EndPoint de saida contem datos do PC usb_get_packet(1, recebe, 3); // esperamos o pacote de tamanho 3 bytes do EP1 // e o armazenamos na variavel recebe

if (modo==ACENDE_LED) // Modo acender Leds if (param1==1) LED_ON(LED0); // acendemos led 0 if (param1==2) LED_ON(LED1); // acendemos led 1 if (param1==3) LED_ON(LED2); // acendemos led 2 if (param1==4) LED_ON(LED4); // acendemos led 4 if (param1==5) LED_ON(LED5); // acendemos led 5 if (param1==6) LED_ON(LED6); // acendemos led 6

if (modo==APAGA_LED) // Modo Apagar Leds if (param1==1) LED_OFF(LED0); // Apagamos led 0 if (param1==2) LED_OFF(LED1); // Apagamos led 1 if (param1==3) LED_OFF(LED2); // Apagamos led 2 if (param1==4) LED_OFF(LED3); // Apagamos led 3 if (param1==5) LED_OFF(LED4); // Apagamos led 4 if (param1==6) LED_OFF(LED5); // Apagamos led 5 if (modo==ANALOGICAS) // Modo ler as entradas analógicas set_adc_channel(0); // Canal A0 delay_us(10); // Retardo entrada_0 = read_adc(); // Le o valor

set_adc_channel(1); // Canal A1 delay_us(10); // Retardo entrada_1 = read_adc(); // Le o valor

usb_put_packet(1,envia,4,USB_DTS_TOGGLE); // Enviamos o pacote de tamanho // 4 bytes do EP1 para o PC

Page 59: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

lv

ANEXO C

Option Explicit Dim vetor1(0 To 1000) As Integer Dim vetor2(0 To 1000) As Integer Dim vetorhoriz As Integer Dim qtz(0 To 1) As Integer Dim FATOR As Single Dim x1 As Integer Dim x2 As Integer Dim x12 As Integer Dim x22 As Integer Dim aux2 As Byte Dim aux As Byte

Private Sub ANA() Dim Send_Buf(0 To 64) As Byte Dim Rec_Buf(0 To 64) As Byte Dim i As Byte Dim j As Integer

If (myOutPipe <> INVALID_HANDLE_VALUE) And (myInPipe <> INVALID_HANDLE_VALUE) Then

Send_Buf(0) = 4 If (Send_Receive(Send_Buf, 1, Rec_Buf, 4, 1000, 1000) <> 1) Then MsgBox "Falha na leitura" Else Select Case Slider1.Value Case 0 For i = 0 To 1 If i = 0 Then Picture1.Line (x1, aux)-(x2, Rec_Buf(i)), vbRed aux = Rec_Buf(i) x1 = x2 x2 = x1 + 1 Else Picture1.Line (x12, aux2)-(x22, Rec_Buf(i)), vbGreen aux2 = Rec_Buf(i) x12 = x22 x22 = x12 + 1 End If If x2 = 400 Then x2 = 0 x1 = 0 x12 = 0 x22 = 0 Picture1.Cls End If qtz(i) = Rec_Buf(i) Next i Case 1 Picture1.Line (x1, aux)-(x2, Rec_Buf(0)), vbRed aux = Rec_Buf(0) x1 = x2 x2 = x1 + 1 If x2 = 400 Then x2 = 0 x1 = 0

Page 60: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

lvi

Picture1.Cls End If qtz(i) = Rec_Buf(i) Case 2 Picture1.Line (x12, aux2)-(x22, Rec_Buf(1)), vbGreen aux2 = Rec_Buf(1) x12 = x22 x22 = x12 + 1 If x22 = 400 Then x12 = 0 x22 = 0 Picture1.Cls End If qtz(i) = Rec_Buf(i) End Select End If End IfEnd Sub

Private Sub HORIZ() Select Case sldHor.Value Case 0 vetorhoriz = 1000 Case 1 vetorhoriz = 400 Case 2 vetorhoriz = 200 Case 3 vetorhoriz = 100 Case 4 vetorhoriz = 40 Case 5 vetorhoriz = 20 Case 6 vetorhoriz = 10 End Select End Sub

Private Sub cmdCiclo_Click() Dim i As Byte

For i = 1 To 6 Control_Leds 1, i Next i lblVmax(0) = -25 lblVmax(1) = -25 lblVmin(0) = 25 lblVmin(1) = 25 Do DoEvents ESCALA HORIZ ANA 'grafico LoopEnd Sub

Page 61: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

lvii

Private Sub cmdTerminar_Click() Unload Me EndEnd Sub

Private Sub Control_Leds(Comando As Byte, Dato As Byte) Dim Send_Buf(0 To 64) As Byte

If (myOutPipe <> INVALID_HANDLE_VALUE) And (myInPipe <> INVALID_HANDLE_VALUE) Then

Send_Buf(0) = Comando Send_Buf(1) = Dato If (Send(Send_Buf, 2, 1000) <> 1) Then MsgBox "Falha de Seleçao" End If End IfEnd Sub

Private Sub Form_Load() myInPipe = INVALID_HANDLE_VALUE myOutPipe = INVALID_HANDLE_VALUE OpenMPUSBDeviceEnd Sub

Private Sub ESCALA() Dim i As Byte Dim min(0 To 1) As Single Dim max(0 To 1) As Single

For i = 0 To 1 Select Case Slider(i).Value Case 0 FATOR = 0.196 Case 1 FATOR = 0.078 Case 2 FATOR = 0.0391 Case 3 FATOR = 0.0195 Case 4 FATOR = 0.0078 Case 5 FATOR = 0.0039 Case 6 FATOR = 0.00195 Case 7 FATOR = 0.00078 End Select lblVinst(i) = ((qtz(i) - 128) * FATOR) max(i) = lblVinst(i) min(i) = lblVinst(i) If max(i) > lblVmax(i) Then lblVmax(i) = max(i) End If If min(i) < lblVmin(i) Then lblVmin(i) = min(i) End If Next iEnd Sub

Page 62: USBSCOPE - Notícias [Engenharia Eletrica - UFPR] · Estudo dos Microcontroladores Definição do hardware Confecção da placa e montagem Testes e calibração Estudo do Software

lviii

Sub Slider_scroll(Index As Integer) Dim i As Byte For i = 0 To 1 Select Case Slider(i).Value Case 0 Control_Leds 1, (1 + (i * 3)) Control_Leds 1, (2 + (i * 3)) Control_Leds 1, (3 + (i * 3)) Case 1 Control_Leds 2, (1 + (i * 3)) Control_Leds 1, (2 + (i * 3)) Control_Leds 1, (3 + (i * 3)) Case 2 Control_Leds 1, (1 + (i * 3)) Control_Leds 2, (2 + (i * 3)) Control_Leds 1, (3 + (i * 3)) Case 3 Control_Leds 2, (1 + (i * 3)) Control_Leds 2, (2 + (i * 3)) Control_Leds 1, (3 + (i * 3)) Case 4 Control_Leds 1, (1 + (i * 3)) Control_Leds 1, (2 + (i * 3)) Control_Leds 2, (3 + (i * 3)) Case 5 Control_Leds 2, (1 + (i * 3)) Control_Leds 1, (2 + (i * 3)) Control_Leds 2, (3 + (i * 3)) Case 6 Control_Leds 1, (1 + (i * 3)) Control_Leds 2, (2 + (i * 3)) Control_Leds 2, (3 + (i * 3)) Case 7 Control_Leds 2, (1 + (i * 3)) Control_Leds 2, (2 + (i * 3)) Control_Leds 2, (3 + (i * 3)) End Select Next iEnd Sub