Pull to refresh

Comments 19

Минус статье поставлен по ошибке из-за крайне плохого интернета.

Вообще с GCC могут проблемы (его не засчитают обычно), так как у него нет сертификата безопасности, зато он есть еще у GreenHill и IAR.


MDR_PORTE->CLRTX

Миландр :)


Хочу еще отметить, что для получения сертификата на ПО недостаточно следовать только рекомендациям по используемым алгоритмам, но еще необходимо следовать процессам...


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


Тоже самое касается наличия юнит тестов и статического анализа — они должны быть обязательно для Си и С++, должен быть файл с результатами и покрытием. Для статического анализатора, все задавленные предупреждения должны быть объяснены и выведены в отчет.


В общем, Безопасность по этому МИК определяется не только наличием диагностики ALU, ОЗУ, ПЗУ, регистров… и хорошим тулом для проверки, но и процессами. И это не маловажный факт, который при сертификации обязательно спрашивают (Ну по крайней мере при международной)

Спасибо за столь содержательный комментарий.
но еще необходимо следовать процессам...
следование процессам определено как жизненный цикл в ГОСТ Р МЭК 61508-1-2012, детализация требований по аппаратной части производится в ГОСТ Р МЭК 61508-1-2012, а по программной в ГОСТ IEC 61508-3-2012 (действует с 1.07.2019).
В общем, Безопасность по этому МИК определяется не только наличием диагностики ALU, ОЗУ, ПЗУ, регистров… и хорошим тулом для проверки, но и процессами. И это не маловажный факт, который при сертификации обязательно спрашивают

— я думаю очень важный факт так как мало правильно разработать софт и железо, нужно ещё предоставить артефакты (свидетельства) следования жизненному циклу, а так же доказать правильность и корректность работы.
В устройствах с МК очень часто программа во флеш слетает, так что использование МК это уже серьзный минус к безопасности.
ну во первых у всех МК есть интенсивности отказов, во вторых на данный момент очень много производителей сертифицировали свои МК на соответствие SIL3 ST, у nxp тоже есть подобные МК, даже миландр собирается выпускать МК с контролем памяти (MPU)
У большинства современных МК флэш с ECC.

Факт слёта флеша сам по себе не является преградой для получения SIL сертификата, потому что флеш слетит в любом случае, вопрос только когда и какова вероятность этого. А она значительно ниже, чем слёт ОЗУ.


Но важно другое, надёжное устройство должно определить факт этого слёта и перевести устройство в безопасный режим, т. е. не исправить ошибку (исправление ошибок, как раз не рекомендуется), а выставить сигнал Аварии, чтобы остальная система знала, что датчику доверять нельзя. В токовых датчиках — это выставить сигнал ниже 3.6 мА, или выше 23 mA..

можно написать тесты для ОЗУ ( данные тесты как правило позволяют выявить константные отказы "0"и "1")- они позволяют зафиксировать отказ

Да, отказ ОЗУ можно зафиксировать, но например, проверить, что бит в ОЗУ был изменен с 0 на 1 уже найти не так просто, если константа там лежит долго, то вместе с ней придется хранить и контрольную сумму, либо использовать для хранения таких данных ОЗУ с ЕСС, у STM есть такие микроконтроллеры, которые имеют небольшую область ОЗУ с ЕСС

Факт искажения одного бита найти
можно если применять парафазное кодирование ( 1бит информации представляется двумя битами)

Все верно… это приводит к увеличению размера данных в ОЗУ.

По идее диверсификация ПО нужна не для того, чтобы уменьшить количество отказов, а для того, чтобы при дублировании системы управления(или безопасности) отказы по возможности не были связанными. Т.е. как в примере с Ариан 5, когда дублирующая система вылетела из-за такой же ошибки, так как использовала идентичное ПО и железо.

Здесь вводится такое понятие как опасный отказ, к опасным отказам могут приводит ошибки в спецификации требований к изделию, программном обеспечении, архитектуре изделия или совокупности данных ошибок + ещё не нужно забывать человека (который своими действиями может только усугубить ситуацию). И по ГОСТ Р МЭК 61508 рассчитываются вероятности опасных отказов.

Спасибо большое за статью. Я как раз осваиваю новое направление "функциональная безопасность" согласно ISO 26262. (они похожи с 61508).
Пишите ещё, это очень интересно и полезно.


З.ы.: в принципе ради подобных статей зарегистрировался в хабре :) сейчас буду искать как можно подписаться на Ваши статьи :)

Спасибо за статью! Приятно, когда уделяется внимание любимой ФБ))
Что можно было бы улучшить (в этот или в следующий раз)?
Уже были комменты про отсутствие информации о реализации жизненного цикла, управление ФБ и т.п. Чтобы избежать подобных замечаний, можно было бы обозначить то, о чем статья. Не о соответствии МЭК 61508 вообще, а о реализации определенного ограниченного набора технических и организационных требований.
Отлично, что затронута тема диверсификации (диверситета), это на хабре встречается довольно редко. Приведен интересный и наглядный пример по диверсной компиляции. Хотелось бы добавить, что существует определенный набор методов диверсификации, реализуемых в ПО, технических средствах, методологиях проектирования, разных командах разработчиков.
Больше всего у меня вопросов к схеме генератора, очевидно, было бы неплохо сделать более подробное описание. Используется 8 физически разных MCU? Тогда лучше было бы обозначить их по разному. Зачем нужны MCU генерации? В реле К1-К4 обмотки и контакты физически находятся в одном сегменте цепи (контактов нет на схеме)? Для MCU_В справа потерялось слово «выхода». Почему опасным отказом является появление напряжения, а не его отсутствие (для этого надо сказать пару слов об объекте управления)?
Формула расчета интенсивности отказов тоже требует пояснений. Точно интенсивности отказов должны умножаться, а не складываться?
А в целом хорошая статья, пишите еще.
спасибо за комментарий!
Уже были комменты про отсутствие информации о реализации жизненного цикла, управление ФБ и т.п. Чтобы избежать подобных замечаний, можно было бы обозначить то, о чем статья. Не о соответствии МЭК 61508 вообще, а о реализации определенного ограниченного набора технических и организационных требований.

в дальнейшем учту
Используется 8 физически разных MCU? .
— это два разных MCU (MCU_A и MCU_B), все что написано простым текстом на структуре стоит рассматривать как пояснения
Зачем нужны MCU генерации? .
— MCU генерации нет, это просто поясняющая надпись

В реле К1-К4 обмотки и контакты физически находятся в одном сегменте цепи (контактов нет на схеме)?
К1-К4 – это не реле, это транзисторные ключи, они находятся в одном сегменте цепи. В данном случае собран мостовой преобразователь.
Для MCU_В справа потерялось слово «выхода»
исправил

Почему опасным отказом является появление напряжения, а не его отсутствие (для этого надо сказать пару слов об объекте управления)?

предполагаемый объект управления – Реле с несимметричными отказами, данный объект находится в безопасном состоянии при отсутствии напряжения на обмотке реле.
Точно интенсивности отказов должны умножаться, а не складываться?

Только при наличии всех трех отказов – произойдет опасный отказ (они все складываются по «И»), поэтому в формуле стоит знак умножить, последний коэффициент T – время в течение которого происходит накопление отказов.

Добрый вечер.
Скажи пожалуйста :


  1. Есть ли стандартизированные компиляторы для автомобильной промышленности? (в части реализации функциональной безопасности).
  2. Если мы у фирмы "Х" заказали разработку ПО и при этом фирма "Х" не предоставляет исходный код, то как можно будет проверить ПО на соответствие стандарту (например MISRA или AUTOSAR)? (в части реализации функциональной безопасности).
  3. Есть ли стандартизированный Статический анализатор (в части реализации функциональной безопасности)?
Добрый День.
1)
Есть ли стандартизированные компиляторы для автомобильной промышленности? (в части реализации функциональной безопасности).

Пишут что могут, но я не проверял
2)
Если мы у фирмы «Х» заказали разработку ПО и при этом фирма «Х» не предоставляет исходный код, то как можно будет проверить ПО на соответствие стандарту (например MISRA или AUTOSAR)? (в части реализации функциональной безопасности).
Без исходных кодов проверить нельзя.

3) 3-й вопрос пересекается с первым, данным направлением я не занимался.
данные вопросы выходят за рамки статьи.
Sign up to leave a comment.

Articles