Implementação de Métodos de Sincronismo em FPGA para DSL de
Transcrição
Implementação de Métodos de Sincronismo em FPGA para DSL de
UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA TÍTULO DO TRABALHO Implementação de Métodos de Sincronismo em FPGA para DSL de Quarta Geração NOME DO AUTOR Ilan Sousa Correa DM: 04/2015 UFPA / ITEC / PPGEE Campus Universitário do Guamá Belém-Pará-Brasil 2015 UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA NOME DO AUTOR Ilan Sousa Correa TÍTULO DO TRABALHO Implementação de Métodos de Sincronismo em FPGA para DSL de Quarta Geração DM: 04/2015 UFPA / ITEC / PPGEE Campus Universitário do Guamá Belém-Pará-Brasil 2015 UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA NOME DO AUTOR Ilan Sousa Correa TÍTULO DO TRABALHO Implementação de Métodos de Sincronismo em FPGA para DSL de Quarta Geração Dissertação submetida à Banca Examinadora do Programa de Pós-graduação em Engenharia Elétrica da UFPA para a obtenção do Grau de Mestre em Engenharia Elétrica, ênfase em Telecomunicações. UFPA / ITEC / PPGEE Campus Universitário do Guamá Belém-Pará-Brasil 2015 Dados Internacionais de Catalogação-na-Publicação (CIP) Sistema de Bibliotecas da UFPA Correa, Ilan Sousa, 1990Implementação de métodos de sincronismo em fpga para dsl de quarta geração / Ilan Sousa Correa. - 2015. Orientador: Aldebaro barreto da Rocha Klautau Júnior. Dissertação (Mestrado) - Universidade Federal do Pará, Instituto de Tecnologia, Programa de Pós-Graduação em Engenharia Elétrica, Belém, 2015. 1. Modem. 2. Linhas digitais de assinantes. 3. Arranjos de lógica programável em campo. 4. Sistemas de comunicação em banda larga. I. Título. CDD 22. ed. 621.39814 UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA Implementação de Métodos de Sincronismo em FPGA para DSL de Quarta Geração AUTOR: Ilan Sousa Correa DISSERTAÇÃO DE MESTRADO SUBMETIDA À AVALIAÇÃO DA BANCA EXAMINADORA APROVADA PELO COLEGIADO DO PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA DA UNIVERSIDADE FEDERAL DO PARÁ E JULGADA ADEQUADA PARA OBTENÇÃO DO GRAU DE MESTRE EM ENGENHARIA ELÉTRICA NA ÁREA DE TELECOMUNICAÇÕES. APROVADA EM 13/02/2015 BANCA EXAMINADORA: ................................................................................................. Prof. Dr. Aldebaro Barreto da Rocha Klautau Júnior (ORIENTADOR - UFPA) ................................................................................................. Prof. Dr. Adalbery Rodrigues Castro (MEMBRO - UFPA) ................................................................................................. Dr. Diogo Acatauassu Nunes (MEMBRO - UFPA) ................................................................................................. Prof. Dr. Evaldo Gonçalves Pelaes (MEMBRO - UFPA) ................................................................................................. Prof. Dr. Francisco Carlos Bentes Frey Muller (MEMBRO - UFPA) ................................................................................................. Prof. Dr. Marco José de Sousa (MEMBRO - UFPA) VISTO: ................................................................................................. Prof. Dr. Evaldo Gonçalves Pelaes COORDENADOR DO PPGEE/ITEC/UFPA Agradecimentos Agradeço a Deus por me dar a sabedoria necessária para eu conseguir chegar até aqui. Agradeço aos meus familiares, em especial à minha avó Zenaide, por sempre me darem o suporte necessário para a minha formação profissional e, principalmente, a formação pessoal e moral, sempre com palavras de carinho e encorajamento; à minha amada Camila, pelo seu carinho e apoio, tornando mais leve minha caminhada até aqui. Agradeço a todos os meus outros familiares, que apesar da distância e do tempo, nunca me deixam esquecer da grande famı́lia que faço parte. Aos meus amigos e colegas, os quais foram fundamentais para chegar até aqui, principalmente os amigos da UFPA, do LAPS e do LASSE, os quais me ajudaram não somente como pessoa, mas também como engenheiro. Agradeço à equipe montada para o desenvolvimento do projeto que desencadeou nessa dissertação: meu orientador Aldebaro Klautau, Igor Almeida, Leonardo Ramalho e Joary Wanzeler, que trabalharam diretamente comigo no tempo que durou o projeto, e me cederam alguns resultados de seus trabalhos mostrados nessa dissertação; e também à todos os outros que também fazem parte da equipe. Gostaria de agradecer à Ericsson, pelo financiamento da pesquisa e desenvolvimento do protótipo que resultou nessa dissertação. Ilan Sousa Correa Resumo Tecnologias Digital Subscriber Line (DSL) são muito populares devido à relativa facilidade de implantação, pois utilizam cabos telefônicos, que são encontrados em, virtualmente, todas as cidades. Há tecnologias consideradas melhores que o DSL, como as fibras óticas, entretanto, sua implantação é mais cara, o que faz a utilização de DSL para prover acesso às residências ainda seja mais viável. Devido à existência dessas tecnologias consideradas melhores, o fim do uso dos cabos telefônicos (de cobre) já foi previsto algumas vezes, entretanto, devido ao seu baixo custo, essa tecnologia ainda é utilizada. Com base nisso, a tecnologia DSL sofreu várias evoluções ao longo dos anos, sendo que a última de suas evoluções é considerada como sendo a quarta geração do DSL, e é conhecida como G.fast. A quarta geração do DSL encontra-se em processo de padronização, sendo que sua primeira versão foi lançada recentemente. Este trabalho apresenta técnicas de sincronismo e correção de diferenças de clock que podem ser utilizadas em modems DSL de quarta geração. Essas técnicas foram criadas para lidar com as especificidades desta última versão, e são avaliadas em um protótipo que utiliza placas de avaliação de DSP e FPGA para acelerar o processo de implementação. Serão apresentadas as técnicas de sincronismo criadas, seus desempenhos e utilização de recursos para sua implementação, e também formas de paralelização no FPGA para facilitar a implementação das técnicas. PALAVRAS-CHAVES: DSL; Sincronismo; FPGA; DSP; Rádio definido por software; TDD. Abstract Digital Subscriber Line (DSL) technologies are very popular, mainly due its relative ease deployment, because it uses telephone cables which are found in, virtually, every city. There are technologies which are considered better than DSL, for instance optical fibers, however, DSL’s implantation is much cheaper, and thus it is use for providing home access network is still more suitable. Because of the existence of those better technologies the ending of the use of telephone cables for access networks has been predicted some time, but, again, due to its low cost it is still used. Based on this, DSL technology has suffered some evolutions during the years, and the last one is considered fourth generation and is known as G.fast. This generation is in process of standardization, and its first version has been released recently. This work presents synchronism and clock frequency offset techniques for fourth generation DSL. These techniques have been created for dealing with particularities of this last generation and have been evaluated in a hardware prototype that uses DSP and FPGA boards, which allow speeding up implementation. It is presented in details the techniques created, their performance and resources used for their implementation. KEYWORDS: DSL; Synchronism; FPGA; DSP; Software-defined radio; TDD. Sumário Lista de Figuras iii Lista de Tabelas v Glossário vi 1 Introdução 1 1.1 Visão geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Sobre este trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Situando o Trabalho na Área de Telecomunicações 2.1 2.2 2.3 5 Sincronismo em telecomunicações . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 Sincronismo de portadora . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2 Sincronização de sı́mbolo . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.3 Outros tipos de sincronismos em telecomunicações . . . . . . . . . . 8 Modulações digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.1 QAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.2 DMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Métricas de desempenho de modulações digitais . . . . . . . . . . . . . . . 13 2.3.1 Error Vector Magnitude . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4 Field Programmable Gate Arrays - FPGAs . . . . . . . . . . . . . . . . . . 15 2.5 Técnicas de sincronismo para comunicações digitais . . . . . . . . . . . . . 16 3 Hardware e Software do Protótipo 3.1 18 Software-defined UFPa transceiver (SOUT) . . . . . . . . . . . . . . . . . 18 3.1.1 AFE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 i 3.2 3.1.2 DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.3 FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.4 Conexão fı́sica e lógica entre as placas . . . . . . . . . . . . . . . . 23 A aplicação modem-prototype . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.1 Implementação da duplexação no domı́nio do tempo (TDD) . . . . 25 3.2.2 Comunicação com os conversores . . . . . . . . . . . . . . . . . . . 26 3.2.3 Cadeia de transmissão . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.4 Cadeia de recepção . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.5 Detectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.6 3.2.5.1 Detector Schmidl & Cox . . . . . . . . . . . . . . . . . . . 31 3.2.5.2 Detector xCorr . . . . . . . . . . . . . . . . . . . . . . . . 34 Correção de diferenças de clock . . . . . . . . . . . . . . . . . . . . 37 3.2.6.1 Definição de cursor . . . . . . . . . . . . . . . . . . . . . . 38 3.2.6.2 Arquitetura para sincronização e equalização. . . . . . . . 40 3.2.6.3 Estimação de cursor . . . . . . . . . . . . . . . . . . . . . 42 4 Desempenho e Comparação das Técnicas de Sincronismo 44 4.1 Desempenho dos detectores . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2 Consumo de hardware dos detectores . . . . . . . . . . . . . . . . . . . . . 46 4.3 Desempenho da correção de CFO . . . . . . . . . . . . . . . . . . . . . . . 50 4.4 Taxas alcançadas pelo protótipo . . . . . . . . . . . . . . . . . . . . . . . . 53 5 Conclusão 5.1 56 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Bibliografia 61 ii Lista de Figuras 2.1 Sinal gerado com PAM, usando pulso retangular (em azul) e pulso de Nyquist (em verde), e os pontos em vermelho são as proximidades do ponto de decisão dos sı́mbolos para o pulso de Nyquist. . . . . . . . . . . . . . . . 9 2.2 Exemplo de uma constelação 16 QAM e um possı́vel mapeamento de bits. . 10 2.3 Modulação 64 QAM, com pontos originais em vermelho e possibilidade de ocorrência dos pontos recebidos devido à uma RSR de 25 dB. . . . . . . . 14 2.4 Constelação da Figura 2.3 sofrendo com CFO de 800 ppm . . . . . . . . . 14 2.5 Constelação recebida com os tons pilotos nos pontos mais afastados . . . . 17 3.1 Visão geral da SOUT e suas conexões. . . . . . . . . . . . . . . . . . . . . 20 3.2 As duas SOUTs da UFPa conectadas por um cabo CAT5 de 50 metros. . . 20 3.3 Diagrama de blocos simplificado do AFE. . . . . . . . . . . . . . . . . . . . 21 3.4 Visão geral das conversões de dados. . . . . . . . . . . . . . . . . . . . . . 24 3.5 Um slot TDD usado na SOUT. . . . . . . . . . . . . . . . . . . . . . . . . 26 3.6 Transferência de dados usando DDR. O sinal DCLK(P/N) é o clock o sinal D[15:0](P/N) é o barramento de dados sendo transferido nas duas bordas de DCLK. Figura retirada do manual do DAC5681z. . . . . . . . . . . . . 27 3.7 Esquema usado no FPGA para fazer a conversão de 200 para 100 MHz. . . 28 3.8 Ilustração em diagrama de blocos da cadeia de transmissão. . . . . . . . . 28 3.9 Exemplo da métrica de temporização para o S&C quando a RSR é infinita. 33 3.10 Implementação do detector S&C no FPGA. . . . . . . . . . . . . . . . . . 33 3.11 Implementação do detector xCorr no FPGA. . . . . . . . . . . . . . . . . . 35 3.12 Sinal SINC transmitido para o detector xCorr. . . . . . . . . . . . . . . . . 36 3.13 Sinal SINC recebido pela interface dos conversores com o FPGA. . . . . . . 36 iii 3.14 Ilustração de como as amostras do sinal recebido são repassadas aos xCorrs. Nesse exemplo, as amostras do sinal ref (i) sempre estão na segunda posição do grupo de quatro amostras. . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.15 Exemplo de resultados dos xCorrs quando o sinal ref (i) está na segunda posição do grupo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.16 Exemplo onde além da diferença de fase, os clocks possuem frequências diferentes. Assim, os ∆ sempre mudam. . . . . . . . . . . . . . . . . . . . . 38 3.17 Definição de cursor n0 e ilustração de como ele acontece. . . . . . . . . . . 39 3.18 Estimação de n0 para vários sı́mbolos DMT recebidos em sequência. . . . . 40 3.19 Fases de treinamento do modem-prototype. . . . . . . . . . . . . . . . . . . 41 3.20 Fases de showtime do modem-prototype. . . . . . . . . . . . . . . . . . . . . 42 3.21 Estimação de β e ∆θ a partir dos tons pilotos. . . . . . . . . . . . . . . . . 43 4.1 Resultados da métrica de temporização de duas realizações do mesmo sı́mbolo S&C, mostrando duas curvas atingindo um limiar de 0.75 em tempos diferentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2 Resultados da métrica de temporização de duas realizações do mesmo sı́mbolo S&C, onde a curva em azul não sofre atenuação e a curva em verde sofre e depois é amplificada. . . . . . . . . . . . . . . . . . . . . . . . 47 4.3 Exemplo de uma constelação de 256 QAM recebida e corrigida, onde é possı́vel perceber uma pequena rotação nos pontos mais distantes da origem. 52 4.4 Bitloading tı́pico estimado usando o Levin-Campello. . . . . . . . . . . . . 53 4.5 RSR tı́picas calculadas para cabos CAT5 de 50 m (esquerda) e 100 m (direita). 54 iv Lista de Tabelas 3.1 Comparação entre preços da EVM e do CI para o FPGA e DSP. . . . . . . 19 4.1 Uso de recursos lógicos pelos detectores. . . . . . . . . . . . . . . . . . . . 48 4.2 Uso de recursos do FPGA pelos detectores. . . . . . . . . . . . . . . . . . . 50 4.3 Requerimentos de EVM pela tecnologia LTE (Lont Term Evolution) . . . . 51 v Glossário AD Analógico-digital AFE Analog front-end AM Amplitude modulation ASIC Application-specific integrated circuit ASK Amplitude-shift keying CI Circuito integrado CP Cyclic prefix CFO Clock frequency offset CPE Customer premise equipment DA Digital-analógico DDR Double data rate DMT Discrete multitone DSL Digital subscriber line DSLAM DSL access multiplexer DSP Digital signal processor DTU Data transfer unit EVM Evaluation module vi EVM Error Vector Magnitude FEQ Frequency equalization FFT Fast Fourier transform FFTC FFT coprocessor FPGA Field programmable gate array IDFT Inverse Discrete Fourier Transform IFFT Inverse FFT IP Intellectual property IP Internet protocol ITU International Telecommunication Union LVDS Low-voltage Differential Signaling LTE Long Term Evolution NETCP Network coprocessor OFDM Orthogonal frequency-division multiplexing PAM Pulse amplitude modulation PCI Placa de circuito impresso PLL Phase locked loop ppm Parte por milhão QAM Quadrature amplitude modulation QPSK Quadrature phase-shift keying RAM Random access memory RDS Rádio definido por software vii SPI Serial peripheral interface SRIO Serial RapidIO RISC Reduced instruction set computing RS Reed-Solomon RSR Relação sinal-ruı́do RTOS Real-time operating system SDR Single data rate SoC System-on-chip SOUT Software-defined UFPa transceiver S&C Schmidl and Cox TDD Time-domain duplex TDM Time-division multiplexing viii Capı́tulo 1 Introdução 1.1 Visão geral A tecnologia de redes de acesso via cabos trançados telefônicos é muito utilizada, pois possui infraestrutura com alto potencial de penetração, ou seja, a operadora consegue prover conectividade ao usuário com mais facilidade do que outras tecnologias, como as fibras. Isso é possı́vel, pois as redes telefônicas são empregadas a mais de cem anos, o que faz com que haja muita infraestrutura instalada, além da instalação de novos cabos telefônicos ser barato em relação à fibra. O conjunto de tecnologias que provê acesso via cabos telefônicos são denominados de DSL (Digital subscriber line, em inglês) e vêm evoluindo gradativamente ao longo dos anos [1], conseguindo prover maiores taxas de dados aos usuários. Tem-se verificado que a cada dez anos há uma evolução significativa nas tecnologias de redes de acesso via cabos telefônicos, ou pares trançados, sendo que desde o inı́cio de sua utilização já ocorreram quatro dessas mudanças. As mudanças no DSL que proporcionaram tal melhoria nas taxas foram, entre outros fatores, devido à diminuição do comprimento dos cabos, ou das distâncias entre os usuários e os pontos de distribuição. Isso ocorre devido à utilização de redes hı́bridas de fibra e cobre, assim, uma rede de fibra de alta velocidade é instalada até as proximidades do usuário (ponto de distribuição), e então o usuário é conectado a essa rede através de cabos de cobre, que são mais baratos. Por exemplo, no DSL de segunda geração o usuário está a uma distância do ponto de distribuição na ordem de quilômetros, na terceira essa distância é menor que um quilômetro e na quarta de 50 a 250 metros. O atual estágio de desenvolvimento dessas tecnologias é denominado de DSL de 1 2 quarta geração [2]. A versão do DSL que é classificada como sendo de quarta geração teve sua primeira versão criada recentemente pela União Internacional de Telecomunicações (ITU - International Telecommunication Union, em inglês) seção T, ou ITU-T, é referenciada pela norma G.9701 [3] e conhecida como tecnologia G.fast. As caracterı́sticas dessa tecnologia são alta largura de banda na ordem de 200 MHz, sendo chamada de ultra banda larga em alguns casos [1], e deve prover taxas de dados na ordem de 1 Gigabit por segundo. Tal largura de banda requer alta capacidade de processamento, pois segundo o teorema da amostragem de Nyquist-Shannon, as taxas de amostragem do G.fast devem ser maiores que 400 MHz, e isso gera uma alta taxa de dados, que devem ser processados em tempo real. Diferentemente das gerações anteriores, o G.fast foi padronizado para utilizar duplexação 1 no domı́nio do tempo no lugar da duplexação no domı́nio da frequência das versões anteriores [4] [5]. Essa mudança faz com que boa parte das implementações das gerações anteriores não possam ser reaproveitas na quarta geração. A mudança para o TDD e devido ser um padrão lançado recentemente e a continuar um desenvolvimento, não há muitos produtos no mercado que obedeçam ao padrão G.fast. Assim, universidades ou institutos de pesquisas que não estão associados às empresas que participam do processo de padronização, dificilmente têm oportunidade de contribuir na padronização, ou têm mais impedimentos para realizar pesquisas práticas na área de G.fast. A forma com que essas instituições podem participar é comprar circuitos integrados (CI) que implementem o G.fast como [6]. Entretanto, tais produtos, por serem comerciais, normalmente não proporcionam configurabilidade para fazer pesquisa o usando, e também, eles normalmente são vendidos somente em milhares e em parceria com fabricantes, o que inviabiliza o seu uso para pesquisa. Outra dificuldade das instituições de pesquisa é o acesso aos algoritmos implementados, por exemplo, o G.fast especifica que tipos de sı́mbolos serão transmitidos para sincronização. Entretanto, mesmo especificando os sı́mbolos, as técnicas a serem utilizadas são deixadas a cargo do fabricante, que por sua vez escolhe a que obteve melhores resultados em seus hardwares e protótipos, e elas são mantidas em segredo. 1 Duplexação é o processo no qual dois dispositivos em uma comunicação ponto-a-ponto transmitem informação sem haver colisão. Há dois modos, no domı́nio do tempo, onde cada dispositivo tem seu tempo de transmitir; e no domı́nio da frequência onde cada um tem sua banda de frequência especı́fica. 3 1.2 Sobre este trabalho Com o objetivo de permitir pesquisa na área de G.fast, o Laboratório de Processamento de Sinais na UFPa iniciou a criação de um protótipo de modem G.fast. A implementação do protótipo corresponde a uma infraestrutura de comunicação completa e culminou nos algoritmos e resultados mostrado nessa dissertação e em outros trabalhos, como [7]. Mais especificamente, essa dissertação trata sobre a questão do sincronismo implementado para esse protótipo. O sincronismo usado nessa tecnologia possui muitas peculiaridades, que são usadas para obter sincronismo, em [8] é dada uma visão geral das formas de sincronismo que podem ser utilizam em DSL e em sistemas que utilizam modulações DMT (Discrete multitone, em inglês) e OFDM (Orthogonal frequency division multiplexing, em inglês). Partindo das técnicas mostradas nesses trabalhos relacionados, nessa dissertação é proposta a utilização do algoritmo Schmidl & Cox [9] para sincronização da duplexação TDD que utiliza poucos recursos de hardware. É também criado outro algoritmo para prover sincronismo mais preciso do que o primeiro, que é baseado em uma correlação cruzada modificada e é denominado xCorr. O xCorr, entretanto, utiliza mais recursos de hardware, como é mostrado nesse trabalho. A plataforma de hardware utilizada consiste de três módulos separados, desses, o módulo de interface analógica não provê recursos para que seja feita sincronização de clocks exatamente como definido no padrão. Assim, não é possı́vel implementar exatamente como especificado, e foi necessário a criação de outro algoritmo para correção, em domı́nio digital, das diferenças de clock. Dessa forma, foi iniciada pesquisa para avaliar algoritmos de correção de diferenças de clock, entretanto verificou-se que os algoritmos disponı́veis, como [10] e [11], não atendem aos requerimentos da aplicação. Logo, foi criado um algoritmo para correção, que tomou como base essas referências, e que utiliza regressão linear para obter melhores resultados na aplicação do protótipo. Assim, este trabalho também apresenta a implementação e resultados desse algoritmo que é aplicado no domı́nio da frequência, juntamente com os algoritmos de equalização. O conteúdo desse trabalho é apresentado da seguinte forma. No Capı́tulo 2, são mostrados os conceitos básicos utilizados, com o objetivo de situar melhor o conteúdo desenvolvido dentro da área de telecomunicações. No Capı́tulo 3 são mostrados o hardware utilizado, como os algoritmos foram implementados e a divisão de processamento entre as unidades de que compõem a plataforma utilizada. No Capı́tulo 4 são mostrados os resultados obtidos e feitas comparações dos algoritmos utilizados. E, por fim, no Capı́tulo 5 é 4 feita a conclusão do trabalho e mostradas propostas de trabalhos futuros. Capı́tulo 2 Situando o Trabalho na Área de Telecomunicações Este capı́tulo tem como objetivo apresentar os conceitos básicos necessários para o bom entendimento das técnicas apresentadas no Capı́tulo 3 e dos resultados apresentados no Capı́tulo 4, e também situar o conteúdo apresentado dentro da área de telecomunicações. São também apresentados métodos de classificação das técnicas utilizadas. 2.1 Sincronismo em telecomunicações O objetivo desta seção é introduzir os conceitos de sincronização para sistemas de telecomunicações, entretanto, como “telecomunicações” e “sincronismo” são termos bem gerais, nesta seção também é dado um direcionamento para que tipos de “telecomunicações” e “sincronismo” são tratados nesse trabalho. Em telecomunicações, o termo sincronismo pode ser tratado em várias áreas diferentes, onde, para simplificar, uma visão em camadas pode ser usada para classificação os tipos de sincronismos [12]. 2.1.1 Sincronismo de portadora Esse é o tipo de sincronização requerida em sistemas de modulação (digitais e analógicos), onde os sinais de clock ou senoidais de um sistema composto por um transmissor e um receptor, necessitam possuir a mesma frequência e, em alguns casos, a mesma 5 6 fase para que o receptor do sistema possa recuperar com sucesso a informação transmitida. O processo de recuperação da portadora do transmissor é largamente discutido na literatura [12] [13], e no receptor, a recuperação da portadora para fazer a demodulação é chamada de demodulação sı́ncrona ou coerente. Um exemplo, de um sistema que necessita de recuperação de portadora, é o sistema de rádio AM (Amplitude modulation, em inglês) sı́ncrono, onde a informação s(t) é transmitida na amplitude da portadora cos(2πf0 t), de acordo com a Equação (2.1). xt (t) = s(t) cos(2πf0 t) (2.1) Nesses sistemas a informação é transladada para uma frequência mais alta (f0 ), por um processo chamado de upconversion, assim, a informação é transmitida na chamada banda passante (banda de frequência diferente de sua banda original). No receptor a informação que está em sendo carregada por uma alta frequência deve sofrer o processamento inverso e filtragem para ser recuperada (downconversion). Dessa forma, é possı́vel perceber que, caso a frequência do receptor seja diferente (f1 ), haverá distorção da informação, como mostrado nas Equações (2.2) e (2.3). xr (t) = xt (t) cos(2πf1 t) (2.2) 1 xr (t) = [cos(2πt(f0 − f1 ))s(t) + cos(2πt(f0 + f1 ))s(t)] 2 (2.3) Nesses sistemas, o sinal recebido também é proporcional à diferença de fase dos dois sinais, pois caso tenham a mesma frequência e fases distintas (θ1 e θ2 ) o sinal recebido se torna como mostrado na Equação (2.4) (alguns termos foram omitidos). xr (t) = cos(θ1 − θ2 )s(t) (2.4) Por exemplo, de acordo com a Equação (2.4), caso θ1 − θ2 = π/2, a informação não poderá ser recuperada, pois cos(π/2) = 0. Esse tipo de sistema, e outros que recuperam a portadora do transmissor de alguma forma para realizar a recuperação do sinal, são chamados de sistemas de demodulação coerente ou sı́ncrona. O sistema de rádio AM é analógico, logo não precisa ser amostrado, toda a transmissão e recepção podem ser feitas em domı́nio analógico. No caso de sistemas de modulação digital, há o processo de conversão digital-analógico (DA) no transmissor e con- 7 versão analógico-digital (AD) no receptor, sendo que alguns tipos de modulações que transmitem informação na fase da portadora requerem que os clocks usados nos processos de conversão também estejam sincronizados em fase e em frequência, caso contrário pode haver efeitos deletérios tal como a rotação do sinal no domı́nio da frequência. Dessa forma, sistemas digitais que transmitem informação em banda passante devem lidar com problemas de sincronização de portadora e sincronização de clock de amostragem. Exemplos de sistemas digitais que utilizam banda passante podem ser os que usam modulação quadrature amplitude modulation (QAM) e OFDM [14]. Esses dois tipo de modulação são muito usados em tecnologias como Wifi e tecnologias de comunicações móveis. Diferentemente de sistemas em banda passante, há os sistemas em banda base, onde a informação ou sinal gerado pelo processo de modulação é transmitido na mesma banda de frequência em que foi gerado. Dessa forma, um sistema digital que é transmitido em banda base, somente precisará lidar com sincronização de clock de amostragem. Exemplo desse tipo de sistemas são os que usam DMT, que é o equivalente do OFDM em banda base. O DMT é usado nos sistemas DSL, que utilizam a infraestrutura telefônica para prover conectividade aos usuários. Maiores informações os conceitos apresentados nesta seção podem ser vistas em [15]. O conteúdo principal deste trabalho apresenta uma implementação de um sistema baseado em G.fast [3], que é o novo padrão de tecnologias DSL que está sendo desenvolvido pelo ITU-T, que ambiciona atingir 1 Gbps em um par trançado telefônico em distâncias de 50 m e taxas menores à medida que o comprimento do cabo aumenta, até um máximo de 250 m. A modulação utilizada nesse trabalho é o DMT, que pode ser classificado como um sistema de transmissão em banda base que utiliza demodulação coerente, pois ele precisa recuperar o clock de amostragem do transmissor. Dessa forma, não há a necessidade de sincronização de portadora. Mais detalhes sobre essas implementações são dados no Capı́tulo 3 e no Capı́tulo 4. 2.1.2 Sincronização de sı́mbolo “Sincronização de sı́mbolo” é o processo realizado no receptor, onde o sinal analógico será “selecionado” de forma que somente a parte do sinal analógico que contém informação seja processada. Esse tipo de sincronismo é mais comum em sistemas digitais, onde o transmissor envia informações somente em determinados perı́odos. Os sistemas analógicos normalmente transmitem informação continuamente e, dessa forma, não há distinção de sı́mbolos no sinal analógico. 8 Em alguns tipos de modulação, a informação transmitida deve ser extraı́da de uma única amostra, obtida na saı́da de um filtro casado, por exemplo. O receptor deve selecionar a amostra correta, ou amostrar periodicamente de forma que sejam capturadas as partes do sinal analógico que contém informação. Devido à sincronização de sı́mbolo também estar relacionada com a amostragem do sinal, ela é também chamada de sincronização de clock de amostragem [16], o que pode gerar confusão com a seção anterior. Entretanto, nesse trabalho, somente será tratado como sincronização de sı́mbolo, pois o sinal pode ser amostrado em uma taxa maior que do que a taxa de sı́mbolo, e a amostra que contém o sı́mbolo pode ser selecionada no domı́nio digital. Um exemplo desse tipo de sistema, são os que usam pulse amplitude modulation (PAM), onde a informação é transmitida em pulsos, e cada nı́vel de tensão desse pulso no instante de tempo correto representa um conjunto de bits, ou um único bit, se houverem dois nı́veis. Para maiores informações sobre essa técnica de modulação, o leitor pode utilizar o capı́tulo 6 de [14]. A Figura 2.1 mostra um exemplo de um sinal PAM gerado usando dois tipos de pulsos, o pulso retangular em azul e o pulso de Nyquist em verde, onde os pontos em vermelho são os pontos exatos onde os sı́mbolos no sinal gerado com Nyquist pode ser recuperados. No sinal gerado com o pulso retangular o sı́mbolo transmitido pode ser recuperado em uma janela de tempo bem maior do que o sinal gerado com pulso de Nyquist, enquanto que o sinal que usa o pulso de Nyquist fica mais restrito às proximidades do ponto em vermelho, entretanto há considerações sobre o uso dos dois pulsos, que não são tratadas nesse trabalho. O exemplo anterior mostra um sistema de modulação que transmite a informação em uma única amostra (ou em um intervalo de tempo bem determinado) do sinal. Entretanto há sistemas como o DMT e OFDM que utilizam várias amostras para representar um sı́mbolo (ou um intervalo de tempo maior). Nesse tipo de sistema o processo sincronização de sı́mbolo no receptor consiste em capturar esses intervalos para que a demodulação possa ser feita. O sistema apresentado nesse trabalho utiliza sı́mbolos DMT, dessa forma, um sı́mbolo consiste de várias amostras, que são recebidas e processadas pelo receptor. 2.1.3 Outros tipos de sincronismos em telecomunicações Os dois tipos de sincronização mostrados conseguem classificar as implementações mostradas neste trabalho, entretanto, é importante mencionar que existem outros tipos, sendo que os dois anteriores que serão tratados nessa dissertação dizem respeito à camada fı́sica de sistemas de comunicação. Existem outros conceitos de sincronização em telecomunicações que são tratados em camadas superiores, com por exemplo: 9 2 Pulso retangular Pulso de Nyquist Símbolo Sinal analógico (Volts) 1.5 1 0.5 0 −0.5 −1 −1.5 −2 0 20 40 60 80 100 Segundos Figura 2.1: Sinal gerado com PAM, usando pulso retangular (em azul) e pulso de Nyquist (em verde), e os pontos em vermelho são as proximidades do ponto de decisão dos sı́mbolos para o pulso de Nyquist. • Sincronização de quadro: este tipo de sincronismo é realizado quando os bits são recuperados do sinal analógico, onde, então, e feito o processo de agrupa-los em palavras, ou palavras-código ou ainda outro tipo de nomenclatura, dependendo do sistema utilizado. No caso de um sistema Time-division multiplexing (TDM), é nesse estágio que os bits são direcionados para o usuário destino. • Sincronização pacote: nesse tipo de sincronismo a informação, na sua fonte, é divida em pacote, e esses pacotes são recebidos no destino, onde serão reagrupados em sequência para que a informação seja recuperada. • Sincronização de mı́dia: esse conceito de sincronização trata informações diferentes que possuem alta relação temporal, como o caso do áudio e do vı́deo. 2.2 Modulações digitais Esta dissertação trata de um sistema de comunicações que foi implementado usando uma plataforma desenvolvida na UFPa, onde são implementadas técnicas de modulação digital para transmitir as informações do usuário. Nesta seção são apresentados e explicados com mais detalhes as técnicas de modulação que são utilizadas neste trabalho. 10 2.2.1 QAM QAM é uma técnica de modulação que pode ser vista como um mapeamento da informação a ser transmitida em um conjunto finito de pontos. Esses pontos na técnica QAM formam um conjunto bidimensional que serão multiplicados por um função base para formar o sinal analógico. Para mapear a informação recebida, os seus bits são usados de acordo com o tamanho do conjunto de pontos, normalmente, seguindo potências de 2. Assim, n bits da informação são mapeados para um dos 2n pontos. A Figura 2.2 mostra um possı́vel mapeamento de quatro bits da informação. 3 0000 0100 1000 1100 0001 0101 1001 1101 0010 0110 1010 1110 0011 0111 1011 1111 Quadratura (q) 2 1 0 −1 −2 −3 −3 −2 −1 0 1 2 3 Fase (i) Figura 2.2: Exemplo de uma constelação 16 QAM e um possı́vel mapeamento de bits. Uma forma de representar o sinal resultante do mapeamento, que é a forma usada neste trabalho, é através de números complexos. Por exemplo, a sequência binária 1001 da Figura 2.2 pode ser representada por 1 + j. Assim, uma vez que o mapeamento é feito os pontos resultantes podem ser convoluı́dos com um pulso para transmissão pelo canal. O resultado da convolução dos pontos complexos com o pulso é complexo, e como não existe um canal que possa transmitir informação complexa (a menos que as partes real e imaginária sejam transmitidas em canais separados), os sinais QAM são transmitidos usando banda passante através da relação da Equação 2.5. T Xqam (t) = xi (t) cos(2πfc t) + xq (t)sen(2πfc t) (2.5) Na Equação 2.5, xi (t) é a parte real e xq (t) é a parte imaginária do resultado da convolução, e fc é a frequência da portadora. Esse processo translada o sinal QAM para a 11 frequência fc , e gera um resultado real, que pode ser transmitido pelo canal. Na recepção é feito o processo de downconversion, assim o sinal volta a ter partes real e imaginária, e então é amostrado e pode ser processado. Como o processo de demodulação utiliza downconversion e amostragem, os sistemas QAM podem ser classificados como coerentes, e devem utilizar os conceitos de sincronização de portadora e de amostragem discutidos nas seções anteriores. O sinal QAM ocupa uma largura de banda que é proporcional à taxa de sı́mbolos transmitidos por segundo, assim, quanto maior a taxa de transmissão de dados requerida, maior é a largura de banda do sinal gerado. 2.2.2 DMT Diferentemente dos sistemas que utilizam uma única portadora, como o PAM e QAM mostrados anteriormente, a técnica de modulação DMT divide a banda disponı́vel do canal em várias subbandas, onde várias subportadoras carregam informação utilizando técnicas de modulação que podem ser diferentes para cada subbanda. A idéia do DMT é utilizar as várias subportadoras transmitindo em uma taxa menor, mas a taxa resultante do uso de todas, tende a ser maior do que um sistema que utiliza uma única portadora. Há muita discussão sobre as vantagens e desvantagens de sistemas multiportadora em relação aos outros, mas uma das maiores vantagens é o fato da equalização ser mais simples, pois os subcanais possuem um largura de banda pequena em relação a banda total do canal, logo o subcanal pode ser visto como um canal “flat”, o que acarreta em uma equalização (no receptor) sendo aplicada como um ganho. Outra caracterı́stica dos sistemas DMT é que o espaçamento das subportadoras é pequeno, o que favorece a melhor utilização do canal. As subportadoras são separadas em frequência por um valor preciso que faz com que as subportadoras sejam ortogonais, assim, não há interferência entre elas. O modo de geração do sinal DMT para que as subportadoras sejam ortogonais, utiliza a transformada discreta inversa de Fourier (IDFT - Inverse Discrete Fourier Transform, em inglês), ou sua versão otimizada a transformada rápida de Fourier inversa (IFFT - Inverse Fast Fourier Transform em inglês). A IFFT considera que o sinal de entrada está no domı́nio da frequência e o sinal é um vetor de números complexos e cada posição do vetor corresponde a uma subportadora. Dessa forma, cada subportadora pode receber um tipo de modulação diferente (que pode ser QAM, PAM, QPSK1 , ASK2 , etc), e a notação de constelação apresentada para a técnica 1 2 Quadrature phase-shift keying Amplitude-shift keying 12 QAM também pode ser usada. Na aplicação mostrada nessa dissertação, as subportadoras do sinal DMT utilizam QAM. O sinal DMT, após passar pela IFFT, é transformado para o domı́nio do tempo, que corresponde a soma de todas as subportadoras, como mostrado na Equação (2.6). Onde Ak e θk são obtidos a partir da amplitude e fase do ponto da constelação para o tom k. T x[n] = X Ak cos(2πkf0 n + θk ) (2.6) Como o sinal DMT é transmitido em banda base, a sua versão no domı́nio do tempo tem a restrição de ser real. Para isso, é usada uma propriedade da IFFT, onde o sinal no domı́nio da frequência apresenta a simetria mostrada na Equação 2.7, onde k é o ı́ndice da subportadora, e N é a matade do tamanho da IFFT realizada. ak = a∗N −k+1 (2.7) A Equação (2.7) impõe que o valor das frequências positivas sejam o complexo conjugado das frequências negativas, exceto as frequências referentes ao DC e Nyquist, que não são usadas. A técnica DMT é muito similar ao OFDM, que é muito utilizado em tecnologias de wireless. A diferença é que o OFDM não possui restrição de ser real no domı́nio do tempo, dessa forma, no domı́nio da frequência, o OFDM não está restrito à Equação 2.7 e, portanto, pode utilizar o dobro de portadoras em relação ao DMT. Além do mais, o DMT é transmitido em banda base, enquanto que o OFDM é transmitido usando o processo de upconversion descrito para a modulação QAM. Tanto OFDM quanto DMT utilizam o chamado prefixo cı́clico (CP - cyclic prefix em inglês) para tornar o sı́mbolo mais robusto à interferência intersimbólica causada pelo canal. O CP consiste em repetir a últimas amostras do sinal domı́nio do tempo no inı́cio do sı́mbolo. Isso é possı́vel, pois a IFFT considera que o sinal de saı́da corresponde a um perı́odo de um sinal periódico, assim a repetição faz com que seja usado parte do perı́odo anterior do mesmo sinal. O uso do CP protege o sı́mbolo, sofrendo a interferência do sı́mbolo anterior, para isso o tamanho do CP deve ser maior do que a dispersão do canal (resposta ao impulso do canal). O CP além de proteger contra interferência intersimbólica, ainda oferece uma janela maior para o receptor capturar o sı́mbolo, pois como se trata de uma repetição do sı́mbolo, caso o receptor capture parte do CP, os tons apenas sofrem rotação, que é mais fácil de ser corrigido que outros tipos de distorção. Essa caracterı́stica é usada pelos detectores 13 implementados nessa dissertação, e são mostrados nos Capı́tulo 3 e 4. Uma última caracterı́stica dos sistemas multiportadora, como o OFDM e o DMT, é a possibilidade de se estimar a relação sinal-ruı́do (RSR) para cada subbanda e usar uma modulação que atinja um desempenho especı́fico em cada tom, ou o mesmo desempenho para todos os tons. Apesar de ser possı́vel usar diferentes tipos de modulação, nesse trabalho são usadas modulações QAM em vários nı́veis, ou 2n QAM (onde n são números pares de 2 a 12), de acordo com a RSR da subbanda. O processo de calcular a melhor constelação QAM a ser usada em cada tom é chamado de bitloading, e nesse trabalho, é utilizado o algoritmo Levin-Campello [17]. 2.3 Métricas de desempenho de modulações digitais Idealmente a informação recebida deve ser recuperada, e deve ser exatamente igual a que foi transmitida, entretanto, devido às não idealidades do canal de comunicação, a informação recebida é uma versão distorcida da original. Algumas vezes, devido à alta distorção, não é possı́vel recuperar a informação. No caso de modulações digitais e que usam constelações para representar os sinais transmitidos e recebidos, o grau de distorção pode ser medido usando a distância em que o sinal recebido encontra-se do ponto original. Dependendo do tipo de modulação digital, a medida deve ser feita de uma forma especı́fica. No caso da modulação QAM, o receptor pode definir regiões usando retas entre os pontos da constelação para indicar um erro. A Figura 2.3 mostra um exemplo de constelação de 64 QAM, onde os pontos em vermelho são os pontos originais transmitidos, e os cı́rculos em azul são os possı́veis pontos onde o sinal recebido pode aparecer, devido à uma RSR de 25 dB. Nessa figura, não há erro, pois a região possı́vel onde o sinal pode ser recebido não ultrapassa as regiões de decisão, que são mostradas na figura como linhas pretas tracejadas. No exemplo da Figura 2.3, somente o ruı́do influencia no sinal recebido, entretanto em sistema de comunicações digitais ainda há o problema de diferenças de clock, ou clock frequency offset (CFO) em inglês. O CFO faz a constelação toda rotacionar, aumentando a probabilidade de erro e, consequentemente, diminuindo as métricas de desempenho no receptor. A Figura 2.4 mostra o exemplo da Figura 2.3 sofrendo distorção de CFO. A intensidade do CFO é medido em parte por milhão (ppm) e esse exemplo utiliza 800 ppm, o que significa que se o transmissor usa um clock de 400 MHz, o receptor possui uma diferença de frequência de 2 Hz em relação ao transmissor, o que causa o desvio mostrado na figura, e que dessa vez faz com que ocorra erro na detecção em alguns casos, como é 14 8 6 Quadratura (Q) 4 2 0 −2 −4 −6 −8 −8 −6 −4 −2 0 2 4 6 8 Fase (I) Figura 2.3: Modulação 64 QAM, com pontos originais em vermelho e possibilidade de ocorrência dos pontos recebidos devido à uma RSR de 25 dB. possı́vel perceber pelos cı́rculos que ultrapassam a região de decisão. 8 6 Quadratura (Q) 4 2 0 −2 −4 −6 −8 −8 −6 −4 −2 0 2 4 6 8 Fase (I) Figura 2.4: Constelação da Figura 2.3 sofrendo com CFO de 800 ppm Dessa forma, há a necessidade de corrigir o CFO antes de ser feita a demodulação, o Capı́tulo 3 mostra o algoritmo criado para correção do CFO. Uma vez que os sinal recebido está corrigido, somente o ruı́do pode causar erros na demodulação, nesse estágio é possı́vel calcular a sua intensidade e classificar o canal de acordo com ela. A técnica Error Vector Magnitude (EVM) pode ser usada para quantificar a qualidade do sinal tanto no receptor quanto no transmissor. 15 2.3.1 Error Vector Magnitude O EVM é uma medida da diferença entre os pontos da constelação ideais e os sı́mbolos medidos depois da equalização. A EVM é definida como a raiz quadrada da razão entre a potência do vector de erro e a potência do sinal original [18]. Esse valor é dado em porcentagem ou em dB, como mostrado nas Equações 2.8 e 2.9, respectivamente. Nas equações, Perro e Pref erencia são as potências da diferença entre o sinal recebido e o ponto original e a potência do ponto original. Como os pontos da constelação do sinal original podem possuir amplitudes diferentes, pode-se usar o ponto mais distante para o cálculo de Pref erencia . s EV M (%) = Perro Pref erencia EV M (dB) = 10 log10 ∗ 100% Perro Pref erencia (2.8) (2.9) 2.4 Field Programmable Gate Arrays - FPGAs Esta dissertação utiliza CIs FPGAs para implementar parte do sincronismo mostrado nesse trabalho. Quando comparados com CIs de DSPs (Digital signal processor, em inglês) ou processadores convencionais, os FPGAs têm a vantagem de poder implementar qualquer algoritmo diretamente em lógica digital. Assim, pode-se implementar algoritmos em FPGA fazendo um caminho de dados, onde em cada estágio os dados sofrem um ou mais processamentos, enquanto os próximos estágios e anteriores estão também trabalhando paralelamente. As duas técnicas de detecção implementadas nessa dissertação utilizam caminhos de dados para processar as amostras de entrada, e esse caminho é chamado de datapath. E ainda é possı́vel utilizar vários datapaths em paralelo para melhorar o desempenho. Além das vantagens já citadas, os FPGAs são indicados para interfaceamento com dispositivos de alta velocidade como ADs e DAs [19] [20]. Nessa dissertação, o FPGA Virtex 6 é utilizado, onde os dados do conversor AD é empacotado e enviado para o DSP via RapidIO, e vice-versa para enviar dados ao conversor DA. Os FPGAs podem ser utilizados para realizar funções de hardware especı́ficas, por isso ele são normalmente comparados com um tipo de CI chamado de circuito integrado de aplicação especı́fica, ou application-specific integrated circuit (ASIC) em inglês. Am- 16 bos implementam funções especı́ficas em hardware customizado, entretanto o FPGA é um dispositivo reprogramável enquanto que o ASIC possui funcionalidade fixa. A reprogramabilidade também influencia em outros dois fatores, o desempenho e a o custo. Como o FPGA é reprogramável, ele atinge frequências de operação muito menores do que os ASICs, por exemplo, enquanto o FPGA trabalha em frequências na faixa de 100 a 200 MHz, o ASIC trabalha na faixa de 1 a 2 GHz. Entretanto, os ASICs possuem ciclo de projeto muito mais caro que os FPGAs, pois envolve fabricação de um CI customizado e leva mais tempo, enquanto os FPGAs são CIs comerciais e podem ser programados em segundos. Os FPGAs além da componentes que implementam qualquer função lógica ainda possuem vários outros elementos embarcados no mesmo CI, como, por exemplo, memórias RAM (Random access memory), PLLs (Phase locked loops), clocks, controladores Ethernet, e vários outros. Dentre esses componentes, foram usados nessa dissertação as memórias RAM internas, para criação de filas e armazenamento temporário das informações, os PLLs para gerenciamento de clocks e própria lógica programável para a implementação dos algoritmos e controle. 2.5 Técnicas de sincronismo para comunicações digitais Esta seção trata do sincronismo na camada fı́sica que é um dos requerimentos necessários para a recuperação com sucesso da informação transmitida. Basicamente existem dois tipos de sincronismo, e chamado data-aided e o non data-aided. O primeiro significa que sinal de sincronismo é transmitido junto com a informação para que o receptor possa recuperar a temporização e a informação transmitida, no segundo não é transmitido sinal auxiliar, somente a informação, de onde o receptor recupera a temporização e os dados transmitidos. Para o caso do DMT, várias formas de sincronismo podem ser utilizadas. No caso de um sincronismo non data-aided, é possı́vel utilizar a informação redundante contida nos prefixos cı́clicos para realizar a detecção do sı́mbolo transmitido, para isso o receptor pode realizar um correlação cruzada nos prefixos cı́clicos para detectar. Esse tipo de sincronismo não foi utilizado nesse trabalho, pois apresentou pouca robustez na detecção. Nesse trabalho, é utilizada a sincronização data-aided, ou seja, sinais de sincronismo são transmitidos junto com a informação para auxiliar o receptor. Como nesse trabalho é usada a modulação DMT, alguns dos tons transmitem sinais de sincronismo ao invés de bits, esses tons são chamados de tons pilotos. A Figura 2.5 mostra um exemplo 17 de constelação recebida, onde os pilotos são os pontos com maior amplitude (os pontos afastados). Além de utilizar os tons pilotos, nesse trabalho ainda é utilizado um sı́mbolo DMT especial para realizar a primeira parte do sincronismo, que corresponde ao TDD. A segunda parte do sincronismo utiliza a fase dos tons pilotos no domı́nio da frequência para estimar a diferença de clock entre o transmissor e o receptor, que, então, é usada para gera um vetor que é multiplicado pelo sı́mbolo recebido. As implementações feitas são mostradas no Capı́tulo 3 e resultados das técnicas são mostrados no Capı́tulo 4. Pontos das constelações de 50 símbolos recebidos 30 Quadratura (Q) 20 10 0 −10 −20 −30 −30 −20 −10 0 10 20 30 Fase (I) Figura 2.5: Constelação recebida com os tons pilotos nos pontos mais afastados Capı́tulo 3 Hardware e Software do Protótipo Esse capı́tulo tem como objetivo apresentar o hardware e os algoritmos implementados que correspondem ao processo de sincronismo. Na Seção 3.1 são apresentados em detalhes os componentes da plataforma criada na UFPa para aplicações em RDS que é denominada Software-defined UFPa transceiver (SOUT). São também mostrados os componentes (placas) e a forma de comunicação entre elas. Na Seção 3.2 são apresentados detalhes de uma aplicação desenvolvida para a SOUT chamada modem-prototype, que tem como objetivo implementar o padrão G.fast para comunicação sobre par trançado telefônico. Essa seção tem como foco principal as técnicas de sincronismo, mas também são apresentados detalhes da implementação de outros algoritmos usados no modem-prototype, com o objetivo de mostrar a aplicação como um todo. 3.1 Software-defined UFPa transceiver (SOUT) O hardware utilizado nesse trabalho é composto de três diferentes placas, onde uma placa foi desenvolvida na UFPa, em conjunto com a Ericsson Research em Kista na Suécia, e é chamada de Analog front-end (AFE). As outras duas placas são as chamadas placas de avaliação, placas de desenvolvimento ou ainda módulos de avaliação (EVM Evaluation Module em inglês), esse tipo de placa é produzida por fabricantes de CIs para servir como referência para projetistas que utilizarão os CI e também para mostrar suas funcionalidades. As EVMs são comercializadas por preços muito baixos, quando comparado ao custo de se comprar o CI e os componentes para produzir uma placa contendo aquele CI, dessa forma, elas são muito usadas em projetos, principalmente para prototipagem. As EVMs utilizadas nesse trabalho são uma EVM do DSP TMS320C6670 [21] 18 19 Tabela 3.1: Comparação entre preços da EVM e do CI para o FPGA e DSP. CI (US$) EVM (US$) TMDXEVM6670 270 400 ML605 1600 1800 da Texas Instruments que realiza a maior parte do processamento de sinais, a outra é a ML605 [22] que é uma EVM para o FPGA Virtex 6 da Xilinx, que provê ao DSP uma conexão com o AFE, uma vez que o DSP não pode ser conectado diretamente ao AFE, pois os conversores do AFE utilizam o padrão Low-Voltage differential signaling (LVDS), que não é suportado pelo DSP. Assim, o FPGA foi incluı́do na plataforma para converter de LVDS para pacotes RapidIO e vice-versa. As duas EVMs usadas nesse trabalho são bons exemplos da vantagem de utilizá-las para prototipagem, pois os CIs principais (DSP e FPGA) possuem praticamente o mesmo preço da EVM, que, para o caso da EVM do FPGA, são aproximadamente US$ 1800 e US$ 1600 para a EVM e para o CI, respectivamente. O mesmo acontece com a EVM do DSP, dessa forma, em aplicações onde não há restrições de consumo de energia e tamanho, as EVMs podem ser facilmente usadas. A Tabela 3.1 mostra os preços médio do CI e da EVM para o DSP e para o FPGA, onde TMDXEVM6670 e ML605 são os modelos das EVMs do DSP e do FPGA, respectivamente. Juntos, o AFE e as duas EVMs, formam uma plataforma de desenvolvimento e pesquisa criada na UFPa, que é chamada de SOUT, que foi desenvolvida em colaboração com a Ericsson research, com o objetivo de ser um plataforma de desenvolvimento de protótipos e pesquisa em telecomunicações. Mais especificamente, a SOUT é um rádio definido por software (RDS), pois seus componentes digitais (DSP e FGPA) podem ser programados para realizar várias aplicações em telecomunicações dentro da faixa de frequência que o AFE permite. A SOUT está sendo programada para ser um modem de tecnologia DSL, baseado no seu último padrão que está em desenvolvimento, sendo que sua primeira versão foi finalizada. O padrão ambiciona alcançar taxas maiores que 1 Gbps usando um único par trançado de linha telefônica [3], os resultados mostrados nesse trabalho são frutos das implementações feitas para esse modem. A aplicação para fazer a SOUT ser um modem G.fast consiste em software e firmware correspondendo à aproximadamente 35000 linhas de código para DSP e 25000 linhas de código para FPGA. A Figura 3.1 mostra o diagrama de blocos dos dois modems feitos com duas SOUT comunicando-se através de um cabo de categoria 5, ou CAT5, onde a função dos modems é prover conexão entre duas redes distintas, e na Figura 3.2 20 é mostrado o protótipo montado para testes com um cabo de 50 m usando o modem. As EVMs do DSP e do FPGA usadas na SOUT não podem ser conectadas diretamente devido à incompatibilidades dos conectores em empregados, dessa forma, foi desenvolvida uma pequena placa chamada Breadboard, que faz a simples conversão de conectores para que os pinos de comunicação do DSP e do FPGA possam ser conectados. Na Figura 3.1, a Breadboard é mostrada como o block “BB”. Figura 3.1: Visão geral da SOUT e suas conexões. Figura 3.2: As duas SOUTs da UFPa conectadas por um cabo CAT5 de 50 metros. 3.1.1 AFE O AFE é responsável por prover interface entre as outras duas placas, que são digitais, com o canal analógico, que nesse caso é um cabo de cobre que pode ter de 50 a 250 metros. O AFE possui um conversor AD que é utilizado na recepção e um conversor DA que é utilizado na transmissão, bem como toda a circuitaria analógica necessária 21 (amplificadores, filtros analógicos, hı́brida, e clocks para os conversores) para condicionar o sinal recebido e transmitido. Na Figura 3.3 é mostrado o diagrama de blocos do AFE da SOUT, que possui duas cadeias de componentes: a cadeia de transmissão e a cadeia de recepção. Nessa figura, são mostradas as conexões dos componentes do AFE com o FPGA, onde o FPGA envia e recebe dados dos conversores, controla o gerador de clock de referência do AFE, e envia e monitora sinais para outros componentes não mostrados nesse diagrama (como fontes de alimentação). A cadeia de transmissão é iniciada no DA (DAC5681z [20]), passando por um filtro anti-imagem para eliminar as imagens do sinal digital geradas no processo de conversão, o sinal então é amplificado (OPA2695 [23]) e, por último, o sinal é injetado na linha através da hı́brida. A cadeia de recepção inicia na hı́brida, passa por um amplificador de baixo ruı́do de ganho fixo (THS4509 [24]), um filtro anti-aliasing, um amplificador de ganho programável (PGA870 [25]) e, finalmente, termina no conversor analógico digital (ADS5474 [19]). Figura 3.3: Diagrama de blocos simplificado do AFE. A hı́brida [14] na Figura 3.3 é responsável por atenuar o máximo possı́vel o sinal que é passado da cadeia de transmissão para a de recepção de um mesmo AFE, e fazendo com que o sinal que chega pela linha telefônica seja entregue o mais fielmente possı́vel para a cadeia de recepção. A hı́brida é necessária, pois há um único meio de transmissão, que nesse caso é a linha telefônica, e há dois sinais trafegando por esse meio, assim a hı́brida direciona o sinal para a saı́da adequada e atenua ao máximo possı́vel o sinal na outra saı́da. Ela foi projetada para apresentar à linha telefônica uma impedância de 130 Ω, pois de acordo com as especificações do padrão G.fast, os valores de impedância esperados da linha telefônica devem estar na faixa de 90 a 180 Ω, assim a hı́brida foi projetada para apresentar impedância no centro da faixa de valores esperados, para diminuir a perda por 22 descasamento de impedâncias. O G.fast especifica uma largura de banda de 200 MHz, dessa forma, os conversores devem trabalhar com frequências de amostragem adequadas para tal largura de banda. Na SOUT, devido à limitação do conversor DA, do filtro anti-imagem do AFE e do conversor AD (frequência de amostragem máxima de 400 MHz), a banda útil é de 160 MHz. Essa taxa de amostragem gera um fluxo de dados de 6400 Mbps do FPGA para o AFE (conversor DA) e de 5600 Mbps do AFE para o FPGA (conversor AD), caso os conversores estivessem trabalhando em todo momento. Mas como o FPGA implementa uma arbitragem TDD, enquanto um conversor trabalha o outro fica em espera. Para diminuir os requerimentos de processamento no DSP e também de taxa de dados no RapidIO, o FPGA faz o processamento de classificação de amostras recebidas, de modo a somente enviar ao DSP amostras que contém informação. 3.1.2 DSP A EVM do DSP é composta pelo sistema em um chip (SoC - System-on-chip em inglês) TMS320C6670 da Texas Instruments. Esse SoC possui quatro núcleos de processamento, periféricos e coprocessadores usados para auxiliar os processadores principais em tarefas que exigem alto poder computacional, onde periféricos são componentes dentro do chip que se conectam com o mundo exterior, como periféricos de comunicação serial e Serial peripheral interface (SPI). Os coprocessadores auxiliam os processadores executando rotinas em hardware, no lugar do processador, onde são exemplos os coprocessadores de FFT, e o network coprocessor (NETCP), que acelera o processamento de pacotes recebidos pelo periférico de comunicação ethernet. Um sistema operacional de tempo real (RTOS - Real-time operating system em inglês) é usado em um dos processadores, e é configurado para tratar rotinas de tratamento de interrupção, e tarefas de menor prioridade como submeter e receber comandos e dados dos periféricos e coprocessadores. 3.1.3 FPGA A EVM do FPGA é a ML605 da Xilinx, que possui um CI de FPGA XC6VLX240T. A principal função do FPGA na SOUT é conectar o DSP com os conversores do AFE, entretanto devido a sua capacidade computacional, alguns algoritmos foram passados do DSP para o FPGA. Dessa forma, a divisão de processamento entre o DSP e o FPGA ficou 23 de modo que o DSP faz o processamento no domı́nio da frequência e o FPGA faz o processamento no domı́nio do tempo. O código do FPGA é composto de código desenvolvido exclusivamente para a SOUT e de propriedades intelectuais (IP - Intellectual property em inglês) da Xilinx, que são distribuı́das junto com as ferramentas de desenvolvimento para os FPGAs. Os códigos para FPGA desenvolvidos na UFPa realizam duplexação no domı́nio do tempo (TDD - Time-domain duplex, em inglês), que será explicado mais detalhadamente na Seção 3.2.1, e sincronização de sı́mbolos, que é o tema deste trabalho. Os IPs da Xilinx usados, correspondem a memórias internas ao CI FPGA e o IP de RapidIO [26] que é usado na comunicação entre DSP e FPGA. Outro IP da Xilinx utilizado é o Microblaze [27], que é uma implementação de um processador RISC (Reduced instruction set computing) dentro do FPGA, e é programado para prover ao usuário da aplicação do protótipo do modem uma interface de comando para que as configurações do FPGA e do AFE sejam feitas. Além do mais, a EVM do FPGA ainda possui vários periféricos que são externos ao FPGA, dentre os quais, são usados nesse trabalho a memória DDR3 SODIMM, o conetor FMC HPC, o conector PCIe 8x, a porta USB JTAG e a porta USB UART. Dentre os periféricos da ML605 usados, o conector FMC HPC é usado para conectar a ML605 ao AFE, e o conector PCIe é usado para conectar a ML605 ao DSP. 3.1.4 Conexão fı́sica e lógica entre as placas A SOUT foi desenvolvida para ser uma plataforma de RDS e a aplicação modem- prototype é uma implementação de um modem G.fast construı́da sobre a SOUT. Dessa forma, a principal função da aplicação modem-prototype é prover uma conexão entre duas redes distintas, como mostrado na Figura 3.1, em outras palavras a SOUT recebe pacotes IP através da interface ethernet do DSP, e este é processado na cadeia composta pela SOUT e transmitido através de um cabo telefônico para outra SOUT, que faz o processamento contrário para recuperar a informação transmitida e repassá-la para a outra rede. Ainda na Figura 3.1 é possı́vel perceber que o AFE conecta-se ao FPGA, e este ao DSP. O AFE foi projetado de forma a conectar-se ao FPGA, que recebe amostras dos conversores, e controla os componentes do AFE através de sinais de controle e duas interfaces SPI. A conexão entre o DSP e o FPGA é feita utilizando o protocolo RapidIO [28] [26], que é capaz de atingir taxas de até 20 Gbps, suficiente para o transporte de controle do 24 DSP para o FPGA e vice-versa, e principalmente as amostras dos conversores. Do ponto de vista lógico o FPGA age como um conversor de protocolos, ou um conversor de padrões de tensão. O protocolo escolhido para a interface entre o FPGA e DSP foi o RapidIO, pois é o protocolo suportado por ambos que possui a maior taxas de dados. Dessa forma, na cadeia de recepção, as amostras recebidas do AD são encapsuladas em um pacote RapidIO e enviadas ao DSP. Enquanto que na cadeia de transmissão as amostras são geradas pelo DSP a partir de pacotes IP que chegam pela interface de rede, então as amostras geradas são encapsuladas em pacotes RapidIO, e enviadas ao FPGA, que as envia ao DA. Para gerar as amostras a partir de pacotes IP, o DSP usa a técnica DMT, que é discutida em mais detalhes nas seções seguintes. Figura 3.4: Visão geral das conversões de dados. 3.2 A aplicação modem-prototype Esta seção trata mais detalhes sobre os códigos desenvolvidos para programar o DSP e o FPGA. Entretanto, como se trata de uma implementação completa de um modem, há muitos algoritmos usados para que o modem seja robusto às dificuldades imposta pelo canal, como codificação de canal e bitloading para o DMT. Dessa forma, esta seção detalha os blocos que compõem a implementação do modem, mas para que seja mantido o foco do trabalho, somente os algoritmos que estão diretamente relacionados à parte de sincronismo serão detalhados a fundo nas próximas seções. A aplicação modem-prototype é composta de duas cadeias, a cadeia de transmissão e a cadeia de recepção, e isso implica que a mesma divisão do AFE é também feita no software e firmware do DSP e FPGA. As próximas seções dão uma descrição detalhada das duas cadeias, sem dividir o que está no DSP e no FPGA. 25 3.2.1 Implementação da duplexação no domı́nio do tempo (TDD) Antes de falar sobre as cadeias com compõem a aplicação, é importante enten- der como é feita a duplexação entre dois modems, pois do ponto do vista do código que programa o DSP e o FPGA, as duas cadeias são separadas, e a arbitragem TDD implementada no FPGA é onde as cadeias se unificam, pois é o código TDD que gerencia quando cada cadeia está ativa ou não. O padrão G.fast define TDD como o modo de duplexação entre dois modems, dessa forma, a implementação do modem-prototype também implementa esse mesmo tipo de duplexação, entretanto, devido à limitações no AFE e no FPGA não foi possı́vel seguir completamente as recomendações do G.fast. Os impedimentos em seguir o G.fast são limitações fı́sicas, como por exemplo, o AFE não possui mecanismo de sincronizar os clocks dos dois modems, assim não foi possı́vel implementar a duplexação exata descrita. Assim, foi feita uma implementação de TDD o mais próxima possı́vel da recomendação. Na recomendação é definido o chamado quadro TDD, que é composto pelos slots de upstream e downstream. No slot de upstream o modem que faz o papel do equipamento do usuário (CPE - customer premise equipment) transmite um conjunto de sı́mbolos para o DSLAM (DSL access multiplexer ), depois o CPE deve esperar que o DSLAM transmita na oportunidade de downstream. A Figura 3.5 mostra a organização do quadro TDD descrita. Na Figura 3.5 os slots de downstream e upstream possuem o tamanho de 6.5 sı́mbolos no domı́nio do tempo com CP. Onde, 4 sı́mbolos podem transportar informação (INFO), 1 é usado para sincronização (SINC), 1 é usado para estimação de canal (ESTIM), 0.5 sı́mbolo é usado como tempo de guarda entre os dois slots e caso não haja sı́mbolos para transmitir até 5 sı́mbolos podem ser usados como IDLE. Os sı́mbolos IDLE são necessários, pois, para que a implementação TDD mantenha o sincronismo, todos os sı́mbolos do slot devem estar presentes, o sı́mbolo IDLE será detectado e descartado pelo FPGA. Toda a arbitragem do TDD e organização dos sı́mbolos nos quadros são feitas no FPGA. Assim, na cadeia de transmissão, o FPGA recebe sı́mbolos do DSP, que ficam armazenados no FPGA até a oportunidade de transmissão. Antes de transmitir os sı́mbolos INFO, o FPGA transmite um sı́mbolo SINC para sinalizar o inı́cio da transmissão, que ativará o receptor do outro modem. O segundo sı́mbolo enviado é o ESTIM, que é usado no DSP para fazer a estimação do canal e corrigir os sı́mbolos INFO na recepção. Os 26 Figura 3.5: Um slot TDD usado na SOUT. sı́mbolos de números 3, 4, 5 e 6 podem ser INFO ou IDLE, sendo que o segundo só é transmitido caso não haja sı́mbolos INFO, com o objetivo de manter o sincronismo. No receptor, o IDLE será detectado e descartado. Se não houver nenhum sı́mbolo INFO para transmitir, então somente sı́mbolos IDLE são transmitidos, quando isso acontece o slot fica composto de um SINC seguido de cinco IDLEs, e o receptor descartará todos os sı́mbolos daquele slot. Após transmitir o quadro, o modem entra no estado de detecção, onde ele espera pelo sı́mbolo SINC do outro modem. Após SINC ser detectado, o modem verifica se o sı́mbolo atual é IDLE, que é descartado, caso contrário o sı́mbolo é salvo e enviado ao DSP. Os sı́mbolos IDLE e SINC são o mesmo sı́mbolo, sendo diferenciados pela posição em que ocorrem no quadro, se ocorrer na primeira posição é chamado de SINC, senão, é chamado de IDLE. Usar o mesmo sı́mbolo permite usar o mesmo detector para detectar os dois sı́mbolos, assim simplifica a implementação do receptor. Os detectores são descritos em detalhes na Seção 3.2.5.1 e na Seção 3.2.5.2 3.2.2 Comunicação com os conversores Na SOUT os conversores presentes no AFE operam em altas velocidades, ou, mais especificamente, 400 MHz. Assim, para simplificar a interface com esses conversores, eles foram projetados para operar usando a técnica Double data rate (DDR) [19] [20]. Normalmente os sistemas digitais operam sı́ncronos com borda de subida ou a borda de descida do sinal de clock, nos sistemas que usam DDR, os dados são transferidos em ambas as bordas. Assim, usando DDR, é possı́vel diminuir pela metade a frequência de operação do clock, e isso simplifica e a parte do projeto da placa de circuito impresso (PCI), pois as frequências são diminuı́das pela metade. Dessa forma, os conversores do AFE, que operam a 400 MHz, transferem dados nas duas bordas de um sinal de clock de 200 MHz. A Figura 3.6, mostra a transferência de dados usando DDR, onde o sinal DCLK é o clock e D é o barramento de dados sendo transferido nas duas bordas de DCLK. 27 Figura 3.6: Transferência de dados usando DDR. O sinal DCLK(P/N) é o clock o sinal D[15:0](P/N) é o barramento de dados sendo transferido nas duas bordas de DCLK. Figura retirada do manual do DAC5681z. O FPGA, como a maioria dos sistema digitais, trabalha em Single data rate (SDR), que é a técnica complementar à DDR, onde o dispositivo opera somente em uma borda do sinal de clock. Entretanto, o FPGA possui circuitos especiais dedicados para interfacear com dispositivos DDR [29], onde os dados transmitidos em DDR são lidos por esses circuitos e entregue à lógica interna do FPGA de forma que os dados da subida e da descida do clock são entregues juntos, em um único barramento com o dobro do tamanho original. Assim, a aplicação modem-prototype deve trabalhar com duas amostras por vez para interfacear com os conversores, logo o FPGA deve operar (na parte de interface com os conversores) a 200 MHz. Mas para diminuir a frequência de clock interna do FPGA, um esquema é usado para que o FPGA converta para um barramento de 4 amostras, e assim consiga usar 100 MHz de frequência interna, isso faz com que diminua os requerimentos do FPGA e facilita a implementação. A Figura 3.7 mostra esse esquema, onde ODDR e IDDR são os circuitos especiais do FPGA que fazem a interface com os dispositivos DDR. Na recepção, a saı́da do IDDR é injetada na entrada de dois registradores em cadeia operando no clock de 200 MHz, a saı́da desses dois registradores é paralelizada e injetada em um registrador com o dobro do tamanho operando no clock de 100 MHz, que então repassa à lógica do interna do FPGA. Na transmissão, as quatro amostras vindas da lógica do FPGA são divididas em dois barramentos contendo duas amostras cada, e o clock de 200 MHz é usado para chavear entre os dois barramentos. Um registrador de duas amostras é usado para sincronização, então o circuito do FPGA ODDR gera o sinal DDR e envia ao DA. É importante explicitar que diminuir o clock para 100 MHz e trabalhar com quatro amostras, foi uma decisão de projeto da aplicação modem-prototype, assim o esquema apresentado na Figura 3.7 é especı́fico dessa aplicação, e é explicado para melhor entendimento dos algoritmos que são executados pelo FPGA. Outras aplicações que usem a SOUT não precisam fazer essa conversão, entretanto, toda aplicação usando a SOUT deve usar o ODDR e IDDR para interfacear com os conversores. Os circuitos ODDR e 28 Figura 3.7: Esquema usado no FPGA para fazer a conversão de 200 para 100 MHz. IDDR são especı́ficos dos FPGAs da famı́lia Virtex da Xilinx, logo, para FPGAs de outras famı́lias ou famı́lias mais avançadas esses nomes podem mudar. 3.2.3 Cadeia de transmissão A Figura 3.8 mostra a sequência de algoritmos aplicados aos pacotes recebidos da rede IP para que estes gerem sı́mbolos DMT que serão transmitidos pela linha. Os próximos parágrafos descrevem com mais detalhes as funções dos blocos da Figura 3.8. Figura 3.8: Ilustração em diagrama de blocos da cadeia de transmissão. Descrição dos blocos da cadeia de transmissão: • Codificador Reed-Solomon (RS) [30]: este bloco adiciona bytes de paridade à informação para permiter a detecção e correção de erros no receptor. A implementação atual adiciona 16 bytes de paridade e agrupa os pacotes IP em palavrascódigo com tamanhos de 170 a 255 bytes, dependendo do número de bytes que um sı́mbolo DMT pode carregar. 29 • Slicer de quadros: o padrão G.fast define um Data frame como um conjunto de Data transfer units (DTU) que serão modulados em um sı́mbolo DMT. O Slicer de quadros é capaz de retirar os bytes de um Data frame para gerar o sı́mbolo QAM que é transmitido em cada tom. • Mapeamento: esse bloco vai gerar os sı́mbolos QAM a partir dos bits gerados pelo Slicer de quadros. • IFFT: até este ponto o sı́mbolo DMT é tratado no domı́nio da frequência, este bloco realiza o algoritmo IFFT, para converter os sı́mbolos DMT para o domı́nio do tempo. Neste ponto os sı́mbolos DMT são enviados para o FPGA. • Adição de prefixo cı́clico: o CP é adicionado ao sı́mbolo DMT para deixá-lo mais robusto à interferência intersı́mbolica, e como isso é feito simplesmente repetindo as amostras do final do sı́mbolo no inı́cio, essa operação é feita no FPGA para evitar o uso da interface RapidIO entre o DSP e o FPGA para transmitir informação redundante. Dessa forma, ao receber um sı́mbolo do DPS, o FPGA o direciona para o DA, mas primeiro as amostras do final do sı́mbolo são transmitidas e então o sı́mbolo. 3.2.4 Cadeia de recepção Neste trabalho o foco é dado à cadeia de recepção, pois é onde os algoritmos de sincronismo são aplicados para que, em conjunto com outros algoritmos como equalização de canal, o sı́mbolo recebido esteja o mais próximo possı́vel do sı́mbolo transmitido. Esta seção mostra e explica o diagrama de blocos da cadeia de recepção, entretanto, os algoritmos de sincronismo são tratados com mais detalhes na Seção 3.2.1, na Seção 3.2.5.1 e na Seção 3.2.5.2. A Figura 3.8 mostra os algoritmos que compõem a cadeia de recepção na sequência em que eles são aplicados ao sinal recebido, onde o primeiro é o Slot detection e continua da direita para a esquerda. É importante notar que os blocos RS, Deslicer de quadros, Desmapeamento, IFFT e Remoção de prefixo cı́clico fazem exatamente a operação contraria dos blocos com nomes similares na Figura 3.8, dessa forma não serão explicados aqui. Os blocos restantes são tratados em mais detalhes nos próximos parágrafos, e os que realizam os algoritmos que são focos desse trabalho, são descritos na Seção 3.2.1, na Seção 3.2.5.1 e na Seção 3.2.5.2 com nı́vel de detalhes aprofundado. 30 • Detecção de slot: esse bloco encontra-se no FPGA, e é responsável por detectar o sı́mbolo SINC, uma vez que este é detectado, esse bloco procura por sı́mbolos IDLE usando o mesmo detector. Caso o sı́mbolo que acabou de chegar não seja detectado como IDLE, este sı́mbolo é salvo na memória do FPGA e, posteriormente, enviado ao DSP. Este bloco é em parte da responsável pela implementação do TDD, e ele corresponde ao tempo do TDD em que o modem recebe dados da linha. Um exemplo, em um modem que faz papel de CPE, a Detecção de slot está esperando pela oportunidade de transmissão de downstream. • FEQ: é o bloco responsável pela equalização dos sı́mbolos recebidos, essa operação é chamada de equalização [14] [16] em frequência (FEQ - frequency equalization em inglês), cada slot recebido que contém pelo menos um sı́mbolo INFO também possui um sı́mbolo de estimação de canal (ESTIM), ou seja, de um slot no mı́nimo são repassados ao DSP dois sı́mbolos. O sı́mbolo ESTIM é usado pelo DSP para atualizar a estimação do canal para que o sı́mbolos INFO recebidos possam ser corrigidos. • RSR est: faz a estimação de RSR na chamada fase de treinamento do modem, nessa fase nenhuma informação é transmitida, somente sı́mbolos ESTIM, e é feita a estimação de RSR que seja feito o cálculo de bitloading dos tons. 3.2.5 Detectores Como descrito na Seção 3.2.1, o FPGA é responsável pela detecção de sı́mbolos que chegam pela linha. Esta seção provê mais detalhes sobre o processamento de sinal realizado para fazer a detecção. Os detectores usados na SOUT são o Schmidl & Cox (S&C) e o xCorr, e foram adaptados para trabalhar com quatro amostras por ciclo de clock, devido aos requerimentos do FPGA descritos na Seção 3.2.2. Quando comparadas as implementações dos dois detectores no FPGA, é possı́vel perceber que o detector S&C usa menos recursos do FPGA que o xCorr, assim ele é mais facilmente incorporado no FPGA com o restante do código. Mas em relação à detecção de sinais o xCorr é bem mais robusto e consegue detectar sinais numa faixa de potência muito maior, sem falsos positivos ou negativos. Mais detalhes são dados nas próximas seções. 31 3.2.5.1 Detector Schmidl & Cox Este detector, publicado pela primeira vez em [9], é baseado em uma correlação cruzada modificada, onde o algoritmo consegue detectar um sı́mbolo DMT com tamanho especı́fico, que nesse caso é o tamanho do sı́mbolo DMT usado no modem-prototype, sendo que esse sı́mbolo deve ser composto de duas metades iguais no domı́nio do tempo. A geração desse sı́mbolo pode ser feita simplesmente gerando uma sequência aleatória com metade do tamanho do sı́mbolo DMT e transmitindo duas vezes essa sequência no lugar de um sı́mbolo DMT (como explicado na Seção 3.2.1). Também é possı́vel gerar esse sı́mbolo de uma maneira mais formal, usando a cadeia DMT onde o sı́mbolo é criado usando somente os tons pares ou ı́mpares do sı́mbolo DMT. Caso sejam usados os tons pares, o sı́mbolo é gerado no domı́nio do tempo com duas metades exatamente iguais, e no caso de se usar os tons ı́mpares, o sı́mbolo é gerado com duas metades iguais mas com sinais opostos. Do ponto de vista do detector, as duas formas de gerar são equivalente, pois o algoritmo eleva ao quadrado o sinal de entrada. As Equações (3.1) e (3.2), obtidas a partir da equação da transformada discreta inversa de Fourier, mostram como gerar sı́mbolos no domı́nio do tempo simétricos e anti-simétricos, respectivamente, onde Xk pode ser qualquer número complexo mas é possı́vel utilizar o modulador QAM para gerar-los de forma a reaproveitar a estrutura de modulação já existente [9]. N/2−1 1 X Xk ej2π(2k)n/N xn = N k=0 (3.1) N/2 1 X xn = Xk ej2π(2k−1)n/N N k=1 (3.2) O detector S&C consegue detectar o sinal aplicando uma sequência de operações no sinal recebido, para então obter uma métrica de temporização. Quando a métrica de temporização atinge ou passa de um limiar, o detector acusa a detecção. As Equações (3.3) e (3.4), retiradas de [9], mostram a sequência de operações realizadas no sinal de entrada r, para então obter a métrica de temporização descrita pela Equação (3.5). As Equações (3.3), (3.4) e (3.5) foram ligeiramente modificadas de sua versão original, pois em [9] elas são descritas para sı́mbolos OFDM que podem ser complexos no domı́nio do tempo, e nesse trabalho os sı́mbolos são DMT, que sempre são reais no domı́nio do tempo. Nas Equações (3.3), (3.4) e (3.5) a variável L é igual a metade do tamanho do sı́mbolo DMT, e os ı́ndices d, d+L e d+2L, representam a amostra que sai do detector, a amostrada 32 do meio do sı́mbolo e a amostra que entra no detector. Assim, as equações comparam a primeira metade do sı́mbolo com a segunda metade através da divisão da Equação (3.5), e quando o detector estiver processando o sı́mbolo definido nas Equações (3.1) e (3.2), P e R serão iguais, logo, o valor de M será igual a 1. P (d + 1) = P (d) + (rd+L rd+2L ) − (rd rd+L ) (3.3) 2 2 − rd+L R(d + 1) = R(d) + rd+2L (3.4) M (d) = P 2 (d) R2 (d) (3.5) A Figura 3.9 mostra curvas tı́picas da métrica de temporização quando o S&C é usado, nessa figura o sı́mbolo processado além de ter as duas metades iguais no domı́nio do tempo, ainda possui seu final repetido no inı́cio a criação prefixo cı́clico, e isso cria o platô mostrado na figura em torno da abscissa zero. Isso significa que as Equações (3.3) e (3.4) estão processando o prefixo cı́clico do sı́mbolo. Outra interpretação para o platô, ou para o valor máximo de M (d), é referente à RSR do sinal, pois esse valor máximo pode ser usado para encontrar o nı́vel de ruı́do que o sı́mbolo sofreu até chegar no receptor. Dessa forma, também foi definido em [9] uma forma de calcular a RSR a partir desse valor máximo, que também pode ser usada para definir o limiar para acusar a detecção do sı́mbolo. É importante destacar que, uma vez que ruı́do é adicionado ao sinal, o valor máximo de M (d) passa a sofrer variação. Um valor máximo tı́pico de M (d) é 0.8 quando a RSR é 10 dB. No modem-prototype, como foi explicado na Seção 3.2.2, o FPGA deve trabalhar com quatro amostras por ciclo de clock, logo as Equações (3.3) e (3.4) foram modificados para atualizar os valores de P e R com quatro amostras por vez. Dessa forma, a restrição de trabalhar com quatro amostras resultou nas Equações (3.3) e (3.4) ficando modificados, onde os termos +(rd+L rd+2L ) e −(rd rd+L ) foram atualizados para incluir as quatro amostras. Outras modificação feita na implementação do FPGA ao algoritmo original, foi eliminar os quadrados na obtenção de M (d) na Equação (3.5), essa decisão foi feita para economizar recursos do FPGA, assim, a Equação (3.6) que resulta da modificação, somente utiliza módulos ao invés de multiplicações. Essa modificação altera o cálculo de M (d), logo não é mais possı́vel usar o método descrito em [9] para estimar a RSR através do valor máximo dessa função. Dessa forma, no modem-prototype o limiar foi definido através de simulações. 33 RSR infinita RSR=10dB 1 M(d) 0.8 0.6 0.4 0.2 0 −1.5 −1 −0.5 0 0.5 1 1.5 Símbolo Figura 3.9: Exemplo da métrica de temporização para o S&C quando a RSR é infinita. M (d) = |P (d)| |R(d)| (3.6) A Figura 3.10 mostra a implementação do algoritmo no FPGA, onde toda a estrutura é quadruplicada devido à restrição de ter que processar quatro amostras. Além dos blocos incluı́dos na figura, ainda há outro que não aparece na mesma, que faz a comparação do valor de M (d) com o limiar e acusa a detecção. A memória mostrada na Figura 3.10 armazena exatamente um sı́mbolo DMT, e os endereços END D e END DL possuem diferença de 2048 (metade do tamanho do sı́mbolo DMT usado no modem-prototype), dessa forma é possı́vel, junto com o registrador, armazenar as amostras e usá-las de acordo com as Equações (3.3) e (3.4). Figura 3.10: Implementação do detector S&C no FPGA. 34 3.2.5.2 Detector xCorr Este detector foi projetado como uma alternativa ao S&C, principalmente devido à alguns problemas apresentados por ele. No xCorr a correlação cruzada é implementada diretamente, entretanto, o valor máximo da correlação também varia de acordo com a energia do sinal recebido. Assim, a correlação é normalizada de forma que o resultado da correlação fica entre 0 e 1. O fato de usar correlação cruzada e o limiar ser sempre próximo de um (e não variar), faz com que o xCorr apresente desempenho muito melhor do que o S&C, mesmo para sinais atenuados e distorcidos pelo ruı́do, e também não há necessidade de definir limiar. Entretanto, o xCorr usa muito mais recursos do FPGA, como explicado no Capı́tulo 4. O xCorr, diferentemente do S&C, precisa de um sinal de referência, ou seja, o receptor precisa armazenar o sinal transmitido para comparação. A Equação (3.7) mostra as operações realizadas para obter a métrica de temporização M no algoritmo xCorr, onde x(i) é o sinal recebido e ref (i) é o sinal de referência que fica salvo no receptor. O numerador da Equação (3.7) corresponde ao cálculo de uma correlação cruzada, que é elevada ao quadrado. O denominador corresponde ao cálculo das energias dos sinais x(i) e ref (i) [31]. 2 x(i)ref (i) M = PN PN 2 2 i=1 ref (i) i=1 x (i) P N i=1 (3.7) Como o sinal ref (i) é um sinal conhecido, é possı́vel pré-calcular sua energia e a Equação (3.7) pode ser simplificada resultando na Equação (3.8), que foi implementada no FPGA. Na Equação (3.8), o operador >> corresponde a um deslocamento de bits para a direita, onde o numero que aparece a direita desse operador indica o número de bits que devem ser deslocados. A simplificação consiste em gerar o sinal ref (i), que é salvo P 2 32 no transmissor e no receptor, de modo que N i=1 ref (i) = 2 . P M= N i=1 2 x(i)ref (i) >> 32 PN 2 i=1 x (i) (3.8) Como a correlação cruzada é uma operação custosa tanto em hardware quanto em software, no modem-prototype, ao invés do xCorr ser aplicado em um sı́mbolo DMT inteiro, somente uma sequência de 64 amostras é usada. Essa sequência é suficiente para gerar uma boa diferença entre o pico da correlação e o ruı́do, e foi obtida através de simulações feitas com o algoritmo antes de ser implementada no FPGA. Assim, o sı́mbolo 35 transmitido consiste em uma sequência de 64 amostras seguida de zeros para completar o sı́mbolo DMT. O xCorr também precisa trabalhar com quatro amostras por vez, devido ao que foi descrito na Seção 3.2.2, assim 4 implementações de xCorr de 64 amostras foram incorporadas no FPGA. A Figura 3.11, mostra a implementação do xCorr no FPGA. Na Figura 3.11 há uma bloco chamado delay, que é necessário, pois o cálculo da energia do sinal é feito em menos ciclos de clock do que o cálculo da correlação cruzada, assim eles precisam ser alinhados para que a divisão produza resultados corretos. Figura 3.11: Implementação do detector xCorr no FPGA. Como foi explicado na Seção 3.2.2 a interface com o AD entrega à lógica do FPGA um bloco de quatro amostras por ciclo de clock, que serão processadas pelos detectores, e cada amostra vai para um xCorr. Um problema que ocorreu durante o projeto do xCorr, foi que a primeira amostra da sequência ref (i) pode estar em qualquer uma das quatro posições do bloco, assim, se a primeira amostra não for direcionada para algum xCorr o detector falhará. Para solucionar esse problema, os quatro xCorrs são implementados no FPGA para detectar o mesmo sinal ref (i), sendo que esse sinal é composto das amostras múltiplas de quatro de um sinal de tamanho igual a 256. A Figura 3.12 mostra o sinal transmitido e quais amostras dele são usadas para compor o sinal ref (i). Como o FPGA faz a conversão para trabalhar com quatro amostras por vez, a amostra A1 do sinal da Figura 3.12 pode ser colocada em qualquer uma das quatro posições do grupo de quatro amostras, como mostrado da Figura 3.13, onde é mostrado um exemplo que as amostras do sinal ref (i) estão sempre na segunda posição do grupo. Assim, como há no FPGA quatro implementações do xCorr, cada uma recebe uma posição do grupo de amostras, e, dessa forma, quando todas as amostras do sinal ref (i) passarem 36 Figura 3.12: Sinal SINC transmitido para o detector xCorr. pelo detector, somente um xCorr irá acusar a detecção. Uma vez que um xCorr detecta, é possı́vel encontrar a primeira amostra do sı́mbolo DMT a partir de qual detector fez a detecção. Figura 3.13: Sinal SINC recebido pela interface dos conversores com o FPGA. A Figura 3.14 ilustra como as amostras recebidas dos conversores são repassadas aos xCorrs. Nesse exemplo, as amostras do sinal ref (i) estão sempre na segunda posição do grupo de quatro amostras, dessa forma, o único detector que irá detectar o sinal é o segundo. A Figura 3.15 mostra um conjunto de curvas tı́pico que é entregue pelos xCorrs, para o caso da Figura 3.13. Figura 3.14: Ilustração de como as amostras do sinal recebido são repassadas aos xCorrs. Nesse exemplo, as amostras do sinal ref (i) sempre estão na segunda posição do grupo de quatro amostras. 37 xCorr 1 xCorr 2 xCorr 3 xCorr 4 1 0.8 0.6 0.4 0.2 0 −0.2 −30 −20 −10 0 10 20 30 Figura 3.15: Exemplo de resultados dos xCorrs quando o sinal ref (i) está na segunda posição do grupo. 3.2.6 Correção de diferenças de clock Um problema pertinente em qualquer sistema de comunicação é a questão da di- ferença dos clocks do transmissor e do receptor, conhecido como Clock frequency offset (CFO), que basicamente é causado pela diferença dos clocks do transmissor e do receptor, assim, esquemas de modulação que utilizam temporização precisa (e.g. QAM) podem ter seu desempenho diminuı́do, ou mesmo a recuperação do sinal impossibilitada. Temporização apropriada é um fator chave para a demodulação com sucesso do sı́mbolo recebido, para o caso de um esquema de modulação coerente. Na aplicação modem-prototype é usada a modulação DMT, sendo que seu processo de demodulação é coerente, o que significa que a portadora do sinal transmitido precisa ser recuperada tanto em frequência quanto em fase. A modulação DMT é normalmente transmitida em banda base, o que significa que não há necessidade de recuperação ou sincronização da portadora, somente sendo necessária a recuperação do clock de amostragem. No modem-prototype o sincronismo é feito em duas etapas, a primeira corresponde à detecção dos sı́mbolos, descrita na Seção 3.2.5, onde os sı́mbolos contendo informação são salvos e enviados ao DSP. A segunda etapa corresponde a estimar a diferença dos clocks a partir de tons piloto no próprio sı́mbolo recebido, e essa estimação é usada para corrigir os sı́mbolos recebidos. Mesmo sem a necessidade de manter o sincronismo das portadoras, manter o clocks de amostragem do transmissor e do receptor não é uma tarefa simples. Os osciladores 38 que geram os clocks de amostragem são configurados para os mesmo valores nominais1 , entretanto, devido às imperfeições nos circuitos, componentes e variações no processo de fabricação e da temperatura os clocks são ligeiramente diferentes. A precisão dos osciladores são especificados em parte por milhão (ppm), mas mesmo quando os dispositivos são muito precisos ainda há necessidade se manter, através de processamento, os dispositivos alinhados. A Figura 3.16 mostra que, devido a pequena diferença nas frequências dos clocks, a diferença de fase deles é incrementada periodicamente, e essa fase variável é prejudicial à demodulação dos sı́mbolos. No modem-prototype a correção é feita toda em domı́nio digital, e é iniciada no processo de detecção. No processo de detecção o sı́mbolo é amostrado e somente os sı́mbolos contendo informação são salvos, acontece que os dois detectores usados nesse trabalho erram, ou seja, em cada ocorrência de um novo slot os sı́mbolos possuem um número diferentes de amostras do prefixo cı́clico, mais detalhes sobre o desempenho dos detectores são dados no Capı́tulo 4 e na próxima seção. Figura 3.16: Exemplo onde além da diferença de fase, os clocks possuem frequências diferentes. Assim, os ∆ sempre mudam. 3.2.6.1 Definição de cursor No modem-prototype são usados detectores para receber os sı́mbolos transmitidos, onde os sı́mbolos possuem CP, que tem como principal objetivo aumentar a robustez do sı́mbolo às distorções causadas pelo canal [14]. A Figura 3.17 mostra o sı́mbolo DMT composto de N = 4096 amostras e o CP, que corresponde à repetição de algumas amostras do final do sı́mbolo no seu inı́cio, no modem-prototype o tamanho do prefixo cı́clico é de 128 amostras. O CP torna o sı́mbolo robusto às distorções do canal, pois ele é adicionado na parte do sı́mbolo que sofre mais distorção causada por interferência intersimbólica, dessa forma, ele é distorcido no lugar do sı́mbolo. Para que o CP surta efeito, ele precisa 1 E normalmente usam o mesmo modelo de dispositivo. 39 ter pelo menos a mesma duração da dispersão do canal, e esse valor pode ser obtido a partir da estimação do canal, no modem-prototype esse valor é fixo e grande o suficiente para os canais usados (cabos de 50 m e 100 m). Figura 3.17: Definição de cursor n0 e ilustração de como ele acontece. Os detectores podem errar, e é esperado que todo slot possua um número diferente de amostras do CP em relação ao anterior, ou seja, como há variação, no modem-prototype é assumido o pior caso. O número de amostras do CP é chamado de cursor do sı́mbolo ou n0 , e como o processamento do DMT considera que os sı́mbolos são periódicos é como se fosse salvo parte de um perı́odo anterior e parte do perı́odo atual do sı́mbolo DMT. No modem-prototype convencionou-se que um n0 positivo e menor que o tamanho do CP corresponde salvar o sı́mbolo e parte do seu CP, isso não distorce o sı́mbolo, somente rotaciona a constelação. Enquanto que n0 negativo corresponde a salvar o sı́mbolo e parte do CP do próximo sı́mbolo, quando isso acontece os sı́mbolos salvos são distorcidos e podem ficar irrecuperáveis. A recuperação de um sı́mbolo DMT que sofre n0 negativo não é simples, mas é possı́vel com algumas técnicas como [32]. Como se sabe que os detectores erram, no FPGA o n0 é forçado a ser ligeiramente maior que a média desses erros, dessa forma, é garantido que o sı́mbolo sempre será salvo com seu próprio CP e não o do próximo sı́mbolo. No detector S&C isso é feito aumentando ou diminuindo o limiar, enquanto que no xCorr uma cadeia de atraso é colocada na sua saı́da. Quando n0 > 0, o sı́mbolo QAM no tom k do sı́mbolo DMT (de N pontos) são rotacionados por uma fase definida por −∆θ[k], onde ∆θ[k] = 2πn0 k = βk N (3.9) com β= como discutido em [8] [11]. 2πn0 N (3.10) 40 Entretanto, devido ao CFO, o n0 não é um número inteiro, ele possui também uma parte fracionária que é incrementada a cada ciclo de clock. Diferentemente da parte inteira, que é a mesma para um slot inteiro a parte fracionária é incrementada. Para simplificar no modem-prototype é assumido que cada sı́mbolo do slot possui um n0 fixo, e o próximo sı́mbolo possui um n0 incrementado pelo total da fase acumulada do sı́mbolo anterior inteiro. A Figura 3.18 mostra o incremento tı́pico que acontece em um sı́mbolo em relação ao sı́mbolo anterior, onde a parte inteira é o número de amostras do CP e a parte fracionária corresponde ao CFO. É possı́vel ainda perceber que há um incremento médio de 5% de amostra de um sı́mbolo para outro. 20.72 n0 20.7 20.68 20.66 n0 20.64 20.62 20.6 20.58 20.56 20.54 0 5 10 15 20 Símbolo DMT 25 30 Figura 3.18: Estimação de n0 para vários sı́mbolos DMT recebidos em sequência. 3.2.6.2 Arquitetura para sincronização e equalização. O modem-prototype tem duas fases que são mostradas nas Figuras 3.19 e 3.20, denominadas fases de treinamento e de showtime. Na fase de treinamento somente sı́mbolos ESTIM são transmitido e o receptor os usa para fazer a estimação mais precisa possı́vel do canal, fazendo a média de várias realizações sı́mbolos ESTIM de diferentes slots. A fase de treinamento consiste em processar o sı́mbolo ESTIM recebido de modo que seja feita a estimação de canal para aquela realização do ESTIM através da operação SF EQ1 = T X/RX. O mesmo sı́mbolo também é processado para que a informação 41 da fase do sı́mbolo seja estimada (F EQ2 da Figura 3.20), dessa forma, com essas duas informações é possı́vel gerar o vetor F EQ1, que corresponde a um vetor para correção de sı́mbolos não rotacionados (i.e. com n0 = 0) não rotacionado, e este, então, é incluı́do na média histórica de todas as realizações de F EQ1. Na fase de showtime a sincronização e equalização são feitas na seguinte ordem. • Detecção de slot: como é explicado em outras seções, são usados algoritmos baseados em correlação cruzada para estimar o inı́cio dos slots, e então salvar os sı́mbolos INFO. Nas Figuras 3.19 e 3.20 é mostrado como Recebe 1 sı́mbolo DMT. • Equalização: é usada para mitigar os efeitos do canal e também do cursor • Estimação e correção de cursor. Figura 3.19: Fases de treinamento do modem-prototype. Na fase de showtime caso o sı́mbolo sendo processado seja o ESTIM, então ele é usado para atualizar a estimação de F EQ1 feita na fase de treinamento. Essa atualização não altera a estimação feita durante a fase de treinamento, somente a atualiza para aquele slot. O sı́mbolo ESTIM é processado primeiramente sendo equalizado por F EQ1, e então é calculado o n0 de ESTIM (i.e. aproximadamente o mesmo para o slot inteiro), e essa fase é usada para atualizar F EQ1 que gerará o vetor F EQ que equalizará os outros sı́mbolos 42 Figura 3.20: Fases de showtime do modem-prototype. do slot. Os sı́mbolos INFO recebidos são multiplicados por F EQ no domı́nio da frequência e equalizados. Após a multiplicação por F EQ, os sı́mbolos equalizados são repassados à cadeia de processamento DMT mostrada na Figura 3.8 e descrita na Seção 3.2.4. 3.2.6.3 Estimação de cursor Para corrigir o n0 dos sı́mbolos QAM, um bloco de correção de cursor é responsável por multiplicar os sı́mbolos recebidos RX[k] por F EQ2[K], onde RX[k] é a representação de um sı́mbolo DMT recebido no domı́nio da frequência e F EQ2[k] é dado pela Equação (3.11). F EQ2 somente altera a fase do sı́mbolo recebido, e isso inclui correção de distorções causadas por n0 6= 0 e de CFO. F EQ2 = ej(∆θ[k]) = e j2πn0 k N = ejβk (3.11) A Equação (3.10) mostra a relação entre n0 e β, dessa forma, encontrar β é equivalente a estimar n0 . Assim, assumindo o lado direito da Equação (3.9), é possı́vel usar tons pilotos2 para estimar β através de regressão linear, como explicado a seguir. Dado K tons pilotos, β pode ser calculado a partir da regressão linear da Equação (3.12). A parte a direita da Equação (3.12) foi arrumada de forma a ser computacionalmente eficiente, pois 2 Tons pilotos são tons do sı́mbolo DMT que não carregam informação, eles possuem amplitude e fase conhecidas pela receptor, e esse informação é usada para estimar n0 . 43 somente as partes P k∆θ[k] e P ∆θ[k] precisam ser calculados, enquanto que as outras podem ser pré-calculadas e armazenadas na memória. β= k∆θ − k ∆θ k2 − k 2 P P k∆θ − k ∆θ = P 2 P k −k k (3.12) A Figura 3.21 mostra um exemplo de estimação de ∆θ[k] usando 17 tons piloto entre os tons 100 a 900. Uma vez que β é encontrado, F EQ2[k] pode ser calculado com a Equação (3.11). Nessa figura, o termo unwrapped indica que para obter reta reconstruı́da (cruzes em azul) é necessário realizar uma operação nas fases estimadas dos tons pilotos (cı́rculos verdes) [33], isso é necessário, pois sua fase varia de 0 a 2π, assim, um tom que rotacionou mais que uma volta completa apresentará fase diferente do que originalmente sofre, e a operação unwrap elimina a ambiguidade. Estimação de β a partir dos tons piloto 30 Fase (∆Θ) em rad 25 ∠(TX/RX) unwrapped βk ∠(TX/RX) 20 15 10 5 0 0 200 400 600 Tom (k) 800 1000 Figura 3.21: Estimação de β e ∆θ a partir dos tons pilotos. Capı́tulo 4 Desempenho e Comparação das Técnicas de Sincronismo Como é mostrado no Capı́tulo 3 o processo de recuperação da temporização do sı́mbolo é feito em duas etapas, onde inicialmente o sı́mbolo é salvo do sinal analógico usando os detectores (etapa no FPGA). Posteriormente, devido à imprecisões que os detectores apresentam, e também do CFO descrito no Capı́tulo 2, é necessária mais uma fase de correções, que é feita no DSP. O objetivo deste capı́tulo é discutir o desempenho dos algoritmos descritos no Capı́tulo 3, onde são mostrados o desempenho dos detectores e explicado o porque da ocorrência do cursor n0 . É também feita uma estimativa do uso de recursos do FPGA pelos detectores. E também são discutidos os resultados dos algoritmos de correção de CFO, e mostrados testes realizados para tentar evitar a ocorrência do n0 a partir do FPGA. 4.1 Desempenho dos detectores Os detectores discutidos no Capitulo 3 apresentam variação no n0 dos sı́mbolos de diferentes slots, onde o detector S&C varia em uma faixa máxima de vinte amostras, e o xCorr varia uma amostra, esses valores foram obtidos a partir de médias realizadas no DSP e simulações. Do ponto de vista do demodulador, os dois detectores erram de maneira equivalente, pois o n0 no sı́mbolo DMT causa rotação nas constelações do sı́mbolo e impede a demodulação direta. O fato do detector S&C rotacionar em torno de vinte amostras, resulta em uma precisão de 20Ts , onde Ts é o perı́odo da amostra, que no caso na SOUT é de 2.5 ns. 44 45 Ou seja, pode-se dizer que a precisão do S&C é de aproximadamente 50 ns. O mesmo raciocı́nio pode ser usado para estimar a precisão do detector xCorr, o que resulta em um resultado de aproximadamente 2.5 ns. Outra visão do desempenho dos detectores é em relação ao tamanho total do sı́mbolo, onde um sı́mbolo completo com prefixo cı́clico possui 10.56 µs, dessa forma, comparando com o tempo total do sı́mbolo é possı́vel concluir que o S&C erra 0.47% e o xCorr erra 0.0236% de um sı́mbolo. A explicação para esse erro dos detectores é distinta para cada um. Primeiramente, o S&C, como explicado no Capı́tulo 3 faz a detecção baseada em um limiar, assim, a diferença de n0 para slots diferentes pode ser explicada pelo fato que o sı́mbolo SINC de um slot consegue alcançar o limiar mais rapidamente que outro. O ruı́do adicionado ao sı́mbolo pelo canal é a causa dessa variação, pois através de simulações percebeu-se que a métrica de temporização varia mesmo com a RSR mantida constante. A Figura 4.1 mostra o exemplo de métrica de temporização mostrado anteriormente, agora com duas realizações do sı́mbolo SINC contaminado com ruı́do, sendo que a mesma RSR é usada nas duas realizações. Na Figura 4.1 é possı́vel perceber que a realização em vermelho é ligeiramente mais ingreme do que a realização em verde, assim, a detecção para a primeira possui um n0 maior do que a segunda. RSR infinita RSR=10dB RSR=10dB 1 M(d) 0.8 0.6 0.4 0.2 0 −1.5 −1 −0.5 0 0.5 1 1.5 Símbolo Figura 4.1: Resultados da métrica de temporização de duas realizações do mesmo sı́mbolo S&C, mostrando duas curvas atingindo um limiar de 0.75 em tempos diferentes. O processo de detecção do S&C pode ser visto como uma comparação das duas metades do sı́mbolo SINC, assim, caso o ruı́do corrompa as “amostras irmãs” de um sı́mbolo da mesma forma, a métrica de temporização possuirá uma taxa de subida maior. A curva em azul da Figura 4.1 é mesma mostrada no Capı́tulo 3 e foi mantida para referência, nessa curva a métrica sempre possui o mesmo formato, diferentemente dos resultados com ruı́do. 46 No caso do xCorr não há uma subida, pois quando há a detecção a métrica de temporização possui um único pico, que é tı́pico de funções de correlação. Logo, o xCorr não deveria errar, entretanto o CFO faz com que haja uma incerteza no processo de detecção. Essa incerteza acontece, pois a versão recebida do sı́mbolo SINC pode estar defasada em relação á referência, e essa defasagem é visualizada através da parte fracionária de n0 . Quando a parte fracionária de n0 é menor que 0.5 o detector xCorr faz a detecção na amostra atual caso contrário a detecção é feita na próxima amostra e isso causa variação no n0 do sı́mbolo recebido. Testes foram realizados para avaliar a robustez dos algoritmos S&C e xCorr, principalmente com a potência recebida sendo variada, o que representa uma mudança nas caracterı́sticas do canal como, por exemplo, uma mudança de cabo. Entretanto, outros fatore além da atenuação também influenciam no desempenho dos detectores, como bridge-taps e crosstalk. O S&C faz sua detecção baseada em limiar que é configurado manualmente, dessa forma, uma mudança brusca das caracterı́sticas do canal faz com que o detector passe a não funcionar adequadamente, podendo ocorrer falsos positivos e até mesmo perda total de sincronia. Uma solução estudada para este problema foi o uso de um controle automático de ganho, para que o sinal recebido sempre esteja com a mesma potência. No entanto, um sinal mais atenuado sofre mais com o ruı́do, logo ao ser amplificado o ruı́do também é, e dessa forma a curva da métrica de temporização pode não atingir o limiar de detecção. A Figura 4.2 mostra um resultado obtido através de simulações onde o sı́mbolo que gerou a curva em verde foi atenuado e corrompido pelo ruı́do e em seguida amplificado, nessa figura é possı́vel perceber que métrica de temporização é completamente comprometida. Nesse exemplo, os sinais que geraram as curvas em verde e em azul foram corrompidos com ruı́dos de mesma potência. Esse problema não acontece com detector xCorr, pois a normalização feita no algoritmo faz com que a métrica de temporização sempre possua os mesmos valores, que nesse caso está entre zero e um (mais próximo de um). Os mesmo testes foram realizados com o detector xCorr, que apresentou detecção correta de slots mesmo em condições severas de atenuação. 4.2 Consumo de hardware dos detectores As Figuras 3.10 e 3.11 mostram as implementações em diagramas de blocos dos detectores S&C e xCorr, respectivamente. Basicamente, essas implementações correspondem à um caminho de dados (ou datapath) por onde as amostras obtidas pelo conversor 47 1 M(d) 0.8 0.6 0.4 0.2 0 −1.5 −1 −0.5 0 0.5 1 1.5 Símbolo Figura 4.2: Resultados da métrica de temporização de duas realizações do mesmo sı́mbolo S&C, onde a curva em azul não sofre atenuação e a curva em verde sofre e depois é amplificada. AD passam. No detector S&C as amostras de entrada são direcionadas para a memória MEM e para o registrador REG da Figura 3.10. MEM é uma memória de duas portas (uma entrada e duas saı́das) que está presente em FPGAs da Xilinx [34], e é endereçada pelos sinais END D e END DL, que possuem valores com uma diferença de 2048 (metade do sı́mbolo DMT), as amostras de entrada são salvas no endereço END D e o endereço END DL é somente lido. As saı́das da memória e do registrador são usadas para realizar o processamento. Na Figura 3.10 é possı́vel contar as estruturas digitais usadas e inferir os recursos usados por esse detector. Os registradores, apesar de haver somente um bloco nomeado diretamente como registrador (REG), estão presentes nos blocos CNT (um para cada endereço), REG, no AC (um para cada) e nas operações de aritméticas, assim, há treze registradores. O bloco MEM é uma memória de 8192 bytes, e há ainda quatro multiplicadores e dois somadores, e mais dois somadores no bloco CNT para incrementar os endereços e mais dois nos blocos AC, logo há 6 somadores no total. Como toda a estrutura é quadruplicada para trabalhar com quatro amostras, então os número são quadruplicados, exceto os somadores de endereço e a memória. A Tabela 4.1 mostra o resultado do raciocı́nio apresentado. Da mesma forma que foi feito para o S&C, também é possı́vel inferir o uso de recursos lógicos do detector xCorr, usando a Figura 3.11 que mostra uma implementação de tamanho genérico do xCorr, que também implementa um datapath, similar ao S&C. O modem-prototype implementa quatro xCorrs de tamanho 64, como explicado 48 Tabela 4.1: Uso de recursos lógicos pelos detectores. Detector Registradores Multiplicadores Somadores Memória xCorr 1072 268 256 0 S&C 52 16 10 1 (8192 bytes) na Seção 3.2.5.2, assim, é possı́vel inferir o uso de recursos para uma única estrutura e então obter o uso de recursos total. A partir da Figura 3.11 é possı́vel contar os recursos, este raciocı́nio é apresentado na listagem abaixo para melhor entendimento do leitor, é importante salientar que cada operação aritmética utiliza também um registrador. A estimação de uso dos recursos utilizados pelo xCorr ainda é multiplicada por quatro para obter o uso total de recursos, que é apresentado na Tabela 4.1. • Há uma cadeia de atrasos nas amostras de entrada, representada por Z −1 , que é implementada com 64 registradores; • As amostras do sinal de referência são armazenadas em registradores ao invés de uma memória para melhor desempenho, o que usa 64 registradores; • Cada elemento da cadeia de atraso é multiplicado em paralelo com seu correspondente do sinal de referência, usando 64 multiplicadores de duas entradas, que também usam mais 64 registradores • Todas as multiplicações da cadeia de atraso deve ser somadas para formar um único valor (i.e. produto interno), essas operações utilizam 63 somadores de duas entradas e mais 63 registradores • Há três operações de elevar ao quadrado, que são implementados com multiplicadores de duas entradas. Logo utilizam 3 multiplicadores e 3 registradores. • Há um acumulador, que utiliza 1 somador e 1 registrador. • E, por fim, há o atraso para alinhar os resultados das partes de cima de baixo da figura. O atraso tem tamanho de Log2 (tamanho) + 1 = 9, e isso usa mais 9 registradores. Dessa contagem de elementos lógicos dos detectores foi omitido o uso de recursos pelos divisores, pois ambos usam a mesma implementação de divisão em hardware, que é baseada no algoritmo non-restoring division [35]. Esse algoritmo realiza divisões inteiras, e possui como saı́da o quociente e o resto. Para realizar a divisão com parte fracionária 49 utilizada nos dois detectores, as amostras (de 32 bits) que entram no bloco de divisão são expandidas com 16 zeros a direita, logo a partir da esquerda para a direita há 32 bits de parte inteira seguidos de 16 bits de parte fracionária. Dessa forma, o bloco divisor foi implementado como um bloco que trabalha com números inteiros de 48 bits, assim o resultado possui também 48 bits, mas somente a parte fracionária e o primeiro bit da parte inteira são usados pelos detectores, pois devido ao ruı́do observou-se nas simulações resultados ligeiramente maiores do que 1. Assim os detectores visualizam o resultado como um número inteiro de 17 bits. Detalhes sobre a estrutura interna do divisor não serão tratados neste trabalho, para fins de manter o foco em detecção. É importante salientar que a variação apresentada pelo detector xCorr é um problema pendente a ser resolvido, uma vez que for corrigido, a mudança do S&C para o xCorr representará a relação custo-benefı́cio entre ter uma detecção que erra (S&C) para uma detecção fixa. A correção do xCorr para não errar envolve incluir mais inteligência na sua detecção e assim também detectar o n0 e manter sempre a mesma amostra, uma vez que isso aconteça, não serão necessários alguns passos de correções no DSP, o que implica em mais sı́mbolos sendo processados por segundo e, consequentemente, em uma maior taxa de dados global. Como o detector xCorr apresenta erro, que precisa ser corrigido da mesma forma no DSP, e também um custo alto, o detector usado atualmente no modem-prototype é o S&C, entretanto, pretende-se melhorar o xCorr para obter os benefı́cios mencionados. A partir dos resultados da Tabela 4.1 é possı́vel perceber a grande diferença de uso de recursos entre os dois detectores. Essa diferença representa o custo a ser pago para uma maior precisão no sistema sincronização de um sistema de comunicação. Quando os códigos do xCorr e do S&C são compilados para programar um FPGA, os recursos utilizados serão todos mapeados para a lógica programável do FPGA. Por exemplo, da Tabela 4.1, os multiplicadores e somadores, quando compilados, utilizarão a lógica programável do FPGA. No caso de FPGAs Virtex 6 da Xilinx, os recursos utilizados do FPGA serão os chamados Slices [36], assim, todos os multiplicadores e somadores são inicialmente implementados usando Slices, no entanto, após uma fase de otimização no processo de compilação, alguns deles podem ser mapeados para estruturas especializadas para processamento de sinais digitais e operações matemáticas dentro do FPGA [37], chamadas DSP48E1, com o objetivo de aproveitar melhor o recursos do FPGA. Após o processo de compilação, a ferramenta usada gera vários relatórios indicando, entre outras coisas, o uso desses recursos. Há muitos recursos dentro do FPGA, mas nesse trabalho, para fins de comparação das técnicas, somente serão mostrados o uso dos recursos Slices, DSP48E1 e RAM36E1, que são a lógica programável, estrutu- 50 Tabela 4.2: Uso de recursos do FPGA pelos detectores. xCorr S&C Slices 25% 3% DSP48E1 36% 1% RAM36E1 0% 1% ras de processamento matemático e memórias, respectivamente. A Tabela 4.2 mostra o uso desses recursos, que foram obtidos após o processo de compilação, que incluiu em ambos os divisores, que não foram considerados anteriormente. A partir da tabela, é possı́vel perceber a grande diferença de uso de recursos pelo detector xCorr. O detector foi codificado de forma não otimizada, ou seja, ele não utiliza diretamente os DSP48E1 do FPGA, entretanto, a ferramenta mapeou algumas operações matemáticas para esses recursos, com o provável objetivo de economizar os Slices. Como era esperado, o processo de compilação utilizou um recurso de memória para o S&C, enquanto que para o xCorr não. Da Tabela 4.1, a diferença no número de registradores é refletida na utilização dos Slices da Tabela 4.2. 4.3 Desempenho da correção de CFO Como é mostrado no Capı́tulo 3 a correção de CFO está diretamente ligada aos algoritmos de equalização, dessa forma, esta seção tratará dos resultados tanto de equalização quanto de correção de CFO juntos. Como é mostrado na Figura 3.20, a fase de showtime da operação do modem-prototype somente atualiza a estimação do FEQ feita na fase de treinamento. Essa atualização consiste em compensar a fase do slot atual a partir do sı́mbolo ESTIM do slot, que é reconhecido pelo DSP a partir de uma marcação feita no FPGA, na primeira amostra do sı́mbolo. O algoritmo da Figura 3.20 reconhece essa marcação e atualiza o FEQ, caso contrário, o sı́mbolo é simplesmente corrigido a partir do FEQ atual. No modem-prototype foi mostrado que o sı́mbolo ESTIM é um sı́mbolo especial que não carrega nenhuma informação, por isso, no FPGA é possı́vel desabilitar o envio desse sı́mbolo e enviar sı́mbolo INFO no lugar, logo, o slot passa a ter suporte para até cinco sı́mbolos INFO. Quando o modem-prototype está configurado para não transmitir ESTIM na segunda posição do slot, os sı́mbolos do DSP devem ser transmitido com alguns tons pilotos que não carregam informação, que são usado para sincronização. A fase de 51 showtime da Figura 3.20 está preparada para os dois tipos de sı́mbolos, mas é necessário que o DSP seja configurado para usar os tons piloto ao invés do sı́mbolo ESTIM, para isso, o DSP precisa ser reprogramado. Do ponto de vista do FPGA o slot passa a ter mais um sı́mbolo para transmitir informação, porém do DSP não há nenhuma alteração (somente a informação contida nos tons pilotos usados). Quando essa configuração é usada, o DSP deve processar o primeiro sı́mbolo INFO do slot para atualizar o FEQ, e depois esse mesmo sı́mbolo é processado para recuperar a informação. Essa configuração descrita foi implementada tanto no DSP quanto no FPGA, mas não é utilizada, pois foram realizados testes para verificar se o DSP consegue transmitir sı́mbolos a tempo suficiente para ocupar todas a posições INFO do slot, e percebeu-se que o DSP não processa a tempo, como descrito em [7]. Como foi explicado, o primeiro sı́mbolo é usado para atualizar o FEQ para compensar a rotação do slot atual, e também foi mostrado na Figura 3.18 que sı́mbolos consecutivos de um mesmo slot também sofrem rotação de aproximadamente 5% de amostra em relação ao sı́mbolo anterior. Para simplificar o processamento, o algoritmo no DSP considera que não há rotação dentro de um mesmo slot, dessa forma é feita somente uma atualização de FEQ, como já foi explicado. Na realidade há uma pequena rotação que causa um desvio nos pontos da constelação recebida, que pode ser avaliada aplicando métricas como EVM. A Figura 4.3 mostra vários sı́mbolos recebidos que carregam constelações de 256 QAM em todos os seus tons. Para quantificar a qualidade da constelação recebida pode-se usar a técnica EVM, onde a constelação apresenta um valor de 1.28%. Para fins de comparação, A Tabela 4.3 apresenta os requerimentos de EVM pela tecnologia LTE, onde é possı́vel perceber que a constelação recebida possui desempenho comparável aos nı́veis dessa tecnologia. A valor de EVM dessa constelação ainda está corrompido por alguns pontos que não transmitem informação, os pontos em zero na constelação da Figura 4.3, o que significa que serão tratados como erros pelo algoritmo. Tabela 4.3: Requerimentos de EVM pela tecnologia LTE (Lont Term Evolution) Esquema de modulação EVM requerida QPSK 17.5 % 16 QAM 12.5 % 64 QAM 8% É possı́vel obter melhor desempenho modificando a estrutura da Figura 3.20 de modo que a estimação de n0 seja feita para todos os sı́mbolos do slot, assim, é possı́vel atingir maiores bitloading, pois a rotação mostrada será minimizada. Entretanto, isso 52 Pontos das constelações de 50 símbolos recebidos 15 Quadratura (Q) 10 5 0 −5 −10 −15 −15 −10 −5 0 5 10 15 Fase (I) Figura 4.3: Exemplo de uma constelação de 256 QAM recebida e corrigida, onde é possı́vel perceber uma pequena rotação nos pontos mais distantes da origem. representa uma maior carga de processamento no DSP, o que pode acabar por diminuir a capacidade de geração de sı́mbolos do DSP, o que diminui a taxa global de sı́mbolos. O projetista de um sistema como esse deve escolher a melhor relação custo-benefı́cio, pois, ao fazer correção em todos os sı́mbolos, por um lado os sı́mbolos conseguem carregar mais informação, mas por outro, menos sı́mbolos são produzidos por segundo, gerando um relação custo-benefı́cio que deve ser analisada. No caso implementado no modemprototype, não foi feita essa análise, simplesmente foi escolhido fazer uma única estimação por slot e assim produzir mais sı́mbolos por segundo, mesmo que eles carreguem menos informação, essa escolha é baseado na pequena variação que há do primeiro para o quinto sı́mbolo. Como foi explicado no Capı́tulo 3, a aplicação modem-prototype foi criada para seguir as especificações do G.fast [3] e por algumas limitações da plataforma SOUT, algumas especificações não puderam ser seguidas a risca. Mas pretende-se melhorar a implementação de modo a corrigir essas limitações e fazer o modem-prototype ficar mais próximo do G.fast. Uma mudança que deve ser feita é alterar a configuração de slots para que eles possuam 36 sı́mbolos como especificado no G.fast, quando isso for feito, uma única estimação de n0 por slot pode não ser suficiente. Assim, deve-se analisar até quantos sı́mbolos consecutivos podem ser corrigidos por uma mesma estimação. Como alternativa, a estimação e atualização de n0 pode ser feita a cada cinco sı́mbolos (ou dez), essas questões devem ser melhor analisadas. O exemplo discutido anteriormente e mostrado na Figura 4.3 utiliza um bitloading 53 estático, onde todos os tons carregam 8 bits (i.e. constelações de 256 QAM). Ao se aplicar um algoritmo como o Levin-Campello [17], que calcula o bitloading para cada tom separadamente, é possı́vel alcançar constelações que podem ser demoduladas com sucesso de até 1024 QAM, mesmo com a rotação que está sendo “ignorada” pelo algoritmo. A Figura 4.4 mostra o número bits tı́picos que podem ser transportados em cada tom, que foi obtido usando o Levin-Campello, onde há tons que podem carregar até 10 bits. Sobre o algoritmo de bitloading é importante salientar que ele não se encontra implementado no DSP, assim, ou o DSP usa bitloading estático como o da Figura 4.3, ou durante a fase de treinamento o vetor de RSR é extraı́do do DSP e o bitloading é calculado offline, e depois o vetor de bitloading é atualizado manualmente. A extração e atualização de informações da memória do DSP são feitas usando os recursos de depuração do DSP. 10 8 bits 6 4 2 00 50 100 f (Mhz) 150 200 Figura 4.4: Bitloading tı́pico estimado usando o Levin-Campello. Com fins de complementar as informações de cálculo de bitloading apresentadas, a Figura 4.5 mostra RSRs calculadas na fase de treinamento, que são usadas pelo LevinCampello. O bitloading da Figura 4.4 foi calculado para a estimação de RSR para o cabo de 50 m da Figura 4.5. 4.4 Taxas alcançadas pelo protótipo Apesar de não ser o foco desse trabalho, como foi apresentada a plataforma SOUT como um todo em outros capı́tulos, esta seção apresenta alguns resultados obtidos em relação à aplicação principal da SOUT, que é prover conectividade entre duas redes. O 50 50 40 40 30 30 SNR (dB) SNR (dB) 54 20 10 0 0 20 10 50 100 f (Mhz) 150 0 0 200 (a) (b) b b 50 100 f (Mhz) 150 200 Figura 4.5: RSR tı́picas calculadas para cabos CAT5 de 50 m (esquerda) e 100 m (direita). resultados e explicações detalhadas são mostrados em [7]. Na SOUT, uma métrica de desempenho é o fluxo de sı́mbolos no DSP, ou a taxa em que sı́mbolos são criados e transmitidos, ou a taxa em que são recebidos e processados. Os sı́mbolos produzidos pelo DSP são enviados ao FPGA, e são chamados de SINC, e são transmitidos em posições especı́ficas dos slots. Quando não há SINC para transmitir, o FPGA envia IDLE. Dessa forma, as medições de fluxo podem também serem vistas como o número de sı́mbolos diferente de IDLE que são transmitidos pela linha. Medições foram realizadas na SOUT, o que mostrou resultado de aproximadamente 28000 sı́mbolos por segundo. E essa medição remete à um taxa de dados de 365 Mbps, quando um bitloading fixo de 8 bits em 1937 portadoras é usado em um cabo de 50 m. A configuração do experimento para medir a taxa de dados que o modem consegue alcançar consistiu de uma transmissão unidirecional, sendo que o modem receptor somente contabilizou nessa taxa os sı́mbolos recebidos sem erro ou com erros recuperáveis pelo RS. O teste foi unidirecional, pois há um problema de concorrência por recursos no DSP entre as cadeias de transmissão e recepção que impossibilita a realização do teste bidirecional, esse problema está sendo resolvido, como descrito em [7], e espera-se dobrar a taxa de dados quando o problema de concorrência for solucionado. O bitloading utiliza 8 bits em 1900 portadores e é o mesmo mostrado na Figura 4.3. Outra métrica extraı́da do DSP, mais especificamente do algoritmo RS, é a taxa de erro de bit, que ficou em torno de 10−7 , entretanto, como discutido em [7] essa medição pode estar comprometida pelo que foi chamado de erros de rajada, que acontecem devido a um problema de perda de sı́mbolo no meio da cadeia de processamento. Esse problema está com solução pendente. É importante salientar que as medidas de fluxo mostradas referem-se à produção 55 e consumo do DSP, sendo que o DSP está em fase de otimização de código. O que acontece é que, atualmente, o DSP não é capaz de produzir sı́mbolos ESTIM para preencher todas as oportunidades de transmissão do slot, o que resulta na atual taxa. Caso o DSP consiga preencher todas as oportunidades de transmissão dos slots, um fluxo de sı́mbolos de aproximadamente 72k seria obtido, o que resulta em uma taxa agregada de 1.1 Gbps. Capı́tulo 5 Conclusão Nesta dissertação foi abordado o projeto e implementação de algoritmos de sincronização para a plataforma Software-defined UFPa transceiver (SOUT), que foi desenvolvida na UFPa em parceria com pesquisadores da Ericsson Research em Kista, na Suécia. Os algoritmos mostrados nesse trabalho fazem parte de uma aplicação que implementa o padrão G.fast [3], e como a aplicação desenvolvida é um modem completo, outros algoritmos são empregados para solução de problemas distintos de sincronização. Dessa forma, esse trabalho apresenta em detalhes somente os algoritmos relacionados diretamente com a sincronização, sendo que alguns outros são tratados para melhor entendimento do sincronismo. Os algoritmos apresentados correspondem à principal forma de se manter o sincronismo da implementação TDD e ao algoritmo de correção do problema de CFO, que existem em sistemas de comunicações. Na implementação TDD foram implementados dois algoritmos, o primeiro, e principal a ser utilizado, foi o algoritmo S&C, descrito em [9] e adaptado para as especificidades desse trabalho. O segundo algoritmo empregado para o TDD, chamado de xCorr, foi criado para preencher uma lacuna apresentada pelo S&C. Ambos os algoritmos são baseados em correlação cruzada, mas o S&C utiliza uma forma de realizar menos operações matemáticas para fazer a detecção, o que faz com que ele perca precisão. Já o xCorr, realiza correlação cruzada diretamente, e para evitar a variação no valor de pico, o sinal de entrada é normalizado, produzindo resultados entre zero e um, o que elimina a necessidade de definição de limiar que há no S&C e o faz apresentar melhor precisão. No entanto, ao realizar correlação cruzada diretamente, o xCorr utiliza muitos recursos, que, no caso desse trabalho, são recursos do FPGA. É mostrado no trabalho que S&C e xCorr possuem erro de 0.47% e 0.0236% de sı́mbolo, ou seja, o xCorr possui precisão na faixa de uma ordem de magnitude melhor do que o outro. Essa 56 57 melhor precisão representa o custo benefı́cio entre o maior consumo de recursos e uma detecção mais precisa. O algoritmo de correção de CFO empregado nesse trabalho, também foi criado para esse trabalho, pois testes com outros não apresentaram desempenho satisfatório. Assim, esse algoritmo, foi criado como uma alternativa aos disponı́veis. Esse algoritmo utiliza vários tons pilotos, e faz uma regressão linear para obter uma estimação de CFO mais precisa, pois outros métodos não apresentaram desempenho suficiente (i.e. a média dos valores dos vários pilotos). Uma das principais contribuições desse algoritmo, além dele próprio, é a integração do mesmo com o processamento de equalização de canal, que, nesse trabalho é proposto e mostrado seu resultado com implementação em hardware, sendo realizado em duas fases, as fases de treinamento e showtime. Após a aplicação dos algoritmos de correção, é mostrado no trabalho, que a constelação resultante apresenta desempenho comparável à tecnologias comerciais como LTE. Ainda é apresentada nesse trabalho a forma como os algoritmos de detecção foram paralelizados para a implementação no FPGA. O objetivo dessa paralelização é diminuir a frequência de operação do FPGA e, assim, facilitar a codificação. A paralelização é iniciada nas interfaces com os conversores, que trabalham em DDR (i.e. duas amostras por ciclo de clock ), além dessa paralelização, no FPGA ainda é feita outra, assim, o nı́vel de paralelização final é de quatro, logo, a frequência de operação também é escalonada pelo mesmo valor. Nesse trabalho é mostrada a segunda paralelização feita no FPGA, e a adaptação dos algoritmos de detecção para ela, realizados no FPGA . Os resultados deste trabalho contribuem como material para referência e estudo nas áreas de telecomunicações, processamento de sinais, projeto de hardware analógico e digital. Além de servir como referência, este trabalho compartilha e documenta a experiência obtida durante o processo de desenvolvimento. São apresentadas e explicadas questões relacionadas a questões que normalmente engenheiros enfrentam ao participar de um projeto de qualquer tamanho, como a avaliação de custo-benefı́cio, onde o trabalho busca não posicionar-se a favor de um algoritmo ou técnica, este trabalho buscou apresentar as vantagens, desvantagens e custo das técnicas apresentadas. Um exemplo para ilustração, é a questão do desempenho dos detectores, onde o S&C apresentou consumo de recursos do FPGA em torno de 15 vezes menor do que o xCorr, em contrapartida, o xCorr apresenta precisão melhor em uma ordem de magnitude, em relação ao S&C. 58 5.1 Trabalhos futuros Este trabalho é uma implementação do padrão G.fast na plataforma SOUT, sendo que muitas das especificações ainda não puderam ser seguidas, devido a limitações do hardware, de tempo ou mesmo da falta mão-de-obra. O objetivo desta seção é expor algumas das questões que ainda continuam abertas no projeto da SOUT, que são listadas a seguir para melhor organização. • Espaçamento dos tons igual ao do G.fast: Quando o AFE foi projetado, não havia definição no padrão G.fast sobre a amostragem a ser usada. Dessa forma, o AFE foi projetado com clocks de referência de 100 MHz, e algum tempo depois foi especificado no padrão. Assim uma alteração a ser feita no é alterar esse clock de referência de modo que possa ser gerado o clock do G.fast, assim os conversores operarão na frequência de amostragem correta e os sı́mbolos DMT no domı́nio da frequência estarão espaçados de acordo com o G.fast. • Implentação de TDD e slots: Foi discutido no Capı́tulo 3 que a implementação de TDD do FPGA não segue o padrão G.fast, devido a limitações. Um sugestão de trabalho futuro é melhorar essa implementação de TDD para que siga o padrão. Para isso a questão levantada no Capı́tulo 4 sobre a correção de CFO deve ser considerada. • Mover toda a parte de sincronização para o FPGA: A eliminação desse processamento do DSP liberaria tempo de processamento para processar mais sı́mbolos, e aumentar a taxa global. Para isso o FPGA deve entregar sı́mbolos sempre com o mesmo n0 , e isso pode ser feito usando um PLL. Ou poderia ser usada uma correção através de filtragem digital no FPGA, esse filtro seria atualizado com o n0 do sı́mbolo atual para corrigir o próximo sı́mbolo, por exemplo. Referências Bibliográficas [1] J. Maes and C.J. Nuzman, “The past, present, and future of copper access,” Bell Labs Technical Journal, vol. 20, pp. 1–10, 2015. [2] P. Odling, T. Magesacher, S. Host, P.O. Borjesson, M. Berg, and E. Areizaga, “The fourth generation broadband concept,” Communications Magazine, IEEE, vol. 47, no. 1, pp. 62–69, January 2009. [3] ITU-T, “Recommendation G.9701 - Fast Access to Subscriber Terminals (G.fast),” 2014. [4] ITU-T, “Recommendation G.992.1 - SERIES G: TRANSMISSION SYSTEMS AND MEDIA, DIGITAL SYSTEMS AND NETWORK,” 2004. [5] ITU-T, “Recommendation G.993.2 : Very high speed digital subscriber line transceivers 2 (VDSL2),” 2006. [6] Skipio, “CP1000 G.FAST CPE CHIPSET - The Perfect G.fast CPE Chipset,” 2015, http://www.sckipio.com/cp1000-g-fast-cpe-chipset/. [7] Joary Paulo Wanzeler Fortuna, “Transceptor Definido por Software para Pesquisas em Transmissão via Cabos de Cobre,” 2015, TCC; FCT - Universidade Federal do Para. [8] Thierry Pollet and M. Peeters, “Synchronization with DMT modulation,” Communications Magazine, IEEE, vol. 37, no. 4, pp. 80–86, Apr 1999. [9] T.M. Schmidl and D.C. Cox, “Robust frequency and timing synchronization for ofdm,” Communications, IEEE Transactions on, vol. 45, no. 12, pp. 1613–1621, Dec 1997. [10] M. Sliskovic and B. Jeren, “Clock frequency synchronisation in ofdm system for power line communications,” in Image and Signal Processing and Analysis, 2000. IWISPA 2000. Proceedings of the First International Workshop on, 2000, pp. 241–246. 59 60 [11] M. Sliskovic, “Sampling frequency offset estimation and correction in OFDM systems,” in Electronics, Circuits and Systems, 2001. ICECS 2001. The 8th IEEE International Conference on, 2001, vol. 1, pp. 437–440 vol.1. [12] Stefano Bregni, Synchronization of Digital Telecommunications Networks, John Willey and Sons, LTD, 1 edition, 2002. [13] M. Luise and R. Reggiannini, “Carrier frequency recovery in all-digital modems for burst-mode transmissions,” Communications, IEEE Transactions on, vol. 43, no. 2/3/4, pp. 1169–1178, Feb 1995. [14] Philip Golden, Herve Dedieu, and Krista Jacobsen, Fundamentals of DSL technology, Boca Raton, FL Auerbach Publications, 1 edition, 2006. [15] Umberto Mengali and Aldo N. D’Andrea, Synchronization techniques for digital receivers, Plenum Press, 1 edition, 1997. [16] John Proakis and Masoud Salehi, Digital Communications, MacGraw-Hill, 5 edition, 2008. [17] Jorge Campello, “Practical bit loading for dmt,” IEEE ICC’99 Proceedings, pp. 801–805, 1999. [18] ITU-T, “ETSI TS 136 104 V12.6.0 (2015-02) - LTE; Evolved Universal Terrestrial Radio Access (E-UTRA); Base Station (BS) radio transmission and reception (3GPP TS 36.104 version 12.6.0 Release 12) ,” 2015. [19] Texas Instruments, “ADS5474: 14-bit, 400 MSPS Analog-to-Digital Converter with Buffered Input,” 2014. [20] Texas instruments, “DAC5681Z: 16-Bit, 1.0 GSPS 2x-4x Interpolating Digital-ToAnalog Converter (DAC),” 2014. [21] Texas Intruments, “TMX320C6670 Evaluation Module,” 2015. [22] Xilinx, “ML605 Hardware User Guide,” 2012. [23] Texas Instruments, “OPA2695: Ultra-Wideband, Current-Feedback Operational Amplifier with Disable,” 2014. [24] Texas Instruments, “THS4509: Wideband, Low-Noise, Low-Distortion, Fully- Differential Amplifier,” 2014. 61 [25] Texas Instruments, “PGA870: High-Speed Fully Differential Programmable Gain Amplifier,” 2014. [26] Xilinx, “Serial RapidIO Gen2 Endpoit v1.6 - LogiCORE IP Product Guide,” 2014. [27] Xilinx, “Microblaze Soft Processor Core,” 2015. [28] RapidIO Trade Associations, “RapidIO Specification Revision 2.2, Complete Specification Stack,” 2011. [29] Xilinx, “Virtex-6 FPGA SelectIO Resources - User Guide,” 2014. [30] Irving Reed and Golomb Solomon, “Polynomial codes over certain finite fields,” Journal of the Society of Industrial and Applied Mathematics, vol. 8, no. 2, pp. 300–304, 06/1960 1960. [31] Alan V. Oppenheim, Alan Willsky, S. Hamid, Signals and Systems, Pearson, 2 edition, 1996. [32] I. Freire, Chenguang Lu, P.-E. Eriksson, and A. Klautau, “Low complexity precoder and equalizer for dmt systems with insufficient cyclic prefix,” in Global Communications Conference (GLOBECOM), 2014 IEEE, Dec 2014, pp. 3243–3248. [33] MathWorks, “unwrap - Corret phase angles to produce smoother phase plots,” 2015, http://www.mathworks.com/help/matlab/ref/unwrap.html?refresh=true. [34] Xilinx, “Virtex-6 FPGA Memory Resources - User Guide,” 2014. [35] Behrooz Parhami, Computer Arithmetic Algorithms and Hardware Designs, Oxford Press, 1 edition, 2000. [36] Xilinx, “Virtex-6 FPGA Configurable Logic Block - User Guide,” 2012. [37] Xilinx, “Virtex-6 FPGA DSP48E1 Slice - User Guide,” 2011.