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
`