|
CRC-6, Алгоритм... |
|
|
|
Jul 5 2011, 16:24
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (M@RS @ Jul 5 2011, 18:52)  расчет контрольной суммы CRC-6 и указан полином (x^6 + x + 1). Подскажите, как правильно ее считать или может существуют готовые примеры? Абсолютно так-же, как и любые другие CRC. Берте описание и вперед. Единственно, бывают нюансы, например, начальное значение надо уточнить, направление сдвига опять-же..... Но это Вам, полагаю, CRC-6-ITU задали смотрите как это для E2 расписано.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 5 2011, 21:23
|

Участник

Группа: Участник
Сообщений: 74
Регистрация: 27-05-05
Из: г. Киев
Пользователь №: 5 468

|
Цитата(zltigo @ Jul 5 2011, 19:45)  Я Вас расстрою, опыта работы у Вас нет, ибо это не CRC. CRC это остаток от деления полиномов. Букварь нужен! Вы меня не расстроили. Давно уже не расстраиваюсь... Я не точно выразился. CRC в качестве контрольных сумм, не применял. Для моих нужд (15 байт по RS232) ее даже не нужно, но если сильно хотелось то хватало исключающее или.. Но в тз кто-то захотел, придется разбираться.
|
|
|
|
|
Jul 10 2011, 21:05
|

Участник

Группа: Участник
Сообщений: 74
Регистрация: 27-05-05
Из: г. Киев
Пользователь №: 5 468

|
Цитата(zltigo @ Jul 6 2011, 01:12)  На будущее - для коротких фреймов наиболее эффективным считается CRC8 с полиномом X^8+X^5+X^4+X^0 Спасибо за совет. Но в ТЗ указано CRC-6. Я тут немного поникал. Какие начальные условия брать оказывается. Надо наверно "ломать" чтобы тз переписали на срс-8. А то готовых кусков кода в сети на срс-6 нету.
|
|
|
|
|
Jul 10 2011, 21:18
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (M@RS @ Jul 11 2011, 00:05)  Надо наверно "ломать" чтобы тз переписали на срс-8. Даже не смешно. CRC-6 это 6 бит, полагаю, что в протоколе больше места нет. Тут типа исполнитель в сети ничего готового не нашел, а пять строк для него написать уже не посильная задача. Пришлите новое TЗ. QUOTE А то готовых кусков кода в сети на срс-6 нету. А остальное Вы тоже будете искать "в сети"  ? Деление двух полиномов алгоритмически обсосанное до полного офигения например: http://www.ross.net/crc/download/crc_v3.txt , по сложности аналогично, тупой операции деления в столбик осваиваемой во втором классе начальной школы. Ой
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 11 2011, 13:00
|
Местный
  
Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699

|
Цитата(M@RS @ Jul 11 2011, 04:05)  Спасибо за совет. Но в ТЗ указано CRC-6. Я тут немного поникал. Какие начальные условия брать оказывается. Надо наверно "ломать" чтобы тз переписали на срс-8. А то готовых кусков кода в сети на срс-6 нету. У меня есть книжка "Элементарное руководство по CRC алгоритмам обнаружения ошибок" Ross N. Williams. Легко гуглится, если есть необходимость - могу выложить
|
|
|
|
|
Jul 11 2011, 19:09
|

Участник

Группа: Участник
Сообщений: 74
Регистрация: 27-05-05
Из: г. Киев
Пользователь №: 5 468

|
Цитата(zltigo @ Jul 11 2011, 00:18)  Даже не смешно. CRC-6 это 6 бит, полагаю, что в протоколе больше места нет. Тут типа исполнитель в сети ничего готового не нашел, а пять строк для него написать уже не посильная задача. Пришлите новое TЗ. А остальное Вы тоже будете искать "в сети"  ? Деление двух полиномов алгоритмически обсосанное до полного офигения например: http://www.ross.net/crc/download/crc_v3.txt , по сложности аналогично, тупой операции деления в столбик осваиваемой во втором классе начальной школы. Ой   Да для меня было бы самое приемлемое найти готовый кусок СРС-6, проверить и вставить в свой проект. Отладить и забыть. На больше у меня времени не хватает. Это нормально, не стоит удивляться. Я доделаю этот проект и забуду о нем. Мне уже это не интересно так как в основном занимаюсь уже своими проектами а там уже системный уровень и частности не так важны. Это будут делать уже наемные люди...
|
|
|
|
|
Jul 15 2011, 09:19
|

Участник

Группа: Участник
Сообщений: 74
Регистрация: 27-05-05
Из: г. Киев
Пользователь №: 5 468

|
Цитата(zltigo @ Jul 13 2011, 17:58)  Как Вы думаете, я что было по ссылке в посте перед Вашим  . Только Автору категорически ничего не надо, кроме как от него заказчик от него отвязался. Так давайте ему и поможем в том, что-бы ему никогда заказчики работы не докучали своими глупостями  ;-) Спасибо, все верно лучше я буду докучать своим заказами...  В общем проблему удалось решить административными методами. Попросить прислать готовый код. Выкладываю с мыслью что кому-то пригодиться. Так как если забить в гугел, то данная тема находиться в топике. Искать не надо будет долго. CODE unsigned char CS_6 (unsigned char *pData, unsigned char Nb) { unsigned char i, j; unsigned char cs = 0, cst; for(i = 0; i < Nb; ++i) { cst = *(pData + i); for(j = 0; j < 8; ++j) { cs >>= 1; if(((cs << 6) ^ (cst << 7)) & (1 << 7)) cs ^= 0xC2; cst >>= 1; } } return (cs >> 2); }
Сообщение отредактировал M@RS - Jul 15 2011, 12:25
|
|
|
|
|
Jul 16 2011, 08:55
|
Местный
  
Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699

|
Цитата(zltigo @ Jul 13 2011, 21:58)  Как Вы думаете, я что было по ссылке в посте перед Вашим  . Да, извиняюсь, не заметил, что автор тот же. Но Ваш ресурс на английском языке, а моя книжка - на русском
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|