Vous êtes sur la page 1sur 51

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

ESCOLA DE ENGENHARIA
DEPARTAMENTO DE ELETRNICA

SISTEMA DE ALARME, SENSOREAMENTO E ACIONAMENTO DE


DISPOSITIVOS VIA REDE TELEFNICA

Autor: _____________________________________________________________________
Valdir Caetano da Silva Neto

Orientador: _________________________________________________________________
Prof. Mauros Campello Queiroz

Examinador: ________________________________________________________________
Prof. Fernando Antnio Pinto Barqui

Examinador: ________________________________________________________________
Prof. Gelson Vieira Mendona
DEL
Novembro de 2005
Agradecimentos:
Esta , talvez, a parte mais difcil de qualquer trabalho. Foram tantas as pessoas que
colaboraram direta ou indiretamente na realizao deste projeto que inevitvel algum ficar
de fora da lista de agradecimentos, pois a memria no to grande assim. De qualquer
forma, desde j minhas desculpas.
Primeiramente devo agradecer a meus pais, pois sem eles eu no estaria aqui e sem
mim no teria havido este projeto. Seguindo esta linha de raciocnio, devo agradecer tambm
a meus avs, bisavs e todos meus outros ascendentes.
Devo agradecer tambm aos professores, que sem eles eu no teria conhecimento para
realizar este trabalho, porm agradeo especialmente aos professores: Mauros, Gelson,
Barqui, Rhomberg, Cas e Lanza.
Como no seramos nada sem amigos, aqui vai o agradecimento para todos, em
especial aos amigos: Solimar, Guilherme, Mauricio, Luciana e Durval.
Tambm colaboraram, e muito, com este trabalho: Sr. Pedro de Freitas e Paulo.
A todos os outros que participaram de alguma forma na elaborao deste trabalho,
muito obrigado.

ii
Resumo:
Uma das reas que os especialistas apontam como sendo propensa a se desenvolver
projetos de sistemas eletrnicos a automao de residncias. J h certo tempo que se
comenta a respeito da casa do futuro ou casa inteligente em que equipamentos eletrnicos
estariam to integrados no ambiente que sequer seriam notados. No se sabe onde ir chegar
esta automao residencial, porm uma forma barata e possvel de ser implementada
atualmente sem que se necessite de equipamentos muito sofisticados apresentada neste
projeto.
Conforme dito no ttulo, este projeto possibilita o acionamento e sensoreamento de
dispositivos bem como possui ainda um alarme via rede telefnica. O sistema foi feito
visando a automao residencial, porm nada impede que possa ser utilizado em outro local
que no residncias, visto que sensoreamento, acionamento de dispositivos e alarme podem
ser utilizados de diversas formas.
A idia do projeto relativamente simples: um microcontrolador no centro do sistema,
sendo auxiliado por outros dispositivos que fariam a interface daquele com a rede telefnica e
com os demais componentes. Dentre os diversos microcontroladores disponveis optou-se por
utilizar o PIC, da Microchip, por facilidade de uso, preo e disponibilidade, entre outros
fatores. Outro componente essencial do projeto foi o DTMF Transceiver, dispositivo
responsvel por fazer a converso de tons DTMF utilizados na comunicao telefnica em
bits e vice-versa.
Durante a realizao deste trabalho alguns problemas ocorreram, como de praxe,
sendo que alguns de ordem totalmente externa ao projeto; contudo os principais foram em
relao utilizao do DTMF Transceiver escolhido e programao do PIC. Felizmente,
aps muita anlise e diversos testes, os problemas foram sanados e o sistema funcionou
perfeitamente, sendo possvel estender a idia e elaborar ainda mais o sistema, todavia o seu
funcionamento como descrito e implementado bastante satisfatrio para um prottipo. Os
diversos captulos a seguir descrevem todas as etapas deste projeto.

iii
Palavras-chave:
Telefonia
Microcontrolador
DTMF
PIC
Alarme residencial

ndice do texto:
1 - Introduo..............................................................................................................................1
2 - Detalhamento do Projeto....................................................................................................... 3
3 - Escolha dos Componentes..................................................................................................... 7
4 - Detalhamento dos Blocos...................................................................................................... 9
4.1 Rel................................................................................................................................ 9
4.2 Transformador................................................................................................................9
4.3 Circuito Detector de Toque (Ring Detector)..................................................................9
4.4 Temporizador...............................................................................................................10
4.5 DTMF Transceiver ......................................................................................................14
4.6 PIC............................................................................................................................... 23
5 Descrio do Microcontrolador PIC [1] [3]........................................................................26
5.1 - Microcontroladores.......................................................................................................26
5.2 - Arquitetura....................................................................................................................26
5.3 - Estrutura Interna........................................................................................................... 27
5.4 - Ciclos de Mquina........................................................................................................ 27
5.5 - Memria........................................................................................................................28
5.6 - Interrupes.................................................................................................................. 29
6 - Comentrios Sobre o Programa do PIC...............................................................................31
7 - Resultados............................................................................................................................39
8 Concluses.......................................................................................................................... 42
9 Propostas para Futuras Verses.......................................................................................... 43
10 - Bibliografia .......................................................................................................................45
Apndice I Esquema Final do Circuito Proposto...................................................................46

ndice de figuras:
Figura 1 Sistema em modo de alarme......................................................................................3
Figura 2 Sistema em modo de recepo...................................................................................4
Figura 3 Funcionamento inicial do sistema.............................................................................5
Figura 4 Diagrama de blocos do sistema.................................................................................8
Figura 5 Circuito Detector de Toque (Ring Detector)...........................................................10
Figura 6 Tom de controle de chamada...................................................................................11
Figura 7 Tom de ocupado......................................................................................................11
Figura 8 Tempo de espera at que o sinal sonoro seja emitido..............................................12
Figura 9 Circuito Temporizador............................................................................................13
Figura 10 Diagrama de blocos interno do MT8880 [6].........................................................16
Figura 11 Resposta do Filtro de Progresso de chamada [6]...................................................17
Figura 12 Esquema do MT8880.............................................................................................23
Figura 13 Arquitetura Interna do PIC 16F628A [3]..............................................................27
Figura 14 Ciclos de Clock [3]................................................................................................28

iv
Figura 15 PIC Simulator IDE.................................................................................................32
Figura 16 Esquema do Circuito Proposto..............................................................................46

v
1 - Introduo
Atualmente circuitos eletrnicos tm se tornado cada vez mais presentes no cotidiano
das pessoas. O avano tecnolgico faz com que os componentes fiquem cada vez mais
sofisticados e com custos mais baixos, possibilitando a utilizao de sistemas eletrnicos em
diferentes aplicaes, de telefones a automveis; de sofisticadas cmeras fotogrficas digitais
a caixas de supermercados. Este trabalho mostrar a utilizao de sistemas eletrnicos na
automao de residncias. Com um nmero infindvel de aplicaes, o presente projeto
apresenta um prottipo de sistema para monitoramento e acionamento de dispositivos
remotamente, bem como um alarme residencial.
Como dito anteriormente, o sistema possui vrias funes, sendo que podemos
classific-las como funes de modo de recepo e funes de modo de transmisso. Como
utilizao em modo de transmisso tem-se, basicamente, o uso do sistema como um alarme.
Neste modo de operao o sistema espera o sensor que se utiliza como alarme ser acionado e
ento efetua uma chamada telefnica para o nmero pr-programado indicando ao usurio
que o alarme foi acionado. J a utilizao em modo de recepo inclui o monitoramento e o
acionamento de dispositivos conectados ao sistema. Como aplicaes de monitoramento,
podemos imaginar que o sistema seja instalado na residncia de frias do usurio, sendo que
este deseja saber se h gua na cisterna, ou se o jardim foi molhado, por exemplo. Uma
aplicao de acionamento remoto poderia ser o acionamento do aparelho de ar-condicionado
para que quando a pessoa chegar a casa o cmodo j esteja refrigerado, ou ainda, com o
exemplo da residncia de frias, o acionamento da bomba de gua, sendo assim um uso
combinado de monitoramento e acionamento remotos.
Partindo dessa idia comeou-se a pensar efetivamente em como isto poderia ser
implantado, que componentes utilizar bem como que rede de comunicaes seria mais
conveniente. fato que a internet est cada vez mais acessvel e que permitiria uma utilizao
muito mais sofisticada desse tipo de sistema, porm isto implicaria em ter-se um computador
conectado ininterruptamente rede, assim como um gasto adicional para manter esta conexo.
Em casos em que se deseja monitorar constantemente alguma varivel e necessrio um
maior detalhamento desta, no restam dvidas de que a internet seria uma tima opo,
porm, para as aplicaes propostas muito mais vivel a utilizao da rede de telefonia fixa.
Alm de estar disponvel em quase 90% do territrio nacional, seu custo de utilizao vrias
vezes menor que o custo com conexo de internet, sem falar que o acesso ao sistema pode ser
feito de qualquer aparelho telefnico capaz de gerar tons DTMF (Dual Tone Multiple
Frequency).
Outro ponto que ficou definido desde o incio do projeto foi quanto ao
microcontrolador a ser utilizado. Ficou estabelecido que o microcontrolador seria um PIC
(Peripheral-Integrated Controller), da fabricante Microchip, sendo que o modelo foi definido
mais tarde. O PIC um microcontrolador bastante verstil, fcil de ser encontrado venda, de
baixo custo e que possui compiladores para diversas linguagens diferentes - alm de seu
prprio assembly - dentre estas, Basic e Linguagem C.
Uma vez escolhido o tipo de microcontrolador e tambm sabendo que o sistema
funcionaria via rede telefnica, faltava ainda definir suas etapas de operao, bem como o
hardware externo ao microcontrolador, que faria a interface deste com a rede telefnica. Estas
fases e as demais implementao, testes, problemas, etc. sero mais bem detalhadas nos
captulos seguintes.

2
2 - Detalhamento do Projeto

Partindo da idia inicial um sistema de alarme, sensoreamento e acionamento de


mecanismos via rede telefnica e tendo escolhido o microcontrolador a ser utilizado no
projeto, torna-se necessrio o detalhamento do funcionamento do sistema. Para isto optou-se
por construir trs fluxogramas que iro posteriormente orientar a programao do
microcontrolador.

Incio

Espera Alarme

No

Alarme
Acionado?

Sim

Efetua chamada No

Incrementa
Atendeu? No Contador > 5 ?
Contador

Sim

Emite Sinal
Sonoro

Finaliza Chamada Sim

Fim

Figura 1 Sistema em modo de alarme

3
Incio

Espera chamada

No

Chamou?

Sim

Atende Chamada

Espera Senha

Senha
Correta?

Sim No

Emite Sinal
Sonoro

Espera Cdigo

Emite Sinal
Sonoro

Executa Tarefa
Relativa ao
Cdigo

Emite Sinal
Sonoro

Finaliza Chamada

Fim

Figura 2 Sistema em modo de recepo

4
Incio

Gravar Senha Existe Senha


No
Padro do Usurio?

Sim

Existe
Gravar Telefone
No Telefone do
Padro
Usurio?

Sim

Espera Chamada,
Alarme ou Reset

No

Reset
Acionado?

Sim

Gravar Senha
Padro

Gravar Telefone
Padro

Figura 3 Funcionamento inicial do sistema

O fluxograma da figura 1 mostra o funcionamento do sistema quando em modo de


alarme. Nota-se que o sistema fica em um looping esperando o alarme ser acionado para ento
efetuar a chamada telefnica. Um dos problemas neste caso o fato de que no h sinalizao
na rede indicando que a pessoa atendeu o telefone. Esta informao importante, pois o
sistema deve saber se a chamada foi atendida para ento enviar o sinal sonoro de que o alarme
foi disparado. Este problema saber se a chamada foi atendida - foi resolvido atravs de
temporizao; mais adiante isto ser mais bem explicado. J nos casos em que a linha esteja
ocupada ou ento a pessoa no atenda a ligao, novas tentativas so feitas, como mostra o
fluxograma.
O fluxograma mostrado na figura 2 corresponde ao funcionamento do sistema em
modo de recepo. Neste modo de funcionamento o sistema espera que o usurio entre com
sua senha previamente configurada e a seguir entre com um dgito corresponde operao
que deseja que seja efetuada. Se o cdigo digitado for correspondente a uma ao de
5
acionamento de algum mecanismo, o sistema ir ento acion-lo e indicar ao usurio que a
operao foi realizada. Caso seja um comando para verificar o estado de algum sensor, o
sistema ir emitir um sinal sonoro caso o estado do sensor seja zero ou um outro sinal sonoro
caso o estado seja um. Para este projeto partiu-se do pressuposto que somente variveis com
este tipo de comportamento (zero ou um, ligado ou desligado, cheio ou vazio, etc.) iro ser
monitoradas. Como dito na introduo, caso fosse necessrio um sensoreamento mais preciso
ou sofisticado, utilizar-se-ia uma outra rede de dados. Como a idia deste projeto que este
sistema possa ser utilizado de qualquer aparelho telefnico, necessrio que se utilizem sinais
sonoros; sendo assim, um sensoreamento de variveis analgicas ou que possam assumir
muitos estados seria proibitivo, pois, ou teria que se utilizar um outro gerador sonoro, o que
iria aumentar muito o custo do projeto, ou ento o usurio do sistema teria que ter o ouvido
bem treinado para diferenciar perfeitamente os diferentes tons.
O fluxograma da figura 3 descreve o funcionamento inicial do sistema. Ao ser ligado
pela primeira vez necessrio que o usurio configure o nmero telefnico que deseja que
seja chamado caso o alarme seja acionado e tambm uma nova senha. Uma senha padro j
vir pr-configurada, porm importante que o usurio configure uma nova. O sistema
contar ainda com um boto de reset caso o usurio esquea sua senha.
Uma vez definido o funcionamento do sistema, a etapa seguinte a escolha dos
componentes que faro a interface do microcontrolador com a rede telefnica. Esta etapa ser
detalhada a seguir bem como os problemas que surgiram e as solues encontradas.

6
3 - Escolha dos Componentes

Neste captulo ser explicado como foi feita a escolha dos componentes do sistema de
uma forma global, incluindo um diagrama de blocos para melhor visualizao de como estes
componentes iro se relacionar, assim como o nmero de conexes a serem feitas entre eles e
com o microcontrolador o que influiu diretamente na escolha do PIC - sendo que cada bloco
do diagrama ser explicado em detalhes nos captulos seguintes.
Analisando-se o fluxograma da figura 1 do captulo anterior, pode-se ver que o
sistema ir efetuar uma chamada telefnica assim que o alarme for acionado. Para isto,
necessrio que o sistema conecte-se linha telefnica e disque o nmero programado. Para
que haja a discagem do nmero, necessrio um circuito que converta cdigos binrios em
tons DTMF, j que o PIC opera com bits e a rede telefnica, com tons. Pode-se ver tambm
que necessrio algum outro circuito para conectar e desconectar o sistema da rede
telefnica. Neste caso, a soluo encontrada foi a utilizao de um rel combinado com um
transformador; isto ser melhor explicado mais adiante.
Ainda analisando o fluxograma da figura 1, v-se que tambm h a necessidade de um
circuito que identifique se a chamada foi atendida. Esta etapa do projeto saber se a chamada
foi atendida foi uma das mais difceis e tambm a que teve a soluo menos satisfatria,
porm a nica possvel. Atualmente no h sinalizao da rede telefnica que permita ao
usurio que efetuou a ligao saber se esta foi atendida. A soluo para este problema
atravs de temporizao, de forma que o sistema assumir que a ligao foi atendida caso o
intervalo entre dois ringback tones seja maior que o esperado. Mais adiante este bloco do
sistema ser explicado em detalhes.
Olhando ento para o fluxograma da figura 2, modo de recepo, v-se, uma vez mais,
a necessidade de um circuito que conecte e desconecte o sistema da rede telefnica; este
circuito essencial em todos os modos de operao, por motivos bvios. Pode-se perceber
ainda que h a necessidade de um circuito que indique ao microcontrolador que uma chamada
est sendo recebida. O circuito que executa esta tarefa um circuito detector de toque ou ring
detector. Existem vrios esquemas de ring detectors, o escolhido utiliza um fotoacoplador
como base para a identificao do toque. O circuito e a explicao de seu funcionamento
sero vistos com detalhes nos prximos captulos.
O fluxograma da figura 2 mostra ainda que preciso um circuito que converta os tons
DTMF oriundos do telefone chamador em bits que possam ser entendidos pelo PIC. Existem

7
no mercado alguns circuitos integrados que fazem a converso de tons DTMF em bits e vice-
versa. Como neste projeto tem-se a necessidade de efetuar as converses DTMF/binrio e
binrio/DTMF, optou-se por utilizar um DTMF Transceiver. A utilizao deste elimina a
necessidade de um circuito que identifique os ringback tones, pois o DTMF Transceiver j
possui um Call Progress Tone Detector que pode ser utilizado para este fim.
Sabendo-se quais sero os circuitos utilizados, pode-se comear a esboar um
diagrama de blocos do sistema:

SENSORES

Temporizador

Controle (3 BITS)

DTMF Transceiver e Call Linha Telefnica


PIC Progress Tone Detector Transformador Rel
(MT8880)
Dados (4 BITS)
CP (1 BIT)

Sistemas a serem
Ring Detector
acionados

Figura 4 Diagrama de blocos do sistema

A partir deste diagrama de blocos partiu-se para a especificao de cada bloco em


particular. O captulo 4 mostra em detalhes o esquema e o funcionamento de cada um deles.

8
4 - Detalhamento dos Blocos
4.1 Rel
Para conectar e desconectar o sistema da rede telefnica primeiramente pensou-se em
utilizar chaves analgicas (analog switches), porm, alm de ser um componente bem mais
difcil de ser encontrado, verificou-se que para o propsito do projeto um simples rel poderia
funcionar perfeitamente. Para a especificao do rel levou-se em conta principalmente a
tenso de operao do sistema. Como os principais circuitos integrados funcionam com tenso
tpica de 5 volts (ver especificaes seguintes), optou-se por um rel que fosse acionado com
essa tenso, todavia, este no poderia ser acionado diretamente pelo microcontrolador, pois o
PIC no seria capaz de fornecer corrente suficiente. Para isto utilizou-se um transistor como
chave, onde a sada do PIC conectada base, o coletor conectado fonte e o emissor, ao
rel. Assim, quando a sada do PIC alta, o transistor conduz acionando o rel e conectando o
sistema linha telefnica.

4.2 Transformador
Este transformador tem como objetivo isolar a rede telefnica do resto do circuito.
Uma de suas funes bloquear a corrente contnua fazendo o acoplamento do DTMF
Transceiver com a rede telefnica, deixando passar somente o sinal de udio. Para isto foi
utilizado um transformador comumente encontrado em placas de fax-modem no sendo
necessria nenhuma especificao mais detalhada.

4.3 Circuito Detector de Toque (Ring Detector)


Para que o microcontrolador comece a executar suas funes no modo de recepo
necessrio, primeiramente, que haja uma indicao de que uma chamada telefnica foi
recebida para que o sistema possa ento conectar-se rede e dar prosseguimento s suas
operaes. O circuito responsvel por identificar se uma chamada est ocorrendo o circuito
detector de toque, ou Ring Detector [7]. Existem vrios esquemas de circuitos possveis para
se utilizar como Ring Detector, sendo que o esquema escolhido um que se utiliza de um
fotoacoplador como elemento principal. A figura 5 mostra o circuito utilizado:

9
Figura 5 Circuito Detector de Toque (Ring Detector)

Descrio do circuito:
Quando a corrente de toque (Tenso de 80V eficazes e 25Hz) detectada na linha,
uma pequena porcentagem de corrente, limitada pelos resistores de 100k e acoplada atravs
do capacitor de 0,02F acende o LED infravermelho dentro do 6N139. O diodo 1N914
protege o LED da alta tenso reversa durante a parte negativa do ciclo AC. Quando a luz
infravermelha do LED atinge o fotodiodo, ele conduz uma pequena quantidade de corrente
(da ordem de 10 microampres). O primeiro transistor do circuito integrado amplifica esta
corrente e ento a usa para saturar o segundo transistor, que conduz para terra. Finalmente, o
2N3906 externo faz o ltimo estgio de amplificao e leva a sada do Ring Detector para um
nvel alto. O capacitor de 0,1 F filtra os pulsos de corrente alternada para que a transio de
nveis de sada no seja ruidosa. Este circuito apresenta uma sada em nvel alto quando a
linha est tocando, mas no drena corrente suficiente para atend-la.

4.4 Temporizador
Para mostrar o funcionamento e o porqu de um circuito temporizador no sistema,
necessrio antes explicar qual o problema e qual a soluo encontrada para se saber se a
ligao efetuada pelo sistema foi atendida.
At algum tempo atrs, quando uma ligao telefnica era atendida havia a inverso
da polarizao da linha [10], desta forma era relativamente simples para quem efetuasse a
ligao saber se havia sido atendida. No entanto, de um tempo para c, as empresas de
telefonia no se utilizam mais disto, sendo assim que no h sinalizao alguma que possa
fazer com que o chamador saiba se a ligao foi atendida. Para o uso normal de telefone, isto
no traz implicao alguma, porm para a utilizao de um sistema eletrnico como o deste
projeto, que precisa saber se a chamada foi atendida para s ento emitir um sinal, o fato de
no haver sinalizao alguma que permita saber se a ligao foi atendida bastante
10
inconveniente. Porm foi encontrada uma soluo para isto, que, embora se admita no ser
uma soluo elegante, a nica possvel.
Poder-se-ia partir do princpio que no seria necessrio saber se o usurio atendeu ou
no a chamada, pois o mais razovel a ser feito para a programao do nmero a ser chamado
seria o nmero de um telefone celular, visto que, em se tratando de um alarme, o usurio
esteja interessado em ser avisado esteja onde estiver. Sendo assim, apenas ao ver o nmero
chamador em seu celular indicando que a ligao foi feita do local onde foi instalado o
sistema, seria de se supor que a pessoa imediatamente pudesse saber de que se trata do
alarme. Entretanto, alm do fato de que o telefone chamado poderia estar ocupado, no restam
dvidas de que o sistema deva emitir um sinal advertindo o usurio do fato uma vez que para
o projeto no se pode partir de pressupostos que possam vir a no ocorrer como programar
um nmero de celular. A soluo encontrada ento foi utilizar a interrupo de tempo do PIC
[1] combinada com o Call Progress Tone Detector do DTMF Transceiver [6] e um oscilador
externo [9]. As figuras a seguir mostram os diagramas de tempo nos casos de linha ocupada
ou telefone disponvel:

Figura 6 Tom de controle de chamada.

Figura 7 Tom de ocupado.

Analisando as figuras 6 e 7, vemos que o maior intervalo entre dois ringback tones
em torno de sete segundos [10]. A forma encontrada para se saber se a pessoa atendeu a

11
ligao verificar se o tempo entre dois ringback tones maior que esses sete segundos. Na
verdade, caso a chamada tenha sido atendida, no haveria um ringback tone subseqente,
portanto, a soluo encontrada foi utilizar um temporizador externo que incrementa um
registrador do PIC, sendo que se houver um ringback tone presente este registrador
reiniciado. Caso acontea overflow deste registrador, ento ocorrer uma interrupo que
levar a uma rotina de manipulao de interrupo e o microcontrolador interpretar que a
chamada foi atendida e dar prosseguimento ao cdigo, emitindo um sinal sonoro para indicar
o acionamento do alarme.
Esta soluo, embora sendo a nica possvel, apresenta o seguinte problema: o usurio
pode atender a ligao a qualquer momento, sendo assim pode acontecer da pessoa ter que
esperar at sete segundos at que oua o sinal sonoro. A figura 8 ir ajudar a explicar o que
pode vir a ocorrer neste caso.

Figura 8 Tempo de espera at que o sinal sonoro seja emitido.

Pode-se observar que quanto mais distante do prximo toque o usurio atender a
chamada, maior o tempo que ir esperar at ouvir o sinal sonoro. Caso o usurio atenda a
chamada no instante 1, ter que esperar 6,5 segundos at ouvir o sinal sonoro; caso atenda no
instante 2, esperar 4 segundos. Isto pode ser considerado um inconveniente, porm, como j
dito antes, de se supor que a pessoa tenha configurado o nmero a ser chamado como sendo
de um aparelho celular e que seja possvel reconhecer qual o nmero chamador, porm, em
todo caso, o aviso sonoro ser emitido.
Conforme dito anteriormente, necessria a utilizao de um oscilador externo que
servir para incrementar o registrador do PIC. Para isto, optou-se por utilizar o circuito
integrado 555 [9]. O 555 um integrado fcil de ser encontrado, barato, verstil e funciona
adequadamente para o projeto. Utilizou-se o 555 configurado para operar em modo astvel. A
figura a seguir mostra a configurao em modo astvel para perodos de carga e descarga
iguais:

12
Figura 9 Circuito Temporizador

Tcarga = Tdescarga = 0,7 * R * C


(1)
Ttotal = Tcarga + Tdescarga = 1,4 * R * C
(2)

Partindo das equaes 1 e 2 pode-se determinar os valores do resistor e do capacitor de


forma que o perodo total seja inferior a 7 segundos. Foi escolhido um perodo igual a 1,4
segundos usando-se um resistor de 100k e um capacitor de 10F. Para se chegar aos 7
segundos, so necessrios 5 ciclos portanto, como o overflow do registrador ocorre quando o
valor do mesmo faz a transio de 255 para 0, o valor inicial deste registrador foi configurado
em 251. Como a temporizao tambm utilizada para implementar o timeout da entrada de
cdigo pelo usurio, usando-se este mesmo oscilador, definiu-se que este tempo de espera
seria de 3 vezes o ciclo, ou seja, 4,2 segundos.

13
4.5 DTMF Transceiver
Existem duas formas de discagem: discagem decdica e discagem por tons. A
primeira, que est deixando de ser usada, funciona da seguinte forma: Ao se ocupar a linha, o
"lao" ("loop") era fechado e, ao se efetuar a discagem, ocorriam aberturas peridicas deste
"lao", tantas vezes quanto o nmero discado: para a discagem do 1, uma abertura, para a
discagem do 2, duas aberturas, e assim sucessivamente at o 0 (zero) que, na verdade,
significava 10 aberturas. A discagem decdica permitiu a automao das centrais telefnicas,
dispensando a necessidade de telefonistas para completarem as ligaes, porm, atualmente,
esta forma de discagem caiu em desuso sendo substituda pela discagem por tons, ou
discagem DTMF.
A discagem DTMF (Dual Tone Multi Frequential) uma forma de discagem por tons,
sendo que cada algarismo corresponde a uma combinao de dois tons de freqncias
diferentes, tendo sido as freqncias escolhidas de forma que no produzissem harmnicos
que pudessem interferir em outra. Desta forma, um sistema de deteco de tons DTMF
dificilmente ir decodificar um tom erradamente. A seguir tem-se a tabela com os algarismos
e as freqncias dos tons correspondentes.

Tabela 1: Algarismos e combinaes de tons

Hz 1209 1336 1477 1633


697 1 2 3 A
770 4 5 6 B
852 7 8 9 C
941 * 0 # D

De acordo com a tabela 1 o algarismo 1, por exemplo, seria representado por uma
combinao de dois tons, um de 1209Hz e outro de 697Hz; o algarismo 2 seria representado
pela combinao de um tom de 1336Hz e outro de 697Hz. V-se tambm que existe uma
coluna fantasma formada pelos caracteres, A, B, C e D, no utilizados na discagem
telefnica, mas que podem ser utilizados em outras aplicaes.
No caso deste projeto havia a necessidade do microcontrolador PIC receber comandos
do usurio e tambm de efetuar chamadas telefnicas. Atualmente os servios inteligentes via
rede telefnica (como Homebanking) utilizam reconhecimento de tons DTMF, alm do que as

14
prprias centrais telefnicas j utilizam a discagem DTMF, sendo assim esta a escolha mais
natural. Portanto, fez-se a necessidade de gerar e reconhecer estes tons sendo possveis duas
opes: o prprio microcontrolador gerar e reconhecer os tons ou utilizar um circuito
integrado que fizesse isto. perfeitamente possvel a utilizao de um microcontrolador PIC
com portas analgicas para gerar e reconhecer tons DTMF, todavia isto implicaria em um
modelo de PIC com mais memria, uma vez que o programa a ser executado j consumiria
grande parte da memria de programa. No entanto, como foi escolhido o PIC 16F628A
devido a fatores como disponibilidade e custo, foi necessria a utilizao de um circuito
integrado extra para fazer esta parte da operao do sistema.
Existem diversos circuitos integrados que podem ser utilizados para aplicaes
telefnicas, geralmente decodificadores de tons DTMF ou geradores de tons. Estes integrados
so geralmente fceis de utilizar, uma vez que so utilizados apenas em um sentido, ou seja,
ou geram ou decodificam tons DTMF; entretanto, para este projeto havia a necessidade de se
gerar tons (na situao em que funciona como alarme e efetua chamada telefnica ao usurio)
e de decodificar tons (no modo de operao em que recebe comandos remotamente). A
utilizao de dois integrados, um para gerar e outro para decodificar os tons, seria invivel e
desnecessria, pois existe um integrado capaz de efetuar estas duas funes, o DTMF
Transceiver. Optou-se por utilizar o MT8880 [4] [5] [6], sendo que este circuito integrado
possui similares como o CM8880 e o M8880 diferindo apenas a fabricante. Vale comentar
que existem outros integrados que fazem a mesma funo, porm com arquitetura e
funcionamento diferentes. Este circuito integrado no to simples de se utilizar, visto que
necessrio configur-lo a todo o momento de acordo com a funo que se deseja que efetue. A
seguir ser explicado o seu funcionamento bsico.
O MT8880 alm de ser um DTMF Transceiver tambm possui um filtro de progresso
de chamada (Call Progress Filter) que pode ser utilizado para detectar a presena de ringback
tones na linha. Como visto anteriormente na seo sobre o temporizador esta deteco desses
tons importante para saber se a chamada foi atendida. A arquitetura do MT8880 consiste em
um receptor DTMF de alto desempenho, baseado na arquitetura do MT8870, e um gerador de
tons DTMF alm do filtro de progresso de chamada. O MT8880 possui ainda uma interface
compatvel com microprocessadores permitindo a estes o acesso a seus registradores internos.
A seguir tem-se o diagrama de blocos funcional do MT8880. Este diagrama de blocos
auxiliar a compreenso das explicaes a respeito do funcionamento deste circuito integrado.

15
Figura 10 Diagrama de blocos interno do MT8880 [6]

4.5.1 - Deteco de tons:


Pode-se ver atravs do diagrama de blocos interno do MT8880, que este possui um
amplificador operacional em sua entrada cujo ganho pode ser definido atravs de resistores
externos. Em seguida tem-se a filtragem do sinal, de forma a separar as duas freqncias que
compem o tom DTMF. Aps a filtragem e separao das freqncias do sinal, tem-se o
conversor, que ir efetuar a converso dos tons no cdigo correspondente.

4.5.2 - Gerao de tons:


As freqncias dos tons DTMF so sintetizadas digitalmente e divididas em grupos
coluna e linha. Uma vez selecionado o tom a ser discado, atravs do cdigo binrio
conforme a tabela 2, estas freqncias so misturadas resultando em um sinal DTMF de baixa
distoro harmnica e alta preciso.

4.5.3 - Filtro de progresso de chamada:


O MT8880 possui ainda um filtro de progresso de chamada (Call Progress Filter), que
pode ser selecionado atravs da configurao do Control Register A conforme ser visto logo
abaixo. Quando selecionado para utilizao deste filtro de progresso de chamada, o
dispositivo no identifica os tons DTMF recebidos. A figura a seguir mostra a faixa em que os
tons de progresso de chamada so identificados. Se h a presena destes tons, o pino IRQ/CP

16
muda de nvel lgico baixo para nvel lgico alto, voltando a nvel lgico baixo assim que o
tom interrompido, apresentando na sada uma forma de onda quadrada.

Figura 11 Resposta do Filtro de Progresso de chamada [6]

4.5.4 - Interface com o microcontrolador:


O MT8880 possui uma interface com o microcontrolador atravs de um barramento de
4 bits (D0, D1, D2 e D3) e de 4 bits utilizados para controle de qual registrador ser utilizado
e este ser lido ou escrito. A seguir ser explicado quais so e para que servem estes
registradores bem como de que forma feita sua configurao.
O MT8880 possui quatro registradores:
Transmit Data register Neste registrador so escritos os dgitos a serem
transmitidos pelo MT8880. Cada dgito tem seu cdigo binrio equivalente,
que armazenado neste registrador e em seguida utilizado para a gerao do
tom DTMF correspondente. Os dgitos, seus correspondentes em binrio e as
freqncias utilizadas nos tons DTMF relativos a cada um esto na tabela 2.

17
Tabela 2: Freqncias, dgitos e correspondentes em binrio no MT8880

F Low F High Dgito D3 D2 D1 D0


697 1209 1 0 0 0 1
697 1336 2 0 0 1 0
697 1477 3 0 0 1 1
770 1209 4 0 1 0 0
770 1336 5 0 1 0 1
770 1477 6 0 1 1 0
852 1209 7 0 1 1 1
852 1336 8 1 0 0 0
852 1477 9 1 0 0 1
941 1209 0 1 0 1 0
941 1336 * 1 0 1 1
941 1477 # 1 1 0 0
697 1633 A 1 1 0 1
770 1633 B 1 1 1 0
852 1633 C 1 1 1 1
941 1633 D 0 0 0 0

Status Register Este registrador utilizado somente para leitura e indica o


estado em que se encontra o MT8880. importante fazer as verificaes do
Status Register, pois atravs dele possvel saber as seguintes informaes a
respeito do andamento da transmisso ou recepo dos tons:
o BIT: b0
NOME: IRQ
NVEL LGICO ALTO: Indica que ocorreu uma interrupo.
O bit b1 ou o bit b2 so postos em lgica alta.
NVEL LGICO BAIXO: No ocorreu interrupo. Limpo
aps leitura do Status Register.

18
o BIT: b1
NOME: TRANSMIT DATA REGISTER EMPTY
NVEL LGICO ALTO: Tom e pausa enviados, transmissor
pronto para o prximo dgito.
NVEL LGICO BAIXO: Limpo aps leitura do Transmit
Data Register ou se no estiver sendo utilizado o Burst Mode.
o BIT: b2
NOME: RECEIVE DATA REGISTER FULL
NVEL LGICO ALTO: Tom decodificado e Receive Data
Register pode ser lido.
NVEL LGICO BAIXO: Limpo aps leitura do Receive
Data Register.
o BIT: b3
NOME: DELAYED STEERING
NVEL LGICO ALTA: Posto em lgica alta na ausncia de
deteco de sinal DTMF.
NVEL LGICO BAIXO: Limpo aps a deteco de um tom
DTMF vlido.
Control Register A Um dos dois registradores de controle do MT8880.
Devido a possuir certo nmero de configuraes possveis, o MT8880 se vale
de dois registradores para armazenar os bits de configurao. A utilizao de
dois registradores de controle se explica porque caso se quisesse utilizar apenas
um, fazendo toda a configurao atravs de apenas um ciclo de clock, seria
necessria a utilizao de um barramento maior, porm devido limitao do
barramento de 4 bits (e de no haver necessidade de um barramento maior) foi
utilizada a soluo de se escrever em um registrador em um ciclo de clock e
indicar se haver escrita no outro registrador no ciclo de clock subseqente. As
configuraes possveis para o Control Register A so as seguintes:

19
o BIT: b0
NOME: TOUT
FUNO: Habilita sada de tom.
DESCRIO: Caso este bit esteja configurado em 1, haver
sada de tom DTMF. Esta funo pode ser utilizada tanto em
modo burst como sem utilizao de modo burst.
o BIT: b1
NOME: CP/DTMF
FUNO: Controle de modo de operao.
DESCRIO: Quando selecionado o modo DTMF (lgica 0),
o dispositivo capaz de gerar e decodificar tons DTMF.
Quando selecionado o modo CP (lgica 1), o dispositivo
capaz de identificar tons de progresso de chamada (Call
Progress) atravs de um filtro passa-faixa de sexta ordem. Os
tons de progresso de chamada que estiverem dentro da faixa do
filtro do filtro sero detectados e no pino IRQ/CP (caso tenha
sido selecionado para isto, configurando b2 = 1) do MT8880
ser mostrado um sinal retangular indicando a presena desses
tons. Quando o modo CP selecionado juntamente com o modo
burst os tons DTMF gerados apresentaro intervalos de durao
e pausa entre eles de 102ms. Caso o modo burst seja
selecionado juntamente com o modo DTMF este intervalo ser
de 50ms. importante ressaltar que se o modo CP for
selecionado o MT8880 no ser capaz de decodificar tons
DTMF.
o BIT: b2
NOME: IRQ
FUNO: Habilita interrupo.
DESCRIO: Quando selecionado (lgica 1) juntamente com
o modo CP (b1 = 1), ir mostrar uma forma de onda retangular
na sada do pino IRQ/CP, conforme descrito na explicao
anterior. Quando selecionado juntamente com o modo DTMF

20
(b1 = 0), o pino IRQ/CP ir apresentar na sada lgica 0: 1) caso
um sinal DTMF tenha sido detectado ou 2) Caso em modo
burst, o transmissor esteja pronto para receber mais dados.
o BIT: b3
NOME: RSEL
FUNO: Seleciona Registrador seguinte.
DESCRIO: Este bit em 1 implica que o prximo ciclo de
escrita ser no Control Register B, sendo que, uma vez efetuada
a escrita no Control Register B o ciclo de escrita subseqente
ser necessariamente no Control Register A.

Control Register B - Este outro registrador de controle visa a complementar as


configuraes do MT8880. Conforme dito na descrio da utilizao do
Control Register A, a configurao deste registrador depender do estado do
bit b3 do Control Register A. Assim, as configuraes do Control Register B
so as seguintes:
o BIT: b0
NOME: BURST
FUNO: Burst Mode
DESCRIO: Este DTMF Transceiver possui a funo burst,
isto , o prprio dispositivo capaz de gerar os tons DTMF com
tempos de durao e pausa determinados. Dependendo da
configurao do bit b1 do registrador de controle A, este tempo
ser de 51ms ou 102ms, conforme dito naquela explicao.
Assim, quando este modo de operao selecionado (lgica 0),
os tons DTMF sero gerados com tempo de durao e pausa
determinados e, aps a transmisso, o Status Register
atualizado indicando que o tom foi transmitido e o MT8880 est
preparado para receber o prximo tom. Desta forma, para a
utilizao com o microcontrolador, este tem que enviar o cdigo
correspondente ao tom a ser gerado, juntamente com o comando
de escrita no registrador e o pulso de clock e logo em seguida
efetuar a leitura do Status Register do MT8880 para verificar se

21
possvel enviar outro dgito para ser transmitido. Caso este
modo burst no seja selecionado (lgica 1), o prprio
microcontrolador responsvel pelo tempo de durao e pausa
dos tons DTMF.
o BIT: b1
NOME: TEST
FUNO: Test Mode
DESCRIO: Se habilitado, faz com que o pino IRQ/CP
apresente o sinal Delayed Steering.
o BIT: b2
NOME: S/D
FUNO: Single/Dual Tone Generation
DESCRIO: Se este bit estiver em lgica baixa (b2 = 0),
ento haver a gerao de tons DTMF. Caso esteja em lgica
alta (b2 = 1), ser habilitada a gerao de tons com apenas um
freqncia; a freqncia a ser gerada ser determinada pelo bit
b3.
o BIT: b3
NOME: C/R
FUNO: Column/Row Tones
DESCRIO: Somente possui funcionalidade quando
utilizado b2 for configurado para gerao de tons de uma
freqncia. Em lgica 0 habilitar a gerao de tons de
freqncias das linhas (ver tabela 1), caso em lgica 1, as
freqncias dos tons sero as da coluna.

4.5.5 - Outras consideraes:


A figura 12 mostra o esquema dos componentes externos ao MT8880 [6]. Algumas
consideraes sero feitas com base no esquema de conexes mostrado nesta figura.

22
Figura 12 Esquema do MT8880

Pode-se ver conectados nos pinos 2 e 3, os resistores responsveis pelo ganho do


amplificador de entrada do MT8880. Os valores tpicos destes resistores so de 100k, porm
constatou-se na prtica que o resistor conectado entre o pino 2 e o capacitor de entrada
deveria ser de um valor baixo para que o tom pudesse ser identificado.
O circuito RC conectado aos pinos 18, 19 e 20, define o tempo necessrio que um tom
DTMF deve estar presente para que possa ser reconhecido e decodificado pelo MT8880.
Quando o pino 18 (Est) atinge nvel lgico alto, faz com que a tenso no pino 19 (St/GT)
aumente conforme o capacitor descarregue. Se Est mantiver a tenso alta durante o tempo de
validao do tom, o pino St/GT ir ser ativado, fazendo com que a tenso neste ponto se
iguale a Vdd fazendo com que o tom recebido seja entendido como vlido e ento
decodificado.

4.6 PIC
Ficou definido desde o incio do projeto que o microcontrolador a ser utilizado seria o
PIC fabricado pela Microchip. O PIC um microcontrolador acessvel, de custo reduzido e
bastante verstil adequando-se perfeitamente ao escopo do projeto, porm, faltava ainda
definir qual dentre os inmeros modelos de PIC disponveis no mercado seria utilizado. Para
isto foram levados em conta alguns fatores determinantes:
Tipo e capacidade de memria;
Posse de EEPROM;
Quantidade de pinos de I/O.

23
Em relao memria, os microcontroladores PIC podem ser encontrados possuindo
memria do tipo flash, enhanced flash, otp, rom e romless. Para fins de projeto, considerando-
se que o resultado final no passaria de um prottipo, seria particularmente interessante a
utilizao de um microcontrolador que pudesse ser regravado a qualquer momento devido a
eventuais modificaes no seu software. Devido a isto, deu-se preferncia a PICs com
memria interna do tipo flash ou enhanced flash.
Como o projeto prev que o usurio possa reprogramar sua senha e seu nmero de
telefone, faz-se necessria a utilizao de uma memria no-voltil em que estes dados
possam ser armazenados e no se percam caso o sistema seja desligado. A utilizao de um
dispositivo de memria EEPROM externo seria possvel, porm como alguns PICs j
possuem EEPROM interna e o volume de dados a ser armazenado no excessivamente
grande, foi prefervel optar por um modelo de PIC que possusse esta EEPROM interna.
Por fim, verificou-se que a comunicao do hardware externo ao microcontrolador
com este iria demandar uma quantidade razovel de pinos de I/O por parte do PIC. Somente a
comunicao do DTMF Transceiver com o microcontrolador necessitaria de oito pinos.
Contando-se ainda as ligaes feitas com o Ring Detector, com o temporizador e com o rel,
j se torna necessria a utilizao de onze pinos de I/O. Incluindo-se um boto de reset do
sistema caso o usurio esquea sua senha j se contabiliza doze pinos de I/O. Como se
precisa de pinos de I/O para os dispositivos a serem controlados e monitorados e para o
alarme, v-se que este fator torna-se determinante na escolha do modelo de PIC a ser
utilizado.
Sabendo-se destes requisitos partiu-se para a escolha definitiva do PIC a ser usado. A
primeira opo foi o modelo 16F877 com memria enhanced flash, EEPROM interna de 256
bytes e trinta e trs pinos de I/O. Esta quantidade de pinos de I/O permitiria que mais
dispositivos pudessem ser acionados e monitorados pelo sistema, possibilitando uma maior
flexibilidade de uso. Este PIC chegou a ser comprado, porm teve que ser abandonado devido
no disponibilidade de um gravador para PICs de 40 pinos. O custo de um gravador
suficientemente alto a ponto de no compensar sua compra somente para ser utilizado em um
nico projeto. Portanto, a soluo encontrada foi escolher um outro modelo de PIC que
pudesse ser compatvel com o projeto e que pudesse ser gravado sem a necessidade de compra
de um gravador de PICs de 40 pinos, j que havia a disponibilidade de um gravador para PICs
de 18 pinos. Sendo assim, optou-se por utilizar o modelo 16F628, com memria flash,
EEPROM interna de 128 bytes e com 16 pinos de I/O. Na verdade este PIC um modelo de
18 pinos, sendo que 2 deles so relativos alimentao, porm, como este PIC possui um

24
oscilador interno os pinos que deveriam ser utilizados para conect-lo ao oscilador externo
podem ser utilizados como pinos de I/O, permitindo a utilizao de 16 pinos para este fim.
Como 12 pinos devem ser utilizados para a comunicao entre o microcontrolador e o
hardware externo, sobram, portanto, 4 pinos somente para a utilizao com os sistemas a
serem monitorados e acionados. Para efeitos de prottipo, este nmero suficiente, tendo em
vista que a utilizao de um maior nmero de dispositivos com este sistema seria possvel
utilizando-se um PIC com maior nmero de I/Os e que isto no acarretaria nenhuma mudana
significativa no software. No captulo seguinte ser mais aprofundado o estudo sobre o
microcontrolador escolhido, com maiores detalhes sobre sua arquitetura, registradores e
utilizao de interrupes assim como comentrios sobre o cdigo do software do PIC.

25
5 Descrio do Microcontrolador PIC [1] [3]
5.1 - Microcontroladores
Microcontroladores so dispositivos eletrnicos programveis que podem ser
utilizados para controle de processos. Neste projeto o microcontrolador ser utilizado para
controlar o atendimento e chamada de ligaes telefnicas, assim como o acionamento e
sensoreamento de dispositivos. Muitos equipamentos eletrnicos de uso cotidiano se valem do
uso de microcontroladores para executarem suas funes, como eletrodomsticos, brinquedos,
alarmes, etc.
De maneira geral, microcontroladores so similares a microprocessadores, porm com
algumas diferenas. Microprocessadores possuem uma maior capacidade de processamento
que microcontroladores, todavia, estes ltimos possuem internamente componentes como
memria de programa, memria de dados, portas de entrada e sada, timers, contadores e
conversores analgico-digitais dentre outros. Apesar de sua capacidade de processamento ser
inferior de microprocessadores, o fato de possurem todos aqueles componentes
encapsulados oferece uma certa vantagem dos microcontroladores sobre os
microprocessadores quando o controle de processos no requer um processamento muito
robusto.

5.2 - Arquitetura
Basicamente pode-se dizer que so duas as arquiteturas utilizadas em
microcontroladores: Arquitetura Von-Neumann e Arquitetura Harvard. Grande parte dos
microcontroladores utiliza a arquitetura Von-Neumann. Esta arquitetura apresenta apenas um
barramento interno, geralmente de 8 bits, por onde passam as instrues e os dados. J a
arquitetura Harvard, utilizada nos microcontroladores PIC, apresenta dois barramentos
internos, sendo que o barramento de dados de 8 bits e o de instrues pode ser de 12, 14 ou
16 bits. Com esta arquitetura possvel que enquanto uma instruo esteja sendo executada
outra esteja sendo buscada na memria, tornando o processamento mais rpido.
Os microcontroladores PIC utilizam tambm a tecnologia RISC (Reduced Instruction
Set Computer), ou seja, esses microcontroladores possuem um nmero reduzido de instrues
cerca de 35 em relao aos microcontroladores que utilizam tecnologia CISC (Complex
Instruction Set Computer). Desta forma torna-se mais simples a programao, contudo

26
implica que funes um pouco mais complexas devem ser programadas toda vez que for
preciso.

5.3 - Estrutura Interna


Abaixo segue a estrutura interna do PIC 16F628A; destaque para o que foi comentado
a respeito da arquitetura Harvard: o barramento de dados (Data Bus) de 8 bits e o barramento
de programa (Program Bus) de 14 bits, no caso do PIC 16F628A.

Figura 13 Arquitetura Interna do PIC 16F628A [3]

5.4 - Ciclos de Mquina


Nos microcontroladores PIC o sinal de clock dividido internamente por 4, fazendo
com que um ciclo de instruo seja composto por 4 fases, Q1, Q2, Q3 e Q4. No PIC 16F628A
pode-se utilizar seu clock interno, de 4MHz, sendo assim, cada fase dura 1s. Durante um
ciclo de instruo ocorre a execuo da instruo atual e a busca da prxima instruo a ser
executada no prximo ciclo; esta caracterstica de buscar a informao em um ciclo e execut-

27
la no ciclo seguinte chamada de pipeline. Um ciclo de instruo comea na fase Q1, quando
o program counter incrementado. Durante o ciclo de execuo a instruo a ser buscada
armazenada no registrador de instrues (IR) no ciclo Q1 e ento decodificada e executada
nos ciclos Q2, Q3 e Q4 e a memria de dados lida no ciclo Q2 e escrita no ciclo Q4.

Figura 14 Ciclos de Clock [3]

5.5 - Memria
Conforme dito anteriormente, o microcontrolador PIC baseado na arquitetura
Harvard o que implica dizer que possui dois barramentos independentes para as memrias de
programa e de dados. Sendo assim, natural que as memrias de programa e de dados
tambm sejam independentes. Alm de possuir estas duas memrias, o PIC 16F628A ainda
possui uma EEPROM interna de 128 bytes. A seguir ver-se-o algumas caractersticas dessas
diferentes memrias.

5.5.1 - Memria de Programa:


A memria de programa do PIC pode ser de 12, 14 ou 16 bits, dependendo do modelo
e tambm pode ser OTP, ROM ou Flash. No caso do PIC 16F628A, a memria de programa
de 14 bits do tipo Flash. Para o propsito do projeto foi prefervel utilizar um
microcontrolador com memria do tipo Flash, pois pode ser reprogramada vrias vezes,
porm para produo em larga escala mais econmico utilizar PICs de memria do tipo
ROM, pois no haveria necessidade de regravar o programa.
interessante comentar algumas caractersticas da memria de programa, como:
Vetor de Reset o primeiro endereo da memria de programa que ser executado
ao se ligar o sistema. Geralmente o vetor de reset aponta para o endereo 0x00, porm em
alguns modelos pode apontar para o ltimo endereo disponvel.

28
Vetor de Interrupo o endereo da memria reservado para o incio do tratamento
de todas as interrupes em PICs que possuem este recurso. O vetor de interrupo encontra-
se na posio 0x04.
Pilha um local separado da memria de programao onde sero armazenados os
endereos de retorno quando se utiliza instrues de chamadas de rotinas.

5.5.2 - Memria de Dados:


a memria RAM do PIC, de 8 bits e que utilizada para armazenar todas as
variveis e registradores utilizados pelo programa.
5.5.3 - EEPROM:
Alguns modelos de PIC possuem uma EEPROM para armazenar dados do usurio. O
PIC 16F628A possui uma EEPROM de 128 bytes, que no caso deste projeto utilizada para
armazenar as informaes referentes senha do usurio e o nmero de telefone a ser chamado
quando alarme for acionado.

5.6 - Interrupes
Uma interrupo utilizada para interromper o programa que est sendo rodado,
fazendo com que uma outra funo seja executada e logo em seguida o programa volte a ser
executado no ponto onde foi interrompido. Dependendo do modelo, os microcontroladores
PIC possuem vrias interrupes, dentre as quais interessante destacar as que se seguem.

5.6.1 - Interrupo de Timer 0:


Esta interrupo ocorre quando o contador interno de tempo (TMR0 de 8 bits)
estoura, ou seja, quando passar de 0xFF para 0x00. Este contador pode ser incrementado
interna ou externamente, atravs de um circuito oscilador funcionando como um contador de
pulsos. No caso deste projeto esta interrupo utilizada na situao em que se deseja saber
se o usurio atendeu chamada. O circuito temporizador formado com o CI 555 responsvel
pelo incremento do TMR0. Conforme explicado na seo que falava sobre o temporizador,
para saber se o usurio atendeu preciso esperar sete segundos sem que haja um ringback
tone. A presena de um ringback tone faz com que ocorra o reset do contador TMR0, porm,
para evitar que o perodo dos pulsos do temporizador fosse muito pequeno (7 segundos / 256
= 27s) optou-se por inicializar o TMR0 em 251, assim o perodo de tempo utilizado para o
temporizador foi de 1,4 segundos, conforme descrito naquela seo.

29
5.6.2 - Interrupo Externa:
Esta interrupo gerada por um sinal externo de algum dispositivo que esteja
conectado porta RB0 do PIC, caso essa esteja configurada para ser utilizada como
interrupo. No caso deste projeto esta interrupo gerada pelo circuito ring detector. O PIC
inicialmente est configurado para fazer leituras da porta em que o alarme est conectado,
porm quando ocorre uma interrupo externa, ou seja, quando uma chamada telefnica
recebida, o programa desviado para a rotina de tratamento de interrupo externa, onde est
especificado o procedimento a ser utilizado para o atendimento de uma chamada, descrito no
fluxograma da figura 2.
Quando ocorre qualquer interrupo o programa armazena na pilha o endereo da
prxima linha a ser executada e desvia para o endereo 0x04 da memria de programao.
Neste endereo onde escrita a rotina de tratamento de interrupo. Quando a execuo da
rotina termina o programa retorna ao ponto onde estava antes da interrupo. Neste caso
especfico, quando ocorre a interrupo externa o programa retorna ao ponto onde estava, ou
seja, volta a fazer leitura da porta onde o alarme est conectado, porm, ao trmino da
interrupo de Timer 0, o programa entra em um loop onde nenhuma outra instruo
executada. Este procedimento foi adotado, pois, uma vez que o alarme tenha sido acionado e
o usurio avisado caso o programa voltasse ao ponto inicial, ele iria efetuar infinitas chamadas
enquanto o alarme permanecesse acionado.

30
6 - Comentrios Sobre o Programa do PIC

Neste captulo sero feitas algumas consideraes relativas programao do


microcontrolador [2]. Sero feitos alguns comentrios sobre o programa desenvolvido, bem
como os softwares utilizados para compilar, simular e gravar o PIC.
Os microcontroladores PIC podem ser programados utilizando-se diferentes
linguagens de programao, desde seu Assembly, at linguagens estruturadas, como C e Basic.
Para este projeto optou-se fazer a programao em C devido maior familiaridade com esta
linguagem e tambm pela facilidade de se programar em linguagem estruturada a partir dos
fluxogramas. Para compilar o programa foi utilizado o software PCW PIC C Compiler da
empresa CCS. Este compilador tem uso simples e intuitivo, funciona perfeitamente em
qualquer computador com o sistema operacional Microsoft Windows e possui diversas
ferramentas auxiliares alm de permitir a programao de PICs de 12, 14, 16 ou 18 bits de
opcode.
Conjuntamente com o compilador foi utilizado um simulador, PIC Simulator IDE da
fabricante Oshon Software, de uso simples, com diversas funcionalidades. Dentre as funes
mais interessantes e que foram utilizadas neste projeto destacam-se:
Possibilidade de simulao em diferentes velocidades, incluindo Step-by-step
(cada ciclo de clock controlado pelo usurio);
Visualizao do contedo dos registradores;
Visualizao do contedo das memrias, inclusive da EEPROM;
Visualizao de um modelo do microcontrolador, podendo simular sinais de
entrada e observar o comportamento de sada em cada pino;
Ferramenta Signal generator, em que se pode simular um sinal na entrada
de alguma porta, til para a simulao do circuito oscilador.

Na figura 15 se tem uma viso geral das janelas do PIC Simulator IDE apenas com o
intuito de ilustrar a explicao sobre o mesmo.

31
Figura 15 PIC Simulator IDE

32
O processo de programao tratava-se de escrever o programa, compil-lo e em
seguida simul-lo. O compilador oferece a opo de se visualizar o cdigo em Assembly
gerado pelo mesmo, mostrando a linha de cdigo em linguagem C e logo abaixo o cdigo
gerado por esta linha, assim possvel simular o programa e verificar qual instruo est
sendo executada e observar no compilador o que ocorre. A seguir sero mostrados e
comentados alguns trechos do programa do PIC, as funes principais e os tratamentos das
interrupes.
O compilador utilizado possui funes que permitem que as portas do PIC sejam lidas
ou escritas sem a necessidade de ler ou escrever bit a bit. Assim pode-se trabalhar com os
valores lidos ou a serem escritos nas portas na forma decimal. Exemplificando, caso se deseje
enviar o valor 8 para a sada da PORTB do PIC bastaria utilizar o comando output_b(8).
Contudo o valor enviado para os pinos correspondentes a PORTB seria o byte 00001000.
Todavia, neste projeto o maior valor a ser lido ou escrito pelo PIC o correspondente ao
dgito 0, ou seja 00001010 (em DTMF o dgito 0 corresponde a 10). Assim sendo, percebe-se
que a utilizao da funo acima apresentada implicaria na no utilizao dos 4 bits mais
significativos da porta, fazendo com que estes ficassem indisponveis para outra utilizao.
Como necessria a utilizao de quase todos os pinos de I/O do PIC, foi necessrio criar
duas outras funes similares s funes output_b e input_b, sendo que estas novas funes
devessem ler apenas a metade menos significativa do byte de cada porta. Assim tem-se as
seguintes funes:

void output_mt(int dec)


{
if (bit_test(dec,0)) output_bit(b0, 1);
else output_bit(b0, 0);
if (bit_test(dec,1)) output_bit(b1, 1);
else output_bit(b1, 0);
if (bit_test(dec,2)) output_bit(b2, 1);
else output_bit(b2, 0);
if (bit_test(dec,3)) output_bit(b3, 1);
else output_bit(b3, 0);
}

33
Esta funo retorna os 4 bits menos significativos da varivel inteira dec para a
metade menos significativa da porta A do PIC. A funo recebe como argumento o dgito a
ser enviado para o DTMF Transceiver e faz o teste de cada bit deste dgito, sendo que se o bit
for 1, ento a sada do PIC corresponde posio deste bit tambm ser 1. Desta forma
possvel tratar com os valores decimais toda vez que for necessrio enviar um dgito ao
MT8880.

int input_mt(void)
{
int v;
v = input_a();
return v&0x0F;
}

Esta funo retorna a parte menos significativa do byte lido na porta do PIC. Pode-se
ver que a funo simplesmente executa uma operao AND com o byte lido na entrada do
PIC com o valor 00001111, retornando assim apenas a parte menos significativa do valor lido.
A seguir sero mostradas as rotinas de tratamento das interrupes; primeiramente a
interrupo externa, utilizada quando uma chamada recebida, e logo depois a interrupo de
tempo, acionada quando passados mais de 7 segundos entre dois ringback tones conforme
explicado no captulo 4.4.
#INT_EXT
atendimento()
{
int passwd[4], eepass[4], i, funcao, invalido= 0;

if (input(RESET)){
for (i = 0; i < 4; i++)
write_eeprom(PASSPOS+i, passreset[i]);
for (i = 0; i < 8; i++)
write_eeprom(PHONEPOS+i, phonereset[i]);
write_eeprom(NUMPHONEDIGPOS, 8);
return;
}

34
Este trecho da rotina de tratamento da interrupo externa relativo a quando o boto
de reset acionado. Conforme se pode ver, o boto de reset deve ser conectado de forma que
quando acionado leve a entrada do PIC que indica se este foi acionado fique em lgica alta
conjuntamente com a entrada da interrupo externa, uma vez que a funo reset est dentro
da rotina de tratamento da interrupo externa.

output_bit(RELAY, 1);
getpass(passwd);
for (i = 0; i < 4; i++) {
eepass[i] = read_eeprom(PASSPOS+i);
}
for (i = 0; i < 4; i++) {
if ( passwd[i] != eepass[i])
invalido = 1;
}

if (invalido) {
call(oldmac, numnotas);
output_bit(RELAY, 0);
return;
}
else {
call(saints, numnotas);
funcao = getcode();
exefunc(funcao);
output_bit(RELAY, 0);
}
}

Esta outra parte da rotina de interrupo trata do procedimento a ser feito pelo PIC
quando recebe uma chamada. Pode-se ver que ocorre a verificao da senha do usurio e que
caso a senha seja incorreta o sistema ir emitir um sinal sonoro (que faz lembrar a cano
Old McDonald Had A Farm) e se desconectar da linha encerrando a chamada. Caso a senha

35
seja vlida o sistema ir emitir um sinal sonoro (algo parecido com a cano When The
Saints Go Marching In) e ir aguardar o cdigo correspondente funo que o usurio deseja
efetuar. Novamente, aps efetuar a funo o sistema emitir outro sinal sonoro (a mesma
cano) e ir se desconectar da linha, encerrando a chamada.
Dentro da rotina de interrupo v-se a utilizao de algumas outras funes que
tiveram que ser construdas no programa. A seguir alguns breves comentrios sobre estas
funes.
A funo getcode utilizada para ler a sada do MT8880 e retornar este valor para a
utilizao em outras funes dentro do programa. Esta funo consiste em configurar o
MT8880 para decodificar os tons; ler o dgito decodificado, atravs da funo input_mt
descrita anteriormente e retornar o valor deste dgito.
As funes getpass e getphone se utilizam do valor retornado pela funo
getphone para armazenar, respectivamente, a senha e o telefone digitados pelo usurio. A
funo getpass armazena os dgitos em um array de tamanho igual a quatro ficou definido
que a senha seria de quatro dgitos. A funo getphone armazena os dgitos em um array de
tamanho igual a oito o nmero de dgitos utilizado atualmente nas ligaes entre telefones
de mesma localidade. Em verses posteriores pretende-se permitir armazenar nmeros de
telefone de tamanhos variveis, permitindo que se possa realizar chamadas interurbanas, por
exemplo.
A funo exefunc presente na rotina de interrupo associa os dgitos do teclado do
telefone s diferentes funes que podem ser executadas pelo sistema. Como pode ser visto na
rotina de interrupo, esta funo s chamada aps a verificao da senha do usurio e se
esta estiver correta. As funes que podem ser executadas pelo sistema e seus dgitos
correspondentes so as seguintes:
Dgito: 1
o Funo: verifica o estado do sensor conectado ao sistema. Quando em
nvel lgico alto, o sistema emite um som similar cano When The
Saints Go Marching In duas vezes seguidas; quando em nvel lgico
baixo, emite um sinal sonoro similar cano Old McDonald had A
Farm apenas uma vez.
Dgito: 2

36
o Funo: Aciona o dispositivo conectado sada correspondente ao bit 6
da PORTB do PIC e emite um som similar cano When The Saints
Go Marching In indicando que a funo foi executada.
Dgito: 3
o Funo: Desliga o dispositivo acionado pelo dgito 2 e emite um som
similar cano When The Saints Go Marching In indicando que a
funo foi executada.
Dgito: 4:
o Funo: Aciona o dispositivo conectado sada correspondente ao bit 7
da PORTB do PIC e emite um som similar cano When The Saints
Go Marching In indicando que a funo foi executada.
Dgito: 5
o Funo: Desliga o dispositivo acionado pelo dgito 4 e emite um som
similar cano When The Saints Go Marching In indicando que a
funo foi executada.
Dgito: 8
o Funo: Altera o nmero de telefone a ser discado pelo sistema. Aps
digitar o nmero 8, o usurio ir ouvir um sinal sonoro semelhante
cano When The Saints Go Marching In e ento dever digitar o
nmero de telefone que deseja que seja discado quando o alarme for
acionado. O sistema ir gravar este nmero na EEPROM e novamente
ir emitir um sinal sonoro semelhante cano When The Saints Go
Marching In indicando que a funo foi executada.
Dgito: 9
o Funo: Altera senha do sistema. Aps digitar o nmero 9, o usurio ir
ouvir um sinal sonoro semelhante cano When The Saints Go
Marching In e ento dever digitar a nova senha. O sistema ir gravar
esta senha na EEPROM e novamente ir emitir um sinal sonoro
semelhante cano When The Saints Go Marching In indicando
que a funo foi executada.
Alm destas funes h ainda a funo call que configura o MT8880 para emitir
tons DTMF e os envia de forma seqencial atravs da funo outpur_mt. A outra funo
definida no programa , como no poderia deixar de ser, a funo main. A funo main

37
responsvel pela configurao inicial do MT8880 e tambm espera que o alarme seja
acionado, fazendo constantes leituras do pino do PIC ao qual o alarme est conectado.

38
7 - Resultados

Antes de apresentar os resultados obtidos interessante comentar sobre as dificuldades


e os problemas encontrados durante a realizao deste projeto. Como foram muitos, apenas os
mais relevantes sero descritos, assim como as solues encontradas.
1. Aps o envio de um tom DTMF o PIC deve ler o Status Register do MT8880
esperando que o bit b1 deste registrador estivesse em nvel lgico alto,
indicando que o MT8880 est pronto para receber e enviar o tom seguinte.
Neste ponto percebia-se que nenhum outro tom era enviado. A verificao deste
bit teve que ser feita sem o microcontrolador, configurando o MT8880
manualmente e verificando o bit b1 atravs de um multmetro. Quando feito isto
se via que a tenso deste bit no indicava nvel lgico alto e, portanto, o PIC no
iria enviar o prximo nmero a ser discado. A utilizao do MT8880 estava
conforme a descrita em seu Datasheet, utilizando-se os valores corretos para os
resistores e capacitores, porm a soluo encontrada foi aumentar o valor do
resistor conectado entre os pinos 18 e 19 do integrado. Este resistor descrito no
Datasheet como sendo de 374k porm a colocao de um resistor de 100k
em srie, elevando a resistncia total para 474k, resolveu o problema. Aps
feita esta modificao verificou-se que o bit b1 do Status Register apresentava-
se em nvel lgico alto aps o envio de um tom DTMF, conforme era esperado.
2. Outro problema apresentado foi ainda em relao discagem. O MT8880 possui
um modo de operao em que cada tom DTMF enviado seguido de uma pausa
de mesma durao, o modo Burst. Optou-se por utilizar este modo de operao
justamente pelo fato de a pausa ser gerada pelo prprio MT8880, o que
simplifica a programao da funo de discagem do PIC. Todavia, percebia-se
que ao discar um nmero de 8 dgitos nem todos eram discados, na verdade um
nmero aleatrio de dgitos era discado. Aps analisar o problema concluiu-se
que o que ocorria era que o PIC enviava o dgito a ser discado e logo em seguida
lia o Status Register do MT8880, porm o tempo entre o envio do dgito e a
leitura do registrador era muito curto, sendo que quando o PIC ia ler o bit1 do
Status Register do MT8880 lia na verdade o valor do bit1 que havia sido
enviado pelo prprio PIC, ou seja, no havia dado tempo de o MT8880 atualizar
a sada da porta, fazendo com que a leitura do registrador fosse incorreta. A

39
soluo encontrada foi simplesmente adicionar alguuns comandos de atraso
entre o envio do dgito e a leitura do Status Register no programa do PIC. Desta
forma o tempo de pausa entre a discagem de um dgito e do prximo tornou-se
maior, no entanto assim o sistema funcionou perfeitamente.

Depois de solucionados os problemas descritos nos itens anteriores, o sistema


funcionou de modo satisfatrio. Vrios testes foram realizados e o sistema no apresentou
falhas, funcionando de acordo com o esperado. Segue-se uma breve descrio dos testes; o de
modo de recepo, o modo de transmisso e o reset do sistema.
Para testar o modo de recepo, utilizou-se LEDs nas sadas do PIC, uma vez que
para o acionamento de dispositivos seriam necessrios outros circuitos para converter o sinal
de sada do PIC em sinal de potncia, o que foge do escopo do projeto. Este teste consistiu em
verificar se o sistema se comportaria conforme descrito no fluxograma 2. Uma vez ligado e
conectado a uma linha telefnica ento foram realizadas ligaes a partir de outra linha
telefnica e o sistema atendia a chamada ao primeiro toque enviando o sinal sonoro em
seguida. A senha era digitada e quando correta o sistema enviava o sinal sonoro e esperava
pelo dgito seguinte para efetuar a funo desejada; quando incorreta o sistema se
desconectava da linha. Aps o atendimento e a checagem da senha se digitava um algarismo
no teclado do telefone que efetuou a chamada. Um ponto interessante a se destacar foi a opo
por utilizar dgitos diferentes para ligar e desligar o mesmo dispositivo ou, no caso dos testes,
o mesmo LED. Esta escolha mostrou-se funcional, pois o usurio pode ter a certeza de que ao
digitar determinado algarismo o dispositivo correspondente ser ligado ou desligado
independentemente do estado em que se encontra. Quando digitado um algarismo
correspondente a uma funo de acionamento ou desligamento de dispositivos verificou-se
que os LEDs acendiam quando digitado um algarismo correspondente ao acionamento e
apagavam quando digitado um algarismo correspondente ao seu desligamento, mostrando
assim que o sistema executava esta funo perfeitamente. Para testar a funo de verificao
do estado de algum sensor variava-se o nvel lgico na entrada do PIC correspondente ao
sensor e ento se fazia a chamada ao sistema. Aps o atendimento e checagem da senha
digitava-se o algarismo correspondente funo de verificao do sensor e se podia ouvir que
os sinais sonoros eram distintos quando a entrada do PIC correspondente entrada do sensor
estava em nveis lgicos alto ou baixo, de acordo com o esperado. Quando o algarismo
digitado para execuo de alguma funo era o correspondente funo de troca de nmero
telefone a ser chamado, o sistema emitia um sinal sonoro e ento esperava que o usurio

40
digitasse um nmero de telefone de 8 dgitos; aps o usurio ter digitado o oitavo dgito o
sistema emitia o sinal sonoro e se desconectava da linha, funcionando conforme o esperado. O
teste de troca de senha era similar troca de nmero de telefone, bastando apenas entrar os
quatro dgitos da senha e, depois de feito isto, o sistema emitia o sinal sonoro e se
desconectava da linha. Realizados estes testes, verificou-se que o funcionamento foi de
acordo com o esperado, no apresentando comportamento distinto do desejado.
Para testar o modo de operao em que o sistema funciona como alarme, simulou-se
este simplesmente variando o nvel lgico do pino da entrada do PIC, fazendo com que
passasse de baixo para alto, como se o alarme tivesse sido acionado. Tendo programado um
nmero de telefone a ser chamado que estivesse disponvel, verificou-se este aparelho
(preferencialmente algum que possusse o recurso de identificao de chamada) recebia uma
chamada e, atravs do identificador, via-se que a chamada provinha da linha telefnica a qual
o sistema havia sido conectado. O fato de a chamada ter sido realizada com sucesso
comprovava ainda que a troca de nmero de telefone a ser chamado tambm foi feita com
sucesso.
Outro teste feito foi com o boto de reset. Este teste consistia em acionar o reset e
confirmar a mudana da senha e do nmero de telefone a ser discado. Estas mudanas foram
depois comprovadas atravs de testes de recepo e chamada conforme os anteriormente
descritos.

41
8 Concluses
Pode-se afirmar que o sistema funcionou perfeitamente dentro do desejado, conforme
pde ser comprovado pelos testes realizados. fato que modificaes podem ser feitas em
verses posteriores, contudo, de acordo com a proposta deste projeto, pode-se dizer que se
obteve xito.

42
9 Propostas para Futuras Verses
Modificaes podem ser feitas em verses futuras deste projeto visando a incluir mais
funcionalidades ou modificando algumas partes da lgica de funcionamento do sistema. Eis
algumas delas:
1. Utilizao do PIC para gerao e deteco de tons DTMF Alguns modelos
de microcontrolador PIC podem utilizar entradas e sadas analgicas. Desta
forma, possvel utilizar o PIC para gerar os tons DTMF e reconhec-los,
eliminando assim a necessidade da utilizao de um DTMF Transceiver. Como
esta gerao de deteco de tons DTMF deve ser feita com funes dentro do
programa do PIC, preciso que este possua mais memria que o que foi
utilizado no presente projeto.
2. Maior nmero de dispositivos a serem acionados e/ou monitorados Devido
pouca quantidade de portas do PIC 16F628, s foi possvel utilizar 2 delas para
acionarem dispositivos e 1 para monitorar algum sensor, alm daquela
utilizada para o alarme. Todavia, faz-se necessrio que o sistema possa
controlar mais mecanismos e/ou monitorar mais sensores. Para tanto, pode-se
utilizar um modelo de PIC que possua mais pinos de entrada e sada, por
exemplo.
3. Memorizar nmeros de telefone com nmero de dgitos varivel Uma outra
modificao que pode ser feita permitir que o usurio possa programar
nmeros de telefone com um nmero de dgitos varivel, permitindo assim que
o sistema efetue ligaes interurbanas ou disque para telefones que no tenham
necessariamente 8 dgitos.
4. Memorizar mais de um nmero de telefone Esta modificao visa garantir
que o usurio seja realmente avisado que o alarme foi disparado, uma vez que
o telefone para o qual o sistema disque pode estar ocupado ou, por algum outro
motivo, seja impossvel para o usurio atend-lo. O sistema teria que
identificar que o usurio no atendeu o primeiro telefone discado e ento
discaria para outro nmero; caso este tambm no fosse atendido, o sistema
poderia discar para um terceiro nmero ou ento novamente para o primeiro.
5. Executar mais de uma funo por chamada Isto permitiria que o usurio
pudesse executar mais de uma funo por chamada, podendo, por exemplo,

43
acionar 2 ou mais dispositivos ou ainda monitorar 2 ou mais sensores ou at
mesmo acionar algum sistema e monitorar algum sensor em uma mesma
chamada. Para encerrar a chamada o usurio deveria digitar o cdigo
correspondente para encerrar a chamada.
Estes so apenas alguns exemplos de modificaes que podem ser feitas em futuras
verses e que, por falta de tempo e de material disponvel no puderam ser implementadas no
presente projeto. Outras modificaes podem vir a ser incorporadas a estas, sendo esta lista
apenas exemplificativa.

44
10 - Bibliografia
1- de Souza, David Jos Desbravando o PIC, Editora rica Ltda., 2002;
2- Pereira, Fbio Microcontroladores PIC Programao em C, Editora rica Ltda.,
2002;
3- PIC16F627A/628A/648A Data Sheet Flash Based 8-bit CMOS Microcontrollers
with nanoWatt Technology, Microchip Technology Inc, 2004;
4- Edwards, Scott DTMF Touch Tones are Music to the Ears of this Stamp
Transmit/Receive Circuit Working with the CM8880 DTMF Transceiver, 1995;
5- Pompei, Luca Aplicazioni Basic Stamp II - Come Collegare un DTMF Transceiver,
ARTEK Electronic Solutions S.n.c.;
6- MT8880C Integrated DTMF Transceiver Data Sheet, Mitel Semiconductor, 1999;
7- Applications for Low Input Current, High Gain Optocouplers Application Notes
951-1, Agilent Technologies, 1999;
8- Low Input Current High Gain Split Darlington Optocouplers, Fairchild Semiconductor
Corporation, 2000;
9- Parr, E. A., Projetos Eletrnicos com o C.I. 555, Seltron Selees Eletrnicas
Editora, 1981;
10- Motoyama, Shusaburo - Apostila da Disciplina EE-981 - Telefonia, Unicamp, 1999;

45
Apndice I Esquema Final do Circuito Proposto

Figura 16 Esquema do Circuito Proposto

46