Protocolo binário SiRF

Origem: Wikipédia, a enciclopédia livre.

Protocolo binário SiRF, ou do inglês SiRF Binary protocol, é o protocolo de comunicação padrão utilizado por todas as arquiteturas dos produtos da SiRF.

Camadas do protocolo[editar | editar código-fonte]

Transporte[editar | editar código-fonte]

A camada de transporte empacota uma mensagem GPS em dois caracteres de início e dois de parada e adiciona um prefixo de 2 bytes(15 bits) e um checksum também de 2 bytes (15 bits) antes dos dois caracteres de parada. Os valores dos caracteres de início e parada e a escolha de um valor de 15 bits para o checksum e o comprimento assegura que o comprimento e o checksum da mensagem naõ podem ser confundidos com um código de início ou de parada.

Início de seqüência Comprimento de Payload Payload Checksum Fim de seqüência
0xA0, 0xA2 Dois bytes (15 bits) Acima de 2¹º - 1 (<1023) Dois bytes (15 bits) 0xB0, 0xB3

Validação da mensagem[editar | editar código-fonte]

A camada de validação é a parte da camada de transporte, porém opera independentemente. A contagem de bytes refere-se à quantidade de bytes de payload. O checksum (soma de teste) é a soma do payload.

Tamanho do Payload[editar | editar código-fonte]

O tamanho do payload, payload length, é transmitido na ordem do maior byte primeiro seguido pelo menor byte.

Byte alto Byte baixo
< 0x7F Qualquer valor

Mesmo que o protocolo tenha um comprimento máximo de (2¹5 – 1)bytes, considerações práticas requerem que a implementação do módulo GPS SiRF limite esse valor para um número menor. Os programas de recepção SiRF(e.g., SiRFdemo) podem limitar o tamanho real para algo menor que este máximo.

Dados de Payload[editar | editar código-fonte]

Os dados de payload seguem o tamanho do payload. Ele contem o número de bytes especificados pelo tamanho do payload. O tamanho do payload pode conter qualquer valor de 8 bits.

Onde valores de múltiplos bytes estiverem nos dados de payload nem o alinhamento nem a ordem de byte são definidos como parte do transporte apesar de que os payloads SiRF irão usar a ordem do maior fim(big-endian).

Checksum[editar | editar código-fonte]

O checksum é transmitido na ordem do byte mais alto primeiro seguido pelo byte mais baixo. Esta ordem é chamada maior fim(big-endian)

Byte alto Byte baixo
< 0x7F Qualquer valor

O checksum é uma soma de teste de 15 bits dos bytes nos dados de payload. O seguinte pseudo-código define o algoritmo usado.

   A mensagem é o array de bytes a serem enviados pela camada de transporte.
   O msgLen é o número de bytes no array mensagem a ser transmitido.

Index = first

checkSum = 0

while index < msgLen

checkSum = checkSum + mensagem[Index]

checkSum = checkSum AND (2¹5 – 1).

Mensagens de Entrada[editar | editar código-fonte]

Há um conjunto de mensagens que podem ser recebidos por um receptor GPS SiRF, sendo que o tamanho do buffer para essas mensagens de entrada(input messages) é de 912 bytes. A tabela a seguir lista as mensagens de entrada do protocolo juntamente com seus respectivos códigos.

Hex Decimal Nome Descrição
35 53 Gerenciamento avançado de energia(Advanced Power Management) Esquema de gerenciamento de energia para o SiRFLoc e SiRFXTrac
80 128 Inicializar a fonte de dados(Initialize Data Source) Inicialização do receptor e parâmetros associados
81 129 Mudar para o protocolo NMEA Habilita mensagens, taxa de saída e taxa de transferência(bauds) do protocolo NMEA
82 130 Define o Almanaque - Set Almanac - (upload) Envia um arquivo de almanaque existente para o receptor
83 131 Manipula Dados de Lixo Formatados (Handle Formatted Dump Data) Envia dados formatados
84 132 Apuração da versão do software(Poll Software Version) Apura a versão do software carregado
85 133 Controle da Fonte DGPS Correção da fonte DGPS e do sinal de informação do receptor
86 134 Configura(set) a Porta Serial Binária Taxa em bauds, bits de dados, bits de parada e paridade
88 136 Controle de modo Configuração do modo de Navegação
89 137 Controlde de máscara DOP Seleção de máscara DOP e parâmetros
8A 138 Modo DGPS Seleção do modo DGPS e do valor de timeout
8B 139 Máscara de elevação Rastreamento de elevação de mascareamento de navegação(Navigation masks)
8C 140 Máscara de força(Power mask) Rastreamento de força e mascareamento de navegação
8F 143 Navegação estática Configuração para operação estática
90 144 Apuração do estado de clock Apura o estado de clock
91 145 Habilita(set) a porta serial DGPS Taxa em bauds da porta DGPS, bits de dados, bits de parada e paridade
92 146 Apuração de almanaque Apura dados de almanaque
93 147 Apuração de efeméride Apura dados de efeméride
94 148 Atualização rápida(Flash Update) Atualiza o software rapidamente
95 149 Habilita(set) efeméride(upload) Envia uma efeméride existente ao receptor
96 150 Muda o modo de operação Seleção do modo de teste, ID do SV(software version?) e período
97 151 Habilita parâmetros TricklePower Empurra para o modo fixo, duty cycle e sobre tempo
98 152 Apuração dos Parâmetros de Navegação Apura os atuais parâmetros de navegação
A5 165 Habilita(set) a configuração UART Seleção de protocolo, taxa de transferência em bauds, bits de dados, bits de parada e paridade
A6 166 Habilita Taxa de Mensagem Taxa de saída de mensagem Binária SiRF
A7 167 Habilita parâmetros de aquisição de baixa potência(Low Power Acquisition Parameters) Parâmetros de configuração de baixa potência
A8 168 Apuração de Parâmetros de comando Apuração de parâmetros:

Mensagens de Saída[editar | editar código-fonte]

Referências