710 likes | 837 Views
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.
E N D
Introdução à Redes Sem Fio InteligentesSoftware Defined RadioMinicursoSemana Acadêmica do Instituto de InformáticaPorto 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áticaPorto 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áticaPorto 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áticaPorto Alegre, 22 a 24 de maio de 2013
O que é SDR ? Amplificador Mixer Amplificador de IF Demodulador Amplificador de Áudio Hardware Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
O que é SDR ? Amplificador Mixer Amplificador de IF Demodulador Amplificador de Áudio Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
O que é SDR ? SDR Ideal Correção de Erros Operadores Conversor A/D Conversor D/A Demodulação Equalizadores Modulação Filtros Software Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
O que é SDR ? SDR Ideal Correção de Erros Operadores Conversor A/D Conversor D/A Demodulação Equalizadores Modulação Filtros Software Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
O que é SDR ? SDR Real Correção de Erros Operadores Front End de Rádio Conversor A/D Conversor D/A Demodulação Equalizadores Modulação Filtros Software Semana Acadêmica do Instituto de InformáticaPorto 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áticaPorto 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áticaPorto 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áticaPorto 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áticaPorto 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 • DSPsvs GPP Semana Acadêmica do Instituto de InformáticaPorto 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áticaPorto Alegre, 22 a 24 de maio de 2013
SDRshoje (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áticaPorto Alegre, 22 a 24 de maio de 2013
SDRshoje (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, BalintSeeber 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áticaPorto 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áticaPorto 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 habilitadorpara rádio cognitivo Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Os SDR mais utilizados • OSSIE • Sora Semana Acadêmica do Instituto de InformáticaPorto 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áticaPorto 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áticaPorto 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áticaPorto 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áticaPorto Alegre, 22 a 24 de maio de 2013
Arquitetura • Python é utilizado para a criação de fluxos de dados (FlowGraphs) • C++ é usado para criar blocos de processamento de sinais • Biblioteca atual é completa • Escalonador controla o fluxo das informações entre os blocos Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
GNU Radio + USRP Semana Acadêmica do Instituto de InformáticaPorto 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 Source ou Fonte Sink ou Poço Somente saídas Gerador de sinal Somente entradas Transmissão/Visualização Bloco de Processamento N entradas e N saídas Processamento de sinais Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Os blocos do GNU Radio Sources Processamento Sinks Semana Acadêmica do Instituto de InformáticaPorto 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: Placa de Som Filtro passa baixa Arquivo Gerador de senóide 350 Hz Placa de Som Somador Gerador de senóide 440 Hz Semana Acadêmica do Instituto de InformáticaPorto 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áticaPorto 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áticaPorto 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áticaPorto Alegre, 22 a 24 de maio de 2013
Instalação • Ubuntu: • Do repositório: apt-getinstallgnuradio • Versão em desenvolvimento: • wgethttp://www.sbrac.org/files/build-gnuradio && chmoda+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áticaPorto 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áticaPorto 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áticaPorto 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áticaPorto 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áticaPorto 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áticaPorto 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áticaPorto 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áticaPorto 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áticaPorto Alegre, 22 a 24 de maio de 2013
Exemplo 1 Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Show Time ! • Geração de ondas senoidais Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Desenvolvimento em Python dst = audio.sink(sampling_rate) tb.connect( sin_350, (dst, 0) ) tb.connect( sin_440, (dst, 1) ) tb.start() raw_input('PressionEnter para terminar') tb.stop() #!/usr/bin/envpython fromgnuradioimportgr fromgnuradioimportaudio 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) Gerador de senóide 350 Hz Placa de Som Gerador de senóide 440 Hz Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Passo a passo (1/8) Para o Sistema Operacional saber que o restante do arquivo é um código Python #!/usr/bin/envpython Gerador de senóide 350 Hz Placa de Som Gerador de senóide 440 Hz Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Passo a passo (2/8) Importa os módulos necessários do GNU Radio #!/usr/bin/envpython fromgnuradioimportgr fromgnuradioimportaudio Gerador de senóide 350 Hz Placa de Som Gerador de senóide 440 Hz Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Passo a passo (3/8) Corpo principal do código sampling_rate é a amostragem da placa de som #!/usr/bin/envpython fromgnuradioimportgr fromgnuradioimportaudio if__name__ == '__main__': sampling_rate = 48000 amplitude = 1 Gerador de senóide 350 Hz Placa de Som Gerador de senóide 440 Hz Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Passo a passo (4/8) Instância o FlowGraph #!/usr/bin/envpython fromgnuradioimportgr fromgnuradioimportaudio if__name__ == '__main__': sampling_rate = 48000 amplitude = 1 tb= gr.top_block() Gerador de senóide 350 Hz Placa de Som Gerador de senóide 440 Hz Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Passo a passo (5/8) Cria os dois blocos geradores de sinais #!/usr/bin/envpython fromgnuradioimportgr fromgnuradioimportaudio 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) Gerador de senóide 350 Hz Placa de Som Gerador de senóide 440 Hz Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013
Passo a passo (6/8) Cria o sink como sendo a placa de som fromgnuradioimportgr fromgnuradioimportaudio 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) Gerador de senóide 350 Hz Placa de Som Gerador de senóide 440 Hz Semana Acadêmica do Instituto de InformáticaPorto Alegre, 22 a 24 de maio de 2013