TSM - значението на концепцията; Функционална безопасност; n разработване на SW автомобилни продукти
Раду Ивънуш - ръководител на бизнес звено за разширени вградени технологии @ NTT DATA Румъния
Започвам нашата история, като ви описвам какво означава „ECU“, термин, който обикновено се използва във връзка с автомобилната област. Името ECU идва от английски: Electronic Control Unit, обозначаващо електронно оборудване, което съдържа няколко електронни компонента и поне един микроконтролер, на който работи софтуер, написан на ASM или C. С други думи, ECU са компютри в машини.
Ако в началото автомобилите не бяха оборудвани с ECU (Electronic Control Unit), започвайки от 70-те години, те се превърнаха в стандартно оборудване. Първият ECU е представен на пазара през 1968 г., той е посветен на горивната система на двигателя и е произведен от Bosch за автомобили Volkswagen.
Днешните машини съдържат стотици ECU и милиони редове код, достигайки изчислителна мощ и сложност. С разширяването на съвременните машини, които работят и се управляват от тях, необходимостта от защитни елементи се превърна в „Функционална безопасност“, също неизбежна.
ECU са се развили много през годините, прикрепяйки се към тях днес, заедно с микроконтролери и микропроцесори. За тези, които се интересуват от обобщението на развитието на ECU през годините, представяме по-долу следните данни:
Първият компютър, пуснат от VW (1968)
1969 г. - Ford представя първата система за противоплъзгане с помощта на компютър.
1971 г. - General Motors представя първата си компютърно управлявана трансмисия.
1976 г. - General Motors и Motorola са оборудвани за използване в техните превозни средства.
1978 - Cadillac представя компютърно контролиран бордов компютър, захранван от микроконтролер Motorola.
1981 г. - Всички автомобили на General Motors имат ECM, базиран на Motorola 6802 с контрол на емисиите.
1983 г. - Микроконтролерните чипове Intel 8061 започват да се използват в автомобилите на Ford
1986 г. - „Navlab 1“ на университета Карнеги Мелън става първата самоходна, автономна кола.
1986 г. - Chrysler представя мултиплексни кабелни комуникационни модули с чипове, предоставени от Harris Semiconductor.
1987 г. - Първите микроконтролери, произведени с интегриран CAN чипсет от Intel и Philips Semiconductor.
1991 - Ford и Motorola създават партньорство за проектиране и производство на PTEC задвижващи и трансмисионни микроконтролери.
2000 г. - Ford Microelectronics Inc. (IMF) се придобива от Intel Corp.
2014 г. - Първото самоуправляващо се превозно средство Navia беше представено и пуснато на пазара.

2017 г. - Tesla "Semi" представи първия си модел товарен камион, електрически и полуавтономен.
2017 Intel Corp придобива Mobileye, разработчик на усъвършенствани системи за подпомагане на водача, базирани на зрение.
2017 Audi пуска първия автомобил от серия A8 с автоматизация от ниво 3, „Пилот на задръстване на Audi AI“.
Като процес, "функционалната безопасност" се превърна в основен компонент на цикъла за разработка на софтуер на ECU. Тези схеми за автомобилна безопасност помагат за откриване на неизправности (електрически и електронни) и уточняват действия, техники и методи за намаляване на рисковете и щетите, причинени от софтуерни и хардуерни грешки.
Липсата или неправилното прилагане на правилата за безопасност може да има сериозни последици: нараняване на пътници или дори загуба на живот, което води до финансови и имиджови/маркови загуби за производителите на автомобили.
Ето защо днес модерните автомобили трябва да отговарят на международните стандарти за безопасност, определени от ISO 26262: „Пътни превозни средства - Функционална безопасност“
Нивото на интегритет на автомобилната безопасност (ASIL) е схема за класификация на риска в рамките на стандарта ISO 26262. В стандарта има четири дефинирани нива на безопасност: ASIL A, ASIL B, ASIL C и ASIL D. ASIL D диктува най-строгото ниво на безопасност. изискване за безопасност на продукта, като ASIL A е най-разрешителното. Рисковете, идентифицирани като QM („управление на качеството“), не включват никакви отделни мерки за защита.
Разделянето на нивата на ASIL се извършва въз основа на три съображения: честота на поява (F), контролируемост (C) и тежест (S) на HW или SW грешка, където Честота = експозиция * λ
По-горе описахме нивата на безопасност, прилагани към системите, но когато максималното ниво на ASIL не може да бъде осигурено директно в системата, стандартът ISO26262 позволява тяхното така наречено разлагане, както е показано на изображението по-долу. Колкото по-висок е рейтингът на безопасност на системата, толкова по-високи са разходите за внедряване на HW и SW. Когато се прилага декомпозиция, това ни помага да разделим системата на излишни елементи с по-ниско ниво на сигурност, което води до задоволяване на изискванията на системата, без да се засягат твърде много разходите.
По-нататък ще опиша начини/примери за методи, прилагани в SW за наблюдение и откриване на системни грешки.
Откриване, контрол и индикация на системни грешки на следните HW компоненти:
A. Грешки на ниво микроконтролер:
- Заключване на битовете в системния регистър (заседнало);
- Неправилно изчисляване на адреси за прескачане в RAM (заседнало);
- ALU - Аритметичната и логическата единица на микроконтролера (грешна кодова последователност, времето за изпълнение твърде бавно или твърде бързо);
- рутина на вектор/прекъсване, маршрутизиране на прекъсвания на системата.
Тестване и наблюдение на RAM (включително CSA - зона за превключване на контекст) и стек данни (стек под преливане/преливане), ROM и EEPROM.
- Тестването на RAM може да се направи при всяко стартиране на системата и по избор след всяко нулиране (в зависимост от системата и проекта). Циклично или според нуждите и докато стартирате програмата, във цялата RAM или само на определени блокове. За това трябва да бъдат внедрени някои методи за сигурност, както в SW, така и в HW: защита на променливи за безопасност или регистри с излишна стойност или допълнение. Активиране на механизми за корекция и откриване на кодове за коригиране на грешки HW (ECC). По-долу е даден общ пример за функции за манипулиране на безопасността на паметта на данните.
- Защита на паметта чрез конфигуриране на определени регистри на HW - начин, възможен само с някои микроконтролери.
- Използвайте CRC или маркери за данни със стойност по подразбиране.
Прилагане на CRC към определени ясно дефинирани блокове данни;
Б. Тестване и мониторинг на периферни устройства: ADC (аналогов преобразувател), SPI, CAN и други.
ADC конверторът на микроконтролера може да бъде тестван за откриване на следните грешки:
Грешки на еталонното напрежение (усилване на фаута/реф. На дрейфа на VA).
За да се открие този тип грешка, един от входовете на аналоговия преобразувател трябва да бъде свързан към независимо референтно фиксирано напрежение, със средна стойност между VGnd и VRref (напр. За VGnd - 0V и VRef 3.3V -> Vref тест - > 1.6V);
Офсетни грешки (блокирани битове „заклещени на 1 или 0“);
° С. Мониторинг и откриване на грешки в системата HW/ECU:
- Мониторинг на основните захранващи линии/ECU: 1.5V, 3.3.V, 5V и 12V
д. Наблюдение на изпълнението на SW чрез (PFM - Program Flow Monitor)
Е. Мониторинг на операционната система - "Задачи на ОС":
Коректно изпълнение на задачите във времето (конфигурирано повторение);
напр. За задача от 2 милисекунди, която искаме да наблюдаваме в интервал от 10 милисекунди, ще очакваме да имаме пет изпълнения на задачата от 2 милисекунди в идеалния случай; обикновено можем да изчислим допустимо отклонение от ± 1 задача, което води до правилен интервал на изпълнение, който може да бъде между [4-6] изпълнения.
F. Мониторинг и комуникация с външния пазач (WDT). Това е електронен чип, който комуникира с базиран на SPI микроконтролер. Неговата роля е да наблюдава правилното функциониране на микроконтролера, въз основа на QA (игра с въпроси и отговори) и генерирането на нулиране, в противен случай.
QA играта работи на базата на произволно генериране на набор от 15 въпроса (според предварително зададен алгоритъм), които се изпращат до микроконтролера на линията SPI на предварително определени интервали от време.
Всеки въпрос съответства на фиксиран, предварително зададен отговор, че WDT чака чрез SPI, в конфигурирания интервал от време.
За да постигнем високо ниво на безопасност, трябва да извършим следните тестове:
умишлено изпращане на грешен отговор и проверка на WDT, който реагира правилно, като увеличи брояча на грешките си, за да прочете дневника за грешки.
Нивото на ASIL, дадено на системата, се влияе от нейната приложимост в автомобила: какъв тип ECU е и какво контролира (напр. Окачване, трансмисия, двигател, седалки, информационно-развлекателна система и др.).
Важно е да споменем няколко термина, свързани със зоната за автомобилна безопасност:
FTI (Fault Tolerant Time) - времето, което изтича от момента на възникване на грешка до поставянето на системата в така нареченото безопасно състояние ("безопасно състояние").
FDT (Fault Detection Time) - времето, което изтича от момента на грешка до откриването от SW.
FRT (Fault Reaction Time) - максимално допустимото време за реакция в случай на грешка, от нейното откриване до безопасната зона.
Завършете тази статия, като представите по-долу пример за архитектура за управление на ECU за соленоидни клапани или електрически двигатели, с приложимост в областта на автоматичната трансмисия, контролираното окачване или управлението на кормилното управление. Компонентите, маркирани с червени точки, представляват зоните за безопасност в системата, които трябва да се наблюдават и контролират от SW, за да се достигне необходимото ниво на ASIL.