Microchip Technology Inc.
Avtor: Bob Martin
Naraščajoče sprejemanje umetne inteligence (AI) in strojnega učenja (ML) v naraščajočih avtonomnih sistemih zahteva pametne varnostne sisteme preko velikega števila različic industrije.
Poudarek se je premaknil od nižanja stroškov do prijaznosti uporabniku in varnosti. To zahteva celovito funkcionalno varnost (angl. functional safety – FuSa) nivoja, ki vsebuje varnostni koprocesor z varnimi vhodno/izhodnimi krmilniki, ki delajo skupaj z namenom zaščite sistema. Mikrokontrolerji (MCU) nudijo cenovno ugodno rešitev za implementacijo teh varnostnih koprocesorjev, ki so srce današnje nove generacije avtonomnih sistemov.
Funkcije avtonomne varnosti in njene specifikacije
Varnostni koprocesorji izvajajo nameščen ML model, ki sprejema zunanji tok podatkov, vključno z video, avdio podatki in podatki iz okolice ter operaterja – ali v nekaterih primerih se vsi te podatki prenesejo hkrati. Te podatkovni tokovi morajo biti vredni zaupanja.
Prav tako je pomembno, da lahko koprocesorji zaupajo v verno reprodukcijo izhodnih stanj, ki jih generirajo za motorje, releje, indikatorje in ostale naprave. Glavni procesor mora imeti možnost, da se zanese na te vhodno/izhodne krmilnike s čemer naredi inteligentne in hitre odločitve v primeru odpovedi.
Uporaba mikrokontrolerjev za varnostne koprocesorje
S podporo celotnega razvojnega ekosistema so prvenstveno 8 in 32-bitni mikrokontrolerji uporabljeni za štiri glavna varnostna področja, za katera so bila narejene naslednje industrijske specifikacije:
- ISO262: Automotive Safety Integrity Applications (ASIL) za avtomobilske aplikacije
- IEC 61508: Safety Integrity Levels (SIL) za industrijske aplikacije
- IEC 60730: Standardi funkcionalne varnosti za gospodinjske aparate
- IEC 60730 Funkcionalna varnost za medicinske naprave
- Orodje razvojnega ekosistema ima dva pomembna zahtevka. Prvi je zanesljiva praksa kodiranja med razvojem in sestavljanjem v strojno kodo.
Ekosistem razvojnih orodij ima dve pomembni zaledni zahtevi. Prva je zanesljiva praksa kodiranja med razvojem in med programiranjem v strojno kodo. To se rešuje z uporabo funkcionalno varnostnih prevajalnikov, ki so certificirani v skladu s standardi funkcionalne varnosti ISO ali IEC prek organizacij, kot je TÜV SÜD, mednarodno akreditiran preskusni organ. Druga zaledna funkcija je podrobna analiza tega, katera koda je bila izvedena in katera koda je bila izpuščena med tipičnim ciklom testiranja. Za to je potreben vtičnik za preverjanje kode.
Kako avtonomna varnost deluje?
Glavna interakcija z zunanjim svetom poteka prek strojne opreme, začenši z neposrednimi vmesniki za senzorje in aktuatorje, ki jih zagotavljajo MCU-ji na robu s podporo FuSa. Glej sliko 2 spodaj.
Ključne funkcije vključujejo
Brown Out Detect (BOD)
Zelo malo delovnih okolij ima popolne napajalnike. Mikrovalovne pečice in laserski tiskalniki lahko povzročijo utripanje luči, velika električna orodja pa so znana po tem, da izklopijo varovalke. Avtonomni sistemi morajo vedeti, da njihovo napajanje odpoveduje, še preden odpove, tako da se lahko omogoči rezervno napajanje ali pa se nastavijo kritična stanja podatkov in izhodov, da se zagotovi brezhibna prekinitev napajanja. BOD vezje v teh MCU-jih lahko neprekinjeno spremlja napajalno napetost in se na padajočo raven odziva na dva posebna načina. Prvič, funkcija spremljanja ravni napetosti (VLM) sproži prekinitev, ko je presežena izbirna mejna vrednost, kar omogoča naloge izklopa v sili neposredno pred prekoračitvijo praga dejanske ravni BOD. Ko je raven BOD presežena, naprava ostane v stanju ponastavitve, dokler se ta pogoj ne odpravi. Prav tako je mogoče določiti vzrok dogodka ponastavitve, da se zagotovi ustrezna strategija obnovitve, ki je lahko drugačna od prvega cikla vklopa.
Okenski Watchdog Timer
Sodobni MCU-ji uporabljajo Watchdog timerje kot mehanizem za odpravljanje napak, ki je namenjen prekinitvi neskončne zanke ali stanja „spin lock“, ki nima izhoda, razen drastičnih ukrepov. V zgodnjih različicah je bil določen prag časovne omejitve v sekundah ali milisekundah, za kar je bil potreben nek „ klic“ delujoče kode, preden je bil ta prag dosežen. Ko je bil ta potrjen, se je prag časovne omejitve ponastavil in odštevanje se je ponovno začelo. Leni programerji so za posodabljanje časovnikov uporabljali periodične prekinitvene servisne rutine, vendar se te rutine lahko še naprej izvajajo same, čeprav je preostali del sistema nekje obtičal v neskončni zanki. Ponastavitve sistema, ki bi rešila situacijo, ni.
Okenski Watchdog Timer je del težave rešil tako, da je omogočil določitev okna WatchDog storitve. Na ta način časovnika WatchDog Timer ni mogoče servisirati prepočasi ali prehitro. Tako se je težje zanašati na kodo, za katero je znano, da se izvaja v pretečenih časih, ki so pod najvišjim pragom.
Ciklični redundančni kontrolni pregled (CRC) kode
Periferna enota CRC Code Scan zagotavlja celovitost programirane kodne slike. Je veliko zmogljivejša kot le kontrolna vsota, ki jo je mogoče z matematično manipulacijo zlahka ogoljufati. Poseben strojni blok MCU je konfiguriran tako, da izvaja skeniranje na zagonskem delu programskega pomnilnika, aplikacijskem delu ali celotnem Flash pomnilniškem polju. Periferna enota nato primerja svoj CRC rezultat s pravilno kontrolno vsoto, ki je priložena na koncu določenega prostora kode. Če se obe 16-bitni številki ujemata, se preveri, da kodni prostor ni bil spremenjen. Neuspeh pri ujemanju je mogoče konfigurirati tako, da se sproži prekinitev, ki je ni mogoče maskirati, da se nadalje obravnava težava.
Vhodna proga Periferne naprave za splošne vhode/izhode (GPIO)
V zgodnjih časih MCU-jev, ko je bil pin GPIO konfiguriran kot izhod, je bil edini način za preverjanje, ali se raven napetosti na pinu (tj. 5 V) ujema z vrednostjo kontrolnega bita (tj. ‚1‘), uporaba ločenega GPIO pina, konfiguriranega kot vhod, za branje ravni napetosti. Priključek GPIO, konfiguriran kot izhod, ni mogel prebrati dejanske napetosti, temveč le vrednost, ki je bila nanj zapisana; zato se je vrednost „vhoda“ vedno ujemala.
„True Input Path GPIO“ zagotavljajo ločeno električno pot do diskretnega notranjega INPUT registra, ki odraža resnično raven, nastavljeno na priključku. Čeprav se ta raven lahko bere le kot logična ‚1‘ ali logična ‚0‘, še vedno zagotavlja dovolj povratnih informacij za potrditev tega, kar je bilo zapisano v kontrolni OUTPUT register. Do neskladja med tema dvema vrednostma ne bi smelo nikoli priti. Če se vrednosti razlikujejo, je na določenem GPIO priključku prišlo do kratkega stika ali odprte sponke, kar je treba ustrezno obravnavati.
MCU-ji s temi zmožnostmi so temelj popolne FuSa plasti. Ta plast bo postajala vse pomembnejša, saj se bo avtomatizacija, ki temelji na AI/ML inteligenci, od osredotočanja na proizvodnjo in prihranke pri vzdrževanju sistema preusmerila k varnosti in udobju uporabniške izkušnje.
Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.