Escolar Documentos
Profissional Documentos
Cultura Documentos
real."
O objetivo deste projeto foi projetar e implementar um estetoscpio digital para servir de
plataforma para potenciais aplicaes de diagnstico assistido por computador (CAD) para a
deteco de sopros cardacos. O sistema usa um sensor personalizado para capturar sons
cardacos a 8 kHz e os converte em sinais eltricos para serem processados por um
microcontrolador ATmega644. Os sinais capturados so emitidos atravs de modulao de
largura de pulso para um soquete de udio padro de 3,5 mm para auscultao em tempo real.
Alm disso, o estetoscpio usa um chip de memria externa de 1 MB para gravar e reproduzir
formas de onda de udio. Para a interface do usurio, o sistema inclui um display LCD de 4
linhas de 20 caracteres de largura e um teclado de 16 botes. Dados em tempo real e gravados
tambm podem ser visualizados usando uma interface MATLAB que roda em um PC separado e
se conecta ao sistema de estetoscpio via interface USART no microcontrolador. A interface
MATLAB tambm usa os dados transmitidos para calcular e exibir a freqncia cardaca mdia
do paciente em batimentos por minuto.
Este projeto pretende fornecer uma estrutura para o desenvolvimento de ferramentas de CAD
embutidas teis para a deteco de murmrio cardaco. Os sopros cardacos podem passar
despercebidos durante os exames de rotina, uma vez que a deteco depende do treinamento dos
mdicos, da qualidade do equipamento utilizado e da gravidade da condio. Um estetoscpio
digital pode ser usado para auxiliar mdicos na anlise de sinais cardacos em tempo real durante
a ausculta para reduzir os riscos de no detectar certas condies.
Desenho de Alto Nvel
Viso geral
A construo do sensor foi testada usando um multmetro para detectar shorts e verificar se as
conexes apropriadas foram feitas. A capacidade de deteco real do componente foi testada
utilizando o circuito de polarizao / amplificador descrito na prxima seco.
Circuito de Bias e Amplificador de Microfone
O microfone no sensor acstico precisava ser polarizado para o bom funcionamento. Alm disso,
a sada do microfone da ordem dos milivolts, que relativamente pequena em magnitude
comparada com a preciso do ADC que faz a amostragem do sensor (o ADC tem uma preciso
de aproximadamente 20 mV quando se tomam amostras de 8 bits). Isto torna difcil para o
microcontrolador detectar alteraes na sada do sensor. A fim de abordar estas duas questes,
um circuito de polarizao e amplificador foi projetado e implementado para interface da sada
do sensor bruto com o MCU. O objetivo do circuito era polarizar corretamente o microfone e
amplificar a sada do sensor para detectar oscilaes de tenso causadas por sons. A figura abaixo
mostra um esquema do circuito concludo.
A faixa de operao tpica para o microfone era de 2 V, com uma classificao mxima de 10 V.
A MCU forneceu uma tenso de 5 V, de modo que um simples circuito divisor de tenso com
resistncias idnticas de 1k foi usado para reduzir a tenso a 2,5 V para polarizar o microfone. A
sada do microfone foi passada atravs de um capacitor para remover o offset DC. O capacitor
usado era grande o suficiente para garantir que as baixas freqncias desejadas no fossem
filtradas. Com dois resistores de 1k em paralelo com a sada do microfone, a impedncia de sada
equivalente do sensor de aproximadamente 400 ohms. Usando um capacitor de 10 uF, foi
projetado um filtro passa-alta simples com uma frequncia de corte de cerca de 40 Hz, que est
abaixo da maioria das baixas frequncias de interesse.
O sinal AC-acoplado foi conectado entrada positiva (Vin +) de um amplificador operacional
para aumentar a amplitude do sinal. Como o ADC do microcontrolador mede tenses entre 0 e 5
V, a linha Vin + do amplificador operacional foi polarizada para 2,5 V para capturar a maior
magnitude de oscilaes positiva e negativa da sada do microfone. Esta polarizao foi
implementada com outro circuito divisor de tenso usando resistores idnticos de 20k. Os valores
destas resistncias foram escolhidos para serem maiores do que as resistncias no divisor de
tenso anterior de modo a evitar afetar a impedncia de sada equivalente da fase anterior.
As resistncias foram selecionadas para obter um ganho ideal de 150 para freqncias entre a
faixa de 20 Hz e 2 kHz. O ganho foi selecionado com base na restrio de 300 kHz do produto
de largura de banda de ganho do op-amp. * Nota: o resistor R6 foi implementado em hardware
como um resistor varivel (10k trimpot), a fim de permitir a prototipagem mais conveniente e
testes. Um capacitor foi adicionado em srie com a resistncia R6 no loop de realimentao op-
amp para criar um sistema com ganho unitrio para entradas de tenso DC. O ganho unitrio na
DC importante para evitar a amplificao da polarizao de 2,5 V no n Vin +. Sem este
capacitor adicional, a sada do amplificador saturaria a 5 V quando o microfone no detectou
nenhum som. Um condensador de 10 uF foi seleccionado para C1 de modo a conseguir um corte
de filtro de passagem elevada de aproximadamente 2 Hz, que est prximo de DC para passar
todos os sinais no CC. Por outro lado, um capacitor de 500 pF foi selecionado para C5 em
paralelo com um resistor 1M para criar um filtro passa-baixa com uma freqncia de corte de
aproximadamente 300 Hz. Com todas essas realizaes de filtro de hardware bsico, a faixa de
freqncia efetiva do sinal de sada filtrado est entre 40 - 300 Hz.
O circuito do amplificador foi cuidadosamente testado depois de ter sido construdo na placa.
Um gerador de funo foi conectado entrada do circuito e as freqncias foram varridas
manualmente para testar e verificar a resposta de freqncia do circuito. A seguinte tabela e
grfico mostra a resposta de freqncia medida do circuito do microfone:
Os dados medidos mostram que h aproximadamente uma queda de 3dB no ganho na frequncia
de corte de 300 Hz. Isto mostra que a implementao do filtro de passagem baixa atenua
adequadamente os sinais de alta frequncia. Depois de verificar que a resposta de freqncia do
circuito era como esperado, o sensor acstico foi testado conectando-o entrada do circuito de
polarizao / amplificador.
Conversor Digital-para-Analgico
Para produzir a forma de onda de udio em tempo real ou gravada para um fone de ouvido / alto-
falante, foi implementado um simples conversor digital-analgico na forma de um filtro passa-
baixo RC. Este circuito calcula em mdia um sinal de entrada modulado em largura de pulso
alm de atenuar o contedo de alta freqncia. A Figura 6 mostra um esquema do circuito DAC.
A constante de tempo RC do filtro foi projetada para atenuar freqncias maiores que
aproximadamente 210 Hz. Esta freqncia de corte est abaixo da faixa de freqncia do sinal de
entrada para a MCU. O circuito foi projetado desta forma para reduzir o rudo de alta freqncia
introduzido no sinal na sada PWM. Um valor de resistor relativamente pequeno foi escolhido
para o circuito a fim de interface com fones de impedncia de entrada baixa.
O circuito foi testado e validado usando o sensor estetoscpio eo circuito amplificador aps o
software para capturar a sada do estetoscpio e gerar o sinal PWM foi desenvolvido. A figura
abaixo mostra o sinal PWM e o correspondente sinal analgico capturado em um osciloscpio.
Memria flash
Um chip de memria flash de 1MB foi adquirido para fornecer a capacidade de armazenar at 10
formas de onda cardaca para futura reproduo e anlise. Uma vez que o chip requer uma tenso
de alimentao entre 2,7 V e 3,6 V, foi utilizado um regulador de potncia para converter a
alimentao de 5 V alimentando o resto do circuito para uma fonte estvel de 3,3 V para a
memria. O microcontrolador se comunicava com o chip Flash atravs de uma interface
perifrica serial (SPI), com o MCU como mestre eo chip Flash como dispositivo escravo. O
barramento SPI especifica quatro linhas lgicas: serial clock (SCLK), master output (MOSI),
master input (MISO) e slave select (SS). As linhas SCLK, MOSI e SS so emitidas pela MCU e,
portanto, requerem deslocamento de nvel de 5 V para aproximadamente 3,3 V. A linha MISO
emitida pela memria Flash e no requer qualquer traduo de tenso para interface com a MCU.
Isso ocorre porque a sada de 3,3 V da memria est dentro do limite inferior para detectar uma
entrada de alta tenso no pino de E / S. A Figura 7 ilustra um esquema do circuito de memria
flash.
A traduo de tenso foi implementada usando divisores resistivos simples. Os valores das
resistncias foram selecionados para serem pequenos para reduzir a constante de tempo RC da
translao. Isto era necessrio para limpar de forma limpa o sinal de relgio de alta freqncia
sem distoro.
Para testar a funcionalidade de leitura da memria Flash, um segmento curto de cdigo foi
escrito para enviar um comando do microcontrolador para ler o ID do fabricante da memria.
Para testar as funcionalidades de apagar e gravar, um apagamento de setor seguido de um
comando de escrita de pgina foram enviados ao chip para armazenar dados. Foi ento emitido
um comando de leitura de dados para verificar se o contedo da memria estava correto.
Teclado e LCD
ATmega644 Microcontrolador
O mdulo ADC foi usado para converter o sinal eltrico analgico da sada do circuito do sensor
em um sinal digital que o microcontrolador pode processar. A referncia de tenso para o mdulo
ADC foi ajustada para 5 V. O relgio do sistema a 16 MHz foi dividido por 32 para conduzir o
ADC a uma frequncia de 500 kHz. O Timer 1 Capture ISR foi usado para amostrar o ADC em 8
kHz com preciso de 8 bits. Embora o contedo de freqncia da maioria dos sons internos do
corpo seja relativamente baixo (<300 Hz), uma taxa de amostragem maior foi usada para
melhorar a qualidade de udio do sinal adquirido. * Nota: a taxa de amostragem mnima
necessria para reconstruir um sinal de 300 Hz sem aliasing de 600 Hz com base no teorema de
amostragem de Nyquist. Dentro do ISR, os dados amostrados so ento dimensionados com base
nas configuraes de volume atuais e gravados em um buffer flash na MCU se o sistema estiver
no modo de captura.
As formas de onda cardacas foram reproduzidas em tempo real e a partir de gravaes anteriores
gerando um sinal PWM utilizando os dados amostrados a partir do ADC. Uma sada PWM de
62,5 kHz foi produzida usando o Timer 2. A magnitude da sada atualizada dentro do Timer 1
Capture ISR na mesma taxa de amostragem de 8 kHz com base nos dados amostrados ou
gravados. Alm de fornecer os dados de udio para fones de ouvido / alto-falantes, os dados
tambm so transmitidos para uma ferramenta de visualizao MATLAB atravs do mdulo
USART a 100 Hz. Como a tarefa de transferncia serial no crtica, os dados so gravados
somente em um buffer de transferncia serial dentro do Timer 1 ISR. A transmisso real dos
dados usando o USART realizada dentro do loop principal com base nos tempos do sistema e
da tarefa atualizados usando o timer 0 Compare ISR.
Operaes em Flash
A interface de software com o chip de memria Flash utilizou o mdulo de hardware SPI no
microcontrolador. Para enviar um comando via SPI, a linha de seleo de escravos foi ativada
pela primeira vez. Os dados de transmisso desejados foram ento escritos para o registo de
dados SPI, que emite o sinal de relgio na linha SCLK e desloca os bits de dados (MSB
primeiro) para fora para a linha MOSI. Depois de enviar todos os bytes de dados, a linha de
seleo de slave foi desativada para executar o comando na memria. * Nota: a comunicao SPI
full-duplex. medida que cada bit deslocado para fora na linha MOSI, um novo bit
deslocado para dentro da linha MISO. Devido a isso, dados falsos podem ser enviados do mestre
para receber dados do escravo. A tabela abaixo lista os principais comandos do Flash usados para
ler, apagar e gravar dados no chip.
Escrever Dados Adquiridos
Para reproduzir os dados gravados, necessrio ler os dados da memria Flash. Isso feito uma
pgina de cada vez usando dois Flash l buffers no MCU. Inicialmente, os dados de reproduo
so inicializados lendo duas pginas de dados e armazenando-as nos buffers de leitura. Os dados
nos buffers so ento emitidos a 8 kHz usando o PWM. Depois que uma pgina cheia de dados
foi emitida para os fones de ouvido, o segundo buffer usado para continuar a operao. Quando
o buffer alterna, um comando de leitura Flash emitido para preencher novamente o buffer
original. Esse processo continua at que todos os 64KB de dados tenham sido lidos da memria e
enviados para os fones de ouvido.
Quando um boto no teclado pressionado, dois dos oito pinos ficam em curto. Um pedao de
cdigo que coletou os valores de cada um dos pinos em um nico nmero e mapeou o resultado
para um nmero entre 1 e 16 foi fornecido. Este valor correspondeu ao ndice do boto na matriz
4x4 de botes. Por exemplo, o boto A foi mapeado para um valor numrico de 4. Este valor
(butnum) foi usado na mquina de estado de desalinhamento para o sistema (veja a Figura 3). Se
o valor for diferente de zero, o sistema saltar do padro RELEASED_STATE para o
MAYBE_PUSH_STATE. Se o mesmo boto ainda for pressionado (eo valor de butnum no for
zero), o sistema salta para PUSHED_STATE. Se o mesmo boto for liberado, o sistema ir para o
MAYBE_REL_STATE antes de saltar para o RELEASED_STATE e definir uma tag para indicar
que um boto foi pressionado e liberado. A verificao do boto e o cdigo de desacordo so
executados a cada 30 ms. O valor de butnum foi mapeado para os valores numricos reais 0-9 se
um desses botes foi pressionado. Os botes correspondentes ao asterisco (*), smbolo de libra
(#) e as letras foram mapeados para 11-15 na respectiva ordem. Esses mapeamentos foram
armazenados no nmero de chave da varivel global e foram usados para avaliar as aes dos
botes. A Figura 9 abaixo demonstra a mquina de estado usada para desbancar uma imprensa de
boto.