• Nenhum resultado encontrado

4.4 Arquitectura de um nó (ECU)

4.4.1 Arquitectura do Communication Controller

4.4.1.3 Media Access Control

A unidade MAC tem uma importante contribuição na ligação entre as unidades CHI e o Coding/Decoding Unit (CODEC). Além disso, é nesta unidade que se pro- cessa a transmissão dos dados. Quando é necessário que ocorra a transmissão dos dados provenientes do host, é aqui, nesta unidade, que os dados são recebidos. No FlexRay, cada nó só tem permissão para transmitir uma mensagem dentro de um determinado intervalo de tempo, a que se chama de slot. Em cada slot, o MAC

verifica se o nó que quer transmitir a mensagem tem permissão para o fazer. Caso o tenha, o MAC importa o payload data proveniente do host e este, gera o cabeçalho da mensagem. Ao mesmo tempo, dentro da slot, quando a transmissão pode ser iniciada, a unidade CODEC é notificada de que pode codificar a mensagem e enviá-la para o barramento, para depois ser processada no seu devido local. Para além disso, a unidade MAC também controla o tempo de acesso ao barra- mento, sendo este controlo a garantia da ordem de acesso. Assim, esta unidade baseia-se num ciclo de comunicação e pode variar entre 0 e 63 ciclos.

Dentro de um ciclo de comunicação, o protocolo oferece dois tipos de acesso ao meio. Há um tipo que é o “Acesso Múltiplo por Divisão de Tempo” estático (TDMA – Time Division Multiple Access) e o outro é baseado num esquema dinâ- mico de mini-slotting.

Como descrito na Figura 4.28, cada ciclo de comunicação pode ser divido em “Segmento Estático”, “Segmento Dinâmico”, “Segmento de Janelas de Símbolos” e “Segmento Network Idle Time” (NIT). Apenas o segmento estático e o network idle time são essenciais para criar um ciclo de comunicação, como se pode visualizar na Figura 4.29.

Figura 4.28: Hierarquia de temporização dentro do ciclo de comunicação [38]. De uma forma geral, o protocolo FlexRay também consiste em quatro níveis, numa hierarquia de temporização, designados por: communication cycle level, ar- bitration grid level, macrotick level e microtick level.

Figura 4.29: Variantes do ciclo de comunicação [39].

No topo da hierarquia tem-se o nível communication cycle level, que define o ciclo de comunicação. No nível abaixo, o arbitration grid level contém o arbitration grid, que forma o suporte principal de arbitragem do FlexRay. No segmento estático, o arbitration grid level é composto por tempos de intervalos consecutivos chamadas de slots estáticas. Por sua vez, o segmento dinâmico é composto também por tem- pos de intervalos consecutivos, mas agora designados de minislots. Um arbitration grid level é composto na sua totalidade por um número inteiro de macroticks. Um macrotick é composto por um número inteiro de microticks. Por sua vez, um micro- tick é a unidade de tempo do relógio. Relativamente ao macrotick e microtick, na secção do Clock Synchronization irão de novo ser abordados com mais pormenor [38] [42] [43] [44].

• Segmento Estático

Como se pode observar na Figura 4.28, o segmento estático é composto por slots estáticas e o “Acesso Múltiplo por Divisão de Tempo” estático (TDMA) é o utili- zado para coordenar as transmissões. Assim, cada nó tem a oportunidade para recorrer a slots estáticas para transmitir ou receber uma mensagem, durante cada ciclo de comunicação.

Baseado no protocolo de acesso ao meio TDMA, a colisão da transmissão de da- dos pode ser evitada e o tempo para troca de uma determinada mensagem é conhecido antecipadamente. As mensagens são transmitidas para todos os nós que compõem a rede. Quando há uma necessidade de comunicação, que não

pode ser concluída numa só slot, são atribuídos ao nó várias slots, que lhe confe- rem uma maior extensão de comunicação.

Numa slot é enviada uma trama. Após a transferência da mesma existe um tempo que por ser demasiado longo e que é reconhecido pelos nós como um tempo idle. Assim, o nó nesse intervalo de tempo não envia nada.

O segmento estático fornece uma comunicação determinística, na qual define a semântica do estado da mensagem e gere os sistemas distribuídos.

No segmento estático todas as slots de comunicação são idênticas, a duração é configurada estaticamente e todas as tramas tem tamanho idêntico. Para a comu- nicação dentro do segmento estático são aplicadas as seguintes restrições:

• A sincronização das tramas deve ser transmitida em todos os canais ligados; • A não sincronização das tramas pode ser transmitida num canal, ou em

ambos;

• Só um nó deve transmitir um dado ID, num dado canal;

• Se o grupo é configurado para uma única slot, todos os nós não sincroniza- dos devem designar a trama como a única trama na slot.

Quando se inicia a transmissão, cada nó mantém um slot counter no estado vari- ável, um para o canal A e outro para o canal B. Ambos os contadores são inici- alizados a 1, no início de cada ciclo de comunicação, e incrementados ao longo das transmissões. A Figura 4.30 ilustra todas as transmissões possíveis para um único nó dentro do segmento estático.

Na slot 1, o nó transmite uma trama no canal A e uma trama no canal B. Na slot 2, o nó transmite uma trama apenas no canal A e, por último, na slot 3 não há tramas nem no canal A nem B [38] [39] [43] [44] [45].

Cada slot estática inicia com um offset chamado de action point offset. O nome deriva do chamado action point, o ponto que inicia a transmissão da trama. O action point offset é seguido do action point e da trama, ver Figura 4.31.

Figura 4.31: Timing dentro de um segmento estático [39].

Depois da transmissão da trama, imediatamente a seguir, segue-se o channel idle delimiter (11 bits recessivos). Há uma pausa (channel idle) cuja duração lógica cor- responde à do action point offset [39].

• Segmento Dinâmico

No segmento dinâmico, é utilizado um esquema baseado em mini-slotting para arbitrar as transmissões. Na parte event-triggered do ciclo de comunicação, o segmento dinâmico invoca o “Acesso Múltiplo por Divisão de Tempo Flexível” (FTDMA – Flexible Time Division Multiple Access) e este é usado para fornecer a flexibilidade na transmissão de tramas. A duração da minislot varia com os dife- rentes tamanhos das tramas. Aqui, como acontece no segmento estático, continua a haver dois contadores, um para cada canal. No entanto, neste caso, os conta- dores não são incrementados simultaneamente, pois depende da arbitragem feita dentro deste segmento.

A Figura 4.32 mostra um esquema no interior de um segmento dinâmico. É com- posto por dois canais de comunicação, que podem não ocorrer necessariamente

simultaneamente. Ambos os canais de comunicação usam arbitration grid, que é baseado em minislots.

Figura 4.32: Estrutura do segmento dinâmico [38].

Cada minislot contém um número idêntico de macroticks. Dentro de um segmento dinâmico, um conjunto consecutivo de slots dinâmicas, que contêm uma ou mais minislots estão sobrepostas nas minislots. A duração de uma slot dinâmica de- pende se há ou não comunicação, ou seja, se ocorre transmissão ou recepção de tramas. A Figura 4.32 ilustra, precisamente, como a duração de uma slot dinâmica se adapta.

Deste modo, tem-se:

• A slot dinâmica consiste numa minislot se não houver comunicação no canal, ou seja, a comunicação no canal está no estado idle, a corresponder comple- tamente a uma minislot;

• A slot dinâmica consiste em mais do que uma minislot se ocorrer comunica- ção no canal [38] [39] [43].

Essencialmente, as condições aplicadas para o preenchimento de uma slot dinâ- mica e de uma slot estática são as mesmas. As estruturas são similares, como se pode constatar pela análise da Figura 4.33.

A slot dinâmica inicia com o action point offset seguido do campo da trama do Flex- Ray, Figura 4.33. Entre estes dois campos há um action point que indica quando a transmissão da trama é iniciada. Como acontece na slot estática, o campo se- guinte é o channel idle delimiter constituído por 11 bits recessivos. Refira-se que,

por especificação do protocolo FlexRay, uma trama dinâmica deve terminar preci- samente com o próximo possível action point. Para garantir isto, a transmissão da mensagem é estendida pelo campo dynamic trailing sequence (DTS). Teoricamente, esta sequência pode ter uma duração, no máximo, uma minislot mais 2 bits de comprimento [39].

Figura 4.33: Estrutura de uma slot dinâmica [39].

• Segmento de Janela de Símbolos

O segmento de janela de símbolos serve para transmitir símbolos. O símbolo de “anti-colisão” é usado para indicar o início do primeiro ciclo de comunicação para um nó na rede FlexRay.

O protocolo FlexRay não proporciona arbitragem para os diferentes transmissores neste segmento. No entanto, se houver mais do que um símbolo para ser trans- mitido, então um protocolo de nível superior tem que ser usado para definir qual a prioridade dos símbolos a transmitir [38] [39].

• Segmento Network Idle Time

O segmento network idle time é necessário para sincronizar os relógios locais. Serve como uma fase durante a qual são calculados e aplicados os termos de

correcção aos relógios. Além de proceder à sincronização dos relógios, também serve como uma fase durante a qual o nó efectua tarefas, relacionadas com as im- plementações específicas do ciclo de comunicação. Durante o segmento NIT não ocorre transmissão nem recepção de dados [38] [39].