2.3 Camada de Enlace
2.3.3 Slots de tempo, links e canais
O protocolo WirelessHART possui algumas definições próprias e mais específicas para termos comuns na computação. Nesta seção serão explicitadas a definição de link, estrutura do slot de tempo para o WirelesHart e como é determinado qual canal a ser utilizado em uma transmissão.
O slot de tempo no WirelessHART tem a duração de 10 ms. Todas as transações devem ocorrer em slots de tempo de acordo com as restrições estabelecidas. O Clear
Channel Assessment (CCA) é avaliação de canal livre, ou seja, verifica se o canal está
livre ou não para que se realize uma transmissão. A Figura 2.14 mostra a organização do tempo em um slot para uma transação. Os símbolos que representam os valores de tempo são explicados na Tabela 2.2.
É essencial que o dispositivo WirelessHART implemente e interprete esses valores de tempo para que exista a comunicação e sincronia corretas.
Origem: O emissor espera o TsCCAOffset e então checa se o canal está livre durante
os intervalo de tempo de tsCCA. Caso o canal não esteja ruidoso, o emissor chaveia seu modo de transmissão no intervalo de tempo de TsRxTx, e envia a mensagem a ser transmitida. Com o fim da transmissão da mensagem, o emissor espera TsRxAckDelay e começa a escutar o meio na espera do confirmação de recebimento (ACK). Se o ACK
Figura 2.14: Organização do tempo dentro de um slot.
não for recebido durante o tempo TsAckWait, então a transmissão é considerada falha e se realizam as devidas ações. Caso contrário, a confirmação é recebida e processada. O ACK contém o status da recepção e dados para ajustes do relógio do dispositivo. Caso o dispositivo receptor (que enviou o ACK) não seja referência de tempo para o transmissor, os dados para ajuste de tempo são ignorados. Caso contrário, os dados são utilizados para sincronizar o relógio entre as duas estações, ajustando-se para o próximo slot.
Destino: O receptor espera pelo TsRxOffset e então começa a escutar o meio pelo
canal designado. Se nenhuma mensagem chegar durante o intervalo de tempo TsRxWait, então o slot de tempo atual é considerado como não utilizado e o receptor prossegue para o próximo slot de tempo. Caso contrário, a mensagem do transmissor é recebida e pro- cessada. O receptor prepara a mensagem de confirmação durante o intervalo de tempo TsTxAckDelay, depois do qual a confirmação é enviada. Caso o transmissor seja refer- ência de tempo para o receptor, este último irá ajustar o seu relógio baseado na diferença entre o tempo esperado de recepção da mensagem e o tempo real da chegada da mensagem (TsError), ajustando-se com o transmissor para o próximo slot.
Devido à complexidade para se interpretar a Figura 2.14, alguns comentários para facilitar o entendimento são feitos a seguir:
• A mensagem completa inclui, em sequência, quatro bytes de preâmbulo, um byte
de SFD (Start of Frame Delimiter - Delimitador de Início de Frame), um byte de cabeçalho da camada física e o payload da camada física. O cabeçalho da camada física contém o tamanho do seu payload. O início da mensagem (Start of the Mes-
sage - SOM) deve ser considerado o início do preâmbulo, o receptor deve aguardar
um pouco mais para descobrir se este início é uma mensagem propriamente dita ou apenas ruído. Uma vez que na maioria das plataformas de hardware a primeira
2.3. CAMADA DE ENLACE 19
Tabela 2.2: Faixa de valores do Network ID e suas respectivas aplicações.
Símbolo Descrição
TsTxOffset Do início do slot até o início do preâmbulo da transmissão. TsRxOffset Do início do slot até quando o destino deverá começar a
escutar.
TsRxWait O maior tempo para se esperar pelo início da mensagem. Está correlacionado à quantidade de atraso de propagação entre as estações e o quanto isso pode ser tolerado.
TsError Este é a diferença entre o tempo do início real da menssagem e o tempo de início ideal percebido pelo dispo- sitivo receptor. Mostra o quanto os dispositivos envolvidos estão fora de sincronia.
TsMaxPacket A quantidade de tempo necessária para se transmitir a maior mensagem possível.
TsTxAckDelay Tempo entre fim do recebimento da mensagem e início do ACK. O destino deve validar a mensagem recebida e gerar o ACK durante esse intervalo.
TsRxAckDelay Tempo entre o fim da mensagem até quando o transmissor esteja escutando o meio esperando pelo ACK.
TsAckWait O maior tempo a se esperar pelo início de um ACK. TsAck Tempo de se transmitir um ACK.
TsCCAOffset Do início do slot ao início do CCA .
TsCCA Tempo para se realizar um verificação de canal livre (CCA). TsRxTx TsrxTx é o tempo necessário ao rádio para chavear do modo
de recepção para o de transmissão ou vice versa.
interrupção só ocorre depois que o tamanho da mensagem seja conhecido (no nosso caso, o cabeçalho físico seja recebido), na implementação deve-se acrescentar ao limite de tempo de escuta ao meio o tempo para o recebimento do cabeçalho da camada física.
• No padrão WirelessHART, o Network Manager pode enviar a um dispositivo o co-
mando 805 para cortar o CCA. Dessa maneira, o transmissor deve ainda transmitir no tempo TsTxOffset no slot de tempo. Note que o receptor não realiza CCA antes do envio do ACK.
• CCA é útil para se detectar interferências externas a rede. Caso dois dispositivos
compartilhem um link e tentem enviar, ambos passarão no CCA e transmitirão men- sagens que sofrerão interferência mútua. Os receptores não receberão as mensagens e nenhum ACK será transmitido. Nesse caso ambas transmissões irão falhar. Este é um caso raro, já que dificilmente dois dispositivos estarão exatamente sincroniza- dos. Uma vez que os dois não estão exatamente em sincronia, o dispositivo mais rápido irá transmitir primeiro e o mais lento ficará no teste do CCA.
• Se o receptor não é referência de tempo, o valor de ajuste de tempo presente no
ACK não é utilizado. Entretanto, o dispositivo ainda deve seguir a especificação e enviar o TsError.
• TsRxTx é o tempo necessário ao rádio para chavear do modo de recepção para o de
transmissão ou vice versa. Este valor foi retirado da norma [Society 2006] na qual se baseia o WirelessHART. Entretanto, a maioria dos chips disponíveis no mercado precisa de menos que este tempo para realizar a função. Cada dispositivo deve implementar a sua maneira, contudo, o WirelessHART requer que a mensagem seja mandada no tempo correto.
• A mensagem de confirmação é enviada no tempo TsTxAckDelay após o fim da
mensagem transmitida, não em uma distância fixa do início da mensagem como pode ser sugerido pela Figura 2.14.
• Se uma referência de tempo responde, ela deve fazê-lo no tempo esperado pelo
emissor, não no tempo correto. Desse modo se obtém uma melhor taxa de sucesso.
• Pela especificação, o valor do TsAck é de 823 µs baseado em transmitir 26 bytes,
o tamanho completo do ACK. Entretanto, durante o processo de join o endereço do novo dispositivo deve estar no formato longo de 8 bytes, 6 bytes maior que o formato curto utilizado. Nesse caso o TsACK deverá ser de 1024 µs.
• A chave utilizada para a mensagem de confirmação deve seguir a que é usada na
mensagem de dados a partir do bit de chave (Bit Network Key).
• Dois termos utilizados na especificação que se referem ao mesmo conceito são o
TsTxWait e o TsRxWait.
• A implementação da pilha deve buscar atender aos pontos definidos no slot de
tempo. Se ele se comportar com uma margem de mais ou menos 100 µs, a im- plementação será considerada adequada à especificação.
O link no WirelessHART representa a especificação completa de uma comunicação entre dois dispositivos adjacentes em nível MAC, contendo os parâmetros necessários para se transmitir um DLPDU por um único hop. Um link é função do par fonte e destino de transmissão; slot de tempo e channel offset atribuídos; direção da comunicação, se a transmissão é dedicada ou compartilhada, e do tipo da transmissão (recepção, transmissão ou ocioso). Os links são atribuídos a superframes com parte do processo de escalonamento [Chen et al. 2010]. Existem quatro tipos de links: normal, broadcast, join e discovery.
• O link Normal é o mais comum. A ele está associado um endereço de origem e de
destino. A origem utiliza o link para transmitir a mensagem ao destino.
• O link Broadcast está associado a um dispositivo o qual é o emissor no link. Por
esse link o dispositivo envia uma mensagem a todos os dispositivos em seu alcance sem confirmação de recebimento. O endereço em broadcast utilizado como destino é o 0xFFFF.
• O link Join também está associado a um dispositivo. O dispositivo pode ser a
origem ou o destino. Estes dois tipos de links (Broadcast e Join) são anuncia- dos em mensagens de advertise, mensagens as quais contém informação para que o novo dispositivo se junte a rede através deste dispositivo. O novo dispositivo extrai as informações necessárias da mensagem de advertise e as usa para se juntar a rede.
2.3. CAMADA DE ENLACE 21
• O link Discovery é um tipo especial de link criado para manter a conectividade entre
os dispositivos. O propósito inicial do link Discovery é permitir aos dispositivos a descoberta de novos dispositivos. Depois de um período aleatório de tempo, o dis- positivo usa o link Discovery para enviar uma mensagem de keep-alive ao vizinho com o qual faz mais tempo que ele se comunicou. O Discovery link tem menor prioridade que os outros links no caso em que o slot de tempo é compartilhado. Se não estiver transmitindo o dispositivo escutará os links Discovery. Se a mensagem de keep-alive não for endereçada para si próprio, o dispositivo ainda irá escutar a mensagem para atualizar os dados a respeito de sua vizinhança.
Os links podem ser compartilhados de modo que vários transmissores podem competir por um link. O mecanismo de redundância está posto para dar suporte a retransmissões. Em um link compartilhado normal existe apenas um receptor e vários transmissores. Links
join são compartilhados no sentido de que vários dispositivos que ainda não entraram na
rede possam disputar a comunicação com o dispositivo que intermedia o processo. Os
links discovery também são compartilhados pois um dispositivo pode tanto competir para
transmitir em um link quanto escutar em um mesmo link. Links podem ser adicionados a um superframe ativo. Entretanto um link existente só pode ser removido em um su- perframe inativo. Um link não pode ser alterado mesmo que sua entrada seja retirada e acrescentada novamente.
A transação em um slot de tempo no WirelessHART é decrita pelo vetor: frame id, index, type, src addr, dst addr, channel offset.
• Frame id: identifica o superframe. • Index :índice do slot no superframe.
• Type: Indica se o tipo do slot é de transmissão, recepção ou ocioso.
• Src addr e Dst addr: Respectivamente, os endereços de origem e destino da trans-
missão realizada nesse slot.
• Channel Offset: Indica o canal lógico a ser usado na transação.
Para o ajuste fino da utilização dos canais, o WirelessHART utiliza a idéia da lista negra de canais(Channel Blacklist) na qual os canais com ruídos persistentes colocados na lista negra sendo evitados pelo escalonador da rede. Para manter o salto de canais (Channel Hopping), cada dispositivo mantém uma lista de canais ativos, que pode ter menos de 16 entradas devido ao blacklisting. Dados um slot de tempo e um Channel Offset, o canal real é determinado pela Equação 2.1.
ActualChannel= (ChannelO f f set + ASN)%NumChannels (2.1)
O número do canal real é usado como índice na tabela de canais ativos, para se obter o número do canal físico. Uma vez que o ASN (Absolute Slot Number) é aumentado constantemente, o mesmo Channel Offset pode ser mapeado para diferentes canais físicos em diferentes slots. De tal modo, o protocolo provê diversidade de canais e aumenta a confiabilidade das comunicações.