Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Banca Examinadora:
____________________________________________________
Professor Dr. Adriano Luís Toazza – UPF – Orientador
___________________________________________________
Professor Dr. Carlos Allan Caballero Petersen – UPF – Examinador
________________________________________________________
Professor Dr. Paulo Sérgio Corrêa Molina – UPF – Examinador
Dedico este espaço para demonstrar meu reconhecimento e gratidão às pessoas que me
ajudaram na realização deste projeto, de forma direta ou indireta, seja através de idéias e
soluções ou mesmo através de simples palavras de incentivo e confiança em minha pessoa.
Agradeço aos meus colegas de faculdade e de modo especial aos amigos Bruno,
Diego, Emanuel, Jeferson, José, Maicor, Marcelo, Vinícius e ao pessoal do núcleo de
manutenção eletrônica, SEPE Empresa Junior e do almoxarifado. Aos professores que me
orientaram e me impulsionaram para obter a formação acadêmica, em especial ao professor
Adriano Luís Toazza, meu orientador e ao professor Carlos Caballero, meu coorientador. Ao
meu colega Dante por ter ajudado na fusão das fibras ópticas e a Professora Marines, pela
ajuda na parte gramatical. Agradecimento especial ao Mestre Reginaldo da Silva,
primeiramente por ter sugerido a excelente idéia do projeto e também por ter dado todo o
apoio necessário e disponibilizado todos os componentes ópticos para o desenvolvimento do
mesmo. Por fim agradeço a minha família por sempre dar apoio aos meus estudos e objetivos.
Espero, em um futuro próximo, poder retribuir o apoio, empenho, dedicação, suporte e
confiança que depositaram em mim.
RESUMO
O uso das fibras ópticas em sistemas de comunicações trouxe muitas vantagens para
transmissão de dados, e consigo surgiu a necessidade de instrumentos de testes e medições
dos componentes ópticos. Um destes instrumentos é o analisador de espectro óptico – OSA
(Optical Spectrum Analyzer).
Este instrumento mede a potência óptica em determinados comprimentos de onda e
assim, é possível avaliar o comportamento de certos dispositivos ópticos. Para tanto, ele
separa o espectro de sinal recebido em pequenas janelas de medição, através de uma técnica
de multiplexação por divisão de comprimento de onda – WDM (Wavelength Division
Multiplexer).
Neste trabalho objetivou-se projetar e construir um analisador de espectro óptico
microcontrolado. Para isto, foi feito um estudo teórico sobre componentes ópticos bem como
a implementação de um hardware e um software. O hardware é composto por um laser de
sinal juntamente com um laser de bombeio, este usado para amplificar o sinal no EDFA
(Amplificador a Fibra Dopada com Érbio). Esta amplificação gera um ruído ASE que estará
presente na análise espectral do sinal emitido. O sistema também é composto por mais alguns
componentes ópticos passivos, como acoplador, isolador, filtro óptico e fotodetector. O envio
do sinal para o software é feito por um microcontrolador via conversor paralelo/USB.
Este software faz o controle dos dados recebidos para depois plotar um gráfico de
Potência (dBm) x Comprimento de onda (nm), possibilitando analisar o comportamento do
dispositivo óptico.
LISTA DE ABREVIATURAS
de onda);
µm – Micro-metro;
SUMÁRIO
...................................................................................................................................................14
INTRODUÇÃO
12
1. Fundamentação Teórica
Para o bom desenvolvimento deste projeto, uma análise teórica sobre comunicações,
fibras e componentes ópticos proporcionou maior ênfase na escolha das tecnologias usadas. O
Analisador de Espectro Óptico Microcontrolado, por analogia é chamado de OSA (Optical
Spectrum Analyzer, ou seja, Analisador de Espectro Óptico).
Sistemas de Comunicações
Fibras Ópticas
13
1.1). Para que ocorra o fenômeno citado é necessário que o índice de refração do núcleo seja
maior que o índice de refração da casca. [2]
Os modos de propagação são "caminhos" específicos por onde a luz pode viajar dentro
do núcleo da fibra. Matematicamente, um modo é uma das diversas soluções das equações de
Maxwell para a propagação da luz em meios dielétricos. Estes modos dependem da geometria
e do perfil de índice de refração da fibra e também do ângulo de incidência da luz.
De acordo com o número de modos, a fibra óptica pode ser classificada como
monomodo ou multimodo. A espécie multimodo divide-se em duas subespécies: índice
degrau ou abrupto, e índice gradual. Na fibra de índice degrau o índice de refração do núcleo
é uniforme e completamente diferente do da casca. Já na fibra de índice gradual o núcleo não
possui índice de refração constante, mas este diminui progressivamente do eixo central até as
bordas (variação parabólica). [6]
As informações transmitidas pela fibra óptica não sofrem interferências
eletromagnéticas, mas como estas são enviadas na forma de luz, elas sofrem atenuações e
dispersões ao longo da transmissão.
A Fibra Óptica vem a ser um meio físico de transmissão cada vez mais utilizado em
redes de telecomunicações que, quando conectada a equipamentos adequados, permite
trafegar voz, dados e imagens, a altas taxas, com velocidades muito próximas a velocidade da
luz. Assim sendo, o emprego de cabos de fibra óptica é cada vez mais frequente e vem
14
substituindo os chamados cabos metálicos, como os cabos de pares trançados e cabos de tubos
coaxiais. [3]
Para transmitir informação através de uma fibra óptica, a mesma deve ser convertida
num sinal óptico. Essa conversão pode ser feita através de um Laser ou um LED. Na prática, a
transmissão desta informação através de uma fibra óptica sofre uma atenuação que depende
do comprimento de onda do feixe de luz (Figura 1.2). As janelas de transmissão dizem
respeito às regiões de comprimento de onda aonde a atenuação óptica é baixa o suficiente para
uma transmissão com poucas perdas. [4]
Figura 1.2 - Curva relativa à atenuação por comprimento de onda em uma fibra óptica e as
janelas de transmissão. [4]
A Figura 1.2 mostra a atenuação pelo comprimento de onda de uma fibra óptica.
Também estão destacadas as janelas de transmissão, com suas baixas atenuações. São nestas
janelas que a luz infravermelha é mais utilizada. Os dispositivos ópticos, usados como fonte
de luz nos transmissores ópticos, conhecidos como Diodo Laser (LD) e Diodo Emissor de
Luz (LED), operam na faixa de infravermelhos do espectro eletromagnético (entre 750 nm e 1
mm) e, por isso, a sua luz de saída é invisível aos olhos humanos. [4]
15
Fontes Ópticas
As principais fontes de luz usadas para aplicações de comunicações por fibra óptica
são junções e heterojunções estruturadas como diodos lasers semicondutores, também
chamado de ILD (diodo laser de injeção) e LED’s (diodo emissor de luz). Uma heterojunção
consiste de dois materiais semicondutores adjacentes com diferentes energias de banda
proibida. Estes dispositivos estão disponíveis para sistemas de transmissão por fibras porque
possuem potência de saída adequada para uma ampla gama de aplicações. Sua potencia óptica
pode ser diretamente modulada por variação da corrente de entrada do dispositivo, que tem
uma eficiência elevada, e as suas características dimensionais são compatíveis com as da fibra
óptica. [1] [7]
As fontes mais comuns para os sistemas de comunicação por fibra óptica são os
LED’s, porque, alguns específicos, emitem luz invisível próxima do infravermelho. Seu
princípio de funcionamento baseia-se nos níveis de energia e é básico como um diodo. Estes
dispositivos são formados por uma junção semicondutora, dopadas com impurezas do tipo P e
do tipo N, polarizada diretamente. Uma pequena tensão que é aplicada entre seus terminais,
faz uma corrente fluir através da junção. Devido à estreita espessura da região de depleção
(junção), uma grande quantidade de elétrons consegue cruzar a faixa da junção, e pular para a
banda de condução. Os elétrons que pularam para a banda de condução podem acabar
retornando para a banda de valência, esse processo é chamado de recombinação, pois nele o
elétron se recombina com uma lacuna, liberando energia. Na recombinação os elétrons e
lacunas se aniquilam, liberando energia na forma de fótons. Sua emissão utiliza o processo de
fotogeração por recombinação espontânea. [7] [9] [12]
16
1.1.2.1.1. Emissão Espontânea
Figura 1.3 - Emissão espontânea. (a) Elétron passando para um nível superior de energia por
algum meio de excitação. (b) Recombinação do par elétron-lacuna, liberando energia e gerando
um fóton. [12]
O comprimento de onda emitido pelo LED depende dos níveis internos de energia do
semicondutor. Substâncias usadas como dopantes permitem que luz de diversos
comprimentos de onda seja emitida. Em aplicações para fibra óptica, seus comprimentos de
onda mais usados são de 820 e 850 nm (primeira janela de transmissão). Diodos emissores de
luz são usados em sistemas de comunicações que exijam taxas de transferência menores do
que 100 a 200 Mbits/s. [7]
17
1.1.2.2. Diodo Laser Semicondutor
18
Figura 1.4 - (a) Típica relação de potência óptica de saída pela corrente para um LED e um
Diodo Laser. (b) Comparação das características do espectro. [5]
Figura 1.5 - Esquema do diagrama de dois níveis de energia e emissão estimulada. (a) Elétron
em um nível superior de energia. (b) Recombinação do par elétron lacuna gerando, pela
estimulação do primeiro fóton, dois fótons com mesma fase. [12] [14]
19
Em termos de ondas eletromagnéticas, pode-se pensar que o pulso emitido está
exatamente em fase com a onda inicial. Isto faz com que ambos os pulsos se “unam”
formando um pulso mais longo, e reduzindo desta forma a largura espectral do pulso. [11]
Portanto, para um laser funcionar ele deve conseguir excitar um número mínimo de
átomos de determinado material para um nível de energia superior, de modo a se obter a
inversão de população (quando existem mais átomos excitados do que átomos no estado
fundamental). Quando isso ocorre, a emissão espontânea de fótons, que acontece
naturalmente a todo tempo, é amplificada pelos átomos vizinhos, que vão emitir fótons
estimulados pelos primeiros. Estes fótons, por sua vez, estimulam a emissão de outros, num
efeito cascata.
Para que tudo isso funcione, entretanto, é necessária uma realimentação, ou seja,
sempre manter fótons emitidos estimuladamente interagindo com os átomos. Isso é obtido
através de uma cavidade óptica, uma região do espaço em que se confina luz por algum tempo
com o uso de espelhos altamente refletores e convenientemente alinhados, para que haja uma
amplificação dessa emissão estimulada. [5]
A construção do primeiro laser só foi possível na década de 60, pois para que a
emissão estimulada fosse expressiva era necessário manter a condição de inversão de
população. Para resolver este problema a solução foi construir um sistema fechado, onde a
radiação emitida ficasse confinada, estimulando assim novas emissões de fótons. Isso foi feito
através de uma cavidade de espelhos seletivos, dentro da qual é colocado um meio ativo, que
é estimulado continuamente para manter a inversão de população. Estes espelhos refletem
somente o comprimento de onda desejado, desta maneira a cavidade acumula oscilações
ópticas no comprimento de onda requerido, então a cavidade deve favorecer a amplificação de
uma frequência e uma só fase. [5] [11]
Esta cavidade trata-se de um amplificador seletivo que resulte em amplificação de
ondas eletromagnéticas que formaram um modo de onda estacionária na cavidade. As
cavidades utilizadas no laser semicondutor são tipicamente cavidades de Fabry-Perot. Estas
são compostas por dois espelhos paralelos, de índices de reflexão diferentes. Um é totalmente
20
reflexivo, e o outro, em torno de 95%, ou seja, 5% são perdas que saem através do espelho na
forma de radiação laser. [14]
Pode-se observar na Figura 1.6 o esquemático básico de uma cavidade óptica com seus
respectivos espelhos, e alguns fótons sendo amplificados.
Na figura 1.7, é possível ver como é montada uma cavidade óptica do tipo Fabry-
Perot. As camadas de confinamento óptico são os semicondutores que formam uma junção. A
região ativa também esta representada dentro da cavidade óptica.
21
Estas características gerais deste tipo de laser fazem com que seja um dispositivo
extremamente pequeno para implementá-lo na tecnologia eletrônica. É de se referir com
algum destaque que a maioria dos dispositivos eletrônicos que utilizam luz, por exemplo, para
transmissão de informação, funcionam com base neste tipo de laser. [5]
Na figura 1.8 pode-se ver o princípio de construção de um módulo laser usado para
emissão de luz via fibra óptica.
Uma regulação do diodo laser sobre uma potência de radiação constante só pode ser
feita com segurança mediante a medição direta de uma parte proporcional da radiação emitida
pelo diodo. Para este fim, no módulo laser se aproveita a peculiaridade do diodo laser de
emitir partes de radiação, mutuamente proporcional, desde ambos os espelhos em direções
contrárias. Somente um espelho pode acoplar radiação à fibra óptica. O outro espelho serve
para a medição do nível de radiação, onde um diodo monitor recebe luz emitida, e a converte
em uma foto corrente proporcional a ela e pode cedê-la para um circuito regulador externo.
[14]
A temperatura de serviço constante necessária no módulo, para uma potência de
radiação constante, consegue-se por transferência térmica sobre um dissipador térmico
primário (dissipador de Peltier) e por meio de uma adequada transmissão térmica interna
22
sobre a parede modular externa, que constitui o dissipador térmico secundário (dissipador
externo na parede do laser).
Essa série de elementos é soldada entre duas placas cerâmicas, eletricamente em série,
e termicamente em paralelo. Quando uma corrente contínua passa por um ou mais elementos
23
de tipo N a tipo P, há uma redução na temperatura do “lado frio”, resultando em uma absorção
do calor do ambiente. Este calor é transferido pela pastilha por transporte de elétrons e
emitido no outro lado (“quente”). [15]
A variação de temperatura no Laser faz com que seu raio espectral sofra variações,
portanto, o controle de temperatura é bastante importante para manter o comprimento de onda
(λ) fixo.
Figura 1.10 - Esquema simplificado das cavidades de lasers (a) Fabry-Perot. (b) DFB sem facetas
refletoras. [16] [18]
24
1.1.2.4. Laser DBR
Diante deste estudo teórico sobre fontes de luz é possível fazer uma breve comparação
entre o LED e o Laser.
Existem muitas alternativas que podem ser usadas para a emissão de luz.
Inicialmente, a custo reduzido, considerou-se o uso de diodos emissores de luz (LED). Estes
têm algumas vantagens, como sua duração ser mais longa e não necessitar de controle de
temperatura. No entanto, o seu espectro de emissão espontânea amplificada (ASE) tem uma
largura de aproximadamente 100 nm, o que dificulta o funcionamento monomodal, sendo por
isso desaconselhado no contexto das comunicações ópticas.
25
O próximo passo na evolução da fonte luminosa foi o uso do Laser que, ao invés de
basearem o seu funcionamento em emissão espontânea usam a emissão estimulada. Na
emissão estimulada, os fótons já existentes definem qual será a frequência dos novos fótons
emitidos, tornando a fonte luminosa coerente. Entre os vários lasers de semicondutor usados
atualmente, um dos primeiros a ser utilizado foi o laser Fabry-Perot. Este laser representa um
grande avanço relativamente a um LED, mas ainda apresenta limitações, nomeadamente pelo
fato de permitir a coexistência de vários modos ressonantes na cavidade do laser, resultando
um espectro multimodal. [16]
Pelo desenvolvimento de novas tecnologias, surgiu o Laser de realimentação
distribuída (DFB) e o Laser DBR, que com estas tecnologias, após uma boa otimização da
estrutura, consegue-se um espectro bastante puro, no sentido em que é praticamente
monocromático. [18]
A largura de linha dos espectros eletromagnéticos emitidos pelas fontes de luz pode
ser entendida como a diferença entre as frequências das suas extremidades de potência quando
o mesmo cai pela metade. A Figura 1.11 faz uma simples comparação entre as larguras de
linha dos espectros das fontes de luz estudadas.
Figura 1.11 - Largura de linha dos Espectros. (a) LED. (b) Laser Fabry-Perot. (c) Laser DFB.
[18]
26
1.1.3. Receptores Ópticos
Na saída de uma linha de transmissão óptica deve haver um dispositivo receptor, que
interpreta a informação contida no sinal óptico. O primeiro elemento deste receptor é um
fotodetector.
1.1.3.1. Fotodetectores
27
1.1.3.1.1. Fotodiodos Semicondutores
28
Figura 1.12 - (a) Esquema estrutural de um fotodiodo PIN. (b) Representação de um fotodiodo
PIN com circuito externo. [1] [22]
Quando um fóton incidente tem uma energia igual ou superior à energia de banda
proibida do material semicondutor, o fóton pode liberar sua energia e excitar um elétron da
banda de valência para a banda de condução. Este processo gera pares elétron-lacuna livres
que são conhecidos como fotoportadores, pois eles são portadores de carga gerados por
fótons, como mostra na Figura 1.13.
29
Figura 1.13 - Diagrama simples das bandas de energia de um fotodiodo PIN. Fótons com uma
energia maior ou igual à banda proibida podem gerar pares elétron-lacuna livres que agem
como portadores de foto corrente. [1] [22]
(1.1)
30
1.1.3.1.1.2. Fotodiodo de Avalanche - APD
Os fotodiodos APD são fotodiodos que combinam a detecção de sinais óticos com
amplificação interna da fotocorrente. O ganho interno é dado através da multiplicação por
avalanche de portadores na região da junção. Isto faz com que ele tenha maior responsividade
do que os fotodiodos comuns.
Os fotodiodos de avalanche são construídos de forma a terem uma região com um
elevado campo elétrico que irá acelerar os fotoportadores até uma velocidade suficiente para
que as colisões entre os átomos produzam novos portadores (emissão secundária). Estas
partículas criadas por ionização são aceleradas pelo campo elétrico dando então continuidade
ao processo de avalanche. Assim, os APD multiplicam (amplificam) internamente a corrente
foto detectada. [23]
A construção de um APD difere da construção de um PIN devido à existência de um
nível adicional do tipo P, entre a região intrínseca e a região N, como nos mostra a Figura
1.14. Os pares elétrons-lacuna são gerados na região intrínseca, no entanto, a multiplicação
por avalanche ocorre na região tipo P adicionada.
Para que exista multiplicação por avalanche o diodo tem de ser submetido a grandes
campos elétricos, assim, os fotodiodos de avalanche utilizam tensões de polarização inversa
31
da ordem das dezenas às centenas de Volts. A maioria dos sistemas de transmissão à longa
distância e com elevada velocidade de transmissão utilizam APD na seção frontal do receptor.
Portanto, o fotodiodo APD é feito de forma que a junção fique localizada o mais
próximo possível da superfície e tenta-se aumentar a largura da região de depleção para
melhorar a coletagem de cargas fotogeradas. Os fotodiodos do tipo PIN aumentam a largura
da região de depleção melhorando a eficiência. Além disso, quando a tensão reversa é
suficientemente grande, há a emissão secundária de fotoelétrons produzindo um efeito de
avalanche. [11]
A emissão laser é um processo muito delicado e pode ser facilmente interferido. Sua
estabilização em frequência é bastante perturbada pela realimentação de luz devido a
reflexões parasitas nas superfícies dos elementos ópticos ou se houver qualquer luz refletida
dentro da fibra no sentido do laser. A desestabilização causa a flutuação da potência de saída
do laser. Além disso, como os sistemas de transmissão evoluíram para altas taxas de bits é
necessário um controle preciso dos comprimentos de onda dos transmissores. Para evitar este
tipo de problema é necessário integrar ao sistema um isolador óptico que permite a passagem
de luz em uma única direção, bloqueando a luz no sentido inverso. [24] [25]
Um isolador óptico é constituído de três partes: um polarizador de entrada, um rotor de
Faraday e um polarizador de saída. Estes polarizadores são uma junção de lentes e materiais
birrefringentes com uma defasagem nos eixos. O polarizador de entrada tem um eixo de
transmissão vertical e o polarizador de saída tem um eixo rotacionado 45° no sentido horário
da vertical. O rotor de Faraday gera um campo magnético paralelo a direção de propagação da
luz que pode ser fornecido por um simples imã. [25]
Se a luz viaja pelo sentido de passagem do isolador, o polarizador de entrada polariza
a luz verticalmente, ou seja, polariza o campo elétrico da luz no sentido vertical. Em seguida a
luz passa pelo rotor de Faraday, com seu campo de propagação longitudinal paralelo ao
campo magnético , então ocorre uma rotação na polarização da luz de 45° no sentido
horário. Assim, o polarizador de saída permitirá que a luz passe para frente, pois a luz está
com a mesma polarização (Figura 1.15). [27]
32
Figura 1.15 - Esquema de um isolador óptico baseado no efeito Faraday. Transmissão de luz no
sentido de passagem.
Quando a luz retorna na direção inversa do isolador, passa pelo polarizador de saída e
depois pelo rotor de Faraday. O campo longitudinal enxerga o campo magnético gerado
pelo rotor de Faraday invertido. Então a polarização da luz é rotacionada 45° no sentido anti-
horário, ficando em polarização horizontal. O polarizador de entrada irá eliminar o campo
elétrico, pois seu eixo de transmissão está alinhado verticalmente, isto fará o bloqueio da luz.
[26]
(1.2)
33
1.1.5. Acopladores Ópticos Direcionais
Além dos componentes ópticos básicos (laser, led, fibra e fotodetetor) já estudados,
outros dispositivos estão sendo incorporados a sistemas de comunicações ópticas. É o caso de
divisores, acopladores WDM, amplificadores de fibras dopadas com Érbio e filtros ópticos.
[32]
Os divisores e acopladores ópticos direcionais executam quase a mesma função, cada
um de acordo com a aplicação. O termo divisor (splitter) é usado quando se quer separar um
sinal óptico de entrada para duas ou mais fibras de saída. Na maioria dos casos, estes são
projetados para dividir potências iguais para duas fibras de saída (ou qualquer outro guia de
onda). O tap é o termo usado para divisores que direcionam a maior parte da potência do sinal
de entrada para uma das portas de saídas e somente uma pequena fração para a outra porta.
Estes são amplamente utilizados para explorar uma pequena amostra do sinal e controlar o seu
nível de energia e comprimento de onda. Todos estes dispositivos possuem quatro portas, mas
em muitas implementações a quarta porta é geralmente uma porta sem uso. [25]
O acoplador direcional é usado em aplicações onde não é necessário usar todas as
quatro portas. A estrutura deste dispositivo pode ser obtida por dois métodos. Um deles é
mostrado na Figura 1.16, onde a construção do acoplador é feita a partir da torção,
aquecimento (fusão) e puxamento (ajuste da força de acoplamento) de duas fibras monomodo
que são acopladas sobre uma seção de comprimento uniforme. [25] [34]
34
As entradas e saídas de luz da fibra possuem uma longa seção nas quais as fibras são
mais estreitas. Quando a luz passa através da região estreita em direção à região de
acoplamento, uma parte do campo elétrico da entrada 1 se propaga para fora da fibra 1 e é
acoplada na fibra 2. Uma porção irrelevante da potência óptica de entrada é refletida de volta
para entrada. A potência óptica acoplada de uma fibra para outra varia em função do
comprimento da região de acoplamento, do tamanho da redução do raio do núcleo da fibra na
região de acoplamento e da diferença entre os raios do núcleo das duas fibras na região de
acoplamento. [34]
O outro método envolve polimento da parte de fora do revestimento de duas fibras e,
em seguida o posicionamento das fibras em uma cavidade de tal forma que seus núcleos são
alinhados suficientemente perto para que a luz seja capaz de acoplar de uma fibra para outra
(Figura 1.17). O grau de interação entre as duas fibras varia em função do espaçamento e do
índice de refração entre elas. Por variação do espaçamento ou do alinhamento dos núcleos das
fibras pode-se ajustar a força de acoplamento e, portanto, a razão de separação. Há sempre
uma perda de potência óptica quando a luz passa por um acoplador.
Figura 1.17 - Ilustração de um acoplador óptico baseado numa cavidade alinhada. [34]
Portanto, os acopladores ópticos são dispositivos passivos que podem ser feitos com a
fusão de duas ou mais fibras que permitem o desvio de potência luminosa para uma
derivação. Os acopladores de fibra fundida exibem um efeito de dependência do comprimento
de onda, de forma que é possível fabricar multiplexadores e demultiplexadores controlando o
comprimento da fibra fundida. Esta técnica é usada na geração de sistemas WDM, onde o
35
interesse é simplesmente separar e juntar os sinais da primeira e segunda janela ou entre a
segunda e terceira janela de transmissão. [34]
Os WDM são acopladores ópticos com os quais se está usando as suas propriedades
espectrais, segundo as quais a razão de acoplamento depende do comprimento de onda. Como
se pode ver na Figura 1.18, a potência correspondente a um modo de comprimento de onda
igual a 980 nm está entrando em uma das portas e na outra porta está entrando um
comprimento de onda de 1550 nm. [32]
36
O fenômeno do acoplamento WDM depende da relação entre o comprimento do
segmento de fibra fundida e o comprimento de onda, de forma que o projeto deste consiste em
encontrar, para um par de comprimentos de onda (no caso 980 nm e 1550 nm), a distância
crítica que forneça o melhor filtro ou acoplamento possível para aquele par de comprimentos
de onda. [34]
37
O Amplificador a Fibra Dopada com Érbio (EDFA) se firmou como um dispositivo
utilizado na amplificação de uma portadora óptica se propagando ao longo de um sistema de
comunicação de longa distância e de alta taxa de informação. Como é responsável pela
regeneração dos sinais de informação, opera compensando efeitos de atenuação a partir de
mecanismos totalmente ópticos e seu funcionamento baseia-se na emissão estimulada, que
ocorre devido à presença do érbio em sua forma iônica (Er+3) na fibra óptica que compõe o
amplificador. [30]
Para o funcionamento do EDFA são importantes: o laser de bombeamento, um
acoplador WDM e a fibra dopada com érbio (FDE) com o comprimento ótimo disponível. O
laser de bombeamento fornece a energia necessária para a FDE amplificar o sinal de entrada.
O acoplador WDM tem como função acoplar a potência de bombeamento e a de sinal à FDE.
O érbio presente na fibra é o meio de ganho quando excitado pelos fótons de bombeamento. A
emissão (estimulada) característica do érbio é responsável pela recuperação da intensidade do
sinal de informação.
As características de funcionamento de um EDFA são interdependentes. Idealmente, o
amplificador deve garantir o maior ganho possível, para uma dada potência de bombeamento
disponível, além de produzir a maior potência de saturação de saída, gerando o menor ruído
possível. As combinações dessas características fornecem o desempenho do dispositivo. No
processo de amplificação na FDE, os fótons do bombeamento fornecem a energia absorvida
pelos íons de Érbio, resultando em fótons emitidos na faixa de 1550 nm, de forma coerente
com o sinal. No entanto, nem todos os fótons emitidos a partir do processo de amplificação
pelo Érbio se somarão ao sinal, uma parcela deles contribuirá para a ASE (emissão
espontânea amplificada), a principal fonte de ruído no amplificador. [30]
38
Figura 1.19 – Característica espectral do ganho de um EDFA. [54]
Existem três tipos de configurações básicas para bombeio em sistemas com EDFA.
Cada uma das configurações está diretamente relacionada ao posicionamento do bombeio na
fibra e a relação entre o sentido de propagação do bombeio e do sinal.
39
Figura 1.20 - EDFA com configuração de bombeio co-propagante. [53]
A maior vantagem desta configuração é que boa parte do ruído ASE é gerada logo no
início da fibra e, dessa forma, esse ruído se propagará ao longo da fibra até a saída,
juntamente com o sinal sofrendo atenuação e chegando ao receptor com valores de potência
bem reduzidos, garantindo assim um valor melhor para a OSNR (Optical Signal Noise
Relation). [52] [53]
40
A maior vantagem desta configuração vem do fato de que nela o sinal não apresenta,
em nenhum momento, valores muito elevados, já que na amplificação o sinal já está bastante
atenuado, evitando assim efeitos não lineares indesejados. Contudo, maior potência de
bombeio na saída da fibra também implica em ter maior ruído ASE gerado próximo do
receptor, o que faz com que os valores de OSNR sejam normalmente mais baixos. [52] [53]
Por apresentar lasers de bombeio tanto no início quanto no final da fibra, esta
configuração apresenta um bom OSNR, como o da configuração co-propagante e uma baixa
suscetibilidade a efeitos não-lineares devido à configuração contra-propagante. Tal
compromisso é realizável através de escolhas da relação de potência do bombeio no início e
no final da fibra. A desvantagem é a de que é necessário o dobro de lasers, sendo assim,
economicamente menos viável. [52] [53]
41
1.1.7. Filtros Ópticos
43
elevada. Como normalmente essas espessuras são comparáveis ao comprimento de onda da
luz, estes também podem ser chamados de filtros de filmes finos [35] [36].
Os sistemas de múltiplas camadas são projetados para obter máxima transmitância na
faixa de passagem e máxima refletância nas demais faixas do espectro, para tanto um
monitoramento preciso da espessura óptica do filme é realizado durante o processo de
deposição das camadas. [37]
Embora um filtro de filmes finos possa ser idealizado de forma que cada uma de suas
camadas seja constituída por materiais arbitrários, por razões práticas, é frequentemente
desejável que sejam constituídos por apenas dois tipos de materiais de índices de refração
diferentes e alternados. A escolha cuidadosa desses materiais, da quantidade de camadas e da
espessura de cada uma delas, determina o comportamento do filtro em função da frequência,
do ângulo de incidência e do tipo de polarização da luz. [38]
Para os filtros ajustáveis por posição, a espessura do filme é continuamente variada
através da abertura do filtro. Isto é obtido pela deposição dos filmes em um substrato rotativo
(disco) com as fontes de evaporação apropriadamente dispostas relativas ao eixo de rotação.
Em um material dielétrico o índice de refração é função do comprimento de onda,
portanto, esse filtro possui internamente um disco que tem índice de refração diferente em
cada ponto (variação angular). Ao posicionar esse filtro entre duas extremidades de fibras ele
deixará, ou não, a luz passar de uma fibra para outra. Se estiver posicionado em um ponto
onde ele é “transparente” para tal comprimento de onda, ele o deixará passar, se porventura
estiver posicionado em um ponto cujo índice de refração não está coerentemente alinhado, ele
desviará a luz para um ponto fora da fibra, ou até mesmo bloqueará a passagem desse
comprimento de onda específico.
Portanto, filtros ópticos de múltiplas camadas interferentes funcionam com base em
um prisma ou disco, de índice de refração variável.
44
2. Sistema Desenvolvido
45
Figura 2.1 - Diagrama de blocos do sistema.
Sistemas CWDM são sistemas WDM espaçados. A banda de operação para estes
sistemas está entre 1270 e 1610 nm, com espaçamento entre canais de 20 nm. O amplo
espaçamento entre canais permite redução nos custos através do uso de dispositivos com
maiores tolerâncias. É o caso dos lasers DFB não refrigerados (sem dissipador de Peltier), que
operam com modulação direta e potência típica entre 0 a 3 dBm. Além disso, apresentam
46
deslocamento térmico de aproximadamente 90 pm/°C, resultando em uma variação de mais
ou menos 3 nm em relação ao comprimento de onda central. [43]
O laser de sinal utilizado é um módulo laser DFB coaxial projetado para transmissões
digitais de até 2,5 Gbps. O módulo tem uma estrutura coaxial com uma fibra monomodo em
um pigtail (Figura 2.2), e contém um diodo laser DFB, um fotodiodo monitor de potência e
um isolador óptico interno.
47
2.1.2.1. Controle de Corrente
O controle de corrente dos lasers foi feito por uma simples fonte de corrente
controlada por tensão, por isso não foi utilizado o fotodiodo monitor. Isto torna o controle da
alimentação mais simples, já que o objetivo do projeto é a análise espectral dos componentes
ópticos.
A Figura 2.3 ilustra o circuito de controle da corrente do laser de sinal. Para a entrada
positiva do ampop comparador é feito um divisor de tensão. Como em um ampop ideal, as
duas entradas tendem a terem tensões iguais, a entrada inversora ficará com a mesma tensão
do dividor. Esta tensão na entrada inversora estará sobre os resistores R2 e R3, então, a
corrente que circula no laser de sinal é encontrada pela divisão desta tensão pelos resistores
R2 mais R3.
Inicialmente o relê RL2 estará aberto (laser de sinal desligado), quando o pino
RELE_LASER_SINAL do microcontrolador for setado, o relê será fechado e irá circular
corrente pelo laser.
48
2.1.2. Laser de Bombeio
O laser de bombeio é de extrema importância para o sistema, pois é ele quem faz o
bombeio para o sinal ser amplificado no EDFA. De acordo com a fundamentação teórica do
EDFA, este laser faz um bombeio em um comprimento de onda e o EDFA emitirá radiação
em outro.
O laser utilizado (EM4 P219-400-976A [46]) é um módulo de bombeio que possui um
laser de fibra do tipo DBR, um cooler termoelétrico integrado (dissipador de Peltier),
termistor e fotodiodo monitor. Sua potência de saída óptica é de 400 mW (26 dBm) e seu
comprimento de onda de bombeio é de 980 nm. Sua corrente de limiar Ith está em torno de 55
mA. Ao contrário do laser de sinal, o laser de bombeio necessita de uma corrente de
alimentação alta, próxima de 750 mA. [46]
O módulo utiliza suas grades de Bragg de estabilização para "travar" o comprimento
de onda de emissão. Ele fornece um espectro de banda estreita, sem ruído, mesmo sob
mudanças de temperatura e realimentação óptica. Na Figura 2.4a pode ser visualizada a
estrutura deste laser, na Figura 2.4b estão nomeadas algumas entradas e saídas dos
componentes internos. O dissipador termoelétrico é controlado por um circuito externo.
Figura 2.4 - Módulo Laser de Bombeio utilizado no sistema. (a) Encapsulamento. (b) Estrutura
interna. [46]
49
2.1.2.1. Controle de Corrente
Inicialmente o relê RL1 estará aberto (laser de bombeio desligado), quando o pino
RELE_LASER_BOMBEIO do microcontrolador for setado, o relê será fechado e irá circular
corrente pelo laser.
50
Quando o módulo começa a gerar a emissão laser, ele tende a esquentar, por isso o
dissipador termoelétrico necessita de uma alta corrente para “esfriá-lo”. Na Figura 2.6 pode
ser visualizado o circuito de controle de temperatura.
Amplificador
Proporcional Integral
Buffer
Amplificador
Diferencial
51
point mais os desvios de temperatura, se houverem, com a tensão dada pela corrente que
circula no Peltier.
Quando o laser está em temperatura normal (próximo aos 25°C), o amplificador
proporcional integral não tem sua saída alterada, pois sua entrada inversora está com variação
de tensão muito baixa, então o amplificador diferencial satura negativamente. Como a
alimentação é de 0 V a VCC, a sua saída satura em baixa tensão, aproximadamente 1,5 V
devido a sua queda interna de tensão, fazendo com que o transistor forneça pouca corrente
para o Peltier. Quando o laser tem um aumento de temperatura, a entrada inversora do
amplificador proporcional integral tem uma considerável variação. Desta maneira a tensão na
entrada não inversora do amplificador diferencial fica maior que a inversora, saturando-se
positivamente (VCC) e fazendo com que o transistor (TIP122) forneça uma alta corrente para
o Peltier. Este transistor puxará corrente para a entrada positiva do dissipador, fazendo com
que haja uma diminuição da temperatura do lado frio do dissipador, resultando em uma
absorção do calor emitido pelo laser. Este calor será transferido para o lado quente do Peltier e
o dissipador secundário (externo) se encarregará de dissipar esta energia térmica.
Também é importante destacar que este circuito também funciona como uma fonte de
corrente controlada por tensão, onde a corrente máxima é dada por:
(2.1)
2.1.3. Acoplador
52
2.1.4. EDFA
O amplificador a fibra dopada com érbio (EDFA) faz a amplificação do sinal em 1550
nm pelo bombeio do laser de 980 nm.
2.1.5. Isolador
53
Figura 2.7 - Acoplamento do motor de passo ao filtro óptico sintonizável.
54
Figura 2.8 - Acoplamento do motor de passo ao filtro óptico sintonizável. [51]
2.1.8. Fotodetector
55
Figura 2.9 - Curvas de resposta do fotofiodo PIN InGaAs. (a) Responsividade por comprimento
de onda. (b) Corrente fotodetectada por potência óptica de entrada. [49]
Pode ser visualizada na Figura 2.9a, que na faixa em que o laser de sinal é analisado
(1530 a 1561 nm), o fotodiodo apresenta uma boa responsividade. Para seu funcionamento
este fotodetector necessita de um condicionamento de sinal, como pode ser percebido na
Figura 2.10.
56
desejada. O sinal condicionado é enviado para o microcontrolador fazer uma conversão A/D,
para então enviar os dados ao PC.
A equação da conversão é dada por:
(2.2)
57
Com auxílio do software Origin Pro 8, foi plotada a curva acima. Os pontos em azul
representam a relação entre potência e tensão da resposta do fotodetector. Através de testes no
próprio programa foi encontrada a equação de tendência (2.3) que gera a melhor aproximação
da curva de resposta do fotodetector (em vermelho).
(2.3)
(2.4)
(2.5)
2.1.9. Microcontrolador
58
Na Figura 2.12 é mostrado o diagrama de pinos do microcontrolador, bem como a
função de cada um.
59
Duas opções de conversores da FTDI (Future Technology Device Intl.) foram
consideradas: o módulo conversor FT232 e o FT245. A principal diferença entre os módulos é
o fato do módulo FT232 receber os dados via comunicação serial (USART) e o outro módulo,
por sua vez, recebe os dados por um barramento paralelo de 8 bits. Ambos possuem os
mesmos drivers de instalação, mas como o FT245 possui envio de dados paralelos sua
velocidade de transmissão é superior. [12] [48]
Para este projeto foi utilizado o conversor paralelo/USB FT245BL. Este conversor
implementa um buffer FIFO (First In, First Out, primeiro a entrar, primeiro a sair) de leitura e
escrita através de uma porta bidirecional de 8 bits. A escolha deste dispositivo não requer a
utilização de memórias para armazenamento dos dados a serem enviados para o PC, uma vez
que este CI possui um buffer FIFO de transmissão de 384 bytes e um buffer FIFO de recepção
de 128 bytes. [50]
No datasheet [50] disponibilizado pelo fabricante há algumas configurações de
alimentação para este conversor. A que melhor se encaixa neste projeto é a configuração de
alimentação externa, pois já existe a necessidade de uma fonte de alimentação dos lasers e
controle de temperatura. Na Figura 2.13, é mostrado um esquema elétrico desta configuração.
60
O controle da leitura e escrita no FT245BL é feita pelo pinos WR e RD com seus
respectivos flags TXE e RXF. O ciclo de leitura é realizado quando dados são enviados do
microcomputador. A recepção destes dados só pode ser feita quando o bit de controle RXF=0,
o que indica que o buffer de recepção tem dados para serem lidos no FIFO de recepção. Para
leitura deste dado é necessário um pulso de descida (nível lógico alto para nível lógico baixo)
no bit de controle RD, ficando os 8 bits de dados disponíveis no barramento em D0...D7. [50]
O ciclo de escrita é realizado quando se quer enviar dados ao microcomputador. O
envio dos dados só pode ser feito se o bit de controle TXE=0, o que indica que o buffer de
transmissão não está cheio. Para os dados serem enviados, após colocá-los no barramento
D0...D7, basta um pulso de subida (nível lógico baixo para nível lógico alto) no bit de
controle WR, fazendo com que este dado fique guardado no buffer de transmissão do
FT245BL. [50]
61
3. Programação do Firmware e do Software
62
Figura 3.1 - Diagrama de blocos do firmware.
63
• Início: este bloco é constituído de todas as declarações de bibliotecas, variáveis e
prototipagem de funções;
• Análise de 1550 a 1530 nm: transmitido o primeiro dado, o programa entra num laço
que impõe vinte vezes uma sequência de ajustes e transmissões. O ajuste é feito
chamando a função de ajuste do motor de passo no sentido horário. Esta função irá
girar uma quantidade de passos fazendo com que a janela passante do filtro óptico seja
deslocada. Os passos do motor seguem a sequência de um vetor, cada posição deste
vetor aloca um acionamento diferente das bobinas fazendo com que o motor tenha um
acionamento de meio passo. Após o ajuste do motor, o programa aguarda uma nova
interrupção externa, esta indica que o software está pronto para receber os dados.
Terminando a sequência é feita a conversão A/D e o envio dos dados para o software;
• Centraliza Análise: após o termino da análise para um dos lados da frequência central
do filtro, é chamada a função que centraliza o motor no sentido antihorário.
64
• Análise de 1550 a 1561 nm: novamente o programa entra num laço para fazer a análise
do outro lado da banda do filtro óptico. Esta etapa chama a função de ajuste do motor
no sentido antihorário e também a função da conversão A/D e de transmissão dos
dados.
• Centraliza Análise: feita a análise, os lasers são desligados e a função que centraliza o
motor no sentido horário é chamada.
65
Figura 3.2 – Layout do aplicativo “OSAu.exe”.
66
FT_Purge( ): Função que limpa os buffers de recepção e transmissão do
conversor.
• Nova Análise: botão que limpa a tela do gráfico para uma nova análise;
• Arquivo: nesta opção do menu está disponibilizado a opção Sair, a qual fecha o
software e tem como atalho a tecla Esc;
• Instruções do Software: nesta opção do menu é citada uma lista de passos para a
correta inicialização do aplicativo;
• Sobre: nesta opção do menu é mostrada uma janela com algumas informações do
aplicativo e do projetista;
67
Para o correto funcionamento do aplicativo devem ser seguidos alguns passos de
inicialização. A sequência destes passos é de extrema importância para não ocorrerem erros
na comunicação com o hardware.
3. Para uma análise com EDFA, o usuário deve selecionar a opção “Laser de
Bombeio”. Após a seleção dos componentes, deve-se clicar no botão “Iniciar
Análise” para o software começar a enviar sinais para que microcontrolador faça
os ajustes e conversões necessárias.
5. Para uma nova análise basta clicar no botão “Nova Análise” que o aplicativo irá
limpar a tela do gráfico e iniciar a nova análise.
Observações:
68
Após a instalação do driver D2XX e programado a primeira função desta interface, foi
encontrado um problema de extensão de arquivo. Para corrigir este problema foram realizados
alguns procedimentos descritos nos itens abaixo:
Após estes passos, deve-se copiar os arquivos modificados para a pasta dos drivers. O
problema estará resolvido e o software não dará mais erro da biblioteca “ftd2xx.lib”. No
ANEXO H pode ser encontrada uma explicação das principais funções usadas nesta
biblioteca.
4. Resultados Experimentais
69
O desenvolvimento deste projeto abrangeu um estudo teórico dos componentes ópticos
utilizados no sistema. Também foram feitos alguns testes experimentais com o laser de sinal.
Para serem feitos esses testes, houve a necessidade de diversas fusões de fibras entre os
conectores e lasers.
A fusão de fibras ópticas é o processo de emendar uma fibra na outra. Este processo
depende de uma máquina especial que contém uma precisão muito grande para emendar as
fibras com o mínimo de perdas possível. Por esta máquina ter rigorosas especificações, tem
um custo bastante elevado.
O processo de emenda consiste primeiramente na decapagem da casca da fibra, após
isto, é feita uma limpeza com álcool isopropílico e depois um corte da fibra. Este corte
chama-se clivagem. O clivador possui uma lâmina de diamante que marca o corte da fibra,
para então uma pequena guilhotina cortar a face da fibra em 90 º. Na Figura 4.1 é mostrado o
momento da clivagem da fibra com o alicate de decapagem e o clivador.
70
Após a clivagem das fibras ópticas, as mesmas são colocadas na máquina de fusão
para as lentes internas fazerem o ajuste e alinhamento das duas fibras. Quando estas estão
corretamente alinhadas, a máquina libera um arco voltaico de centenas de volts, fazendo com
que a fibra se derreta e emende. Depois de feita a fusão, deve ser colocado um tubo de
silicone na emenda, este usado para evitar dobras ou tensionamento das fibras. Na Figura 4.2
pode ser visto uma imagem da máquina de fusão e do alinhamento das fibras.
71
4.3. Teste do Laser de Sinal
Os testes do laser foram feitos através de alimentação por uma fonte de bancada, pois
a fonte chaveada de computador ainda não está devidamente ajustada para as tensões e
correntes necessárias.
Na Figura 4.3, é mostrada uma curva de potência óptica emitida por corrente de
alimentação do laser de sinal. Esta curva foi levantada a partir de medições com o Power
Meter e multitestes e recursos de um software de plotagem (Origin Pro 8).
Figura 4.3 - Curva de Potência Óptica emitida por corrente de alimentação do laser de sinal.
Como pode ser visto, até certa quantidade de corrente o laser funciona como um LED,
tendo emissões incoerentes. Quando a corrente ultrapassa seu limiar (Ith destacada), o efeito
laser é iniciado e a potência óptica é estabilizada. Para o típico funcionamento do laser a
corrente de entrada é fixa em torno de 50 mA.
72
4.4. Testes com o motor e o filtro óptico
A janela passante do filtro é em torno 0,5 nm, porém a falta do datasheet do filtro
óptico sintonizável trouxe a necessidade de um método para encontrar a quantidade de passos
que o motor deve andar para variar esta janela.
O filtro óptico tem uma faixa de operação de 31 nm e sua janela passante é de 0,5 nm,
então, quanto maior o número de amostras da potência detectada pelo fotodiodo e enviadas ao
PC melhor será a resolução do gráfico.
4.5. Análises
73
Após o término de toda a programação de firmware e software foram iniciados os
procedimentos de análises.
A quantidade de amostras das análises ficou limitada em 32 amostras pelo motivo de
que na programação do “PlotLab”, o aplicativo que plota o gráfico espectral, usou-se a
diretiva “SLScope1-> Channels-> Channels[0]-> Data-> SetXYData(posx,G_Buffer,32);” e
esta última função chamada “SetXYData( )” tem como argumentos dois vetores (buffers) e
um inteiro. O primeiro vetor indica as posições de “X”, o segundo vetor indica as posições de
“Y” e o inteiro indica a quantidade de pontos que serão plotados. Embora esta função aceite
estes vetores do tipo float, apenas o eixo “Y” aceitou valores reais (float), para os valores de
“X” houve a necessidade de plotar valores inteiros, do contrário, os valores reais são
deslocados para o inteiro mais próximo. Este problema pode ser da própria função ou de
alguma configuração não encontrada nos itens do Builder C++. Então, as análises ficaram
limitadas ao número de posições inteiras que eram desejadas na visualização gráfica. Como o
filtro óptico sintonizável tem uma banda passante entre 1530 a 1561 nm, a quantidade de
amostras possíveis ficou dentro desta faixa, ou seja, 32 amostras.
Os itens abaixo demonstram algumas análises, comentários e justificativas das
mesmas.
A primeira análise observada é sem o EDFA, então o gráfico espectral será gerado
apenas pela emissão do laser de sinal. Para esta análise, no aplicativo não deve ser
selecionado o componente “Laser de Bombeio”, assim apenas o relê do laser de sinal será
acionado. Na Figura 4.4 pode ser visualizada a figura salva pelo aplicativo “OSAu.”.
74
Figura 4.4 – Resultado da análise espectral óptica do laser de sinal sem EDFA.
Nesta análise pode ser observado o pico de potência em 1550 nm, como de acordo
com o comprimento de onda do laser de sinal. Este pico está em torno de 4,1 dBm, que
corresponde à potência de 2 a 3 mW deste laser. O espalhamento espectral representa o ruído
ASE gerado pela emissão laser.
A segunda análise observada é com o EDFA, então o gráfico espectral gerado terá
potência mais elevada pelo ganho dado com o EDFA. Para esta análise, no aplicativo deve ser
selecionado o componente “Laser de Bombeio”, assim são acionados os relês do laser de sinal
75
e do laser de bombeio. Na Figura 4.5 pode ser visualizada a figura salva pelo aplicativo
“OSAu.”.
Figura 4.5 – Resultado da análise espectral óptica do laser de sinal com EDFA.
Nesta análise pode ser observado o pico de potência em 1550 nm, como de acordo
com o comprimento de onda do laser de sinal. Este pico está em torno de 10 dBm, que
corresponde à potência de 10 mW do sinal do laser amplificado. O espalhamento espectral
representa o ruído ASE gerado pela emissão laser.
A resolução do gráfico também ficou limitada pela largura de banda do filtro, portanto
com um filtro mais fino, melhor seria a resolução.
76
4.6. Placa de circuito impresso
Para o suporte das placas de circuito impresso, fibras ópticas e dissipadores foi
desenvolvido uma caixa de acrílico desenhada em AutoCad e cortada na fresa do núcleo de
manutenção eletrônica. Os arquivos .dxf e .dwg do projeto estão contidos no CD deste
trabalho. Os acabamentos da caixa foram feitos com uma retífica DREMEL e a fixação dos
cantos e arestas com clorofórmio, este que tem como função fazer a fusão do acrílico.
A caixa deve ser aberta somente com o cabo de energia desligado para evitar riscos de
choque elétrico.
77
CONSIDERAÇÕES FINAIS
Após a realização do estudo teórico, notaram-se as grandes vantagens que o uso das
fibras e de componentes ópticos agrega aos sistemas de comunicações. Dentre elas as
elevadas taxas de transmissão, podendo chegar à casa de THz, bem como a menor taxa de
erro transmitido, já que as fibras ópticas têm baixíssimas perdas e são imunes aos ruídos e
interferências eletromagnéticas, evitando assim as falhas.
Com sistemas WDM, é possível aumentar a capacidade de transmissão das fibras sem
a necessidade de substituí-las, pois as informações transmitidas são multiplexadas, ou seja,
são transmitidas uma por vez na mesma fibra.
Em paralelo ao estudo teórico, foram desenvolvidos os projetos dos circuitos de
controle dos lasers e montagens em protoboard. Alguns ajustes foram necessários para fixar a
corrente e a tensão nos valores adequados. Após o correto funcionamento em protoboard foi
iniciado o desenvolvimento da placa de circuito impresso. Também foram necessárias
diversas fusões das fibras, como a conectorização do laser de bombeio, do acoplador, EDFA e
isolador.
Em conjunto com o hardware foram iniciadas as programações de firmware e
software. Estas apresentaram algumas dificuldades na transmissão de dados, devido ao não
aterramento da carcaça do conector USB no hardware, gerando assim ruídos e erros de
transmissão em algumas análises, porém, aterrando esta carcaça eliminou-se este problema.
Estas programações foram devidamente “casadas”, pois, tanto o hardware como o
software envia e recebe dados, sendo que no hardware os dados recebidos geram uma
interrupção externa fazendo com que ocorra o processo de variação no comprimento de onda
filtrado e o software, após o envio de confirmação de dados recebidos e alocados num vetor,
fica obtendo o estado atual de número de bytes a serem recebidos. Quando houver algum byte
para ser lido, é chamada a função de leitura do conversor paralelo/USB.
As dificuldades encontradas foram os testes realizados com o filtro óptico, pois a falta
do datasheet trouxe a necessidade de um método para encontrar a quantidade de passos que o
motor deve andar para variar a janela passante. Esta quantidade foi definida fazendo um ajuste
da curva depois de feita a análise espectral.
78
Como o eixo mecânico é de pequeno tamanho foi necessário um desenho do mesmo
no software AutoCad. Este eixo foi desenvolvido em um torno mecânico.
Também verificou-se que os componentes ópticos testados estão todos funcionando.
Porém, o laser de bombeio tem sua potência emitida um pouco abaixo do esperado, mas isto é
justificado pelo fato do Power Meter estar descalibrado e pelas perdas nos conectores e
emendas das fibras.
Chegando ao término deste trabalho pode-se dizer que os resultados foram
satisfatórios, pois os objetivos propostos, como o controle da emissão do sinal óptico, o
condicionamento do sinal elétrico devidamente enviado ao PC pelo conversor paralelo/USB e
o desenvolvimento de um software de análise espectral, foram alcançados. Alguns ajustes
ainda poderão ser feitos, como encontrar uma maneira de fazer uma análise espectral com
mais precisão, ou seja, uma maior quantidade de amostras e pontos no gráfico espectral
gerado pela função SetXYData( ). Esta que não aceitou números reais para o eixo “X”.
Também pode-se dizer que o estudo teórico agregou e reforçou alguns conhecimentos
em óptica e fotônica vistos ao longo do curso, abrindo assim um ramo de possíveis projetos
nestas áreas.
Como sugestão para trabalhos futuros fica a idéia de fazer um OSA microcontrolado
com canais de entrada para que sejam analisados outros lasers de sinal. Neste trabalho poderia
ser implementado um hardware de tamanho mais reduzido utilizando componentes SMD e
projetando-se uma fonte chaveada apenas com as tensões necessárias para reduzir
significativamente seu tamanho. No estágio do motor de passo seria útil um encoder para
saber a posição do eixo, independente de eventuais deslocamentos mecânicos do usuário.
79
REFERÊNCIAS BIBLIOGRÁFICAS
[2] RIBEIRO, Daniella M.; ARAÚJO, Marlúcia V. DE. WDM, Multiplexação por divisão de
comprimento de onda. Disponível em: <http://www.eee.ufg.br/cepf/pff/2002/ee_24.pdf>.
Acesso em: 12 Ago. 2010.
[3] Tutoriais Redes Ópticas. Fibra Óptica I: Fibra Óptica e Luz. Disponível em:
<http://www.teleco.com.br/tutoriais/tutorialfoI/pagina_2.asp>. Acesso em 12 Ago. 2010.
[5] GRILO, Murilo Parodi Ricci.; FREIRE, Renan. Eletrônica e Instrumentação, Laser
Semicondutor. Disponível em:
<http://www.demar.eel.usp.br/eletronica/2010/Laser_semicondutor.pdf>.
Acessado em: 12 Ago. 2010.
[6] Fibras Ópticas e WDM. Fibras Ópticas - Conceitos e composição. Disponível em:
<http://www.gta.ufrj.br/grad/08_1/wdm1/Fibraspticas-ConceitoseComposio.html>. Acessado
em: 12 Ago. 2010.
[7] CAMPOS, André Luiz Gonçalves. Fibras Ópticas, Uma realidade reconhecida e
aprovada. Disponível em: < http://www.rnp.br/newsgen/0203/fibras_opticas.html#ng-8>.
Acessado em: 12 Ago. 2010.
80
[9] Fibra Óptica, Síntese. Disponível em: <http://www.portalsaofrancisco.com.br/alfa/fibra-
optica/fibra-optica-sintese.php>. Acessado em: 12 Ago. 2010.
[10] MALVINO, Albert Paul. Eletrônica. Volume I. Editora MAKRON Books Ltda. 4ª
Edição, 1994.
[14] WIRTH, Almir L. Jr. Fibras Ópticas, Curso Básico de Comunicação. Hemus editora
limitada. 1994.
[16] AGRAWAL, Govind P.; DUTTA, Niloy K.. Semiconductor Lasers. Second Edition,
Editora Van Nostrand Reinhold, New York, 1993.
81
[18] BOAVIDA, José Maria B. de Miranda. Modelação e Caracterização de um Diodo laser
de Retroação Distribuída (DFB). Disponível em:
<https://dspace.ist.utl.pt/bitstream/2295/374790/1/Tese.pdf>. Acessado em: 17 Ago. 2010.
[22] PINTO, Filipe Correia; RIBEIRO, Henrique Varella. Fotodetectores. Disponível em:
<http://www.demar.eel.usp.br/eletronica/2009/Fotodetetores.pdf >. Acessado em: 18 Ago.
2010.
82
[27] Encyclopedia of Laser Physics and Technology. Disponível em: <http://www.rp-
photonics.com/phase_velocity.html>. Acessado em: 20 Ago. 2010.
[30] WOELLNER, Eudes F.; VENDRAMIN, Márcio; CHITZ, Edson; PONTES, Maria J.;
KALINOWSKI, Hypolito J., Protótipo de EDFA com Alto Ganho explorando a Supressão de
ASE.Disponível em: <http://www.cpgei.cefetpr.br/~hypolito/artigos/SBMO2000.pdf>.
Acessado em: 23 Ago. 2010.
83
[37] LAUDE, J.P. Wavelength Division Multiplexing. Pretince Hall, New Jersey, 1993.
[38] BORGES, Gilvan S., Análise e Projeto de Filtros Ópticos, UFPA, Disponível em:
<http://www.lea.ufpa.br/producaocientifica/TCC/TCC_Gilvan.pdf>. Acessado em: 26 Ago.
2010.
[40] E. J. Friebele, Fiber Bragg Grating Strain Sensors: Present and Future Applications in
Smart Structures, Optics and Photonics News, Vol. 9, pp. 33-37, 1998.
[42] KAKIMOTO, Luis C., Análise e Simulação de Filtros Ópticos para uso em Sistemas de
Comunicações Ópticas. Disponível em: <http://cutter.unicamp.br/document/?
code=vtls000115843>. Acessado em: 26 Ago. 2010.
[44] Encyclopedia of Laser Physics and Technology, Distributed Bragg Reflector Lasers,
Disponível em: <http://www.rp-photonics.com/distributed_bragg_reflector_lasers.html>.
Acessado em: 31 Ago. 2010.
84
[46] EM4 Inc., Laser P219-400-976A datasheet. Disponível em:
<http://www.em4inc.com/products/DS%207017%20%20SM161.pdf>.
[48] BALOTIN, Amauri F., Monitor de Frequência Cardíaca sem Fio. Universidade de Passo
Fundo, 2010.
[53] Tutoriais Redes Ópticas. Amplificadores Raman: tipo de LRA. Disponível em:
<http://www.teleco.com.br/tutoriais/tutorialraman/pagina_4.asp/>.
85
ANEXO A – DESENHO DO EIXO MECÂNICO EM AUTOCAD
86
ANEXO B – FIRMWARE PARA CONTROLE MANUAL DO MOTOR
DE PASSO
void main(void)
{
TRISB=0xFF; PORTB=0; // Configuração das portas de I/O
TRISD=0;
INTEDG=1; // Aceita interrupção por borda de subida
INTCON=0x98; // Habilita interrupção externa e por mudança de estado
PORTD=motor[0]; // Joga na porta do micro (motor) a posição inicial
while(1)
{
x=y=0; // Zera variáveis
delay_ms(250); // Tempo de 250 ms
while(x==0 && y==0); // Aguarda uma das teclas ser pressionada para entrar na interrupção
if(x!=0) horario(); // Se precionada tecla x, chama função horario
if(y!=0) antihorario(); // Se precionada tecla y, chama função antihorario
}
}
87
#INT_EXT // Interrupção externa, chamada quando pressionada tecla x
void destrava(void)
{ // Filtragem de ruído (the bouncing)
if(RB0!=0) // Testa RB0 (Entrada da Int Externa)
{
delay_ms(30); // Tempo de 30 ms
if(RB0!=0) // Testa novamente, se for ruído a tecla não estará ativa neste segundo "if"
{
x++; // Incrementa x para sair da condição de parada
INTF=0; // Reseta Flag da Interrupção externa
}
}
}
void destravado(void)
{ // Filtragem de ruído (the bouncing)
if(RB5!=0) // Testa RB5 (Uma das entradas da Int por mudança de estado)
{
delay_ms(30); // Tempo de 30 ms
if(RB5!=0) // Testa novamente, se for ruído a tecla não estará ativa neste segundo "if"
{
y++; // Incrementa y para sair da condição de parada
RBIF=0; // Reseta Flag da Interrupção por mudança de estado
}
}
}
88
void horario(void) // Função horario
{
p++; // Incrementa p
if(p==4) p=0; // Testa p para ele nunca ser maior que 3
PORTD=motor [p]; delay_ms(10); //Joga no motor a posição 'p' do vetor
PORTD=0; // Joga zero no motor
}
89
ANEXO C – LAYOUT DAS PCIS DOS SOQUETES
90
ANEXO D – LAYOUT DA PCI DO PROTÓTIPO GERAL
91
ANEXO E – CIRCUITO COMPLETO DO SISTEMA
DESENVOLVIDO
92
Figura E.2 – Circuitos do conversor paralelo/USB, microcontrolador com driver de corrente e
condicionamento do sinal do fotodiodo.
93
ANEXO F – FIRMWARE DO MICROCONTROLADOR
//-------------------------------------------------DEFINES---------------------------------------------//
94
//------------------------------------Declaração de variáveis globais------------------------------//
//--------------------------------------------------Principal-----------------------------------------------//
95
CHS2=CHS1=CHS0=0; // Seleciona canal utilizado (Canal 0)
INTCON=0x90; // Config. interrupção global
INTEDG=0; // Config. inte externa como ativo baixo
x=0; // Zera "flag"
while(x==0); // Aguarda recepção do conversor USB (RXF ligado na INT EXT)
PORTD=0b00000001; // Coloca 1 na PORTD para enviar desbloqueio
transmite(); // Chama função de transmissão
x=0; // Reseta "flag" x
LASER_SINAL=1; // Liga laser de sinal acionando seu rele
ADON=1; // Liga sistema de conversão A/D
INTE=1; // Habilita Interrupção Externa
while(x==0); // Aguarda recepção do conversor USB
converte(); // Chama função de conversão
transmite(); // Transmite
for(fim_de_curso=0;fim_de_curso<20;fim_de_curso++)// Laço para a análise de 1550 a
1530 nm
{
ajusta_motor_horario(); // Chama função de ajuste do motor no sentido horário
x=0; // Reseta "flag" x
INTE=1; // Habilita Interrupção Externa
while(x==0); // Aguarda recepção do conversor USB (INT EXT)
converte(); // Chama função de conversão
transmite(); // Chama função de transmissão
PORTD=0x00; // Zera PORTD para não haver dados anteriores
}
centraliza_motor_antihorario(); // Centraliza motor no sentido antihorário
delay_ms(600); // Tempo de 600 milisegundos
for(fim_de_curso=0;fim_de_curso<12;fim_de_curso++)// Laço para a análise de 1550 a
1561 nm
{
ajusta_motor_antihorario(); // Chama função de ajuste do motor no sentido antihorário
x=0; // Reseta "flag" x
INTE=1; // Habilita Interrupção Externa
while(x==0); // Aguarda recepção do conversor USB (INT EXT)
96
converte(); // Chama função de conversão
transmite(); // Chama função de transmissão
PORTD=0x00; // Zera PORTD para não haver dados anteriores
}
PORTC=0b10010000; // Desativa acionamento de todas as bobinas do motor de passo
ADON=0; // Desliga sistema de conversão A/D
LASER_SINAL=0; // Desliga laser de sinal
LASER_BOMBEIO=0; // Desliga laser de bombeio (caso ligado)
centraliza_motor_horario(); // Centraliza motor no sentido horário
posicao=0; // Reseta variável posicao
}
}
void interrupcao(void)
{
INTE=0; // Desabilida INT EXT
LED_RXTX=1; // Liga LED RXTX
TRISD=0b11111111; // Config. PORTD como entrada
RD=0; // Habilita leitura (copia para PORTD o estado do buffer
interno de repepção do FT245BL)
buffer_rx[pos_buffer_rx]=PORTD; // Copia para buffer_rx(posição 0) o estado da PORTD
RD=1; // Desabilita leitura
TRISD=0b00000000; // Config. PORTD como saída
delay_ms(300); // 300 ms
LED_RXTX=0; // Desliga LED RXTX
if((buffer_rx[pos_buffer_rx])==1) // Testa se o dado recebido é 1
{
x++; // Se sim, apenas incrementa x para sai do while
}
else if((buffer_rx[pos_buffer_rx])==7) // Testa se o dado recebido é 7
{
97
LASER_BOMBEIO=1; // Se sim, é o sinal que indica análise com EDFA
x++; // Incrementa x para sair do while
}
else // Senão recebe nem 1 nem 7
{
x=0; // Zera x para continuar travado no while
INTF=0; // Reseta flag
INTE=1; // Habilita INT EXT
}
}
void converte(void)
{
unsigned int8 conversao; // Variavel para alocar conteúdo da PORTD
GO_DONE=1; // Inicia conversão
while(GO_DONE); // Aguarda a conversão ser concluída
conversao=ADRESH; // Copia para variavel conversao o resultado da conversão A/D
PORTD=conversao; // Coloca na PORTD o resultado da conversão
delay_ms(50); // 50 ms
}
98
//--------------Função que ajusta o motor de passo pelo sentido anti-horário----------------//
void ajusta_motor_antihorario(void)
{
for(i=0;i<24;i++) // Laço de 24 vezes
{
PORTC=motor [posicao]; // Coloca na PORTC a posição 'posicao' do vetor motor[ ]
delay_ms(15); posicao--; // 15 ms e decrementa posicao
if(posicao==-1) posicao=7; // Testa posicao para não ser jogado na PORTC um valor nulo
}
}
void centraliza_motor_horario(void)
{
for(i=0;i<288;i++) // Laço para o motor voltar ate a posição central
{
PORTC=motor [posicao]; // Coloca na PORTC a posição 'posicao' do vetor motor[ ]
delay_ms(15); posicao++; // 15 ms e incrementa posicao
if(posicao==8) posicao=0; // Testa posicao para não ser jogado na PORTC um valor nulo
}
}
99
//--------------Função que centraliza o motor de passo pelo sentido anti-horário----------------//
void centraliza_motor_antihorario(void)
{
for(i=0;i<240;i++) // Laço para o motor voltar a posição central
{
PORTC=motor [posicao]; // Coloca na PORTC a posição 'posicao' do vetor motor[ ]
delay_ms(15); posicao--; // 15 ms e decrementa posicao
if(posicao==-1) posicao=7; // Testa posicao para não ser jogado na PORTC um valor nulo
}
}
100
ANEXO G – PROGRAMAÇÃO DO SOFTWARE
//--------------------------------------Declaração de Variáveis-----------------------------------------//
101
FT_STATUS ftStatus; // Ponteiro para uma variável do tipo FT_STATUS (Objeto)
unsigned int numDisp=0; // Variável como o número do dispositivo (identificador)
char Tx_Buffer[128]; // Vetor para envio de dados
unsigned int a=0; // Flag de tentativas de conexão
DWORD RxBytes=0; // Variável do tipo DWORD que recebe o número de caracteres
na fila de recepção
unsigned char Rx_Buffer[256]; // Vetor para recepção de dados
float G_Buffer[256]; // Vetor para copiar dados e plotar
ULONG tamanho_dado; // Variável para alocar a quantidade de bytes para gravar no
FT245BL
ULONG num_Bytes=0; // Variável do tipo DWORD que recebe o número de bytes
gravados no FT245BL
DWORD Status_evento; // Variável do tipo DWORD que recebe o atual estado do evento
GetStatus
DWORD TxBytes; // Variável do tipo DWORD que recebe o número de caracteres
na fila de transmissão
DWORD Bytes_recebidos; // Variável do tipo DWORD que recebe o número de bytes lidos
a partir do dispositivo FT245BL
//--------------------------------------Prototipagem de Funções---------------------------------------//
102
Iniciar_Analise->Enabled=false; // Desabilita botão
Selecao_Componentes->Enabled=false; // Desabilita botão
Laser_Sinal->Checked=true; // Habilita botão
Laser_Sinal->Enabled=false; // Desabilita botão
Laser_Bombeio->Enabled=false; // Desabilita botão
Nova_analise->Enabled=false; // Desabilita botão
}
//---------------------Processo ao clicar no botão “ Reconhecer_Dispositivo” -------------------//
103
else ShowMessage("ERRO! Dispositivo USB não conectado"); // Mostra
Remover_Dispositivo->Enabled=false; // Desabilita botão "Remover_Dispositivo"
Reconhecer_Dispositivo->Enabled=true; //Habilita botão "Reconhecer_Dispositivo"
Iniciar_Analise->Enabled=false; // Desabilita botão "Iniciar_Analise"
}
}
//-----------------------Processo ao clicar no botão “Remover_Dispositivo” ---------------------//
104
ShowMessage("\t\tPara Análise com EDFA,\nassegure-se que as conexões no
hardware estão devidamente corretas"); // Mostra mensagem
config_laser_bombeio(); // Chama configurações
}
else
{ // Senão envia um dado normal (1) para o dispositivo
envia_dado_FT245();
}
recebe_desbloqueio(); // Função de desbloqueio
envia_dado_FT245(); // Função de transmissão
recebe_dado_FT245(); // Função de recepção
Timer1->Enabled=true; // Habilita Timer1 (Plotagem)
Nova_analise->Enabled=true; // Habilita botão "Nova_Analise"
}
105
//--------------------------------Função que envia dado para FT245BL-----------------------------//
void envia_dado_FT245(void)
{
Tx_Buffer[0]=1; // Seleciona dado
tamanho_dado=strlen(Tx_Buffer); // Encontra tamanho do vetor
ftStatus=FT_Write(ftHandle,Tx_Buffer,tamanho_dado,&num_Bytes); // Built In de
escrita do FT245BL
Sleep(100); // delay 100 ms
if(ftStatus!=FT_OK) // se o retorno for FT_OK
{
ShowMessage("ERRO de envio"); // Mensagem
}
void recebe_desbloqueio(void)
{
e: //Rótulo e:
unsigned int j=0; // Flag
while(j==0) // Permanece no while enquanto não receber o desbloqueio
{
FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&Status_evento); // Built In de
verificação da existência de dados a receber do FT245BL
if ( RxBytes> 0) // Se há dados para receber
{
ftStatus = FT_Read(ftHandle,Rx_Buffer,RxBytes,&Bytes_recebidos); // Built
In de leitura do FT245BL
Sleep(250); // Tempo 250 ms
if(ftStatus==FT_OK)
{
if(Rx_Buffer[0]==1) j++; // Testa se o dado recebido é 1
106
}
else goto e; // Se o retorno de FT_Read não for FT_OK retorno para rótulo e:
}
}
}
void recebe_dado_FT245(void)
{
unsigned int i=0; // Variável para contar o número de dados recebidos
unsigned int j=0; // variável para laço de recebimento de dados
for(i=0;i<32;i++) // Laço para receber os 32 dados da análise
{
while(j==0) // Permanece no while enquanto não houverem dados para serem
recebidos
{
FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&Status_evento); // Verifica
se há dados para receber
Sleep(100);
if ( RxBytes> 0) // Se houverem dados
{
Sleep(30);
if(RxBytes>0) // Verifica novamente (the bouncing)
{
ftStatus = FT_Read(ftHandle,Rx_Buffer,RxBytes,&Bytes_recebidos);
// Lê dados
if(ftStatus==FT_OK) // Se leu corretamente
{
if(i<21) // Análise de 1550 a 1530 nm
{ // Equação que transforma o dado recebido de
tensão (V) para potência (dBm)
G_Buffer[20-i] = ((-2.62974)-((-
5.64476)*(log((((Rx_Buffer[0])*15.0)/255)+0.0005))));
107
// Posição [20-i] para começar alocar de 1550 para 1530 nm
Sleep(100);
}
else
{ // Equação que transforma o dado recebido de
tensão (V) para potência (dBm)
G_Buffer[i] = ((-2.62974)-((-
5.64476)*(log((((Rx_Buffer[0])*15.0)/255)+0.0005))));
Sleep(100);
}
}
else
{
ShowMessage("ERRO de recepcao!"); // Mostra mensagem
}
j++; // Incrementa a cada dado recebido
}
}
Sleep(10);
}
j=0; // Reseta variáveis
RxBytes=0;
Sleep(500);
envia_dado_FT245(); // Chama função que envia dados para o hardware
Sleep(50);
}
ShowMessage("\tAnálise Completa!\nSalve ou Imprima a imagem por segurança"); //
Mostra mensagem no final da análise
}
108
int t; // Variável para laço
float posx[32]; // Vetor com 32 posições/32 pontos
for(t=0;t<32;t++)
{
posx[t]=1530+t; // Aloca no vetor posx[] os valores das posições para cada ponto
}
SLScope1->Channels->Channels[0]->Data->SetXYData(posx,G_Buffer,32); // Plota X
(posx), Y(G_Buffer), 32 pontos
} // Plota no SLScope o Canal 0, que é constituido do vetor posx e G_Buffer
//-----------------------------------------------Botão Sair-----------------------------------------------//
//--------------------------------------------Botão Sobre------------------------------------------------//
109
//------------------------------------Botão Instrução do Hardware------------------------------------//
110
ANEXO H – FUNÇÕES BIBLIOTECA D2XX
A interface D2XX é uma interface específica para dispositivos da FTDI. Este ANEXO
fornece uma explicação das principais funções disponíveis para desenvolvimento de
aplicativos através da biblioteca FTD2XX.
-----------------------------------------------------------------------------------------------------------------
FT_Open:
Argumentos:
numDisp: Índice do dispositivo que será aberto. Os índices são iniciados em 0.
ftHandle: Ponteiro para uma variável do tipo FT_HANDLE onde o identificador
será armazenado. Este identificador deve ser usado para acessar o dispositivo.
Valor de retorno: FT_OK se a operação for bem sucedida, caso contrário o valor de retorno é
um código de erro do FT.
Observações: Embora esta função possa ser usada para abrir vários dispositivos, definindo
numDisp como 0, 1, 2, não há possibilidade de abrir um dispositivo específico. Para abrir
dispositivos nomeados usa-se a função FT_OpenEx.
Exemplo:
FT_HANDLE ftHandle;
FT_STATUS ftStatus;
Unsigned int numDisp=0;
ftStatus = FT_Open ( numDisp, &ftHandle );
if (ftStatus == FT_OK) { // FT_Open OK, usa-se ftHandle para acessar o dispositivo }
else { // FT_Open falhou }
111
-----------------------------------------------------------------------------------------------------------------
FT_Close
Argumentos:
ftHandle: Identificador do dispositivo.
Valor de retorno: FT_OK se a operação for bem sucedida, caso contrário o valor de retorno é
um código de erro do FT.
Exemplo:
FT_HANDLE ftHandle;
FT_STATUS ftStatus;
ftStatus = FT_Open( 0, &ftHandle );
if (ftStatus == FT_OK)
{
// FT_Open OK, use ftHandle para acessar o dispositivo
// quando terminado o processo, chama-se FT_Close
FT_Close( ftHandle );
}
else
{
// FT_Open failed
}
-----------------------------------------------------------------------------------------------------------------
FT_Read
112
Descrição: Lê dados do dispositivo.
Argumentos:
ftHandle Identificador do dispositivo.
lpBuffer Ponteiro para o buffer que recebe os dados do dispositivo.
dwBytesToRead Número de bytes a serem lidos do dispositivo.
lpdwBytesReturned Ponteiro para uma variável do tipo DWORD que recebe o
número de bytes lidos a partir do dispositivo.
Valor de retorno: FT_OK se a operação obteve êxito, caso contrário o valor de retorno é um
código FT_IO_ERROR.
Observações:
- FT_Read sempre retorna o número de bytes lidos em lpdwBytesReturned.
- Esta função não retorna nada até que a quantidade dwBytesToRead de bytes forem
lidos para o buffer. O número de bytes na fila de recepção pode ser determinada chamando-se
a função FT_GetStatus ou FT_GetQueueStatus, que passam para FT_Read o número de bytes
a serem lidos como dwBytesToRead.
-----------------------------------------------------------------------------------------------------------------
FT_GetStatus
Argumentos:
ftHandle Identificador do dispositivo.
113
lpdwAmountInRxQueue Ponteiro para uma variável do tipo DWORD que
recebe o número de caracteres na fila de receber.
lpdwAmountInTxQueue Ponteiro para uma variável do tipo DWORD que
recebe o número de caracteres na fila de transmissão.
lpdwEventStatus Ponteiro para uma variável do tipo DWORD que
recebe o estado do evento atual.
Valor de retorno: FT_OK se a operação for bem sucedida, caso contrário o valor de retorno é
um código de erro do FT.
-----------------------------------------------------------------------------------------------------------------
FT_Write
Argumentos:
ftHandle Identificador do dispositivo.
lpBuffer Ponteiro para o buffer que contém os dados a serem gravados no
dispositivo.
dwBytesToWrite Número de bytes para gravar no dispositivo.
lpdwBytesWritten Ponteiro para uma variável do tipo DWORD que recebe o
número de bytes gravados no dispositivo.
Valor de retorno: FT_OK se a operação for bem sucedida, caso contrário o valor de retorno é
um código de erro do FT.
114
-----------------------------------------------------------------------------------------------------------------
FT_Purge
Argumentos:
ftHandle Identificador do dispositivo.
dwMask Combinação de FT_PURGE_RX e FT_PURGE_TX.
Valor de retorno: FT_OK se a operação for bem sucedida, caso contrário o valor de retorno é
um código de erro do FT.
Exemplo:
FT_HANDLE ftHandle;
FT_STATUS ftStatus;
ftStatus = FT_Purge(ftHandle, FT_PURGE_RX | FT_PURGE_TX);
// Limpa os buffers Rx e Tx.
if (ftStatus == FT_OK)
{
// FT_Purge OK
}
else
{
// FT_Purge falhou
}
FT_Close(ftHandle);
-----------------------------------------------------------------------------------------------------------------
FT_ResetDevice
115
Descrição: Esta função envia um comando de reset para o dispositivo.
Argumentos:
ftHandle Identificador do dispositivo.
Valor de retorno: FT_OK se a operação for bem sucedida, caso contrário o valor de retorno é
um código de erro do FT.
Exemplo:
FT_HANDLE ftHandle;
FT_STATUS ftStatus;
ftStatus = FT_ResetDevice(ftHandle); //Reseta dispositivo
if (ftStatus == FT_OK)
{
// FT_ResetDevice OK
}
else
{
// FT_ResetDevice falhou
}
FT_Close(ftHandle);
-----------------------------------------------------------------------------------------------------------------
Os nomes dos argumentos das funções podem ser modificados de acordo com a
preferência do programador. Para demais funções e informações desta biblioteca deve-se
consultar o Guia de Programação D2XX [55].
116
ANEXO I – FOTOS DO PROTÓTIPO
117