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 Transporte 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 não podem ser confundidos com um código de início ou de parada. Início de seqüênciaComprimento de PayloadPayloadChecksumFim de seqüência 0xA0, 0xA2Dois bytes (15 bits)Acima de 2¹º - 1 (<1023)Dois bytes (15 bits)0xB0, 0xB3

Validação da mensagem

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 O tamanho do payload, payload length, é transmitido na ordem do maior byte primeiro seguido pelo menor byte. Byte altoByte baixo< 0x7FQualquer 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 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 O checksum é transmitido na ordem do byte mais alto primeiro seguido pelo byte mais baixo. Esta ordem é chamada maior fim(big-endian)

Byte altoByte baixo< 0x7FQualquer 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

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. HexDecimalNomeDescrição3553Gerenciamento avançado de energia(Advanced Power Management)Esquema de gerenciamento de energia para o SiRFLoc e SiRFXTrac80128Inicializar a fonte de dados(Initialize Data Source)Inicialização do receptor e parâmetros associados81129Mudar para o protocolo NMEAHabilita mensagens, taxa de saída e taxa de transferência(bauds) do protocolo NMEA82130Define o Almanaque - Set Almanac - (upload)Envia um arquivo de almanaque existente para o receptor83131Manipula Dados de Lixo Formatados (Handle Formatted Dump Data)Envia dados formatados84132Apuração da versão do software(Poll Software Version)Apura a versão do software carregado85133Controle da Fonte DGPSCorreção da fonte DGPS e do sinal de informação do receptor86134Configura(set) a Porta Serial BináriaTaxa em bauds, bits de dados, bits de parada e paridade88136Controle de modoConfiguração do modo de Navegação89137Controlde de máscara DOPSeleção de máscara DOP e parâmetros8A138Modo DGPSSeleção do modo DGPS e do valor de timeout8B139Máscara de elevaçãoRastreamento de elevação de mascareamento de navegação(Navigation masks)8C140Máscara de força(Power mask)Rastreamento de força e mascareamento de navegação8F143Navegação estáticaConfiguração para operação estática90144Apuração do estado de clockApura o estado de clock91145Habilita(set) a porta serial DGPSTaxa em bauds da porta DGPS, bits de dados, bits de parada e paridade92146Apuração de almanaqueApura dados de almanaque93147Apuração de efemérideApura dados de efeméride94148Atualização rápida(Flash Update)Atualiza o software rapidamente95149Habilita(set) efeméride(upload)Envia uma efeméride existente ao receptor96150Muda o modo de operaçãoSeleção do modo de teste, ID do SV(software version?) e período97151Habilita parâmetros TricklePowerEmpurra para o modo fixo, duty cycle e sobre tempo98152Apuração dos Parâmetros de NavegaçãoApura os atuais parâmetros de navegaçãoA5165Habilita(set) a configuração UARTSeleção de protocolo, taxa de transferência em bauds, bits de dados, bits de parada e paridadeA6166Habilita Taxa de MensagemTaxa de saída de mensagem Binária SiRFA7167Habilita parâmetros de aquisição de baixa potência(Low Power Acquisition Parameters)Parâmetros de configuração de baixa potênciaA8168Apuração de Parâmetros de comandoApuração de parâmetros:

Mensagens de Saída

SiRF Binary Protocol Reference Manual

Categoria:Protocolos da Internet