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

 
 
> Простой вопрос по защите данных с помощью CRC
_Pasha
сообщение Feb 2 2011, 08:08
Сообщение #1


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Доброго времени суток.
Дано: протокольчик связи между устройствами в одномастерной сети. Некое сообщение из, допустим, 4-х байт, защищено CRC7. Поле адреса устройства считается при подсчете CRC7, но реально не передается. Принимающая сторона при приеме сообщения учитывает свой адрес при подсчете CRC, проверяя таким образом валидность.
Я понимаю, что передать сообщение в виде (адрес)-(данные)-(CRC) или (данные)-(CRC) - это две большие разницы. Кто в теме, подскажите, чем можно оценить вероятность приема ложного сообщения во втором случае.
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 55)
kolobok0
сообщение Feb 3 2011, 09:27
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(_Pasha @ Feb 2 2011, 11:08) *
... (адрес)-(данные)-(CRC) или (данные)-(CRC) - это две большие разницы.....чем можно оценить вероятность приема ложного сообщения во втором случае.



ИМХО (не по научному):
если устройств на линии только два - то это равнозначные подходы. т.е. и там и там надёэность передаваемых данных будет подтверждаться CRC.
при не передаче адресса имеем:
1) лишний гимор по времени и алгоритму с детекцией наших данных. т.е. мы не можем до принятия всех данных, детекции конца фрэйма, подсчёт CRC и только после этого имеем признак свой-не свой. т.е. в скорострельных протоколах это решение фууууу.
2) на CRC возлагается не только задача подтверждения достоверности, но и механизма идентификации данных.
3) есть вероятность того, что при не правильном адрессе CRC совпадёт. при этом для сбоя необходимо испортить один байт. при передачи адреса - два.

где то так
(круглый)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 3 2011, 10:54
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(kolobok0 @ Feb 3 2011, 12:27) *
ИМХО (не по научному):
***

Это понятно, интересует как раз по-научному, дабы узнать, больно это или нет sm.gif Тем более, что подразумеваемый байт адреса является априори передаваемым без искажений, что изрядно напускает туману на
Цитата
3) есть вероятность того, что при не правильном адрессе CRC совпадёт. при этом для сбоя необходимо испортить один байт. при передачи адреса - два.

и лишая это утверждение смысла.
sm.gif
ЗЫ
Цитата
мы не можем до принятия всех данных, детекции конца фрэйма

Об этом я не говорил. И оно в реале не так - есть начало фрейма и его фиксированная длина. Такшта... Но к топику это не относится, да и вообще, священная корова модбас так и работает, как Вы сказали, и никто не жужжит.
Go to the top of the page
 
+Quote Post
xemul
сообщение Feb 3 2011, 12:24
Сообщение #4



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(_Pasha @ Feb 2 2011, 11:08) *
Я понимаю, что передать сообщение в виде (адрес)-(данные)-(CRC) или (данные)-(CRC) - это две большие разницы. Кто в теме, подскажите, чем можно оценить вероятность приема ложного сообщения во втором случае.

Второй случай можно рассматривать как сообщение с вероятностью появления 8-кратной ошибки, что существенно превышает детектирующие возможности CRC. Т.е. даже без каких-либо ошибок при передаче сообщение может быть принято более другим приёмником за своё с вероятностью >> 0 (лень искать формулы).
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 3 2011, 12:56
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(xemul @ Feb 3 2011, 15:24) *
(лень искать формулы).

Ну, хоть ткните носом, где искать, плз. Тупой вычислительный эксперимент со случайными искажениями 1бита особой разницы не показывал.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Feb 3 2011, 13:18
Сообщение #6


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(_Pasha @ Feb 3 2011, 17:56) *
Ну, хоть ткните носом, где искать, плз. Тупой вычислительный эксперимент со случайными искажениями 1бита особой разницы не показывал.

ИМХО имелось ввиду, что CRC может совпадать у некоторых комбинаций первого байта.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 3 2011, 13:30
Сообщение #7


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(GetSmart @ Feb 3 2011, 16:18) *
ИМХО имелось ввиду, что CRC может совпадать у некоторых комбинаций первого байта.

Еще забыл важную деталь. smile3046.gif Байт адреса(подразумеваемый), содержал адреса 0..127, т.к. 1 бит из байта, содержащего crc7 все-таки был частью информационного сообщения.
Go to the top of the page
 
+Quote Post
xemul
сообщение Feb 3 2011, 14:03
Сообщение #8



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(_Pasha @ Feb 3 2011, 15:56) *
Ну, хоть ткните носом, где искать, плз. Тупой вычислительный эксперимент со случайными искажениями 1бита особой разницы не показывал.

С ходу, естесно, ничего не нашлось. Пригрезилось, что было что-то во 2-м или 3-м томе Кнута, но под рукой они у меня в djvu и без оглавления.
CRC (с правильным полиномом) позволяет детектировать
- 2-кратные ошибки;
- любое нечётное количество ошибок;
- бурстовые ошибки длиной менее разрядности полинома.

Если выберете адреса устройств так, что они будут удовлетворять этим требованиям, то можно обойтись и без передачи адреса.

А эксперимент Вам нужно провести, имхо, другой: для одних и тех же данных проверять совпадение CRC для всех адресов, и так 2^32 раза. sm.gif

UPD
можно проще: проверить 255 чисел 0x010000000000..0xff0000000000 на целочисленную делимость на образующий полином, те, что делятся, выкинуть из множества адресов.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 3 2011, 15:10
Сообщение #9


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(xemul @ Feb 3 2011, 17:03) *
и так 2^32 раза. sm.gif

Ну, вообще-то 2^30 раз sm.gif
Спасибо.
Go to the top of the page
 
+Quote Post
DW0
сообщение Feb 3 2011, 18:28
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 9-08-10
Из: Украина
Пользователь №: 58 828



Ну давайте рассудим так, имеем посылку длиной m бит, имеем длину полинома n бит.

количество комбинаций на одну контрольную сумму k = m/(2^n)
вероятность, что одна переданная посылка исказилась так, что контрольная сумма передаваемой совпала с контрольной суммой приемника равно:
количество совпадающих сообщений разделить на общее количество возможных сообщений.

p = k/m, p = (m/(2^n))/m, p = 1/(2^n),
вот сам пишу и удивляет то, что длина сообщения не влияет на вероятность сбоя, а вот количество посылок за единицу времени будет ее существенно повышать, если кто найдет ошибку, поправите буду благодарен.
Go to the top of the page
 
+Quote Post
DW0
сообщение Feb 4 2011, 19:11
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 9-08-10
Из: Украина
Пользователь №: 58 828



Цитата(DW0 @ Feb 3 2011, 20:28) *
Ну давайте рассудим так, имеем посылку длиной m бит, имеем длину полинома n бит.

количество комбинаций на одну контрольную сумму k = m/(2^n)
вероятность, что одна переданная посылка исказилась так, что контрольная сумма передаваемой совпала с контрольной суммой приемника равно:
количество совпадающих сообщений разделить на общее количество возможных сообщений.

p = k/m, p = (m/(2^n))/m, p = 1/(2^n),
вот сам пишу и удивляет то, что длина сообщения не влияет на вероятность сбоя, а вот количество посылок за единицу времени будет ее существенно повышать, если кто найдет ошибку, поправите буду благодарен.


хочу немного поправить, p = k/m, p = ((2^m)/(2^n - 1))/(2^m), p = 1/(2^n - 1), k = (2^m)/(2^n - 1), но на общий результат существенно не влияет.
p = 1/(2^n - 1) - это у нас вероятность получения неверных данных без обнаружения ошибки, речь идет о одном пакете защищенном контрольной суммой n-разрядов.

для получения вероятности отказа за какой либо промежуток времени, считаете количество переданных пакетов например j и получаем

P = 1 - e^(j*ln(1-p))
после небольших преобразований:

P = 1 - (1 - p)^j

P = 1 - (1 - 1/(2^n-1))^j

для n = 8 получим и скоростью передачи 100 посылок в секунду за сутки получим:

1 - (1 - 1/(2^8 - 1))^100*60с*60мин*24часа = 1 - 1,4211728172713606486967518108355e-14744

вероятность отказа достаточно высока

тоже самое для n = 64 получим 4,6837533851989031228382687390855e-13
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 4 2011, 21:20
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(DW0 @ Feb 3 2011, 21:28) *
вот сам пишу и удивляет то, что длина сообщения не влияет на вероятность сбоя, а вот количество посылок за единицу времени будет ее существенно повышать, если кто найдет ошибку, поправите буду благодарен.

Ничего удивительного.
Штука в том, что обычно вероятности ошибок распределены совсем не равномерно. Какие-то классы ошибок CRC отлавливает всегда (однобитовые, например), и эти классы ошибок преобладают в определённых системах связи.
Поэтому реалистичный анализ обязан учитывать особенности распределения вероятностей ошибок.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 5 2011, 07:28
Сообщение #13


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(DW0 @ Feb 4 2011, 22:11) *
P = 1 - e^(j*ln(1-p))

Такое распределение было бы для случая непрерывной передачи битового потока.
Теперь, ближе к телу ©
у нас посылки по 8 бит , старт-бит==0 2стоп-бита==1. Плюс случайные задержки между пакетами.
Тут другое интересно. Вероятность неправильной интерпретации не зависит от длины сообщения. Но это - для переданых и принятых данных. А у нас - при подсчете ЦРЦ разные начальные значения сдвигового регистра. Это куда относить? cranky.gif
Go to the top of the page
 
+Quote Post
DW0
сообщение Feb 5 2011, 08:46
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 9-08-10
Из: Украина
Пользователь №: 58 828



Цитата(_Pasha @ Feb 5 2011, 09:28) *
Такое распределение было бы для случая непрерывной передачи битового потока.


P = 1 - e^(j*ln(1-p))

j - обращу внимание на эту переменную, которая задает как раз количество пакетов.
Эта формула естественно приблизительная, оговорю принятые допущения.

1. Считаем, что на каждую контрольную сумму припадает с одинаковой вероятностью количество вариантов данных k = (2^m)/(2^n - 1), 2^m - возможные варианты данных, 2^n - 1 - возможные варианты контрольных сумм. Блин опять промазал вычитать единицу, нужно из числителя, то есть одна то комбинация входных данных является корректной, k = (2^m - 1)/(2^n), ну это большой разницы не сыграет.

2. В этой модели не учитываются вероятности отказов, предполагаются любые отказы (сбои) равновероятные.

p = (2^m - 1)/2^(n+m) - вероятность не обнаруженного сбоя одного пакета. для больших m справедливой будет P = 1 - (1 - 1/2^n)^j

P = 1 - (1 - (2^m - 1)/2^(n+m))^j

так вот если мы хотим посчитать какая будет вероятность отказа за год то j должна равняться количеству пакетов за переданных год.
Go to the top of the page
 
+Quote Post
i-mir
сообщение Mar 21 2011, 20:58
Сообщение #15


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

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



Если кратко, то экспериментально были получены следующие цифры:
CRC8 устойчив к ошибкам 1х,2х,3х и далее всем нечетным и пропускает каждую 130 ошибку 4х, 6х и выше
Если нужна математика, то выбирается наиболее подходящая модель для вашего случая, например классически
по ГОСТ 26.205-88 и т.д. Расчет есть чистая комбинаторика - берете количество сочетаний на данную ошибку
совместно с вероятностью бита или области кристалла (в зависимости от модели).
Например при вероятности ошибки одного бита 0.1, посылка 24 бит + CRC8 даст вероятность необнаруживаемого
искажения 2*10-3. Если канал связи более-менее, p=10-3, то необнаруживаемая ошибка при тех же данных составит
уже 2*10-10 и т.д.
Самое важное это выбор полинома четко под вашу задачу. Я на форуме уже выкладывал кое-какие мысли по этому
поводу, но повторюсь что русскому хорошо то немцу смерть - сталкивался с случаями неприменимости распространенных
полиномов, т.к. пропускают буквально веь мусор в канале.

Сообщение отредактировал i-mir - Mar 21 2011, 21:01
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 21 2011, 23:45
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(_Pasha @ Feb 2 2011, 11:08) *
Поле адреса устройства считается при подсчете CRC7, но реально не передается.


Это как?


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 03:42
Сообщение #17


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



вместо
addr,byte1,byte2,byte3,byte4,crc
передаётся
byte1,byte2,byte3,byte4,crc

при сравнении на приёме вместо addr подставляется свой адрес девайса, который девайс ессно знает.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 22 2011, 08:38
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(GetSmart @ Mar 22 2011, 06:42) *
вместо
addr,byte1,byte2,byte3,byte4,crc
передаётся
byte1,byte2,byte3,byte4,crc

при сравнении на приёме вместо addr подставляется свой адрес девайса, который девайс ессно знает.



Ваше объяснение ничего не объясняет. Это просто некорректная переформулировка некорректного первоначального описания.

Устройство что, на шине одно, если "адрес не передается"? Если действительно так - тогда нет никакой разницы в вероятности пропуска ошибки.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 08:41
Сообщение #19


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Описание вполне ясное. Все всё поняли, кроме Oldring-а sm.gif

Устройств много. А передавать адрес не обязательно, т.к. в алгоритмах девайсов с неправильным адресом CRC все-равно не совпадёт и пакет не будет "принят". Только у девайса с правильным адресом CRC совпадёт.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 22 2011, 09:01
Сообщение #20


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(GetSmart @ Mar 22 2011, 11:41) *
Устройств много. А передавать адрес не обязательно, т.к. в алгоритмах девайсов с неправильным адресом CRC все-равно не совпадёт и пакет не будет "принят". Только у девайса с правильным адресом CRC совпадёт.

Тогда надо значительно увеличивать кодовое расстояние.
Вот с википедии характеристика CRC8:
Цитата
MaxLen: 15 байт (127 бит) - обнаружение
одинарных, двойных, тройных и всех нечетных ошибок

CRC7 будет соответственно обнаруживать одинарные, двойные и тройные ошибки ВО ВСЁМ сообщении.
То есть, максимально имеем 3 бита на адрес, и при этом любая дополнительная ошибка может перевести сообщение в разряд "правильных" для неправильного адреса.
В общем, подход весьма скользкий.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 09:08
Сообщение #21


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(MrYuran @ Mar 22 2011, 14:01) *
CRC7 будет соответственно обнаруживать одинарные, двойные и тройные ошибки ВО ВСЁМ сообщении.
То есть, максимально имеем 3 бита на адрес, и при этом любая дополнительная ошибка может перевести сообщение в разряд "правильных" для неправильного адреса.
В общем, подход весьма скользкий.

Он "скользкий" так же как и сама CRC, когда незнакомый с ней человек с ней знакомится.
Там всё просчитывается. Не на супер компутере, а скорее на калькуляторе.
Непереданный байт адреса не является ошибкой. Потому как можно взять 8 бит адреса и так работать. Что уже противоречит ограничению в 3 бита.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
i-mir
сообщение Mar 22 2011, 09:16
Сообщение #22


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

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



Конкретные параметры топикстартер не указал, поэтому принимаю вариант предложеный GetSmart c CRC8.
Задача: сравнить вероятности необнаруживаемого искажения посылок 6 байт и 5 байт для CRC8.
Вероятность искажения одного бита в канале связи принимаем p=10-3. Тогда:
Для 48 бит p(crc8)=1.4*10-9
Для 40 бит p(crc8)=6.8*10-10
Вывод: если адрес не передавать, то надежность будет выше в два раза.
PS. Лень сейчас модельку переделать для CRC7, поэтому привожу готовое для CRC8.
Порядок цифр примерно тот-же.

Сообщение отредактировал i-mir - Mar 22 2011, 09:19
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 22 2011, 09:26
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(GetSmart @ Mar 22 2011, 11:41) *
Описание вполне ясное. Все всё поняли, кроме Oldring-а sm.gif

Устройств много. А передавать адрес не обязательно, т.к. в алгоритмах девайсов с неправильным адресом CRC все-равно не совпадёт и пакет не будет "принят". Только у девайса с правильным адресом CRC совпадёт.


Если устройств много, тогда передавать адрес как раз обязательно. Иначе устройства не поймут, к кому пакет адресован. И принимать обязательно. Но при расчете CRC в устройстве эти биты известны заранее. Дело нt в том, понял я или нет, дело в чёткости формулировок, необходимой для анализа.

Потому что если адрес передается, то ошибки в нём точно так же приводят к неправильному приёму пакета. А дальше многое зависит от количества устройств на шине и распределения их адресов. В крайнем случае 128 устройств на шине, пакеты к которым посылаются с равной вероятностью, всё сводится просто к оценке вероятности пропуска ошибки в пакете длиной 39 бит. На самом деле, не сильно выше, чем для пакета, длиной 32 бита, особенно, если ошибки приема битов в блоке могут коррелировать. Если же устройств сильно меньше 128, то дополнительным выбором хорошего распределения их адресов можно дополнительно снизить вероятность ошибочного приема адреса.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 09:38
Сообщение #24


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(Oldring @ Mar 22 2011, 14:26) *
...Иначе устройства не поймут, к кому пакет адресован.
...Дело на в том, понял я или нет, дело в чёткости формулировок, необходимой для анализа.

Это не верно.
Чёткая формулировка - при отсутсвии искажений в канале связи передавать адрес не обязательно. Устройства 100% поймут кому адресован пакет. CRC содержит адрес девайса точно так же как простейшая контрольная сумма например в HEX файле, если из HEX строки убрать первый байт.

При наличии ошибок вопрос стоит только в их кол-ве, при котором пакеты будут правильно приниматься. Причём относительно ситуации с присутствием адреса в пакете, то бишь классическим свойствам CRC.

Сообщение отредактировал GetSmart - Mar 22 2011, 09:38


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 22 2011, 09:47
Сообщение #25


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(GetSmart @ Mar 22 2011, 11:38) *
Чёткая формулировка - при отсутсвии искажений в канале связи передавать адрес не обязательно. Устройства 100% поймут кому адресован пакет.

При гарантированном отсутствии помех и CRC считать смысла нет. Подал адрес, и всё!
В том-то и задача, что топикстартер хочет и от помех перестраховаться, и длину передачи уменьшить. Я так не делал бы. Чем более избыточный код, тем больше ошибок будет обнаружено.
Хотя, если проверка сводится к байту CRC, то как раз будет менее достоверной информация для более длинного пакета. Но дело в том, что искажения одного байта адреса менее вероятны, чем искажения по всей длине пакета. Поэтому вероятность ложного принятия чужого пакета будет меньше.
Что, если из-за многобитовой ошибки устройство посчитает своим пакет, предназначенный не ему?
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 22 2011, 09:48
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(GetSmart @ Mar 22 2011, 12:38) *
Это не верно.
Чёткая формулировка - при отсутсвии искажений в канале связи передавать адрес не обязательно. Устройства 100% поймут кому адресован пакет.


Тогда я вас совершенно не понимаю.
Два устройства сидят на шине. Адрес не передается. Как устройства понимают, кому адресован пакет?


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 09:51
Сообщение #27


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(Oldring @ Mar 22 2011, 14:48) *
Как устройства понимают, кому адресован пакет?

Через (квази) обратное преобразование из CRC.

Даже ViKo всё понял и задал правильный вопрос.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 22 2011, 09:52
Сообщение #28


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(GetSmart @ Mar 22 2011, 12:08) *
Непереданный байт адреса не является ошибкой. Потому как можно взять 8 бит адреса и так работать. Что уже противоречит ограничению в 3 бита.

Если адрес передаваемого сообщения отличается от адреса приёмника более чем в 3 битах, CRC не выявит ошибки.
Вот это я хотел сказать.
Отсюда и ограничение в 3 бита адреса, не считая дополнительных ошибок.
Или мы опять друг друга не поняли.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 09:53
Сообщение #29


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(ViKo @ Mar 22 2011, 14:47) *
Что, если из-за многобитовой ошибки устройство посчитает своим пакет, предназначенный не ему?

Ровно та же ситуация и с обычной CRC. Вопрос только в относительности надёжности.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 22 2011, 09:56
Сообщение #30


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(GetSmart @ Mar 22 2011, 11:51) *
Даже ViKo всё понял...

почему "даже"?

Цитата(GetSmart @ Mar 22 2011, 11:53) *
Ровно та же ситуация и с обычной CRC. Вопрос только в относительности надёжности.

Не та же ситуация. Я чуть выше подкорректировал свой ответ. Зависит от длины сообщения.

Здесь еще важно, что опаснее - передать сообщение не тому адресату, или передать ошибочное сообщение тому, кому нужно. Первое мне видится более тяжелым. Поэтому байт адреса я оставил бы.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 09:57
Сообщение #31


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(MrYuran @ Mar 22 2011, 14:52) *
Если адрес передаваемого сообщения отличается от адреса приёмника более чем в 3 битах, CRC не выявит ошибки.
Вот это я хотел сказать.

Вас кто-то ввёл в заблуждение что CRC не выявляет ошибки более 3 бит.


Цитата(MrYuran @ Mar 22 2011, 14:52) *
Или мы опять друг друга не поняли.

Поняли. На половину хотя бы.
Просто "пугает" неизвестность. Правильных цифр здесь пока не знает никто.
Результат может быть приемлемым. А может быть и нет.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 22 2011, 09:57
Сообщение #32


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(GetSmart @ Mar 22 2011, 12:53) *
Ровно та же ситуация и с обычной CRC. Вопрос только в относительности надёжности.

В данном случае передавать адрес без всяких ЦРЦ будет намного надёжнее, чем выковыривать его косвенно при помощи дохленького ЦРЦ7.
Цитата
Вас кто-то ввёл в заблуждение что CRC не выявляет ошибки более 3 бит.

Возвращаемся к истокам sm.gif
Цитата
Дано: протокольчик связи между устройствами в одномастерной сети. Некое сообщение из, допустим, 4-х байт, защищено CRC7. Поле адреса устройства считается при подсчете CRC7, но реально не передается. Принимающая сторона при приеме сообщения учитывает свой адрес при подсчете CRC, проверяя таким образом валидность.

Я исходил из поставленной задачи.
CRC7 не выявит больше 3 ошибочных бит на всё сообщение, это можете не сомневаться.
Вообще, за это время можно уже модельку накидать.
И увидеть всё наглядно.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 10:02
Сообщение #33


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(ViKo @ Mar 22 2011, 14:56) *
Я чуть выше подкорректировал свой ответ.

Воды долили? Принципиально ничего не изменилось.

Цитата(MrYuran @ Mar 22 2011, 14:57) *
В данном случае передавать адрес без всяких ЦРЦ будет намного надёжнее, чем выковыривать его косвенно при помощи дохленького ЦРЦ7.

Насколько? Без цифр пустой разговор.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 22 2011, 10:28
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(_Pasha @ Feb 2 2011, 11:08) *
Некое сообщение из, допустим, 4-х байт, защищено CRC7. Поле адреса устройства считается при подсчете CRC7, но реально не передается.


Не знаю какой у вас полином, но если вы тоже ещё не знаете - возьмите полином из (63,56) БЧХ кода с корнями 0, 1, то есть примитивный двоичный полином степени 6, умноженный на полином x+1. У него минимальное расстояние будет равно 4. Вероятность пропуска ошибок при белом шуме с вероятностью ошибки одного бита p будет порядка (21*p)^4 для 128 устройств на шине, или порядка (17*p)^4 для одного устройства на шине. Вероятность пропуска полностью случайного блока будет N/16384, где N - число устройств на шине.

Цитата(GetSmart @ Mar 22 2011, 12:51) *
Через (квази) обратное преобразование из CRC.


Для полного диапазона адресов в 128 устройств абсолютно бессмыссленное занятие. Вероятность неправильного приема не отличается от просто передачи 7 бит адреса вместо поля CRC.

Для меньшего количества устройств, боюсь, кодовое расстояние в результате легко может упасть до единицы, если не подбирать распределение адресов специально. То есть для достаточно большого количества устройств будет сравнимо с передачей хуже передачи 6 битов адреса плюс бит контроля четности.


А более точно можно посчитать только с учетом реального распределения кодовых слов, но результат кардинально хуже нормального дополнительного СRС поля и передаваемого адреса на белом шуме, и существенно хуже для полностью случайных блоков.

Но можно кое-что оценить исходя из 7 бит на адрес плюс проверку. Для двух устройств у нас остается один бит адреса и 6 бит проверочных, что позволяет использовать код Хэмминга с минимальным расстоянием 3 и еще довольно низкой вероятностью необнаружения одиночных ошибок. Для 2 бит адреса остается 5 проверочных бит, то есть двоичный циклический код неизбежно будет пропускать некоторые двойные ошибки. Однако можно получить линейный код с расстоянием 2 из кода Хэмминга длиной 63, выкинув, в том числе, 1 проверочный бит. Уже для 3 бит адреса такой метод гарантированно оставляет расстояние лишь 1, что бессмыссленно по сравнению с просто контролем четности.

Цитата(MrYuran @ Mar 22 2011, 12:57) *
CRC7 не выявит больше 3 ошибочных бит на всё сообщение, это можете не сомневаться.


Спорим, выявит 6 указанных мною ошибочных бит?


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 10:36
Сообщение #35


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(Oldring @ Mar 22 2011, 15:28) *
Для полного диапазона адресов в 128 устройств абсолютно бессмыссленное занятие. Вероятность неправильного приема не отличается от просто передачи 7 бит адреса вместо поля CRC.

Кто сказал что диапазон адресов = 128? Паша вроде байт хотел сэкономить.

Но вообще, прошу заметить, что идея не моя sm.gif Мне как и ТС любопытен был ответ в количественном виде.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 22 2011, 10:57
Сообщение #36


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(GetSmart @ Mar 22 2011, 12:36) *
Мне как и ТС любопытен был ответ в количественном виде.

Без знания вероятности искажений одиночного бита в канале связи ответ никогда не узнать.
А также - пары битов, тройки битов, четверки битов, и т.д.
А что, если имеется помеха, приводящаа к полному затыку канала на весь интервал передачи?

Передаем 4 байта. Один бит исказился. Сообщение ошибочное. 256 устройств высчитали CRC, добавив свой адрес. У кого-то CRC совпадет.
(В-принципе, CRC не обязательно у кого-то должен совпасть, но очень вероятно. Для этого, собственно, CRC и создан. Чтобы для любых даже слабо отличающихся кодов создать сильно отличающийся результат. Поэтому, представив, что результат вычисления CRC будет иметь равномерную плотность вероятности, получить можно любой код.)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 22 2011, 11:23
Сообщение #37


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Oldring @ Mar 22 2011, 13:28) *
Спорим, выявит 6 указанных мною ошибочных бит?

Засчёт более короткого сообщения (по сравнению с махlen=127)? Возможно.
Под рукой таблиц нет, искать некогда.
Поверю на слово.

Цитата(GetSmart @ Mar 22 2011, 13:36) *
Кто сказал что диапазон адресов = 128? Паша вроде байт хотел сэкономить.

Лучше бы сказал, для чего он это хотел.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
i-mir
сообщение Mar 22 2011, 11:26
Сообщение #38


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

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



Цитата(GetSmart @ Mar 22 2011, 14:36) *
Мне как и ТС любопытен был ответ в количественном виде.

Странно, ведь задача не поставлена - а вы хотите в цифрах ответ.
Из-за этого куча шума на ветке, хотя вопрос далеко не сложный.
Мало того, можно и абсолютный уровень по безопасности вывести
для наиболее тяжелого условия работы канала связи (например
включаем рядом дрель, усиливаем и XOR в канал).
Все эти модели есть и прекрасно работают. Но для получения
ответа дайте корректное условие в цифрах. cool.gif

Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 22 2011, 11:32
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(MrYuran @ Mar 22 2011, 14:23) *
Засчёт более короткого сообщения (по сравнению с махlen=127)? Возможно.


За счет того, что любой систематический циклический код обнаруживает бурсты ошибок длиной, не превышающей его количества проверочных бит.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 22 2011, 12:36
Сообщение #40


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(MrYuran @ Mar 22 2011, 13:23) *
Лучше бы сказал, для чего он это хотел.

Для того и хотел, имхо. Укоротить длину сообщения.
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 25 2011, 07:20
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(MrYuran @ Mar 22 2011, 16:01) *
Вот с википедии характеристика CRC8:
Цитата
CRC7 будет соответственно обнаруживать одинарные, двойные и тройные ошибки ВО ВСЁМ сообщении.
То есть, максимально имеем 3 бита на адрес, и при этом любая дополнительная ошибка может перевести сообщение в разряд "правильных" для неправильного адреса.
Если нетрудно, ткните носом, где это написано. Полазил-полазил по википедии - не нашёл.
Меня заинтересовал вопрос зависимости оптимально применимой длины поля CRC от длины пакета. Т.е. для каких длин пакетов применяется CRC8, для каких CRC16 и т.д. Хотя бы "среднепотолочные" цифры, для распространённого случая.
Если кто знает, пошлите, пожалуйста, по ссылке )))


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
i-mir
сообщение Apr 26 2011, 05:45
Сообщение #42


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

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



В свое время писал об этом.
http://electronix.ru/forum/index.php?s=&am...st&p=898290

ПС. Википедия не дает и не может давать глубоких ответов - только стартовую точку ...

Сообщение отредактировал i-mir - Apr 26 2011, 05:47
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 26 2011, 06:55
Сообщение #43


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Krys @ Apr 25 2011, 11:20) *
Если нетрудно, ткните носом, где это написано. Полазил-полазил по википедии - не нашёл.

Есть там.
Надо развернуть "плюсики" с приведёнными примерами.
Ну а если хотите серьёзно разобраться - это надо литературу читать.
Я в своё время диплом писал по корректирующим кодам, больше всего пользы извлёк из 500-страничной книжки с красной обложкой, автор какой-то японец.
То ли Токура, то ли что-то в этом роде...
Не эта ли?
Блин, а я в читальном зале часами сидел, домой не выдавали такие раритеты...

Вот ещё...

Ну и далее в том же духе.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Apr 26 2011, 08:40
Сообщение #44


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



До кучи
Go to the top of the page
 
+Quote Post
i-mir
сообщение Apr 26 2011, 14:10
Сообщение #45


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

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



Цитата
Есть там. Надо развернуть "плюсики" с приведёнными примерами.


Проблема в том, что приведенные примеры не дадут вам "динамики" работы СRC,
для этого пишется свой код и проводятся испытания, порой длительные.

Цитата
Хотя бы "среднепотолочные" цифры, для распространённого случая.


Если будет хоть немного конкретики - можно ответить на вопрос, предложить хороший полином,
проанализировать помехоустойчиовсть и т.д. Что передается, в каком объеме, в каких
условиях, требования к надежности/безопасности и т.д. ?
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 27 2011, 10:33
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Конкретика: мы "от фонаря" порешали, что заголовок пакета специфического устройства размером 32 байта закрываем 8-битовой CRC, а поле данных длиной до 2 кБ закрываем 16-битовой CRC. Теперь, прочитав эту тему, я начинаю покусывать локти, что и там, и там, мы заложили недостаточный размер CRC, т.е. могу предположить, что надо было 16 бит и 32 бита соответственно.
Далее после добавления CRC весь пакет передаётся в канал, закодированный в 8B/10B. Канал связи - не радио, а проводной. Может быть либо медь, либо оптика. Медь - не более 3 метров, LVDS, по UTP. Оптика - до 2 км. По закону распределения ошибок в канале такого типа - сказать ничего не могу, т.к. мои познания в этом малы. Могу довериться вашему опыту.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
i-mir
сообщение Apr 27 2011, 13:37
Сообщение #47


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

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



Цитата
По закону распределения ошибок в канале такого типа - сказать ничего не могу


Все равно нужно от чего-то оттолкнуться если нет экспериментальных данных.
Например ГОСТ 26.205-88 КОМПЛЕКСЫ И УСТРОЙСТВА ТЕЛЕМЕХАНИКИ, п.2.11.2.
Укажите согласно ГОСТу требования к вашему устройству на каналы связи.
Если это устройства "критического использования" - то нужно использовать
другие отраслевые документы.

После этого можно будет прикинуть помехозащищенность вашего протокола
и его соответствие требованием. Если уровень защиты CRC "в лоб" будет не
высоким, тогда рассматриваются другие типы кодирования.
Скажите в чем необходимость 8B/10B ? Выравнивание потока 0/1 для оптики ?

В качестве примера, для очень зашумленного канала (р=10е-3) вероятности
необнаруживаемого пропуска ошибок CRC8/16 привел на рис. Видно что
заголовок у вас защищен в три раза лучше чем поле данных.
Абсолютные значения вероятностей будут зависить от исходных данных
и выбранных вами требований.

Сообщение отредактировал i-mir - Apr 27 2011, 14:30
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  _____26_205_88.pdf ( 983.09 килобайт ) Кол-во скачиваний: 998
 
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 28 2011, 07:33
Сообщение #48


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Уважаемый i-mir, спасибо за конкретную помощь.
Цитата(i-mir @ Apr 27 2011, 20:37) *
Все равно нужно от чего-то оттолкнуться если нет экспериментальных данных.
Например ГОСТ 26.205-88 КОМПЛЕКСЫ И УСТРОЙСТВА ТЕЛЕМЕХАНИКИ, п.2.11.2.
Укажите согласно ГОСТу требования к вашему устройству на каналы связи.
Если это устройства "критического использования" - то нужно использовать
другие отраслевые документы.
Спасибо за ГОСТ. Думаю, категория 3я, ну максимум 2я. Не критического использования. Внутри поля данных этого пакета будут инкапсулированы пакеты других протоколов, у них будет своя защита от ошибок. К тому же ещё 8B/10B часть ошибок выловит. Он ловит все единичные ошибки в пределах одного символа.

Цитата(i-mir @ Apr 27 2011, 20:37) *
Скажите в чем необходимость 8B/10B ? Выравнивание потока 0/1 для оптики ?
Да, устранение постоянной составляющей, самосинхронизация битов и байтовая синхронизация.

Цитата(i-mir @ Apr 27 2011, 20:37) *
В качестве примера, для очень зашумленного канала (р=10е-3) вероятности
необнаруживаемого пропуска ошибок CRC8/16 привел на рис. Видно что
заголовок у вас защищен в три раза лучше чем поле данных.
Абсолютные значения вероятностей будут зависить от исходных данных
и выбранных вами требований.
У меня здесь следующие непонятности:
1. Где Вы взяли такие графики? Их считает программа? А Вы могли бы ей поделиться?
2. Может быть, более наглядно было бы построить графики для той же вероятности, что фигурирует в ГОСТе (т.е. 1e-4)?
3. "вероятности необнаруживаемого пропуска ошибок" - этот термин какому соответствует в табл. 3 ГОСТа?
4. Как Вы рассчитали, что в 3 раза лучше заголовок защищён? Я смотрю на графики, там для CRC8 для длины 32 байта вероятность неотличима от нуля. Или это для длины в битах? Тогда для графика CRC16 нет данных для длины 2 кБ. В любом случае вижу, что защищённость поля данных никакая...
5. Как вообще трактовать такую вероятность? Это обратная величина от среднего количества пакетов, спустя которые ошибка в одном пакете не будет обнаружена? Например, смотрим на график для CRC8, для значения длины 256 (попугаев), вероятность 2,5e-5. Обратная величина это 40 000. Т.е. правильно ли я понимаю, что, 40 000 пакетов принимаются, если в них появляется ошибка, то она обнаруживается, а потом 40 001-й пакет проходит, и в нём ошибка не обнаруживается? Или как правильно трактовать?
Извиняюсь за глупые вопросы, в этом мои знания неглубоки, а вузовский курс тервера давно благополучно забыт, к сожалению.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 28 2011, 08:51
Сообщение #49


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Krys @ Apr 28 2011, 11:33) *
5. Как вообще трактовать такую вероятность? Это обратная величина от среднего количества пакетов, спустя которые ошибка в одном пакете не будет обнаружена? Например, смотрим на график для CRC8, для значения длины 256 (попугаев), вероятность 2,5e-5.

Вероятность ошибки обычно считается на бит.
256 - длина блока в битах, то есть 32 байта.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 29 2011, 02:40
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Ну я так и предположил, что в битах. Но для сути 5го вопроса (трактование) это неважно, в каких попугаях измерять


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
i-mir
сообщение Apr 29 2011, 06:04
Сообщение #51


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

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



Проблема как раз в другом, и заключается в вопросе - чего вы собственно хотите?
Если у вас есть требования предъявляемые заказчиком - давайте обсудим.
Ели требований нет - тогда можно взять из ГОСТа любые понравившиеся.
Отсюда проблемы в трактовке и анализе уровня помехозащищенности.
На рис. приведены относительные уровни - для того чтобы показать лишь принцип.
Выводов может быть несколько:
1. Нет смысла дробить защиту на заголовок и тело в предложеном виде
2. Если уровня защиты хватит - можно остановиться лишь на общем CRC16
3. Для случая "обычного канала связи" где p=10е-4, P=7.4е-8 (для 2304 бит)
и вы попадаете в 3-ю колонку изделий по ГОСТ 26.205-88 , табл.3
4. Если уровня защиты не хватит - это предмет для обсуждения, но тогда
укажите подробнее о задаче.
5. Если у вас есть желание привести цифры к интенсивностям отказов (1/час)
и т.д. - тема отдельного разговора
6. Здесь все то что не вошло в предыдущие пять пунктов ... sm.gif

PS. Прошу прощения - не увидел что речь идет именно о 2048 байтах данных,
это уж слишком большой блок для CRC16 по определению....
Вам нужно обратиться к стандарту Ethernet IEEE 802.3 (CRC32) в любом случае.







Сообщение отредактировал i-mir - Apr 29 2011, 06:15
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 29 2011, 09:55
Сообщение #52


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(i-mir @ Apr 29 2011, 13:04) *
6. Здесь все то что не вошло в предыдущие пять пунктов ... :)
Спасибо за ответы, я для себя в общем-то всё прояснил. Заголовок будем продолжать закрывать CRC8, а а для поля данных изменим CRC16 на CRC32. Тем более, что лишние 2 байта - это ничто по сравнению с 2048 байт, так что не жалко.

Цитата(i-mir @ Apr 29 2011, 13:04) *
1. Нет смысла дробить защиту на заголовок и тело в предложеном виде
У нас бывает, что заголовки передаются без поля данных. Тогда для унификации лучше пусть CRC8 будет в любом случае.

Цитата(i-mir @ Apr 29 2011, 13:04) *
6. Здесь все то что не вошло в предыдущие пять пунктов ... :)
А всё же, по моему списку, не могли бы Вы разъяснить ответы на вопросы 1, 3, 5?


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
i-mir
сообщение May 2 2011, 19:25
Сообщение #53


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

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



Как ни банально звучит, в чистом виде ответов ни в инете ни в книгах нет.
Теорий и формул много, но на практике, с приемлемой точностью можно
использовать простую комбинаторику. Здесь принимается модель
последовательного канала связи с простейшим потоком ошибок (пуассонов).
Для работы например с ПЛИС, следует использовать другую модель,
где равновероятны любые сочетания и т.д.

После этого CRC тестируется на помехозащищенность заданного блока
данных используя как метод прямого перебора, так и Монте-Карло.
Корректируются теоретические модели (например разные полиномы
CRC8 показывают помехозащищенность отличающуюся на порядки).

Относительно вероятностей - нужно понимать опять-же что вам нужно.
Если задача привести ваш канал связи к уровню стандартов в системах
с повышенной безопасностью (интенсивность 10е-15 1/час), то это одно,
а вот просто сказать - что все ок, это другое. В последнем случае не
заморачиваясь, принимайте CRC32 на базе IEEE 802.3 - это общепринято,
правда для блоков до 1500 байт.

Остальные вопросы заданы в общем виде и слишком объемны для рамок форума.
Чтобы понять какой вам нужен уровень защищенности ответьте на вопрос:
достоточна ли защита блока данных от всех ошибок нечетных кратностей (1х, 3х, 5х ...),
защита от всех ошибок 2х кратности и защита от 129 ошибок из 130 кратности 4х, 6х ... ?
Это уровень обеспечивается CRC8. Под ошибками понимаем инверсию битов в блоке данных.
Пока не понятны ваши критерии оценки, как только они определятся, можно решить
задачу о требуемом протоколе канала связи.


Go to the top of the page
 
+Quote Post
Krys
сообщение May 3 2011, 03:51
Сообщение #54


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Ладно, сдаюсь, применяем CRC32, и успокаиваемся. Особенно учитывая, что ещё будет снаружи 8B/10B. Остальные вопросы снимаю.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
i-mir
сообщение May 3 2011, 17:47
Сообщение #55


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

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



8B/10B больше актуален для оптики в качестве выравнивателя потока 0/1 и имеет слабую помехозащищенность,
в среднем улучшение в 4 раза. Если особых требований нет, то конечно CRC32 + несложная доп. защита наиболее
ответственных блоков данных (поле адреса, поле управления и т.д.) с помощью CRC8.
Go to the top of the page
 
+Quote Post
artix
сообщение Aug 10 2011, 05:48
Сообщение #56


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

Группа: Свой
Сообщений: 136
Регистрация: 19-10-10
Из: Киев
Пользователь №: 60 262



Цитата(_Pasha @ Feb 2 2011, 11:08) *
Доброго времени суток.
Дано: протокольчик связи между устройствами в одномастерной сети. Некое сообщение из, допустим, 4-х байт, защищено CRC7. Поле адреса устройства считается при подсчете CRC7, но реально не передается. Принимающая сторона при приеме сообщения учитывает свой адрес при подсчете CRC, проверяя таким образом валидность.
Я понимаю, что передать сообщение в виде (адрес)-(данные)-(CRC) или (данные)-(CRC) - это две большие разницы. Кто в теме, подскажите, чем можно оценить вероятность приема ложного сообщения во втором случае.

почитайте сообщение пользователя i-mir, возможно поможет rolleyes.gif
http://electronix.ru/forum/index.php?showt...%F1%F3%EC%EC%E0
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:09
Рейтинг@Mail.ru


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