The header, prior to bitstuffing, contains a 4-byte logical ID field, a 2-byte length field, and a 2-byte checksum. The checksum of n bytes of data is computed as follows:

   unsigned char  data[ ];
   unsigned short checksum = 0xa1e8;
   for (i = 0; i < n; i++)
   {
     checksum += data[i];
     checksum  = (checksum << 3) + (checksum >> 13);
   }


[Back] [Next]