Инструкция по эксплуатации Delta Electronics VFD-VE

Страница 200

Advertising
background image

РЭ серии VFD-VE

ГЛАВА 4 Программируемые параметры.

- 200 -

CRC (циклическая проверка по избыточности) рассчитанная следующими шагами:

Шаг 1 : Загрузка 16-bit регистра (называемого CRC регистром) с FFFFH;

Шаг 2: Исключающее ИЛИ первому 8-bit байту из командного сообщения с байтом

младшего

порядка из 16-bit регистра CRC, помещение результата в CRC регистр.

Шаг 3: Сдвиг одного бита регистра CRC вправо с MSB нулевым заполнением. Извлечение и

проверка LSB.

Шаг 4: Если LSB CRC регистра равно 0, повторите шаг 3, в противном случае исключающее

ИЛИ

CRC регистра с полиномиальным значением A001H.

Шаг 5: Повторяйте шаг 3 и 4, до тех пор, пока восемь сдвигов не будут выполнены. Затем,

полный
8-

bit байт будет обработан.

Шаг 6: Повторите шаг со 2 по 5 для следующих 8-bit байтов из командного сообщения.

Продолжайте пока все байты не будут обработаны. Конечное содержание CRC регистра
CRC

значение. При передачи значения CRC в сообщении, старшие и младшие байты значения

CRC должны меняться, то есть сначала будет передан младший байт.

На следующем примере приведена CRC генерация с использованием языка С. Функция

берет два аргумента

:


Unsigned char* data <- a pointer to the message buffer
Unsigned char length <- the quantity of bytes in the message buffer
The function returns the CRC value as a type of unsigned integer.
Unsigned int crc_chk(unsigned char* data, unsigned char length){int j;
unsigned int reg cre=0xFFFF;
while(length--){
reg_crc ^= *data++;
for(j=0;j<8;j++){
if(reg_crc & 0

х01){ /*LSB(b0)=1 */

reg_crc=(reg_crc>>1) ^ 0xA001;

}else{

reg crc=reg_crc>>1;

}

}

}
return reg_crc;

}

ООО "НПО "СТОИК ЛТД", 107392 Москва ул.Просторная 7, (495) 661-24-61, http://www.stoikltd.ru

Advertising