9100-0410-01 Rev A
Algoritmo CRC
El campo de seguridad es un CRC de 16 bits de todos los campos anteriores, incluidos el preámbulo, la longitud y los bytes de comando. El resto
se inicializa en todos los 1 (0xFFFF) y el CRC se invierte antes de enviarse. A continuación se muestra una rutina C de muestra que implementa el
algoritmo utilizando la técnica inversa:
WORD crc16_lsb (BYTE * pData, WORD length) {
BYTE i;
WORD data, crc; crc =
0xFFFF; si (longitud ==
0)
devuelve 0;
hacer
{
datos = (PALABRA) 0x00FF & * pData ++; crc =
crc ^ datos; para (i = 8; i> 0; i--)
{
if (crc y 0x0001)
crc = (crc >> 1) ^ 0x8408; más
crc >> = 1; }}
mientras (--length); crc
= ~ crc; retorno (crc); }
Como ejemplo, para un tipo (0x01) mensaje "Obtener ID" compuesto por los siguientes bytes: AA 05 01
Como ejemplo, para un tipo (0x01) mensaje "Obtener ID" compuesto por los siguientes bytes: AA 05 01
Se calcularía el siguiente CRC de 2 bytes: D5 50
Se calcularía el siguiente CRC de 2 bytes: D5 50
El mensaje completo enviado por el host a SmartOne es: AA 05 01 50 D5
El mensaje completo enviado por el host a SmartOne es: AA 05 01 50 D5
Tipos de paquetes en serie
Cmd Descripción / Uso /
Comentario
El usuario solicita que SmartOne responda con el
ESN (número de serie electrónico) integral. Esta es la
0x01
identificación utilizada por Globalstar para identificar
la unidad
0x26
Enviar mensaje truncado
0x27
Enviar mensaje sin procesar
Guía del usuario de SmartOne v2.0
Bytes de datos de
comando
Ninguna
Consulte la sección Mensaje truncado a
continuación.
Consulte la sección de mensajes sin
formato a continuación
Información confidencial y patentada
Reconocer bytes de
datos
Cuatro bytes de datos, que contienen la
ID de la unidad como un entero sin signo.
El MSByte se envía primero. Solamente
los 27 LSbits no son cero
Ninguna
Ninguna
Page 42