Protocolo binário SiRFProtocolo 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 protocoloTransporteA 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.
Validação da mensagemA 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 PayloadO tamanho do payload, payload length, é transmitido na ordem do maior byte primeiro seguido pelo menor byte.
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 PayloadOs 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). ChecksumO checksum é transmitido na ordem do byte mais alto primeiro seguido pelo byte mais baixo. Esta ordem é chamada maior fim(big-endian)
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 EntradaHá 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.
Mensagens de SaídaReferênciasInformation related to Protocolo binário SiRF |