Embedded sistemi
 
4. Dizajn Embedded sistema

Elektronika obično koristi ili mikroprocesor ili mikrokontroler. Neki veliki ili stari sistemi upotrebljavaju opšte-namenski glavni kompjuterski sistem (mainframe) ili minikompjutere.
 
4.1 Korisnički interfejs

Korisnički interfejs za embedded sisteme široko variraju, i zato zaslužuju neke specijalne komentare.

Projektanti interfejsa pri PARC-u, Apple Computer-u, Boeing-u i HP-u umanjuju broj tipova korisničke akcije. Na primer, njihovi sistemi koriste dva dugmeta (apsolutni minimum) za kontrolu sistema menija (da bude jasno, jedno dugme bi trebalo da bude "sledeći unos menija" a drugo dugme "izaberite ovaj unos menija").

Touch-screen ili dugmad na ivici ekrana takođe umanjuju tip korisničke akcije.

Drugi osnovni trik je minimalizovati i pojednostaviti tip izlaza. Projektanti ponekad koristi svetlo stanja za svaki interfejsni priključak, ili stanje neispravnosti, da bi naznačili šta ne valja. Jeftina varijacija je dva niza svetla, sa odštampanom matricom grešaka koje oni biraju - korisnik može zalepiti oznake na maternjem jeziku.

Na primer, Boinog-ov standardni test interfejs je dugme i malo svetala. Kada pritisnete dugme, sva se svetla upale. Kada otpustite dugme, svetla neispravnosti ostaju uključena. Nazivi su na osnovnom Engleskom.

Drugi primer je verovatno odmah do vas. Pogledajte kompjuterski štampač. Najčešće su svetla označena sa lepljivom etiketom koje mogu biti štampane na bilo kom jeziku. Na nekim tržištima isporučeni su uređaji sa nekoliko kolekcija etiketa, pa korisnik može izabrati najprihvatljiviji jezik.

Projektanti koriste boje. Crvena znači da se korisnik može povrediti (misli se na krv). Žuta znači da je nešto pošlo naopako. Zelena znači da je stanje OK/dobro. Ovo je namerno urađeno da bude slično semaforu, jer to većina ljudi razume.

Većina dizajna je nameštena tako da se prikaz promeni odmah nakon korisnikove akcije. Ako mašina treba nešto da uradi, ona to obično uradi unutar 7 sekundi, ili daje izveštaj procesa.

Ako dizajn zahteva ekran, mnogi projektanti koriste običan tekst. To je poželjno jer su korisnici čitali znakove godinama. GUI je dopadljiv i može svašta da radi, ali obično dodaje godine potrebne umetniku, dozvole i vreme prevoda i jednog ili dva programera ceni koštanja projekta, bez dodavanja neke vrednosti uređaja. Često, prepametni GUI zapravo zbuni korisnika, jer mora da koristi nepoznate simbole.

Ako dizajn mora da ukaže na delove mašine (kao kod kopira), oni su često obeleženi sa brojevima na pravoj mašini, koji su vidljivi i sa zatvorenim vratima.

Mrežni interfejs je samo daljinski ekran. Ponaša se slično bilo kom drugom korisničkom interfejsu.

Jedan od najuspešnijih opšte-namenskih ekranski-baziranih interfejsa je meni sa dva dugmeta i linija teksta na jeziku korisnika. On se uporebljava u pejdžerima, štampačima srednje cene, mrežni switch-evima, i drugim situacijama sa uređajima srednje cene koja zahteva kompleksno ponašanje od strane korisnika.

Gde postoji tekst, projektant bira jedan ili više jezika. Osnovni jezik je onaj najrazumljiviji od strane ciljne grupe korisnika.

Većina projektanata pokušava da koristi lokalne setove karaktera, bez obzira koliko su bolni. Ljudi sa neobičnim setovima karaktera se osećaju maženim i voljenim kad se njihov jezik pojavi na mašinama koje koriste.

Tekst obično prevodi profesionalan prevodilac, čak i kada je lokalni govornik u osoblju. Marketinško osoblje bi trebalo da bude u mogućnosti da kaže stranim distributerima da su prevodi profesionalni.

Strane organizacije često pokušavaju da daju najvećem distriburteru obavezu da pregleda i prepravi neki prevod na njihov lokalni jezik. Ovo zaustavlja kritike od strane drugih lokalnih govornika, koji su naklonjeni verovanju da nijedna strana organizacija neće znati njihov jezik bolje od njih samih.

Drugi jednostavan trik je da su modovi apsolutno jasni na korisničkom displeju. Ako interfejs ima modove, oni moraju biti uvek reverzibilni na očigledan način.

Većina nadležnih organa smatra da je test upotrebljivosti važniji od broja mišljenja. Projektanti predlažu testiranje upotrebljivosti korisničkog interfejsa na najnižoj mogućoj tačci. Najčešće korišćen brzi, prljavi, test je da zamolite izvršnog sekretara da upotrebi kartonski model nacrtan sa magičnim markerima, i upravljan od strane inžinjera. Rezultat zapisan na video traci će vrlo verovatno biti i smešan i vrlo poučan. Na traci, svaki put kad inžinjer govori, interfejs će omanuti jer će prouzrokovati poziv servisa.

U dobrostojećim organizacijama, jedna ličnost odobrava korisnički interfejs. Često je to korisnik, glavni distributer ili neko direktno odgovoran za prodaju sistema. Komiteti ne donose dovoljno brzo odluke, a neki ljudi nikad. Ovo prouzrokuje skupa zakašnjenja koja se mogu izbeći.
 
4.2 Platforma

Postoji mnogo različitih CPU arhitektura korištenih u embedded dizajnu poput ARM, MIPS, Coldfire/68k, PowerPC, X86, PIC, 8051, Atmel AVR, H8, SH, V850, FR-V, M32R itd.

To je u suprotnosti sa tržištem desktop kompjutera, koje je do momenta pisanja ovog teksta (2006) ograničeno na nekoliko konkurentskih arhitektura, većinski Intel/AMD x86, i Apple/Motorola/IBM PowerPC, korišćen u Apple Macintosh-u. Sa porastom prihvatanja Java-e na ovom polju, u budućnosti postoji tendencija moguće eliminacije zavisnosti od specifičnog zahteva CPU/hardvera (i OS-a). Druga grana moguće tendencije eliminacije je razvoj Linux operativnog sistema koji danas postoji za sve navedene arhitekture (pa čak i one ne-nabrojane).

PC/104 je tipičan standard za mali, nisko-serijski embedded i otporniji sistemski dizajn. Oni često koriste DOS, Linux ili embedded real-time operativni sistem kao što je QNX ili Inferno.

Uobičajena konfiguracija za vrlo visoko-serijske embedded sisteme je sistem-u-čipu, aplikaciono-zavisno integralno kolo, za koje se CPU naručuje kao intelektualna svojina i ubacuje u IC-ov dizajn. Najuobičajenija šema se odnosi na upotrebu field-programmable gate array (polje-programibilnih nizova gejtova), i njegovog programiranja sa svom logikom, uključujući CPU. Najmoderniji FPGA su dizajnirani za tu namenu.
 
4.3 Alati

Poput tipičnih kompjuterskih programera, dizajneri embedded sistema koriste kompajlere (compailer), assemblere (assembeler) i debagere (debuggeers) za razvoj embedded sistemskog softvera.

Te softverske alatke dolaze sa nekoliko izvora:
Softverske kompanije koje su se specijalizovane za embedded tržište
Izvedeni su iz GNU softverskih razvojnih alata. (vidi cross-compiler)
Ponekad, razvojni alati za lični kompjuter mogu biti korišteni ako je embedded procesor relativno sličan običnom PC procesoru.

Dizajneri embedded sistema takođe koriste nešto softverskog alata retko korištenog od strane kompjuterskih programera.
Najčešći su uslužni programi za dodavanje kontrolnog zbira (checksum) ili CRC-a programu, pa može proveriti svoj program pre nego što ga pokrene.
Manje česti su uslužni programi koji pretvaraju fajlove podataka u kod, tako da može da se uključi bilo koji podatak u program.
Neuobičajeni su Sinhroni programski jezici, korišteni zbog ekstra pouzdanosti.
 
4.4 Operativni sistem

Ovi (embedded) sistemi često nemaju operativni sistem, ili imaju specijalizovani embedded operativni sistem (često real-time operativni sistem), ili je programer dodelio portu jedan od njih novom sistemu.
 
4.5 Ugrađeni sopstveni - test (Built-in Sef-test)

Većina embedded sistema imaju neki stepen ili količinu ugrađenog samo-testa. Postoji nekoliko osnovnih tipova:
  1. Testiranje kompjutera: CPU, RAM, i programska memorija. Oni se obično pokreću jedanput po uključenju. U sigurnosno-kritičnim sistemima, oni se pokreću periodično, ili svo vreme.
  2. Testiranje periferije: Ovi simuliraju ulaze i povratno čitaju ili mere izlaze. Iznenađujući broj komunikacija, analognih i kontrolnih sistema imaju ove testove, često vrlo jeftine.
  3. Testiranje napajanja: Oni obično mere svaku trasu napajanja, i mogu isto tako proveriti ulaz (bateriju ili mrežu). Napajanja su često visoko opterećena, sa niskim graničnim vrednostima.
  4. Provera komunikacije: Oni potvrđuju prijem jednostavne poruke sa prikključene jedinice. Internet, na primer, ima ICMP poruku "ping".
  5. Testiranje kablova: Oni obično aktiviraju žicu u vijugavom rasporedu preko test pinova kablova koji bi trebalo da budu prikačeni. Sinhroni komunikacioni sistemi, poput telefonskih media, često koriste "sink" testove za ovu namenu. Kablovski testovi su jeftini, i neverovatno korisni kada jedinica ima priključke.
  6. Testiranje opreme: Često sistem treba da se podesi kad je instaliran. Testovi opreme obezbeđuju pokazatelje osobi koja instalira sistem.
  7. Potrošački testovi: Oni mere šta sistem koristi i upozorava kad su merene količine male. Najčešći primer je merenje potrošnje kola. Najkompleksniji primeri mogu biti automatizovan medicinski analitički sistem koji održava zalihu hemijskih reagenasa.
  8. Operacioni testovi: Oni mere stvari o kojima će korisnik da vodi računa da bi radio sistem. Prvenstveno, njih treba pokrenuti kad je sistem operativan. To uključuje navigacione instrumente na avionima, kilometar sat na kolima i svetla aktivnosti diska.
  9. Sigurnosni testovi: Oni se pokreću unutar "intervala sigurnosti", i oni garantuju da je sistem još uvek pouzdan. Sigurnosni interval je obično vreme manje od minimuma vremena koje prouzrokuje štetu.
 
4.6 Pouzdanost režima

Pouzdanost ima različite definicije zavisno za šta ga ljudi žele. Zanimljivo, postoji realtivno nekoliko tipova pouzdanosti, i sistem sa sličnim tipovima koriste slične tipove dizajna embedded sistem i ugrađenih-u-sebe testova:
  1. Sistem je previše nesiguran, ili nedostupan za popravku. (Svemirski sistemi, podvodni kablovi, navigacioni farovi, sistemi bušotina, i čudnovato, automobili i masovno napravljeni proizvodi). Generalno, embedded sistemi testiraju podsisteme, i prebacuju na rezervne delove, ili uključuju "limp (savitljive) modove" koji obezbeđuju delimične funkcije. Obično masovno proizvedena oprema za potrošače ( kao što su kola, PC ili štampači) padaju u ovoj kategoriji, jer je popravka preskupa i serviser je predaleko, kad se uporedi sa osnovnom cenom koštanja jedinice.
  2. Sistem se ne može pouzdano ugasiti. (Navigacija aviona, kontrolni sistem reaktora, neke kontrole u fabrici hemikalija, motori na jednomotornom avionu) Slično prethodno navedenim, "limp modovi" su manje tolerantni. Često rezervu bira operator.
  3. Sistem će izgubiti ogromnu količinu novca kad se ugasi. (Telefonske centrale, kontrole fabrike, kontrola mosta i lifta, automatizovana prodaja i servis) Oni obično imaju nekoliko idi/ne idi testova, sa on-line rezervama ili limp modova koji koriste alternativnu opremu i ručne procedure.
  4. Sistem ne može da radi kad je sumljiva situacija. (Medicinska oprema, avionska oprema sa "vrućim" rezervama, poput motora) Testiranje može biti vrlo egzotično, ali jedina prava akcija je ugasiti celu jedinicu i pronaći grešku.
  5. Sistem nije operativan kada će izgubiti ogromnu količinu novca. (Kontrole hemijske fabrike, finansijski sistemi) Vrlo slično medicinskoj opremi, iznad.
 
4.7 Ispravljanje grešaka (Debugging)

Debugovanje (ispravljanje grešaka) se obično izvršava sa in-circuit emulatorom, ili nekim tipom debugera koji može prekinuti mikrokontolerov interni mikrokod.

Prekid mikrokoda dozvoljava debugeru da radi u hardveru sa kojim samo CPU radi. CPU-baziran debuger može biti korišten za testiranje i debugovanje elektronike kompjutera sa tačke gledanja CPU-a. Ovo je bila pionirska karakteristika PDP-11.

Razvojni ljudi bi trebalo da insistiraju na debagovanju koje pokazuje jezik visokog nivoa, sa tačkama prekida (breakpoints) i jedno-koračaje (single-stepping), jer su ove karakteristike široko rasprostranjene. Takođe, Razvojni ljudi bi trebalo da upisuju i koriste mogućnosti jednostavnog logovanja da bi ispravili sekvence realno-vremenskih događaja.

PC ili programeri glavnih sistema kad susretnu ovu sortu programiranja često postanu zbunjeni sa prioritetima dizajna i prihvatljivim metodama. Savetovanje, recenzija koda i ne-sujteno programiranje se preporučuje.

Kako kompleksnost embedded sistema raste, alati visokog nivoa i operativnih sistema se sele na mašineriju gde to ima smisla. Na primer, mobilni telefoni, lični digitalni pomoćnici i drugi potrošački kompjuteri često zahtevaju značajanu količinu softvera koja je lično naručena ili obezbeđena sa strane umesto od proizvođača elektronike. U takvim sistemima, okruženje otvorenog programiranja kao što je Linux, OSGi ili Embedded Java je neopodno, pa će isporučioc softvera treće-strane moći da ga proda velikom tržištu.

Većina takvih otvorenih okruženja imaju referentni dizajn koji radi na ličnim kompjuterima. Poprilično softvera za takve sisteme može biti razvijeno na običnom PC-u. Kako bilo, portovanje otvorenog okruženja na specijalizovanu elektroniku i razvoj drajvera uređaja za elektroniku je još uvek odgovornost klasičnog inžinjera embedded softvera. U nekim slučajevima, inžinjer radi za proizvođača integralnih kola, ali takvih ljudi ima i još po negde.
 
4.8 Pokretanje (Start-up)

Svi embedded sistemi imaju početni kod. On obično onemogućava prekide, postavlja elektroniku, testira kompjuter (RAM, CPU, i softver) a potom startuje aplikacioni kod. Mnogi embedded sistemi se povrate nakon pada napajanja u kratkom intervalu restartovanjem (bez prethodnog samo-testa). Uobičajeno vreme restartovanja je deseti deo sekunde.

Mnogi projektanti su našli za zgodno da stave jednu ili više hardversko plus softversko kontrolisane LED-ove koji prijavljuju greške tokom razvoja (i u nekim slučajevima, nakon puštanja proizvoda, za dijagnostičku prijavu problema). Česti šablon je da elektronika uključi sve LED(ove) pri resetu (pomoću toga proveravamo da je napajanje priključeno i da sami LED(ovi) rade), posle čega softver menja LED šablon dok se Samo Test pri Uključenju (Power-On Self Test) izvršava. Nakon toga softver može da blinkuje LED(ove) ili postavi svetlosni šablon tokom normalnog rada da bi označio proces izvršavanja programa i/ili greške. To služi za razuveravanje većine tehičara/inžinjera i nekih korisnika. Interesantan izuzetak od toga su električna brojila i druge stvarčice na ulici, žmirkajuća svetla su poznata da privlače pažnju i vandalizam.


Sadržaj

Navigacija