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.