Общие сведения о протоколе

Общее описание протокола удаленного управления приборами

производства ООО "Микроакустика" по протоколу MIKRONET.

 

  УПМ  •  Общие сведения о протоколе  •  Вычисление CRC

 Для расчета CRC требуется 16-битное беззнаковое слово.

Перед началом расчета это слово должно быть проинициализировано значением 0xFFFF.

Данные добавляются к CRC побайтно с помощью следующей функции:

void crc16_add_byte(unsigned short *pcrc, unsigned char data)

{

    unsigned char    flag;

    unsigned char    i;

    unsigned short   crc = *pcrc;

    for(i = 1; i <= 8; i++)

    {

        flag = (((data & 0x01) ^ (crc & 0x0001)) != 0);

        data >>= 1;

        crc >>= 1;

        if(flag)

        {

              crc |= 0x8000;

              crc ^= 0x26bc;

        }

    }

    *pcrc = crc; 

}

 После последовательного добавления всех данных к CRC полученное значение сравнивается со значением CRC из принятого пакета. В случае несовпадения пакет отбрасывается.