Danfoss VD-P1000U1F5 Руководство по эксплуатации онлайн [100/117] 459266

Danfoss VD-P1000U1F5 Руководство по эксплуатации онлайн [100/117] 459266
Руководство по эксплуатации
Преобразователи частоты VEDADRIVE_____________________________________________________________________
98
В таблице 9.4 приведен пример ответа, содержащего адрес ведомого устройства, код
функции, адрес первого записываемого регистра и общее количество записываемых
регистров.
Таблица 9.4 - Пример ответа
Байт
Поле запроса
Пример (h)
0
Адрес ведомого устройства
01
1
Код функции
10
2
Начальный регистр — старший байт
00
3
Начальный регистр — младший байт
1F
4
Количество записываемых регистров — старший байт
00
5
Количество записываемых регистров — младший байт
03
6
Проверка контрольной суммы CRC младший байт
B1
7
Проверка контрольной суммы CRC старший байт
CE
9.4 Проверка контрольной суммы
Поле проверки контрольной суммы состоит из двух байтов (16-битное значение).
Значение контрольной суммы CRC рассчитывается передающим устройством и составляет
часть каждого сообщения. Устройство-получатель пересчитывает контрольную сумму во
время приема сообщения и сравнивает её со значением в поле CRC последние два
байта каждого принятого сообщения. Если эти значения контрольных сумм не совпадают,
то формируется ошибка.
Перед расчетом контрольной суммы, все 16 бит счетчика контрольной суммы
приобретают значение 1, т. е. регистр счетчика инициализируется значением FFFFh. После
этого начинается процесс расчета, заключающийся в сложении каждого байта сообщения
с текущим содержимым регистра счетчика CRC. Сложение происходит по правилу
«исключающее ИЛИ».
Результат сдвигается в направлении младшего бита, с заполнением нулем старшего
бита. Если младший бит равен 1, то производится «исключающее ИЛИ» содержимого
регистра контрольной суммы и постоянного числа A001h. Если младший бит равен 0, то
«исключающее ИЛИ» не производится.
Процесс сдвига повторяется восемь раз. После последнего (восьмого) сдвига,
следующий байт складывается с текущей величиной регистра контрольной суммы и
процесс сдвига повторяется восемь раз, как описано выше. Конечное содержание
регистра счетчика является значением контрольной суммы.
Для расчета контрольной суммы используются только 8 бит данных каждого регистра;
стартовый и стоповый биты в расчете не участвуют.
Пример функции на языке C, рассчитывающей контрольную сумму:
typedef unsigned int WORD; WORD CRC16(char *buf, char cnt)
{ char c, i, j;
WORD temp = 0xFFFF;
for (i=0; i<cnt; i++)

Содержание

Скачать