quarta-feira, 25 de maio de 2011

MIWi: Relatórios de Protocolo

Continuando nossa série sobre o MiWi, vamos agora falar dos relatórios de protocolo. Mais uma vez, estarei traduzindo parte da documentação fornecida pela Microchip: Application Note AN1066 - MiWi Wireless Networking Protocol Stack.

MiWi Protocol Reports

O protocolo MiWi transporta pacotes entre dispositivos usando pacotes especiais chamados de relatórios (reports). O protocolo permite a implementação de até 256 tipos de relatórios, cada um com um ID diferente.
O relatório tipo 00h é reservado para pacotes de protocolo da rede MiWi, onde os dados do pacote (payload) são direcionados para o stack. Por exemplo, um ACK possui o tipo de relatório 00h (por ser um pacote de stack).
O tipo de relatório e o Report ID são definidos no cabeçalho do pacote, como já foi descrito no post MiWi: Endereçamento. O tamanho e conteúdo dos dados de um relatório depende do Report ID. Na implementação atual do MiWi, o tamanho do payload varia de 0 bytes (há alguns pacotes que não precisam de enviar dados, o próprio Report ID já é a informação) até 10 bytes, com o byte menos significativo sendo enviado primeiro.
Vejamos então a lista de relatórios deste protocolo.

Tipo de RelatórioReport IDNome
00h10hOPEN_CLUSTER_SOCKET_REQUEST
11hOPEN_CLUSTER_SOCKET_RESPONSE
12hOPEN_P2P_SOCKET_REQUEST
13hOPEN_P2P_SOCKET_RESPONSE
20hEUI_ADDRESS_SEARCH_REQUEST
21hEUI_ADDRESS_SEARCH_RESPONSE
30hACK_REPORT_TYPE
01h-FFh00h-FFhDisponível para o usuário

Vamos agora fazer uma descrição de cada um destes relatórios:
OPEN_CLUSTER_SOCKET_REQUEST
Tipo de Relatório (1 Byte)Report ID (1 byte)Requesting EUI Address (8 bytes)
00h10hO EUI do dispositivo que inicia a requisição
O endereço de destino do cabeçalho de protocolo MiWi deve ser o do PAN Coordinator (0000h). O endereço fonte do cabeçalho de protocolo MiWi deve ser o do dispositivo que está iniciando a requisição. O campo Requesting EUI Address especifica o EUI do dispositivo que inicia a requisição, com o byte menos significativo primeiro.
OPEN_CLUSTER_SOCKET_RESPONSE
Tipo de Relatório (1 Byte)Report ID (1 byte)Resulting EUI Address (8 bytes)Resulting Short EUI Address (2 bytes)
00h11hO EUI do dispositivo finalO endereço curto do dispositivo final
O endereço de destino do cabeçalho de protocolo MiWi deve ser o dispositivo que requisitou originalmente esta resposta. O endereço fonte deve ser do PAN Coordinator, já que este pacote específico se origina ali. O campo Resulting EUI Address especifica o EUI do dispositivo que respondeu à requisição (LSB primeiro). Note que este é um endereço diferente daquele especificado no endereço de destino do protocolo MiWi.
O campo Resulting Short Address é o endereço curto do dispositivo que respondeu à requisição. Com a combinação do EUI e do endereço curto enviado para ambos nós requisitantes, eles serão capazes de comunicar na rede e encontrar um ao outro se algum deles se mover na rede. Assim que o OPEN_CLUSTER_SOCKET_RESPONSE é enviado, o PAN Coordinator não mais manterá qualquer informação do socket.
OPEN_P2P_SOCKET_REQUEST
Tipo de Relatório (1 Byte)Report ID (1 byte)
00h12h
As informações tanto da fonte quanto do destino no cabeçalho de protocolo MiWi deve ser FFFFh. O campo de Hops do cabeçalho de protocolo MiWi deve ser 00h para prevenir rebroadcast do pacote. O PANID de fonte e de destino de nível MAC deve ser FFFFh. O endereço curto MAC de destino deve ser FFFFh. O endereço de fonte de nível MAC deve ser modo Long Address.
OPEN_P2P_SOCKET_RESPONSE
Tipo de Relatório (1 Byte)Report ID (1 byte)
00h13h
As informações tanto da fonte quanto do destino no cabeçalho de protocolo MiWi deve ser FFFFh. O campo de Hops do cabeçalho de protocolo MiWi deve ser 00h. O PANID de fonte e de destino de nível MAC deve ser FFFFh. Os endereços MAC de destino e fonte devem ser ambos endereços longos (EUIs).
EUI_ADDRESS_SEARCH_REQUEST
Tipo de Relatório (1 Byte)Report ID (1 byte)Search EUI Address (8 bytes)
00h20hO EUI do dispositivo que está sendo procurado
O endereço curto e PANID de destino do cabeçalho de protocolo MiWi dever ser o endereço de broadcast, FFFFh.O endereço e PANID de fonte do cabeçalho de protocolo MiWi deve ser a informação de endereço que está requisitando a busca. Na recepção deste pacote, um coordinator na rede irá retransmitir este pacote como broadcast se o número de hops for maior que 00h. O coordinator irá decrementar o contador de hops antes de retransmitir o pacote. O coordinator não irá mudar o valor do número de sequência do protocolo MiWi quando transmitir o pacote.
EUI_ADDRESS_SEARCH_RESPONSE
Tipo de Relatório (1 Byte)Report ID (1 byte)Search EUI Address (8 bytes)Search Results PANID (2 bytes)Search Results Short Address (2 bytes)
00h21hO EUI do dispositivo que está sendo procuradoO PANID do dispositivo resultanteO endereço curto do dispositivo resultante
O pacote EUI_ADDRESS_SEARCH_RESPONSE deve ser enviado de volta para o endereço do dispositivo que originalmente enviou a requisição (o dispositivo mencionado nos campos de fonte do protocolo MiWi do pacote de requisição).
ACK_REPORT_TYPE
Tipo de Relatório (1 Byte)Report ID (1 byte)
00h30h
O endereço fonte do ACK de protocolo MiWi deve ser igual ao endereço de destino do protocolo MiWi que fez a requisição do Acknoledgement. O endereço de destino do pacote de ACK deve ser igual ao endereço de fonte do protocolo MiWi do pacote que requer um Acknoledgement.

Conclusão

Aqui nós tratamos dos vários tipos de pacotes usados pelo protocolo MiWi, para transportar dados. Já tratei aqui de uma introdução ao protocolo MiWi, bem como da forma que este protocolo faz o endereçamento de dispositivos. No próximo post da série, iremos ver mais sobre mensagens de stack e serviços.

Nenhum comentário:

Postar um comentário

Você também poderá gostar de