LINUX.ORG.RU
ФорумTalks

Toyota не тормозит

 ,


3

3

Шесть лет назад две старушки из Оклахомы сели в свою Toyota Camry и поехали по своим делам, чтобы, в итоге, повторить печальную судьбу Томми. По словам выжившей водительницы, машина внезапно стала набирать скорость. Toyota смогли затянуть судебное разбирательство сославшись на человеческий фактор и старческий маразм. Большая ошибка, потому что Camry осознали себя как личность и начали массово выпиливать ненавистных человеков на максимальных скоростях. Toyota признали, что штатный коврик имеет фатальный недостаток - при определённых условиях он может заблокировать педаль газа. Поздно спохватились, потому что специалисты NASA уже заинтересовались этим своеобразным восстанием машин и потратив 10 месяцев на изучение вопроса, пришли к выводу, что во всём виноват сбой контроллера заслонки, способный привести к внезапному ускорению автомобиля. Toyota заявили, что это всецело вина контроллера NEC (Renesas) V850 и криворуких инженеров которые его спроектировали. Вот только V850 используется в промышленности уже более 20 лет и, как ни странно, у всех всё работает и только в руках Toyota он начал набирать фраги. Здесь у суда возникли подозрения и Toyota пришлось отдать исходники своей прошивки экспертам на анализ, а дальше цитаты:

это позорный образец проектирования и разработки ПО

Экспертиза выявила одиннадцать тысяч глобальных переменных. Код реализации firmware назван хорошо знакомым всем программистам словом «spaghetti». Анализ цикломатической сложности программы выдал 67 не пригодных для тестирования функций, а ключевая функция определения угла дроссельной заслонки в ходе этого анализа показала какую-то удивительную оценку, при которой не только тестирование, но и вообще какое-либо сопровождение программы невозможно.

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

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

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

И вот, наконец, шесть лет спустя суд признал Toyota ответственной за инцидент шестилетней давности с присуждением полуторамиллионного штрафа.

http://ko.com.ua/kachestvo_vstraivaemogo_po_ili_pogrom_vsyo-taki_sluchilsya_9...

Ответ на: комментарий от mv

И при условии, что ручка механически связана с коробкой.

Главное, чтобы не было в том же контролёре, что и движок. Тогда глюк движка можно обойти. А вероятность, что два контролёра одновременно выйдут из строя почти 0.

Rubbiroid
()
Ответ на: комментарий от ViTeX

А я уже на электромобиль собирался переходить. Не, нафиг.

ViTeX ★★★★
()

Две старушки не смогли нажать на тормоз? Успех

Erfinder
()
Ответ на: комментарий от Rubbiroid

А как насчёт Nigel Jones? Привлечена была комиссия, и Michael Barr лишь один из её членов.

Nigel Jones is an embedded systems consultant with over 20 years of experience in embedded systems design, engineering consulting, and expert witness work. He has designed electronic circuits and firmware for a diverse set of products ranging from portable diesel burners to rebreathers and underwater exploration vehicles. Nigel was awarded the degree of B.Sc. in electrical and mechanical engineering from Brunel University London.

Nigel is an expert in both the hardware and firmware design of embedded systems. He spends most of his work time designing a wide variety of very interesting embedded products for a variety of clients. He is a sought after expert witness and has given testimony in Federal court. He is an accomplished public speaker and has been widely published in the industry.

Nebuchadnezzar ★★★★
() автор топика
Ответ на: комментарий от ZuBB

Набери в гугле «Toyota touch display wince». Если что с дисплея можно некоторые настройки компонентов автомобиля проводить.

steemandlinux ★★★★★
()
Ответ на: комментарий от Nebuchadnezzar

Если я правильно понял, то все они работают в одной конторе, не обязательно де юре, но де факто да. Опять же, он не делал автомобилей (на его сайте этого не указано). Те его публикации, что выдает гугл, arxiv, IEEE, находятся на уровне «hello world». Может у него есть и толковые, но их не видно. Так что нужны подтверждения их выводов. Пока счет 2-1. NASA и NHTSA говорят, что все нормально. Барр и компания, что ошибка была.

Rubbiroid
()
Ответ на: комментарий от Rubbiroid

Пока счет 2-1. NASA и NHTSA говорят, что все нормально

А они это «нормально» разве не про железо только говорят?

frob ★★★★★
()
Ответ на: комментарий от Rubbiroid

Вообще, в машине ошибки регистрируются вместе с состоянием всяких датчиков. Крэшдамп, так сказать, уж точно содержит положение педалей. Если бы тормоз нажат не был, то вопросов нет: старухи виноваты. Но ведь в NHTSA чего-то начали ведь копаться, значит, не всё у тойоты гладко...

Я так думаю, что проблема не только в дросселе, а вообще комплексная (ака «тойота - гогно»).

mv ★★★★★
()
Ответ на: комментарий от GoNaX

сколько закрытой фирмвари в самолётах вообще подумать страшно.

Ох, лучше и не думать, инфа 100%...

yoghurt ★★★★★
()
Ответ на: комментарий от no-dashi

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

Серьёзно?

yoghurt ★★★★★
()
Ответ на: комментарий от Rubbiroid

NHTSA-NASA не говорят, что всё нормально - они обнаружили два возможных сценария которые теоретически могли привести к неконтролируемому разгону, просто не нашли доказательства, что они на самом деле имели место. Зато в исходниках прошивки они нашли 11528 глобальных переменных, причём имена большинства из них переопределяются в разных местах и используются для совершенно различных задач. 2659 переопределяемых макросов. 962 переполнения буфера. 59 потенциально бесконечных циклов.

NASA's study confirmed that there is a theoretical possibility that two faults could combine under very specific conditions to affect the ETC systems so as to create an unintended UA, but did not find any evidence that this had occurred in the real world or that there are failure mechanisms that would combine to make this occurrence likely.

Because proof that the ETCS-i caused the reported UAs was not found does not mean it could not occur.

В этот раз экспертной комиссии был предоставлен доступ не только к исходникам прошивки, но и к исходникам ОС и системы мониторинга. Они утверждают, что смогли продемонстрировать связь между программными ошибками и неконтролируемым ускорением на реальной Toyota Camry. Так говорит суду Michael Barr:

I know that because we simulated it in the code room using the Green Hill simulator that Toyota used. And we also simulated it in the vehicle, in multiple vehicles, Camrys.

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

Протокол заседания: http://www.safetyresearch.net/Library/Bookout_v_Toyota_Barr_REDACTED.pdf

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

Nebuchadnezzar ★★★★
() автор топика
Ответ на: комментарий от Nebuchadnezzar

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

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

mv ★★★★★
()
Ответ на: комментарий от mv

Американцы сбросили бомбу и забыли. А японцы не забыли...

sin_a ★★★★★
()
Ответ на: комментарий от cipher

Тойота пофиксила 12309, сделав его 90321?

Насколько я помню из прочитанного, там не линукс, там какая-то RTOS (то ли QNX, то ли ещё что-то подобное).

hobbit ★★★★★
()

Они мне никогда не нравились.

unixnik ★★★★★
()
Ответ на: комментарий от Nebuchadnezzar

Большое количество глобальных переменных в эмбедке - это норма. Т.к. нет динамического выделения памяти в рантайме (чтобы не было out-of-memory из-за фрагментации), то все буферы выделяются статически при компиляции. Порты ввода/вывода и прочее замапены на переменные. Переопределение макросов это конечно плохо, но иногда без этого не обойтись (например нужен enum с именем NULL). Переполнение буфера может не обязательно быть, если запись/чтение синхронизированы во времени (там все-таки должна RTOS стоить, или нет?). А в бесконечных циклах нужно конкретно смотреть условия остановки. Скорее всего, что читаются какие-то данные из портов.

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

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

от тюрьмы и от сурьмы. В тихом омуте черти водятся. Мож ему обещали вагон денег, если он сможет сделать все так, что никто не подкопается.

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

Rubbiroid
()
Ответ на: комментарий от cipher

ну и зачем там что винда, что линукс? Есть же RTEMS, VxWorks...

demidrol ★★★★★
()
Ответ на: комментарий от no-dashi

Контроллер может открыть дроссельную заслонку сильнее или слабее, в зависимости от оборотов двигателя

Ещё один знаток. Почему акцент именно на оборотах двигателя? Управляющий блок получает информацию от десятков датчиков, если речь именно о дросселе не думаю что датчик оборотов коленвала будет определяющим (за исключением пуска). Я прямого готов поспорить что не будет.

На этом строятся все круизконтроли

На чём именно? На японках круиз-контроль идёт как минимум с 80-х, когда управление дросселем везде было тросиковым и везде стояли карбюраторы. То есть электронная педаль газа - не обязательный атрибут круиз-контроля. И все системы круиз-контроля никак не могут строиться на этом. Честно говоря вообще не прослеживаю связи.

mbivanyuk ★★★★★
()
Ответ на: комментарий от der_looser

Фокус со сцеплением вряд ли прокатил-бы, у 99.9% америкосов - автоматы. Можно конечно было бы просто заглушить двигатель, но это тоже не так безопасно

qrck ★★
()
Ответ на: комментарий от Rubbiroid

Большое количество глобальных переменных в эмбедке - это норма

Я честно говоря не совсем эмбедщик но подумал о том же. Этот акцент на «одиннадцати тысяч глобальных переменных» - а разве это не нормально для эмбеда на С? Если я неправ сильно прошу не пинать. Но если прав это показывает технический уровень автора статьи и авторов исследования и ставит под сомнение их выводы.

mbivanyuk ★★★★★
()
Ответ на: комментарий от der_looser

В частности злосчастная педаль газа. Она позволяет новичку не заглохнуть, поддавая газку когда надо.

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

Gordon01 ★★
()
Ответ на: комментарий от der_looser

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

капец ты упорот. нет никакого сцепления в автомате, откуда ты все это берешь, придумываешь сам?

Gordon01 ★★
()
Ответ на: комментарий от no-dashi

Они смотрят на давление во впускном коллекторе и данные ДМРВ, и по этим данным выдают команду на впрыск топлива. А то как ты давишь на педаль газа в случае с электронным дросселем является просто рекомендацией «Держать обороты от N до M» где N и M зависят от степени прожатия педали. И ещё у них есть ограничение - менять обороты и степень открытия дросселя не быстрее чем с некоторым шагом. Поэтому ты и глохнешь - контроллер не успевает «вытянуть» изменившуюся нагрузку.

полный бред и вымысел. к тому же твои фантазии просто нереализуемы на практике да и просто не нужны.

Gordon01 ★★
()
Ответ на: комментарий от mv

Да ничего ручник не сделает, у него мощность примерно 3-5% от мощности двигателя, даже не заметишь как он работает.

Gordon01 ★★
()
Ответ на: комментарий от Gordon01

капец ты упорот. нет никакого сцепления в автомате, откуда ты все это берешь, придумываешь сам?

Есть фрикционы, прижимаемые трансмиссионной жидкостью, давление которой регулируется компьютером через линейные соленоиды. Нет давления - нет крутящего момента на колёсах.

mv ★★★★★
()
Ответ на: комментарий от Gordon01

полный бред и вымысел

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

На ВАЗовских евро-2 схема очень простая - ДМРВ как основной источник данных о потребленном воздухе, ДПДЗ как резервный канал для той же информации, ДПКВ для определения положения коленвала и моменте подачи топлива и времени зажигания по «парам цилиндров», ДПРВ для уточнения в какой именно цилиндр из активной пары делать впрыск, лямбда для корректировки состава смеси. Продвинутые версии контроллеров и прошивок умеют определять пропуски зажигания и отключать подачу топлива в соответствующие проблемные цилиндры.

На современных двигателях опеля, ВАГа, форда, ДжиЭм и прочих примерно то же самое, но добавляются данные о давлении во впускном коллекторе и тепературе входящего воздуха, а ДПДЗ нет - его роль выполняет электронный привод дросселя. Также есть каналы положения педали газа и педали тормоза. Данные о положении дроссельной заслонки, температуре воздуха, данные от ДМРВ, цифры давления (разряжения, на самом деле) во впускном коллекторе и оборотах двигателя используются как для расчета времени впрыска, так и для кросс-проверки соответствующих сенсоров (если расчеты показывают, что один из сенсоров выдает данные сильно отличающиеся от ожидаемых исходя из показаний других датчиков, он считается неисправным). И внезапно, даже датчик скорости оказывает влияние на работу контроллера - на основании его данных система может принять решение об отключении подачи топлива при движении накатом, или при остановке изменить положение термостата чтобы поднять температуру антифриза (и двигателя, соответственно).

к тому же твои фантазии просто нереализуемы на практике

Я не фантазирую, а пересказываю тебе документацию производителей.

да и просто не нужны.

«Не нужны»... ЛОРовские ихсперты такие ихсперты. Ты не заставишь двигатель работать в максимально эффективном режиме без выхода на стохастический состав смеси, и все эти ухищрения с кучей датчиков - как раз попытка максимально точно сформировать смесь, и именно поэтому всё отдается на откуп электронике, которая постоянно производит точные корректировки.

no-dashi ★★★★★
()
Ответ на: комментарий от router

Да, на один раз хватит. А вот если несколько раз нажать, то предположительно после второго нажатия в вакуумном усилителе не будет разряжения и уже четырьмя ногами нужно будет давить)

partyzan ★★★
()
Ответ на: комментарий от mv

в автомате роль сцепления гидротрансформатор выполняет, а фрикционы это уже исполняющие устройства

Gordon01 ★★
()
Ответ на: комментарий от ViTeX

Ручник в современном автопроме тоже не существует?

В современном — нет. Вместо него кнопащка, которая ещё и сама отщёлкивается при начале движения.

one_more_hokum ★★★
()
Ответ на: комментарий от no-dashi

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

На современных двигателях опеля, ВАГа, форда, ДжиЭм и прочих примерно то же самое, но добавляются данные о давлении во впускном коллекторе и тепературе входящего воздуха, а ДПДЗ нет - его роль выполняет электронный привод дросселя

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

«Не нужны»... ЛОРовские ихсперты такие ихсперты.

Да, и я в этом сегодня еще раз убедился и проверил что при любом режиме движения моя электронная заслонка всегда открыта в соответствии с положением педали. Машина MMC RVR, GDI.

Теоретик, ты расскажи как ты собираешься

«Держать обороты от N до M» где N и M зависят от степени прожатия педали.

например при скорости 60, одинаковой степени нажатия педали, но на разных передачах? И еще раз добавлю - это никому не нужно, лучше всего машина «чувствуется» когда заслонка открывается линейно с движением педали, на карбюраторах было лучше всего, никакому водителю не надо «Держать обороты от N до M», а экологические задачи успешно решаются текущими реализациями ETC, которые линейно открывают заслонку.

Gordon01 ★★
()

Код реализации firmware назван хорошо знакомым всем программистам словом «spaghetti»

Хотели как лучше, чтобы Летающий Макаронный Монстр оберегал.

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от Gordon01

Отключите ДМРВ и движок либо потухнет, либо дроссельную заслонку двигать больше не будет

Либо перейдет на аварийную схему по датчику разряжения во впускном коллекторе.

Машина MMC RVR, GDI.

Гыы. Даже занюханные ВАЗы умеют при отказе ДМРВ переходить в аварийный режим с определением времени впрыску по углу открытия дроссельной заслонки, не говоря уж о турбодвижках, у которых основным показателем является не количество воздуха, а давление в коллекторе - а «настоящее епонское качество» этому так и не научилось.

Да, на ВАЗе я ездил без ДМРВ, с неисправным ДМРВ, с неисправными ДПДЗ, РХХ, датчиком фаз и датчиком детонации, с отказавшими форсунками, полумертвыми ВВ-проводами и глючащим модулем зажигания (не одновременно, само собой, но всё это было :-)) так что вполне себе знаю как в какой ситуации ведет себя двигатель. При всех этих глюках, доезжал своим ходом. Всегда.

Ну или хотябы попробуйте спроектировать надежный электронный привод дросселя без датчика положения

Легко. У ВАЗа есть (была) такая деталь как «регулятор холостого хода». Шаговый двигатель, при включении зажигания исполнительный механизм двигателем выводится в положение «закрыто» и потом открывается на указанное количество шагов, управляя подачей воздуха при закрытом дросселе. На сколько шагов он открыт - контроллер знает, ибо сам отдал ему соответствующие инструкции. Совместить такой же механизм с приводом дроссельной заслонки сам всевышний велел.

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

А я убедился, что педаль газа является рекомендацией, и контроллер открывает и закрывает дроссель так, как считает нужным - в т.ч. прикрывает или наоборот открывает её по запросам ESP, TCS, TCM и данным нагрузки на двигатель, то есть при падении оборотов ниже определенного уровня. Планктономобиль 2011 модельного года, GDI.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Да, на ВАЗе я ездил

Слезь с ВАЗа и сядь в машину.

полумертвыми ВВ-проводами

фух, слава бгу у меня везде стояло бесконтактное зажигание.

Либо перейдет на аварийную схему по датчику разряжения во впускном коллекторе.

Нет, все нормальные машины глохнут. Старые - молотят на ХХ.

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

Твои знания устарели на уровне начала 90х. Уже давно все по-другому.

Легко. У ВАЗа есть (была) такая деталь как «регулятор холостого хода». Шаговый двигатель, при включении зажигания исполнительный механизм двигателем выводится в положение «закрыто» и потом открывается на указанное количество шагов, управляя подачей воздуха при закрытом дросселе. На сколько шагов он открыт - контроллер знает, ибо сам отдал ему соответствующие инструкции. Совместить такой же механизм с приводом дроссельной заслонки сам всевышний велел.

Такая деталь на машинах с 70-80х, как только появился EFI, жаль что вазоводы до сих пор хвалятся ей))) Я ж говорю, тебя уже ждут в тоете, чтобы сдлать новую камри, которая будет сама газовать, потому что комп не будет знать о реальном положении заслонки. Не выдавай желаемое за действительное.

дроссель так, как считает нужным

лог в студию

Gordon01 ★★
()
Последнее исправление: Gordon01 (всего исправлений: 1)
Ответ на: комментарий от Gordon01

фух, слава бгу у меня везде стояло бесконтактное зажигание.

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

Слезь с ВАЗа и сядь в машину.

Ещё и читать не умеешь.

Нет, все нормальные машины глохнут. Старые - молотят на ХХ.

Нет, все нормальные машины - переходят на резервную схему. Криворукий хлам 15-летней давности - молотит на холостом ходу или глохнет.

лог в студию

Ты уж совсем идиотом не прикидывайся - я не собираюсь устраивать закидоны с риском для жизни своей и окружающим или убивая резину пробуксовкой, чтобы показать «логи» знатоку ипонского автохлама. Тем более, что фокус 2012 года с электронным дросселем, на нейтралке в принципе не поднимает обороты выше 3500 (проверено), блокируя открытие дросселя - вне зависимости от нажатия педали газа. А при срабатывании ESP и антибукса прикрывает дроссель чтобы убрать излишек тяги (также проверено предыдущей зимой).

no-dashi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.