На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 46,
участников - 0
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Радиосигналы —› Помогите найти алгоритм контрольной суммы 
Различные приборы, оборудование, спутниковые и радиотелефоны!


Усилители сигнала и мощности

Усилители сотовой связи

Металлоискатели

Радионяни и видеоняни

Измерители КСВ и мощности
Автор Сообщение
Viking117
Участник
Offline1.0
с окт 2014
Снежинск
Сообщений: 4

Дата: 12 Окт 2015 20:35:11 #  

Здравствуйте. Прошу вашей помощи.
Разбираюсь с одним устройством, протокол разобрал, осталось понять алгоритм создания контрольной суммы.
Сами посылки:
20000000FFFF010000000029
20000100FFFF01000000006B
20000200FFFF0100000000AD
20000300FFFF0100000000EF
20000400FFFF010000000088
20000500FFFF0100000000CA
20005FC3FFFF1C000000004B
0000FFFF5FC31D10014100C0
20005FC3FFFF1000000000C3
20005FC3FFFF300000000051
21005FC3FFFF0700000000405F
21005FC3FFFF070000000001F0
21005FC3FFFF070000000002A2
21005FC3FFFF0700000000030B
21005FC3FFFF07000000000406
21005FC3FFFF070000000005AF
21005FC3FFFF070000000006FD
21005FC3FFFF07000000000754

Последний байт - контрольная сумма.
Буду признателен за любую помощь.
AVIAAMATOR
Участник
Offline3.9
с авг 2006
Сообщений: 962

Дата: 12 Окт 2015 21:11:21 #  

Viking117
Может попробовать посмотреть в сторону циклического избыточного кода (CRC)?
Реклама
Google
Viking117
Участник
Offline1.0
с окт 2014
Снежинск
Сообщений: 4

Дата: 12 Окт 2015 21:19:44 #  

AVIAAMATOR

Пробовал CRC RevEng, количество бит выбирал от 2 до 8, но полином найти не удалось. Есть какие нибудь мысли?
AVIAAMATOR
Участник
Offline3.9
с авг 2006
Сообщений: 962

Дата: 12 Окт 2015 22:30:17 · Поправил: AVIAAMATOR (12 Окт 2015 22:32:21) #  

Пробовал CRC RevEng, количество бит выбирал от 2 до 8, но полином найти не удалось. Есть какие нибудь мысли?
Viking117

Могу только подбросить пару ссылок для размышления (запрос в поисковике - "нахождение полинома CRC"):
Помогите вскрыть проверочное поле
http://electronix.ru/forum/lofiversion/index.php/t22188.html
...
NBP FM
Участник
Offline5.0
с июл 2008
Родной Урал
Сообщений: 1816

Дата: 12 Окт 2015 22:32:49 #  

А что за устройство если не секрет?
attache
Участник
Offline3.4
с окт 2004
Донецк-Москва
Сообщений: 692

Дата: 13 Окт 2015 02:44:15 · Поправил: attache (13 Окт 2015 02:53:57) #  

Заставили поломать мозги... Полином 8753
И что это за интересное устройство, в номерном городе?
XOR
Участник
Offline4.0
с янв 2007
...
Сообщений: 1317

Дата: 13 Окт 2015 03:40:19 · Поправил: XOR (13 Окт 2015 03:54:38) #  

Полином 8753
а как так получилось что кс 8 бит а полином 16?

crc8, надо перебрать начальное значение и полином.

20000700FFFF01000000004E
Viking117
Участник
Offline1.0
с окт 2014
Снежинск
Сообщений: 4

Дата: 13 Окт 2015 10:35:22 #  

А что за устройство если не секрет?
И что это за интересное устройство, в номерном городе?
Устройство - один из счетчиков в квартире, конкретно этот счетчик электроэнергии.

crc8, надо перебрать начальное значение и полином.

20000700FFFF01000000004E

Здорово, у Вас получилось. Расскажите какой полином и нач. значение использовали? Биты данных нужно реверсить, а результат, xor результата не нужен?
attache
Участник
Offline3.4
с окт 2004
Донецк-Москва
Сообщений: 692

Дата: 13 Окт 2015 10:43:37 · Поправил: attache (13 Окт 2015 10:46:37) #  

P(x) = x8+ x7+ x5+ x3
Полином восьмой.
online calc
attache
Участник
Offline3.4
с окт 2004
Донецк-Москва
Сообщений: 692

Дата: 13 Окт 2015 10:50:57 #  

Алгоритм поиска чуть позже опишу. Достаточно листка бумаги.
XOR
Участник
Offline4.0
с янв 2007
...
Сообщений: 1317

Дата: 13 Окт 2015 11:04:32 · Поправил: XOR (13 Окт 2015 12:11:13) #  

Расскажите
я только проверил что у вас точно crc и есть смысл дальше искать в этом направлении.
тут Помогите вскрыть проверочное поле подробно расписано как найти кс не зная полинома.

unsigned char crcrs(char *pcBlock, unsigned char len)
{
unsigned char crc = 0x00;
unsigned char i;
while (len--){
crc ^= *pcBlock++;
for (i = 0; i < 8; i++)
crc = crc & 0x80 ? (crc << 1) ^ 0xA9 : crc << 1;
}
return crc;
}

21005FC3FFFF070000000008E7
XOR
Участник
Offline4.0
с янв 2007
...
Сообщений: 1317

Дата: 13 Окт 2015 13:17:59 #  

attache
пользуясь случаем и я поинтересуюсь
все данные из интернета, самого устройства нет и произвольно биты я менять не могу

5A6D008E60101016A831 53 85
85 это crc, 53 сумма ниблов, А кусок синхры, таким образом посылка скорее всего принимает вид 05D600E8060101618A13, это верно для протокола третьей версии, для протокола версии 2.1 от которого эти посылки полином найти не удалось.

5A6D008E60101016A8315385
5A6D00E9402230459061538A
5A6D008E20080007A7C15D32
5A6D0022902020459DC55971
5A6D002220206045993145AC
5A6D002280198004993958F6
5A6D0022901920059A314D91
5A6D002260190005A6C55215
5A6D002290200045A7C5527A
5A6D002220206045993145AC
5A6D009B5018508271C15EA8
5A6D007540204045A1C14FD2
5A6D00C41100702590214400
5A6D0030702130839BC55826
attache
Участник
Offline3.4
с окт 2004
Донецк-Москва
Сообщений: 692

Дата: 13 Окт 2015 14:04:11 #  

Берем значения, у которых изменяются соседние биты и ксорим с исходным, в котором они в нуле.
20000000FFFF010000000029
20000100FFFF01000000006B
20000200FFFF0100000000AD
20000400FFFF010000000088
29h xor 6Bh = 42h
29h xor ADh = 84h
29h xor 88h = A1h
Для проверки линейности алгоритма подсчета контрольной суммы 29h xor EFh = 42h xor 84h = C6h
42h 01000010b
Старший бит 0 - циклический сдвиг влево
84h 10000100b
Старший бит 1 - циклический сдвиг влево и xor с полиномом
A1h 10100001b
Отсюда полином x^8 + x^7 + x^5 + x^3
attache
Участник
Offline3.4
с окт 2004
Донецк-Москва
Сообщений: 692

Дата: 13 Окт 2015 14:20:43 · Поправил: attache (13 Окт 2015 14:21:49) #  

XOR
А еще сырые данные есть?
Или что за протокол, можно в приват.
XOR
Участник
Offline4.0
с янв 2007
...
Сообщений: 1317

Дата: 13 Окт 2015 15:04:51 · Поправил: XOR (13 Окт 2015 15:08:55) #  

attache
увы нет, это все что получилось найти в инете.
это rf протокол oregon scientific версии 2.1, датчик BTHR918N или что-то подобное.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 3359

Дата: 13 Окт 2015 15:11:35 #  

Отсюда полином x^8 + x^7 + x^5 + x^3


а вот интересно, при назначении того или иного полинома для CRC по каким критериям выбирают их коэффициенты? или могут применить любой полином, какой в голову взбредёт?
attache
Участник
Offline3.4
с окт 2004
Донецк-Москва
Сообщений: 692

Дата: 13 Окт 2015 15:48:14 #  

killer258
При выборе коэффициентов руководствуются максимальным кодовым расстоянием.
Но в ряде стандартов используют не самые оптимальные.
Viking117
Участник
Offline1.0
с окт 2014
Снежинск
Сообщений: 4

Дата: 13 Окт 2015 16:45:59 #  

XOR
attache
Большое спасибо за помощь. Особая благодарность за ликбез.
П.С. Можете посоветовать что-нибудь почитать на эту тему?
attache
Участник
Offline3.4
с окт 2004
Донецк-Москва
Сообщений: 692

Дата: 13 Окт 2015 17:31:59 #  

XOR
При наличии устройства можно сделать плавный нагрев/охлаждение для получения, пусть не произвольных, но удобных для исследования данных.
Или использовать суточный лог. По имеющимся данным угадывать полином, дело не благодарное.
Viking117
Например Питерсон У. "Коды, исправляющие ошибки" не могу сказать, что она доступна для понимания без других знаний.
asv
Участник
Offline3.0
с апр 2008
Сообщений: 1562

Дата: 13 Окт 2015 23:43:43 #  

Можете посоветовать что-нибудь почитать на эту тему?
http://zlib.net/crc_v3.txt
XOR
Участник
Offline4.0
с янв 2007
...
Сообщений: 1317

Дата: 14 Окт 2015 04:34:35 #  

есть и на более обиходном языке
http://www.info-system.ru/library/algo/crc1.pdf
Реклама
Google
 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.044; miniBB ®