IGC IMS-EX2400NB(6) краткое описание протокола modbus_rtu онлайн [4/20] 612191
![IGC IMS-EX2400NB(6) краткое описание протокола modbus_rtu онлайн [4/20] 612191](/views2/1845638/page4/bg4.png)
Контрольная сумма подсчитывается и добавляется в конец фрейма передающим
устройством, и сравнивается принимающим устройством с контрольной суммой, подсчитанной им
по принятым данным.
В подсчете контрольной суммы используются все байты фрейма, начиная с первого (адреса).
Подсчет контрольной суммы производится следующим образом:
1) Записывается в 16-ти битный регистр CRC число 0xFFFF.
2) Первому байту данных и регистру CRC применяется функция XOR, результат помещается
в CRC регистр;
3) Регистр CRC сдвигается вправо на 1 бит, старший бит CRC регистра устанавливается в 0.
Проверяется сдвинутый бит CRC регистра.
4) Если сдвинутый бит CRC регистра равен 1, то CRC регистру и полиномиальному числу
(например 0xA001) применяется функция XOR;
5) Выполняются пункты 3,4, пока не будет выполнено 8 сдвигов CRC регистра;
6) Следующему байту данных и регистру CRC применяется функция XOR, результат
помещается в CRC регистр;
6) Повторяются действия по пунктам 3-6 для оставшихся данных.
7) Контрольная сумма передается в фрейме младшим байтом вперед, т.е. в формате
LSB|MSB.
Возможна также табличная форма подсчета контрольной суммы, что значительно ускоряет
процесс подсчета.
Функция подсчета CRC16 на языке си имеет вид:
unsigned short CRC16 ( puchMsg, usDataLen )
unsigned char *puchMsg ;
unsigned short usDataLen ;
{
unsigned char uchCRCHi = 0xFF ; /* high byte of CRC initialized */
unsigned char uchCRCLo = 0xFF ; /* low byte of CRC initialized */
unsigned uIndex ; /* will index into CRC lookup table */
while (usDataLen--) /* pass through message buffer */
{
uIndex = uchCRCLo ^ *puchMsgg++ ; /* calculate the CRC */
uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex} ;
uchCRCHi = auchCRCLo[uIndex] ;
Содержание
- Аннотация 1
- Канальный уровень 1
- Краткое описание протокола modbus rtu 1
- Протокол передачи данных modbus rtu 1
- Физический уровень 1
- Бит 8 бит данных 2
- Бит 8 бит данных стоп бит 2
- Старт 2
- Стоп бит 2
- X2 чтение дискретных входов 6
- Прикладной уровень 6
- X1 чтение состояния релейных выходов 7
- X5 запись состояния одного релейного выхода 8
- Xf запись состояния нескольких релейных выходов 9
- X4 чтение регистров данных 10
- X3 чтение регистров параметров 11
- X6 запись одного регистра параметров 12
- X10 запись одного регистра параметров 13
- X14 чтение записи файла 15
- X15 запись записи файла 17
- X11 чтение id серийного номера 19
- Коды ошибок 20
Похожие устройства
- TurboSky CB-100 MAG Инструкция по эксплуатации
- TurboSky Mirror-03 Инструкция по эксплуатации
- TurboSky Mirror-05 Инструкция по эксплуатации
- Xp ORX (Катушка 28см X35, Без наушников, Блок) Инструкция по эксплуатации
- Xp ORX (Катушка 22см X35, Без наушников, Блок) Инструкция по эксплуатации
- SUNWIND SUN-DVBT201BK Инструкция по эксплуатации
- SUNWIND 50" SUN-LED50U11 Инструкция по эксплуатации
- SUNWIND 55" SUN-LED55U11 Инструкция по эксплуатации
- SUNWIND 32" SUN-LED32S12 Инструкция по эксплуатации
- SUNWIND 24" SUN-LED24B10 Инструкция по эксплуатации
- SUNWIND 43" SUN-LED43U11 Инструкция по эксплуатации
- SUNWIND 43" SUN-LED43S12 Инструкция по эксплуатации
- SUNWIND 32" SUN-LED32B11 Инструкция по эксплуатации
- SUNWIND 40" SUN-LED40B12 Инструкция по эксплуатации
- SUNWIND SW450 Инструкция по эксплуатации
- SUNWIND SW650 Инструкция по эксплуатации
- SUNWIND SW850 Инструкция по эксплуатации
- SUNWIND SW1050 Инструкция по эксплуатации
- SUNWIND SW1200 LCD Инструкция по эксплуатации
- SUNWIND AVR-600 Инструкция по эксплуатации