Domov

Reference iz več kot treh desetletij embedded razvoja

Stranke iz automotivea in industrije zaupajo mojim embedded izkušnjam od ustanovitve SCHMITT CONSULTING. Dva projekta ponazarjata moj način dela.

Kot neodvisen embedded svetovalec razvijam za stranke, ki potrebujejo programsko opremo blizu strojne opreme, vedenje v realnem času ali kombinacijo obeh.

Iz razlogov zaupnosti vseh projektov ni mogoče javno predstaviti. Naslednja dva primera opisujeta projekta, katerih ključne podatke smem navesti.

Stihl — popoln nov razvoj krmiljenja motorja motorne žage

Za Stihl v Waiblingenu sem popolnoma na novo razvil programsko opremo za krmiljenje motorja motorne žage. Izhodišče je bila analitična naloga: obstoječa krmilna programska oprema je prihajala od japonskega dobavitelja in je bila napisana v asemblerju. Stihl je hotel podrobno razumeti, kaj ta programska oprema počne. Analiziral sem asemblersko kodo in dokumentiral funkcije tako, da so razvijalci Stihla lahko v celoti sledili logiki.

Na tej podlagi sem dobil naročilo za nov razvoj — tokrat v C, s ciljem dostaviti več funkcionalnosti od izvirne programske opreme. Robni pogoji so bili strogi: trg motornih žag je izjemno cenovno konkurenčen, zato je bil na voljo le zelo majhen, poceni mikrokrmilnik. Pomnilnik je bil tako tesen, da je bil operacijski sistem realnega časa izključen. Programska oprema je morala teči bare-metal in hkrati zanesljivo vzporedno obdelovati realtime signale iz strojne opreme.

Skozi celoten razvoj sem imel na mizi le ploščo s strojno opremo in svojo kodo — brez testnega okolja, brez motorja. Prvi praktičen test je potekal na testni klopi Stihl v Waiblingenu. Po mesecih analize in razvoja ne bi bilo nenavadno, če motor ne bi takoj vžgal. Vžgal je takoj in v osnovi tekel dobro. Ostalo je bilo fino nastavljanje točk vžiga, iterativno optimiziranih na testni klopi — postopek, ki ga sicer pokriva adaptivna učeča se programska oprema, a ga je bilo tu treba zaradi pomnilniških razlogov izvesti ročno.

Na koncu sem Stihlu dostavil krmilno programsko opremo, ki je počela več od prejšnje japonske različice, tekla na enako poceni mikrokrmilniku in bila predana s popolno dokumentacijo. Komercialni okvir je vreden omembe: pri zaključnih pogajanjih v Stihlovi nabavi predhodno dogovorjena cena ni bila znižana. Nabavnik je le jasno povedal, da mora biti vsak evro upravičljiv — a znižanje cene ni bilo cilj. Ta izkušnja — stranka, ki plačuje upravičljive cene za upravičljivo kakovost — je redka na trgu in do danes oblikuje moje razumevanje dobrega sodelovanja.

Projekt je bil obravnavan kot pogodba s fiksno ceno. Razvoj je potekal popolnoma izven Stihlovih prostorov; usklajevanje s kontaktno osebo Stihla je potekalo le pri temeljnih odločitvah.

Audi — MOST simulacija in lasten razvoj CAN strojne opreme

Za Audi v Ingolstadtu je bilo moje izvirno naročilo izdelava programske opreme za simulacijo MOST vodila za infotainment sistem — realtime simulacija, ki je omogočala testiranje krmilnih enot proti virtualnemu MOST vodilu.

Na kraju samem se je izkazalo, da je imel Audi vzporedno drugo težavo: obstoječa CAN simulacijska plošča, ki jo je dobavil zunanji dobavitelj, ni zanesljivo delovala v določenih obratovalnih pogojih — preprosto je nehala pošiljati podatke v odločilnih trenutkih. Ker mi je delo z MOST dalo podrobno znanje o sodelovanju CAN in MOST vodila, me je kontaktna oseba Audija vprašala, ali znam to CAN simulacijo na novo zgraditi samostojno.

Privolil sem z opombo, da bi bil prvi korak delujoč prototip — ne lep, ampak funkcionalen. V manj kot petih delovnih dneh je na mizi ležala lastnoročno zasnovana elektronska plošča z ATmega128, skupaj s programsko opremo za simulacijo, ki sem jo napisal sam. Prototip je bil ročno spajkan, a je deloval — tudi v obratovalnih pogojih, v katerih je plošča prejšnjega dobavitelja odpovedala.

Audi je nato vprašal, ali lahko izdelujem in dobavljam kose — a v industrijski kakovosti, popolnoma strojno izdelane, ne ročno. Zasnoval sem postavitev za serijsko ploščo in sodeloval s proizvajalcem PCB iz Audijevega okolja, ki je poskrbel za strojno proizvodnjo. Po rešitvi incidenta pri proizvajalčevem strojnem testiranju je plošča dostavljala zanesljive rezultate — prav tam, kjer je izvirna dobaviteljeva plošča odpovedala.

Ta projekt prikazuje primer, kjer je naročilo raslo skozi konkretno tehnično substanco: izvirni programski nalogi se je pridružil lasten razvoj strojne opreme s serijsko proizvodnjo — ker sem poznal vodilno arhitekturo dovolj globoko, da sem na povpraševanje predlagal funkcionalno pot rešitve.

Druge stranke

Poleg podrobno opisanih projektov sem delal za druge stranke v automotive, industriji in medicini. Konkretnejše reference za naloge, primerljive z vašim okoljem, z veseljem obravnavam v uvodnem pogovoru — pod zaupnostjo, če želite.

Kaj imata ta projekta skupnega

Tri lastnosti se vlečejo skozi oba projekta in skozi večino moje dejavnosti:

Samostojna celostna odgovornost
Oba projekta sta se začela z analitično nalogo in končala z dokončano, dostavljeno rešitvijo.
Embedded delo blizu strojne opreme v dejanskih robnih pogojih
Stihl: bare-metal na mikrokrmilniku z minimalnim pomnilnikom. Audi: realtime MOST simulacija plus lastna CAN strojna oprema.
Sodelovanje kot pogodba s fiksno ceno in trdno obljubo dobave
Oba projekta sta potekala izven prostorov stranke, s selektivnim usklajevanjem pri temeljnih odločitvah. Ta oblika sodelovanja je moj prednostni model.

Barvna shema

Jezik