crc8 даласса
Re: crc8 даласса
начиная со стр.357: Уоррен Г.Алгоритмические трюки для программистов.2014
- Реклама
- FILIK
- Первый раз сказал Мяу!
- Сообщения: 37
- Зарегистрирован: Сб дек 18, 2010 11:20:49
- Откуда: горловка.украина
Re: crc8 даласса
Спасибо за книгу ,скачал но там сильно уж сложно -это я не потянул .Зато нарыл одну вещь http://habrahabr.ru/post/140611/.Научился, сейчас проктикуюсь в этом. Есть вопрос код хеминга который вот сдесь http://habrahabr.ru/post/140611/ он только одиночные ошибки находит или же множество допустим более 5-9?
я ещё крестиком умею вышивать
Re: crc8 даласса
Чтобы определить наличие ошибок используйте CRC по битам данных. А вот если ошибки нашлись, тогда можно и Хэммингом попробовать восстановить. Затем проверить снова по CRC.
Вариант на хабре позволяет исправлять однократные и обнаруживать двукратные ошибки в блоке.
Вариант на хабре позволяет исправлять однократные и обнаруживать двукратные ошибки в блоке.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- FILIK
- Первый раз сказал Мяу!
- Сообщения: 37
- Зарегистрирован: Сб дек 18, 2010 11:20:49
- Откуда: горловка.украина
Re: crc8 даласса
Если я вас правильно понял то сперва 1-сообщение+crc.2-кодировать кодом хеминга.3-отправить данные.после получения расчитать crc.если всё хорошо то использавать,если данные пришли с ошибкой исправлять кодом хеминга.
я ещё крестиком умею вышивать
Re: crc8 даласса
Да, только не забудьте отделить котлеты от мух биты данных от дополнительных битов по Хэммину и CRC по данным.
А можно ещё и биты по Хэммингу обсчитать CRC. Тогда:
1) если CRC по данным совпадает, то - данные целы;
2) если CRC по данным НЕ совпала, а CRC по битам Хэмминга совпала, то восстановить по Хэммингу и проверить CRC по данным, если CRC по данным совпадает, то - данные целы;
3) если обе CRC не совпали, то, IMHO, надо передавать данные по новой.
А можно ещё и биты по Хэммингу обсчитать CRC. Тогда:
1) если CRC по данным совпадает, то - данные целы;
2) если CRC по данным НЕ совпала, а CRC по битам Хэмминга совпала, то восстановить по Хэммингу и проверить CRC по данным, если CRC по данным совпадает, то - данные целы;
3) если обе CRC не совпали, то, IMHO, надо передавать данные по новой.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Реклама
- FILIK
- Первый раз сказал Мяу!
- Сообщения: 37
- Зарегистрирован: Сб дек 18, 2010 11:20:49
- Откуда: горловка.украина
Re: crc8 даласса
хороше с этим понятно.если я правелно понял код хеминга может востановить только 1 битные ошибку в слове или больше?
я ещё крестиком умею вышивать
Re: crc8 даласса
Такой как на хабре, да. В общем случае можно построить более мощный код (по другому алгоритму), который может исправлять и определять большее количество ошибок. Теоретическую основу можно посмотреть там где сложно
- Уоррен Г.Алгоритмические трюки для программистов, глава 15, стр 357.
Есть ещё коды с коррекцией ошибок на основе полей Галуа. Если не ошибаюсь, то они использовались в Арвиде (кто помнит такой аппарат знают, что там исправлялись трёхкратные ошибки в блоке)
Добавил спустя пару минут.
Вот, например.
Есть ещё коды с коррекцией ошибок на основе полей Галуа. Если не ошибаюсь, то они использовались в Арвиде (кто помнит такой аппарат знают, что там исправлялись трёхкратные ошибки в блоке)
Добавил спустя пару минут.
Вот, например.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- FILIK
- Первый раз сказал Мяу!
- Сообщения: 37
- Зарегистрирован: Сб дек 18, 2010 11:20:49
- Откуда: горловка.украина
Re: crc8 даласса
в вашем ответе немного я не понял.1что такое на хабре (из вашего текста).2в книге которую вы мне рекомендовали для чтения информация очень сложная для моего начинающего понимания.для начало пожалуста объясните как мне научится вычислять растояние хеминга допустим есть число0111000101110111,ведь я немогу просто выбрать позиции12345?
я ещё крестиком умею вышивать
Re: crc8 даласса
Про хабр.
Чтобы разобраться, а не просто повторить частный случай, вам придётся прочитать и вникнуть.
Про вычисление расстояния Хэмминга там, в книге, тоже написано! И вы не читали! Да не то что не читали, даже не просматривали эту книжку. Иначе не задавали бы такой глупый вопрос.FILIK писал(а):Зато нарыл одну вещь http://habrahabr.ru/post/140611/
Чтобы разобраться, а не просто повторить частный случай, вам придётся прочитать и вникнуть.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- FILIK
- Первый раз сказал Мяу!
- Сообщения: 37
- Зарегистрирован: Сб дек 18, 2010 11:20:49
- Откуда: горловка.украина
Re: crc8 даласса
возможно я вас не так понял,страница которую вы указали её там нет.книга состоит из 282 страниц.привожу как выглядит то что я читал.если вас не затруднит скиньте именно то что вы рекомендовали для ознакомления.
- Вложения
-
- Новый текстовый документ.txt
- (728 байт) 230 скачиваний
-
- Новый текстовый документ.txt
- (728 байт) 241 скачивание
я ещё крестиком умею вышивать
Re: crc8 даласса
У вас урезанное издание
http://radiokot.ru/forum/viewtopic.php? ... 1#p1887601
http://radiokot.ru/forum/viewtopic.php? ... 1#p1887601
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- FILIK
- Первый раз сказал Мяу!
- Сообщения: 37
- Зарегистрирован: Сб дек 18, 2010 11:20:49
- Откуда: горловка.украина
Re: crc8 даласса
за книгу огромное спасибо,начал разбираться.и сразу несколько выводов(если что-то не правильно исправте)1-код хеминга (еще раз повторюсь)исправляет один бит и детектирует двойные биты(ошибки).2сообщение разбивается на блок фиксированой длины+с добавлением контрольных бит(пример 10101010+контр.бты).3-не могу понять формулу на стр.358 тесть есть у меня число 10101010 +7 контрольных биn+1?
я ещё крестиком умею вышивать
Re: crc8 даласса
Это неравенство определяет, так сказать, "минимальное" соотношение битов данных и проверочных битов для кодов с коррекцией ошибок. И всё.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- FILIK
- Первый раз сказал Мяу!
- Сообщения: 37
- Зарегистрирован: Сб дек 18, 2010 11:20:49
- Откуда: горловка.украина
Re: crc8 даласса
тоесть проверочных бит должно быть не меньше определённого количества но небольше самого сообщения если я правильно понял вас ув.Kavka.
я ещё крестиком умею вышивать
Re: crc8 даласса
Это неравенство определяет минимальное количество проверочных битов для коррекции одной ошибки.
Ничего не мешает иметь проверочных битов больше чем битов данных. Тогда, например, можно составить код с коррекцией большего количества ошибок и детектирование ещё большего количества без возможности исправления.
Некоторые аспекты есть на стр. 372.
Ничего не мешает иметь проверочных битов больше чем битов данных. Тогда, например, можно составить код с коррекцией большего количества ошибок и детектирование ещё большего количества без возможности исправления.
Некоторые аспекты есть на стр. 372.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
-
iGraphicsS
- Нашел транзистор. Понюхал.
- Сообщения: 193
- Зарегистрирован: Ср фев 16, 2011 22:58:23
Re: crc8 даласса
Народ, помогите. У меня есть таблица рассчитанных (дизассемблиронных) значений CRC8-256 значений.
Есть допустим принятое сообщение: 0x05 0x06 0x00 0x01 0x00 0x00 0xDC, где 0xDC это CRC8
Как при помощи этой таблицы посчитать CRC? Как я понял: 0x05 = по таблице 0x3F итд. Но у нас же 6 байт. Что со значениями надо делать?
Не могу толковой информации найти как работать с табличным методом расчета CRC8. Просто не хочу себе голову забивать как обсчитывать CRC, полиномами всякими... Нету времени на это.
А всё, разобрался.
Необходимо первое число из таблицы взять, потом его ксорить со следующим. Получившийся результат снова из таблицы, и снова ксорить со следующим. И так все байты.
Код: Выделить всё
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Как при помощи этой таблицы посчитать CRC? Как я понял: 0x05 = по таблице 0x3F итд. Но у нас же 6 байт. Что со значениями надо делать?
Не могу толковой информации найти как работать с табличным методом расчета CRC8. Просто не хочу себе голову забивать как обсчитывать CRC, полиномами всякими... Нету времени на это.
А всё, разобрался.
Необходимо первое число из таблицы взять, потом его ксорить со следующим. Получившийся результат снова из таблицы, и снова ксорить со следующим. И так все байты.


