gerador de sinais radar para utilização em campo
TRANSCRIPT
Universidade Federal do Rio de Janeiro
Escola Politécnica
Departamento de Eletrônica e de Computação
GERADOR DE SINAIS RADAR PARA UTILIZAÇÃO EM
CAMPO
Autor:
_________________________________________________
Rafael Soares da Silva
Orientador:
_________________________________________________
Heraldo Luis Silveira de Almeida, D.Sc.
Examinador:
_________________________________________________
Flávio Luis de Mello, D.Sc.
Examinador:
_________________________________________________
Aloysio de Castro Pinto Pedroza, Dr.
DEL
Janeiro de 2016
ii
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
Escola Politécnica – Departamento de Eletrônica e de Computação
Centro de Tecnologia, bloco H, sala H-217, Cidade Universitária
Rio de Janeiro – RJ CEP 21949-900
Este exemplar é de propriedade da Universidade Federal do Rio de Janeiro, que
poderá incluí-lo em base de dados, armazenar em computador, microfilmar ou adotar
qualquer forma de arquivamento.
É permitida a menção, reprodução parcial ou integral e a transmissão entre
bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja
ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem
finalidade comercial e que seja feita a referência bibliográfica completa.
Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es) e
do(s) orientador(es).
iii
AGRADECIMENTO
Agradeço a todos que contribuíram, me incentivaram e me apoiaram durante
todo o curso. À minha família que sempre trabalhou em prol da minha formação
acadêmica, aos amigos que dividiram os momentos de estudo e de diversão e aos
professores e orientadores por todo o conhecimento compartilhado.
iv
RESUMO
Neste trabalho foi desenvolvido um gerador radar de baixa potência. A proposta
é simular os principais parâmetros de alguns dos radares utilizados pela Marinha do
Brasil. Esta ferramenta possibilita a realização testes em equipamentos de guerra
eletrônica. As simulações foram realizadas em uma câmara anecóica em conjunto com
um sistema de reconhecimento tático de emissores radar.
Palavras-Chave: guerra eletrônica, radar, pulso eletromagnético, simulador.
v
ABSTRACT
This work developed a low-power radar generator. The proposal is to simulate
the main parameters of some of the radars used by the Brazilian Navy. This tool enables
the performance testing of electronic warfare equipment. The simulations were
performed in an anechoic chamber in conjunction with a tactical reconnaissance system
of radar transmitters.
Key-words: electronic warfare, radar, electromagnetic pulse, simulator.
vi
SIGLAS
AM – Amplitude Modulation (Modulação em Amplitude)
AOA – Angle of Arrival (Ângulo de Chegada)
CME – Contra-Medidas Eletrônicas
CW – Continuous Wave (Onda Contínua)
DVC – Despistamento de Varredura Cônica
F – Freqüência da Portadora
FM – Frequency Modulation (Modulação em Freqüência)
LP – Largura de Pulso
MAGE – Medidas de Apoio à Guerra Eletrônica
PLD – Programmable Logic Device (Dispositivo Lógico Programável)
PM – Phase Modulation (Modulação em Fase)
PRF – Pulse Repetition Frequency (Freqüência de Repetição do Pulso)
PRI – Pulse Repetition Interval (Intervalo de Repetição de Pulso)
RF – Radio Frequency
TOA – Time of Arrival (Tempo de Chegada)
UFRJ – Universidade Federal do Rio de Janeiro
VCO – Voltage Controlled Oscilator
vii
Sumário
1 Introdução 1
1.1 - Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 - Delimitação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 - Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 - Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.5 - Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.6 - Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Radar e seus parâmetros 4
2.1 - Radar Básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 - Parâmetros de um pulso radar . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Arquitetura do Gerador Radar 9
3.1 - Escopo do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 - Dinâmica de Execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Hardware 12
4.1 - FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 - Módulo Comunicação Serial . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 - Digitally Tunned Oscilator . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4 - Solid State Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.5 - Atenuador Programável . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
viii
4.6 - Solid State Amplifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 Software 16
5.1 - Design de PLD e Linguagem VHDL . . . . . . . . . . . . . . . . . . . 16
5.2 - Ambiente de desenvolvimento Qt . . . . . . . . . . . . . . . . . . . . . . 20
6 Simulações 24
6.1 - Cenário 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2 - Cenário 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3 - Cenário 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.4 - Cenário 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.5 - Cenário 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7 Conclusões 30
Bibliografia 31
A Esquemáticos 32
B Códigos fonte 36
C Tabelas de Frequência 50
ix
Lista de Figuras
2.1 – Radar Básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 – Amplitude em uma onda senoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 – Largura de pulso em uma onda quadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 – Formas de ondas com diferentes frequências . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1 – Parâmetros do pulso radar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 – Tipos de PRI empregada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 – Padrão da varredura circular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.1 - Diagrama de bloco do hardware do simulador radar . . . . . . . . . . . . . . . . . . . 12
4.2 – Diagrama de blocos de um DTO multibanda . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3 – Diagrama de blocos de um Atenuador Programável . . . . . . . . . . . . . . . . . . . 15
4.4 – Esquema de montagem dos componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.1 – Diagrama do Ciclo_Pres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2 – Diagrama do controle_freq. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.3 – Diagrama do gerador de PRI e LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.4 – Diagrama do Atenuador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.5 – Interface gráfica do software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.1 – Resultado analisador de espectro no cenário 1. . . . . . . . . . . . . . . . . . . . . . . . 25
6.2 – Resultado osciloscópio no cenário 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.3 – Resultado analisador de espectro no cenário 2. . . . . . . . . . . . . . . . . . . . . . . . 26
6.4 – Resultado osciloscópio no cenário 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.5 – Resultado analisador de espectro no cenário 3. . . . . . . . . . . . . . . . . . . . . . . . 27
6.6 – Resultado osciloscópio no cenário 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.7 – Resultado analisador de espectro no cenário 4. . . . . . . . . . . . . . . . . . . . . . . . 28
6.8 – Resultado osciloscópio no cenário 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.9 – Resultado osciloscópio no cenário 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
x
6.10 – Resultado analisador de espectro no cenário 5. . . . . . . . . . . . . . . . . . . . . . . 29
xi
Lista de Tabelas
2.1 – Categorias de PRI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 – Padrões de Varredura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1 – Faixa de valores para os parâmetros do projeto . . . . . . . . . . . . . . . . . . . . . . . 9
5.1 – Bits de Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1
Capítulo 1
Introdução
1.1 – Tema
O avanço da tecnologia tem conduzido a mudanças nas táticas de guerra. Apesar
de tudo, o primeiro objetivo do comandante de lançar poder de fogo em apoio à missão
permanece inalterado. Mesmo assim, visando cumprir esse objetivo, o comandante
ainda deve localizar o inimigo, acompanhá-lo e engajá-lo. O esforço para conseguir isso
envolve todos os métodos de vigilância, do campo visual à interceptação de emissões
eletrônicas, o que é conhecido como esclarecimento.
Guerra Eletrônica é uma ação militar cujo objetivo é controlar o espectro
eletromagnético [1], visando impedir, reduzir ou prevenir que o inimigo faça uso eficaz
de suas emissões. Nesse sentido, foi desenvolvido neste trabalho um simulador radar de
baixa potência, cuja geração de pulsos eletromagnéticos produzidos e transmitidos tenha
características similares as de um radar de uso militar, possibilitando a realização testes
em equipamentos de guerra eletrônica.
1.2 – Delimitação
A guerra eletrônica pode ser dividida, de acordo com seus objetivos, em três
grandes grupos: Medidas de Apoio de Guerra Eletrônica (MAGE), Medidas de Ataque
Eletrônico (MAE) e Medidas de Proteção Eletrônica (MPE).
Especificamente para o primeiro grupo, um equipamento MAGE é um sistema
capaz de contribuir para o reconhecimento tático dos emissores radar de um dado
ambiente eletromagnético. O equipamento tem a função de interceptar radiações de
emissores, localizar sua marcação, registrar a hora de chegada, medir os seus
parâmetros, podendo então classificar o tipo e o modo de operação do radar envolvido e
a provável plataforma associada, segundo uma Biblioteca de Emissores [2].
2
Entre outros equipamentos utilizados para teste do MAGE, um gerador de sinais
de baixa potência que produza e transmita sinais com as características similares aos de
um radar de uso militar é imprescindível.
1.3 – Justificativa
A guerra eletrônica é hoje, se não o mais importante, um dos meios de combate
que mais se destaca pela importância que tem ganhado ao longo dos últimos anos. A
Marinha do Brasil vem se dedicando há alguns anos em desenvolver e produzir seus
próprios equipamentos de guerra eletrônica. Então, desenvolver novas tecnologias que
contribuam para a evolução desde cenário é de extrema importância para a expansão e
consolidação da força militar brasileira.
1.4 – Objetivos
O objetivo deste trabalho é projetar e desenvolver um simulador radar de baixa
potência para utilização em campo. O simulador radar deverá ser capaz de produzir e
transmitir pulsos eletromagnéticos com características semelhantes às encontradas nos
pulsos transmitidos por alguns dos radares militares utilizados atualmente pela Marinha
Brasileira, e com isso, ser uma ferramenta de testes para equipamentos de medida de
apoio à guerra eletrônica.
1.5 – Metodologia
Para desenvolver um simulador de radar que atendesse às necessidades da
Marinha do Brasil, foram pesquisadas as características de emissão eletromagnética dos
principais radares militares utilizados.
Após esta etapa, foram pesquisados os equipamentos necessários para o
desenvolvimento do hardware, que atendessem todos os requisitos para as emissões que
desejamos simular. Foi escolhida a também a plataforma de desenvolvimento de
software para o desenvolvimento da interface de operação do sistema.
3
1.6 – Descrição
No próximo capítulo serão apresentadas as principais características de um
radar.
O capítulo 3 apresenta a arquitetura do projeto, mostrando as ferramentas
necessárias para o desenvolvimento do gerador radar.
Os componentes de hardware utilizados e suas características são apresentados
no capítulo 4. Nele será explicitado a interligação dos componentes, a programação do
hardware, e como eles se comunicam com o software.
O desenvolvimento da interface gráfica e a explicação dos principais comandos
da interface do usuário serão apresentados no capítulo 5.
O capítulo 6 apresenta os resultados de simulações de diversos tipos de
parâmetros de radar.
Na conclusão serão apresentados os objetivos alcançados e sugestões para
atualização e novas funções para a continuação deste gerador.
4
Capítulo 2
Radar e seus parâmetros
2.1 – Radar Básico
O termo radar, acrônimo em inglês de Radio Detection And Ranging (Detecção
e Telemetria pelo Rádio), refere-se ao equipamento que detecta presença, direção, altura
e distância de objetos, usando energia eletromagnética refletida [2].
O radar é composto por uma antena transmissora/receptora onde a transmissão é
um pulso eletromagnético de alta potência, curto período e feixe muito estreito. Durante
a propagação pelo espaço, o feixe se alarga em forma de cone até atingir o alvo que está
sendo monitorado, sendo então refletido e retornando para a antena, que neste momento
é receptora de sinais. Como se sabe a velocidade de propagação do pulso, e pelo tempo
de chegada do eco, pode-se facilmente calcular a distância do objeto [3].
Figura 2.1 – Radar básico Fonte: Radar Principles [4].
5
2.2 – Parâmetros de um pulso radar
Um único pulso radar é caracterizado pelos principais parâmetros mensuráveis
de amplitude (A), largura de pulso (LP) e frequência da portadora (F). Quando esses
pulsos são associados em um trem de pulsos, dois parâmetros adicionais podem ser
analisados para caracterizar um emissor: Intervalo de Repetição de Pulso (PRI) e o
padrão de Varredura.
2.2.1 - Amplitude
Amplitude é uma medida escalar negativa e positiva da magnitude de oscilação
de uma onda.
Figura 2.2 – Amplitude em uma onda senoidal.
2.2.2 - Largura de pulso
Largura de pulso é a duração de um único pulso de um transmissor radar.
Figura 2.3 – Largura de pulso em uma onda quadrada.
6
2.2.3 – Frequência
Frequência é uma grandeza física ondulatória que indica o número de
ocorrências de um evento (ciclos, voltas, oscilações, etc.) em um determinado intervalo
de tempo. A unidade mais comum usada internacionalmente para expressar a frequência
de uma onda é o hertz, simbolizado por Hz, que equivale a uma oscilação por segundo.
Figura 2.4 – Formas de ondas com diferentes frequências.
2.2.4 – Intervalo de repetição de pulso
O intervalo de repetição de pulso (PRI) de um radar é normalmente muito
estável. Radares de longo alcance têm PRI’s grandes enquanto que radares de curto
alcance têm PRI’s pequenas. A PRI, ao contrário dos parâmetros já mencionados, não
está disponível instantaneamente em cada pulso, ela é derivada do tempo de chegada
(TOA) entre os pulsos.
Muitas das variações de PRI de um radar são efetuadas para resolver
ambiguidades em distâncias e/ou velocidades. Outras são usadas para minimizar o
tempo gasto em busca.
Existe um número razoável de tipos de PRI. A tabela lista as principais
categorias.
TIPO FUNÇÃO TÍPICA COMENTÁRIOS
Constante Radares de busca ou
acompanhamento
Variações tipicamente < 1%
do valor médio da PRI
7
Jittered Reduz o efeito de alguns
tipos de jamming
Grandes variações – até em
torno de 30% da PRI média
Dwell e Switch Resolve ambiguidade em
distância e/ou velocidade
Rajadas de pulsos com várias
PRI’s estáveis chaveadas de
uma rajada para a próxima
Stagger Elimina velocidades cegas Várias PRI’s estáveis
chaveadas pulso a pulso em
um padrão periódico
Sliding Fornece cobertura constante
de altitude durante varredura
em elevação
PRI máxima (em elevação
mínima) usualmente menor
que 6 vezes a PRI mínima em
elevação máxima
Scheduled Usada em varredura
eletrônica, função múltipla
(busca e acompanhamento) e
sistemas controlados por
computador
Numerosos padrões
complexos (alguns
periódicos) podem se adaptar
a situação do alvo
Senoidal (Wobbulated) Guiagem de míssil Variações quase senoidais até
5% da PRI média.
Tabela 2.1 – Categorias de PRI Fonte: Alguns tópicos sobre MAGE [2].
2.2.5 – Padrão de varredura
O feixe da antena de um radar cobre somente uma parte pequena da região
angular de interesse. Para cobertura hemisférica, existem aproximadamente N posições
de feixe independentes:
𝑁 =2𝜋
𝜃𝑎𝑍 × 𝜃𝑒𝐿
onde:
2𝜋 = ângulo sólido que subentende um hemisfério (radianos);
𝜃𝑎𝑍= Largura de feixe em 3dB em azimute (radianos); e
𝜃𝑒𝐿= Largura de feixe em 3dB em elevação (radianos).
8
O movimento do feixe (posição angular versus tempo) é chamado padrão de
varredura. O padrão de varredura é projetado para cobrir todo volume de interesse do
sistema radar. O tamanho deste volume pode variar dependendo do propósito do radar
no momento. Se for necessário fazer busca em todo hemisfério para adquirir um alvo,
pode-se então, depois de localizá-lo, usar um volume de busca menor para refinar sua
localização. Finalmente, se o radar pode acompanhar um alvo, a varredura pode cessar
por completo.
Usualmente, o radar varre uma dada região angular de modo que a mesma
quantidade de tempo é dedicada a cada parte da região e a busca é iniciada em alguma
parte conveniente da área. É evidente que melhores resultados podem ser obtidos se a
busca levar em consideração a priori qualquer conhecimento de onde o alvo pode ser
localizado. Se a probabilidade de detecção é relacionada ao tempo gasto na busca de
uma célula particular, e se as probabilidades de alvo em cada célula podem ser
determinadas a priori, podem-se formular estratégias de buscas ótimas.
TIPO DE
VARREDURA COMENTÁRIOS
FAN BEAM
SCANNING
Circular
Radar de busca de longo alcance; fornece
informação de marcação e distância, mas não
de elevação.
Setorial Varre somente um setor de interesse; pode
varrer em azimute ou elevação.
PENCIL BEAM
SCANNING
Raster
Varre uma linha numa direção (azimute) de
um determinador setor e então uma segunda
linha é varrida em azimute, mas em ângulo
de elevação diferente.
Helicoidal Padrão raster com linhas horizontais onde
cada linha cobre 360°.
Espiral O feixe inicia em um ponto central e se
espirala a partir desse ponto.
Tabela 2.2 – Padrões de Varredura Fonte: Alguns tópicos sobre MAGE [2].
9
Capítulo 3
Arquitetura do Gerador Radar
3.1 – Escopo do projeto
Ao executar sua missão, o equipamento deve ser capaz de gerar pulsos de radar
caracterizados pelos seus principais parâmetros mensuráveis:
Largura do pulso (LP) e
Frequência.
Além destes, outros parâmetros adicionais podem ser utilizados:
Agilidade linear em frequência;
Intervalo de repetição de pulso (PRI) e
Tipo de varredura.
Figura 3.1 – Parâmetros do pulso radar.
A faixa de valores aceitáveis para os principais parâmetros mensuráveis são:
Parâmetro Valor mínimo Valor máximo Agilidade
Frequência 8GHz 16GHz Sim
LP 0,5us 200us Não
PRI 0,01ms 2ms -
Tabela 3.1 – Faixa de valores para os parâmetros do projeto.
10
A agilidade em frequência linear foi considerada como uma variação de 0,5 GHz
para baixo e para cima em torno da frequência central, com passo de 0,1GHz. Tem-se
então, durante a agilidade linear, até dez valores de frequência que variam linearmente
pulso a pulso.
O intervalo de repetição de pulso (PRI) poderá ser utilizado em dois tipos
básicos de padrões: Estável, onde as PRI’s são idênticas; Staggered, com PRI’s se
alternando em 2, 3 ou 4 níveis.
Figura 3.2 – Tipos de PRI empregada: [a] PRI Estável, [b] PRI Staggered.
Dos tipos de varredura que usualmente são empregados, inicialmente apenas a
circular será implementada. Isto se deve ao fato de sua simulação ser possível sem
nenhum tipo de movimentação mecânica.
Figura 3.3 – Padrão da varredura circular
11
3.2 – Dinâmica de execução
A operação de geração de pulsos se dará da seguinte maneira:
1. Em um PC, o usuário entrará com os parâmetros do pulso a ser gerado;
2. O software, através de uma comunicação serial com PC, irá interfacear com a
FPGA e realizará as seguintes tarefas:
a. Ler o valor da banda de frequência selecionada pelo usuário, calcular a
palavra de bits associado ao valor escolhido e verificar se foi selecionado
a opção de agilidade em frequência;
b. Ler o(s) valor(es) de PRI selecionado(s) pelo usuário, associar este valor
a uma palavra de bits em uma memória ROM, verificar se há níveis de
intervalo de repetição, e acionar um contador, que irá então gerar a PRI;
c. Ler o valor de LP selecionado pelo usuário e associar este valor a uma
palavra de bits. Um dos flags do contador de PRI irá acionar outro
contador que, de acordo com esta palavra de bits, irá gerar a LP;
3. O DTO receberá o valor da frequência, e irá então gerar o sinal;
4. Uma chave conectada ao switch e ao atenuador irá atuar de acordo com os
valores de PRI, LP e varredura selecionados pelo usuário;
5. Um amplificador aumenta a potência do sinal para obter nível suficiente de
transmissão.
12
Capítulo 4
Hardware
A figura abaixo mostra o diagrama de blocos do hardware do simulador de radar:
INTERFACE
CONTROLE DE
FREQUÊNCIA
MAQUINA DE
ESTADOS
CONTROLE DE PRI
MÁQUINA DE
ESTADOS
MEMÓRIA
ROM
PRI
CONTADOR
LP
CONTADOR
CONTROLE DE
VARREDURA
DTO ATENUADOR
PLD
Figura 4.1 – Diagrama de bloco do hardware do simulador radar
4.1 – CIRCUITO INTEGRADO - FPGA
Um FPGA é um modulo que pode ser programado para implementar um sistema
digital que consiste em dezenas de milhares de portas. Um módulo FPGA consiste em
uma matriz de três tipos de elementos configuráveis:
blocos lógicos, combinacionais e/ou sequenciais;
pontos de interconexão (chaves) e
blocos de entrada e saída.
Além disso, há fios agrupados em canais horizontais e verticais. [5]
13
O FPGA utilizado foi a EPF10k10LC84-3. A família FLEX 10k é suportada
pelo Quartus II, um software de design de PDL, onde é possível desenhar o circuito
como um sistemático ou descrevê-lo utilizando uma linguagem de descrição de
hardware, como a VHDL utilizada neste projeto. O FPGA é programado via porta
paralela.
4.2 – Comunicação Serial
Na comunicação serial cada bit representa uma parte da mensagem. Os bits
individuais são então rearranjados no destino para compor a mensagem original. Em
geral, em um canal irá passar apenas um bit por vez. O padrão para troca serial de dados
comumente usada em computadores é o RS232.
Para a comunicação entre o PC e a FPGA foi utilizado o conversor de nível
MAX235, que transformar níveis TTL (0 a 5 volts) em RS232 e vice-versa.
4.3 – Digittaly Tunned Oscilator (DTO)
Um Voltage Controlled Oscilator (VCO) é um oscilador eletrônico que altera a
frequência de saída a partir de alteração da voltagem de entrada.
Um disposto DTO, por sua vez, foi pensado com o propósito de aumentar a
estabilidade ao sintonizar uma frequência no VCO. Um contador digital, ou um
conversor analógico-digital, serve como referência externa de frequência, o qual alterna
a entrada para o VCO. A variação dessa entrada muda a frequência de saída do
dispositivo [6].
Um DTO multibanda consiste de um determinado número de VCO’s cobrindo
faixas específicas de frequências. As saídas de sub-banda de RF selecionadas são
ligadas a uma porta de saída de RF comum.
Como o sistema foi descrito, a faixa de frequência dos principais radares que
deseja-se simular está entre 6GHz e 18GHz. Para simular estas oscilações de frequência
foi utilizado um DTO modelo 2453. A seleção digital da frequência desejada é feita
14
através de uma palavra de 16 bits paralelos, onde 2 bits selecionam a sub-banda e 14
bits determinam a frequência.
Figura 4.2 – Diagrama de blocos de um DTO multibanda. Fonte: Herley [6].
4.4 – Solid State Switch
O propósito do switch é chavear sinais RF. O termo "solid state" descreve
dispositivos eletrônicos que não contem dispositivos mecânicos, tais como relés. Solid
State Switches são mais confiáveis e apresentam uma vida útil mais longa do que os
dispositivos eletromecânicos devido à sua grande resistência ao choque, vibração e
desgaste mecânico. Eles também oferecem um tempo de chaveamento mais rápido [7].
Para simular as diferentes LP’s e PRI’s desejadas, foi utilizado o switch S213D,
que possui tempo de chaveamento de 10ns e suporta um range de frequência de 2 – 18
GHz, portanto dentro das especificações desejadas.
4.5 – Atenuador Programável
Um diodo PIN é um dispositivo semicondutor que opera como um resistor
variável de frequência de RF. Em aplicações de atenuação, o diodo PIN deve
idealmente controlar o nível do sinal RF sem introduzir distorção que poderia alterar a
forma do sinal de RF. [8]
Um atenuador diodo PIN programável foi utilizado com o objetivo de conseguir
o efeito de oscilação da amplitude de RF e, com isso, simular uma varredura circular. O
atenuador 3468C, por ter um range de frequência de 2 – 18 GHz foi escolhido neste
15
projeto. Além disso, este atenuador é capaz de atenuar até 60 dB em steps de até 0,06
dB mínimos.
Figura 4.3 – Diagrama de blocos de um Atenuador Programável. Fonte: Herley [8].
4.6 – Solid State Amplifier
O principal propósito de um amplificador é aumentar a amplitude do sinal. Um
segundo proposito é atuar como um isolador. [7]
Um amplificador de RF foi acoplado ao gerador para obter um nível suficiente
para a transmissão do sinal através de uma antena.
Figura 4.4 – Esquema de montagem dos componentes.
16
Capítulo 5
Software
Neste capítulo será abordado o desenvolvimento dos softwares de design de
PLD e da interface de usuário.
5.1 – Software de design de PLD e linguagem VHDL
Para a programação da FPGA foi utilizado o software Altera Quartus II Web
Edition, que permite tanto uma edição esquemática dos circuitos lógicos, quanto uma
descrição em linguagem de hardware em VHDL.
5.1.1 – Ciclo Presente
A entidade ciclo_pres, tem como portas de entrada um barramento de 8 bits
nomeado de data_in e um bit de clock. Como portas de saída tem-se um barramento de
16 bits para controle de frequência, um bit de controle de agilidade em frequência,
quatro barramentos de 4 bits para o controle de PRI, um bit de controle para seleção do
tipo de PRI, um barramento de 9 bits para controle de LP e um bit de controle para
seleção de atenuação. A arquitetura dessa entidade possui nove variáveis temporárias,
sendo oito de 8 bits e uma de 16 bits.
A porta data_in recebe os primeiros 8 bits paralelos e armazena na primeira
variável temporária. A cada evento de clock, o contador, iniciado em zero, é
incrementado e a próxima variável recebe os 8 bits subsequentes. Esse processo ocorre
até que todas as variáveis tenham recebido os bits correspondentes e então o contador é
reinicializado.
As duas primeiras variáveis temporárias são concatenadas na variável de 16 bits,
que representa os bits de controle de frequência e são enviadas ao barramento de saída.
As próximas quatro variáveis de 8 bits recebem os valores dos quatro níveis de
PRI possíveis. Como para o barramento de saída para o controle de PRI apenas cinco
bits são necessários, os últimos três bits das variáveis são desprezados.
17
A quinta variável recebe os bits que correspondem ao valor de LP selecionado
pelo usuário e então é enviado ao barramento de saída.
Os três primeiros bits da última variável (LSB) contém os valores dos bits de
controle. Cada valor é associado à porta de saída correspondente e os bits restantes são
desprezados.
Figura 5.1 – Diagrama do Ciclo_Pres.
5.1.2 – Controle de Frequência
O controle de frequência é representado pelo diagrama de bloco macro
controle_freq. O diagrama tem como portas de entradas um barramento de 16 bits para
a seleção de frequência, além de um bit de clock e um bit para controle de agilidade. Na
saída tem um barramento de 16 bits que representam a frequência escolhida pelo
usuário. O diagrama macro é composto pelo diagrama de bloco nomeado de
agilidade_freq e uma função parametrizada add_sub.
O diagrama agilidade_freq, que representa uma entidade de mesmo nome,
recebe como entrada os 16 bits de frequência, um bit de clock e um bit de controle de
atenuação. Em suas portas de saída, tem-se os mesmos 16 bits de frequência, um
barramento de 16 bits chamado de operador e um bit de controle de operação. A
arquitetura desta entidade é uma máquina de estados finita de 10 estados. Caso o bit de
18
controle de atenuação seja 0, a máquina mantém o estado em que o barramento
operador recebe o nível 0 nos 16 bits. Caso a opção de agilidade tenha sido selecionada,
o bit de controle recebe o nível 1 e a máquina passa a mudar de estados de acordo com o
evento de clock e enquanto o bit de controle permanecer em nível alto. Conforme visto
no capítulo 3, a agilidade linear é uma variação de até 0,5 GHz para mais ou para menos
em torno da frequência escolhida. Em cada um dos dez estados da máquina, o
barramento operador recebe um valor que representa a diferença de 0,1 GHz do estado
anterior ou do próximo estado. Durante os cinco primeiros estados o bit de controle de
operação recebe o valor 0, representando uma posterior subtração. Nos estados seguinte,
esse valor é 1, representando a adição.
A função add_sub realiza operações de adição e subtração. Recebe em suas
portas de entrada o barramento de 16 bits com a frequência selecionada pelo usuário, o
barramento operador e o bit que define o tipo de operação. O resultado da operação é
um barramento também de 16 bits que seleciona a frequência no DTO.
Figura 5.2 – Diagrama do controle_freq.
5.1.3 – Gerador de PRI e LP
Três diagramas de blocos representam a geração de PRI e de LP: controle_pri,
gerpri e gerlp.
O diagrama controle_pri, que representa uma entidade de mesmo nome, tem
como portas de entrada quatro barramentos de cinco bits, que representam os ponteiros
de todas a PRI’s possíveis selecionadas pelo usuário. Possui também uma porta de clock
e uma de enable, Como porta de saída tem-se o ponteiro da PRI selecionada. A
arquitetura da entidade é uma máquina de estados: caso o usuário tenha optado por
gerar uma PRI estável, a porta enable recebe o bit 0 e tem-se na saída o endereço de
uma única PRI selecionada. Para a PRI Staggered, a porta enable recebe o bit 1, a
19
máquina muda de estados a cada evento de clock e joga naquele momento o endereço da
PRI selecionada na porta de saída.
Uma função parametrizada de memória ROM, recebe esse endereço e tem-se
então na saída uma palavra de 12 bits associada às PRI’s selecionadas.
O diagrama gerpri tem como portas de entrada um barramento de 12 bits e um
clock, e como saída um bit chamado de clk_pri. O diagrama é composto pelas funções
parametrizadas counter e compare. A primeira é um contador que foi especificado para
fazer contagens crescentes de até 12 bits, de acordo com o clock do sistema. A
contagem é reiniciada por uma porta de clear assíncrono. A segunda função recebe em
uma das portas de entrada esta contagem. Na outra porta recebe a palavra de bits
associada à PRI selecionada. Os valores são comparados e toda vez que forem idênticos
a porta de saída recebe o bit 1, e reinicia a contagem. Essa porta de saída é também a
saída do diagrama e representa um clock para geração de PRI.
O diagrama gerlp tem como portas de entrada um barramento de nove bits, um
bit de clock do sistema e um bit do clock de PRI. Como saída tem um bit do clock,
basicamente uma divisão do clock do sistema, que atua sobre o switch, gerando um
pulso com a LP e a PRI desejadas. Este diagrama, de forma análoga ao anterior, é
composto pelas funções parametrizadas counter e compare, além de dois flip-flop D. O
primeiro flip-flop D, com preset e clear assíncrono, tem entrada fixada em nível alto e o
clock de transição é aquele gerado pelo diagrama gerpri. A saída do dispositivo é ligada
na entrada do segundo flip-flop, na entrada que habilita do contador e, após passar por
um inversor, na entrada de clear do contador. O segundo flip-flop, mantém o nível de
entrada do sinal, operando com o clock do sistema. O comparador, por sua vez, recebe
em uma das portas de entrada os nove bits da contagem e os compara com os nove bits
que representam ao LP selecionada pelo usuário. A cada valor idêntico, a saída do
comparador recebe nível alto. Esse valor aciona o clear do primeiro flip-flop, jogando
nível baixo na saída. A saída do segundo flip-flop representa então a saída do diagrama.
20
Figura 5.3 – Diagrama do gerador de PRI e LP.
5.1.4 – Controle do Atenuador
A diagrama Atenua, que representa uma entidade de mesmo nome, tem como
portas de entrada um bit de clock e um bit de enable, e como porta de saída um
barramento de 10 bits ligado ao dispositivo atenuador. O bit enable recebe o comando
de selecionado pelo usuário. Caso a opção de varredura não tenha sido selecionado, o
bit recebe o valor 0 e o barramento de saída para o atenuador manter tem os bits em
nível baixo, ou seja, não é feita a atenuação. Caso contrário, o bit recebe o valor 1 e a
cada evento de clock, um contador atenua o nível de RF até o limite máximo, onde
então é simulado o espaço entre o ciclo de varredura atual e o próximo.
Figura 5.4 – Diagrama do Atenuador.
5.2 – Ambiente de Desenvolvimento Qt e C++
Para simular e testar o gerador de sinais radar foi criado um software utilizado o
ambiente de desenvolvimento Qt Creator. Nele foram criados a interface gráfica e os
algoritmos utilizando a linguagem de programação C++, que passam os parâmetros
escolhidos pelo usuário para gerar o tipo de sinal radar desejado.
21
A interface (Figura 5.5) foi criada para ser utilizada de maneira rápida e fácil.
Nela é possível escolher a frequência desejada, a possibilidade de gerar agilidade linear
em frequência, escolher a largura de pulso, a varredura, e o intervalo de repetição de
pulso.
Figura 5.5 – Interface gráfica do software.
5.2.1 – Cálculo da Frequência
Ao escolher a frequência que se deseja simular, o software realiza o cálculo da
palavra de bits associada. Conforme explicado no capítulo anterior, o DTO trabalha
com uma palavra de 16 bits, sendo 14 bits de controle 2 bits de seleção de banda.
22
Primeiro calcula-se o valor decimal associado à frequência desejada, utilizando a
seguinte fórmula:
𝑓𝑑 = (𝑓𝑠𝑒𝑙 − 𝑓𝑖
𝑓𝑓 − 𝑓𝑖) × 214
onde:
𝑓𝑑 = 𝑓𝑟𝑒𝑞𝑢ê𝑛𝑐𝑖𝑎 𝑒𝑚 𝑑𝑒𝑐𝑖𝑚𝑎𝑙;
𝑓𝑠𝑒𝑙 = 𝑓𝑟𝑒𝑞𝑢ê𝑛𝑐𝑖𝑎 𝑠𝑒𝑙𝑒𝑐𝑖𝑜𝑛𝑎𝑑𝑎 𝑝𝑒𝑙𝑜 𝑢𝑠𝑢á𝑟𝑖𝑜;
𝑓𝑖 = 𝑓𝑟𝑒𝑞𝑢ê𝑛𝑐𝑖𝑎 𝑖𝑛𝑖𝑐𝑖𝑎𝑙 𝑑𝑒 𝑢𝑚𝑎 𝑑𝑒𝑡𝑒𝑟𝑚𝑖𝑛𝑎𝑑𝑎 𝑏𝑎𝑛𝑑𝑎;
𝑓𝑓 = 𝑓𝑟𝑒𝑞𝑢ê𝑛𝑐𝑖𝑎 𝑓𝑖𝑛𝑎𝑙 𝑑𝑒 𝑢𝑚𝑎 𝑑𝑒𝑡𝑒𝑟𝑚𝑖𝑛𝑎𝑑𝑎 𝑏𝑎𝑛𝑑𝑎;
Feito esse cálculo, o resultado é convertido em uma palavra binária com 14 bits,
que representa a frequência selecionada pelo usuário. A tabela com todos os valores
pode ser encontrada no apêndice C. Para a seleção de uma das três bandas de
frequência, 2 bits são indexados a esta palavra, e então duas palavras de 8 bits são
transmitidas via porta serial.
5.2.2 – Tempos de PRI
Ao escolher um tempo de PRI é feito uma conversão para uma palavra serial
sequencial de cinco bits iniciando em 00000 até 11100. Estes valores servem como
ponteiros para os valores dos divisores de frequência em um arquivo de memória na
FPGA, conforme descrito no capítulo anterior.
5.2.3– Agilidade em frequência
A opção de agilidade linear em frequência está condicionada à seleção de um
check-box. Se esta opção estiver selecionada um bit de controle recebe o valor 1. Caso
contrário, o bit enviado recebe o valor 0.
23
5.2.4 – Variação de PRI
Como é possível fazer variações na PRI é enviado também um bit de controle,
que define entre um PRI constante ou staggered. Caso a opção seja PRI constante, o bit
de controle recebe o valor 0. Já para a PRI staggered o valor recebido é 1.
5.2.5 – Varredura Circular
A opção de varredura circular está condicionada também à seleção de um check-
box. O bit de controle recebo o valor 0 caso não seja desejado simular o padrão de
varredura. Caso contrário, o valor recebido é 1.
As variações destes três bits de controle são comparadas e enviados via porta
serial.
Agilidade Variação de
PRI
Varredura
Circular
Bits de
Controle
0 0 0 000
0 0 1 001
0 1 0 010
0 1 1 011
1 0 0 100
1 0 1 101
1 1 0 110
1 1 1 111
Tabela 5.1 – Bits de Controle
24
Capítulo 6
Simulações
As simulações do gerador de sinais radar foram realizadas no laboratório de RF
do IPqM. O gerador radar foi acoplado em uma antena que transmite o sinal através de
uma câmara anecóica. O sinal que sai da câmara é analisado pelo sistema de
reconhecimento MAGE. O pulso radar gerado foi medido também por analisadores de
espectro e osciloscópios, para certificar que o sinal reconhecido pelo MAGE era
idêntico ao sinal gerado pelo equipamento desenvolvido.
Diversos cenários, com diversos tipos de parâmetros escolhidos foram
simulados.
25
6.1 – Cenário 1
Neste cenário foi simulado um radar com as seguintes características:
Frequência de 6GHz;
Largura de Pulso de 0,5 us;
Intervalo de Repetição de Pulso constante de 0,01 ms;
Os resultados no analisador de espectro e no osciloscópio foram as seguintes:
Figura 6.1 – Resultado analisador de espectro no cenário 1
Figura 6.2 – Resultado osciloscópio no cenário 1
26
6.2 – Cenário 2
Neste cenário foi simulado um radar com as seguintes características:
Frequência de 12GHz;
Intervalo de Repetição de Pulso staggered em 2 níveis;
Varredura Circular
Os resultados no analisador de espectro e no osciloscópio foram as seguintes:
Figura 6.3 – Resultado analisador de espectro no cenário 2
Figura 6.4 – Resultado osciloscópio no cenário 2
27
6.3 – Cenário 3
Neste cenário foi simulado um radar com as seguintes características:
Frequência de 6GHz;
Varredura Circular
Os resultados no analisador de espectro e no osciloscópio foram as seguintes:
Figura 6.5 – Resultado analisador de espectro no cenário 3
Figura 6.6 – Resultado osciloscópio no cenário 3
28
6.4 – Cenário 4
Neste cenário foi simulado um radar com as seguintes características:
Frequência de 8GHz;
Intervalo de Repetição de Pulso staggered em 2 níveis – 1ms e 1,5ms;
Os resultados no analisador de espectro e no osciloscópio foram as seguintes:
Figura 6.7 – Resultado analisador de espectro no cenário 4
Figura 6.8 – Resultado osciloscópio no cenário 4
29
Figura 6.9 – Resultado osciloscópio no cenário 4
6.5 – Cenário 5
Neste cenário foi simulado um radar com as seguintes características:
Frequência de 8GHz com agilidade linear;
O resultado no analisador de espectro foi a seguinte:
Figura 6.10 – Resultado analisador de espectro no cenário 5
30
Capítulo 7
Conclusões
O desenvolvimento de novas tecnologias, de modo geral, tem ocorrido muito
rapidamente, e as pesquisas em guerra eletrônica acompanham este ritmo. Por isso, o
desenvolvimento do Gerador de Sinais Radar foi desafiador e gratificante. Com a
utilização desta ferramenta, foi possível observar o funcionamento dos equipamentos de
medida de apoio à guerra eletrônica da Marinha do Brasil, fazendo simulações de
detecção de classificação de emissões de radar.
O Gerador de Sinais Radar reproduz a emissão de parâmetros de alguns dos
principais radares utilizados. Ainda assim, a simulação de alguns parâmetros não
abordados neste projeto, como varreduras cônica e setorial, que demandariam
movimentação mecânica, ou realizar a inversão de fases dentro de um pulso, simulando
um código Barker, ficam com ideias para o aperfeiçoamento desta ferramenta no futuro.
31
Bibliografia
[1] SCHLEHER, D. C., Electronic Warfare in the Information Age. Boston, Artec
House, 1999.
[2] DARGAN, D., Alguns tópicos sobre MAGE. Trabalho técnico – IPqM. Rio de
Janeiro, 1994.
[3] VILLAREAL, L., “Radar Systems”, Naval Education and Training Command, v.4,
1993.
[4] SLOAN, F. E., COTE, G. J., “Radar Principles”, Naval Education and Training
Command, pp. 1-2, 1998.
[5] ERCEGOVAC, M., LANG, T., MORENO, J. H., Introdução aos Sistemas Digitais.
Porto Alegre, Bookman, 2000
[6] HERLEY, “Digitally Tuned Oscilator (DTO) Selection Guide”, http://herley.com
(Acesso em 15 Julho 2012).
[7] Wiegand, R. J., Radar Electronic Countermeasures System Desing. Boston, Artech
House, 1991
[8] HERLEY, “10 Bit Digital PIN Diode Attenuators Selection Guide”,
http://herley.com (Acesso em 15 Julho 2013).
32
Apêndice A
Esquemáticos
33
clo
ck_div
CLK
_2M
CLK
_4M
Data
_IN
[7..
0]
refre
q_in
[15..
0]
init_ate
nua
pri1[4
..0]
pri2[4
..0]
pri3[4
..0]
pri4[4
..0]
sta
g_en
lp_bits[8
..0]
agilid
ade_en
VC
CS
erial_
ININ
PU
T
VC
CC
LK
_6M
INP
UT
VC
CC
LK
_4M
INP
UT
Data
_S
hif
t[15..
0]
OU
TP
UT
Serial_
Out
OU
TP
UT
ate
nuador[
9..
0]
OU
TP
UT
Sw
itch
OU
TP
UT
clk
Sta
rt
LP
Cont_
3B
it
inst6
clo
ck_div
seria
l_data
_in
CLK
_2M
Cle
ar_In
parale
lo_data
_out[8..1]
enable
reset
regis
trador_z
inst1
0
OR
2
inst1
1
NO
T
inst1
2
Hab_S
tart
Dado[1
5..0]
Clk
Dado_1[7
..0]
STO
P
STO
P2
Load_Es
Sta
rt_
Es
Div
_D
ado
inst1
7
Data
_D
[7..0]
Load
clo
ck_div
Sta
rt
CLK
_2M
Ena
Seria
l_O
ut
enable
reset_
out
Tx_Para_S
er
inst
CLK
_6M
clo
ck_div
Div
_C
LK
_625
inst1
up c
ounte
r
clo
ck
q[0
]
lpm
_counte
r0
inst2 C
LK
_2M
lp_sta
rt
lp_bits[8
..0]
lp
gerlp
inst4
address[4
..0]
q[1
1..0]
lpm
_ro
m0
inst8
NO
T
inst1
4
CLK
_2M
pri1
_bits[1
1..0]
pri
gerpri
ins
t3
clk
enable
pri1[4
..0]
pri2[4
..0]
pri3[4
..0]
pri4[4
..0]
pri_sel[4..
0]
contr
ole
_pri
inst1
3
clk
_agilid
ade
agilid
ade_en
freq_in
[15..0]
freq_out[15..0]
contr
ole
_freq
inst1
5
clk
enable
AT[9
..0]
Ate
nua
inst7
clk
Din
[7..
0]
Qout[
15..
0]
agilid
ade_en
Sta
rt
Ate
nuador
pri1[4
..0]
pri2[4
..0]
pri3[4
..0]
pri4[4
..0]
sta
ggere
d_en
lp[8
..0]
Cic
lo_P
res
inst5
CLK
_6M
CLK
_2M
Hab_S
tart
clo
ck_div
CLK
_2M
STO
P
Data
_IN
[7..
0]
enable
_in
re
clk
_pri
sta
g_en
pri1[4
..0]
pri2[4
..0]
pri3[4
..0]
pri4[4
..0]
pri_sel[4..
0]
CLK
_2M
pri_bits[1
1..
0]
lp_bits[8
..0]
CLK
_2M
lp
clk
_pri
clk
_pri
lp
init_ate
nua
CLK
_2M
Data
_S
hif
t[15..
0]
Dado_1[7
..0]
STO
P
STO
P2
Load_E
s
Sta
rt_E
s
Hab_S
tart
reset_
out
fre
q_in
[15..
0]
agilid
ade_en
lp
Dado_1[7
..0]
Load_E
s
clo
ck_div
Sta
rt_E
s
CLK
_2M
STO
P2
enalb
le
reset_
out
34
35
36
Apêndice B
Códigos fonte
geradorradar.h
#ifndef GERADORRADAR_H
#define GERADORRADAR_H
#include <QMainWindow>
#include <qextserialport.h>
#include <QBitArray>
namespace Ui {
class GeradorRadar;
}
class GeradorRadar : public QMainWindow {
Q_OBJECT
public:
GeradorRadar(QWidget *parent = 0);
~GeradorRadar();
protected:
void changeEvent(QEvent *e);
QByteArray frequencyConvertion(double);
QByteArray priConvertion(int);
QByteArray lpConvertion(int);
private slots:
void transmit();
private:
Ui::GeradorRadar *ui;
double frequency;
double lp;
double pri;
QextSerialPort *port;
};
#endif // GERADORRADAR_H
geradorradar.cpp
#include "geradorradar.h"
#include "ui_geradorradar.h"
#include <qextserialport.h>
#include <QtGui/QApplication>
#include <QMessageBox>
#include <QBitArray>
#include <QString>
GeradorRadar::GeradorRadar(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::GeradorRadar)
{
ui->setupUi(this);
}
37
GeradorRadar::~GeradorRadar()
{
delete ui;
}
QByteArray GeradorRadar::frequencyConvertion(double frequency)
{
QByteArray data, binFreq;
int decFreq, hexFreq;
bool ok;
if (frequency == 6.0)
data = QByteArray::fromHex("0002");
else if (frequency < 9.0)
{
decFreq = ((frequency - 6.0)/3.0)*16384;
binFreq = QByteArray::number(decFreq,2);
binFreq.append("10");
hexFreq = binFreq.toInt(&ok, 2);
if (!ok)
QMessageBox::warning( this, "Error","Could not trasmit
correctly");
data = QByteArray::fromHex(QByteArray::number(hexFreq,16));
}
else if (frequency == 9.0)
data = QByteArray::fromHex("0001");
else if ((frequency > 9.0) & (frequency <= 12.5))
{
decFreq = ((frequency - 9.0)/3.5)*16383;
binFreq = QByteArray::number(decFreq,2);
binFreq.append("01");
hexFreq = binFreq.toInt(&ok, 2);
if (!ok)
QMessageBox::warning(this, "Error","Could not trasmit
correctly. Try Again");
data = QByteArray::fromHex(QByteArray::number(hexFreq,16));
}
else if ((frequency > 12.5) & (frequency <= 18.0))
{
decFreq = ((frequency - 12.5)/5.5)*16383;
binFreq = QByteArray::number(decFreq,2);
binFreq.append("11");
hexFreq = binFreq.toInt(&ok, 2);
if (!ok)
QMessageBox::warning( this, "Error","Could not trasmit
correctly");
data = QByteArray::fromHex(QByteArray::number(hexFreq,16));
}
return data;
}
QByteArray GeradorRadar::priConvertion(int chave)
{
QByteArray data;
if (chave == 0) data = QByteArray::fromHex("00");
else if (chave == 1) data = QByteArray::fromHex("01");
else if (chave == 2) data = QByteArray::fromHex("02");
else if (chave == 3) data = QByteArray::fromHex("03");
else if (chave == 4) data = QByteArray::fromHex("04");
else if (chave == 5) data = QByteArray::fromHex("05");
else if (chave == 6) data = QByteArray::fromHex("06");
else if (chave == 7) data = QByteArray::fromHex("07");
38
else if (chave == 8) data = QByteArray::fromHex("08");
else if (chave == 9) data = QByteArray::fromHex("09");
else if (chave == 10) data = QByteArray::fromHex("0A");
else if (chave == 11) data = QByteArray::fromHex("0B");
else if (chave == 12) data = QByteArray::fromHex("0C");
else if (chave == 13) data = QByteArray::fromHex("0D");
else if (chave == 14) data = QByteArray::fromHex("0E");
else if (chave == 15) data = QByteArray::fromHex("0F");
else if (chave == 16) data = QByteArray::fromHex("10");
else if (chave == 17) data = QByteArray::fromHex("11");
else if (chave == 18) data = QByteArray::fromHex("12");
else if (chave == 19) data = QByteArray::fromHex("13");
else if (chave == 20) data = QByteArray::fromHex("14");
else if (chave == 21) data = QByteArray::fromHex("15");
else if (chave == 22) data = QByteArray::fromHex("16");
else if (chave == 23) data = QByteArray::fromHex("17");
else if (chave == 24) data = QByteArray::fromHex("18");
else if (chave == 25) data = QByteArray::fromHex("19");
else if (chave == 26) data = QByteArray::fromHex("1A");
else if (chave == 27) data = QByteArray::fromHex("1B");
else if (chave == 28) data = QByteArray::fromHex("1C");
return data;
}
QByteArray GeradorRadar::lpConvertion(int chave)
{
QByteArray data;
if (chave == 0) data = QByteArray::fromHex("01");
else if (chave == 1) data = QByteArray::fromHex("02");
else if (chave == 2) data = QByteArray::fromHex("03");
else if (chave == 3) data = QByteArray::fromHex("04");
else if (chave == 4) data = QByteArray::fromHex("05");
else if (chave == 5) data = QByteArray::fromHex("06");
else if (chave == 6) data = QByteArray::fromHex("07");
else if (chave == 7) data = QByteArray::fromHex("08");
else if (chave == 8) data = QByteArray::fromHex("09");
else if (chave == 9) data = QByteArray::fromHex("0A");
else if (chave == 10) data = QByteArray::fromHex("0B");
else if (chave == 11) data = QByteArray::fromHex("0C");
else if (chave == 12) data = QByteArray::fromHex("0D");
else if (chave == 13) data = QByteArray::fromHex("0E");
else if (chave == 14) data = QByteArray::fromHex("0F");
else if (chave == 15) data = QByteArray::fromHex("10");
else if (chave == 16) data = QByteArray::fromHex("11");
else if (chave == 17) data = QByteArray::fromHex("12");
else if (chave == 18) data = QByteArray::fromHex("13");
else if (chave == 19) data = QByteArray::fromHex("14");
else if (chave == 20) data = QByteArray::fromHex("28");
else if (chave == 21) data = QByteArray::fromHex("3C");
else if (chave == 22) data = QByteArray::fromHex("50");
else if (chave == 23) data = QByteArray::fromHex("64");
else if (chave == 24) data = QByteArray::fromHex("78");
else if (chave == 25) data = QByteArray::fromHex("8C");
else if (chave == 26) data = QByteArray::fromHex("A0");
else if (chave == 27) data = QByteArray::fromHex("B4");
else if (chave == 28) data = QByteArray::fromHex("C8");
else if (chave == 29) data = QByteArray::fromHex("90");
return data;
}
void GeradorRadar::transmit()
39
{
QByteArray bytes;
bool ctrlDto, ctrlPri, ctrlAtenuador;
//Abrir Porta Serial
port = new QextSerialPort("COM1");
port->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
if (port->isOpen())
{
port->setBaudRate(BAUD9600);
port->setFlowControl(FLOW_OFF);
port->setParity(PAR_NONE);
port->setDataBits(DATA_8);
port->setStopBits(STOP_1);
}
else QMessageBox::warning(this,"Error","Serial Port is not open");
// DTO
QByteArray dto = GeradorRadar::frequencyConvertion(ui-
>frequenciaDoubleSpinBox->value());
bytes.append(dto);
if (ui->agilidadeLinearCheckBox->isChecked()) ctrlDto = 1;
else ctrlDto = 0;
//PRI
QByteArray pri1 = GeradorRadar::priConvertion(ui->pri1ComboBox-
>currentIndex());
QByteArray pri2 = GeradorRadar::priConvertion(ui->pri2ComboBox-
>currentIndex());
QByteArray pri3 = GeradorRadar::priConvertion(ui->pri3ComboBox-
>currentIndex());
QByteArray pri4 = GeradorRadar::priConvertion(ui->pri4ComboBox-
>currentIndex());
if (ui->constanteRadioButton->isChecked())
{
ctrlPri = 0;
bytes.append(pri1);
bytes.append(pri2);
bytes.append(pri3);
bytes.append(pri4);
}
else if (ui->stagerred2RadioButton->isChecked())
{
ctrlPri = 1;
bytes.append(pri1);
bytes.append(pri2);
bytes.append(pri1);
bytes.append(pri2);
}
else if (ui->stagerred3RadioButton->isChecked())
{
ctrlPri = 1;
bytes.append(pri1);
bytes.append(pri2);
bytes.append(pri3);
bytes.append(QByteArray::fromHex("FF"));
}
else if (ui->stagerred4RadioButton->isChecked())
{
ctrlPri = 1;
bytes.append(pri1);
bytes.append(pri2);
40
bytes.append(pri3);
bytes.append(pri4);
}
//LP
QByteArray lp = GeradorRadar::lpConvertion(ui->lpComboBox-
>currentIndex());
bytes.append(lp);
//Atenuador
if (ui->varreduraCheckBox->isChecked()) ctrlAtenuador = 1;
else ctrlAtenuador = 0;
//Bits de Controle
if ((ctrlDto == 0) & (ctrlPri == 0) & (ctrlAtenuador == 0))
bytes.append(QByteArray::fromHex("00"));
else if ((ctrlDto == 0) & (ctrlPri == 0) & (ctrlAtenuador == 1))
bytes.append(QByteArray::fromHex("01"));
else if ((ctrlDto == 0) & (ctrlPri == 1) & (ctrlAtenuador == 0))
bytes.append(QByteArray::fromHex("02"));
else if ((ctrlDto == 0) & (ctrlPri == 1) & (ctrlAtenuador == 1))
bytes.append(QByteArray::fromHex("03"));
else if ((ctrlDto == 1) & (ctrlPri == 0) & (ctrlAtenuador == 0))
bytes.append(QByteArray::fromHex("04"));
else if ((ctrlDto == 1) & (ctrlPri == 0) & (ctrlAtenuador == 1))
bytes.append(QByteArray::fromHex("05"));
else if ((ctrlDto == 1) & (ctrlPri == 1) & (ctrlAtenuador == 0))
bytes.append(QByteArray::fromHex("06"));
else if ((ctrlDto == 1) & (ctrlPri == 1) & (ctrlAtenuador == 1))
bytes.append(QByteArray::fromHex("07"));
//Transmissão
port->write(bytes);
//Fechar Porta Serial
port->close();
}
void GeradorRadar::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
---------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.all;
41
---------------------------------------------
ENTITY Ciclo_Pres IS
PORT (
clk: IN STD_LOGIC;
En_In: IN STD_LOGIC;
Din: IN STD_LOGIC_VECTOR (7 DOWNTO 0);
Qout: OUT STD_LOGIC_VECTOR (15 DOWNTO 0);
agilidade_en : OUT STD_LOGIC;
Start: OUT STD_LOGIC:='1';
Atenuador: OUT STD_LOGIC;
pri1: OUT STD_LOGIC_VECTOR (4 DOWNTO 0);
pri2: OUT STD_LOGIC_VECTOR (4 DOWNTO 0);
pri3: OUT STD_LOGIC_VECTOR (4 DOWNTO 0);
pri4: OUT STD_LOGIC_VECTOR (4 DOWNTO 0);
staggered_en : OUT STD_LOGIC ;
lp: OUT STD_LOGIC_VECTOR (8 DOWNTO 0)
);
END Ciclo_Pres;
---------------------------------------------
ARCHITECTURE cp OF Ciclo_Pres IS
BEGIN
PROCESS (Din, clk)
VARIABLE count: INTEGER := 0;
VARIABLE temp1: STD_LOGIC_VECTOR (7 DOWNTO 0);
VARIABLE temp2: STD_LOGIC_VECTOR (7 DOWNTO 0);
VARIABLE temp3: STD_LOGIC_VECTOR (7 DOWNTO 0);
VARIABLE temp4: STD_LOGIC_VECTOR (7 DOWNTO 0);
VARIABLE temp5: STD_LOGIC_VECTOR (7 DOWNTO 0);
VARIABLE temp6: STD_LOGIC_VECTOR (7 DOWNTO 0);
VARIABLE temp7: STD_LOGIC_VECTOR (7 DOWNTO 0);
VARIABLE temp8: STD_LOGIC_VECTOR (7 DOWNTO 0);
VARIABLE temp9: STD_LOGIC_VECTOR (15 DOWNTO 0);
BEGIN
IF (clk'event and clk='1') THEN
count := count + 1;
IF (count = 1) THEN
temp1 := Din;
Start <= '0';
ELSIF (count = 2) THEN
temp2 := Din;
Start <= '0';
ELSIF (count = 3) THEN
temp3 := Din;
Start <= '0';
ELSIF (count = 4) THEN
temp4 := Din;
Start <= '0';
ELSIF (count = 5) THEN
temp5 := Din;
Start <= '0';
ELSIF (count = 6) THEN
temp6 := Din;
Start <= '0';
ELSIF (count = 7) THEN
temp7 := Din;
Start <= '0';
ELSIF (count = 8) THEN
temp8 := Din;
count := 0;
42
Start <= '1';
END IF;
END IF;
--DTO
temp9 := (temp1(7 DOWNTO 0) & temp2(7 DOWNTO 0));
Qout <= temp9;
--PRI
pri1 <= temp3(4 DOWNTO 0);
pri2 <= temp4(4 DOWNTO 0);
pri3 <= temp5(4 DOWNTO 0);
pri4 <= temp6(4 DOWNTO 0);
--LP
if (temp7 = "10010000") then
lp <= ('1' & temp7);
else
lp <= ('0' & temp7);
end if;
--Bits Controle
agilidade_en <= temp8(2);
staggered_en <= temp8(1);
Atenuador <= temp8(0);
END PROCESS;
END cp;
-------------------------------------------------
---------------------------------------------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.NUMERIC_BIT.ALL;
USE IEEE.STD_LOGIC_ARITH.all;
---------------------------------------------
ENTITY controle_pri IS
PORT (
clk: IN std_logic;
enable: IN std_logic;
pri1: IN STD_LOGIC_VECTOR (4 DOWNTO 0);
pri2: IN STD_LOGIC_VECTOR (4 DOWNTO 0);
pri3: IN STD_LOGIC_VECTOR (4 DOWNTO 0);
pri4: IN STD_LOGIC_VECTOR (4 DOWNTO 0);
pri_sel: OUT STD_LOGIC_VECTOR (4 DOWNTO 0)
);
END controle_pri;
43
---------------------------------------------
ARCHITECTURE cp OF controle_pri IS
TYPE STATE_TYPE IS (s0, s1, s2, s3);
SIGNAL state : STATE_TYPE := s0;
BEGIN
PROCESS (clk, enable)
BEGIN
if (enable = '0') then
state <= s0;
elsif (clk'event and clk='1') then
CASE state IS
WHEN s0=>
IF enable = '1' THEN
state <= s1;
ELSE
state <= s0;
END IF;
WHEN s1=>
IF enable = '1' THEN
state <= s2;
ELSE
state <= s1;
END IF;
WHEN s2=>
IF enable = '1' THEN
state <= s3;
ELSE
state <= s2;
END IF;
WHEN s3=>
IF enable = '1' THEN
state <= s0;
ELSE
state <= s3;
END IF;
END CASE;
END IF;
END PROCESS;
PROCESS (state, pri1, pri2, pri3, pri4)
BEGIN
CASE state IS
WHEN s0 =>
pri_sel <= pri1;
WHEN s1 =>
pri_sel <= pri2;
WHEN s2 =>
pri_sel <= pri3;
WHEN s3 =>
44
pri_sel <= pri4;
END CASE;
END PROCESS;
END cp;
---------------------------------------------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.NUMERIC_BIT.ALL;
USE IEEE.STD_LOGIC_ARITH.all;
---------------------------------------------
ENTITY Atenua IS
PORT ( clk: IN std_logic;
enable : IN STD_LOGIC;
AT: OUT std_logic_vector (9 DOWNTO 0)
);
END Atenua;
---------------------------------------------
ARCHITECTURE sh OF Atenua IS
SIGNAL temp : std_logic_vector(4 downto 0) := "11111";
SIGNAL aux : integer := 0;
BEGIN
PROCESS (clk, enable)
BEGIN
if (enable = '0') then
AT <= "0000000000";
else
if (clk'event and clk='1') then
aux <= aux + 1 ;
if (aux < 8) then
temp <= temp - "00011";
AT <= ('0' & temp & "0000");
elsif (aux >= 8 and aux < 17) then
temp <= temp + "00011";
AT <= ('0' & temp & "0000");
elsif (aux >= 17 and aux < 4000) then
AT <= "1111111111";
else
aux <= 0;
temp <= "11111";
end if;
end if;
end if;
END PROCESS;
45
END sh;
-------------------------------------------------
-------------------------------------------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.NUMERIC_BIT.ALL;
USE IEEE.STD_LOGIC_ARITH.all;
use IEEE.numeric_std.all;
---------------------------------------------
ENTITY agilidade_freq IS
PORT ( clk: IN std_logic;
input: IN std_logic;
freq_in : IN STD_LOGIC_VECTOR (15 DOWNTO 0);
add_sub : OUT STD_LOGIC;
freq_out: OUT std_logic_vector (15 DOWNTO 0);
operador: OUT STD_LOGIC_VECTOR (15 DOWNTO 0)
);
END agilidade_freq;
---------------------------------------------
ARCHITECTURE af OF agilidade_freq IS
TYPE STATE_TYPE IS (s0, s1, s2,s3, s4, s5,s6, s7, s8,s9, s10);
SIGNAL state : STATE_TYPE;
signal binario_in : std_ulogic_vector(15 downto 0);
signal inteiro : integer;
signal binario_out : std_ulogic_vector(15 downto 0);
--
BEGIN
PROCESS (clk, input)
BEGIN
if (input = '0') then
state <= s5;
elsif (clk'event and clk='1') then
CASE state IS
WHEN s0=>
IF input = '1' THEN
state <= s1;
ELSE
state <= s0;
END IF;
WHEN s1=>
IF input = '1' THEN
state <= s2;
ELSE
46
state <= s1;
END IF;
WHEN s2=>
IF input = '1' THEN
state <= s3;
ELSE
state <= s2;
END IF;
WHEN s3=>
IF input = '1' THEN
state <= s4;
ELSE
state <= s3;
END IF;
WHEN s4=>
IF input = '1' THEN
state <= s5;
ELSE
state <= s4;
END IF;
WHEN s5=>
IF input = '1' THEN
state <= s6;
ELSE
state <= s5;
END IF;
WHEN s6=>
IF input = '1' THEN
state <= s7;
ELSE
state <= s6;
END IF;
WHEN s7=>
IF input = '1' THEN
state <= s8;
ELSE
state <= s7;
END IF;
WHEN s8=>
IF input = '1' THEN
state <= s9;
ELSE
state <= s8;
END IF;
WHEN s9=>
IF input = '1' THEN
state <= s10;
ELSE
state <= s9;
END IF;
47
WHEN s10=>
IF input = '1' THEN
state <= s0;
ELSE
state <= s10;
END IF;
END CASE;
END IF;
END PROCESS;
PROCESS (state, freq_in)
BEGIN
freq_out <= freq_in;
IF (freq_in(1 DOWNTO 0) = "01") THEN
CASE state IS
WHEN s0 =>
operador <= "0010101010101000";
add_sub <= '0';
WHEN s1 =>
operador <= "0010001000100000";
add_sub <= '0';
WHEN s2 =>
operador <= "0001100110011000";
add_sub <= '0';
WHEN s3 =>
operador <= "0001000100010000";
add_sub <= '0';
WHEN s4 =>
operador <= "0000100010001000";
add_sub <= '0';
WHEN s5 =>
operador <= "0000000000000000";
add_sub <= '1';
WHEN s6 =>
operador <= "0000100010001000";
add_sub <= '1';
WHEN s7 =>
operador <= "0001000100010000";
add_sub <= '1';
WHEN s8 =>
operador <= "0001100110011000";
add_sub <= '1';
WHEN s9 =>
operador <= "0010001000100000";
add_sub <= '1';
WHEN s10 =>
operador <= "0010101010101000";
add_sub <= '1';
END CASE;
ELSIF (freq_in(1 DOWNTO 0) = "10") THEN
48
CASE state IS
WHEN s0 =>
operador <= "0010010010010000";
add_sub <= '0';
WHEN s1 =>
operador <= "0001110101000000";
add_sub <= '0';
WHEN s2 =>
operador <= "0001010111110000";
add_sub <= '0';
WHEN s3 =>
operador <= "0000111010100000";
add_sub <= '0';
WHEN s4 =>
operador <= "0000011101010000";
add_sub <= '0';
WHEN s5 =>
operador <= "0000000000000000";
add_sub <= '1';
WHEN s6 =>
operador <= "0000011101010000";
add_sub <= '1';
WHEN s7 =>
operador <= "0000111010100000";
add_sub <= '1';
WHEN s8 =>
operador <= "0001010111110000";
add_sub <= '1';
WHEN s9 =>
operador <= "0001110101000000";
add_sub <= '1';
WHEN s10 =>
operador <= "0010010010010000";
add_sub <= '1';
END CASE;
ELSIF (freq_in(1 DOWNTO 0) = "11") THEN
CASE state IS
WHEN s0 =>
operador <= "0001011101001000";
add_sub <= '0';
WHEN s1 =>
operador <= "0001001010100000";
add_sub <= '0';
WHEN s2 =>
operador <= "0000110111111000";
add_sub <= '0';
WHEN s3 =>
operador <= "0000100101010000";
add_sub <= '0';
WHEN s4 =>
49
operador <= "0000010010101000";
add_sub <= '0';
WHEN s5 =>
operador <= "0000000000000000";
add_sub <= '1';
WHEN s6 =>
operador <= "0000010010101000";
add_sub <= '1';
WHEN s7 =>
operador <= "0000100101010000";
add_sub <= '1';
WHEN s8 =>
operador <= "0000110111111000";
add_sub <= '1';
WHEN s9 =>
operador <= "0001001010100000";
add_sub <= '1';
WHEN s10 =>
operador <= "0001011101001000";
add_sub <= '1';
END CASE;
END IF;
END PROCESS;
END af;
-------------------------------------------------
50
Apêndice C
Tabela de Frequências
BAND 1 - 10
BAND 2 - 01 Decimal Hexa Frequency
Decimal Hexa Frequency
0 0002 6 GHz
0 0001 9 GHz
546 088A 6,1 GHz
468 0751 9,1 GHz
1092 1112 6,2 GHz
936 0EA1 9,2 GHz
1638 199A 6,3 GHz
1404 15F1 9,3 GHz
2184 2222 6,4 GHz
1872 1D41 9,4 GHz
2730 2AAA 6,5 GHz
2340 2491 9,5 GHz
3276 3332 6,6 GHz
2808 2BE1 9,6 GHz
3822 3BBA 6,7 GHz
3276 3331 9,7 GHz
4369 4446 6,8 GHz
3744 3A81 9,8 GHz
4915 4CCE 6,9 GHz
4213 41D5 9,9 GHz
5461 5556 7 GHz
4681 4925 10 GHz
6007 5DDE 7,1 GHz
5149 5075 10,1 GHz
6553 6666 7,2 GHz
5617 57C5 10,2 GHz
7099 6EEE 7,3 GHz
6085 5F15 10,3 GHz
7645 7776 7,4 GHz
6553 6665 10,4 GHz
8192 8002 7,5 GHz
7021 6DB5 10,5 GHz
8738 888A 7,6 GHz
7489 7505 10,6 GHz
9284 9112 7,7 GHz
7957 7C55 10,7 GHz
9830 999A 7,8 GHz
8426 83A9 10,8 GHz
10376 A222 7,9 GHz
8894 8AF9 10,9 GHz
10922 AAAA 8 GHz
9362 9249 11 GHz
11468 B332 8,1 GHz
9830 9999 11,1 GHz
12014 BBBA 8,2 GHz
10298 A0E9 11,2 GHz
12560 C442 8,3 GHz
10766 A839 11,3 GHz
13106 CCCA 8,4 GHz
11234 AF89 11,4 GHz
13652 D552 8,5 GHz
11702 B6D9 11,5 GHz
14198 DDDA 8,6 GHz
12170 BE29 11,6 GHz
14745 E666 8,7 GHz
12639 C57D 11,7 GHz
15291 EEEE 8,8 GHz
13107 CCCD 11,8 GHz
15837 F776 8,9 GHz
13575 D41D 11,9 GHz
16383 FFFE 9 GHz
14043 DB6D 12 GHz
14511 E2BD 12,1 GHz
14979 EA0D 12,2 GHz
15447 F15D 12,3 GHz
15915 F8AD 12,4 GHz
16383 FFFD 12,5 GHz
51
BAND 3 - 11
Decimal Hexa Frequency
Decimal Hexa Frequency
0 0003 12,5 GHz
8340 8253 15,3 GHz
297 04A7 12,6 GHz
8638 86FB 15,4 GHz
595 094F 12,7 GHz
8936 8BA3 15,5 GHz
893 0DF7 12,8 GHz
9234 904B 15,6 GHz
1191 129F 12,9 GHz
9532 94F3 15,7 GHz
1489 1747 13 GHz
9830 999B 15,8 GHz
1787 1BEF 13,1 GHz
10128 9E43 15,9 GHz
2085 2097 13,2 GHz
10426 A2EB 16 GHz
2383 253F 13,3 GHz
10724 A793 16,1 GHz
2681 29E7 13,4 GHz
11021 AC37 16,2 GHz
2978 2E8B 13,5 GHz
11319 B0DF 16,3 GHz
3276 3333 13,6 GHz
11617 B587 16,4 GHz
3574 37DB 13,7 GHz
11915 BA2F 16,5 GHz
3872 3C83 13,8 GHz
12213 BED7 16,6 GHz
4170 412B 13,9 GHz
12511 C37F 16,7 GHz
4468 45D3 14 GHz
12809 C827 16,8 GHz
4766 4A7B 14,1 GHz
13107 CCCF 16,9 GHz
5064 4F23 14,2 GHz
13405 D177 17 GHz
5362 53CB 14,3 GHz
13702 D61B 17,1 GHz
5659 586F 14,4 GHz
14000 DAC3 17,2 GHz
5957 5D17 14,5 GHz
14298 DF6B 17,3 GHz
6255 61BF 14,6 GHz
14596 E413 17,4 GHz
6553 6667 14,7 GHz
14894 E8BB 17,5 GHz
6851 6B0F 14,8 GHz
15192 ED63 17,6 GHz
7149 6FB7 14,9 GHz
15490 F20B 17,7 GHz
7447 745F 15 GHz
15788 F6B3 17,8 GHz
7745 7907 15,1 GHz
16086 FB5B 17,9 GHz
8043 7DAF 15,2 GHz
16383 FFFF 18 GHz