Anda di halaman 1dari 70

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 2


Porto Alegre, 22 a 24 de maio de 2013
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 3


Porto Alegre, 22 a 24 de maio de 2013
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 4


Porto Alegre, 22 a 24 de maio de 2013
O que é SDR ?

Hardware

Semana Acadêmica do Instituto de Informática 5


Porto Alegre, 22 a 24 de maio de 2013
O que é SDR ?

Semana Acadêmica do Instituto de Informática 6


Porto Alegre, 22 a 24 de maio de 2013
O que é SDR ?

SDR Ideal

Software
Semana Acadêmica do Instituto de Informática 5
Porto Alegre, 22 a 24 de maio de 2013
O que é SDR ?

SDR Ideal

Software
Semana Acadêmica do Instituto de Informática 5
Porto Alegre, 22 a 24 de maio de 2013
O que é SDR ?

SDR Real

Software
Semana Acadêmica do Instituto de Informática 5
Porto Alegre, 22 a 24 de maio de 2013
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 10


Porto Alegre, 22 a 24 de maio de 2013
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 11


Porto Alegre, 22 a 24 de maio de 2013
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 12


Porto Alegre, 22 a 24 de maio de 2013
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 13


Porto Alegre, 22 a 24 de maio de 2013
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 14
Porto Alegre, 22 a 24 de maio de 2013
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 15


Porto Alegre, 22 a 24 de maio de 2013
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 16


Porto Alegre, 22 a 24 de maio de 2013
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/software-
defined-radio-for-11

Projeto Open-Source para o módulo: http://sdr.osmocom.org/trac/

Semana Acadêmica do Instituto de Informática 17


Porto Alegre, 22 a 24 de maio de 2013
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 18


Porto Alegre, 22 a 24 de maio de 2013
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 19


Porto Alegre, 22 a 24 de maio de 2013
Os SDR mais utilizados

 OSSIE

 Sora

Semana Acadêmica do Instituto de Informática 20


Porto Alegre, 22 a 24 de maio de 2013
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 21


Porto Alegre, 22 a 24 de maio de 2013
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 22


Porto Alegre, 22 a 24 de maio de 2013
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 23


Porto Alegre, 22 a 24 de maio de 2013
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 24


Porto Alegre, 22 a 24 de maio de 2013
Arquitetura

 Python é utilizado para a criação


de fluxos de dados (FlowGraphs) Python
Desenvolvimento de
FlowGraphs

 C++ é usado para criar blocos de


processamento de sinais
C++
 Biblioteca atual é completa 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 25


Porto Alegre, 22 a 24 de maio de 2013
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 26


Porto Alegre, 22 a 24 de maio de 2013
Os blocos do GNU Radio

 GNU Radio utiliza o conceito de “blocos”

 Cada bloco realiza uma função especifica

Somente saídas Somente entradas


Gerador de sinal Transmissão/Visualização

N entradas e N saídas
Processamento de sinais
Semana Acadêmica do Instituto de Informática 27
Porto Alegre, 22 a 24 de maio de 2013
Os blocos do GNU Radio

Sources Processamento Sinks

Semana Acadêmica do Instituto de Informática 28


Porto Alegre, 22 a 24 de maio de 2013
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 29


Porto Alegre, 22 a 24 de maio de 2013
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 30


Porto Alegre, 22 a 24 de maio de 2013
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 31


Porto Alegre, 22 a 24 de maio de 2013
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 32


Porto Alegre, 22 a 24 de maio de 2013
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 33


Porto Alegre, 22 a 24 de maio de 2013
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 34


Porto Alegre, 22 a 24 de maio de 2013
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 35


Porto Alegre, 22 a 24 de maio de 2013
O que é instalado? (3/3)

 GNU Radio Companion


 Interface para a criação do FlowGraphs

Semana Acadêmica do Instituto de Informática 36


Porto Alegre, 22 a 24 de maio de 2013
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 37


Porto Alegre, 22 a 24 de maio de 2013
GNU Radio Companion (2/3)

Criação do
FlowGraph

Blocos de
processamento

Mensagens

Semana Acadêmica do Instituto de Informática 38


Porto Alegre, 22 a 24 de maio de 2013
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 39


Porto Alegre, 22 a 24 de maio de 2013
Exemplo 1
Necessário quando
source e sink
são simulados

Semana Acadêmica do Instituto de Informática 40


Porto Alegre, 22 a 24 de maio de 2013
Exemplo 1
Necessário quando
source e sink
são simulados

Semana Acadêmica do Instituto de Informática 41


Porto Alegre, 22 a 24 de maio de 2013
Exemplo 1

Semana Acadêmica do Instituto de Informática 42


Porto Alegre, 22 a 24 de maio de 2013
Show Time !

 Geração de ondas senoidais

Semana Acadêmica do Instituto de Informática 43


Porto Alegre, 22 a 24 de maio de 2013
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 44


Porto Alegre, 22 a 24 de maio de 2013
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 45


Porto Alegre, 22 a 24 de maio de 2013
Passo a passo (2/8)
#!/usr/bin/env python
Importa os módulos
from gnuradio import gr necessários do GNU Radio
from gnuradio import audio

Semana Acadêmica do Instituto de Informática 46


Porto Alegre, 22 a 24 de maio de 2013
Passo a passo (3/8)
#!/usr/bin/env python
Corpo principal do código
from gnuradio import gr
sampling_rate é a amostragem
from gnuradio import audio
da placa de som
if __name__ == '__main__':
sampling_rate = 48000
amplitude = 1

Semana Acadêmica do Instituto de Informática 47


Porto Alegre, 22 a 24 de maio de 2013
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 48


Porto Alegre, 22 a 24 de maio de 2013
Passo a passo (5/8)
#!/usr/bin/env python
Cria os dois blocos geradores
from gnuradio import gr 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 49


Porto Alegre, 22 a 24 de maio de 2013
Passo a passo (6/8)
from gnuradio import gr
from gnuradio import audio
Cria o sink como sendo a placa
de som
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 50


Porto Alegre, 22 a 24 de maio de 2013
Passo a passo (6/8)
if __name__ == '__main__':
sampling_rate = 48000
Conecta os blocos source e sink
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 51


Porto Alegre, 22 a 24 de maio de 2013
Passo a passo (6/8)
amplitude = 1
Inicia o FlowGraph e espera
tb = gr.top_block() uma tecla ser pressionada
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 52


Porto Alegre, 22 a 24 de maio de 2013
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 53


Porto Alegre, 22 a 24 de maio de 2013
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 54


Porto Alegre, 22 a 24 de maio de 2013
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 55


Porto Alegre, 22 a 24 de maio de 2013
GNU RADIO + USRP

 Source:  Sink:

Tipo do dado enviado/recebido


pelo USRP.
Geralmente usamos complex.

Semana Acadêmica do Instituto de Informática 56


Porto Alegre, 22 a 24 de maio de 2013
GNU RADIO + USRP

Tipo do dado enviado/recebido


pelo USRP
Endereço
GeralmenteIPusamos
do equipamento.
complex.
Não é obrigatório

Semana Acadêmica do Instituto de Informática 57


Porto Alegre, 22 a 24 de maio de 2013
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 58


Porto Alegre, 22 a 24 de maio de 2013
GNU RADIO + USRP

Taxa de amostragem do sinal.


Minimo de 195312
Frequência amostras/s
de transmissão
ou recepção

Semana Acadêmica do Instituto de Informática 59


Porto Alegre, 22 a 24 de maio de 2013
GNU RADIO + USRP

Frequência de transmissão
ou recepção.
Ganho do sinal

Semana Acadêmica do Instituto de Informática 60


Porto Alegre, 22 a 24 de maio de 2013
GNU RADIO + USRP

Antena.
Ganho
Vazio =do sinal
Automático
TX/RX = Antena 1
RX2 = Antena 2

Semana Acadêmica do Instituto de Informática 61


Porto Alegre, 22 a 24 de maio de 2013
Show Time !

 Modulação OFDM

Semana Acadêmica do Instituto de Informática 62


Porto Alegre, 22 a 24 de maio de 2013
Show Time !

Processamento
Fonte dos
Codificação + Transmissão
Dados
Modulação

Semana Acadêmica do Instituto de Informática 63


Porto Alegre, 22 a 24 de maio de 2013
Show Time !

Processamento
Fonte dos
Codificação + Transmissão
Dados
Modulação

Semana Acadêmica do Instituto de Informática 64


Porto Alegre, 22 a 24 de maio de 2013
Um detector de energia simples

Detector de
energia

Semana Acadêmica do Instituto de Informática 65


Porto Alegre, 22 a 24 de maio de 2013
Um detector de energia simples

Detector de
S/P FFT
energia

Semana Acadêmica do Instituto de Informática 66


Porto Alegre, 22 a 24 de maio de 2013
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 70


Porto Alegre, 22 a 24 de maio de 2013
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 71


Porto Alegre, 22 a 24 de maio de 2013
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 72


Porto Alegre, 22 a 24 de maio de 2013
Obrigado!
Perguntas?
Maicon Kist
maicon.kist@inf.ufrgs.br

Leonardo Roveda Faganello


lrfaganello@inf.ufrgs.br

http://labcom.inf.ufrgs.br/dcg

Curso de Extensão
Semana Acadêmica 2013-1
Porto Alegre, 20 a 24 de maio de 2013

Anda mungkin juga menyukai