Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: недежность протокола
Форум разработчиков электроники ELECTRONIX.ru > Сборка РЭУ > Вопросы надежности и испытаний
bav
Есть необходимость передавать лог. состояния (8 бит) по витой паре. Т. е. данные 8 бит => сериалайзер => витая пара => десериалайзер => 8 бит данные. Максимальная задержка 5 мкс.

Интерфейс выбран RS485, протокол свой (синхр, данные, инверсные данные, если ошибка, данные игнорируются). сериалайзер/десериалайзер, контоль ошибок сделаны на ПЛИС.

вопросы следующие:

1. как подсчитать надежность (вероятность ошибки), с чего начать, на что опираться

2. какие есть готовые протоколы (что бы не использовать свой и, особенно, не мучаться с расчетами), реализацию которых можно достать или реализовать самому (не более 2х месяцев)
Oldring
Цитата(bav @ Oct 4 2007, 12:23) *
1. как подсчитать надежность (вероятность ошибки), с чего начать, на что опираться


1. Отталкиваться нужно от вероятности искажения одного бита и возможности пачек ошибок. Не забыв про возможность искажения синхронизации. В описанной схеме искажение одного любого бита в синхропрефиксе сбивает синхронизацию и приводит к неприему блока, одновременное искажение двух бит в прямом и инверсном блоке приводит к неправильному их приему. Дальше - простейший теорвер, не нужно даже специальную литературу читать.

2. Если хочется каких-то гарантированной вероятности в условиях сильных помех - мучаться придется самому. Какая Ваша зарплата за два месяца? Могу помочь. lol.gif

3. Что произойдет, если на линию наведется сильная помеха длительностью больше 5 микросекунд?
bav
Цитата
1. Отталкиваться нужно от вероятности искажения одного бита и возможности пачек ошибок. Не забыв про возможность искажения синхронизации. В описанной схеме искажение одного любого бита в синхропрефиксе сбивает синхронизацию и приводит к неприему блока, одновременное искажение двух бит в прямом и инверсном блоке приводит к неправильному их приему. Дальше - простейший теорвер, не нужно даже специальную литературу читать.


как зная соотношение с/ш узнать вероятность искажения одного бита?

Цитата
2. Если хочется каких-то гарантированной вероятности в условиях сильных помех - мучаться придется самому. Какая Ваша зарплата за два месяца? Могу помочь. lol.gif


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

Цитата
3. Что произойдет, если на линию наведется сильная помеха длительностью больше 5 микросекунд?


произойдет потеря данных sad.gif
Oldring
Цитата(bav @ Oct 5 2007, 10:30) *
как зная соотношение с/ш узнать вероятность искажения одного бита?


Если Ваш RS-485 можно рассматривать как двоичный симметричный канал с аддитивным белым гауссовым шумом - то в "соотношение с/ш" входит "сигнал" как половина разницы напряжений 1 и 0 и "шум" - как прибавленная к сиглалу нормально распределенная случайная величина с СКО, равная величине "шума" в "соотношении с/ш". Вероятность искажения бита равна вероятности того, что шумовой выброс в нужном направлении превысит расстояние до порога - величину сигнала.

Если же RS-485 нельзя рассматривать как двоичный симметричный канал с аддитивным белым гауссовым шумом - то что именно Вы называете "соотношение с/ш"?

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

Цитата(bav @ Oct 5 2007, 10:30) *
произойдет потеря данных sad.gif


И это неизбежно в изохронных системах.
bav
Цитата
Если Ваш RS-485 можно рассматривать как двоичный симметричный канал с аддитивным белым гауссовым шумом - то в "соотношение с/ш" входит "сигнал" как половина разницы напряжений 1 и 0 и "шум" - как прибавленная к сиглалу нормально распределенная случайная величина с СКО, равная величине "шума" в "соотношении с/ш". Вероятность искажения бита равна вероятности того, что шумовой выброс в нужном направлении превысит расстояние до порога - величину сигнала.

Если же RS-485 нельзя рассматривать как двоичный симметричный канал с аддитивным белым гауссовым шумом - то что именно Вы называете "соотношение с/ш"?


что-то я зашел в тупик. правильно ли я нахожу уровень шума? составляющие шума:

- тепловой шум (в проводах) - вроде, не значительно

- наведенный шум (уровень ЭМ помехи умножить на длину проводника). но тут вопрос, линия передачи дифференциальная, что там может навестить?

существуют ли к.-л. документы, где все подсчитано (только на уровне интерфейса), на который можно сослаться, если будут приставать аудиты?
Oldring
Цитата(bav @ Oct 16 2007, 16:05) *
- тепловой шум (в проводах) - вроде, не значительно

- наведенный шум (уровень ЭМ помехи умножить на длину проводника). но тут вопрос, линия передачи дифференциальная, что там может навестить?

существуют ли к.-л. документы, где все подсчитано (только на уровне интерфейса), на который можно сослаться, если будут приставать аудиты?


Да все что угодно может быть. Плюс еще бывает джиттер - но у вас, скорее всего, он несущественный.
Если в проводах нету шума - то и надежность передачи определяется вероятностью выхода из строя приемопередатчиков, это же очевидно. Если не знаете уровеень шума в своей системе - то и подсчитать тоже ничего невозможно, это тоже очевидно.
По поводу давно подсчитанных нормативов ничего сказать не могут. С вояками дела не имел. У тех, для кого проектируйте, и спрашивайте требования.
tyro
Цитата(bav @ Oct 4 2007, 11:23) *
Есть необходимость передавать лог. состояния (8 бит) по витой паре. Т. е. данные 8 бит => сериалайзер => витая пара => десериалайзер => 8 бит данные. Максимальная задержка 5 мкс.

Интерфейс выбран RS485, протокол свой (синхр, данные, инверсные данные, если ошибка, данные игнорируются). сериалайзер/десериалайзер, контоль ошибок сделаны на ПЛИС.

Может не в тему, но повысить помехозащищенность можно применяя избыточные коды. Простейший - код Хемминга.
bav
Цитата
С вояками дела не имел. У тех, для кого проектируйте, и спрашивайте требования.


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

Цитата
Может не в тему, но повысить помехозащищенность можно применяя избыточные коды. Простейший - код Хемминга.


сейчас стоит вопрос о надежности физического канала связи. защита кода будет строиться исходя из этого. для макета я своял свой простенький протокол (4 бита синхр, 8 бит данные,8 бит инвертированные, в течение суток ни одного сбоя!!!) - в коммерческий продукт сувать страшновато. может, это и надежно, но требуется обосновать.

где можно найти вероятность возникновения ошибки, сбоя ?!? help.gif

ведь не может она быть равна 0. даже если буду использовать уровни +1кВ и -1кВ на уровне шума 1мВ!?! кажется уже туплю. поеду домой, завтра продолжу.







в продолжение...

мне сообщили, что после анализа RS485, необходимо тоже самое сделать с оптическим каналом связи (50 метров). здесь я вообще не знаю - где брать шум smile3046.gif
Oldring
Цитата(bav @ Oct 16 2007, 17:49) *
это для медицины. управление источником ионизирующего излучения - отсюда и соответствующие требования.


Ну так в таком случае долджны быть медицинские стандарты.

Возможно, правильная организация взаимодействия важнее. Отрубать источник при малейшем подозрении на сбой. Троекратной резервирование. Уровень помех, действительно, скорее всего низкий - следовательно, если сбой - так сильная помеха. От протокола, значит, следует требовать малой вероятности ошибочного приема блока при сильном его искажении.

Цитата(bav @ Oct 16 2007, 17:49) *
сейчас стоит вопрос о надежности физического канала связи. защита кода будет строиться исходя из этого. для макета я своял свой простенький протокол (4 бита синхр, 8 бит данные,8 бит инвертированные, в течение суток ни одного сбоя!!!) - в коммерческий продукт сувать страшновато. может, это и надежно, но требуется обосновать.


Вероятность сбоя Вы не найдете. Потому что она скорее всего будет зависеть от наводок от соседнего оборудования. От какого-нибудь мощного преобразователя рядом.

Можно оценить условную вероятность необнаружения сбоя при условии возникновения сильной помехи. Для уменьшения этой вероятности и можно применять всякие продвинутые коды контроля. CRC-32 дает вероятность необнаружения сбоя меньше одной миллардной. Этого достаточно? Считается в FPGA тривиально. Если за сутки нет ни одного сбоя - это вполне ожидаемо. Но это не значит, что сбой не произойдет через год, когда рядом будет проезжать троллейбус. Если при этом установка поджарит пациента - вряд-ли это кому-то понравится. Поэтому, на мой взгляд, нужно вносить сбои и смотреть на реакцию системы...

Да и кто сказал, что в FPGA не собьется прошивка?
bav
Цитата
Вероятность сбоя Вы не найдете. Потому что она скорее всего будет зависеть от наводок от соседнего оборудования. От какого-нибудь мощного преобразователя рядом.


хотябы оценить sad.gif

нашел http://www.cta.ru/pdf/1997-3/note1_1997_3.pdf, там есть фраза:

Цитата


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

попробую связаться с автором

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

в документе SLLA036 от TI влияние джиттера, как он появляется при воздействии помех.

Цитата
Да и кто сказал, что в FPGA не собьется прошивка?


а это обращаться в www.altera.com?
Oldring
Цитата(bav @ Oct 17 2007, 11:09) *
а это обращаться в www.altera.com?


А в даташитах на большинство микросхем написано примерно следующее: "не для применений, в которых от надежности работы устройства может зависеть безопасность жизни или здоровья людей". Поэтому если есть действительно много денег - обращайтесь, Вам помогут. smile.gif
i-mir
Вопрос построения безопасного канала данных остается открытым. У меня получалось достигнуть вероятности перехода из одной разрешенной комбинации в другую на уровне 10е-15, при вероятности ошибки одного бита 10е-2. Передавались пакеты длиной 48 бит. Конечно при этом страдает живучесть в таких условиях.
x736C
Цитата(Oldring @ Oct 16 2007, 18:02) *
Если за сутки нет ни одного сбоя - это вполне ожидаемо. Но это не значит, что сбой не произойдет через год, когда рядом будет проезжать троллейбус. Если при этом установка поджарит пациента - вряд-ли это кому-то понравится. Поэтому, на мой взгляд, нужно вносить сбои и смотреть на реакцию системы...

Дополню.
Как известно, существует такое понятие, как приемлемый риск (допустим, из гражданской авиации). Как выбирается критерий приемлемости?
Беглое гугление дало понимание, что оценка приемлемости риска выходит за рамки чисто технических оценок и включают в себя оценки экономических, политических и прочих последствий. Понятно, что исключить полностью вероятность испепеления пациента невозможно, поэтому в год один случай может оказаться приемлемым..

Цитата
Вопрос построения безопасного канала данных остается открытым.

Вопрос критерия безопасности. «Сколько вешать в граммах».

P.S. Кстати, статья в Википедии по теме на редкость развернутая.
i-mir
Цитата(x736C @ Oct 17 2010, 16:01) *
Вопрос критерия безопасности. «Сколько вешать в граммах».

Ну почему же, можно оттолкнуться от ГОСТ 29.205-88 Комплексы и устройства телемеханики. Общие технические условия.
Там кое-какие цифры есть.
x736C
Цитата(i-mir @ Oct 19 2010, 17:31) *
Ну почему же, можно оттолкнуться от ГОСТ 29.205-88 Комплексы и устройства телемеханики. Общие технические условия.
Там кое-какие цифры есть.

Вот и я говорю. smile.gif В ГОСТе три категории телемеханических комплексов. Для всех трех цифры разные.
Кстати спасибо за наводку, интересный ГОСТ.
i-mir
Когда у меня не было этого ГОСТа - я шел немного другим способом,
доказывая наихудший показатель безопасности.
Например для пакета длиной n и СRC8 (не ловим часть 4-х кратных ошибок),
определяем наихудший вариант, когда p=4/n (здесь максимум ошибок) и считаем
вероятности. Если показатель удовлетворяет требованиям - то задача решена
с точки зрения функциональности, т.е. при любом уровне помех.
Ильдус
Цитата(x736C @ Oct 17 2010, 17:01) *
Как известно, существует такое понятие, как приемлемый риск (допустим, из гражданской авиации). Как выбирается критерий приемлемости?
. . .

В гражданской авиации всё проще и сложнее.

Существует статистика, которая говорит, что на миллион часов бьётся один самолёт, при этом общество не возмущается. При этом известно, что всего одна десятая катастроф (гибель людей) связана с отказом техники, а не человеческим фактором. Чисто утрировано считается, что на борту 100 систем, отказ которых может привести к катастрофе - отсюда вероятность отказа системы, приводящая к катастрофе не более 10 минус 9 степени (однако эксперты при вероятности более 10 минус 12 даже разговаривать не будут).

Но это просто отказ аппаратуры. А внешние воздействующие факторы? - например, удар молнии, или ошибка проектировщика... поэтому в гражданской авиации сейчас требуют резервирование на разнородной элементной базе и разработка резервов разными людьми.

P.S. В гражданской авиации в части программного обеспечения существуют квалификационные требования (своего рода ГОСТ) КТ-178В (гармонизированный перевод забугорного DO-178B), где расписываются мероприятия, повышающие степень доверия к ПО до приемлемого (на сегодняшний день) уровня.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.