реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> CRC-6, Алгоритм...
M@RS
сообщение Jul 5 2011, 15:52
Сообщение #1


Участник
*

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



Доброе время суток...
В ТЗ фигурирует расчет контрольной суммы CRC-6 и указан полином (x^6 + x + 1). Подскажите, как правильно ее считать или может существуют готовые примеры?

Сообщение отредактировал M@RS - Jul 5 2011, 15:53
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 5 2011, 16:24
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
M@RS
сообщение Jul 5 2011, 16:29
Сообщение #3


Участник
*

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



У меня опыт работы с CRC это всего лишь простенькое исключающее или с массивом данных длинной 10 байт. Где это можно в примерах почитать. Пока отложил сумму, так как надо железо срочно оживлять, настройщикам надо мощу вытягивать, но вопрос будет висеть.

Сообщение отредактировал M@RS - Jul 5 2011, 16:31
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 5 2011, 16:45
Сообщение #4


Гуру
******

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



QUOTE (M@RS @ Jul 5 2011, 19:29) *
У меня опыт работы с CRC это всего лишь простенькое исключающее или с массивом данных длинной 10 байт.

Я Вас расстрою, опыта работы у Вас нет, ибо это не CRC. CRC это остаток от деления полиномов. Букварь нужен!


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
M@RS
сообщение Jul 5 2011, 21:23
Сообщение #5


Участник
*

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



Цитата(zltigo @ Jul 5 2011, 19:45) *
Я Вас расстрою, опыта работы у Вас нет, ибо это не CRC. CRC это остаток от деления полиномов. Букварь нужен!

Вы меня не расстроили. Давно уже не расстраиваюсь... laughing.gif
Я не точно выразился. CRC в качестве контрольных сумм, не применял. Для моих нужд (15 байт по RS232) ее даже не нужно, но если сильно хотелось то хватало исключающее или.. Но в тз кто-то захотел, придется разбираться.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 5 2011, 22:12
Сообщение #6


Гуру
******

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



QUOTE (M@RS @ Jul 6 2011, 00:23) *
Для моих нужд (15 байт по RS232)

На будущее - для коротких фреймов наиболее эффективным считается CRC8 с полиномом X^8+X^5+X^4+X^0


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
M@RS
сообщение Jul 10 2011, 21:05
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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 нету.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 10 2011, 21:18
Сообщение #8


Гуру
******

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



QUOTE (M@RS @ Jul 11 2011, 00:05) *
Надо наверно "ломать" чтобы тз переписали на срс-8.

Даже не смешно. CRC-6 это 6 бит, полагаю, что в протоколе больше места нет. Тут типа исполнитель в сети ничего готового не нашел,
а пять строк для него написать уже не посильная задача. Пришлите новое TЗ.
QUOTE
А то готовых кусков кода в сети на срс-6 нету.

А остальное Вы тоже будете искать "в сети" sad.gif sad.gif ? Деление двух полиномов алгоритмически обсосанное до полного офигения например: http://www.ross.net/crc/download/crc_v3.txt , по сложности аналогично, тупой операции деления в столбик осваиваемой во втором классе начальной школы. Ой sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Jul 11 2011, 13:00
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



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


У меня есть книжка "Элементарное руководство по CRC алгоритмам обнаружения ошибок" Ross N. Williams.
Легко гуглится, если есть необходимость - могу выложить
Go to the top of the page
 
+Quote Post
M@RS
сообщение Jul 11 2011, 19:09
Сообщение #10


Участник
*

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



Цитата(zltigo @ Jul 11 2011, 00:18) *
Даже не смешно. CRC-6 это 6 бит, полагаю, что в протоколе больше места нет. Тут типа исполнитель в сети ничего готового не нашел,
а пять строк для него написать уже не посильная задача. Пришлите новое TЗ.

А остальное Вы тоже будете искать "в сети" sad.gif sad.gif ? Деление двух полиномов алгоритмически обсосанное до полного офигения например: http://www.ross.net/crc/download/crc_v3.txt , по сложности аналогично, тупой операции деления в столбик осваиваемой во втором классе начальной школы. Ой sad.gif

rolleyes.gif Да для меня было бы самое приемлемое найти готовый кусок СРС-6, проверить и вставить в свой проект. Отладить и забыть. На больше у меня времени не хватает. Это нормально, не стоит удивляться. Я доделаю этот проект и забуду о нем. Мне уже это не интересно так как в основном занимаюсь уже своими проектами а там уже системный уровень и частности не так важны. Это будут делать уже наемные люди...
Go to the top of the page
 
+Quote Post
i-mir
сообщение Jul 12 2011, 10:32
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986



Не желаете поделиться описанием проекта в части протокола,
средств разработки, наличием аппаратных средств...

Нет уверенности если кто-то возьмет любой кусок кода,
назовет его СРС-6, и он у вас заработает.

Go to the top of the page
 
+Quote Post
M@RS
сообщение Jul 13 2011, 12:44
Сообщение #12


Участник
*

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



Шо маемо:
Каждый пакет имеет структуру:
-двухбайтовый заголовок 0х55, 0x55;
-Технический байт:
биты 0...5 - произвольные значения;
бит 6 - значение "1",
бит 7 - значение "0".
Служебный байт следующего содержания:
биты 0, 1 МПП - 01;
биты 2...7 - контрольная сумма по CRC-6 (полином x^6 + x + 1) для информационных байтов.
Информационное поле из нескольких байтов.

Средства разработки IAR, язык Си и mega8535. Пакеты приходят на скорости 11200кБод.

Сообщение отредактировал M@RS - Jul 13 2011, 14:31
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 13 2011, 14:58
Сообщение #13


Гуру
******

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



QUOTE (Dima_G @ Jul 11 2011, 15:00) *
У меня есть книжка...

Как Вы думаете, я что было по ссылке в посте перед Вашим sm.gif. Только Автору категорически ничего не надо, кроме как от него заказчик от него отвязался. Так давайте ему и поможем в том, что-бы ему никогда заказчики работы не докучали своими глупостями sm.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
M@RS
сообщение Jul 15 2011, 09:19
Сообщение #14


Участник
*

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



Цитата(zltigo @ Jul 13 2011, 17:58) *
Как Вы думаете, я что было по ссылке в посте перед Вашим sm.gif. Только Автору категорически ничего не надо, кроме как от него заказчик от него отвязался. Так давайте ему и поможем в том, что-бы ему никогда заказчики работы не докучали своими глупостями sm.gif

;-) Спасибо, все верно лучше я буду докучать своим заказами... laughing.gif В общем проблему удалось решить административными методами. Попросить прислать готовый код. Выкладываю с мыслью что кому-то пригодиться. Так как если забить в гугел, то данная тема находиться в топике. Искать не надо будет долго.

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
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Jul 16 2011, 08:55
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(zltigo @ Jul 13 2011, 21:58) *
Как Вы думаете, я что было по ссылке в посте перед Вашим sm.gif.

Да, извиняюсь, не заметил, что автор тот же.
Но Ваш ресурс на английском языке, а моя книжка - на русском sm.gif
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 07:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01519 секунд с 7
ELECTRONIX ©2004-2016