Introdução à Redes
Sem Fio Inteligentes
Software Defined Radio
Minicurso
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
Cristiano Both, Rafael Kunst, Lucas Bondan,
Maicon Kist, Leonardo Faganello, Lisandro
Granville, Juergen Rochol
`
Roteiro
① Software Defined Radio
① O que é?
② Vantagens e Desvantagens
③ SDR hoje
② GNU Radio
① Visão Geral
② Instalação e Utilização
③ GNU Radio + USRP
③ Resumo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
2
Roteiro
① Software Defined Radio
① O que é?
② Vantagens e Desvantagens
③ SDR hoje
② GNU Radio
① Visão Geral
② Instalação e Utilização
③ GNU Radio + USRP
③ Resumo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
3
O que é SDR ?
 Software Defined Radio
 Rádios implementados em software
 Tecnologia de implementação
 Traz os módulos de processamento de sinais
digitais para perto da antena
 Substitui hardware dedicado por software
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
4
O que é SDR ?
Hardware
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
5
O que é SDR ?
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
6
O que é SDR ?
SDR Ideal
Software
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
5
O que é SDR ?
SDR Ideal
Software
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
5
O que é SDR ?
SDR Real
Software
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
5
Roteiro
① Software Defined Radio
① O que é?
② Vantagens e Desvantagens
③ SDR hoje
② GNU Radio
① Visão Geral
② Instalação e Utilização
③ GNU Radio + USRP
③ Resumo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
10
Vantagens de utilizar SDR
 Flexibilidade
 Redução do tempo de desenvolvimento
 Custo
 Para comercializar poucas unidades
 Inovações:
 Novas técnicas de modulação
 Acesso dinâmico ao espectro
 Rádios Cognitivos
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
11
Desvantagens de utilizar SDR
 Maior consumo de energia
 Maior poder de processamento para realizar a
mesma tarefa do que em um FPGA/ASIC
 Custo
 Para comercializar um produto
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
12
Roteiro
① Software Defined Radio
① O que é?
② Vantagens e Desvantagens
③ SDR hoje
② GNU Radio
① Visão Geral
② Instalação e Utilização
③ GNU Radio + USRP
③ Resumo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
13
Um pouco de história:SPEAKEasy (1/2)
 1991-1995
 Projeto para emular os mais de 10 tipos de
rádios do exército americano
 Frequências de 2 a 2000 MHz
 Possibilitar a integração de novos tipos de
rádios
 Fracassou
 DSPs vs GPP
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
14
Um pouco de história:SPEAKEasy (2/2)
 Lições aprendidas no projeto:
 Utilizar GPP – Moore está do nosso lado
 SPEAKEasy durou 2 ciclos de Moore
 Em 1995 os processadores já eram 4x mais
rápidos
 Não utilizar código específico para um
hardware
 Código do SPEAKEasy era “amarrado” ao DSP
C40 (40MHz)
 Em 1995 o Pentium Pro rodava a 200 MHz
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
15
SDRs hoje (1/2)
 Um PC realiza o processamento de sinais
 O Front-End de rádio é conectado ao PC
 USB, Ethernet, PCI-Express
 Toda a preparação do sinal é feita no Front-End
 Um software no PC substitui o hardware de
processamento de sinais
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
16
SDRs hoje (2/2)
Don't have $1500 to drop on a USRP?
A Linux kernel developer has discovered that a Realtek digital TV
tuner chip has an undocumented mode that turns it into a
software-defined radio, with a frequency range of 64-1700MHz.
The going rate for one of these USB devices can be as low as
US$11. If you're unfamiliar with software-defined radio and have
20 minutes to spare, Balint Seeber has a great video introduction.
Fonte: Slashdot
http://hardware.slashdot.org/story/12/03/31/1914217/softwaredefined-radio-for-11
Projeto Open-Source para o módulo: http://sdr.osmocom.org/trac/
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
17
SDRs amanhã
 Irradiar e receber sinais em qualquer
frequência do espectro
 Obstáculos:
 De hardware: conseguir sintonizar em qualquer
frequência do espectro, taxa de amostragem
 De Software: processamento, restrições de tempo,
estabilidade
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
18
SDR + Rádio Cognitivo
 SDR oferecem a flexibilidade necessária para
implementar um rádio cognitivo
 SDR é um habilitador para rádio cognitivo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
19
Os SDR mais utilizados

 OSSIE
 Sora
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
20
Roteiro
① Software Defined Radio
① O que é?
② Vantagens e Desvantagens
③ SDR hoje
② GNU Radio
① Visão Geral
② Instalação e Utilização
③ GNU Radio + USRP
③ Resumo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
21
O que é o GNU Radio?
 É um SDR
 Gratuito e Open Source
 Licença GPL
 Muito utilizado na academia
 Disciplina de Comunicação de Dados
 Pesquisa
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
22
GNU Radio (1/2)
 Desenvolvimento iniciou em 2001
 Disponível para *nix, Windows e iOS
 Códigos em C++ e Python
 C++: Módulos de processamento de alto
desempenho
 Python: Ligação de módulos. Usado pelo
“usuário final”
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
23
GNU Radio (2/2)
 Não é necessário “programar”
 Ferramenta para “montagem” de um fluxo de
processamento facilita o desenvolvimento de
novos sistemas
 GNU Radio Companion – GRC
 GRC gera o Python final
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
24
Arquitetura


Python é utilizado para a criação
de fluxos de dados (FlowGraphs)
C++ é usado para criar blocos de
processamento de sinais


Biblioteca atual é completa
Python
Desenvolvimento de
FlowGraphs
C++
Módulos de
Processamento de Sinais
Escalonador controla o fluxo das
informações entre os blocos
Escalonador
Controla o Fluxo
de Execução
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
25
GNU Radio + USRP
Python
SWIG
Blocos de Processamento de Sinais em
C++
Interface Gigabit Ethernet
Front End de RF (USRP)
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
26
Os blocos do GNU Radio
 GNU Radio utiliza o conceito de “blocos”
 Cada bloco realiza uma função especifica
Somente saídas
Gerador de sinal
Somente entradas
Transmissão/Visualização
N entradas e N saídas
Processamento de sinais
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
27
Os blocos do GNU Radio
Sources
Processamento
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
Sinks
28
FlowGraph (1/2)
 Quando blocos são conectados para realizar
alguma tarefa temos um FlowGraph
 Todo FlowGraph possui 1+ Source(s) e 1+
Sink(s)
 Ex:
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
29
FlowGraph (2/2)
 FlowGraph são executados no computador
 Tudo é feito por software
 E se eu usar o USRP?
 Ainda executa no computador
 USRP atua como um source e/ou sink
 Falta pouco para as demos !!!
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
30
Contras
 GNU Radio não oferece garantias de
desempenho
 Latência é o calcanhar de Aquiles
 Desenvolver blocos novos requer
conhecimentos em comunicação de dados e
programação
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
31
Roteiro
① Software Defined Radio
① O que é?
② Vantagens e Desvantagens
③ SDR hoje
② GNU Radio
① Visão Geral
② Instalação e Utilização
③ GNU Radio + USRP
③ Resumo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
32
Instalação
 Ubuntu:
 Do repositório: apt-get install gnuradio
 Versão em desenvolvimento:

wget http://www.sbrac.org/files/build-gnuradio &&
chmod a+x ./build-gnuradio && ./build-gnuradio
 Windows:
 Guia em
http://code.ettus.com/redmine/ettus/projects/uhd/wiki/GNURadio
_Windows
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
33
O que é instalado? (1/3)
 /usr/local/share/gnuradio
 Exemplos
 /usr/local/share/doc/gnuradio-<versão>
 Documentação do código C++
 /usr/local/lib/python2.7/dist-packages/gnuradio
 Fontes em Python
 Nada legíveis
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
34
O que é instalado? (2/3)
 Diversos FlowGraphs úteis
 uhd_fft: Analisador de espectro
 Úteis:
 uhd_find_devices: Encontra os dispositivos USRP
na rede local
 gr_mod_tool: Cria os arquivos necessários para
desenvolver um novo bloco
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
35
O que é instalado? (3/3)
 GNU Radio Companion
 Interface para a criação do FlowGraphs
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
36
GNU Radio Companion (1/3)
 Muito útil para criação rápida de FlowGraphs
 Blocos mostrados são descritos em XML

/usr/local/share/gnuradio/grc/blocks/
 GRC apenas gera o código em Python
 Ótimo para aprender a mecânica do código Python
 Arquivo top_block.py no mesmo diretório do .grc
 FlowGraphs limitados aos blocos que aparecem no
menu de seleção
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
37
GNU Radio Companion (2/3)
Criação do
FlowGraph
Blocos de
processamento
Mensagens
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
38
GNU Radio Companion (3/3)
 Blocos possuem diferentes tipos de dados
de entrada e saída
 GRC identifica esses tipos por cores
 Dois blocos conectados devem utilizar o
mesmo tipo de dado
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
39
Exemplo 1
Necessário quando
source e sink
são simulados
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
40
Exemplo 1
Necessário quando
source e sink
são simulados
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
41
Exemplo 1
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
42
Show Time !
 Geração de ondas senoidais
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
43
Desenvolvimento em Python
#!/usr/bin/env python
dst = audio.sink(sampling_rate)
from gnuradio import gr
tb.connect( sin_350, (dst, 0) )
from gnuradio import audio
tb.connect( sin_440, (dst, 1) )
if __name__ == '__main__':
tb.start()
sampling_rate = 48000
raw_input('Pression Enter para terminar')
amplitude = 1
tb.stop()
tb = gr.top_block()
sin_350 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 350, amplitude)
sin_440 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 440, amplitude)
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
44
Passo a passo (1/8)
#!/usr/bin/env python
Para o Sistema Operacional
saber que o restante do arquivo
é um código Python
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
45
Passo a passo (2/8)
#!/usr/bin/env python
from gnuradio import gr
Importa os módulos
necessários do GNU Radio
from gnuradio import audio
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
46
Passo a passo (3/8)
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
Corpo principal do código
sampling_rate é a amostragem
da placa de som
if __name__ == '__main__':
sampling_rate = 48000
amplitude = 1
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
47
Passo a passo (4/8)
#!/usr/bin/env python
Instância o FlowGraph
from gnuradio import gr
from gnuradio import audio
if __name__ == '__main__':
sampling_rate = 48000
amplitude = 1
tb = gr.top_block()
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
48
Passo a passo (5/8)
#!/usr/bin/env python
from gnuradio import gr
Cria os dois blocos geradores
de sinais
from gnuradio import audio
if __name__ == '__main__':
sampling_rate = 48000
amplitude = 1
tb = gr.top_block()
sin_350 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 350, amplitude)
sin_440 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 440, amplitude)
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
49
Passo a passo (6/8)
from gnuradio import gr
Cria o sink como sendo a placa
de som
from gnuradio import audio
if __name__ == '__main__':
sampling_rate = 48000
amplitude = 1
tb = gr.top_block()
sin_350 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 350, amplitude)
sin_440 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 440, amplitude)
dst = audio.sink(sampling_rate)
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
50
Passo a passo (6/8)
if __name__ == '__main__':
Conecta os blocos source e sink
sampling_rate = 48000
amplitude = 1
tb = gr.top_block()
sin_350 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 350, amplitude)
sin_440 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 440, amplitude)
dst = audio.sink(sampling_rate)
tb.connect( sin_350, (dst, 0) )
tb.connect( sin_440, (dst, 1) )
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
51
Passo a passo (6/8)
amplitude = 1
Inicia o FlowGraph e espera
uma tecla ser pressionada
tb = gr.top_block()
sin_350 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 350, amplitude)
sin_440 = gr.sig_source_f(sampling_rate,
gr.GR_SIN_WAVE, 440, amplitude)
dst = audio.sink(sampling_rate)
tb.connect( sin_350, (dst, 0) )
tb.connect( sin_440, (dst, 1) )
tb.start()
raw_input('Pression Enter para terminar')
tb.stop()
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
52
Roteiro
① Software Defined Radio
① O que é?
② Vantagens e Desvantagens
③ SDR hoje
② GNU Radio
① Visão Geral
② Instalação e Utilização
③ GNU Radio + USRP
③ Resumo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
53
GNU RADIO + USRP
 USRP é representado por um bloco source e um
bloco sink
 Configurações são simples
 Somente um FlowGraph pode acessar o mesmo
USRP ao mesmo tempo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
54
GNU RADIO + USRP
 Usando apenas um USRP:
 Transmissão e recepção devem estar no mesmo
FlowGraph
Transmissão
Recepção
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
55
GNU RADIO + USRP
 Source:
 Sink:
Tipo do dado enviado/recebido
pelo USRP.
Geralmente usamos complex.
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
56
GNU RADIO + USRP
Tipo do dado enviado/recebido
pelo USRP
Endereço
IPusamos
do equipamento.
Geralmente
complex.
Não é obrigatório
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
57
GNU RADIO + USRP
Endereço IP do equipamento.
Não é obrigatório
Taxa de amostragem do sinal.
Mínimo de 195312 amostras/s
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
58
GNU RADIO + USRP
Taxa de amostragem do sinal.
Minimo
de 195312
amostras/s
Frequência
de transmissão
ou recepção
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
59
GNU RADIO + USRP
Frequência de transmissão
ou
recepção.
Ganho
do sinal
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
60
GNU RADIO + USRP
Antena.
Ganho
sinal
Vazio =do
Automático
TX/RX = Antena 1
RX2 = Antena 2
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
61
Show Time !
 Modulação OFDM
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
62
Show Time !
Fonte dos
Dados
Processamento
Codificação +
Modulação
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
Transmissão
63
Show Time !
Fonte dos
Dados
Processamento
Codificação +
Modulação
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
Transmissão
64
Um detector de energia simples
Detector de
energia
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
65
Um detector de energia simples
S/P
FFT
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
Detector de
energia
66
Roteiro
① Software Defined Radio
① O que é?
② Vantagens e Desvantagens
③ SDR hoje
② GNU Radio
① Visão Geral
② Instalação e Utilização
③ GNU Radio + USRP
③ Resumo
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
70
Resumo
 SDRs
 O que são ?
 Avanços
 GNU Radio
 Arquitetura
 Conceitos
 GNU Radio + USRP2
 Demonstrações
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
71
Conclusões
 SDR é perfeito para desenvolvimento de novos
protocolos de camada física
 SDR reduz o tempo de desenvolvimento de
produtos
 SDR possibilita o desenvolvimento de Rádios
Cognitivos
Semana Acadêmica do Instituto de Informática
Porto Alegre, 22 a 24 de maio de 2013
72
Obrigado!
Perguntas?
Maicon Kist
[email protected]
Leonardo Roveda Faganello
[email protected]
http://labcom.inf.ufrgs.br/dcg
Curso de Extensão
Semana Acadêmica 2013-1
Porto Alegre, 20 a 24 de maio de 2013
`
Download

GNU Radio - Redes de Computadores