6.0 - Funcionamento

            6.1 – Modulação:
            Primeiramente, cabe definir o conceito de modulação. Modulação é o processo de transformar um sinal em uma forma adequada pra que ele seja transmitido por determinado canal.  Devido ao avanço das técnicas de modulação que a tecnologia PLC pode se desenvolver, pois havia a necessidade de se acoplar o sinal eletrônico ao canal da rede elétrica.  Para tanto, existem diversos tipos de modulação, contudo, pode-se destacar os seguintes mais representativos:

6.1.1 - Spread Spectrum ou Espectro Amplo:
            Nesta técnica, distribui-se a potência do sinal amplamente no domínio da freqüência, ou seja, fazendo com que sua densidade espectral seja pequena e reduzindo o tempo de transmissão dos dados.  Entretanto, requere a utilização de bandas mais largas para a transmissão. Utilizada em PLC de faixa estreita


(Fig. 6.1.1 – Distribuição da modulação de Espectro Amplo no domínio da freqüência.)

6.1.2 - Orthogonal Frequency Division Multiplex (OFDM):
            Este método é bastante conhecido na literatura e utilizado em diversas tecnologias como xDSL, DAB, DVD. Ele se consiste na modulação de várias portadoras de banda estreita seguidamente. Isto confere grande adaptabilidade, uma vez que possibilita que se removam portadoras que sofrem ou causam interferência ou mesmo variar a quantidade de bits que representa a portadora, seja de acordo com a relação sinal/ruído, atenuação do enlace ou outra métrica mais representativa.
            No caso da relação sinal/ruído que se espalha no espectro da freqüência, os sinais são modulados simultaneamente em várias freqüências utilizando-se diferentes quantidades de bits para cada faixa de freqüência de modo a melhorar o sinal. Isto é, naquelas em que a relação sinal/ruído é alta, usa-se maior quantidade de bits e, de forma oposta, onde tal relação é baixa, menos bits são utilizados.
Esse modo exige que sejam usados amplificadores altamente lineares para que não se tenha interferência causada pelas harmônicas das portadoras.



(Fig. 6.1.2 – Distribuição da modulação OFDM no domínio da freqüência.)

            Vale a pena apontar que ainda existe um tipo de OFDM que foi desenvolvido para funcionar em transmissões com bastante ruído, possuindo mais redundância. Este é o Robust OFDM, também conhecido como ROBO. Normalmente é usado, por exemplo, após ter ocorrido falha na transmissão com os parâmetros estimados, ou em transmissões em multicast e difusão onde é impossível se determinar para todas as estações de uma rede os melhores parâmetros. Quando esses parâmetros ainda não foram estimados e duas estações desejam se comunicar, ambas entram em modo ROBO.  No caso da rede HomePlug, esta estimativa é realizada a cada intervalo de cinco segundos partindo de todos os nós ativos até todos os nós destino. Isto ocorre para verificar a presença de ruídos e interferência que possam inviabilizar a utilização de alguma subportadora. Caso algum problema seja detectado em uma subportadora, ela passará a não ser mais utilizada.  Devido a limitação do PLC em se ter no máximo dezesseis dispositivos na rede, caso esta quantidade seja ultrapassada, todos passam a usar o modo ROBO

6.1.3 - Gaussian Minimum Shift Key (GMSK):
            Esta técnica é uma particularidade da modulação OFDM, sendo também conhecida como OFDM de banda larga. Possui esse nome por resultar em um espectro de forma gaussiana.  No GMSK, a modulação das portadoras é feita em fase, o que gera um conjunto constante, possibilitando que os amplificadores sejam mais simples.
O sinal gerado é resistente a interferências de banda estreita, como, por exemplo, aqueles de rádio de ondas curtas. É utilizada em PLC de faixa estreita.



(Fig. 6.1.3 – Distribuição da modulação GMSK no domínio da freqüência.)

            6.2 – Método de Acesso:
            De modo geral, um método de acesso define o modo como uma estação deverá acessar o meio para enviar alguma informação. O método de acesso a seguir é aquele utilizado no padrão Home Plug 1.0, criado pelo Home Plug Alliance. Apesar do CSMA/CD ser o mais utilizado, este método de acesso é uma variação do CSMA/CA. O primeiro não pode ser utilizado, pois, como ele detecta a colisão através da diferença entre as amplitudes dos sinais recebidos e enviados, e a rede elétrica sofre de certa atenuação e ruído, a sua eficiência se torna questionável.
            Quando uma estação deseja enviar alguma mensagem, primeiramente ela “escuta” o meio usando a Physical Carrier Sense(PCS), que é a detecção física e a Virtual Carrier Sense, que faz a detecção virtual do sinal portador.
No PCS, a camada física reporta à subcamada Media Access Control(MAC) a detecção positiva de preâmbulos ou intervalos de tempo, que são usados para a determinação de prioridades.Assim sendo, esse padrão pode dar prioridade a certos tipos de quadro, de acordo com intervalos de tempo. De fato, se o meio permanecer livre pelo intervalo de tempo de 35,84 µs, denominado Contention Distributed Interframe Space(CIFS), a estação passa determinar a prioridade dos quadros .
            Para ser mais criterioso na divisão dos níveis de prioridade, a fim de que somente as estações com fluxos de realmente alta prioridade disputem o acesso ao meio durante períodos de alto trafego do canal, utilizam-se dois intervalos de tempo para a determinação da prioridade. Estes são denominados PR0 e PR1 e possuem a mesma duração do intervalo CIFS.
            A indicação da classe de prioridade de cada quadro é transmitida através de Priority Resolution Signals(PRS’s) enviados em PR0 e PR1. Esses sinais utilizam uma modulação liga/desliga, onde o sinal em binário corresponde ao número da classe de prioridade. Isto é, para se enviar um quadro da classe CA2(Colision Avoidance 2), deve-se enviar um bit 1 durante o período PR0 e não enviar nada durante o período PR1, sinalizando o número 2 em binário(10). Assim, ao escutar o bit PR0, todas as estações com quadros de prioridade inferior a CA2 interrompem suas transmissões, esperando que o meio fique novamente livre pelo tempo CIFS. Outro critério utilizado é que é dada maior preferência no envio de segmentos de um mesmo quadro em relação a quadros de mesma ou menor prioridade.
            Tendo feita a restrição quanto à classe de prioridade dos quadros a serem enviados, tem inicio o período de disputa pelo acesso ao meio. Nele, inicialmente as estações geram um número aleatório entre zero e o valor da chamada janela de contenção, criando um contador de backoff.  O valor de tal janela varia de acordo com a classe de prioridade, assim como com a quantidade de vezes que a função de backoff tiver sido realizada. As classes CA0 e CA1 possuem para zero, uma, dois ou mais de duas execuções da função de backoff, respectivamente, as janelas de contenção com valores 7, 15, 31 e 65, enquanto que nas classes CA3 e CA2 os valores são 7, 15, 17 e 31, respectivamente.
            O contador de backoff é utilizado da seguinte forma: quando o meio está livre ele é decrementado periodicamente sendo que quando ele chegar à zero sua respectiva estação envia o quadro. Ademais, outro contador também é usado para se evitar que colisões ocorram. Este, denominado contador de adiamento ou Deferral Counter(DC), assim como o valor da janela de contenção, também depende da quantidade de chamadas da função de backoff. Seus valores são 0, 1, 3, 15 para zero, uma, duas ou mais que duas execuções do backoff. Ele é decrementado sempre que uma estação ganha o acesso ao meio para a transmissão de um quadro de mesma prioridade que a estação do DC em questão. Caso ele chegue à zero, pode-se dizer que muitas estações estão tentando enviar quadros de mesma prioridade, o que aumenta a chance de acontecer colisões. Assim sendo, o protocolo deverá executar novamente a função de backoff para diminuir a probabilidade de colisão.
            Na camada MAC, o Virtual Carrier Sense, que faz a detecção virtual do sinal portador ocorre a partir de informações como o tempo que a transmissão atual esta ocupando o canal.  Com ele, as estações podem descobrir quando outra estação tiver finalizado uma transmissão. Isto ocorre de modo a adiar suas transmissões durante um período necessário para que se envie uma resposta ao quadro previamente transmitido, caso ela seja requisitada.
Para a resposta é utilizado o modelo parada e espera de solicitação de repetição automática, ou stop and wait Automatic Repeat Request(ARQ). Supondo que o serviço de resposta tenha sido requisitado, o protocolo age da seguinte forma:
            -Se o quadro tiver sido recebido sem erros, envia-se uma resposta ACK. De modo opcional, pode-se utilizar ACK’s “parciais” para os modos de transmissão por multicast e difusão, fazendo com que a estação possa saber que pelo menos um destino recebe corretamente o quadro.
            -Se o quadro tiver sido recebido com erros, envia-se uma resposta NACK. Caso a estação receptora receba um NACK ou nenhuma resposta durante certo tempo, o que indica que ocorreu uma colisão, tal estação irá entrar no processo de backoff para reenviar o quadro futuramente. Se o número de tentativas de envio alcançar o limite, a estação entra no modo de transmissão robusto, passando a realizar novas tentativas. Se mesmo assim, não se receba um ACK, reporta-se uma falha à subcamada superior.
            -Se o quadro tiver sido recebido, mas o receptor não tiver podido o armazenar, seja por falta de buffer ou por o quadro ser recebido fora de ordem. Define-se também que somente quadros com alta prioridade serão reenviados após a recepção de uma resposta FAIL. Com o recebimento da resposta, a estação interrompe a transmissão do quadro e começa o envio do inicio. Na verdade, o que ocorre é a tentativa de reenvio até uma quantidade pré-definida de retransmissões.
            Para que se confira prioridade ao envio das respostas em relação aos envios dos dados propriamente ditos, a resposta só é enviada após o meio estar livre por um tempo denominado Response Distributed Interframe Space (RIFS). Devido ao fato de este ter o valor de 26 µs, que é menor que o tempo CIFS, a prioridade desejada é garantida.
Em função do tamanho do quadro e da taxa de transmissão, utiliza-se segmentação para aumentar a justiça no acesso ao meio. O que é feito é que todos os segmentos de um quadro são enviados em rajada, sem que se tenha disputa pelo meio entre o envio de cada segmento. Entretanto, após a resposta correspondente a um segmento é aberto um período de determinação de prioridade, que faz com que quadros de maior prioridade possam acessar o canal entre os segmentos da rajada.

            6.3 - Formato do Quadro:
            O padrão HomePlug 1.0 usa basicamente um formato de quadro longo e outro curto, sendo que o primeiro contém os dados enquanto que o segundo é utilizado somente para envio de identificação dos quadros
O quadro longo pode ser divido nas partes Inicio de Quadro (Start of frame), Carga Útil (Payload), Espaço de Fim de Quadro (End of Frame Gap) e Final de Quadro (End of Frame).


(Fig. 6.3 a – Formato do quadro longo.)

            O quadro curto é basicamente um delimitador de resposta utilizado para o funcionamento do Stop and Wait Automatic Repeat-Request (ARQ). Este é um método de retransmissão das mensagens recebidas com erro. O transmissor após enviar uma mensagem espera uma confirmação de recebimento antes de enviar outra.


(Fig. 6.3 b – Formato do quadro curto.)

            Ambos os tipos de quadros possuem em seu inicio bits referentes ao preâmbulo e a um controle de quadro (Frame Control). O primeiro é composto por símbolos OFDM, possuindo duração de 39.5ms e é utilizado para se realizar a sincronização, a detecção física da portadora e  para o controle automático de ganho. Enquanto isso, o segundo é composto de 25 bits, sendo:
            - 1 para controle de disputa: vale 1 durante todos os quadros de uma rajada
            - 3 para a definição do tipo do delimitador: Indica se o delimitador é de inicio ou fim de quadro ou de resposta. Além disso, naqueles de inicio e fim, este campo indica se uma resposta deverá ser enviada.
            - 8 para seqüência de verificação: Usados para Cyclic Redundant Check(CRC) calculado a partir dos outros 17 bits.  Este é um método para a detecção de erros através do resto da divisão de polinômios.
            - 13 para o campo variante: Depende do tipo do delimitador:
                        Inicio de Quadro: 8 bits de comprimento, 5 bits de índice de mapa de tons.
                       Fim de Quadro: 2 bits de prioridade de acesso ao canal. Quando a mensagem for um ACK, os bits repetem a prioridade do quadro recebido e os outros 11 bits são os bits menos significativos do campo de seqüência de verificação. Quando for um NACK existe 1 bit zero que indica o tipo da resposta(NACK) e 10 bits para a seqüência de verificação. Quando for um FAIL, existe mais um bit que é setado em 1 para indicar o tipo da resposta(FAIL) e os outros 9 bits são usados na seqüência de verificação.
            No caso do quadro longo, ele ainda é composto de cabeçalho, dados, enchimento de bloco (padding), sequencia de veriricação de quadro.
            O cabeçalho contem um controle de segmento que é constituído de 3 bits de controle de versão, um flag para identificar se um quadro é enviado em multicast ou difusão, 2 bits reservados, 2 bits de prioridade de acesso, 15 bits de comprimento de segmento, 6 bits de contagem de segmento e 10 bits de número de seqüência. Estes últimos dois campos são usados para o envio de mensagens segmentadas: enquanto o número de seqüência é o mesmo para todos os segmentos do mesmo quadro, os bits de contagem de segmento identificam cada segmento. Ademais, o cabeçalho também contém 48 bits de endereço origem/destino no formato IEEE 802.1Q.
            O enchimento de bloco (ou padding) preenche os espaços vazios do ultimo segmento de um quadro com zero,             a fim de ajustar o tamanho pré-definido.
O campo de seqüência de verificação é utilizado para um Cyclic Redundant Check(CRC) de 16 bits, que é calculado utilizando-se os bits do cabeçalho até o enchimento de bloco.

             6.4 – Segurança:
            Tendo em vista que a tecnologia PLC utiliza a rede elétrica, que é compartilhada por todas as residências que se ligam ao mesmo transformador. Não é estranho que a preocupação pela segurança se mostre presente. De fato, sem um bom método de se obter confidencialidade e integridade das mensagens enviadas, a utilização dessa tecnologia pode se tornar algo arriscado.
            Como uma solução, a Power Line Communication utiliza o algoritmo DES (Data Encryption Standart) de 56 bits para criptografar os dados. Este algoritmo foi originalmente criado pela IBM, com o nome de LUCIFER na década de 70, se tornando uma norma federal americana em 1976.
            O DES utiliza primordialmente funções de substituição e descolamento de bits sobre blocos de 64 bits, tendo como base chaves simétricas de 64 bits, onde apenas 56 servem realmente no algoritmo, enquanto os outros oito servem para a verificação de paridade.
            Na entrada e na saída deste algoritmo, existem blocos que realizam permutações, denominados IP(Initial Permutation) e FP(Final Permutation), onde, basicamente, uma desfaz a outra. Esses dois blocos não possuem quase nenhuma relevância no processo de criptografia. Entretanto a razão da inclusão desses módulos pode ser encontrada através do contexto tecnológico da época de quando foram criados. De fato, foram criados para facilitar a abertura e o fechamento dos blocos no hardware da década de 70, além de permitir que o algoritmo rode de forma mais lenta em software. 
            Antes de passar pelos módulos principais, o bloco de 64 bits da entrada é dividido em dois sub-blocos de 32 bits e processados de modo alternado, segundo o “esquema de Feistel”. Isso garante que os procedimentos de se encriptar e se desencriptar uma mensagem sejam bastante similares, sendo a única diferença entre eles, a ordem em que os sub-blocos são processados.
            Após a divisão do bloco original, um sub-bloco passa pela função Feistel, que realiza em ordem as seguintes ações: Expansão do bloco para 48 bits através de uma permutação expansiva em que alguns bits são duplicados. Combinação através de uma função XOR do resultado com uma subchave, geradas a partir da chave principal pelo método de agendamento de chaves, que funciona do seguinte modo:
            Seleciona-se 56 bits da chave inicial e o divide em duas metades que serão tratadas individualmente. Depois cada chave passa por algumas rodadas onde se rotaciona para a esquerda por um ou dois bits, dependo do número da rodada. A seguir, pega-se 24 bits de cada metade, formando a primeira subchave. A seguir são feitos mais 15 ciclos, onde outras 15 subchaves serão geradas pelo mesmo processo, conforme o esquema a seguir:


(Fig. 6.4 a – Representação Esquemática do Agendamento de Chaves.)

            No total são 16 subchaves geradas, uma para cada passagem pela função. Para a descriptografação, utiliza-se o mesmo processo, tendo a diferença apenas no fato de as subchaves estarem em ordem reversa.
            Então se divide o sub-bloco em oito partes iguais, onde cada uma irá passar por um S-box, sofrendo uma transformação não-linear. Cabe ressaltar que essas transformações não-lineares é que garante a segurança do algoritmo. Se elas não ocorressem ele seria um algoritmo linear e seria facilmente quebrado. Por último, para gerar a saída da função Feistel, as saídas das S-boxes sofrem uma permutação fixa.


(Fig. 6.4 b – Representação esquemática do funcionamento da Função Feistel.)

            A seguir, tal saída passa por uma operação de XOR com o outro sub-bloco original. Então depois desse ciclo, os sub-blocos são trocados e submetidos a outras quinze passadas pela mesma rotina, sendo que no último ciclo, as metades não são trocadas. Esse algoritmo pode ser mais bem compreendido pelo esquema abaixo:


(Fig. 6.4 c – Representação esquemática do funcionamento do algoritmo de encriptação DES.)

            O sistema PLC utiliza também a codificação para se corrigir possíveis erros na transmissão. Para tanto, o algoritmo FEC (forward error correction) é adotado, tornando possível a correção de erros pelo receptor. No FEC, a fonte adiciona bits redundantes na mensagem, o que possibilita que o receptor detecte e corrija erros, dentro de certo limite previsto. Nas PLC’s o FEC é utilizado com relação 1:2. Isto é, para cada bit de dados, o sistema envia 2 bits pelo canal. A vantagem do uso da FEC é que a retransmissão da mensagem se torna menos necessária, embora ocupe mais a banda passante.
            Experimentalmente, comprova-se que o canal do PLC é normalmente ótimo para estações próximas do modem (aprox. 1 km distantes). Nestes casos, a utilização tanto de FEC como de um Repetidor não se faz necessária, o que duplica a capacidade do canal. O que ocorre, de fato, é que os equipamentos PLC monitoram a qualidade do canal e ativam/desativam a utilização de FEC de acordo com a necessidade.