Checksum, CRC8 и CRC16

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Pupil
beginner
beginner
Сообщения: 17
Зарегистрирован: 18 июл 2024, 10:16
Версия LabVIEW: 8.0
Благодарил (а): 1 раз

Re: Checksum, CRC8 и CRC16

Сообщение Pupil »

[/quote]
да вроде норм 123456789 -> CRC16 Modbus -> 37 4B
Изображение
[/quote]

Гоняю на таком числе: например, 12345543211010110. И, если подавать строку на вход - не играет роли Little Indian or Big Indian или играет? )
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1421
Зарегистрирован: 03 фев 2010, 00:42
Награды: 8
Версия LabVIEW: 6.1 - 2025
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 78 раз
Контактная информация:

Re: Checksum, CRC8 и CRC16

Сообщение AndreyDmitriev »

Pupil писал(а): 18 июл 2024, 16:47 Благодарю, Андрей! Вопрос в CRC8, а не 16 )
там все в общем еще проще

Изображение
Вложения
CRC8.zip
(187.61 КБ) 49 скачиваний
Pupil
beginner
beginner
Сообщения: 17
Зарегистрирован: 18 июл 2024, 10:16
Версия LabVIEW: 8.0
Благодарил (а): 1 раз

Re: Checksum, CRC8 и CRC16

Сообщение Pupil »

там все в общем еще проще
Спасибо, Андрей!

Этот вариант работает как сайт. Но это через импорт dll, а такое же, но элементами LabView на этом сайте есть? Чтоб работало также? )
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1421
Зарегистрирован: 03 фев 2010, 00:42
Награды: 8
Версия LabVIEW: 6.1 - 2025
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 78 раз
Контактная информация:

Re: Checksum, CRC8 и CRC16

Сообщение AndreyDmitriev »

Pupil писал(а): 19 июл 2024, 12:55
там все в общем еще проще
Спасибо, Андрей!

Этот вариант работает как сайт. Но это через импорт dll, а такое же, но элементами LabView на этом сайте есть? Чтоб работало также? )
Изображение
Вложения
CRC8LV.vi
(9.22 КБ) 48 скачиваний
Pupil
beginner
beginner
Сообщения: 17
Зарегистрирован: 18 июл 2024, 10:16
Версия LabVIEW: 8.0
Благодарил (а): 1 раз

Re: Checksum, CRC8 и CRC16

Сообщение Pupil »

там все в общем еще проще
Благодарю, Андрей! Всё гениальное просто. Работает. Минимум элементов - как в шахматах.
Pupil
beginner
beginner
Сообщения: 17
Зарегистрирован: 18 июл 2024, 10:16
Версия LabVIEW: 8.0
Благодарил (а): 1 раз

Re: Checksum, CRC8 и CRC16, SAE J1850

Сообщение Pupil »

CRC8LV_24_07_2024_.vi
(10.31 КБ) 44 скачивания
Добрый день всем!

Пытаюсь сделать расчёт CRC8 SAE J1850 аналогично сайту http://www.sunshine2k.de/coding/javascr ... rc_js.html.
В таблицу помещаю через запятую LookUp Table кодировки CRC8 SAE J1850 c сайтап. Алгоритм перенёс с функции:
#include <stdint.h>

unsigned crc8sae_j1850_bit(unsigned crc, unsigned char const *data, size_t len) {
if (data == NULL)
return 0;
crc ^= 0xff;
while (len--) {
crc ^= *data++;
for (unsigned k = 0; k < 8; k++)
crc = crc & 0x80 ? (crc << 1) ^ 0x1d : crc << 1;
}
crc &= 0xff;
crc ^= 0xff;
return crc;
}


Считает, но выдаёт не то. (
Pupil
beginner
beginner
Сообщения: 17
Зарегистрирован: 18 июл 2024, 10:16
Версия LabVIEW: 8.0
Благодарил (а): 1 раз

Re: Checksum, CRC8 и CRC16

Сообщение Pupil »

Для CRC8 SAE J1850 переложил данную функцию:
unsigned char crc8(unsigned char *data ,int length) {
unsigned long crc;
int i,bit;

crc = 0xFF;
for ( i=0 ; i<length ; i++ ) {
crc ^= data;
for ( bit=0 ; bit<8 ; bit++ ) {
if ( (crc & 0x80)!=0 ) {
crc <<= 1;
crc ^= 0x1D;
}
else {
crc <<= 1;
}
}
}

return (~crc)&0xFF;
}
Результат с сайтом не совпадает.
Помогите кто может - кто может помогите. Планета Железяка... :banghead: )
Вложения
CRC8LV_29_07_2024_16_50.vi
(264.82 КБ) 46 скачиваний
Artem.spb

Activity Автор
professor
professor
Сообщения: 3575
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 57 раз
Поблагодарили: 193 раза
Контактная информация:

Re: Checksum, CRC8 и CRC16

Сообщение Artem.spb »

Pupil писал(а): 29 июл 2024, 16:53 Результат с сайтом не совпадает.
А вы что вообще считать пытаетесь и что на сайте проверяете?
У вас в коде идёт вычисление crc строки, коротая содержит переводы строки и табуляции.

До кучи на входе строка hex чисел, а вычисления идут по байтам (символам) строки.
Pupil
beginner
beginner
Сообщения: 17
Зарегистрирован: 18 июл 2024, 10:16
Версия LabVIEW: 8.0
Благодарил (а): 1 раз

Re: Checksum, CRC8 и CRC16

Сообщение Pupil »

Artem.spb писал(а): 01 авг 2024, 14:09
Pupil писал(а): 29 июл 2024, 16:53 Результат с сайтом не совпадает.
А вы что вообще считать пытаетесь и что на сайте проверяете?
У вас в коде идёт вычисление crc строки, коротая содержит переводы строки и табуляции.

До кучи на входе строка hex чисел, а вычисления идут по байтам (символам) строки.
На вход подаётся строка с символами. Алгоритм использует LookUp Table с сайта http://sunshine2k.de/coding/javascript/crc/crc_js.html
для кодировки CRC8 SAE J1850 вычисляет СRC.
Pupil
beginner
beginner
Сообщения: 17
Зарегистрирован: 18 июл 2024, 10:16
Версия LabVIEW: 8.0
Благодарил (а): 1 раз

Re: Checksum, CRC8 и CRC16

Сообщение Pupil »

Artem.spb писал(а): 01 авг 2024, 14:09
Pupil писал(а): 29 июл 2024, 16:53 Результат с сайтом не совпадает.
А вы что вообще считать пытаетесь и что на сайте проверяете?
У вас в коде идёт вычисление crc строки, коротая содержит переводы строки и табуляции.

До кучи на входе строка hex чисел, а вычисления идут по байтам (символам) строки.
Если это влияет на конвертацию в U8, то как избавиться от "переводов строк и табуляций" ? )
Artem.spb

Activity Автор
professor
professor
Сообщения: 3575
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 57 раз
Поблагодарили: 193 раза
Контактная информация:

Re: Checksum, CRC8 и CRC16

Сообщение Artem.spb »

Pupil писал(а): 01 авг 2024, 14:18 Если это влияет на конвертацию в U8,
Зависит от того, что вы понимаете под u8 и какой конвертации пытаетесь добиться. У вас "конвертация" строки в байт-коды. По сути это не конвертация, а другое представление того же самого.
Есть подозрение, что надо конвертировать пары символов.
то как избавиться от "переводов строк и табуляций" ? )
Как-то вы смогли избавиться от x0 и запятых. Неужто не справитесь с такой простой задачей?
Pupil
beginner
beginner
Сообщения: 17
Зарегистрирован: 18 июл 2024, 10:16
Версия LabVIEW: 8.0
Благодарил (а): 1 раз

Re: Checksum, CRC8 и CRC16

Сообщение Pupil »

Artem.spb писал(а): 01 авг 2024, 14:21
Pupil писал(а): 01 авг 2024, 14:18 Если это влияет на конвертацию в U8,
Зависит от того, что вы понимаете под u8 и какой конвертации пытаетесь добиться. У вас "конвертация" строки в байт-коды. По сути это не конвертация, а другое представление того же самого.
Есть подозрение, что надо конвертировать пары символов.
то как избавиться от "переводов строк и табуляций" ? )
Как-то вы смогли избавиться от x0 и запятых. Неужто не справитесь с такой простой задачей?
- попробую справиться )
Есть подозрение, что надо конвертировать пары символов. - как это сделать корректно? )
Artem.spb

Activity Автор
professor
professor
Сообщения: 3575
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 57 раз
Поблагодарили: 193 раза
Контактная информация:

Re: Checksum, CRC8 и CRC16

Сообщение Artem.spb »

Pupil писал(а): 01 авг 2024, 14:25 Есть подозрение, что надо конвертировать пары символов. - как это сделать корректно? )
Я уже отвечал вам на этот вопрос тут
Юрий
leader
leader
Сообщения: 550
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 13 раз
Поблагодарили: 20 раз
Контактная информация:

Re: Checksum, CRC8 и CRC16

Сообщение Юрий »

Может, тут будет что-то полезно.
Pupil
beginner
beginner
Сообщения: 17
Зарегистрирован: 18 июл 2024, 10:16
Версия LabVIEW: 8.0
Благодарил (а): 1 раз

Re: Checksum, CRC8 и CRC16

Сообщение Pupil »

Юрий писал(а): 06 авг 2024, 23:23 Может, тут будет что-то полезно.
Благодарю, Юрий! Способ "курить мануалы" мне известен. Не ребёнок я ))) но, в любом случае, благодарю Вас за информацию! :haha:
Ответить

Вернуться в «Коммуникация с приборами»