https://wiki.sj.ifsc.edu.br/api.php?action=feedcontributions&user=Lucas.lv&feedformat=atomMediaWiki do Campus São José - Contribuições do(a) usuário(a) [pt-br]2024-03-29T11:37:22ZContribuições do(a) usuário(a)MediaWiki 1.35.9https://wiki.sj.ifsc.edu.br/index.php?title=COM2-EngTel_(p%C3%A1gina)&diff=134461COM2-EngTel (página)2017-08-16T13:19:24Z<p>Lucas.lv: </p>
<hr />
<div>{{DivulgueEngtelecom}}<br />
<br />
=Informações gerais=<br />
* [[COM2-EngTel|Carga horária, Ementas, Bibliografia, Professores]]<br />
* [[Cronograma de atividades (COM2-EngTel) | Cronograma de atividades]]<br />
* [[COM2-EngTel (Plano de Ensino) | Plano de Ensino]]<br />
* [http://docente.ifsc.edu.br/roberto.nobrega/disciplinas/ Página da disciplina]<br />
<br />
<!-- =Aulas=<br />
{| class="wikitable"<br />
! N !! Dia !! Desenvolvimento !! Leitura recomendada<br />
|-<br />
| 1 || 10/08 || Plano de ensino. Modulação multiportadora. Introdução às técnicas de modulação multiportadora [1]. || Goldsmith, Sec. 12.1.<br />
|-<br />
| 2 || 16/08 || Introdução às técnicas de modulação multiportadora [2]. Orthogonal frequency-division multiplexing (OFDM). || Goldsmith, Sec. 12.2, 12.4.<br />
|-<br />
| 3 || 17/08 || Espalhamento espectral. Espalhamento espectral por sequência direta (DSSS). Espalhamento espectral por salto de frequência (FHSS). || Goldsmith, Sec. 13.1.<br />
|-<br />
| 4 || 23/08 || ''Laboratório #1: Modulação multiportadora (OFDM).'' ||<br />
|-<br />
| 5 || 24/08 || Combate a ISI em sistemas com espalhamento espectral. Acesso múltiplo por divisão de código (CDMA). || Goldsmith, Sec. 13.2.<br />
|-<br />
| 6 || 30/08 || ''Laboratório #2: Espalhamento espectral por sequência direta (DSSS).'' ||<br />
|-<br />
| 7 || 31/08 || Códigos corretores de erro. Introdução. Códigos de bloco. Exemplos. ||<br />
|-<br />
| 8 || 06/09 || Definições. Distância e peso de Hamming. Capacidade de correção e detecção de erros. Códigos lineares. Matriz geradora de um código linear. ||<br />
|-<br />
| 9 || 13/09 || Decodificação via arranjo padrão. Matriz de verificação de paridade. ||<br />
|-<br />
| 10 || 14/09 || Síndrome. Decodificação via síndrome. Desempenho de códigos de bloco no canal BSC. ||<br />
|-<br />
| 11 || 20/09 || ''Laboratório #3: Códigos de bloco [1].'' ||<br />
|-<br />
| 12 || 21/09 || Desempenho de códigos de bloco no canal AWGN. Hard-decision decoding. Soft-decision decoding. ||<br />
|-<br />
| 13 || 27/09 || ''Laboratório #3: Códigos de bloco [2].'' ||<br />
|-<br />
| 14 || 28/09 || Códigos convolucionais. Definição. Diagrama de estados. Treliça. ||<br />
|-<br />
| 15 || 04/10 || Distância livre. Decodificação de códigos convolucionais. Algoritmo de Viterbi. Ganho assintótico de codificação. ||<br />
|-<br />
| 16 || 05/10 || Introdução à teoria da informação. Fontes discretas sem memória (DMS). Entropia. || Haykin, Sec. 9.1, 9.2.<br />
|-<br />
| 17 || 11/10 || ''Laboratório #4: Códigos convolucionais [1].'' ||<br />
|-<br />
| 18 || 18/10 || '''Prova #1.1.''' ||<br />
|-<br />
| 19 || 19/10 || ''Participação na MCC.'' ||<br />
|-<br />
| 20 || 25/10 || Extensão de uma DMS. Compressão de fonte sem perdas. Códigos símbolo-a-símbolo. Teorema da codificação de fonte sem perdas. || Haykin, Sec. 9.2, 9.3, 9.4.<br />
|-<br />
| 21 || 26/10 || Código de Huffman. Código LZ78. || Haykin, Sec. 9.4.<br />
|-<br />
| 22 || 01/11 || ''Laboratório #4: Códigos convolucionais [2].'' ||<br />
|-<br />
| 23 || 08/11 || Canais discretos sem memória (DMC). Canais BSC e BEC. Entropia condicional. Informação mútua. || Haykin, Sec. 9.5, 9.6.<br />
|-<br />
| 24 || 09/11 || Propriedades da informação mútua. Problema da codificação de canal. Teorema da codificação de canal de Shannon. || Haykin, Sec. 9.6, 9.7, 9.8.<br />
|-<br />
| 25 || 16/11 || Cálculo da capacidade dos canais BSC e BEC. Entropia diferencial. || Haykin, Sec. 9.7, 9.8.<br />
|-<br />
| 26 || 22/11 || Capacidade do canal AWGN. || Haykin, Sec. 9.10.<br />
|-<br />
| 27 || 23/11 || Capacidade de canal: Exercícios. ||<br />
|-<br />
| 28 || 29/11 || Limite de Shannon. Regime limitado em potência e regime limitado em banda. Modulação codificada. Introdução. || Haykin, Sec. 9.11, 10.7.<br />
|-<br />
| 29 || 30/11 || Trellis-coded modulation (TCM). || Haykin, Sec. 10.7.<br />
|-<br />
| 30 || 06/12 || Aula de exercícios. ||<br />
|-<br />
| 31 || 07/12 || '''Prova #2.1.''' ||<br />
|}<br />
<br />
=Arquivos=<br />
<br />
===Trabalhos===<br />
* [[Media:COM29008-Trabalho-OFDM.pdf|Laboratório #1: OFDM]].<br />
* [[Media:COM29008-Trabalho-DSSS.pdf|Laboratório #2: DSSS]].<br />
* [[Media:COM29008-Trabalho-Codigos-de-bloco.pdf|Laboratório #3: Códigos de bloco]].<br />
* [[Media:COM29008-Trabalho-Codigos-convolucionais.pdf|Laboratório #4: Códigos convolucionais]].<br />
<br />
===Listas de exercícios===<br />
* [[Media:COM29008-Lista-1.pdf|Lista de Exercícios #1]].<br />
* [[Media:COM29008-Lista-2.pdf|Lista de Exercícios #2]].<br />
<br />
=Bibliografia=<br />
<br />
* Abrantes, Sílvio A. [https://sigarra.up.pt/flup/pt//pub_geral.show_file?pi_gdoc_id=193743 Introdução à sincronização em modulações digitais], 2009.<br />
* Cover, Thomas M.; Thomas, Joy A. [http://www.isbnsearch.org/isbn/9780471241959 Elements of Information Theory, 2nd Ed.], 2006.<br />
* Goldsmith, Andrea. [http://www.isbnsearch.org/isbn/9780521837163 Wireless Communications], 2005.<br />
* Haykin, Simon. [http://www.isbnsearch.org/isbn/9780471178699 Communication Systems, 4th Ed.], 2001.<br />
* MacKay, David J. C. [http://www.inference.phy.cam.ac.uk/itprnn/book.pdf Information Theory, Inference, and Learning Algorithms], 2005.<br />
--><br />
=Professores anteriores=<br />
* 2016-1: [[Roberto Wanderley da Nóbrega]]<br />
* 2015-2: [[Mario de Noronha Neto]] e [[Maria Cláudia de Almeida Castro]]<br />
<br />
{{ENGTELECO}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=COM2-EngTel_(p%C3%A1gina)&diff=134460COM2-EngTel (página)2017-08-16T13:18:16Z<p>Lucas.lv: /* Informações gerais */</p>
<hr />
<div>{{DivulgueEngtelecom}}<br />
<br />
=Informações gerais=<br />
* [[COM2-EngTel|Carga horária, Ementas, Bibliografia, Professores]]<br />
* [[Cronograma de atividades (COM2-EngTel) | Cronograma de atividades]]<br />
* [[COM2-EngTel (Plano de Ensino) | Plano de Ensino]]<br />
* [http://docente.ifsc.edu.br/roberto.nobrega/disciplinas/ Página da disciplina]<br />
<br />
=Aulas=<br />
{| class="wikitable"<br />
! N !! Dia !! Desenvolvimento !! Leitura recomendada<br />
|-<br />
| 1 || 10/08 || Plano de ensino. Modulação multiportadora. Introdução às técnicas de modulação multiportadora [1]. || Goldsmith, Sec. 12.1.<br />
|-<br />
| 2 || 16/08 || Introdução às técnicas de modulação multiportadora [2]. Orthogonal frequency-division multiplexing (OFDM). || Goldsmith, Sec. 12.2, 12.4.<br />
|-<br />
| 3 || 17/08 || Espalhamento espectral. Espalhamento espectral por sequência direta (DSSS). Espalhamento espectral por salto de frequência (FHSS). || Goldsmith, Sec. 13.1.<br />
|-<br />
| 4 || 23/08 || ''Laboratório #1: Modulação multiportadora (OFDM).'' ||<br />
|-<br />
| 5 || 24/08 || Combate a ISI em sistemas com espalhamento espectral. Acesso múltiplo por divisão de código (CDMA). || Goldsmith, Sec. 13.2.<br />
|-<br />
| 6 || 30/08 || ''Laboratório #2: Espalhamento espectral por sequência direta (DSSS).'' ||<br />
|-<br />
| 7 || 31/08 || Códigos corretores de erro. Introdução. Códigos de bloco. Exemplos. ||<br />
|-<br />
| 8 || 06/09 || Definições. Distância e peso de Hamming. Capacidade de correção e detecção de erros. Códigos lineares. Matriz geradora de um código linear. ||<br />
|-<br />
| 9 || 13/09 || Decodificação via arranjo padrão. Matriz de verificação de paridade. ||<br />
|-<br />
| 10 || 14/09 || Síndrome. Decodificação via síndrome. Desempenho de códigos de bloco no canal BSC. ||<br />
|-<br />
| 11 || 20/09 || ''Laboratório #3: Códigos de bloco [1].'' ||<br />
|-<br />
| 12 || 21/09 || Desempenho de códigos de bloco no canal AWGN. Hard-decision decoding. Soft-decision decoding. ||<br />
|-<br />
| 13 || 27/09 || ''Laboratório #3: Códigos de bloco [2].'' ||<br />
|-<br />
| 14 || 28/09 || Códigos convolucionais. Definição. Diagrama de estados. Treliça. ||<br />
|-<br />
| 15 || 04/10 || Distância livre. Decodificação de códigos convolucionais. Algoritmo de Viterbi. Ganho assintótico de codificação. ||<br />
|-<br />
| 16 || 05/10 || Introdução à teoria da informação. Fontes discretas sem memória (DMS). Entropia. || Haykin, Sec. 9.1, 9.2.<br />
|-<br />
| 17 || 11/10 || ''Laboratório #4: Códigos convolucionais [1].'' ||<br />
|-<br />
| 18 || 18/10 || '''Prova #1.1.''' ||<br />
|-<br />
| 19 || 19/10 || ''Participação na MCC.'' ||<br />
|-<br />
| 20 || 25/10 || Extensão de uma DMS. Compressão de fonte sem perdas. Códigos símbolo-a-símbolo. Teorema da codificação de fonte sem perdas. || Haykin, Sec. 9.2, 9.3, 9.4.<br />
|-<br />
| 21 || 26/10 || Código de Huffman. Código LZ78. || Haykin, Sec. 9.4.<br />
|-<br />
| 22 || 01/11 || ''Laboratório #4: Códigos convolucionais [2].'' ||<br />
|-<br />
| 23 || 08/11 || Canais discretos sem memória (DMC). Canais BSC e BEC. Entropia condicional. Informação mútua. || Haykin, Sec. 9.5, 9.6.<br />
|-<br />
| 24 || 09/11 || Propriedades da informação mútua. Problema da codificação de canal. Teorema da codificação de canal de Shannon. || Haykin, Sec. 9.6, 9.7, 9.8.<br />
|-<br />
| 25 || 16/11 || Cálculo da capacidade dos canais BSC e BEC. Entropia diferencial. || Haykin, Sec. 9.7, 9.8.<br />
|-<br />
| 26 || 22/11 || Capacidade do canal AWGN. || Haykin, Sec. 9.10.<br />
|-<br />
| 27 || 23/11 || Capacidade de canal: Exercícios. ||<br />
|-<br />
| 28 || 29/11 || Limite de Shannon. Regime limitado em potência e regime limitado em banda. Modulação codificada. Introdução. || Haykin, Sec. 9.11, 10.7.<br />
|-<br />
| 29 || 30/11 || Trellis-coded modulation (TCM). || Haykin, Sec. 10.7.<br />
|-<br />
| 30 || 06/12 || Aula de exercícios. ||<br />
|-<br />
| 31 || 07/12 || '''Prova #2.1.''' ||<br />
|}<br />
<br />
=Arquivos=<br />
<br />
===Trabalhos===<br />
* [[Media:COM29008-Trabalho-OFDM.pdf|Laboratório #1: OFDM]].<br />
* [[Media:COM29008-Trabalho-DSSS.pdf|Laboratório #2: DSSS]].<br />
* [[Media:COM29008-Trabalho-Codigos-de-bloco.pdf|Laboratório #3: Códigos de bloco]].<br />
* [[Media:COM29008-Trabalho-Codigos-convolucionais.pdf|Laboratório #4: Códigos convolucionais]].<br />
<br />
===Listas de exercícios===<br />
* [[Media:COM29008-Lista-1.pdf|Lista de Exercícios #1]].<br />
* [[Media:COM29008-Lista-2.pdf|Lista de Exercícios #2]].<br />
<br />
=Bibliografia=<br />
<br />
* Abrantes, Sílvio A. [https://sigarra.up.pt/flup/pt//pub_geral.show_file?pi_gdoc_id=193743 Introdução à sincronização em modulações digitais], 2009.<br />
* Cover, Thomas M.; Thomas, Joy A. [http://www.isbnsearch.org/isbn/9780471241959 Elements of Information Theory, 2nd Ed.], 2006.<br />
* Goldsmith, Andrea. [http://www.isbnsearch.org/isbn/9780521837163 Wireless Communications], 2005.<br />
* Haykin, Simon. [http://www.isbnsearch.org/isbn/9780471178699 Communication Systems, 4th Ed.], 2001.<br />
* MacKay, David J. C. [http://www.inference.phy.cam.ac.uk/itprnn/book.pdf Information Theory, Inference, and Learning Algorithms], 2005.<br />
<br />
=Professores anteriores=<br />
* 2016-1: [[Roberto Wanderley da Nóbrega]]<br />
* 2015-2: [[Mario de Noronha Neto]] e [[Maria Cláudia de Almeida Castro]]<br />
<br />
{{ENGTELECO}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=COM2-EngTel_(p%C3%A1gina)&diff=134459COM2-EngTel (página)2017-08-16T13:17:14Z<p>Lucas.lv: </p>
<hr />
<div>{{DivulgueEngtelecom}}<br />
<br />
=Informações gerais=<br />
* [[COM2-EngTel|Carga horária, Ementas, Bibliografia, Professores]]<br />
* [[Cronograma de atividades (COM2-EngTel) | Cronograma de atividades]]<br />
* [[COM2-EngTel (Plano de Ensino) | Plano de Ensino]]<br />
* [http://docente.ifsc.edu.br/roberto.nobrega/disciplinas/ Canal de comunicação]<br />
<br />
=Aulas=<br />
{| class="wikitable"<br />
! N !! Dia !! Desenvolvimento !! Leitura recomendada<br />
|-<br />
| 1 || 10/08 || Plano de ensino. Modulação multiportadora. Introdução às técnicas de modulação multiportadora [1]. || Goldsmith, Sec. 12.1.<br />
|-<br />
| 2 || 16/08 || Introdução às técnicas de modulação multiportadora [2]. Orthogonal frequency-division multiplexing (OFDM). || Goldsmith, Sec. 12.2, 12.4.<br />
|-<br />
| 3 || 17/08 || Espalhamento espectral. Espalhamento espectral por sequência direta (DSSS). Espalhamento espectral por salto de frequência (FHSS). || Goldsmith, Sec. 13.1.<br />
|-<br />
| 4 || 23/08 || ''Laboratório #1: Modulação multiportadora (OFDM).'' ||<br />
|-<br />
| 5 || 24/08 || Combate a ISI em sistemas com espalhamento espectral. Acesso múltiplo por divisão de código (CDMA). || Goldsmith, Sec. 13.2.<br />
|-<br />
| 6 || 30/08 || ''Laboratório #2: Espalhamento espectral por sequência direta (DSSS).'' ||<br />
|-<br />
| 7 || 31/08 || Códigos corretores de erro. Introdução. Códigos de bloco. Exemplos. ||<br />
|-<br />
| 8 || 06/09 || Definições. Distância e peso de Hamming. Capacidade de correção e detecção de erros. Códigos lineares. Matriz geradora de um código linear. ||<br />
|-<br />
| 9 || 13/09 || Decodificação via arranjo padrão. Matriz de verificação de paridade. ||<br />
|-<br />
| 10 || 14/09 || Síndrome. Decodificação via síndrome. Desempenho de códigos de bloco no canal BSC. ||<br />
|-<br />
| 11 || 20/09 || ''Laboratório #3: Códigos de bloco [1].'' ||<br />
|-<br />
| 12 || 21/09 || Desempenho de códigos de bloco no canal AWGN. Hard-decision decoding. Soft-decision decoding. ||<br />
|-<br />
| 13 || 27/09 || ''Laboratório #3: Códigos de bloco [2].'' ||<br />
|-<br />
| 14 || 28/09 || Códigos convolucionais. Definição. Diagrama de estados. Treliça. ||<br />
|-<br />
| 15 || 04/10 || Distância livre. Decodificação de códigos convolucionais. Algoritmo de Viterbi. Ganho assintótico de codificação. ||<br />
|-<br />
| 16 || 05/10 || Introdução à teoria da informação. Fontes discretas sem memória (DMS). Entropia. || Haykin, Sec. 9.1, 9.2.<br />
|-<br />
| 17 || 11/10 || ''Laboratório #4: Códigos convolucionais [1].'' ||<br />
|-<br />
| 18 || 18/10 || '''Prova #1.1.''' ||<br />
|-<br />
| 19 || 19/10 || ''Participação na MCC.'' ||<br />
|-<br />
| 20 || 25/10 || Extensão de uma DMS. Compressão de fonte sem perdas. Códigos símbolo-a-símbolo. Teorema da codificação de fonte sem perdas. || Haykin, Sec. 9.2, 9.3, 9.4.<br />
|-<br />
| 21 || 26/10 || Código de Huffman. Código LZ78. || Haykin, Sec. 9.4.<br />
|-<br />
| 22 || 01/11 || ''Laboratório #4: Códigos convolucionais [2].'' ||<br />
|-<br />
| 23 || 08/11 || Canais discretos sem memória (DMC). Canais BSC e BEC. Entropia condicional. Informação mútua. || Haykin, Sec. 9.5, 9.6.<br />
|-<br />
| 24 || 09/11 || Propriedades da informação mútua. Problema da codificação de canal. Teorema da codificação de canal de Shannon. || Haykin, Sec. 9.6, 9.7, 9.8.<br />
|-<br />
| 25 || 16/11 || Cálculo da capacidade dos canais BSC e BEC. Entropia diferencial. || Haykin, Sec. 9.7, 9.8.<br />
|-<br />
| 26 || 22/11 || Capacidade do canal AWGN. || Haykin, Sec. 9.10.<br />
|-<br />
| 27 || 23/11 || Capacidade de canal: Exercícios. ||<br />
|-<br />
| 28 || 29/11 || Limite de Shannon. Regime limitado em potência e regime limitado em banda. Modulação codificada. Introdução. || Haykin, Sec. 9.11, 10.7.<br />
|-<br />
| 29 || 30/11 || Trellis-coded modulation (TCM). || Haykin, Sec. 10.7.<br />
|-<br />
| 30 || 06/12 || Aula de exercícios. ||<br />
|-<br />
| 31 || 07/12 || '''Prova #2.1.''' ||<br />
|}<br />
<br />
=Arquivos=<br />
<br />
===Trabalhos===<br />
* [[Media:COM29008-Trabalho-OFDM.pdf|Laboratório #1: OFDM]].<br />
* [[Media:COM29008-Trabalho-DSSS.pdf|Laboratório #2: DSSS]].<br />
* [[Media:COM29008-Trabalho-Codigos-de-bloco.pdf|Laboratório #3: Códigos de bloco]].<br />
* [[Media:COM29008-Trabalho-Codigos-convolucionais.pdf|Laboratório #4: Códigos convolucionais]].<br />
<br />
===Listas de exercícios===<br />
* [[Media:COM29008-Lista-1.pdf|Lista de Exercícios #1]].<br />
* [[Media:COM29008-Lista-2.pdf|Lista de Exercícios #2]].<br />
<br />
=Bibliografia=<br />
<br />
* Abrantes, Sílvio A. [https://sigarra.up.pt/flup/pt//pub_geral.show_file?pi_gdoc_id=193743 Introdução à sincronização em modulações digitais], 2009.<br />
* Cover, Thomas M.; Thomas, Joy A. [http://www.isbnsearch.org/isbn/9780471241959 Elements of Information Theory, 2nd Ed.], 2006.<br />
* Goldsmith, Andrea. [http://www.isbnsearch.org/isbn/9780521837163 Wireless Communications], 2005.<br />
* Haykin, Simon. [http://www.isbnsearch.org/isbn/9780471178699 Communication Systems, 4th Ed.], 2001.<br />
* MacKay, David J. C. [http://www.inference.phy.cam.ac.uk/itprnn/book.pdf Information Theory, Inference, and Learning Algorithms], 2005.<br />
<br />
=Professores anteriores=<br />
* 2016-1: [[Roberto Wanderley da Nóbrega]]<br />
* 2015-2: [[Mario de Noronha Neto]] e [[Maria Cláudia de Almeida Castro]]<br />
<br />
{{ENGTELECO}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Aferi%C3%A7%C3%A3o_de_desempenho_de_modula%C3%A7%C3%B5es_digitais_utilizando_SDR&diff=113726Aferição de desempenho de modulações digitais utilizando SDR2016-08-11T14:08:48Z<p>Lucas.lv: </p>
<hr />
<div><center><BIG>Projeto - ENG TEL - 2016</BIG></center><br />
<br />
==Informações==<br />
Aluno: Lucas Lucindo <br/><br />
Coordenador: [http://wiki.sj.ifsc.edu.br/index.php/Ramon_Mayor_Martins Ramon Mayor Martins] <br/> <br />
Início: 06/16 <br/><br />
Edital: [http://www.sj.ifsc.edu.br/images/stories/chamadas_internas/chamada%20interna%2005%20de%202016.pdf Chamada Interna – Nº 05/2016 – Programa de Apoio a Projetos de Ensino, Pesquisa e Extensão do Câmpus São José.] <br/><br />
Aceite: [[Media:aceite_chamada_1_2016.doc|Resposta da chamada]] <br/><br />
<br />
==Resumo==<br />
Resumo: Atualmente os sistemas de comunicações demandam altas taxas de transmissão, o que torna o circuito do sistema cada vez mais complexo. O projeto propõe contribuir com análises a busca por soluções acerca da otimização da taxa de transmissão e da redução da complexidade de implementação de um sistema de comunicações. O objetivo é aferir o desempenho de diversas técnicas de modulação digital utilizada nos transmissores e receptores das principais aplicações do mercado. Para isso será realizado testes com a variação de parâmetros tais como: frequência, distância, potência e esquemas de modulação utilizando tecnologias de Rádio Definido por Software (SDR). Será também utilizado o ambiente GNU Radio para implementar subsistemas transmissores e receptores de comunicações. Com base nesses subsistemas será possível a comparação entre as técnicas de modulações empregadas e a viabilidade de obtenção de uma baixa probabilidade de erro nas comunicações de dados.<br />
<br />
Abstract: <br />
<br />
Palavras chave: Rádio Definido por Software, modulação, transmissores, receptores.<br />
<br />
==Horário de encontro==<br />
Sextas-feira 12:30 ~ 13:30<br />
<br />
==Link para o trabalho==<br />
*[https://drive.google.com/folderview?id=0BwhINfMRXMVQU2dWckNjYUpyWTA&usp=sharing Acesso ao Projeto]<br />
<br />
==Datas Importantes==<br />
<br />
[01/07/16 ~ 08/07/16] Estudo da modulação FSK <br/><br />
[08/07/16 ~ 15/07/16] Apresentação de SDR / GNU Radio - Resumo modulação FSK <br/><br />
[15/07/16 ~ 22/07/1] Implementação de transmissor e receptor FSK (GNU Radio) <br/><br />
<br />
==Reuniões==<br />
{{collapse top | 01/07 - Reunião 1}}<br />
* Apresentação do projeto<br />
* Modulação FM/FSK<br />
{{collapse bottom}}<br />
{{collapse top | 08/07 - Reunião 2}}<br />
* Apresentação SDR (Ramon)<br />
{{collapse bottom}}<br />
{{collapse top | - Reunião 3}}<br />
* Continuação Apresentação SDR (Ramon)<br />
* Implementação de TX/RX WBFM/NBFM<br />
* Implementação FSK<br />
{{collapse bottom}}<br />
<br />
<br />
==Links auxiliares==<br />
;Softwares e Bibliotecas<br />
*[http://gnuradio.org/ GNU Radio]<br />
*[http://airspy.com/download/ SDR#]<br />
*[http://gqrx.dk/ GQRX]<br />
<br />
;Documentos Principais<br />
<br />
<br />
;Documentos Secundários<br />
*[http://wiki.sj.ifsc.edu.br/images/a/a7/Grupo_de_Estudos_em_R%C3%A1dio_Definido_por_Software.pdf (IFSC - Ramon Mayor Martins): Introdução ao SDR]<br />
*[http://laps.ufpa.br/aldebaro/sdr2013/download/2013_sbrt_sdr_aldebaro_v7.pdf (UFPA - Aldebaro Klautau): Introdução ao SDR]<br />
<br />
==Atividades a serem desenvolvidas==<br />
<br />
*01- Estudo das modulações digitais utilizadas (07/16)<br />
*02- Desenvolvimento e teste de subsistemas transmissores e receptores (06~08/16)<br />
*03- Elaboração do 1o relatório parcial (08/16)<br />
*04- Coleta de dados (08~09/16)<br />
*05- Elaboração do 2o relatório parcial (09~10/16)<br />
*06- Análise dos dados (10~11/16)<br />
*07- Elaboração do relatório final/ submissão do artigo (11~12/16)<br />
<br />
<br />
{| border=1 |<br />
|- <br />
| 01 || 02 || 03 || 04 || 05 <br />
|- <br />
| ▄ _ _ _|| _ _ _ _||_ _ _ _|| _ _ _ _|| _ _ _ _<br />
|}<br />
<br />
== Modulações digitais ==<br />
{{Collapse top |FSK (Frequency Shift Keying)}}<br />
=== FSK (Frequency Shift Keying) ===<br />
<br />
A modulação por chaveamento na frequência (FSK) baseia-se na atribuição de uma frequência para cada estado do sinal digital. Para isso, utiliza-se uma portadora analógica para modular o sinal digital. Para compreender o funcionamento do FSK, podemos utilizar a figura abaixo como guia:<br />
<br />
[[Imagem:FSK.png| center | 400 px]]<br />
<center> Exemplo FSK </center><br />
<br />
O sinal “Data” é o sinal digital a ser modulado e o “Carrier”, como de costume, é uma portadora analógica. Quando ocorre a transmissão de uma bit, portanto, um sinal alto (‘1’), temos uma frequência maior no sinal modulado. Quando Data é baixo (‘0’), o sinal modulado assume uma frequência mais baixa. Esse é o exemplo mais simples de FSK, pois usa apenas duas frequências que correspondem a dois estados diferentes. Esse processo mais simples também é chamado de BFSK (Binary Frequency Shift Keying).<br />
Analogamente a esse processo, também podemos utilizar o que é chamado de 4FSK. Essa forma de modulação utiliza quatro frequências diferentes para identificar quatro estados (00, 01, 10, 11). Utilizar essa técnica permite aumentar a taxa de transmissão de bits, porém, aumenta a banda de frequência de transmissão utilizada.<br />
A modulação FSK possui o problema de consumir uma banda de frequência muito alta, devido as variações abruptas de frequência a cada mudança de estado do sinal digital, além de ter uma taxa de transmissão relativamente baixa.<br />
Para contornar em partes o problema da mudança abrupta, podemos utilizar uma técnica similar ao FSK, utilizando a mesma portadora e o mesmo esquema das frequências, porém, antes do sinal entrar no modulador, ele passa por um filtro gaussiano. Esse processo é chamado de GFSK.<br />
<br />
[[Imagem:Gaussian.PNG| center | 600 px]]<br />
<center> Filtro Gaussiano </center><br />
<br />
O filtro gaussiano reduz a largura espectral dos pulsos que entram. O filtro age como um formatador de pulsos que é usado para suavizar a transição entre os valores dos pulsos. A modulação GFSK é geralmente utilizada em sistemas bluetooth.<br />
<br />
*Links e Livros para consulta:<br />
**http://www.gta.ufrj.br/grad/04_2/Modulacao/<br />
**https://en.wikipedia.org/wiki/Frequency-shift_keying<br />
**http://penta.ufrgs.br/Alvaro/fsk.html<br />
**Comunicação de Dados e Redes de Computadores (Forouzan)<br />
**Fundamentos de Comunicação Eletrônica: Modulação, Demodulação e Recepção (Frenzel)<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |ASK (Amplitude-Shift Keying)}}<br />
=== ASK(Amplitude-Shift Keying) ===<br />
<br />
O ASK (Amplitude-shift keying) é uma modulação utilizada para sinais digitais. O funcionamento do ASK é baseado na mudança da amplitude da onda portadora com base no sinal digital a ser modulado.<br />
No caso de um sinal digital binário, utiliza-se uma amplitude da portadora para representar o ‘0’ e outra amplitude da portadora para o ‘1’. A Figura 1 representa uma forma especifica de fazer a modulação ASK. Para sinais com nível alto, tem-se a amplitude normal de uma dada onde portadora, já para sinais com nível baixo, tem-se um “desligamento” da portadora. Esse tipo de modulação também é chamada o OOK (On-Off Keying).<br />
<br />
[[Imagem:ASK-modulator.jpg| center | 600 px]]<br />
<center> Modulação ASK - OOK </center><br />
<br />
A modulação ASK é susceptível a mudanças repentinas de ganho e é utilizada para transmitir dados em fibras ópticas.<br />
<br />
<br />
*Links para consulta:<br />
**http://coral.ufsm.br/gpscom/professores/Renato%20Machado/ComunicacaoDeDados/ComDados10.pdf<br />
**http://penta.ufrgs.br/Alvaro/ask.html<br />
**http://coral.ufsm.br/gpscom/professores/andrei/Comunicacao/aula_08.pdf<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |PSK (Phase-Shift Keying)}}<br />
=== PSK (Phase-Shift Keying) ===<br />
<br />
O PSK (Phase-Shift Keying) é um tipo de modulação para sinais digitais onde as informações do sinal modulado estão contidas na fase da portadora. Sempre que há mudanças no sinal digital a ser modulado, a portadora sofre uma alteração de fase de 180 graus. Por exemplo, supondo um sinal digital e uma portadora como os ilustrados na Figura 1.<br />
<br />
[[Imagem:PSK.jpeg| center | 600 px]]<br />
<center> Figura 1 - Modulação PSK (BPSK) </center><br />
<br />
Quando o sinal de entrada é ‘1’, mantem-se a fase normal da portadora. Quando ocorre uma transição de uma sinal alto para um baixo, percebe-se que o sinal modulação é defasado em 180 graus. Quando ocorre outra transição, só que agora de ‘0’ para ‘1’, o sinal é novamente defasado em 180 graus. Essa forma de modulação em especifico é chamada de BPSK e está ilustrado na Figura 1.<br />
<br />
Existe uma forma mais complexa para a modulação PSK, chamada de M-PSK (Multiple-PSK). No BPSK era previsto dois valores de defasagem (0 e 180)m já no M-PSK podem existir m possibilidades, onde m são os múltiplos valores de defasagem. Essa valores são utilizados para indicar conjuntos de bit.<br />
<br />
[[Imagem:QPSK.png| center | 600 px]]<br />
<center> Figura 2 - Modulação PSK (QPSK) </center><br />
<br />
*Existem duas formas mais utilizadas:<br />
**m = 4 (0, +90, -90 e 180), chamada de quadrature phase-shift keying (QPSK) e utilizada para identificar 2 elementos por valor de defasagem (00, 01, 10 e 11).<br />
**m = 8 (0, +45, -45, +90, -90, +135, -135, e 180), chamada de octal phase-shift keying (OPSK), e utilizada para identificar 3 elementos por valor de defasagem (000, 001, 010, 011, 100, 101, 110, 111).<br />
<br />
{{Collapse bottom}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:QPSK.png&diff=113724Arquivo:QPSK.png2016-08-11T14:06:26Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:PSK.jpeg&diff=113721Arquivo:PSK.jpeg2016-08-11T14:04:58Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Aferi%C3%A7%C3%A3o_de_desempenho_de_modula%C3%A7%C3%B5es_digitais_utilizando_SDR&diff=113403Aferição de desempenho de modulações digitais utilizando SDR2016-08-08T13:46:05Z<p>Lucas.lv: </p>
<hr />
<div><center><BIG>Projeto - ENG TEL - 2016</BIG></center><br />
<br />
==Informações==<br />
Aluno: Lucas Lucindo <br/><br />
Coordenador: [http://wiki.sj.ifsc.edu.br/index.php/Ramon_Mayor_Martins Ramon Mayor Martins] <br/> <br />
Início: 06/16 <br/><br />
Edital: [http://www.sj.ifsc.edu.br/images/stories/chamadas_internas/chamada%20interna%2005%20de%202016.pdf Chamada Interna – Nº 05/2016 – Programa de Apoio a Projetos de Ensino, Pesquisa e Extensão do Câmpus São José.] <br/><br />
Aceite: [[Media:aceite_chamada_1_2016.doc|Resposta da chamada]] <br/><br />
<br />
==Resumo==<br />
Resumo: Atualmente os sistemas de comunicações demandam altas taxas de transmissão, o que torna o circuito do sistema cada vez mais complexo. O projeto propõe contribuir com análises a busca por soluções acerca da otimização da taxa de transmissão e da redução da complexidade de implementação de um sistema de comunicações. O objetivo é aferir o desempenho de diversas técnicas de modulação digital utilizada nos transmissores e receptores das principais aplicações do mercado. Para isso será realizado testes com a variação de parâmetros tais como: frequência, distância, potência e esquemas de modulação utilizando tecnologias de Rádio Definido por Software (SDR). Será também utilizado o ambiente GNU Radio para implementar subsistemas transmissores e receptores de comunicações. Com base nesses subsistemas será possível a comparação entre as técnicas de modulações empregadas e a viabilidade de obtenção de uma baixa probabilidade de erro nas comunicações de dados.<br />
<br />
Abstract: <br />
<br />
Palavras chave: Rádio Definido por Software, modulação, transmissores, receptores.<br />
<br />
==Horário de encontro==<br />
Sextas-feira 12:30 ~ 13:30<br />
<br />
==Link para o trabalho==<br />
*[https://drive.google.com/folderview?id=0BwhINfMRXMVQU2dWckNjYUpyWTA&usp=sharing Acesso ao Projeto]<br />
<br />
==Datas Importantes==<br />
<br />
[01/07/16 ~ 08/07/16] Estudo da modulação FSK <br/><br />
[08/07/16 ~ 15/07/16] Apresentação de SDR / GNU Radio - Resumo modulação FSK <br/><br />
[15/07/16 ~ 22/07/1] Implementação de transmissor e receptor FSK (GNU Radio) <br/><br />
<br />
==Reuniões==<br />
{{collapse top | 01/07 - Reunião 1}}<br />
* Apresentação do projeto<br />
* Modulação FM/FSK<br />
{{collapse bottom}}<br />
{{collapse top | 08/07 - Reunião 2}}<br />
* Apresentação SDR (Ramon)<br />
{{collapse bottom}}<br />
{{collapse top | - Reunião 3}}<br />
* Continuação Apresentação SDR (Ramon)<br />
* Implementação de TX/RX WBFM/NBFM<br />
* Implementação FSK<br />
{{collapse bottom}}<br />
<br />
<br />
==Links auxiliares==<br />
;Softwares e Bibliotecas<br />
*[http://gnuradio.org/ GNU Radio]<br />
*[http://airspy.com/download/ SDR#]<br />
*[http://gqrx.dk/ GQRX]<br />
<br />
;Documentos Principais<br />
<br />
<br />
;Documentos Secundários<br />
*[http://wiki.sj.ifsc.edu.br/images/a/a7/Grupo_de_Estudos_em_R%C3%A1dio_Definido_por_Software.pdf (IFSC - Ramon Mayor Martins): Introdução ao SDR]<br />
*[http://laps.ufpa.br/aldebaro/sdr2013/download/2013_sbrt_sdr_aldebaro_v7.pdf (UFPA - Aldebaro Klautau): Introdução ao SDR]<br />
<br />
==Atividades a serem desenvolvidas==<br />
<br />
*01- Estudo das modulações digitais utilizadas (07/16)<br />
*02- Desenvolvimento e teste de subsistemas transmissores e receptores (06~08/16)<br />
*03- Elaboração do 1o relatório parcial (08/16)<br />
*04- Coleta de dados (08~09/16)<br />
*05- Elaboração do 2o relatório parcial (09~10/16)<br />
*06- Análise dos dados (10~11/16)<br />
*07- Elaboração do relatório final/ submissão do artigo (11~12/16)<br />
<br />
<br />
{| border=1 |<br />
|- <br />
| 01 || 02 || 03 || 04 || 05 <br />
|- <br />
| ▄ _ _ _|| _ _ _ _||_ _ _ _|| _ _ _ _|| _ _ _ _<br />
|}<br />
<br />
== Modulações digitais ==<br />
{{Collapse top |FSK (Frequency Shift Keying)}}<br />
=== FSK (Frequency Shift Keying) ===<br />
<br />
A modulação por chaveamento na frequência (FSK) baseia-se na atribuição de uma frequência para cada estado do sinal digital. Para isso, utiliza-se uma portadora analógica para modular o sinal digital. Para compreender o funcionamento do FSK, podemos utilizar a figura abaixo como guia:<br />
<br />
[[Imagem:FSK.png| center | 400 px]]<br />
<center> Exemplo FSK </center><br />
<br />
O sinal “Data” é o sinal digital a ser modulado e o “Carrier”, como de costume, é uma portadora analógica. Quando ocorre a transmissão de uma bit, portanto, um sinal alto (‘1’), temos uma frequência maior no sinal modulado. Quando Data é baixo (‘0’), o sinal modulado assume uma frequência mais baixa. Esse é o exemplo mais simples de FSK, pois usa apenas duas frequências que correspondem a dois estados diferentes. Esse processo mais simples também é chamado de BFSK (Binary Frequency Shift Keying).<br />
Analogamente a esse processo, também podemos utilizar o que é chamado de 4FSK. Essa forma de modulação utiliza quatro frequências diferentes para identificar quatro estados (00, 01, 10, 11). Utilizar essa técnica permite aumentar a taxa de transmissão de bits, porém, aumenta a banda de frequência de transmissão utilizada.<br />
A modulação FSK possui o problema de consumir uma banda de frequência muito alta, devido as variações abruptas de frequência a cada mudança de estado do sinal digital, além de ter uma taxa de transmissão relativamente baixa.<br />
Para contornar em partes o problema da mudança abrupta, podemos utilizar uma técnica similar ao FSK, utilizando a mesma portadora e o mesmo esquema das frequências, porém, antes do sinal entrar no modulador, ele passa por um filtro gaussiano. Esse processo é chamado de GFSK.<br />
<br />
[[Imagem:Gaussian.PNG| center | 600 px]]<br />
<center> Filtro Gaussiano </center><br />
<br />
O filtro gaussiano reduz a largura espectral dos pulsos que entram. O filtro age como um formatador de pulsos que é usado para suavizar a transição entre os valores dos pulsos. A modulação GFSK é geralmente utilizada em sistemas bluetooth.<br />
<br />
*Links e Livros para consulta:<br />
**http://www.gta.ufrj.br/grad/04_2/Modulacao/<br />
**https://en.wikipedia.org/wiki/Frequency-shift_keying<br />
**http://penta.ufrgs.br/Alvaro/fsk.html<br />
**Comunicação de Dados e Redes de Computadores (Forouzan)<br />
**Fundamentos de Comunicação Eletrônica: Modulação, Demodulação e Recepção (Frenzel)<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |ASK (Amplitude-Shift Keying)}}<br />
=== ASK(Amplitude-Shift Keying) ===<br />
<br />
O ASK (Amplitude-shift keying) é uma modulação utilizada para sinais digitais. O funcionamento do ASK é baseado na mudança da amplitude da onda portadora com base no sinal digital a ser modulado.<br />
No caso de um sinal digital binário, utiliza-se uma amplitude da portadora para representar o ‘0’ e outra amplitude da portadora para o ‘1’. A Figura 1 representa uma forma especifica de fazer a modulação ASK. Para sinais com nível alto, tem-se a amplitude normal de uma dada onde portadora, já para sinais com nível baixo, tem-se um “desligamento” da portadora. Esse tipo de modulação também é chamada o OOK (On-Off Keying).<br />
<br />
[[Imagem:ASK-modulator.jpg| center | 600 px]]<br />
<center> Modulação ASK - OOK </center><br />
<br />
A modulação ASK é susceptível a mudanças repentinas de ganho e é utilizada para transmitir dados em fibras ópticas.<br />
<br />
<br />
*Links para consulta:<br />
**http://coral.ufsm.br/gpscom/professores/Renato%20Machado/ComunicacaoDeDados/ComDados10.pdf<br />
**http://penta.ufrgs.br/Alvaro/ask.html<br />
**http://coral.ufsm.br/gpscom/professores/andrei/Comunicacao/aula_08.pdf<br />
{{Collapse bottom}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:ASK-modulator.jpg&diff=113402Arquivo:ASK-modulator.jpg2016-08-08T13:43:47Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Aferi%C3%A7%C3%A3o_de_desempenho_de_modula%C3%A7%C3%B5es_digitais_utilizando_SDR&diff=111472Aferição de desempenho de modulações digitais utilizando SDR2016-07-08T12:10:56Z<p>Lucas.lv: /* Modulações digitais */</p>
<hr />
<div><center><BIG>Projeto - ENG TEL - 2016</BIG></center><br />
<br />
==Informações==<br />
Aluno: Lucas Lucindo <br/><br />
Coordenador: [http://wiki.sj.ifsc.edu.br/index.php/Ramon_Mayor_Martins Ramon Mayor Martins] <br/> <br />
Início: 06/16 <br/><br />
Edital: [http://www.sj.ifsc.edu.br/images/stories/chamadas_internas/chamada%20interna%2005%20de%202016.pdf Chamada Interna – Nº 05/2016 – Programa de Apoio a Projetos de Ensino, Pesquisa e Extensão do Câmpus São José.] <br/><br />
Aceite: [[Media:aceite_chamada_1_2016.doc|Resposta da chamada]] <br/><br />
<br />
==Resumo==<br />
Resumo: Atualmente os sistemas de comunicações demandam altas taxas de transmissão, o que torna o circuito do sistema cada vez mais complexo. O projeto propõe contribuir com análises a busca por soluções acerca da otimização da taxa de transmissão e da redução da complexidade de implementação de um sistema de comunicações. O objetivo é aferir o desempenho de diversas técnicas de modulação digital utilizada nos transmissores e receptores das principais aplicações do mercado. Para isso será realizado testes com a variação de parâmetros tais como: frequência, distância, potência e esquemas de modulação utilizando tecnologias de Rádio Definido por Software (SDR). Será também utilizado o ambiente GNU Radio para implementar subsistemas transmissores e receptores de comunicações. Com base nesses subsistemas será possível a comparação entre as técnicas de modulações empregadas e a viabilidade de obtenção de uma baixa probabilidade de erro nas comunicações de dados.<br />
<br />
Abstract: <br />
<br />
Palavras chave: Rádio Definido por Software, modulação, transmissores, receptores.<br />
<br />
==Horário de encontro==<br />
Sextas-feira 12:30 ~ 13:30<br />
<br />
==Link para o trabalho==<br />
*[https://drive.google.com/folderview?id=0BwhINfMRXMVQU2dWckNjYUpyWTA&usp=sharing Acesso ao Projeto]<br />
<br />
==Datas Importantes==<br />
<br />
[01/07/16 ~ 08/07/16] Estudo da modulação FSK <br/><br />
[08/07/16 ~ 15/07/16] Apresentação de SDR / GNU Radio - Resumo modulação FSK <br/><br />
[15/07/16 ~ 22/07/1] Implementação de transmissor e receptor FSK (GNU Radio) <br/><br />
<br />
==Links auxiliares==<br />
<br />
;Softwares e Bibliotecas<br />
*[http://gnuradio.org/ GNU Radio]<br />
*[http://airspy.com/download/ SDR#]<br />
*[http://gqrx.dk/ GQRX]<br />
<br />
;Documentos Principais<br />
<br />
<br />
;Documentos Secundários<br />
*[http://wiki.sj.ifsc.edu.br/images/a/a7/Grupo_de_Estudos_em_R%C3%A1dio_Definido_por_Software.pdf (IFSC - Ramon Mayor Martins): Introdução ao SDR]<br />
*[http://laps.ufpa.br/aldebaro/sdr2013/download/2013_sbrt_sdr_aldebaro_v7.pdf (UFPA - Aldebaro Klautau): Introdução ao SDR]<br />
<br />
==Atividades a serem desenvolvidas==<br />
<br />
*01- Estudo das modulações digitais utilizadas (07/16)<br />
*02- Desenvolvimento e teste de subsistemas transmissores e receptores (06~08/16)<br />
*03- Elaboração do 1o relatório parcial (08/16)<br />
*04- Coleta de dados (08~09/16)<br />
*05- Elaboração do 2o relatório parcial (09~10/16)<br />
*06- Análise dos dados (10~11/16)<br />
*07- Elaboração do relatório final/ submissão do artigo (11~12/16)<br />
<br />
<br />
{| border=1 |<br />
|- <br />
| 01 || 02 || 03 || 04 || 05 <br />
|- <br />
| ▄ _ _ _|| _ _ _ _||_ _ _ _|| _ _ _ _|| _ _ _ _<br />
|}<br />
<br />
== Modulações digitais ==<br />
{{Collapse top |FSK (Frequency Shift Keying)}}<br />
=== FSK (Frequency Shift Keying) ===<br />
<br />
A modulação por chaveamento na frequência (FSK) baseia-se na atribuição de uma frequência para cada estado do sinal digital. Para isso, utiliza-se uma portadora analógica para modular o sinal digital. Para compreender o funcionamento do FSK, podemos utilizar a figura abaixo como guia:<br />
<br />
[[Imagem:FSK.png| center | 400 px]]<br />
<center> Exemplo FSK </center><br />
<br />
O sinal “Data” é o sinal digital a ser modulado e o “Carrier”, como de costume, é uma portadora analógica. Quando ocorre a transmissão de uma bit, portanto, um sinal alto (‘1’), temos uma frequência maior no sinal modulado. Quando Data é baixo (‘0’), o sinal modulado assume uma frequência mais baixa. Esse é o exemplo mais simples de FSK, pois usa apenas duas frequências que correspondem a dois estados diferentes. Esse processo mais simples também é chamado de BFSK (Binary Frequency Shift Keying).<br />
Analogamente a esse processo, também podemos utilizar o que é chamado de 4FSK. Essa forma de modulação utiliza quatro frequências diferentes para identificar quatro estados (00, 01, 10, 11). Utilizar essa técnica permite aumentar a taxa de transmissão de bits, porém, aumenta a banda de frequência de transmissão utilizada.<br />
A modulação FSK possui o problema de consumir uma banda de frequência muito alta, devido as variações abruptas de frequência a cada mudança de estado do sinal digital, além de ter uma taxa de transmissão relativamente baixa.<br />
Para contornar em partes o problema da mudança abrupta, podemos utilizar uma técnica similar ao FSK, utilizando a mesma portadora e o mesmo esquema das frequências, porém, antes do sinal entrar no modulador, ele passa por um filtro gaussiano. Esse processo é chamado de GFSK.<br />
<br />
[[Imagem:Gaussian.PNG| center | 600 px]]<br />
<center> Filtro Gaussiano </center><br />
<br />
O filtro gaussiano reduz a largura espectral dos pulsos que entram. O filtro age como um formatador de pulsos que é usado para suavizar a transição entre os valores dos pulsos. A modulação GFSK é geralmente utilizada em sistemas bluetooth.<br />
<br />
*Links e Livros para consulta:<br />
**http://www.gta.ufrj.br/grad/04_2/Modulacao/<br />
**https://en.wikipedia.org/wiki/Frequency-shift_keying<br />
**http://penta.ufrgs.br/Alvaro/fsk.html<br />
**Comunicação de Dados e Redes de Computadores (Forouzan)<br />
**Fundamentos de Comunicação Eletrônica: Modulação, Demodulação e Recepção (Frenzel)<br />
{{Collapse bottom}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Aferi%C3%A7%C3%A3o_de_desempenho_de_modula%C3%A7%C3%B5es_digitais_utilizando_SDR&diff=111471Aferição de desempenho de modulações digitais utilizando SDR2016-07-08T11:11:50Z<p>Lucas.lv: /* Modulações digitais */</p>
<hr />
<div><center><BIG>Projeto - ENG TEL - 2016</BIG></center><br />
<br />
==Informações==<br />
Aluno: Lucas Lucindo <br/><br />
Coordenador: [http://wiki.sj.ifsc.edu.br/index.php/Ramon_Mayor_Martins Ramon Mayor Martins] <br/> <br />
Início: 06/16 <br/><br />
Edital: [http://www.sj.ifsc.edu.br/images/stories/chamadas_internas/chamada%20interna%2005%20de%202016.pdf Chamada Interna – Nº 05/2016 – Programa de Apoio a Projetos de Ensino, Pesquisa e Extensão do Câmpus São José.] <br/><br />
Aceite: [[Media:aceite_chamada_1_2016.doc|Resposta da chamada]] <br/><br />
<br />
==Resumo==<br />
Resumo: Atualmente os sistemas de comunicações demandam altas taxas de transmissão, o que torna o circuito do sistema cada vez mais complexo. O projeto propõe contribuir com análises a busca por soluções acerca da otimização da taxa de transmissão e da redução da complexidade de implementação de um sistema de comunicações. O objetivo é aferir o desempenho de diversas técnicas de modulação digital utilizada nos transmissores e receptores das principais aplicações do mercado. Para isso será realizado testes com a variação de parâmetros tais como: frequência, distância, potência e esquemas de modulação utilizando tecnologias de Rádio Definido por Software (SDR). Será também utilizado o ambiente GNU Radio para implementar subsistemas transmissores e receptores de comunicações. Com base nesses subsistemas será possível a comparação entre as técnicas de modulações empregadas e a viabilidade de obtenção de uma baixa probabilidade de erro nas comunicações de dados.<br />
<br />
Abstract: <br />
<br />
Palavras chave: Rádio Definido por Software, modulação, transmissores, receptores.<br />
<br />
==Horário de encontro==<br />
Sextas-feira 12:30 ~ 13:30<br />
<br />
==Link para o trabalho==<br />
*[https://drive.google.com/folderview?id=0BwhINfMRXMVQU2dWckNjYUpyWTA&usp=sharing Acesso ao Projeto]<br />
<br />
==Datas Importantes==<br />
<br />
[01/07/16 ~ 08/07/16] Estudo da modulação FSK <br/><br />
[08/07/16 ~ 15/07/16] Apresentação de SDR / GNU Radio - Resumo modulação FSK <br/><br />
[15/07/16 ~ 22/07/1] Implementação de transmissor e receptor FSK (GNU Radio) <br/><br />
<br />
==Links auxiliares==<br />
<br />
;Softwares e Bibliotecas<br />
*[http://gnuradio.org/ GNU Radio]<br />
*[http://airspy.com/download/ SDR#]<br />
*[http://gqrx.dk/ GQRX]<br />
<br />
;Documentos Principais<br />
<br />
<br />
;Documentos Secundários<br />
*[http://wiki.sj.ifsc.edu.br/images/a/a7/Grupo_de_Estudos_em_R%C3%A1dio_Definido_por_Software.pdf (IFSC - Ramon Mayor Martins): Introdução ao SDR]<br />
*[http://laps.ufpa.br/aldebaro/sdr2013/download/2013_sbrt_sdr_aldebaro_v7.pdf (UFPA - Aldebaro Klautau): Introdução ao SDR]<br />
<br />
==Atividades a serem desenvolvidas==<br />
<br />
*01- Estudo das modulações digitais utilizadas (07/16)<br />
*02- Desenvolvimento e teste de subsistemas transmissores e receptores (06~08/16)<br />
*03- Elaboração do 1o relatório parcial (08/16)<br />
*04- Coleta de dados (08~09/16)<br />
*05- Elaboração do 2o relatório parcial (09~10/16)<br />
*06- Análise dos dados (10~11/16)<br />
*07- Elaboração do relatório final/ submissão do artigo (11~12/16)<br />
<br />
<br />
{| border=1 |<br />
|- <br />
| 01 || 02 || 03 || 04 || 05 <br />
|- <br />
| ▄ _ _ _|| _ _ _ _||_ _ _ _|| _ _ _ _|| _ _ _ _<br />
|}<br />
<br />
== Modulações digitais ==<br />
{{Collapse top |FSK (Frequency Shift Keying)}}<br />
=== FSK (Frequency Shift Keying) ===<br />
<br />
A modulação por chaveamento na frequência (FSK) baseia-se na atribuição de uma frequência para cada estado do sinal digital. Para isso, utiliza-se uma portadora analógica para modular o sinal digital. Para compreender o funcionamento do FSK, podemos utilizar a figura abaixo como guia:<br />
<br />
[[Imagem:FSK.png| center | 400 px]]<br />
<center> Exemplo FSK </center><br />
<br />
O sinal “Data” é o sinal digital a ser modulado e o “Carrier”, como de costume, é uma portadora analógica. Quando ocorre a transmissão de uma bit, portanto, um sinal alto (‘1’), temos uma frequência maior no sinal modulado. Quando Data é baixo (‘0’), o sinal modulado assume uma frequência mais baixa. Esse é o exemplo mais simples de FSK, pois uso apenas duas frequências que correspondem a dois estados diferentes. Esse processo mais simples também é chamado de BFSK (Binary Frequency Shift Keying).<br />
Analogamente a esse processo, também podemos utilizar o que é chamado de 4FSK. Essa forma de modulação utiliza quatro frequências diferentes para identificar quatro estados diferentes (00, 01, 10, 11). Utilizar essa técnica permite aumentar a taxa de transmissão de bits, porém, aumenta a banda de frequência de transmissão utilizada.<br />
A modulação FSK possui o problema de consumir uma banda de frequência muito alta, devido a várias abruptas de frequência a cada mudança de estado do sinal digital, além de ter uma taxa de transmissão relativamente baixa.<br />
Para contornar em partes o problema da mudança abrupta, podemos utilizar uma técnica similar ao FSK, utilizando a mesma portadora e o mesmo esquema das frequências, porém, antes do sinal entrar no modular, ele passar por um filtro gaussiano. Esse processo é chamado de GFSK.<br />
<br />
[[Imagem:Gaussian.PNG| center | 600 px]]<br />
<center> Filtro Gaussiano </center><br />
<br />
O filtro gaussiano reduz a largura espectral dos pulsos que entram. O filtro age como um formatador de pulsos que é usado para suavizar a transição entre os valores dos pulsos. A modulação GFSK é geralmente utilizada em sistemas bluetooth.<br />
<br />
*Links e Livros para consulta:<br />
**http://www.gta.ufrj.br/grad/04_2/Modulacao/<br />
**https://en.wikipedia.org/wiki/Frequency-shift_keying<br />
**http://penta.ufrgs.br/Alvaro/fsk.html<br />
**Comunicação de Dados e Redes de Computadores (Forouzan)<br />
**Fundamentos de Comunicação Eletrônica: Modulação, Demodulação e Recepção (Frenzel)<br />
{{Collapse bottom}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Aferi%C3%A7%C3%A3o_de_desempenho_de_modula%C3%A7%C3%B5es_digitais_utilizando_SDR&diff=111470Aferição de desempenho de modulações digitais utilizando SDR2016-07-08T11:10:18Z<p>Lucas.lv: </p>
<hr />
<div><center><BIG>Projeto - ENG TEL - 2016</BIG></center><br />
<br />
==Informações==<br />
Aluno: Lucas Lucindo <br/><br />
Coordenador: [http://wiki.sj.ifsc.edu.br/index.php/Ramon_Mayor_Martins Ramon Mayor Martins] <br/> <br />
Início: 06/16 <br/><br />
Edital: [http://www.sj.ifsc.edu.br/images/stories/chamadas_internas/chamada%20interna%2005%20de%202016.pdf Chamada Interna – Nº 05/2016 – Programa de Apoio a Projetos de Ensino, Pesquisa e Extensão do Câmpus São José.] <br/><br />
Aceite: [[Media:aceite_chamada_1_2016.doc|Resposta da chamada]] <br/><br />
<br />
==Resumo==<br />
Resumo: Atualmente os sistemas de comunicações demandam altas taxas de transmissão, o que torna o circuito do sistema cada vez mais complexo. O projeto propõe contribuir com análises a busca por soluções acerca da otimização da taxa de transmissão e da redução da complexidade de implementação de um sistema de comunicações. O objetivo é aferir o desempenho de diversas técnicas de modulação digital utilizada nos transmissores e receptores das principais aplicações do mercado. Para isso será realizado testes com a variação de parâmetros tais como: frequência, distância, potência e esquemas de modulação utilizando tecnologias de Rádio Definido por Software (SDR). Será também utilizado o ambiente GNU Radio para implementar subsistemas transmissores e receptores de comunicações. Com base nesses subsistemas será possível a comparação entre as técnicas de modulações empregadas e a viabilidade de obtenção de uma baixa probabilidade de erro nas comunicações de dados.<br />
<br />
Abstract: <br />
<br />
Palavras chave: Rádio Definido por Software, modulação, transmissores, receptores.<br />
<br />
==Horário de encontro==<br />
Sextas-feira 12:30 ~ 13:30<br />
<br />
==Link para o trabalho==<br />
*[https://drive.google.com/folderview?id=0BwhINfMRXMVQU2dWckNjYUpyWTA&usp=sharing Acesso ao Projeto]<br />
<br />
==Datas Importantes==<br />
<br />
[01/07/16 ~ 08/07/16] Estudo da modulação FSK <br/><br />
[08/07/16 ~ 15/07/16] Apresentação de SDR / GNU Radio - Resumo modulação FSK <br/><br />
[15/07/16 ~ 22/07/1] Implementação de transmissor e receptor FSK (GNU Radio) <br/><br />
<br />
==Links auxiliares==<br />
<br />
;Softwares e Bibliotecas<br />
*[http://gnuradio.org/ GNU Radio]<br />
*[http://airspy.com/download/ SDR#]<br />
*[http://gqrx.dk/ GQRX]<br />
<br />
;Documentos Principais<br />
<br />
<br />
;Documentos Secundários<br />
*[http://wiki.sj.ifsc.edu.br/images/a/a7/Grupo_de_Estudos_em_R%C3%A1dio_Definido_por_Software.pdf (IFSC - Ramon Mayor Martins): Introdução ao SDR]<br />
*[http://laps.ufpa.br/aldebaro/sdr2013/download/2013_sbrt_sdr_aldebaro_v7.pdf (UFPA - Aldebaro Klautau): Introdução ao SDR]<br />
<br />
==Atividades a serem desenvolvidas==<br />
<br />
*01- Estudo das modulações digitais utilizadas (07/16)<br />
*02- Desenvolvimento e teste de subsistemas transmissores e receptores (06~08/16)<br />
*03- Elaboração do 1o relatório parcial (08/16)<br />
*04- Coleta de dados (08~09/16)<br />
*05- Elaboração do 2o relatório parcial (09~10/16)<br />
*06- Análise dos dados (10~11/16)<br />
*07- Elaboração do relatório final/ submissão do artigo (11~12/16)<br />
<br />
<br />
{| border=1 |<br />
|- <br />
| 01 || 02 || 03 || 04 || 05 <br />
|- <br />
| ▄ _ _ _|| _ _ _ _||_ _ _ _|| _ _ _ _|| _ _ _ _<br />
|}<br />
<br />
== Modulações digitais ==<br />
{{Collapse top |expand=false |FSK (Frequency Shift Keying)}}<br />
=== FSK (Frequency Shift Keying) ===<br />
<br />
A modulação por chaveamento na frequência (FSK) baseia-se na atribuição de uma frequência para cada estado do sinal digital. Para isso, utiliza-se uma portadora analógica para modular o sinal digital. Para compreender o funcionamento do FSK, podemos utilizar a figura abaixo como guia:<br />
<br />
[[Imagem:FSK.png| center | 400 px]]<br />
<center> Exemplo FSK </center><br />
<br />
O sinal “Data” é o sinal digital a ser modulado e o “Carrier”, como de costume, é uma portadora analógica. Quando ocorre a transmissão de uma bit, portanto, um sinal alto (‘1’), temos uma frequência maior no sinal modulado. Quando Data é baixo (‘0’), o sinal modulado assume uma frequência mais baixa. Esse é o exemplo mais simples de FSK, pois uso apenas duas frequências que correspondem a dois estados diferentes. Esse processo mais simples também é chamado de BFSK (Binary Frequency Shift Keying).<br />
Analogamente a esse processo, também podemos utilizar o que é chamado de 4FSK. Essa forma de modulação utiliza quatro frequências diferentes para identificar quatro estados diferentes (00, 01, 10, 11). Utilizar essa técnica permite aumentar a taxa de transmissão de bits, porém, aumenta a banda de frequência de transmissão utilizada.<br />
A modulação FSK possui o problema de consumir uma banda de frequência muito alta, devido a várias abruptas de frequência a cada mudança de estado do sinal digital, além de ter uma taxa de transmissão relativamente baixa.<br />
Para contornar em partes o problema da mudança abrupta, podemos utilizar uma técnica similar ao FSK, utilizando a mesma portadora e o mesmo esquema das frequências, porém, antes do sinal entrar no modular, ele passar por um filtro gaussiano. Esse processo é chamado de GFSK.<br />
<br />
[[Imagem:Gaussian.PNG| center | 600 px]]<br />
<center> Filtro Gaussiano </center><br />
<br />
O filtro gaussiano reduz a largura espectral dos pulsos que entram. O filtro age como um formatador de pulsos que é usado para suavizar a transição entre os valores dos pulsos. A modulação GFSK é geralmente utilizada em sistemas bluetooth.<br />
<br />
*Links e Livros para consulta:<br />
**http://www.gta.ufrj.br/grad/04_2/Modulacao/<br />
**https://en.wikipedia.org/wiki/Frequency-shift_keying<br />
**http://penta.ufrgs.br/Alvaro/fsk.html<br />
**Comunicação de Dados e Redes de Computadores (Forouzan)<br />
**Fundamentos de Comunicação Eletrônica: Modulação, Demodulação e Recepção (Frenzel)<br />
{{Collapse bottom}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Gaussian.PNG&diff=111469Arquivo:Gaussian.PNG2016-07-08T11:01:58Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:FSK.png&diff=111468Arquivo:FSK.png2016-07-08T11:00:18Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=104093Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-30T04:01:12Z<p>Lucas.lv: /* Bloco - "Mwn" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn| center | 200 px]]<br />
|[[Ficheiro: Interno.png|Estrutura interna do Mwn|center | center | 600 px]]<br />
<center> Figura 7 - Mwn e sua estrutura interna </center><br />
|}<br />
<br />
O subsistema '''Mwn''' possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. Na versão 3_0 possui uma constante chamada '''constant8''' que vale (1/8), mas na verdade ela representa 1/N, porém, essa versão comporta apenas 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versões esse bloco irá ter 1 entrada que irá corresponder ao N (número de entradas). A figura 7 representa uma visão geral do bloco Mwn.<br />
<br />
==== Bloco - "Wn" ====<br />
<br />
O bloco Wn possui 1 entrada ('''1:N''') e uma saída ('''Wn'''). A Figura 8 demonstra sua visão macroscópica e a figura 9 representa seu esquema interno.<br />
<br />
[[Imagem:Wn.png| center | 100 px]]<br />
<center> Figura 8 - Visão Macroscópica de Wn </center><br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png| center | 800 px]]<br />
<center> Figura 9 - Esquema interno Wn </center><br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a estratégia apresentada na figura 10:<br />
<br />
[[Imagem:Sen.png| 600 px| center | 800 px]]<br />
<center> Figura 10 - Desmembramento de Wn </center><br />
<br />
O formato padrão de cálculo do Wn se dá por um '''e''' elevado a uma função de N, porém, os blocos disponíveis no HDL coder não suportam o uso de potências de funções. A solução para esse problema foi desmembrar a função Wn em cosseno e seno, além de utilizar equivalências da fórmula de euler, como descrito na figura 10.<br />
<br />
==== Blocos - "{Wn^0 .. Wn^3}" ====<br />
Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3).<br />
<br />
*Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png| center | 100 px]]<br />
<center> Figura 11 - Visão macroscópica Wn^0 </center><br />
<br />
A estratégia menos custosa encontrada para resolver o cálculo de Wn^0 foi levar em consideração que qualquer número elevado a zero é igual a 1. Como descrito na imagem 12, percebe-se que o bloco em questão não possui entradas. Isso ocorre pelo mesmo motivo descrito anteriormente. Não importa qual o valor de Wn, já que o único valor possível será 1. O bloco possui 2 saídas: '''W0''' e '''W0_N'''. O '''W0''' corresponde ao '''Wn^0''' original e o '''W0_N''' corresponde ao '''Wn^0''' negado. Para calcular a parte negada, foi usado o bloco unary minus, que nada mais é do que um inversor.<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png| center |600 px]]<br />
<center> Figura 12 - Esquema interno Wn^0 </center><br />
<br />
*Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png| center | 100 px]]<br />
<center> Figura 13 - Visão macroscópica Wn^1 </center><br />
<br />
O bloco '''Wn^1''' segue quase o mesmo esquema do '''Wn^0'''. O bloco possui 1 entrada que corresponde ao valor de Wn calculado no bloco '''Wn'''. Como esse bloco é Wn^1, sabemos que todo número elevado a 1 é igual a ele mesmo, portanto, o valor de Wn^1 será sempre ele mesmo. Assim como no bloco Wn^0, esse bloco possui 2 saídas: '''Wn1''' e '''~Wn1'''. Wn1 corresponde ao valor original de '''Wn^1''' e '''~Wn1''' é o seu valor negado. Foi utilizado a mesma estratégia do unary minus. Se esquema é representado na figura 14.<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png| center |600 px]]<br />
<center> Figura 14 - Esquema interno Wn^1 </center><br />
<br />
*Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png| center | 100 px]]<br />
<center> Figura 15 - Visão macroscópica Wn^2 </center><br />
<br />
No bloco Wn^2 foi utilizada uma estratégia um pouco diferente dos blocos anteriores. Como já explanado anteriormente, o HDL coder não possui suporte para potências, portanto, o cálculo de Wn^2 necessita de algum estratégia para fazer essa potência. Sabemos que Wn^2 = Wn*Wn, logo, podemos utilizar a única entrada do bloco e conjunto com um bloco product para multiplicar a entrada N (que corresponde ao Wn calculado no bloco Wn) e obter o mesmo resultado de Wn^2. O bloco Wn^2 também possui 2 saídas: '''Wn2''' e '''~Wn2'''. Wn2 corresponde ao valor original de '''Wn^2''' e '''~Wn2''' é o seu valor negado. Foi utilizado a mesma estratégia do unary minus. Seu esquema é representado na figura 16.<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png| center |800 px]]<br />
<center> Figura 16 - Esquema interno Wn^2 </center><br />
<br />
*Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png| center | 100 px]]<br />
<center> Figura 17 - Visão macroscópica Wn^3 </center><br />
<br />
O bloco Wn^3 possui uma estratégia para que seja poupado hardware. Sabemos que Wn^3 = Wn*Wn*Wn. Seria natural utilizar 2 blocos products para realizar essa operação, porém, podemos pegar a saída '''Wn2''' e cascatear para esse bloco. Como Wn2 foi calculado como Wn*Wn, precisamos apenas fazer Wn2*Wn e iremos obter Wn3. Essa estratégia é descrita na figura 18. O bloco Wn^3 também possui 2 saídas: '''Wn3''' e '''Wn3_N'''. Wn3 corresponde ao valor original de '''Wn^2''' e '''Wn3_N''' é o seu valor negado. Foi utilizado a mesma estratégia do unary minus. Seu esquema é representado na figura 18.<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png| center |800 px|]]<br />
<center> Figura 18 - Esquema interno Wn^3 </center><br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=104092Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-30T03:59:28Z<p>Lucas.lv: /* Bloco - "Mwn" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn| center | 200 px]]<br />
|[[Ficheiro: Interno.png|Estrutura interna do Mwn|center | center | 600 px]]<br />
<center> Figura 7 - Mwn e sua estrutura interna </center><br />
|}<br />
<br />
O subsistema '''Mwn''' possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. Na versão 3_0 possui uma constante chamada '''constant8''' que vale (1/8), mas na verdade ela representa 1/N, porém, essa versão comporta apenas 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versões esse bloco irá ter 1 entrada que irá corresponder ao N (número de entradas). A figura 7 representa uma visão geral do bloco Mwn.<br />
<br />
==== Bloco - "Wn" ====<br />
<br />
O bloco Wn possui 1 entrada ('''1:N''') e uma saída ('''Wn'''). A Figura 8 demonstra sua visão macroscópica e a figura 9 representa seu esquema interno.<br />
<br />
[[Imagem:Wn.png| center | 100 px]]<br />
<center> Figura 8 - Visão Macroscópica de Wn </center><br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png| center | 800 px]]<br />
<center> Figura 9 - Esquema interno Wn </center><br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a estratégia apresentada na figura 10:<br />
<br />
[[Imagem:Sen.png| 600 px| center | 800 px]]<br />
<center> Figura 10 - Desmembramento de Wn </center><br />
<br />
O formato padrão de cálculo do Wn se dá por um '''e''' elevado a uma função de N, porém, os blocos disponíveis no HDL coder não suportam o uso de potências de funções. A solução para esse problema foi desmembrar a função Wn em cosseno e seno, além de utilizar equivalências da fórmula de euler, como descrito na figura 10.<br />
<br />
==== Blocos - "{Wn^0 .. Wn^3}" ====<br />
Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3).<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png| center | 100 px]]<br />
<center> Figura 11 - Visão macroscópica Wn^0 </center><br />
<br />
A estratégia menos custosa encontrada para resolver o cálculo de Wn^0 foi levar em consideração que qualquer número elevado a zero é igual a 1. Como descrito na imagem 12, percebe-se que o bloco em questão não possui entradas. Isso ocorre pelo mesmo motivo descrito anteriormente. Não importa qual o valor de Wn, já que o único valor possível será 1. O bloco possui 2 saídas: '''W0''' e '''W0_N'''. O '''W0''' corresponde ao '''Wn^0''' original e o '''W0_N''' corresponde ao '''Wn^0''' negado. Para calcular a parte negada, foi usado o bloco unary minus, que nada mais é do que um inversor.<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png| center |600 px]]<br />
<center> Figura 12 - Esquema interno Wn^0 </center><br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png| center | 100 px]]<br />
<center> Figura 13 - Visão macroscópica Wn^1 </center><br />
<br />
O bloco '''Wn^1''' segue quase o mesmo esquema do '''Wn^0'''. O bloco possui 1 entrada que corresponde ao valor de Wn calculado no bloco '''Wn'''. Como esse bloco é Wn^1, sabemos que todo número elevado a 1 é igual a ele mesmo, portanto, o valor de Wn^1 será sempre ele mesmo. Assim como no bloco Wn^0, esse bloco possui 2 saídas: '''Wn1''' e '''~Wn1'''. Wn1 corresponde ao valor original de '''Wn^1''' e '''~Wn1''' é o seu valor negado. Foi utilizado a mesma estratégia do unary minus. Se esquema é representado na figura 14.<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png| center |600 px]]<br />
<center> Figura 14 - Esquema interno Wn^1 </center><br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png| center | 100 px]]<br />
<center> Figura 15 - Visão macroscópica Wn^2 </center><br />
<br />
No bloco Wn^2 foi utilizada uma estratégia um pouco diferente dos blocos anteriores. Como já explanado anteriormente, o HDL coder não possui suporte para potências, portanto, o cálculo de Wn^2 necessita de algum estratégia para fazer essa potência. Sabemos que Wn^2 = Wn*Wn, logo, podemos utilizar a única entrada do bloco e conjunto com um bloco product para multiplicar a entrada N (que corresponde ao Wn calculado no bloco Wn) e obter o mesmo resultado de Wn^2. O bloco Wn^2 também possui 2 saídas: '''Wn2''' e '''~Wn2'''. Wn2 corresponde ao valor original de '''Wn^2''' e '''~Wn2''' é o seu valor negado. Foi utilizado a mesma estratégia do unary minus. Seu esquema é representado na figura 16.<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png| center |800 px]]<br />
<center> Figura 16 - Esquema interno Wn^2 </center><br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png| center | 100 px]]<br />
<center> Figura 17 - Visão macroscópica Wn^3 </center><br />
<br />
O bloco Wn^3 possui uma estratégia para que seja poupado hardware. Sabemos que Wn^3 = Wn*Wn*Wn. Seria natural utilizar 2 blocos products para realizar essa operação, porém, podemos pegar a saída '''Wn2''' e cascatear para esse bloco. Como Wn2 foi calculado como Wn*Wn, precisamos apenas fazer Wn2*Wn e iremos obter Wn3. Essa estratégia é descrita na figura 18. O bloco Wn^3 também possui 2 saídas: '''Wn3''' e '''Wn3_N'''. Wn3 corresponde ao valor original de '''Wn^2''' e '''Wn3_N''' é o seu valor negado. Foi utilizado a mesma estratégia do unary minus. Seu esquema é representado na figura 18.<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png| center |800 px|]]<br />
<center> Figura 18 - Esquema interno Wn^3 </center><br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=104091Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-30T03:16:36Z<p>Lucas.lv: /* Bloco - "Mwn" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn| center | 200 px]]<br />
|[[Ficheiro: Interno.png|Estrutura interna do Mwn|center | center | 600 px]]<br />
<center> Figura 7 - Mwn e sua estrutura interna </center><br />
|}<br />
<br />
O subsistema '''Mwn''' possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. Na versão 3_0 possui uma constante chamada '''constant8''' que vale (1/8), mas na verdade ela representa 1/N, porém, essa versão comporta apenas 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versões esse bloco irá ter 1 entrada que irá corresponder ao N (número de entradas). A figura 7 representa uma visão geral do bloco Wn.<br />
<br />
[[Imagem:Wn.png| center | 100 px]]<br />
<center> Figura 8 - Visão Macroscópica de Wn </center><br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png| center | 800 px]]<br />
<center> Figura 9 - Esquema interno Wn </center><br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a estratégia apresentada na figura :<br />
<br />
[[Imagem:Sen.png| 600 px| center | 800 px]]<br />
<center> Figura 9 - Esquema interno Wn </center><br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^0 </center><br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png| center |600 px]]<br />
<center> Figura 1 - Esquema interno Wn^0 </center><br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^1 </center><br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png| center |600 px]]<br />
<center> Figura 1 - Esquema interno Wn^1 </center><br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^2 </center><br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png| center |800 px]]<br />
<center> Figura 1 - Esquema interno Wn^2 </center><br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^3 </center><br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png| center |800 px|]]<br />
<center> Figura 1 - Esquema interno Wn^3 </center><br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=104090Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-30T01:23:59Z<p>Lucas.lv: /* Bloco - "Mwn" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn| center | 200 px]]<br />
|[[Ficheiro: Interno.png|Estrutura interna do Mwn|center | center | 600 px]]<br />
<center> Figura 1 - Mwn e sua estrutura interna </center><br />
|}<br />
<br />
O subsistema '''Mwn''' possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. <br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png| center | 100 px]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png| center | 800 px]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png| 600 px| center | 800 px]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^0 </center><br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png| center |600 px]]<br />
<center> Figura 1 - Esquema interno Wn^0 </center><br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^1 </center><br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png| center |600 px]]<br />
<center> Figura 1 - Esquema interno Wn^1 </center><br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^2 </center><br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png| center |800 px]]<br />
<center> Figura 1 - Esquema interno Wn^2 </center><br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^3 </center><br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png| center |800 px|]]<br />
<center> Figura 1 - Esquema interno Wn^3 </center><br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=104089Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-30T01:20:34Z<p>Lucas.lv: /* Bloco - "Mwn" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn| center | 200 px]]<br />
|[[Ficheiro: Interno.png|Estrutura interna do Mwn|center | center | 600 px]]<br />
<center> Figura 1 - Mwn e sua estrutura interna </center><br />
|}<br />
<br />
O subsistema '''Mwn''' possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. <br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png| center | 100 px]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png| center | 800 px]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png| 600 px| center | 800 px]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^0 </center><br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png| center |700 px]]<br />
<center> Figura 1 - Esquema interno Wn^0 </center><br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^1 </center><br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png| center |700 px]]<br />
<center> Figura 1 - Esquema interno Wn^1 </center><br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^2 </center><br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png| center |800 px]]<br />
<center> Figura 1 - Esquema interno Wn^2 </center><br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^3 </center><br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png| center |800 px|]]<br />
<center> Figura 1 - Esquema interno Wn^3 </center><br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=104088Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-30T01:14:50Z<p>Lucas.lv: /* Blocos da FFT */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn| center | 200 px]]<br />
|[[Ficheiro: Interno.png|Estrutura interna do Mwn|center | center | 600 px]]<br />
|}<br />
<br />
O subsistema '''Mwn''' possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. <br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png| center | 100 px]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png| center | 800 px]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png| 600 px| center | 800 px]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^0 </center><br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png| center |800 px]]<br />
<center> Figura 1 - Esquema interno Wn^0 </center><br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^1 </center><br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png| center |800 px]]<br />
<center> Figura 1 - Esquema interno Wn^1 </center><br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^2 </center><br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png| center |800 px]]<br />
<center> Figura 1 - Esquema interno Wn^2 </center><br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png| center | 100 px]]<br />
<center> Figura 1 - Visão macroscópica Wn^3 </center><br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png| center |800 px|]]<br />
<center> Figura 1 - Esquema interno Wn^3 </center><br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=104087Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-30T01:02:11Z<p>Lucas.lv: /* Blocos da FFT */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn| center | 200 px]]<br />
|[[Ficheiro: Interno.png|Estrutura interna do Mwn|center | center | 600 px]]<br />
|}<br />
<br />
O subsistema '''Mwn''' possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. <br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png| center | 200 px]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png| center | 200 px]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png| 600 px| center | 200 px]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png| center | 200 px]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png| center |600 px]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png| center | 200 px]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png| center |600 px]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png| center | 200 px]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png| center |600 px]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png| center | 200 px]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png| center |800 px||Esquema interno Wn^3]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=104086Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-30T00:59:55Z<p>Lucas.lv: /* Bloco - "Mwn" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn|200 px]]<br />
|[[Ficheiro: Interno.png|Estrutura interna do Mwn| 600 px]]<br />
|}<br />
<br />
O subsistema '''Mwn''' possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. <br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png| 600 px]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png|600 px]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png|600 px]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png|600 px]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png|800 px||Esquema interno Wn^3]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=103113Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-21T19:30:13Z<p>Lucas.lv: /* Bloco - "Mwn" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn|200 px]]<br />
|[[Ficheiro: Interno.png|Estrutra interna do Mwn| 600 px]]<br />
|}<br />
<br />
O subsistema '''Mwn''' possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. <br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png| 600 px]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png|600 px]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png|600 px]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png|600 px]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png|800 px||Esquema interno Wn^3]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=103110Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-21T19:26:29Z<p>Lucas.lv: /* Bloco - "Dfts" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
*O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn|200 px]]<br />
|[[Ficheiro: Interno.png|Estrutra interna do Mwn| 600 px]]<br />
|}<br />
<br />
*O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados.<br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png| 600 px]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png|600 px]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png|600 px]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png|600 px]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png|800 px||Esquema interno Wn^3]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=103109Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-21T19:25:34Z<p>Lucas.lv: /* Bloco - "Dfts" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
[[Imagem:Isolado.png| center | 600 px]]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
O procedimento que ocorre dentro da butterfly pode ser descrito, didaticamente, de acordo com a figura 6.<br />
<br />
[[Imagem:Fly.png| center | 600 px]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
*O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn|200 px]]<br />
|[[Ficheiro: Interno.png|Estrutra interna do Mwn| 600 px]]<br />
|}<br />
<br />
*O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados.<br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png| 600 px]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png|600 px]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png|600 px]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png|600 px]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png|800 px||Esquema interno Wn^3]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=102980Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-19T21:07:20Z<p>Lucas.lv: /* Bloco - "Mwn" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
[[Imagem:Isolado.png| center | 600 px]]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
Seu esquema interno:<br />
<br />
[[Imagem:Fly.png| center | 600 px]]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
*O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn|200 px]]<br />
|[[Ficheiro: Interno.png|Estrutra interna do Mwn| 600 px]]<br />
|}<br />
<br />
*O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados.<br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png| 600 px]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png|600 px]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png|600 px]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png|600 px]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png|800 px||Esquema interno Wn^3]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=102915Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-17T13:25:16Z<p>Lucas.lv: /* Implementação - FFT utilizando simulink */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png| 200 px]]<br />
|[[Imagem:Butter.png| 650 px]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
<br />
[[Imagem:Celula.png| center | 150 px]]<br />
<center> Figura 4 - Bloco-célula de uma butterfly </center><br />
<br />
[[Imagem:Isolado.png| center | 600 px]]]<br />
<center> Figura 5 - Esquema interno butterfly </center><br />
<br />
Seu esquema interno:<br />
<br />
[[Imagem:Fly.png| center | 600 px]]]<br />
<center> Figura 6 - Funcionamento didático butterfly </center><br />
<br />
=== Bloco - "Mwn" ===<br />
*O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn|200 px]]<br />
|[[Ficheiro: Interno.png|Estrutra interna do Mwn| 800 px]]]<br />
|}<br />
<br />
*O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados.<br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png|800 px]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png|800 px]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png|800 px]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png|800 px||Esquema interno Wn^3]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=102914Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-17T13:17:14Z<p>Lucas.lv: /* Bloco - "Dfts" */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png]]<br />
|[[Imagem:Butter.png]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 4. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
<br />
Bloco-célula de uma buttefly:<br />
{|<br />
|[[Imagem:Celula.png]]<br />
|[[Imagem:Isolado.png]]<br />
|}<br />
Seu esquema interno:<br />
<br />
[[Imagem:Fly.png]]<br />
<br />
=== Bloco - "Mwn" ===<br />
*O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn|200 px]]<br />
|[[Ficheiro: Interno.png|Estrutra interna do Mwn| 800 px]]]<br />
|}<br />
<br />
*O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados.<br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png|800 px]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png|800 px]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png|800 px]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png|800 px||Esquema interno Wn^3]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=102913Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-17T13:06:43Z<p>Lucas.lv: 5</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
Arquivos das versões da FFT: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações da FFT: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png| center | 200 px]]<br />
<center> Figura 1 - Visão macroscópica da FFT </center><br />
<br />
==Blocos da FFT==<br />
<br />
===Bloco - "FFT Decimation"===<br />
<br />
O bloco '''FFT Decimation''' é um subsistema que agrupa os subsistemas '''Dfts''' e '''Mwn'''. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.<br />
<br />
[[Imagem:Imagem geral.png| center | 800 px]]<br />
<center> Figura 1 - Composição do Bloco - "FFT Decimation </center><br />
<br />
=== Bloco - "Dfts" ===<br />
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do ....<br />
{|<br />
|[[Imagem:Dfts.png]]<br />
|[[Imagem:Butter.png]]<br />
|}<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 4. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante.<br />
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.<br />
<br />
<br />
Bloco-célula de uma buttefly:<br />
{|<br />
|[[Imagem:Celula.png]]<br />
|[[Imagem:Isolado.png]]<br />
|}<br />
Seu esquema interno:<br />
<br />
<br />
<br />
*O bloco possui 2 entradas -> Nas primeiras butterflies essas entradas correspondem diretamente a entradas da FFT. Nos blocos seguintes essas entradas são os resultados das butterflies anteriores.<br />
<br />
*Cada butterflie de forma isolada sua parte da seguinte forma:<br />
<br />
[[Imagem:Fly.png]]<br />
<br />
=== Bloco - "Mwn" ===<br />
*O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
{|<br />
|[[Ficheiro: Mwn.png |Mwn|200 px]]<br />
|[[Ficheiro: Interno.png|Estrutra interna do Mwn| 800 px]]]<br />
|}<br />
<br />
*O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados.<br />
<br />
Esquema interno do Mwn:<br />
<br />
<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png|800 px]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png|800 px]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png|800 px]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png|800 px||Esquema interno Wn^3]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=RED2-EngTel_(p%C3%A1gina)&diff=102706RED2-EngTel (página)2016-03-16T00:29:09Z<p>Lucas.lv: /* 29/02 - LANs Virtuais e Orientações para a Avaliação A5 */</p>
<hr />
<div>'''Professores da Unidade Curricular'''<br />
<br />
{{Professor|2015-2|[[Jorge Henrique B. Casagrande]] }}<br />
{{Professor|2015-1|[[Jorge Henrique B. Casagrande]] [[RED29005 2015-1|(Diario de aulas)]]}}<br />
{{Professor|2014-2|[[Jorge Henrique B. Casagrande]] [[RED29005 2014-2|(Diario de aulas)]]}}<br />
{{Professor|2014-1|[[Jorge Henrique B. Casagrande]] [[RED29005 2014-1|(Diario de aulas)]]}}<br />
<br />
<br />
= [[RED2-EngTel|Carga horária, Ementas, Bibliografia]]=<br />
<br />
<br />
=[[RED2-EngTel (Plano de Ensino) | Plano de Ensino]]=<br />
<br />
=Dados Importantes=<br />
''Professor'': [[Jorge Henrique B. Casagrande]]<br />
<br>''Email'': casagrande@ifsc.edu.br<br />
<br>''Atendimento paralelo'': 2as e 6as das 17:35 às 18:35h (Sala dos professores de TELE - ao lado da reprografia)<br />
<br> ''Endereço do grupo'': https://www.facebook.com/groups/667983626639907/<br />
<br> ''Link alternativo para Material de Apoio da disciplina'': http://www.sj.ifsc.edu.br/~casagrande/RED<br />
<br> Muitos conteúdos da disciplina estão sendo extraídos do material do professor '''Marcelo Sobral''' o qual já registro aqui meus agradecimentos pela autorização e apoio. Alguns deles foram inseridos ou adaptados para se ajustar ao planejamento ou perfil da turma.<br />
<br><br> Toda vez que voce encontrar a marcação <math>\blacklozenge</math> ao lado de alguma atividade, significa que essa atividade estará sendo computada na avaliação como AE ou AI. O prazo estabelecido para entrega estará destacado ao lado da atividade. Portanto, não perca o prazo limite para entrega. '''Atividades entregues fora do prazo não serão aceitas!'''<br />
<br />
=Avaliações=<br />
<br />
=Resultados das Avaliações=<br />
<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Matrícula<br />
!Aluno<br />
!AE1<br />
!AE2<br />
!AI<br />
!A1<br />
!A2<br />
!A3<br />
!A4<br />
!A5<br />
!REC A1<br />
!REC A2<br />
!REC A3<br />
!REC A4<br />
!REC A5<br />
!MÉDIA<br />
!CONCEITO<br />
|-<br />
|122001993-3||Anderson || || ||np ||20 ||38 ||56 || || ||38 || || || || || ||<br />
|-<br />
|122001504-0||Carlos || || ||np ||65 ||54 ||67 || || || -|| || || || || ||<br />
|-<br />
|132002623-0||Gabriel Cantu || || ||np ||30 ||55 ||82 || || ||93 || || || || || ||<br />
|-<br />
|122002394-9||Gabriel de Souza || || ||np ||64 ||73 ||82 || || ||- || || || || || ||<br />
|-<br />
|121003282-1||Gustavo Constante || || ||np ||63 ||50 ||70 || || ||- || || || || || ||<br />
|-<br />
|131001065-0||Gustavo Zacchi || || ||np || -||- ||- || || ||- || || || || || ||<br />
|-<br />
|132002999-0||Helenluciany|| || ||np ||45 ||61 ||70 || || ||92 || || || || || ||<br />
|-<br />
|131004419-8||Iago || || ||np ||23 ||24 ||67 || || ||33 || || || || || ||<br />
|-<br />
|131005150-0||Jessica || || ||np ||10 || -|| -|| || || -|| || || || || ||<br />
|-<br />
|121000492-5||Katharine || || ||np ||73 || 72||85 || || || -|| || || || || ||<br />
|-<br />
|121000484-4||Kristhine || || ||np ||73 ||55 ||75 || || || || || || || || ||<br />
|-<br />
|132004514-6||Letícia || || ||np ||41 ||63 ||- || || || 46|| || || || || ||<br />
|-<br />
|132002264-2||Lucas || || ||np ||70 ||81 ||93 || || ||79 || || || || || ||<br />
|-<br />
|131005334-0||Marcos || || ||np ||58 ||35 ||71 || || ||- || || || || || ||<br />
|-<br />
|132004278-3||Maria Luiza|| || ||np ||60 ||56 ||62|| || ||- || || || || || ||<br />
|-<br />
| ||André Weber || || ||np ||28 ||37 ||80|| || ||46 || || || || || ||<br />
|-<br />
| ||Fabiano|| || ||np ||30 ||70 ||61|| || ||- || || || || || ||<br />
|-<br />
| ||Gabriel Gonçalves || || ||np ||32 ||42 ||54 || || ||29 || || || || || ||<br />
|-<br />
| ||Maciel || || ||np ||19 ||37 ||46|| || ||33 || || || || || ||<br />
|-<br />
| ||Ramon|| || ||np ||20 ||35 ||-|| || ||22 || || || || || ||<br />
|-<br />
| ||Vinícius|| || ||np ||30 ||40 ||-|| || ||47 || || || || || ||<br />
|}<br />
<br />
<br />
<br />
'''LEGENDA E DETALHES'''<br />
<br />
;'''AE''' = Atividades Extras: 10% da Avaliação - abrange uma ou mais tarefas a serem divulgadas ao longo do semestre;<br />
;'''AI''' = Avaliação Individual: 10% da Avaliação final - abrange desempenho, assiduidade, cumprimento de tarefas em sala ou de listas de exercícios;<br />
;'''An''' = Avaliação ''n'': 20% da Avaliação (n=5) - Programadas para cada parte do programa;<br />
;'''REC An''' = Recuperação da Avaliação An: A recuperação de todas An serão em data única e o aluno só tem a obrigação de recuperar An<60;<br />
;'''np''' = não publicado aqui.<br />
;'''NF''' = Nota Final com critério de arredondamento de +/-5 pontos considerando a fórmula abaixo: '''NF''' = 0,16(soma{MaiorNota{An,REC An}}) + 0,1(médiaAE) + 0,1(AI)<br />
<br />
Se '''NF''' < 60 = '''D''' --> '''Reprovado''' <br><br />
Se 60 =< '''NF''' < 75 = '''C''' --> '''Aprovado''' <br><br />
Se 75 =< '''NF''' < 90 = '''B''' --> '''Aprovado'''<br><br />
Se '''NF''' >= 90 = '''A''' --> '''Aprovado'''<br><br />
<br />
=Recados Importantes=<br />
<br />
<br> '''Uso da Wiki:''' Todo o repositório de material de apoio e referências de nossas aulas passam a usar a Wiki de tele. Para interação fora da sala de aula, acessem nosso [https://www.facebook.com/groups/667983626639907/ grupo] do facebook. <br />
<br />
<br> '''ATENÇÃO:''' Uma avaliação só pode ser recuperada somente se existir justificativa reconhecida pela coordenação. Desse modo, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.<br />
<br />
=Material de Apoio=<br />
<br />
;Atividades extra sala de aula<br />
<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista1_2014_2.pdf LISTA1] de exercícios para a avaliação A1<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista2_2015_2.pdf LISTA2] de exercícios para a avaliação A2<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista3_2015_2.pdf LISTA3] de exercícios para a avaliação A3<br />
:*[http://tele.sj.ifsc.edu.br/~casagrande/RED/lista4_2015_2.pdf LISTA4] de exercícios para a avaliação A4<br />
<br />
;Slides utilizados durante algumas aulas<br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/redes_circuitos_virtuais_FR.pdf Redes Frame Relay] <br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/protocolos_pp.pdf Protocolos Ponto à Ponto] <br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/InterfacesDigitais.pdf Interfaces Digitais] <br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/modens.pdf Modens e enlaces de teste] <br />
<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/lan.pdf REDES LOCAIS]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/vlan.pdf IEEE802.3q VLAN]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/stp.pdf IEEE802.3d]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/ieee.pdf Arquitetura IEEE802.3]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/wlan.pdf Conceitos básicos da arquitetura IEEE802.11]<br />
<br />
<br />
;Manuais e outros<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/manuais/Guia_DT2048_SHDSL_T_E_S_VG_210.5088.00-1.pdf Guia Rápido de Configuração Modem DT2048SHDSL;]<br />
* [http://tele.sj.ifsc.edu.br/~casagrande/RED/apoio/Manual_NR-2G_3200_e_4200.pdf manual Router NR2G] da Digitel;<br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/Globalink3420guia.pdf guia rápido de configuração Globalink UP3420;] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/Globalink3420.pdf Manual de configuração Gloalink3420;] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/DT34.pdf Manual de configuração DT34.] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/DAS-3324.pdf Manual DSLAM DLINK DAS3324.] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/DAS-3324guia.pdf Guia rápido DSLAM DLINK DAS3324.]<br />
* [http://www.cisco.com/warp/cpropub/45/tutorial.htm Tutorial sobre a interface CLI de roteadores Cisco]<br />
* [http://www.cisco.com/en/US/tech/tk713/tk507/technologies_tech_note09186a008019cfa7.shtml#ppp01 Resolução de problemas com PPP em roteadores Cisco]<br />
* [http://www.cisco.com/en/US/products/hw/routers/ps221/products_password_recovery09186a0080094773.shtml Recuperação de senha em roteadores Cisco 1700 e 1800]<br />
<br />
<br />
== Bibliografia ==<br />
<br />
* ''Redes de Computadores e a Internet, 5a edição'', de James Kurose.<br />
* ''Redes de Computadores, 4a edição'', de Andrew Tanenbaum.<br />
* ''Comunicação de Dados e Redes de Computadores, 4a edição'', de Behrouz Forouzan.<br />
<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs.html Links para outros materiais, normas, artigos, e apostilas do prof. Jorge Casagrande]<br />
* [http://books.google.com/books?id=C9ZN-jYKHpMC&printsec=frontcover&dq=forouzan&hl=pt-BR&ei=fvt2TP3eCMH58Aa77cS1Bw&sa=X&oi=book_result&ct=result&resnum=3&ved=0CDMQ6AEwAg#v=onepage&q&f=false Comunicação de dados e Redes de Computadores, de Berhouz Forouzan (alguns capítulos no Google Books)]<br />
<br />
Para pesquisar o acervo das bibliotecas do IFSC:<br />
* [http://biblioteca.ifsc.edu.br/sophia/ Acesso ao acervo da Biblioteca do IFSC]<br />
<br />
== Softwares ==<br />
<br />
* [[Netkit]]: possibilita criar experimentos com redes compostas por máquinas virtuais Linux<br />
* [http://tele.sj.ifsc.edu.br/~msobral/IER/ipkit/ IPKit]: um simulador de encaminhamento IP (roda direto dentro do navegador)<br />
<br />
=Diário de aulas RED29005 - 2015-2 - Prof. Jorge H. B. Casagrande=<br />
<br />
{{Collapse top |29/07 - Redes de Acesso}}<br />
<br />
==29/07 - Redes de Acesso ==<br />
<br />
* Apresentação da disciplina e plano de ensino;<br />
* Visão geral de uma WAN e uma rede de acesso; <br />
* Componentes de uma infra-estrutura de telecomunicações;<br />
* '''Tarefa pra casa''': Fazer uma leitura das '''seções 1.1 à 1.3 (inclusive)''' do livro do Kurose, 5a edição e além das explicações básicas sobre as redes de acesso colocadas em sala faça um quadro resumo que compare as principais tecnologias de '''redes de acesso''' (Dial-up, xDSL, HFC, FTTH e Wireless) em termos de: Alcance, custo, disponibilidade e banda passante (Mbps) sempre no ponto de vista do PROVEDOR DE SERVIÇOS (ISP). Para completar algumas informações de seu resumo use as outras bibliografias indicadas de nossa disciplina, a revista RTI (www.rtionline.com.br - edição julho/15) ou mesmo a googlelândia... ;)<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |05/10 - Redes Privadas }}<br />
<br />
==05/10 - Redes Privadas ==<br />
<br />
* Discussão sobre as redes de acesso tabuladas da aula anterior<br />
* A rede de acesso ADSL a partir rede externa de telefonia pública;<br />
* A Linha Privativa de Comunicação de Dados (LPCD);<br />
* A banda passante e os meios metálicos de transmissão;<br />
* O modelo básico de comunicação de dados;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |07/10 - Redes Privadas e Redes de Longa Distância - WAN }}<br />
<br />
==07/10 - Redes Privadas e Redes de Longa Distância - WAN==<br />
<br />
* Recuperação de conteúdos por conta de alunos que se integraram na turma.<br />
* O Serviço de Linha Dedicada Digital (SLDD) como base na formação de Redes Privativas;<br />
* Experimento: Comunicação entre Computadores via porta serial;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |14/10 - Redes Privadas e Redes de Longa Distância - WAN }}<br />
<br />
* Evolução das Redes Locais baseadas em hospedeiros para as Redes Privativas de longa distância;<br />
* Da Unidade de Derivação Digital (UDD) para os ServerSwitches ou switches KVM;<br />
* A Multiplexação como solução no compartilhamento e otimização do uso de enlaces de transmissão.<br />
* Início dos trabalhos para a construção de 3 nós de uma rede Frame Relay<br />
<br />
'''ATENÇÃO: Leitura dos itens 6.1, 8.3 e 18.1 do Forouzan'''<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |19/10 - Redes Virtuais - Frame Relay }}<br />
<br />
==19/10 - Redes Virtuais - Frame Relay ==<br />
<br />
* Construção da rede Frame Relay no laboratório.<br />
<br />
<br />
Para esta atividade já está implementada uma rede composta por três roteadores da Digitel, que estarão interligados como mostrado abaixo:<br />
<br />
[[imagem:Rede-modems.png|600px]]<br />
<br />
A rede contém dois enlaces dedicados ponto-à-ponto (simulando duas SLDDs formadas por LPCDs à 2 fios) com modems digitais operando a 2 Mbps. Os Modens da DIGITEL modelo DT2048SHDSL estão configurados da seguinte forma: (chaves em ON) <br />
* Modens do rack central: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5 - Modo NTU (terminação de rede), relógio interno, 2048Kbps, e interface V.35 padrão ISO2110;<br />
* Modens do rack direito e esquerdo: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5 - Modo LTU (terminação de linha), relógio regenerado, 2048Kbps, e interface V.35 padrão ISO2110;<br />
<br />
Todos os roteadores estão configurados com protocolo FRAME RELAY em suas interfaces serias WAN e rodando o algoritmo de roteamento RIP em sua forma mais básica para evitar a configuração de rotas estáticas na interligação das LANs do switches direito e esquerdo.<br />
<br />
;Iniciando o experimento<br />
<br />
# Acesse a interface de gerência (console) do roteador R1 ou R2. O roteador R1 está no rack direito (no ponto de vista da sala), o roteador R3 está no rack central, e R2 está no rack esquerdo. Para acessar a console, faça o seguinte:<br />
## Conecte o cabo serial específico na interface serial RS232 do seu computador. Conecte esse cabo também na interface ''console'' do roteador, que fica no painel traseiro. Como os roteadores estão distantes das bancadas, será necessário usar as tomadas azuis, que conectam as bancadas aos racks.<br />
## Execute o programa ''minicom'', que abre um terminal de texto via porta serial. Ele deve ser configurado para se comunicar pela porta serial ''/dev/ttyS0'', com 57600 bps, 8 bits de dados e 1 stop-bit (isso aparece descrito assim: 57600 8N1) e sem controles de fluxo. <syntaxhighlight lang=bash><br />
sudo minicom -s<br />
</syntaxhighlight><br />
## Se o ''minicom'' estiver correto, você deverá ver a interface CLI do roteador (''Command Line Interface''). Caso contrário, confira se o cabo serial está bem encaixado, e se os parâmetros do ''minicom'' estão certos.<br />
# O login e senha para acessar a configuração dos routers é "nr2g" e "digitel" respectivamente. Ao entrar na CLI avalie a configuração geral dos routers com o comando DUMP ALL;<br />
# Estando os links ativos nas WANs, voce pode acessar qualquer router usando a facilidade do protocolo TELNET. Para tanto, dentro da CLI do router aplique o comando EXEC TELNET [IP da WAN ou LAN]. Voce também podem acessa-los por qualquer computador das redes direita ou esquerda, desde que esses estejam na mesma subrede das interfaces LAN dos routers. Uma vez estando na CLI de um dos routers, voce pode acessar os demais com EXEC TELNET;<br />
# Observe se a configuração dos routers está como o previsto na janela abaixo. Talvez voce precise ajustar a configuração em algum roteador.<br />
# Faça a configuração Básica dos PCs e Roteadores NR2G com protocolo FRAME RELAY. Esta configuração já permite que a rede se conecte a internet através da porta LAN0 do router CENTRAL, desde que as configurações de rotas nos PCs de cada subrede e do professor sejam aplicadas conforme na sequência.<br />
#* '''R1:''' <syntaxhighlight lang=text><br />
DIREITA > <br />
SET LAN LAN0 IP 192.168.10.254 MASK 255.255.255.0 BROADCAST 192.168.10.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.20.254 MASK 255.255.255.0 BROADCAST 192.168.20.255 <br />
SET LAN LAN1 UP <br />
<br />
SET WAN WAN0 PROTO FRAMERELAY PROTOCOL ANSI DCE FALSE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN0 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN0-PVC0 DLCI 100 MTU 1500 IP 10.1.1.2 MASK 255.255.255.252 PEER 10.1.1.1<br />
SET WAN WAN0 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0-PVC0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE<br />
<br />
</syntaxhighlight><br />
#* '''R2:''' <syntaxhighlight lang=text><br />
ESQUERDA > <br />
SET LAN LAN0 IP 192.168.30.254 MASK 255.255.255.0 BROADCAST 192.168.30.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.40.254 MASK 255.255.255.0 BROADCAST 192.168.40.255 <br />
SET LAN LAN1 UP <br />
<br />
SET WAN WAN0 PROTO FRAMERELAY PROTOCOL ANSI DCE FALSE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN0 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN0-PVC0 DLCI 100 MTU 1500 IP 10.1.1.6 MASK 255.255.255.252 PEER 10.1.1.5<br />
SET WAN WAN0 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0-PVC0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.5 COST1 0 <br />
SET ROUTES UP<br />
CONFIG SAVE<br />
<br />
</syntaxhighlight><br />
#* '''R3:''' <syntaxhighlight lang=text><br />
CENTRAL > <br />
SET LAN LAN0 PURGE <br />
SET LAN LAN1 PURGE <br />
<br />
SET WAN WAN0 PROTO FRAMERELAY PROTOCOL ANSI DCE TRUE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN0 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN0-PVC0 DLCI 100 MTU 1500 IP 10.1.1.1 MASK 255.255.255.252 PEER 10.1.1.2<br />
SET WAN WAN0 UP<br />
<br />
SET WAN WAN1 PROTO FRAMERELAY PROTOCOL ANSI DCE TRUE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN1 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN1-PVC0 DLCI 100 MTU 1500 IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6<br />
SET WAN WAN1 UP<br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0-PVC0 AUTH TYPE NONE <br />
SET RIP WAN1-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN1-PVC0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET LAN LAN0 IP 192.168.1.231 MASK 255.255.255.0 BROADCAST 192.168.1.255 UP <br />
SET ROUTES DEFAULT GW1 192.168.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
# Para conferir as configurações das interfaces, use o comando ''show'' seguido da interface. Exemplo: <syntaxhighlight lang=text><br />
# SHOW WAN WAN0 ALL<br />
# Para as rotas construidas dinamicamente pelo protocolo RIP:<br />
# SHOW ROUTES ALL<br />
</syntaxhighlight><br />
# Assim que os enlaces forem estabelecidos, o que pode ser conferido com o comando ''show'' interface aplicado às interfaces, ''conclua'' a configuração da rede (rotas nos pcs e roteadores). Ela deve ser configurada de forma que um computador possa se comunicar com qualquer outro computador da outra rede, e também acessar a Internet. Para isso, use os comandos nos PCs como:<br />
#* sudo ifconfg eth0 x.x.x.x netmask m.m.m.m up - para atribuir outro endereço na placa de rede<br />
#* sudo route add default gw x.x.x.x - para atribuir um novo gateway para a placa de rede<br />
#* sudo route add -net x.x.x.x netmask m.m.m.m eth0 - para associar uma nova rede a interface eth0<br />
#* route -n - para ver a tabela atual de roteamento<br />
# Observe que optamos pelo uso de protocolos de roteamento dinâmico. Procure entender melhor como foi feita essa configuração, a partir do que está no manual, começando pela página 82.<br />
# Para o PC do professor aplique os comandos: <syntaxhighlight lang=bash><br />
$ sudo route add -net 192.168.x.0 netmask 255.255.255.0 eth0 - x={10,20,30,40}<br />
$ sudo route add -net 192.168.x.0 netmask 255.255.255.0 gw 192.168.1.231 - x={10,20,30,40}<br />
</syntaxhighlight><br />
# Para os PCs das subredes direita e esquerda: <syntaxhighlight lang=bash><br />
$ sudo ifconfig eth0 192.168.x.y netmask 255.255.255.0 up - x={10,20,30,40}; y={1,2,3,4}<br />
$ sudo route add default gw 192.168.x.254 - x={10,20,30,40} </syntaxhighlight><br />
# Agora vamos analisar a conectividade de todas as subredes, incluindo o acesso à internet. Após isso vamos fazer uma avaliação sobre o desempenho dessa conectividade comparando os links com PPP e HDLC entre os roteadores.<br />
# Veja se o status das interfaces e protocolos da WAN e LAN de todos os routers estão em UP. Anote e avalie a configuração de todos os routers e os PCs das duas LANs direita e esquerda. <br />
# Verificar e anotar todas as configurações e instalações dos componentes de redes, modens, cabos, adaptadores, manobras dos cabos, etc...<br />
# Verificar e anotar todas as configurações lógicas dos modens, routers e PCs.<br />
# Acessar as redes mutuamente qualquer computador de um subrede deve acessar qualquer outro da outra subrede;<br />
# Acessar a internet em todos os PCs;<br />
# Interprete as configurações dos routers e destaque como está configurada a rede <br />
<br />
<!--<br />
;Mesma rede operando agora com protocolo HDLC<br />
<br />
# Faça a configuração Básica dos PCs e Roteadores NR2G com protocolo HDLC. <br />
<br />
#* '''R1:''' <syntaxhighlight lang=text><br />
DIREITA > <br />
SET LAN LAN0 IP 192.168.10.254 MASK 255.255.255.0 BROADCAST 192.168.10.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.20.254 MASK 255.255.255.0 BROADCAST 192.168.20.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.2 MASK 255.255.255.252 PEER 10.1.1.1 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R2:''' <syntaxhighlight lang=text><br />
ESQUERDA > <br />
SET LAN LAN0 IP 192.168.30.254 MASK 255.255.255.0 BROADCAST 192.168.30.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.40.254 MASK 255.255.255.0 BROADCAST 192.168.40.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.6 MASK 255.255.255.252 PEER 10.1.1.5 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.5 COST1 0 <br />
SET ROUTES UP<br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R3:''' <syntaxhighlight lang=text><br />
CENTRAL > <br />
SET LAN LAN0 PURGE <br />
SET LAN LAN1 PURGE <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.1 MASK 255.255.255.252 PEER 10.1.1.2 UP<br />
SET WAN WAN1 PROTO HDLC IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6 UP<br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP WAN1 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN1 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET LAN LAN0 IP 192.168.1.231 MASK 255.255.255.0 BROADCAST 192.168.1.255 UP <br />
SET ROUTES DEFAULT GW1 192.168.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
--><br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |21/10 - Redes Frame Relay - Finalização }}<br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/redes_circuitos_virtuais_FR.pdf Redes Frame Relay] <br />
<br />
* Finalização das explicações da configuração da rede Frame Relay montada;<br />
* Evolução do backbone da RNP como ilustração das redes Frame Relay em infraestruturas de telecom.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |26/10 - Redes Privadas Virtuais - MPLS }}<br />
<br />
==26/10 - Redes Privadas Virtuais - MPLS ==<br />
<br />
* Redes virtuais com MPLS;<br />
* Experimentos com netkit: Rede MPLS<br />
'''ATENÇÂO: Leitura:'''<br />
** '''Capítulo 5 (seção 5.8)''' do livro ''Redes de Computadores e a Internet, 5a ed.'', de James Kurose.<br />
** '''Capítulo 5 (seção 5.4.5)''' do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum (ou seção 5.6.5 da 5ª ed.).<br />
<br />
<br />
* '''''Outras referências sobre MPLS:'''''<br />
<br />
** [http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS na Wikipedia]<br />
** [http://www.ietf.org/rfc/rfc3031.txt RFC 3031: MPLS Architecture]<br />
** [http://www.ietf.org/rfc/rfc3032.txt MPLS Label Stack Encoding]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/mpls-linux Documentação sobre os experimentos com MPLS (tirados do projeto MPLS-Linux)]<br />
<br />
[http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS] é um mecanismo para redes de telecomunicações de alto desempenho que encaminha e transporta dados de um nó da rede a outro. Isso se faz por meio de links virtuais entre nós distantes um do outro, semelhante ao conceito de ''circuitos virtuais''. Diversos protocolos podem ser transportados por MPLS, tais como IP e Ethernet (note que o primeiro é um protocolo de rede, mas o segundo é um ''"protocolo"'' de enlace). Assim, MPLS se apresenta como uma tecnologia de transporte de dados em redes de longa distância, como ilustrado na figura abaixo.<br />
<br />
[[imagem:Mpls-network.jpg]]<br />
<br />
Simplificadamente, um cabeçalho (''shim header'') é adicionado a cada PDU a ser transportada pela rede MPLS. O rótulo contém um número identificador chamado de rótulo (''label'', e similar ao ''VCI'' visto em circuitos virtuais), junto com alguns bits de controle. Os roteadores dentro da rede MPLS encaminham essas PDUs com base somente no conteúdo desse cabeçalho, comutando-os de acordo com os valores de rótulo (''label switching''). Note que MPLS não faz roteamento, e sim comutação de circuitos virtuais: os circuitos devem ser previamente estabelecidos para que o encaminhamento de PDUs entre origem e destino possa ser realizada. Desta forma, MPLS parece ser um protocolo que fica entre as camadas de rede e de enlace, como mostrado na figura a seguir.<br />
<br />
[[imagem:Mpls_protocolstack.jpg]] ----> [[imagem:MPLS_D2.gif]]<br />
<br />
<br />
O cabeçalho MPLS possui apenas 32 bits, como mostrado abaixo. O valor de rótulo ocupa 20 bits, o que possibilita pouco mais de 1 milhão de diferentes rótulos (<math>2^{20}</math>). Há um campo ''Time To Live'' (ou simplesmente ''TTL'') com 8 bits, com mesma finalidade que o campo homônimo existente em PDUS IPv4: evitar que um erro de configuração em um roteador faça com que PDUs fiquem circulando eternamente em um ''loop'' na rede. O valor desse campo ''TTL'' é decrementado por cada roteador que encaminhe a PDU e, se o valor chegar a 0, a PDU é descartada. O campo ''Exp'' com 3 bits foi pensado para codificar a classe de serviço da PDU, a qual pode ser usada por mecanismos de qualidade de serviço (''QoS'') existentes na rede. Por exemplo, o valor de ''Exp'' pode ser usado como prioridade da PDU em um determinado roteador dentro da rede MPLS. Por fim, o bit ''S'' (''bottom of stack'') informa se esse é o último cabeçalho MPLS na PDU, uma vez que podem-se empilhar dois ou mais desses cabeçalhos.<br />
<br />
<br />
[[imagem:Mpls-label.png]]<br />
<br />
<br />
A terminologia MPLS possui nomes próprios para diversos componentes da arquitetura. Como ocorre em outras tecnologias, existem conceitos conhecidos apresentados porém com nomes diferentes. A tabela abaixo descreve alguns termos importantes existentes no MPLS:<br />
<br />
<br />
{| border="1" cellpadding="2"<br />
!Termo<br />
!Descrição<br />
|-<br />
|''LSP'' || Label Switching Path, o análogo a circuito virtual.<br />
|-<br />
|''LSR'' || Label Switching Router, ou roteador capaz de comutar PDUs MPLS.<br />
|-<br />
|''LER'' || Label Edge Router, ou roteador que faz a interface entre a rede MPLS (onde se encaminham PDUs exclusivamente com base nos rótulos), e a rede externa (onde não se usa MPLS). A rede externa pode ser qualquer outra rede, como IPv4, IPv6 ou mesmo LAN Ethernet. Note que LER é um tipo especial de LSR, e podem ser denominados também como ''LSR ingress'' (''LSR'' de entrada na rede MPLS) e ''LSR egress'' (''LSR'' de saída da rede MPLS).<br />
|-<br />
|''LFIB'' || Label Forwarding Information Base, ou o conjunto de informações existentes nos LSR usadas para fazer o encaminhamento das PDUS MPLS. Pode ser entendida como uma estrutura análoga à tabela de comutação de circuitos virtuais.<br />
|-<br />
|}<br />
<br />
<br />
Usando os termos acima, podem-se descrever redes MPLS demonstrativas como mostrado a seguir. Na primeira rede há dois LSP: um vai do ''Host X'' ao ''Host Z'' e está identificado com PDUS em amarelo, e outro vai de ''Host X'' ao ''Host Y'' e tem PDUs em azul. O número dentro de cada PDU informa os valores de rótulo usados ao longo dos LSP. Assim como em circuitos virtuais em geral (e como em Frame Relay e ATM), os valores de rótulo podem ser modificados por cada roteador que os comute.<br />
<br />
[[imagem:Mplsrouters.gif]]<br />
<br />
=== Conceitos básicos sobre comutação de rótulos ===<br />
<br />
A comutação de rótulos feita nos LSR é muito parecida com comutação de circuitos virtuais. Ao receber uma PDU MPLS, um LSR decide o que fazer com ela com base no número do rótulo e na interface de rede de onde ela foi recebida. Porém há um detalhe específico do MPLS: uma ou mais interfaces podem ser associadas em um ''labelspace MPLS'', sendo esse ''labelspace'' usado para identificar de onde foi recebida uma PDU. Desta forma, um LSR na verdade decide o que fazer com uma PDU com base em seu rótulo e no seu ''labelspace''. Dentro do LSR essa operação se chama ''ILM'' (''Input Label Mapping'').<br />
<br />
'''''ILM''' é a função que identifica uma PDU recebida e mapeia seu rótulo para um '''labelspace'''''<br />
<br />
Um caso especial trata de PDUs que entram na rede MPLS. Por exemplo, uma PDU IPv4, originada de uma rede externa, deve ser transportada pela rede MPLS. Nesse caso, o ''LER'' (roteador de borda) deve associar essa PDU a um rótulo MPLS e encaminhá-lo pela rede MPLS. A identificação de uma PDU externa à rede MPLS, com base nas informações dessa PDU, se chama ''FEC'' (''Forwarding Equivalence Class'').<br />
<br />
Uma vez identificada uma PDU recebida, o LSR deve encaminhá-la de acordo com instruções predefinidas em sua ''LFIB''. Dentro de sua LFIB essas instruções são chamadas de ''NHLFE'' (''Next-Hop Label Forwarding Entry''), e contêm a '''operação MPLS''' a ser realizada e a interface de saída por onde encaminhar a PDU. As operações MPLS possíveis estão descritas na tabela abaixo:<br />
<br />
<br />
{| border="1" cellpadding="2"<br />
!Operação<br />
!Descrição<br />
|-<br />
|''SWAP'' || Troca o valor de rótulo. Essa operação deve ser usada para comutação dentro da rede MPLS. Mesmo quando o novo valor de rótulo for idêntico ao anterior essa operação deve ser realizada.<br />
|-<br />
|''PUSH'' || Adiciona um cabeçalho MPLS com um determinado valor de rótulo. Essa operação deve ser usada principalmente nos ''LER'', quando uma PDU entra na rede MPLS.<br />
|-<br />
|''POP'' || Remove o cabeçalho MPLS. Essa operação deve ser usada principalmente nos ''LER'', quando uma PDU sai da rede MPLS.<br />
|-<br />
|}<br />
<br />
<br />
A comutação fica completa ao se juntarem o mapeamento de entrada (''ILM'') com as ''NHLFE'', no caso de comutação dentro da rede MPLS. No caso de entrada de PDUs na rede MPLS, a operação se chama ''FTN'' (''Fec-To-Nhlfe''), que nada mais é que regras para associar os rótulos MPLS a essas PDUS. No exemplo da PDU IPv4, pode-se usar o endereço IPv4 de destino dessa PDU para escolher que rótulo MPLS deve ser usado. Isso está sumarizado na figura abaixo.<br />
<br />
[[imagem:Mpls-lfib.png]]<br />
<br />
=== Atividade com MPLS ===<br />
<br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/lab_mpls1.pdf 1o Experimento com MPLS]<br />
** Os experimentos usarão o [[Netkit#Switches_MPLS|Netkit e MPLS]]<br />
** Lab do netkit com o experimento:<br />
<br />
<code><br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a2[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e2[fec]=172.16.20.0/24:nhlfe=1<br />
e4[fec]=172.16.10.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e2[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.3<br />
e3[nhlfe]=1:interface=eth0:label=2001:ip=10.0.2.2<br />
e3[nhlfe]=2:interface=eth1:label=1001:ip=10.0.6.4<br />
e4[nhlfe]=1:interface=eth1:label=2000:ip=10.0.6.3<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e2[ilm]=2001:labelspace=0<br />
e3[ilm]=2000:labelspace=0:nhlfe=1<br />
e3[ilm]=1000:labelspace=0:nhlfe=2<br />
e4[ilm]=1001:labelspace=0<br />
<br />
# Labelspace: os mapeamentos de labelspaces a interfaces<br />
e2[labelspace]=0:interfaces=eth0<br />
e3[labelspace]=0:interfaces=eth0,eth1<br />
e4[labelspace]=0:interfaces=eth1<br />
<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a2[eth2]=link7:ip=172.16.20.20/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a2[default_gateway]=172.16.20.4<br />
<br />
</syntaxhighlight><br />
<br />
* '''Exercício''': Considere o roteiro realizado em sala e faça o LSP entre A2 e A1 passar por E5 ao invés de E3 - Ou seja, isso implica modificar a configuração dos roteadores E2, E3, E4 e E5:<br />
<br />
[[imagem:Exercicio-mpls-1.png|600px]]<br />
<br />
'''Solução:'''<br />
<br />
* '''E4:''' mudar a ''NHLFE'' para que o LSP A2->A1 vá para E5.<br />
* '''E5:''' fazer a comutação A2->A1 que antes ficava em E3.<br />
* '''E2:''' modificar o ''labelspace 0'' para que contenha a interface ''eth3''.<br />
* '''E3:''' removida a configuração da comutação A2->A1<br />
<br />
<code><br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a2[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e2[fec]=172.16.20.0/24:nhlfe=1<br />
e4[fec]=172.16.10.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e2[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.3<br />
e3[nhlfe]=1:interface=eth1:label=1001:ip=10.0.6.4<br />
e4[nhlfe]=1:interface=eth0:label=2000:ip=10.0.4.5<br />
e5[nhlfe]=1:interface=eth1:label=2001:ip=10.0.1.2<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e2[ilm]=2001:labelspace=0<br />
e3[ilm]=1000:labelspace=0:nhlfe=1<br />
e4[ilm]=1001:labelspace=0<br />
e5[ilm]=2000:labelspace=0:nhlfe=1<br />
<br />
<br />
# Labelspace: os mapeamentos de labelspaces a interfaces<br />
e2[labelspace]=0:interfaces=eth0,eth3<br />
e3[labelspace]=0:interfaces=eth0,eth1<br />
e4[labelspace]=0:interfaces=eth0,eth1<br />
e5[labelspace]=0:interfaces=eth0,eth1<br />
<br />
<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a2[eth2]=link7:ip=172.16.20.20/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a2[default_gateway]=172.16.20.4<br />
<br />
</syntaxhighlight><br />
<br />
=== MPLS - Labelspaces e Tunels ===<br />
<br />
'''Atividade'''<br />
<br />
* [http://tele.sj.ifsc.edu.br/~casagrande/RED/mpls_labelspaces.pdf Roteiro sobre labelspaces e túneis MPLS]<br />
<br />
'''Laboratório do netkit sobre labelspaces:'''<br />
<br />
<code><br />
<br />
e1[type]=mpls <br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a2[type]=generic<br />
a3[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e2[fec]=172.16.20.0/24:nhlfe=1<br />
e4[fec]=172.16.10.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e2[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.3<br />
e3[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.2<br />
e3[nhlfe]=2:interface=eth1:label=1000:ip=10.0.6.4<br />
e4[nhlfe]=1:interface=eth1:label=1000:ip=10.0.6.3<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e2[ilm]=1000:labelspace=0<br />
e3[ilm]=1000:labelspace=0:nhlfe=2<br />
e3[ilm]=1000:labelspace=1:nhlfe=1<br />
e4[ilm]=1000:labelspace=0<br />
<br />
#Labelspace: os mapeamentos de labelspaces a interfaces<br />
<br />
e2[labelspace]=0:interfaces=eth0<br />
e3[labelspace]=0:interfaces=eth0<br />
e3[labelspace]=1:interfaces=eth1<br />
e4[labelspace]=0:interfaces=eth1<br />
<br />
e1[eth1]=link9:ip=172.16.30.1/24<br />
e1[eth2]=link3:ip=10.0.3.1/24<br />
e1[eth3]=link5:ip=10.0.5.1/24<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth2]=link3:ip=10.0.3.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e3[eth2]=link5:ip=10.0.5.3/24<br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a2[eth2]=link7:ip=172.16.20.20/24<br />
a3[eth0]=link9:ip=172.16.30.30/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a2[default_gateway]=172.16.20.4<br />
a3[default_gateway]=172.16.30.1<br />
<br />
</syntaxhighlight><br />
<br />
'''Laboratório do netkit sobre túneis:'''<br />
<br />
<code><br />
e1[type]=mpls <br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a3[type]=generic<br />
a4[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e1[fec]=172.16.10.0/24:nhlfe=1<br />
e2[fec]=172.16.30.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e1[nhlfe]=1:interface=eth2:label=500:ip=10.0.3.2<br />
e2[nhlfe]=1:interface=eth3:label=100:ip=10.0.1.5<br />
e3[nhlfe]=1:interface=eth2:label=300:ip=10.0.5.1<br />
e4[nhlfe]=1:interface=eth1:label=3000:ip=10.0.6.3<br />
e5[nhlfe]=1:label=200:nhlfe=2<br />
e5[nhlfe]=2:interface=eth0:label=2000:ip=10.0.4.4<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e1[ilm]=300:labelspace=0<br />
e2[ilm]=500:labelspace=0<br />
e3[ilm]=3000:labelspace=0<br />
e3[ilm]=200:labelspace=0:nhlfe=1<br />
e4[ilm]=2000:labelspace=0:nhlfe=1<br />
e5[ilm]=100:labelspace=0:nhlfe=1<br />
<br />
# Labelspace: os mapeamentos de labelspaces a interfaces<br />
e1[labelspace]=0:interfaces=eth3<br />
e2[labelspace]=0:interfaces=eth2<br />
e3[labelspace]=0:interfaces=eth1<br />
e4[labelspace]=0:interfaces=eth0<br />
e5[labelspace]=0:interfaces=eth1<br />
<br />
e1[eth1]=link9:ip=172.16.30.1/24<br />
e1[eth2]=link3:ip=10.0.3.1/24<br />
e1[eth3]=link5:ip=10.0.5.1/24<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth2]=link3:ip=10.0.3.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e3[eth2]=link5:ip=10.0.5.3/24<br />
e3[eth3]=link10:ip=172.16.40.3/24 <br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a3[eth0]=link9:ip=172.16.30.30/24<br />
a4[eth0]=link10:ip=172.16.40.40/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a3[default_gateway]=172.16.30.1<br />
a4[default_gateway]=172.16.40.3<br />
<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |28/10 - Protocolos Ponto a Ponto para WANs }}<br />
<br />
==28/10 - Protocolos Ponto a Ponto para WANs==<br />
<br />
* Testes de desempenho com protocolo Frame-Relay na rede WAN real com routers NR2G.<br />
* Mesmos testes com protocolos PPP e HDLC.<br />
<br />
'''Roteiro dos testes'''<br />
<br />
# Verifique se a operação da rede nos routers do laboratório estão operantes com protocolo frame relay e que as quatro subredes tem conexão entre elas, o PC do professor (192.168.1.1) e a Internet;<br />
# Teste a vazão pelos enlaces ponto-a-ponto SOMENTE COM UM ÚNICO PC associado a cada Router (DIREITO e ESQUERDO). Em algum computador da subrede esquerda ou direita execute:<syntaxhighlight lang=bash> netperf -f k -H 192.168.1.1</syntaxhighlight><br />
# Teste o delay médio da comunicação usando PING com pacote de 65508 bytes aplicado de TODOS OS PCs da subrede para o PC do professor. Anote a média entre todos os PCs: <syntaxhighlight lang=bash> ping -s 65500 192.168.1.1</syntaxhighlight><br />
# Realize pelo menos três medidas para cada teste e use a média desses valores como resultado final;<br />
# Excute o ''netperf'' entre computadores da ''mesma subrede'', anote os valores e compare com as medidas anteriores;<br />
# Execute os mesmos testes agora com protocolo HDLC. Veja configuração abaixo:<br />
<br />
;Mesma rede operando agora com protocolo HDLC<br />
<br />
# Faça a configuração Básica dos PCs e Roteadores NR2G com protocolo HDLC. <br />
<br />
#* '''R1:''' <syntaxhighlight lang=text><br />
DIREITA > <br />
SET LAN LAN0 IP 192.168.10.254 MASK 255.255.255.0 BROADCAST 192.168.10.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.20.254 MASK 255.255.255.0 BROADCAST 192.168.20.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.2 MASK 255.255.255.252 PEER 10.1.1.1 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R2:''' <syntaxhighlight lang=text><br />
ESQUERDA > <br />
SET LAN LAN0 IP 192.168.30.254 MASK 255.255.255.0 BROADCAST 192.168.30.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.40.254 MASK 255.255.255.0 BROADCAST 192.168.40.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.6 MASK 255.255.255.252 PEER 10.1.1.5 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.5 COST1 0 <br />
SET ROUTES UP<br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R3:''' <syntaxhighlight lang=text><br />
CENTRAL > <br />
SET LAN LAN0 PURGE <br />
SET LAN LAN1 PURGE <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.1 MASK 255.255.255.252 PEER 10.1.1.2 UP<br />
SET WAN WAN1 PROTO HDLC IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6 UP<br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP WAN1 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN1 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET LAN LAN0 IP 192.168.1.231 MASK 255.255.255.0 BROADCAST 192.168.1.255 UP <br />
SET ROUTES DEFAULT GW1 192.168.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE </syntaxhighlight><br />
# Agora troque o protocolo HDLC dos enlaces por PPPS (protocolo PPP Síncrono - veja pg. 76 do manual). Faça isso primeiramente no router R3 (central) pois será perdido enlace com ele quando mudar o protocolo. Como exemplo, para trocar a configuração na interface WAN0 execute o comando:<syntaxhighlight lang=text> SET WAN WAN0 PROTO PPPS IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6 UP </syntaxhighlight><br />
Faça o mesmo para a WAN1 do router central e WAN0s dos routers esquerdo e direito. Não esqueça de aplicar o comando CONFIG SAVE para salvar a configuração atual. Observe o estado dos leds que indicam a presença de dados protocolados entre routers, tanto no frontal dos modens quanto no frontal dos routers. Eles ficaram apagados por um tempo mas devem retornar a acender depois de uns dois ou tres minutos. O led ST no frontal dos routers deve ficar na cor laranja indicando a queda dos links e depois de um tempo devem retornar a cor verde quando tudo estiver ok.<br />
<br />
# Repita e anote as mesmas medições de vazão conforme feito anteriormente com protocolo HDLC;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 04/11 - Protocolos de Enlace Ponto à Ponto }}<br />
<br />
== 04/11 - Protocolos de Enlace Ponto à Ponto ==<br />
<br />
'''Atenção:''' liberada a [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista1_2014_2.pdf LISTA1] de exercícios para a avaliação A1<br />
<br />
'''Resumo da aula:'''<br />
* Slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/protocolos_pp.pdf Protocolos Ponto à Ponto];<br />
* Serviços da Camada de enlace.<br />
<br />
'''Bibliografia relacionada:'''<br />
'''ATENÇÃO:'''<br />
* Ler Seção 5.7 do livro "Redes de Computadores" do Kurose 5a ed.'''<br />
* Parte III e capítulos 10 e 11 do livro "Comunicação de Dados e Redes de Computadores, 4a ed.", de Behrouz Forouzan<br />
* Capítulo 3 do livro "Redes de Computadores" de Andrew Tanenbaum.<br />
<br />
'''Fundamentos Teóricos'''<br />
<br />
=== Enlaces lógicos ===<br />
<br />
Equipamentos de rede se comunicam por meio de enlaces (''links''). Um enlace é composto por uma '''parte física''', composta pelo meio de transmissão e o hardware necessário para transmitir e receber um sinal que transporta a informação, e uma '''parte lógica''', responsável por empacotar os dados a serem transmitidos. O diagrama abaixo ilustra um enlace entre dois equipamentos, realçando as formas com que a informação é representada durante a transmissão e recepção. Nesse diagrama, a ''parte lógica'' está representada no bloco ''Enlace'', e a ''parte física'' está no bloco ''Física''; a informação transmitida, representada por ''Dados'', pode ser, por exemplo, um datagrama IP.<br />
<br />
[[imagem:Datalink-phy.png|600px]]<br />
<br />
O enlace lógico tem uma dependência total em relação à parte física. Isso quer dizer que o tipo de tecnologia de transmissão existente na parte física traz requisitos para o projeto da parte lógica.<br />
<br />
Deste ponto em diante, a ''parte lógica'' será chamada simplesmente de '''Camada de Enlace''', e a parte física de '''Camada Física'''.<br />
<br />
Em nosso estudo vamos investigar '''enlaces ponto-a-ponto''', os quais necessitam de protocolos específicos. Para ficar mais claro o que deve fazer um protocolo de enlace ponto-a-ponto, vamos listar os serviços típicos existentes na camada de enlace. <br />
<br />
===== Serviços da camada de enlace =====<br />
<br />
[[Image:Data-link.png]]<br />
<br />
Os serviços identificados na figura acima estão descritos a seguir. A eles foram acrescentados outros dois:<br />
<br />
* '''Encapsulamento (ou ''enquadramento'')''': identificação das PDUs (quadros) de enlace dentro de sequências de bits enviadas e recebidas da camada física<br />
* '''Controle de erros''': garantir que quadros sejam entregues no destino<br />
** '''''Detecção de erros''''': verificação da integridade do conteúdo de quadros (se foram recebidos sem erros de bits)<br />
* '''Controle de fluxo''': ajuste da quantidade de quadros transmitidos, de acordo com a capacidade do meio de transmissão (incluindo o atraso de transmissão) e do receptor<br />
* '''Endereçamento''': necessário quando o enlace for do tipo '''multi-ponto''', em que vários equipamentos compartilham o meio de transmissão (ex: redes locais e redes sem-fio)<br />
* '''Controle de acesso ao meio (MAC)''': também necessário para '''meios compartilhados''', para disciplinar as transmissões dos diversos equipamentos de forma a evitar ou reduzir a chance de haver colisões (transmissões sobrepostas)<br />
* '''Gerenciamento de enlace''': funções para ativar, desativar e manter enlaces<br />
<br />
==== Protocolos de enlace ponto-a-ponto ====<br />
<br />
Dois protocolos de enlace ponto-a-ponto muito utilizados são:<br />
* '''PPP (''Point-to-Point Protocol''):''' proposto no início dos anos 90 pelo IETF (ver [http://www.ietf.org/rfc/rfc1661.txt RFC 1661]), e amplamente utilizado desde então. Este protocolo não faz controle de erros nem de fluxo, portanto se quadros sofrerem erros de transmissão serão sumariamente descartados no receptor. Originalmente muito usado em acesso discado, recentemente sua aplicação se concentra em enlaces por linhas dedicadas, enlaces sem-fio 3G, e uma versão modificada para acesso doméstico ADSL (''PPPoE''). Ver mais detalhes na seção 5.7 do livro do Kurose e na seção 11.7 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan. <br />
* '''HDLC (''High-level Data Link Control''):''' criado nos anos 70, foi largamente utilizado em enlaces ponto-a-ponto, porém atualmente foi substituído pelo PPP na maioria dos cenários em que era usado. Este protocolo faz controle de erros e de fluxo usando um [[Desempenho_ARQ|mecanismo ARQ do tipo Go-Back-N]] (com janela de tamanho 7 ou 127). Ainda se aplica a enlaces ponto-a-ponto em linhas dedicadas, enlaces por satélite e aplicações específicas onde a presença de ruídos no meio de transmissão é relevante ou se deseja confiabilidade na entrega de pacotes na camada 2. Ver mais detalhes na seção 11.6 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan.<br />
<br />
Ambos protocolos possuem o mesmo formato de quadro. Na verdade, o PPP copiou o formato de quadro do HDLC, apesar de não utilizar os campos ''Address'' e ''Control''. O campo ''Flag'', que tem o valor predefinido <math>7E_H</math>, serve para delimitar quadros, assim o receptor sabe quando inicia e termina cada quadro.<br />
<br />
[[imagem:Ppp-frame.png|400px]]<br />
<br>''Quadro PPP ou HDLC (tamanho de campos dados em bytes)''<br><br />
<br />
Esses protocolos foram criados para uso com comunicação serial síncrona (ver capítulo 4, seção 4.3 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan). O PPP funciona também com [http://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_serial_ass%C3%ADncrona comunicação serial assíncrona].<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 07/11 - <math>\blacklozenge</math> Ensaios finais sobre MPLS e Desempenho de protocolos de Redes Ponto à Ponto e Frame Relay}}<br />
<br />
== 07/11 - Ensaios finais sobre MPLS e Desempenho de protocolos de Redes Ponto à Ponto e Frame Relay ==<br />
<br />
#Ilustração do gnome-netkit para os labs MPLS com auxílio do WireShark;<br />
#<math>\blacklozenge</math> Tarefa para hoje ('''ATENÇÃO: faz parte da avaliação AE'''):<br />
#Preenchimento da planilha de desempenho dos protocolos FR, PPP e HDLC abaixo, conforme roteiro do dia 28/10.<br />
'''Resultados de testes aplicados ao PC do Professor (o Gateway da rede - GW):'''<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!PROTOCOLO<br />
!Netperf-->GW vazão<br />
!Netperf-->GW tempo<br />
!Ping-->GW <br />
|-<br />
|FRAME RELAY ||E: 1961,32|| E: 13,7|| E: 2,4<br />
|-<br />
|HDLC ||E: 1961,53 ||E: 13,34 ||E: 2,51 <br />
|-<br />
|PPPS ||E: 1923,14 ||E: 10,64 ||E: 2,58 <br />
|-<br />
|}<br />
<br />
<br> <br />
<br><br />
'''Testes de vazão e ping na mesma subrede:'''<br />
<br><br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Netperf-->LAN vazão<br />
!Netperf-->LAN tempo<br />
!Ping-->LAN <br />
|-<br />
|0 ||0 || 0<br />
|-<br />
|}<br><br />
'''Perguntas para as equipes:'''<br> <br />
*'''Atenção''': os componentes das equipes A à D são os mesmos da formação realizada em sala no dia da avaliação 1 (Equipe A é a que fica do lado das janelas da sala com o rack direito, as demais na sequência...)<br />
<br />
'''EQUIPE A''': Anderson, André Felipe Weber, Gabriel , Carlos e Gustavo. <br><br />
'''Link das Respostas'''<br />
'''--> ''' [https://drive.google.com/file/d/0B5uxU74qlINVcHlBZ3FEQnRQYzQ/view?usp=sharing] <br />
#Entenda como funciona basicamente o teste de vazão do netperf e explique porque o troughtput do ensaio com Frame Relay não alcançou a taxa de transmissão nominal do link. <br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos Frame Relay e MPLS e discuta sobre o overhead causado nesses protocolos<br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br> <br />
<br />
'''EQUIPE B''':Katharine Schaeffer Fertig, Kristhine Schaeffer Fertig, Gabriel Cantu, Lucas Lucindo, Iago Soares <br><br />
#Explique brevemente a diferença encontrada nos resultados de teste de ping na mesma rede e rede remota.<br />
<br />
[[Arquivo:TabelaPing_EquipeB.png|600px|thumb|center|Tabela de Teste Ping e Netperf]]<br />
<br />
<syntaxhighlight lang=bash> R. Tendo realizado o tete de ping normal (tamanho de pacote normal padrão) para mesma rede e rede remota notou-se que as médias de<br />
tempo de transmissão de dados entre computadores na rede da equipe B e do professor (rede externa) foram:<br />
<br />
Frame relay: 2,44 segundos<br />
HDLC: 2,57 segundos<br />
<br />
Tendo-se ainda realizado o Netperf para a mesma rede (sub-rede) e rede remota (sub-redes diferentes e computador do professor) <br />
obteve-se os seguintes dados de teste:<br />
<br />
Tempo de transmissão com protocolo Frame Relay<br />
Mesma sub-rede: 10,13 segundos<br />
Rede Remota/Sub-rede diferente: 10,057 segundos<br />
<br />
Assim vemos que para um mesmo protocolo – neste caso o Frame Relay – não há diferença significativa de tempo de transmissão entre mesma rede e rede<br />
remota. Também em comparação com resultados de testes entre os dois protocolos (HDLC e FR) não houve uma grande diferença no tempo de transmissão. <br />
Mas a diferença existente (em cerca de 100 milisegundos) deve-se ao fato de o protocolo HDLC implementar mecanismos de controle (como fluxo e erros)<br />
nos frames transmitidos, gerando maior overhead no frame e necessitando de maior tempo para tranmissão de dados (propriamente ditos) relevantes à camada superior.<br />
<br />
</syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos Frame Relay e HDLC e discuta sobre o overhead causado nesses protocolos<br />
[[Arquivo:Frames.png|600px|thumb|center|Frames de Protocolos HDLC Padrão, HDLC Cisco e Frame Relay]]<br />
<syntaxhighlight lang=bash> R. <br />
<br />
De acordo com as estruturas de frame acima podemos concluir que há maior overhead no protocolo HDLC pois apesar de efetuar bit-stuffing, que gera <br />
menor overhead em relação a protocolos orientados a byte, possui um campo de controle em seu frame que envia apenas bits de controle para comunicação,<br />
sendo que o protocolo Frame Relay (FR) não necessita destas informações de controle, apenas as informações de endereço para repasse de dados e não <br />
realizando controle de erros e fluxo para estes frames. Vemos ainda que para um protocolo HDLC para modens/roteadores cisco, além de campos de <br />
controle de fluxo e de erros (extra ao FR), existe um sub-campo no campo de dados que se chama E-type ou campo de proprietário que informa o tipo de <br />
protocolo/proprietário da camada superior, causando ainda mais overhead ao frame! Nota-se que a estrutura simplificada dos frames em protocolo Frame <br />
Relay apenas necessita de informações do campo de endereço como o DLCI de enlaces da rede CV.<br />
</syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br><br />
<br />
'''EQUIPE C''':colocar aqui os componentes <br><br />
#Entenda como funciona basicamente o teste de vazão do netperf e explique brevemente a diferença encontrada nos resultados de tempo de teste ocorridos entre os três protocolos avaliados.<br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos HDLC e PPP e discuta sobre o overhead causado nesses protocolos<br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br><br />
<br />
'''EQUIPE D''': HelenLuciany Cechinel, Leticia Coelho, Jessica Hahn, Maria Luiza Theisges,Vinicius Kachniacz e Marcus Vinícius <br><br />
#Entenda como funciona basicamente o teste de vazão do netperf e explique porque o troughtput do ensaio com PPP não alcançou a taxa de transmissão nominal do link.<br />
<syntaxhighlight lang=bash> R. O netperf é um comando que testa a vazão da rede mandando um pacote com um número determinado de bits e verificando o tempo de resposta <br />
do pacote na rede. O PPP não alcançou a taxa de transmissão nominal do link devido a multiplexação dos dados, em que o canal foi dividido<br />
em outros sub canais. A somatória da banda de transmissão é o valor total da taxa de transmissão nominal do link;</syntaxhighlight><br />
<syntaxhighlight lang=bash> ''Revisão do professor:'' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos PPP e Frame Relay e discuta sobre o overhead causado nesses protocolos<br />
R. <br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!PPP<br />
|FLAG ||Endereço|| Controle || Protocolo || Payload || FCS || FLAG<br />
|}<br />
<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Frame Relay<br />
|FLAG || Endereço || Dados || FCS || FLAG<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Endereço Frame Relay<br />
|DLCI||C/R|| EA || DLCI || FECN || BECN || DE || EA<br />
|}<br />
<br />
<br />
<syntaxhighlight lang=bash><br />
O PPP faz ByteStuffing e devido a este mecanismo um byte especial pode ser substituido por dois bytes ou mais,<br />
causando mais overhead do que o Frame Relay. Se o byte Stuffing for aplicado ao Frame. </syntaxhighlight><br />
<br> <br />
<br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br><br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 09/11 - Enquadramento (Framing) e delimitação de quadros}}<br />
<br />
== 09/11 - Enquadramento (Framing) e delimitação de quadros ==<br />
<br />
'''Resumo da aula:'''<br />
<br />
* bit e byte stuffing;<br />
* Explicações adicionais e exemplos de enquadramento e delimitação em HDLC e PPP; Identificação de pacotes.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 11/11 - Detecção e Correção de Erros }}<br />
<br />
== 11/11 - Detecção e Correção de Erros==<br />
<br />
'''Resumo da aula:'''<br />
* Explicações adicionais sobre PPP;<br />
* Abordagem sobre erros em sistemas de telecomunicações: Erro de bit, erro de rajada;<br />
* Uso do campo FCS (Frame Check Sequence) nos protocolos da camada 2 para fins de de detecção de erro;<br />
* Check de paridade simples em sistemas assíncronos de comunicação de dados;<br />
* Paridade bidimensional ou longitudinal;<br />
* Revisão sobre a técnica de CheckSum;<br />
* Técnica CRC: Técnicas polinomiais na detecção e correção de erros na formação do FCS com códigos cíclicos CRC;<br />
* Exercícios da LISTA 1.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 16/11 - Exercícios }}<br />
<br />
* Mais alguns exercícios da Lista 1;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 18/11 - Interfaces Digitais}}<br />
<br />
'''Resumo da aula:'''<br />
<br />
* Slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/InterfacesDigitais.pdf Interfaces Digitais]. <br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 23/11 - Interfaces Digitais e exercícios}}<br />
<br />
== 23/11 - Interfaces Digitais e exercícios==<br />
<br />
'''Resumo da aula:'''<br />
<br />
* Finalização dos slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/InterfacesDigitais.pdf Interfaces Digitais];<br />
* Proponha e desenhe um esquema de ligações MÍNIMO de um cabo lógico que interliga um DTE a um DCE que estão configurados para uma comunicação de dados síncrona, que usa o clock do DTE como base de sincronismo. O controle de fluxo via hardware ́e requerido na comunicação e ela não se inicia se o circuito CT109 não estiver ativo. O DTE e DCE usam interface RS232 com conectores DB25 Fêmea.<br />
* Verificar e anotar todos os componentes nas conexões físicas entre modens, routers e PCs do laboratório realizado na aula de FR.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 25/11 - Implementação de caso de Interfaces Digitais e Avaliação 1}}<br />
<br />
== 25/11 - Implementação de caso de Interfaces Digitais e Avaliação 1==<br />
<br />
'''Implementação de Caso'''<br />
<br />
#Dinâmica:<br />
<br />
Com o objetivo de conhecer, identificar, especificar e instalar os componentes de redes associados a parte física de uma rede de telecomunicações, lançou-se a tarefa de realizar a troca dos roteadores central e esquerdo da rede para outros CISCO 2514 e 1750 respectivamente. Visando assimilar o significado e importância de todas as reconexões, não se priorizou refazer configurações em nível de enlace nos roteadores.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 30/11 - Correção da Avaliação 1 - Revisão do conteúdo correspondente}}<br />
<br />
== 30/11 - Correção da Avaliação 1 - Revisão do conteúdo correspondente==<br />
<br />
* Correção da Avaliação 1 - Revisão do conteúdo correspondente e esclarecimento de dúvidas e alternativas polêmicas da prova.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 02/12 - Modens Analógicos }}<br />
<br />
== 02/12 - Modens Analógicos ==<br />
<br />
* Término da correção da Avaliação 1.<br />
* Início sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/modens.pdf Modens analógicos] <br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 07/12 - Modens e Enlaces de Teste}}<br />
<br />
== 07/12 - Modens e Enlaces de Teste==<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 09/12 - Exercícios A2 }}<br />
<br />
== 09/12 - Exercícios A2 ==<br />
<br />
* cabos lógicos.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 14/12 - Modens Digitais}}<br />
<br />
== 14/12 - Modens Digitais ==<br />
<br />
* Atividades com laboratório com links e test-set conectados a modens Digitais de quatro tecnologias diferentes.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 16/12 - Revisão para a prova }}<br />
<br />
== 16/12 - Revisão para a prova ==<br />
<br />
* Exercícios de revisão para a Avaliação A2.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 21/12 - Recuperação Avaliação A1 e Avaliação A2}}<br />
<br />
== 21/12 - Recuperação Avaliação A1 e Avaliação A2 ==<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 01/02 - Redes Locais e o Padrão Ethernet }}<br />
<br />
== 01/02 - O Padrão Ethernet ==<br />
<br />
* Redes Locais e o padrão Ethernet - <br />
* Introdução sobre Redes Locais e slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/lan.pdf MAC]<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 03/02 - Correção Prova e Arquitetura IEEE 802}}<br />
<br />
== 03/02 - Correção Prova e Arquitetura IEEE 802 ==<br />
<br />
* Correção Prova A2;<br />
* Finalização Redes Locais com múltiplo Acesso - slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/lan.pdf MAC]<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 10/02 - Redes Locais e o Padrão Ethernet - '''Não Compareci''' }}<br />
<br />
== 10/02 - Redes Locais e o Padrão Ethernet - '''Não Compareci''' ==<br />
<br />
* Não Compareci.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 15/02 - Arquitetura IEEE 802}}<br />
<br />
== 15/02 - Arquitetura IEEE 802 ==<br />
<br />
* Padrões da Arquitetura IEEE;<br />
* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/ieee.pdf Arquitetura IEEE802.3]<br />
* Leituras recomendadas para a prova e lista 3 de exercícios: Forouzan Cap 12 '''só a seção 1''', e Caps 13 e 15 '''completos'''.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 22/02 - Exercícios P3}}<br />
<br />
== 22/02 - Exercícios P3 ==<br />
<br />
* Exercícios sobre a [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista3_2015_1.pdf LISTA3] de exercícios para a avaliação A3;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 24/02 - IEEE802.1D e Avaliação A3}}<br />
<br />
== 24/02 - IEEE802.1D e Avaliação A3==<br />
<br />
===Tecnologias de LAN switches ===<br />
<br />
Switches ''store-and-forward'' X ''cut-through''<br />
* Leia este [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/switch-internals.pdf bom texto] sobre estruturas internas de switches.<br />
* [http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html Texto sobre tecnologias de switches (store-and-forward e cut-through)]<br />
<br />
Algumas animações mostrando o funcionamento de switches ''store-and-forward'' e ''cut-through'':<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0142.mov Animacão sobre switches cut-through]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0141.mov Animacão sobre switches store-and-forward]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0143.mov Animacão sobre switches simétricos (todas portas com mesma taxa de bits)]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0144.mov Animacão sobre switches assimétricos (portas com diferentes taxas de bits)]<br />
<br />
=== Interligando redes locais ===<br />
<br />
==== Interligação de LANs (norma IEEE802.1D) ====<br />
<br />
* Como um switch aprende que endereços MAC estão em cada porta ?<br />
* Como um switch encaminha um quadro cujo destinatário é desconhecido ?<br />
* Como um switch propaga quadros em broadcast ?<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/lan-switch-transparent.swf Animação sobre o funcionamento de switches (Cisco)]<br />
<br />
=== Laboratório sobre LANs ===<br />
<br />
* [[RCO2-lab3|Experiência sobre LANs]]<br />
<br />
<!-- === Desempenho de Redes Locais ===<br />
<br />
====Objetivos ====<br />
<br />
* Conhecer os equipamentos típicos de uma rede local Ethernet<br />
* Estimar o desempenho de uma LAN Ethernet comutada (com switch)<br />
<br />
==== Introdução ====<br />
<br />
Redes locais Ethernet (padrão IEEE 802.3 e extensões) são compostas de equipamentos que se comunicam, denominados estações (STA na norma IEEE 802.3), de equipamentos que os interligam (hubs e switches), e do meio de transmissão. A figura abaixo ilustra uma rede local hipotética com seus vários componentes.<br />
<br />
[[imagem:Lab1-lan-demo.png|400px]]<br />
<br />
<br />
De forma geral, uma estação possui um ou mais adaptadores de rede (placas de rede, ou NIC – Network Interface Card), como na figura abaixo à esquerda. Os adaptadores de rede das estações são conectados a um switch por meio de cabos de rede TP (par trançado) com conectores RJ-45, mostrado na figura abaixo à direita.<br />
<br />
<br />
[[imagem:Lab1-nic-switch.png|400px]]<br />
<br />
<br />
Originalmente LANs Ethernet foram construídas usando um cabo único para interligar as estações (cabo coaxial). Posteriormente surgiram as redes baseadas em hubs, equipamentos que interligavam as estações em nível da camada física (funcionavam como repetidores). Atualmente essas redes são construídas usando switches, equipamentos que interligam as estacões em nível da camada de enlace (na verdade, da subcamada MAC). Um switch apresenta como benefícios, se comparado com hubs:<br />
<br />
# '''atuação em nível de MAC:''' o switch faz o acesso ao meio com CSMA/CD ao encaminhar um quadro, quebrando o domínio de colisão; além disto, um switch pode operar em modo full-duplex, quando então inexiste a possibilidade de colisão.<br />
# '''preservação da capacidade do canal:''' para quadros unicast, o switch encaminha um quadro somente pela porta onde reside o destinatário.<br />
<br />
Essas características importantes devem fazer com que uma LAN com switches tenha um desempenho superior a uma LAN com hubs. Por desempenho entenda-se um número menor de colisões sob tráfego intenso (ou mesmo ausência total de colisões), e maior capacidade de canal vista por cada equipamento conectado ao switch.<br />
<br />
==== Utilização do meio de transmissão em uma rede local com MAC do tipo CSMA/CD ====<br />
<br />
Nesta seção mostra-se como estimar o desempenho do CSMA/CD por meio de experimentos para medir a utilização máxima do meio. Esses experimentos podem ser feitos usando uma rede real, com computadores interligados por ''hubs'', ou com um simulador. Em ambos os casos deve-se fazer com que vários computadores gerem tráfego intenso na rede, e calcular ao final a utilização do meio da seguinte forma:<br />
<br />
<math><br />
U = \frac{total~bytes~recebidos}{taxa~bits \cdot duracao~do~experimento}<br />
</math><br />
<br />
O ''total de quadros recebidos'' pode ser obtido em qualquer um dos computadores.<br />
<br />
{{collapse top|Experiência com uma rede real}}<br />
<br />
Para fazer com uma rede real: <br />
<br />
* [[RCO2-lab2|Roteiro da experiência]]<br />
<br />
'''Resultados:'''<br />
<syntaxhighlight lang=text><br />
64 53046660<br />
128 61992856<br />
256 67413192<br />
512 70684436<br />
756 71989464<br />
1024 77967480<br />
1500 73797088<br />
</syntaxhighlight><br />
<br />
Com esses dados deve-se plotar um gráfico da quantidade de bytes recebidos X tamanho dos quadros. Na tabela acima, os tamanhos de quadros estão na 1a coluna, e a quantidade de bytes recebidos está na 2a coluna.<br />
<br />
[[imagem:Csma-cd.png|400px]]<br />
<br />
<br>''Desempenho do MAC CSMA/CD (Carrier Sense Multiple Access/Collision Detection): o gráfico acima mostra o resultado de um experimento feito em laboratório com 6 computadores transmitindo quadros intensamente e simultaneamente para um único computador. A cada transmissão simultânea variou-se o tamanho dos quadros transmitidos (mostrado no eixo X), e anotou-se quantos bytes foram recebidos no computador receptor (eixo Y). Os computadores foram interligados por um hub.''<br />
{{collapse bottom}}<br />
<br />
{{collapse top|Experiência com uma rede simulada}}<br />
<br />
Para fazer a experiência pode-se usar também o simulador Omnet++ (veja em: [[Omnetpp-Instalacao|Instale o Omnet++ 4]])<br />
<br />
O gráfico abaixo foi obtido com uma simulação via Omnet++:<br />
<br />
[[imagem:Csma-perf-sim.png]]<br />
<br />
As simulações tiveram os seguintes parâmetros:<br />
* Quadros de 256, 512 e 1480 bytes<br />
* 2 a 45 estações<br />
* Geração de tráfego por estação com intervalos entre quadros dados por uma distribuição exponencial com média 15*tamanho_quadro_em_bits*0.11us (0.11us é o tempo aproximado de um bit)<br />
{{collapse bottom}}<br />
<br />
{{collapse top|Análise de desempenho do CSMA/CD}}<br />
<br />
Uma análise feita no capítulo 4 do livro "Redes de Computadores, 4a ed." de Andrew Tanenbaum fornece a seguinte previsão aproximada de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.<br />
<br />
* ''Utilização do meio:''<br />
<br />
<math>U = \frac{1}{1 + \frac{2BLe}{cF}}</math><br />
<br />
* '''''B:''''' taxa de bits nominal<br />
* '''''L:''''' comprimento do meio de transmissão<br />
* '''''c: ''''' velocidade de propagação do sinal<br />
* '''''F:''''' comprimento do quadro<br />
<br />
[[Image:Csma-perf.png|400px]]<br />
<br />
Essa figura mostra curvas para a utilização do meio em função da quantidade de estações prontas para transmitir, e para diferentes tamanhos de quadro. A conclusão é que quadros menores proporcionam desempenho inferior, assim como uma quantidade maior de estações resulta em uma provável menor utilização do meio. No entanto essa análise considera a rede numa situação de carga muito alta, o que não acontece normalmente. Há também algumas simplificações no desenvolvimento da análise, tal como considerar que a probabilidade de retransmissão constante em cada ''slot'', ao invés de analisar o algoritmo de recuo exponencial binário (''backoff''). Finalmente, esse resultado tem sentido para um meio de transmissão compartilhado, mas a atualmente as redes locais ethernet trabalham com meios de transmissão exclusivos (''ethernet comutada e full-duplex'', em que não há risco de colisão).<br />
<br />
Para fins de comparação, veja os resultados obtidos com as redes simuladas anteriormente.<br />
{{collapse bottom}}<br />
<br />
==== Roteiro ====<br />
<br />
A rede de teste para o experimento será composta de computadores ligados a um switch Ethernet a 100 Mbps em modos half ou full-duplex. Serão sintetizados tráfegos intensos, de forma a poder comparar o desempenho das transmissões nos dois casos.<br />
<br />
[[imagem:Lab1.png]]<br />
# Observe a placa de rede de seu computador e sua conexão à rede por meio do cabo TP. Os computadores do laboratório estão conectados ao switch Microtec, que reside no rack central. O número da porta onde está conectado seu computador na bancada corresponde à porta do switch. Desconecte o cabo do seu computador e observe o status da porta correspondente no switch (o status é informado por um led, que aceso significa que há equipamento ativo conectado àquela porta). '''Questão:''' como será que o switch sabe que um equipamento foi conectado a uma porta ?<br />
# Veja que informações o Linux provê a respeito de seu adaptador Ethernet. Usando os comandos administrativos do Linux, descubra:<br />
#* o modelo do adaptador, e seu endereço MAC: ver comandos [http://manpages.ubuntu.com/manpages/hardy/man8/lspci.8.html lspci] e [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig].<br />
#* seu modo de operação (velocidade, modo duplex, se o enlace está ativo): ver comando [http://manpages.ubuntu.com/manpages/hardy/man8/ethtool.8.html ethtool]<br />
#* suas estatísticas de operação (quadros transmitidos e recebidos, colisões e erros em geral): ver comandos [http://manpages.ubuntu.com/manpages/hardy/man8/netstat.8.html netstat] e [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig].<br>Após obter essas informações, experimente desconectar o cabo da placa de rede e repetir a execução dos comandos. <br />
# Anote os valores dos contadores de quadros e bytes recebidos e enviados pela interface ethernet em seu computador. Use o comando [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig] para visualizar esses contadores. Anote também o horário em que se fez essa medição.<br />
# Os computadores se comunicarão aos pares, usando-se o programa [http://manpages.ubuntu.com/manpages/lucid/man1/netperf.1.html netperf] para gerar o tráfego e medir a capacidade do canal:<syntaxhighlight lang=bash>netperf -f k -H endereço_IP</syntaxhighlight>(Obs: endereço_IP é o endereço IP computador alvo).<br />
# Execute o [http://manpages.ubuntu.com/manpages/lucid/man1/netperf.1.html netperf] de forma sincronizada: os computadores devem iniciá-lo simultaneamente. Repita esse procedimento 3 vezes, anotando a taxa de transmissão obtida em cada computador.<br />
# '''Carga de tráfego na rede durante o experimento:''' anote novamente os valores dos contadores de quadros e bytes recebidos e enviados pela interface ethernet em seu computador. Usando os valores medidos previamente, calcule:<br />
## Quantos bytes e quadros foram enviados e recebidos durante o experimento<br />
## As taxas médias de transmissão e recepção pela sua interface ethernet<br />
## A utilização do seu link ethernet. Obs: a utilização é a razão entre quantos bytes foram enviados, e quantos bytes poderiam ser enviados ininterruptamente durante o experimento. O mesmo vale para os bytes recebidos.<br />
# Repita os passos 4 a 6, mas antes configure os computadores para operarem em modo 100baseT half-fuplex: <syntaxhighlight lang=bash><br />
sudo ethtool -s eth0 speed 100 duplex half autoneg off<br />
</syntaxhighlight>Houve diferença nas taxas de bits obtidas ? Caso sim, qual deve ser a explicação ?<br />
# As interfaces de rede dos computadores podem operar a 1000 Mbps (gigabit), mas o switch do laboratório opera a 100 Mbps. Pode-se medir a capacidade de transmissão do computador através dessas interfaces se os computadores forem conectados aos pares. Assim, conecte o cabo da interface de rede de seu computador à interface do computador ao seu lado. Em seguida faça os seguintes experimentos:<br />
## Em cada computador deve-se gerar um arquivo de nome “teste”, com 1GB de conteúdo aleatório: <syntaxhighlight lang=bash><br />
dd if=/dev/urandom of=teste bs=65536 count=16384 <br />
</syntaxhighlight><br />
## O arquivo deve ser transferido de um computador a outro. No computador que irá receber o arquivo execute:<syntaxhighlight lang=bash><br />
nc -l 10000 > recebido<br />
</syntaxhighlight>.. e no que irá transmitir execute:<syntaxhighlight lang=bash><br />
date +%s.%N; nc IP_do_outro_computador 10000 < teste; date +%s.%N<br />
</syntaxhighlight><br />
## No computador transmissor aparecerão dois números, que correspondem aos instantes de início e fim de transmissão. Calcule quanto tempo demorou a transmissão, e em seguida a taxa de bits obtida. Compare essa taxa com a capacidade nominal da interface de rede (1000 Mbps).<br />
## Repita duas vezes os passos ii e iii , e anote os valores de taxa de bits obtidos. Houve variação nas medições ?<br />
## Repita os passos 2 a 4, porém executando o seguinte comando no receptor: <syntaxhighlight lang=bash><br />
nc -l 10000 > /dev/null<br />
</syntaxhighlight>Houve diferença nos valores obtidos para a taxa de bits ? Caso afirmativo, qual deve ser explicação ?<br />
<br />
==Exercícios sobre a Atividade: da Colisão à Comutação==<br />
<br />
O acesso ao meio ethernet com CSMA/CD é probabilístico: uma estação verifica se o meio está está livre antes de iniciar uma transmissão, mas isso não impede que ocorra uma colisão (apenas reduz sua chance). Se acontecer uma colisão, cada estação envolvida usa esperas de duração aleatória para desempate, chamadas de ''backoff''. A ideia é que as estações sorteiem valores de espera diferentes, e assim a que tiver escolhido um valor menor consiga transmitir seu quadro. As colisões e esperas (''backoffs'') impedem que esse protocolo de acesso ao meio aproveite totalmente a capacidade do meio de transmissão.<br />
<br />
* [http://www.datacottage.com/nch/eoperation.htm Veja animacões que mostram o tratamento de colisões]<br />
<br />
No entanto, '''nas gerações atuais do padrão IEEE 802.3 (Gigabit Ethernet e posteriores) o CSMA/CD não é mais utilizado'''. Nessas atualizações do padrão, o modo de comunicação é full-duplex (nas versões anteriores, que operavam a 10 e 100 Mbps, há a possibilidade de ser half ou full-duplex). Se as comunicações são full-duplex, então '''conceitualmente não existem colisões'''. Isso se deve ao fato de que nessas novas versões cada estação possui uma via exclusiva para transmitir e outra para receber, portanto não existe mais um meio compartilhado.<br />
<br />
*Além dos resultados coletados no roteiro do laboratório de hoje leia o conteúdo sobre LAN postados aqui e nos slides e links indicados e procure em nossa bibliografia ou internet, nos temas correspondentes, respostas e ilustrações sobre as seguintes perguntas:<br />
<br />
#Como um switch identifica e sinaliza através de um led em seu frontal, que um equipamento foi conectado a uma de suas portas?<br />
#Considerando os números médios coletados por TODOS no experimento, quais foram os valores de taxa média de Tx e Rx (em bps) na interface ethernet? e a taxa de utilização do link (em %)?<br />
#O que acontece com o desempenho da rede quando as placas de rede são configuradas em modo Half-duplex?<br />
#A conexão entre computadores na última parte do experimento, é direta, ou seja, sem switch entre eles. Voces devem ter observado que quando os dados recebidos por um pc não são encaminhados para lugar algum (> /dev/null) o desempenho da transmissão é melhor. Qual a explicação disso? Diante desses resultados, até que ponto vale à pena ter interfaces ethernet com velocidades maiores, como por exemplo 10Gbps?<br />
# Porque razão as medidas de vazão (Throughput) nunca alcançaram 100% da taxa configurada na placa de rede?<br />
# Em algum momento do experimento houve uso do algorítimo CSMA/CD? onde ocorre a execução dele?<br />
<br />
--><br />
<br />
* Avaliação A3 - 50min<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 29/02 - LANs Virtuais e '''Orientações para a Avaliação A5'''}}<br />
<br />
== 29/02 - LANs Virtuais e Orientações para a Avaliação A5==<br />
<br />
* ORIENTAÇÕES PARA ELABORAR O TRABALHO CIENTÍFICO EM SUBSTITUIÇÃO A AVALIAÇÃO A5:<br />
<br />
'''MODELO A SER ADOTADO:''' RESUMO<br />
<br />
Resumo, segundo a ABNT é a apresentação concisa das principais idéias de um texto. Resulta da capacidade analítica e compreensiva que o leitor adquire no momento em que faz sua leitura. Quanto mais se tem domínio e compreensão do texto, maior será a capacidade de<br />
síntese e de apresentação de forma breve. Na apresentação do resumo, o aluno deve evitar a manifestação de opinião sobre o tema ou analisá-lo criticamente. O acréscimo da crítica no resumo caracteriza um outro tipo de trabalho, denominado resumo crítico ou resenha crítica. No meio acadêmico, o desenvolvimento de um resumo é importante, por que permite “[...] em rápida leitura, recordar o<br />
essencial do que se estudou e [apresentar] a conclusão a que se chegou” (GALLIANO, 1986, p. 89).<br />
<br />
'''Temas dos trabalhos para substituir a A5'''<br />
<br />
* [[Tema 1 - IEEE802.1x]] - GUSTAVO, MACIEL, ANDERSON, CARLOS, <br />
* [[Tema 2 - IEEE802.11i]] - IAGO, MARCO, FABIANO, GABRIEL G, <br />
* [[Media: IEEE80211e.pdf |Tema 3 - IEEE802.11e]] - GABRIEL C, LUCAS, ANDRE, GABRIEL S, <br />
* [[Tema 4 - IEEE802.1p]] - GEMEAS, HELEN, MARY, LE <br><br />
<br />
'''ENTREGA:''' DIA 15/03 ATÉ AS 23:59h - Como? '''PUBLICAÇÃO NA WIKI''' no link correspondente acima! <br><br />
<br />
'''JUSTIFICATIVA E ESTRATÉGIA:''' O trabalho do tipo resumo facilita o trabalho em grupo no sentido da exigência de reuniões do mesmo para definir o escopo do trabalho e a divisão de tarefas onde cada um dos componentes define uma seção do tema para resumir após a decisão do grupo do que relevante será abordado no trabalho final. A publicação na WIKI garante que toda a turma tenham acesso para futuras pesquisas.<br />
<br />
==REDES LOCAIS VIRTUAIS - VLANS==<br />
<br />
* Ver [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/vlan.pdf slides] sobre introdução à VLANs.<br />
<br />
Introdução: A equipe que administra a rede do campus São José estudou uma reestruturação dessa rede. Como diferentes setores e públicos a utilizam, e para diferentes propósitos, concluiu-se que seria apropriado segmentá-la em algumas subredes. Isso possibilitaria facilitar o controle de quem usa a rede, além do policiamento do tráfego. Para isso, a subrede geral do campus precisaria ser segmentada inicialmente em cinco novas subredes, denominadas:<br />
<br />
{| border="1" cellpadding="2"<br />
!Segmento<br />
!Descrição<br />
!Subrede IP<br />
|-<br />
|'''Pedagogica''' || Pontos das salas de aula e laboratórios de informática|| 172.18.32.0/20<br />
|-<br />
|'''Administrativa''' || Pontos de setores administrativos|| 172.18.16.0/20<br />
|-<br />
|'''DMZ''' || Servidores acessíveis de fora da escola (ex: Wiki, WWW)|| 200.135.37.64/26<br />
|-<br />
|'''BD''' || Servidores que hospedam bancos de dados (ex: LDAP, MySQL)|| 172.18.240.0/24<br />
|-<br />
|'''LAN''' || Demais pontos de rede || 172.18.0.0/20<br />
|}<br />
<br />
<br />
A figura abaixo mostra a estrutura proposta para a rede do campus São José, composta pelas cinco novas subredes e as subredes dos laboratórios de Redes 1 e Redes 2. Como se pode observar, o roteador/firewall Cisco ASA 5510 se torna um nó central da rede, pois interliga todas suas subredes (com exceção dos laboratórios de Redes 1 e Redes 2).<br />
<br />
<br />
[[imagem:Nova-rede-ifsc-sj.png|600px]]<br />
<br />
<br />
Existe mais de uma forma de implantar uma estrutura como essa, as quais serão apresentadas nas próximas subseções.<br />
<br />
==== Segmentação física ====<br />
<br />
A segmentação física é uma solução aparentemente simples e direta. Cada subrede deve ser composta de uma estrutura exclusiva, contendo seus switches e cabeamentos. No entanto, para adotar esse tipo de segmentação, algumas modificações precisarão ser feitas na infraestrutura de rede existente. Observe a estrutura física da rede do campus:<br />
<br />
[[imagem:Rede-ifsc-sj.png|600px]]<br />
<br />
<br />
O que seria necessário fazer para implantar uma segmentação física ?<br />
<br />
==== Segmentação com VLANs ====<br />
<br />
Se a reestruturação pudesse ser efetuada com mínimas modificações na estrutura física (incluindo cabeamento), a implantação da nova rede seria mais rápida e menos custosa. Para isso ser possível, seria necessário que a infraestrutura de rede existente tivesse a capacidade de agrupar portas de switches, separando-as em segmentos lógicos. Quer dizer, deveria ser possível criar '''redes locais virtuais''', como mostrado na seguinte figura:<br />
<br />
[[imagem:Vlans.png]]<br />
<br />
No exemplo acima, três redes locais virtuais ('''VLAN''') foram implantadas nos switches. Cada rede local virtual é composta por um certo número de computadores, que podem estar conectados a diferentes switches. Assim, uma rede local pode ter uma estrutura lógica diferente da estrutura física (a forma como seus computadores estão fisicamente interligados). Uma facilidade como essa funcionaria, de certa forma, como um ''patch panel'' virtual, que seria implementado diretamente nos switches.<br />
<br />
'''Redes locais virtuais''' são técnicas para implantar duas ou mais redes locais com topologias arbitrárias, usando como base uma infraestrutura de rede local física. Isso é semelhante a máquinas virtuais, em que se criam computadores virtuais sobre um computador real.<br />
<br />
<br />
==== Padrão IEEE 802.1q ====<br />
<br />
Os primeiros switches com suporte a VLANs as implementavam de forma legada (i.e. não seguiam um padrão da indústria). Isso impedia que houvesse interoperabilidade entre equipamentos de diferentes fabricantes. Logo a IEEE formou um grupo de trabalho para propor mecanismos padronizados para implantar VLANs, dando origem ao padrão [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1Q-2005.pdf IEEE 802.1q]. Os fabricantes de equipamentos de rede o adataram largamente, suplantando outras tecnologias legadas (ex: [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094665.shtml ISL] e [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094c52.shtml VTP] da Cisco). Com isso, VLANs IEEE 802.1q podem ser criadas usando switches de fabricantes diferentes.<br />
<br />
Atualmente, a implantação de VLANs depende de switches com suporte ao padrão IEEE 802.1q. Assim, verifique quais dos switches do laboratório possuem suporte a VLAN:<br />
* D-Link DES-526 [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/manual-des3526.pdf (manual)]<br />
* Micronet SP 1658B [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/SP1658B_Manual.pdf (manual)]<br />
* 3Com 3224 [http://www.3com.com/prod/pt_la_amer/detail.jsp?tab=prodspec&sku=3C16479 (especificações)]<br />
<br />
Uma VLAN é identificada por um número, chamado VID (''VLAN Identifier''), sendo que a VLAN com VID 1 é considerada a ''VLAN default'' (configuração de fábrica). Em um switch com suporte a VLAN IEEE 802.1q, cada porta possui um (ou mais ...) VID, o que define a que VLAN pertence. Assim, para criar uma VLAN, devem-se modificar os VID das portas de switches que dela farão parte. <br />
<br />
Além do VID, a configuração da porta de um switch deve especificar o modo de operação da VLAN:<br />
* '''tagged:''' cada quadro transmitido ou recebido por essa porta deve conter o número da VLAN a que pertence. Esse modo é usado normalmente em portas que interligam switches.<br />
* '''untagged:''' quadros que entram e saem pela porta não possuem informação sobre a VLAN a que pertencem. Usado normalmente para conectar computadores e servidores a switches.<br />
<br />
<br />
Esses modos '''tagged''' e '''untagged''' implicam haver uma forma de um quadro Ethernet informar a que VLAN pertence. Isso é usado para restringir a propagação de quadros, fazendo com que sejam recebidos e transmitidos somente por portas de switches que fazem parte de suas VLANs. <br />
<br />
<br />
O padrão IEEE 802.1q define, entre outras coisas, uma extensão ao quadro MAC para identificar a que VLAN este pertence. Essa extensão, denominada tag (etiqueta) e mostrada na figura abaixo, compõe-se de 4 bytes situados entre os campos de endereço de origem e ''Type''. O identificador de VLAN (VID) ocupa 12 bits, o que possibilita portanto 4096 diferentes VLANs.<br />
<br />
<br />
[[imagem:Quadro-8021q.png]]<br />
<br>''Quadro ethernet com a TAG IEEE 802.1q''<br />
<br />
<br />
A ''tag'' de VLAN, inserida em quadros Ethernet, está diretamente relacionada com os modos '''tagged''' e '''untagged''' de portas de switches. Portas em modo '''tagged''' transmitem e recebem quadros que possuem ''tag'', e portas em modo '''untagged''' recebem e transmitem quadros que não possuem ''tag''. Isso foi pensado para tornar a implantação de VLANs transparente para os usuários finais, pois seus computadores não precisarão saber que existem VLANs (i.e. não precisarão interpretar ''tags''). Por isso equipamentos que não interpretam ''tags'' são denominados ''VLAN-unaware'' (desconhecem VLAN), e equipamentos que recebem e transmitem quadros com ''tag'' são referidos como ''VLAN-aware'' (conhecem VLAN).<br />
<br />
<br />
'''Exemplo: simulador de switch com VLAN:'''<br />
<br>Esta animação possibilita simular a configuração de VLANs em um switch, e efetuar testes de transmissão. Experimente criar diferentes VLANs e observar o efeito em transmissões unicast e broadcast (clique na figura para acessar o simulador).<br />
<br />
[[imagem:Simulador-vlan.png|link=http://www2.rad.com/networks/2006/vlan/demo.htm|Um simulador de VLANs]]<br />
<br />
== Redes locais e VLANs == <br />
<br />
<br />
'''Exemplo:''' a configuração do [[Netkit]] mostrada abaixo cria uma pequena rede composta por um switch e quatro computadores. Além disso, foram definidas duas VLANs (VLAN 5 e VLAN 10). Com isso, os computadores ''pc1'' e ''pc4'' pertencem a VLAN 5, e os computadores ''pc2'' e ''pc3'' estão na VLAN 10. Execute a rede abaixo e teste a comunicação entre os computadores - quais computadores conseguem se comunicar ?.<br />
<br />
{| border="0" cellpadding="3"<br />
|-<br />
| <syntaxhighlight lang=text><br />
sw[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=generic<br />
<br />
# As portas do switch<br />
sw[eth0]=port0:vlan_untagged=5<br />
sw[eth1]=port1:vlan_untagged=10<br />
sw[eth2]=port2:vlan_untagged=10<br />
sw[eth3]=port3:vlan_untagged=5<br />
<br />
# Ligando os computadores ao switch<br />
pc1[eth0]=port0:ip=192.168.0.1/24<br />
pc2[eth0]=port1:ip=192.168.0.2/24<br />
pc3[eth0]=port2:ip=192.168.0.3/24<br />
pc4[eth0]=port3:ip=192.168.0.4/24<br />
</syntaxhighlight> || [[imagem:Vlans-ex1.png]]<br />
|}<br />
<br />
Por exemplo, em uma pequena rede com duas VLANs as portas dos switches podem estar configuradas da seguinte forma:<br />
<br />
<br />
{| border="0" cellpadding="2"<br />
|-<br />
|[[imagem:Bridge3.png]] || <syntaxhighlight lang=text><br />
switch1[type]=switch<br />
switch2[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=gateway<br />
pc5[type]=generic<br />
pc6[type]=generic<br />
<br />
pc1[default_gateway]=192.168.0.4<br />
pc2[default_gateway]=192.168.0.4<br />
pc3[default_gateway]=192.168.1.4<br />
pc5[default_gateway]=192.168.1.4<br />
pc6[default_gateway]=192.168.0.4<br />
<br />
switch1[eth0]=sw1-port0:vlan_untagged=5<br />
switch1[eth1]=sw1-port1:vlan_untagged=5<br />
switch1[eth2]=sw1-port2:vlan_untagged=10<br />
switch1[eth3]=link-sw1-sw2:vlan_tagged=5,10<br />
<br />
switch2[eth0]=sw2-port0:vlan_tagged=5,10<br />
switch2[eth1]=sw2-port1:vlan_untagged=10<br />
switch2[eth2]=sw2-port2:vlan_untagged=5<br />
switch2[eth3]=link-sw1-sw2:vlan_tagged=5,10<br />
<br />
pc1[eth0]=sw1-port0:ip=192.168.0.1/24<br />
pc2[eth0]=sw1-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw1-port2:ip=192.168.1.3/24<br />
pc4[eth0]=sw2-port0:vlan_tagged=(5,ip=192.168.0.4/24),(10,ip=192.168.1.4/24)<br />
pc5[eth0]=sw2-port1:ip=192.168.1.5/24<br />
pc6[eth0]=sw2-port2:ip=192.168.0.6/24<br />
</syntaxhighlight><br />
|}<br />
<br />
'''Exercício:''' Redesenhe a topologia LÓGICA para essa rede!<br />
<br />
<br />
=== Atividade 1 ===<br />
<br />
Na figura abaixo, a rede da esquerda está fisicamente implantada em uma pequena empresa. No entanto, uma reestruturação tem como objetivo modificá-la de acordo com o diagrama mostrado à direita. Essa alteração da rede deve ser feita sem adicionar switches ou modificar o cabeamento (tampouco devem-se mudar as conexões de pontos de rede às portas de switches). Faça essa modificação usando o [[Netkit]].<br />
<br />
[[imagem:Vlan-ex1.png]]<br />
<br />
# '''Criar a topologia física:'''<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=generic<br />
pc5[type]=generic<br />
pc6[type]=generic<br />
<br />
sw1[eth0]=sw1-port0<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-port2<br />
sw1[eth3]=link-sw1-sw2<br />
<br />
sw2[eth0]=sw2-port0<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-port2<br />
sw2[eth3]=link-sw1-sw2<br />
<br />
pc1[eth0]=sw1-port0<br />
pc2[eth0]=sw1-port1<br />
pc6[eth0]=sw1-port2<br />
<br />
pc3[eth0]=sw2-port0<br />
pc4[eth0]=sw2-port1<br />
pc5[eth0]=sw2-port2<br />
</syntaxhighlight><br />
# '''Exercício:''' Criar a topologia lógica usando VLANs<br>''... isso é com vocês!''<br />
<br />
=== A nova rede do IFSC-SJ ===<br />
<br />
'''Desafio:''' Voltando à segmentação da rede do campus São José, implemente a nova rede usando VLANs!<br />
<br />
<br />
{| border="0" cellpadding="2"<br />
|-<br />
|[[imagem:Ifsc-sj-simples.png|400px]] || [[imagem:Ier-seta.png]]|| [[imagem:Nova-rede-ifsc-sj.png|400px]]<br />
|}<br />
<br />
Primeiro isso será realizado usando o [[Netkit]], e em seguida será implantado no laboratório. Para simplificar a rede, vamos assumir que a topologia física está implantada como mostrado na figura acima, à esquerda.<br />
<br />
{{collapse top | Configuração da rede do IFSC-SJ}}<br />
<syntaxhighlight lang=text><br />
# switches<br />
sw-rnp[type]=switch<br />
sw-redes1[type]=switch<br />
sw-redes2[type]=switch<br />
sw-coinf[type]=switch<br />
sw-labdes[type]=switch<br />
<br />
# gateways<br />
asa5510[type]=gateway<br />
gw-redes1[type]=gateway<br />
gw-redes2[type]=gateway<br />
<br />
# computadores e servidores<br />
bd[type]=generic<br />
dmz1[type]=generic<br />
dmz2[type]=generic<br />
adm1[type]=generic<br />
adm2[type]=generic<br />
adm3[type]=generic<br />
pedag1[type]=generic<br />
pedag2[type]=generic<br />
pc-redes1[type]=generic<br />
pc-redes2[type]=generic<br />
<br />
# Portas dos switches<br />
sw-rnp[eth0]=rnp-port0<br />
sw-rnp[eth1]=rnp-port1<br />
sw-rnp[eth2]=rnp-port2<br />
sw-rnp[eth3]=rnp-port3<br />
sw-rnp[eth4]=rnp-port4<br />
sw-rnp[eth5]=rnp-port5<br />
<br />
sw-redes1[eth0]=redes1-port0<br />
sw-redes1[eth1]=redes1-port1<br />
<br />
sw-redes2[eth0]=redes2-port0<br />
sw-redes2[eth1]=redes2-port1<br />
<br />
sw-coinf[eth0]=coinf-port0<br />
sw-coinf[eth1]=coinf-port1<br />
sw-coinf[eth2]=coinf-port2<br />
# Ligações entre switches<br />
sw-coinf[eth3]=rnp-port5<br />
sw-coinf[eth4]=labdes-port3<br />
<br />
sw-labdes[eth0]=labdes-port0<br />
sw-labdes[eth1]=labdes-port1<br />
sw-labdes[eth2]=labdes-port2<br />
sw-labdes[eth3]=labdes-port3<br />
<br />
# Ligações dos computadores aos switches<br />
asa5510[eth0]=rnp-port0:ip=172.18.0.254/16<br />
bd[eth0]=rnp-port1:ip=172.18.0.10/16<br />
dmz1[eth0]=rnp-port2:ip=172.18.0.11/16<br />
adm1[eth0]=rnp-port3:ip=dhcp<br />
gw-redes1[eth1]=rnp-port4:ip=172.18.0.100/16<br />
<br />
pc-redes1[eth0]=redes1-port1:ip=192.168.1.2/24<br />
gw-redes1[eth0]=redes1-port0:ip=192.168.1.1/24<br />
<br />
pc-redes2[eth0]=redes2-port1:ip=192.168.2.2/24<br />
gw-redes2[eth0]=redes2-port0:ip=192.168.2.1/24<br />
<br />
dmz2[eth0]=coinf-port0:ip=172.18.0.13/16<br />
adm2[eth0]=coinf-port1:ip=dhcp<br />
pedag1[eth0]=coinf-port2:ip=dhcp<br />
<br />
adm3[eth0]=labdes-port0:ip=dhcp<br />
pedag2[eth0]=labdes-port1:ip=dhcp<br />
gw-redes2[eth1]=labdes-port2:ip=172.18.0.101/16<br />
<br />
# ASA 5510 é servidor dhcp da LAN ...<br />
asa5510[dhcp]=eth0:range=172.18.100.1,172.18.100.250:gateway=172.18.0.254<br />
<br />
# Gateways default dos computadores que usam IP fixo<br />
gw-redes1[default_gateway]=172.18.0.254<br />
gw-redes2[default_gateway]=172.18.0.254<br />
pc-redes1[default_gateway]=192.168.1.1<br />
pc-redes2[default_gateway]=192.168.2.1<br />
bd[default_gateway]=172.18.0.254<br />
dmz1[default_gateway]=172.18.0.254<br />
dmz2[default_gateway]=172.18.0.254<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}}<br />
<br />
== Praticando VLANs com SWITCH Catalyst CISCO 2960S==<br />
<br />
===Uso dos Switches do Laboratório para a criação de VLANs===<br />
<br />
* uso da interface CLI da CISCO e comandos básicos;<br />
* gerenciamento de switches via TELNET;<br />
* configuração de VLANs distribuídas em 2 switches usando trunk e access;<br />
* uso de VLAN nativa para gerência comum.<br />
* configuração básica do switch após reset:<br />
<br />
<code><br />
hostname SW_1<br />
interface Vlan1<br />
ip address 192.168.1.111 255.255.255.0<br />
!<br />
ip default-gateway 192.168.1.1<br />
ip http server<br />
ip http secure-server<br />
!<br />
line con 0<br />
line vty 0 4<br />
password CISCO<br />
login<br />
line vty 5 15<br />
password CISCO<br />
login<br />
enable secret CISCO<br />
<br />
wr<br />
<br />
</syntaxhighlight><br />
<br />
Para zerar a configuração:<br />
<br />
<code><br />
<br />
erase startup-config<br />
erase running-config<br />
wr<br />
reload<br />
!<br />
! depois executar os comandos anteriores via console<br />
!<br />
</syntaxhighlight><br />
<br />
Configurando vlan no switch<br />
<br />
<code><br />
<br />
Switch>enable<br />
<br />
Switch#configure terminal<br />
<br />
Switch(config)#vlan 10<br />
<br />
Switch(config-vlan)#name dep-administrativo<br />
<br />
Switch(config-vlan)#exit<br />
<br />
Switch(config)#<br />
<br />
Switch(config)#interface fastEthernet 0/1<br />
<br />
Switch(config-if)#switchport mode access<br />
<br />
Switch(config-if)#switchport access vlan 10<br />
<br />
Switch(config-if)#exit<br />
<br />
Switch(config)#exit<br />
<br />
Switch#sh vlan<br />
<br />
</syntaxhighlight><br />
<br />
Configurando trunk no switch e interface nativa para gerenciamento comum<br />
<br />
<code><br />
<br />
Switch>enable<br />
<br />
Switch#configure terminal<br />
<br />
Switch(config)#interface fastEthernet 0/1<br />
<br />
Switch(config-if)#switchport mode trunk<br />
<br />
Switch(config-if)#switchport mode native vlan 1<br />
<br />
</syntaxhighlight><br />
<br />
Para apagar vlans:<br />
<br />
<code><br />
<br />
no vlan 2-1000<br />
<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}} <br />
<br />
{{Collapse top | 02/03 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d}}<br />
<br />
==02/03 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d==<br />
<br />
=== O problema dos ciclos (caminhos fechados) em uma rede local ethernet ===<br />
<br />
Bibliografia associada:<br />
* Capítulo 15 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.<br />
* Capítulo 5 do livro "''Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição'', de James Kurose.<br />
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.<br />
<br />
Outros materiais:<br />
* Introdução a STP (ver [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/stp.pdf slides])<br />
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/spanning_tree1.swf Uma animação sobre STP].<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/stp.pdf Um texto explicativo sobre STP]<br />
* [http://en.wikipedia.org/wiki/Spanning_tree_protocol STP na Wikipedia]<br />
<br />
Após implantar a [[RCO2-2012-1#Atividade_3|nova rede do IF-SC SJ]], a equipe da gerência de rede passou a acompanhar seu uso pela comunidade escolar. E um certo dia um aluno acidentalmente pegou um cabo e ligou em duas tomadas de rede em um laboratório (que está na Subrede ''Pedagógica''). Quer dizer, ele fez algo assim com um dos switches da rede:<br />
<br />
<br />
[[imagem:Curto-lan.png]]<br />
<br />
<br />
A interligação acidental de duas portas de um switch cria um ciclo na rede local (''loop''). Mas isso pode ser feito também de forma intencional, pois em LANs grandes pode ser desejável ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto é algo que pode ocorrer em uma rede local, seja por acidente ou com a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Um caso em que uma rede possui um ciclo intencionalmente colocado pode ser visto na LAN abaixo:<br />
<br />
[[imagem:LAN-anel-stp.png]]<br />
<br />
Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa ficaria travada devido a um efeito chamado de ''tempestade de broadcasts'' (''broadcast storm''). Isso acontece porque, ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manualmente tira o sentido de ter tal configuração para tolerância a falhas (e não impede um "acidente" como aquele descrito no início desta secão), por isso foi criado o protocolo [http://en.wikipedia.org/wiki/Spanning_Tree_Protocol STP] (''Spanning Tree Protocol'', definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa. <br />
<br />
<br />
Voltando ao problema do loop acidental (ou proposital...) colocado entre portas de um mesmo switch, vamos avaliar o que ocorreria na prática sem um protocolo STP.<br />
<br />
<br />
[[imagem:Curto-lan.png]]<br />
<br />
<br />
Para ver a consequência dessa ação aparentemente inocente, experimente reproduzi-la em uma rede feita com o [[Netkit]]:<br />
<br />
{| border="0" cellpadding="2"<br />
|-<br />
|[[imagem:Stp-ex1.png]] || <syntaxhighlight lang=text><br />
pc1[type]=generic<br />
pc2[type]=generic<br />
sw[type]=switch<br />
<br />
sw[eth0]=port0<br />
sw[eth1]=port1<br />
<br />
pc1[eth0]=port0:ip=192.168.0.1/24<br />
pc2[eth0]=port1:ip=192.168.0.2/24<br />
<br />
# ... a barbeiragem do usuário da rede no switch !<br />
sw[eth2]=link-barbeiragem<br />
sw[eth3]=link-barbeiragem<br />
</syntaxhighlight><br />
|}<br />
<br />
<br />
'''O que ocorreu ao tentar pingar de pc1 para pc2 ?'''<br />
<br />
* Abra a ferramenta "monitor do sistema" do UBUNTU para constatar a carga de processamento do processador de seu PC e conclua o que está acontecendo.<br />
<br />
Agora vamos observar o STP em ação na rede abaixo <br />
<br />
[[imagem:LAN-anel-stp.png]]<br />
<br />
* Configuração para o Netkit:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
sw3[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on<br />
sw2[stp]=on<br />
sw3[stp]=on<br />
<br />
sw1[eth0]=sw1-sw2<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-sw3<br />
<br />
sw2[eth0]=sw1-sw2<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-sw3<br />
<br />
sw3[eth0]=sw1-sw3<br />
sw3[eth1]=sw3-port1<br />
sw3[eth2]=sw2-sw3<br />
<br />
pc1[eth0]=sw1-port1:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw3-port1:ip=192.168.0.3/24<br />
</syntaxhighlight><br />
<br />
Abra o wireshark ou tcpdump em qualquer interface da rede e observe todos os parâmetros do pacote BPDU trocados entre Switches. Neste momento o algorítimo do STP já executou todas as suas etapas e convergiu bloqueando portas para tornar a rede em uma topologia tipo árvore. Os pacotes BPDU irão aparecer periodicamente nessa rede até que exista uma falha ou mudança na topologia física para que exista uma nova etapa do algorítimo STP.<br />
<br />
=== Atividade 1 ===<br />
<br />
Vamos realizar [[RCO2-lab4|um experimento]] para entender melhor como funciona o STP. <br />
<br />
<!--Usem o arquivo de configuração do Netkit a seguir para o experimento:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
sw3[type]=switch<br />
sw4[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=generic<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on<br />
sw2[stp]=on<br />
sw3[stp]=on<br />
sw4[stp]=on<br />
<br />
sw1[eth0]=sw1-sw2<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-sw3<br />
sw1[eth3]=sw1-sw4<br />
<br />
sw2[eth0]=sw1-sw2<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-sw3<br />
sw2[eth3]=sw2-sw4<br />
<br />
sw3[eth0]=sw1-sw3<br />
sw3[eth1]=sw3-port1<br />
sw3[eth2]=sw2-sw3<br />
sw3[eth3]=sw3-sw4<br />
<br />
sw4[eth0]=sw1-sw4<br />
sw4[eth1]=sw2-sw4<br />
sw4[eth2]=sw3-sw4<br />
sw4[eth3]=sw4-port4<br />
<br />
pc1[eth0]=sw1-port1:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw3-port1:ip=192.168.0.3/24<br />
pc4[eth0]=sw4-port4:ip=192.168.0.4/24<br />
</syntaxhighlight><br />
--><br />
<br />
<br />
Switches reais usualmente possuem suporte a [[IER-2011-1#Interliga.C3.A7.C3.A3o_de_LANs_e_Spanning_Tree_Protocol_.28STP.29|STP (''Spanning Tree Protocol'')]] para possibilitar haver enlaces redundantes em uma rede local. No Netkit podem-se criar redes em que se usa o STP, que deve ser ativado no switches. <br />
<br />
<br />
Para criar essa rede no Netkit pode-se usar a seguinte configuração:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
sw3[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on:bridge_priority=1024<br />
sw2[stp]=on:bridge_priority=128<br />
sw3[stp]=on:bridge_priority=500<br />
<br />
sw1[eth0]=sw1-sw2<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-sw3<br />
<br />
sw2[eth0]=sw1-sw2<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-sw3<br />
<br />
sw3[eth0]=sw1-sw3<br />
sw3[eth1]=sw3-port1<br />
sw3[eth2]=sw2-sw3<br />
<br />
pc1[eth0]=sw1-port1:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw3-port1:ip=192.168.0.3/24<br />
</syntaxhighlight><br />
<br />
A configuração do STP se faz pelo atributo especial ''stp'' a ser especificado para cada switch. A opção ''on'' ativa o STP, e ''bridge_priority'' define a prioridade do switch no escopo do STP. <br />
<br />
Como os switches podem ser configurados com múltiplas vlans, o STP deve ser ativado apropriadamente. Isso significa que cada vlan deve ter o STP rodando de forma independente. A configuração do Netkit para especificar o STP para cada vlan segue abaixo:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on:bridge_priority=1024:vlan=5<br />
sw1[stp]=on:bridge_priority=512:vlan=10<br />
</syntaxhighlight><br />
<br />
Nesse exemplo, o switch ''sw1'' tem o STP ativado na vlans 5 e 10. Os parâmetros do STP inclusive podem ser diferentes em cada vlan, já que ele opera em cada uma de forma independente (i.e. o STP em uma vlan não interfere com o STP em outra vlan). Vlans em que o stp não foi explicitamente ativado usarão a configuração default do stp, a qual é definida omitindo-se informação sobre vlan:<br />
<br />
<syntaxhighlight lang=text><br />
# Configuração default do STP em um switch ... vale para todas as vlans em que <br />
# o stp não foi configurado individualmente.<br />
sw1[stp]=on<br />
<br />
# A configuração default pode conter quaisquer opções do stp, menos vlan:<br />
sw2[stp]=on:bridge_priority=2000<br />
</syntaxhighlight><br />
<br />
Um último detalhe sobre o STP diz respeito ao custo e prioridade de cada porta do switch. No STP usado em switches reais, o custo de uma porta é dado pela sua velocidade. Assim, portas mais velozes têm custo menor que portas mais lentas, como por exemplo portas 1 Gbps comparadas a 100 Mbps. No Netkit não existe essa diferenciação entre as interfaces ethernet por serem emuladas, mas pode-se especificar manualmente o custo de cada interface a ser usado pelo STP. A configuração necessária deve ser colocada em cada porta da seguinte forma:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on:bridge_priority=1024<br />
<br />
sw1[eth0]=port0:stp_cost=10<br />
sw1[eth1]=port1:stp_cost=100<br />
</syntaxhighlight><br />
<br />
Assim, nesse exemplo a interface eth0 do switch ''sw1'' tem custo STP 10, e a interface eth1 tem custo 100. Os custos de interfaces de acordo com a norma IEEE 802.1d pode ser visto na seguinte tabela:<br />
<br />
[[imagem:Stp-custos.png]]<br />
<br />
<br />
A lista completa de opções que podem ser usadas na configuração do STP no Netkit segue abaixo:<br />
<br />
<syntaxhighlight lang=text><br />
# STP no switch:<br />
# bridge_priority: prioridade do switch no STP<br />
# hello_time: intervalo entre envios de BPDU<br />
# max_age: tempo máximo que o STP pode ficar sem receber uma atualização de BPDU de outro switch<br />
# forward_delay: atraso para enviar uma BPDU notificando uma mudança de configuração do STP<br />
# on: ativa o STP<br />
# off: inicia com STP desativado<br />
<br />
sw1[stp]=on:vlan=10:bridge_priority=100:hello_time=2:max_age=10:forward_delay=1<br />
<br />
# Porta do switch: pode ter as opções stp_cost (custo da porta) e stp_prio (prioridade da porta)<br />
sw1[eth0]=port0:stp_cost=10:stp_prio=1<br />
<br />
</syntaxhighlight><br />
<br />
<!--<br />
* Faça o exercício proposto pelo professor envolvendo agora, VLANs e o STP na mesma rede.<br />
<br />
'''Exercício Desafio:''' Acrescentando enlaces redundantes na rede da escola. <br><br />
<br />
# Voltando à segmentação da rede do campus São José, Acrescente alguns enlaces para conferir um grau de tolerância a falhas.<br />
# Dada a dimensão da rede, isso será realizado usando o [[Netkit]]. Sendo assim, implante a rede acima e ative o STP para tratar os caminhos fechados. Em seguida, experimente modificar alguns links para verificar se a rede continua funcionando.<br />
<br />
{{collapse top|Modelo da rede do IFSC-SJ para o Netkit}}<br />
<syntaxhighlight lang=text><br />
# switches<br />
sw-rnp[type]=switch<br />
sw-redes1[type]=switch<br />
sw-redes2[type]=switch<br />
sw-coinf[type]=switch<br />
sw-labdes[type]=switch<br />
<br />
# gateways<br />
asa5510[type]=gateway<br />
gw-redes1[type]=gateway<br />
gw-redes2[type]=gateway<br />
<br />
# computadores e servidores<br />
bd[type]=generic<br />
dmz1[type]=generic<br />
dmz2[type]=generic<br />
adm1[type]=generic<br />
adm2[type]=generic<br />
adm3[type]=generic<br />
pedag1[type]=generic<br />
pedag2[type]=generic<br />
pc-redes1[type]=generic<br />
pc-redes2[type]=generic<br />
<br />
# Portas dos switches<br />
sw-rnp[eth0]=rnp-port0<br />
sw-rnp[eth1]=rnp-port1<br />
sw-rnp[eth2]=rnp-port2<br />
sw-rnp[eth3]=rnp-port3<br />
sw-rnp[eth4]=rnp-port4<br />
sw-rnp[eth5]=rnp-port5<br />
<br />
sw-redes1[eth0]=redes1-port0<br />
sw-redes1[eth1]=redes1-port1<br />
<br />
sw-redes2[eth0]=redes2-port0<br />
sw-redes2[eth1]=redes2-port1<br />
<br />
sw-coinf[eth0]=coinf-port0<br />
sw-coinf[eth1]=coinf-port1<br />
sw-coinf[eth2]=coinf-port2<br />
# Ligações entre switches<br />
sw-coinf[eth3]=rnp-port5<br />
sw-coinf[eth4]=labdes-port3<br />
<br />
sw-labdes[eth0]=labdes-port0<br />
sw-labdes[eth1]=labdes-port1<br />
sw-labdes[eth2]=labdes-port2<br />
sw-labdes[eth3]=labdes-port3<br />
<br />
# Ligações dos computadores aos switches<br />
asa5510[eth0]=rnp-port0:ip=172.18.0.254/16<br />
bd[eth0]=rnp-port1:ip=172.18.0.10/16<br />
dmz1[eth0]=rnp-port2:ip=172.18.0.11/16<br />
adm1[eth0]=rnp-port3:ip=dhcp<br />
gw-redes1[eth1]=rnp-port4:ip=172.18.0.100/16<br />
<br />
pc-redes1[eth0]=redes1-port1:ip=192.168.1.2/24<br />
gw-redes1[eth0]=redes1-port0:ip=192.168.1.1/24<br />
<br />
pc-redes2[eth0]=redes2-port1:ip=192.168.2.2/24<br />
gw-redes2[eth0]=redes2-port0:ip=192.168.2.1/24<br />
<br />
dmz2[eth0]=coinf-port0:ip=172.18.0.13/16<br />
adm2[eth0]=coinf-port1:ip=dhcp<br />
pedag1[eth0]=coinf-port2:ip=dhcp<br />
<br />
adm3[eth0]=labdes-port0:ip=dhcp<br />
pedag2[eth0]=labdes-port1:ip=dhcp<br />
gw-redes2[eth1]=labdes-port2:ip=172.18.0.101/16<br />
<br />
# ASA 5510 é servidor dhcp da LAN ...<br />
asa5510[dhcp]=eth0:range=172.18.100.1,172.18.100.250:gateway=172.18.0.254<br />
<br />
# Gateways default dos computadores que usam IP fixo<br />
gw-redes1[default_gateway]=172.18.0.254<br />
gw-redes2[default_gateway]=172.18.0.254<br />
pc-redes1[default_gateway]=192.168.1.1<br />
pc-redes2[default_gateway]=192.168.2.1<br />
bd[default_gateway]=172.18.0.254<br />
dmz1[default_gateway]=172.18.0.254<br />
dmz2[default_gateway]=172.18.0.254<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}}<br />
<br />
--><br />
<br />
== Agregamento de enlaces ou Port Aggregation e Exercícios ==<br />
<br />
==Padrão IEEE802.1ax (anterior IEEE802.1ad) Agregamento de enlaces ==<br />
<br />
'''Agregação de enlace (bonding ou port trunking)'''<br />
<br />
O Linux possui suporte a agregação de enlaces, em que se agrupam interfaces ethernet (vinculação de portas) de forma a parecerem uma única interface (chamado de [http://www.linuxhorizon.ro/bonding.html Linux Channel Bonding]). A interface agregada tem prefixo ''bond'', e assim deve ser identificada como ''bond0'', ''bond1'' e assim por diante. Para criar um enlace agregado no Netkit basta declarar em um switch uma interface desse tipo. A sintaxe da declaração é praticamente idêntica a de interfaces ethernet, como se pode ver abaixo:<br />
<br />
<syntaxhighlight lang=text><br />
pc1[type]=generic<br />
pc2[type]=generic<br />
sw1[type]=switch<br />
sw2[type]=switch<br />
<br />
pc1[eth0]=sw1-port0:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port0:ip=192.168.0.2/24<br />
<br />
sw1[eth0]=sw1-port0<br />
sw2[eth0]=sw2-port0<br />
<br />
# Define em cada switch uma interface bond0 que agrega dois enlaces.<br />
# O enlace agregado deve ser composto por uma ou mais interfaces ethernet.<br />
# O nome do enlace agregado é sw1-sw2 no exemplo.<br />
<br />
sw1[bond0]=sw1-sw2:interfaces=eth1,eth2<br />
sw2[bond0]=sw1-sw2:interfaces=eth1,eth2<br />
</syntaxhighlight><br />
<br />
Nesse exemplo o enlace agregado foi criado entre os switches ''sw1'' e ''sw2''. Como se pode notar, existe uma opção de configuração adicional ''interfaces'', usada para listar as interfaces ethernet a serem agrupadas. Essas interfaces não devem ser declaradas explicitamente. Além disso, não se podem configurar VLANs na interface agregada (''bond0'' no exemplo). Por fim, mais de um enlace agregado pode ser criado no mesmo switch, bastando identificá-los por interfaces ''bond'' diferentes (''bond1'', ''bond2'', ...).<br />
<br />
O exemplo acima cria a seguinte rede:<br />
<br />
[[imagem:Bond.png]]<br />
<br />
===Port Trunking com Switches CISCO===<br />
<br />
Consulte o link [[http://www.dltec.com.br/blog/cisco/aumentando-a-banda-no-backbone-etherchannel-para-ccnas-rs/ sobre Etherchannel ou PAgP]]<br><br />
<br />
Use: <br><br />
- (config)#interface range g0/21-24 <br><br />
- (config-if-range)#channel-group 1 mode on<br />
<br />
Use "show etherchannel 1 summary" para visualizar as portas vinculadas ao canal de portas 1 .É importante destacar que a parte de trunk 802.1Q e permissão de VLANs já está OK.<br />
<br />
Consulte o link [[http://www.dltec.com.br/blog/cisco/aumentando-a-banda-no-backbone-etherchannel-para-ccnas-rs/ sobre Protocolo LACP]] <br><br />
<br />
Neste caso está se utilizando o padrão [[http://en.wikipedia.org/wiki/Link_aggregation | IEEE802.1ad (ou IEEE802.1ax - mais recente)]]. A diferença fica por conta do uso do modo "active" no lugar de "on".<br />
<br />
===Cascateamento versus Empilhamento===<br />
<br />
Os switches ainda possuem uma facilidade em nível físico chamada empilhamento (ou stack) que tem a função de ampliar as capacidades de portas sem comprometer significativamente a latência de pacotes em trânsito (fase forwarding). O mais eficiente, porém com mais custo, é o empilhamento por backplane onde um cabo proprietário de comprimento não maior que 1 metro, é conectado entre portas de entrada e saída específicas para este fim, geralmente na trazeira do switch, formando um anel dos swicthes empilhados. Os switches empilhados se comportam como um só e a gerência deles é muito mais facilitada com um único endereço IP. Já o cascateamento usando portas comuns ou portas específicas de altas taxas (fibra) chamadas UPLINK, mesmo usando o agregamento de link exposto na seção anterior, resolve a questão do congestionamento de toda a transferência de dados oriundas/destinadas aos ramos descendentes destas portas mas torna-se difícil a gerência de cada switch e a latência além de reduzir o desempenho da rede pode impedir até o funcionamento de algorítimos como o STP. <br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |07/03 - Redes sem fio e o Padrão IEEE 802.11}}<br />
<br />
== 07/03 - Redes sem fio e o Padrão IEEE 802.11 ==<br />
<br />
<br />
*[http://tele.sj.ifsc.edu.br/~casagrande/RED/lista4_2014_2.pdf LISTA4] de exercícios para a avaliação A4<br />
*[http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/wlan.pdf Conceitos básicos da arquitetura IEEE802.11]<br />
*[http://pt.wikipedia.org/wiki/Wi-Fi wifi na wikipedia.]<br />
*[http://forum.baboo.com.br/index.php?/topic/269602-redes-wireless/ um tutorial fácil de entender...]<br />
*[http://www.infowester.com/wifi.php um tutorial mais recente...]<br />
<br />
* Ver capítulo 15 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.<br />
* Ver capítulo 6 do livro ''Redes de Computadores e a Internet, 3a ed.'', de James Kurose.<br />
* Ver capítulo 4 (seção 4.4) do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum.<br />
<br />
=== Introdução ===<br />
<br />
Redes sem-fio se tornaram uma tecnologia largamente difundida e de uso corriqueiro, principalmente em sua versão para redes locais. Graças a ela, as pessoas não precisam usar cabos para ter acesso à rede, e podem se comunicar em qualquer localização dentro do alcance da rede sem-fio. Mesmo usuários em movimento podem se manter em comunicação pela rede sem-fio. Essas características atraentes da tecnologia fazem com que ela seja naturalmente desejável nas LANs<br />
<br />
A implantação de uma rede sem-fio deve atender alguns requisitos levantados pelo administrador de uma rede, os quais serão discutidos ao longo desta seção. Antes de pensar nos detalhes a serem observados, devem-se conhecer as características de comunicação de dados por um canal sem-fio e os mecanismos inventados para efetuar esse tipo de comunicação.<br />
<br />
=== Alguns usos de redes sem-fio ===<br />
<br />
[[imagem:WLAN-comum.gif]]<br><br />
''Redes locais sem-fio''<br />
<br />
<br />
[[imagem:Wireless_point_to_point.jpg]]<br><br />
''Enlaces ponto-a-ponto de média/longa distância''<br />
<br />
<br />
[[imagem:Wlan-train.png]]<br><br />
''Prover conectividade em ferrovias''<br />
<br />
<br />
[[imagem:Body-network.jpg]]<br><br />
''Redes de dispositivos acoplados ao corpo de uma pessoa''<br />
<br />
<br />
[[imagem:SensorWebImageForEnewsJuly2.jpg]]<br><br />
''Redes de sensores''<br />
<br />
<br />
[[imagem:v2v.jpg]]<br><br />
''Redes entre veículos (experimental)''<br />
<br />
===O Padrão IEEE 802.11===<br />
<br />
Dentre as várias tecnologias de comunicação sem-fio existentes, o padrão IEEE 802.11 para redes locais tem ampla utilização. Conhecido popularmente como Wi-Fi (um trocadilho com Hi-Fi, uma qualidade atribuída a aparelhos de som e que significa ''High-Fidelity''), está presente praticamente em todos os lugares hoje em dia - desde escolas, empresas, aeroportos, supermercados, restaurantes, cafés e residências, e até mesmo em espaços abertos de cidades (ver ''Cidades Digitais''). Muitos dos problemas existentes nesse tipo de rede (alguns resolvidos e outros não), e características de funcionamento, são comuns a outras tecnologias menos conhecidas, porém também importantes em suas áreas de aplicação. Por isso nosso estudo se concentrará nesse padrão de redes sem-fio, para conhecê-lo com razoável profundidade. Como consequência, além de entender como funciona uma rede IEEE 802.11, os conhecimentos obtidos habilitarão a compreensão de outras tecnologias de redes sem-fio.<br />
<br />
* Apresentaram-se as possíveis formas de organização de uma rede IEEE 802.11:<br />
** '''Rede infraestruturada:''' uso de uma estação central, que intermedia as transmissões das demais estações.<br><br>[[imagem:Infrastructure-bss.png]]<br><br />
** '''Rede Ad-Hoc:''' estações se comunicam livremente com suas estações vizinhas.<br><br>[[imagem:Adhoc-bss.png]]<br><br />
** '''Rede Mesh:''' estações se comunicam livremente, mesmo que existam múltiplos saltos (''multihop'').<br><br>[[imagem:Mesh_topology.gif]]<br><br />
<br />
=== Os problemas dos nós ocultos e nós escondidos ===<br />
<br />
==== Simulações (animações) sobre CSMA/CA ====<br />
<br />
* [http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/csma-ca/withouthidden.html CSMA/CA sem nodos escondidos (Kurose)]<br />
* [http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/csma-ca/withhidden.html CSMA/CA com nodos escondidos (Kurose)]<br />
:Outras simulações (animações) sobre CSMA/CA:<br />
* [http://tintillier.org/wifi/index.html Algumas animações sobre CSMA/CA (University of Teeside - UK)]<br />
<br />
=== O Protocolo CSMA/CA ===<br />
<br />
Pode-se descrever em alto-nível o algoritmo do CSMA/CA (simplificando alguns detalhes) com o fluxograma abaixo:<br />
<br />
<br />
[[imagem:Fluxograma-csma-ca.png]]<br><br />
''Fluxograma para MAC CSMA/CA em modo contenção (função DCF). Esse fluxograma não mostra as esperas de intervalos entre quadros (IFS). Cw significa Janela de Contenção (Contention Window), e Cwmin é seu valor mínimo definido na norma (15 no caso do IEEE 802.11g, e 31 para IEEE 802.11b).''<br />
<br />
<br />
Um último detalhe sobre o CSMA/CA trata dos intervalos entre quadros (IFS - ''Inter Frame Space''), que são tempos mínimos que um nodo deve esperar antes de transmitir um quadro, após o meio se tornar ocioso. Sua finalidade é priorizar o acesso ao meio para certos tipos de quadros, que têm urgência para serem enviados. Esse é o caso de quadros de confirmação (ACK) e CTS (''Clear To Send''). Um IFS menor corresponde a uma maior prioridade de transmissão de quadro. A figura abaixo ilustra os tipos de IFS:<br />
<br />
[[imagem:Ifs-csma-ca.gif]]<br><br />
''Intervalos entre quadros''<br />
<br />
* ''SIFS (Short Interframe Space):'' intervalo mais curto, usado antes do envio de quadros ACK e CTS.<br />
* ''PIFS (PCF Interframe Space):'' intervalo intermediário, usado quando em modo PCF (Point Coordination Function). O modo PCF implementa um tipo de acesso ao meio mestre-escravo. Raramente encontrado em equipamentos.<br />
* ''DIFS (Distributed Interframe Space):'' intervalo usual, aplicado no início de transmissões em geral (quadros de dados, associação, autenticação, RTS).<br />
<br />
'''Uso de RTS/CTS para tratar nodos escondidos'''<br />
<br />
[[image:Rts-cts.gif]]<br><br />
<br />
<!--<br />
'''Detecção de portadora virtual e NAV'''<br />
<br />
[[imagem:Fluxograma-nav.gif]]<br><br />
<br />
--><br />
<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 09/03 - Redes Wifi }}<br />
<br />
== 09/03 - Redes Wifi ==<br />
<br />
* ;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 14/03 -Avaliação A4 }}<br />
<br />
== 14/03 - ==<br />
<br />
* ;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 16/03 - REC A2 a A4 }}<br />
<br />
== 16/03 - REC A2 a A4 ==<br />
<br />
* ;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{ENGTELECO}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=RED2-EngTel_(p%C3%A1gina)&diff=102705RED2-EngTel (página)2016-03-16T00:28:30Z<p>Lucas.lv: /* 29/02 - LANs Virtuais e Orientações para a Avaliação A5 */</p>
<hr />
<div>'''Professores da Unidade Curricular'''<br />
<br />
{{Professor|2015-2|[[Jorge Henrique B. Casagrande]] }}<br />
{{Professor|2015-1|[[Jorge Henrique B. Casagrande]] [[RED29005 2015-1|(Diario de aulas)]]}}<br />
{{Professor|2014-2|[[Jorge Henrique B. Casagrande]] [[RED29005 2014-2|(Diario de aulas)]]}}<br />
{{Professor|2014-1|[[Jorge Henrique B. Casagrande]] [[RED29005 2014-1|(Diario de aulas)]]}}<br />
<br />
<br />
= [[RED2-EngTel|Carga horária, Ementas, Bibliografia]]=<br />
<br />
<br />
=[[RED2-EngTel (Plano de Ensino) | Plano de Ensino]]=<br />
<br />
=Dados Importantes=<br />
''Professor'': [[Jorge Henrique B. Casagrande]]<br />
<br>''Email'': casagrande@ifsc.edu.br<br />
<br>''Atendimento paralelo'': 2as e 6as das 17:35 às 18:35h (Sala dos professores de TELE - ao lado da reprografia)<br />
<br> ''Endereço do grupo'': https://www.facebook.com/groups/667983626639907/<br />
<br> ''Link alternativo para Material de Apoio da disciplina'': http://www.sj.ifsc.edu.br/~casagrande/RED<br />
<br> Muitos conteúdos da disciplina estão sendo extraídos do material do professor '''Marcelo Sobral''' o qual já registro aqui meus agradecimentos pela autorização e apoio. Alguns deles foram inseridos ou adaptados para se ajustar ao planejamento ou perfil da turma.<br />
<br><br> Toda vez que voce encontrar a marcação <math>\blacklozenge</math> ao lado de alguma atividade, significa que essa atividade estará sendo computada na avaliação como AE ou AI. O prazo estabelecido para entrega estará destacado ao lado da atividade. Portanto, não perca o prazo limite para entrega. '''Atividades entregues fora do prazo não serão aceitas!'''<br />
<br />
=Avaliações=<br />
<br />
=Resultados das Avaliações=<br />
<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Matrícula<br />
!Aluno<br />
!AE1<br />
!AE2<br />
!AI<br />
!A1<br />
!A2<br />
!A3<br />
!A4<br />
!A5<br />
!REC A1<br />
!REC A2<br />
!REC A3<br />
!REC A4<br />
!REC A5<br />
!MÉDIA<br />
!CONCEITO<br />
|-<br />
|122001993-3||Anderson || || ||np ||20 ||38 ||56 || || ||38 || || || || || ||<br />
|-<br />
|122001504-0||Carlos || || ||np ||65 ||54 ||67 || || || -|| || || || || ||<br />
|-<br />
|132002623-0||Gabriel Cantu || || ||np ||30 ||55 ||82 || || ||93 || || || || || ||<br />
|-<br />
|122002394-9||Gabriel de Souza || || ||np ||64 ||73 ||82 || || ||- || || || || || ||<br />
|-<br />
|121003282-1||Gustavo Constante || || ||np ||63 ||50 ||70 || || ||- || || || || || ||<br />
|-<br />
|131001065-0||Gustavo Zacchi || || ||np || -||- ||- || || ||- || || || || || ||<br />
|-<br />
|132002999-0||Helenluciany|| || ||np ||45 ||61 ||70 || || ||92 || || || || || ||<br />
|-<br />
|131004419-8||Iago || || ||np ||23 ||24 ||67 || || ||33 || || || || || ||<br />
|-<br />
|131005150-0||Jessica || || ||np ||10 || -|| -|| || || -|| || || || || ||<br />
|-<br />
|121000492-5||Katharine || || ||np ||73 || 72||85 || || || -|| || || || || ||<br />
|-<br />
|121000484-4||Kristhine || || ||np ||73 ||55 ||75 || || || || || || || || ||<br />
|-<br />
|132004514-6||Letícia || || ||np ||41 ||63 ||- || || || 46|| || || || || ||<br />
|-<br />
|132002264-2||Lucas || || ||np ||70 ||81 ||93 || || ||79 || || || || || ||<br />
|-<br />
|131005334-0||Marcos || || ||np ||58 ||35 ||71 || || ||- || || || || || ||<br />
|-<br />
|132004278-3||Maria Luiza|| || ||np ||60 ||56 ||62|| || ||- || || || || || ||<br />
|-<br />
| ||André Weber || || ||np ||28 ||37 ||80|| || ||46 || || || || || ||<br />
|-<br />
| ||Fabiano|| || ||np ||30 ||70 ||61|| || ||- || || || || || ||<br />
|-<br />
| ||Gabriel Gonçalves || || ||np ||32 ||42 ||54 || || ||29 || || || || || ||<br />
|-<br />
| ||Maciel || || ||np ||19 ||37 ||46|| || ||33 || || || || || ||<br />
|-<br />
| ||Ramon|| || ||np ||20 ||35 ||-|| || ||22 || || || || || ||<br />
|-<br />
| ||Vinícius|| || ||np ||30 ||40 ||-|| || ||47 || || || || || ||<br />
|}<br />
<br />
<br />
<br />
'''LEGENDA E DETALHES'''<br />
<br />
;'''AE''' = Atividades Extras: 10% da Avaliação - abrange uma ou mais tarefas a serem divulgadas ao longo do semestre;<br />
;'''AI''' = Avaliação Individual: 10% da Avaliação final - abrange desempenho, assiduidade, cumprimento de tarefas em sala ou de listas de exercícios;<br />
;'''An''' = Avaliação ''n'': 20% da Avaliação (n=5) - Programadas para cada parte do programa;<br />
;'''REC An''' = Recuperação da Avaliação An: A recuperação de todas An serão em data única e o aluno só tem a obrigação de recuperar An<60;<br />
;'''np''' = não publicado aqui.<br />
;'''NF''' = Nota Final com critério de arredondamento de +/-5 pontos considerando a fórmula abaixo: '''NF''' = 0,16(soma{MaiorNota{An,REC An}}) + 0,1(médiaAE) + 0,1(AI)<br />
<br />
Se '''NF''' < 60 = '''D''' --> '''Reprovado''' <br><br />
Se 60 =< '''NF''' < 75 = '''C''' --> '''Aprovado''' <br><br />
Se 75 =< '''NF''' < 90 = '''B''' --> '''Aprovado'''<br><br />
Se '''NF''' >= 90 = '''A''' --> '''Aprovado'''<br><br />
<br />
=Recados Importantes=<br />
<br />
<br> '''Uso da Wiki:''' Todo o repositório de material de apoio e referências de nossas aulas passam a usar a Wiki de tele. Para interação fora da sala de aula, acessem nosso [https://www.facebook.com/groups/667983626639907/ grupo] do facebook. <br />
<br />
<br> '''ATENÇÃO:''' Uma avaliação só pode ser recuperada somente se existir justificativa reconhecida pela coordenação. Desse modo, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.<br />
<br />
=Material de Apoio=<br />
<br />
;Atividades extra sala de aula<br />
<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista1_2014_2.pdf LISTA1] de exercícios para a avaliação A1<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista2_2015_2.pdf LISTA2] de exercícios para a avaliação A2<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista3_2015_2.pdf LISTA3] de exercícios para a avaliação A3<br />
:*[http://tele.sj.ifsc.edu.br/~casagrande/RED/lista4_2015_2.pdf LISTA4] de exercícios para a avaliação A4<br />
<br />
;Slides utilizados durante algumas aulas<br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/redes_circuitos_virtuais_FR.pdf Redes Frame Relay] <br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/protocolos_pp.pdf Protocolos Ponto à Ponto] <br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/InterfacesDigitais.pdf Interfaces Digitais] <br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/modens.pdf Modens e enlaces de teste] <br />
<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/lan.pdf REDES LOCAIS]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/vlan.pdf IEEE802.3q VLAN]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/stp.pdf IEEE802.3d]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/ieee.pdf Arquitetura IEEE802.3]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/wlan.pdf Conceitos básicos da arquitetura IEEE802.11]<br />
<br />
<br />
;Manuais e outros<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/manuais/Guia_DT2048_SHDSL_T_E_S_VG_210.5088.00-1.pdf Guia Rápido de Configuração Modem DT2048SHDSL;]<br />
* [http://tele.sj.ifsc.edu.br/~casagrande/RED/apoio/Manual_NR-2G_3200_e_4200.pdf manual Router NR2G] da Digitel;<br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/Globalink3420guia.pdf guia rápido de configuração Globalink UP3420;] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/Globalink3420.pdf Manual de configuração Gloalink3420;] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/DT34.pdf Manual de configuração DT34.] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/DAS-3324.pdf Manual DSLAM DLINK DAS3324.] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/DAS-3324guia.pdf Guia rápido DSLAM DLINK DAS3324.]<br />
* [http://www.cisco.com/warp/cpropub/45/tutorial.htm Tutorial sobre a interface CLI de roteadores Cisco]<br />
* [http://www.cisco.com/en/US/tech/tk713/tk507/technologies_tech_note09186a008019cfa7.shtml#ppp01 Resolução de problemas com PPP em roteadores Cisco]<br />
* [http://www.cisco.com/en/US/products/hw/routers/ps221/products_password_recovery09186a0080094773.shtml Recuperação de senha em roteadores Cisco 1700 e 1800]<br />
<br />
<br />
== Bibliografia ==<br />
<br />
* ''Redes de Computadores e a Internet, 5a edição'', de James Kurose.<br />
* ''Redes de Computadores, 4a edição'', de Andrew Tanenbaum.<br />
* ''Comunicação de Dados e Redes de Computadores, 4a edição'', de Behrouz Forouzan.<br />
<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs.html Links para outros materiais, normas, artigos, e apostilas do prof. Jorge Casagrande]<br />
* [http://books.google.com/books?id=C9ZN-jYKHpMC&printsec=frontcover&dq=forouzan&hl=pt-BR&ei=fvt2TP3eCMH58Aa77cS1Bw&sa=X&oi=book_result&ct=result&resnum=3&ved=0CDMQ6AEwAg#v=onepage&q&f=false Comunicação de dados e Redes de Computadores, de Berhouz Forouzan (alguns capítulos no Google Books)]<br />
<br />
Para pesquisar o acervo das bibliotecas do IFSC:<br />
* [http://biblioteca.ifsc.edu.br/sophia/ Acesso ao acervo da Biblioteca do IFSC]<br />
<br />
== Softwares ==<br />
<br />
* [[Netkit]]: possibilita criar experimentos com redes compostas por máquinas virtuais Linux<br />
* [http://tele.sj.ifsc.edu.br/~msobral/IER/ipkit/ IPKit]: um simulador de encaminhamento IP (roda direto dentro do navegador)<br />
<br />
=Diário de aulas RED29005 - 2015-2 - Prof. Jorge H. B. Casagrande=<br />
<br />
{{Collapse top |29/07 - Redes de Acesso}}<br />
<br />
==29/07 - Redes de Acesso ==<br />
<br />
* Apresentação da disciplina e plano de ensino;<br />
* Visão geral de uma WAN e uma rede de acesso; <br />
* Componentes de uma infra-estrutura de telecomunicações;<br />
* '''Tarefa pra casa''': Fazer uma leitura das '''seções 1.1 à 1.3 (inclusive)''' do livro do Kurose, 5a edição e além das explicações básicas sobre as redes de acesso colocadas em sala faça um quadro resumo que compare as principais tecnologias de '''redes de acesso''' (Dial-up, xDSL, HFC, FTTH e Wireless) em termos de: Alcance, custo, disponibilidade e banda passante (Mbps) sempre no ponto de vista do PROVEDOR DE SERVIÇOS (ISP). Para completar algumas informações de seu resumo use as outras bibliografias indicadas de nossa disciplina, a revista RTI (www.rtionline.com.br - edição julho/15) ou mesmo a googlelândia... ;)<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |05/10 - Redes Privadas }}<br />
<br />
==05/10 - Redes Privadas ==<br />
<br />
* Discussão sobre as redes de acesso tabuladas da aula anterior<br />
* A rede de acesso ADSL a partir rede externa de telefonia pública;<br />
* A Linha Privativa de Comunicação de Dados (LPCD);<br />
* A banda passante e os meios metálicos de transmissão;<br />
* O modelo básico de comunicação de dados;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |07/10 - Redes Privadas e Redes de Longa Distância - WAN }}<br />
<br />
==07/10 - Redes Privadas e Redes de Longa Distância - WAN==<br />
<br />
* Recuperação de conteúdos por conta de alunos que se integraram na turma.<br />
* O Serviço de Linha Dedicada Digital (SLDD) como base na formação de Redes Privativas;<br />
* Experimento: Comunicação entre Computadores via porta serial;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |14/10 - Redes Privadas e Redes de Longa Distância - WAN }}<br />
<br />
* Evolução das Redes Locais baseadas em hospedeiros para as Redes Privativas de longa distância;<br />
* Da Unidade de Derivação Digital (UDD) para os ServerSwitches ou switches KVM;<br />
* A Multiplexação como solução no compartilhamento e otimização do uso de enlaces de transmissão.<br />
* Início dos trabalhos para a construção de 3 nós de uma rede Frame Relay<br />
<br />
'''ATENÇÃO: Leitura dos itens 6.1, 8.3 e 18.1 do Forouzan'''<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |19/10 - Redes Virtuais - Frame Relay }}<br />
<br />
==19/10 - Redes Virtuais - Frame Relay ==<br />
<br />
* Construção da rede Frame Relay no laboratório.<br />
<br />
<br />
Para esta atividade já está implementada uma rede composta por três roteadores da Digitel, que estarão interligados como mostrado abaixo:<br />
<br />
[[imagem:Rede-modems.png|600px]]<br />
<br />
A rede contém dois enlaces dedicados ponto-à-ponto (simulando duas SLDDs formadas por LPCDs à 2 fios) com modems digitais operando a 2 Mbps. Os Modens da DIGITEL modelo DT2048SHDSL estão configurados da seguinte forma: (chaves em ON) <br />
* Modens do rack central: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5 - Modo NTU (terminação de rede), relógio interno, 2048Kbps, e interface V.35 padrão ISO2110;<br />
* Modens do rack direito e esquerdo: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5 - Modo LTU (terminação de linha), relógio regenerado, 2048Kbps, e interface V.35 padrão ISO2110;<br />
<br />
Todos os roteadores estão configurados com protocolo FRAME RELAY em suas interfaces serias WAN e rodando o algoritmo de roteamento RIP em sua forma mais básica para evitar a configuração de rotas estáticas na interligação das LANs do switches direito e esquerdo.<br />
<br />
;Iniciando o experimento<br />
<br />
# Acesse a interface de gerência (console) do roteador R1 ou R2. O roteador R1 está no rack direito (no ponto de vista da sala), o roteador R3 está no rack central, e R2 está no rack esquerdo. Para acessar a console, faça o seguinte:<br />
## Conecte o cabo serial específico na interface serial RS232 do seu computador. Conecte esse cabo também na interface ''console'' do roteador, que fica no painel traseiro. Como os roteadores estão distantes das bancadas, será necessário usar as tomadas azuis, que conectam as bancadas aos racks.<br />
## Execute o programa ''minicom'', que abre um terminal de texto via porta serial. Ele deve ser configurado para se comunicar pela porta serial ''/dev/ttyS0'', com 57600 bps, 8 bits de dados e 1 stop-bit (isso aparece descrito assim: 57600 8N1) e sem controles de fluxo. <syntaxhighlight lang=bash><br />
sudo minicom -s<br />
</syntaxhighlight><br />
## Se o ''minicom'' estiver correto, você deverá ver a interface CLI do roteador (''Command Line Interface''). Caso contrário, confira se o cabo serial está bem encaixado, e se os parâmetros do ''minicom'' estão certos.<br />
# O login e senha para acessar a configuração dos routers é "nr2g" e "digitel" respectivamente. Ao entrar na CLI avalie a configuração geral dos routers com o comando DUMP ALL;<br />
# Estando os links ativos nas WANs, voce pode acessar qualquer router usando a facilidade do protocolo TELNET. Para tanto, dentro da CLI do router aplique o comando EXEC TELNET [IP da WAN ou LAN]. Voce também podem acessa-los por qualquer computador das redes direita ou esquerda, desde que esses estejam na mesma subrede das interfaces LAN dos routers. Uma vez estando na CLI de um dos routers, voce pode acessar os demais com EXEC TELNET;<br />
# Observe se a configuração dos routers está como o previsto na janela abaixo. Talvez voce precise ajustar a configuração em algum roteador.<br />
# Faça a configuração Básica dos PCs e Roteadores NR2G com protocolo FRAME RELAY. Esta configuração já permite que a rede se conecte a internet através da porta LAN0 do router CENTRAL, desde que as configurações de rotas nos PCs de cada subrede e do professor sejam aplicadas conforme na sequência.<br />
#* '''R1:''' <syntaxhighlight lang=text><br />
DIREITA > <br />
SET LAN LAN0 IP 192.168.10.254 MASK 255.255.255.0 BROADCAST 192.168.10.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.20.254 MASK 255.255.255.0 BROADCAST 192.168.20.255 <br />
SET LAN LAN1 UP <br />
<br />
SET WAN WAN0 PROTO FRAMERELAY PROTOCOL ANSI DCE FALSE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN0 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN0-PVC0 DLCI 100 MTU 1500 IP 10.1.1.2 MASK 255.255.255.252 PEER 10.1.1.1<br />
SET WAN WAN0 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0-PVC0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE<br />
<br />
</syntaxhighlight><br />
#* '''R2:''' <syntaxhighlight lang=text><br />
ESQUERDA > <br />
SET LAN LAN0 IP 192.168.30.254 MASK 255.255.255.0 BROADCAST 192.168.30.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.40.254 MASK 255.255.255.0 BROADCAST 192.168.40.255 <br />
SET LAN LAN1 UP <br />
<br />
SET WAN WAN0 PROTO FRAMERELAY PROTOCOL ANSI DCE FALSE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN0 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN0-PVC0 DLCI 100 MTU 1500 IP 10.1.1.6 MASK 255.255.255.252 PEER 10.1.1.5<br />
SET WAN WAN0 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0-PVC0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.5 COST1 0 <br />
SET ROUTES UP<br />
CONFIG SAVE<br />
<br />
</syntaxhighlight><br />
#* '''R3:''' <syntaxhighlight lang=text><br />
CENTRAL > <br />
SET LAN LAN0 PURGE <br />
SET LAN LAN1 PURGE <br />
<br />
SET WAN WAN0 PROTO FRAMERELAY PROTOCOL ANSI DCE TRUE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN0 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN0-PVC0 DLCI 100 MTU 1500 IP 10.1.1.1 MASK 255.255.255.252 PEER 10.1.1.2<br />
SET WAN WAN0 UP<br />
<br />
SET WAN WAN1 PROTO FRAMERELAY PROTOCOL ANSI DCE TRUE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN1 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN1-PVC0 DLCI 100 MTU 1500 IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6<br />
SET WAN WAN1 UP<br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0-PVC0 AUTH TYPE NONE <br />
SET RIP WAN1-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN1-PVC0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET LAN LAN0 IP 192.168.1.231 MASK 255.255.255.0 BROADCAST 192.168.1.255 UP <br />
SET ROUTES DEFAULT GW1 192.168.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
# Para conferir as configurações das interfaces, use o comando ''show'' seguido da interface. Exemplo: <syntaxhighlight lang=text><br />
# SHOW WAN WAN0 ALL<br />
# Para as rotas construidas dinamicamente pelo protocolo RIP:<br />
# SHOW ROUTES ALL<br />
</syntaxhighlight><br />
# Assim que os enlaces forem estabelecidos, o que pode ser conferido com o comando ''show'' interface aplicado às interfaces, ''conclua'' a configuração da rede (rotas nos pcs e roteadores). Ela deve ser configurada de forma que um computador possa se comunicar com qualquer outro computador da outra rede, e também acessar a Internet. Para isso, use os comandos nos PCs como:<br />
#* sudo ifconfg eth0 x.x.x.x netmask m.m.m.m up - para atribuir outro endereço na placa de rede<br />
#* sudo route add default gw x.x.x.x - para atribuir um novo gateway para a placa de rede<br />
#* sudo route add -net x.x.x.x netmask m.m.m.m eth0 - para associar uma nova rede a interface eth0<br />
#* route -n - para ver a tabela atual de roteamento<br />
# Observe que optamos pelo uso de protocolos de roteamento dinâmico. Procure entender melhor como foi feita essa configuração, a partir do que está no manual, começando pela página 82.<br />
# Para o PC do professor aplique os comandos: <syntaxhighlight lang=bash><br />
$ sudo route add -net 192.168.x.0 netmask 255.255.255.0 eth0 - x={10,20,30,40}<br />
$ sudo route add -net 192.168.x.0 netmask 255.255.255.0 gw 192.168.1.231 - x={10,20,30,40}<br />
</syntaxhighlight><br />
# Para os PCs das subredes direita e esquerda: <syntaxhighlight lang=bash><br />
$ sudo ifconfig eth0 192.168.x.y netmask 255.255.255.0 up - x={10,20,30,40}; y={1,2,3,4}<br />
$ sudo route add default gw 192.168.x.254 - x={10,20,30,40} </syntaxhighlight><br />
# Agora vamos analisar a conectividade de todas as subredes, incluindo o acesso à internet. Após isso vamos fazer uma avaliação sobre o desempenho dessa conectividade comparando os links com PPP e HDLC entre os roteadores.<br />
# Veja se o status das interfaces e protocolos da WAN e LAN de todos os routers estão em UP. Anote e avalie a configuração de todos os routers e os PCs das duas LANs direita e esquerda. <br />
# Verificar e anotar todas as configurações e instalações dos componentes de redes, modens, cabos, adaptadores, manobras dos cabos, etc...<br />
# Verificar e anotar todas as configurações lógicas dos modens, routers e PCs.<br />
# Acessar as redes mutuamente qualquer computador de um subrede deve acessar qualquer outro da outra subrede;<br />
# Acessar a internet em todos os PCs;<br />
# Interprete as configurações dos routers e destaque como está configurada a rede <br />
<br />
<!--<br />
;Mesma rede operando agora com protocolo HDLC<br />
<br />
# Faça a configuração Básica dos PCs e Roteadores NR2G com protocolo HDLC. <br />
<br />
#* '''R1:''' <syntaxhighlight lang=text><br />
DIREITA > <br />
SET LAN LAN0 IP 192.168.10.254 MASK 255.255.255.0 BROADCAST 192.168.10.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.20.254 MASK 255.255.255.0 BROADCAST 192.168.20.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.2 MASK 255.255.255.252 PEER 10.1.1.1 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R2:''' <syntaxhighlight lang=text><br />
ESQUERDA > <br />
SET LAN LAN0 IP 192.168.30.254 MASK 255.255.255.0 BROADCAST 192.168.30.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.40.254 MASK 255.255.255.0 BROADCAST 192.168.40.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.6 MASK 255.255.255.252 PEER 10.1.1.5 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.5 COST1 0 <br />
SET ROUTES UP<br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R3:''' <syntaxhighlight lang=text><br />
CENTRAL > <br />
SET LAN LAN0 PURGE <br />
SET LAN LAN1 PURGE <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.1 MASK 255.255.255.252 PEER 10.1.1.2 UP<br />
SET WAN WAN1 PROTO HDLC IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6 UP<br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP WAN1 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN1 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET LAN LAN0 IP 192.168.1.231 MASK 255.255.255.0 BROADCAST 192.168.1.255 UP <br />
SET ROUTES DEFAULT GW1 192.168.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
--><br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |21/10 - Redes Frame Relay - Finalização }}<br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/redes_circuitos_virtuais_FR.pdf Redes Frame Relay] <br />
<br />
* Finalização das explicações da configuração da rede Frame Relay montada;<br />
* Evolução do backbone da RNP como ilustração das redes Frame Relay em infraestruturas de telecom.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |26/10 - Redes Privadas Virtuais - MPLS }}<br />
<br />
==26/10 - Redes Privadas Virtuais - MPLS ==<br />
<br />
* Redes virtuais com MPLS;<br />
* Experimentos com netkit: Rede MPLS<br />
'''ATENÇÂO: Leitura:'''<br />
** '''Capítulo 5 (seção 5.8)''' do livro ''Redes de Computadores e a Internet, 5a ed.'', de James Kurose.<br />
** '''Capítulo 5 (seção 5.4.5)''' do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum (ou seção 5.6.5 da 5ª ed.).<br />
<br />
<br />
* '''''Outras referências sobre MPLS:'''''<br />
<br />
** [http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS na Wikipedia]<br />
** [http://www.ietf.org/rfc/rfc3031.txt RFC 3031: MPLS Architecture]<br />
** [http://www.ietf.org/rfc/rfc3032.txt MPLS Label Stack Encoding]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/mpls-linux Documentação sobre os experimentos com MPLS (tirados do projeto MPLS-Linux)]<br />
<br />
[http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS] é um mecanismo para redes de telecomunicações de alto desempenho que encaminha e transporta dados de um nó da rede a outro. Isso se faz por meio de links virtuais entre nós distantes um do outro, semelhante ao conceito de ''circuitos virtuais''. Diversos protocolos podem ser transportados por MPLS, tais como IP e Ethernet (note que o primeiro é um protocolo de rede, mas o segundo é um ''"protocolo"'' de enlace). Assim, MPLS se apresenta como uma tecnologia de transporte de dados em redes de longa distância, como ilustrado na figura abaixo.<br />
<br />
[[imagem:Mpls-network.jpg]]<br />
<br />
Simplificadamente, um cabeçalho (''shim header'') é adicionado a cada PDU a ser transportada pela rede MPLS. O rótulo contém um número identificador chamado de rótulo (''label'', e similar ao ''VCI'' visto em circuitos virtuais), junto com alguns bits de controle. Os roteadores dentro da rede MPLS encaminham essas PDUs com base somente no conteúdo desse cabeçalho, comutando-os de acordo com os valores de rótulo (''label switching''). Note que MPLS não faz roteamento, e sim comutação de circuitos virtuais: os circuitos devem ser previamente estabelecidos para que o encaminhamento de PDUs entre origem e destino possa ser realizada. Desta forma, MPLS parece ser um protocolo que fica entre as camadas de rede e de enlace, como mostrado na figura a seguir.<br />
<br />
[[imagem:Mpls_protocolstack.jpg]] ----> [[imagem:MPLS_D2.gif]]<br />
<br />
<br />
O cabeçalho MPLS possui apenas 32 bits, como mostrado abaixo. O valor de rótulo ocupa 20 bits, o que possibilita pouco mais de 1 milhão de diferentes rótulos (<math>2^{20}</math>). Há um campo ''Time To Live'' (ou simplesmente ''TTL'') com 8 bits, com mesma finalidade que o campo homônimo existente em PDUS IPv4: evitar que um erro de configuração em um roteador faça com que PDUs fiquem circulando eternamente em um ''loop'' na rede. O valor desse campo ''TTL'' é decrementado por cada roteador que encaminhe a PDU e, se o valor chegar a 0, a PDU é descartada. O campo ''Exp'' com 3 bits foi pensado para codificar a classe de serviço da PDU, a qual pode ser usada por mecanismos de qualidade de serviço (''QoS'') existentes na rede. Por exemplo, o valor de ''Exp'' pode ser usado como prioridade da PDU em um determinado roteador dentro da rede MPLS. Por fim, o bit ''S'' (''bottom of stack'') informa se esse é o último cabeçalho MPLS na PDU, uma vez que podem-se empilhar dois ou mais desses cabeçalhos.<br />
<br />
<br />
[[imagem:Mpls-label.png]]<br />
<br />
<br />
A terminologia MPLS possui nomes próprios para diversos componentes da arquitetura. Como ocorre em outras tecnologias, existem conceitos conhecidos apresentados porém com nomes diferentes. A tabela abaixo descreve alguns termos importantes existentes no MPLS:<br />
<br />
<br />
{| border="1" cellpadding="2"<br />
!Termo<br />
!Descrição<br />
|-<br />
|''LSP'' || Label Switching Path, o análogo a circuito virtual.<br />
|-<br />
|''LSR'' || Label Switching Router, ou roteador capaz de comutar PDUs MPLS.<br />
|-<br />
|''LER'' || Label Edge Router, ou roteador que faz a interface entre a rede MPLS (onde se encaminham PDUs exclusivamente com base nos rótulos), e a rede externa (onde não se usa MPLS). A rede externa pode ser qualquer outra rede, como IPv4, IPv6 ou mesmo LAN Ethernet. Note que LER é um tipo especial de LSR, e podem ser denominados também como ''LSR ingress'' (''LSR'' de entrada na rede MPLS) e ''LSR egress'' (''LSR'' de saída da rede MPLS).<br />
|-<br />
|''LFIB'' || Label Forwarding Information Base, ou o conjunto de informações existentes nos LSR usadas para fazer o encaminhamento das PDUS MPLS. Pode ser entendida como uma estrutura análoga à tabela de comutação de circuitos virtuais.<br />
|-<br />
|}<br />
<br />
<br />
Usando os termos acima, podem-se descrever redes MPLS demonstrativas como mostrado a seguir. Na primeira rede há dois LSP: um vai do ''Host X'' ao ''Host Z'' e está identificado com PDUS em amarelo, e outro vai de ''Host X'' ao ''Host Y'' e tem PDUs em azul. O número dentro de cada PDU informa os valores de rótulo usados ao longo dos LSP. Assim como em circuitos virtuais em geral (e como em Frame Relay e ATM), os valores de rótulo podem ser modificados por cada roteador que os comute.<br />
<br />
[[imagem:Mplsrouters.gif]]<br />
<br />
=== Conceitos básicos sobre comutação de rótulos ===<br />
<br />
A comutação de rótulos feita nos LSR é muito parecida com comutação de circuitos virtuais. Ao receber uma PDU MPLS, um LSR decide o que fazer com ela com base no número do rótulo e na interface de rede de onde ela foi recebida. Porém há um detalhe específico do MPLS: uma ou mais interfaces podem ser associadas em um ''labelspace MPLS'', sendo esse ''labelspace'' usado para identificar de onde foi recebida uma PDU. Desta forma, um LSR na verdade decide o que fazer com uma PDU com base em seu rótulo e no seu ''labelspace''. Dentro do LSR essa operação se chama ''ILM'' (''Input Label Mapping'').<br />
<br />
'''''ILM''' é a função que identifica uma PDU recebida e mapeia seu rótulo para um '''labelspace'''''<br />
<br />
Um caso especial trata de PDUs que entram na rede MPLS. Por exemplo, uma PDU IPv4, originada de uma rede externa, deve ser transportada pela rede MPLS. Nesse caso, o ''LER'' (roteador de borda) deve associar essa PDU a um rótulo MPLS e encaminhá-lo pela rede MPLS. A identificação de uma PDU externa à rede MPLS, com base nas informações dessa PDU, se chama ''FEC'' (''Forwarding Equivalence Class'').<br />
<br />
Uma vez identificada uma PDU recebida, o LSR deve encaminhá-la de acordo com instruções predefinidas em sua ''LFIB''. Dentro de sua LFIB essas instruções são chamadas de ''NHLFE'' (''Next-Hop Label Forwarding Entry''), e contêm a '''operação MPLS''' a ser realizada e a interface de saída por onde encaminhar a PDU. As operações MPLS possíveis estão descritas na tabela abaixo:<br />
<br />
<br />
{| border="1" cellpadding="2"<br />
!Operação<br />
!Descrição<br />
|-<br />
|''SWAP'' || Troca o valor de rótulo. Essa operação deve ser usada para comutação dentro da rede MPLS. Mesmo quando o novo valor de rótulo for idêntico ao anterior essa operação deve ser realizada.<br />
|-<br />
|''PUSH'' || Adiciona um cabeçalho MPLS com um determinado valor de rótulo. Essa operação deve ser usada principalmente nos ''LER'', quando uma PDU entra na rede MPLS.<br />
|-<br />
|''POP'' || Remove o cabeçalho MPLS. Essa operação deve ser usada principalmente nos ''LER'', quando uma PDU sai da rede MPLS.<br />
|-<br />
|}<br />
<br />
<br />
A comutação fica completa ao se juntarem o mapeamento de entrada (''ILM'') com as ''NHLFE'', no caso de comutação dentro da rede MPLS. No caso de entrada de PDUs na rede MPLS, a operação se chama ''FTN'' (''Fec-To-Nhlfe''), que nada mais é que regras para associar os rótulos MPLS a essas PDUS. No exemplo da PDU IPv4, pode-se usar o endereço IPv4 de destino dessa PDU para escolher que rótulo MPLS deve ser usado. Isso está sumarizado na figura abaixo.<br />
<br />
[[imagem:Mpls-lfib.png]]<br />
<br />
=== Atividade com MPLS ===<br />
<br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/lab_mpls1.pdf 1o Experimento com MPLS]<br />
** Os experimentos usarão o [[Netkit#Switches_MPLS|Netkit e MPLS]]<br />
** Lab do netkit com o experimento:<br />
<br />
<code><br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a2[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e2[fec]=172.16.20.0/24:nhlfe=1<br />
e4[fec]=172.16.10.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e2[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.3<br />
e3[nhlfe]=1:interface=eth0:label=2001:ip=10.0.2.2<br />
e3[nhlfe]=2:interface=eth1:label=1001:ip=10.0.6.4<br />
e4[nhlfe]=1:interface=eth1:label=2000:ip=10.0.6.3<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e2[ilm]=2001:labelspace=0<br />
e3[ilm]=2000:labelspace=0:nhlfe=1<br />
e3[ilm]=1000:labelspace=0:nhlfe=2<br />
e4[ilm]=1001:labelspace=0<br />
<br />
# Labelspace: os mapeamentos de labelspaces a interfaces<br />
e2[labelspace]=0:interfaces=eth0<br />
e3[labelspace]=0:interfaces=eth0,eth1<br />
e4[labelspace]=0:interfaces=eth1<br />
<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a2[eth2]=link7:ip=172.16.20.20/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a2[default_gateway]=172.16.20.4<br />
<br />
</syntaxhighlight><br />
<br />
* '''Exercício''': Considere o roteiro realizado em sala e faça o LSP entre A2 e A1 passar por E5 ao invés de E3 - Ou seja, isso implica modificar a configuração dos roteadores E2, E3, E4 e E5:<br />
<br />
[[imagem:Exercicio-mpls-1.png|600px]]<br />
<br />
'''Solução:'''<br />
<br />
* '''E4:''' mudar a ''NHLFE'' para que o LSP A2->A1 vá para E5.<br />
* '''E5:''' fazer a comutação A2->A1 que antes ficava em E3.<br />
* '''E2:''' modificar o ''labelspace 0'' para que contenha a interface ''eth3''.<br />
* '''E3:''' removida a configuração da comutação A2->A1<br />
<br />
<code><br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a2[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e2[fec]=172.16.20.0/24:nhlfe=1<br />
e4[fec]=172.16.10.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e2[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.3<br />
e3[nhlfe]=1:interface=eth1:label=1001:ip=10.0.6.4<br />
e4[nhlfe]=1:interface=eth0:label=2000:ip=10.0.4.5<br />
e5[nhlfe]=1:interface=eth1:label=2001:ip=10.0.1.2<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e2[ilm]=2001:labelspace=0<br />
e3[ilm]=1000:labelspace=0:nhlfe=1<br />
e4[ilm]=1001:labelspace=0<br />
e5[ilm]=2000:labelspace=0:nhlfe=1<br />
<br />
<br />
# Labelspace: os mapeamentos de labelspaces a interfaces<br />
e2[labelspace]=0:interfaces=eth0,eth3<br />
e3[labelspace]=0:interfaces=eth0,eth1<br />
e4[labelspace]=0:interfaces=eth0,eth1<br />
e5[labelspace]=0:interfaces=eth0,eth1<br />
<br />
<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a2[eth2]=link7:ip=172.16.20.20/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a2[default_gateway]=172.16.20.4<br />
<br />
</syntaxhighlight><br />
<br />
=== MPLS - Labelspaces e Tunels ===<br />
<br />
'''Atividade'''<br />
<br />
* [http://tele.sj.ifsc.edu.br/~casagrande/RED/mpls_labelspaces.pdf Roteiro sobre labelspaces e túneis MPLS]<br />
<br />
'''Laboratório do netkit sobre labelspaces:'''<br />
<br />
<code><br />
<br />
e1[type]=mpls <br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a2[type]=generic<br />
a3[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e2[fec]=172.16.20.0/24:nhlfe=1<br />
e4[fec]=172.16.10.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e2[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.3<br />
e3[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.2<br />
e3[nhlfe]=2:interface=eth1:label=1000:ip=10.0.6.4<br />
e4[nhlfe]=1:interface=eth1:label=1000:ip=10.0.6.3<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e2[ilm]=1000:labelspace=0<br />
e3[ilm]=1000:labelspace=0:nhlfe=2<br />
e3[ilm]=1000:labelspace=1:nhlfe=1<br />
e4[ilm]=1000:labelspace=0<br />
<br />
#Labelspace: os mapeamentos de labelspaces a interfaces<br />
<br />
e2[labelspace]=0:interfaces=eth0<br />
e3[labelspace]=0:interfaces=eth0<br />
e3[labelspace]=1:interfaces=eth1<br />
e4[labelspace]=0:interfaces=eth1<br />
<br />
e1[eth1]=link9:ip=172.16.30.1/24<br />
e1[eth2]=link3:ip=10.0.3.1/24<br />
e1[eth3]=link5:ip=10.0.5.1/24<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth2]=link3:ip=10.0.3.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e3[eth2]=link5:ip=10.0.5.3/24<br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a2[eth2]=link7:ip=172.16.20.20/24<br />
a3[eth0]=link9:ip=172.16.30.30/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a2[default_gateway]=172.16.20.4<br />
a3[default_gateway]=172.16.30.1<br />
<br />
</syntaxhighlight><br />
<br />
'''Laboratório do netkit sobre túneis:'''<br />
<br />
<code><br />
e1[type]=mpls <br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a3[type]=generic<br />
a4[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e1[fec]=172.16.10.0/24:nhlfe=1<br />
e2[fec]=172.16.30.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e1[nhlfe]=1:interface=eth2:label=500:ip=10.0.3.2<br />
e2[nhlfe]=1:interface=eth3:label=100:ip=10.0.1.5<br />
e3[nhlfe]=1:interface=eth2:label=300:ip=10.0.5.1<br />
e4[nhlfe]=1:interface=eth1:label=3000:ip=10.0.6.3<br />
e5[nhlfe]=1:label=200:nhlfe=2<br />
e5[nhlfe]=2:interface=eth0:label=2000:ip=10.0.4.4<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e1[ilm]=300:labelspace=0<br />
e2[ilm]=500:labelspace=0<br />
e3[ilm]=3000:labelspace=0<br />
e3[ilm]=200:labelspace=0:nhlfe=1<br />
e4[ilm]=2000:labelspace=0:nhlfe=1<br />
e5[ilm]=100:labelspace=0:nhlfe=1<br />
<br />
# Labelspace: os mapeamentos de labelspaces a interfaces<br />
e1[labelspace]=0:interfaces=eth3<br />
e2[labelspace]=0:interfaces=eth2<br />
e3[labelspace]=0:interfaces=eth1<br />
e4[labelspace]=0:interfaces=eth0<br />
e5[labelspace]=0:interfaces=eth1<br />
<br />
e1[eth1]=link9:ip=172.16.30.1/24<br />
e1[eth2]=link3:ip=10.0.3.1/24<br />
e1[eth3]=link5:ip=10.0.5.1/24<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth2]=link3:ip=10.0.3.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e3[eth2]=link5:ip=10.0.5.3/24<br />
e3[eth3]=link10:ip=172.16.40.3/24 <br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a3[eth0]=link9:ip=172.16.30.30/24<br />
a4[eth0]=link10:ip=172.16.40.40/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a3[default_gateway]=172.16.30.1<br />
a4[default_gateway]=172.16.40.3<br />
<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |28/10 - Protocolos Ponto a Ponto para WANs }}<br />
<br />
==28/10 - Protocolos Ponto a Ponto para WANs==<br />
<br />
* Testes de desempenho com protocolo Frame-Relay na rede WAN real com routers NR2G.<br />
* Mesmos testes com protocolos PPP e HDLC.<br />
<br />
'''Roteiro dos testes'''<br />
<br />
# Verifique se a operação da rede nos routers do laboratório estão operantes com protocolo frame relay e que as quatro subredes tem conexão entre elas, o PC do professor (192.168.1.1) e a Internet;<br />
# Teste a vazão pelos enlaces ponto-a-ponto SOMENTE COM UM ÚNICO PC associado a cada Router (DIREITO e ESQUERDO). Em algum computador da subrede esquerda ou direita execute:<syntaxhighlight lang=bash> netperf -f k -H 192.168.1.1</syntaxhighlight><br />
# Teste o delay médio da comunicação usando PING com pacote de 65508 bytes aplicado de TODOS OS PCs da subrede para o PC do professor. Anote a média entre todos os PCs: <syntaxhighlight lang=bash> ping -s 65500 192.168.1.1</syntaxhighlight><br />
# Realize pelo menos três medidas para cada teste e use a média desses valores como resultado final;<br />
# Excute o ''netperf'' entre computadores da ''mesma subrede'', anote os valores e compare com as medidas anteriores;<br />
# Execute os mesmos testes agora com protocolo HDLC. Veja configuração abaixo:<br />
<br />
;Mesma rede operando agora com protocolo HDLC<br />
<br />
# Faça a configuração Básica dos PCs e Roteadores NR2G com protocolo HDLC. <br />
<br />
#* '''R1:''' <syntaxhighlight lang=text><br />
DIREITA > <br />
SET LAN LAN0 IP 192.168.10.254 MASK 255.255.255.0 BROADCAST 192.168.10.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.20.254 MASK 255.255.255.0 BROADCAST 192.168.20.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.2 MASK 255.255.255.252 PEER 10.1.1.1 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R2:''' <syntaxhighlight lang=text><br />
ESQUERDA > <br />
SET LAN LAN0 IP 192.168.30.254 MASK 255.255.255.0 BROADCAST 192.168.30.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.40.254 MASK 255.255.255.0 BROADCAST 192.168.40.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.6 MASK 255.255.255.252 PEER 10.1.1.5 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.5 COST1 0 <br />
SET ROUTES UP<br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R3:''' <syntaxhighlight lang=text><br />
CENTRAL > <br />
SET LAN LAN0 PURGE <br />
SET LAN LAN1 PURGE <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.1 MASK 255.255.255.252 PEER 10.1.1.2 UP<br />
SET WAN WAN1 PROTO HDLC IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6 UP<br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP WAN1 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN1 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET LAN LAN0 IP 192.168.1.231 MASK 255.255.255.0 BROADCAST 192.168.1.255 UP <br />
SET ROUTES DEFAULT GW1 192.168.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE </syntaxhighlight><br />
# Agora troque o protocolo HDLC dos enlaces por PPPS (protocolo PPP Síncrono - veja pg. 76 do manual). Faça isso primeiramente no router R3 (central) pois será perdido enlace com ele quando mudar o protocolo. Como exemplo, para trocar a configuração na interface WAN0 execute o comando:<syntaxhighlight lang=text> SET WAN WAN0 PROTO PPPS IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6 UP </syntaxhighlight><br />
Faça o mesmo para a WAN1 do router central e WAN0s dos routers esquerdo e direito. Não esqueça de aplicar o comando CONFIG SAVE para salvar a configuração atual. Observe o estado dos leds que indicam a presença de dados protocolados entre routers, tanto no frontal dos modens quanto no frontal dos routers. Eles ficaram apagados por um tempo mas devem retornar a acender depois de uns dois ou tres minutos. O led ST no frontal dos routers deve ficar na cor laranja indicando a queda dos links e depois de um tempo devem retornar a cor verde quando tudo estiver ok.<br />
<br />
# Repita e anote as mesmas medições de vazão conforme feito anteriormente com protocolo HDLC;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 04/11 - Protocolos de Enlace Ponto à Ponto }}<br />
<br />
== 04/11 - Protocolos de Enlace Ponto à Ponto ==<br />
<br />
'''Atenção:''' liberada a [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista1_2014_2.pdf LISTA1] de exercícios para a avaliação A1<br />
<br />
'''Resumo da aula:'''<br />
* Slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/protocolos_pp.pdf Protocolos Ponto à Ponto];<br />
* Serviços da Camada de enlace.<br />
<br />
'''Bibliografia relacionada:'''<br />
'''ATENÇÃO:'''<br />
* Ler Seção 5.7 do livro "Redes de Computadores" do Kurose 5a ed.'''<br />
* Parte III e capítulos 10 e 11 do livro "Comunicação de Dados e Redes de Computadores, 4a ed.", de Behrouz Forouzan<br />
* Capítulo 3 do livro "Redes de Computadores" de Andrew Tanenbaum.<br />
<br />
'''Fundamentos Teóricos'''<br />
<br />
=== Enlaces lógicos ===<br />
<br />
Equipamentos de rede se comunicam por meio de enlaces (''links''). Um enlace é composto por uma '''parte física''', composta pelo meio de transmissão e o hardware necessário para transmitir e receber um sinal que transporta a informação, e uma '''parte lógica''', responsável por empacotar os dados a serem transmitidos. O diagrama abaixo ilustra um enlace entre dois equipamentos, realçando as formas com que a informação é representada durante a transmissão e recepção. Nesse diagrama, a ''parte lógica'' está representada no bloco ''Enlace'', e a ''parte física'' está no bloco ''Física''; a informação transmitida, representada por ''Dados'', pode ser, por exemplo, um datagrama IP.<br />
<br />
[[imagem:Datalink-phy.png|600px]]<br />
<br />
O enlace lógico tem uma dependência total em relação à parte física. Isso quer dizer que o tipo de tecnologia de transmissão existente na parte física traz requisitos para o projeto da parte lógica.<br />
<br />
Deste ponto em diante, a ''parte lógica'' será chamada simplesmente de '''Camada de Enlace''', e a parte física de '''Camada Física'''.<br />
<br />
Em nosso estudo vamos investigar '''enlaces ponto-a-ponto''', os quais necessitam de protocolos específicos. Para ficar mais claro o que deve fazer um protocolo de enlace ponto-a-ponto, vamos listar os serviços típicos existentes na camada de enlace. <br />
<br />
===== Serviços da camada de enlace =====<br />
<br />
[[Image:Data-link.png]]<br />
<br />
Os serviços identificados na figura acima estão descritos a seguir. A eles foram acrescentados outros dois:<br />
<br />
* '''Encapsulamento (ou ''enquadramento'')''': identificação das PDUs (quadros) de enlace dentro de sequências de bits enviadas e recebidas da camada física<br />
* '''Controle de erros''': garantir que quadros sejam entregues no destino<br />
** '''''Detecção de erros''''': verificação da integridade do conteúdo de quadros (se foram recebidos sem erros de bits)<br />
* '''Controle de fluxo''': ajuste da quantidade de quadros transmitidos, de acordo com a capacidade do meio de transmissão (incluindo o atraso de transmissão) e do receptor<br />
* '''Endereçamento''': necessário quando o enlace for do tipo '''multi-ponto''', em que vários equipamentos compartilham o meio de transmissão (ex: redes locais e redes sem-fio)<br />
* '''Controle de acesso ao meio (MAC)''': também necessário para '''meios compartilhados''', para disciplinar as transmissões dos diversos equipamentos de forma a evitar ou reduzir a chance de haver colisões (transmissões sobrepostas)<br />
* '''Gerenciamento de enlace''': funções para ativar, desativar e manter enlaces<br />
<br />
==== Protocolos de enlace ponto-a-ponto ====<br />
<br />
Dois protocolos de enlace ponto-a-ponto muito utilizados são:<br />
* '''PPP (''Point-to-Point Protocol''):''' proposto no início dos anos 90 pelo IETF (ver [http://www.ietf.org/rfc/rfc1661.txt RFC 1661]), e amplamente utilizado desde então. Este protocolo não faz controle de erros nem de fluxo, portanto se quadros sofrerem erros de transmissão serão sumariamente descartados no receptor. Originalmente muito usado em acesso discado, recentemente sua aplicação se concentra em enlaces por linhas dedicadas, enlaces sem-fio 3G, e uma versão modificada para acesso doméstico ADSL (''PPPoE''). Ver mais detalhes na seção 5.7 do livro do Kurose e na seção 11.7 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan. <br />
* '''HDLC (''High-level Data Link Control''):''' criado nos anos 70, foi largamente utilizado em enlaces ponto-a-ponto, porém atualmente foi substituído pelo PPP na maioria dos cenários em que era usado. Este protocolo faz controle de erros e de fluxo usando um [[Desempenho_ARQ|mecanismo ARQ do tipo Go-Back-N]] (com janela de tamanho 7 ou 127). Ainda se aplica a enlaces ponto-a-ponto em linhas dedicadas, enlaces por satélite e aplicações específicas onde a presença de ruídos no meio de transmissão é relevante ou se deseja confiabilidade na entrega de pacotes na camada 2. Ver mais detalhes na seção 11.6 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan.<br />
<br />
Ambos protocolos possuem o mesmo formato de quadro. Na verdade, o PPP copiou o formato de quadro do HDLC, apesar de não utilizar os campos ''Address'' e ''Control''. O campo ''Flag'', que tem o valor predefinido <math>7E_H</math>, serve para delimitar quadros, assim o receptor sabe quando inicia e termina cada quadro.<br />
<br />
[[imagem:Ppp-frame.png|400px]]<br />
<br>''Quadro PPP ou HDLC (tamanho de campos dados em bytes)''<br><br />
<br />
Esses protocolos foram criados para uso com comunicação serial síncrona (ver capítulo 4, seção 4.3 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan). O PPP funciona também com [http://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_serial_ass%C3%ADncrona comunicação serial assíncrona].<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 07/11 - <math>\blacklozenge</math> Ensaios finais sobre MPLS e Desempenho de protocolos de Redes Ponto à Ponto e Frame Relay}}<br />
<br />
== 07/11 - Ensaios finais sobre MPLS e Desempenho de protocolos de Redes Ponto à Ponto e Frame Relay ==<br />
<br />
#Ilustração do gnome-netkit para os labs MPLS com auxílio do WireShark;<br />
#<math>\blacklozenge</math> Tarefa para hoje ('''ATENÇÃO: faz parte da avaliação AE'''):<br />
#Preenchimento da planilha de desempenho dos protocolos FR, PPP e HDLC abaixo, conforme roteiro do dia 28/10.<br />
'''Resultados de testes aplicados ao PC do Professor (o Gateway da rede - GW):'''<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!PROTOCOLO<br />
!Netperf-->GW vazão<br />
!Netperf-->GW tempo<br />
!Ping-->GW <br />
|-<br />
|FRAME RELAY ||E: 1961,32|| E: 13,7|| E: 2,4<br />
|-<br />
|HDLC ||E: 1961,53 ||E: 13,34 ||E: 2,51 <br />
|-<br />
|PPPS ||E: 1923,14 ||E: 10,64 ||E: 2,58 <br />
|-<br />
|}<br />
<br />
<br> <br />
<br><br />
'''Testes de vazão e ping na mesma subrede:'''<br />
<br><br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Netperf-->LAN vazão<br />
!Netperf-->LAN tempo<br />
!Ping-->LAN <br />
|-<br />
|0 ||0 || 0<br />
|-<br />
|}<br><br />
'''Perguntas para as equipes:'''<br> <br />
*'''Atenção''': os componentes das equipes A à D são os mesmos da formação realizada em sala no dia da avaliação 1 (Equipe A é a que fica do lado das janelas da sala com o rack direito, as demais na sequência...)<br />
<br />
'''EQUIPE A''': Anderson, André Felipe Weber, Gabriel , Carlos e Gustavo. <br><br />
'''Link das Respostas'''<br />
'''--> ''' [https://drive.google.com/file/d/0B5uxU74qlINVcHlBZ3FEQnRQYzQ/view?usp=sharing] <br />
#Entenda como funciona basicamente o teste de vazão do netperf e explique porque o troughtput do ensaio com Frame Relay não alcançou a taxa de transmissão nominal do link. <br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos Frame Relay e MPLS e discuta sobre o overhead causado nesses protocolos<br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br> <br />
<br />
'''EQUIPE B''':Katharine Schaeffer Fertig, Kristhine Schaeffer Fertig, Gabriel Cantu, Lucas Lucindo, Iago Soares <br><br />
#Explique brevemente a diferença encontrada nos resultados de teste de ping na mesma rede e rede remota.<br />
<br />
[[Arquivo:TabelaPing_EquipeB.png|600px|thumb|center|Tabela de Teste Ping e Netperf]]<br />
<br />
<syntaxhighlight lang=bash> R. Tendo realizado o tete de ping normal (tamanho de pacote normal padrão) para mesma rede e rede remota notou-se que as médias de<br />
tempo de transmissão de dados entre computadores na rede da equipe B e do professor (rede externa) foram:<br />
<br />
Frame relay: 2,44 segundos<br />
HDLC: 2,57 segundos<br />
<br />
Tendo-se ainda realizado o Netperf para a mesma rede (sub-rede) e rede remota (sub-redes diferentes e computador do professor) <br />
obteve-se os seguintes dados de teste:<br />
<br />
Tempo de transmissão com protocolo Frame Relay<br />
Mesma sub-rede: 10,13 segundos<br />
Rede Remota/Sub-rede diferente: 10,057 segundos<br />
<br />
Assim vemos que para um mesmo protocolo – neste caso o Frame Relay – não há diferença significativa de tempo de transmissão entre mesma rede e rede<br />
remota. Também em comparação com resultados de testes entre os dois protocolos (HDLC e FR) não houve uma grande diferença no tempo de transmissão. <br />
Mas a diferença existente (em cerca de 100 milisegundos) deve-se ao fato de o protocolo HDLC implementar mecanismos de controle (como fluxo e erros)<br />
nos frames transmitidos, gerando maior overhead no frame e necessitando de maior tempo para tranmissão de dados (propriamente ditos) relevantes à camada superior.<br />
<br />
</syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos Frame Relay e HDLC e discuta sobre o overhead causado nesses protocolos<br />
[[Arquivo:Frames.png|600px|thumb|center|Frames de Protocolos HDLC Padrão, HDLC Cisco e Frame Relay]]<br />
<syntaxhighlight lang=bash> R. <br />
<br />
De acordo com as estruturas de frame acima podemos concluir que há maior overhead no protocolo HDLC pois apesar de efetuar bit-stuffing, que gera <br />
menor overhead em relação a protocolos orientados a byte, possui um campo de controle em seu frame que envia apenas bits de controle para comunicação,<br />
sendo que o protocolo Frame Relay (FR) não necessita destas informações de controle, apenas as informações de endereço para repasse de dados e não <br />
realizando controle de erros e fluxo para estes frames. Vemos ainda que para um protocolo HDLC para modens/roteadores cisco, além de campos de <br />
controle de fluxo e de erros (extra ao FR), existe um sub-campo no campo de dados que se chama E-type ou campo de proprietário que informa o tipo de <br />
protocolo/proprietário da camada superior, causando ainda mais overhead ao frame! Nota-se que a estrutura simplificada dos frames em protocolo Frame <br />
Relay apenas necessita de informações do campo de endereço como o DLCI de enlaces da rede CV.<br />
</syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br><br />
<br />
'''EQUIPE C''':colocar aqui os componentes <br><br />
#Entenda como funciona basicamente o teste de vazão do netperf e explique brevemente a diferença encontrada nos resultados de tempo de teste ocorridos entre os três protocolos avaliados.<br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos HDLC e PPP e discuta sobre o overhead causado nesses protocolos<br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br><br />
<br />
'''EQUIPE D''': HelenLuciany Cechinel, Leticia Coelho, Jessica Hahn, Maria Luiza Theisges,Vinicius Kachniacz e Marcus Vinícius <br><br />
#Entenda como funciona basicamente o teste de vazão do netperf e explique porque o troughtput do ensaio com PPP não alcançou a taxa de transmissão nominal do link.<br />
<syntaxhighlight lang=bash> R. O netperf é um comando que testa a vazão da rede mandando um pacote com um número determinado de bits e verificando o tempo de resposta <br />
do pacote na rede. O PPP não alcançou a taxa de transmissão nominal do link devido a multiplexação dos dados, em que o canal foi dividido<br />
em outros sub canais. A somatória da banda de transmissão é o valor total da taxa de transmissão nominal do link;</syntaxhighlight><br />
<syntaxhighlight lang=bash> ''Revisão do professor:'' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos PPP e Frame Relay e discuta sobre o overhead causado nesses protocolos<br />
R. <br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!PPP<br />
|FLAG ||Endereço|| Controle || Protocolo || Payload || FCS || FLAG<br />
|}<br />
<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Frame Relay<br />
|FLAG || Endereço || Dados || FCS || FLAG<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Endereço Frame Relay<br />
|DLCI||C/R|| EA || DLCI || FECN || BECN || DE || EA<br />
|}<br />
<br />
<br />
<syntaxhighlight lang=bash><br />
O PPP faz ByteStuffing e devido a este mecanismo um byte especial pode ser substituido por dois bytes ou mais,<br />
causando mais overhead do que o Frame Relay. Se o byte Stuffing for aplicado ao Frame. </syntaxhighlight><br />
<br> <br />
<br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br><br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 09/11 - Enquadramento (Framing) e delimitação de quadros}}<br />
<br />
== 09/11 - Enquadramento (Framing) e delimitação de quadros ==<br />
<br />
'''Resumo da aula:'''<br />
<br />
* bit e byte stuffing;<br />
* Explicações adicionais e exemplos de enquadramento e delimitação em HDLC e PPP; Identificação de pacotes.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 11/11 - Detecção e Correção de Erros }}<br />
<br />
== 11/11 - Detecção e Correção de Erros==<br />
<br />
'''Resumo da aula:'''<br />
* Explicações adicionais sobre PPP;<br />
* Abordagem sobre erros em sistemas de telecomunicações: Erro de bit, erro de rajada;<br />
* Uso do campo FCS (Frame Check Sequence) nos protocolos da camada 2 para fins de de detecção de erro;<br />
* Check de paridade simples em sistemas assíncronos de comunicação de dados;<br />
* Paridade bidimensional ou longitudinal;<br />
* Revisão sobre a técnica de CheckSum;<br />
* Técnica CRC: Técnicas polinomiais na detecção e correção de erros na formação do FCS com códigos cíclicos CRC;<br />
* Exercícios da LISTA 1.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 16/11 - Exercícios }}<br />
<br />
* Mais alguns exercícios da Lista 1;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 18/11 - Interfaces Digitais}}<br />
<br />
'''Resumo da aula:'''<br />
<br />
* Slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/InterfacesDigitais.pdf Interfaces Digitais]. <br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 23/11 - Interfaces Digitais e exercícios}}<br />
<br />
== 23/11 - Interfaces Digitais e exercícios==<br />
<br />
'''Resumo da aula:'''<br />
<br />
* Finalização dos slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/InterfacesDigitais.pdf Interfaces Digitais];<br />
* Proponha e desenhe um esquema de ligações MÍNIMO de um cabo lógico que interliga um DTE a um DCE que estão configurados para uma comunicação de dados síncrona, que usa o clock do DTE como base de sincronismo. O controle de fluxo via hardware ́e requerido na comunicação e ela não se inicia se o circuito CT109 não estiver ativo. O DTE e DCE usam interface RS232 com conectores DB25 Fêmea.<br />
* Verificar e anotar todos os componentes nas conexões físicas entre modens, routers e PCs do laboratório realizado na aula de FR.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 25/11 - Implementação de caso de Interfaces Digitais e Avaliação 1}}<br />
<br />
== 25/11 - Implementação de caso de Interfaces Digitais e Avaliação 1==<br />
<br />
'''Implementação de Caso'''<br />
<br />
#Dinâmica:<br />
<br />
Com o objetivo de conhecer, identificar, especificar e instalar os componentes de redes associados a parte física de uma rede de telecomunicações, lançou-se a tarefa de realizar a troca dos roteadores central e esquerdo da rede para outros CISCO 2514 e 1750 respectivamente. Visando assimilar o significado e importância de todas as reconexões, não se priorizou refazer configurações em nível de enlace nos roteadores.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 30/11 - Correção da Avaliação 1 - Revisão do conteúdo correspondente}}<br />
<br />
== 30/11 - Correção da Avaliação 1 - Revisão do conteúdo correspondente==<br />
<br />
* Correção da Avaliação 1 - Revisão do conteúdo correspondente e esclarecimento de dúvidas e alternativas polêmicas da prova.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 02/12 - Modens Analógicos }}<br />
<br />
== 02/12 - Modens Analógicos ==<br />
<br />
* Término da correção da Avaliação 1.<br />
* Início sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/modens.pdf Modens analógicos] <br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 07/12 - Modens e Enlaces de Teste}}<br />
<br />
== 07/12 - Modens e Enlaces de Teste==<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 09/12 - Exercícios A2 }}<br />
<br />
== 09/12 - Exercícios A2 ==<br />
<br />
* cabos lógicos.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 14/12 - Modens Digitais}}<br />
<br />
== 14/12 - Modens Digitais ==<br />
<br />
* Atividades com laboratório com links e test-set conectados a modens Digitais de quatro tecnologias diferentes.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 16/12 - Revisão para a prova }}<br />
<br />
== 16/12 - Revisão para a prova ==<br />
<br />
* Exercícios de revisão para a Avaliação A2.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 21/12 - Recuperação Avaliação A1 e Avaliação A2}}<br />
<br />
== 21/12 - Recuperação Avaliação A1 e Avaliação A2 ==<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 01/02 - Redes Locais e o Padrão Ethernet }}<br />
<br />
== 01/02 - O Padrão Ethernet ==<br />
<br />
* Redes Locais e o padrão Ethernet - <br />
* Introdução sobre Redes Locais e slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/lan.pdf MAC]<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 03/02 - Correção Prova e Arquitetura IEEE 802}}<br />
<br />
== 03/02 - Correção Prova e Arquitetura IEEE 802 ==<br />
<br />
* Correção Prova A2;<br />
* Finalização Redes Locais com múltiplo Acesso - slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/lan.pdf MAC]<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 10/02 - Redes Locais e o Padrão Ethernet - '''Não Compareci''' }}<br />
<br />
== 10/02 - Redes Locais e o Padrão Ethernet - '''Não Compareci''' ==<br />
<br />
* Não Compareci.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 15/02 - Arquitetura IEEE 802}}<br />
<br />
== 15/02 - Arquitetura IEEE 802 ==<br />
<br />
* Padrões da Arquitetura IEEE;<br />
* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/ieee.pdf Arquitetura IEEE802.3]<br />
* Leituras recomendadas para a prova e lista 3 de exercícios: Forouzan Cap 12 '''só a seção 1''', e Caps 13 e 15 '''completos'''.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 22/02 - Exercícios P3}}<br />
<br />
== 22/02 - Exercícios P3 ==<br />
<br />
* Exercícios sobre a [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista3_2015_1.pdf LISTA3] de exercícios para a avaliação A3;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 24/02 - IEEE802.1D e Avaliação A3}}<br />
<br />
== 24/02 - IEEE802.1D e Avaliação A3==<br />
<br />
===Tecnologias de LAN switches ===<br />
<br />
Switches ''store-and-forward'' X ''cut-through''<br />
* Leia este [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/switch-internals.pdf bom texto] sobre estruturas internas de switches.<br />
* [http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html Texto sobre tecnologias de switches (store-and-forward e cut-through)]<br />
<br />
Algumas animações mostrando o funcionamento de switches ''store-and-forward'' e ''cut-through'':<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0142.mov Animacão sobre switches cut-through]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0141.mov Animacão sobre switches store-and-forward]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0143.mov Animacão sobre switches simétricos (todas portas com mesma taxa de bits)]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0144.mov Animacão sobre switches assimétricos (portas com diferentes taxas de bits)]<br />
<br />
=== Interligando redes locais ===<br />
<br />
==== Interligação de LANs (norma IEEE802.1D) ====<br />
<br />
* Como um switch aprende que endereços MAC estão em cada porta ?<br />
* Como um switch encaminha um quadro cujo destinatário é desconhecido ?<br />
* Como um switch propaga quadros em broadcast ?<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/lan-switch-transparent.swf Animação sobre o funcionamento de switches (Cisco)]<br />
<br />
=== Laboratório sobre LANs ===<br />
<br />
* [[RCO2-lab3|Experiência sobre LANs]]<br />
<br />
<!-- === Desempenho de Redes Locais ===<br />
<br />
====Objetivos ====<br />
<br />
* Conhecer os equipamentos típicos de uma rede local Ethernet<br />
* Estimar o desempenho de uma LAN Ethernet comutada (com switch)<br />
<br />
==== Introdução ====<br />
<br />
Redes locais Ethernet (padrão IEEE 802.3 e extensões) são compostas de equipamentos que se comunicam, denominados estações (STA na norma IEEE 802.3), de equipamentos que os interligam (hubs e switches), e do meio de transmissão. A figura abaixo ilustra uma rede local hipotética com seus vários componentes.<br />
<br />
[[imagem:Lab1-lan-demo.png|400px]]<br />
<br />
<br />
De forma geral, uma estação possui um ou mais adaptadores de rede (placas de rede, ou NIC – Network Interface Card), como na figura abaixo à esquerda. Os adaptadores de rede das estações são conectados a um switch por meio de cabos de rede TP (par trançado) com conectores RJ-45, mostrado na figura abaixo à direita.<br />
<br />
<br />
[[imagem:Lab1-nic-switch.png|400px]]<br />
<br />
<br />
Originalmente LANs Ethernet foram construídas usando um cabo único para interligar as estações (cabo coaxial). Posteriormente surgiram as redes baseadas em hubs, equipamentos que interligavam as estações em nível da camada física (funcionavam como repetidores). Atualmente essas redes são construídas usando switches, equipamentos que interligam as estacões em nível da camada de enlace (na verdade, da subcamada MAC). Um switch apresenta como benefícios, se comparado com hubs:<br />
<br />
# '''atuação em nível de MAC:''' o switch faz o acesso ao meio com CSMA/CD ao encaminhar um quadro, quebrando o domínio de colisão; além disto, um switch pode operar em modo full-duplex, quando então inexiste a possibilidade de colisão.<br />
# '''preservação da capacidade do canal:''' para quadros unicast, o switch encaminha um quadro somente pela porta onde reside o destinatário.<br />
<br />
Essas características importantes devem fazer com que uma LAN com switches tenha um desempenho superior a uma LAN com hubs. Por desempenho entenda-se um número menor de colisões sob tráfego intenso (ou mesmo ausência total de colisões), e maior capacidade de canal vista por cada equipamento conectado ao switch.<br />
<br />
==== Utilização do meio de transmissão em uma rede local com MAC do tipo CSMA/CD ====<br />
<br />
Nesta seção mostra-se como estimar o desempenho do CSMA/CD por meio de experimentos para medir a utilização máxima do meio. Esses experimentos podem ser feitos usando uma rede real, com computadores interligados por ''hubs'', ou com um simulador. Em ambos os casos deve-se fazer com que vários computadores gerem tráfego intenso na rede, e calcular ao final a utilização do meio da seguinte forma:<br />
<br />
<math><br />
U = \frac{total~bytes~recebidos}{taxa~bits \cdot duracao~do~experimento}<br />
</math><br />
<br />
O ''total de quadros recebidos'' pode ser obtido em qualquer um dos computadores.<br />
<br />
{{collapse top|Experiência com uma rede real}}<br />
<br />
Para fazer com uma rede real: <br />
<br />
* [[RCO2-lab2|Roteiro da experiência]]<br />
<br />
'''Resultados:'''<br />
<syntaxhighlight lang=text><br />
64 53046660<br />
128 61992856<br />
256 67413192<br />
512 70684436<br />
756 71989464<br />
1024 77967480<br />
1500 73797088<br />
</syntaxhighlight><br />
<br />
Com esses dados deve-se plotar um gráfico da quantidade de bytes recebidos X tamanho dos quadros. Na tabela acima, os tamanhos de quadros estão na 1a coluna, e a quantidade de bytes recebidos está na 2a coluna.<br />
<br />
[[imagem:Csma-cd.png|400px]]<br />
<br />
<br>''Desempenho do MAC CSMA/CD (Carrier Sense Multiple Access/Collision Detection): o gráfico acima mostra o resultado de um experimento feito em laboratório com 6 computadores transmitindo quadros intensamente e simultaneamente para um único computador. A cada transmissão simultânea variou-se o tamanho dos quadros transmitidos (mostrado no eixo X), e anotou-se quantos bytes foram recebidos no computador receptor (eixo Y). Os computadores foram interligados por um hub.''<br />
{{collapse bottom}}<br />
<br />
{{collapse top|Experiência com uma rede simulada}}<br />
<br />
Para fazer a experiência pode-se usar também o simulador Omnet++ (veja em: [[Omnetpp-Instalacao|Instale o Omnet++ 4]])<br />
<br />
O gráfico abaixo foi obtido com uma simulação via Omnet++:<br />
<br />
[[imagem:Csma-perf-sim.png]]<br />
<br />
As simulações tiveram os seguintes parâmetros:<br />
* Quadros de 256, 512 e 1480 bytes<br />
* 2 a 45 estações<br />
* Geração de tráfego por estação com intervalos entre quadros dados por uma distribuição exponencial com média 15*tamanho_quadro_em_bits*0.11us (0.11us é o tempo aproximado de um bit)<br />
{{collapse bottom}}<br />
<br />
{{collapse top|Análise de desempenho do CSMA/CD}}<br />
<br />
Uma análise feita no capítulo 4 do livro "Redes de Computadores, 4a ed." de Andrew Tanenbaum fornece a seguinte previsão aproximada de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.<br />
<br />
* ''Utilização do meio:''<br />
<br />
<math>U = \frac{1}{1 + \frac{2BLe}{cF}}</math><br />
<br />
* '''''B:''''' taxa de bits nominal<br />
* '''''L:''''' comprimento do meio de transmissão<br />
* '''''c: ''''' velocidade de propagação do sinal<br />
* '''''F:''''' comprimento do quadro<br />
<br />
[[Image:Csma-perf.png|400px]]<br />
<br />
Essa figura mostra curvas para a utilização do meio em função da quantidade de estações prontas para transmitir, e para diferentes tamanhos de quadro. A conclusão é que quadros menores proporcionam desempenho inferior, assim como uma quantidade maior de estações resulta em uma provável menor utilização do meio. No entanto essa análise considera a rede numa situação de carga muito alta, o que não acontece normalmente. Há também algumas simplificações no desenvolvimento da análise, tal como considerar que a probabilidade de retransmissão constante em cada ''slot'', ao invés de analisar o algoritmo de recuo exponencial binário (''backoff''). Finalmente, esse resultado tem sentido para um meio de transmissão compartilhado, mas a atualmente as redes locais ethernet trabalham com meios de transmissão exclusivos (''ethernet comutada e full-duplex'', em que não há risco de colisão).<br />
<br />
Para fins de comparação, veja os resultados obtidos com as redes simuladas anteriormente.<br />
{{collapse bottom}}<br />
<br />
==== Roteiro ====<br />
<br />
A rede de teste para o experimento será composta de computadores ligados a um switch Ethernet a 100 Mbps em modos half ou full-duplex. Serão sintetizados tráfegos intensos, de forma a poder comparar o desempenho das transmissões nos dois casos.<br />
<br />
[[imagem:Lab1.png]]<br />
# Observe a placa de rede de seu computador e sua conexão à rede por meio do cabo TP. Os computadores do laboratório estão conectados ao switch Microtec, que reside no rack central. O número da porta onde está conectado seu computador na bancada corresponde à porta do switch. Desconecte o cabo do seu computador e observe o status da porta correspondente no switch (o status é informado por um led, que aceso significa que há equipamento ativo conectado àquela porta). '''Questão:''' como será que o switch sabe que um equipamento foi conectado a uma porta ?<br />
# Veja que informações o Linux provê a respeito de seu adaptador Ethernet. Usando os comandos administrativos do Linux, descubra:<br />
#* o modelo do adaptador, e seu endereço MAC: ver comandos [http://manpages.ubuntu.com/manpages/hardy/man8/lspci.8.html lspci] e [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig].<br />
#* seu modo de operação (velocidade, modo duplex, se o enlace está ativo): ver comando [http://manpages.ubuntu.com/manpages/hardy/man8/ethtool.8.html ethtool]<br />
#* suas estatísticas de operação (quadros transmitidos e recebidos, colisões e erros em geral): ver comandos [http://manpages.ubuntu.com/manpages/hardy/man8/netstat.8.html netstat] e [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig].<br>Após obter essas informações, experimente desconectar o cabo da placa de rede e repetir a execução dos comandos. <br />
# Anote os valores dos contadores de quadros e bytes recebidos e enviados pela interface ethernet em seu computador. Use o comando [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig] para visualizar esses contadores. Anote também o horário em que se fez essa medição.<br />
# Os computadores se comunicarão aos pares, usando-se o programa [http://manpages.ubuntu.com/manpages/lucid/man1/netperf.1.html netperf] para gerar o tráfego e medir a capacidade do canal:<syntaxhighlight lang=bash>netperf -f k -H endereço_IP</syntaxhighlight>(Obs: endereço_IP é o endereço IP computador alvo).<br />
# Execute o [http://manpages.ubuntu.com/manpages/lucid/man1/netperf.1.html netperf] de forma sincronizada: os computadores devem iniciá-lo simultaneamente. Repita esse procedimento 3 vezes, anotando a taxa de transmissão obtida em cada computador.<br />
# '''Carga de tráfego na rede durante o experimento:''' anote novamente os valores dos contadores de quadros e bytes recebidos e enviados pela interface ethernet em seu computador. Usando os valores medidos previamente, calcule:<br />
## Quantos bytes e quadros foram enviados e recebidos durante o experimento<br />
## As taxas médias de transmissão e recepção pela sua interface ethernet<br />
## A utilização do seu link ethernet. Obs: a utilização é a razão entre quantos bytes foram enviados, e quantos bytes poderiam ser enviados ininterruptamente durante o experimento. O mesmo vale para os bytes recebidos.<br />
# Repita os passos 4 a 6, mas antes configure os computadores para operarem em modo 100baseT half-fuplex: <syntaxhighlight lang=bash><br />
sudo ethtool -s eth0 speed 100 duplex half autoneg off<br />
</syntaxhighlight>Houve diferença nas taxas de bits obtidas ? Caso sim, qual deve ser a explicação ?<br />
# As interfaces de rede dos computadores podem operar a 1000 Mbps (gigabit), mas o switch do laboratório opera a 100 Mbps. Pode-se medir a capacidade de transmissão do computador através dessas interfaces se os computadores forem conectados aos pares. Assim, conecte o cabo da interface de rede de seu computador à interface do computador ao seu lado. Em seguida faça os seguintes experimentos:<br />
## Em cada computador deve-se gerar um arquivo de nome “teste”, com 1GB de conteúdo aleatório: <syntaxhighlight lang=bash><br />
dd if=/dev/urandom of=teste bs=65536 count=16384 <br />
</syntaxhighlight><br />
## O arquivo deve ser transferido de um computador a outro. No computador que irá receber o arquivo execute:<syntaxhighlight lang=bash><br />
nc -l 10000 > recebido<br />
</syntaxhighlight>.. e no que irá transmitir execute:<syntaxhighlight lang=bash><br />
date +%s.%N; nc IP_do_outro_computador 10000 < teste; date +%s.%N<br />
</syntaxhighlight><br />
## No computador transmissor aparecerão dois números, que correspondem aos instantes de início e fim de transmissão. Calcule quanto tempo demorou a transmissão, e em seguida a taxa de bits obtida. Compare essa taxa com a capacidade nominal da interface de rede (1000 Mbps).<br />
## Repita duas vezes os passos ii e iii , e anote os valores de taxa de bits obtidos. Houve variação nas medições ?<br />
## Repita os passos 2 a 4, porém executando o seguinte comando no receptor: <syntaxhighlight lang=bash><br />
nc -l 10000 > /dev/null<br />
</syntaxhighlight>Houve diferença nos valores obtidos para a taxa de bits ? Caso afirmativo, qual deve ser explicação ?<br />
<br />
==Exercícios sobre a Atividade: da Colisão à Comutação==<br />
<br />
O acesso ao meio ethernet com CSMA/CD é probabilístico: uma estação verifica se o meio está está livre antes de iniciar uma transmissão, mas isso não impede que ocorra uma colisão (apenas reduz sua chance). Se acontecer uma colisão, cada estação envolvida usa esperas de duração aleatória para desempate, chamadas de ''backoff''. A ideia é que as estações sorteiem valores de espera diferentes, e assim a que tiver escolhido um valor menor consiga transmitir seu quadro. As colisões e esperas (''backoffs'') impedem que esse protocolo de acesso ao meio aproveite totalmente a capacidade do meio de transmissão.<br />
<br />
* [http://www.datacottage.com/nch/eoperation.htm Veja animacões que mostram o tratamento de colisões]<br />
<br />
No entanto, '''nas gerações atuais do padrão IEEE 802.3 (Gigabit Ethernet e posteriores) o CSMA/CD não é mais utilizado'''. Nessas atualizações do padrão, o modo de comunicação é full-duplex (nas versões anteriores, que operavam a 10 e 100 Mbps, há a possibilidade de ser half ou full-duplex). Se as comunicações são full-duplex, então '''conceitualmente não existem colisões'''. Isso se deve ao fato de que nessas novas versões cada estação possui uma via exclusiva para transmitir e outra para receber, portanto não existe mais um meio compartilhado.<br />
<br />
*Além dos resultados coletados no roteiro do laboratório de hoje leia o conteúdo sobre LAN postados aqui e nos slides e links indicados e procure em nossa bibliografia ou internet, nos temas correspondentes, respostas e ilustrações sobre as seguintes perguntas:<br />
<br />
#Como um switch identifica e sinaliza através de um led em seu frontal, que um equipamento foi conectado a uma de suas portas?<br />
#Considerando os números médios coletados por TODOS no experimento, quais foram os valores de taxa média de Tx e Rx (em bps) na interface ethernet? e a taxa de utilização do link (em %)?<br />
#O que acontece com o desempenho da rede quando as placas de rede são configuradas em modo Half-duplex?<br />
#A conexão entre computadores na última parte do experimento, é direta, ou seja, sem switch entre eles. Voces devem ter observado que quando os dados recebidos por um pc não são encaminhados para lugar algum (> /dev/null) o desempenho da transmissão é melhor. Qual a explicação disso? Diante desses resultados, até que ponto vale à pena ter interfaces ethernet com velocidades maiores, como por exemplo 10Gbps?<br />
# Porque razão as medidas de vazão (Throughput) nunca alcançaram 100% da taxa configurada na placa de rede?<br />
# Em algum momento do experimento houve uso do algorítimo CSMA/CD? onde ocorre a execução dele?<br />
<br />
--><br />
<br />
* Avaliação A3 - 50min<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 29/02 - LANs Virtuais e '''Orientações para a Avaliação A5'''}}<br />
<br />
== 29/02 - LANs Virtuais e Orientações para a Avaliação A5==<br />
<br />
* ORIENTAÇÕES PARA ELABORAR O TRABALHO CIENTÍFICO EM SUBSTITUIÇÃO A AVALIAÇÃO A5:<br />
<br />
'''MODELO A SER ADOTADO:''' RESUMO<br />
<br />
Resumo, segundo a ABNT é a apresentação concisa das principais idéias de um texto. Resulta da capacidade analítica e compreensiva que o leitor adquire no momento em que faz sua leitura. Quanto mais se tem domínio e compreensão do texto, maior será a capacidade de<br />
síntese e de apresentação de forma breve. Na apresentação do resumo, o aluno deve evitar a manifestação de opinião sobre o tema ou analisá-lo criticamente. O acréscimo da crítica no resumo caracteriza um outro tipo de trabalho, denominado resumo crítico ou resenha crítica. No meio acadêmico, o desenvolvimento de um resumo é importante, por que permite “[...] em rápida leitura, recordar o<br />
essencial do que se estudou e [apresentar] a conclusão a que se chegou” (GALLIANO, 1986, p. 89).<br />
<br />
'''Temas dos trabalhos para substituir a A5'''<br />
<br />
* [[Tema 1 - IEEE802.1x]] - GUSTAVO, MACIEL, ANDERSON, CARLOS, <br />
* [[Tema 2 - IEEE802.11i]] - IAGO, MARCO, FABIANO, GABRIEL G, <br />
* [[Media: IEEE80211e.pdf | IEEE802.11e]] - GABRIEL C, LUCAS, ANDRE, GABRIEL S, <br />
* [[Tema 4 - IEEE802.1p]] - GEMEAS, HELEN, MARY, LE <br><br />
<br />
'''ENTREGA:''' DIA 15/03 ATÉ AS 23:59h - Como? '''PUBLICAÇÃO NA WIKI''' no link correspondente acima! <br><br />
<br />
'''JUSTIFICATIVA E ESTRATÉGIA:''' O trabalho do tipo resumo facilita o trabalho em grupo no sentido da exigência de reuniões do mesmo para definir o escopo do trabalho e a divisão de tarefas onde cada um dos componentes define uma seção do tema para resumir após a decisão do grupo do que relevante será abordado no trabalho final. A publicação na WIKI garante que toda a turma tenham acesso para futuras pesquisas.<br />
<br />
==REDES LOCAIS VIRTUAIS - VLANS==<br />
<br />
* Ver [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/vlan.pdf slides] sobre introdução à VLANs.<br />
<br />
Introdução: A equipe que administra a rede do campus São José estudou uma reestruturação dessa rede. Como diferentes setores e públicos a utilizam, e para diferentes propósitos, concluiu-se que seria apropriado segmentá-la em algumas subredes. Isso possibilitaria facilitar o controle de quem usa a rede, além do policiamento do tráfego. Para isso, a subrede geral do campus precisaria ser segmentada inicialmente em cinco novas subredes, denominadas:<br />
<br />
{| border="1" cellpadding="2"<br />
!Segmento<br />
!Descrição<br />
!Subrede IP<br />
|-<br />
|'''Pedagogica''' || Pontos das salas de aula e laboratórios de informática|| 172.18.32.0/20<br />
|-<br />
|'''Administrativa''' || Pontos de setores administrativos|| 172.18.16.0/20<br />
|-<br />
|'''DMZ''' || Servidores acessíveis de fora da escola (ex: Wiki, WWW)|| 200.135.37.64/26<br />
|-<br />
|'''BD''' || Servidores que hospedam bancos de dados (ex: LDAP, MySQL)|| 172.18.240.0/24<br />
|-<br />
|'''LAN''' || Demais pontos de rede || 172.18.0.0/20<br />
|}<br />
<br />
<br />
A figura abaixo mostra a estrutura proposta para a rede do campus São José, composta pelas cinco novas subredes e as subredes dos laboratórios de Redes 1 e Redes 2. Como se pode observar, o roteador/firewall Cisco ASA 5510 se torna um nó central da rede, pois interliga todas suas subredes (com exceção dos laboratórios de Redes 1 e Redes 2).<br />
<br />
<br />
[[imagem:Nova-rede-ifsc-sj.png|600px]]<br />
<br />
<br />
Existe mais de uma forma de implantar uma estrutura como essa, as quais serão apresentadas nas próximas subseções.<br />
<br />
==== Segmentação física ====<br />
<br />
A segmentação física é uma solução aparentemente simples e direta. Cada subrede deve ser composta de uma estrutura exclusiva, contendo seus switches e cabeamentos. No entanto, para adotar esse tipo de segmentação, algumas modificações precisarão ser feitas na infraestrutura de rede existente. Observe a estrutura física da rede do campus:<br />
<br />
[[imagem:Rede-ifsc-sj.png|600px]]<br />
<br />
<br />
O que seria necessário fazer para implantar uma segmentação física ?<br />
<br />
==== Segmentação com VLANs ====<br />
<br />
Se a reestruturação pudesse ser efetuada com mínimas modificações na estrutura física (incluindo cabeamento), a implantação da nova rede seria mais rápida e menos custosa. Para isso ser possível, seria necessário que a infraestrutura de rede existente tivesse a capacidade de agrupar portas de switches, separando-as em segmentos lógicos. Quer dizer, deveria ser possível criar '''redes locais virtuais''', como mostrado na seguinte figura:<br />
<br />
[[imagem:Vlans.png]]<br />
<br />
No exemplo acima, três redes locais virtuais ('''VLAN''') foram implantadas nos switches. Cada rede local virtual é composta por um certo número de computadores, que podem estar conectados a diferentes switches. Assim, uma rede local pode ter uma estrutura lógica diferente da estrutura física (a forma como seus computadores estão fisicamente interligados). Uma facilidade como essa funcionaria, de certa forma, como um ''patch panel'' virtual, que seria implementado diretamente nos switches.<br />
<br />
'''Redes locais virtuais''' são técnicas para implantar duas ou mais redes locais com topologias arbitrárias, usando como base uma infraestrutura de rede local física. Isso é semelhante a máquinas virtuais, em que se criam computadores virtuais sobre um computador real.<br />
<br />
<br />
==== Padrão IEEE 802.1q ====<br />
<br />
Os primeiros switches com suporte a VLANs as implementavam de forma legada (i.e. não seguiam um padrão da indústria). Isso impedia que houvesse interoperabilidade entre equipamentos de diferentes fabricantes. Logo a IEEE formou um grupo de trabalho para propor mecanismos padronizados para implantar VLANs, dando origem ao padrão [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1Q-2005.pdf IEEE 802.1q]. Os fabricantes de equipamentos de rede o adataram largamente, suplantando outras tecnologias legadas (ex: [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094665.shtml ISL] e [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094c52.shtml VTP] da Cisco). Com isso, VLANs IEEE 802.1q podem ser criadas usando switches de fabricantes diferentes.<br />
<br />
Atualmente, a implantação de VLANs depende de switches com suporte ao padrão IEEE 802.1q. Assim, verifique quais dos switches do laboratório possuem suporte a VLAN:<br />
* D-Link DES-526 [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/manual-des3526.pdf (manual)]<br />
* Micronet SP 1658B [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/SP1658B_Manual.pdf (manual)]<br />
* 3Com 3224 [http://www.3com.com/prod/pt_la_amer/detail.jsp?tab=prodspec&sku=3C16479 (especificações)]<br />
<br />
Uma VLAN é identificada por um número, chamado VID (''VLAN Identifier''), sendo que a VLAN com VID 1 é considerada a ''VLAN default'' (configuração de fábrica). Em um switch com suporte a VLAN IEEE 802.1q, cada porta possui um (ou mais ...) VID, o que define a que VLAN pertence. Assim, para criar uma VLAN, devem-se modificar os VID das portas de switches que dela farão parte. <br />
<br />
Além do VID, a configuração da porta de um switch deve especificar o modo de operação da VLAN:<br />
* '''tagged:''' cada quadro transmitido ou recebido por essa porta deve conter o número da VLAN a que pertence. Esse modo é usado normalmente em portas que interligam switches.<br />
* '''untagged:''' quadros que entram e saem pela porta não possuem informação sobre a VLAN a que pertencem. Usado normalmente para conectar computadores e servidores a switches.<br />
<br />
<br />
Esses modos '''tagged''' e '''untagged''' implicam haver uma forma de um quadro Ethernet informar a que VLAN pertence. Isso é usado para restringir a propagação de quadros, fazendo com que sejam recebidos e transmitidos somente por portas de switches que fazem parte de suas VLANs. <br />
<br />
<br />
O padrão IEEE 802.1q define, entre outras coisas, uma extensão ao quadro MAC para identificar a que VLAN este pertence. Essa extensão, denominada tag (etiqueta) e mostrada na figura abaixo, compõe-se de 4 bytes situados entre os campos de endereço de origem e ''Type''. O identificador de VLAN (VID) ocupa 12 bits, o que possibilita portanto 4096 diferentes VLANs.<br />
<br />
<br />
[[imagem:Quadro-8021q.png]]<br />
<br>''Quadro ethernet com a TAG IEEE 802.1q''<br />
<br />
<br />
A ''tag'' de VLAN, inserida em quadros Ethernet, está diretamente relacionada com os modos '''tagged''' e '''untagged''' de portas de switches. Portas em modo '''tagged''' transmitem e recebem quadros que possuem ''tag'', e portas em modo '''untagged''' recebem e transmitem quadros que não possuem ''tag''. Isso foi pensado para tornar a implantação de VLANs transparente para os usuários finais, pois seus computadores não precisarão saber que existem VLANs (i.e. não precisarão interpretar ''tags''). Por isso equipamentos que não interpretam ''tags'' são denominados ''VLAN-unaware'' (desconhecem VLAN), e equipamentos que recebem e transmitem quadros com ''tag'' são referidos como ''VLAN-aware'' (conhecem VLAN).<br />
<br />
<br />
'''Exemplo: simulador de switch com VLAN:'''<br />
<br>Esta animação possibilita simular a configuração de VLANs em um switch, e efetuar testes de transmissão. Experimente criar diferentes VLANs e observar o efeito em transmissões unicast e broadcast (clique na figura para acessar o simulador).<br />
<br />
[[imagem:Simulador-vlan.png|link=http://www2.rad.com/networks/2006/vlan/demo.htm|Um simulador de VLANs]]<br />
<br />
== Redes locais e VLANs == <br />
<br />
<br />
'''Exemplo:''' a configuração do [[Netkit]] mostrada abaixo cria uma pequena rede composta por um switch e quatro computadores. Além disso, foram definidas duas VLANs (VLAN 5 e VLAN 10). Com isso, os computadores ''pc1'' e ''pc4'' pertencem a VLAN 5, e os computadores ''pc2'' e ''pc3'' estão na VLAN 10. Execute a rede abaixo e teste a comunicação entre os computadores - quais computadores conseguem se comunicar ?.<br />
<br />
{| border="0" cellpadding="3"<br />
|-<br />
| <syntaxhighlight lang=text><br />
sw[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=generic<br />
<br />
# As portas do switch<br />
sw[eth0]=port0:vlan_untagged=5<br />
sw[eth1]=port1:vlan_untagged=10<br />
sw[eth2]=port2:vlan_untagged=10<br />
sw[eth3]=port3:vlan_untagged=5<br />
<br />
# Ligando os computadores ao switch<br />
pc1[eth0]=port0:ip=192.168.0.1/24<br />
pc2[eth0]=port1:ip=192.168.0.2/24<br />
pc3[eth0]=port2:ip=192.168.0.3/24<br />
pc4[eth0]=port3:ip=192.168.0.4/24<br />
</syntaxhighlight> || [[imagem:Vlans-ex1.png]]<br />
|}<br />
<br />
Por exemplo, em uma pequena rede com duas VLANs as portas dos switches podem estar configuradas da seguinte forma:<br />
<br />
<br />
{| border="0" cellpadding="2"<br />
|-<br />
|[[imagem:Bridge3.png]] || <syntaxhighlight lang=text><br />
switch1[type]=switch<br />
switch2[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=gateway<br />
pc5[type]=generic<br />
pc6[type]=generic<br />
<br />
pc1[default_gateway]=192.168.0.4<br />
pc2[default_gateway]=192.168.0.4<br />
pc3[default_gateway]=192.168.1.4<br />
pc5[default_gateway]=192.168.1.4<br />
pc6[default_gateway]=192.168.0.4<br />
<br />
switch1[eth0]=sw1-port0:vlan_untagged=5<br />
switch1[eth1]=sw1-port1:vlan_untagged=5<br />
switch1[eth2]=sw1-port2:vlan_untagged=10<br />
switch1[eth3]=link-sw1-sw2:vlan_tagged=5,10<br />
<br />
switch2[eth0]=sw2-port0:vlan_tagged=5,10<br />
switch2[eth1]=sw2-port1:vlan_untagged=10<br />
switch2[eth2]=sw2-port2:vlan_untagged=5<br />
switch2[eth3]=link-sw1-sw2:vlan_tagged=5,10<br />
<br />
pc1[eth0]=sw1-port0:ip=192.168.0.1/24<br />
pc2[eth0]=sw1-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw1-port2:ip=192.168.1.3/24<br />
pc4[eth0]=sw2-port0:vlan_tagged=(5,ip=192.168.0.4/24),(10,ip=192.168.1.4/24)<br />
pc5[eth0]=sw2-port1:ip=192.168.1.5/24<br />
pc6[eth0]=sw2-port2:ip=192.168.0.6/24<br />
</syntaxhighlight><br />
|}<br />
<br />
'''Exercício:''' Redesenhe a topologia LÓGICA para essa rede!<br />
<br />
<br />
=== Atividade 1 ===<br />
<br />
Na figura abaixo, a rede da esquerda está fisicamente implantada em uma pequena empresa. No entanto, uma reestruturação tem como objetivo modificá-la de acordo com o diagrama mostrado à direita. Essa alteração da rede deve ser feita sem adicionar switches ou modificar o cabeamento (tampouco devem-se mudar as conexões de pontos de rede às portas de switches). Faça essa modificação usando o [[Netkit]].<br />
<br />
[[imagem:Vlan-ex1.png]]<br />
<br />
# '''Criar a topologia física:'''<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=generic<br />
pc5[type]=generic<br />
pc6[type]=generic<br />
<br />
sw1[eth0]=sw1-port0<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-port2<br />
sw1[eth3]=link-sw1-sw2<br />
<br />
sw2[eth0]=sw2-port0<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-port2<br />
sw2[eth3]=link-sw1-sw2<br />
<br />
pc1[eth0]=sw1-port0<br />
pc2[eth0]=sw1-port1<br />
pc6[eth0]=sw1-port2<br />
<br />
pc3[eth0]=sw2-port0<br />
pc4[eth0]=sw2-port1<br />
pc5[eth0]=sw2-port2<br />
</syntaxhighlight><br />
# '''Exercício:''' Criar a topologia lógica usando VLANs<br>''... isso é com vocês!''<br />
<br />
=== A nova rede do IFSC-SJ ===<br />
<br />
'''Desafio:''' Voltando à segmentação da rede do campus São José, implemente a nova rede usando VLANs!<br />
<br />
<br />
{| border="0" cellpadding="2"<br />
|-<br />
|[[imagem:Ifsc-sj-simples.png|400px]] || [[imagem:Ier-seta.png]]|| [[imagem:Nova-rede-ifsc-sj.png|400px]]<br />
|}<br />
<br />
Primeiro isso será realizado usando o [[Netkit]], e em seguida será implantado no laboratório. Para simplificar a rede, vamos assumir que a topologia física está implantada como mostrado na figura acima, à esquerda.<br />
<br />
{{collapse top | Configuração da rede do IFSC-SJ}}<br />
<syntaxhighlight lang=text><br />
# switches<br />
sw-rnp[type]=switch<br />
sw-redes1[type]=switch<br />
sw-redes2[type]=switch<br />
sw-coinf[type]=switch<br />
sw-labdes[type]=switch<br />
<br />
# gateways<br />
asa5510[type]=gateway<br />
gw-redes1[type]=gateway<br />
gw-redes2[type]=gateway<br />
<br />
# computadores e servidores<br />
bd[type]=generic<br />
dmz1[type]=generic<br />
dmz2[type]=generic<br />
adm1[type]=generic<br />
adm2[type]=generic<br />
adm3[type]=generic<br />
pedag1[type]=generic<br />
pedag2[type]=generic<br />
pc-redes1[type]=generic<br />
pc-redes2[type]=generic<br />
<br />
# Portas dos switches<br />
sw-rnp[eth0]=rnp-port0<br />
sw-rnp[eth1]=rnp-port1<br />
sw-rnp[eth2]=rnp-port2<br />
sw-rnp[eth3]=rnp-port3<br />
sw-rnp[eth4]=rnp-port4<br />
sw-rnp[eth5]=rnp-port5<br />
<br />
sw-redes1[eth0]=redes1-port0<br />
sw-redes1[eth1]=redes1-port1<br />
<br />
sw-redes2[eth0]=redes2-port0<br />
sw-redes2[eth1]=redes2-port1<br />
<br />
sw-coinf[eth0]=coinf-port0<br />
sw-coinf[eth1]=coinf-port1<br />
sw-coinf[eth2]=coinf-port2<br />
# Ligações entre switches<br />
sw-coinf[eth3]=rnp-port5<br />
sw-coinf[eth4]=labdes-port3<br />
<br />
sw-labdes[eth0]=labdes-port0<br />
sw-labdes[eth1]=labdes-port1<br />
sw-labdes[eth2]=labdes-port2<br />
sw-labdes[eth3]=labdes-port3<br />
<br />
# Ligações dos computadores aos switches<br />
asa5510[eth0]=rnp-port0:ip=172.18.0.254/16<br />
bd[eth0]=rnp-port1:ip=172.18.0.10/16<br />
dmz1[eth0]=rnp-port2:ip=172.18.0.11/16<br />
adm1[eth0]=rnp-port3:ip=dhcp<br />
gw-redes1[eth1]=rnp-port4:ip=172.18.0.100/16<br />
<br />
pc-redes1[eth0]=redes1-port1:ip=192.168.1.2/24<br />
gw-redes1[eth0]=redes1-port0:ip=192.168.1.1/24<br />
<br />
pc-redes2[eth0]=redes2-port1:ip=192.168.2.2/24<br />
gw-redes2[eth0]=redes2-port0:ip=192.168.2.1/24<br />
<br />
dmz2[eth0]=coinf-port0:ip=172.18.0.13/16<br />
adm2[eth0]=coinf-port1:ip=dhcp<br />
pedag1[eth0]=coinf-port2:ip=dhcp<br />
<br />
adm3[eth0]=labdes-port0:ip=dhcp<br />
pedag2[eth0]=labdes-port1:ip=dhcp<br />
gw-redes2[eth1]=labdes-port2:ip=172.18.0.101/16<br />
<br />
# ASA 5510 é servidor dhcp da LAN ...<br />
asa5510[dhcp]=eth0:range=172.18.100.1,172.18.100.250:gateway=172.18.0.254<br />
<br />
# Gateways default dos computadores que usam IP fixo<br />
gw-redes1[default_gateway]=172.18.0.254<br />
gw-redes2[default_gateway]=172.18.0.254<br />
pc-redes1[default_gateway]=192.168.1.1<br />
pc-redes2[default_gateway]=192.168.2.1<br />
bd[default_gateway]=172.18.0.254<br />
dmz1[default_gateway]=172.18.0.254<br />
dmz2[default_gateway]=172.18.0.254<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}}<br />
<br />
== Praticando VLANs com SWITCH Catalyst CISCO 2960S==<br />
<br />
===Uso dos Switches do Laboratório para a criação de VLANs===<br />
<br />
* uso da interface CLI da CISCO e comandos básicos;<br />
* gerenciamento de switches via TELNET;<br />
* configuração de VLANs distribuídas em 2 switches usando trunk e access;<br />
* uso de VLAN nativa para gerência comum.<br />
* configuração básica do switch após reset:<br />
<br />
<code><br />
hostname SW_1<br />
interface Vlan1<br />
ip address 192.168.1.111 255.255.255.0<br />
!<br />
ip default-gateway 192.168.1.1<br />
ip http server<br />
ip http secure-server<br />
!<br />
line con 0<br />
line vty 0 4<br />
password CISCO<br />
login<br />
line vty 5 15<br />
password CISCO<br />
login<br />
enable secret CISCO<br />
<br />
wr<br />
<br />
</syntaxhighlight><br />
<br />
Para zerar a configuração:<br />
<br />
<code><br />
<br />
erase startup-config<br />
erase running-config<br />
wr<br />
reload<br />
!<br />
! depois executar os comandos anteriores via console<br />
!<br />
</syntaxhighlight><br />
<br />
Configurando vlan no switch<br />
<br />
<code><br />
<br />
Switch>enable<br />
<br />
Switch#configure terminal<br />
<br />
Switch(config)#vlan 10<br />
<br />
Switch(config-vlan)#name dep-administrativo<br />
<br />
Switch(config-vlan)#exit<br />
<br />
Switch(config)#<br />
<br />
Switch(config)#interface fastEthernet 0/1<br />
<br />
Switch(config-if)#switchport mode access<br />
<br />
Switch(config-if)#switchport access vlan 10<br />
<br />
Switch(config-if)#exit<br />
<br />
Switch(config)#exit<br />
<br />
Switch#sh vlan<br />
<br />
</syntaxhighlight><br />
<br />
Configurando trunk no switch e interface nativa para gerenciamento comum<br />
<br />
<code><br />
<br />
Switch>enable<br />
<br />
Switch#configure terminal<br />
<br />
Switch(config)#interface fastEthernet 0/1<br />
<br />
Switch(config-if)#switchport mode trunk<br />
<br />
Switch(config-if)#switchport mode native vlan 1<br />
<br />
</syntaxhighlight><br />
<br />
Para apagar vlans:<br />
<br />
<code><br />
<br />
no vlan 2-1000<br />
<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}} <br />
<br />
{{Collapse top | 02/03 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d}}<br />
<br />
==02/03 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d==<br />
<br />
=== O problema dos ciclos (caminhos fechados) em uma rede local ethernet ===<br />
<br />
Bibliografia associada:<br />
* Capítulo 15 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.<br />
* Capítulo 5 do livro "''Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição'', de James Kurose.<br />
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.<br />
<br />
Outros materiais:<br />
* Introdução a STP (ver [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/stp.pdf slides])<br />
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/spanning_tree1.swf Uma animação sobre STP].<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/stp.pdf Um texto explicativo sobre STP]<br />
* [http://en.wikipedia.org/wiki/Spanning_tree_protocol STP na Wikipedia]<br />
<br />
Após implantar a [[RCO2-2012-1#Atividade_3|nova rede do IF-SC SJ]], a equipe da gerência de rede passou a acompanhar seu uso pela comunidade escolar. E um certo dia um aluno acidentalmente pegou um cabo e ligou em duas tomadas de rede em um laboratório (que está na Subrede ''Pedagógica''). Quer dizer, ele fez algo assim com um dos switches da rede:<br />
<br />
<br />
[[imagem:Curto-lan.png]]<br />
<br />
<br />
A interligação acidental de duas portas de um switch cria um ciclo na rede local (''loop''). Mas isso pode ser feito também de forma intencional, pois em LANs grandes pode ser desejável ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto é algo que pode ocorrer em uma rede local, seja por acidente ou com a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Um caso em que uma rede possui um ciclo intencionalmente colocado pode ser visto na LAN abaixo:<br />
<br />
[[imagem:LAN-anel-stp.png]]<br />
<br />
Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa ficaria travada devido a um efeito chamado de ''tempestade de broadcasts'' (''broadcast storm''). Isso acontece porque, ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manualmente tira o sentido de ter tal configuração para tolerância a falhas (e não impede um "acidente" como aquele descrito no início desta secão), por isso foi criado o protocolo [http://en.wikipedia.org/wiki/Spanning_Tree_Protocol STP] (''Spanning Tree Protocol'', definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa. <br />
<br />
<br />
Voltando ao problema do loop acidental (ou proposital...) colocado entre portas de um mesmo switch, vamos avaliar o que ocorreria na prática sem um protocolo STP.<br />
<br />
<br />
[[imagem:Curto-lan.png]]<br />
<br />
<br />
Para ver a consequência dessa ação aparentemente inocente, experimente reproduzi-la em uma rede feita com o [[Netkit]]:<br />
<br />
{| border="0" cellpadding="2"<br />
|-<br />
|[[imagem:Stp-ex1.png]] || <syntaxhighlight lang=text><br />
pc1[type]=generic<br />
pc2[type]=generic<br />
sw[type]=switch<br />
<br />
sw[eth0]=port0<br />
sw[eth1]=port1<br />
<br />
pc1[eth0]=port0:ip=192.168.0.1/24<br />
pc2[eth0]=port1:ip=192.168.0.2/24<br />
<br />
# ... a barbeiragem do usuário da rede no switch !<br />
sw[eth2]=link-barbeiragem<br />
sw[eth3]=link-barbeiragem<br />
</syntaxhighlight><br />
|}<br />
<br />
<br />
'''O que ocorreu ao tentar pingar de pc1 para pc2 ?'''<br />
<br />
* Abra a ferramenta "monitor do sistema" do UBUNTU para constatar a carga de processamento do processador de seu PC e conclua o que está acontecendo.<br />
<br />
Agora vamos observar o STP em ação na rede abaixo <br />
<br />
[[imagem:LAN-anel-stp.png]]<br />
<br />
* Configuração para o Netkit:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
sw3[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on<br />
sw2[stp]=on<br />
sw3[stp]=on<br />
<br />
sw1[eth0]=sw1-sw2<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-sw3<br />
<br />
sw2[eth0]=sw1-sw2<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-sw3<br />
<br />
sw3[eth0]=sw1-sw3<br />
sw3[eth1]=sw3-port1<br />
sw3[eth2]=sw2-sw3<br />
<br />
pc1[eth0]=sw1-port1:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw3-port1:ip=192.168.0.3/24<br />
</syntaxhighlight><br />
<br />
Abra o wireshark ou tcpdump em qualquer interface da rede e observe todos os parâmetros do pacote BPDU trocados entre Switches. Neste momento o algorítimo do STP já executou todas as suas etapas e convergiu bloqueando portas para tornar a rede em uma topologia tipo árvore. Os pacotes BPDU irão aparecer periodicamente nessa rede até que exista uma falha ou mudança na topologia física para que exista uma nova etapa do algorítimo STP.<br />
<br />
=== Atividade 1 ===<br />
<br />
Vamos realizar [[RCO2-lab4|um experimento]] para entender melhor como funciona o STP. <br />
<br />
<!--Usem o arquivo de configuração do Netkit a seguir para o experimento:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
sw3[type]=switch<br />
sw4[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=generic<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on<br />
sw2[stp]=on<br />
sw3[stp]=on<br />
sw4[stp]=on<br />
<br />
sw1[eth0]=sw1-sw2<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-sw3<br />
sw1[eth3]=sw1-sw4<br />
<br />
sw2[eth0]=sw1-sw2<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-sw3<br />
sw2[eth3]=sw2-sw4<br />
<br />
sw3[eth0]=sw1-sw3<br />
sw3[eth1]=sw3-port1<br />
sw3[eth2]=sw2-sw3<br />
sw3[eth3]=sw3-sw4<br />
<br />
sw4[eth0]=sw1-sw4<br />
sw4[eth1]=sw2-sw4<br />
sw4[eth2]=sw3-sw4<br />
sw4[eth3]=sw4-port4<br />
<br />
pc1[eth0]=sw1-port1:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw3-port1:ip=192.168.0.3/24<br />
pc4[eth0]=sw4-port4:ip=192.168.0.4/24<br />
</syntaxhighlight><br />
--><br />
<br />
<br />
Switches reais usualmente possuem suporte a [[IER-2011-1#Interliga.C3.A7.C3.A3o_de_LANs_e_Spanning_Tree_Protocol_.28STP.29|STP (''Spanning Tree Protocol'')]] para possibilitar haver enlaces redundantes em uma rede local. No Netkit podem-se criar redes em que se usa o STP, que deve ser ativado no switches. <br />
<br />
<br />
Para criar essa rede no Netkit pode-se usar a seguinte configuração:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
sw3[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on:bridge_priority=1024<br />
sw2[stp]=on:bridge_priority=128<br />
sw3[stp]=on:bridge_priority=500<br />
<br />
sw1[eth0]=sw1-sw2<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-sw3<br />
<br />
sw2[eth0]=sw1-sw2<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-sw3<br />
<br />
sw3[eth0]=sw1-sw3<br />
sw3[eth1]=sw3-port1<br />
sw3[eth2]=sw2-sw3<br />
<br />
pc1[eth0]=sw1-port1:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw3-port1:ip=192.168.0.3/24<br />
</syntaxhighlight><br />
<br />
A configuração do STP se faz pelo atributo especial ''stp'' a ser especificado para cada switch. A opção ''on'' ativa o STP, e ''bridge_priority'' define a prioridade do switch no escopo do STP. <br />
<br />
Como os switches podem ser configurados com múltiplas vlans, o STP deve ser ativado apropriadamente. Isso significa que cada vlan deve ter o STP rodando de forma independente. A configuração do Netkit para especificar o STP para cada vlan segue abaixo:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on:bridge_priority=1024:vlan=5<br />
sw1[stp]=on:bridge_priority=512:vlan=10<br />
</syntaxhighlight><br />
<br />
Nesse exemplo, o switch ''sw1'' tem o STP ativado na vlans 5 e 10. Os parâmetros do STP inclusive podem ser diferentes em cada vlan, já que ele opera em cada uma de forma independente (i.e. o STP em uma vlan não interfere com o STP em outra vlan). Vlans em que o stp não foi explicitamente ativado usarão a configuração default do stp, a qual é definida omitindo-se informação sobre vlan:<br />
<br />
<syntaxhighlight lang=text><br />
# Configuração default do STP em um switch ... vale para todas as vlans em que <br />
# o stp não foi configurado individualmente.<br />
sw1[stp]=on<br />
<br />
# A configuração default pode conter quaisquer opções do stp, menos vlan:<br />
sw2[stp]=on:bridge_priority=2000<br />
</syntaxhighlight><br />
<br />
Um último detalhe sobre o STP diz respeito ao custo e prioridade de cada porta do switch. No STP usado em switches reais, o custo de uma porta é dado pela sua velocidade. Assim, portas mais velozes têm custo menor que portas mais lentas, como por exemplo portas 1 Gbps comparadas a 100 Mbps. No Netkit não existe essa diferenciação entre as interfaces ethernet por serem emuladas, mas pode-se especificar manualmente o custo de cada interface a ser usado pelo STP. A configuração necessária deve ser colocada em cada porta da seguinte forma:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on:bridge_priority=1024<br />
<br />
sw1[eth0]=port0:stp_cost=10<br />
sw1[eth1]=port1:stp_cost=100<br />
</syntaxhighlight><br />
<br />
Assim, nesse exemplo a interface eth0 do switch ''sw1'' tem custo STP 10, e a interface eth1 tem custo 100. Os custos de interfaces de acordo com a norma IEEE 802.1d pode ser visto na seguinte tabela:<br />
<br />
[[imagem:Stp-custos.png]]<br />
<br />
<br />
A lista completa de opções que podem ser usadas na configuração do STP no Netkit segue abaixo:<br />
<br />
<syntaxhighlight lang=text><br />
# STP no switch:<br />
# bridge_priority: prioridade do switch no STP<br />
# hello_time: intervalo entre envios de BPDU<br />
# max_age: tempo máximo que o STP pode ficar sem receber uma atualização de BPDU de outro switch<br />
# forward_delay: atraso para enviar uma BPDU notificando uma mudança de configuração do STP<br />
# on: ativa o STP<br />
# off: inicia com STP desativado<br />
<br />
sw1[stp]=on:vlan=10:bridge_priority=100:hello_time=2:max_age=10:forward_delay=1<br />
<br />
# Porta do switch: pode ter as opções stp_cost (custo da porta) e stp_prio (prioridade da porta)<br />
sw1[eth0]=port0:stp_cost=10:stp_prio=1<br />
<br />
</syntaxhighlight><br />
<br />
<!--<br />
* Faça o exercício proposto pelo professor envolvendo agora, VLANs e o STP na mesma rede.<br />
<br />
'''Exercício Desafio:''' Acrescentando enlaces redundantes na rede da escola. <br><br />
<br />
# Voltando à segmentação da rede do campus São José, Acrescente alguns enlaces para conferir um grau de tolerância a falhas.<br />
# Dada a dimensão da rede, isso será realizado usando o [[Netkit]]. Sendo assim, implante a rede acima e ative o STP para tratar os caminhos fechados. Em seguida, experimente modificar alguns links para verificar se a rede continua funcionando.<br />
<br />
{{collapse top|Modelo da rede do IFSC-SJ para o Netkit}}<br />
<syntaxhighlight lang=text><br />
# switches<br />
sw-rnp[type]=switch<br />
sw-redes1[type]=switch<br />
sw-redes2[type]=switch<br />
sw-coinf[type]=switch<br />
sw-labdes[type]=switch<br />
<br />
# gateways<br />
asa5510[type]=gateway<br />
gw-redes1[type]=gateway<br />
gw-redes2[type]=gateway<br />
<br />
# computadores e servidores<br />
bd[type]=generic<br />
dmz1[type]=generic<br />
dmz2[type]=generic<br />
adm1[type]=generic<br />
adm2[type]=generic<br />
adm3[type]=generic<br />
pedag1[type]=generic<br />
pedag2[type]=generic<br />
pc-redes1[type]=generic<br />
pc-redes2[type]=generic<br />
<br />
# Portas dos switches<br />
sw-rnp[eth0]=rnp-port0<br />
sw-rnp[eth1]=rnp-port1<br />
sw-rnp[eth2]=rnp-port2<br />
sw-rnp[eth3]=rnp-port3<br />
sw-rnp[eth4]=rnp-port4<br />
sw-rnp[eth5]=rnp-port5<br />
<br />
sw-redes1[eth0]=redes1-port0<br />
sw-redes1[eth1]=redes1-port1<br />
<br />
sw-redes2[eth0]=redes2-port0<br />
sw-redes2[eth1]=redes2-port1<br />
<br />
sw-coinf[eth0]=coinf-port0<br />
sw-coinf[eth1]=coinf-port1<br />
sw-coinf[eth2]=coinf-port2<br />
# Ligações entre switches<br />
sw-coinf[eth3]=rnp-port5<br />
sw-coinf[eth4]=labdes-port3<br />
<br />
sw-labdes[eth0]=labdes-port0<br />
sw-labdes[eth1]=labdes-port1<br />
sw-labdes[eth2]=labdes-port2<br />
sw-labdes[eth3]=labdes-port3<br />
<br />
# Ligações dos computadores aos switches<br />
asa5510[eth0]=rnp-port0:ip=172.18.0.254/16<br />
bd[eth0]=rnp-port1:ip=172.18.0.10/16<br />
dmz1[eth0]=rnp-port2:ip=172.18.0.11/16<br />
adm1[eth0]=rnp-port3:ip=dhcp<br />
gw-redes1[eth1]=rnp-port4:ip=172.18.0.100/16<br />
<br />
pc-redes1[eth0]=redes1-port1:ip=192.168.1.2/24<br />
gw-redes1[eth0]=redes1-port0:ip=192.168.1.1/24<br />
<br />
pc-redes2[eth0]=redes2-port1:ip=192.168.2.2/24<br />
gw-redes2[eth0]=redes2-port0:ip=192.168.2.1/24<br />
<br />
dmz2[eth0]=coinf-port0:ip=172.18.0.13/16<br />
adm2[eth0]=coinf-port1:ip=dhcp<br />
pedag1[eth0]=coinf-port2:ip=dhcp<br />
<br />
adm3[eth0]=labdes-port0:ip=dhcp<br />
pedag2[eth0]=labdes-port1:ip=dhcp<br />
gw-redes2[eth1]=labdes-port2:ip=172.18.0.101/16<br />
<br />
# ASA 5510 é servidor dhcp da LAN ...<br />
asa5510[dhcp]=eth0:range=172.18.100.1,172.18.100.250:gateway=172.18.0.254<br />
<br />
# Gateways default dos computadores que usam IP fixo<br />
gw-redes1[default_gateway]=172.18.0.254<br />
gw-redes2[default_gateway]=172.18.0.254<br />
pc-redes1[default_gateway]=192.168.1.1<br />
pc-redes2[default_gateway]=192.168.2.1<br />
bd[default_gateway]=172.18.0.254<br />
dmz1[default_gateway]=172.18.0.254<br />
dmz2[default_gateway]=172.18.0.254<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}}<br />
<br />
--><br />
<br />
== Agregamento de enlaces ou Port Aggregation e Exercícios ==<br />
<br />
==Padrão IEEE802.1ax (anterior IEEE802.1ad) Agregamento de enlaces ==<br />
<br />
'''Agregação de enlace (bonding ou port trunking)'''<br />
<br />
O Linux possui suporte a agregação de enlaces, em que se agrupam interfaces ethernet (vinculação de portas) de forma a parecerem uma única interface (chamado de [http://www.linuxhorizon.ro/bonding.html Linux Channel Bonding]). A interface agregada tem prefixo ''bond'', e assim deve ser identificada como ''bond0'', ''bond1'' e assim por diante. Para criar um enlace agregado no Netkit basta declarar em um switch uma interface desse tipo. A sintaxe da declaração é praticamente idêntica a de interfaces ethernet, como se pode ver abaixo:<br />
<br />
<syntaxhighlight lang=text><br />
pc1[type]=generic<br />
pc2[type]=generic<br />
sw1[type]=switch<br />
sw2[type]=switch<br />
<br />
pc1[eth0]=sw1-port0:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port0:ip=192.168.0.2/24<br />
<br />
sw1[eth0]=sw1-port0<br />
sw2[eth0]=sw2-port0<br />
<br />
# Define em cada switch uma interface bond0 que agrega dois enlaces.<br />
# O enlace agregado deve ser composto por uma ou mais interfaces ethernet.<br />
# O nome do enlace agregado é sw1-sw2 no exemplo.<br />
<br />
sw1[bond0]=sw1-sw2:interfaces=eth1,eth2<br />
sw2[bond0]=sw1-sw2:interfaces=eth1,eth2<br />
</syntaxhighlight><br />
<br />
Nesse exemplo o enlace agregado foi criado entre os switches ''sw1'' e ''sw2''. Como se pode notar, existe uma opção de configuração adicional ''interfaces'', usada para listar as interfaces ethernet a serem agrupadas. Essas interfaces não devem ser declaradas explicitamente. Além disso, não se podem configurar VLANs na interface agregada (''bond0'' no exemplo). Por fim, mais de um enlace agregado pode ser criado no mesmo switch, bastando identificá-los por interfaces ''bond'' diferentes (''bond1'', ''bond2'', ...).<br />
<br />
O exemplo acima cria a seguinte rede:<br />
<br />
[[imagem:Bond.png]]<br />
<br />
===Port Trunking com Switches CISCO===<br />
<br />
Consulte o link [[http://www.dltec.com.br/blog/cisco/aumentando-a-banda-no-backbone-etherchannel-para-ccnas-rs/ sobre Etherchannel ou PAgP]]<br><br />
<br />
Use: <br><br />
- (config)#interface range g0/21-24 <br><br />
- (config-if-range)#channel-group 1 mode on<br />
<br />
Use "show etherchannel 1 summary" para visualizar as portas vinculadas ao canal de portas 1 .É importante destacar que a parte de trunk 802.1Q e permissão de VLANs já está OK.<br />
<br />
Consulte o link [[http://www.dltec.com.br/blog/cisco/aumentando-a-banda-no-backbone-etherchannel-para-ccnas-rs/ sobre Protocolo LACP]] <br><br />
<br />
Neste caso está se utilizando o padrão [[http://en.wikipedia.org/wiki/Link_aggregation | IEEE802.1ad (ou IEEE802.1ax - mais recente)]]. A diferença fica por conta do uso do modo "active" no lugar de "on".<br />
<br />
===Cascateamento versus Empilhamento===<br />
<br />
Os switches ainda possuem uma facilidade em nível físico chamada empilhamento (ou stack) que tem a função de ampliar as capacidades de portas sem comprometer significativamente a latência de pacotes em trânsito (fase forwarding). O mais eficiente, porém com mais custo, é o empilhamento por backplane onde um cabo proprietário de comprimento não maior que 1 metro, é conectado entre portas de entrada e saída específicas para este fim, geralmente na trazeira do switch, formando um anel dos swicthes empilhados. Os switches empilhados se comportam como um só e a gerência deles é muito mais facilitada com um único endereço IP. Já o cascateamento usando portas comuns ou portas específicas de altas taxas (fibra) chamadas UPLINK, mesmo usando o agregamento de link exposto na seção anterior, resolve a questão do congestionamento de toda a transferência de dados oriundas/destinadas aos ramos descendentes destas portas mas torna-se difícil a gerência de cada switch e a latência além de reduzir o desempenho da rede pode impedir até o funcionamento de algorítimos como o STP. <br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |07/03 - Redes sem fio e o Padrão IEEE 802.11}}<br />
<br />
== 07/03 - Redes sem fio e o Padrão IEEE 802.11 ==<br />
<br />
<br />
*[http://tele.sj.ifsc.edu.br/~casagrande/RED/lista4_2014_2.pdf LISTA4] de exercícios para a avaliação A4<br />
*[http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/wlan.pdf Conceitos básicos da arquitetura IEEE802.11]<br />
*[http://pt.wikipedia.org/wiki/Wi-Fi wifi na wikipedia.]<br />
*[http://forum.baboo.com.br/index.php?/topic/269602-redes-wireless/ um tutorial fácil de entender...]<br />
*[http://www.infowester.com/wifi.php um tutorial mais recente...]<br />
<br />
* Ver capítulo 15 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.<br />
* Ver capítulo 6 do livro ''Redes de Computadores e a Internet, 3a ed.'', de James Kurose.<br />
* Ver capítulo 4 (seção 4.4) do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum.<br />
<br />
=== Introdução ===<br />
<br />
Redes sem-fio se tornaram uma tecnologia largamente difundida e de uso corriqueiro, principalmente em sua versão para redes locais. Graças a ela, as pessoas não precisam usar cabos para ter acesso à rede, e podem se comunicar em qualquer localização dentro do alcance da rede sem-fio. Mesmo usuários em movimento podem se manter em comunicação pela rede sem-fio. Essas características atraentes da tecnologia fazem com que ela seja naturalmente desejável nas LANs<br />
<br />
A implantação de uma rede sem-fio deve atender alguns requisitos levantados pelo administrador de uma rede, os quais serão discutidos ao longo desta seção. Antes de pensar nos detalhes a serem observados, devem-se conhecer as características de comunicação de dados por um canal sem-fio e os mecanismos inventados para efetuar esse tipo de comunicação.<br />
<br />
=== Alguns usos de redes sem-fio ===<br />
<br />
[[imagem:WLAN-comum.gif]]<br><br />
''Redes locais sem-fio''<br />
<br />
<br />
[[imagem:Wireless_point_to_point.jpg]]<br><br />
''Enlaces ponto-a-ponto de média/longa distância''<br />
<br />
<br />
[[imagem:Wlan-train.png]]<br><br />
''Prover conectividade em ferrovias''<br />
<br />
<br />
[[imagem:Body-network.jpg]]<br><br />
''Redes de dispositivos acoplados ao corpo de uma pessoa''<br />
<br />
<br />
[[imagem:SensorWebImageForEnewsJuly2.jpg]]<br><br />
''Redes de sensores''<br />
<br />
<br />
[[imagem:v2v.jpg]]<br><br />
''Redes entre veículos (experimental)''<br />
<br />
===O Padrão IEEE 802.11===<br />
<br />
Dentre as várias tecnologias de comunicação sem-fio existentes, o padrão IEEE 802.11 para redes locais tem ampla utilização. Conhecido popularmente como Wi-Fi (um trocadilho com Hi-Fi, uma qualidade atribuída a aparelhos de som e que significa ''High-Fidelity''), está presente praticamente em todos os lugares hoje em dia - desde escolas, empresas, aeroportos, supermercados, restaurantes, cafés e residências, e até mesmo em espaços abertos de cidades (ver ''Cidades Digitais''). Muitos dos problemas existentes nesse tipo de rede (alguns resolvidos e outros não), e características de funcionamento, são comuns a outras tecnologias menos conhecidas, porém também importantes em suas áreas de aplicação. Por isso nosso estudo se concentrará nesse padrão de redes sem-fio, para conhecê-lo com razoável profundidade. Como consequência, além de entender como funciona uma rede IEEE 802.11, os conhecimentos obtidos habilitarão a compreensão de outras tecnologias de redes sem-fio.<br />
<br />
* Apresentaram-se as possíveis formas de organização de uma rede IEEE 802.11:<br />
** '''Rede infraestruturada:''' uso de uma estação central, que intermedia as transmissões das demais estações.<br><br>[[imagem:Infrastructure-bss.png]]<br><br />
** '''Rede Ad-Hoc:''' estações se comunicam livremente com suas estações vizinhas.<br><br>[[imagem:Adhoc-bss.png]]<br><br />
** '''Rede Mesh:''' estações se comunicam livremente, mesmo que existam múltiplos saltos (''multihop'').<br><br>[[imagem:Mesh_topology.gif]]<br><br />
<br />
=== Os problemas dos nós ocultos e nós escondidos ===<br />
<br />
==== Simulações (animações) sobre CSMA/CA ====<br />
<br />
* [http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/csma-ca/withouthidden.html CSMA/CA sem nodos escondidos (Kurose)]<br />
* [http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/csma-ca/withhidden.html CSMA/CA com nodos escondidos (Kurose)]<br />
:Outras simulações (animações) sobre CSMA/CA:<br />
* [http://tintillier.org/wifi/index.html Algumas animações sobre CSMA/CA (University of Teeside - UK)]<br />
<br />
=== O Protocolo CSMA/CA ===<br />
<br />
Pode-se descrever em alto-nível o algoritmo do CSMA/CA (simplificando alguns detalhes) com o fluxograma abaixo:<br />
<br />
<br />
[[imagem:Fluxograma-csma-ca.png]]<br><br />
''Fluxograma para MAC CSMA/CA em modo contenção (função DCF). Esse fluxograma não mostra as esperas de intervalos entre quadros (IFS). Cw significa Janela de Contenção (Contention Window), e Cwmin é seu valor mínimo definido na norma (15 no caso do IEEE 802.11g, e 31 para IEEE 802.11b).''<br />
<br />
<br />
Um último detalhe sobre o CSMA/CA trata dos intervalos entre quadros (IFS - ''Inter Frame Space''), que são tempos mínimos que um nodo deve esperar antes de transmitir um quadro, após o meio se tornar ocioso. Sua finalidade é priorizar o acesso ao meio para certos tipos de quadros, que têm urgência para serem enviados. Esse é o caso de quadros de confirmação (ACK) e CTS (''Clear To Send''). Um IFS menor corresponde a uma maior prioridade de transmissão de quadro. A figura abaixo ilustra os tipos de IFS:<br />
<br />
[[imagem:Ifs-csma-ca.gif]]<br><br />
''Intervalos entre quadros''<br />
<br />
* ''SIFS (Short Interframe Space):'' intervalo mais curto, usado antes do envio de quadros ACK e CTS.<br />
* ''PIFS (PCF Interframe Space):'' intervalo intermediário, usado quando em modo PCF (Point Coordination Function). O modo PCF implementa um tipo de acesso ao meio mestre-escravo. Raramente encontrado em equipamentos.<br />
* ''DIFS (Distributed Interframe Space):'' intervalo usual, aplicado no início de transmissões em geral (quadros de dados, associação, autenticação, RTS).<br />
<br />
'''Uso de RTS/CTS para tratar nodos escondidos'''<br />
<br />
[[image:Rts-cts.gif]]<br><br />
<br />
<!--<br />
'''Detecção de portadora virtual e NAV'''<br />
<br />
[[imagem:Fluxograma-nav.gif]]<br><br />
<br />
--><br />
<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 09/03 - Redes Wifi }}<br />
<br />
== 09/03 - Redes Wifi ==<br />
<br />
* ;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 14/03 -Avaliação A4 }}<br />
<br />
== 14/03 - ==<br />
<br />
* ;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 16/03 - REC A2 a A4 }}<br />
<br />
== 16/03 - REC A2 a A4 ==<br />
<br />
* ;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{ENGTELECO}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:IEEE80211e.pdf&diff=102704Arquivo:IEEE80211e.pdf2016-03-16T00:27:57Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=RED2-EngTel_(p%C3%A1gina)&diff=102703RED2-EngTel (página)2016-03-16T00:22:54Z<p>Lucas.lv: /* 29/02 - LANs Virtuais e Orientações para a Avaliação A5 */</p>
<hr />
<div>'''Professores da Unidade Curricular'''<br />
<br />
{{Professor|2015-2|[[Jorge Henrique B. Casagrande]] }}<br />
{{Professor|2015-1|[[Jorge Henrique B. Casagrande]] [[RED29005 2015-1|(Diario de aulas)]]}}<br />
{{Professor|2014-2|[[Jorge Henrique B. Casagrande]] [[RED29005 2014-2|(Diario de aulas)]]}}<br />
{{Professor|2014-1|[[Jorge Henrique B. Casagrande]] [[RED29005 2014-1|(Diario de aulas)]]}}<br />
<br />
<br />
= [[RED2-EngTel|Carga horária, Ementas, Bibliografia]]=<br />
<br />
<br />
=[[RED2-EngTel (Plano de Ensino) | Plano de Ensino]]=<br />
<br />
=Dados Importantes=<br />
''Professor'': [[Jorge Henrique B. Casagrande]]<br />
<br>''Email'': casagrande@ifsc.edu.br<br />
<br>''Atendimento paralelo'': 2as e 6as das 17:35 às 18:35h (Sala dos professores de TELE - ao lado da reprografia)<br />
<br> ''Endereço do grupo'': https://www.facebook.com/groups/667983626639907/<br />
<br> ''Link alternativo para Material de Apoio da disciplina'': http://www.sj.ifsc.edu.br/~casagrande/RED<br />
<br> Muitos conteúdos da disciplina estão sendo extraídos do material do professor '''Marcelo Sobral''' o qual já registro aqui meus agradecimentos pela autorização e apoio. Alguns deles foram inseridos ou adaptados para se ajustar ao planejamento ou perfil da turma.<br />
<br><br> Toda vez que voce encontrar a marcação <math>\blacklozenge</math> ao lado de alguma atividade, significa que essa atividade estará sendo computada na avaliação como AE ou AI. O prazo estabelecido para entrega estará destacado ao lado da atividade. Portanto, não perca o prazo limite para entrega. '''Atividades entregues fora do prazo não serão aceitas!'''<br />
<br />
=Avaliações=<br />
<br />
=Resultados das Avaliações=<br />
<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Matrícula<br />
!Aluno<br />
!AE1<br />
!AE2<br />
!AI<br />
!A1<br />
!A2<br />
!A3<br />
!A4<br />
!A5<br />
!REC A1<br />
!REC A2<br />
!REC A3<br />
!REC A4<br />
!REC A5<br />
!MÉDIA<br />
!CONCEITO<br />
|-<br />
|122001993-3||Anderson || || ||np ||20 ||38 ||56 || || ||38 || || || || || ||<br />
|-<br />
|122001504-0||Carlos || || ||np ||65 ||54 ||67 || || || -|| || || || || ||<br />
|-<br />
|132002623-0||Gabriel Cantu || || ||np ||30 ||55 ||82 || || ||93 || || || || || ||<br />
|-<br />
|122002394-9||Gabriel de Souza || || ||np ||64 ||73 ||82 || || ||- || || || || || ||<br />
|-<br />
|121003282-1||Gustavo Constante || || ||np ||63 ||50 ||70 || || ||- || || || || || ||<br />
|-<br />
|131001065-0||Gustavo Zacchi || || ||np || -||- ||- || || ||- || || || || || ||<br />
|-<br />
|132002999-0||Helenluciany|| || ||np ||45 ||61 ||70 || || ||92 || || || || || ||<br />
|-<br />
|131004419-8||Iago || || ||np ||23 ||24 ||67 || || ||33 || || || || || ||<br />
|-<br />
|131005150-0||Jessica || || ||np ||10 || -|| -|| || || -|| || || || || ||<br />
|-<br />
|121000492-5||Katharine || || ||np ||73 || 72||85 || || || -|| || || || || ||<br />
|-<br />
|121000484-4||Kristhine || || ||np ||73 ||55 ||75 || || || || || || || || ||<br />
|-<br />
|132004514-6||Letícia || || ||np ||41 ||63 ||- || || || 46|| || || || || ||<br />
|-<br />
|132002264-2||Lucas || || ||np ||70 ||81 ||93 || || ||79 || || || || || ||<br />
|-<br />
|131005334-0||Marcos || || ||np ||58 ||35 ||71 || || ||- || || || || || ||<br />
|-<br />
|132004278-3||Maria Luiza|| || ||np ||60 ||56 ||62|| || ||- || || || || || ||<br />
|-<br />
| ||André Weber || || ||np ||28 ||37 ||80|| || ||46 || || || || || ||<br />
|-<br />
| ||Fabiano|| || ||np ||30 ||70 ||61|| || ||- || || || || || ||<br />
|-<br />
| ||Gabriel Gonçalves || || ||np ||32 ||42 ||54 || || ||29 || || || || || ||<br />
|-<br />
| ||Maciel || || ||np ||19 ||37 ||46|| || ||33 || || || || || ||<br />
|-<br />
| ||Ramon|| || ||np ||20 ||35 ||-|| || ||22 || || || || || ||<br />
|-<br />
| ||Vinícius|| || ||np ||30 ||40 ||-|| || ||47 || || || || || ||<br />
|}<br />
<br />
<br />
<br />
'''LEGENDA E DETALHES'''<br />
<br />
;'''AE''' = Atividades Extras: 10% da Avaliação - abrange uma ou mais tarefas a serem divulgadas ao longo do semestre;<br />
;'''AI''' = Avaliação Individual: 10% da Avaliação final - abrange desempenho, assiduidade, cumprimento de tarefas em sala ou de listas de exercícios;<br />
;'''An''' = Avaliação ''n'': 20% da Avaliação (n=5) - Programadas para cada parte do programa;<br />
;'''REC An''' = Recuperação da Avaliação An: A recuperação de todas An serão em data única e o aluno só tem a obrigação de recuperar An<60;<br />
;'''np''' = não publicado aqui.<br />
;'''NF''' = Nota Final com critério de arredondamento de +/-5 pontos considerando a fórmula abaixo: '''NF''' = 0,16(soma{MaiorNota{An,REC An}}) + 0,1(médiaAE) + 0,1(AI)<br />
<br />
Se '''NF''' < 60 = '''D''' --> '''Reprovado''' <br><br />
Se 60 =< '''NF''' < 75 = '''C''' --> '''Aprovado''' <br><br />
Se 75 =< '''NF''' < 90 = '''B''' --> '''Aprovado'''<br><br />
Se '''NF''' >= 90 = '''A''' --> '''Aprovado'''<br><br />
<br />
=Recados Importantes=<br />
<br />
<br> '''Uso da Wiki:''' Todo o repositório de material de apoio e referências de nossas aulas passam a usar a Wiki de tele. Para interação fora da sala de aula, acessem nosso [https://www.facebook.com/groups/667983626639907/ grupo] do facebook. <br />
<br />
<br> '''ATENÇÃO:''' Uma avaliação só pode ser recuperada somente se existir justificativa reconhecida pela coordenação. Desse modo, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.<br />
<br />
=Material de Apoio=<br />
<br />
;Atividades extra sala de aula<br />
<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista1_2014_2.pdf LISTA1] de exercícios para a avaliação A1<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista2_2015_2.pdf LISTA2] de exercícios para a avaliação A2<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista3_2015_2.pdf LISTA3] de exercícios para a avaliação A3<br />
:*[http://tele.sj.ifsc.edu.br/~casagrande/RED/lista4_2015_2.pdf LISTA4] de exercícios para a avaliação A4<br />
<br />
;Slides utilizados durante algumas aulas<br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/redes_circuitos_virtuais_FR.pdf Redes Frame Relay] <br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/protocolos_pp.pdf Protocolos Ponto à Ponto] <br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/InterfacesDigitais.pdf Interfaces Digitais] <br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/modens.pdf Modens e enlaces de teste] <br />
<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/lan.pdf REDES LOCAIS]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/vlan.pdf IEEE802.3q VLAN]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/stp.pdf IEEE802.3d]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/ieee.pdf Arquitetura IEEE802.3]<br />
:* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/wlan.pdf Conceitos básicos da arquitetura IEEE802.11]<br />
<br />
<br />
;Manuais e outros<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/manuais/Guia_DT2048_SHDSL_T_E_S_VG_210.5088.00-1.pdf Guia Rápido de Configuração Modem DT2048SHDSL;]<br />
* [http://tele.sj.ifsc.edu.br/~casagrande/RED/apoio/Manual_NR-2G_3200_e_4200.pdf manual Router NR2G] da Digitel;<br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/Globalink3420guia.pdf guia rápido de configuração Globalink UP3420;] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/Globalink3420.pdf Manual de configuração Gloalink3420;] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/DT34.pdf Manual de configuração DT34.] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/DAS-3324.pdf Manual DSLAM DLINK DAS3324.] <br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/apoio/DAS-3324guia.pdf Guia rápido DSLAM DLINK DAS3324.]<br />
* [http://www.cisco.com/warp/cpropub/45/tutorial.htm Tutorial sobre a interface CLI de roteadores Cisco]<br />
* [http://www.cisco.com/en/US/tech/tk713/tk507/technologies_tech_note09186a008019cfa7.shtml#ppp01 Resolução de problemas com PPP em roteadores Cisco]<br />
* [http://www.cisco.com/en/US/products/hw/routers/ps221/products_password_recovery09186a0080094773.shtml Recuperação de senha em roteadores Cisco 1700 e 1800]<br />
<br />
<br />
== Bibliografia ==<br />
<br />
* ''Redes de Computadores e a Internet, 5a edição'', de James Kurose.<br />
* ''Redes de Computadores, 4a edição'', de Andrew Tanenbaum.<br />
* ''Comunicação de Dados e Redes de Computadores, 4a edição'', de Behrouz Forouzan.<br />
<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs.html Links para outros materiais, normas, artigos, e apostilas do prof. Jorge Casagrande]<br />
* [http://books.google.com/books?id=C9ZN-jYKHpMC&printsec=frontcover&dq=forouzan&hl=pt-BR&ei=fvt2TP3eCMH58Aa77cS1Bw&sa=X&oi=book_result&ct=result&resnum=3&ved=0CDMQ6AEwAg#v=onepage&q&f=false Comunicação de dados e Redes de Computadores, de Berhouz Forouzan (alguns capítulos no Google Books)]<br />
<br />
Para pesquisar o acervo das bibliotecas do IFSC:<br />
* [http://biblioteca.ifsc.edu.br/sophia/ Acesso ao acervo da Biblioteca do IFSC]<br />
<br />
== Softwares ==<br />
<br />
* [[Netkit]]: possibilita criar experimentos com redes compostas por máquinas virtuais Linux<br />
* [http://tele.sj.ifsc.edu.br/~msobral/IER/ipkit/ IPKit]: um simulador de encaminhamento IP (roda direto dentro do navegador)<br />
<br />
=Diário de aulas RED29005 - 2015-2 - Prof. Jorge H. B. Casagrande=<br />
<br />
{{Collapse top |29/07 - Redes de Acesso}}<br />
<br />
==29/07 - Redes de Acesso ==<br />
<br />
* Apresentação da disciplina e plano de ensino;<br />
* Visão geral de uma WAN e uma rede de acesso; <br />
* Componentes de uma infra-estrutura de telecomunicações;<br />
* '''Tarefa pra casa''': Fazer uma leitura das '''seções 1.1 à 1.3 (inclusive)''' do livro do Kurose, 5a edição e além das explicações básicas sobre as redes de acesso colocadas em sala faça um quadro resumo que compare as principais tecnologias de '''redes de acesso''' (Dial-up, xDSL, HFC, FTTH e Wireless) em termos de: Alcance, custo, disponibilidade e banda passante (Mbps) sempre no ponto de vista do PROVEDOR DE SERVIÇOS (ISP). Para completar algumas informações de seu resumo use as outras bibliografias indicadas de nossa disciplina, a revista RTI (www.rtionline.com.br - edição julho/15) ou mesmo a googlelândia... ;)<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |05/10 - Redes Privadas }}<br />
<br />
==05/10 - Redes Privadas ==<br />
<br />
* Discussão sobre as redes de acesso tabuladas da aula anterior<br />
* A rede de acesso ADSL a partir rede externa de telefonia pública;<br />
* A Linha Privativa de Comunicação de Dados (LPCD);<br />
* A banda passante e os meios metálicos de transmissão;<br />
* O modelo básico de comunicação de dados;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |07/10 - Redes Privadas e Redes de Longa Distância - WAN }}<br />
<br />
==07/10 - Redes Privadas e Redes de Longa Distância - WAN==<br />
<br />
* Recuperação de conteúdos por conta de alunos que se integraram na turma.<br />
* O Serviço de Linha Dedicada Digital (SLDD) como base na formação de Redes Privativas;<br />
* Experimento: Comunicação entre Computadores via porta serial;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |14/10 - Redes Privadas e Redes de Longa Distância - WAN }}<br />
<br />
* Evolução das Redes Locais baseadas em hospedeiros para as Redes Privativas de longa distância;<br />
* Da Unidade de Derivação Digital (UDD) para os ServerSwitches ou switches KVM;<br />
* A Multiplexação como solução no compartilhamento e otimização do uso de enlaces de transmissão.<br />
* Início dos trabalhos para a construção de 3 nós de uma rede Frame Relay<br />
<br />
'''ATENÇÃO: Leitura dos itens 6.1, 8.3 e 18.1 do Forouzan'''<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |19/10 - Redes Virtuais - Frame Relay }}<br />
<br />
==19/10 - Redes Virtuais - Frame Relay ==<br />
<br />
* Construção da rede Frame Relay no laboratório.<br />
<br />
<br />
Para esta atividade já está implementada uma rede composta por três roteadores da Digitel, que estarão interligados como mostrado abaixo:<br />
<br />
[[imagem:Rede-modems.png|600px]]<br />
<br />
A rede contém dois enlaces dedicados ponto-à-ponto (simulando duas SLDDs formadas por LPCDs à 2 fios) com modems digitais operando a 2 Mbps. Os Modens da DIGITEL modelo DT2048SHDSL estão configurados da seguinte forma: (chaves em ON) <br />
* Modens do rack central: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5 - Modo NTU (terminação de rede), relógio interno, 2048Kbps, e interface V.35 padrão ISO2110;<br />
* Modens do rack direito e esquerdo: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5 - Modo LTU (terminação de linha), relógio regenerado, 2048Kbps, e interface V.35 padrão ISO2110;<br />
<br />
Todos os roteadores estão configurados com protocolo FRAME RELAY em suas interfaces serias WAN e rodando o algoritmo de roteamento RIP em sua forma mais básica para evitar a configuração de rotas estáticas na interligação das LANs do switches direito e esquerdo.<br />
<br />
;Iniciando o experimento<br />
<br />
# Acesse a interface de gerência (console) do roteador R1 ou R2. O roteador R1 está no rack direito (no ponto de vista da sala), o roteador R3 está no rack central, e R2 está no rack esquerdo. Para acessar a console, faça o seguinte:<br />
## Conecte o cabo serial específico na interface serial RS232 do seu computador. Conecte esse cabo também na interface ''console'' do roteador, que fica no painel traseiro. Como os roteadores estão distantes das bancadas, será necessário usar as tomadas azuis, que conectam as bancadas aos racks.<br />
## Execute o programa ''minicom'', que abre um terminal de texto via porta serial. Ele deve ser configurado para se comunicar pela porta serial ''/dev/ttyS0'', com 57600 bps, 8 bits de dados e 1 stop-bit (isso aparece descrito assim: 57600 8N1) e sem controles de fluxo. <syntaxhighlight lang=bash><br />
sudo minicom -s<br />
</syntaxhighlight><br />
## Se o ''minicom'' estiver correto, você deverá ver a interface CLI do roteador (''Command Line Interface''). Caso contrário, confira se o cabo serial está bem encaixado, e se os parâmetros do ''minicom'' estão certos.<br />
# O login e senha para acessar a configuração dos routers é "nr2g" e "digitel" respectivamente. Ao entrar na CLI avalie a configuração geral dos routers com o comando DUMP ALL;<br />
# Estando os links ativos nas WANs, voce pode acessar qualquer router usando a facilidade do protocolo TELNET. Para tanto, dentro da CLI do router aplique o comando EXEC TELNET [IP da WAN ou LAN]. Voce também podem acessa-los por qualquer computador das redes direita ou esquerda, desde que esses estejam na mesma subrede das interfaces LAN dos routers. Uma vez estando na CLI de um dos routers, voce pode acessar os demais com EXEC TELNET;<br />
# Observe se a configuração dos routers está como o previsto na janela abaixo. Talvez voce precise ajustar a configuração em algum roteador.<br />
# Faça a configuração Básica dos PCs e Roteadores NR2G com protocolo FRAME RELAY. Esta configuração já permite que a rede se conecte a internet através da porta LAN0 do router CENTRAL, desde que as configurações de rotas nos PCs de cada subrede e do professor sejam aplicadas conforme na sequência.<br />
#* '''R1:''' <syntaxhighlight lang=text><br />
DIREITA > <br />
SET LAN LAN0 IP 192.168.10.254 MASK 255.255.255.0 BROADCAST 192.168.10.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.20.254 MASK 255.255.255.0 BROADCAST 192.168.20.255 <br />
SET LAN LAN1 UP <br />
<br />
SET WAN WAN0 PROTO FRAMERELAY PROTOCOL ANSI DCE FALSE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN0 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN0-PVC0 DLCI 100 MTU 1500 IP 10.1.1.2 MASK 255.255.255.252 PEER 10.1.1.1<br />
SET WAN WAN0 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0-PVC0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE<br />
<br />
</syntaxhighlight><br />
#* '''R2:''' <syntaxhighlight lang=text><br />
ESQUERDA > <br />
SET LAN LAN0 IP 192.168.30.254 MASK 255.255.255.0 BROADCAST 192.168.30.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.40.254 MASK 255.255.255.0 BROADCAST 192.168.40.255 <br />
SET LAN LAN1 UP <br />
<br />
SET WAN WAN0 PROTO FRAMERELAY PROTOCOL ANSI DCE FALSE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN0 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN0-PVC0 DLCI 100 MTU 1500 IP 10.1.1.6 MASK 255.255.255.252 PEER 10.1.1.5<br />
SET WAN WAN0 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0-PVC0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.5 COST1 0 <br />
SET ROUTES UP<br />
CONFIG SAVE<br />
<br />
</syntaxhighlight><br />
#* '''R3:''' <syntaxhighlight lang=text><br />
CENTRAL > <br />
SET LAN LAN0 PURGE <br />
SET LAN LAN1 PURGE <br />
<br />
SET WAN WAN0 PROTO FRAMERELAY PROTOCOL ANSI DCE TRUE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN0 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN0-PVC0 DLCI 100 MTU 1500 IP 10.1.1.1 MASK 255.255.255.252 PEER 10.1.1.2<br />
SET WAN WAN0 UP<br />
<br />
SET WAN WAN1 PROTO FRAMERELAY PROTOCOL ANSI DCE TRUE CLOCK EXTERNAL TXINV FALSE<br />
SET WAN WAN1 TRAFFIC-SHAPE FALSE T391 10 T392 15 N391 6 N392 3 N393 4<br />
SET WAN WAN1-PVC0 DLCI 100 MTU 1500 IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6<br />
SET WAN WAN1 UP<br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0-PVC0 AUTH TYPE NONE <br />
SET RIP WAN1-PVC0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN1-PVC0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET LAN LAN0 IP 192.168.1.231 MASK 255.255.255.0 BROADCAST 192.168.1.255 UP <br />
SET ROUTES DEFAULT GW1 192.168.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
# Para conferir as configurações das interfaces, use o comando ''show'' seguido da interface. Exemplo: <syntaxhighlight lang=text><br />
# SHOW WAN WAN0 ALL<br />
# Para as rotas construidas dinamicamente pelo protocolo RIP:<br />
# SHOW ROUTES ALL<br />
</syntaxhighlight><br />
# Assim que os enlaces forem estabelecidos, o que pode ser conferido com o comando ''show'' interface aplicado às interfaces, ''conclua'' a configuração da rede (rotas nos pcs e roteadores). Ela deve ser configurada de forma que um computador possa se comunicar com qualquer outro computador da outra rede, e também acessar a Internet. Para isso, use os comandos nos PCs como:<br />
#* sudo ifconfg eth0 x.x.x.x netmask m.m.m.m up - para atribuir outro endereço na placa de rede<br />
#* sudo route add default gw x.x.x.x - para atribuir um novo gateway para a placa de rede<br />
#* sudo route add -net x.x.x.x netmask m.m.m.m eth0 - para associar uma nova rede a interface eth0<br />
#* route -n - para ver a tabela atual de roteamento<br />
# Observe que optamos pelo uso de protocolos de roteamento dinâmico. Procure entender melhor como foi feita essa configuração, a partir do que está no manual, começando pela página 82.<br />
# Para o PC do professor aplique os comandos: <syntaxhighlight lang=bash><br />
$ sudo route add -net 192.168.x.0 netmask 255.255.255.0 eth0 - x={10,20,30,40}<br />
$ sudo route add -net 192.168.x.0 netmask 255.255.255.0 gw 192.168.1.231 - x={10,20,30,40}<br />
</syntaxhighlight><br />
# Para os PCs das subredes direita e esquerda: <syntaxhighlight lang=bash><br />
$ sudo ifconfig eth0 192.168.x.y netmask 255.255.255.0 up - x={10,20,30,40}; y={1,2,3,4}<br />
$ sudo route add default gw 192.168.x.254 - x={10,20,30,40} </syntaxhighlight><br />
# Agora vamos analisar a conectividade de todas as subredes, incluindo o acesso à internet. Após isso vamos fazer uma avaliação sobre o desempenho dessa conectividade comparando os links com PPP e HDLC entre os roteadores.<br />
# Veja se o status das interfaces e protocolos da WAN e LAN de todos os routers estão em UP. Anote e avalie a configuração de todos os routers e os PCs das duas LANs direita e esquerda. <br />
# Verificar e anotar todas as configurações e instalações dos componentes de redes, modens, cabos, adaptadores, manobras dos cabos, etc...<br />
# Verificar e anotar todas as configurações lógicas dos modens, routers e PCs.<br />
# Acessar as redes mutuamente qualquer computador de um subrede deve acessar qualquer outro da outra subrede;<br />
# Acessar a internet em todos os PCs;<br />
# Interprete as configurações dos routers e destaque como está configurada a rede <br />
<br />
<!--<br />
;Mesma rede operando agora com protocolo HDLC<br />
<br />
# Faça a configuração Básica dos PCs e Roteadores NR2G com protocolo HDLC. <br />
<br />
#* '''R1:''' <syntaxhighlight lang=text><br />
DIREITA > <br />
SET LAN LAN0 IP 192.168.10.254 MASK 255.255.255.0 BROADCAST 192.168.10.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.20.254 MASK 255.255.255.0 BROADCAST 192.168.20.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.2 MASK 255.255.255.252 PEER 10.1.1.1 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R2:''' <syntaxhighlight lang=text><br />
ESQUERDA > <br />
SET LAN LAN0 IP 192.168.30.254 MASK 255.255.255.0 BROADCAST 192.168.30.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.40.254 MASK 255.255.255.0 BROADCAST 192.168.40.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.6 MASK 255.255.255.252 PEER 10.1.1.5 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.5 COST1 0 <br />
SET ROUTES UP<br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R3:''' <syntaxhighlight lang=text><br />
CENTRAL > <br />
SET LAN LAN0 PURGE <br />
SET LAN LAN1 PURGE <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.1 MASK 255.255.255.252 PEER 10.1.1.2 UP<br />
SET WAN WAN1 PROTO HDLC IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6 UP<br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP WAN1 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN1 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET LAN LAN0 IP 192.168.1.231 MASK 255.255.255.0 BROADCAST 192.168.1.255 UP <br />
SET ROUTES DEFAULT GW1 192.168.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
--><br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |21/10 - Redes Frame Relay - Finalização }}<br />
<br />
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/redes_circuitos_virtuais_FR.pdf Redes Frame Relay] <br />
<br />
* Finalização das explicações da configuração da rede Frame Relay montada;<br />
* Evolução do backbone da RNP como ilustração das redes Frame Relay em infraestruturas de telecom.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |26/10 - Redes Privadas Virtuais - MPLS }}<br />
<br />
==26/10 - Redes Privadas Virtuais - MPLS ==<br />
<br />
* Redes virtuais com MPLS;<br />
* Experimentos com netkit: Rede MPLS<br />
'''ATENÇÂO: Leitura:'''<br />
** '''Capítulo 5 (seção 5.8)''' do livro ''Redes de Computadores e a Internet, 5a ed.'', de James Kurose.<br />
** '''Capítulo 5 (seção 5.4.5)''' do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum (ou seção 5.6.5 da 5ª ed.).<br />
<br />
<br />
* '''''Outras referências sobre MPLS:'''''<br />
<br />
** [http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS na Wikipedia]<br />
** [http://www.ietf.org/rfc/rfc3031.txt RFC 3031: MPLS Architecture]<br />
** [http://www.ietf.org/rfc/rfc3032.txt MPLS Label Stack Encoding]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/mpls-linux Documentação sobre os experimentos com MPLS (tirados do projeto MPLS-Linux)]<br />
<br />
[http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS] é um mecanismo para redes de telecomunicações de alto desempenho que encaminha e transporta dados de um nó da rede a outro. Isso se faz por meio de links virtuais entre nós distantes um do outro, semelhante ao conceito de ''circuitos virtuais''. Diversos protocolos podem ser transportados por MPLS, tais como IP e Ethernet (note que o primeiro é um protocolo de rede, mas o segundo é um ''"protocolo"'' de enlace). Assim, MPLS se apresenta como uma tecnologia de transporte de dados em redes de longa distância, como ilustrado na figura abaixo.<br />
<br />
[[imagem:Mpls-network.jpg]]<br />
<br />
Simplificadamente, um cabeçalho (''shim header'') é adicionado a cada PDU a ser transportada pela rede MPLS. O rótulo contém um número identificador chamado de rótulo (''label'', e similar ao ''VCI'' visto em circuitos virtuais), junto com alguns bits de controle. Os roteadores dentro da rede MPLS encaminham essas PDUs com base somente no conteúdo desse cabeçalho, comutando-os de acordo com os valores de rótulo (''label switching''). Note que MPLS não faz roteamento, e sim comutação de circuitos virtuais: os circuitos devem ser previamente estabelecidos para que o encaminhamento de PDUs entre origem e destino possa ser realizada. Desta forma, MPLS parece ser um protocolo que fica entre as camadas de rede e de enlace, como mostrado na figura a seguir.<br />
<br />
[[imagem:Mpls_protocolstack.jpg]] ----> [[imagem:MPLS_D2.gif]]<br />
<br />
<br />
O cabeçalho MPLS possui apenas 32 bits, como mostrado abaixo. O valor de rótulo ocupa 20 bits, o que possibilita pouco mais de 1 milhão de diferentes rótulos (<math>2^{20}</math>). Há um campo ''Time To Live'' (ou simplesmente ''TTL'') com 8 bits, com mesma finalidade que o campo homônimo existente em PDUS IPv4: evitar que um erro de configuração em um roteador faça com que PDUs fiquem circulando eternamente em um ''loop'' na rede. O valor desse campo ''TTL'' é decrementado por cada roteador que encaminhe a PDU e, se o valor chegar a 0, a PDU é descartada. O campo ''Exp'' com 3 bits foi pensado para codificar a classe de serviço da PDU, a qual pode ser usada por mecanismos de qualidade de serviço (''QoS'') existentes na rede. Por exemplo, o valor de ''Exp'' pode ser usado como prioridade da PDU em um determinado roteador dentro da rede MPLS. Por fim, o bit ''S'' (''bottom of stack'') informa se esse é o último cabeçalho MPLS na PDU, uma vez que podem-se empilhar dois ou mais desses cabeçalhos.<br />
<br />
<br />
[[imagem:Mpls-label.png]]<br />
<br />
<br />
A terminologia MPLS possui nomes próprios para diversos componentes da arquitetura. Como ocorre em outras tecnologias, existem conceitos conhecidos apresentados porém com nomes diferentes. A tabela abaixo descreve alguns termos importantes existentes no MPLS:<br />
<br />
<br />
{| border="1" cellpadding="2"<br />
!Termo<br />
!Descrição<br />
|-<br />
|''LSP'' || Label Switching Path, o análogo a circuito virtual.<br />
|-<br />
|''LSR'' || Label Switching Router, ou roteador capaz de comutar PDUs MPLS.<br />
|-<br />
|''LER'' || Label Edge Router, ou roteador que faz a interface entre a rede MPLS (onde se encaminham PDUs exclusivamente com base nos rótulos), e a rede externa (onde não se usa MPLS). A rede externa pode ser qualquer outra rede, como IPv4, IPv6 ou mesmo LAN Ethernet. Note que LER é um tipo especial de LSR, e podem ser denominados também como ''LSR ingress'' (''LSR'' de entrada na rede MPLS) e ''LSR egress'' (''LSR'' de saída da rede MPLS).<br />
|-<br />
|''LFIB'' || Label Forwarding Information Base, ou o conjunto de informações existentes nos LSR usadas para fazer o encaminhamento das PDUS MPLS. Pode ser entendida como uma estrutura análoga à tabela de comutação de circuitos virtuais.<br />
|-<br />
|}<br />
<br />
<br />
Usando os termos acima, podem-se descrever redes MPLS demonstrativas como mostrado a seguir. Na primeira rede há dois LSP: um vai do ''Host X'' ao ''Host Z'' e está identificado com PDUS em amarelo, e outro vai de ''Host X'' ao ''Host Y'' e tem PDUs em azul. O número dentro de cada PDU informa os valores de rótulo usados ao longo dos LSP. Assim como em circuitos virtuais em geral (e como em Frame Relay e ATM), os valores de rótulo podem ser modificados por cada roteador que os comute.<br />
<br />
[[imagem:Mplsrouters.gif]]<br />
<br />
=== Conceitos básicos sobre comutação de rótulos ===<br />
<br />
A comutação de rótulos feita nos LSR é muito parecida com comutação de circuitos virtuais. Ao receber uma PDU MPLS, um LSR decide o que fazer com ela com base no número do rótulo e na interface de rede de onde ela foi recebida. Porém há um detalhe específico do MPLS: uma ou mais interfaces podem ser associadas em um ''labelspace MPLS'', sendo esse ''labelspace'' usado para identificar de onde foi recebida uma PDU. Desta forma, um LSR na verdade decide o que fazer com uma PDU com base em seu rótulo e no seu ''labelspace''. Dentro do LSR essa operação se chama ''ILM'' (''Input Label Mapping'').<br />
<br />
'''''ILM''' é a função que identifica uma PDU recebida e mapeia seu rótulo para um '''labelspace'''''<br />
<br />
Um caso especial trata de PDUs que entram na rede MPLS. Por exemplo, uma PDU IPv4, originada de uma rede externa, deve ser transportada pela rede MPLS. Nesse caso, o ''LER'' (roteador de borda) deve associar essa PDU a um rótulo MPLS e encaminhá-lo pela rede MPLS. A identificação de uma PDU externa à rede MPLS, com base nas informações dessa PDU, se chama ''FEC'' (''Forwarding Equivalence Class'').<br />
<br />
Uma vez identificada uma PDU recebida, o LSR deve encaminhá-la de acordo com instruções predefinidas em sua ''LFIB''. Dentro de sua LFIB essas instruções são chamadas de ''NHLFE'' (''Next-Hop Label Forwarding Entry''), e contêm a '''operação MPLS''' a ser realizada e a interface de saída por onde encaminhar a PDU. As operações MPLS possíveis estão descritas na tabela abaixo:<br />
<br />
<br />
{| border="1" cellpadding="2"<br />
!Operação<br />
!Descrição<br />
|-<br />
|''SWAP'' || Troca o valor de rótulo. Essa operação deve ser usada para comutação dentro da rede MPLS. Mesmo quando o novo valor de rótulo for idêntico ao anterior essa operação deve ser realizada.<br />
|-<br />
|''PUSH'' || Adiciona um cabeçalho MPLS com um determinado valor de rótulo. Essa operação deve ser usada principalmente nos ''LER'', quando uma PDU entra na rede MPLS.<br />
|-<br />
|''POP'' || Remove o cabeçalho MPLS. Essa operação deve ser usada principalmente nos ''LER'', quando uma PDU sai da rede MPLS.<br />
|-<br />
|}<br />
<br />
<br />
A comutação fica completa ao se juntarem o mapeamento de entrada (''ILM'') com as ''NHLFE'', no caso de comutação dentro da rede MPLS. No caso de entrada de PDUs na rede MPLS, a operação se chama ''FTN'' (''Fec-To-Nhlfe''), que nada mais é que regras para associar os rótulos MPLS a essas PDUS. No exemplo da PDU IPv4, pode-se usar o endereço IPv4 de destino dessa PDU para escolher que rótulo MPLS deve ser usado. Isso está sumarizado na figura abaixo.<br />
<br />
[[imagem:Mpls-lfib.png]]<br />
<br />
=== Atividade com MPLS ===<br />
<br />
* [http://www.sj.ifsc.edu.br/~casagrande/RED/lab_mpls1.pdf 1o Experimento com MPLS]<br />
** Os experimentos usarão o [[Netkit#Switches_MPLS|Netkit e MPLS]]<br />
** Lab do netkit com o experimento:<br />
<br />
<code><br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a2[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e2[fec]=172.16.20.0/24:nhlfe=1<br />
e4[fec]=172.16.10.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e2[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.3<br />
e3[nhlfe]=1:interface=eth0:label=2001:ip=10.0.2.2<br />
e3[nhlfe]=2:interface=eth1:label=1001:ip=10.0.6.4<br />
e4[nhlfe]=1:interface=eth1:label=2000:ip=10.0.6.3<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e2[ilm]=2001:labelspace=0<br />
e3[ilm]=2000:labelspace=0:nhlfe=1<br />
e3[ilm]=1000:labelspace=0:nhlfe=2<br />
e4[ilm]=1001:labelspace=0<br />
<br />
# Labelspace: os mapeamentos de labelspaces a interfaces<br />
e2[labelspace]=0:interfaces=eth0<br />
e3[labelspace]=0:interfaces=eth0,eth1<br />
e4[labelspace]=0:interfaces=eth1<br />
<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a2[eth2]=link7:ip=172.16.20.20/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a2[default_gateway]=172.16.20.4<br />
<br />
</syntaxhighlight><br />
<br />
* '''Exercício''': Considere o roteiro realizado em sala e faça o LSP entre A2 e A1 passar por E5 ao invés de E3 - Ou seja, isso implica modificar a configuração dos roteadores E2, E3, E4 e E5:<br />
<br />
[[imagem:Exercicio-mpls-1.png|600px]]<br />
<br />
'''Solução:'''<br />
<br />
* '''E4:''' mudar a ''NHLFE'' para que o LSP A2->A1 vá para E5.<br />
* '''E5:''' fazer a comutação A2->A1 que antes ficava em E3.<br />
* '''E2:''' modificar o ''labelspace 0'' para que contenha a interface ''eth3''.<br />
* '''E3:''' removida a configuração da comutação A2->A1<br />
<br />
<code><br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a2[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e2[fec]=172.16.20.0/24:nhlfe=1<br />
e4[fec]=172.16.10.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e2[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.3<br />
e3[nhlfe]=1:interface=eth1:label=1001:ip=10.0.6.4<br />
e4[nhlfe]=1:interface=eth0:label=2000:ip=10.0.4.5<br />
e5[nhlfe]=1:interface=eth1:label=2001:ip=10.0.1.2<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e2[ilm]=2001:labelspace=0<br />
e3[ilm]=1000:labelspace=0:nhlfe=1<br />
e4[ilm]=1001:labelspace=0<br />
e5[ilm]=2000:labelspace=0:nhlfe=1<br />
<br />
<br />
# Labelspace: os mapeamentos de labelspaces a interfaces<br />
e2[labelspace]=0:interfaces=eth0,eth3<br />
e3[labelspace]=0:interfaces=eth0,eth1<br />
e4[labelspace]=0:interfaces=eth0,eth1<br />
e5[labelspace]=0:interfaces=eth0,eth1<br />
<br />
<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a2[eth2]=link7:ip=172.16.20.20/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a2[default_gateway]=172.16.20.4<br />
<br />
</syntaxhighlight><br />
<br />
=== MPLS - Labelspaces e Tunels ===<br />
<br />
'''Atividade'''<br />
<br />
* [http://tele.sj.ifsc.edu.br/~casagrande/RED/mpls_labelspaces.pdf Roteiro sobre labelspaces e túneis MPLS]<br />
<br />
'''Laboratório do netkit sobre labelspaces:'''<br />
<br />
<code><br />
<br />
e1[type]=mpls <br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a2[type]=generic<br />
a3[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e2[fec]=172.16.20.0/24:nhlfe=1<br />
e4[fec]=172.16.10.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e2[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.3<br />
e3[nhlfe]=1:interface=eth0:label=1000:ip=10.0.2.2<br />
e3[nhlfe]=2:interface=eth1:label=1000:ip=10.0.6.4<br />
e4[nhlfe]=1:interface=eth1:label=1000:ip=10.0.6.3<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e2[ilm]=1000:labelspace=0<br />
e3[ilm]=1000:labelspace=0:nhlfe=2<br />
e3[ilm]=1000:labelspace=1:nhlfe=1<br />
e4[ilm]=1000:labelspace=0<br />
<br />
#Labelspace: os mapeamentos de labelspaces a interfaces<br />
<br />
e2[labelspace]=0:interfaces=eth0<br />
e3[labelspace]=0:interfaces=eth0<br />
e3[labelspace]=1:interfaces=eth1<br />
e4[labelspace]=0:interfaces=eth1<br />
<br />
e1[eth1]=link9:ip=172.16.30.1/24<br />
e1[eth2]=link3:ip=10.0.3.1/24<br />
e1[eth3]=link5:ip=10.0.5.1/24<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth2]=link3:ip=10.0.3.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e3[eth2]=link5:ip=10.0.5.3/24<br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a2[eth2]=link7:ip=172.16.20.20/24<br />
a3[eth0]=link9:ip=172.16.30.30/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a2[default_gateway]=172.16.20.4<br />
a3[default_gateway]=172.16.30.1<br />
<br />
</syntaxhighlight><br />
<br />
'''Laboratório do netkit sobre túneis:'''<br />
<br />
<code><br />
e1[type]=mpls <br />
e2[type]=mpls <br />
e3[type]=mpls<br />
e4[type]=mpls<br />
e5[type]=mpls<br />
a1[type]=generic<br />
a3[type]=generic<br />
a4[type]=generic<br />
<br />
# FEC: mapeia subrede destino para nhlfe<br />
e1[fec]=172.16.10.0/24:nhlfe=1<br />
e2[fec]=172.16.30.0/24:nhlfe=1<br />
<br />
# NHLFE: como encaminhar PDUs MPLS<br />
e1[nhlfe]=1:interface=eth2:label=500:ip=10.0.3.2<br />
e2[nhlfe]=1:interface=eth3:label=100:ip=10.0.1.5<br />
e3[nhlfe]=1:interface=eth2:label=300:ip=10.0.5.1<br />
e4[nhlfe]=1:interface=eth1:label=3000:ip=10.0.6.3<br />
e5[nhlfe]=1:label=200:nhlfe=2<br />
e5[nhlfe]=2:interface=eth0:label=2000:ip=10.0.4.4<br />
<br />
# ILM: como identificar PDUs MPLS recebidas<br />
e1[ilm]=300:labelspace=0<br />
e2[ilm]=500:labelspace=0<br />
e3[ilm]=3000:labelspace=0<br />
e3[ilm]=200:labelspace=0:nhlfe=1<br />
e4[ilm]=2000:labelspace=0:nhlfe=1<br />
e5[ilm]=100:labelspace=0:nhlfe=1<br />
<br />
# Labelspace: os mapeamentos de labelspaces a interfaces<br />
e1[labelspace]=0:interfaces=eth3<br />
e2[labelspace]=0:interfaces=eth2<br />
e3[labelspace]=0:interfaces=eth1<br />
e4[labelspace]=0:interfaces=eth0<br />
e5[labelspace]=0:interfaces=eth1<br />
<br />
e1[eth1]=link9:ip=172.16.30.1/24<br />
e1[eth2]=link3:ip=10.0.3.1/24<br />
e1[eth3]=link5:ip=10.0.5.1/24<br />
e2[eth0]=link2:ip=10.0.2.2/24<br />
e2[eth1]=link8:ip=172.16.10.2/24<br />
e2[eth2]=link3:ip=10.0.3.2/24<br />
e2[eth3]=link1:ip=10.0.1.2/24<br />
e3[eth0]=link2:ip=10.0.2.3/24<br />
e3[eth1]=link6:ip=10.0.6.3/24<br />
e3[eth2]=link5:ip=10.0.5.3/24<br />
e3[eth3]=link10:ip=172.16.40.3/24 <br />
e4[eth0]=link4:ip=10.0.4.4/24<br />
e4[eth1]=link6:ip=10.0.6.4/24<br />
e4[eth2]=link7:ip=172.16.20.4/24<br />
e5[eth0]=link4:ip=10.0.4.5/24<br />
e5[eth1]=link1:ip=10.0.1.5/24<br />
<br />
a1[eth2]=link8:ip=172.16.10.10/24<br />
a3[eth0]=link9:ip=172.16.30.30/24<br />
a4[eth0]=link10:ip=172.16.40.40/24<br />
<br />
a1[default_gateway]=172.16.10.2<br />
a3[default_gateway]=172.16.30.1<br />
a4[default_gateway]=172.16.40.3<br />
<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |28/10 - Protocolos Ponto a Ponto para WANs }}<br />
<br />
==28/10 - Protocolos Ponto a Ponto para WANs==<br />
<br />
* Testes de desempenho com protocolo Frame-Relay na rede WAN real com routers NR2G.<br />
* Mesmos testes com protocolos PPP e HDLC.<br />
<br />
'''Roteiro dos testes'''<br />
<br />
# Verifique se a operação da rede nos routers do laboratório estão operantes com protocolo frame relay e que as quatro subredes tem conexão entre elas, o PC do professor (192.168.1.1) e a Internet;<br />
# Teste a vazão pelos enlaces ponto-a-ponto SOMENTE COM UM ÚNICO PC associado a cada Router (DIREITO e ESQUERDO). Em algum computador da subrede esquerda ou direita execute:<syntaxhighlight lang=bash> netperf -f k -H 192.168.1.1</syntaxhighlight><br />
# Teste o delay médio da comunicação usando PING com pacote de 65508 bytes aplicado de TODOS OS PCs da subrede para o PC do professor. Anote a média entre todos os PCs: <syntaxhighlight lang=bash> ping -s 65500 192.168.1.1</syntaxhighlight><br />
# Realize pelo menos três medidas para cada teste e use a média desses valores como resultado final;<br />
# Excute o ''netperf'' entre computadores da ''mesma subrede'', anote os valores e compare com as medidas anteriores;<br />
# Execute os mesmos testes agora com protocolo HDLC. Veja configuração abaixo:<br />
<br />
;Mesma rede operando agora com protocolo HDLC<br />
<br />
# Faça a configuração Básica dos PCs e Roteadores NR2G com protocolo HDLC. <br />
<br />
#* '''R1:''' <syntaxhighlight lang=text><br />
DIREITA > <br />
SET LAN LAN0 IP 192.168.10.254 MASK 255.255.255.0 BROADCAST 192.168.10.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.20.254 MASK 255.255.255.0 BROADCAST 192.168.20.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.2 MASK 255.255.255.252 PEER 10.1.1.1 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R2:''' <syntaxhighlight lang=text><br />
ESQUERDA > <br />
SET LAN LAN0 IP 192.168.30.254 MASK 255.255.255.0 BROADCAST 192.168.30.255 <br />
SET LAN LAN0 UP <br />
SET LAN LAN1 IP 192.168.40.254 MASK 255.255.255.0 BROADCAST 192.168.40.255 <br />
SET LAN LAN1 UP <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.6 MASK 255.255.255.252 PEER 10.1.1.5 UP <br />
SET WAN WAN1 PURGE <br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET ROUTES DEFAULT GW1 10.1.1.5 COST1 0 <br />
SET ROUTES UP<br />
CONFIG SAVE <br />
<br />
</syntaxhighlight><br />
#* '''R3:''' <syntaxhighlight lang=text><br />
CENTRAL > <br />
SET LAN LAN0 PURGE <br />
SET LAN LAN1 PURGE <br />
SET WAN WAN0 PROTO HDLC IP 10.1.1.1 MASK 255.255.255.252 PEER 10.1.1.2 UP<br />
SET WAN WAN1 PROTO HDLC IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6 UP<br />
<br />
SET RIP REDIST-STATIC TRUE REDIST-CONNECTED TRUE REDIST-OSPF FALSE DEFAULTMETRIC 2<br />
SET RIP WAN0 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN0 AUTH TYPE NONE <br />
SET RIP WAN1 ENABLED TRUE TYPE ACTIVE <br />
SET RIP WAN1 AUTH TYPE NONE <br />
SET RIP UP <br />
<br />
SET LAN LAN0 IP 192.168.1.231 MASK 255.255.255.0 BROADCAST 192.168.1.255 UP <br />
SET ROUTES DEFAULT GW1 192.168.1.1 COST1 0 <br />
SET ROUTES UP <br />
CONFIG SAVE </syntaxhighlight><br />
# Agora troque o protocolo HDLC dos enlaces por PPPS (protocolo PPP Síncrono - veja pg. 76 do manual). Faça isso primeiramente no router R3 (central) pois será perdido enlace com ele quando mudar o protocolo. Como exemplo, para trocar a configuração na interface WAN0 execute o comando:<syntaxhighlight lang=text> SET WAN WAN0 PROTO PPPS IP 10.1.1.5 MASK 255.255.255.252 PEER 10.1.1.6 UP </syntaxhighlight><br />
Faça o mesmo para a WAN1 do router central e WAN0s dos routers esquerdo e direito. Não esqueça de aplicar o comando CONFIG SAVE para salvar a configuração atual. Observe o estado dos leds que indicam a presença de dados protocolados entre routers, tanto no frontal dos modens quanto no frontal dos routers. Eles ficaram apagados por um tempo mas devem retornar a acender depois de uns dois ou tres minutos. O led ST no frontal dos routers deve ficar na cor laranja indicando a queda dos links e depois de um tempo devem retornar a cor verde quando tudo estiver ok.<br />
<br />
# Repita e anote as mesmas medições de vazão conforme feito anteriormente com protocolo HDLC;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 04/11 - Protocolos de Enlace Ponto à Ponto }}<br />
<br />
== 04/11 - Protocolos de Enlace Ponto à Ponto ==<br />
<br />
'''Atenção:''' liberada a [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista1_2014_2.pdf LISTA1] de exercícios para a avaliação A1<br />
<br />
'''Resumo da aula:'''<br />
* Slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/protocolos_pp.pdf Protocolos Ponto à Ponto];<br />
* Serviços da Camada de enlace.<br />
<br />
'''Bibliografia relacionada:'''<br />
'''ATENÇÃO:'''<br />
* Ler Seção 5.7 do livro "Redes de Computadores" do Kurose 5a ed.'''<br />
* Parte III e capítulos 10 e 11 do livro "Comunicação de Dados e Redes de Computadores, 4a ed.", de Behrouz Forouzan<br />
* Capítulo 3 do livro "Redes de Computadores" de Andrew Tanenbaum.<br />
<br />
'''Fundamentos Teóricos'''<br />
<br />
=== Enlaces lógicos ===<br />
<br />
Equipamentos de rede se comunicam por meio de enlaces (''links''). Um enlace é composto por uma '''parte física''', composta pelo meio de transmissão e o hardware necessário para transmitir e receber um sinal que transporta a informação, e uma '''parte lógica''', responsável por empacotar os dados a serem transmitidos. O diagrama abaixo ilustra um enlace entre dois equipamentos, realçando as formas com que a informação é representada durante a transmissão e recepção. Nesse diagrama, a ''parte lógica'' está representada no bloco ''Enlace'', e a ''parte física'' está no bloco ''Física''; a informação transmitida, representada por ''Dados'', pode ser, por exemplo, um datagrama IP.<br />
<br />
[[imagem:Datalink-phy.png|600px]]<br />
<br />
O enlace lógico tem uma dependência total em relação à parte física. Isso quer dizer que o tipo de tecnologia de transmissão existente na parte física traz requisitos para o projeto da parte lógica.<br />
<br />
Deste ponto em diante, a ''parte lógica'' será chamada simplesmente de '''Camada de Enlace''', e a parte física de '''Camada Física'''.<br />
<br />
Em nosso estudo vamos investigar '''enlaces ponto-a-ponto''', os quais necessitam de protocolos específicos. Para ficar mais claro o que deve fazer um protocolo de enlace ponto-a-ponto, vamos listar os serviços típicos existentes na camada de enlace. <br />
<br />
===== Serviços da camada de enlace =====<br />
<br />
[[Image:Data-link.png]]<br />
<br />
Os serviços identificados na figura acima estão descritos a seguir. A eles foram acrescentados outros dois:<br />
<br />
* '''Encapsulamento (ou ''enquadramento'')''': identificação das PDUs (quadros) de enlace dentro de sequências de bits enviadas e recebidas da camada física<br />
* '''Controle de erros''': garantir que quadros sejam entregues no destino<br />
** '''''Detecção de erros''''': verificação da integridade do conteúdo de quadros (se foram recebidos sem erros de bits)<br />
* '''Controle de fluxo''': ajuste da quantidade de quadros transmitidos, de acordo com a capacidade do meio de transmissão (incluindo o atraso de transmissão) e do receptor<br />
* '''Endereçamento''': necessário quando o enlace for do tipo '''multi-ponto''', em que vários equipamentos compartilham o meio de transmissão (ex: redes locais e redes sem-fio)<br />
* '''Controle de acesso ao meio (MAC)''': também necessário para '''meios compartilhados''', para disciplinar as transmissões dos diversos equipamentos de forma a evitar ou reduzir a chance de haver colisões (transmissões sobrepostas)<br />
* '''Gerenciamento de enlace''': funções para ativar, desativar e manter enlaces<br />
<br />
==== Protocolos de enlace ponto-a-ponto ====<br />
<br />
Dois protocolos de enlace ponto-a-ponto muito utilizados são:<br />
* '''PPP (''Point-to-Point Protocol''):''' proposto no início dos anos 90 pelo IETF (ver [http://www.ietf.org/rfc/rfc1661.txt RFC 1661]), e amplamente utilizado desde então. Este protocolo não faz controle de erros nem de fluxo, portanto se quadros sofrerem erros de transmissão serão sumariamente descartados no receptor. Originalmente muito usado em acesso discado, recentemente sua aplicação se concentra em enlaces por linhas dedicadas, enlaces sem-fio 3G, e uma versão modificada para acesso doméstico ADSL (''PPPoE''). Ver mais detalhes na seção 5.7 do livro do Kurose e na seção 11.7 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan. <br />
* '''HDLC (''High-level Data Link Control''):''' criado nos anos 70, foi largamente utilizado em enlaces ponto-a-ponto, porém atualmente foi substituído pelo PPP na maioria dos cenários em que era usado. Este protocolo faz controle de erros e de fluxo usando um [[Desempenho_ARQ|mecanismo ARQ do tipo Go-Back-N]] (com janela de tamanho 7 ou 127). Ainda se aplica a enlaces ponto-a-ponto em linhas dedicadas, enlaces por satélite e aplicações específicas onde a presença de ruídos no meio de transmissão é relevante ou se deseja confiabilidade na entrega de pacotes na camada 2. Ver mais detalhes na seção 11.6 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan.<br />
<br />
Ambos protocolos possuem o mesmo formato de quadro. Na verdade, o PPP copiou o formato de quadro do HDLC, apesar de não utilizar os campos ''Address'' e ''Control''. O campo ''Flag'', que tem o valor predefinido <math>7E_H</math>, serve para delimitar quadros, assim o receptor sabe quando inicia e termina cada quadro.<br />
<br />
[[imagem:Ppp-frame.png|400px]]<br />
<br>''Quadro PPP ou HDLC (tamanho de campos dados em bytes)''<br><br />
<br />
Esses protocolos foram criados para uso com comunicação serial síncrona (ver capítulo 4, seção 4.3 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan). O PPP funciona também com [http://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_serial_ass%C3%ADncrona comunicação serial assíncrona].<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 07/11 - <math>\blacklozenge</math> Ensaios finais sobre MPLS e Desempenho de protocolos de Redes Ponto à Ponto e Frame Relay}}<br />
<br />
== 07/11 - Ensaios finais sobre MPLS e Desempenho de protocolos de Redes Ponto à Ponto e Frame Relay ==<br />
<br />
#Ilustração do gnome-netkit para os labs MPLS com auxílio do WireShark;<br />
#<math>\blacklozenge</math> Tarefa para hoje ('''ATENÇÃO: faz parte da avaliação AE'''):<br />
#Preenchimento da planilha de desempenho dos protocolos FR, PPP e HDLC abaixo, conforme roteiro do dia 28/10.<br />
'''Resultados de testes aplicados ao PC do Professor (o Gateway da rede - GW):'''<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!PROTOCOLO<br />
!Netperf-->GW vazão<br />
!Netperf-->GW tempo<br />
!Ping-->GW <br />
|-<br />
|FRAME RELAY ||E: 1961,32|| E: 13,7|| E: 2,4<br />
|-<br />
|HDLC ||E: 1961,53 ||E: 13,34 ||E: 2,51 <br />
|-<br />
|PPPS ||E: 1923,14 ||E: 10,64 ||E: 2,58 <br />
|-<br />
|}<br />
<br />
<br> <br />
<br><br />
'''Testes de vazão e ping na mesma subrede:'''<br />
<br><br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Netperf-->LAN vazão<br />
!Netperf-->LAN tempo<br />
!Ping-->LAN <br />
|-<br />
|0 ||0 || 0<br />
|-<br />
|}<br><br />
'''Perguntas para as equipes:'''<br> <br />
*'''Atenção''': os componentes das equipes A à D são os mesmos da formação realizada em sala no dia da avaliação 1 (Equipe A é a que fica do lado das janelas da sala com o rack direito, as demais na sequência...)<br />
<br />
'''EQUIPE A''': Anderson, André Felipe Weber, Gabriel , Carlos e Gustavo. <br><br />
'''Link das Respostas'''<br />
'''--> ''' [https://drive.google.com/file/d/0B5uxU74qlINVcHlBZ3FEQnRQYzQ/view?usp=sharing] <br />
#Entenda como funciona basicamente o teste de vazão do netperf e explique porque o troughtput do ensaio com Frame Relay não alcançou a taxa de transmissão nominal do link. <br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos Frame Relay e MPLS e discuta sobre o overhead causado nesses protocolos<br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br> <br />
<br />
'''EQUIPE B''':Katharine Schaeffer Fertig, Kristhine Schaeffer Fertig, Gabriel Cantu, Lucas Lucindo, Iago Soares <br><br />
#Explique brevemente a diferença encontrada nos resultados de teste de ping na mesma rede e rede remota.<br />
<br />
[[Arquivo:TabelaPing_EquipeB.png|600px|thumb|center|Tabela de Teste Ping e Netperf]]<br />
<br />
<syntaxhighlight lang=bash> R. Tendo realizado o tete de ping normal (tamanho de pacote normal padrão) para mesma rede e rede remota notou-se que as médias de<br />
tempo de transmissão de dados entre computadores na rede da equipe B e do professor (rede externa) foram:<br />
<br />
Frame relay: 2,44 segundos<br />
HDLC: 2,57 segundos<br />
<br />
Tendo-se ainda realizado o Netperf para a mesma rede (sub-rede) e rede remota (sub-redes diferentes e computador do professor) <br />
obteve-se os seguintes dados de teste:<br />
<br />
Tempo de transmissão com protocolo Frame Relay<br />
Mesma sub-rede: 10,13 segundos<br />
Rede Remota/Sub-rede diferente: 10,057 segundos<br />
<br />
Assim vemos que para um mesmo protocolo – neste caso o Frame Relay – não há diferença significativa de tempo de transmissão entre mesma rede e rede<br />
remota. Também em comparação com resultados de testes entre os dois protocolos (HDLC e FR) não houve uma grande diferença no tempo de transmissão. <br />
Mas a diferença existente (em cerca de 100 milisegundos) deve-se ao fato de o protocolo HDLC implementar mecanismos de controle (como fluxo e erros)<br />
nos frames transmitidos, gerando maior overhead no frame e necessitando de maior tempo para tranmissão de dados (propriamente ditos) relevantes à camada superior.<br />
<br />
</syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos Frame Relay e HDLC e discuta sobre o overhead causado nesses protocolos<br />
[[Arquivo:Frames.png|600px|thumb|center|Frames de Protocolos HDLC Padrão, HDLC Cisco e Frame Relay]]<br />
<syntaxhighlight lang=bash> R. <br />
<br />
De acordo com as estruturas de frame acima podemos concluir que há maior overhead no protocolo HDLC pois apesar de efetuar bit-stuffing, que gera <br />
menor overhead em relação a protocolos orientados a byte, possui um campo de controle em seu frame que envia apenas bits de controle para comunicação,<br />
sendo que o protocolo Frame Relay (FR) não necessita destas informações de controle, apenas as informações de endereço para repasse de dados e não <br />
realizando controle de erros e fluxo para estes frames. Vemos ainda que para um protocolo HDLC para modens/roteadores cisco, além de campos de <br />
controle de fluxo e de erros (extra ao FR), existe um sub-campo no campo de dados que se chama E-type ou campo de proprietário que informa o tipo de <br />
protocolo/proprietário da camada superior, causando ainda mais overhead ao frame! Nota-se que a estrutura simplificada dos frames em protocolo Frame <br />
Relay apenas necessita de informações do campo de endereço como o DLCI de enlaces da rede CV.<br />
</syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br><br />
<br />
'''EQUIPE C''':colocar aqui os componentes <br><br />
#Entenda como funciona basicamente o teste de vazão do netperf e explique brevemente a diferença encontrada nos resultados de tempo de teste ocorridos entre os três protocolos avaliados.<br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos HDLC e PPP e discuta sobre o overhead causado nesses protocolos<br />
<syntaxhighlight lang=bash> R. </syntaxhighlight><br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br><br />
<br />
'''EQUIPE D''': HelenLuciany Cechinel, Leticia Coelho, Jessica Hahn, Maria Luiza Theisges,Vinicius Kachniacz e Marcus Vinícius <br><br />
#Entenda como funciona basicamente o teste de vazão do netperf e explique porque o troughtput do ensaio com PPP não alcançou a taxa de transmissão nominal do link.<br />
<syntaxhighlight lang=bash> R. O netperf é um comando que testa a vazão da rede mandando um pacote com um número determinado de bits e verificando o tempo de resposta <br />
do pacote na rede. O PPP não alcançou a taxa de transmissão nominal do link devido a multiplexação dos dados, em que o canal foi dividido<br />
em outros sub canais. A somatória da banda de transmissão é o valor total da taxa de transmissão nominal do link;</syntaxhighlight><br />
<syntaxhighlight lang=bash> ''Revisão do professor:'' </syntaxhighlight><br />
#Compare as estruturas de frame dos protocolos PPP e Frame Relay e discuta sobre o overhead causado nesses protocolos<br />
R. <br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!PPP<br />
|FLAG ||Endereço|| Controle || Protocolo || Payload || FCS || FLAG<br />
|}<br />
<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Frame Relay<br />
|FLAG || Endereço || Dados || FCS || FLAG<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" <br />
!Endereço Frame Relay<br />
|DLCI||C/R|| EA || DLCI || FECN || BECN || DE || EA<br />
|}<br />
<br />
<br />
<syntaxhighlight lang=bash><br />
O PPP faz ByteStuffing e devido a este mecanismo um byte especial pode ser substituido por dois bytes ou mais,<br />
causando mais overhead do que o Frame Relay. Se o byte Stuffing for aplicado ao Frame. </syntaxhighlight><br />
<br> <br />
<br />
<syntaxhighlight lang=bash> 'Revisão do professor:' </syntaxhighlight><br><br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 09/11 - Enquadramento (Framing) e delimitação de quadros}}<br />
<br />
== 09/11 - Enquadramento (Framing) e delimitação de quadros ==<br />
<br />
'''Resumo da aula:'''<br />
<br />
* bit e byte stuffing;<br />
* Explicações adicionais e exemplos de enquadramento e delimitação em HDLC e PPP; Identificação de pacotes.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 11/11 - Detecção e Correção de Erros }}<br />
<br />
== 11/11 - Detecção e Correção de Erros==<br />
<br />
'''Resumo da aula:'''<br />
* Explicações adicionais sobre PPP;<br />
* Abordagem sobre erros em sistemas de telecomunicações: Erro de bit, erro de rajada;<br />
* Uso do campo FCS (Frame Check Sequence) nos protocolos da camada 2 para fins de de detecção de erro;<br />
* Check de paridade simples em sistemas assíncronos de comunicação de dados;<br />
* Paridade bidimensional ou longitudinal;<br />
* Revisão sobre a técnica de CheckSum;<br />
* Técnica CRC: Técnicas polinomiais na detecção e correção de erros na formação do FCS com códigos cíclicos CRC;<br />
* Exercícios da LISTA 1.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 16/11 - Exercícios }}<br />
<br />
* Mais alguns exercícios da Lista 1;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 18/11 - Interfaces Digitais}}<br />
<br />
'''Resumo da aula:'''<br />
<br />
* Slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/InterfacesDigitais.pdf Interfaces Digitais]. <br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 23/11 - Interfaces Digitais e exercícios}}<br />
<br />
== 23/11 - Interfaces Digitais e exercícios==<br />
<br />
'''Resumo da aula:'''<br />
<br />
* Finalização dos slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/InterfacesDigitais.pdf Interfaces Digitais];<br />
* Proponha e desenhe um esquema de ligações MÍNIMO de um cabo lógico que interliga um DTE a um DCE que estão configurados para uma comunicação de dados síncrona, que usa o clock do DTE como base de sincronismo. O controle de fluxo via hardware ́e requerido na comunicação e ela não se inicia se o circuito CT109 não estiver ativo. O DTE e DCE usam interface RS232 com conectores DB25 Fêmea.<br />
* Verificar e anotar todos os componentes nas conexões físicas entre modens, routers e PCs do laboratório realizado na aula de FR.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 25/11 - Implementação de caso de Interfaces Digitais e Avaliação 1}}<br />
<br />
== 25/11 - Implementação de caso de Interfaces Digitais e Avaliação 1==<br />
<br />
'''Implementação de Caso'''<br />
<br />
#Dinâmica:<br />
<br />
Com o objetivo de conhecer, identificar, especificar e instalar os componentes de redes associados a parte física de uma rede de telecomunicações, lançou-se a tarefa de realizar a troca dos roteadores central e esquerdo da rede para outros CISCO 2514 e 1750 respectivamente. Visando assimilar o significado e importância de todas as reconexões, não se priorizou refazer configurações em nível de enlace nos roteadores.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 30/11 - Correção da Avaliação 1 - Revisão do conteúdo correspondente}}<br />
<br />
== 30/11 - Correção da Avaliação 1 - Revisão do conteúdo correspondente==<br />
<br />
* Correção da Avaliação 1 - Revisão do conteúdo correspondente e esclarecimento de dúvidas e alternativas polêmicas da prova.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 02/12 - Modens Analógicos }}<br />
<br />
== 02/12 - Modens Analógicos ==<br />
<br />
* Término da correção da Avaliação 1.<br />
* Início sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/modens.pdf Modens analógicos] <br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 07/12 - Modens e Enlaces de Teste}}<br />
<br />
== 07/12 - Modens e Enlaces de Teste==<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 09/12 - Exercícios A2 }}<br />
<br />
== 09/12 - Exercícios A2 ==<br />
<br />
* cabos lógicos.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 14/12 - Modens Digitais}}<br />
<br />
== 14/12 - Modens Digitais ==<br />
<br />
* Atividades com laboratório com links e test-set conectados a modens Digitais de quatro tecnologias diferentes.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 16/12 - Revisão para a prova }}<br />
<br />
== 16/12 - Revisão para a prova ==<br />
<br />
* Exercícios de revisão para a Avaliação A2.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 21/12 - Recuperação Avaliação A1 e Avaliação A2}}<br />
<br />
== 21/12 - Recuperação Avaliação A1 e Avaliação A2 ==<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 01/02 - Redes Locais e o Padrão Ethernet }}<br />
<br />
== 01/02 - O Padrão Ethernet ==<br />
<br />
* Redes Locais e o padrão Ethernet - <br />
* Introdução sobre Redes Locais e slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/lan.pdf MAC]<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 03/02 - Correção Prova e Arquitetura IEEE 802}}<br />
<br />
== 03/02 - Correção Prova e Arquitetura IEEE 802 ==<br />
<br />
* Correção Prova A2;<br />
* Finalização Redes Locais com múltiplo Acesso - slides sobre [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/lan.pdf MAC]<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 10/02 - Redes Locais e o Padrão Ethernet - '''Não Compareci''' }}<br />
<br />
== 10/02 - Redes Locais e o Padrão Ethernet - '''Não Compareci''' ==<br />
<br />
* Não Compareci.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 15/02 - Arquitetura IEEE 802}}<br />
<br />
== 15/02 - Arquitetura IEEE 802 ==<br />
<br />
* Padrões da Arquitetura IEEE;<br />
* [http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/ieee.pdf Arquitetura IEEE802.3]<br />
* Leituras recomendadas para a prova e lista 3 de exercícios: Forouzan Cap 12 '''só a seção 1''', e Caps 13 e 15 '''completos'''.<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 22/02 - Exercícios P3}}<br />
<br />
== 22/02 - Exercícios P3 ==<br />
<br />
* Exercícios sobre a [http://tele.sj.ifsc.edu.br/~casagrande/RED/lista3_2015_1.pdf LISTA3] de exercícios para a avaliação A3;<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 24/02 - IEEE802.1D e Avaliação A3}}<br />
<br />
== 24/02 - IEEE802.1D e Avaliação A3==<br />
<br />
===Tecnologias de LAN switches ===<br />
<br />
Switches ''store-and-forward'' X ''cut-through''<br />
* Leia este [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/switch-internals.pdf bom texto] sobre estruturas internas de switches.<br />
* [http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html Texto sobre tecnologias de switches (store-and-forward e cut-through)]<br />
<br />
Algumas animações mostrando o funcionamento de switches ''store-and-forward'' e ''cut-through'':<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0142.mov Animacão sobre switches cut-through]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0141.mov Animacão sobre switches store-and-forward]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0143.mov Animacão sobre switches simétricos (todas portas com mesma taxa de bits)]<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0144.mov Animacão sobre switches assimétricos (portas com diferentes taxas de bits)]<br />
<br />
=== Interligando redes locais ===<br />
<br />
==== Interligação de LANs (norma IEEE802.1D) ====<br />
<br />
* Como um switch aprende que endereços MAC estão em cada porta ?<br />
* Como um switch encaminha um quadro cujo destinatário é desconhecido ?<br />
* Como um switch propaga quadros em broadcast ?<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/lan-switch-transparent.swf Animação sobre o funcionamento de switches (Cisco)]<br />
<br />
=== Laboratório sobre LANs ===<br />
<br />
* [[RCO2-lab3|Experiência sobre LANs]]<br />
<br />
<!-- === Desempenho de Redes Locais ===<br />
<br />
====Objetivos ====<br />
<br />
* Conhecer os equipamentos típicos de uma rede local Ethernet<br />
* Estimar o desempenho de uma LAN Ethernet comutada (com switch)<br />
<br />
==== Introdução ====<br />
<br />
Redes locais Ethernet (padrão IEEE 802.3 e extensões) são compostas de equipamentos que se comunicam, denominados estações (STA na norma IEEE 802.3), de equipamentos que os interligam (hubs e switches), e do meio de transmissão. A figura abaixo ilustra uma rede local hipotética com seus vários componentes.<br />
<br />
[[imagem:Lab1-lan-demo.png|400px]]<br />
<br />
<br />
De forma geral, uma estação possui um ou mais adaptadores de rede (placas de rede, ou NIC – Network Interface Card), como na figura abaixo à esquerda. Os adaptadores de rede das estações são conectados a um switch por meio de cabos de rede TP (par trançado) com conectores RJ-45, mostrado na figura abaixo à direita.<br />
<br />
<br />
[[imagem:Lab1-nic-switch.png|400px]]<br />
<br />
<br />
Originalmente LANs Ethernet foram construídas usando um cabo único para interligar as estações (cabo coaxial). Posteriormente surgiram as redes baseadas em hubs, equipamentos que interligavam as estações em nível da camada física (funcionavam como repetidores). Atualmente essas redes são construídas usando switches, equipamentos que interligam as estacões em nível da camada de enlace (na verdade, da subcamada MAC). Um switch apresenta como benefícios, se comparado com hubs:<br />
<br />
# '''atuação em nível de MAC:''' o switch faz o acesso ao meio com CSMA/CD ao encaminhar um quadro, quebrando o domínio de colisão; além disto, um switch pode operar em modo full-duplex, quando então inexiste a possibilidade de colisão.<br />
# '''preservação da capacidade do canal:''' para quadros unicast, o switch encaminha um quadro somente pela porta onde reside o destinatário.<br />
<br />
Essas características importantes devem fazer com que uma LAN com switches tenha um desempenho superior a uma LAN com hubs. Por desempenho entenda-se um número menor de colisões sob tráfego intenso (ou mesmo ausência total de colisões), e maior capacidade de canal vista por cada equipamento conectado ao switch.<br />
<br />
==== Utilização do meio de transmissão em uma rede local com MAC do tipo CSMA/CD ====<br />
<br />
Nesta seção mostra-se como estimar o desempenho do CSMA/CD por meio de experimentos para medir a utilização máxima do meio. Esses experimentos podem ser feitos usando uma rede real, com computadores interligados por ''hubs'', ou com um simulador. Em ambos os casos deve-se fazer com que vários computadores gerem tráfego intenso na rede, e calcular ao final a utilização do meio da seguinte forma:<br />
<br />
<math><br />
U = \frac{total~bytes~recebidos}{taxa~bits \cdot duracao~do~experimento}<br />
</math><br />
<br />
O ''total de quadros recebidos'' pode ser obtido em qualquer um dos computadores.<br />
<br />
{{collapse top|Experiência com uma rede real}}<br />
<br />
Para fazer com uma rede real: <br />
<br />
* [[RCO2-lab2|Roteiro da experiência]]<br />
<br />
'''Resultados:'''<br />
<syntaxhighlight lang=text><br />
64 53046660<br />
128 61992856<br />
256 67413192<br />
512 70684436<br />
756 71989464<br />
1024 77967480<br />
1500 73797088<br />
</syntaxhighlight><br />
<br />
Com esses dados deve-se plotar um gráfico da quantidade de bytes recebidos X tamanho dos quadros. Na tabela acima, os tamanhos de quadros estão na 1a coluna, e a quantidade de bytes recebidos está na 2a coluna.<br />
<br />
[[imagem:Csma-cd.png|400px]]<br />
<br />
<br>''Desempenho do MAC CSMA/CD (Carrier Sense Multiple Access/Collision Detection): o gráfico acima mostra o resultado de um experimento feito em laboratório com 6 computadores transmitindo quadros intensamente e simultaneamente para um único computador. A cada transmissão simultânea variou-se o tamanho dos quadros transmitidos (mostrado no eixo X), e anotou-se quantos bytes foram recebidos no computador receptor (eixo Y). Os computadores foram interligados por um hub.''<br />
{{collapse bottom}}<br />
<br />
{{collapse top|Experiência com uma rede simulada}}<br />
<br />
Para fazer a experiência pode-se usar também o simulador Omnet++ (veja em: [[Omnetpp-Instalacao|Instale o Omnet++ 4]])<br />
<br />
O gráfico abaixo foi obtido com uma simulação via Omnet++:<br />
<br />
[[imagem:Csma-perf-sim.png]]<br />
<br />
As simulações tiveram os seguintes parâmetros:<br />
* Quadros de 256, 512 e 1480 bytes<br />
* 2 a 45 estações<br />
* Geração de tráfego por estação com intervalos entre quadros dados por uma distribuição exponencial com média 15*tamanho_quadro_em_bits*0.11us (0.11us é o tempo aproximado de um bit)<br />
{{collapse bottom}}<br />
<br />
{{collapse top|Análise de desempenho do CSMA/CD}}<br />
<br />
Uma análise feita no capítulo 4 do livro "Redes de Computadores, 4a ed." de Andrew Tanenbaum fornece a seguinte previsão aproximada de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.<br />
<br />
* ''Utilização do meio:''<br />
<br />
<math>U = \frac{1}{1 + \frac{2BLe}{cF}}</math><br />
<br />
* '''''B:''''' taxa de bits nominal<br />
* '''''L:''''' comprimento do meio de transmissão<br />
* '''''c: ''''' velocidade de propagação do sinal<br />
* '''''F:''''' comprimento do quadro<br />
<br />
[[Image:Csma-perf.png|400px]]<br />
<br />
Essa figura mostra curvas para a utilização do meio em função da quantidade de estações prontas para transmitir, e para diferentes tamanhos de quadro. A conclusão é que quadros menores proporcionam desempenho inferior, assim como uma quantidade maior de estações resulta em uma provável menor utilização do meio. No entanto essa análise considera a rede numa situação de carga muito alta, o que não acontece normalmente. Há também algumas simplificações no desenvolvimento da análise, tal como considerar que a probabilidade de retransmissão constante em cada ''slot'', ao invés de analisar o algoritmo de recuo exponencial binário (''backoff''). Finalmente, esse resultado tem sentido para um meio de transmissão compartilhado, mas a atualmente as redes locais ethernet trabalham com meios de transmissão exclusivos (''ethernet comutada e full-duplex'', em que não há risco de colisão).<br />
<br />
Para fins de comparação, veja os resultados obtidos com as redes simuladas anteriormente.<br />
{{collapse bottom}}<br />
<br />
==== Roteiro ====<br />
<br />
A rede de teste para o experimento será composta de computadores ligados a um switch Ethernet a 100 Mbps em modos half ou full-duplex. Serão sintetizados tráfegos intensos, de forma a poder comparar o desempenho das transmissões nos dois casos.<br />
<br />
[[imagem:Lab1.png]]<br />
# Observe a placa de rede de seu computador e sua conexão à rede por meio do cabo TP. Os computadores do laboratório estão conectados ao switch Microtec, que reside no rack central. O número da porta onde está conectado seu computador na bancada corresponde à porta do switch. Desconecte o cabo do seu computador e observe o status da porta correspondente no switch (o status é informado por um led, que aceso significa que há equipamento ativo conectado àquela porta). '''Questão:''' como será que o switch sabe que um equipamento foi conectado a uma porta ?<br />
# Veja que informações o Linux provê a respeito de seu adaptador Ethernet. Usando os comandos administrativos do Linux, descubra:<br />
#* o modelo do adaptador, e seu endereço MAC: ver comandos [http://manpages.ubuntu.com/manpages/hardy/man8/lspci.8.html lspci] e [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig].<br />
#* seu modo de operação (velocidade, modo duplex, se o enlace está ativo): ver comando [http://manpages.ubuntu.com/manpages/hardy/man8/ethtool.8.html ethtool]<br />
#* suas estatísticas de operação (quadros transmitidos e recebidos, colisões e erros em geral): ver comandos [http://manpages.ubuntu.com/manpages/hardy/man8/netstat.8.html netstat] e [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig].<br>Após obter essas informações, experimente desconectar o cabo da placa de rede e repetir a execução dos comandos. <br />
# Anote os valores dos contadores de quadros e bytes recebidos e enviados pela interface ethernet em seu computador. Use o comando [http://manpages.ubuntu.com/manpages/hardy/man8/ifconfig.8.html ifconfig] para visualizar esses contadores. Anote também o horário em que se fez essa medição.<br />
# Os computadores se comunicarão aos pares, usando-se o programa [http://manpages.ubuntu.com/manpages/lucid/man1/netperf.1.html netperf] para gerar o tráfego e medir a capacidade do canal:<syntaxhighlight lang=bash>netperf -f k -H endereço_IP</syntaxhighlight>(Obs: endereço_IP é o endereço IP computador alvo).<br />
# Execute o [http://manpages.ubuntu.com/manpages/lucid/man1/netperf.1.html netperf] de forma sincronizada: os computadores devem iniciá-lo simultaneamente. Repita esse procedimento 3 vezes, anotando a taxa de transmissão obtida em cada computador.<br />
# '''Carga de tráfego na rede durante o experimento:''' anote novamente os valores dos contadores de quadros e bytes recebidos e enviados pela interface ethernet em seu computador. Usando os valores medidos previamente, calcule:<br />
## Quantos bytes e quadros foram enviados e recebidos durante o experimento<br />
## As taxas médias de transmissão e recepção pela sua interface ethernet<br />
## A utilização do seu link ethernet. Obs: a utilização é a razão entre quantos bytes foram enviados, e quantos bytes poderiam ser enviados ininterruptamente durante o experimento. O mesmo vale para os bytes recebidos.<br />
# Repita os passos 4 a 6, mas antes configure os computadores para operarem em modo 100baseT half-fuplex: <syntaxhighlight lang=bash><br />
sudo ethtool -s eth0 speed 100 duplex half autoneg off<br />
</syntaxhighlight>Houve diferença nas taxas de bits obtidas ? Caso sim, qual deve ser a explicação ?<br />
# As interfaces de rede dos computadores podem operar a 1000 Mbps (gigabit), mas o switch do laboratório opera a 100 Mbps. Pode-se medir a capacidade de transmissão do computador através dessas interfaces se os computadores forem conectados aos pares. Assim, conecte o cabo da interface de rede de seu computador à interface do computador ao seu lado. Em seguida faça os seguintes experimentos:<br />
## Em cada computador deve-se gerar um arquivo de nome “teste”, com 1GB de conteúdo aleatório: <syntaxhighlight lang=bash><br />
dd if=/dev/urandom of=teste bs=65536 count=16384 <br />
</syntaxhighlight><br />
## O arquivo deve ser transferido de um computador a outro. No computador que irá receber o arquivo execute:<syntaxhighlight lang=bash><br />
nc -l 10000 > recebido<br />
</syntaxhighlight>.. e no que irá transmitir execute:<syntaxhighlight lang=bash><br />
date +%s.%N; nc IP_do_outro_computador 10000 < teste; date +%s.%N<br />
</syntaxhighlight><br />
## No computador transmissor aparecerão dois números, que correspondem aos instantes de início e fim de transmissão. Calcule quanto tempo demorou a transmissão, e em seguida a taxa de bits obtida. Compare essa taxa com a capacidade nominal da interface de rede (1000 Mbps).<br />
## Repita duas vezes os passos ii e iii , e anote os valores de taxa de bits obtidos. Houve variação nas medições ?<br />
## Repita os passos 2 a 4, porém executando o seguinte comando no receptor: <syntaxhighlight lang=bash><br />
nc -l 10000 > /dev/null<br />
</syntaxhighlight>Houve diferença nos valores obtidos para a taxa de bits ? Caso afirmativo, qual deve ser explicação ?<br />
<br />
==Exercícios sobre a Atividade: da Colisão à Comutação==<br />
<br />
O acesso ao meio ethernet com CSMA/CD é probabilístico: uma estação verifica se o meio está está livre antes de iniciar uma transmissão, mas isso não impede que ocorra uma colisão (apenas reduz sua chance). Se acontecer uma colisão, cada estação envolvida usa esperas de duração aleatória para desempate, chamadas de ''backoff''. A ideia é que as estações sorteiem valores de espera diferentes, e assim a que tiver escolhido um valor menor consiga transmitir seu quadro. As colisões e esperas (''backoffs'') impedem que esse protocolo de acesso ao meio aproveite totalmente a capacidade do meio de transmissão.<br />
<br />
* [http://www.datacottage.com/nch/eoperation.htm Veja animacões que mostram o tratamento de colisões]<br />
<br />
No entanto, '''nas gerações atuais do padrão IEEE 802.3 (Gigabit Ethernet e posteriores) o CSMA/CD não é mais utilizado'''. Nessas atualizações do padrão, o modo de comunicação é full-duplex (nas versões anteriores, que operavam a 10 e 100 Mbps, há a possibilidade de ser half ou full-duplex). Se as comunicações são full-duplex, então '''conceitualmente não existem colisões'''. Isso se deve ao fato de que nessas novas versões cada estação possui uma via exclusiva para transmitir e outra para receber, portanto não existe mais um meio compartilhado.<br />
<br />
*Além dos resultados coletados no roteiro do laboratório de hoje leia o conteúdo sobre LAN postados aqui e nos slides e links indicados e procure em nossa bibliografia ou internet, nos temas correspondentes, respostas e ilustrações sobre as seguintes perguntas:<br />
<br />
#Como um switch identifica e sinaliza através de um led em seu frontal, que um equipamento foi conectado a uma de suas portas?<br />
#Considerando os números médios coletados por TODOS no experimento, quais foram os valores de taxa média de Tx e Rx (em bps) na interface ethernet? e a taxa de utilização do link (em %)?<br />
#O que acontece com o desempenho da rede quando as placas de rede são configuradas em modo Half-duplex?<br />
#A conexão entre computadores na última parte do experimento, é direta, ou seja, sem switch entre eles. Voces devem ter observado que quando os dados recebidos por um pc não são encaminhados para lugar algum (> /dev/null) o desempenho da transmissão é melhor. Qual a explicação disso? Diante desses resultados, até que ponto vale à pena ter interfaces ethernet com velocidades maiores, como por exemplo 10Gbps?<br />
# Porque razão as medidas de vazão (Throughput) nunca alcançaram 100% da taxa configurada na placa de rede?<br />
# Em algum momento do experimento houve uso do algorítimo CSMA/CD? onde ocorre a execução dele?<br />
<br />
--><br />
<br />
* Avaliação A3 - 50min<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 29/02 - LANs Virtuais e '''Orientações para a Avaliação A5'''}}<br />
<br />
== 29/02 - LANs Virtuais e Orientações para a Avaliação A5==<br />
<br />
* ORIENTAÇÕES PARA ELABORAR O TRABALHO CIENTÍFICO EM SUBSTITUIÇÃO A AVALIAÇÃO A5:<br />
<br />
'''MODELO A SER ADOTADO:''' RESUMO<br />
<br />
Resumo, segundo a ABNT é a apresentação concisa das principais idéias de um texto. Resulta da capacidade analítica e compreensiva que o leitor adquire no momento em que faz sua leitura. Quanto mais se tem domínio e compreensão do texto, maior será a capacidade de<br />
síntese e de apresentação de forma breve. Na apresentação do resumo, o aluno deve evitar a manifestação de opinião sobre o tema ou analisá-lo criticamente. O acréscimo da crítica no resumo caracteriza um outro tipo de trabalho, denominado resumo crítico ou resenha crítica. No meio acadêmico, o desenvolvimento de um resumo é importante, por que permite “[...] em rápida leitura, recordar o<br />
essencial do que se estudou e [apresentar] a conclusão a que se chegou” (GALLIANO, 1986, p. 89).<br />
<br />
'''Temas dos trabalhos para substituir a A5'''<br />
<br />
* [[Tema 1 - IEEE802.1x]] - GUSTAVO, MACIEL, ANDERSON, CARLOS, <br />
* [[Tema 2 - IEEE802.11i]] - IAGO, MARCO, FABIANO, GABRIEL G, <br />
* [[Media: IEEE802.11e.pdf | IEEE802.11e]] - GABRIEL C, LUCAS, ANDRE, GABRIEL S, <br />
* [[Tema 4 - IEEE802.1p]] - GEMEAS, HELEN, MARY, LE <br><br />
<br />
'''ENTREGA:''' DIA 15/03 ATÉ AS 23:59h - Como? '''PUBLICAÇÃO NA WIKI''' no link correspondente acima! <br><br />
<br />
'''JUSTIFICATIVA E ESTRATÉGIA:''' O trabalho do tipo resumo facilita o trabalho em grupo no sentido da exigência de reuniões do mesmo para definir o escopo do trabalho e a divisão de tarefas onde cada um dos componentes define uma seção do tema para resumir após a decisão do grupo do que relevante será abordado no trabalho final. A publicação na WIKI garante que toda a turma tenham acesso para futuras pesquisas.<br />
<br />
==REDES LOCAIS VIRTUAIS - VLANS==<br />
<br />
* Ver [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/vlan.pdf slides] sobre introdução à VLANs.<br />
<br />
Introdução: A equipe que administra a rede do campus São José estudou uma reestruturação dessa rede. Como diferentes setores e públicos a utilizam, e para diferentes propósitos, concluiu-se que seria apropriado segmentá-la em algumas subredes. Isso possibilitaria facilitar o controle de quem usa a rede, além do policiamento do tráfego. Para isso, a subrede geral do campus precisaria ser segmentada inicialmente em cinco novas subredes, denominadas:<br />
<br />
{| border="1" cellpadding="2"<br />
!Segmento<br />
!Descrição<br />
!Subrede IP<br />
|-<br />
|'''Pedagogica''' || Pontos das salas de aula e laboratórios de informática|| 172.18.32.0/20<br />
|-<br />
|'''Administrativa''' || Pontos de setores administrativos|| 172.18.16.0/20<br />
|-<br />
|'''DMZ''' || Servidores acessíveis de fora da escola (ex: Wiki, WWW)|| 200.135.37.64/26<br />
|-<br />
|'''BD''' || Servidores que hospedam bancos de dados (ex: LDAP, MySQL)|| 172.18.240.0/24<br />
|-<br />
|'''LAN''' || Demais pontos de rede || 172.18.0.0/20<br />
|}<br />
<br />
<br />
A figura abaixo mostra a estrutura proposta para a rede do campus São José, composta pelas cinco novas subredes e as subredes dos laboratórios de Redes 1 e Redes 2. Como se pode observar, o roteador/firewall Cisco ASA 5510 se torna um nó central da rede, pois interliga todas suas subredes (com exceção dos laboratórios de Redes 1 e Redes 2).<br />
<br />
<br />
[[imagem:Nova-rede-ifsc-sj.png|600px]]<br />
<br />
<br />
Existe mais de uma forma de implantar uma estrutura como essa, as quais serão apresentadas nas próximas subseções.<br />
<br />
==== Segmentação física ====<br />
<br />
A segmentação física é uma solução aparentemente simples e direta. Cada subrede deve ser composta de uma estrutura exclusiva, contendo seus switches e cabeamentos. No entanto, para adotar esse tipo de segmentação, algumas modificações precisarão ser feitas na infraestrutura de rede existente. Observe a estrutura física da rede do campus:<br />
<br />
[[imagem:Rede-ifsc-sj.png|600px]]<br />
<br />
<br />
O que seria necessário fazer para implantar uma segmentação física ?<br />
<br />
==== Segmentação com VLANs ====<br />
<br />
Se a reestruturação pudesse ser efetuada com mínimas modificações na estrutura física (incluindo cabeamento), a implantação da nova rede seria mais rápida e menos custosa. Para isso ser possível, seria necessário que a infraestrutura de rede existente tivesse a capacidade de agrupar portas de switches, separando-as em segmentos lógicos. Quer dizer, deveria ser possível criar '''redes locais virtuais''', como mostrado na seguinte figura:<br />
<br />
[[imagem:Vlans.png]]<br />
<br />
No exemplo acima, três redes locais virtuais ('''VLAN''') foram implantadas nos switches. Cada rede local virtual é composta por um certo número de computadores, que podem estar conectados a diferentes switches. Assim, uma rede local pode ter uma estrutura lógica diferente da estrutura física (a forma como seus computadores estão fisicamente interligados). Uma facilidade como essa funcionaria, de certa forma, como um ''patch panel'' virtual, que seria implementado diretamente nos switches.<br />
<br />
'''Redes locais virtuais''' são técnicas para implantar duas ou mais redes locais com topologias arbitrárias, usando como base uma infraestrutura de rede local física. Isso é semelhante a máquinas virtuais, em que se criam computadores virtuais sobre um computador real.<br />
<br />
<br />
==== Padrão IEEE 802.1q ====<br />
<br />
Os primeiros switches com suporte a VLANs as implementavam de forma legada (i.e. não seguiam um padrão da indústria). Isso impedia que houvesse interoperabilidade entre equipamentos de diferentes fabricantes. Logo a IEEE formou um grupo de trabalho para propor mecanismos padronizados para implantar VLANs, dando origem ao padrão [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1Q-2005.pdf IEEE 802.1q]. Os fabricantes de equipamentos de rede o adataram largamente, suplantando outras tecnologias legadas (ex: [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094665.shtml ISL] e [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094c52.shtml VTP] da Cisco). Com isso, VLANs IEEE 802.1q podem ser criadas usando switches de fabricantes diferentes.<br />
<br />
Atualmente, a implantação de VLANs depende de switches com suporte ao padrão IEEE 802.1q. Assim, verifique quais dos switches do laboratório possuem suporte a VLAN:<br />
* D-Link DES-526 [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/manual-des3526.pdf (manual)]<br />
* Micronet SP 1658B [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/SP1658B_Manual.pdf (manual)]<br />
* 3Com 3224 [http://www.3com.com/prod/pt_la_amer/detail.jsp?tab=prodspec&sku=3C16479 (especificações)]<br />
<br />
Uma VLAN é identificada por um número, chamado VID (''VLAN Identifier''), sendo que a VLAN com VID 1 é considerada a ''VLAN default'' (configuração de fábrica). Em um switch com suporte a VLAN IEEE 802.1q, cada porta possui um (ou mais ...) VID, o que define a que VLAN pertence. Assim, para criar uma VLAN, devem-se modificar os VID das portas de switches que dela farão parte. <br />
<br />
Além do VID, a configuração da porta de um switch deve especificar o modo de operação da VLAN:<br />
* '''tagged:''' cada quadro transmitido ou recebido por essa porta deve conter o número da VLAN a que pertence. Esse modo é usado normalmente em portas que interligam switches.<br />
* '''untagged:''' quadros que entram e saem pela porta não possuem informação sobre a VLAN a que pertencem. Usado normalmente para conectar computadores e servidores a switches.<br />
<br />
<br />
Esses modos '''tagged''' e '''untagged''' implicam haver uma forma de um quadro Ethernet informar a que VLAN pertence. Isso é usado para restringir a propagação de quadros, fazendo com que sejam recebidos e transmitidos somente por portas de switches que fazem parte de suas VLANs. <br />
<br />
<br />
O padrão IEEE 802.1q define, entre outras coisas, uma extensão ao quadro MAC para identificar a que VLAN este pertence. Essa extensão, denominada tag (etiqueta) e mostrada na figura abaixo, compõe-se de 4 bytes situados entre os campos de endereço de origem e ''Type''. O identificador de VLAN (VID) ocupa 12 bits, o que possibilita portanto 4096 diferentes VLANs.<br />
<br />
<br />
[[imagem:Quadro-8021q.png]]<br />
<br>''Quadro ethernet com a TAG IEEE 802.1q''<br />
<br />
<br />
A ''tag'' de VLAN, inserida em quadros Ethernet, está diretamente relacionada com os modos '''tagged''' e '''untagged''' de portas de switches. Portas em modo '''tagged''' transmitem e recebem quadros que possuem ''tag'', e portas em modo '''untagged''' recebem e transmitem quadros que não possuem ''tag''. Isso foi pensado para tornar a implantação de VLANs transparente para os usuários finais, pois seus computadores não precisarão saber que existem VLANs (i.e. não precisarão interpretar ''tags''). Por isso equipamentos que não interpretam ''tags'' são denominados ''VLAN-unaware'' (desconhecem VLAN), e equipamentos que recebem e transmitem quadros com ''tag'' são referidos como ''VLAN-aware'' (conhecem VLAN).<br />
<br />
<br />
'''Exemplo: simulador de switch com VLAN:'''<br />
<br>Esta animação possibilita simular a configuração de VLANs em um switch, e efetuar testes de transmissão. Experimente criar diferentes VLANs e observar o efeito em transmissões unicast e broadcast (clique na figura para acessar o simulador).<br />
<br />
[[imagem:Simulador-vlan.png|link=http://www2.rad.com/networks/2006/vlan/demo.htm|Um simulador de VLANs]]<br />
<br />
== Redes locais e VLANs == <br />
<br />
<br />
'''Exemplo:''' a configuração do [[Netkit]] mostrada abaixo cria uma pequena rede composta por um switch e quatro computadores. Além disso, foram definidas duas VLANs (VLAN 5 e VLAN 10). Com isso, os computadores ''pc1'' e ''pc4'' pertencem a VLAN 5, e os computadores ''pc2'' e ''pc3'' estão na VLAN 10. Execute a rede abaixo e teste a comunicação entre os computadores - quais computadores conseguem se comunicar ?.<br />
<br />
{| border="0" cellpadding="3"<br />
|-<br />
| <syntaxhighlight lang=text><br />
sw[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=generic<br />
<br />
# As portas do switch<br />
sw[eth0]=port0:vlan_untagged=5<br />
sw[eth1]=port1:vlan_untagged=10<br />
sw[eth2]=port2:vlan_untagged=10<br />
sw[eth3]=port3:vlan_untagged=5<br />
<br />
# Ligando os computadores ao switch<br />
pc1[eth0]=port0:ip=192.168.0.1/24<br />
pc2[eth0]=port1:ip=192.168.0.2/24<br />
pc3[eth0]=port2:ip=192.168.0.3/24<br />
pc4[eth0]=port3:ip=192.168.0.4/24<br />
</syntaxhighlight> || [[imagem:Vlans-ex1.png]]<br />
|}<br />
<br />
Por exemplo, em uma pequena rede com duas VLANs as portas dos switches podem estar configuradas da seguinte forma:<br />
<br />
<br />
{| border="0" cellpadding="2"<br />
|-<br />
|[[imagem:Bridge3.png]] || <syntaxhighlight lang=text><br />
switch1[type]=switch<br />
switch2[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=gateway<br />
pc5[type]=generic<br />
pc6[type]=generic<br />
<br />
pc1[default_gateway]=192.168.0.4<br />
pc2[default_gateway]=192.168.0.4<br />
pc3[default_gateway]=192.168.1.4<br />
pc5[default_gateway]=192.168.1.4<br />
pc6[default_gateway]=192.168.0.4<br />
<br />
switch1[eth0]=sw1-port0:vlan_untagged=5<br />
switch1[eth1]=sw1-port1:vlan_untagged=5<br />
switch1[eth2]=sw1-port2:vlan_untagged=10<br />
switch1[eth3]=link-sw1-sw2:vlan_tagged=5,10<br />
<br />
switch2[eth0]=sw2-port0:vlan_tagged=5,10<br />
switch2[eth1]=sw2-port1:vlan_untagged=10<br />
switch2[eth2]=sw2-port2:vlan_untagged=5<br />
switch2[eth3]=link-sw1-sw2:vlan_tagged=5,10<br />
<br />
pc1[eth0]=sw1-port0:ip=192.168.0.1/24<br />
pc2[eth0]=sw1-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw1-port2:ip=192.168.1.3/24<br />
pc4[eth0]=sw2-port0:vlan_tagged=(5,ip=192.168.0.4/24),(10,ip=192.168.1.4/24)<br />
pc5[eth0]=sw2-port1:ip=192.168.1.5/24<br />
pc6[eth0]=sw2-port2:ip=192.168.0.6/24<br />
</syntaxhighlight><br />
|}<br />
<br />
'''Exercício:''' Redesenhe a topologia LÓGICA para essa rede!<br />
<br />
<br />
=== Atividade 1 ===<br />
<br />
Na figura abaixo, a rede da esquerda está fisicamente implantada em uma pequena empresa. No entanto, uma reestruturação tem como objetivo modificá-la de acordo com o diagrama mostrado à direita. Essa alteração da rede deve ser feita sem adicionar switches ou modificar o cabeamento (tampouco devem-se mudar as conexões de pontos de rede às portas de switches). Faça essa modificação usando o [[Netkit]].<br />
<br />
[[imagem:Vlan-ex1.png]]<br />
<br />
# '''Criar a topologia física:'''<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=generic<br />
pc5[type]=generic<br />
pc6[type]=generic<br />
<br />
sw1[eth0]=sw1-port0<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-port2<br />
sw1[eth3]=link-sw1-sw2<br />
<br />
sw2[eth0]=sw2-port0<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-port2<br />
sw2[eth3]=link-sw1-sw2<br />
<br />
pc1[eth0]=sw1-port0<br />
pc2[eth0]=sw1-port1<br />
pc6[eth0]=sw1-port2<br />
<br />
pc3[eth0]=sw2-port0<br />
pc4[eth0]=sw2-port1<br />
pc5[eth0]=sw2-port2<br />
</syntaxhighlight><br />
# '''Exercício:''' Criar a topologia lógica usando VLANs<br>''... isso é com vocês!''<br />
<br />
=== A nova rede do IFSC-SJ ===<br />
<br />
'''Desafio:''' Voltando à segmentação da rede do campus São José, implemente a nova rede usando VLANs!<br />
<br />
<br />
{| border="0" cellpadding="2"<br />
|-<br />
|[[imagem:Ifsc-sj-simples.png|400px]] || [[imagem:Ier-seta.png]]|| [[imagem:Nova-rede-ifsc-sj.png|400px]]<br />
|}<br />
<br />
Primeiro isso será realizado usando o [[Netkit]], e em seguida será implantado no laboratório. Para simplificar a rede, vamos assumir que a topologia física está implantada como mostrado na figura acima, à esquerda.<br />
<br />
{{collapse top | Configuração da rede do IFSC-SJ}}<br />
<syntaxhighlight lang=text><br />
# switches<br />
sw-rnp[type]=switch<br />
sw-redes1[type]=switch<br />
sw-redes2[type]=switch<br />
sw-coinf[type]=switch<br />
sw-labdes[type]=switch<br />
<br />
# gateways<br />
asa5510[type]=gateway<br />
gw-redes1[type]=gateway<br />
gw-redes2[type]=gateway<br />
<br />
# computadores e servidores<br />
bd[type]=generic<br />
dmz1[type]=generic<br />
dmz2[type]=generic<br />
adm1[type]=generic<br />
adm2[type]=generic<br />
adm3[type]=generic<br />
pedag1[type]=generic<br />
pedag2[type]=generic<br />
pc-redes1[type]=generic<br />
pc-redes2[type]=generic<br />
<br />
# Portas dos switches<br />
sw-rnp[eth0]=rnp-port0<br />
sw-rnp[eth1]=rnp-port1<br />
sw-rnp[eth2]=rnp-port2<br />
sw-rnp[eth3]=rnp-port3<br />
sw-rnp[eth4]=rnp-port4<br />
sw-rnp[eth5]=rnp-port5<br />
<br />
sw-redes1[eth0]=redes1-port0<br />
sw-redes1[eth1]=redes1-port1<br />
<br />
sw-redes2[eth0]=redes2-port0<br />
sw-redes2[eth1]=redes2-port1<br />
<br />
sw-coinf[eth0]=coinf-port0<br />
sw-coinf[eth1]=coinf-port1<br />
sw-coinf[eth2]=coinf-port2<br />
# Ligações entre switches<br />
sw-coinf[eth3]=rnp-port5<br />
sw-coinf[eth4]=labdes-port3<br />
<br />
sw-labdes[eth0]=labdes-port0<br />
sw-labdes[eth1]=labdes-port1<br />
sw-labdes[eth2]=labdes-port2<br />
sw-labdes[eth3]=labdes-port3<br />
<br />
# Ligações dos computadores aos switches<br />
asa5510[eth0]=rnp-port0:ip=172.18.0.254/16<br />
bd[eth0]=rnp-port1:ip=172.18.0.10/16<br />
dmz1[eth0]=rnp-port2:ip=172.18.0.11/16<br />
adm1[eth0]=rnp-port3:ip=dhcp<br />
gw-redes1[eth1]=rnp-port4:ip=172.18.0.100/16<br />
<br />
pc-redes1[eth0]=redes1-port1:ip=192.168.1.2/24<br />
gw-redes1[eth0]=redes1-port0:ip=192.168.1.1/24<br />
<br />
pc-redes2[eth0]=redes2-port1:ip=192.168.2.2/24<br />
gw-redes2[eth0]=redes2-port0:ip=192.168.2.1/24<br />
<br />
dmz2[eth0]=coinf-port0:ip=172.18.0.13/16<br />
adm2[eth0]=coinf-port1:ip=dhcp<br />
pedag1[eth0]=coinf-port2:ip=dhcp<br />
<br />
adm3[eth0]=labdes-port0:ip=dhcp<br />
pedag2[eth0]=labdes-port1:ip=dhcp<br />
gw-redes2[eth1]=labdes-port2:ip=172.18.0.101/16<br />
<br />
# ASA 5510 é servidor dhcp da LAN ...<br />
asa5510[dhcp]=eth0:range=172.18.100.1,172.18.100.250:gateway=172.18.0.254<br />
<br />
# Gateways default dos computadores que usam IP fixo<br />
gw-redes1[default_gateway]=172.18.0.254<br />
gw-redes2[default_gateway]=172.18.0.254<br />
pc-redes1[default_gateway]=192.168.1.1<br />
pc-redes2[default_gateway]=192.168.2.1<br />
bd[default_gateway]=172.18.0.254<br />
dmz1[default_gateway]=172.18.0.254<br />
dmz2[default_gateway]=172.18.0.254<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}}<br />
<br />
== Praticando VLANs com SWITCH Catalyst CISCO 2960S==<br />
<br />
===Uso dos Switches do Laboratório para a criação de VLANs===<br />
<br />
* uso da interface CLI da CISCO e comandos básicos;<br />
* gerenciamento de switches via TELNET;<br />
* configuração de VLANs distribuídas em 2 switches usando trunk e access;<br />
* uso de VLAN nativa para gerência comum.<br />
* configuração básica do switch após reset:<br />
<br />
<code><br />
hostname SW_1<br />
interface Vlan1<br />
ip address 192.168.1.111 255.255.255.0<br />
!<br />
ip default-gateway 192.168.1.1<br />
ip http server<br />
ip http secure-server<br />
!<br />
line con 0<br />
line vty 0 4<br />
password CISCO<br />
login<br />
line vty 5 15<br />
password CISCO<br />
login<br />
enable secret CISCO<br />
<br />
wr<br />
<br />
</syntaxhighlight><br />
<br />
Para zerar a configuração:<br />
<br />
<code><br />
<br />
erase startup-config<br />
erase running-config<br />
wr<br />
reload<br />
!<br />
! depois executar os comandos anteriores via console<br />
!<br />
</syntaxhighlight><br />
<br />
Configurando vlan no switch<br />
<br />
<code><br />
<br />
Switch>enable<br />
<br />
Switch#configure terminal<br />
<br />
Switch(config)#vlan 10<br />
<br />
Switch(config-vlan)#name dep-administrativo<br />
<br />
Switch(config-vlan)#exit<br />
<br />
Switch(config)#<br />
<br />
Switch(config)#interface fastEthernet 0/1<br />
<br />
Switch(config-if)#switchport mode access<br />
<br />
Switch(config-if)#switchport access vlan 10<br />
<br />
Switch(config-if)#exit<br />
<br />
Switch(config)#exit<br />
<br />
Switch#sh vlan<br />
<br />
</syntaxhighlight><br />
<br />
Configurando trunk no switch e interface nativa para gerenciamento comum<br />
<br />
<code><br />
<br />
Switch>enable<br />
<br />
Switch#configure terminal<br />
<br />
Switch(config)#interface fastEthernet 0/1<br />
<br />
Switch(config-if)#switchport mode trunk<br />
<br />
Switch(config-if)#switchport mode native vlan 1<br />
<br />
</syntaxhighlight><br />
<br />
Para apagar vlans:<br />
<br />
<code><br />
<br />
no vlan 2-1000<br />
<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}} <br />
<br />
{{Collapse top | 02/03 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d}}<br />
<br />
==02/03 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d==<br />
<br />
=== O problema dos ciclos (caminhos fechados) em uma rede local ethernet ===<br />
<br />
Bibliografia associada:<br />
* Capítulo 15 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.<br />
* Capítulo 5 do livro "''Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição'', de James Kurose.<br />
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.<br />
<br />
Outros materiais:<br />
* Introdução a STP (ver [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/stp.pdf slides])<br />
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/spanning_tree1.swf Uma animação sobre STP].<br />
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/stp.pdf Um texto explicativo sobre STP]<br />
* [http://en.wikipedia.org/wiki/Spanning_tree_protocol STP na Wikipedia]<br />
<br />
Após implantar a [[RCO2-2012-1#Atividade_3|nova rede do IF-SC SJ]], a equipe da gerência de rede passou a acompanhar seu uso pela comunidade escolar. E um certo dia um aluno acidentalmente pegou um cabo e ligou em duas tomadas de rede em um laboratório (que está na Subrede ''Pedagógica''). Quer dizer, ele fez algo assim com um dos switches da rede:<br />
<br />
<br />
[[imagem:Curto-lan.png]]<br />
<br />
<br />
A interligação acidental de duas portas de um switch cria um ciclo na rede local (''loop''). Mas isso pode ser feito também de forma intencional, pois em LANs grandes pode ser desejável ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto é algo que pode ocorrer em uma rede local, seja por acidente ou com a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Um caso em que uma rede possui um ciclo intencionalmente colocado pode ser visto na LAN abaixo:<br />
<br />
[[imagem:LAN-anel-stp.png]]<br />
<br />
Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa ficaria travada devido a um efeito chamado de ''tempestade de broadcasts'' (''broadcast storm''). Isso acontece porque, ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manualmente tira o sentido de ter tal configuração para tolerância a falhas (e não impede um "acidente" como aquele descrito no início desta secão), por isso foi criado o protocolo [http://en.wikipedia.org/wiki/Spanning_Tree_Protocol STP] (''Spanning Tree Protocol'', definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa. <br />
<br />
<br />
Voltando ao problema do loop acidental (ou proposital...) colocado entre portas de um mesmo switch, vamos avaliar o que ocorreria na prática sem um protocolo STP.<br />
<br />
<br />
[[imagem:Curto-lan.png]]<br />
<br />
<br />
Para ver a consequência dessa ação aparentemente inocente, experimente reproduzi-la em uma rede feita com o [[Netkit]]:<br />
<br />
{| border="0" cellpadding="2"<br />
|-<br />
|[[imagem:Stp-ex1.png]] || <syntaxhighlight lang=text><br />
pc1[type]=generic<br />
pc2[type]=generic<br />
sw[type]=switch<br />
<br />
sw[eth0]=port0<br />
sw[eth1]=port1<br />
<br />
pc1[eth0]=port0:ip=192.168.0.1/24<br />
pc2[eth0]=port1:ip=192.168.0.2/24<br />
<br />
# ... a barbeiragem do usuário da rede no switch !<br />
sw[eth2]=link-barbeiragem<br />
sw[eth3]=link-barbeiragem<br />
</syntaxhighlight><br />
|}<br />
<br />
<br />
'''O que ocorreu ao tentar pingar de pc1 para pc2 ?'''<br />
<br />
* Abra a ferramenta "monitor do sistema" do UBUNTU para constatar a carga de processamento do processador de seu PC e conclua o que está acontecendo.<br />
<br />
Agora vamos observar o STP em ação na rede abaixo <br />
<br />
[[imagem:LAN-anel-stp.png]]<br />
<br />
* Configuração para o Netkit:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
sw3[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on<br />
sw2[stp]=on<br />
sw3[stp]=on<br />
<br />
sw1[eth0]=sw1-sw2<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-sw3<br />
<br />
sw2[eth0]=sw1-sw2<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-sw3<br />
<br />
sw3[eth0]=sw1-sw3<br />
sw3[eth1]=sw3-port1<br />
sw3[eth2]=sw2-sw3<br />
<br />
pc1[eth0]=sw1-port1:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw3-port1:ip=192.168.0.3/24<br />
</syntaxhighlight><br />
<br />
Abra o wireshark ou tcpdump em qualquer interface da rede e observe todos os parâmetros do pacote BPDU trocados entre Switches. Neste momento o algorítimo do STP já executou todas as suas etapas e convergiu bloqueando portas para tornar a rede em uma topologia tipo árvore. Os pacotes BPDU irão aparecer periodicamente nessa rede até que exista uma falha ou mudança na topologia física para que exista uma nova etapa do algorítimo STP.<br />
<br />
=== Atividade 1 ===<br />
<br />
Vamos realizar [[RCO2-lab4|um experimento]] para entender melhor como funciona o STP. <br />
<br />
<!--Usem o arquivo de configuração do Netkit a seguir para o experimento:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
sw3[type]=switch<br />
sw4[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
pc4[type]=generic<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on<br />
sw2[stp]=on<br />
sw3[stp]=on<br />
sw4[stp]=on<br />
<br />
sw1[eth0]=sw1-sw2<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-sw3<br />
sw1[eth3]=sw1-sw4<br />
<br />
sw2[eth0]=sw1-sw2<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-sw3<br />
sw2[eth3]=sw2-sw4<br />
<br />
sw3[eth0]=sw1-sw3<br />
sw3[eth1]=sw3-port1<br />
sw3[eth2]=sw2-sw3<br />
sw3[eth3]=sw3-sw4<br />
<br />
sw4[eth0]=sw1-sw4<br />
sw4[eth1]=sw2-sw4<br />
sw4[eth2]=sw3-sw4<br />
sw4[eth3]=sw4-port4<br />
<br />
pc1[eth0]=sw1-port1:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw3-port1:ip=192.168.0.3/24<br />
pc4[eth0]=sw4-port4:ip=192.168.0.4/24<br />
</syntaxhighlight><br />
--><br />
<br />
<br />
Switches reais usualmente possuem suporte a [[IER-2011-1#Interliga.C3.A7.C3.A3o_de_LANs_e_Spanning_Tree_Protocol_.28STP.29|STP (''Spanning Tree Protocol'')]] para possibilitar haver enlaces redundantes em uma rede local. No Netkit podem-se criar redes em que se usa o STP, que deve ser ativado no switches. <br />
<br />
<br />
Para criar essa rede no Netkit pode-se usar a seguinte configuração:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
sw2[type]=switch<br />
sw3[type]=switch<br />
pc1[type]=generic<br />
pc2[type]=generic<br />
pc3[type]=generic<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on:bridge_priority=1024<br />
sw2[stp]=on:bridge_priority=128<br />
sw3[stp]=on:bridge_priority=500<br />
<br />
sw1[eth0]=sw1-sw2<br />
sw1[eth1]=sw1-port1<br />
sw1[eth2]=sw1-sw3<br />
<br />
sw2[eth0]=sw1-sw2<br />
sw2[eth1]=sw2-port1<br />
sw2[eth2]=sw2-sw3<br />
<br />
sw3[eth0]=sw1-sw3<br />
sw3[eth1]=sw3-port1<br />
sw3[eth2]=sw2-sw3<br />
<br />
pc1[eth0]=sw1-port1:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port1:ip=192.168.0.2/24<br />
pc3[eth0]=sw3-port1:ip=192.168.0.3/24<br />
</syntaxhighlight><br />
<br />
A configuração do STP se faz pelo atributo especial ''stp'' a ser especificado para cada switch. A opção ''on'' ativa o STP, e ''bridge_priority'' define a prioridade do switch no escopo do STP. <br />
<br />
Como os switches podem ser configurados com múltiplas vlans, o STP deve ser ativado apropriadamente. Isso significa que cada vlan deve ter o STP rodando de forma independente. A configuração do Netkit para especificar o STP para cada vlan segue abaixo:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on:bridge_priority=1024:vlan=5<br />
sw1[stp]=on:bridge_priority=512:vlan=10<br />
</syntaxhighlight><br />
<br />
Nesse exemplo, o switch ''sw1'' tem o STP ativado na vlans 5 e 10. Os parâmetros do STP inclusive podem ser diferentes em cada vlan, já que ele opera em cada uma de forma independente (i.e. o STP em uma vlan não interfere com o STP em outra vlan). Vlans em que o stp não foi explicitamente ativado usarão a configuração default do stp, a qual é definida omitindo-se informação sobre vlan:<br />
<br />
<syntaxhighlight lang=text><br />
# Configuração default do STP em um switch ... vale para todas as vlans em que <br />
# o stp não foi configurado individualmente.<br />
sw1[stp]=on<br />
<br />
# A configuração default pode conter quaisquer opções do stp, menos vlan:<br />
sw2[stp]=on:bridge_priority=2000<br />
</syntaxhighlight><br />
<br />
Um último detalhe sobre o STP diz respeito ao custo e prioridade de cada porta do switch. No STP usado em switches reais, o custo de uma porta é dado pela sua velocidade. Assim, portas mais velozes têm custo menor que portas mais lentas, como por exemplo portas 1 Gbps comparadas a 100 Mbps. No Netkit não existe essa diferenciação entre as interfaces ethernet por serem emuladas, mas pode-se especificar manualmente o custo de cada interface a ser usado pelo STP. A configuração necessária deve ser colocada em cada porta da seguinte forma:<br />
<br />
<syntaxhighlight lang=text><br />
sw1[type]=switch<br />
<br />
# Ativação do STP nos switches<br />
sw1[stp]=on:bridge_priority=1024<br />
<br />
sw1[eth0]=port0:stp_cost=10<br />
sw1[eth1]=port1:stp_cost=100<br />
</syntaxhighlight><br />
<br />
Assim, nesse exemplo a interface eth0 do switch ''sw1'' tem custo STP 10, e a interface eth1 tem custo 100. Os custos de interfaces de acordo com a norma IEEE 802.1d pode ser visto na seguinte tabela:<br />
<br />
[[imagem:Stp-custos.png]]<br />
<br />
<br />
A lista completa de opções que podem ser usadas na configuração do STP no Netkit segue abaixo:<br />
<br />
<syntaxhighlight lang=text><br />
# STP no switch:<br />
# bridge_priority: prioridade do switch no STP<br />
# hello_time: intervalo entre envios de BPDU<br />
# max_age: tempo máximo que o STP pode ficar sem receber uma atualização de BPDU de outro switch<br />
# forward_delay: atraso para enviar uma BPDU notificando uma mudança de configuração do STP<br />
# on: ativa o STP<br />
# off: inicia com STP desativado<br />
<br />
sw1[stp]=on:vlan=10:bridge_priority=100:hello_time=2:max_age=10:forward_delay=1<br />
<br />
# Porta do switch: pode ter as opções stp_cost (custo da porta) e stp_prio (prioridade da porta)<br />
sw1[eth0]=port0:stp_cost=10:stp_prio=1<br />
<br />
</syntaxhighlight><br />
<br />
<!--<br />
* Faça o exercício proposto pelo professor envolvendo agora, VLANs e o STP na mesma rede.<br />
<br />
'''Exercício Desafio:''' Acrescentando enlaces redundantes na rede da escola. <br><br />
<br />
# Voltando à segmentação da rede do campus São José, Acrescente alguns enlaces para conferir um grau de tolerância a falhas.<br />
# Dada a dimensão da rede, isso será realizado usando o [[Netkit]]. Sendo assim, implante a rede acima e ative o STP para tratar os caminhos fechados. Em seguida, experimente modificar alguns links para verificar se a rede continua funcionando.<br />
<br />
{{collapse top|Modelo da rede do IFSC-SJ para o Netkit}}<br />
<syntaxhighlight lang=text><br />
# switches<br />
sw-rnp[type]=switch<br />
sw-redes1[type]=switch<br />
sw-redes2[type]=switch<br />
sw-coinf[type]=switch<br />
sw-labdes[type]=switch<br />
<br />
# gateways<br />
asa5510[type]=gateway<br />
gw-redes1[type]=gateway<br />
gw-redes2[type]=gateway<br />
<br />
# computadores e servidores<br />
bd[type]=generic<br />
dmz1[type]=generic<br />
dmz2[type]=generic<br />
adm1[type]=generic<br />
adm2[type]=generic<br />
adm3[type]=generic<br />
pedag1[type]=generic<br />
pedag2[type]=generic<br />
pc-redes1[type]=generic<br />
pc-redes2[type]=generic<br />
<br />
# Portas dos switches<br />
sw-rnp[eth0]=rnp-port0<br />
sw-rnp[eth1]=rnp-port1<br />
sw-rnp[eth2]=rnp-port2<br />
sw-rnp[eth3]=rnp-port3<br />
sw-rnp[eth4]=rnp-port4<br />
sw-rnp[eth5]=rnp-port5<br />
<br />
sw-redes1[eth0]=redes1-port0<br />
sw-redes1[eth1]=redes1-port1<br />
<br />
sw-redes2[eth0]=redes2-port0<br />
sw-redes2[eth1]=redes2-port1<br />
<br />
sw-coinf[eth0]=coinf-port0<br />
sw-coinf[eth1]=coinf-port1<br />
sw-coinf[eth2]=coinf-port2<br />
# Ligações entre switches<br />
sw-coinf[eth3]=rnp-port5<br />
sw-coinf[eth4]=labdes-port3<br />
<br />
sw-labdes[eth0]=labdes-port0<br />
sw-labdes[eth1]=labdes-port1<br />
sw-labdes[eth2]=labdes-port2<br />
sw-labdes[eth3]=labdes-port3<br />
<br />
# Ligações dos computadores aos switches<br />
asa5510[eth0]=rnp-port0:ip=172.18.0.254/16<br />
bd[eth0]=rnp-port1:ip=172.18.0.10/16<br />
dmz1[eth0]=rnp-port2:ip=172.18.0.11/16<br />
adm1[eth0]=rnp-port3:ip=dhcp<br />
gw-redes1[eth1]=rnp-port4:ip=172.18.0.100/16<br />
<br />
pc-redes1[eth0]=redes1-port1:ip=192.168.1.2/24<br />
gw-redes1[eth0]=redes1-port0:ip=192.168.1.1/24<br />
<br />
pc-redes2[eth0]=redes2-port1:ip=192.168.2.2/24<br />
gw-redes2[eth0]=redes2-port0:ip=192.168.2.1/24<br />
<br />
dmz2[eth0]=coinf-port0:ip=172.18.0.13/16<br />
adm2[eth0]=coinf-port1:ip=dhcp<br />
pedag1[eth0]=coinf-port2:ip=dhcp<br />
<br />
adm3[eth0]=labdes-port0:ip=dhcp<br />
pedag2[eth0]=labdes-port1:ip=dhcp<br />
gw-redes2[eth1]=labdes-port2:ip=172.18.0.101/16<br />
<br />
# ASA 5510 é servidor dhcp da LAN ...<br />
asa5510[dhcp]=eth0:range=172.18.100.1,172.18.100.250:gateway=172.18.0.254<br />
<br />
# Gateways default dos computadores que usam IP fixo<br />
gw-redes1[default_gateway]=172.18.0.254<br />
gw-redes2[default_gateway]=172.18.0.254<br />
pc-redes1[default_gateway]=192.168.1.1<br />
pc-redes2[default_gateway]=192.168.2.1<br />
bd[default_gateway]=172.18.0.254<br />
dmz1[default_gateway]=172.18.0.254<br />
dmz2[default_gateway]=172.18.0.254<br />
</syntaxhighlight><br />
<br />
{{Collapse bottom}}<br />
<br />
--><br />
<br />
== Agregamento de enlaces ou Port Aggregation e Exercícios ==<br />
<br />
==Padrão IEEE802.1ax (anterior IEEE802.1ad) Agregamento de enlaces ==<br />
<br />
'''Agregação de enlace (bonding ou port trunking)'''<br />
<br />
O Linux possui suporte a agregação de enlaces, em que se agrupam interfaces ethernet (vinculação de portas) de forma a parecerem uma única interface (chamado de [http://www.linuxhorizon.ro/bonding.html Linux Channel Bonding]). A interface agregada tem prefixo ''bond'', e assim deve ser identificada como ''bond0'', ''bond1'' e assim por diante. Para criar um enlace agregado no Netkit basta declarar em um switch uma interface desse tipo. A sintaxe da declaração é praticamente idêntica a de interfaces ethernet, como se pode ver abaixo:<br />
<br />
<syntaxhighlight lang=text><br />
pc1[type]=generic<br />
pc2[type]=generic<br />
sw1[type]=switch<br />
sw2[type]=switch<br />
<br />
pc1[eth0]=sw1-port0:ip=192.168.0.1/24<br />
pc2[eth0]=sw2-port0:ip=192.168.0.2/24<br />
<br />
sw1[eth0]=sw1-port0<br />
sw2[eth0]=sw2-port0<br />
<br />
# Define em cada switch uma interface bond0 que agrega dois enlaces.<br />
# O enlace agregado deve ser composto por uma ou mais interfaces ethernet.<br />
# O nome do enlace agregado é sw1-sw2 no exemplo.<br />
<br />
sw1[bond0]=sw1-sw2:interfaces=eth1,eth2<br />
sw2[bond0]=sw1-sw2:interfaces=eth1,eth2<br />
</syntaxhighlight><br />
<br />
Nesse exemplo o enlace agregado foi criado entre os switches ''sw1'' e ''sw2''. Como se pode notar, existe uma opção de configuração adicional ''interfaces'', usada para listar as interfaces ethernet a serem agrupadas. Essas interfaces não devem ser declaradas explicitamente. Além disso, não se podem configurar VLANs na interface agregada (''bond0'' no exemplo). Por fim, mais de um enlace agregado pode ser criado no mesmo switch, bastando identificá-los por interfaces ''bond'' diferentes (''bond1'', ''bond2'', ...).<br />
<br />
O exemplo acima cria a seguinte rede:<br />
<br />
[[imagem:Bond.png]]<br />
<br />
===Port Trunking com Switches CISCO===<br />
<br />
Consulte o link [[http://www.dltec.com.br/blog/cisco/aumentando-a-banda-no-backbone-etherchannel-para-ccnas-rs/ sobre Etherchannel ou PAgP]]<br><br />
<br />
Use: <br><br />
- (config)#interface range g0/21-24 <br><br />
- (config-if-range)#channel-group 1 mode on<br />
<br />
Use "show etherchannel 1 summary" para visualizar as portas vinculadas ao canal de portas 1 .É importante destacar que a parte de trunk 802.1Q e permissão de VLANs já está OK.<br />
<br />
Consulte o link [[http://www.dltec.com.br/blog/cisco/aumentando-a-banda-no-backbone-etherchannel-para-ccnas-rs/ sobre Protocolo LACP]] <br><br />
<br />
Neste caso está se utilizando o padrão [[http://en.wikipedia.org/wiki/Link_aggregation | IEEE802.1ad (ou IEEE802.1ax - mais recente)]]. A diferença fica por conta do uso do modo "active" no lugar de "on".<br />
<br />
===Cascateamento versus Empilhamento===<br />
<br />
Os switches ainda possuem uma facilidade em nível físico chamada empilhamento (ou stack) que tem a função de ampliar as capacidades de portas sem comprometer significativamente a latência de pacotes em trânsito (fase forwarding). O mais eficiente, porém com mais custo, é o empilhamento por backplane onde um cabo proprietário de comprimento não maior que 1 metro, é conectado entre portas de entrada e saída específicas para este fim, geralmente na trazeira do switch, formando um anel dos swicthes empilhados. Os switches empilhados se comportam como um só e a gerência deles é muito mais facilitada com um único endereço IP. Já o cascateamento usando portas comuns ou portas específicas de altas taxas (fibra) chamadas UPLINK, mesmo usando o agregamento de link exposto na seção anterior, resolve a questão do congestionamento de toda a transferência de dados oriundas/destinadas aos ramos descendentes destas portas mas torna-se difícil a gerência de cada switch e a latência além de reduzir o desempenho da rede pode impedir até o funcionamento de algorítimos como o STP. <br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |07/03 - Redes sem fio e o Padrão IEEE 802.11}}<br />
<br />
== 07/03 - Redes sem fio e o Padrão IEEE 802.11 ==<br />
<br />
<br />
*[http://tele.sj.ifsc.edu.br/~casagrande/RED/lista4_2014_2.pdf LISTA4] de exercícios para a avaliação A4<br />
*[http://tele.sj.ifsc.edu.br/~casagrande/RED/slides/wlan.pdf Conceitos básicos da arquitetura IEEE802.11]<br />
*[http://pt.wikipedia.org/wiki/Wi-Fi wifi na wikipedia.]<br />
*[http://forum.baboo.com.br/index.php?/topic/269602-redes-wireless/ um tutorial fácil de entender...]<br />
*[http://www.infowester.com/wifi.php um tutorial mais recente...]<br />
<br />
* Ver capítulo 15 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.<br />
* Ver capítulo 6 do livro ''Redes de Computadores e a Internet, 3a ed.'', de James Kurose.<br />
* Ver capítulo 4 (seção 4.4) do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum.<br />
<br />
=== Introdução ===<br />
<br />
Redes sem-fio se tornaram uma tecnologia largamente difundida e de uso corriqueiro, principalmente em sua versão para redes locais. Graças a ela, as pessoas não precisam usar cabos para ter acesso à rede, e podem se comunicar em qualquer localização dentro do alcance da rede sem-fio. Mesmo usuários em movimento podem se manter em comunicação pela rede sem-fio. Essas características atraentes da tecnologia fazem com que ela seja naturalmente desejável nas LANs<br />
<br />
A implantação de uma rede sem-fio deve atender alguns requisitos levantados pelo administrador de uma rede, os quais serão discutidos ao longo desta seção. Antes de pensar nos detalhes a serem observados, devem-se conhecer as características de comunicação de dados por um canal sem-fio e os mecanismos inventados para efetuar esse tipo de comunicação.<br />
<br />
=== Alguns usos de redes sem-fio ===<br />
<br />
[[imagem:WLAN-comum.gif]]<br><br />
''Redes locais sem-fio''<br />
<br />
<br />
[[imagem:Wireless_point_to_point.jpg]]<br><br />
''Enlaces ponto-a-ponto de média/longa distância''<br />
<br />
<br />
[[imagem:Wlan-train.png]]<br><br />
''Prover conectividade em ferrovias''<br />
<br />
<br />
[[imagem:Body-network.jpg]]<br><br />
''Redes de dispositivos acoplados ao corpo de uma pessoa''<br />
<br />
<br />
[[imagem:SensorWebImageForEnewsJuly2.jpg]]<br><br />
''Redes de sensores''<br />
<br />
<br />
[[imagem:v2v.jpg]]<br><br />
''Redes entre veículos (experimental)''<br />
<br />
===O Padrão IEEE 802.11===<br />
<br />
Dentre as várias tecnologias de comunicação sem-fio existentes, o padrão IEEE 802.11 para redes locais tem ampla utilização. Conhecido popularmente como Wi-Fi (um trocadilho com Hi-Fi, uma qualidade atribuída a aparelhos de som e que significa ''High-Fidelity''), está presente praticamente em todos os lugares hoje em dia - desde escolas, empresas, aeroportos, supermercados, restaurantes, cafés e residências, e até mesmo em espaços abertos de cidades (ver ''Cidades Digitais''). Muitos dos problemas existentes nesse tipo de rede (alguns resolvidos e outros não), e características de funcionamento, são comuns a outras tecnologias menos conhecidas, porém também importantes em suas áreas de aplicação. Por isso nosso estudo se concentrará nesse padrão de redes sem-fio, para conhecê-lo com razoável profundidade. Como consequência, além de entender como funciona uma rede IEEE 802.11, os conhecimentos obtidos habilitarão a compreensão de outras tecnologias de redes sem-fio.<br />
<br />
* Apresentaram-se as possíveis formas de organização de uma rede IEEE 802.11:<br />
** '''Rede infraestruturada:''' uso de uma estação central, que intermedia as transmissões das demais estações.<br><br>[[imagem:Infrastructure-bss.png]]<br><br />
** '''Rede Ad-Hoc:''' estações se comunicam livremente com suas estações vizinhas.<br><br>[[imagem:Adhoc-bss.png]]<br><br />
** '''Rede Mesh:''' estações se comunicam livremente, mesmo que existam múltiplos saltos (''multihop'').<br><br>[[imagem:Mesh_topology.gif]]<br><br />
<br />
=== Os problemas dos nós ocultos e nós escondidos ===<br />
<br />
==== Simulações (animações) sobre CSMA/CA ====<br />
<br />
* [http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/csma-ca/withouthidden.html CSMA/CA sem nodos escondidos (Kurose)]<br />
* [http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/csma-ca/withhidden.html CSMA/CA com nodos escondidos (Kurose)]<br />
:Outras simulações (animações) sobre CSMA/CA:<br />
* [http://tintillier.org/wifi/index.html Algumas animações sobre CSMA/CA (University of Teeside - UK)]<br />
<br />
=== O Protocolo CSMA/CA ===<br />
<br />
Pode-se descrever em alto-nível o algoritmo do CSMA/CA (simplificando alguns detalhes) com o fluxograma abaixo:<br />
<br />
<br />
[[imagem:Fluxograma-csma-ca.png]]<br><br />
''Fluxograma para MAC CSMA/CA em modo contenção (função DCF). Esse fluxograma não mostra as esperas de intervalos entre quadros (IFS). Cw significa Janela de Contenção (Contention Window), e Cwmin é seu valor mínimo definido na norma (15 no caso do IEEE 802.11g, e 31 para IEEE 802.11b).''<br />
<br />
<br />
Um último detalhe sobre o CSMA/CA trata dos intervalos entre quadros (IFS - ''Inter Frame Space''), que são tempos mínimos que um nodo deve esperar antes de transmitir um quadro, após o meio se tornar ocioso. Sua finalidade é priorizar o acesso ao meio para certos tipos de quadros, que têm urgência para serem enviados. Esse é o caso de quadros de confirmação (ACK) e CTS (''Clear To Send''). Um IFS menor corresponde a uma maior prioridade de transmissão de quadro. A figura abaixo ilustra os tipos de IFS:<br />
<br />
[[imagem:Ifs-csma-ca.gif]]<br><br />
''Intervalos entre quadros''<br />
<br />
* ''SIFS (Short Interframe Space):'' intervalo mais curto, usado antes do envio de quadros ACK e CTS.<br />
* ''PIFS (PCF Interframe Space):'' intervalo intermediário, usado quando em modo PCF (Point Coordination Function). O modo PCF implementa um tipo de acesso ao meio mestre-escravo. Raramente encontrado em equipamentos.<br />
* ''DIFS (Distributed Interframe Space):'' intervalo usual, aplicado no início de transmissões em geral (quadros de dados, associação, autenticação, RTS).<br />
<br />
'''Uso de RTS/CTS para tratar nodos escondidos'''<br />
<br />
[[image:Rts-cts.gif]]<br><br />
<br />
<!--<br />
'''Detecção de portadora virtual e NAV'''<br />
<br />
[[imagem:Fluxograma-nav.gif]]<br><br />
<br />
--><br />
<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 09/03 - Redes Wifi }}<br />
<br />
== 09/03 - Redes Wifi ==<br />
<br />
* ;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 14/03 -Avaliação A4 }}<br />
<br />
== 14/03 - ==<br />
<br />
* ;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top | 16/03 - REC A2 a A4 }}<br />
<br />
== 16/03 - REC A2 a A4 ==<br />
<br />
* ;<br />
<br />
<br />
{{Collapse bottom}}<br />
<br />
{{ENGTELECO}}</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:IEEE802.11e.pdf&diff=102702Arquivo:IEEE802.11e.pdf2016-03-16T00:22:31Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Tema_3_-_IEEE802.11e&diff=102681Tema 3 - IEEE802.11e2016-03-15T22:46:31Z<p>Lucas.lv: /* Padrão IEEE 802.11e */</p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Tema_3_-_IEEE802.11e&diff=102677Tema 3 - IEEE802.11e2016-03-15T22:44:44Z<p>Lucas.lv: /* Padrão IEEE 802.11e */</p>
<hr />
<div>= Padrão IEEE 802.11e =<br />
<br />
O uso de redes sem fio ao redor do mundo tem aumentado exponencialmente nos anos recentes, passando a integrar o dia a dia das pessoas através de notebooks, tablets, smartphones e outros dispositivos que permitem o acesso à rede. Tais dispositivos, por sua vez, fazem de forma cada vez mais intensa, o uso de aplicações multimídia (MA), tais quais vídeos, áudios e comunicações de banda larga. Por conta do processo acima evidenciado, o padrão 802.11 tornou-se incapaz de prover boa qualidade de serviço para esse tipo de aplicação.<br />
O padrão adotado pela Institute of Electrical and Electronics Engineers (IEEE) é o 802.11, que se divide em duas categorias: Distributed Coordenation Function (DCF) e Point Coordenation Function (PCF). Em ambas, a qualidade de serviço oferecida para MA é insignificante. Por exemplo, o DCF fornece apenas o mecanismo de best effort, no qual todas as estações conectadas à rede competem igualmente pelo meio, de modo que não exista priorização de pacotes. O PCF, por sua vez, foi projetado para priorizar determinadas aplicações, como por exemplo as MAs. No entanto, é propenso a ocorrência de problemas. Por exemplo, suponha uma rede que implementa uma classe de escalonamento do tipo round-robin. Para o PCF acessar o meio de transmissão, ele necessita enviar um beacon frame quando o meio estiver ocioso, porém, se o meio estiver ocupado (não for a vez dele de usar o meio, de acordo com round robin), um atraso pode ser gerado por conta da espera. O PCF tem dificuldades em controlar o tempo de transmissão da estação escolhida para transmitir, pois ela pode enviar frames de dados de 0 a 2304 bytes de comprimento, e o AP não sabe o tamanho do frame a ser recebido.<br />
Para tentar encontrar uma solução para os problemas citados acima, no ano de 2005, foi aprovada pela IEEE o padrão 802.11e, que agrega QoS (Quality of Service) às redes IEEE 802.11. No ano seguinte, já eram comercializados os primeiros equipamentos com suporte a essa nova tecnologia. No geral, esse novo padrão permite diferenciar classes de tráfegos, e também o recurso de Transmission Oportunity (TXOP), que permite a transmissão de dados em rajadas.<br />
Um novo formato de MAC foi proposto para o padrão IEEE 802.11, chamado Hybrid Coordenation Function (HCF). Dentro do HCF, foi definido um método de acesso ao meio baseado em contenção, chamado Enhanced Distributed Channel Access (EDCA), que opera simultaneamente com um método de acesso ao meio baseado em polling, chamado HCCA. As duas funções desse novo formato MAC serão descritas no decorrer desse documento.<br />
<br />
==EDCA (Enhanced Distributed Channel Access)==<br />
<br />
==HCCA (HCF controlled channel access)==</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Tema_3_-_IEEE802.11e&diff=102672Tema 3 - IEEE802.11e2016-03-15T22:36:41Z<p>Lucas.lv: Criou página com '= Padrão IEEE 802.11e = O uso de redes sem fio ao redor do mundo tem aumentado exponencialmente nos anos recentes, passando a integrar o dia a dia das pessoas através de noteb...'</p>
<hr />
<div>= Padrão IEEE 802.11e =<br />
<br />
O uso de redes sem fio ao redor do mundo tem aumentado exponencialmente nos anos recentes, passando a integrar o dia a dia das pessoas através de notebooks, tablets, smartphones e outros dispositivos que permitem o acesso à rede. Tais dispositivos, por sua vez, fazem de forma cada vez mais intensa, o uso de aplicações multimídia (MA), tais quais vídeos, áudios e comunicações de banda larga. Por conta do processo acima evidenciado, o padrão 802.11 tornou-se incapaz de prover boa qualidade de serviço para esse tipo de aplicação.<br />
O padrão adotado pela Institute of Electrical and Electronics Engineers (IEEE) é o 802.11, que se divide em duas categorias: Distributed Coordenation Function (DCF) e Point Coordenation Function (PCF). Em ambas, a qualidade de serviço oferecida para MA é insignificante. Por exemplo, o DCF fornece apenas o mecanismo de best effort, no qual todas as estações conectadas à rede competem igualmente pelo meio, de modo que não exista priorização de pacotes. O PCF, por sua vez, foi projetado para priorizar determinadas aplicações, como por exemplo as MAs. No entanto, é propenso a ocorrência de problemas. Por exemplo, suponha uma rede que implementa uma classe de escalonamento do tipo round-robin. Para o PCF acessar o meio de transmissão, ele necessita enviar um beacon frame quando o meio estiver ocioso, porém, se o meio estiver ocupado (não for a vez dele de usar o meio, de acordo com round robin), um atraso pode ser gerado por conta da espera. O PCF tem dificuldades em controlar o tempo de transmissão da estação escolhida para transmitir, pois ela pode enviar frames de dados de 0 a 2304 bytes de comprimento, e o AP não sabe o tamanho do frame a ser recebido.<br />
Para tentar encontrar uma solução para os problemas citados acima, no ano de 2005, foi aprovada pela IEEE o padrão 802.11e, que agrega QoS (Quality of Service) às redes IEEE 802.11. No ano seguinte, já eram comercializados os primeiros equipamentos com suporte a essa nova tecnologia. No geral, esse novo padrão permite diferenciar classes de tráfegos, e também o recurso de Transmission Oportunity (TXOP), que permite a transmissão de dados em rajadas.<br />
<br />
==EDCA (Enhanced Distributed Channel Access)==<br />
<br />
==HCCA (HCF controlled channel access)==</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=102198Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-08T10:11:43Z<p>Lucas.lv: /* Implementação - FFT utilizando simulink */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
"A fast Fourier transform (FFT) algorithm computes the discrete Fourier transform (DFT) of a sequence, or its inverse. Fourier analysis converts a signal from its original domain (often time or space) to a representation in the frequency domain and vice versa. An FFT rapidly computes such transformations by factorizing the DFT matrix into a product of sparse (mostly zero) factors.[1] As a result, it manages to reduce the complexity of computing the DFT from O(n^2), which arises if one simply applies the definition of DFT, to O(n \log n), where n is the data size." retirado de [https://en.wikipedia.org/wiki/Fast_Fourier_transform]<br />
<br />
Arquivos das versões: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png]]<br />
<br />
Na imagem acima percebe-se que a versão 3_0 é composta por: <br />
<br />
*FFT Decimation - É o grande subsystem do programa. Dentro dele se localiza todos os outros blocos vitais para o funionamento da FFT<br />
<br />
[[Imagem:Imagem geral.png]]<br />
<br />
*X0_ENTRY ~ X7_ENTRY -> Entradas da FFT. A versão 3_0 só suporta 8 entradas.<br />
*x0 ~ x7 -> Saídas da FFT. A versão 3_0 tem 8 saídas.<br />
<br />
* Bloco "Dfts" -> É onde está localizada as pequenas células que fazem o cálculos das butterflies.<br />
<br />
[[Imagem:Dfts.png]]<br />
<br />
*O subsystem Dfts possui 16 entradas. 8 delas são as entradas da FFT e as outras 8 são os Wn calculados<br />
.<br />
*Aqui dentro existem 12 blocos idênticos que são as células de cálculo da butterflie. (DFT_Wn0_11 ~ DFT_Wn043).<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies da seguinte forma:<br />
<br />
[[Imagem:Butter.png]]<br />
<br />
Bloco isolado de cada butteflie:<br />
<br />
[[Imagem:Celula.png]]<br />
<br />
Seu esquema interno:<br />
<br />
[[Imagem:Isolado.png]]<br />
<br />
*O bloco possui 2 entradas -> Nas primeiras butterflies essas entradas correspondem diretamente a entradas da FFT. Nos blocos seguintes essas entradas são os resultados das butterflies anteriores.<br />
<br />
*Cada butterflie de forma isolada sua parte da seguinte forma:<br />
<br />
[[Imagem:Fly.png]]<br />
<br />
*O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
<br />
[[Imagem:Mwn.png]]<br />
<br />
*O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados.<br />
<br />
Esquema interno do Mwn:<br />
<br />
[[Imagem:Interno.png]]<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png]]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png]]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png]]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png]]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png]]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn3.png&diff=102197Arquivo:Wn3.png2016-03-08T10:06:38Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn2.png&diff=102196Arquivo:Wn2.png2016-03-08T10:06:10Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn1.png&diff=102195Arquivo:Wn1.png2016-03-08T10:05:57Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Implementa%C3%A7%C3%A3o_de_sistemas_de_telecomunica%C3%A7%C3%B5es_digitais_utilizando_simulink_e_HDL_coder&diff=102194Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder2016-03-08T10:05:41Z<p>Lucas.lv: /* Implementação - FFT utilizando simulink */</p>
<hr />
<div>=Resumo do projeto=<br />
<br />
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.<br />
<br />
=Introdução e Justificativa da Proposição=<br />
<br />
<br />
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.<br />
<br />
==Objetivos do projeto:==<br />
<br />
*'''Primeira etapa''' - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.<br />
<br />
*'''Segunda etapa''' - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.<br />
** Os circuitos da obtidos serão simulados utilizando ModelSim<br />
<br />
*'''Terceira etapa''' - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.<br />
**Aqui também serão feitos os testes finais.<br />
<br />
==Metodologia do projeto==<br />
<br />
#'''Estudo do Simulink®'''<br />
#*Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Estudo das bases da linguagem VHDL'''<br />
#* Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).<br />
#'''Estudo do HDL Coder e Verifier®'''<br />
#* Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).<br />
#'''Análise de blocos disponibilizadas'''<br />
#* Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.<br />
#'''Desenvolvimento de blocos para sistemas de telecomunicações'''<br />
#* Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.<br />
#'''Realização e teste em hardware FPGA'''<br />
#* Utilizando o HDL Coder para a conversão dos blocos para VHDL.<br />
#* A implementação será realizada utilizando um kit de desenvolvimento de FPGA.<br />
#* Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.<br />
#'''Documentação do projeto'''<br />
#* Escrita de relatórios parciais e do relatório final do projeto.<br />
#* Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.<br />
#'''Gerenciamento do projeto'''<br />
#*Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.<br />
<br />
=Implementação - FFT utilizando simulink=<br />
<br />
"A fast Fourier transform (FFT) algorithm computes the discrete Fourier transform (DFT) of a sequence, or its inverse. Fourier analysis converts a signal from its original domain (often time or space) to a representation in the frequency domain and vice versa. An FFT rapidly computes such transformations by factorizing the DFT matrix into a product of sparse (mostly zero) factors.[1] As a result, it manages to reduce the complexity of computing the DFT from O(n^2), which arises if one simply applies the definition of DFT, to O(n \log n), where n is the data size." retirado de [https://en.wikipedia.org/wiki/Fast_Fourier_transform]<br />
<br />
Arquivos das versões: [[Media:Versoes_FFT.zip | Versões FFT]]<br />
<br />
Documentação das modificações: [[Media:VERSION.txt | Versões]]<br />
<br />
*Versão 3_0 - ultima versão<br />
<br />
Uma visão geral dos blocos:<br />
<br />
[[Imagem:FFT_funcionamento.png]]<br />
<br />
Na imagem acima percebe-se que a versão 3_0 é composta por: <br />
<br />
*FFT Decimation - É o grande subsystem do programa. Dentro dele se localiza todos os outros blocos vitais para o funionamento da FFT<br />
<br />
[[Imagem:Imagem geral.png]]<br />
<br />
*X0_ENTRY ~ X7_ENTRY -> Entradas da FFT. A versão 3_0 só suporta 8 entradas.<br />
*x0 ~ x7 -> Saídas da FFT. A versão 3_0 tem 8 saídas.<br />
<br />
* Bloco "Dfts" -> É onde está localizada as pequenas células que fazem o cálculos das butterflies.<br />
<br />
[[Imagem:Dfts.png]]<br />
<br />
*O subsystem Dfts possui 16 entradas. 8 delas são as entradas da FFT e as outras 8 são os Wn calculados<br />
.<br />
*Aqui dentro existem 12 blocos idênticos que são as células de cálculo da butterflie. (DFT_Wn0_11 ~ DFT_Wn043).<br />
<br />
Em conjunto, os blocos do dft calculam as butterflies da seguinte forma:<br />
<br />
[[Imagem:Butter.png]]<br />
<br />
Bloco isolado de cada butteflie:<br />
<br />
[[Imagem:Celula.png]]<br />
<br />
Seu esquema interno:<br />
<br />
[[Imagem:Isolado.png]]<br />
<br />
*O bloco possui 2 entradas -> Nas primeiras butterflies essas entradas correspondem diretamente a entradas da FFT. Nos blocos seguintes essas entradas são os resultados das butterflies anteriores.<br />
<br />
*Cada butterflie de forma isolada sua parte da seguinte forma:<br />
<br />
[[Imagem:Fly.png]]<br />
<br />
*O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.<br />
<br />
[[Imagem:Mwn.png]]<br />
<br />
*O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados.<br />
<br />
Esquema interno do Mwn:<br />
<br />
[[Imagem:Interno.png]]<br />
<br />
* A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).<br />
<br />
*bloco Wn:<br />
<br />
[[Imagem:Wn.png]]<br />
<br />
*Esqueleto interno do bloco Wn:<br />
<br />
[[Imagem:Wn interno.png]]<br />
<br />
*Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:<br />
<br />
[[Imagem:Sen.png]<br />
<br />
*Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)<br />
<br />
Bloco Wn^0:<br />
<br />
[[Imagem:wn0.png]<br />
<br />
Esquema interno Wn^0:<br />
<br />
[[Imagem:wn0 int.png]<br />
<br />
Bloco Wn^1:<br />
<br />
[[Imagem:wn1.png]<br />
<br />
Esquema interno Wn^1:<br />
<br />
[[Imagem:wn1 int.png]<br />
<br />
Bloco Wn^2:<br />
<br />
[[Imagem:wn2.png]<br />
<br />
Esquema interno Wn^2:<br />
<br />
[[Imagem:wn2 int.png]<br />
<br />
Bloco Wn^3:<br />
<br />
[[Imagem:wn3.png]<br />
<br />
Esquema interno Wn^3:<br />
<br />
[[Imagem:wn3 int.png]<br />
<br />
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]=<br />
<br />
*Os blocos que possuem suporte para HDL estão em: [[Blocos Simulink com suporte HDL]]<br />
<br />
{{Collapse top |expand = true |[[ Modulações Analógicas | Modulações Analógicas (AM,FM,PM) ]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Passband Modulation| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Amostragem de sinais]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Matrix Concatenate| Sim| Sim}}<br />
{{TabComparar3linha |Manual Switch| Não| Não}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File | Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Quantização]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |A-Law Expander| Não| Não}}<br />
{{TabComparar3linha |A-Law Compressor| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Expander| Não| Não}}<br />
{{TabComparar3linha |Mu-Law Compressor| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Sim| Sim}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Sim| Sim}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação de Pulso (PCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Encoder| Não| Não}}<br />
{{TabComparar3linha |Scalar Quantizer Decoder| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta (DM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add Subtract| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |Sample and Hold| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação Delta-Sigma]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Discrete-Time Integrator| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulação por Codificação Diferencial de Pulso(DPCM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Zero-Order Hold| Sim| Sim}}<br />
{{TabComparar3linha |Quantizer| Não| Não}}<br />
{{TabComparar3linha |Gain| Sim| Sim}}<br />
{{TabComparar3linha |Unit Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Analog Filter Design| Não| Não}}<br />
{{TabComparar3linha |From Multimedia File| Não| Não}}<br />
{{TabComparar3linha |To Multimedia File| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Códigos de linha]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Pulse Generator| Não| Não}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Product| Sim| Sim}}<br />
{{TabComparar3linha |Fcn| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Unipolar to Bipolar Converter| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |ASpectrum Analyser| Sim| Sim}}<br />
{{TabComparar3linha |Repeat| Sim| Sim}}<br />
{{TabComparar3linha |Cumulative Sum| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
<br />
{{Collapse top |expand = true |[[Modulação por Amplitude de Pulso M-ária (PAM-M)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Mux| Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Error Rate Calculation| Sim| Sim}}<br />
{{TabComparar3linha |Integer to Bit Converter| Não| Não}}<br />
{{TabComparar3linha |Bit to Integer Converter| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda base]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Discrete FIR Filter| Sim| Sim}}<br />
{{TabComparar3linha |Sum, Add, Subtract, Sum of Elements| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave |Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |M-PAM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |M-PAM Demodulator Baseband| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Gaussian Noise Generator| Não| Não}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Lowpass Filter| Não| Não}}<br />
{{TabComparar3linha |Discrete Impulse| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais binárias]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Sine Wave| Sim| Sim}}<br />
{{TabComparar3linha |Switch| Sim| Sim}}<br />
{{TabComparar3linha |Constant| Sim| Sim}}<br />
{{TabComparar3linha |Product | Sim| Sim}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |From| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Delay| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Windowed Integrator| Não| Não}}<br />
{{TabComparar3linha |Integrate and Dump| Não| Não}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Modulações digitais M-árias]]}}<br />
<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Scope| Sim| Sim}}<br />
{{TabComparar3linha |Complex to Real-Imag| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |DSP System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Variance| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Transmissão digital em banda passante]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Goto| Sim| Sim}}<br />
{{TabComparar3linha |Sum| Sim| Sim}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |QPSK Modulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |QPSK Demodulator Baseband| Sim| Sim}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Raised Cosine Transmit Filter| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | DSP System Toolbox |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Spectrum Analyzer| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 | Subsistemas Subsystem |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Upconverter| Não| Não}}<br />
{{TabComparar3linha |Interference| Não| Não}}<br />
{{TabComparar3linha |Upconverted Spectra| Não| Não}}<br />
{{TabComparar3linha |Downconverter| Não| Não}}<br />
{{TabComparar3linha |Compute BER| Não| Não}}<br />
{{TabComparar3linha |Calculate RMS EVM| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Multipath Fading Channel]]}}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Digital Communications Ber Performance in AWGN or Fading]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Bernoulli Binary Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
{{Collapse top |expand = true |[[Orthogonal Frequency Multiplex Division (OFDM)]]}}<br />
<br />
{{TabComparar3 | Simulink |Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Display| Sim| Sim}}<br />
{{TabComparar3linha |Reshape| Sim| Sim}}<br />
|}<br />
<br />
{{TabComparar3 |Communications System Toolbox|Suporte HDL Coder no MATLAB 2014 | Suporte HDL Coder no MATLAB 2015}}<br />
{{TabComparar3linha |Random Integer Generator| Não| Não}}<br />
{{TabComparar3linha |Digital Baseband Modulation| Sim (alguns blocos)| Sim (alguns blocos)}}<br />
{{TabComparar3linha |Multipath Rayleigh Fading Channel| Não| Não}}<br />
{{TabComparar3linha |Constellation Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Multipath Rician Fading Channel| Não| Não}}<br />
{{TabComparar3linha |AWGN Channel| Não| Não}}<br />
{{TabComparar3linha |Eye Diagram| Sim| Sim}}<br />
{{TabComparar3linha |Error Rate Calculation | Sim| Sim}}<br />
{{TabComparar3linha |OFDM Modulator Baseband| Não| Não}}<br />
{{TabComparar3linha |OFDM Demodulator Baseband| Não| Não}}<br />
|}<br />
<br />
{{Collapse bottom}}<br />
<br />
=Professor Orientador=<br />
[[Marcos Moecke]]<br />
<br />
=Aluno bolsista=<br />
[[Usuário:lucas.lv | Lucas Lucindo Vieira]]<br />
<br />
=Características da Bolsa=<br />
O projeto será financiado com bolsa [http://www.cnpq.br/web/guest/pibiti PIBITI do CNPq] e será executado entre Agosto de 2015 e Julho de 2015.</div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn3_int.png&diff=102193Arquivo:Wn3 int.png2016-03-08T10:04:52Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn2_int.png&diff=102192Arquivo:Wn2 int.png2016-03-08T10:04:42Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn1_int.png&diff=102191Arquivo:Wn1 int.png2016-03-08T10:04:24Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn0_int.png&diff=102190Arquivo:Wn0 int.png2016-03-08T10:03:28Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn0.png&diff=102189Arquivo:Wn0.png2016-03-08T10:03:15Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Sen.png&diff=102188Arquivo:Sen.png2016-03-08T09:57:36Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn_interno.png&diff=102187Arquivo:Wn interno.png2016-03-08T09:55:50Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Wn.png&diff=102186Arquivo:Wn.png2016-03-08T09:54:38Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lvhttps://wiki.sj.ifsc.edu.br/index.php?title=Arquivo:Interno.png&diff=102185Arquivo:Interno.png2016-03-08T09:52:21Z<p>Lucas.lv: </p>
<hr />
<div></div>Lucas.lv