Crc Algorithm - Globalstar SmartOne Series User Manual

Satellite managed asset ready tracker
Table of Contents

Advertisement

Total length range permitted: 5 bytes (Data field length 0) to 59 bytes (Data field length 54).
The different fields are defined as:
Preamble
Length
Cmd
Data
CRC low
CRC high

CRC Algorithm

The Security Field is a 16-bit CRC of all of the previous fields including the preamble, length, and command bytes.
The remainder is initialized to all 1's (0xFFFF) and the CRC is inverted before being sent. Following is a sample C
routine that implements the algorithm using the "reversed" technique:
WORD crc16_lsb(BYTE *pData, WORD length)
{
BYTE i;
WORD data, crc;
crc = 0xFFFF;
if (length == 0)
return 0;
do
{
data = (WORD)0x00FF & *pData++;
crc = crc ^ data;
for (i = 8; i > 0; i--)
{
if (crc & 0x0001)
crc = (crc >> 1) ^ 0x8408;
else
crc >>= 1;
}
}
while (--length);
crc = ~crc;
return (crc);
}
As an example, for a type (0x01) "Get ID" message made up of the following bytes:
AA 05 01
The following 2 byte CRC would be calculated:
D5 50
The complete message sent by the host to the SMARTONE is:
AA 05 01 50 D5
SmartOne Manual Rev 1.5
Serial Packet Format
Serial Packet Fields
Fixed pattern 0xAA
Total number of bytes in the serial packet including the preamble
Command type (See table below). Responses to commands carry the
same command type as the command that initiated the answer
Data associated with the command or answer
Least significant byte of the 16-bit CRC
Most significant byte of the 16-bit CRC
DOC# 9100-0268-01
p.67

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

SmartoneaSmartonebSmartoneblp

Table of Contents