UNIVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
ENGENHARIA ELÉTRICA
SISTEMA DE LOCALIZAÇÃO DE DEFEITOS EM CABOS
CURITIBA, 2009
Anderson da Silveira
Matheus Azevedo Garcia
SISTEMA DE LOCALIZAÇÃO DE DEFEITOS EM CABOS
Trabalho de Conclusão de Curso
apresentado ao Curso de Engenharia
Elétrica da Universidade Positivo, para
obtenção de avaliação parcial da
disciplina de Trabalho de Conclusão de
Curso (TCC), como requisito à obtenção
do grau de Engenheiro Eletricista, sob a
orientação do Prof. Anselmo Rodrigues.
CURITIBA, 2009
AGRADECIMENTOS
Agradecemos primeiramente a Deus que tornou
possível a realização deste sonho. Agradecemos
também nossos familiares que durante a realização
deste nos incentivaram e souberam compreender
nossas dificuldades. Aos amigos que participaram e
contribuíram para a realização deste trabalho. A
Universidade Positivo por sempre nos fornecer os
materiais necessários para o desenvolvimento. Ao
Prof. Anselmo Rodrigues, orientador e amigo que
participou conosco em todos os momentos críticos
sendo sua participação de fundamental importância.
“Determinação, coragem e auto confiança
são fatores decisivos para o sucesso.
Se estamos possuídos por uma inabalável
determinação conseguiremos superá-los.
Independentemente das circunstâncias,
devemos ser sempre humildes, recatados e
despidos de orgulho.”
DALAI LAMA
RESUMO
Neste trabalho de conclusão de curso será apresentado um sistema
embarcado de localização de defeitos em cabos de telefonia e redes, cuja função
é avaliar a distância em que se encontra a avaria no cabo, seja um curto-circuito
ou circuito aberto. Baseado na teoria das ondas viajantes, a reflexão de uma onda
ocorrerá quando houver mudanças na impedância cabo. Esse projeto possibilitará
ao usuário encontrar com maior rapidez a distância onde o defeito se situa ao
longo do cabo apresentando em um display o valor em metros.
Palavras-chave: Localização de defeitos em cabos, Ondas Viajantes,
Refletometria.
SUMÁRIO
1
INTRODUÇÃO .........................................................................................................................................1
PROBLEMA.........................................................................................................................................1
JUSTIFICATIVA .................................................................................................................................2
OBJETIVOS ESPECÍFICOS................................................................................................................2
2
FUNDAMENTAÇÃO TEÓRICA ............................................................................................................3
2.1
PROPAGAÇÃO DE ONDA UNIFORME EM MEIO COM PERDAS ................................................3
2.2
LINHAS DE TRANSMISSÃO.............................................................................................................5
2.3
ONDAS VIAJANTES EM SISTEMAS DE TRANSMISSÃO.............................................................8
3
ESPECIFICAÇÃO TÉCNICA...............................................................................................................10
3.1
ESPECIFICAÇÃO GERAL................................................................................................................10
3.2
ESPECIFICAÇÃO FIRMWARE.........................................................................................................11
3.3
PLACA DE DESENVOLVIMENTO .................................................................................................12
3.4
ESPECIFICAÇÃO DE HARDWARE..................................................................................................13
3.5
DIMENSIONAMENTO E MEMORIAL DE CÁLCULO..................................................................15
3.5.1
Gerador de Pulso...........................................................................................................................15
3.5.2
Amplificador .................................................................................................................................17
3.5.3
Circuito de loop.............................................................................................................................18
3.5.4
Microcontrolador ..........................................................................................................................19
3.5.5
Interface com o Usuário................................................................................................................20
4
IMPLEMENTAÇÃO ..............................................................................................................................21
4.1
DESCRIÇÃO DA MONTAGEM .......................................................................................................21
4.2
TESTES, MEDIÇÕES E CONFIGURAÇÕES...................................................................................22
4.3
CÓDIGO FONTE FIRMWARE ..............................................................................................................24
4.4
COMPONENTES, MATERIAIS E CUSTO DO PROJETO ..............................................................25
5
RESULTADOS ........................................................................................................................................26
6
CONSIDERAÇÕES FINAIS..................................................................................................................32
REFERÊNCIAS..................................................................................................................................................34
APÊNDICE A – CÓDIGO DO DSPIC 30F4013..............................................................................................35
ANEXO A – 30F4013.H......................................................................................................................................36
1.1
1.2
1.3
LISTA DE FIGURAS
Figura 1 - Circuito a parâmetros distribuídos .................................................................5
Figura 2 - Diagrama em Blocos do Projeto ..................................................................10
Figura 3 – Fluxograma do Programa do Microcontrolador...........................................11
Figura 4 - Placa de desenvolvimento EASYdsPIC4 .....................................................12
Figura 5 - Diagrama de Funcionamento do DM74121 .................................................15
Figura 6 – Circuito Gerador de Pulso com DM74121 ..................................................16
Figura 7 – Pinagem do TL084 .....................................................................................17
Figura 8 - Circuito Amplificador com TL084 ..............................................................18
Figura 9 – Circuito de Loop.........................................................................................18
Figura 10 - Pinagem do dsPIC30F4013 .......................................................................19
Figura 11 - Circuito do Display ...................................................................................20
Figura 12 - Reflexão do sinal para cabo em curto circuito............................................23
Figura 13 - Reflexão do sinal para cabo em circuito aberto..........................................23
Figura 14 – Diagrama de Tempo .................................................................................27
Figura 15 - Reflexão do sinal sem amplificação...........................................................28
Figura 16 - Reflexão do sinal após amplificação..........................................................28
Figura 17 – Relação de erro em função da distância ....................................................29
Figura 18 – Protótipo inicial do sistema localização de defeitos...................................30
Figura 19 – Protótipo final do sistema localização de defeitos .....................................31
LISTA DE TABELAS
Tabela 1 – Onda Refletida X Tipo da Descontinuidade..................................................9
Tabela 2 – Relação de Pulso........................................................................................21
Tabela 3 – Comprimento x Tempo de Reflexão...........................................................22
Tabela 4 – Descrição de materiais e custo do projeto ...................................................25
LISTA DE SÍMBOLOS/ABREVIATURAS/SIGLAS
A/D
-
DsPIC
Analógico/Digital
-
Digital Signal Processing Integrated Circuits (Circuitos
Integrados de Processamento Digital de Sinais).
ƒ
-
Frequência da Onda em Hz.
fc1
-
Frequência de Corte 1.
fc2
-
Frequência de Corte 2.
L
-
Comprimento do cabo.
LCD -
Liquid Crystal Display (Display de Cristal Líquido).
MFB -
Multiple Feedback.
MIPS -
Millions of Instructions Per Second
MSPS -
Millions of Sample Per Second
PA
-
Passa - Alta.
PB
-
Passa-baixo.
RAM S
-
Random Access Memory ( Memória de Acesso Randômico).
Condutância.
STP -
Shielded Twisted Pair (Par Trançado Blindado)
TDR Tempo).
TEM Tp
-
Time Domain Reflectometer (Reflectômetro no Domínio do
UTP -
Unshielded Twisted Pair (Par Trançado Não-Blindado).
Vp
Ondas Transversais Eletromagnéticas.
Tempo da reflexão do sinal.
-
Velocidade de propagação do cabo.
-
Constante de Propagação.
-
Impedância Intrínseca.
-
Impedância Característica.
-
Indutância.
-
Capacitância.
Constante de Atenuação.
Constante de Fase.
∧
γ
∧
η
∧
ZC
∧
L
∧
C
α
β
µ
ε
ω
υ
-
Permeabilidade magnética.
Permissividade elétrica.
Frequência Angular.
Velocidade de Propagação.
λ
-
Comprimento de Onda.
σ
Ω
-
Condutividade.
Ohm.
1
1
INTRODUÇÃO
A Refletometria no Domínio do Tempo (TDR) é uma técnica
fundamental na área de manutenção elétrica. Apresenta grandes possibilidades de
uso para localização de defeitos (circuito aberto ou curto-circuito) em cabos de
telefonia e redes. Dependendo do sinal a ser avaliado o (TDR) poderá ser
acústico, eletromagnético ou óptico e sua aplicabilidade variada. Como exemplo,
o radar utilizado em aeroportos (TDR Eletromagnético), o sonar utilizado nos
navios (TDR Acústico) e o óptico aplicado em fibras ópticas (TDR Óptico).
O estudo realizado referente ao TDR pode ser encontrado no artigo
(CONCEIÇÃO, 2008) e na dissertação de mestrado de (SILVA, 2009), no qual
os mesmos empregaram a teoria de ondas viajantes.
1.1 PROBLEMA
O grande desafio está em identificar e localizar o defeito apresentado
em cabos seja pelo motivo de estar soterrado ou pela complexidade do caminho
percorrido. Equipamentos como uma mesa de teste não determinam a exata
localização do defeito e também não identificam quando há uma alteração na
impedância característica do cabo.
2
1.2 JUSTIFICATIVA
O projeto tem como objetivo possibilitar ao usuário a real localização
do defeito, seja ele um rompimento parcial, ou um circuito aberto, mostrando em
um display qual a distância em metros onde se encontra o defeito. Esta
ferramenta terá aplicabilidade para manutenção preventiva das linhas de
telecomunicações, onde se poderá identificar problemas de alta impedância nas
conexões e até mesmo casos de isolação comprometida.
1.3 OBJETIVOS ESPECÍFICOS
Construir um TDR para localizar falhas em cabos de telefonia e rede,
cuja principal vantagem é mostrar a localização precisa do problema existente,
diferente da mesa de teste.
Conhecendo-se a amplitude e duração do sinal elétrico enviado a
extremidade do cabo, e havendo qualquer mudança na impedância característica
do cabo, haverá reflexões do pulso transmitido, onde a diferença de tempo do
sinal enviado e a do sinal refletido dará a real localização do defeito. Para isso
torna-se necessário conhecer as características do cabo em análise.
3
2
FUNDAMENTAÇÃO TEÓRICA
2.1 PROPAGAÇÃO DE ONDA UNIFORME EM MEIO COM PERDAS
Uniforme
e
plana
são
importantes
termos
empregado
na
caracterização de ondas eletromagnéticas. Quando ambos os vetores intensidades
de campos elétrico e magnético estão localizados em um plano e todos esses
planos são paralelos, entende-se como uma onda plana. Quando os vetores são
constantes em magnitude e fase sobre os planos, entende-se como uma onda
uniforme. Pode-se dizer também que as ondas planas são muitas vezes
conhecidas como ondas transversais eletromagnéticas (TEM), devido aos vetores
campos elétrico e magnético serem perpendiculares ou transversais à direção de
propagação da onda.
O estudo do campo elétrico no domínio do tempo envolve dois tipos
de ondas propagantes: a progressiva e a retrógrada, que ocorrem em meios com
impedâncias diferentes.
As formas das soluções para os meios com perdas são basicamente
idênticas àquelas para os meios sem perdas, porém existem algumas diferenças
importantes. As amplitudes nas ondas progressiva e retrógrada e as perdas no
meio introduzidas por uma impedância não-nula, fazem com que as amplitudes
das ondas progressiva e retrógrada decaiam à medida que elas se propagam
através do meio, isso é conhecido como atenuação da onda. Uma segunda
diferença é que o cálculo da constante de propagação não deve ser desprezado.
Com relação à impedância intrínseca ela não é mais real e sim complexa em um
meio com perdas, dada na equação (2.1). (PAUL, 2006).
4
∧
( jωµ )
,
(σ + jωε )
η=
equação (2.1)
onde:
∧
η = impedância intrínseca;
µ = permeabilidade magnética;
ε = permissividade elétrica;
σ = condutividade;
ω = frequência angular = 2πf.
Em um meio com perdas, a velocidade de propagação é dada por:
υ=
ω
,
β
equação (2.2)
onde:
υ = velocidade de propagação;
ω = frequência angular = 2πf;
β = constante de fase.
Define-se como comprimento de onda a distância que a onda deve
percorrer para sofrer uma mudança de fase de 2π radianos ou 360°. É calculado
por:
λ=
υ
f
,
equação (2.3)
onde:
λ = comprimento de onda de uma onda sonora ou onda
eletromagnética;
υ = velocidade da luz no vácuo ≈ 300.000 km/s = 300.000.000 m/s;
ƒ = frequência da onda em Hz.
5
2.2 LINHAS DE TRANSMISSÃO
Linhas de transmissão são usadas para transmitir energia e sinais de
um ponto a outro.
Na figura 1 é apresentado a modelagem de uma linha de transmissão
contendo uma sequência de indutores, capacitores e resistores. Dessa forma as
linhas de transmissão têm em adição à capacitância e à indutância, perdas.
Figura 1 - Circuito a parâmetros distribuídos
[GETCHELL – 2005]
A partir de um circuito equivalente, se um pulso for aplicado na
extremidade da linha, irá carregar as capacitâncias e energizar às indutância, à
medida que o pulso se propaga ao longo da linha, as ondas de tensão e corrente
irão se propagar pela linha com certa velocidade. Claro, leva certo tempo para
energizar e desenergizar o capacitor e o indutor, levando um tempo finito e nãonulo para que as ondas transitem pela linha, devido a isso, irá ocorrer um atraso
de tempo.
Em uma linha com perdas, a impedância característica é complexa e é
dada por:
∧
∧
ZC =
L
∧
C
∧
ZC =
(r + jωl )
jωc
,
equação (2.4)
6
onde:
∧
Z C = impedância característica (Ω);
∧
L = Indutância (Ω/m);
∧
C = Capacitância (F/m), r é a parte real, jωl e jωc parte imaginária, e a
constante de propagação é dada pela equação (2.5).
∧
γ = α + jβ ,
equação (2.5)
onde:
∧
γ = constante de propagação;
α = constante de atenuação;
β = constante de fase.
A constante de propagação é apresentada como um número complexo
e possuindo uma parte real, representada por α, e uma parte imaginária,
representada por β.
As principais diferenças entre a linha sem perdas e a linha com perdas
é que a amplitude da onda é atenuada com o aumento da distância por todo o
comprimento da linha e a corrente se atrasa em relação à tensão devido ao ângulo
de fase da impedância característica, que no caso de uma linha com perdas não é
zero. (PAUL, 2006).
Na carga, caso haja descasamento de impedâncias uma parte da onda
incidente será refletida. Esta é determinada pelo coeficiente de reflexão na carga,
e é dada por:
ΓL =
Z L − ZC
,
ZL + ZC
onde:
ΓL = coeficiente de reflexão (de tensão) na carga;
Z L = resistência da carga;
Z C = impedância característica da linha.
equação (2.6)
7
Para a determinação do coeficiente de reflexão, devem existir ambas
as ondas progressiva e retrógrada satisfazendo a Lei de Ohm. Se Z L = Z C ,
dizemos que a linha está casada com a carga. No caso de uma linha descasada,
Z L ≠ Z C , definimos um coeficiente de reflexão na carga como a razão entre a
onda retrógrada refletida e a onda progressiva incidente. Assim, obtemos o
coeficiente de reflexão na carga. (PAUL, 2006).
ΓL =
2 × ZC
,
ZL + ZC
onde:
ΓL = coeficiente de reflexão (de tensão) na carga;
Z L = resistência da carga;
Z C = impedância característica da linha.
equação (2.7)
8
2.3 ONDAS VIAJANTES EM SISTEMAS DE TRANSMISSÃO
Quando se fala em ondas viajantes, está-se referindo à propagação de
energia elétrica sobre uma linha de transmissão. Caso ocorra qualquer variação
de corrente ou de tensão em um terminal de uma linha de transmissão, o outro
terminal só irá sentir tal variação quando a onda percorrer todo o comprimento da
linha. Assim, os sinais elétricos se propagam ao longo da linha, como ondas
viajantes, dissipando energia devido às perdas na linha.
Qualquer alteração da impedância característica (Zc) em uma linha de
transmissão (como os provocados por curto-circuito, ou rompimentos) geram
ondas viajantes que se deslocam através das extremidades da linha de acordo
com a velocidade de propagação na linha. Caso ocorra alguma descontinuidade
física do sistema, isto irá provocar a sua reflexão ou refração, dependendo da
característica dessa descontinuidade. Isso continuará ocorrendo até que as ondas
sejam extintas devido às atenuações causadas pelas perdas na linha, alcançando
assim, o regime permanente da alteração da impedância característica.
Quando uma onda atinge qualquer descontinuidade, uma parte da
onda é refletida de volta, e uma outra parte da onda é transmitida para outra
sessão do circuito. A onda que chega à descontinuidade é chamada de onda
incidente e as outras duas ondas geradas da descontinuidade são chamadas de
refletida e refratada.
As ondas viajantes em uma linha de transmissão podem sofrer
diferentes alterações:
- O valor de crista da onda é atenuado;
- As ondas tornam-se mais longas, suas irregularidades são lisas, e sua
inclinação se reduz (distorções);
- Os términos das ondas de tensão e corrente tornam-se parecidas
(distorções) (SILVA, 2009).
Estas distorções e atenuações das ondas por toda a linha são causadas
por perdas de energia e está ligada a resistência da linha, às perdas dielétricas etc.
9
Na Tabela 1, apresenta-se os tipos de descontinuidade e o formato a
onda refletida.
Tipo da Onda
Tipo da
Tipo da Onda
Tipo da
Refletida
Descontinuidade
Refletida
Descontinuidade
Circuito em Aberto
Transceptor
Curto Circuito
Tap/Lateral
Emenda
Entrada de Água
Emenda Úmida
Rompimento parcial
Emenda com Alta
Impedância
Cruzamento
Tabela 1 – Onda Refletida X Tipo da Descontinuidade
[FONTE PRÓPRIA – 2009]
O tempo levado para retornar o pulso enviado, ou seja, a reflexão do
sinal é dada por:
L=
Vp × Tp
,
2
onde:
L = comprimento do cabo;
Vp = velocidade de propagação do cabo;
Tp = tempo da reflexão do sinal.
equação (2.8)
10
3
3.1
ESPECIFICAÇÃO TÉCNICA
ESPECIFICAÇÃO GERAL
No diagrama em blocos apresentado na figura 2 está apresentada a
visão geral do projeto. Podem ser observados os blocos: gerador de pulso,
sistema de aquisição e tratamento do sinal, interface com o usuário (display e
botões), microcontrolador e o cabo. Maiores detalhes dos blocos e suas
especificidades serão abordados nos itens subsequentes.
Figura 2 - Diagrama em Blocos do Projeto
[FONTE PRÓPRIA – 2009]
11
3.2
ESPECIFICAÇÃO FIRMWARE
Na figura 3 é apresentado o fluxograma principal do programa a ser
executado pelo microcontrolador.
Figura 3 – Fluxograma do Programa do Microcontrolador
[FONTE PRÓPRIA – 2009]
12
3.3
PLACA DE DESENVOLVIMENTO
Será utilizada a placa de desenvolvimento EASY dsPIC4 para a
utilização do microcontrolador dsPIC30F4013 da Microchip®. Esta placa de
desenvolvimento foi projetada para facilitar a exploração de microcontroladores
dsPIC, permitindo conectar diversos tipos de circuitos externos. Na figura 4 é
apresentado a placa de desenvolvimento.
Figura 4 - Placa de desenvolvimento EASYdsPIC4
[MIKRO ELETRONICA – 2009]
13
3.4
ESPECIFICAÇÃO DE HARDWARE
Com a finalidade de construir um equipamento que possibilite a
localização de defeito em cabos de telefonia e rede, alguns blocos serão de
extrema importância para o desenvolvimento deste projeto. O detalhamento de
cada bloco será descrito a seguir.
O circuito gerador de pulso tem como função principal enviar ao cabo
o sinal a ser gerado, este sinal deverá ser ajustado a cada análise diferente de
cabo, no qual será realizado o ajuste de amplitude e largura de pulso, através da
interface com o usuário.
Os cabos analisados serão de telefonia e rede, estes deverão ser
conhecidos seus dados característicos como: resistência ôhmica por kilometro,
indutância por kilometro, capacitância por kilometro e sua velocidade de
propagação. Esses tipos de cabos geralmente são de par trançado, onde cada fio é
um condutor, sendo entrelaçados para isolar os ruídos. Existem dois tipos de
cabo de par trançado, o STP – Shielded Twisted Pair (Par Trançado Blindado) e
o UTP – Unshielded Twisted Pair (Par Trançado não-blindado). Dentre esses
dois tipos de cabos, o UTP é o cabo mais adequado para ser usado neste projeto,
devido a possuir uma camada condutora envolvendo os fios trançados, provendo
assim uma camada de proteção contra as interferências.
O circuito de aquisição e tratamento do sinal será de fundamental
importância, pois este circuito é responsável pela aquisição da reflexão do sinal
enviado ao cabo. Este bloco conterá o circuito amplificador, para amplificar o
sinal refletido analógico que será enviado ao microcontrolador. O sinal refletido
será de baixa potência e sua amplitude reduzida, por este motivo o mesmo deverá
ser condicionado e sua aquisição terá de ser obtida em tempo hábil a ser
transmitida ao microcontrolador. O circuito de teste de loop será o complemento
a este bloco, objetivo deste é identificar se a terminação do cabo em análise
encontra-se em curto circuito ou circuito aberto, consequentemente oferece maior
confiabilidade ao sistema.
14
Definimos microcontrolador como componente eletrônico, podendo
ser programado para diferentes processos lógicos a serem executadas. Este
dispositivo terá uma de suas entradas conectada diretamente ao módulo de
aquisição e tratamento do sinal, será configurado a função capture, através desta
será possível receber os sinais enviados ao cabo, após o recebimento será
processado o cálculo, o resultado em metros e o tipo da descontinuidade será
enviada ao display. A velocidade de propagação do cabo será inserida ao
firmware.
A interface com o usuário conterá botões para teste de loop,
inicialização da análise e reset do sistema, também serão amostrados no display o
tipo da descontinuidade e o valor em metros da localização do mesmo. Objetivo
deste bloco é a facilitar o manuseio simplificando o entendimento.
15
3.5
DIMENSIONAMENTO E MEMORIAL DE CÁLCULO
3.5.1 Gerador de Pulso
A geração do pulso será realizada através do circuito integrado DM74121,
que é um multivibrador monoestável. A escolha deste componente foi devido à
sua de largura de pulso que varia de 30ns à 28 segundos, dependendo dos valores
escolhidos para os componentes de temporização. Na figura 5 é apresentado o
diagrama de funcionamento do circuito integrado.
Figura 5 - Diagrama de Funcionamento do DM74121
[FAIRCHILD – 1989]
Para que o DM74121 dispare, deve-se criar um sinal positivo. Assim,
ele pode ser disparado quando uma ou ambas as entradas (A1 e A2) estão em
fase e a entrada B esteja recebendo um sinal positivo, ou também quando a
entrada B permanece em nível alto e uma das entradas A recebe um sinal
negativo enquanto a outra entrada A permanece em nível alto, ou ambas as
entradas A recebem um sinal negativo, simultaneamente.
Após os cálculos, deve-se testar e ajustar o tempo dos pulsos de saída,
devido a variações entre os circuitos integrados e à tolerância de resistores e
capacitores.
A entrada B do DM74121 é a entrada de um Schmitt Trigger (responde
até1V/S) e, caso as formas de ondas lentas sejam requeridas para disparar um
monoestável, elas devem ser aplicadas à entrada B.
16
Devido ao DM74121 ser um multivibrador monoestável não
regatilhável ele apresenta limitações de ciclo de trabalho, sendo seu ciclo de
trabalho máximo de 90% e de 67% para resistores de 40KΩ e 2 KΩ,
respectivamente.
A largura do pulso de saída para o DM74121 é determinada pelo
resistor e pelo capacitor. Sendo essa duração do pulso de saída podendo ser
determinada por:
T = 0,7 x CT x RT ,
equação (2.9)
onde:
T = largura de pulso;
CT = capacitância de temporização;
RT = resistência de temporização.
Na figura 6 é apresentado o circuito esquemático do gerador de pulso
com o DM74121.
Figura 6 – Circuito Gerador de Pulso com DM74121
[FONTE PRÓPRIA – 2009]
17
3.5.2 Amplificador
O estágio de amplificação do sinal de reflexão utilizará um
amplificador operacional da Texas Instruments, modelo TL084, configurado no
modo amplificador não inversor, com ganho variável, possibilitando o ajuste do
nível do sinal da reflexão, de forma a manter um comportamento dentro da faixa
de interesse, desta forma será possível acionar a função capture do
microcontrolador. A pinagem do amplificador pode ser observada na figura 7.
Figura 7 – Pinagem do TL084
[TEXAS INSTRUMENTS – 2009]
A escolha do amplificador TL084 foi devida suas características,
baixo consumo, baixo off-set, alta impedância de entrada, alto slew-rate (13
V/us), consequentemente o sinal que terá a sua saída não será distorcido pela não
eficiência do amplificador operacional de acompanhar a velocidade de variação
do sinal refletido. Na figura 8 é apresentado o circuito esquemático da
amplificação com o TL084.
18
Figura 8 - Circuito Amplificador com TL084
[FONTE PRÓPRIA – 2009]
3.5.3 Circuito de loop
O sistema realizará um teste de loop para a verificação da continuidade
do cabo, oferecendo confiabilidade ao sistema, optou-se por aplicar em uma das
extremidades do cabo uma tensão, caso apareça alguma tensão na outra
extremidade o cabo estará em curto circuito e o não aparecimento de tensão será
entendido como circuito aberto. A comutação para enviar o sinal de teste de loop
e o sinal do pulso será através de reles.
Figura 9 – Circuito de Loop
[FONTE PRÓPRIA – 2009]
19
3.5.4 Microcontrolador
Dentre os microcontroladores existentes no mercado, optou-se por um
que possibilita a amostragem de sinais e o controle e atuação em circuitos
externos. Por este motivo o microcontrolador utilizado será o dsPIC30F4013 da
Microchip®, algumas características deste microcontrolador são: Periféricos e
interrupções de fontes externa; 8 níveis selecionáveis de prioridade; 48 kB de
memória de programa; 2,048 Bytes de memória RAM; memória Flash;
Processamento de até 30 MIPS. A pinagem do microcontrolador pode ser
observada na figura 9.
Figura 10 - Pinagem do dsPIC30F4013
[MIKRO ELETRONICA – 2009]
20
3.5.5 Interface com o Usuário
Na composição da interface com o usuário será utilizado um display
LCD com 2 linhas e 16 colunas de 5x8 pixels, e push-button para inicialização e
ajustes de parâmetros. Na figura 10 é apresentado o circuito para utilização do
display.
Figura 11 - Circuito do Display
[MICROCHIP – 2009]
Descrição dos pinos:
GND
= Terra
Vcc
= Alimentação
Vee
= Ajuste de Corrente
Rs
= “0”Entrada de Código de Instrução. “1”Ler Dados do LCD
R/W
= “0” Escreve Dados no LCD. “1” Ler Dados do LCD
E
= Habilita LCD
D0-D7
= Dados
A
= Backlight +
K
= Backlight -
21
4
4.1
IMPLEMENTAÇÃO
DESCRIÇÃO DA MONTAGEM
A montagem foi iniciada pelo gerador de pulso com a intenção de
ajustar a correta largura de pulso para o cabo em análise. Para isto, utilizou-se a
associação de resistor e capacitor para cada largura de pulso, Tabela 2.
Seleção Resistência (Ω) Capacitância (nF) Pulso (s) Cabo(m)
CH_1
330
8,2
1,49u
305
CH_2
330
8,2
2,23u
455
CH_3
330
8,2
2,99u
610
CH_4
1,8k
8,2
3,72u
760
CH_5
470
8,2
5,98u
1220
CH_6
2k
8,2
6,71u
1370
Tabela 2 – Relação de Pulso
[FONTE PRÓPRIA – 2009]
Na sequência, iniciou-se a programação do dsPIC30F4013 com o
objetivo de realizar-se a leitura do pulso gerado. Para isto foi utilizada a função
capture, a qual captura toda borda do sinal a ser analisado. Para a calibração do
programa utilizou-se o gerador de sinais, após a calibração inseriu-se no
microcontrolador o sinal da reflexão, devido este sinal ser de baixa amplitude
utilizou-se o amplificador operacional TL084 com objetivo de amplificar o sinal
da reflexão, pois a função capture não opera corretamente com sinais de baixa
amplitude. A montagem do circuito amplificador foi realizada inicialmente em
matriz de contatos.
22
4.2
TESTES, MEDIÇÕES E CONFIGURAÇÕES
Durante a implementação do projeto, foram realizados vários testes,
medições e configurações para a verificação do correto funcionamento dos
circuitos. Após a montagem do circuito gerador de pulso o sinal foi enviado ao
cabo de rede, o sinal da reflexão foi analisado por meio de um osciloscópio.
Tabela 3 apresenta a largura de pulso utilizada para cada distância de cabo em
análise e o tempo da reflexão correspondente. Na sequência apresenta-se a
reflexão medida no osciloscópio.
Comprimento
do Cabo (m)
150
300
305
450
600
610
915
1220
Largura do Pulso
Enviado (s)
735 n
1,47 u
1,49 u
2,2 u
2,94 u
2,99 u
4,48 u
5,98 u
Tempo da Reflexão
do Sinal (µs)
1,47
2,94
2,99
4,41
5,88
5,98
8,98
11,97
Tabela 3 – Comprimento x Tempo de Reflexão
[FONTE PRÓPRIA – 2009]
A figura 11 e figura 12 mostra a reflexão do sinal, o gerador de pulso é
ligado ao cabo de 305 metros, a largura do pulso enviada é de 1,49 µs, o sinal
enviado ao chegar ao final da linha é refletido de volta ao gerador, o tempo de
volta é de 2,99 µs (“Tp” tempo da reflexão). Colocando-se na sua terminação um
curto circuito ou em aberto observa-se que o sinal da reflexão terá sua amplitude
reduzida, porém, quando o cabo está com o seu final em curto circuito a reflexão
será com a amplitude invertida (figura 11), já o cabo com o seu final em aberto o
sinal de volta tem a mesma fase (figura 12) do sinal original.
23
Figura 12 - Reflexão do sinal para cabo em curto circuito
[FONTE PRÓPRIA – 2009]
Figura 13 - Reflexão do sinal para cabo em circuito aberto
[FONTE PRÓPRIA – 2009]
24
4.3
CÓDIGO FONTE FIRMWARE
Para o desenvolvimento dos códigos utilizou-se o compilador
PCWHD versão 4.057 desenvolvida pela CCS.
A seguir, apresenta-se a função principal, onde utilizou-se a função
capture para iniciar e parar o timer interno do microcontrolador. A versão
completa do código está disponível no Apêndice A.
# Diretivas de compilações
//Informações para o funcionamento do código
# Declarações de variáveis
//Variáveis utilizadas durante a execução do firmware
# Função principal
{
// configura o timer2 para clock interno
// seta ADC na porta AN8
// seta função capture em toda a transição
// inicia o display
// se for curto circuito
// ir para função curto
// se não, ir para função aberto.
}
# Função Aberto
{
//Setar Timer2 em zero
//Capturar primeira transição do sinal
//Capturar a segunda transição do sinal (descontinuidade)
//Realizar o calculo para o comprimento do cabo
//Enviar ao display
}
# Função Curto
{
//Setar Timer2 em zero
//Capturar primeira transição do sinal
//Capturar a segunda transição do sinal (descontinuidade)
//Realizar o calculo para o comprimento do cabo
//Enviar ao display
}
25
4.4
COMPONENTES, MATERIAIS E CUSTO DO PROJETO
Relação de componentes e materiais utilizados no projeto.
Módulo
Interface com o Usuário
Componente
Quantidade Unid. Valor/Unit.
Display LCD 16x2
1
Pç
R$ 15,00
Resistor 10Ω
1
Pç
R$ 0,10
Potenciômetro 10KΩ
1
Pç
R$ 1,50
push-button
Microcontrolador
Aquisição/Tratamento Sinal
Gerador de Pulso
dsPIC30F4013
2
1
Pç
Pç
R$ 0,20
R$ 30,00
R$ 0,40
R$ 30,00
Base p/ CI 40 pinos
Capacitor 22pF
Capacitor 100nF
Cristal 10MHz
Resistor 10KΩ
CI TL084
Base p/ CI 14 pinos
Resistor 1KΩ
Potenciômetro 20KΩ
Transistor BC548
Diodo Zener 5,1V
Led auto brilho
Relay 5v
Conector KRE
DM74121
Base p/ CI 14 pinos
Base p/ CI 24 pinos
Chave 6posições 2P
Resistor 330Ω
Resistor 470Ω
Resistor 1,8KΩ
Resistor 2KΩ
Capacitor 8,2nF
1
2
1
1
1
1
1
3
1
1
1
1
2
1
1
1
1
1
3
1
1
1
6
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
R$1,80
R$ 0,25
R$ 0,25
R$ 2,00
R$ 0,10
R$ 2,00
R$1,80
R$ 0,10
R$ 1,50
R$ 0,40
R$ 0,30
R$ 1,20
R$ 2,10
R$ 0,80
R$ 2,00
R$1,80
R$1,80
R$ 8,50
R$ 0,10
R$ 0,10
R$ 0,10
R$ 0,10
R$ 0,50
R$1,80
R$ 0,50
R$ 0,25
R$ 2,00
R$ 0,10
R$ 2,00
R$1,80
R$ 0,30
R$ 1,50
R$ 0,40
R$ 0,30
R$ 1,20
R$ 4,20
R$ 0,80
R$ 2,00
R$1,80
R$1,80
R$ 8,50
R$ 0,30
R$ 0,10
R$ 0,10
R$ 0,10
R$ 3,00
push-button
1
1
1
1
Pç
Pç
Pç
Pç
R$ 0,20
R$ 0,80
R$ 0,80
R$ 0,10
R$ 0,20
R$ 0,80
R$ 0,80
R$ 0,10
1
1
3
3
4
1
1
1
1
1
1
455
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
Pç
m
R$ 1,00
R$ 4,50
R$ 0,50
R$ 0,50
R$ 0,30
R$ 0,10
R$ 0,50
R$ 1,40
R$ 1,40
R$ 1,40
R$ 395,00
R$ 0,75
R$ 1,00
R$ 4,50
R$ 1,50
R$ 1,50
R$ 1,20
R$ 0,10
R$ 0,50
R$ 1,40
R$ 1,40
R$ 1,40
R$ 395,00
R$ 341,25
R$ 827,30
Conector KRE
Porta fusível
Fusível vidro1A
Chave HH
Fonte Simétrica
Trafo 127-220/12+12V
Capacitor 10uF
Capacitor 1000uF
Diodo 1N4007
Resistor 1KΩ
Led Verde
Regulador LM7812
Regulador LM7912
Regulador LM7805
Kit para Desenvolvimento
Cabo
Total
R$ 15,00
R$ 0,10
R$ 1,50
Placa EASYdsPIC-4
Cabo UTP-Cat5e
TOTAL
Tabela 4 – Descrição de materiais e custo do projeto
[FONTE PRÓPRIA – 2009]
26
5
RESULTADOS
O desafio para o desenvolvimento do projeto foi relacionado à
aquisição do sinal de reflexão, pois a maior dificuldade foi na velocidade em que
este sinal retorna tornando a escolha correta dos componentes de fundamental
importância, pois os mesmos deveram ser de alta velocidade e capacidade de
processamento.
No início do projeto optou-se por utilizar um conversor A/D externo
ADC08200, devido sua taxa de conversão ser de até 230 MSPS. Porém, não foi
possível utilizá-lo, pois ao se enviar os dados ao microcontrolador ocorreram
vários erros na transmissão. Por isto, optou-se pela utilização do A/D interno do
dsPIC30F4013 da Microchip®, apesar de sua taxa de conversão ser limitada em
100 Ksps.
O passo seguinte foi configurar o A/D interno para obtenção do sinal
da reflexão, optou-se ler o sinal refletido por nível de tensão. Foram feitos muitos
testes e alterações para o correto funcionamento do sistema, porém, o sistema
apresentou muita instabilidade e não confiabilidade na leitura do sinal, devido
manipular-se sinais de baixa amplitude muitas interferências são adicionadas ao
sinal desejado.
Devido aos problemas obtidos com a utilização do A/D, optou-se por
utilizar a função capture do próprio microcontrolador. Configurou-se esta função
para capturar toda borda de subida dos pulsos refletidos, onde utilizou-se o
primeiro evento da subida de borda (do pulso enviado) para ativar o timer2
interno do microcontrolador, e o segundo evento da borda (sinal da reflexão)
utilizado para parar o timer2. Na figura 13 é apresentado o diagrama de tempo
para um melhor entendimento da função capture.
27
Figura 14 – Diagrama de Tempo
[FONTE PRÓPRIA – 2009]
O pulso enviado ao cabo tem maior duração em relação ao pulso
necessário a atingir sua terminação, ao chegar ao final da linha ocorre a reflexão,
esse sinal volta na mesma fase do pulso enviado caso a linha esteja em aberto e
volta com a fase invertida se sua terminação for de curto circuito. Portanto a
função capture é configurada para ser ativada em toda borda, ou seja, na borda
de início do envio do sinal e na reflexão do mesmo.
Utilizado o gerador de funções para a calibração do sistema, esta de
fundamental importância para o correto funcionamento da função, durante a
execução da calibração foi constatada que a limitação física do microcontrolador
é de 2,8 µs, por este motivo a análise em cabos ficou limitada em
aproximadamente 300 metros de cabo.
Na calibração foi identificado que para a correta operação da função
capture, o nível do sinal deverá ser acima de 2 volts, e com a utilização do
circuito integrado DM74121 obteve-se uma tensão inferior, por este motivo
optou-se pela utilização de um circuito amplificador com objetivo de amplificar o
sinal refletido a ser enviado ao microcontrolador. O sinal é enviado ao cabo em
28
análise e a reflexão do sinal será enviado ao circuito amplificador. Na figura 14 e
figura 15 é apresentado o nível de tensão adquirido antes e depois da
amplificação.
Figura 15 - Reflexão do sinal sem amplificação
[FONTE PRÓPRIA – 2009]
Figura 16 - Reflexão do sinal após amplificação
[FONTE PRÓPRIA – 2009]
29
A amplificação do sinal foi realizada pelo circuito integrado TL084,
devido suas características, o mesmo sendo empregado na configuração de
amplificador não inversor.
Para a montagem do circuito de loop optou-se por uma lógica de relês,
sendo realizados vários testes com lógicas digitais, porém, o resultado não foi
satisfatório devido a baixa confiabilidade do sistema. Outra dificuldade
encontrada na medição da tensão de loop foi devido à queda de tensão, pois,
aplicando-se 5,0 volts na extremidade do cabo obtivemos em sua outra
extremidade aproximadamente 1,8 volts, está tensão não foi suficiente para
acionar o rele. A solução encontrada foi a instalação de um transistor NPN, desta
forma, aplicando-se a tensão de 1,8 volts a sua base chaveará os 5,0 volts
acionando-se o relê normalmente.
A figura 5 apresenta o gráfico levantado com base nas medições
realizadas em bancada.
1,80
1,60
1,40
Erro (%)
1,20
1,00
0,80
0,60
0,40
0,20
0,00
0,00
300,00
600,00
900,00
Distância (m)
Figura 17 – Relação de erro em função da distância
[FONTE PRÓPRIA – 2009]
1200,00
1500,00
30
Após os testes realizados, o equipamento encontra-se com o firmware
do microcontrolador, sistema de aquisição do sinal, gerador de pulso e interface
com o usuário funcionando de acordo com o proposto. Como mostrado na figura
18, os circuitos foram montados na matriz de contatos. Ainda, pode-se observar
que o microcontrolador dsPIC30F4013 encontra-se montado no kit de
desenvolvimento.
Figura 18 – Protótipo inicial do sistema localização de defeitos
[FONTE PRÓPRIA – 2009]
A tensão de alimentação para o protótipo foi fornecida pela fonte
simétrica de bancada, para a montagem final optou-se pela montagem de uma
fonte simétrica na própria placa de circuito impresso do sistema. A fonte
fornecerá tensões de 12 volts negativo e positivo para alimentação do circuito
integrado responsável pela amplificação e tensão de 5,0 volts positivos para
alimentação dos demais componentes.
31
A figura 19 apresenta a montagem final do sistema de localização de
defeitos em cabo.
Figura 19 – Protótipo final do sistema localização de defeitos
[FONTE PRÓPRIA – 2009]
32
6
CONSIDERAÇÕES FINAIS
A proposta inicial do projeto foi a obtenção da localização da
descontinuidade em cabos de telefonia e rede, seja sua terminação em curtocircuito ou circuito aberto. A teoria de ondas viajantes foi utilizada, aplicando-se
um sinal em uma das extremidades, havendo alteração da impedância
característica ocorrerá uma reflexão do sinal aplicado. O tempo da reflexão é
essencial para o cálculo da localização da descontinuidade, este tempo sendo a
diferença entre o tempo que foi aplicado o pulso e a reflexão do mesmo. Devido
o sinal refletido ser de baixa amplitude a montagem do circuito amplificador
torna-se fundamental, pois caso contrário tem-se dificuldade para trabalhar com o
microcontrolador. Quanto maior for o comprimento do cabo a ser analisado
maior será a perda de potência do sinal inserido.
A grande dificuldade encontrada foi na aquisição dos sinais, optou-se
inicialmente em trabalhar com níveis de tensão, porém ocorreram muitas
instabilidades ocasionando uma não confiabilidade ao sistema. A solução
encontrada foi trabalhar com nível de transição do pulso, desta forma, o tempo de
reflexão é conhecido toda vez que ocorre uma transição do nível do sinal, neste
caso, em específico, será ativada quando pulso for enviado ao cabo e quando
ocorrer a reflexão do mesmo.
A limitação do dsPIC30F4013 foi identificada durante a calibração,
pois para ativação da função específica foram necessários valores de tensão, ou
seja, 2,0 volts a 5,0 volts; também foi necessário trabalhar com a base de tempo
pois sinais com intervalo de tempo inferior a 2,8 µs não foram identificados pelo
microcontrolador.
Outra grande dificuldade encontrada foi a utilização do compilador
fornecido pelo fabricante do microcontrolador (mikroC compiler for dsPIC 30/33
versão V4.0), foram seguidos as recomendações do datasheet e documentos do
fabricante para o kit de desenvolvimento porém, não foi possível configurar e
trabalhar com funções desejadas. A solução encontrada foi a utilização do
compilador PCWHD versão 4.057 desenvolvida pela CCS.
33
Como sugestão para trabalhos futuros e melhoria deste projeto,
poderia-se utilizar componentes com velocidade de processamento mais rápido,
objetivando capturar pulsos na faixa de nano segundos, desta forma seria
possível realizar medições em cabos de menor comprimento. Ainda sugere-se
aprofundar em testes laboratoriais e aplicar o mesmo método do TDR (Reflexão
no Domínio do Tempo) em outros modelos, seja cabos de comando e controle ou
alimentação.
34
REFERÊNCIAS
PAUL, CLAYTON R. Eletromagnetismo para Engenheiros. LTC Editora,
2006. Pág. (187 a 321).
CONCEIÇÃO, CLÁUDIO A. Eletricidade Moderna. Aranda Editora, ANO
XXXVI Nº411, JUNHO 2008. Pág. (152 a 158).
SILVA, MURILO. Localização de Faltas em Linhas de Transmissão
Utilizando a Teoria de Ondas Viajantes e Transformada de Wavelet.
Disponível em < http://www.teses.usp.br/teses/disponiveis/18/18133/tde14012005-094447/>, Acesso em: 20 de Abril de 2009.
HAYT, WILLIAM H. Eletromagnetismo. LTC Editora, 4º Edição, 2000.
GETCHELL, WAYNE. Time Domain Reflectometry for Ham Radio.
Disponível em <http://www.oarc.net/monthly/TDR2.pdf>, Acesso em: 23 de
Maio de 2009.
dsPIC30F4013dsPIC.
Disponível
em
<
MICROCHIP,
http://ww1.microchip.com/downloads/en/DeviceDoc/70138F.pdf>, Acesso em:
21 de Maio de 2009.
MIKRO, ELEKTRONIKA. EASYdsPIC4 User’s Manual. Disponível em: <
http://www.mikroe.com/pdf/easydspic4_manual.pdf>. Acesso em: 24 de Maio de 2009.
PERTENCE JUNIOR, Antonio. Amplificadores operacionais e filtros ativos. 6º ed.
Editora ARTMED S.A., 2007.
datasheet
DM74121.
Disponível
em
<
FAIRCHILD,
http://pdf1.alldatasheet.com/datasheet-pdf/view/177142/FAIRCHILD/DM74121.
html>, Acesso em: 24 de Maio de 2009.
TEXAS
INSTRUMENTS,
datasheet
TL084.
Disponível
em
<
http://www.datasheetcatalog.net/pt/datasheets_pdf/T/L/0/8/TL084.shtml>, Acesso em:
25 de Setembro de 2009.
35
APÊNDICE A – CÓDIGO DO DSPIC 30F4013
#include <30F4013.h>
#fuses XT_PLL4,NOWDT,NOPROTECT,NODEBUG,NOCKSFSM,EC
#use delay(clock=10000000)
#include <mod_lcd.c>
#include <math.h>
long p,q,ad;
float z,t,l;
/////////////////////////////////FUNÇÔES//////////////////////////////
//////////
void circuito_aberto(void);
void curto_circuito(void);
//////////////////////////////////////////////////////////////////////
//////////
void main()
{
SETUP_ADC_PORTS(sAN8);
setup_adc(ADC_CLOCK);
SETUP_TIMER2(TMR_INTERNAL | TMR_DIV_BY_1);
setup_capture(2, CAPTURE_EE | CAPTURE_TIMER2);
lcd_ini();
lcd_escreve('\f');
lcd_pos_xy(1,1);
lcd_escreve("Localizador de");
lcd_pos_xy(1,2);
lcd_escreve("defeito em cabos");
delay_ms(5000);
lcd_escreve('\f');
lcd_pos_xy(1,1);
lcd_escreve("Para enviar o");
lcd_pos_xy(1,2);
lcd_escreve("sinal ao cabo");
delay_ms(5000);
lcd_escreve('\f');
lcd_pos_xy(1,1);
lcd_escreve("Aperte o botao");
delay_ms(1000);
while(true)
{
set_adc_channel(8);
ad=read_adc();
if(ad<20000)
{
circuito_aberto();
}
else
curto_circuito();
}
}
36
////////////////////////////////CIRCUITO_ABERTO///////////////////////
//////////
void circuito_aberto()
{
set_timer2(0);
p = get_capture(2, TRUE);
q = get_capture(2, TRUE);
z=(q-p)/2;
t=(-0.0000006*(z*z*z) - 0.0007*(z*z) + 0.2084*z + 0.0042);
l = ((t*(204))/2);
lcd_escreve('\f');
printf(lcd_escreve,"%Lf metros",l);
delay_ms(100);
lcd_pos_xy(1,2);
lcd_escreve("Circuito aberto");
delay_ms(1000);
output_high(pin_b12);
delay_ms(100);
output_low(pin_b12);
}
////////////////////////////////CURTO_CIRCUITO////////////////////////
//////////
void curto_circuito()
{
set_timer2(0);
p = get_capture(2, TRUE);
q = get_capture(2, TRUE);
z=q-p;
t=(-0.0000052*(z*z*z) + 0.0003*(z*z) + 0.1634*z + 0.4883);
l = ((t*(204))/2);
lcd_escreve('\f');
printf(lcd_escreve,"%Lf metros",l);
delay_ms(100);
lcd_pos_xy(1,2);
lcd_escreve("Curto circuito");
delay_ms(300);
output_high(pin_b11);
delay_ms(100);
output_low(pin_b11);
}
//////////////////////////////////////////////////////////////////////
//////////
ANEXO A – 30F4013.H
//////// Standard Header file for the DSPIC30F4013 device
////////////////
#device DSPIC30F4013
#nolist
//////// Program memory: 16384x24 Data RAM: 2048 Stack: 31
//////// I/O: 38
Analog Pins: 13
//////// Data EEPROM: 1024
//////// Fuses:
XTL,HS,XT,XT_PLL4,XT_PLL8,XT_PLL16,ER_IO,ER,EC,EC_IO,EC_PLL4
37
//////// Fuses:
EC_PLL8,EC_PLL16,LP,FRC,LPRC,PR,NOCKSFSM,CKSNOFSM,CKSFSM,WDT
//////// Fuses: NOWDT,WPSB1,WPSB2,WPSB3,WPSB4,WPSB5,WPSB6,WPSB7,WPSB8,
WPSB9
//////// Fuses:
WPSB10,WPSB11,WPSB12,WPSB13,WPSB14,WPSB15,WPSB16,WPSA1, WPSA8
//////// Fuses:
WPSA64,WPSA512,NOPUT,PUT4,PUT16,PUT64,BROWNOUT,NOBROWNOUT
//////// Fuses:
BORV20,BORV27,BORV42,BORV47,LPOL_HIGH,LPOL_LOW,HPOL_HIGH
//////// Fuses:
HPOL_LOW,PWMPIN,NOPWMPIN,MCLR,NOMCLR,PROTECT,NOPROTECT, WRT
//////// Fuses: NOWRT,DEBUG,NODEBUG,COE,NOCOE,ICS0,ICS1,ICS2,ICS3
////////
////////////////////////////////////////////////////////////////// I/O
// Discrete I/O Functions: SET_TRIS_x(), OUTPUT_x(), INPUT_x(),
//
PORT_x_PULLUPS(), INPUT(),
//
OUTPUT_LOW(), OUTPUT_HIGH(),
//
OUTPUT_FLOAT(), OUTPUT_BIT()
// Constants used to identify pins in the above are:
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
PIN_A11
PIN_B0
PIN_B1
PIN_B2
PIN_B3
PIN_B4
PIN_B5
PIN_B6
PIN_B7
PIN_B8
PIN_B9
PIN_B10
PIN_B11
PIN_B12
PIN_C13
PIN_C14
PIN_C15
PIN_D0
PIN_D1
PIN_D2
PIN_D3
PIN_D7
PIN_D8
PIN_F0
PIN_F1
PIN_F2
PIN_F3
PIN_F4
PIN_F5
PIN_F6
5659
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5757
5758
5759
5792
5793
5794
5795
5799
5800
5888
5889
5890
5891
5892
5893
5894
//////////////////////////////////////////////////////////////////
Useful defines
#define FALSE 0
#define TRUE 1
#define BYTE unsigned int8
#define BOOLEAN int1
#define getc getch
38
#define
#define
#define
#define
#define
#define
fgetc getch
getchar getch
putc putchar
fputc putchar
fgets gets
fputs puts
//////////////////////////////////////////////////////////////////
UART
// Constants used in setup_uart() are:
// FALSE - Turn UART off
// TRUE - Turn UART on
#define UART_ADDRESS
2
#define UART_DATA
4
#define UART_AUTODETECT
8
#define UART_AUTODETECT_NOWAIT 9
#define UART_WAKEUP_ON_RDA
10
#define UART_SEND_BREAK
13
////////////////////////////////////////////////////////////////// WDT
// Watch Dog Timer Functions: SETUP_WDT() and RESTART_WDT()
//
// Constants used for SETUP_WDT() are:
#define WDT_ON
1
#define WDT_OFF
0
//////////////////////////////////////////////////////////////////
Control
// Control Functions: RESET_CPU(), SLEEP(), RESTART_CAUSE()
// Constants passed into RESTART_CAUSE() are:
#define RESTART_POWER_UP
0x0003
#define RESTART_BROWNOUT
0x0001
#define RESTART_WATCHDOG
0x0010
#define RESTART_SOFTWARE
0x0040
#define RESTART_MCLR
0x0080
#define RESTART_ILLEGAL_OP
0x4000
#define RESTART_TRAP_CONFLICT 0x8000
//
// Constants passed into SLEEP() are:
#define SLEEP_FULL
0 // Default
#define SLEEP_IDLE
1 // Clock and peripherals don't stop
//////////////////////////////////////////////////////////////////
INTERNAL RC
// Constants used in setup_oscillator() are:
#define OSC_INTERNAL
32
#define OSC_CRYSTAL
1
#define OSC_CLOCK
2
#define OSC_RC
3
#define OSC_SECONDARY
16
//////////////////////////////////////////////////////////////////
Timer
// Timer Functions: SETUP_TIMERx, GET_TIMERx, GET_TIMERxy,
// SET_TIMERx, SET_TIMERxy
// Constants used for SETUP_TIMERx() are:
//
(or (via |) together constants from each group)
#define TMR_DISABLED 0x0000
#define TMR_INTERNAL 0xA000
#define TMR_EXTERNAL 0xA002
#define T1_EXTERNAL_SYNC 0xA006 //This only applies to Timer1
39
#define T1_EXTERNAL_RTC
#define
#define
#define
#define
#define
TMR_DIV_BY_1
TMR_DIV_BY_8
TMR_DIV_BY_64
TMR_DIV_BY_256
TMR_32_BIT
0xC002 //This only applies to Timer1
0x0000
0x0010
0x0020
0x0030
0x0008 // Only for even numbered timers
/////////////////////////////////////////////////////////// INPUT
CAPTURE
// Functions: SETUP_CAPTURE, GET_CAPTURE,
//
// Constants used for SETUP_CAPTURE() are:
#define CAPTURE_OFF
0x0000 // Capture OFF
#define CAPTURE_EE
0x0001 // Capture Every Edge
#define CAPTURE_FE
0x0002 // Capture Falling Edge
#define CAPTURE_RE
0x0003 // Capture Rising Edge
#define CAPTURE_DIV_4
0x0004 // Capture Every 4th Rising
Edge
#define CAPTURE_DIV_16
0x0005 // Capture Every 16th Rising
Edge
#define CAPTURE_INTERRUPT_ONLY
0x0007 // Interrupt on Rising Edge
when in Sleep or Idle
// The following defines can be ORed | with above to configure
interrupts
#define INTERRUPT_EVERY_CAPTURE
0x0000 // Interrupt on every
capture event
#define INTERRUPT_SECOND_CAPTURE 0x0020 // Interrupt on every second
capture event
#define INTERRUPT_THIRD_CAPTURE
0x0040 // Interrupt on every third
capture event
#define INTERRUPT_FOURTH_CAPTURE 0x0060 // Interrupt on every fourth
capture event
// The following defines can be ORed | with above to select timer
#define CAPTURE_TIMER2
0x0080 // On capture event Timer 2
is captured
#define CAPTURE_TIMER3
0x0000 // On capture event Timer 3
is captured
// The following defines can be ORed | with above to select idle
operation mode
#define CAPTURE_HALT_IDLE
0x2000 // Capture module halts
during idle mode
#define CAPTURE_CONTINUE_IDLE
0x0000 // Capture module continues
during idle mode
/////////////////////////////////////////////////////////// OUTPUT
COMPARE
// Functions: SETUP_COMPARE, SET_PWM_DUTY, SET_COMPARE_TIME
//
// Constants used for SETUP_COMPARE() are:
#define COMPARE_OFF
0x0000 // Compare OFF
#define COMPARE_SET_ON_MATCH
0x0001 // Pin from low to high on
match
#define COMPARE_CLR_ON_MATCH
0x0002 // Pin from high to low on
match
#define COMPARE_TOGGEL
0x0003 // Pin will toggle on every
match occurrence
40
#define COMPARE_SINGLE_PULSE
pulse on first match
#define COMPARE_CONT_PULSE
match
#define COMPARE_PWM
with fault pin disabled
#define COMPARE_PWM_FAULT
with fault pin enabled
0x0004
// Pin will generate single
0x0005
// Pin will pulse for every
0x0006
// Compare operates as PWM
0x0007
// Compare operates as PWM
// The following defines can be ORed | with above to select timer
#define COMPARE_TIMER2
0x0000 // Timer 2 is the base timer
#define COMPARE_TIMER3
0x0008 // Timer 3 is the base timer
// The following defines can be ORed | with above to select idle
operation mode
#define COMPARE_HALT_IDLE
0x2000 // Compare module halts
during idle mode
#define COMPARE_CONTINUE_IDLE
0x0000 // Compare module continues
during idle mode
////////////////////////////////////////////////////////////////// SPI
// SPI Functions: SETUP_SPI, SPI_WRITE, SPI_READ, SPI_DATA_IN
// Constants used in SETUP_SPI() are:
#define SPI_MASTER
0x0020
#define SPI_SLAVE
0x1000
#define SPI_L_TO_H
0
#define SPI_H_TO_L
0x0100
#define SPI_CLK_DIV_1
0x001F
#define SPI_CLK_DIV_4
0x001E
#define SPI_CLK_DIV_16
0x001D
#define SPI_CLK_DIV_64
0x001C
#define SPI_SS_DISABLED 0x8000
////////////////////////////////////////////////////////////////// ADC
// ADC Functions: SETUP_ADC(), SETUP_ADC_PORTS()
//
SET_ADC_CHANNEL(), READ_ADC()
//
// Constants used for SETUP_ADC() are:
// Clock is at ADCS<5:0> of ADCON3 Reg. (0x02A4)
// Tad = (Tcy/2)*(ADCS<5:0>+1)
#define ADC_CLOCK
0x0000
// External
#define ADC_CLOCK_DIV_2
0x0001
#define ADC_CLOCK_DIV_4
0x0003
#define ADC_CLOCK_DIV_8
0x0007
#define ADC_CLOCK_DIV_16
0x000F
#define ADC_CLOCK_DIV_32
0x001F
#define ADC_CLOCK_DIV_64
0x003F
#define ADC_CLOCK_INTERNAL 0x0080
// Internal
// The following may be OR'ed in with the above using |
// Auto-Sample Time bits
#define ADC_TAD_MUL_0
0x0000
#define ADC_TAD_MUL_2
0x0200
#define ADC_TAD_MUL_4
0x0400
#define ADC_TAD_MUL_8
0x0800
#define ADC_TAD_MUL_16
0x1000
#define ADC_TAD_MUL_31
0x1F00
// Constants used in READ_ADC() are:
#define ADC_START_AND_READ 0x07
41
#define ADC_START_ONLY
#define ADC_READ_ONLY
0x01
0x06
// Constants used in SETUP_ADC_PORTS()
// First argument:
// OR together desired pins
#define sAN0
0x0001 //|
#define sAN1
0x0002 //|
#define sAN2
0x0004 //|
#define sAN3
0x0008 //|
#define sAN4
0x0010 //|
#define sAN5
0x0020 //|
#define sAN6
0x0040 //|
#define sAN7
0x0080 //|
#define sAN8
0x0100 //|
#define sAN9
0x0200 //|
#define sAN10
0x0400 //|
#define sAN11
0x0800 //|
#define sAN12
0x1000 //|
#define NO_ANALOGS
0
//
#define ALL_ANALOG
0xFFFFFFFF //
// Optional Second argument:
#define VSS_VDD
0x0000
#define VREF_VREF
0x3000
#define VREF_VDD
0x2000
#define VSS_VREF
0x1000
//
//
//
//
are:
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
None
Range
Range
Range
Range
0-Vdd
VrefL-VrefH
VrefL-Vdd
0-VrefH
////////////////////////////////////////////////////////////////// INT
// Interrupt Functions: ENABLE_INTERRUPTS(), DISABLE_INTERRUPTS(),
//
CLEAR_INTERRUPT(), INTERRUPT_ACTIVE(),
//
EXT_INT_EDGE()
//
// Constants used in EXT_INT_EDGE() are:
#define L_TO_H
0x40
#define H_TO_L
0
//
// Constants used in other interrupt functions are:
#define INTR_GLOBAL
0x400
#define INTR_NORMAL
0x100
#define INTR_ALTERNATE
0x200
#define INTR_NESTING
0x300
#define INTR_LEVEL0
0x500
#define INTR_LEVEL1
0x501
#define INTR_LEVEL2
0x502
#define INTR_LEVEL3
0x503
#define INTR_LEVEL4
0x504
#define INTR_LEVEL5
0x505
#define INTR_LEVEL6
0x506
#define INTR_LEVEL7
0x507
#define
#define
#define
#define
#define
#define
#define
#define
#define
INT_OSCFAIL
INT_ADDRERR
INT_STACKERR
INT_MATHERR
INT_DMAERR
INT_EXT0
INT_IC1
INT_OC1
INT_TIMER1
1
2
3
4
5
6
7
8
9
42
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#list
INT_IC2
INT_OC2
INT_TIMER2
INT_TIMER3
INT_SPI1
INT_RDA
INT_TBE
INT_ADC1
INT_EEPROM
INT_SI2C
INT_MI2C
INT_CN1
INT_IC7
INT_IC8
INT_OC3
INT_OC4
INT_EXT2
INT_RDA2
INT_TBE2
INT_DCI
INT_LOWVOLT
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
28
29
30
46
47
Download

universidade positivo núcleo de ciências exatas e tecnológicas