UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA ELÉTRICA - PDF
UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA ELÉTRICA
Download "UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA ELÉTRICA"
Thalita Barata Freire
1 UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA ELÉTRICA GERADOR DE FUNÇÕES MICROCONTROLADO COM INTERFACE WIRELESS NO COMPUTADOR Curitiba, 2008.
2 Felipe Ehlke Anastacio Marcos Martinez GERADOR DE FUNÇÕES MICROCONTROLADO COM INTERFACE WIRELESS NO COMPUTADOR Trabalho de Conclusão de Curso apresentado ao Curso de Engenharia Elétrica da Universidade Positivo, para obtenção de avaliação parcial da disciplina de Trabalho de Conclusão de Curso (TCC), como requisito à obtenção do grau de Engenheiro Eletricista, sob a orientação do Prof. Mauricio Perreto. Curitiba, 2008.
3 AGRADECIMENTOS Agradecemos aos nossos mestres e colegas de turma por sempre nos incentivarem e nos ajudarem em todas as dificuldades que tivemos durante a criação e implementação. A Universidade Positivo por sempre nos fornecer os materiais e livros necessários para o embasamento teórico e prático para a construção desse projeto. A todos que participaram de várias formas da continuidade, do aprimoramento desse projeto ou que contribuíram para a realização deste trabalho. Ao Prof. Mauricio Perretto, orientador e amigo que participou conosco em todos os momentos críticos da criação desse produto.
4 Os cientistas estudam o mundo como ele é, os engenheiros criam um mundo como ele nunca havia sido. - Theodore von Karman
5 RESUMO O gerador de funções é um instrumento eletrônico desenvolvido para gerar sinais elétricos, em formas de onda, com variadas freqüências (de Hz até Mhz) e amplitudes. Sua vasta aplicação no campo da Engenharia Elétrica cria uma necessidade de um maior grau de liberdade quanto as suas funções (formas de onda) possíveis de serem geradas. Esse projeto consiste exatamente em possibilitar ao usuário, através de um software, desenhar o sinal que será fornecido pelo gerador. A comunicação entre PC (personal computer) e o hardware será através de uma interface sem fio, devido a sua larga utilização na comunicação de instrumentos eletrônicos e praticidade de uso. Palavras-chave: Gerador de funções, ondas personalizadas, comunicação sem fio.
6 SUMÁRIO 1 INTRODUÇÃO PROBLEMA JUSTIFICATIVA OBJETIVOS ESPECÍFICOS Divisão do Trabalho FUNDAMENTAÇÃO TEÓRICA SINAIS BÁSICOS DE UM GERADOR SISTEMAS DIGITAIS AMOSTRAGEM QUANTIZAÇÃO COMUNICAÇÃO SEM FIO MICROCONTROLADOR Arquitetura genérica de microcontrolador ESPECIFICAÇÃO TÉCNICA ESPECIFICAÇÃO GERAL ESPECIFICAÇÃO FIRMWARE COMUNICADOR SEM FIO Modo Transparente Modo API (Application Programming Interface) ESPECIFICAÇÃO DO HARDWARE Memória Interna Ajustes Microcontroladores SOFTWARE IMPLEMENTAÇÃO SOFTWARE Interpolação Importação e Exportação de Arquivos HARDWARE Circuito do Microcontrolador DsPic 30F Circuito de Ajuste de Amplitude e Offset Circuito do Módulo XBee Circuito do Display LCD Circuito dos Botões Circuito de Alimentação Montagens em protoboard Diagrama Esquemático Completo do Circuito RESULTADOS MEMÓRIA EXTERNA MEMÓRIA INTERNA USO DO PLL (PHASE LOCKED LOOP) VETOR COM OS VALORES DO SOFTWARE SALVAR E ABRIR ONDAS...43
7 5.6 PROTOCOLO DE COMUNICAÇÃO ONDA PROJETADA E RESULTADO FINAL CONCLUSÕES ANÁLISE DOS OBJETIVOS CONCLUSÕES GERAIS TRABALHOS FUTUROS...48 REFERÊNCIAS...49 APÊNDICE A CÓDIGO DO DSPIC 30F APÊNDICE B CÓDIGO DO PIC 16F877A...52 APÊNDICE C CÓDIGO DO SOFTWARE...55 ANEXO A MOD_LCD.H...59 ANEXO B MANARQUIVO.CPP...61 ANEXO C CPORTA.H...62
8 LISTA DE FIGURAS Figura 1 Onda senoidal...3 Figura 2 Onda quadrada...4 Figura 3 Onda triangular...4 Figura 4 Quantização...5 Figura 5 Exemplo de Aliasing...7 Figura 6 Nível de quantização...8 Figura 7 Microcontrolador com os seus elementos básicos e ligações internas...10 Figura 8 Unidade de entrada/saída que fornece comunicação com o mundo exterior...11 Figura 9 Arquitetura Harvard...12 Figura 10 Blocos do Projeto...15 Figura 11 Fluxograma do Firmware...16 Figura 12 Placa CON-USBBEE...17 Figura 13 Módulo XBee-Pro com placa CON-USBBEE em uso...18 Figura 14 Módulo XBee-Pro XBP24-AWI Figura 15 Tela do programa X-CTU...19 Figura 16 Frame de dado padrão RS232 (8-N-1)...20 Figura 17 Estrutura do Frame de dados no modo API...21 Figura 18 Espaço de programação para o mapa de memória do Dspic 30F Figura 19 Interface do software...25 Figura 20 Fluxograma do software...25 Figura 21 Software em uso...26 Figura 22 Tela Inicial...27 Figura 23 Software em uso...28 Figura 24 Diagrama Esquemático do DsPIC 30F Figura 25 Diagrama Esquemático do PIC 16F877A...31 Figura 26 Sinal obtido com Conversor Digital para Analógico...32 Figura 27 Configuração Somador Inversor com ajuste de Offset...33 Figura 28 Sinal obtido com Amplificador Operacional...34 Figura 29 Diagrama Esquemático do Módulo XBee...35 Figura 30 Diagrama Esquemático do Display LCD...35 Figura 31 Diagrama Esquemático dos Botões...36 Figura 32 Diagrama Esquemático da Alimentação do Circuito...37 Figura 33 Montagem do circuito em protoboard...38 Figura 34 Diagrama Esquemático Completo...39 Figura 35 Onda com PLL (a) e onda sem PLL (b)...42 Figura 36 Relação Ponto X Desenho...42 Figura 38 Onda Desenhada...43 Figura 39 Onda Aberta a partir do arquivo em.csv...44 Figura 39 Protocolo de Comunicação...45 Figura 40 Onda desenhada no software...45 Figura 41 Onda Reproduzida no Hardware...46
9 LISTA DE TABELAS Tabela 1 Tabela de Quantização...8 Tabela 2 Características Risc...13 Tabela 3 Descrição dos pinos dos módulos XBee/XBee-Pro...19
10 LISTA DE SÍMBOLOS/ABREVIATURAS/SIGLAS Hertz (Hz) - Unidade de freqüência. Volts (V) - Unidade de tensão. Km/s - Unidade de Velocidade. M/s - Unidade de Velocidade. PC - Personal Computer. PWM - Pulse Width Modulation (Modulação por Largura de Pulso). CPU - Central Processing Unit (Unidade Central de Processamento). ULA - Unidade Lógica Aritmética. OPCODE - Código de operação. Tx - Transmissor Rx - Receptor DsPIC - Processador Digital de Sinais da Microchip LDO - Low Drop-Out (Regulador de Tensão) LED - Light Emitting Diode (Diodo Emissor de Luz) USB - Universal Serial Bus (Barramento Serial Universal)
11 1 INTRODUÇÃO O gerador de funções é um instrumento técnico fundamental na área da Engenharia Elétrica. Ele abrange uma grande variedade de utilização, devido a ser um gerador de três sinais básicos, que são usados frequentemente. Sendo, o maior exemplo o sinal senoidal, que é utilizado na rede elétrica aberta. Seu uso também esta intimamente ligado a geração de sinais quadrados, sendo sua aplicação na área da eletrônica digital. Outra aplicação é a onda triangular, sendo usada na resposta de circuitos que necessitem de excitação de sinais lineares. Junto com os sinais, o gerador possui uma vasta possibilidade de ajustes de controle, para a forma de onda escolhida, desde a freqüência, amplitude, duty cycle, offset, entre outros. 1.1 PROBLEMA O gerador, mesmo sendo um instrumento de amplo uso, não permite ao seu usuário a criação de sinais próprios, para experimentos que possuam aplicações mais específicas, como a resposta de capacitores e circuitos ressonantes a diferentes tipos de sinais de entrada. Com a geração de apenas três tipos de sinais, o usuário necessita de tempo para harmonizá-lo com o circuito ao qual irá testar, para evitar que haja alguma avaria nos componentes. Ou não se consiga o resultado esperado. 1.2 JUSTIFICATIVA O projeto tem como objetivo suprir a necessidade de um maior número de sinais. Para isso, através de uma interface no PC, na qual o usuário gere sinais discretos, através do uso de um mouse, tenha a possibilidade de selecionar a amplitude das amostras da forma de onda desejada, marcando os pontos no gráfico por onde ela deva passar e, essa onda seja ge-
12 2 rada na saída. A comunicação entre PC e hardware é feita por dois módulos de comunicação sem fio, permitindo que o usuário não necessite mais do computador. Podendo levar o hardware para uma bancada ou para o campo, permitindo assim o início do uso. 1.3 OBJETIVOS ESPECÍFICOS Uma boa aplicação é na área de ensino didático. No qual com os sinais fornecidos pode-se ver a reação de diferentes componentes. Assim como criar modulações para esses sinais, verificar período, continuidade, respostas transitórias e permanentes de sistemas. Os limites de operação para o gerador são de 20 a 100 KHz nos sinais amostrados e com uma amplitude de -10 V até +10 V. A decisão de usar um sistema sem fio deve-se ao fato de que a comunicação wireless vem sendo mais comum a todos os equipamentos eletrônicos que necessitam de transmissão de dados. Tornando assim o gerador um equipamento possível de comunicação com outros instrumentos e até mesmo com computadores portáteis Divisão do Trabalho O trabalho apresentado está dividido em capítulos. Primeiramente vem a fundamentação teórica, onde é descrito a base do tratamento de sinais, os três tipos de ondas comuns, a comunicação sem fio usada e o uso do microcontrolador, além da definição de alguns possíveis empecilhos nesse projeto como a parte de quantização e aliasing. Logo após há a especificação técnica. Onde é abordada a idéia geral do projeto, divisão em blocos, especificação do software e seu fluxograma, assim como especificação do hardware e sua montagem.
13 3 2 FUNDAMENTAÇÃO TEÓRICA Neste capitulo é apresentado o embasamento teórico e fundamentos necessários ao desenvolvimento desse trabalho. 2.1 SINAIS BÁSICOS DE UM GERADOR O gerador de funções gera três ondas analógicas; senoidal, triangular e retangular. Um sinal continuo é aquele que possui um número infinito de valores em um determinado intervalo de tempo. Matematicamente, todo sinal é uma função que toma um valor em Cada ponto do espaço em que está definida. A amplitude do sinal varia com o seu deslocamento no tempo. Como exemplo, a tensão disponível na rede elétrica brasileira, varia senoidalmente do seu mínimo para seu máximo e novamente para seu mínimo sessenta vezes por segundo. Isso é devido a sua freqüência de 60 Hz, a figura 1 exemplifica o sinal dito. Figura 1 Onda senoidal Fonte própria Outro modelo de sinal contínuo que é usado frequentemente é o sinal retangular. Essencialmente usado na eletrônica digital, onde ocorre uma variação brusca e instantânea de valores, criando assim os sinais quadrados como mostra a figura 2.
14 4 Figura 2 Onda quadrada Fonte própria O terceiro sinal fornecido é o triangular, utilizado em sistemas que necessitam de variação linear. Ele também é usado para fazer modulações. O sinal é mostrado na figura 3. Figura 3 Onda triangular Fonte própria A eletrônica analógica com sua enorme quantidade de variáveis, cria uma difícil precisão na busca de resultados em experimentos. Para contornar isso, utilizamos uma técnica chamada de conversão digital, onde os sinais são representados através de pulsos finitos, permitindo uma maior exatidão e uma maior alocação de informações em um mesmo espaço de banda.
15 5 2.2 SISTEMAS DIGITAIS Sistemas digitais possuem muitas vantagens sobre os sistemas analógicos. Estes últimos são circuitos construídos a partir de componentes de hardware, cujas propriedades podem variar consideravelmente dentro da especificação dos fabricantes. Elas também podem variar com a temperatura, alterando o comportamento do circuito. Em contra partida, o comportamento digital é previsível. Sendo que não é afetado por esses problemas, porque é majoritariamente feito por software. Pelas mesmas razões, os sistemas digitais são bem menos afetados por ruídos que os analógicos, além de consumirem muito menos energia. Os sistemas digitais são perfeitos para tratamento de sinal por sua exatidão, por isso serão utilizados no projeto para conferir uma maior precisão na passagem das informações do gráfico para o hardware pelo módulo wireless. Um sinal digital é composto por um somatório de impulsos que representam a- mostras do sinal analógico escolhido para ser digitalizado. Esse processo chama-se quantização é o processo de atribuição de valores discretos para um sinal cuja amplitude varia entre infinitos valores, como apresenta a figura 4. Esse processo é realizado através da amostragem. (a) Figura 4 Quantização [Roland 2008] (b)
16 6 2.3 AMOSTRAGEM Um sinal analógico, para ser representado de forma digital, necessitaria ser dividido em um número infinito de pontos de informação. O processamento digital de sinais utiliza um computador, ou um microprocessador. Esses elementos, computadores e microprocessadores, não podem armazenar infinitas informações, sendo necessário o processo de amostragem. A amostragem reduz o número de pontos para um nível aceitável, sem que a forma do sinal original seja perdido. A freqüência de amostragem necessária para que se capture um número suficiente de pontos obedece a Teoria de Amostragem de Nyquist [VAN DE VEGTE 2002], onde ele diz que a freqüência de amostragem deve ser no mínimo o dobro da freqüência do sinal a ser amostrado. Como exemplo, se um sinal que contém uma freqüência de 20 khz, deve ser a- mostrado vezes por segundo, ou seja, a uma freqüência de 40 khz. Caso contrário, com uma freqüência de amostragem muito baixa, há a possibilidade de ocorrer um erro chamado aliasing. A figura 5 mostra os efeitos de uma baixa amostragem. Nele um sinal de 40 khz é usado para amostrar um grupo de sinais, de 10 khz até 80 khz. Os pontos de amostragem, iguais para todos os sinais, são representados em linhas tracejadas verticalmente. De acordo com a teoria de Nyquist, somente sinais de até 20 khz poderiam ser amostrados usando uma taxa de amostragem de 40 khz. O sinal de 30 khz, mostrado na terceira janela da figura 4(a), tende a parecer como 10 khz devido a insuficiência de pontos. E sinais de freqüências superiores, tendem a parecer freqüências na faixa de 0 Hz a 20 khz pelo mesmo motivo.
17 7 (a) (b) Figura 5 Exemplo de Aliasing [VAN DE VEGTE 2002] Esse erro é chamado aliasing. A maioria das pessoas pode percebê-lo quando assiste a um filme e tem a ilusão das rodas de um carro parecendo estar rodando para trás. Isso é um resultado direto de que o número de quadros do filme não foram gravados suficientemente rápidos para capturar a rotação correta das rodas. Outro detalhe do processamento digital é a quantização. 2.4 QUANTIZAÇÃO Como já mencionado, sinais analógicos possuem duas características que os tornam inviáveis para o processamento computacional. Primeiro, sinais analógicos são definidos em todos os pontos do tempo. A amostragem resolve isso reduzindo o número de pontos para um número finito. Segundo, esses sinais podem ter qualquer amplitude entre seus valores mínimos e máximos físicos. Computadores usam grupo de bits para representar as amplitudes. Por exemplo, se dois bits são usados, haverá somente quatro valores digitais 00, 01, 10, 11- cada um para representar um valor de amplitude. Uma amostra analógica é codificada escolhendo o valor mais próximo de quantização, logo erros sempre existirão quando o número de bits for finito. Quando N bits são utilizados, 2 N valores possíveis podem ser representados pelo PC. Quanto maior o número de bits, mais próximo o valor digital se torna do analógico,
18 8 mas em compensação, é maior o tempo para o processamento do sinal. A tabela 1 e a figura 6 mostram exemplos de quantização. Tabela 1 Tabela de Quantização [VAN DE VEGTE 2002] CÓDIGO DIGITAL NÍVEL QUANTIZAÇÃO(V) ALCANCE DE ENTRADA ANALÓGICAS PARA ESSE CÓDIGO DIGITAL (V) 000 0,0 0,0 x < 0, ,375 0,275 x < 0, ,75 0,5625 x < 0, ,125 0,9375 x < 1, ,5 1,3125 x < 1, ,875 1,6875 x < 2, ,25 2,0625 x < 2, ,625 2,4375 x < 3 Figura 6 Nível de quantização [VAN DE VEGTE 2002] 2.5 COMUNICAÇÃO SEM FIO Sistemas de comunicação sem fio utilizam dispositivos chamados transmissores para criar ondas de rádio. Os sinais a serem transmitidos, como voz e dados, são convertidos em pulsos eletrônicos. Os transmissores modulam os sinais de rádio, a fim de que estes pos-
19 9 sam carregar os dados e então transmitem os sinais de rádio modulados para áreas distantes. Os receptores de rádio captam esses sinais, decodificando-os para obter o conteúdo original. [HAYKIN ], [LATHI ]. A freqüência a ser utilizada na transmissão influência inversamente no alcance e no comprimento de onda do sinal. Esta relação é apresentada na equação 1. onde: λ = comprimento de onda de uma onda sonora ou onda eletromagnética; c = velocidade da luz no váculo = km/s = m/s; f = frequência da onda = Hz. (1) Para que a transmissão de dados neste sistema tenha êxito é importante que certos requisitos sejam respeitados. São estes os requisitos: Potência de transmissão; Mínima distorção na propagação do sinal; As condições anteriores devem ser mantidas dentro de parâmetros suficientes para garantir a integridade dos dados transmitidos. 2.6 MICROCONTROLADOR Pode-se definir um microcontrolador, como o mostrado na figura 7, sendo um pequeno componente eletrônico, dotado de uma inteligência programável, utilizado no controle de processos lógicos. Esses processos devem ser entendidos como controles de periféricos, tais como led s, botões, display s de 7 segmentos, display s de cristal líquido (LCD), resistências, relês, sensores diversos (pressão, temperatura, etc) e muitos outros. Os controles lógicos são chamados assim, pois suas ações são baseadas no estado dos periféricos de entrada e saída. A inteligência do componente está associada à Unidade Lógica Aritmética (ULA), pois é nessa unidade que todas as operações matemáticas e lógicas
20 10 são executadas. Quanto mais poderosa a ULA do componente, maior a sua capacidade de processar informações. Ele é considerado pequeno porque em uma única pastilha de silício, temos todos os componentes necessários ao controle de um processo, ou seja, o microcontrolador está provido internamente de memória de programa, memória de dados, porta de entrada, e saída paralela, timer s, contadores, comunicação serial, PWM s, conversores analógicos digitais, etc. [RANGEL ] Figura 7 Microcontrolador com os seus elementos básicos e ligações internas [RANGEL 2008]
21 Arquitetura genérica de microcontrolador Todo microcontrolador possui em sua arquitetura as partes descritas a seguir: Memória de programa - Nesta fica as instruções que um microcontrolador deve executar, ou seja, as linhas de programação foram digitadas em um PC. Memória de dados - É a parte do controlador que permite ao programador escrever ou ler um determinado dado sempre que necessário. ULA - Chamada de Unidade Lógica Aritmética, esta parte do microcontrolador é responsável por todos os cálculos e a lógica matemática para tomada de decisão das tarefas a serem realizadas. I/O s - São os braços dos microcontroladores, mostrado na figura 8. É por eles que consegue inserir e receber dados dos chips, bem como controlar dispositivos mecânicos e elétricos. Em outras palavras são os caminhos que fazem a interligação do microcontrolador com o mundo externo. Figura 8 Unidade de entrada/saída que fornece comunicação com o mundo exterior [RANGEL ] CPU - Conhecida como Unidade Central de Processamento esta parte do microcontrolador é responsável por todo processamento de dados da unidade. É ela que interpreta os comandos e ativa os dispositivos de entrada e saída. [RANGEL ].
22 12 Unidade de Temporização - Tendo a unidade de comunicação série implementada, pode-se receber, enviar e processar dados. Contudo, para ser capaz de utilizar isto na indústria precisa-se ainda de mais alguns blocos. Um deles é o bloco de temporização que interessa bastante porque pode dar informações acerca da hora, duração, protocolo, etc. A unidade básica do temporizador é um contador que é na realidade um registro cujo conteúdo aumenta de uma unidade num intervalo de tempo fixo, assim, anotando o seu valor durante os instantes de tempo T1 e T2 e calculando a sua diferença, obtêm-se a quantidade de tempo decorrida. Esta é uma parte muito importante do microcontrolador, cujo domínio requer muita da atenção. RISC CPU - Na arquitetura Harvard existem dois barramentos, sendo um de dados e outro de instruções no caso dos microcontroladores PIC, o barramentos de dados é sempre de 8 bits e o de instruções podem ser de 12, 14, 16 bits dependendo do microcontrolador. Este tipo de arquitetura permite que enquanto uma instrução é executada outra seja buscada na memória, o que torna o processo mais rápido. Além disso, como o barramento de instruções é maior que 8 bits, o OPCODE (Código de Operação) da instrução já inclui o dado e o local onde ele vai operar (quando necessário), significa que apenas uma posição de memória é utilizada por instrução, economizando muita memória de programa. A arquitetura Harvard também possui um repertório com menos instruções que a de Von-Neumann, e essas são executadas apenas num único ciclo de relógio. Os microcontroladores com arquitetura Havard, são também designados por microcontroladores RISC (Computador com Conjunto Reduzido de Instruções). A tabela 2 mostra a diferença entre Risc e Cisc. A figura 9 mostra as arquiteturas Harvard versus Von Neumann. [MIKRO ]. Figura 9 Arquitetura Harvard - [MIKRO ]
23 13 Tabela 2 Características Risc [VEIGA 2008] CARACTERISTICAS RISC Risc Instruções simples levando um ciclo Apenas loads/setores referenciam a memória Altamente pipeline Instruções executada pelo hardware Poucas instruções e, mais de end. A complexidade está no compilador Múltiplos conjuntos de registradores
24 14 3 ESPECIFICAÇÃO TÉCNICA Este capítulo tem como objetivo descrever as especificações dos componentes que serão utilizados para o desenvolvimento do projeto. 3.1 ESPECIFICAÇÃO GERAL Nesta fase pode-se ver o projeto como um todo no diagrama em bloco apresentado na figura 10. No bloco PC está localizado o software, onde é realizado o desenho da forma de onda desejada. O hardware não depende do programa para gerar as formas de ondas: senoidal, triangular e quadrada. Caso queira desenhar uma outra forma de onda, ele deverá utilizar o software para realizar o desenho e a gravação. Após realizar esse procedimento, o usuário está livre do computador para fornecer a onda na saída. Quando essa forma de onda é enviada, ela vai para o bloco Tx, onde é realizada a transmissão wireless. O bloco Rx recebe essa forma de onda, que mandará imediatamente para o bloco Microcontrolador. Esse bloco faz o armazenamento da onda dentro de sua própria memória EEPROM. Para se realizar a geração de algum dos quatro sinais, é feito a seleção através do bloco Botões. Nesse bloco é escolhida a forma de onda e é feito o ajuste da freqüência. Após definir esses dois parâmetros, o Microcontrolador busca em sua memória os dados referentes a onda que é enviada para o bloco D/A, onde é feita a conversão do sinal digital para o analógico. Em seguida, o sinal irá para o bloco Ajustes onde é feito os ajustes de amplitude e offset.
25 15 Figura 10 Blocos do Projeto Fonte própria Com esse gerador de funções, será possível obter sinais com uma freqüência de 20 à 100 khz e uma amplitude variando de no mínimo -10V até o máximo de +10V. Podendo ser realizado qualquer ajuste dentro desses intervalos. 3.2 ESPECIFICAÇÃO FIRMWARE A figura 11 mostra o fluxograma do Firmware. No início é feito a seleção da forma de onda desejada. Caso a onda senoidal seja selecionada, ele irá gerar essa onda, indo para o ajuste da freqüência, ocorrendo o mesmo para a onda triangular e quadrada. Caso deseje receber uma nova onda proveniente do software, será habilitado o receptor fazendo seu armazenamento na memória através do microcontrolador. Caso a onda aleatória seja selecionada, ele irá gerar a última forma de onda gravada, indo para o ajuste da freqüência. Se nenhuma forma de onda foi selecionada, o hardware não irá gerar sinal, retornando para seu menu inicial.
26 Figura 11 Fluxograma do Firmware Fonte própria 16
27 COMUNICADOR SEM FIO A comunicação é feita por dois módulos de comunicação sem fio, um deles instalado no hardware e o outro conectado ao PC através de um emulador de portas USB/Serial, chamado CON-USBBEE. [MESSIAS 2008] A placa CON-USBBEE, mostrada na figura 12, usa um chip conversor USB/Serial; regulador de tensão LDO (baixa queda de tensão), comparador de tensão conectado aos LEDs (RSSI) que simulam a força do sinal de radio freqüência; LEDs indicadores de TX, RX, módulo ligado (ASS), e um microbotão para resetar o módulo de comunicação. Figura 12 Placa CON-USBBEE [MESSIAS ] Ao instalar no computador o driver USB que acompanha a placa, é criada no Windows uma porta COMx virtual quando a placa CON-USBBEE é plugada. Assim, é possível através de um programa, no caso o C/C++Builder, se comunicar com a placa como se fosse uma comunicação serial padrão RS232. A figura 13 mostra o módulo em uso em um laptop.
28 18 Figura 13 Módulo XBee-Pro com placa CON-USBBEE em uso [MESSIAS ] A comunicação entre o software e o hardware será realizada pelo sistema wireless. O módulo aqui utilizado é o XBee-Pro XBP24-AWI-001 (antena fio) da ZigBee/IEEE , mostrado na figura 14. É através dele que o hardware será gravado com a nova forma de onda desenhada pelo usuário através do software. Figura 14 Módulo XBee-Pro XBP24-AWI-001 [MESSIAS ] Na tabela 3 está descrito o significado de cada pino dos módulos XBee-Pro, como podemos ver, há pinos que podem exercer diferentes funções como, entrada analógica, entrada/saída digital, controle de fluxo e PWM. A maneira mais fácil para configurar a função de um determinado pino do módulo ou mesmo outros parâmetros, é através do programa X- CTU, representado na figura 15.
29 19 Tabela 3 Descrição dos pinos dos módulos XBee/XBee-Pro - [MESSIAS ] Pino # Nome Direção Descrição 1 VCC - Alimentação 3,3v 2 DOUT Saída Saída de dados da UART 3 DIN / CONFIG Entrada Entrada de dados da UART 4 DO8* Saída Saída digital 8 5 RESET Entrada Inicializa módulo (um pulso nível 0 de pelo menos 200ms) 6 PWM0 / RSSI Saída Saída do PWM 0 / Indicador de Força do sinal de RF (RX) 7 PWM1 Saída Saída do PWM 1 8 (Reservado) - Ainda não tem uma função definida (futura implementação) 9 DRT/ SLEEP_IRQ / DI8 Entrada Linha de Controle da Função Sleep ou Entrada digital 8 10 GND - Terra 11 AD4 / DIO4 Entrada/Saída Só Entrada Analógica 4 ou Entrada/Saída Digital 4 12 CTS/ DIO7 Entrada/Saída Controle de Fluxo CTS ou Entrada/Saída Digital 7 13 ON / SLEEP Saída Indicador de Estado do Módulo 14 VREF Entrada Tensão de Referência para as Entradas A/D 15 Associação / AD5 / Indicador de Associação, só Entrada Analógica 5 ou Entrada/Saída Digital 5 Entrada/Saída DIO5 16 RTS/ AD6 / DIO6 Entrada/Saída Controle de Fluxo RTS, só Entrada Analógica 6 ou Entrada/Saída Digital 6 17 AD3 / DIO3 Entrada/Saída Só Entrada Analógica 3 ou Entrada/Saída Digital 3 18 AD2 / DIO2 Entrada/Saída Só Entrada Analógica 2 ou Entrada/Saída Digital 2 19 AD1 / DIO1 Entrada/Saída Só Entrada Analógica 1 ou Entrada/Saída Digital 1 20 AD0 /DIO0 Entrada/Saída Só Entrada Analógica 0 ou Entrada/Saída Digital 0 Figura 15 Tela do programa X-CTU [MAXSTREAM ]
30 20 Basicamente os módulos XBee-Pro já vêm de fábrica configurados para serem u- sados diretamente, o mínimo que precisamos fazer para estabelecer um link de comunicação é alimentar os módulos corretamente com uma tensão de 3,3V. A comunicação entre os módulos pode ser realizada de dois modos diferentes: Modo Transparente e Modo API Modo Transparente Os dados recebidos da UART pelo pino DI(RX) são colocados na fila para transmissão via RF. Já os dados recebidos do canal de RF, são transmitidos através do pino DO(TX). No modo transparente os dados são transmitidos e recebidos da mesma forma que uma comunicação Serial RS232 padrão, como mostra a figura 16. Os módulos dispõem de buffers de transmissão e recepção para um melhor desempenho na comunicação serial. Figura 16 Frame de dado padrão RS232 (8-N-1) [MESSIAS ]
31 Modo API (Application Programming Interface) Esse modo de operação é uma alternativa ao modo de operação Transparente padrão. O modo API é baseado em frame e assim estende o nível para o qual uma aplicação de Host pode interagir com as capacidades de rede do módulo, mostrado na figura 17. No modo API os dados transmitidos e recebidos estão contidos em frames, que definem operações ou eventos dentro do módulo. Através desse modo de operação é possível um determinado módulo enviar endereço fonte, endereço destino, nome de um determinado nó, sinal RSSI, estado, e muito mais. [MESSIAS ] Figura 17 Estrutura do Frame de dados no modo API - [MESSIAS ] 3.4 ESPECIFICAÇÃO DO HARDWARE Este capítulo tem como objetivo descrever os dispositivos utilizados na composição do hardware Memória Interna O Dspic 30F4011 possui uma memória interna de 1 Kbytes, seu endereçamento é localizado no datasheet do componente. Como mostra a figura 18.
32 22 Figura 18 Espaço de programação para o mapa de memória do Dspic 30F4011 Fonte Própria.. Como mostrado na figura 18, o primeiro endereço da memória EEPROM interna começa em 7FFC00 e vai até 7FFFFE. Como o número de ondas a serem gravadas são quatro e cada uma possui 128 (bytes), chega-se a um total de 512 posições de memória para todas as ondas. O endereçamento é feito em hexadecimal, logo o uso dos endereços irá de 7FFC00 até 7FFE00, sendo que as 384 primeiras posições são fixas contendo os valores das ondas senóide, triangular e quadrada. O único trecho que é variado é da onda aleatória, que receberá os valores do módulo.
33 Ajustes No bloco Ajustes, são realizados dois ajustes: offset e amplitude. O primeiro será feito com o auxílio de um amplificador operacional, o LM318. Será feito a configuração do somador inversor, onde será somada uma tensão negativa na entrada do amplificador operacional, sendo ajustado o seu valor de tensão através de um potenciômetro, realizando assim o ajuste de offset. O ajuste de amplitude será feito através de um potenciômetro no resistor de ganho do amplificador. Sendo o sinal novamente enviado a um amplificador com a configuração inversor para desinverter o sinal à sua posição de origem Microcontroladores Os microcontroladores terão um papel fundamental no projeto, será utilizado um DsPIC 30F4011 e um PIC 16F877A. O primeiro é utilizado por causa da alta velocidade de trabalho. Ele é a ponte de ligação entre o software e a saída do hardware, responsável por receber os dados da comunicação sem fio. Uma de suas saídas será conectada diretamente em um pino de ativação do módulo, fazendo com que o módulo receptivo seja habilitado para receber dados da transmissão. Enviando-os a sua memória e através de seus botões será feita a seleção das ondas através da leitura e rápida repetição dos valores dos dados dando assim a impressão de ser criada uma onda continua no tempo e sendo repetida infinitamente. Além da seleção da onda a ser usada, seu maior papel o ajuste da freqüência a ser gerada na saída. Já o segundo tem como função controlar a exibição dos textos do LCD e o valor da freqüência.