Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Centro Universitário Positivo - Unicenp Núcleo de Ciências Exatas e Tecnológicas – NCET
Engenharia da Computação
Canrobert Rodrigo Krueger
VOZ SOBRE WIFI
CURITIBA
2005
2
Centro Universitário Positivo - Unicenp Núcleo de Ciências Exatas e Tecnológicas – NCET
Engenharia da Computação
Canrobert Rodrigo Krueger
VOZ SOBRE WIFI
Monografia apresentada à disciplina de Projeto
Final, como requisito parcial à conclusão do
Curso de Engenharia da Computação.
Orientador: Prof. Luiz Carlos Pessoa Albini
CURITIBA
2005
3
TERMO DE APROVAÇÃO
Canrobert Rodrigo Krueger
Voz sobre WiFi
Monografia aprovada como requisito parcial à conclusão do curso de
Engenharia da Computação do Centro Universitário Positivo, pela seguinte
banca examinadora:
Prof. Luiz Carlos Pessoa Albini (Orientador)
Prof. Alessandro Zimmer
Prof. Adriana Cursino Thomé
Curitiba, 14 de Dezembro de 2005
4
AGRADECIMENTOS
Gostaria de agradecer ao professor Luiz Carlos Pessoa Albini pela
orientação;
Aos funcionários do laboratório da Unicenp;
A minha esposa e meus pais que me apoiaram todos estes anos.
Ao meu amigo Helton Marques, que contribuiu com conhecimento na
área de hardware, apoio e amizade.
5
Sumário
1. INTRODUÇÃO ................................................................................................................................ 13
2. OBJETIVOS ..................................................................................................................................... 14
2.1 Motivação ...................................................................................................................................... 14
3. FUNDAMENTAÇÃO TEÓRICA ................................................................................................... 15
3.1 Introdução wireless ....................................................................................................................... 15
3.1.1 Wi-Fi ( IEEE 802.11 ) ............................................................................................................... 15
3.1.2 Aplicações principais ................................................................................................................ 15
3.1.3 Padrões ...................................................................................................................................... 15
3.1.4 Técnicas de modulação ............................................................................................................. 16
3.1.5 Freqüências disponíveis no Brasil ........................................................................................... 17
3.2 Voz ................................................................................................................................................. 17
3.3 Conversão Analógico-digital ........................................................................................................ 18
3.3.1 Codificação baseado na forma de onda (Waveform Coding) ................................................. 19
3.3.1.1 Teorema de Nyquist.................................................................................................................. 20
4. ESPECIFICAÇÃO TÉCNICA ........................................................................................................ 21
4.1 Definição do microcontrolador .................................................................................................... 21
4.2 Definição da memória .................................................................................................................. 22
4.3 Definição do DAC ......................................................................................................................... 23
4.4 Definição do Amplificador ........................................................................................................... 23
4.5 Definição do transmissor.............................................................................................................. 24
5. PROJETO ......................................................................................................................................... 25
5.1 Diagrama em blocos ..................................................................................................................... 25
5.1.1 Funcionamento bloco a bloco .................................................................................................. 25
5.1.1.1 Bloco 1 – Aquisição da voz ....................................................................................................... 25
5.1.1.2 Bloco 2 – Amostragem, Gravação e Leitura ........................................................................... 26
5.1.1.2.1 Amostragem via ADC .......................................................................................................... 27
5.1.1.2.2 Gravação das amostras ........................................................................................................ 27
5.1.1.2.3 Leitura das amostras ............................................................................................................ 27
5.1.1.3 Bloco 3 – DAC e o Filtro Ativo ................................................................................................ 28
5.1.1.4 Bloco 4 – Amplificador e Auto-Falante................................................................................... 29
5.1.1.5 Bloco 5 – Transmissor e Antena .............................................................................................. 29
5.2 Protocolo wireless ......................................................................................................................... 30
5.2.1 Parâmetros ................................................................................................................................ 30
5.2.2 Troca de parâmetros sem a área de dados ............................................................................. 31
5.2.3 Troca de parâmetros adicionando com área de dados .......................................................... 31
5.3 Firmware ....................................................................................................................................... 32
5.3.1 Ambiente de desenvolvimento ................................................................................................. 32
6
5.3.2 Interface de programação do ATmega 8 ................................................................................ 33
5.4 Protótipo ........................................................................................................................................ 34
6. RESULTADOS ................................................................................................................................. 36
6.1 Teste de confiabilidade dos dados transmitidos ......................................................................... 36
6.1.1 Criação do teste de confiabilidade de dados ........................................................................... 36
6.1.1.1 Visualização dos dados da memória do transmissor ............................................................. 36
6.1.1.2 Visualização dos dados da memória do receptor ................................................................... 37
6.1.2 Conclusão do teste de confiabilidade de dados transmitidos ................................................ 38
6.2 Teste de confiabilidade das amostras da voz ADC e regeneração DAC .................................. 38
6.2.1 Criação do teste das amostras de voz e regeneração direta (ADC para DAC) ................... 39
6.2.2 Conclusão do teste de confiabilidade das amostras (ADC) ................................................... 39
6.3 Cálculo de velocidade de transferência de bytes para a memória flash ................................... 40
6.3.1 Cálculo matemático do tempo de transferência ..................................................................... 40
6.3.2 Conclusão do cálculo matemático ........................................................................................... 41
6.3.3 Solução – Substituição de componentes .................................................................................. 41
6.3.3.1 Substituição da memória Flash ............................................................................................... 42
6.3.3.2 Substituição do microcontrolador ........................................................................................... 42
6.4 Funcionamento Parcial do projeto .............................................................................................. 42
6.5 Dificuldades encontradas ............................................................................................................. 43
7. CONCLUSÃO .................................................................................................................................. 44
8. REFERÊNCIAS BIBLIOGRAFICAS ............................................................................................ 45
9. ANEXOS ........................................................................................................................................... 47
9.1 Levantamento de custos ............................................................................................................... 47
9.2 Cronograma de desenvolvimento ................................................................................................ 48
9.3 Diagrama esquemático ................................................................................................................. 50
9.4 Fluxograma protocolo do master ................................................................................................ 51
9.5 Fluxograma protocolo do slave ................................................................................................... 53
9.6 Organograma do software ........................................................................................................... 54
9.7 Diagrama Básico do Firmware .................................................................................................... 55
7
Lista de Figuras
Figura 1 – Exemplo de funcionamento. .................................................................................................. 14
Figura 2 - Codificação e decodificação da voz [Elektor, 2003]. ............................................................ 19
Figura 3 - Quantificação de uma amostra [20]. ..................................................................................... 19
Figura 4 - Encapsulamento ATmega8L [15]. ......................................................................................... 22
Figura 5 - Encapsulamento Memória Flash AT45DB081B [14]. .......................................................... 22
Figura 6 - DAC TLV5616C Encapsulamento [19]. ................................................................................ 23
Figura 7 - Amplificador TLV2252 Encapsulamento [18]. .................................................................... 23
Figura 8 - Transceiver nRF2401 encapsulamento [17]. ........................................................................ 24
Figura 9 – Diagrama em blocos. .............................................................................................................. 25
Figura 10 - Bloco 1 de captação da voz composto de Amplificador e o filtro. ..................................... 26
Figura 11 - Gráfico de amostra de voz enviada ao ADC [20] ............................................................... 26
Figura 12 – Bloco 2 - Amostragem, Gravação e Leitura. ...................................................................... 26
Figura 13 - Exemplo gráfico de 3 amostras [20]. ................................................................................... 27
Figura 14 - Bloco envio SPI para o DAC [19]. ....................................................................................... 28
Figura 15 – Bloco 3 – DAC e Filtro. ........................................................................................................ 28
Figura 16 – Sinal enviado pelo DAC ao filtro [20]. ................................................................................ 28
Figura 17 - Sinal recomposto pelo filtro [20]. ......................................................................................... 29
Figura 18 - Bloco 4 - Amplificador e Auto-Falante. .............................................................................. 29
Figura 19 – Bloco 5 – Transmissor e Antena. ........................................................................................ 30
Figura 20 - Bloco de sincronismo entre os rádios. ................................................................................. 31
Figura 21 - Bloco de envio de dados entre os rádios. ............................................................................. 32
Figura 22 – Tela principal de desenvolvimento do Notepad 2. ............................................................. 33
Figura 23 - Interface de gravação paralela ATmega 8 .......................................................................... 33
Figura 24 – Protótipo transmissor/receptor ........................................................................................... 35
Figura 25 - Gráfico das amostras de voz do transmissor ...................................................................... 37
Figura 26 - Gráfico das amostras de voz do receptor ............................................................................ 38
Figura 27 – Subtração Amostras do Transmissor e Receptor .............................................................. 38
Figura 28 – Sinal de entrada (ADC) e Saída (DAC) .............................................................................. 40
8
Lista de Tabelas
Tabela 1 - Alternativa de padrões [7] ..................................................................................................... 16
Tabela 2 – Padrões da Anatel [Resolução Anatel, 2004] ....................................................................... 17
Tabela 3 – Parâmetros do protocolo ....................................................................................................... 30
9
LISTA DE SIGLAS Bit Unidade de medida binária, 1 bit equivale ao sinal lógico 0 ou 1 D/A Digital to Analogic DAC Digital Analogic Converter dB Decibéis Ddp Diferença de potencial, sinônimo de V DIN Din Connector EPROM Erasable Programmable Read-Only Memory G Unidade de medida de Ganho GND Ground Hz Unidade de medida de freqüência em Hertz I Unidade de medida de Corrente L Comprimento LCD Liquid Crystal Display LED Light Emitting Diode NCET Núcleo de Ciências Exatas e Tecnológicas PIN Personal Identification Number R Unidade de medida de Resistência RAM Random Access Memory RD Read RX Receiver TX Transmitter VCC Virtual channel connection UNICENP Centro Universitário Positivo V Volts – Unidade de medida de tensão Vinp Tensão de Entrada VODER Voice Operation Demonstrator Vout Tensão de Saída Wav abreviação de Wave, tipo de arquivo de som do Windows Wireless Rede sem fio WR Write SPI Serial Peripheral Interface Wifi Wireless Fidelity
10
LISTA DE SÍMBOLOS Ω Ohm
ג Comprimento de Onda
µ Micro
11
RESUMO
O objetivo deste trabalho é desenvolver um transmissor / receptor de
voz, para utilização em uma rede WiFi interna de uma empresa, eliminando
assim o uso de telefones fixos e móveis de outra tecnologia.
Este trabalho constitui-se da implementação de um sistema de
aquisição, armazenamento, transmissão em microondas e a regeneração da
voz. O sistema foi desenvolvido utilizando 2 protótipos; cada um contendo um
microcontrolador ATMEGA 8 com ADC 10 bits, um transmissor 2.4 Ghz,
memória FLASH de 4 Megabytes, DAC 12 bits e 2 amplificadores,
comunicando através de SPI.
O processo de aquisição da voz é feito através de um amplificador não
simétrico, conectado a um ADC de 10 bits interno, sendo a voz capturada com
uma taxa de amostragem em torno de 62,5 khz e armazenada na memória. Em
seguida, é feita a transmissão destas amostras para o outro protótipo, que fará
a recepção e armazenagem da voz na memória. Com o término da recepção e
as amostras de voz armazenadas na memória, o microcontrolador à regenerará
através do envio para o DAC, que por sua vez envia o sinal até um amplificador
que tem em sua saída um auto-falante.
Com relação à regeneração, houve uma perda de 0,5 s de voz,
ocasionada pela velocidade de transferência dos bytes capturados no ADC
para a memória Flash.
12
ABSTRACT
The objective of this work is to develop a receiving/transmitter of voice,
for use in internal a WiFi net of a company, thus eliminating the use of fixed and
mobile telephones of another technology.
This work consists of the implementation of a acquisition system,
storage, transmission in microwaves and the regeneration of the voice. The
system was developed using 2 prototypes; each one, contend a microcontroller
ATMEGA 8 with ADC 10 bits, a transmitter 2,4 Ghz, memory FLASH of 4
Megabytes, DAC 12 bits and 2 amplifiers, communicating through SPI.
The acquisition process of the voice is made through a not symmetrical
amplifier, connected to a ADC of 10 bits internal, being the voice captured with
a tax of sampling around 62,5 khz and stored in the memory. After that, the
transmission of these samples for the other prototype is made, that will make
the reception and storage of the voice in the memory. With the ending of the
reception and the stored samples of voice in the memory, the microcontroller
will regenerate through the sending for the DAC, that in turn sends the signal
until an amplifier that has in its exit a loudspeaker.
With relation to regeneration, voice had a loss of 0,5 second, caused for
the speed of transference of bytes captured in the ADC for the flash memory.
13
1. INTRODUÇÃO
Hoje a comunicação é algo tão essencial entre as pessoas para
transferir informações, influenciar e demonstrar desejos. Esta comunicação
pode ser feita por diversos meios, como gestos, fala, sentimentos, símbolos e
outras formas. O mais importante de todos os meios é a fala ou a voz [1].
O objetivo deste trabalho é de desenvolver um sistema de aquisição,
armazenamento, transmissão em microondas e regeneração da voz.
Atualmente as redes sem fio Wi-Fi estão presentes de residências a
aeroportos. Dependendo de onde você estiver agora, a chance de conseguir
um sinal de uma rede Wi-Fi é muito grande [2].
A transmissão sem fio deixou de ser uma utopia, hoje em dia, está
presente nos PDA's (Palm's, PocketPC's e HandHelds's) agilizando o processo
pedidos em supermercados, restaurantes, hotéis e empresas [2].
O Wi-Fi ou Wireless Fidelity (IEEE 802.11), é um protocolo de
comunicação sem fio com capacidade para conectar pelo menos 10
equipamentos e permitir o acesso à Internet em velocidade de até 54 Mbps.
Este protocolo foi criado em 1997 pelo Instituto de Engenheiros Elétricos e
Eletrônicos (IEEE), como resposta ao Bluetooth, de propósitos similares [2].
14
2. OBJETIVOS
Este trabalho tem por objetivo principal, apresentar a implementação de
um sistema de transmissão e reprodução da voz através do wireless. As etapas
deste processo vão desde a digitalização, armazenamento, transmissão via
wireless, e a recuperação da voz no sistema receptor, em grosso modo,
funcionando como um walkie-talkie, Figura 1.
UserUser
Figura 1 – Exemplo de funcionamento.
O sistema permitirá o estudo da transmissão de voz através de protocolo
e da transmissão microondas, no espectro de freqüência de 2.4 GHz, que é
atualmente utilizada pela tecnologia wireless, padrão IEEE 802.11, apelidada
de Wi-Fi.
2.1 Motivação
O desafio de estudar, entender e conhecer novas tecnologias, como
protocolo 802.11, rádio 2.4 Ghz, acesso via SPI e memórias paginadas tornam
este projeto diferente e atraente.
15
3. FUNDAMENTAÇÃO TEÓRICA
3.1 Introdução ao wireless
Praticamente na mesma época em que surgiram os notebook’s , muitas
pessoas sonhavam com a comunicação sem a utilização de fio. Devido a isto,
muitos grupos começaram a descobrir várias maneiras de alcançar este
objetivo. A idéia básica é equipar os locais e notebook’s com dispositivos
wireless que permitam uma comunicação entre eles. Isto levou ao surgimento e
comercialização de redes LAN’s [4].
3.1.1 Wi-Fi ( IEEE 802.11 )
Com a proliferação de padrões, devido à necessidade da comunicação
sem fio, os equipamentos de fabricantes diferentes não conseguiam se
comunicar. Assim a industria decidiu que um padrão de LAN sem fio seria
interessante, e o comitê do IEEE (Institute of Electrical and Electronics
Engineers), que padronizou todas as LANs com fio, recebeu a tarefa de
padronização das redes sem fio. Este padrão recebeu o nome de 802.11, cujo
mercado apelidou de Wi-Fi [4].
3.1.2 Aplicações principais
Redes locais internas de escritórios, hotéis e residências, substituindo ou
complementando redes que utilizam cabos coaxiais [4].
3.1.3 Padrões
O padrão inicial 802.11 de 1999 foi aperfeiçoado estando definido
atualmente nas seguintes alternativas:
16
Tabela 1 - Alternativa de padrões [7].
Protocolo Freqüências Técnica de
Modulação Taxa de Dados
802.11b 2400-2483,5 MHz
DSSS até 11 Mbit/s
802.11g DSSS, OFDM até 54 Mbit/s
802.11a
5150-5350 MHz
5470-5725 MHz
5725-5850 MHz
OFDM até 54 Mbit/s
A maior parte das redes encontradas no mundo utilizam o padrão
802.11b.
3.1.4 Técnicas de modulação
Modulação é o processo através a qual a voz, música, e outro sinal
“intelegível” é adicionado às ondas de rádio produzidas por um transmissor [4].
FHSS (Frequency Hopping Spread Spectrum) ou espectro de dispersão
de saltos de freqüência, possui 79 canais de 1MHz de largura, começando na
extremidade baixa da banda ISM de 2.4GHz [4].
DSSS (Direct Sequence Spread Spectrum) é o espalhamento espectral
por seqüência direta, chegou primeiro no mercado e trabalha utilizando a
modulação por deslocamento de fase [4].
OFDM (Orthogonal Frequency Division Multiplexing) ou Multiplexação
Ortogonal por Divisão de Freqüência é uma técnica que dá maior imunidade a
interferência de banda estreita e a possibilidade de usar bandas não -
contíguas. É usado um sistema de codificação complexo, baseado na
modulação por deslocamento de fase, a fim de alcançar velocidades de até
54Mbps [4].
HR-DSSS (High Rate Direct Sequence Spread Spectrum) ou espectro
de dispersão de seqüência direta de alta velocidade, alcança 11 Mbps na
17
banda de 2.4 GHz. Usa basicamente a técnica por modulação e o seu alcance
é cerca de 7 vezes maior do que 802.11a [4].
3.1.5 Freqüências disponíveis no Brasil
As redes WiFi utilizam freqüências que não precisam de autorização
para serem utilizadas.
As condições de uso destas freqüências no Brasil estão estabelecidas
pelo Regulamento sobre Equipamentos de Radiocomunicação de Radiação
Restrita (seções IX e X), reeditado pela resolução 365 de 10/05/04 da Anatel.
Tabela 2 – Padrões da Anatel [Resolução Anatel, 2004].
Frequências (MHZ)
Condições de uso no Brasil
2400-2483
5725-5850
Destinadas no Brasil, em caráter secundário, a Equipamentos de Radiocomunicação Restrita como redes Wi-Fi e Rádio Spread Spectrum.
A faixa de 2400 MHz é utilizada no Brasil em caráter primário pelo Serviço Auxiliar de Radiodifusão e Correlatos (SARC) e de Repetição de TV.
A Anatel estabeleceu que sistemas (2400 MHz) em localidades com população superior a 500 mil habitantes e com potência (eirp) superior a 400 mW não podem operar sem autorização da Anatel.
5150-5350
5470-5725
Sistemas de Acesso sem Fio em Banda Larga para Redes Locais.
A faixa de 5150-5350 MHz pode ser utilizada em ambientes internos (indoor) e a de 5470-5725 MHz em ambientes externos e internos.
3.2 Voz
A voz humana é uma forma de onda mecânica com freqüências
principais na faixa que vai de 300 a 4000 Hz, com alguns padrões de repetição
18
definidos em função do timbre de voz e dos fonemas emitidos durante a
conversação[13].
Para que o sinal possa ser transportado em uma rede de transmissão
wireless, é necessário que seja convertido o sinal analógico para sinal digital, e
então, possa fazer parte do campo de dados do pacote a ser enviado. Após ser
transportada sob forma digital a voz deve ser novamente convertida para forma
analógica no destino, de maneira a se tornar audível pelo ouvido humano.
Nesta conversão analógico-digital, do processamento do sinal de voz, pode-se
identificar duas etapas bem definidas:
Análise da voz: é a parte do processamento da voz, que converte o
som para a forma digital, para que seja armazenada
apropriadamente nos sistemas de computação, e transmitida.
Também chamada de digital speech encoding [13].
Sintetização da Voz: é a parte do processamento de voz que
converte a voz da forma digital para forma analógica, própria audição
humana. Também chamada de speech decoding [13].
O objetivo de qualquer método de codificação de voz é produzir um
conjunto de códigos de voz a uma taxa mínima para a transmissão, de modo
que o sintetizador possa reconstruir o sinal original de voz de maneira efetiva, e
ao mesmo tempo otimizar a transmissão do meio [13].
3.3 Conversão Analógico-digital
O objetivo da conversão analógico-digital é codificar o sinal analógico
captado em um sinal digital, que depois retorna sua forma original como na
figura 2.
19
Figura 2 - Codificação e decodificação da voz [Elektor, 2003].
3.3.1 Codificação baseado na forma de onda (Waveform Coding)
Este método codifica diretamente a forma de onda gerada pelo sinal
analógico através de amostragem, convertendo a amplitude de cada amostra
para o valor mais próximo de um conjunto finito de valores discretos [13].
A Waveform Coding é usada em redes telefônicas tradicionais. Como os
métodos de amostragem Waveform Coding derivam do teorema de Nyquist,
dois processos são necessários para digitalizar um sinal analógico, sendo
estes amostragem e quantização [13].
Amostragem é o processo de medir instantaneamente valores de um
sinal analógico em intervalos regulares. O intervalo entre as amostras é
determinado por um pulso de sincronismo e a sua freqüência é chamada de
taxa de amostragem [13].
Quantificação é a conversão das amostras contínuas para valores
discretos. Para um sinal de áudio com “toll-quality” (nível de qualidade de uma
chamada telefônica), considera-se ser adequado utilizar-se 8 bits por amostras.
Entretanto, para um áudio de alta fidelidade, as amostras de áudio devem ser
digitalizadas de 14 a 16 bits [13].
Figura 3 - Quantificação de uma amostra [20].
20
A Figura 3 ilustra como as amostras são quantificadas para valores
discretos. É importante notar que as amostras individuais com diferentes
medições analógicas podem ser associadas a um mesmo valor discretas após
serem quantificadas. O erro de arredondamento introduzido aqui por um
número finito de bits por amostra é chamado de erro de quantificação, e é
percebido pelo ouvido humano se for muito grande. Entretanto, esta perda de
informação é muito pequena sendo considerada desprezível.
Os dispositivos que realizam a digitalização são chamados ADC. Os
ADC’s incluem conversores analógico-digitais, que realizam a função de
digitalização [13].
Depois de transmitido o sinal da voz, precisa-se fazer uma conversão
digital-analógica. O sinal digital consta de valores instantâneos da amplitude do
sinal que foram amostrados. Para que o sinal seja recuperado, é necessário
que seja convertido na mesma velocidade o qual ele foi amostrado. Pelo
contrário, teremos distorções totalmente percebidas pelo ouvido humano [13].
3.3.1.1 Teorema de Nyquist
Em 1928, Henry Nyquist, dos laboratórios Bell, estabeleceu um teorema
em que a representação digital de um sinal analógico que seria,
funcionalmente, idêntico à forma de onda original, se a taxa de amostragem
fosse pelos menos duas vezes maior freqüência presente na forma de onda
analógica. Baseado no Teorema de Nyquist, a voz humana com freqüência
máxima de 4.000 Hz requer 8.000 amostras por segundo, enquanto que um
rádio com qualidade de CD (Compact Disk), com freqüência máxima de
20.000Hz, requer 40.000 amostras por segundo [9].
21
4. ESPECIFICAÇÃO TÉCNICA
A partir do estudo teórico do problema, é possível identificar os
componentes necessários para construção do hardware e do software, para
aquisição, armazenamento, transmissão em microondas e a regeneração da
voz. Todos os componentes foram escolhidos levando em consideração a
capacidade, tamanho, custo, e pensando na portabilidade de um telefone sem
fio e dos preços baixos que o mercado necessita.
4.1 Definição do microcontrolador
Escolheu-se o microcontrolador ATmega8L, da Atmel devido as
características abaixo:
Microcontolador de 8 bits;
8 Kbytes de memória para programação;
Proteção do software contra cópias;
2 timers de 8 bits;
1 timer de 16 bits;
8 Canais ADC com resolução de 10 bits;
Porta serial;
Master / Slave SPI serial interface;
Consumo ativo de 3,6 mA e inativo de 1 mA;
Baixo custo;
Programação via serial;
22
Figura 4 - Encapsulamento ATmega8L [15].
4.2 Definição da memória
A escolha da memória AT45DB081B da Atmel, deve-se as características
abaixo:
Serial Peripheral Interface ( SPI );
Programação por paginação 4096 páginas de 264 bytes;
Tolera 5 V nas entradas;
Consumo ativo de 4 mA e inativo 2 µA;
Figura 5 - Encapsulamento Memória Flash AT45DB081B [14].
23
4.3 Definição do DAC
A escolha do DAC TLV5616C da Texas instruments deve-se as
características abaixo:
12 Bit Saída de tensão;
Serial Peripheral Interface (SPI);
Consumo de 2,1 mW;
Velocidade de 3 µs;
Figura 6 - DAC TLV5616C Encapsulamento [19].
4.4 Definição do Amplificador
A escolha do DAC TLV2252C da Texas instruments deve-se as
características abaixo:
Amplificação de sinais abaixo de 1kHz;
Trabalha com alimentação DC de 5V;
Tensão de OffSet 850 µV;
Figura 7 - Amplificador TLV2252 Encapsulamento [18].
24
4.5 Definição do transmissor
A escolha do transmissor nRF2401 da Nordic deve-se as características
abaixo:
Freqüência de trabalho: 2.4~2.524 GHz;
Modulação tipo: GFSK;
Velocidade de transmissão: 1Mbps; 250Kbps;
Tamanho: 20.0 x 36.7 x 2.4 mm;
Distância de transmissão máxima: 280m;
Transmissão e recepção de forma paralela;
Figura 8 - Transceiver nRF2401 encapsulamento [17].
25
5. PROJETO
5.1 Diagrama em blocos
O diagrama macro, conforme figura 9, do projeto, que será explicado no
item 5.1.1 desta dissertação.
Figura 9 – Diagrama em blocos.
5.1.1 Funcionamento bloco a bloco
Será demonstrado o funcionamento de cada bloco do diagrama, figura 9,
para que haja um melhor entendimento do projeto.
5.1.1.1 Bloco 1 – Aquisição da voz
Este bloco, (figura 10), é composto de: microfone, pré-amplificador e um
filtro.
O microfone captura a voz e converte em sinal analógico, figura 11. O
Sinal analógico é amplificado pelo TLV 2252. O capacitor que está ligado na
26
realimentação do circuito elimina a alta freqüência. Um filtro RC, localizado na
saída deste circuito, foi projetado para limitar passagem de voz em 2,7 Khz
evitando assim a entrada de sinais indesejados. Este limite é essencial para
satisfazer o teorema de Nyquist (vide 3.3.1.1), fazendo que a amostragem
mínima no ADC seja de 5,4 khz em 8 bits.
Figura 10 - Bloco 1 de captação da voz composto de Amplificador e o
filtro.
Figura 11 - Gráfico de amostra de voz enviada ao ADC [20]
5.1.1.2 Bloco 2 – Amostragem, Gravação e Leitura
Este bloco, (figura 12), é composto pelo microcontrolador(ATmega 8)
com um ADC de 10 bits interno configurado via software e memória flash
(AT45DB081B).
Figura 12 – Bloco 2 - Amostragem, Gravação e Leitura.
27
5.1.1.2.1 Amostragem via ADC
Para aquisição das amostras de voz, (figura 13), o microcontrolador
ativa/configura ADC (ADEN), ativa a conversão (ADSC), Ativa as interrupções
(ADIE), transmissão para a memória (SPI 0x5C), seta o pino que está
recebendo pelo ADC (ADMUX = 0x00), e seta o tipo de taxa de amostragem
através do registrador (ADCSRA = 0xD5). Só após isto, os bytes são
transferidos para a memória flash.
Figura 13 - Exemplo gráfico de 3 amostras [20].
5.1.1.2.2 Gravação das amostras
Com a memória já ativada, o microcontrolador envia as amostras
recebidas do ADC, via SPI para a memória flash, que primeiramente armazena
no buffer interno e depois na célula da página.
5.1.1.2.3 Leitura das amostras
Após ter recebido o último byte do transmissor, o microcontrolador ativa
o DAC, configurando os pinos ligados a ele, habilita o SPI da memória em
modo de leitura. A partir deste momento, a memória envia os bytes
armazenados diretamente ao microcontrolador, que faz a ponte diretamente ao
DAC conforme a figura 14.
28
Figura 14 - Bloco envio SPI para o DAC [19].
5.1.1.3 Bloco 3 – DAC e o Filtro Ativo
Neste bloco, (figura 15), tem-se um DAC SPI, e um filtro na saída. O
DAC recebe um bloco de informações e juntamente a isto o seu clock é levado
a nível 1. Com isto, o DAC subtrai os 4 bits menos significativos e recompõe as
amostras ao nível de tensão, demonstrado na figura 16.
Figura 15 – Bloco 3 – DAC e Filtro.
Figura 16 – Sinal enviado pelo DAC ao filtro [20].
Este sinal, (figura 16), é recebido pelo filtro, e é recomposto como a
forma de onda capturada, (figura 17).
29
Figura 17 - Sinal recomposto pelo filtro [20].
5.1.1.4 Bloco 4 – Amplificador e Auto-Falante
Neste bloco, (figura 18), ao receber o sinal recuperado do filtro, este é
amplificado e enviado para reprodução nas caixas de som.
Figura 18 - Bloco 4 - Amplificador e Auto-Falante.
5.1.1.5 Bloco 5 – Transmissor e Antena
O transmissor, (figura 19), faz a transmissão das amostras de voz,
gravadas na memória flash, para o receptor. O microcontrolador faz as
configurações de potência, CRC, velocidade, e o tamanho dos blocos a serem
enviados.
Foi necessária a construção de um protocolo para troca de parâmetros
entres os transmissores, para identificar o transmissor e o receptor.
30
Figura 19 – Bloco 5 – Transmissor e Antena.
5.2 Protocolo wireless
Para transmitir os dados entre o receptor e o transmissor, foi
implementado um protocolo via software, que se divide em: troca de
parâmetros sem área de dados (item 5.2.2) e troca de parâmetros com área de
dados (item 5.2.3).
Quando transmitimos os blocos de voz, o transmissor recebe a
nomenclatura de MASTER e o receptor receberá o nome de SLAVE. Isto faz-se
necessário conforme manual do fabricante [17].
5.2.1 Parâmetros
Para que a transmissão entre os rádios seja de maneira eficiente, foram
criados alguns parâmetros de troca de informações entre os transmissores,
visando o sincronismo.
Tabela 3 – Parâmetros do protocolo.
Tipo Descrição Valor (HEX)
STR Sincronismo 0x02h
RTS Requisição de transmissão 0x03h
CTS Livre para transmistir 0x04h
DATA Aumente o tamanho do bloco 0x05h
STARTBLOCK Inicio de um bloco 0x06h
ENDBLOCK Fim de um bloco 0x07h
ACK Tenho algo para transmitir 0x10h
NACK Não tenho algo para transmitir 0x11h
31
5.2.2 Troca de parâmetros sem a área de dados
A comunicação e o sincronismo entre os transmissores, quando não
existem amostras de voz para transmitir, é realizada através do parâmetro de
sincronismo (STR). Através deste, os transmissores mantêm-se em
sincronismo até o momento de transmitir ou receber a voz.
Na figura 20, verificaremos o formato e tamanho do bloco trocado entre os
rádios, em quanto os mesmos, não recebem do microcontrolador, blocos
contendo amostras da voz. O fluxograma de funcionamento do protocolo, pode
ser visto no anexo 9.4(Master) e 9.5 (Slave).
40 bits
8 bits 8 bits 8 bits 16 bits
PRE AMBLE ADRESS PARÂMETRO CRC
Figura 20 - Bloco de sincronismo entre os rádios.
5.2.3 Troca de parâmetros adicionando com área de dados
Quando do término da captura de amostras de voz pelo ADC do
microcontrolador, são alteradas as configurações dos transmissores para a
transmissão dos blocos voz (dados), de um rádio para outro, adicionando um
campo de dados de 80 bits e cada bloco transmitido, passa de 40 bits para
120 bits.
No final da transmissão de todas as amostras de voz do transmissor para
o receptor, os transmissores, de ambos os lados, são reconfigurados para
transmitir blocos sem área de dados, item 5.2.2.
Na figura 21, podemos verificar a área de dados com tamanho fixo de 80
bits ou 10 bytes. O fluxograma de funcionamento do protocolo, pode ser visto
no anexo 9.4(Master) e 9.5 (Slave).
32
120 bits
8 bits 8 bits 8 Bits 80 bits 16 bits
PRE AMBLE ADRESS PARÂMETRO DADOS CRC
Figura 21 - Bloco de envio de dados entre os rádios.
5.3 Firmware
O firmware foi desenvolvido na linguagem de programação C, e seu
organograma completo pode ser visto no anexo 9 deste documento no item 9.6
e 9.7.
5.3.1 Ambiente de desenvolvimento
Foi utilizado o pacote interface de programação em C, WinAvr criada por
Simon Steele, pela sua facilidade de utilização da mesma interface para
gravação direta no microcontrolador e por ser uma ferramenta gratuita
(NotePad 2). Na figura 22, verificamos sua tela principal.
33
Figura 22 – Tela principal de desenvolvimento do Notepad 2.
5.3.2 Interface de programação do ATmega 8
A figura 23 mostra a interface de programação direta entre a porta
paralela do microcomputador com o microcontrolador. Esta interface facilitou a
programação, devido a sua simplicidade de construção e a agilidade que ela
proporcionou para atualização do código da memória do microcontrolador.
Figura 23 - Interface de gravação paralela ATmega 8
34
5.4 Protótipo
O projeto foi concebido através de um protótipo (figura 24), contendo dois
módulos transmissor/receptor, com a finalidade de transmitir as amostras de
voz e regenerá-las no receptor, caracterizando um sistema via rádio. Cada
módulo transmissor/receptor constitui-se de:
1 Microcontrolador;
1 Transceiver 2,4Ghz;
1 Memória Flash;
1 DAC;
1 Amplificador Não-simétrico;
A utilização do tipo montagem representado na figura 24, para o protótipo,
foi realizada devido a necessidade de constantes modificações no circuito
durante seu desenvolvimento, bem como facilitou a execução de testes para
adequação do projeto.
O diagrama esquemático deste projeto pode ser encontrado no anexo 9
deste documento, item 9.3.
Na proposta inicial, haveria 2 botões, tipo pushbotton, que não foram
implementados devido às modificações necessárias no projeto. Os mesmos
foram simulados pelas teclas P e E do teclado do microcomputador.
Os botões necessários à implementação do projeto são:
Play Para gravação e transmissão da voz;
Erase Para apagar a memória;
35
Figura 24 – Protótipo transmissor/receptor
36
6. RESULTADOS
O protótipo apresentou falhas na regeneração da voz, amostrada pelo
ADC e gravada na memória flash. Para identificação do ponto de falha, o
circuito foi sub-dividido em duas partes. Com isto, foi possível isolar o sistema e
criar dois testes que indicassem em qual parte a falha estava ocorrendo.
Partes do sistema:
Transmissão das amostras de voz (item 6.1).
Amostragem e regeneração da voz sem a utilização da gravação das
amostras na memória flash (item 6.2).
6.1 Teste de confiabilidade dos dados transmitidos
O teste de confiabilidade dos dados transmitidos foi executado para a
validação dos valores amostrados, transmitidos e recebidos pelos protótipos.
Com isto, verificou-se que não estava ocorrendo perda de dados na
transmissão das amostras de voz entre os protótipos.
6.1.1 Criação do teste de confiabilidade de dados
As amostras de voz (20 ms) foram adquiridas pelo transmissor e
transmitidas ao receptor. Com a retirada destas amostras de voz de ambos os
lados, foi possível representá-las em dois gráficos (transmissor e receptor) e
comparar a fidelidade das amostras de voz.
Neste teste, foram validados, o transmissor, o ADC e a memória flash.
6.1.1.1 Visualização dos dados da memória do transmissor
As amostras de voz, do transmissor, foram retiradas da memória flash e
representadas em um gráfico (figura 25), para compará-lo ao segundo gráfico
de amostras de voz retiradas receptor.
37
Figura 25 - Gráfico das amostras de voz do transmissor
6.1.1.2 Visualização dos dados da memória do receptor
As amostras de voz do receptor foram retiradas da memória flash e
representadas em um gráfico (figura 26), para comparação com as amostras
do transmissor da figura 25.
38
Figura 26 - Gráfico das amostras de voz do receptor
6.1.2 Conclusão do teste de confiabilidade de dados transmitidos
Subtraindo os gráficos (transmissor - receptor), figura 25 e 26
respectivamente, pode-se verificar as distorções (figura 27), que podem ser
consideradas desprezíveis no trabalho com voz. Estas distorções são
corrigidas no momento que a voz passa pelo filtro de saída, item 5.1.1.3.
Figura 27 – Subtração Amostras do Transmissor e Receptor
6.2 Teste de confiabilidade das amostras da voz ADC e regeneração DAC
Para confirmar o funcionamento dos componentes ADC e DAC, alterou-se
no código, apresentado no item 6.2.1, para que as amostras de voz capturadas
pelo ADC fossem diretamente conduzidas ao DAC, sem a gravação das
mesmas, na memória flash.
39
6.2.1 Criação do teste das amostras de voz e regeneração direta (ADC para DAC)
Foram criadas as seguintes funções via software:
void debug_get_adc( void )
unsigned int aux = 0;
while(!adc_byte_avail());
aux = get_adc_result();
dac_write_buffer( aux );
unsigned int get_adc_result( void )
unsigned char value = 0;
value = bfadc[adc_ptrd_rd++];
if ( adc_ptrd_rd >= 64 ) adc_ptrd_wr = 0;
lgTrava = false;
return value;
6.2.2 Conclusão do teste de confiabilidade das amostras (ADC)
Com este teste, foi possível demonstrar o funcionamento do ADC e do
DAC, com a voz sendo reproduzida diretamente na caixa de som.
Na figura 28, verificou-se que, aplicando um sinal senoidal de 1KHz na
entrada do ADC (1º. Canal do osciloscópio), tem-se na saída do DAC (2º.
Canal do osciloscópio), uma forma de onda regenerada, de mesma freqüência
e com um atraso imperceptível.
40
Figura 28 – Sinal de entrada (ADC) e Saída (DAC)
6.3 Cálculo de velocidade de transferência de bytes para a memória flash
Os testes executados nos itens 6.1 e 6.2, demonstraram o
funcionamento da memória, do transmissor, do ADC e do DAC. Sendo assim,
as duas partes do sistema apresentaram resultados satisfatórios.
A velocidade de gravação das amostras de voz na memória flash foi
identificada como a possível falha na regeneração da voz pelo sistema. Para
isto, foi realizado o teste matemático (item 6.3.1).
6.3.1 Cálculo matemático do tempo de transferência
• SPI = 1 Mhz;
• Tempo para cada bit: (1/1000000)=> 1 us;
• Temos 264 bytes em cada página;
• Cada byte equivale a 8 bits;
• Cada página contem(bits): 264 * 8 => 2112 bits;
• Tempo total por página gravada no buffer A= 2112 * 1us 2,11ms;
41
• Tempo de transferência do buffer da memória flash para página de
memória flash: B = 250 us;
• Total de tempo perdido por página gravada na memória:
C = (A + B) = 2,11ms + 250 us 2,112 ms;
• Amostragem = 62500 / s;
• Quantidade de páginas gravadas por segundo: 62500 / 264 bytes de
cada página: D = 236 páginas completas;
• Total do tempo perdido = Tempo total (bytes + transferência) *
quantidade de páginas por segundo;
• Total do tempo perdido:
E = C + D = 2,112 ms * 236 498 ms (0,5 s);
6.3.2 Conclusão do cálculo matemático
Matematicamente, foi possível verificar a perda na transferência das
amostras de voz de, no mínimo 0,5s, sem considerar a troca de contexto que
existente no código, como, por exemplo, o controle dos ponteiros que auxiliam
na gravação dos dados amostrados para a memória flash.
Para o funcionamento correto deste sistema, o microcontrolador deve
disponibilizar uma velocidade de transferência (SPI) mínima de 4 Mhz.
O ATmega 8L utilizado no projeto, disponibiliza uma velocidade de
transferência de 1 Mhz, portanto não atende aos requisitos determinados pelo
cálculo realizado. Além disto, tem-se uma memória com velocidade de
transferência de buffer de 250 us, cuja performance não é satisfatória ao
sistema, devendo ser substituída por uma memória com tempo de acesso de
10 ns.
6.3.3 Solução – Substituição de componentes
42
Sugestão de componentes a serem substituídos, para atendimento aos
requisitos do cálculo matemático (item 6.3):
Memória Flash (item 6.3.3.1)
Microcontrolador (item 6.3.3.2)
6.3.3.1 Substituição da memória Flash
Substituição da memória Flash pela memória CY7C1061B [21] da
Cypress, com capacidade de 4 Mbytes e acesso direto para gravação com o
tempo de 10 ns, contra os 250 us atuais, através de endereçamento controlado
pelo microcontrolador.
6.3.3.2 Substituição do microcontrolador
Com a substituição da memória, é necessário um microcontrolador com
endereçamento externo para memória RAM. A sugestão é o microcontrolador
ARM7TDMI-S [22], que suporta os sistemas operacionais FreeRtos, uCLinux e
TinyOS. Suportando estes sistemas operacionais, pode-se escalonar os
processos, como por exemplo, a troca de parâmetros que ocorre com os
ponteiros, fazendo com haja processos ocorrendo em “paralelo”, diminuindo
assim, a perda da voz amostrada.
6.4 Funcionamento Parcial do projeto
Com os testes realizados nos itens 6.1 e 6.2, pode-se concluir que os
componentes ADC, DAC, transmissor, SPI, protocolo, memória e o
microcontrolador estão funcionando corretamente. O que limitou este projeto,
foi a velocidade do barramento SPI (1 MHz), fazendo com que a transferência
das amostras de voz do microcontrolador (ADC) para a memória fosse lenta,
43
com perdas de, no mínimo 0,5 s, de amostras, interferindo assim na
regeneração da voz.
6.5 Dificuldades encontradas
Este projeto envolveu um estudo aprofundado de componentes, como:
DAC via SPI, Transceiver e barramento SPI, além da implementação de um
protocolo específico ao projeto.
O projeto envolveu também, a utilização de três barramentos SPIs (DAC,
Transceiver e memória flash), sendo que o microcontrolador utilizado possuía
apenas dois barramentos. Assim, foi necessária a implementação de um
terceiro barramento, cuja programação teve de ser criada através de um
código compilado no microcontrolador.
A transmissão via rádio, utilizando a freqüência 2,4Ghz, não possui
equipamentos de medição acessíveis, que comprovem seu funcionamento.
Sendo assim, há a necessidade de realizar várias configurações
(endereçamento, potência, faixa de freqüência, sequenciamento dos dados
enviados e outros) em cada rádio até o sucesso da transmissão.
44
7. CONCLUSÃO
A construção deste projeto permitiu a reprodução de um sistema sem fio,
via rádio, cujo funcionamento foi implementado através de módulos de
transmissão/recepção de voz, utilizando protocolo próprio desenvolvido para
este sistema.
A transmissão e recepção de dados, aquisição e reprodução direta da
voz foram implementadas com sucesso. Os resultados foram satisfatórios no
que tange o funcionamento do circuito, ADC, DAC, memória flash e o
transmissor que funcionaram conforme os testes realizados nos itens 6.1 e 6.2.
Conforme o item 6.3, pode-se verificar que, a velocidade de
transferência das amostras de voz não é suficientemente rápida, ocasionado
uma perda de 0,5s de amostras de voz por segundo, prejudicando a
regeneração da voz obtida.
As constatações dos testes, itens 6.1 e 6.2, e do cálculo, item 6.3,
possibilitaram a escolha de novos componentes, item 6.3.3 (CY7C1061B para
substituição da memória e o ARM7TDMI-S, para a substituição do
microcontrolador) para que o projeto cumprisse a regeneração da voz sem que
houvesse a perda de amostras de voz na aquisição (item 6.3).
A implementação dos componentes sugeridos, possibilitará que o
sistema regenere a voz adequadamente conforme premissas iniciais do
projeto.
Com este projeto, sistemas de transmissão sem fio poderão ser
implementados, possibilitando ambientes mais flexíveis, com a ausência de
cabeamento e estruturas físicas necessárias, além de ser utilizado como base
para estudos de implementação de sistemas de transmissão de voz utilizando
o protocolo Wi-Fi.
45
8. REFERÊNCIAS BIBLIOGRAFICAS
[1] PETERSON, L. L., DAVIE, B. S. “Redes de Computadores“, 3ª ed. Rio de Janeiro: Campus, 2003.
[2] ROSS, J. “Wi-Fi”, 1ª ed. São Paulo: Alta Books, 2003.
[3] DE SOUZA, M. B. “Sistemas de rede sem fio”, 2ª ed. São Paulo: Brasport, 2003.
[4] TANENBAUM, A. S. “Redes de Computadores”, 4ª ed. Rio de Janeiro: Campus, 2003.
[5] PERTENCE JÚNIOR, A. “Amplificadores Operacionais e Filtros Ativos”, 6ª ed. São Paulo: Artmed Editora S.A. 2003.
[6] TORRES, G. “Redes de Computadores Curso Completo”, 3ª ed. Rio de Janeiro: Axcel Books, 2001.
[7] RUFINO, N. M. “Segurança em redes sem fio”, 1ª ed. São Paulo: Novatec, 2005.
[8] DUBENDORF, V. A. “Wireless Data Tecnologies”, 1ª ed. England: Wiley, 2003.
[9] SEDRA, A. S., SMITH, K. C. “Microelectronic Circuits”, 5ª ed. New York: Oxford, 2004.
[10] KLEINKE, M, “Teoremas sobre DAC e ADC da Unicamp”
http://www.ifi.unicamp.br/~kleinke/f540/e_amp4.htm#ADC%20DAC
(10/06/2005)
[11] ZURMELY, R, “Teoria sobre sinais analógicos (senoidais) e digitais”
http://paginas.terra.com.br/lazer/py4zbz/teoria/teoria.htm (27/05/2005).
46
[12] SISTOLINO, Cláudio Luis “Voz sobre IP – um estudo experimental”
http://www.inf.ufrgs.br/pos/SemanaAcademica/Semana99/sitolino/sitolino.html
(27/05/2005).
[13] ”Telefonia IP para Ambientes Móveis Compactos”. Disponível em:
http://www.lecom.dcc.ufmg.br/~segiool/telefonia/voz.htm (27/05/2005).
[14] Memória Flash 45DB081B, Atmel, 2005
http://www.atmel.com/dyn/resources/prod_documents/45DB081B.PDF (11/12/2005)
[15] Microcontrolador ATmega 8L, Atmel, 2004
http://www.atmel.com/dyn/resources/prod_documents/2486S.pdf (11/12/2005)
[16] Max232, “Comunicação serial”, Texas Instruments, 2004
http://www.neonixie.com/semiconductors/ics/ti-max232/max232.pdf (11/12/2005)
[17] nRF2401 – “Transceiver”, Nordic, 2004
http://www.nvlsi.no/index.cfm?obj=product&act=display&pro=64 (11/12/2005)
[18] TLV2252 – “Amplificador não simétrico”, Texas Instruments, 2004
http://focus.ti.com/docs/prod/folders/print/tlv2252-ep.html (11/12/2005)
[19] TLV5616 – “DAC”, Texas Instruments, 2004
http://focus.ti.com/docs/prod/folders/print/tlv5616.html (11/12/2005)
[20] “Módulo gravador/leitor de voz”, Revista Elektor, exemplar no. 13, Abril, 2003
http://www.elektorbrasil.com.br/edicoes/index.asp?id_revista=12 (20/04/2005)
[21] CY7C1061AV33 – “Memória RAM”, Cypress, 2003
http://www.cypress.com/ram/cy7c0106av33_5.pdf (18/11/2005)
[22] ARM7TDMI – “Microcontrolador”, ARM, 2001
http://www.arm.com/processors/DDI0029G_7TDMI_R3_trm.pdf (18/11/2005)
47
9. ANEXOS
9.1 Levantamento de custos
Quantidade Descrição Valor unitário Valor Total
2 Transmisssor 2,4 Ghz R$ 60,00 R$ 120,00
2 Memória Flash AT45DB081B R$ 28,10 R$ 56,20
2 Microcontrolado Atmega 8 R$ 17,33 R$ 34,66
2 DAC TLV 5616 R$ 12,40 R$ 24,80
2 Amplificador TLV 2252 R$ 22,30 R$ 44,60
2 Regulador de Tensão 7805 R$ 9,70 R$ 19,40
2 Regulador de Tensão 7833 R$ 11,10 R$ 22,20
2 Interface Serial MAX 232 R$ 7,30 R$ 14,60
12 Capacitor de 100 nf R$ 0,07 R$ 0,84
4 Capaciror de 10 nf R$ 0,07 R$ 0,28
8 Capacitor de 4,7 uf R$ 0,20 R$ 1,60
16 Resistor 1k ohm R$ 0,02 R$ 0,32
2 Protoboard R$ 83,00 R$ 166,00
1 Interface de programação paralela R$ 19,20 R$ 19,20
372 horas Hora técnica R$ 20,00 R$ 7.440,00
TOTAL R$ 7.964,70
48
9.2 Cronograma de desenvolvimento
49
50
9.3 Diagrama esquemático
51
9.4 Fluxograma protocolo do master
52
Envia - STR
Recebeu STR do
SLAVE <S/N>?
Algo transmitir
<S/N>?
Envia ao SLAVE -
RTS
Envia ao SLAVE
CTS
Recebi do SLAVE
ACK ou NACK ?NACK
Recebi SLAVE
START BLOCK
<S/N> ?
ACK
N
Recebi DATA do
SLAVE
<S/N>
Recebo o Bloco e
gravo na Flash
S
N
Recebi ENDBLOCK
<S/N> ?
N
Aumento o
Tamanho do bloco
para recepção
S
Diminuo o
Tamanho do bloco
para recepção
S
Habilito o envio
dos dados da
Fash para o DAC
Recebi CTS do
SLAVE
<S/N> ?
Aumento o
Tamanho do bloco
para Transmissão
S
Tenho dados para
Transmitir
<S/N ?
Envio DATA e
Bloco para SLAVE
Envia o EndBlock
e diminue o
tamanho do bloco
N
S
N
S
N
Início da
Transmissão
53
9.5 Fluxograma protocolo do slave
Recebi STR do
Master
<S/N> ?
N
Envia STR para
MASTER
Recebi RTS
ou CTS ?
Envio de CTS ao
MASTER
RTS
Recebi
STARTBLOCK
<S/N> ?
N
Aumento o
Tamanho do bloco
para recepção
S
Recebi DATA
<S/N> ?
Diminuo o
Tamanho do bloco
de recepção
N
Tenho dados para
transmitir
<S/N> ?
N
Envia ao Master
ACK
Aumento o
Tamanho do bloco
para transmissão
Envio DATA e
Bloco para SLAVE
Tenho Dados para
Tranmistir <S/N> ?
Envio ao MASTER
ENDBLOCK e Diminuo o
Tamanho do bloco de
Transmisaão
N
S
Recebo o Bloco e
gravo na Flash
Recebi ENDBLOCK
<S/N> ?
N
Diminuo o
Tamanho do bloco
para recepção
Habilito o envio
dos dados da
Fash para o DAC
S
Início da
Recepção
54
9.6 Organograma do software
MAIN()
ADC()
DAC()
DATAFLASH()
PROTOCOL()
SER_QUEUE()
TIMER()
TRW24G()
INCLUDES
void init_adc( void );
bool adc_byte_avail( void );
unsigned int get_adc_result( void );
Funções
void set_flgDirectly ( bool value );
bool get_flgDirectly( void );
void init_dac( void );
bool dac_byte_avail( void );
void dac_write( void );
void dac_write_buffer( unsigned int value );
void dac_write_value( unsigned int value );
bool get_flgCapturing( void );
bool get_flgConverting( void );
void init_dataflash( void );
void erase( void );
bool get_wifi_write_flash( unsigned char *bf, unsigned
char length );
void get_flash_write_dac ( void );
bool get_adc_write_flash( void );
unsigned char get_flash_write_wifi( unsigned char *bf ,
unsigned char length );
bool voice_to_trans_avail( void );
bool voice_to_recv_avail( void );
void get_pointers( void );
void change_RX_TX( void );
void change_TX_RX( void );
bool get_flgRecvWifi( void );
void init_ser( void );
bool ser_recv_avail( void );
unsigned char ser_read_byte( void );
void ser_write_byte( unsigned char value );
void ser_puts( char *c );
void ser_printf( unsigned char c );
void ser_hexa_printf( unsigned char c );
void ser_hexa_printw( unsigned int c );
void init_timer( void );
void set_tmpRecord( unsigned int value );
bool get_flgRecord( void );
void set_tmpPlay( unsigned char value );
bool get_flgPlay( void );
void set_tmpCTS( unsigned char value );
bool get_flgCTS( void );
void set_tmpInterBlock( unsigned char value );
bool get_flgInterBlock( void );
void set_tmpInitCom( unsigned char value );
bool get_flgInitCom( void );
void set_tmpSendBlock( unsigned char value );
bool get_flgSendBlock( void );
void set_tmpChaModo( unsigned char value );
bool get_tmpChaModo( void );
void trw24_5us_delay( void );
void trw24_200us_delay( void );
void trw24_clock( void );
void trw24_init( void );
void trw24_write_byte( unsigned char value );
void trw24_set_configuration( unsigned char address,
unsigned char type );
void trw24_send_configuration( void );
void trw24g_set_block_size( unsigned char qtdbits );
bool trw24g_byte_avail( void );
unsigned char trw24g_get_byte( void );
unsigned char trw24g_get_bf( unsigned char *bf ,
unsigned char length );
void trw24g_send_byte( unsigned char value ,
unsigned char address );
bool trw24g_send_buffer( unsigned char parameter,
unsigned char *bf, unsigned char length, unsigned
char address );
void trw24g_tx_mode ( void );
void trw24g_rx_mode ( void );
void trw24_show_config( void );
void trw24_show_frame( void );
HARDWARE.H
PRINCIPAL
55
9.7 Diagrama Básico do Firmware
Inicializa o HW
É
< P / E >
N
Aciona ADC e
Grava as
amostradas na
memória
Apaga toda a
memória gravada
P
E
Inicializa o procolo
Existem dados
a serem transmitidos
<S/N> ?
Altera o tamanho
do blocos e
transmite
S
Nenhuma
tecla pressionada
Início