94
UNIVERSIDADE FEDERAL DO PARANÁ KLEITON CHOCHI ZEMBOVICI MARCELO GONÇALVES FRANCO DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE DIGITAL VIA USB Curitiba – PR 2009

DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

  • Upload
    dothuy

  • View
    214

  • Download
    1

Embed Size (px)

Citation preview

Page 1: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

UNIVERSIDADE FEDERAL DO PARANÁ

KLEITON CHOCHI ZEMBOVICI

MARCELO GONÇALVES FRANCO

DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E

CONTROLE DIGITAL VIA USB

Curitiba – PR

2009

Page 2: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

UNIVERSIDADE FEDERAL DO PARANÁ

KLEITON CHOCHI ZEMBOVICI

MARCELO GONÇALVES FRANCO

DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E

CONTROLE DIGITAL VIA USB

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 Eletricista.

Orientador: Eduardo Parente Ribeiro.

Curitiba – PR

2009

Page 3: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

1

AGRADECIMENTOS

Agradecemos a todos que nos incentivaram a fazer este trabalho,

trazendo-nos força e confiança para que não desanimássemos em nenhum

instante durante a execução deste trabalho.

Agradecemos ao profo. Dr. Eduardo Parente Ribeiro do Departamento de

Engenharia Elétrica da Universidade Federal do Paraná pela sugestão do tema

e pelo apoio dado sempre que precisamos, orientando o projeto e indicando

fontes de pesquisas para o desenvolvimento deste.

Agradecemos também ao profo. M.Sc. Ademar Luiz Pastro e ao profo. Dr.

Gideon Villar Leandro do Departamento de Engenharia Elétrica da

Universidade Federal do Paraná pelas críticas e sugestões dadas na

apresentação parcial do projeto.

Agradecemos ao nosso grande amigo Luis pela força e ajuda durante o

desenvolvimento do software, e ao Eng. Jefferson da Henry pelo empréstimo

dos microcontroladores.

Também agradecemos aos fabricantes de componentes MAXIM e

MICROCHIP por terem nos disponibilizado amostras dos componentes, sem os

quais não conseguiríamos realizar este projeto.

Não poderíamos esquecer de agradecer às nossas famílias e amigos,

que estiveram sempre ao nosso lado e que compreenderam nossa ausência

em alguns momentos, com a certeza de que tudo isso era preciso para o

sucesso deste trabalho.

Acima de tudo, agradecemos um ao outro pelo empenho e dedicação

dados a este trabalho, na certeza de que estaríamos fazendo o possível para o

sucesso deste projeto.

Page 4: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

2

RESUMO

O dispositivo para aquisição de sinais e controle digital apresentado neste

trabalho é um protótipo que se assemelha a um osciloscópio digital, utilizado

para captar sinais, digitalizá-los e enviá-los para o computador através da

comunicação USB. O dispositivo possui dois canais de 8 bits independentes,

taxa de amostragem variável, oito escalas de amplitude e controle digital para

dois dispositivos externos. O hardware consiste de um estágio amplificador de

dois canais e com ganho variável, dois multiplexadores para seleção deste

ganho e um microcontrolador, responsável pelo tratamento do sinal, pela

seleção do ganho do AmpOp através do controle do MUX, e pela comunicação

com o computador. O firmware do microcontrolador foi elaborado em

linguagem C. O software da interface gráfica foi elaborado em Delphi,

apresentando uma tela que lembra a de um osciloscópio convencional.

Palavras-Chave

Osciloscópio USB

PIC18F2550

Comunicação USB

Page 5: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

3

ABSTRACT

The device for signal acquisition and digital control presented in this work is a

prototype that resembles a digital oscilloscope,used to capture signals, scan

them and send them to your computer through the USB communication. The

device has two independent channels of 8 bits, variable sample rate, eight

amplitude scales and digital control for two external devices. The hardware

consists of a stage and two-channel amplifier with variable gain, two

multiplexers to select the gain and a microcontroller, which is the responsible for

the signal treatment, for the selection of the AmpOp gain through MUX control,

and also for the communication with the computer. The microcontroller´s

firmware was developed in language C. The software's graphical interface was

developed in Delphi, displaying a screen that resembles that of a conventional

oscilloscope.

Key wordsUSB oscilloscope

PIC18F2550

USB communication

Page 6: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

4

LISTA DE ABREVIATURAS E SIGLAS

AMPOP - Amplificador Operacional

BNC - Conector Naval Britânico (British Naval Connector)

CAD - Conversor Analógico Digital

CI’s - Circuitos Integrados

CMOS - semicondutor metal-óxido complementar (complementary

metal oxide semiconductor)

EEPROM - Memória Programável e Apagável Eletricamente

(Electrically Erasable Programmable Read Only Memory)

GPR - Registrador de Propósito Geral (General Purpose Register)

HID - Dispositivo de Interface Humana (Human Interface Device)

ICSP - Programação Serial no Circuito (In-Circuit Serial

Programming™)

kbps - Kilo-bits por Segundo (Kilo-bits per second)

kSPS - Kilo-amostras por Segundo (Kilo-Samples per Second)

LSB - Bit menos significativo (Least significant Bit)

LVP - Programação em Baixa Tensão (Low Voltage

Programming)

MAC - Controle de Acesso ao Meio (Media Access Control)

Mbps - Megabits por Segundo (Mega bits per Second)

MMC - Comando de Gerenciamento Microescalonado (Micro-

scheduled Management Command)

MSB - Bit mais significativo (Most Significant Bit)

SCLK - Relógio da Serial (Serial Clock)

MSPS - Mega-amostras por Segundo (Mega-Samples per Second )

PIC - Controlador de Interface Programável (Programmable

Interface Controller)

ROM - Memória Somente de Leitura (Read Only Memory)

SFR - Registrador de Função Especial (Special Function

Register)

SMD - Componente de Montagem em Superfície (Superficial

Monting Device)

Page 7: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

5

SRAM - Memória Estática de Acesso Randônico (Static Random

Access Memory)

TDM - Multiplexação por Divisão de Tempo (Time division

Multiplexing)

TTL - Lógica Transístor-Transístor (Transistor-Transistor Logic)

USB - Barramento Serial Universal (Universal Serial Bus)

WUSB - Wireless USB

Page 8: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

6

LISTA DE FIGURAS

FIGURA 1 – TOPOLOGIA USB..........................................................................19

FIGURA 2 – TOPOLOGIA DO WIRELESS USB...............................................20

FIGURA 3 – TIPOS DE CONECTORES USB...................................................20

FIGURA 4 – TIPOS DE CONECTORES USB...................................................21

FIGURA 5 – TIPOS DE CONECTORES USB...................................................21

FIGURA 6 – TIPOS DE ADAPTADORES USB..................................................22

FIGURA 7 – TIPOS DE ADAPTADORES USB..................................................22

FIGURA 8 – TIPOS DE ADAPTADORES USB..................................................23

FIGURA 9 – CORTE TRANSVERSAL DO CABO USB.....................................23

FIGURA 10 – MODELO DE HUB USB..............................................................31

FIGURA 11 – CONVERSOR ANALÓGICO DIGITAL........................................33

FIGURA 12 – CIRCUITO BÁSICO DE UM AMPOP..........................................33

FIGURA 13: DIAGRAMA DO DISPOSITIVO COM COMUNICAÇÃO USB E

CONVERSOR ANALÓGICO/DIGITAL...............................................................34

FIGURA 14: DIAGRAMA DE BLOCOS DO CONVERSOR

ANALÓGICO/DIGITAL........................................................................................35

FIGURA 15 – LAYOUT DAS TRILHAS..............................................................40

FIGURA 16 – LAYOUT DOS COMPONENTES.................................................41

FIGURA 17 – LAYOUT DAS TRILHAS DAS PLACAS DE CORREÇÃO..........42

FIGURA 18 – LAYOUT DOS COMPONENTES DAS PLACAS DE CORREÇÃO

-- -43

FIGURA 19 – PROTÓTIPO NO MONTADO NO INTERIOR DA CAIXA...........43

FIGURA 20 – VISTA SUPERIOR DA CAIXA.....................................................44

FIGURA 21 – VISTA SUPERIOR ESQUERDA DA CAIXA................................44

FIGURA 22 – VISTA SUPERIOR DIREITA DA CAIXA......................................45

FIGURA 23 – TELA DE INTERFACE DO PCWHD...........................................48

FIGURA 241 - ESQUEMA ELETRÔNICO DO PROGRAMADOR ...................49

FIGURA 25 – GRAVADOR DO PIC...................................................................49

FIGURA 26 – TELA DE INTERFACE DO PICPGM DEVELOP. PROGRAMMER

V1.0.1.5...............................................................................................................50

FIGURA 27 - MICROCONTROLADOR 18F2550 .............................................51

Page 9: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

7

FIGURA 28 – FLUXOGRAMA DO FIRMWARE.................................................52

FIGURA 29 – TELA DE INTERFACE GRÁFICA DO BORLAND DELPHI

SECOND EDITION VERSÃO 7.2.......................................................................55

FIGURA 30 – FLUXOGRAMA DO PROGRAMA EM DELPHI...........................60

FIGURA 31 – TELA DE INTERFACE GRÁFICA DO PROGRAMA FINAL........61

Page 10: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

8

LISTA DE QUADROS

QUADRO 1: RELAÇÃO DE RESISTORES UTILIZADOS.................................45

QUADRO 2: RELAÇÃO DE CAPACITORES UTILIZADOS..............................46

QUADRO 3: RELAÇÃO DE CIRCUITOS INTEGRADOS UTILIZADOS...........46

QUADRO 4: RELAÇÃO DOS DEMAIS COMPONENTES UTILIZADOS..........46

QUADRO 5 – PINOS UTILIZADOS NO PIC......................................................52

Page 11: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

9

SUMÁRIO

AGRADECIMENTOS...........................................................................................1

RESUMO.............................................................................................................2

ABSTRACT..........................................................................................................3

LISTA DE ABREVIATURAS E SIGLAS..............................................................4

LISTA DE FIGURAS............................................................................................6

LISTA DE QUADROS..........................................................................................8

SUMÁRIO............................................................................................................9

1. INTRODUÇÃO .............................................................................................. 11

1.1. OBJETIVO.................................................................................................11

1.1.1. OBJETIVO GERAL.................................................................................12

1.1.2. OBJETIVO ESPECÍFICO.......................................................................12

1.2. JUSTIFICATIVA.........................................................................................12

2. CONCEITOS ................................................................................................. 14

2.1. PRINCIPAIS CONCEITOS........................................................................14

2.1.1. OSCILOSCÓPIO....................................................................................14

2.1.2. USB.........................................................................................................15

2.1.2.1. HISTÓRICO.........................................................................................16

2.1.3. WIRELESS USB – WUSB......................................................................17

2.1.4. PRINCIPAIS CARACTERÍSTICAS DO USB.........................................17

2.1.5. TOPOLOGIA USB..................................................................................18

2.1.6. TIPOS DE CONECTORES E ADAPTADORES USB ...........................20

2.1.7. CABO USB.............................................................................................23

2.1.8. HOST USB..............................................................................................24

2.1.9. PROTOCOLO USB................................................................................25

2.1.10. ENUMERAÇÃO....................................................................................26

2.1.11. MODELO DE FLUXO DE DADOS.......................................................27

2.1.12. DISPOSITIVOS USB............................................................................29

2.1.13. DIGITALIZAÇÃO DE SINAIS...............................................................32

2.1.14. AMPLIFICAÇÃO DE SINAIS................................................................33

3. ARQUITETURA DO PROTÓTIPO ............................................................... 34

3.1. ANÁLISE DOS PRINCIPAIS COMPONENTES DO CIRCUITO...............35

Page 12: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

10

3.1.1. ESCOLHA DO MICROCONTROLADOR...............................................36

3.1.2. ESCOLHA DO MULTIPLEXADOR.........................................................37

3.1.3. ESCOLHA DO AMPLIFICADOR OPERACIONAL.................................38

4. CONCLUSÕES ............................................................................................. 63

4.1. PERSPECTIVAS.......................................................................................64

REFERÊNCIAS BIBLIOGRÁFICAS..................................................................65

REFERÊNCIAS PARA PESQUISA...................................................................66

ANEXO A - CRONOGRAMA DO PROJETO....................................................69

ANEXO B – DIAGRAMA ESQUEMÁTICO DO CIRCUITO...............................70

ANEXO C – DIAGRAMA ESQUEMÁTICO DO CIRCUITO DE TRATAMENTO

DE SINAIS..........................................................................................................72

ANEXO D – DIAGRAMA ESQUEMÁTICO DA FONTE EXTERNA..................73

ANEXO E – CÓDIGO FONTE DO FIRMWARE................................................74

ANEXO F – CÓDIGO FONTE DO SOFTWARE...............................................78

Page 13: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

11

1. INTRODUÇÃO

A medição e a análise de sinais são de fundamental importância para

muitos profissionais, principalmente na área de eletro-eletrônica. Esta medição

pode ser feita de diversas maneiras. Muitos são os dispositivos existentes para

realizar medições em circuitos elétricos ou eletrônicos, seja um simples

multímetro de bolso com seus recursos limitados ou um sofisticado

osciloscópio de bancada com suas várias funções especiais, ou ainda os

analisadores de espectro. Cada um dos equipamentos tem sua aplicação,

dependendo das necessidades de precisão, confiabilidade e custo, o usuário

pode optar pelo equipamento que satisfaça sua necessidade.

Quanto maior a complexidade do equipamento, confiabilidade, precisão,

quantidade de recursos e ainda a tecnologia utilizada, maior será o custo do

equipamento. Juntando a eletrônica e os recursos do computador, resolveu-se

desenvolver um dispositivo para análise de sinais, semelhante a um

osciloscópio, porém, de mais baixo custo.

O dispositivo para aquisição de sinais e controle digital via USB é um

dispositivo que captura os sinais a serem analisados através de pontas de

prova conectadas a entradas do tipo BNC, trata o sinal e envia através de uma

conexão USB para um microcomputador, onde, por meio de uma interface

gráfica, o sinal é então mostrado em uma tela, similar a de um osciloscópio

comum.

Este projeto foi baseado no trabalho de conclusão de curso dos

graduandos Leandro Silva Piecarz e Walter Luciano Espíndola, apresentado

em 2007 [1]. Partindo da idéia base buscou-se aprimorar e evoluir o dispositivo

apresentado por estes formandos de 2007.

1.1. Objetivo

O objetivo deste projeto é desenvolver um dispositivo para aquisição e

tratamento de sinais, e envio destes através de conexão USB para um

Page 14: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

12

computador que, previamente carregado com um software, mostrará os sinais

a serem analisados na tela.

Também incorporado ao projeto tem-se um controlador de dispositivos

através do computador, com saídas digitais para os equipamentos a serem

controlados.

1.1.1. Objetivo geral

O objetivo geral deste projeto é desenvolver um hardware e um software

na área de instrumentação e controle, voltado para a medição de sinais e o

controle de dispositivos externos, visando custo baixo e facilidade de uso.

1.1.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 pré-definido no

firmware em 32kSPS e oito escalas de amplitude variando de

0,02V a 25V.

• Desenvolver um firmware para a comunicação via USB e

digitalização do sinal.

• Desenvolver uma interface gráfica para que os sinais sejam

mostrados na tela do computador.

• Confeccionar o protótipo do dispositivo.

1.2. Justificativa

Várias são as motivações para o desenvolvimento deste projeto, dentre

as principais pode-se citar os seguintes:

• A utilização dos conhecimentos em eletrônica analógica e digital para

desenvolver o circuito.

Page 15: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

13

• A possibilidade de confeccionarmos a placa, visto que esta parte prática

é extremamente apreciada pelos membros da equipe.

• O desafio de desenvolver uma interface gráfica no computador, sendo

que nenhum dos membros da equipe tinha conhecimentos

aprofundados no assunto, tendo então que estudar e aprender mais

sobre isto.

• A possibilidade futura de comercialização, adequando o produto às

normas e evoluindo o protótipo com as possíveis correções e

sugestões.

Page 16: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

14

2. CONCEITOS

Nesta parte do trabalho será apresentado um breve resumo de conceitos

necessários para o entendimento da seqüência do projeto. Serão abordados

conceitos básicos sobre osciloscópios e suas principais funções, comunicação

via porta USB com suas principais características e protocolos, bem como

dispositivos que usam este tipo de comunicação. Também serão abordados os

temas de digitalização e amplificação de sinais.

2.1. Principais Conceitos

2.1.1. Osciloscópio

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

mostra sinais, contínuos ou alternados, elétricos no tempo. Um osciloscópio

pode ser usado para determinar diretamente o período ou a tensão de um

sinal, determinar indiretamente a freqüência de um sinal ou ainda para medir a

diferença de fase entre dois sinais periódicos.

Os sinais captados pelo osciloscópio são geralmente mostrados em uma

tela retangular de tamanho 10cmx8cm com divisões de 1cm² e, nos eixos X e Y

cada quadrado ainda possui subdivisões de 0,2cm o que facilita a leitura dos

sinais analisados.

Para realizar a captura dos sinais se faz necessário o uso de ponteiras

de prova adequadas para o modelo de osciloscópio usado. Geralmente essas

ponteiras são atenuadoras com escalas de atenuação de 1:1, 1:10 ou 1:100,

resposta em freqüência com escalas de 20MHz a 300MHz e conexão do tipo

BNC. As escalas de atenuação e resposta em freqüência dependem do modelo

da ponteira.

Os osciloscópios podem ser analógicos ou digitais, normalmente com

uma ou duas entradas de sinal e que permitem a visualização dos canais

separadamente ou simultaneamente.

As funções mais comuns encontradas nos osciloscópios são:

Page 17: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

15

• CH1 – mostra apenas o sinal do canal 1.

• CH2 – mostra apenas o sinal do canal 2 .

• ALT – mostra alternadamente varreduras completas de cada um

dos canais. Para que a atlernância não seja perceptível a

varredura deve apresentar um período inferior a 1/n da

persistência da retina do olho humano, onde n é o número de

canais amostrados. Para dois canais, por exemplo, um período

equivalente a 50Hz é suficiente.

• CHOP – a apresentação dos dois canais é efetuada em uma

única varredura completa do feixe de elétrons por partilha de

tempo. A comutação efetua-se a elevada freqüência, 100kHz, de

forma a garantir que a distância entre traços consecutivos seja

inferior ao diâmetro da mancha luminosa. Deste modo a

sequência de pequenos traços é percebida como uma linha

contínua. No entanto, se a freqüência de varredura for numa

freqüência mais baixa, pode-se observar um traço descontínuo.

• ADD – mostra a soma dos sinais presentes nos canais 1 e 2.

Também encontramos em um osciloscópio botões para seleção de

escalas de tempo e de amplitude do sinal. O ajuste da escala de amplitude é

independente para cada um dos canais e o ajuste da escala de tempo é

comum aos dois canais, em alguns modelos de osciloscópios ainda podemos

ter essa seleção da escala de tempo em separado para cada um dos canais.

[6], [7] e [8].

2.1.2. USB

Diversas características, como sua velocidade de transmissão, sua

versatilidade, sua facilidade de uso e sua confiabilidade, fazem do USB uma

interface perfeita para efetuar comunicação com os mais diversos periféricos,

desde um mouse até uma câmera digital, inclusive permitindo a leigos instalar

o seu próprio periférico no seu computador pessoal.

Page 18: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

16

2.1.2.1. Histórico

A versão 1.0 do padrão USB foi lançada em janeiro de 1996. No entanto,

ele só se tornou disponível para computadores pessoais com o lançamento da

versão “OEM Service Release 2” do Windows 95, no segundo semestre de

1996. O seu uso ainda era muito limitado, visto que não havia muitos

periféricos que utilizavam este barramento, e o suporte técnico desta versão

ainda possuía muitos erros. Por volta de 1998, a quantidade de periféricos

desenvolvidos com o padrão USB havia aumentado muito, e o lançamento do

Windows 98 e de sua versão subseqüente, o “Windows 98 Second Edition”,

que corrigiu alguns erros da anterior, permitiram que o USB se tornasse uma

interface bastante popular. Em setembro de 1998 foi lançada a versão 1.1 do

padrão USB. Ambas as versões (citadas em conjunto como USB 1.x) permitiam

duas velocidades, chamadas Low-Speed (1,5 Mbps) e Full-Speed (12 Mbps).

Com o aumento na popularidade do USB 1.x, tornou-se aparente a

necessidade de se aumentar a velocidade do barramento. Visto isso, foi

lançado em abril de 2000 a versão 2.0 do padrão USB, que introduziu uma

nova velocidade de transferência: Hi-Speed (480 Mbps). Este valor não foi

escolhido por acaso: pesquisas mostraram que para uma velocidade de

transmissão possibilitar compatibilidade reversa com as velocidades anteriores,

ela deveria ser 40 vezes maior do que a Full Speed. Esta nova velocidade

tornou o USB mais atrativo para periféricos como dispositivos de

armazenamento e impressoras.

Em dezembro de 2001, foi lançado um suplemento para o USB 2.0,

chamado USB On-The-Go, que permitiu a conexão direta entre periféricos, ao

contrário da implementação padrão, que exige a conexão do periférico a um

computador. E em maio de 2005, completou-se a especificação técnica de

outra extensão do USB, denominada Certified Wireless USB (ou,

simplesmente, Wireless USB), que permite que a transmissão USB seja

realizada sem fios. [2].

Page 19: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

17

2.1.3. Wireless USB – WUSB

O WUSB utiliza formatos de pacotes definidos na subcamada MAC

(Media Access Control – Controle de Acesso ao Meio) da camada enlace.

Existem quatro tipos básicos de pacote utilizados neste protocolo:

• Pacotes MMC (Micro-scheduled Management Command –

Comando de Gerenciamento Microescalonado): são pacotes de

controle da transmissão de rádio. Estes pacotes endereçam todos

os dispositivos da rede WUSB e são transmitidos utilizando

encapsulamento seguro de pacotes. Devem ser transmitidos

sempre pelo host da rede e à taxa de bits mais confiável do

protocolo, que é a taxa básica de sinalização da camada física.

• Pacotes de dados: estes pacotes podem ser transmitidos tanto

por um host como por um dispositivo e carregam dados

específicos da aplicação. Podem ser transmitidos a qualquer taxa

de bits que seja permitida pela implementação.

• Pacotes de “handshake”: são pacotes pequenos que indicam

sucesso das transações. Transmitidos sempre pelos dispositivos

da rede WUSB, são parte importante do protocolo, e por isso

devem ser transmitidos, assim como os pacotes MMC, à taxa de

bits mais confiável do mesmo.

• Pacotes de notificação: podem ser transmitidos apenas por

dispositivos e são utilizados para carregar informações de

notificação específicas para o host. [2].

2.1.4. Principais características do USB

O USB tem como principais características as seguintes:

• O computador atua como um host.

• Podem ser conectados ao host até 127 dispositivos, diretamente

ou através de hubs USB.

Page 20: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

18

• Cabos individuais USB podem ter até 5 metros; com hubs, os

dispositivos podem ficar até 30 metros de distância do host (o

equivalente a seis cabos).

• Com o USB 2.0, o barramento possui uma taxa máxima de

transferência de dados de 480 Mbps.

• Um cabo USB possui dois fios para energia (+5 volts e o fio terra)

e um par trançado para a condução dos dados.

• Nos cabos de energia, o computador poderá fornecer até 500 mA

de energia a 5 volts.

• Os dispositivos de baixa-potência (como o mouse) poderão puxar

a energia diretamente do barramento. Os dispositivos de alta-

potência (como impressoras) possuem fonte própria de

alimentação e exigem mínima energia do barramento. Os hubs

podem ter suas próprias fontes de energia para fornecer energia

aos dispositivos conectados a ele.

• Os dispositivos USB são hot-swappable (conectáveis "a quente"),

ou seja, podem ser conectados e desconectados a qualquer

momento.

• Os diversos dispositivos USB podem ser colocados no modo

sleep (hibernar) pelo computador host, quando o computador

entrar no modo de economia de energia. [2], [3], [4] e [5].

2.1.5. Topologia USB

O barramento USB possui uma topologia da forma de estrela em

camadas (tiered star). Neste tipo de topologia, um único PC (root) pode se

conectar a vários periféricos (partes que provêem funções ao sistema) e ainda,

a hubs (pontos de conexão, definidos como uma classe especial de

dispositivos no USB), que por sua vez conectam outros periféricos.

No centro de cada estrela, há um hub e cada ponto é um dispositivo que

se conecta a uma porta de um hub. Um hub típico pode possuir 2, 4 ou 7

portas. Um dispositivo (periférico) pode ainda ser um dispositivo composto,

Page 21: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

19

contendo um periférico e um hub (por exemplo, uma impressora conectada a

um host PC pode possuir portas USB, para que possamos “plugar” um cabo

para imprimir fotos diretamente de uma câmera digital ou ainda conectar outros

dispositivos). A cada dispositivo composto na rede é designado um endereço

único.

Figura 1 – Topologia USB

Fonte: http://www.pads.ufrj.br/~rapoport/usb/usb4.html

No USB, o host inicia uma transmissão de dados através dos

dispositivos conectados a ele através da alocação de slots de tempo a cada

dispositivo (Time division Multiplexing - TDM). As conexões entre um host e um

dispositivo lógico são ponto-a-ponto e dirigidas do host para o dispositivo. Além

disso, um host no USB pode fazer conexões lógicas com até 127 dispositivos.

O Wireless USB possui topologia semelhante ao do USB cabeado, onde

a diferença principal entre as duas é a ausência de hubs na não-cabeada. [2] e

[3].

Page 22: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

20

Figura 2 – Topologia do Wireless USB

Fonte: site http://www.gta.ufrj.br/grad/07_1/wusb/TopologiadoUSB.html

2.1.6. Tipos de conectores e adaptadores USB

2.1.6.1. Conectores

Figura 3 – Tipos de Conectores USB

Fonte: site http://www.gdhpress.com.br/hardware/leia/index.php?p=cap3-18

Page 23: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

21

Figura 4 – Tipos de Conectores USB

Fonte: site http://www.intel.com/support/pt/motherboards/desktop/sb/CS-023466.htm

Figura 5 – Tipos de Conectores USB

Fonte: site http://eletronline.blogspot.com/2009/02/universal-serial-bus-usb.html

Page 24: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

22

2.1.6.2. Adaptadores

Figura 6 – Tipos de Adaptadores USB

Fonte: site https://loja.tray.com.br/adm/editor/up/108972/1499_g.jpg

Figura 7 – Tipos de Adaptadores USB

Fonte: site www.atera.com.br/figuras/kitusb1399.GIF

Page 25: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

23

Figura 8 – Tipos de Adaptadores USB

Fonte: site http://www.gdhpress.com.br/hardware/leia/cap3-18_html_67a5b903.jpg

2.1.7. Cabo USB

O cabo USB é um cabo blindado que possui que possui internamente

outros quatro cabos, como na figura a seguir:

Figura 9 – Corte Transversal do Cabo USB

Fonte: site http://www.laercio.com.br/artigos/hardware/hard-051/hard-051c.htm

Page 26: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

24

Os cabos USB possuem no seu interior, 2 pares de fios. Um par é

trançado e formado por fios branco e verde ou, em alguns modelos, amarelo e

azul. Através desses dois fios trafegam os dados, no formato serial. Esses dois

sinais formam o que chamamos de par diferencial. Ao invés de ter um fio de

terra e outro de sinal, os dois levam o mesmo sinal, mas com polaridades

invertidas, portanto são chamados de D+ e D–. A vantagem do par diferencial

é a alta imunidade a ruídos elétricos e interferências em geral.

O cabo possui ainda os fios V+ (vermelho) e GND (preto ou marrom) em

cada segmento para distribuir energia aos dispositivos. V+ é nominalmente +5

V na fonte. 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 camada protetora de plástico.

O USB permite a utilização de segmentos de cabo variáveis de 0,5

metros até 5 metros, escolhendo-se um padrão adequado de condutores. Para

fornecer níveis de tensão de entradas garantidos e impedâncias apropriadas

nas terminações, são utilizadas terminações parciais no fim da cada cabo.

Estas terminações permitem a detecção da conexão e remoção em cada porta

e a diferenciação entre dispositivos de alta e baixa velocidade. [3], [4] e [5].

2.1.8. Host USB

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.

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.

Page 27: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

25

• 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. [3].

2.1.9. Protocolo USB

O USB é um barramento receptor (ou de contagem). 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 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

Page 28: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

26

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 (message).

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 buffer. A maioria dos tubos passa 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 das 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.

[3].

2.1.10. Enumeração

A enumeração é a atividade que identifica e atribui endereços únicos

para os dispositivos ligados ao barramento. Por permitir a conexão e remoção

de dispositivos em qualquer instante de tempo, a enumeração é uma atividade

ininterrupta para o software do sistema.

Além disso, a enumeração também inclui a detecção e o processo de

remoção de periféricos. [3].

Page 29: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

27

2.1.11. Modelo de 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 unidirecionais

ou bidirecionais. As transferências de dados realizam-se entre o software do

host e um endpoint 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.

Na arquitetura USB são 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, sem restrição de tempo. 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 de Dados por Interrupção: 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íncronas de Dados: Fluxo de dados constantes em

intervalos equivalentes. Ocupa uma quantidade pré-negociável da banda

de transmissão do barramento, com a distribuição de pulsos. Chamada

Page 30: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

28

também de transferência de correntes em tempo real (streaming real-

time transfers). [3].

2.1.11.1. Transferência de controle

Dados de controle são usados pelo software de sistema do USB para

configurar os dispositivos durante a primeira conexão destes. Outros drivers

podem ser escolhidos para utilizar transferências de controle em

implementações específicas. A distribuição de dados é perdida. [3].

2.1.11.2. Transferência do tipo bulk

Volume de dados, tipicamente, consiste em grandes quantidades destes,

assim como os usados em impressoras e scanners. Este tipo de dado é

seqüencial. Trocas de dados confiáveis são asseguradas por hardware

utilizando a detecção de erros do próprio. Vale lembrar também que 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. Esta é apenas garantida pelo melhor esforço, isto é, caso haja

possibilidade de transmissão mais rápida, esta será feita. [3].

2.1.11.3. Transferência de interrupção

Uma transferência pequena e limitada de, ou para, um dispositivo é

chamada de interrupção. 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.

Dados de interrupção consistem tipicamente de notificações de eventos,

caracteres ou coordenadas que são organizadas com um ou mais bytes. [3].

Page 31: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

29

2.1.11.4. Transferência isossíncrona

Dados isossíncronos são contínuos e em tempo real na sua criação e

distribuição. Informações relacionadas ao sincronismo são sugeridas pela taxa

fixa em que cada dado isossíncrono é recebido e transferido.

Este tipo de dado deve ser distribuído de acordo com a taxa de recepção

para que o seu sincronismo seja mantido. Além disso, a taxa de distribuição

deve ser sensível a atrasos nesta atividade. Para pipes isossíncronos a banda

de transmissão se baseia em amostras características das funções associadas.

Um exemplo típico de dado isossíncrono é a voz. Caso a taxa de

distribuição destes dados não seja mantida, irão ocorrer "saltos" na corrente de

dados. Ainda se o dado é distribuído na taxa apropriada pelo hardware USB,

atrasos de distribuição introduzidos por software podem degradar aplicações

que necessitam de transmissões em tempo real, como telefonia e áudio

conferências.

Correntes isossíncronas de dados são alocados em uma determinada

porção da banda de transmissão para assegurar que os dados serão

distribuídos na taxa desejada. [3].

2.1.12. Dispositivos USB

Dispositivos USB são divididos em diversas classes. Estes componentes

são necessários para carregar informações, auto-identificação e configurações

genéricas.

2.1.12.1. Caracterização de dispositivos

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 os

componentes. Todo componente USB suporta um canal especialmente

Page 32: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

30

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. A 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.

• Vendedores USB: O vendedor de dispositivos USB é livre para adicionar

qualquer informação desejada. [3].

2.1.12.2. Descrição dos dispositivos

Existem duas classes majoritárias de dispositivos: hubs e funções.

Somente os hubs possuem a característica de fornecer pontos adicionais de

conexão ao barramento. Funções propiciam um aumento de capacidade ao

host.

2.1.12.2.1. Hubs

Hubs são elementos chave na arquitetura plug and play do USB e

servem para simplificar a conectividade de acordo com as perspectivas dos

usuários, além de oferecer segurança a baixo custo e complexidade.

Fios concentrados constituem os hubs. Estes por sua vez ativam as

características de conexão do USB. Pontos de conexão são chamados de

portas. Cada hub converte um simples ponto de conexão em vários outros. A

arquitetura suporta a concatenação de hubs.

Page 33: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

31

A porta principal (upstream port) de um hub o conecta como o host.

Cada porta secundária (downstream port) permite a conexão de outro hub ou

função.

Os hubs podem detectar a conexão e a remoção de um dispositivo, tanto

de baixa quanto de alta velocidade, nas portas secundárias, além de distribuir

energia para estes.

Duas partes constituem um hub: o controlador e o repetidor. Este último

é um protocolo de mudança controlado entre as portas secundárias e a

primária. Também possui suporte de hardware para reiniciar e suspender a

transmissão de sinais. O controlador do host propicia aos registradores da

interface permitir a comunicação de, ou, para o host. Comandos de controle e

estados específicos permitem ao host configurar um hub, além de monitorar e

controlar as suas portas. [3].

Figura 10 – Modelo de Hub USB

Fonte: site http://www.pads.ufrj.br/~rapoport/usb/usb4.html

2.1.12.2.2. Funções

Uma função é um dispositivo que é capaz de transmitir ou receber dados

ou informações de controle do barramento, estando conectado, por um cabo, a

uma porta ou hub. Além disso, um pacote físico pode conter funções múltiplas

e possuir hosts embutidos. Estes são conhecidos como dispositivos compostos

e aparecem para o host como um hub com um ou mais dispositivos não-

removíveis.

Cada função contém informações de configurações que descrevem suas

capacitações e recursos exigidos. Antes de poder utilizar uma função, o host

Page 34: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

32

deve configurá-la Esta configuração inclui a alocação da banda de transmissão

e a seleção das opções específicas para a configuração da função.

Abaixo seguem alguns exemplos de funções:

• Um dispositivo localizador, como um mouse.

• Um dispositivo de entrada, como um teclado.

• Um dispositivo de saída, como uma impressora.

• Um adaptador de telefonia, como um ISDN. [3].

2.1.13. Digitalização de sinais

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

Conversor Analógico Digital (CAD), que forneça uma aproximação digital do

sinal original, como mostrado na figura 11. A aproximação digital é registrada

em “n” bits e a variação de amplitude do sinal digitalizado pode ser reduzida

para uma resolução de, no máximo, uma parte de 2n.

Exemplo: para um conversor de 8 bits que pode converter sinais

analógicos entre 0V e 5V, a resolução do conversor A/D é dada pelo valor

máximo do sinal analógico dividido pelo valor máximo de combinações de bits.

Neste caso a resolução seria 5 dividido por 28, o que resultaria numa resolução

de 0,01953125V ou 19,53125mV.

A base de tempo determina a velocidade com que podemos amostrar a

forma de onda e varia com o tipo de CAD. 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.

[1], [9] e [10].

Page 35: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

33

Figura 11 – Conversor Analógico Digital

Fonte: site http://www.universiabrasil.net/mit/6/6071/PDF/f02-lec20a_val.pdf

2.1.14. Amplificação de sinais

Como os sinais analisados podem assumir amplitudes muito baixas, da

ordem de mili ou micro-volts, neste projeto é usado um amplificador de sinais, o

TL072, responsável por amplificar o sinal amostrado para valores adequados à

análise.

A amplificação do sinal depende do ganho do amplificador operacional, e

este ganho é regulado através do valor do resistor R2.

Figura 12 – Circuito Básico de um AmpOp

Fonte: Datasheet do componente TL072

Page 36: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

34

3. ARQUITETURA DO PROTÓTIPO

A arquitetura definida para este protótipo foi a de um microcontrolador

com comunicação via USB e conversor analógico/digital internos.

Para a placa foi definido o layout de apenas uma face de trilhas.

Na arquitetura do microcontrolador com conversor analógico/digital

interno, o microcontrolador é o responsável em converter o sinal analógico

capturado por qualquer uma das entradas do dispositivo em digital. Como a

amplitude do sinal capturado pode ser variável, é usado um amplificador para

cada entrada do dispositivo, com ganho variável ajustado pelo

microcontrolador. O ganho é definido através de seleção feita pelo usuário no

software, esta seleção gera um sinal que vai do PIC para o multiplexador,

selecionando o resistor correspondente ao ajuste de escala desejado, e este

resistor por sua vez, é quem define o ganho do amplificador.

A comunicação e o envio de sinais entre o dispositivo e o computador

são feitos através da comunicação USB do microcontrolador com o

computador.

Figura 13: Diagrama do dispositivo com comunicação USB e conversor

analógico/digital

Fonte: ttcsope

Page 37: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

35

Figura 14: Diagrama de blocos do conversor analógico/digital

Fonte: Datasheet do microcontrolador PIC18F2550

3.1. Análise dos Principais Componentes do

Circuito

Os principais componentes deste circuito, e que serão analisados a

seguir, são:

• Microcontrolador

• Multiplexador

• Amplificador Operacional

Page 38: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

36

3.1.1. Escolha do microcontrolador

Foram analisados microcontroladores dos fabricantes ATMEL,

MICROCHIP e TEXAS INSTRUMENTS. As pesquisas foram feitas através das

ferramentas de auxílio para verificação de modelos disponíveis no site de cada

fabricante, nestas ferramentas coloca-se os dados que interessam para o

projeto e a ferramenta mostra o que o respectivo fabricante tem que possua as

características desejadas.

No site da ATMEL encontra-se o microcontrolador AT91CAP7E

Características principais:

• 256 kbytes de memória ROM interna• 160 kbytes de memória SRAM interna• USB 2.0• Conversor analógico/digital de 10-bits• Clock variável de 8 a 16 MHz• Programação “in circuit”• Encapsulamento LFBGA com 225 pinos

No site da TEXAS INTRUMENTS não foi obtido nenhum

microcontrolador que apresentasse as características desejadas (USB e CAD).

Já no site da MICROCHIP foram encontradas 2 opções de

microcontroladores, PIC18F2550 e PIC18F4550, ambos continham as

principais características desejadas, comunicação via USB e conversor

analógico/digital.

Características principais:

- PIC18F2550:

• USB 2.0• Clock variável de 8 a 48 MHz• Conversor analógico/digital de 10-bits• Programação “in circuit”

Page 39: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

37

• 32 kbytes de memória FLASH• 2048 bytes de memória SRAM• 256 bytes de memória EEPROM• 24 portas de entrada/saída• Encapsulamentos PDIP e SOIC de 28 pinos

- PIC18F4550:

• USB 2.0• Clock variável de 8 a 48 MHz• Conversor analógico/digital de 10-bits• Programação “in circuit”• 32 kbytes de memória FLASH• 2048 bytes de memória SRAM• 256 bytes de memória EEPROM• 35 portas de entrada/saída• Encapsulamentos PDIP de 40 pinos e TQFP e

QFN de 44 pinos

Dentre estes citados foi escolhido o PIC18F2550, pois além de ter as

características desejadas, dois exemplares foram emprestados à equipe pelo

engenheiro Jefferson Chochi Zembovici da empresa HENRY. Posteriormente

foi conseguido o contato de um distribuidor MICROCHIP em São Paulo, Bevian

comercial e importadora LTDA, com quem, entrando em contato, foram

conseguidas amostras do componente, sendo pago apenas as despesas de

envio. Duas amostras do componente com encapsulamento DIP e duas em

SMD foram enviadas pelo distribuidor, com isso, um total de seis

microcontroladores ficaram à disposição da equipe para que esta pudesse

fazer testes com diferentes programações e para possível reposição, backup,

em caso de queima de algum dos microcontroladores.

3.1.2. Escolha do multiplexador

Os multiplexadores analisados para o projeto são todos da empresa

MAXIM. Os modelos analisados foram o MAX308, MAX4638 e MAX4051,

todos com oito portas multiplexáveis.

Page 40: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

38

O motivo da escolha destes componentes do referido fabricante foi o fato

de que este enviaria amostras dos componentes sem custo algum.

Características principais:

- MAX308:

• 8 canais multiplexados• Compatível com lógica TTL e CMOS• Resistência de canal menor que 5omhs• Proteção contra descarga eletrostática maior

que 2000 V• Tempo de chaveamento

o Ton = 100nso Toff = 75ns

- MAX4638:

• 8 canais multiplexados• Compatível com lógica TTL e CMOS• Resistência de canal de 0,4 ohms• Tempo de chaveamento

o Ton = 18nso Toff = 7ns

- MAX4051:

• 8 canais multiplexados• Compatível com lógica TTL e CMOS• Resistência máxima de canal de 12 omhs• Tempo de chaveamento

o Ton = 50nso Toff = 40ns

Para usar no projeto restaram duas opções, o MAX4638 e o MAX4051,

pois foram estes os modelos enviados pelo fabricante, ambos em SMD.

A escolha do componente usado no dispositivo, MAX4638, foi devido a

este possuir menor tempo de chaveamento e menor resistência de canal.

3.1.3. Escolha do amplificador operacional

Page 41: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

39

O amplificador operacional utilizado no dispositivo é o TL072 da TEXAS

INSTRUMENTS, este componente foi escolhido pelo fato de que a equipe já

possuía o componente, reduzindo assim despesas com componente e

otimizando os custos do projeto.

Características principais:

• Dual AmpOp• Baixo ruído• Proteção contra curto-circuito na saída• Baixa distorção harmônica total (0,003%

típico)• Alta impedância de entrada (JFET)• Slew rate típico = 13 V/us

3.2. HARDWARE

Para o hardware decidiu-se usar placa com apenas uma face,

componentes discretos e circuitos integrados com encapsulamento DIP, isto

pelo motivo de que era de interesse da equipe confeccionar a placa.

3.2.1. Desenvolvimento do Dispositivo

O circuito foi desenhado, esquemático e layout das trilhas, no software

EAGLE V.5.5.0 que é disponibilizado gratuitamente através do site do

fabricante (www.cadsoft.de).

O diagrama elétrico do circuito foi feito com base nos datasheets dos

componentes, no trabalho de final de curso usado de base para este e em

conversas entre os membros da equipe.

A placa foi planejada de tal forma que se pudesse testar os principais

componentes separadamente, por meio de jumpers, com os quais consegue-se

“bypassar” alguns CI’s e com isso testar cada parte do circuito. Também foram

usados soquetes para todos os CI’s, o que facilita caso algum deles venha a

dar problema.

Page 42: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

40

A placa foi feita de modo artesanal, usando o sistema de transfer,

impressão a laser em papel poliéster e transferido para a placa por processo

térmico, com o auxílio de um ferro de passar roupas comum.

3.2.2. Fotos da Placa

Para confecção do circuito forma usadas placas de fibra de face única,

na figura 15 pode-se ver o aspecto das trilhas do circuito, e na sequência, na

figura 16, pode-se ver como ficou a distribuição dos componentes sobre a

placa.

Figura 15 – Layout das Trilhas

Fonte: Autoria Própria

Page 43: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

41

Figura 16 – Layout dos Componentes

Fonte: Autoria Própria

3.2.3. Correções do Circuito

Algumas correções foram necessárias no hardware do dispositivo para

que este pudesse captar sinais positivos e negativos.

Fazendo testes e analisando o circuito foi visto que este apenas

funcionaria para sinais positivos, então foi acrescentado uma nova placa para

tratamento de sinal ao dispositivo e uma fonte externa para que se obtivesse

alimentação negativa, desta forma conseguiu-se fazer com que o dispositivo

funcionasse tanto para sinais positivos como para sinais negativos.

3.2.4. Fotos das Placas para Correção do Circuito

Page 44: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

42

A fonte foi montada em uma caixa plástica, externa à do dispositivo de

captura de sinais, enquanto a placa para tratamento de sinal foi colocada

juntamente com as outras partes, na caixa do dispositivo.

Figura 17 – Layout das Trilhas das Placas de Correção

Fonte: Autoria Própria

Page 45: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

43

Figura 18 – Layout dos Componentes das Placas de Correção

Fonte: Autoria Própria

3.2.5. Aspecto Final do Dispositivo

O dispositivo foi montado em uma caixa de alumínio com dimensões de

18cm x 12cm x 9cm, após tratamento da superfície metálica a caixa foi pintada

com tinta spray. Para dar o acabamento final ao protótipo foram usados

adesivos impressos aplicados por sobre a caixa, e a seguir vemos as imagens

da montagem e do aspecto final do dispositivo.

Figura 19 – Protótipo no Montado no Interior da Caixa

Fonte: Autoria Própria

Page 46: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

44

Figura 20 – Vista Superior da Caixa

Fonte: Autoria Própria

Figura 21 – Vista Superior Esquerda da Caixa

Fonte: Autoria Própria

Page 47: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

45

Figura 22 – Vista Superior Direita da Caixa

Fonte: Autoria Própria

3.2.6. Relação de Componentes

3.2.6.1. Resistores

RESISTOR VALORR1 1kΩR2, R21, R22 10kΩR10, R18 47kΩR9, R17 100kΩR8, R16 200kΩR7, R15 470kΩR6, R14, R19, R20, R23, R24 1MΩR5, R13 2,2MΩR4, R12 4,7MΩR3, R11 10MΩ

Quadro 1: Relação de Resistores Utilizados

Fonte: Autoria Própria

3.2.6.2. Capacitores

CAPACITOR VALORC3, C4 15pF

Page 48: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

46

C2 470nFC1, C6, C7, C8, C9 100nFC10, C11 22nFC5, C12 10µF

Quadro 2: Relação de Capacitores Utilizados

Fonte: Autoria Própria

3.2.6.3. Circuitos integrados

CIRCUITO INTEGRADO CÓDIGOUC1 PIC18F2551IC1, IC2 MAX4638IC3 TL072

Quadro 3: Relação de Circuitos Integrados Utilizados

Fonte: Autoria Própria

3.2.6.4. Outros componentes

XTAL1 20MHzCON1, CON2 Conector KK 5 vias – 5045-5CON3 Conector USBCON4, CON5 Conector BNCJP1, JP2, JP3 Barra com 3 pinosJP4, JP5 Barra com 2 pinos

Quadro 4: Relação dos Demais Componentes Utilizados

Fonte: Autoria Própria

Page 49: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

47

3.2.7. FIRMWARE

Firmware é o conjunto de instruções operacionais programadas

diretamente no hardware de um equipamento eletrônico. Nesse projeto foi

necessário desenvolver e compilar o programa com as instruções específicas

ao microcontrolador PIC 18F2550.

3.2.7.1. Compilador Usado

O microcontrolador escolhido foi o microchip PIC 18F2550. Para esse

modelo existem diversos compiladores como o próprio MPLAB em conjunto

com o Microchip C18, porém decidimos utilizar o software PCWHD 4.084, da

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

linguagem C. O principal motivo foi à grande quantidade de funções e rotinas

pré-programadas dedicadas a microcontroladores da família PIC, bem como a

facilidade na interface de programação.

Page 50: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

48

Figura 23 – Tela de interface do PCWHD

Fonte: Autoria Própria

3.2.7.2. Programador Usado

Existem muito gravadores de PIC dedicados. Para facilitar os testes em

nosso protótipo, nos baseamos no circuito utilizado no gravador “PICPlus” que

realiza a gravação pelo método ICSP (In-Circuit Serial Programming™). Este

programador não necessita de fonte de alimentação externa, aproveitando o

recurso existente no microcontrolador de programação em baixa tensão (LVP).

A questão da programação do microcontrolador foi previamente estudada,

sendo implementada no protótipo de tal forma que com a mudança de um

jumper, é possível conectar o circuito do “PICPlus” modificado e realizar a

programação do PIC.

Page 51: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

49

Figura 241 - Esquema Eletrônico do Programador

Fonte: site http://www.jdm.homepage.dk/newpic.htm

3.2.7.3. Foto do Programador

Figura 25 – Gravador do PIC

Fonte: Autoria Própria

Utilizamos o software livre PICPgm versão 1.0.1.5 para realizar a

gravação do firmware no PIC. Esse programa reconhece automaticamente o

programador PICPlus e até mesmo o modelo de microcontrolador utilizado.

Page 52: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

50

Figura 26 – Tela de interface do PICPgm Develop. Programmer V1.0.1.5

Fonte: Autoria Própria

3.2.7.4. Programação do Microcontrolador

Antes de iniciar a programação do firmware, precisa-se ter conhecimento

pleno nos seguintes aspectos:

• Funções desempenhadas pelo microcontrolador;

• Quais portas de entradas e saídas serão utilizadas, bem como as

funções de cada uma;

• Freqüência do cristal utilizado;

• Registradores necessários para o modelo de PIC escolhido;

• Fluxograma com a lógica de programação

Page 53: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

51

Figura 27 - Microcontrolador 18F2550

Fonte: Datasheet Microchip – 18F2550

O quadro 5 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 Saída Digital A0 para controle do MUX15 RA3 Saída Digital A2 para controle do MUX26 RA4 Saída Digital A1 para controle do MUX27 RA5 Saída Digital A0 para controle do MUX28 Vss Referência à terra para a lógica e os pinos de i/o9 OSC1 Entrada do oscilador de cristal 20MHz

10 OSC2 Conecta o cristal 20MHz ou ressonador 11 RC0 Saída Digital A2 para controle do MUX112 RC1 Saída Digital A1 para controle do MUX114 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/o20 Vdd Fonte positiva para a lógica e os pinos de i/o21 RB0 Saída Digital22 RB1 Saída Digital23 RB2 Saída Digital24 RB3 Saída Digital25 RB4 Saída Digital26 PGM Pino que permite a programação em baixa tensão ICSP27 PGC Clock de programação ICSP

Page 54: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

52

28 PGD Pino de dados da programação ICSPQuadro 5 – Pinos Utilizados no PIC

Fonte: Autoria Própria

Abaixo vemos o fluxograma completo do firmware.

3.2.7.5. Fluxograma

Figura 28 – Fluxograma do Firmware

Fonte: Autoria Própria

De acordo com as necessidades de utilização no projeto, os principais

registradores configurados foram os relacionados às definições de clock

(CONFIG1L, CONFIG1H, OSCCON), USB (UCON, UCFG, USTAT, UADDR,

UFRMH:UFRML), Serial (SSPSTAT, SSPCON1) e na configuração de portas

como entrada e saída (TRISA, TRISB, TRISC).

Page 55: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

53

3.2.7.6. Descrição do Firmware

Com o software PCWHD, baseado em linguagem “C”, foi compilado o

firmware. Os principais comando serão mostrados abaixo:

#include <18F2550.h>

Realiza a chamada do arquivo de definição de todos os

registradores endereçados para o 18F2550, existente no banco de

dados do compilador CCS.

#fuses

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

VREGEN

Configura vários registradores do microcontrolador,

principalmente aos que diz respeito ao oscilador.

HSPLL - oscilador de cristal de alta freqüência com PLL

habilitado.

NOWDT - watchdog desabilitado.

NOPROTECT - proteção de código desabilitada.

LVP – programação em baixa tensão habilitada.

DEBUG - RB6 e RB7 dedicados para In Circuit Debug

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

#define USB_EP1_TX_ENABLE USB_ENABLE_BULK

#define USB_EP1_RX_ENABLE USB_ENABLE_BULK

Ativa o Endpoint1 para as transferências IN e OUT Bulk/Interrupt

#define USB_EP1_TX_SIZE 64

#define USB_EP1_RX_SIZE 3

Page 56: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

54

Determina o tamanho de 64 e 3 bytes reservado para o Buffer Tx

e RX, respectivamente, do Endpoint1.

#include <pic18_usb.h>

#include <PicUSB.h>

#include <usb.c>

Inclui as bibliotecas de configuração da USB e descritores,

existentes no banco de dados do compilador CCS para o hardware da

família PIC18.

set_tris_a(0b00000011);

set_tris_b(0b00000000);

set_tris_a(0b00000000);

setup_adc_ports(AN0_TO_AN1)

Configura apenas as portas A0 e A1 como entrada analógica, as

demais como saída digital.

usb_init()

usb_task()

usb_wait_for_enumeration()

Inicia, habilita os periféricos e interrupções e aguarda o PIC ser

enumerado pelo sistema operacional.

for (i=1;i<TXSIZE;i+=2) set_adc_channel(1); delay_us(10); txdata[i]=read_adc(); set_adc_channel(0); delay_us(10); txdata[i+1]=read_adc();

usb_puts(1,txdata,TXSIZE,USB_DTS_TOGGLE);

Rotina de leitura das entradas analógicas e envio para o

computador através da porta de comunicação USB.

Page 57: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

55

3.2.8. SOFTWARE

Foi desenvolvido um software de interface gráfica para funcionar na

plataforma Windows cuja função é a visualização das diversas formas de

ondas capturadas pelo dispositivo, bem como ajustes de escalas e controle das

saídas digitais.

3.2.8.1. Software Usado

A programação de interface gráfica foi desenvolvida no Borland Delphi Second

Edition versão 7.2, onde utiliza linguagem Pascal orientada a objeto.

Optou-se por utilizar esse software devido a ampla variedade de recursos que

desejava-se utilizar, como desenhos de gráficos incluindo ferramentas de

auxilio como o DirectX, barras de sliders, check box, processamento paralelo,

entre outros recursos disponíveis.

Figura 29 – Tela de interface gráfica do Borland Delphi Second Edition versão 7.2

Fonte: Autoria Própria

Page 58: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

56

3.2.8.2. Estrutura do Código

Cada objeto colocado na janela “Form” é dotado de propriedades que

permite configurar o mesmo. Com exceção do gráfico, todos os demais

componentes possuem algum tipo de evento, como clicar, marcar, arrastar e

segurar. Baseados nestes eventos criou-se o programa na janela de

codificação.

Como o Delphi permite processamento paralelo, dois principais rotinas

ficavam continuamente em loop infinito. A primeira é o processamento de

eventos da janela principal e a segunda era a captura de pacotes dos sinais

analógicos que o PIC enviava.

Para facilitar o entendimento lógico da programação, o código foi

dividido em Main (principal), USB (comunicação) e Draw (desenho do gráfico).

A seguir são apresentadas as principais partes da rotina com

comentários dos pontos mais importantes. Os comandos serão mostrados em

formatação itálico e negrito . A rotina completa encontra-se no Anexo F.

//Loop Infinito para captura de pacotes de dados

while true do

begin

if GetUSBData then

begin

UpdateDrawBuffer;

ClearScreen;

DrawData;

end;

Sleep(25);

end;

O código Main basicamente cria os procedimentos para cada evento da

janela principal e fica em um loop infinito onde espera o PIC enviar dados ao

programa.

Page 59: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

57

procedure TForm1.onoff_buttonClick(Sender: TObject);

begin

if not usb_connected then

begin

ShowMessage('Dispositivo não conectado ou não

inicializado.');

exit;

end;

if onoff_button.Caption = 'ON' then

begin

onoff_button.Caption := 'OFF';

hold_button.Enabled:=true;

DXTimer1.Enabled:=true;

CleanDrawBuffer1;

CleanDrawBuffer2;

th.Resume;

end

Essa rotina é executada quando o evento de clicar sobre o botão ON é

realizado. Ela verifica se o dispositivo USB está conectado e depois habilitam

outros botões de controle, também limpa os buffers do gráfico.

No código USB, está centralizado todos os comandos relacionados a

essa comunicação.

function _MPUSBGetDLLVersion():DWORD; stdcall;external

'mpusbapi.dll';

function _MPUSBGetDeviceCount(pVID_PID:PCHAR8):DWORD;

stdcall;external 'mpusbapi.dll';

function

_MPUSBOpen(instance:DWORD;pVID_PID:PCHAR8;pEP:PCHAR8;dwDir:

DWORD;dwReserved:DWORD):THANDLE; stdcall;external 'mpusbapi.dll';

function_MPUSBRead(handle:THANDLE;varpData:PBYTE;dwLen:D

WORD;varpLength:DWORD;dwMilliseconds:DWORD):DWORD;

stdcall;external 'mpusbapi.dll';

function _MPUSBReadInt(handle:THANDLE;varpData:

Page 60: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

58

PBYTE;dwLen:DWORD;var

pLength:PDWORD;dwMilliseconds:DWORD):DWORD; stdcall;external

'mpusbapi.dll';

function

_MPUSBWrite(handle:THANDLE;pData:PBYTE;dwLen:DWORD;var

pLength:DWORD;dwMilliseconds:DWORD):DWORD; stdcall;external

'mpusbapi.dll';

function _MPUSBClose(handle:THANDLE):DWORD; stdcall;external

'mpusbapi.dll';

Esses são alguns comandos contidos na biblioteca mpusbapi.dll

fornecida pelo fabricante do microcontrolador. As funções precisam ser

reconhecidas pelo Delphi para futura utilização.

vid_pid:PCHAR8='vid_04d8&pid_2525'; // VID e PID

Indica ao software qual dispositivo USB reconhecer. Vendor ID 04d8 é o

padrão para produtos Microchip já o Product ID 2525 foi definido pela equipe

para identificação desse projeto.

function StartUSB: boolean;

if (_MPUSBGetDeviceCount(vid_pid)=0) then

exit;

myOutPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_WRITE,0);

myInPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_READ,0);

if ((myOutPipe = INVALID_HANDLE_VALUE) or (myInPipe =

INVALID_HANDLE_VALUE)) then

exit;

// testa a conexão - envia ping

send_buffer[0] := PING;

_MPUSBWrite(myOutPipe,send_buffer,1,SentLength,1000);

tmp:=IntToStr(SentLength);

_MPUSBRead(myInPipe,recv_buffer,MAXSIZE,ReceiveLength,1000);

Função para início do dispositivo USB se conectado. Para verificar a

comunicação, o programa envia um “ping” e em seguido recebe uma resposta

pré-definida.

Page 61: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

59

send_buffer[0] := LED_CONTROL;

send_buffer[1] := led1;

send_buffer[2] := led2;

if _MPUSBWrite(myOutPipe,send_buffer,3,SentLength,1000)<>1 then

ShowMessage('error led control');

Exemplo de envio de bytes de controle dos dispositivos externos

(representado por LEDs) para o microcontrolador PIC.

if(_MPUSBRead(myInPipe, recv_buffer, MAXSIZE, ReceiveLength,

1000)<>1)then

begin

ShowMessage('error get usb data 3');

exit;

end;

for i:=1 to ReceiveLength do

begin

if ((i mod 2)=0) then //índex par

begin

usb_buffer2[buf2] := recv_buffer[i-1];

inc(buf2);

end

else begin // índex impar

usb_buffer1[buf1] := recv_buffer[i-1];

inc(buf1);

end;

end;

Captura dos pacotes enviados pelo PIC. Onde realiza a diferenciação

dos canais analógicos 1 e 2. O microcontrolador envia os sinais do canal 1

através dos bytes de indexação par, enquanto os sinais do canal 2 pelos bytes

de indexação impar, assim mantendo a mesma velocidade de captura em

ambos os canais.

Page 62: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

60

Por último tem-se o código de desenho do gráfico precisa realizar a

normalização dos níveis de sinais para as amplitudes máximas apresentadas

na tela.

x := (i-1)*(Form1.DXDraw1.Width div (length(draw_buffer1) div h_factor));

y := draw_buffer1[i-1];

y := round((y/255)*Form1.DXDraw1.Height); // condicionamento do sinal

Form1.DXDraw1.Surface.Canvas.MoveTo(x,y);

x := (i)*(Form1.DXDraw1.Width div (length(draw_buffer1) div h_factor));

y := draw_buffer1[i];

y := round((y/255)*Form1.DXDraw1.Height); // condicionamento do sinal

Form1.DXDraw1.Surface.Canvas.LineTo(x,y);

A cada ponto desenhado, é realizada a ligação entre ele e o ponto

anterior através de uma reta, assim fazendo com que o gráfico fique contínuo e

não pontilhado.

Figura 30 – Fluxograma do programa em Delphi

Fonte: Autoria Própria

3.2.8.3. Interface Gráfica

Page 63: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

61

Figura 31 – Tela de interface gráfica do programa final

Fonte: Autoria Própria

Na figura 31 é mostrada a tela do Dispositivo de Aquisição de Sinais e

Controle Digital via USB com as seguintes funções:

• Botão ON/OFF inicia a visualização gráfica ou encerra o aplicativo

gráfico.

• Seletor de escala de tensão independente para os canais 1 e 2,

com uma faixa de 0,02 V a 0,5 V por divisão.

• Seleção de escala de tempo independente em segundos por

divisão.

• Check Box para habilitar os canais 1 e/ou 2.

• Hold – Permite o congelamento instantâneo do gráfico para

melhor analise do sinal amostrado

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

no eixo “X” e no eixo “Y”.

3.2.8.4. Driver do Dispositivo

Page 64: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

62

Antes de iniciar o desenvolvimento do firmware foi estudado qual o

método de comunicação USB seria adotado. Existem três métodos:

USB Communication Device Class (USB CDC) – Basicamente o driver

emula uma porta COM, fazendo com que a comunicação entre o software e o

firmware seja realizada como se fosse uma porta serial padrão. É o método

mais simples para compilação do programa, porém a velocidade de

comunicação é muito baixa 115 kbps (~14,4 kB/s).

Human Interface Device (EasyHID) - 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, mas teria uma limitação de velocidade de 64 kB/s.

USB Bulk - Driver customizado que permite a comunicação USB apenas

com a limitação de velocidade do próprio USB 2.0 (480 Mbps). Esta foi a

escolha para o desenvolvimento do projeto.

O driver é disponibilizado pela própria Microchip e utilizado em dois

momentos. O primeiro na instalação do dispositivo no sistema operacional,

onde faz o reconhecimento, enumeração e configuração USB do

microcontrolador. O segundo é a utilização da biblioteca “mpusbapi.dll” para o

desenvolvimento do software de interface gráfica, o qual serve para

comunicação entre o computador e o próprio PIC18F2550.

Page 65: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

63

4. CONCLUSÕES

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

analógicos e controle digital via USB. Esse tema envolveu conhecimentos de

diversas disciplinas do curso de engenharia elétrica, como circuitos elétricos,

instrumentação, microcontroladores, circuitos lineares e não lineares, entre

outros. Por esse motivo somado ao uso da comunicação USB, tornou o projeto

muito interessante, pois atualmente é a interface mais utilizada para troca de

dados digitais entre os diversos equipamentos eletrônicos. O aprofundamento

nesse e em outros assuntos relacionados ao projeto, acabou ampliando a visão

de possibilidades para aplicações desses conhecimentos em dispositivos

futuros.

Várias linguagens de programação e diversos softwares foram utilizados,

o que proporcionou um aprendizado muito grande nessa área. Também foi um

enorme desafio a confecção completa dispositivo, desde a placa de circuito

impresso até a caixa protetora, todo desenvolvimento foi realizado pela equipe,

o que trouxe muita satisfação para a mesma.

O protótipo e software sofreram várias alterações e ajustes para

alcançar o objetivo definido inicialmente. Com os testes finais, conseguimos

obter as seguintes características:

• Um taxa de amostragem de aproximadamente 32kSPS;

Page 66: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

64

• Tensão de entrada AC de 50Vpp;

• Escala de tempo ponto a ponto real de 2ms;

• Escala mínima de tensão de 0,1V/div.

• Controle de ganho em tempo real;

• Controle dos dispositivos externos simultaneamente com

aquisição de dados;

• Programação do firmware ICSP

Com um maior tempo de desenvolvimento seria possível melhorar as

características citadas acima, principalmente implementando um conversor

analógico digital externo acoplado a uma memória intermediária, aumentando

assim a taxa de amostragem. Algumas funções no tratamento de sinal através

do software de interface gráfica também foram discutidas, entre elas, um

trigger, cálculos de valores RMS, filtros, FFT, entre outros.

4.1. PERSPECTIVAS

Para avançar com o dispositivo e uma possível evolução para um

produto comercial pode-se citar algumas melhorias a serem implementadas:

• Maior velocidade de aquisição com um CAD

melhor

• Limite máximo de tensão de entrada

aumentado

• FFT

• Botão de Trigger

• Cálculos matemáticos entre os sinais das 2

entradas

• Redução do tamanho do dispositivo

• Proteções contra surtos

• Incorporação de filtros

• Eliminação da necessidade de fonte externa

Page 67: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

65

REFERÊNCIAS BIBLIOGRÁFICAS

[1] ESPÍNDOLA, Walter Luciano; PIECARZ, Leandro Silva. USBSCOPE. Trabalho de conclusão de curso (Graduação em Engenharia Elétrica) – UFPR, Curitiba. 2007.

[2] Topologia do USB. Disponível em: http://www.gta.ufrj.br/grad/07_1/wusb/TopologiadoUSB.html. Acesso em: 1 de junho de 2009.

[3] Arquitetura USB. Disponível em: http://www.pads.ufrj.br/~rapoport/usb/usb4.html. Acesso em: 1 de junho de 2009.

[4] Interfaces e Periféricos USB. Disponível em: http://www.laercio.com.br/artigos/hardware/hard-051/hard-051c.htm. Acesso em: 2 de junho de 2009.

[5] Como Funcionam as Portas USB. Disponível em: http://informatica.hsw.uol.com.br/portas-usb1.htm. Acesso em: 3 de junho de 2009.

Page 68: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

66

[6] CARVALHO, Felipe Monteiro et al. Osciloscópio Digital em Placa ISA. USP. São Paulo. Disponível em: http://incubadora.fapesp.br/frs/download.php/707/OsciloscopioISA.pdf. Acesso em: 1 de junho de 2009.

[7] Instrumento de Medidas Elétricas em CA – Parte II – Osciloscópio. Disponível em: http://www.ucg.br/acad_web/professor/sitedocente/admin/arquivosUpload/7502/material/Lab2%20circuitos%20elet%20ii.pdf. Acesso em: 1 de junho de 2009.

[8] Eletricidade Básica – Osciloscópio. Disponível em: http://www.inep.ufsc.br/eletbas/aula05.pdf. Acesso em: 1 de junho de 2009.

[9] Conversão Analógica Digital. Disponível em: http://www.universiabrasil.net/mit/6/6071/PDF/f02-lec20a_val.pdf. Acesso em: 3 de junho de 2009.

[10] Conversor Analógico Digital – A/D. Disponível em: http://www.colegiouberaba.com.br/apostilas/subsidios_eletronica/conversor%20a_d.pdf. Acesso em: 3 de junho de 2009.

REFERÊNCIAS PARA PESQUISA

Adaptadores USB. Disponível em: http://www.atera.com.br/figuras/kitusb1399.GIF. Acesso em: 2 de junho de 2009.

Adaptadores USB. Disponível em: http://www.gdhpress.com.br/hardware/leia/cap3-18_html_67a5b903.jpg. Acesso em: 2 de junho de 2009.

Adaptadores USB. Disponível em: https://loja.tray.com.br/adm/editor/up/108972/1499_g.jpg. Acesso em: 2 de junho de 2009.

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

ATMEL. Atmel Product Selector Guide. Disponível em: http://www.atmel.com/. Acesso em: 11 de março de 2009.

Page 69: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

67

COSTA, Alexandre. Gravadores de PIC. Disponível em: http://br.geocities.com/alexrobotica/eletronic_robotica_grava_pics.html. Acesso em: 23 de abril de 2009.

Create USB Interface. Disponível em: http://www.create.ucsb.edu/~dano/CUI/. Acesso em 24 de abril de 2009.

Entendendo USB Firewire. Disponível em: http://www.gdhpress.com.br/blog/entendendo-usb-firewire.html. Acesso em: 2 de junho de 2009.

HOFFMAN, Pablo. Osciloscópio USB – Documentación. Disponível em: http://pablohoffman.com/cgi-bin/twiki/bin/view/Oscusb/OscusbDocumentacion. Acesso em: 28 de abril de 2009.

IN-Circuit Serial Programming (ICSP). Disponível em: http://www.embedinc.com/picprg/icsp.htm. Acesso em: 23 de abril de 2009.

Iniciando PIC USB. Disponível em: http://www.edaboard.com/ftopic313796.html. Acesso em: 23 de abril de 2009.

Intel. Desktop Boards – Portas USB. Disponível em: http://www.intel.com/support/pt/motherboards/desktop/sb/CS-023466.htm. Acesso em: 2 de junho de 2009.

Jonis Project – PIC+USB. Disponível em: http://www.jonis.com.br/novo/index.php?option=com_content&view=article&id=53:pic-usb-bootloader-facil&catid=38:eletronica. Acesso em: 24 de abril de 2009.

MICROCHIP. Microchip Advanced Parts Selection. Disponível em: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1924. Acesso em: 11 de março de 2009.

OBJECTIVE DEVELOPMENT. Power Switch. Disponível em: http://www.obdev.at/products/vusb/powerswitch.html. Acesso em: 11 de março de 2009.

PIC 18 USB Support. Disponível em: http://www.oshonsoft.com/pic18usb.html. Acesso em: 21 de abril de 2009.

PICPgm. Disponível em: http://members.aon.at/electronics/pic/picpgm/. Acesso em: 23 de abril de 2009.

Programas de PIC com USB. Disponível em: http://www.electronicfr.com/index.php/Microcontrollers-and-USB/-Part-3-How-to-build-a-USB-thermometer-and-barometer-with-PIC-18F4550-or-18F2550.html. Acesso em: 23 de abril de 2009.

Page 70: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

68

SOUZA, Emmanuel C. O. Criando Textos Segundo a ABNT. Disponível em: http://www.scribd.com/doc/1816529/Normas-ABNT-no-Word?page=7. Acesso em: 28 de maio de 2009.

TEXAS INSTRUMENTS. MCU Selection Tool. Disponível em: http://focus.ti.com/en/multimedia/flash/selection_tools/mcu/mcu.html. Acesso em: 10 de março de 2009.

UNISO. Manual de Normalização de Apresentação de Teses, Dissertações e Trabalhos de Conclusão de Curso (TCC) da Universidade de Sorocaba. Disponível em: http://www.scribd.com/doc/4076862/ABNT-Manual-I. Acesso em: 22 de junho de 2009.

Universal Serial Bus – USB – Eletronline. Disponível em: http://eletronline.blogspot.com/2009/02/universal-serial-bus-usb.html. Acesso em: 2 de junho de 2009.

USB. Disponível em: http://www.gdhpress.com.br/hardware/leia/index.php?p=cap3-18. Acesso em: 2 de junho de 2009.

USB Boot-Loader on a PIC 18F2550. Disponível em: http://techsanctuary.com/node/64. Acesso em 23 de abril de 2009.

USB Especifications. Disponível em: http://www.usb.org/developers/usb20/developers/whitepapers/usb_20g.pdf. Acesso em: 21 de abril de 2009.

USB Explicação. Disponível em: http://www.rogercom.com/PortaUSB/MotorPasso.htm. Acesso em: 24 de abril de 2009.

Page 71: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

69

ANEXOS

ANEXO A - Cronograma do Projeto

• Março/2009 – Estudo dos microcontroladores e definição dos

demais componentes eletrônicos do dispositivo a ser

desenvolvido.

• Abril/2009 – Definição do projeto eletrônico, layout da placa,

confecção do dispositivo e início do estudo para o

desenvolvimento do software.

Page 72: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

70

• Maio/2009 – Possíveis correções, testes, calibração do

dispositivo, testes preliminares do software e possíveis

melhorias a serem implementadas.

• Junho/2009 – Correções finais, layout externo do produto,

últimos testes e modificações, elaboração do relatório e

verificação final do produto.

• Julho/2009 – Apresentação.

ANEXO B – Diagrama Esquemático do Circuito

Page 73: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

71

Page 74: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

72

ANEXO C – Diagrama Esquemático do Circuito de

Tratamento de Sinais

Page 75: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

73

ANEXO D – Diagrama Esquemático da Fonte Externa

Page 76: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

74

ANEXO E – Código Fonte do Firmware

//==Código Fonte do Firmware compilado em C pelo programa PCWHD==============#include <18F2550.h>#fuses

HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL4,CPUDIV1,VREGEN#use delay(clock=48000000) // Cristal de 16MHz

// Includes das bibliotecas USB do compilador CCS.//Microchip PIC18Fxx5x Hardware p/ CCS PIC USB Driver#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 64 // Tamanho para o Buffer Tx EndPoint1#define USB_EP1_RX_SIZE 3 // Tamanho para o Buffer Rx EndPoint1

#include <pic18_usb.h>#include <PicUSBMK.h> //Configuração do USB e descritores para o dispositivo#include <usb.c> //Handles usb ,tokens e descritores

#ENDIF

//==Definições========================================================#define LED1ON PIN_B0#define LED2ENUM PIN_B1#define LED3USB PIN_B2#define LED4OUT1 PIN_B3#define LED5OUT2 PIN_B4#define LED_ON output_low#define LED_OFF output_high

#define MUX1A0 PIN_A2#define MUX1A1 PIN_C1#define MUX1A2 PIN_C0#define MUX2A0 PIN_A5#define MUX2A1 PIN_A4#define MUX2A2 PIN_A3

#define MUX_ON output_high#define MUX_OFF output_low

#define SAMPLE 0x00#define LED_CONTROL 0x01#define MUX_CONTROL1 0x02#define MUX_CONTROL2 0x03#define PING 0x05

#define NO1 0x00#define NO2 0x01#define NO3 0x02#define NO4 0x03#define NO5 0x04#define NO6 0x05#define NO7 0x06#define NO8 0x07

#defineTXSIZE 64

Page 77: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

75

int8 rxdata[5];int8 txdata[TXSIZE];int8 txdata2[TXSIZE];int8 txdata3[TXSIZE];int8 txdata4[TXSIZE];int8 txdata5[TXSIZE];int8 txdata6[TXSIZE];int8 txdata7[TXSIZE];int8 txdata8[TXSIZE];int8 txdata9[TXSIZE];int8 txdata10[TXSIZE];int8 send_buf[5];

void TesteUSB(void) //Verifica se o USB está conectado e enumerado

int8 enumerou; usb_task(); // Hab. o perif. usb e as interrupções usb_wait_for_enumeration(); // Aguarda o Pic ser configurado pelo PC enumerou=usb_enumerated(); if (enumerou) LED_ON(LED2ENUM); else LED_OFF(LED2ENUM);

void TXAnalog(void) //Realiza a captura e transmissão das portas analógicas

int8 i;

LED_ON(LED3USB); set_adc_channel(0); // Canal A0 delay_us(10); // Retardo txdata[0]=read_adc();

for (i=1;i<TXSIZE;i+=2) set_adc_channel(1); // Canal A1 delay_us(10); // Retardo txdata[i]=read_adc(); set_adc_channel(0); // Canal A0 delay_us(10); // Retardo txdata[i+1]=read_adc(); usb_puts(1,txdata,TXSIZE,USB_DTS_TOGGLE); LED_OFF(LED3USB);

void MuxCH1(void) //Seleciona o ganho do CH1 if (rxdata[1]==NO1) MUX_OFF(MUX1A2); MUX_OFF(MUX1A1); MUX_OFF(MUX1A0); if (rxdata[1]==NO2) MUX_OFF(MUX1A2); MUX_OFF(MUX1A1); MUX_ON(MUX1A0);

Page 78: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

76

if (rxdata[1]==NO3) MUX_OFF(MUX1A2); MUX_ON(MUX1A1); MUX_OFF(MUX1A0); if (rxdata[1]==NO4) MUX_OFF(MUX1A2); MUX_ON(MUX1A1); MUX_ON(MUX1A0); if (rxdata[1]==NO5) MUX_ON(MUX1A2); MUX_OFF(MUX1A1); MUX_OFF(MUX1A0); if (rxdata[1]==NO6) MUX_ON(MUX1A2); MUX_OFF(MUX1A1); MUX_ON(MUX1A0); if (rxdata[1]==NO7) MUX_ON(MUX1A2); MUX_ON(MUX1A1); MUX_OFF(MUX1A0); if (rxdata[1]==NO8) MUX_ON(MUX1A2); MUX_ON(MUX1A1); MUX_ON(MUX1A0);

void MuxCH2 (void) //Seleciona o ganho do CH2 if (rxdata[1]==NO1) MUX_OFF(MUX2A2); MUX_OFF(MUX2A1); MUX_OFF(MUX2A0); if (rxdata[1]==NO2) MUX_OFF(MUX2A2); MUX_OFF(MUX2A1); MUX_ON(MUX2A0); if (rxdata[1]==NO3) MUX_OFF(MUX2A2); MUX_ON(MUX2A1); MUX_OFF(MUX2A0); if (rxdata[1]==NO4) MUX_OFF(MUX2A2); MUX_ON(MUX2A1); MUX_ON(MUX2A0); if (rxdata[1]==NO5) MUX_ON(MUX2A2); MUX_OFF(MUX2A1); MUX_OFF(MUX2A0); if (rxdata[1]==NO6) MUX_ON(MUX2A2);

Page 79: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

77

MUX_OFF(MUX2A1); MUX_ON(MUX2A0); if (rxdata[1]==NO7) MUX_ON(MUX2A2); MUX_ON(MUX2A1); MUX_OFF(MUX2A0); if (rxdata[1]==NO8) MUX_ON(MUX2A2); MUX_ON(MUX2A1); MUX_ON(MUX2A0);

void main(void) // Programa Principal int8 cont=1;

set_tris_a(0b00000011); // AN0, AN1 entradas e RA2,RA3,RA4,RA5 saídas set_tris_b(0b00000000); // RB Todas saídas set_tris_c(0b00000000); // RC0 Todas saídas setup_adc_ports( AN0_TO_AN1 ); // configura IN analog.do conversor A/D setup_adc(ADC_CLOCK_INTERNAL); // configura clock interno para o ADC LED_ON(LED1ON); LED_OFF(LED2ENUM); LED_OFF(LED3USB); LED_OFF(LED4OUT1); LED_OFF(LED5OUT2); usb_init(); // Inicializamos o USB while (TRUE) // Loop Infinito TesteUSB(); // Testa a USB if(usb_enumerated()) // Se o PicUSB está configurado if (usb_kbhit(1)) // Verifica se há algo no USB usb_get_packet(1,rxdata,5); //Captura os dados da USB e coloca //na variável rxdata // sample if(rxdata[0]==SAMPLE) TXAnalog(); // led control if(rxdata[0]==LED_CONTROL) if(rxdata[1]) LED_ON(LED4OUT1); else LED_OFF(LED4OUT1); if(rxdata[2]) LED_ON(LED5OUT2); else LED_OFF(LED5OUT2); // Mux Control CH 1

Page 80: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

78

if(rxdata[0]==MUX_CONTROL1) MuxCH1(); // Mux Control CH 2 if(rxdata[0]==MUX_CONTROL2) MuxCH2(); // PING - PONG if(rxdata[0]==PING) send_buf[0] = PING; usb_put_packet(1,send_buf,1,USB_DTS_TOGGLE);

ANEXO F – Código Fonte do Software

Page 81: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

79

//==Código Fonte do Software de Interface Gráfica compilado no Delphi============//===================Início da Rotina MAIN==============================

unit main;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DXDraws, DXClass, ComCtrls, draw, ExtCtrls, Menus, Buttons, usb, draw;

type

TForm1 = class(TForm) DXDraw1: TDXDraw; GroupBox1: TGroupBox; led1_checkbox: TCheckBox; led2_checkbox: TCheckBox; DXTimer1: TDXTimer; GroupBox2: TGroupBox; en_canal1: TCheckBox; en_canal2: TCheckBox; onoff_button: TButton; Label1: TLabel; usb_led: TPanel; hold_button: TButton; GroupBox3: TGroupBox; hscale_bar1: TTrackBar; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label2: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label20: TLabel; Label21: TLabel; GroupBox4: TGroupBox; vscale_bar1: TTrackBar; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; hscale_bar2: TTrackBar; vscale_bar2: TTrackBar; procedure led_c(Sender: TObject); procedure DXTimer1Timer(Sender: TObject; LagCount: Integer); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure onoff_buttonClick(Sender: TObject); procedure FormResize(Sender: TObject); procedure FormCreate(Sender: TObject);

Page 82: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

80

procedure hold_buttonClick(Sender: TObject); procedure hscale_bar2Change(Sender: TObject); procedure hscale2Change(Sender: TObject); procedure vscale_bar1Change(Sender: TObject); procedure vscale_bar2Change(Sender: TObject); private Private declarations public Public declarations end;

main_thread = class(TThread) private Private declarations protected procedure Execute; override; end;

var Form1: TForm1; th: main_thread; // escalas hscale1: double = 0.005; hscale2: double = 0.005; vscale1: double = 0.02; vscale2: double = 0.02; hscale_default: double = 0.005; vscale_default: double = 0.02;

implementation

$R *.dfm

procedure TForm1.led_c(Sender: TObject);var led1, led2: integer;begin if led1_checkbox.Checked then led1:=1 else led1:=0; if led2_checkbox.Checked then led2:=1 else led2:=0; led(led1,led2);end;

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);begin if DXDraw1.CanDraw then DXDraw1.Flip;end;

procedure main_thread.Execute;begin if hold and usb_connected then exit;

while true do

Page 83: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

81

begin if GetUSBData then begin UpdateDrawBuffer; ClearScreen; DrawData; end; Sleep(25); end;end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin DXTimer1.Enabled:=false;// th.Suspend;end;

procedure TForm1.onoff_buttonClick(Sender: TObject);begin if not usb_connected then begin ShowMessage('Dispositivo não conectado ou não inicializado.'); exit; end;

if onoff_button.Caption = 'ON' then begin onoff_button.Caption := 'OFF'; hold_button.Enabled:=true; DXTimer1.Enabled:=true; CleanDrawBuffer1; CleanDrawBuffer2; th.Resume; end else begin onoff_button.Caption := 'ON'; hold_button.Enabled:=false; DXTimer1.Enabled:=false; ClearScreen; DXDraw1.Flip; //th.Suspend; end;

end;

procedure TForm1.FormResize(Sender: TObject);begin DXDraw1.Flip;end;

procedure TForm1.FormCreate(Sender: TObject);begin if StartUSB then begin th:=main_thread.Create(true); end else begin usb_connected := false; end;

Page 84: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

82

ClearScreen;end;

procedure TForm1.hold_buttonClick(Sender: TObject);begin if hold then begin DXTimer1.Enabled := true; hold := false; end else begin hold := true; DXTimer1.Enabled := false; end;end;

procedure TForm1.hscale_bar2Change(Sender: TObject);begin CleanDrawBuffer1; case hscale_bar1.Position of 6: hscale1:=0.500; 5: hscale1:=0.200; 4: hscale1:=0.100; 3: hscale1:=0.050; 2: hscale1:=0.020; 1: hscale1:=0.010; 0: hscale1:=0.005; end;end;

procedure TForm1.hscale2Change(Sender: TObject);begin CleanDrawBuffer2; case hscale_bar2.Position of 6: hscale2:=0.500; 5: hscale2:=0.200; 4: hscale2:=0.100; 3: hscale2:=0.050; 2: hscale2:=0.020; 1: hscale2:=0.010; 0: hscale2:=0.005; end;end;

procedure TForm1.vscale_bar1Change(Sender: TObject);begin change_mux1(vscale_bar1.Position);end;

procedure TForm1.vscale_bar2Change(Sender: TObject);begin change_mux2(vscale_bar2.Position);end;

end.//===================Fim Rotina MAIN====================================

//===================Início da Rotina USB=================================unit usb;

Page 85: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

83

interface

uses Classes, Windows, SysUtils, Dialogs, Graphics;

Const MAXSIZE=64; MPUSB_FAIL=0; MPUSB_SUCCESS=1; MP_WRITE:DWORD=0; MP_READ:DWORD=1; MAX_NUM_MPUSB_DEV=127;

SAMPLE = $00; LED_CONTROL = $01; MUX_CONTROL1 = $02; MUX_CONTROL2 = $03 N01 = $00 N02 = $01 N03 = $02 N04 = $03 N05 = $04 N06 = $05 N07 = $06 N07 = $07 PING = $05;

type DWORD = LongInt; PCHAR8 = array[0..MAXSIZE] of char; PBYTE = array[0..MAXSIZE] of BYTE; PDWORD = array[0..MAXSIZE] of DWORD; PVOID = Pointer; UINT = Cardinal;

usb_thread = class(TThread) private Private declarations protected procedure Execute; override; end;

function _MPUSBGetDLLVersion():DWORD; stdcall;external 'mpusbapi.dll';function _MPUSBGetDeviceCount(pVID_PID:PCHAR8):DWORD; stdcall;external 'mpusbapi.dll';function _MPUSBOpen(instance:DWORD;pVID_PID:PCHAR8;pEP:PCHAR8;dwDir:DWORD;dwReserved:DWORD):THANDLE; stdcall;external 'mpusbapi.dll';function _MPUSBRead(handle:THANDLE;var pData:PBYTE;dwLen:DWORD;var pLength:DWORD;dwMilliseconds:DWORD):DWORD; stdcall;external 'mpusbapi.dll';function _MPUSBReadInt(handle:THANDLE;var pData:PBYTE;dwLen:DWORD;var pLength:PDWORD;dwMilliseconds:DWORD):DWORD; stdcall;external 'mpusbapi.dll';function _MPUSBWrite(handle:THANDLE;pData:PBYTE;dwLen:DWORD;var pLength:DWORD;dwMilliseconds:DWORD):DWORD; stdcall;external 'mpusbapi.dll';function _MPUSBClose(handle:THANDLE):DWORD; stdcall;external 'mpusbapi.dll';

var vid_pid:PCHAR8='vid_04d8&pid_2525'; // VID e PID out_pipe:PCHAR8='\MCHP_EP1'; in_pipe:PCHAR8='\MCHP_EP1';

Page 86: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

84

usb_buffer1: array[1..320] of byte; usb_buffer2: array[1..320] of byte; usb_connected: boolean = false;

function StartUSB: boolean;function GetUSBData: boolean;procedure led(led1, led2: byte);procedure change_mux1(value: byte);procedure change_mux2(value: byte);

implementation

uses main, draw;

var send_buffer, recv_buffer: PBYTE; myOutPipe:THANDLE; myInPipe:THANDLE; tmp: string;

//=============Inicia a USB==============================================function StartUSB: boolean;var ReceiveLength, SentLength:DWORD;begin Form1.usb_led.Color := clRed; usb_connected := false; result := false;

if (_MPUSBGetDeviceCount(vid_pid)=0) then exit;

myOutPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_WRITE,0); myInPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_READ,0);

if ((myOutPipe = INVALID_HANDLE_VALUE) or (myInPipe = INVALID_HANDLE_VALUE)) then exit;

// testa a conexão - envia ping send_buffer[0] := PING; _MPUSBWrite(myOutPipe,send_buffer,1,SentLength,1000); tmp:=IntToStr(SentLength); _MPUSBRead(myInPipe,recv_buffer,MAXSIZE,ReceiveLength,1000);

if (ReceiveLength<>1) or (recv_buffer[0]<>PING) then exit;

_MPUSBClose(myOutPipe); _MPUSBClose(myInPipe); myInPipe:= INVALID_HANDLE_VALUE; myOutPipe:=INVALID_HANDLE_VALUE;

Form1.usb_led.Color:=clGreen; usb_connected := true; Form1.led1_checkbox.Enabled:=true; Form1.led2_checkbox.Enabled:=true; result := true;end;

Page 87: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

85

//=============Controla a saída Digital (LEDs)===============================procedure led(led1, led2: byte);var SentLength: DWORD;begin myOutPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_WRITE,0); myInPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_READ,0);

if ((myOutPipe = INVALID_HANDLE_VALUE) or (myInPipe = INVALID_HANDLE_VALUE)) then begin ShowMessage('error led control'); exit; end;

send_buffer[0] := LED_CONTROL; send_buffer[1] := led1; send_buffer[2] := led2; if _MPUSBWrite(myOutPipe,send_buffer,3,SentLength,1000)<>1 then ShowMessage('error led control'); tmp:=IntToStr(SentLength);

_MPUSBClose(myOutPipe); _MPUSBClose(myInPipe); myInPipe:= INVALID_HANDLE_VALUE; myOutPipe:=INVALID_HANDLE_VALUE;end;

//============= Captura os dados da USB ===============================function GetUSBData: boolean;var i, c, buf1, buf2: integer; ReceiveLength, SentLength:DWORD;begin result:=false;

myOutPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_WRITE,0); myInPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_READ,0);

if ((myOutPipe = INVALID_HANDLE_VALUE) or (myInPipe = INVALID_HANDLE_VALUE)) then begin ShowMessage('error get usb data 1'); exit; end;

// solicita os dados send_buffer[0] := SAMPLE; if _MPUSBWrite(myOutPipe,send_buffer,1,SentLength,1000)<>1 then begin ShowMessage('error get usb data 2'); exit; end; tmp:=IntToStr(SentLength);

// le os dados buf1 := 1; buf2 := 1;

Page 88: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

86

for c:=1 to (2*length(usb_buffer1)div length(recv_buffer)) do begin if(_MPUSBRead(myInPipe, recv_buffer, MAXSIZE, ReceiveLength, 1000)<>1)then begin ShowMessage('error get usb data 3'); exit; end; tmp:=IntToStr(ReceiveLength);

if ReceiveLength<>0 then result:=true;

for i:=1 to ReceiveLength do begin if ((i mod 2)=0) then //par begin usb_buffer2[buf2] := recv_buffer[i-1]; inc(buf2); end else begin // impar usb_buffer1[buf1] := recv_buffer[i-1]; inc(buf1); end; end; end;

_MPUSBClose(myOutPipe); _MPUSBClose(myInPipe); myInPipe:= INVALID_HANDLE_VALUE; myOutPipe:=INVALID_HANDLE_VALUE;end;

procedure change_mux1(value: byte);var SentLength: DWORD;beginmyOutPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_WRITE,0); myInPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_READ,0);

if ((myOutPipe = INVALID_HANDLE_VALUE) or (myInPipe = INVALID_HANDLE_VALUE)) then begin ShowMessage('error mux control'); exit; end;

send_buffer[0] := MUX_CONTROL1;

case value of 0: send_buffer[1] := N01; // 0.002V/div 1: send_buffer[1] := N02; // 0.005V/div 2: send_buffer[1] := N03; // 0.1V/div 3: send_buffer[1] := N04; // 0.2V/div 4: send_buffer[1] := N05; // 0.5V/div 5: send_buffer[1] := N06; // 1V/div 6: send_buffer[1] := N07; // 2V/div 7: send_buffer[1] := N08; // 5V/div end;

if _MPUSBWrite(myOutPipe,send_buffer,3,SentLength,1000)<>1 then

Page 89: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

87

ShowMessage('error mux control'); tmp:=IntToStr(SentLength);

_MPUSBClose(myOutPipe); _MPUSBClose(myInPipe); myInPipe:= INVALID_HANDLE_VALUE; myOutPipe:=INVALID_HANDLE_VALUE;end;

procedure change_mux2(value: byte);var SentLength: DWORD;begin myOutPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_WRITE,0); myInPipe:= _MPUSBOpen(0,vid_pid,out_pipe,MP_READ,0);

if ((myOutPipe = INVALID_HANDLE_VALUE) or (myInPipe = INVALID_HANDLE_VALUE)) then begin ShowMessage('error mux control'); exit; end;

send_buffer[0] := MUX_CONTROL2;

case value of 0: send_buffer[1] := N01; // 0.002V/div 1: send_buffer[1] := N02; // 0.005V/div 2: send_buffer[1] := N03; // 0.1V/div 3: send_buffer[1] := N04; // 0.2V/div 4: send_buffer[1] := N05; // 0.5V/div 5: send_buffer[1] := N06; // 1V/div 6: send_buffer[1] := N07; // 2V/div 7: send_buffer[1] := N08; // 5V/div end;

if _MPUSBWrite(myOutPipe,send_buffer,3,SentLength,1000)<>1 then ShowMessage('error mux control'); tmp:=IntToStr(SentLength);

_MPUSBClose(myOutPipe); _MPUSBClose(myInPipe); myInPipe:= INVALID_HANDLE_VALUE; myOutPipe:=INVALID_HANDLE_VALUE;end;

//=============Loop Infinito para leitura do USB===============================procedure usb_thread.Execute;begin while true do begin GetUSBData; Sleep(10); end;end;

end.//===================Fim da Rotina USB===================================

//===================Início da Rotina DRAW================================

Page 90: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

88

unit draw;

interface

uses Graphics, Windows, Classes, SysUtils, Dialogs;

type draw_thread = class(TThread) private // Private declarations protected procedure Execute; override; end;

procedure UpdateDrawBuffer; procedure DrawData; procedure ClearScreen; procedure CleanDrawBuffer1; procedure CleanDrawBuffer2;

var hold: boolean = false; next_start_h_scale: integer = 0;

implementation

uses main, usb;

var draw_buffer1: array[1..320] of smallint; // guarda os pontos já lidos draw_buffer2: array[1..320] of smallint; draw_buffer1_index: integer = 1; draw_buffer2_index: integer = 1;

procedure draw_thread.Execute;begin while true do begin UpdateDrawBuffer; ClearScreen; DrawData; Form1.DXDraw1.Flip; end;end;

//=================Esvazio buffer do desenho 1===============================procedure CleanDrawBuffer1;var i: integer;begin for i:=1 to length(draw_buffer1) do begin draw_buffer1[i] := -1; draw_buffer2[i] := -1; end;end;

//=================Esvazio buffer do desenho 2===============================

Page 91: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

89

procedure CleanDrawBuffer2;var i: integer;begin for i:=1 to length(draw_buffer2) do begin draw_buffer1[i] := -1; draw_buffer2[i] := -1; end;end;

//=================Atualiza o buffer do desenho==============================procedure UpdateDrawBuffer;var usb_buf, draw_buf, i: integer;begin ///////////// // canal 1 // /////////////

draw_buf:=-1;

// acha o inicio do buffer 1 for i:=1 to length(draw_buffer1) do if draw_buffer1[i]=-1 then begin draw_buf:=i; break; end;

// buffer cheio, apaga if draw_buf=-1 then begin CleanDrawBuffer1; draw_buf:=1; end;

// skip := hscale/hscale_default;

// copia todo o USB buffer usb_buf := 1; while true do//draw_buf <= length(draw_buffer1) do begin if usb_buf > length(usb_buffer1) then break; if draw_buf > length(draw_buffer1) then begin CleanDrawBuffer1; draw_buf:=1; end; draw_buffer1[draw_buf] := usb_buffer1[usb_buf]; draw_buffer2[draw_buf] := usb_buffer2[usb_buf];

inc(draw_buf); inc(usb_buf); end; end;

//=================Limpa a tela e desenha os eixos===========================procedure ClearScreen;

Page 92: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

90

var hdivs, vdivs: integer; // numero de divisoes horizontais e verticais i: integer;begin vdivs := 10; hdivs := 10;

if not Form1.DXDraw1.CanDraw then exit;

// pinta a tela de branco Form1.DXDraw1.Surface.Fill( Form1.DXDraw1.Surface.ColorMatch(rgb(255,255,255))

);

Form1.DXDraw1.Surface.Canvas.Pen.Color:=clGray; Form1.DXDraw1.Surface.Canvas.Pen.Style := psdot;

// desenha as escalas verticais do canal 1 for i := 1 to vdivs-1 do with Form1.DXDraw1.Surface.Canvas do begin MoveTo(i*(Form1.DXDraw1.Width)div(vdivs), 0); LineTo(i*(Form1.DXDraw1.Width)div(vdivs), Form1.DXDraw1.Height); end;

// desenha as escalas horizontais do canal 1 for i := 1 to hdivs-1 do with Form1.DXDraw1.Surface.Canvas do begin MoveTo(0, i*(Form1.DXDraw1.Height)div(hdivs)); LineTo(Form1.DXDraw1.Width, i*(Form1.DXDraw1.Height)div(hdivs)); end;

Form1.DXDraw1.Surface.Canvas.Pen.Color := clBlack; Form1.DXDraw1.Surface.Canvas.Pen.Style := pssolid;

// eixo vertical Form1.DXDraw1.Surface.Canvas.Pen.Width:=1; Form1.DXDraw1.Surface.Canvas.MoveTo(Form1.DXDraw1.Width div 2, 0); Form1.DXDraw1.Surface.Canvas.LineTo(Form1.DXDraw1.Width div 2,

Form1.DXDraw1.Height);

// eixo horizontal Form1.DXDraw1.Surface.Canvas.MoveTo(0, Form1.DXDraw1.Height div 2); Form1.DXDraw1.Surface.Canvas.LineTo(Form1.DXDraw1.Width,

Form1.DXDraw1.Height div 2);

// mini divisões - horizontal for i:=0 to hdivs*5 do begin Form1.DXDraw1.Surface.Canvas.MoveTo(i*Form1.DXDraw1.Width div hdivs div 5,

(Form1.DXDraw1.Height div 2) - 3); Form1.DXDraw1.Surface.Canvas.LineTo(i*Form1.DXDraw1.Width div hdivs div 5,

(Form1.DXDraw1.Height div 2) + 3); end;

// mini divisões - vertical for i:=0 to vdivs*5 do begin

Page 93: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

91

Form1.DXDraw1.Surface.Canvas.MoveTo((Form1.DXDraw1.Width div 2) - 3, i*Form1.DXDraw1.Height div vdivs div 5);

Form1.DXDraw1.Surface.Canvas.LineTo((Form1.DXDraw1.Width div 2) + 3, i*Form1.DXDraw1.Height div vdivs div 5);

end;

end;

//=================Desenha o Canal1==================================procedure DrawData;var i, x, y, h_factor: integer;begin // muda a cor do traçado para verde Form1.DXDraw1.Surface.Canvas.Pen.Color := clGreen; Form1.DXDraw1.Surface.Canvas.Pen.Width := 2;

if not Form1.DXDraw1.CanDraw then exit;

///////////// // canal 1 // /////////////

h_factor := round(hscale1/hscale_default); i:=1; if Form1.en_canal1.Checked then while i <= (length(draw_buffer1) div h_factor) do begin // se chegou no fim do buffer, sai do loop if draw_buffer1[i] = -1 then break;

x := (i-1)*(Form1.DXDraw1.Width div (length(draw_buffer1) div h_factor)); y := draw_buffer1[i-1]; y := round((y/255)*Form1.DXDraw1.Height); // condicionamento do sinal

Form1.DXDraw1.Surface.Canvas.MoveTo(x,y);

x := (i)*(Form1.DXDraw1.Width div (length(draw_buffer1) div h_factor)); y := draw_buffer1[i]; y := round((y/255)*Form1.DXDraw1.Height); // condicionamento do sinal

Form1.DXDraw1.Surface.Canvas.LineTo(x,y);

inc(i); end;

Form1.DXDraw1.Surface.Canvas.Pen.Color := clBlue;

//=================Desenha o Canal2=================================== h_factor := round(hscale2/hscale_default); i:=1; if Form1.en_canal2.Checked then while i <= (length(draw_buffer2)/h_factor) do begin // se chegou no fim do buffer, sai do loop if draw_buffer2[i] = -1 then break;

Page 94: DISPOSITIVO PARA AQUISIÇÃO DE SINAIS E CONTROLE … · Osciloscópio USB PIC18F2550 Comunicação USB. 3 ABSTRACT The device for signal acquisition and digital control presented

92

x := (i-1)*(Form1.DXDraw1.Width div (length(draw_buffer2) div h_factor)); y := draw_buffer2[i-1]; y := round((y/255)*Form1.DXDraw1.Height); // condicionamento do sinal

Form1.DXDraw1.Surface.Canvas.MoveTo(x,y);

x := (i)*(Form1.DXDraw1.Width div (length(draw_buffer1) div h_factor)); y := draw_buffer2[i]; y := round((y/255)*Form1.DXDraw1.Height); // condicionamento do sinal

Form1.DXDraw1.Surface.Canvas.LineTo(x,y);

inc(i); end;end;

end.//==================Fim da Rotina DRAW================================