Baixar este arquivo PDF

Propaganda
DESENVOLVIMENTO DE UM SISTEMA DE
MEDIAO DE SINAIS DE SOLDAGEM - PARTE 2:
CIRCUITO DE AQUISIÇÃO DE DADOS
EDSON MACEDO COSTA1, AMÉRICO SCOTTI2.
RESUMO
Há alguns poucos anos foi introduzida nos microcomputadores uma nova porta de
comunicação serial com dispositivos, a conhecida porta USB (Universal Serial Bus),
mas muitas pessoas ainda desenvolvem projetos utilizando as portas paralela e serial.
Analisando as vantagens da porta USB, verifica-se que a nova tendência é que os novos
microcomputadores já saem de fábrica sem suporte às portas paralela e serial, como é o
caso de grande parte dos “notebooks”. Visando esta tendência, o propósito deste
trabalho é mostrar o estudo e a viabilidade de implementar um sistema de aquisição de
sinais de processos de soldagem e enviar os respectivos dados a um microcomputador
através da porta USB. Neste trabalho descreve-se todas as etapas do projeto. Concluí-se
sobre o desempenho que o sistema pode atingir.
Palavras-Chave: USB, aquisição, dados, soldagem, microcontrolador.
1
Faculdade de Engenharia Elétrica, Universidade Federal de Uberlândia, Campus Santa Mônica, CEP
38400-902, Uberlândia, MG, [email protected] (relatório referente à bolsa de IC processo
CNPq no. 116998/2004-0, no período de Agosto de 2005 a Setembro de 2006)
2
Faculdade de Engenharia Mecânica, Universidade Federal de Uberlândia, Campus Santa Mônica, CEP
38400-902, Uberlândia, MG, [email protected] (processo CNPq no. 50.2754/2004-4 Bolsa por
Cota por Orientador)
1
ABSTRACT
Recently, it was introduced in the microcomputes world a new serial port for device
communication, the USB port (Serial Universal Bus). Despite of the potentiality of the
USB use, a lot of people still develop projects using the parallel and serial port.
Analyzing the advantages of the USB port, it was verified that the current tendency is
that the new microcomputers already leave leave factory without support to the parallel
and serial port, as it is the case of great part of the “laptops”. Following this tendency,
the purpose of this work is to show the study and viability of implementing a system for
signal acquisition of welding processes and sending the respective data to a
microcomputer through it USB port. It is also described the whole stage of the project.
It is concluded the system is feasibly.
Keywords: Welding, voltage, current, speed.
2
1. INTRODUÇÃO
O
objetivo
desse
trabalho
é
A
figura
1
ilustra
o
modelo
demonstrar as etapas de construção de
resumido do sistema de aquisição de
um circuito que possa realizar a
dados. Num primeiro momento os
aquisição de dados de um sistema de
valores de cada canal são condicionados
medição de soldagem desenvilvido
e logo após são introduzidos nas
anteriormente no LAPROSOLDA. O
devidas
sistema permite realizar as medidas de
conversor AD do microcontrolador
tensão,
de
usado, para que posteriormente possam
alimentação do arame. Uma vez que
ser convertidos em valores digitais e
estes sinais dos experimentos são
assim possam ser enviados para o
adquiridos, os mesmos são enviados a
computador através da porta USB.
corrente
e
velocidade
entradas
analógicas
do
um microcomputador através da porta
USB. O referido sistema pode realizar a
2. MATERIAL E MÉTODOS
aquisição de até oito canais analógicos,
sendo quatro canais de tensão, dois
Para realizar a aquisição dos dados
canais de corrente, um de velocidade de
foram utilizados o microcontrolador
alimentação e um último canal que pode
PIC16F877
ser utilizado por outro sensor qualquer,
módulo conversor Paralelo – USB da
desde que usando um circuito adequado
DLP-DESIGN,
de condicionamento do sinal.
FT245BM. Em um primeiro momento,
da
MICROCHIP
baseado
no
e
o
chipset
através dos sensores de tensão, corrente
e velocidade os sinais analógicos são
condicionados através dos circuitos de
condicionamento de sinais apresentados
na parte 1 do trabalho. Em seguida,
estando os sinais analógicos numa faixa
entre 0 e 5 volts, são convertidos de
sinais analógicos para sinais digitais de
10 bits, após a conversão os dados são
transmitidos a um microcomputador
Figura 1 - Diagrama geral do sistema
através da porta USB.
3
A porta USB foi escolhida como
compatível com as anteriores, mas com
meio de transmissão dos dados devido à
alguns aperfeiçoamentos que permitiam
facilidade e a comodidade para o
que a mesma atingisse velocidades de
usuário em simplesmente conectar o
transmissão na ordem de 480Mbps, o
equipamento ao computador e o mesmo
que equivale a 60 milhões de bytes por
ser reconhecido automaticamente pelo
segundo.
sistema
e
bastando
simplesmente
O
barramento
USB
permite
a
instalar o driver necessário e utilizar
conexão de até 127 dispositivos em uma
normalmente o sistema de aquisição
única porta. Para que isto ocorra é
através de um software especializado.
necessário utilizar HUBs conectados em
Outra grande vantagem reconhecida que
cascata. Normalmente cada HUB USB
fez a diferença na utilização da porta
dispõe de 4 a 8 portas onde podem ser
USB é que os computadores mais
conectados mais HUBs ou dispositivos.
modernos já vem com duas ou mais
Os HUBs são componentes na topologia
portas USB disponíveis enquanto as
de uma rede USB. Eles fornecem novos
portas serial e paralela num futuro
canais físicos para que mais dispositivos
muito próximo deixarão de serem
possam ser conectados a rede.
usadas.
2.1.
INTRODUÇÃO
AO
BARRAMENTO USB
O USB (Universal Serial Bus)
surgiu em 1995 com uma parceria entre
várias empresas de alta tecnologia
(Compaq, HP, Intel, Lucent, Microsoft,
NEC e Philips). As primeiras versões
foram a 1.0 que alcançava velocidades
de transmissão na ordem de 1,5Mbps
(Low-Speed) e a 1.1 a qual alcançava
velocidades entre 1,5Mbps a 12Mbps,
sendo a mesma conhecida como FullSpeed. No ano 2000 foi lançada a
versão 2.0 conhecida como high-speed
Figura 2 - Exemplo de um HUB USB
4
Os HUBs costumam ser ligados à
Na figura 3 temos um exemplo de uma
rede elétrica para suprir alimentação aos
topologia típica de rede USB. Também
seus circuitos internos e ao mesmo
é
tempo fornecer corrente elétrica aos
cumprimento máximo do cabo USB é
dispositivos conectados ao mesmo. No
de 5 metros, devendo portanto a
entanto existem alguns HUBs que
distância
alimentam-se do próprio barramento
dispositivo ser limitada a esta medida.
importante
entre
salientar
um
que
HUB
e
o
um
USB, daí a necessidade de se verificar
se os dispositivos conectados a este tipo
de HUB requerem muita alimentação do
barramento USB, pois a porta USB
possui
um
limite
máximo
de
fornecimento de corrente elétrica. Na
maioria dos casos, a porta USB pode
fornecer uma corrente máxima de 500
mA, se porventura algum HUB ou
dispositivo
tentar
consumir
mais
corrente a máxima corrente que a porta
puder fornecer, o mesmo permanecerá
conectado fisicamente à porta USB,
porém não poderá comunicar-se com a
Figura 3 - Topologia de uma rede USB
mesma.
São através dos HUBs que o
Host/controlador
tem
o
poder
de
detectar se um dispositivo foi removido
ou inserido do sistema, como também
saber se o mesmo operará em baixa ou
alta
velocidade.
HUBs
também
fornecem energia através de suas portas
secundárias à dispositivos que também
se alimentam do barramento USB.
Num sistema USB só existe um
controlador
(HOST),
os
demais
componentes são HUBs e dispositivos.
Numa rede USB conforme já foi
dito, tem-se somente um controlador
HOST e podendo ser conectados vários
HUBs
e
dispositivos.
Dispositivos
como: Impressoras, Modem ADSL e
Webcam, consomem muita banda do
sistema, isto quer dizer que ao conectarse mais dispositivos a uma rede o
desempenho da mesma será diminuído,
isto pode ser notado para barramentos
USB versão 1.0 e 1.1 (12 Mbps max).
5
No entanto para versões 2.0 a queda de
características e poder de Host, ou seja,
performance é imperceptível uma vez
podendo
que a banda do barramento 2.0 (480
software e hardware, funcionando assim
Mbps) é extremamente superior à
como se fosse um PC.
acomodar
a
camada
de
versão 1.1.
O Host USB se comunica com os
dispositivos através do seu controlador
(Chipset e outros componentes). O
controlador Host pode ser encontrado
na própria estrutura base da placa-mãe
do computador, ou pode ser adicionada
num dos slots do barramento PC.
É função do controlador Host:
detectar a inclusão e remoção de
dispositivos, gerenciar o fluxo de dados
entre os hubs e dispositivos conectados,
fornecer
tensão
e
corrente
aos
Figura 4 controladora
Detalhes
da
placa
dispositivos conectados e monitorar os
O cabo USB é composto por quatro
sinais do bus USB.
Um circuito controlador consiste de
fios e uma malha para eliminação de
duas partes: o Driver de controle do
ruídos
Host, que é um software básico
utilizados para transportar energia para
fornecido
alimentar os dispositivos. Essa energia é
pelo
fabricante
e
um
simples.
pela
Desses,
dois
controladora
são
controlador Host (circuito que processa
fornecida
e
eletronicamente os sinais do barramento
gerenciada pelo driver do controlador
USB).
Host.
É no Host onde o driver (software)
O cabo USB usa cores padrões para
do controlador é executado, dividindo o
os fios, sendo assim, o fio de cor
processamento. Tanto a camada de
vermelha é chamado Vbus (5V), ou seja
software quanto a de hardware, estão
é o fio positivo de fornecimento de
acomodadas
Host
energia. O fio de cor preta é o GND
(hospedeiro). Este Host tem que ser um
(0V). Este é o pino negativo do
computador,
dispositivos
num
único
já
existem
fornecimento de energia. O bus USB
portáteis
com
pode fornecer no máximo 5V de tensão
porém
6
e 500mA de corrente elétrica, isto para
que um novo dispositivo foi conectado
cada porta. Os outros dois fios D+
ao sistema e também para informar que
(dado+) e D- (dado-) são usados pelo
o dispositivo irá se comunicar com o
sistema USB para transferência entre o
Host
Host, Hub e dispositivos. Todos os
dispositivos que se comunicam em
sinais de dados trafegam apenas por
baixa velocidade o resistor de pull-up
esses dois fios.
deve ser conectado ao sinal D- ao invés
em
alta
velocidade.
Para
do sinal D+.
Figura 6 - Configuração de alta
velocidade
Figura 5 - Interior do cabo
Outro detalhe importante é que
internamente os fios D+ e D- são
entrelaçados com o objetivo de diminuir
as interferências eletromagnéticas.
Na
figura
6
tem-se
Observa-se
que
de um dispositivo, é necessário que a
tensão que circule entre o resistor de
1k5 até o D+ ou D- persista por mais de
uma
configuração física entre o Host e o
dispositivo.
Para que o Host detecte a presença
no
dispositivo há um resistor de pull-up de
1k5 ohm ligado desde o sinal D+ e uma
tensão de 3,3V. Esta tensão é facilmente
conseguida através de um regulador de
tensão ligado ao Vbus e ao GND do bus
USB. Este resistor de pull-up é muito
importante, e serve para avisar o Host
2,5 microssegundos. Já a desconexão de
um
dispositivo
é
detectada
pela
ausência da tensão que circula pelo
resistor de pull-up, por mais 2,5
microssegundos. Esta configuração é a
base para o funcionamento do sistema
plug-and-play do bus USB.
Outra
característica
muito
importante do barramento USB que
deve ser mencionada é que há dois tipos
7
de interface que um dispositivo USB
uma forma extremamente trabalhosa e a
pode trabalhar: Bus-Powered e Self-
menos recomendada, no entanto há
Powered.
o
microcontroladores que já dispõem de
dispositivo recebe toda a alimentação
todo o protocolo internamente em sua
necessária da própria porta USB através
memória como é o caso do PIC18F4450
dos pinos Vbus e GND. Já o tipo Self-
da MICROCHIP. Uma outra maneira é
Powered o dispositivo não consome
através de um chipset que carrega
energia do barramento, possuindo fonte
dentro de si toda a funcionalidade do
própria. Para que um equipamento
protocolo
possa trabalhar no modo bus-powered
microcontrolador de todo o trabalho
ou self-powered o desenvolvedor deve
pesado, esta por sua vez será o método
configurar o circuito eletrônico de
utilizado para o projeto em questão.
No
Bus-Powered
forma a trabalhar na forma desejada. No
caso
do
projeto
da
interface
USB,
livrando
o
Diferente da porta paralela e serial
de
onde simplesmente através dos sinais
aquisição de dados o modo escolhido
elétricos dos pinos e um programa
foi o self-powered.
básico é possível se comunicar com um
Uma das partes mais importantes do
dispositivo. Na porta USB isso só é
funcionamento do sistema USB é o
possível se o dispositivo carregar o
protocolo, é através dele que um ou
protocolo USB num chipset ou mesmo
mais dispositivos conversam e trocam
dentro de um microcontrolador. Assim,
informações com o Host. No Host a
conclui-se que o combustível do sistema
pilha do protocolo está disponível em
USB é seu protocolo, sem ele não há
forma de drivers de arquivos .sys, dll,
troca
drv, exe, etc. Já no dispositivo o
dispositivos.
de
informações
entre
os
protocolo pode ser encontrado dentro de
Será utilizado o chipset FT245BM
um microcontrolador específico, como
da FTDI, o mesmo possui todo o
por exemplo um PIC que disponha de
protocolo
certa quantidade de memória. Nesse
internamente. O FT245BM provê um
caso o protocolo é escrito com base na
método eficiente de baixo custo para
norma USB, em alguma linguagem
transferir dados de um periférico a um
especifica
como
C,
PC através da porta USB. Este chipset
Assembler
ou
linguagem
permite transmitir até 1 Megabyte por
qualquer, depois é compilado e gravado
segundo, sua arquitetura permite que o
na memória do microcontrolador. Esta é
mesmo seja conectado a qualquer
por
outra
exemplo
USB
implementado
8
microcontrolador
com
portas
I/O
utiliza os 8 bits do barramento de
digitais. A FTDI fornece gratuitamente
comunicação de forma bidirecional, isto
Dll’s que permitem a um software
é, leitura e escrita na memória.
escrito em qualquer linguagem acessar
o dispositivo diretamente, isso faz com
que
se
economize
tempo
no
desenvolvimento.
2.2. DLP-USB245M
O trabalho em questão utiliza uma
interface de comunicação com a porta
USB criada pela DLP-DESIGN que
permite conectar os mais variados
Figura 7 - Módulo DLP-USB245M
dispositivos com baixo custo e alta
eficiência. O módulo DLP-USB245M é
um conversor USB-Paralelo baseado no
chipset FT245BM, o mesmo funciona
basicamente como uma fila do tipo
FIFO (first-in first-out), ou seja as
primeiras informações a chegar são as
primeiras a sair. A composição do
módulo, além do chipset mencionado, é
uma memória EEPROM de referência
93C46. A EEPROM
possibilita a
customização de parte da configuração
Figura 8 - Chipset FT245BM
2.2.1. DRIVERS
básica da interface, como a velocidade e
forma de comunicação, strings de
O
fabricante
dois
do
dispositivo
informações como o PID e VID da
disponibiliza
Drivers
para
o
interface USB, bem como seu número
desenvolvimento de aplicações, sem
serial.
custo adicional, ou seja, o pagamento de
No caso do FT245BM, ele é
royalities, que propicia o tráfego de
responsável por implementar uma FIFO
dados via porta USB. Um dos drivers, o
tanto de leitura como de escrita que
VCP (Virtual Com Port), faz com que o
9
DLP-USB245M se comporte como uma
2.2.2. PINOS DO DLP-USB245M
porta serial RS-232 estivesse conectada,
o que representa uma comunicação
O
dispositivo
DLP-USB245M,
totalmente serial entre os dispositivos
possui 24 pinos de comunicação. Destes
conectados ao USB e o Host. Outro
pinos
driver
comunicação
disponibilizado
pela
DLP-
8
são
reservados
bidirecional,
para
a
formando
DESIGN é o D2XX, que é uma
assim um barramento de 8 bits. Os
alternativa ao driver VCP. Ele permite a
pinos WR e RD# são pinos de entrada e
criação de softwares através da API
servem para que um dispositivo externo
disponibilizada
DLP-DESIGN,
dispare o ciclo de escrita ou de leitura,
bem como a possibilidade do FT245BM
respectivamente. Os pinos TXE# e
de
aplicações
RXF# correspondem aos sinais de saída
desenvolvidas em C++, C, Object
do módulo. Estes pinos de saída
Pascal, através de uma simples DLL. A
indicam o estado atual da FIFO, ou seja,
arquitetura do driver D2XX é baseada
indicam se a FIFO de transmissão está
no padrão de drivers propostos pela
vazia ou se a FIFO de recepção está
Microsoft, o WDM ou Windows Model,
cheia, respectivamente.
pela
interfacear
com
as
que nada mais é que um padrão de
desenvolvimento de drivers para o
sistema
operacional
Windows,
isto
desenvolvido
funcionará
Microsoft
é,
qualquer
driver
sob
esse
padrão
qualquer
sistema
em
operacional Windows.
Para esse projeto foi escolhido o
Driver D2XX, considerando a grande
quantidade de funções disponibilizadas
pela
DLL,
o
que
ajuda
no
desenvolvimento de uma aplicação para
teste do equipamento de aquisição.
Figura 9 - Indicação dos pinos do DLPUSB245M
10
2.2.3.
CICLO
DE
ESCRITA
E
LEITURA
Conforme pode ser visto na figura
10 a escrita de um byte na FIFO de
transmissão,
Como o trabalho é baseado num
dispositivo digital, é necessário que se
é
feita
através
do
barramento de 8 bits D[7..0] e do sinal
WR.
entenda o seu funcionamento de escrita
bem como o de leitura de dados. Com o
entendimento do funcionamento destes
dois
ciclos,
é
possível
construir
qualquer aplicação envolvendo a porta
USB.
O DLP-USB245M é dotado de um
cristal de quartzo com freqüência de 6
Mhz, através dele é possível realizar os
ciclos de leitura e escrita, já que não
existe entrada para sinais de clock
externos ao módulo. A figura 10 ilustra
um ciclo de escrita no dispositivo, bem
como
os
tempos
de
definidos pelo fabricante.
comunicação
Figura 11 - Ciclo de leitura
O dado presente no barramento é
escrito na FIFO na transição negativa do
sinal WR. O sinal TXE# indica quando
a FIFO está cheia (TXE# = 1). O ciclo
de leitura assemelha bastante com o
ciclo de escrita, como pode ser visto na
figura 11. Para que a leitura ocorra o
sinal de RXF# tem que estar em 0, para
indicar que existem bytes a serem lidos.
Estando satisfeita esta condição, devese colocar o sinal de RD# para 0,
fazendo com que os dados existentes no
buffer de recepção sejam lidos. Para que
Figura 10 - Ciclo de escrita
se possa capturar os dados válidos, o
11
sinal de RD# deve ficar em 0 por no
conectado, não pode exceder o consumo
mínimo 50ns.
de 100mA. Este tipo de ligação é
comumente utilizado quando se esta em
2.2.4. ALIMENTAÇÃO DO DLP-
fase de teste com o dispositivo.
USB245M
Todo
componente
eletrônico
necessita de alimentação elétrica, e o
DLP-USB245M não foge a esta regra.
O fabricante deste componente fornece
várias configurações de alimentação
possíveis para a elaboração de projetos.
O projetista é quem deverá escolher a
melhor configuração para o seu projeto.
Figura 13 - Alimentação via fonte
externa (TTL)
Figura 12 - Alimentação via barramento
USB
A figura 12 ilustra a forma de
alimentação
própria
oriunda
do
Figura 14 - Alimentação via fonte
externa (CMOS)
barramento USB. Para que este tipo de
alimentação ocorra é preciso interligar
A
figura
13
demonstra
como
os pinos (3) RESET#, (10) VCC-IO,
alimentar o DLP-USB245M por meio
(11) EXT-VCC e (12) PORT-VCC.
de uma fonte externa de +5V. Para que
Este tipo de alimentação deve prover
essa forma de alimentação ocorra é
+5V ao sistema. O mesmo, ao ser
preciso interligar os pinos (3) RESET#,
12
(10) VCC-IO, (11) EXT-VCC a uma
A aplicação Hosts será desenvolvida
fonte de +5V. O DLP-USB245M foi
utilizando a IDE Borland C++ Builder
feito para trabalhar tanto com a família
6, para isto serão utilizadas algumas
TTL como com a família CMOS de
funções fornecidas
circuitos
através da API correspondente ao
integrados.
A
figura
13
demonstra uma ligação ideal para a
Driver D2XX utilizada no projeto.
utilização com a família TTL, que opera
a +5V.
A
aplicação
basicamente
Internamente
o
DLP-USB245M
pelo fabricante
deverá
as
transmissão e
realizar
operações
recepção
de
de
dados.
possui um regulador de tensão que faz
Através destas operações, incorporadas
com
+3.3V
a interface gráfica, é possível visualizar
obedecendo aos padrões da família
o tráfego de dados, entre a aplicação e o
CMOS. Para que o DLP-USB245M
DLP-USB245M. Para que o aplicativo
opere a 3.3V é necessário que os pinos
funcione corretamente é necessário
(3) RESET#, (10) VCC-IO, (11) EXT-
utilizar as seguintes funções disponíveis
VCC,
na API:
que
ele
(12)
trabalhe
a
PORT-VCC
sejam
interligados e conectados a uma fonte
-
FT_ListDevice()
de
-
FT_Open()
USB
-
FT_Close()
utilizando transistores. Este tipo de
-
FT_GetStatus()
ligação foge ao foco do projeto em
-
FT_Read()
questão, ficando a cargo do manual do
-
FT_Write()
fabricante para maiores explicações.
-
FT_ResetDevice()
de +3.3V, ver figura 14
Existe
alimentação
ainda
via
outra
forma
barramento
A forma de alimentação escolhida
para o projeto foi a alimentação externa
A
função
FT_ListDevice()
é
para família TTL, uma vez que será
utilizada para informar a existência de
utilizado uma interface de comunicação
um
com um microcontrolador PIC que faz
baramento
uso de sinais TTL, ou seja +5V.
parâmetros desta função é possível listar
DLP-USB245M
USB.
conectado
Dependendo
ao
dos
o número de DLP’s conectados ao
2.2.5.
DESENVOLVIMENTO
APLICAÇÃO HOST
DA
barramento
USB,
obter
todas
as
os
informações
disponíveis
para
dispositivos
conectados
e
outras
13
funcionalidades. A Figura 15 ilustra a
Para a sua utilização é necessário
utilização desta função.
informar o identificador do dispositivo
que se deseja fechar para o parâmetro
ftHandle. A figura 17 ilustra o uso dessa
função.
Figura 15 - Exemplo de utilização da
função FT_ListDevices()
A função FT_Open() é utilizada
para abrir o dispositivo conectado ao
Figura 17 - Exemplo de utilização da
função FT_Close()
barramento USB. Para realizar esta
operação, é necessário informar a sua
posição,
obtida
pela
função
FT_ListDevice(). A figura 16 ilustra um
exemplo de utilização desta função.
A função FT_GetStatus é utilizada
em diversos trechos de uma aplicação,
ela serve para informar o status atual
das filas de recepção e transmissão. É
através das informações obtidas por esta
função que pode-se utilizar com sucesso
as funções FT_Read() e FT_Write().
A função FT_Read é utilizada para
ler os dados disponíveis no dispositivo
que esta sendo utilizado. Para que esta
função seja utilizada com sucesso é
necessário informar, para o parâmetro
ftHandle, o identificador do dispositivo
Figura 16 - Exemplo de utilização da
que esta sendo utilizado e a variável que
função FT_Open()
irá armazenar as informações recebidas
A função FT_Close() é usada para
fechar um dispositivo que já está aberto.
para o parâmetro lpBuffer. A figura 18
ilustra a utilização desta função.
14
A função FT_Write() é utilizada
para
escrever
dados
na
fila
de
transmissão, do dispositivo. Para que
esta
operação
sucesso
é
seja
realizada
necessário
com
informar
o
identificador do dispositivo em uso para
retornar FT_OK, caso contrário irá
retornar o erro correspondente.
De
posse
de
todas
estas
informações, é possível desenvolver um
aplicativo que faça uma interface de
comunicação com o DLP-USB245M.
o parâmetro ftHandle e informar qual a
variável que contém os dados a serem
escritos no DLP. A figura 19 mostra
um exemplo de como utilizar esta
função corretamente.
Figura 19 - Exemplo de utilização da
função FT_Write()
Figura 18 - Exemplo de utilização das
funções FT_GetStatus() e FT_Read()
Por fim, a função FT_ResetDevice()
é utilizada para resetar o dispositivo em
uso. A figura 20 ilustra uma forma de
Figura 20 - Exemplo de utilização da
função FT_Reset_Device()
utilização desta função.
Todas
as
funções
citadas
2.3. CIRCUITO DE AQUISIÇÃO
anteriormente, retornam um valor de
status. Se a operação pretendida for
realizada com sucesso, a função irá
Para realizar a conversão AD e fazer
interface
USB245M,
com
o
foi
módulo
utilizado
DLPo
15
microcontrolador
PIC16f877
da
pinos pode ser usado como entrada e
MICROCHIP. O PIC16F877 apresenta
saída e são definidos na programação.
as seguintes características:
Observe que a maioria dos pinos possui
mais de uma função. Como exemplo
-
33 pinos de I/O;
tem-se o pino 10 que tem as funções de
-
8 k de memória de programa
entrada/saída
flash;
selecionar um chip SPI (CS); ou a
-
368 bytes de memória RAM;
função de um canal A/D (AN7).
-
256
bytes
de
digital
(RE2)
e
de
memória
EEPROM;
-
Velocidade máxima de trabalho
20 Mhz;
-
Watchdog timer (WDT);
-
3 timers;
-
8 canais A/D de 10 bits;
-
1 USART síncrona/assíncrona;
-
Porta paralela escrava (PSP);
-
Porta Serial síncrona SSP, SPI e
Figura 21 - Pinagem do PIC16F877
I2C.
O PIC16F877 é composto de vários
Para
programação
do
PIC
foi
módulos como: uma unidade lógica e de
utilizado a linguagem C com base no
controle, memórias RAM e ROM,
compilador CCS e também foi utilizado
Portas de entradas e Saídas e também
o software ICPROG para realizar a
vários periféricos de grande utilidade
gravação da memória de programa do
para
PIC16f877.
projetos.
A figura 21 mostra todos os pinos
a
implementação
de
muitos
No caso do projeto foram utilizados
do PIC16F877, com seus respectivos
os
nomes e funções. Os pinos (RA0 a
analógico/digital
RA5) estão associados a porta A. (RE0,
através da programação o conversor
RE1 e RE2) a porta E. (RC0 a RC7) a
operando em modo de 10 bits. Justifica-
porta C. (RD0 a RD7) a porta D. E por
se esta escolha de operação em 10 bits e
último,
não 8 bits devido a necessidade de se ter
os
pinos
(RB0
a
RB7)
associados a porta B. Cada um desses
oito
canais
de
foi
conversão
configurado
16
maior resolução do sinal. Tem-se a
O primeiro circuito idealizado para
necessidade de se medir uma corrente
realizar a aquisição de dados e a
na faixa de (0 a 500A) logo a resolução
transmissão pela porta USB pode ser
do sinal, utilizando uma conversão de 8
visto na figura 22, este circuito como
bits e outra de 10 bits pode ser
pode ser visto é composto de um
visualizada no exemplo abaixo.
microcontrolador PIC16F877 e um
Conversão em 8 bits:
módulo DLP-USB245M.
valoranalógico
2n
valoranalógico = 500 A
n = 8bits
500
Re solução = 8 = 1,953125 A
2
Re solução =
Isto significa que:
Número
binário
00000000
00000001
Valor Analógico
equivalente
0A
1,953125 A
Conversão em 10 bits:
Re solução =
Número
binário
0000000000
0000000001
500
= 0,48828125 A
210
Valor Analógico
equivalente
0A
0,48828125 A
Figura 22 - Esquema eletrônico do
circuito de aquisição
De acordo com o exemplo mostrado
anteriormente, quanto maior o número
Como pode ser visto na figura 22 o
de bits utilizados na conversão melhor
circuito também possui um total de dez
será a resolução do sinal quando
chaves seletoras, as quais oito serviriam
convertido para um número digital.
como seletoras dos canais analógicos a
Logo devido a esse fato, foi escolhido a
serem adquiridos e outras duas chaves
configuração do conversor A/D em 10
para dar o comando de inicio e fim da
bits.
aquisição, ou seja, o equipamento
permitiria
ao
usuário
selecionar
17
manualmente
os
canais
analógicos
desejados e posteriormente acionar um
comando de inicio e logo após o
término do processo de conversão de
dados de analógico para digital.
Visando minimizar o número de
componentes físicos do equipamento,
optou-se por retirar todas as chaves do
circuito, fazendo com que o controle do
fluxo de dados deixe de ser manual e
passe a ser feito através de software.
Figura 23 - Layout do circuito de
Isto quer dizer que através de um
aquisição
software,
o
usuário
enviaria
os
comandos e opções de canais a serem
adquiridos e o respectivo software
enviaria estes bytes de comando à placa
de aquisição e a mesma realizaria as
devidas aquisições.
Com base no circuito de aquisição
da figura 22, desenvolveu-se o layout da
placa de circuito impresso que pode ser
visualizado na figura 23, um detalhe
importante
é
que
como
foi
dito
anteriormente, optou-se por retirar as
Figura 24 - Localização dos jumpers do
circuito
chaves seletoras deste circuito, porém
mantendo-se a mesma topologia deste
circuito.
Figura 25 - Foto da placa de aquisição
montada
18
3. MONTAGEM DO PROTÓTIPO E
ANÁLISE DOS RESULTADOS
Para teste da comunicação através
da porta USB, o fabricante do módulo
DLP-USB245M fornece um software
Após desenvolver e montar todas as
livre para testes chamado DLP Design
placas foi necessário a realização de
Test Application, o qual pode ser
testes para verificar o funcionamento de
adquirido através do site da mesma. A
todos os circuitos e realizar as devidas
interface gráfica deste software pode ser
calibrações
valores
visualizada na figura 28, este aplicativo
analógicos de entrada dos sensores
permite abrir e fechar dispositivos FTDI
ficassem dentro da faixa de zero a cinco
conectados à porta USB, bem como
volts na saída das placas, para que
enviar e receber os bytes através dos
pudessem ser convertidos e adquiridos
mesmos. Devido a estas facilidades,
logo em seguida pela placa de aquisição
optou-se
de dados.
projeto, por utilizar este software para
para
que
os
inicialmente
em
fase
de
os primeiros testes. Concluído a fase de
testes, seria necessário a elaboração de
um software em alguma linguagem
comercial que atendesse as necessidades
do projeto em questão.
A fim de se efetuar a comunicação
com a porta USB, foi escrito o seguinte
programa em linguagem C para o
Figura 26 - Vista frontal do protótipo
microcontrolador PIC16F877:
#INCLUDE <16F877.h>
#DEVICE ADC=10
#FUSES NOWDT,PUT,NOPROTECT
#USE DELAY(clock=20000000)
#DEFINE WR PIN_D6
#DEFINE RD PIN_D7
Figura 27 - Vista Traseira do protótipo
#DEFINE TXE PIN_D5
#DEFINE RXF PIN_D4
19
void send(int8 thebyte); //Declaração
canal4 = read_usb();
das funções de leitura e escrita
canal5 = read_usb();
int8 read_usb();
canal6 = read_usb();
void adquire(int8 canal);
canal7 = read_usb();
while(input(RXF)==1){
void main()
if(canal0 = 0x01) adquire(0);
{
if(canal1 = 0x11) adquire(1);
if(canal2 = 0x21) adquire(2);
int canal0;
if(canal3 = 0x31) adquire(3);
int canal1;
if(canal4 = 0x41) adquire(4);
int canal2;
if(canal5 = 0x51) adquire(5);
int canal3;
if(canal6 = 0x61) adquire(6);
int canal4;
if(canal7 = 0x71) adquire(7);
int canal5;
}
int canal6;
}
int canal7;
}
int comando;
}
//configura o conversor AD do PIC
}
setup_ADC_ports (all_analog);
//*******************************
setup_adc(ADC_CLOCk_INTERNAL);
********************************
***
while(true)
void send(int8 thebyte)
{
{
if(input(RXF)==0)
//envia o byte atraves da interface USB
{
SET_TRIS_B(0x00);//todos pinos da
comando = read_usb();
porta B como saida
//ler o comando da porta usb, se
comando=0xFF começa aquisicao
while(input(RXF)==1);//Quando TXE
estiver ALTO(1) nao escrever
if(comando = 0xFF){
canal0 = read_usb();
output_b(thebyte);
canal1 = read_usb();
output_low(WR);
canal2 = read_usb();
output_high(WR);
canal3 = read_usb();
20
SET_TRIS_B(0xff);//todos pinos como
send(make8(dado,0));//envia
entrada
menos significativo da variavel de 16
}
bits "dado"
o
byte
}
//*******************************
********************************
***
int8 read_usb()
{
int8 data8;
while(input(RXF)==1);//esperar
pelo
dado da USB chegar
set_tris_b(0xff);//tudo como entrada
output_low(RD);
data8=input_b();//ler dado
output_high(RD);
return data8;
}
//*******************************
********************************
Figura 28 - Aplicativo fornecido pela
***
DLP-Design
void adquire(int8 canal)
{
4. CONCLUSÃO
int16 dado;
set_ADC_channel(canal);
O
protótipo
desenvolvido
delay_us(10);
apresentou um desempenho aceitável,
dado = read_adc();
sendo que os circuitos de medição de
send(make8(dado,1));//envia
o
byte
tensão, corrente e velocidade, devem ser
mais significativo da variavel de 16 bits
calibrados antes para funcionarem de
"dado"
forma correta e assim evitar erros de
medição.
21
O próximo passo a ser realizado
Boylestad,R.,Nashelsky,L.,
com o protótipo, é realizar a aquisição
Dispositivos Eletrônicos e Teoria dos
de sinais de experimentos de soldagem,
semicondutores, São Paulo, LTC, 1998.
para assim verificar se o sistema
Gibilisco, S., Manual de Eletrônica e de
funciona adequadamente e atende as
Telecomunicações,
expectativas iniciais do mesmo.
Affonso Editores, Brasil, 2002.
Reichmann
e
Caso o sistema se mostre deficiente
Albuquerque, F., Programando em
com relação a precisão e a taxa de
linguagem C, C++ e Turbo C++, Edição
amostragem do conversor analógico
1, 1991.
para digital do PIC, pode-se usar como
Lacerda, E., Implementação de um
alternativa um conversor AD externo de
controlador em FPGA para barramento
melhores características.
USB, 2005.
Também não foi realizado nenhum
teste
para
verificar
o
tempo
de
Pereira, F., Microcontraladores PIC,
Programação em C, Edição 1, 2003.
amostragem do sistema de aquisição de
Axelson, J., USB complete, Edição 2,
dados, sendo que isto constitui-se na
2004.
próxima meta deste trabalho.
Datasheet DLP-USB245M, USA, DLPDesign, 2005.
Datasheet FT245BM, USA, FTDIChip,
4. AGRADECIMENTOS
2006.
Os autores deste trabalho agradecem ao
Datasheet PIC16877, USA, Microchip,
LAPROSOLDA pelo espaço físico e
2005.
equipamentos utilizados e ao CNPQ
Messias,
pela bolsa de Iniciação Científica.
Controle
A.,
Curso
de
USB/Serial,
dispositivos:
<http:/www.rogercom.com: acesso em:
20 fev. 2006.
5. BIBLIOGRAFIA
Garret, P.H., Analog I/O desing:
acquisition;
conversion;
recovery.
Restom, 1981.
Malvino, A. P., Eletrônica, Volume 2,
4ª Edição, São Paulo, Makron Books,
1995.
Download