|
|
|
| Software projekti |
Autor: Stevan Tošić |
|
E-mail: office@mikroe.com |
|
|
VEZNI IGRAČ U fudbalskom timu postoji vezni igrač koji obično nosi dres sa brojem 10 i koji je mozak cele ekipe. U mikrokontrolerskom sistemu takva uloga je poverena dispečeru... Pretpostavljam da ste često bili u prilici da uživate u majstorijama Piksija, legende fudbala. U čemu je tajna njegovog majstorstva? Odgovor je da u pravom trenutku pronalazi najbolje postavljenog saigrača, i njemu dodaje loptu. Nešto slično se događa i u računarskom sistemu. Programi koji izvršavaju određene zadatke se nazivaju “drajveri” i namenjeni su za podržavanje rada ulazno/izlaznih uređaja (i nekih drugih spoljašnjih događaja). Broj takvih uređaja zavisi od zadataka koji se moraju obavljati. Drugi (odgovorniji) program koji se naziva dispečer, odlučuje kada se treba pokrenuti neki drajver u zavisnosti od situacije u sistemu. Jednostavno rečeno, ovakva softverska podrška koja omogućuje korisniku da koristi rapoložive fizičke uređaje (ekran, tastaturu, printer, miš, hard disk itd.) naziva se operativni sistem (OS). Ako se prihvati činjenica da je hardverska podrška takva kakva jeste, za sistem programera uvek ostaje izazov da maksimalno iskoristi raspoložive računarske resurse. Sistem programer koristi neki od programskih jezika (asembler, C ili C++) koji mogu direktno pristupati srcu mašine (registri, memorija itd.) kako bi pisanjem OS omogućili što bolju spregu običnog korisnika i mašine. U daljem tekstu će se pod sistemom podrazumevati skup hardverskih komponenti, a pod operativnim sistemom softver.
Mikrokontroler i operativni sistem Kako je ovde reč o
mikrokontrolerima (minikompjuterima) čiji je zadatak da odrade neke specifične poslove,
za projektovanje i izgradnju softverske podrške (za obavljanje tih poslova) neophodno je
dobro poznavanje ulazno-izlaznih jedinica. Vrsta poslova koji se mogu odraditi pomoću
mikrokontrolerskog sistema su obično merenja i prikaz fizičkih veličina (brzina
obrtanja motora, temperatura u prostoriji, pritisak itd.) i eventualno regulacija tih
veličina. Obavljanje ovih poslova zahteva određene periferne jedinice. To mogu biti
7-segmentni displeji kao izlazne jedinice za prikaz izmerene veličine, male tastature
kojima se može uticati na neke parametre merenja ili upravljanja i merne sonde kao ulazne
jedinice (Slika 1). Poželjno je ostvariti i komunikaciju mikrokontrolera sa PC računarom
radi čuvanja, obrade i vizuelnog predstavljanja podataka. Primena RTOS-a Osnovna činjenica kod projektova-nja real-time OS (RTOS) sa jednim procesorom je da se u jednom trenutku može izvršavati samo jedna procesorska naredba, a da broj različitih poslova (operacija ili zadataka) može varirati. Posledica toga je da poslovi moraju deliti procesorsko vreme. U takvim uslovima od najvećeg je značaja da se određeni vremenski intervali u kojima je procesor dodeljen određenom poslu raspodele tako da ceo sistem skladno funkcioniše. To znači da procesor malo radi ovo, malo ono, tačno onda kada je to potrebno, i tako redom. Ilustracije radi na Slici 2a i 2b masnim linijama je prikazana podela procesorskog vremena za podržavanje rada tastature, displeja1, displeja2, (označeni kao 1 i 2), obradi rezultata merenja brzine obrtanja vratila motora i komunikacije sa računarom. U prvom slučaju (Slika 2.a) nema tastature ni komunikacije sa računarom. Zadatak se sastoji u tome da se svakih 5 ms meri brzina dva motora (brojači 1 i 2), da se ulazne digitalne reči preračunaju u vrednosti brzine (broj obrtaja u minuti - engl. Rotation Per Minute RPM) koje se zatim ispisuju na displejima 1 i 2. Nema nepredviđenih događaja, a jedino je kritično da se unutar 5 ms obave navedeni zadaci. Prosečan mikrokontroler može obaviti navedene zadatke u zadatom vremenu. Situacija postaje nezgodnija kada se u sistem dodaju tastatura i mogućnost komunikacije sa računarom (Slika 2.b.). Na pritisak tastera na tastaturi se mora reagovati u smislu da se kod tastera zapamti, a to zahteva da procesor obradi taj događaj. Ako od strane računara stiže poruka prema mikrokontroleru (ili mikrokontroler šalje poruku računaru), tada se i ovom događaju mora posvetiti procesorsko vreme. Ova dva događaja se mogu pojavljivati nepredviđeno i ne smeju se ignorisati. Na neki način oni kradu procesorsko vreme i time smetaju ostalim poslovima tako da se dolazi u situaciju kada se postavlja pitanje da li se ceo posao može odraditi korektno. Posebna tema su principi na kojima se bazira programiranje u real-time OS da bi odrađivanje celokupnog posla bilo što efikasnije. Neka to ostane otvoreno pitanje za daljnju diskusiju.
Asembleri i kompajleri za programski jezik C ili C++ se mogu nadograditi skupovima funkcija koje podržavaju rad u stvarnom vremenu. Ove dodatne softverske biblioteke se mogu nabaviti nezavisno od asemblera i kompajlera i koštaju neretko i više nego sami jezici. Ako se pravilno koriste navedene funkcije stiče se utisak da je sam hardver moćniji jer je procesor maksimalno zaposlen. Za upotrebu funkcija iz takve biblioteke nije neophodno razumevanje samog jezgra (kernela) RTOS. Njima treba pristupiti kao crnim kutijama za koje se zna šta se dobija na izlazu za poznati ulaz. Kada se izvežba korišćenje funkcija koje su deo RTOS-a tada postoje dobri uslovi da se raspoloživi mikrokontrolerski sistem maksimalno iskoristi.
|
|
C o p y r i g h t 1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji |