Escrito por: Newton C. Braga

Em outros artigos abordamos um primeiro projeto de uma série usando o dsPIC da Microchip, um novo e poderoso recursos para projetistas que necessitam de circuitos capazes de um processamento rápido de sinais em tempo real . Nesse artigo faremos uma breve descrição de uma importante aplicação do dsPIC30F num Codificador/Decodificador de Palavra, mostrando como é possível usar esse componente numa aplicação prática. Dada a extensão do projeto, que em sua documentação original contém 106 páginas, faremos um resumo da aplicação, deixando para os leitores interessados no projeto completo obtê-lo em nosso site ou da própria Microchip no formato PDF, documento DS70154A.

 

O dsPIC30F pode ser usado numa aplicação de grande interesse que envolve o tratamento em tempo real de sinais de voz. Dentre elas destacamos:

 

* Secretárias eletrônicas

* Sistemas de segurança residencial e predial

* Intercomunicadores

* Aplicações inteligentes

* Gravadores de voz

* Walkie-takies

* Qualquer tipo de aplicação que necessite de uma mensagem de playback

 

dsPIC
dsPIC

 

O que é possível fazer utilizando o dsPIC é comprimir um sinal de voz numa proporção de 16:1 através do processo CELP (Code Excited Linear Pediction) capaz de fornecer uma boa qualidade de sinal sem muita complexidade computacional.

A Microchip, juntamente com o projeto fornece um arquivo que permite utilizar o dsPIC num compressor/descompressor de voz para aplicações half-duplex com um mínimo de ocupação de RAM.

Um APU bem definido permite que ele seja facilmente integrado em qualquer aplicação.

A taxa de amostragem escolhida é de 8 kHz tanto com a utilização de um codec externo, como do conversor analógico para digital de 12 bits do próprio chip. A taxa de compressão usada exige apenas 1 kbyte de memória para cada segundo gravado.

 

No projeto indicado são as seguintes as características destacadas:

* Taxa de amostragem fixa de 8 kHz

* Taxa de saída fixa de 8 kbits por segundo

* CELP

* Duas interfaces analógicas de entrada - codec ou ADC de 12 bits on-chip

* Duas interfaces de saída - codec ou PWM on-chip

* Detecção de atividade de voz opcional

* 1 kB de memória por segundo

* Livre de royalties

* Compatível com a linguagem MPLAB C30

 

 

Decodificador:

* Interface playback audio-codec Si-3000 ou PWM

* Poder computacional 3 MIPS

* Memória flash de programa de 15 kB

* RAM de 3,2 kB

 

Análise do Projeto

Na figura 1 temos um diagrama de blocos do Codificador/Decodificador de palavra sugerido pela Microchip, utilizando dsPICs da família dsPIC30F.

 

Diagrama de blocos do Codificador e Decodificador
Diagrama de blocos do Codificador e Decodificador

 

Conforme podemos ver, os blocos externos utilizados neste circuito são poucos, já que o dsPIC "faz tudo" em seus circuitos internos.

Para essa finalidade existe um programa (Library) escrito predominantemente em linguagem assembly, a Speech Encoding/Decoding Library permite otimizar a capacidade computacional do dsPIC e minimizar o uso de RAM.

Na documentação técnica o leitor encontrará no capítulo 3 a Application Programming Interface e no Capítulo 6, a Speech Encoding Utility que permite produzir arquivos codificados de voz a partir de qualquer desktop, utilizando um simples microfone ou ainda um arquivo WAV pré-existente.

Com a utilização de uma memória Flash externa é possível armazenar vários minutos de voz, já que cada minuto exige aproximadamente 60 kB de memória. A porta I/O do dsPIC30F permite transferir esses arquivos entre o dsPIC e a memória.

 

Exemplos de Aplicação

Na figura 2 temos um diagrama de blocos que descreve uma aplicação prática do dsPIC30F6014 num codificador de palavra, utilizando a memória de dados EEPROM on-chip para playback.

 

Diagrama de blocos de uma aplicação prática do dsPIC30F6014.
Diagrama de blocos de uma aplicação prática do dsPIC30F6014.

 

 

Nesse circuito, o sinal de voz captado pelo microfone é codificado e armazenado na memória de dados EEPROM on-chip e depois decodificado para reprodução.

O projeto foi elaborado na placa de desenvolvimento PICDEM 1.1. Essa placa permite que o dispositivo seja ainda interfaceado com codec, LCD, LEDs e chaves.

Nessa aplicação o programa é inicializado e controlado a partir de chaves externas. S1 inicializa uma seção de codificação enquanto que S2 faz com que o sinal gravado seja reproduzido. Os LEDs sinalizam o funcionamento, o LCD fornece informação sobre o menu e status da mensagem.

Na figura 3 temos um diagrama de blocos de uma aplicação para decodificação, descrita no capítulo 9 da documentação fornecida pela Microchip.

 

Diagrama de blocos de uma aplicação para decoficação.
Diagrama de blocos de uma aplicação para decoficação.

 

 

Conforme podemos ver, as funções decoder, memória de programa e speech decoder demo são as usadas. Esse diagrama refere-se a aplicação do projeto elaborada na placa de desenvolvimento PICDEM 1.1.

Alguns circuitos externos são necessários para o desenvolvimento desses projetos, sendo encontrados na própria documentação da Microchip. Assim, tomamos como primeiro exemplo um projeto de referência para um ADC/PWM de Interface. Esses blocos de projeto têm 4 diagramas que são dados a seguir, para que o leitor tenha uma idéia de como o projeto completo deve ficar depois de pronto.

Assim, na figura 4 temos a interface de microfone utilizando dois amplificadores operacionais.

 

A interface de microfone utilizando dois amplificadores operacionais.
A interface de microfone utilizando dois amplificadores operacionais.

 

Esse bloco consta de um filtro passa-baixas de oitava ordem com uma freqüência de corte de 3.8 kHz. O sinal desse circuito vai para o ADC.

Na figura 5 temos mais um bloco desse circuito.

 

Mais um bloco desse circuito.
Mais um bloco desse circuito.

 

Observe a utilização de componentes discretos (transistores) nesse ploco que processa os sinais de áudio do microfone.

O terceiro bloco mostrado está na figura 6, empregando um circuito integrado da Maxim e dois reguladores de tensão que fornecem as tensões de 5 e 4,5 V a partir de uma entrada de 12 V.

 

Este bloco utiliza um CI da Maxim e mais dois reguladores de tensão.
Este bloco utiliza um CI da Maxim e mais dois reguladores de tensão.

 

Finalmente temos o bloco que processa os sinais de áudio para um amplificador externo formado por dois amplificadores operacionais.

Esse circuito, mostrado na figura 7, utiliza uma configuração em que os amplificadores fornecem duas saídas de áudio, para os dois canais de amplificadores externos.

 

Diagrama de blocos do  processamento dos sinais
Diagrama de blocos do processamento dos sinais

 

Conclusão

A aplicação descrita nesse artigo mostra apenas uma pequena parcela das possibilidades de projetos que o dsPIC oferece.

Trabalhando com sinais de áudio em tempo real, o dsPIC reúne num único componente as características de alta velocidade dos DSPs com a capacidade de processamento dos PIC.

Isso torna esse produto ideal para aplicações em que sinais devam ser processados rapidamente como é o caso de um codificador/decodificador de sons, tomado como exemplo.

Documentação completa sobre esse projeto, incluindo o programa, podem ser obtidas no da Microchip (www.microchip.com).