crc8 даласса

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
zöner
Вымогатель припоя
Сообщения: 502
Зарегистрирован: Чт фев 16, 2012 19:00:11

Re: crc8 даласса

Сообщение zöner »

Реклама
Аватара пользователя
FILIK
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб дек 18, 2010 11:20:49
Откуда: горловка.украина

Re: crc8 даласса

Сообщение FILIK »

Спасибо за книгу ,скачал но там сильно уж сложно -это я не потянул .Зато нарыл одну вещь http://habrahabr.ru/post/140611/.Научился, сейчас проктикуюсь в этом. Есть вопрос код хеминга который вот сдесь http://habrahabr.ru/post/140611/ он только одиночные ошибки находит или же множество допустим более 5-9?
я ещё крестиком умею вышивать
Реклама
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: crc8 даласса

Сообщение Kavka »

Чтобы определить наличие ошибок используйте CRC по битам данных. А вот если ошибки нашлись, тогда можно и Хэммингом попробовать восстановить. Затем проверить снова по CRC.
Вариант на хабре позволяет исправлять однократные и обнаруживать двукратные ошибки в блоке.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FILIK
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб дек 18, 2010 11:20:49
Откуда: горловка.украина

Re: crc8 даласса

Сообщение FILIK »

Если я вас правильно понял то сперва 1-сообщение+crc.2-кодировать кодом хеминга.3-отправить данные.после получения расчитать crc.если всё хорошо то использавать,если данные пришли с ошибкой исправлять кодом хеминга.
я ещё крестиком умею вышивать
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: crc8 даласса

Сообщение Kavka »

Да, только не забудьте отделить котлеты от мух биты данных от дополнительных битов по Хэммину и CRC по данным.
А можно ещё и биты по Хэммингу обсчитать CRC. Тогда:
1) если CRC по данным совпадает, то - данные целы;
2) если CRC по данным НЕ совпала, а CRC по битам Хэмминга совпала, то восстановить по Хэммингу и проверить CRC по данным, если CRC по данным совпадает, то - данные целы;
3) если обе CRC не совпали, то, IMHO, надо передавать данные по новой.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Аватара пользователя
FILIK
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб дек 18, 2010 11:20:49
Откуда: горловка.украина

Re: crc8 даласса

Сообщение FILIK »

хороше с этим понятно.если я правелно понял код хеминга может востановить только 1 битные ошибку в слове или больше?
я ещё крестиком умею вышивать
Реклама
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: crc8 даласса

Сообщение Kavka »

Такой как на хабре, да. В общем случае можно построить более мощный код (по другому алгоритму), который может исправлять и определять большее количество ошибок. Теоретическую основу можно посмотреть там где сложно :) - Уоррен Г.Алгоритмические трюки для программистов, глава 15, стр 357.
Есть ещё коды с коррекцией ошибок на основе полей Галуа. Если не ошибаюсь, то они использовались в Арвиде (кто помнит такой аппарат знают, что там исправлялись трёхкратные ошибки в блоке)

Добавил спустя пару минут.
Вот, например.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FILIK
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб дек 18, 2010 11:20:49
Откуда: горловка.украина

Re: crc8 даласса

Сообщение FILIK »

в вашем ответе немного я не понял.1что такое на хабре (из вашего текста).2в книге которую вы мне рекомендовали для чтения информация очень сложная для моего начинающего понимания.для начало пожалуста объясните как мне научится вычислять растояние хеминга допустим есть число0111000101110111,ведь я немогу просто выбрать позиции12345?
я ещё крестиком умею вышивать
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: crc8 даласса

Сообщение Kavka »

Про хабр.
FILIK писал(а):Зато нарыл одну вещь http://habrahabr.ru/post/140611/
Про вычисление расстояния Хэмминга там, в книге, тоже написано! И вы не читали! Да не то что не читали, даже не просматривали эту книжку. Иначе не задавали бы такой глупый вопрос.
Чтобы разобраться, а не просто повторить частный случай, вам придётся прочитать и вникнуть.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FILIK
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб дек 18, 2010 11:20:49
Откуда: горловка.украина

Re: crc8 даласса

Сообщение FILIK »

возможно я вас не так понял,страница которую вы указали её там нет.книга состоит из 282 страниц.привожу как выглядит то что я читал.если вас не затруднит скиньте именно то что вы рекомендовали для ознакомления.
Вложения
Новый текстовый документ.txt
(728 байт) 230 скачиваний
Новый текстовый документ.txt
(728 байт) 241 скачивание
я ещё крестиком умею вышивать
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: crc8 даласса

Сообщение Kavka »

У вас урезанное издание
http://radiokot.ru/forum/viewtopic.php? ... 1#p1887601
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FILIK
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб дек 18, 2010 11:20:49
Откуда: горловка.украина

Re: crc8 даласса

Сообщение FILIK »

за книгу огромное спасибо,начал разбираться.и сразу несколько выводов(если что-то не правильно исправте)1-код хеминга (еще раз повторюсь)исправляет один бит и детектирует двойные биты(ошибки).2сообщение разбивается на блок фиксированой длины+с добавлением контрольных бит(пример 10101010+контр.бты).3-не могу понять формулу на стр.358 тесть есть у меня число 10101010 +7 контрольных биn+1?
я ещё крестиком умею вышивать
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: crc8 даласса

Сообщение Kavka »

Это неравенство определяет, так сказать, "минимальное" соотношение битов данных и проверочных битов для кодов с коррекцией ошибок. И всё.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FILIK
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Сб дек 18, 2010 11:20:49
Откуда: горловка.украина

Re: crc8 даласса

Сообщение FILIK »

тоесть проверочных бит должно быть не меньше определённого количества но небольше самого сообщения если я правильно понял вас ув.Kavka.
я ещё крестиком умею вышивать
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: crc8 даласса

Сообщение Kavka »

Это неравенство определяет минимальное количество проверочных битов для коррекции одной ошибки.
Ничего не мешает иметь проверочных битов больше чем битов данных. Тогда, например, можно составить код с коррекцией большего количества ошибок и детектирование ещё большего количества без возможности исправления.
Некоторые аспекты есть на стр. 372.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
iGraphicsS
Нашел транзистор. Понюхал.
Сообщения: 193
Зарегистрирован: Ср фев 16, 2011 22:58:23

Re: crc8 даласса

Сообщение iGraphicsS »

Народ, помогите. У меня есть таблица рассчитанных (дизассемблиронных) значений CRC8-256 значений.

Код: Выделить всё

00h,5Eh,0BCh,0E2h,61h,3Fh,0DDh,83h,
0C2h,9Ch,7Eh,20h,0A3h,0FDh,1Fh,41h,
9Dh,0C3h,21h,7Fh,0FCh,0A2h,40h,1Eh,
5Fh,01h,0E3h,0BDh,3Eh,60h,82h,0DCh,
23h,7Dh,9Fh,0C1h,42h,1Ch,0FEh,0A0h,
0E1h,0BFh,5Dh,03h,80h,0DEh,3Ch,62h,
0BEh,0E0h,02h,5Ch,0DFh,81h,63h,3Dh,
7Ch,22h,0C0h,9Eh,1Dh,43h,0A1h,0FFh,
46h,18h,0FAh,0A4h,27h,79h,9Bh,0C5h,
84h,0DAh,38h,66h,0E5h,0BBh,59h,07h,
0DBh,85h,67h,39h,0BAh,0E4h,06h,58h,
19h,47h,0A5h,0FBh,78h,26h,0C4h,9Ah,
65h,3Bh,0D9h,87h,04h,5Ah,0B8h,0E6h,
0A7h,0F9h,1Bh,45h,0C6h,98h,7Ah,24h,
0F8h,0A6h,44h,1Ah,99h,0C7h,25h,7Bh,
3Ah,64h,86h,0D8h,5Bh,05h,0E7h,0B9h,
8Ch,0D2h,30h,6Eh,0EDh,0B3h,51h,0Fh,
4Eh,10h,0F2h,0ACh,2Fh,71h,93h,0CDh,
11h,4Fh,0ADh,0F3h,70h,2Eh,0CCh,92h,
0D3h,8Dh,6Fh,31h,0B2h,0ECh,0Eh,50h,
0AFh,0F1h,13h,4Dh,0CEh,90h,72h,2Ch,
6Dh,33h,0D1h,8Fh,0Ch,52h,0B0h,0EEh,
32h,6Ch,8Eh,0D0h,53h,0Dh,0EFh,0B1h,
0F0h,0AEh,4Ch,12h,91h,0CFh,2Dh,73h,
0CAh,94h,76h,28h,0ABh,0F5h,17h,49h,
08h,56h,0B4h,0EAh,69h,37h,0D5h,8Bh,
57h,09h,0EBh,0B5h,36h,68h,8Ah,0D4h,
95h,0CBh,29h,77h,0F4h,0AAh,48h,16h,
0E9h,0B7h,55h,0Bh,88h,0D6h,34h,6Ah,
2Bh,75h,97h,0C9h,4Ah,14h,0F6h,0A8h,
74h,2Ah,0C8h,96h,15h,4Bh,0A9h,0F7h,
0B6h,0FCh,0Ah,54h,0D7h,89h,6Bh,35h
Есть допустим принятое сообщение: 0x05 0x06 0x00 0x01 0x00 0x00 0xDC, где 0xDC это CRC8
Как при помощи этой таблицы посчитать CRC? Как я понял: 0x05 = по таблице 0x3F итд. Но у нас же 6 байт. Что со значениями надо делать?
Не могу толковой информации найти как работать с табличным методом расчета CRC8. Просто не хочу себе голову забивать как обсчитывать CRC, полиномами всякими... Нету времени на это.

А всё, разобрался.
Необходимо первое число из таблицы взять, потом его ксорить со следующим. Получившийся результат снова из таблицы, и снова ксорить со следующим. И так все байты.
Ответить

Вернуться в «Периферия»