1 Uvod Tema diplomskega dela Opis univerzalnega preskuševalnika vgradnih sistemov Splošno o testiranju

Size: px
Start display at page:

Download "1 Uvod Tema diplomskega dela Opis univerzalnega preskuševalnika vgradnih sistemov Splošno o testiranju"

Transcription

1 UNIVERZA V LJUBLJANI FAKULTETA ZA ELEKTROTEHNIKO MATEJ RAKOVEC UNIVERZALNI PRESKUŠEVALNIK VGRADNIH SISTEMOV UNIVERZITETNO DIPLOMSKO DELO Mentor: doc. dr. Boštjan Murovec Ljubljana, september 2007

2

3 Zahvala Najprej se želim zahvaliti mentorju doc. dr. Boštjanu Murovcu, ki je strokovno vodil potek diplomskega dela in je s svojimi nasveti prispeval k dokončanemu oblikovanju diplomskega dela. Zahvaljujem se tudi zaposlenim v podjetju Hermes Softlab d.d., še posebej Mladenu Barjaktareviču in Petru Marinšku za pomoč pri programiranju. Zahvaljujem se tudi staršem in sestri Mojci za vso podporo pri študiju.

4

5 Kazalo 1 Uvod Tema diplomskega dela Opis univerzalnega preskuševalnika vgradnih sistemov Splošno o testiranju Namen testiranja Vrste testov Test enote (ang. Unit Testing) Test integracije (ang. Integration Testing) Test sistema (ang. System Testing) Test sprejemljivosti (ang. Acceptance Testing) Test bele škatle (ang. White Box Testing) Test črne škatle (ang. Black Box Testing) Test sive škatle (ang. Gray box testing) Strojna oprema I 2 C vodilo Pisanje v podrejeno napravo Branje iz podrejene naprave Splošno o računalniških omrežjih Fizični sloj (ang. Physical Layer) Podatkovni sloj ali linijski sloj (ang. Data Link Layer) Mrežni sloj (ang. Network Layer) Prenosni sloj (ang. Transport Layer) Pogovorni sloj (ang. Session Layer) Predstavitveni sloj (ang. Presentation Layer) Sloj uporabe (ang. Application Layer) Arhitektura omrežja internet Model in arhitektura uporabljenega omrežja Arhitektura odjemalske aplikacije Arhitektura strežniške aplikacije Splošno o vgradnih sistemih Definicije vgradnih sistemov Koncepti operacijskega sistema vgradnih sistemov Opravila (ang: Tasks) i

6 10.2 Semaforji Sporočilna vrsta (ang. Message Queue) Uporabljeni koncepti v jeziku C# Podatkovni razred ArrayList Razpršena tabela (ang. Hashtable) Sklad (ang. Stack) Delegati (ang. Delegates) Nit (ang. Thread) Skriptni programski jezik ETSL Velike in male črke ter presledki in prazne vrstice Številke in spremenljivke Komentar Logični operatorji Ukazi skriptnega programskega jezika ETSL Dekleracija spremenljivk Beleženje (ang. Log) Zakasnitev Shranjevanje vrednosti v spremenljivko Seštevanje Odštevanje Premik bitov v levo Premik bitov v desno Množenje Deljenje Pogojni (IF) stavek Oznaka (ang. Label) GOTO stavek GPIO ukazi (ang. General Purpose Input Output, GPIO) Branje GPIO sponk Postavitev GPIO sponk na logični nivo Postavitev GPIO sponk na logični nivo I 2 C ukazi I2C WRITE I2C READ ii

7 13 Grafični uporabniški vmesnik Inicializacijski zavihek GPIO zavihek I2C zavihek Zagon ETSL programa Sestavljanje in razčlenjevanje sporočil odjemalca in strežnika Sestavljanje sporočila prehoda na strani odjemalca Razčlenjevanje sporočila prehoda na strani strežnika Sestavljanje sporočila prehoda na strani strežnika Razčlenjevanje sporočila prehoda na strani odjemalca Realizacija univerzalnega preskuševalnika Program na strani odjemalca Funkcija prvo predprocesiranje Funkcija drugo predprocesiranje Funkcija pregled kode (prvi del) Funkcija pregled kode (drugi del) Funkcija pregled kode (tretji del) Funkcija pregled kode (četrti del) Funkcija izvajanje ETSL programa (prvi del) Funkcija izvajanje ETSL programa (drugi del) Program na strani strežnika Glavno opravilo GPIO opravilo Preskus sistema ETSL program Razlaga ETSL programa Vrstice v beležki Zaključek Literatura iii

8 Kazalo tabel Tabela 1: logični operatorji Tabela 2: tabela napak iv

9 Kazalo slik Slika 1: sistem zaporedno vezanih naprav, preslikano iz [3: str. 14]... 1 Slika 2: konceptualna shema univerzalnega preskuševalnika vgradnih sistemov... 3 Slika 3: primerjava cene testiranja od vhodne kontrole do kupca, preslikano iz [6]... 4 Slika 4: delitev stroškov testiranja za sedemletno obdobje, preslikano iz [6]... 5 Slika 5: časovni potek različnih vrst testiranja... 5 Slika 6: poti pri testu bele škatle, preslikano iz [4: str. 141]... 7 Slika 7: možnost uporabe testa črne škatle pri različnih testih, preslikano iz [4: str. 20]... 7 Slika 8: razvojna plošča M52233DEMO... 9 Slika 9: konceptualna shema I 2 C vodila, preslikano iz [10: str. 8] Slika 10: pisanje v podrejeno I 2 C napravo Slika 11: branje iz podrejene I 2 C naprave Slika 12: referenčni model ISO/OSI, preslikano iz [12: str. 17] Slika 13: model in arhitektura omrežja internet, preslikano iz [12: str. 25] Slika 14: arhitektura omrežja univerzalnega preskuševalca vgradnih sistemov Slika 15: arhitektura odjemalske aplikacije Slika 16: arhitektura strežniške aplikacije Slika 17: vgradni sistemi v domačem okolju, preslikano iz [2] Slika 18: vgradni sistemi delovnih okolij, preslikano iz [2] Slika 19: kopiranje podatkov v vrsto in iz nje, preslikano iz [2] Slika 20: inicializacijski zavihek Slika 21: GPIO zavihek Slika 22: I 2 C zavihek Slika 23: odpiranje in zagon ETSL programa Slika 24: del arhitekture odjemalske in strežniške aplikacije Slika 25: sestavljanje sporočila na strani odjemalca Slika 26: razčlenjevanje sporočila na strani strežnika Slika 27: sestavljanje sporočila na strani strežnika Slika 28: razčlenjevanje sporočila na strani odjemalca Slika 29: program na strani odjemalca Slika 30: funkcija prvo predprocesiranje Slika 31: funkcija drugo predprocesiranje Slika 32: funkcija pregled kode (prvi del) Slika 33: funkcija pregled kode (drugi del) Slika 34: funkcija pregled kode (tretji del) Slika 35: funkcija pregled kode (četrti del) Slika 36: funkcija izvajanje ETSL programa (prvi del) Slika 37: funkcija izvajanje ETSL programa (drugi del) Slika 38: program na strani strežnika Slika 39: GPIO opravilo Slika 40: testiranje z univerzalnim preskuševalnikom vgradnih sistemov v

10 Seznam akronimov in izrazov ETSL ime skriptnega programskega jezika, ki smo ga razvili v okviru diplomskega dela (ang. Embedded Testing Script Language). ISO mednarodna organizacija za standarde (ang. International Standards Organization). OSI skupina za povezovanje odprtih sistemov (ang. Open Systems Interconnection), uveljavlja standarde za odprto zgradbo komunikacije (model ISO/OSI). ISO/OSI model povezljivosti odprtih sistemov po ISO. IC integrirano vezje (ang. Integrated Circuit). I 2 C standard prenosa podatkov med integriranimi vezji znotraj naprave (ang. Inter - IC - Control). GPIO splošnonamenski vhodi in izhodi (ang. General Purpose Input Output). FLASH pomnilnik električno izbrisljiv programirljiv pomnilnik, pri katerem je mogoče zapisati ves pomnilniški blok naenkrat in se navadno uporablja v prenosnih napravah, npr. USB-ključ, mobilni telefon. Po prekinitvi napajalne napetosti se podatki ohranijo. RAM pomnilnik (ang. Random Access Memory) pomnilnik za branje in pisanje. Po prekinitvi napajalne napetosti se podatki izbrišejo. Zlog skupek 8 bitov (ang. byte). PHY vezje ali del integriranega vezja, ki skrbi za fizični pretok podatkov po mediju. Half Duplex prenos podatkov v obe smeri, vendar ne istočasno. vi

11 Povzetek Življenja si ne moremo predstavljati brez vgradnih sistemov, ki so sestavni del našega domačega in delovnega okolja. Najbolj poznani so mobilni telefoni, tiskalniki, MP3 predvajalniki itd. Vsakdo si želi njihovo brezhibno delovanje. Pomembno vlogo pri manjšanju verjetnosti nepravilnega delovanja teh izdelkov ima njihovo testiranje, saj na ta način pridobivamo informacije o kakovosti izdelka. Dobro testirani in s tem zanesljivi izdelki vplivajo na ugled proizvajalca in zadovoljstvo kupca. Poleg tega zgodnje odkrivanje napak, vpliva na zmanjševanje stroškov odpravljanja le-teh. Velikokrat se pripeti, da se napaka vgradnega sistema zgodi šele, ko sistem obratuje daljše časovno obdobje. Takšne napake so običajno težko ponovljive, ker ne poznamo njihovega vzroka. Če bi želeli, da delavec testira takšno napravo, bi jo moral opazovati noč in dan ter beležiti vsako najmanjšo spremembo, kar je z ročnim testiranjem nemogoče. Zato se pojavi želja po avtomatiziranem preskuševalniku omenjenih sistemov, ki bi poleg testiranja beležil spremembe, določene s strani operaterja. Avtomatiziran preskuševalnik bi omogočil teste pod različnimi pogoji, kot so visoka ali nizka temperatura, vlaga itd. Želja je tudi, da bi operater porabil čim manj časa za programiranje in konfiguracijo testa. Ročno izvajanje testov in beleženje sprememb je odvisno od subjektivnih faktorjev preskuševalca. Uvedba avtomatiziranega izvajanja testov in beleženja sprememb se izvaja brez preskuševalca s čimer se manjša možnost človeških napak. Zaradi omenjenih razlogov se je pokazala težnja za razvoj avtomatiziranega preskuševalnika vgradnih sistemov s skriptnim programskim jezikom, kar zajema diplomsko delo. Ključne besede: univerzalni preskuševalnik, avtomatiziran preskuševalnik, vgradni sistemi, skriptni jezik, ETSL vii

12 Abstract Every day, people throughout the world use embedded systems without even knowing it. Embedded systems are presented in our home and work environment. Embedded systems in the home environment assume many forms, including security systems, cable and satellite boxes for televisions, home theater systems, and telephone answering machines. Embedded systems have also changed the way people conduct business. Perhaps the most significant example is the Internet, which is really just a very large collection of embedded systems that are interconnected using various networking technologies. We want, that embedded systems work perfectly, because it is difficult to find a segment of daily life that does not involve embedded systems in some way. Therefore, testing embedded systems has a significant influence on devices' quality. Devices of a sufficient level of quality have increase reputation of manufacturer and satisfaction of customers. Moreover, early detection of defects decrease repairation costs. Sometimes, defects appear when device works for a long period of time possibly under different circumstances such as low or high temperature, moisture,... These types of defects are very difficult to predict, which is the reason for automation of tests, where many environmental conditions can be automatically simulated. Automated logging of defects together with the description of faulty circumstances is a necessary ingredient of such system. Manual testing and logging depends on subjective factors of the tester. With device test automation, the testing procedure becomes independent of tester's subjectives factors. The purpose of the thesis is to develop automative Embedded Testing System with scripting programming language for easy developing of the test procedures. Key words: universal testing, automative testing, embedded systems testing, scripting language, ETSL viii

13 1 Uvod V poznih 70. letih prejšnjega stoletja je bila obdelava podatkov možna le s tako imenovanimi 'super računalniki'. Nato so se v 80. letih pojavili osebni računalniki. Trend zmanjševanja se je nadaljeval. Ko so bile naprave za obdelavo podatkov dovolj majhne, se je pričelo graditi sisteme modularno, z vgrajevanjem manjših naprav [1: str. 1]. Napravo, vgrajeno v večji sistem, ki opravlja točno določeno funkcijo, imenujemo vgradni sistem (ang. Embedded System) [2]. Za brezhibno delovanje sistema, je potrebno tudi brezhibno delovanje vgradnih sistemov, ki ga sestavljajo. Sistem, sestavljen iz vgradnih sistemov, lahko modeliramo kot sistem zaporedno vezanih naprav kar prikazuje slika 1. Pri obratovanju več zaporedno vezanih naprav [3: str. 14], povzroči izpad katerekoli naprave izpad celotnega sistema. Na sliki 1 je ν PNi verjetnost preživetja pripadajoče naprave skozi neko časovno obdobje T. Slika 1: sistem zaporedno vezanih naprav, preslikano iz [3: str. 14] Naj bo ν PS verjetnost preživetja sistema skozi neko časovno obdobje T. Sedaj lahko zapišemo enačbo za izračun ν PS. n ν = (1) PS ν PN i i= 1 Kot je razvidno iz enačbe 1, je verjetnost preživetja celotnega sistema enaka produktu verjetnosti preživetja posameznih naprav [3: str. 15]. To pomeni, da se verjetnost preživetja celotnega sistema z večanjem števila naprav zmanjšuje. Zato je potrebno vgradne sisteme testirati. Z odpravljanjem tako ugotovljenih napak se poveča verjetnost preživetja posameznih naprav in sistema. Obstaja več vrst testov, ki se uporabljajo pri testiranju kot so npr. test bele škatle [4], test črne škatle [4] in test sive škatle [4], o katerih govorimo v sekciji 3. 1

14 2 Tema diplomskega dela Tema diplomskega dela izhaja iz potrebe po avtomatiziranem testiranju vgradnih sistemov [2] v podjetju HERMES SoftLab d.d. Pri testiranju, je težko ugotoviti napake, ki se pojavljajo zaradi nepredvidljivih dejavnikov, kot so temperatura, vlaga itd. (npr. napaka se lahko pojavi samo pri temperaturi 40 C in 66 % vlagi). Z izdelavo avtomatiziranega preskuševalnika vgradnih sistemov bi omogočili avtomatizirano spreminjanje dejavnikov npr. temperature, vlage itd. ter beleženje, pri katerih vrednostih le-teh prihaja do napak. Da bi bilo programiranje testnih postopkov hitro in enostavno, se je pokazala težnja po razvoju skriptnega programskega jezika, kar je osrednji del diplomskega dela. 2.1 Opis univerzalnega preskuševalnika vgradnih sistemov Slika 2 prikazuje osebni računalnik in razvojno ploščo M52233DEMO, ki sta povezana preko Etherneta in predstavljata strojno opremo univerzalnega preskuševalnika vgradnih sistemov. Povezava osebnega računalnika s ploščo M52233DEMO deluje po principu odjemalec - strežnik [5: str. 646, 648], pri čemer je osebni računalnik odjemalec, razvojna plošča pa strežnik. Vgradni sistemi, ki se testirajo, so povezani preko I 2 C modula ali preko splošnonamenskih vhodov in izhodov (ang. General Purpose Input Output, v nadaljevanju GPIO modul). Za preskuševalnik smo razvili skriptni jezik z imenom ETSL (ang. Embedded Testing Script Language), v katerem tester piše procedure testiranja. Osebni računalnik izvaja ETSL program. Vrstice programa se prevedejo v ukaze, ki jih razume strežnik na razvojni plošči; ti ukazi se pošiljajo preko Ethernet protokola. Na podlagi sprejetega ukaza strežnik izvede želeno akcijo in pošlje odgovor osebnemu računalniku, če to zahteva ukaz. 2

15 Slika 2: konceptualna shema univerzalnega preskuševalnika vgradnih sistemov Prikazovalne obrazce in skriptni jezik ETSL smo realizirali v programskem jeziku C# [5, 14, 15, 16, 17, 18, 19, 20, 21, 22] na osebnem računalniku. Razvojno ploščo M52233DEMO smo programirali v programskem jeziku C [13, 23]. 3

16 3 Splošno o testiranju Testiranje je proces ocenjevanja kakovosti, uporabnosti, storilnosti in robustnosti aplikacije, strojne opreme ali celotnega sistema. Testiranje je postopek tehničnega raziskovanja, izvršenega v korist proizvajalca, z namenom pridobivanja informacij o kakovosti izdelka, ki se proizvaja. Dobro testirani izdelki vplivajo na ugled proizvajalca. Test vsebuje oceno primerjave stanja izdelka s specifikacijo. Testiranje se lahko izvaja v preventivne namene ali v namene odkrivanja in popravljanja napak [4]. Formalna definicija testiranja je podana s standardom IEEE (ang. IEEE Standard Glossary of Software Engineering Terminology), ki pravi naslednje. Testiranje je proces obratovanja sistema ali komponent pod specifičnimi pogoji s spremljanjem ali beleženjem rezultatov in ocenjevanjem pojavov sistema ali komponent [4: str. 2]. 3.1 Namen testiranja Slika 3 prikazuje eksponencialno rast stroškov odpravljanja okvare, v odvisnosti od mesta oziroma časa njenega odkritja. Če je napaka najdena pri vhodni kontroli, ima popravilo take napake minimalne stroške, medtem ko ugotavljanje in odpravljanje napake pri končnem uporabniku ceno popravila močno poveča [6]. Slika 3: primerjava cene testiranja od vhodne kontrole do kupca, preslikano iz [6] 4

17 Slika 4 podaja tipično delitev stroškov podjetja za testiranje in opremo za testiranje, za sedemletno obdobje [6], z linearno časovno porazdelitvijo stroškov prek sedmih let. Pri iskanju napak med servisom, stroški bliskovito naraščajo, zato je smiselno razmišljati o avtomatiziranem testiranju, da bi našli napako že v vhodni kontroli. Slika 4: delitev stroškov testiranja za sedemletno obdobje, preslikano iz [6] 3.2 Vrste testov Poznamo naslednje vrste testov [4: str. 9]: 1. test enote, 2. test integracije, 3. test sistema, 4. test sprejema. Slika 5 prikazuje tipično časovno zaporedje izvajanja teh testov. Slika 5: časovni potek različnih vrst testiranja 5

18 3.2.1 Test enote (ang. Unit Testing) Test enote [4: str. 9] je proces vrednotenja posamezne enote. Enota je najmanjši del aplikacije, ki ga lahko testiramo. Pri programiranju je enota lahko individualni program, funkcija, podprogram... Pri objektno usmerjenemu programiranju, je najmanjša enota navadno metoda (ang. Method). Test enote običajno opravljajo strokovnjaki, ki razvijajo enoto in ne ljudje, ki se ukvarjajo zgolj s testiranjem. Testiranje enote namreč zahteva specifična znanja. V primeru programske opreme je cilj testiranja enote razdeliti program na enote in dokazati pravilno delovanje posameznih enot. Test enote mora ustrezati specifikacijam, kar omogoča lažjo izvedbo testa integracije Test integracije (ang. Integration Testing) Pri testu integracije [4: str 9] je potrebno združiti posamezne enote v podsistem in preveriti delovanje takega podsistema kot zaključene celote. Možno je, da posamezne enote delujejo pravilno in da se napake pojavijo šele, ko enote združimo v podsistem. Test integracije izvajamo po opravljenem testu enot, kar je razvidno s slike Test sistema (ang. System Testing) Testiranje sistema [4: str. 10] pomeni spremljanje sistema kot celote in vrednotenje kakovosti, uporabnosti in storilnosti v skladu z zahtevami. Osredotočiti se je potrebno na napake, ki se pojavijo na višjem nivoju integracije. Testirajo se vse inegrirane komponente, ki so uspešno opravile test integracije. Namen testiranja sistema je iskanje napak v sistemu kot celoti in testiranje delovanja sistema kot celote Test sprejemljivosti (ang. Acceptance Testing) Test sprejemljivosti [4: str. 10] je končni test, pri katerem se preveri, ali so zahteve končnega uporabnika izpolnjene. Želja kupca je, da bi bil test sprejemljivosti čimbolj obsežen. 6

19 3.2.5 Test bele škatle (ang. White Box Testing) Test bele škatle [4: str. 8, 140, 141, 142] je lahko test enote, test integracije ali sistemski test. Pri testu bele škatle gre za testiranje programskih, električnih itd. poti, za kar so potrebna specifična znanja npr. programiranja, elektrotehnike itd., saj je potrebno poznavanje vseh delov programa, vezja itd., ki ga testiramo. Slabosti Število poti je lahko tako veliko, da je nemogoče testirati vse, kar prikazuje slika 6. Testiranje vseh poti pri testu bele škatle predstavlja podobno problematiko kot testiranje vseh vhodnih kombinacij pri testu črne škatle (sekcija 3.2.6).. Slika 6: poti pri testu bele škatle, preslikano iz [4: str. 141] Test enote je ponavadi najprimernejši za izvajanje po sistemu testa bele škatle Test črne škatle (ang. Black Box Testing) Test črne škatle [4: str. 8, 32: str. 20] se izvaja z vzbujanjem sistema z vhodom, določenim s strani operaterja. Pri tem se opazuje odziv sistema in če je le-ta v skladu s specifikacijami, je test črne škatle uspešno izveden. Test črne škatle lahko izvajajo ljudje, ki se ukvarjajo zgolj s testiranjem. Kot prikazuje slika 7, je lahko test črne škatle uporabljen pri testu enote, testu integracije, testu sistema in testu sprejemljivosti. Slika 7: možnost uporabe testa črne škatle pri različnih testih, preslikano iz [4: str. 20] 7

20 Večja kot je kompleksnost sistema, programa, vezja, itd., bolj smo prisiljeni testirati po sistemu črne škatle, ker bi bilo preprosto preveliko poti, da bi jih analizirali po sistemu testa bele škatle. Slabosti: pri testu črne škatle ne vemo, kolikšen del sistema, programa, vezja, itd. je bilo stestiranega, če bi želela oseba, ki testira, najti vse napake, bi mogla sistem na vhodu vzbujati z vsemi možnimi kombinacijami vhoda, kar je v večini primerov nemogoče. Prednosti: čeprav je testiranje vseh vhodnih kombinacij v večini primerov nemogoče, lahko izberemo kombinacije, ki učinkovito odkrivajo napake. Na ta način je možno najti več napak, kot če bi naključno generirali nabor vhodov Test sive škatle (ang. Gray box testing) Test sive škatle [4: str. 8] se v začetni fazi izvaja kot test bele škatle. V nadaljnji fazi se test sive škatle izvaja po sistemu testa črne škatle, pri čemer se uporabi v prvi fazi pridobljeno znanje o sistemu za učinkovitejšo izbiro vzbujanja in posledično testiranja. 8

21 4 Strojna oprema Slika 8 prikazuje razvojno ploščo M52233DEMO [7, 24] proizvajalca Freescale Semiconductor, na kateri je 32 bitni ColdFire mikrokrnilnik. Omenjena razvojno plošča predstavlja le del univerzalnega preskuševalnika vgradnih sistemov, kar je nazorno prikazano v sekciji 2.1 (slika 2). Na sliki 8 smo označili priključke, ki smo jih uporabili pri preskuševalniku. Vključili smo 12 GPIO sponk. Na GPIO sponke od 9 do 12 so že priključene svetleče diode, zato je smiselno da te sponke opravljajo le funkcijo digitalnega izhoda. GPIO sponke od 1 do 8 lahko opravljajo funkcijo digitalnega vhoda in izhoda. USB priključek smo uporabljali za razhroščevanje programov v ozadju (ang. Background Debug Mode, BDM). Slika 8: razvojna plošča M52233DEMO Razvojna plošča ima poleg I 2 C modula, GPIO modula, Ethernet priključka itd. podprt tudi posebnonamenski operacijski sistem [8], ki omogoča večopravilno obratovanje v realnem času in TCP/IP protokolovni sklad [9]. Program, ki se izvaja v mikrokrmilniku, smo napisali v programskem jeziku C v razvojnem okolju FreeScale CodeWarrior IDE. 9

22 Glavne značilnosti razvojne plošče M52233DEMO: 60 MHz interno vodilo (ang. 60 Mhz Internal Bus), zunanji 25 Mhz oscilator, 40 GPIO sponk, 256 kbyte Flash pomnilnika. To je pomnilnik, v katerega shranjujemo programsko kodo in konstante, ki se ohranijo tudi po izklopu napajalne napetosti, 32 kbyte delovnega pomnilnika. To je pomnilnik, v katerega shranjujemo vrednosti, ki se spreminjajo med izvajanjem programa. Vrednosti se po izklopu napajalne napetosti izgubijo, RS232 priključek z DB9-S konektorjem, programibilni prekinitveni časovnik (ang. Programmable Interrupt Timer), 12 bitni analogno digitalni pretvornik z osmimi časovno prepletenimi vhodi in dvema ločenima analogno digitalnima pretvornikoma z možnostjo vzorči in zadrži (ang. Sample and Hold), I 2 C modul, hitri Ethernetni krmilnik (ang. Fast Ethernet Controller, FEC) in Fizični Ethernet (ang. Ethernet Phy, ephy), serijski port (ang. UART Serial Port with DMA Capability), 4 splošnonamenski časovniki (ang. General Purpose Timers, GPT ), razhroščevanje v ozadju (ang. Background Debug Modem, BDM), napajanje 3,3V, 5 kω potenciometer, merilnik pospeška v X, Y in Z smeri, 4 svetilne diode, dve tipki za splošnonamensko uporabo in ena reset tipka, TCP/IP protokolovni sklad od firme InterNiche (ang. InterNiche TCP/IP Stack). 10

23 5 I 2 C vodilo I 2 C vodilo [10: str. 4] je razvilo podjetje Philips za namen komuniciranja večih integriranih vezij znotraj naprave (slika 9). To je vodilo, ki za svoje delovanje potrebuje le dva vodnika. Po vodniku serijska ura (ang. Serial Clock, SCL) v nadaljevanju SU, potekajo urini pulzi. Po vodniku serijski podatki (ang. Serial Data, SDA), v nadaljevanju SP, potujejo podatki. Po SP lahko podatki potujejo v obe smeri, vendar ne istočasno, kar imenujemo Half Duplex prenos. Ko je linija prosta, imata SU in SP logični nivo 1. Naprave, ki so priključene na I 2 C vodilo in niso aktivne imajo veliko impedanco. Obstajajo trije načini obratovanja: 1. standardni način (ang. Standard Mode) hitrost prenašanja podatkov je do 100 kbit/s, 2. hitri način (ang. Fast Mode) hitrost prenašanja podatkov je do 400 kbit/s, 3. zelo hitri način (ang. High Speed Mode) hitrost prenašanja podatkov je do 3,4 Mbit/s. Število priključenih naprav na I 2 C vodilo je odvisno od skupne parazitne kapacitivnosti obeh linij in priključenih naprav, ki ne sme presegati 400 pf [10: str. 4]. Slika 9: konceptualna shema I 2 C vodila, preslikano iz [10: str. 8] I 2 C standard dopušča, da napetostni nivoji za logični nivo 0 in logično nivo 1 niso fiksni odvisni so od napajanja. Na podatkovnem vodniku se lahko nivoji spreminjajo iz logičnega nivoja 1 v logični nivo 0 in obratno le, ko je ura v logičnem nivoju 0. Izjemi sta stanji start in stop [10: str. 8]. 11

24 Pri I 2 C komunikaciji gre za sistem z nadrejenimi in podrejenimi napravami (ang. master - slave) [10: str. 4]. Slika 9 prikazuje, da sta vodnika serijska ura in serijski podatki vezana na ponor tranzistorjev. Upori R P vsiljujejo logični nivo 1. Naprave lahko vsiljujejo le logični nivo 0 z vklopom tranzistorja. To je vzrok, da ne more priti do kratkega stika, če dve napravi oddata različen bit sočasno. Naprave med prenašanjem podatkov berejo vodilo serijski podatki in če vidijo, da vodilo serijski podatki nima istega nivoja, kot ga vsiljujejo, potem to pomeni, da druga naprava oddaja istočasno. Naprava ki prva zazna neskladje, preneha oddajati. Druga naprava lahko zato nemoteno nadaljuje s pošiljanjem. 5.1 Pisanje v podrejeno napravo Slika 10 prikazuje potek podatkovnega signala, označenega z modro barvo, in signala serijska ura, označenega z zeleno barvo. Ko nobena naprava ne prenaša podatkov, sta oba signala na logičnem nivoju 1. Nato nadrejena naprava želi komunicirati, zato postavi podatkovni signal na logični nivo 0, pri čemer je signal serijska ura še vedno na logičnem nivoju 1, kar se imenuje stanje START. Nato nadrejena naprava pošlje prvi podatatek po podatkovnem vodniku. To je 7 bitni naslov podrejene naprave, ki je v prikazanem primeru na sliki 10 enak 73 desetiško. Naprava z naslovom 73 je v našem primeru temperaturni senzor. Naslovu podrejene naprave sledi bit, s katerim nadrejena naprava pove podrejeni, ali želi v nadaljevanju brati ali pisati. Če ima omenjeni bit logični nivo 1, želi nadrejena naprava brati v nasprotnem primeru pisati. V našem primeru ima ta bit logični nivo 0. Sledi bit, ki pomeni pozitivno potrditev (ang. ACK). Če ima slednji bit logični nivo 1, je to sporočilo nadrejeni napravi, da podrejena naprava ni sprejela podatka. V primeru, da ima pozitivno potrdilo logični nivo 0, je to sporočilo nadrejeni napravi, da je podrejena naprava podatek sprejela. V našem primeru je podrejena naprava postavila omenjeni bit na logični nivo 0. Nato nadrejena naprava po podatkovnem vodniku pošlje podatek podrejeni napravi. V našem primeru je nadrejena naprava poslala podatek 0, s čimer je izbrala register, ki bi ga rada v nadaljevanju brala. Zopet sledi bit pozitivna potrditev (ang. ACK), s katerim je podrejena 12

25 naprava potrdila, da je sprejela podatek. Sledi stanje STOP, ki se zgodi tako, da nadrejena naprava postavi podatkovni vodnik na logični nivo 1, ko je signal serijska ura že na logičnem nivoju 1. Slika 10: pisanje v podrejeno I 2 C napravo 5.2 Branje iz podrejene naprave Slika 11 prikazuje potek podatkovnega signala, označenega z modro barvo, in signala serijska ura, označenega z zeleno barvo. Prenašanje podatkov se začne s stanjem START, ki se zgodi na enak način kot je bilo opisano v sekciji 5.1. Nato nadrejena naprava pošlje prvi podatatek po podatkovnem vodniku. To je 7 bitni naslov podrejene naprave, ki je v prikazanem primeru na sliki 11 enak 73 desetišlo. Naslovu podrejene naprave sledi bit, s katerim nadrejena naprava pove podrejeni, ali želi v nadaljevanju brati ali pisati. Če ima omenjeni bit logični nivo 1, želi nadrejena naprava brati v nasprotnem primeru pisati. V našem primeru ima ta bit logični nivo 1. Podrejena naprava nato postavi podatkovni vodnik na logični nivo 0, s čimer potrdi zahtevo nadrejene naprave. V nadaljevanju podrejena naprava vrne podatek nadrejeni napravi. Ta podatek je v našem primeru temperatura, ki znaša 28 C. Zadnji bit ima logični novo 1, kar pomeni, da ni pozitivnega potrdila. To pomeni, da nadrejena naprava ni potrdila sprejema podatka, s čimer je sporočila, da želi končati komunikacijo. Stanje STOP se zgodi na enak način, kot je opisano v sekciji

26 Slika 11: branje iz podrejene I 2 C naprave 14

27 6 Splošno o računalniških omrežjih Po letu 1970 so začeli razvijati računalniška omrežja, ki omogočajo medsebojno povezovanje različnih naprav. Prvotna hitrost komunikacijskega sistema je znašala 1Mbit/s, medtem ko komunicirajo današnja omrežja s tisočkrat večjimi hitrostmi. Arhitekture komunikacijskih sistemov so osnovane na hierarhičnih slojevitih modelih. Leta 1977 je mednarodna organizacija za izdelavo standardov ISO (ang. ISO, International Standards Organization) formirala podkomite, ki je pripravil komunikacijski referenčni model (ang. Open System Interconnection Reference Model, OSI), ki opisuje komunikacijski proces kot hierarhično, slojevito strukturo, sestavljeno iz sedmih slojev, kot prikazuje slika 12. Vsak sloj ima prilagodljivo povezavo z višjim in nižjim slojem. Prilagodljivost se odraža s tem, da lahko uporabimo različne protokole oziroma standarde. ISO/OSI je podlaga za izdelavo komunikacijskih standardov [11: str. 228]. Slika 12: referenčni model ISO/OSI, preslikano iz [12: str. 17] Oglejmo si glavne naloge posameznih slojev, zaporedoma od najnižjega do najvišjega. 15

28 6.1 Fizični sloj (ang. Physical Layer) Fizični sloj [12: str. 18] skrbi za prenos podatkov po komunikacijskem kanalu. Osnovna podatkovna enota tega sloja je bit. Sloj določa mehanske, električne in postopkovne lastnosti naprav in tokokrogov. Tipična vprašanja v zvezi s tem slojem so: napetostni nivoji signalov, hitrost prenosa, oblike signalov, vrste modulacij, konektorji in število priključkov na konektorjih, uporabljeni prenosni medij. Primera standardov in priporočil tega sloja sta RS232 in RS Podatkovni sloj ali linijski sloj (ang. Data Link Layer) Podatkovni sloj [12: str. 18] uporablja storitve fizičnega sloja (prenos podatkov) in zagotavlja naslednjemu višjemu sloju (mrežnemu sloju) visoko zanesljivost prenosa podatkov v obe smeri med sosednjimi vozlišči. V ta namen deli daljša zaporedja bitov na okvirje (ang. Frames) ter skrbi za pravilen prenos posameznih okvirjev od vozlišča do vozlišča s preverjanjem pravilnosti prenesenega okvirja in s potrjevanjem pravilnosti sprejema. Tipična vprašanja v zvezi s temi sloji so: kako označiti začetek in konec okvirja, kako ugotavljati prisotnost napak na okvirjih, kako zahtevati ponoven prenos pokvarjenega okvirja in kako rešiti problem podvojenih okvirjev (dveh enakih okvirjev) v primeru, da se izgubi potrdilo že pravilno sprejetega okvirja. Tipični primeri protokolov (standardov), ki opravljajo funkcije tega sloja so: IBM ova protokola BSC ali z drugim imenom BISYNC (Binary Synchronous Communication) in SDLC (Synchronous Data Link Control), ISO HDLC (High-Level Data Link Control), ki je povzet po SDLC. Tudi podatkovni protokol LAPB (Link Access Procedure - Balanced) v javnih podatkovnih omrežjih po priporočilu X.25 izhaja iz protokola HDLC. Za prenos podatkov med manjšimi računalniki sta zelo priljubljena Kemit in XMODEM ter njegove izpeljanke (YMODEM, ZMODEM, itd.). Naslednja važna naloga tega sloja v lokalnih omrežjih je nadzor nad dostopom do skupnega kanala (ang. Media Access Sublayer - MAC). Morda najbolj poznani standardi s tem v zvezi so Ethernet II, IEEE 802.3, IEEE 802.4, IEEE ter podatkovni protokol LLC (Logical Link Control) po standardu IEEE

29 6.3 Mrežni sloj (ang. Network Layer) Mrežni sloj [12: str. 18] skrbi za delovanje komunikacijskega podsistema. Na sliki 12 vidimo, da vmesna vozlišča, ki tvorijo komunikacijski podsistem, opravljajo naloge samo prvih treh (spodnjih) slojev, do vključno mrežnega sloja. Osnovna podatkovna enota tega sloja je paket (ang. Packet). Ključna naloga tega sloja je zagotavljanje poti prenosa od oddajnega do sprejemnega vozlišča. Pot od oddajnika do sprejemnika je lahko določena čisto statično (vnaprej z izvedbo omrežja in se nikoli ne spremeni), lahko je drugačna za vsako novo zvezo, za vsako novo sporočilo ali celo za vsak posamezen paket (dinamično). Mrežni sloj torej skrbi za usmerjanje paketov od vozlišča do vozlišča (ang. Routing), naslavljanje vozlišč. Skrbi tudi, da ne pride do preobremenjenosti dela omrežja (ang. Congestion Control), opravlja razne (statistične) izračune, ki omogočajo optimizacijo omrežja in/ali obračunavanje storitev. Med najbolj znanimi protokoli mrežnega sloja sta IP (Internet Protocol) v omrežju omrežij Internet in PLP (Packet Layer Protocol) po priporočilu X.25 organizacije CCITT. V lokalnih omrežjih tega sloja ni oziroma je zelo 'tanek'. V omrežjih z Novellovim mrežnim operacijskim sistemom NetWare opravlja (približno) funkcije mrežnega sloja protokol IPX (Internetwork Packet Exchange), ki se zgleduje po Xerox XDN ISD protokolu. 6.4 Prenosni sloj (ang. Transport Layer) Prenosni sloj [12: str. 19] streže sosednjemu višjemu sloju (sloju pogovora). Od njega prevzame podatke, jih po potrebi deli na manjše enote podatkovne enote prenosnega sloja (ang. Transport Protokol Data Unit T-PDU). Podatkovne enote nato predaja naslednjemu nižjemu (mrežnemu) sloju ter skrbi, da podatki pogovornega nivoja pridejo pravilno na drugo stran. Torej skrbi za prenos informacije na drugo stran, kot pove tudi njegovo ime. Prenosni sloj je prvi 'pravi' sloj 'od-konca-do-konca' (ang. End-to-End). Z drugimi besedami, proces na eni končni postaji komunicira neposredno s sorodnim procesom na drugi končni postaji, brez posrednikov. Za primer protokola tega sloja navedimo protokol v omrežjih TCP (Transmission Control Protocol), ki se pojavlja skupaj s protokolom IP in ISO 8073, ki se uporablja v omrežjih MAP (Manufacturing Automation Protocol) ter TOP (Technical and Office Protocol). 17

30 6.5 Pogovorni sloj (ang. Session Layer) Pogovorni sloj [12: str. 19] omogoča 'pogovor' med uporabniškimi procesi na različnih postajah in s tem skrbi za organizacijo in strukturiranje dialoga. Podobno kot prenosni sloj omogoča prenos podatkov, poleg tega nudi tudi nekatere kakovostnejše storitve, specifične za določene aplikacije. Če bi za prenosni sloj rekli, da skrbi za prenos informacije med enim in drugim končnim vozlišćem, skrbi pogovorni sloj za pogovor med istorodnima procesoma enega in drugega vozlišča. Večina omrežij tega sloja sploh nima. Na tem sloju je običajno (ni nujno) realiziran sistem daljinskih klicev (ang. Remote Procedure Call), kot eden izmed možnih načinov komunikacije med krajevno porazdeljenimi procesi. 6.6 Predstavitveni sloj (ang. Presentation Layer) Predstavitveni sloj [12: str. 19] opravlja pogoste storitve, ki zahtevajo splošno rešitev za večino uporabnikov teh storitev. Tipične storitve tega sloja so: kodiranje in prekodiranje (npr. ASCII v EBCDIC), šifriranje, zgoščevanje podatkov in podobno. Večina omrežij tega sloja nima. 6.7 Sloj uporabe (ang. Application Layer) Sloj uporabe [12: str. 19] predstavlja vmesnik med končnim uporabnikom in komunikacijskim sistemom. Vsebuje morda največ storitev in protokolov. Najbolj znane med njimi so: prenos datotek (ang, File Transfer), navidezni terminal (ang. Virtual Terminal), elektronska pošta (ang. E - mail) X.400, mrežne direktorijske storitve X.500, svetovni splet, itd. Čeprav je arhitektura modela ISO/OSI sedem slojna. to ne pomeni, da arhitekture z drugačnim številom slojev niso možne ali nebi smele obstajati. Drugačne mrežne arhitekture [12: str. 24] so obstajale dosti prej, predno je nastal model ISO/OSI, naprimer IBM-ova mrežna arhitektura DNA in druge. Najbolj prepričliv dokaz za arhitekturo, ki ni ISO/OSI, je omrežje Internet, ki se dnevno potrjuje z vse večjim številom vozlišč. Ne glede na to je model ISO/OSI gotovo prispeval k bolj sistematičnemu in bolj enotnemu obravnavanju zgradbe in delovanja omrežij. Marsikatero omrežje, ki je nastalo pred samim ISO/OSI modelom in se obravnava kot ''omrežje v enem kosu'', se danes obravnava razslojeno z vidika modela ISO/OSI. 18

31 7 Arhitektura omrežja internet Z imenom Internet [12: str. 24] označujemo globalno svetovno omrežje, ki povezuje omrežja tipa TCP/IP. Ko govorimo o omrežjih tipa TCP/IP, mislimo na omrežja, ki uporabljajo protokolovni sklad TCP/IP (ang. Transmission Control Protocol/Internet Protocol) ter druge protokole, ki so bistveni za delnovanje teh omrežij (npr. SNMP, UDP, itd.). Omrežje Internet temelji na širokoslojnem arhitekturnem modelu, ki ima svoje korenine v omrežju ARPANET iz konca šestdesetih let. Internet ni grajen po modelu ISO/OSI. To ne pomeni, da bi Internet ne bilo ''odprto'' omrežje ali da nebi imelo možnosti realizacije vseh potrebnih omrežnih funkcij. Internet je omrežje, ki ''deluje''. To potrjuje dejstvo, da je TCP/IP omrežij danes daleč več kot vseh drugih omrežij skupaj. Slika 13 prikazuje primerjavo arhitekture omrežja Internet z ISO/OSI modelom. Spodnji trije sloji so mrežnega značaja, zgornji sloj je uporabniško usmerjen. V arhitekturi na levi strani slike 13 so zajeti le nekateri najbolj tipični protokoli izmed sicer možnih protokolov. V lokalnih omrežjih se v podomrežnem sloju (ang. Network Interface Layer) največ uporablja Ethernet protokol. Za povezovanje oddaljenih vozlišč točka-točka po modemskih linijah se uporabljata protokola SLIP (ang. Sereial Link IP) in PPP (ang. Poin-to-Point-Protocol). Ker podomrežni sloj realizira funkcije spodnjih dveh slojev modela ISO/OSI, pravimo, da je arhitektura petslojna. Če primerjamo Internet model z modelom ISO/OSI, bi medomrežni sloj (ang. Internet Layer) najbolj ustrezal mrežnemu sloju, prenosni sloj prenosnemu, aplikacijski sloj zgornjim trem slojem modela ISO/OSI. Slika 13: model in arhitektura omrežja internet, preslikano iz [12: str. 25] Pri razvoju univerzalnega preskuševalnika vgradnih sistemov smo uporabili TCP/IP protokol, zaradi možnosti komuniciranja s preskuševalnikom tudi na daljavo. 19

32 8 Model in arhitektura uporabljenega omrežja Slika 14 prikazuje primerjavo modela, uporabljenega v diplomskem delu (desni del slike 14), z referenčnim ISO/OSI modelom (levi del slike 14). Na odjemalski strani sloju uporabe ustreza odjemalska aplikacija, sloj predstavitve in sloj pogovora nista uporabljena, sloju prenosa ustreza TCP sloj, sloju mreže ustreza IP sloj, podatkovnemu sloju in fizičnemu sloju ustreza Ethernet sloj. Sledi stran strežnika, kjer fizičnemu sloju in podatkovnemu sloju ustreza Ethernet sloj, sloju mreže ustreza IP sloj, sloju prenosa ustreza TCP sloj, sloj pogovora in sloj predtavitve nista uporabljena, sloju uporabe ustreza strežniška aplikacija. V diplomskem delu je bilo potrebno realizirati sloj odjemalske aplikacije in sloj strežniške aplikacije. 20

33 Slika 14: arhitektura omrežja univerzalnega preskuševalca vgradnih sistemov 8.1 Arhitektura odjemalske aplikacije Slika 15 prikazuje arhitekturo odjemalske aplikacije. Desni del slike 15 prikazuje štiri sloje arhitekture odjemalske aplikacije. Sloj grafični uporabniški vmesnik je prikazan v sekciji 13, sloj izvajanje ETSL programa je opisan v sekciji Najnižja sloja sta opisana v sekcijah 14.1 in

34 Slika 15: arhitektura odjemalske aplikacije 8.2 Arhitektura strežniške aplikacije Slika 16 prikazuje arhitekturo strežniške aplikacije. Desni del slike 16 prikazuje tri sloje arhitekture strežniške aplikacije. Vsi trije sloji so podrobno opisani v sekcijah 14.2 in Slika 16: arhitektura strežniške aplikacije 22

35 9 Splošno o vgradnih sistemih Slika 17 prikazuje vgradne sisteme, ki se pojavljajo v domačem okolju [2]. Ti vgradni sistemi so mobilni telefoni, tiskalniki, zvočniki, televizorji, itd. Slika 17: vgradni sistemi v domačem okolju, preslikano iz [2] Slika 18 prikazuje vgradne sisteme, ki se pojavljajo v delovnem okolju [2]. Ti vgradni sistemi so strežniki, odjemalci, usmerjevalniki, tiskalniki, itd. Slika 18: vgradni sistemi delovnih okolij, preslikano iz [2] 9.1 Definicije vgradnih sistemov Obstaja veliko definicij [2] vgradnih sistemov. Splošna definicija vgradnih sistemov je: Vgradni sistemi so računalniški sistemi, ki imajo tesno povezan hardver in softver, in so načrtovani tako, da izvršujejo neko določeno funkcijo. Že beseda vgradni odraža dejstvo, da so to sistemi, ki so ponavadi vgrajeni v nek večji sistem [2]. 23

36 V večini primerov so vgradni sistemi res majhni sistemi znotraj večjega sistema in ne morejo delovati sami zase. Za primer lahko vzamemo video rekorder, ki je brez televizije praktično neuporaben. Vendar obstajajo tudi vgradni sistemi, ki delujejo kot samostojni sistemi. Primer takega samostojnega vgradnega sistema je usmerjevalnik (ang. Router). Usmerjevalnik je sestavljen iz posebnega komunikacijskega procesorja, pomnilnika, in posebnega softverja, ki skrbi za usmerjanje paketov, ki prehajajo iz vhoda proti izhodu [2]. Vse zgornje definicije ne odgovorijo vedno na neslednje vprašanje. Ali lahko osebni računalnik klasificiramo kot vgradni sistem? Iz povedanega sledi, da ne obstaja tako obsežna definicija, ki bi odgovorila na podobna vprašanja. Zato se je potrebno osredotočiti na karakteristike vgradnih sistemov in nanje pogledati iz različnih zornih kotov, kajti šele na ta način si lahko ustvarimo jasno sliko, kaj so vgradni sistemi in zakaj so vgradni sistemi nekaj posebnega [2]. Poglejmo na osebni računalnik iz dveh zornih kotov: če pogledamo na osebni računalnik tako, da lahko z njim opravljamo različna opravila, potem to ni vgradni sistem, če uporabimo osebni računalnik v proizvodnji in ga sprogramiramo, da opravlja točno določeno funkcijo, lahko rečemo po splošni definiciji zgoraj, da je osebni računalnik vgradni sistem. Zaključimo, da je klasifikacija vgradnih sistemov odvisna od namena uporabe. 24

37 10 Koncepti operacijskega sistema vgradnih sistemov V tej sekciji so razloženi osnovni koncepti, ki smo jih uporabili pri razvoju univerzalnega preskuševalnika vgradnih sistemov Opravila (ang: Tasks) Enostavne aplikacije so tipično narejene tako, da se izvajajo sekvenčno ukaz za ukazom. To je neprimerno za vgradne sisteme, ki obratujejo v realnem času. Vgradni sistemi, ki obratujejo v realnem času [2], morajo v omejenem času obdelati več vhodov in izhodov. To je vzrok, da morajo biti ti sistemi načrtovani za "sočasnost ". Sočasno načrtovanje zahteva, da načrtovalec takih sistemov razdeli aplikacijo v majhne, razvščene programske enote. Te programske enote naj se izvajajo sekvenčno. Ko je razvrščanje na programske enote pravilno narejeno, sočasno načrtovanje dopušča več oparavilna dela (ang. Multitasking). Na opisani način lahko zadostimo časovnim zahtevam, ki jih zahtevajo sistemi, ki delujejo v realnem času Semaforji Več 'vzporednih' opravil mora imeti sinhronizirano izvajanje. Dostop do skupnih virov mora biti izključujoč, kar pomeni, da lahko samo eno opravilo naenkrat dostopa do skupnega vira. Ta sinhronizacija se doseže s semaforji [2]. Obstaja več vrst semaforjev [2]. V diplomskem delu smo pri sinhronizaciji opravil uporabili binarni semafor. Binarni semafor je običajno globalna spremenljivka, do katere imajo dostop vsa opravila. Ko opravilo želi dostopati do npr. skupnega pomnilnika, najprej preveri vrednost semaforja (torej vrednost globalne spremenljivke). Če je vrednost semaforja 0, potem opravilo lahko dostopa do pomnilnika. Vendar preden začne dostopati, postavi semafor na 1, kar pomeni rdeča luč za ostala opravila, ki želijo dostopati do pomnilnika. Ko opravilo neha dostopati do skupnega pomnilnika, postavi semafor na 0 in ostala opravila imajo prost dostop do pomnilnika. 25

38 10.3 Sporočilna vrsta (ang. Message Queue) Sporočilna vrsta [2] je vmesni pomnilnik (ang. Buffer), uporabljen za komuniciranje in sinhronizacijo med opravili. Opravila lahko pošiljajo sporočila v sporočilno vrsto ali jemljejo sporočila iz sporočilne vrste na dva načina. Prvi način je blokirajoči (ang. Blocking) [2]. Deluje tako, da opravila čakajo, v primeru polne (pri pošiljanju v vrsto) oziroma prazne (pri jemanju sporočila iz vrste) sporočilne vrste. Drugi način je ne-blokirajoči (ang. Non Blocking) [2]. Deluje tako, da opravila ne čakajo v primeru polne (pri pošiljanju v vrsto) oziroma prazne (pri jemanju sporočila iz vrste) sporočilne vrste. Pošiljanje podatkov v sporočilno vrsto je mogoče na dva načina. Prvi način je, da se v sporočilno vrsto pošlje sporočilo s kopiranjem. Slika 19 prikazuje slabosti omenjenega načina, ki so dvojno kopiranje podatkov, kar je časovno potratno in neracionalno s stališča izrabe pomnilnika. V vgradnih sistemih namreč pomnilnika ni na pretek. Drugi način je, da se v sporočilno vrsto pošlje kazalec [13] na sporočilo. To prinese v primerjavi s prvim načinom prihranek časa in racionalnejšo izrabo pomnilnika. Omenjene prednosti izhajajo iz dejstva, da se z uvedbo kazalca izognemo dvojnemu kopiranju sporočila. V diplomskem delu smo se zaradi zgoraj navedenih razlogov odločili za drugi način. V vrsto smo poslali kazalec na sporočilo. Slika 19: kopiranje podatkov v vrsto in iz nje, preslikano iz [2] Včasih se pojavi potreba po obveščenosti pošiljatelja o sprejemu sporočila sprejemnika, kar imenujemo sinhronizacija (ang. Intelocked Communication) [2]. Pošiljatelj ne da novega sporočila v sporočilno vrsto, dokler sprejemnik ne dvigne staro sporočilo iz sporočilne vrste. Omenjena sinhronizacija se realizira z binarnim semaforjem (glej sekcijo 10.2). Začetna vrednost binarnega semaforja je 0. Pošiljatelj postavi semafor na 1 in pošlje sporočilo v 26

39 sporočilno vrsto. Sprejemnik vzame sporočilo iz sporočilne vrste in postavi semafor na vrednost 0. Dokler ima semafor vrednost 1, pošiljatelj ne more poslati novega sporočila v sporočilno vrsto. Na podoben način smo naredili sinhronizacijo na razvojni plošči M52233DEMO. Kot je bilo omenjeno, smo poslavli v sporočilno vrsto kazalec na sporočilo. Dokler sprejemnik ne sprejme sporočila, na katerega kaže kazalec, ne sme nihče pisati v pomnilnik, na katerega kaže kazalec, kar smo preprečili z binearnim semaforjem, ki je pošiljatelju sporočil, kdaj je sprejemnik sporočilo prebral. 27

40 11 Uporabljeni koncepti v jeziku C# Razložimo koncepte, ki smo jih uporabili pri programiranju odjemalca (ang. Client) v programskem jeziku C# Podatkovni razred ArrayList Podatkovni razred z imenom ArrayList [14: str. 176] se uporablja, ko potrebujemo vstavljanje elementov v podatkovno polje oziroma jemanje elementov iz podatkovnega polja ter dinamične razširitve oziramo zmanjšanje podatkovnega polja. ArrayList se uporablja nemesto navadnega podatkovnega polja, ko je navadno podatkovno polje (ang. Array) preveč omejeno. Pomankljivosti navadnega polja (ang. Array): razširitev polja poteka s kopiranjem vseh elementov starega polja v novo razširjeno polje, zmanjšanje polja poteka s kopiranjem elementov starega polja v novo manjše polje. Nato je potrebno vse reference na elemente polja posodobiti, jemanje elementa iz polja poteka s pomnenjem elementa. Sledi premik vseh elementov ki mu sledijo, za eno mesto navzgor. Na zadnjem in predzadnjem mestu se pojavita enaki vrednosti, vstavitev elementa v polje poteka s premikom vseh elementov za eno mesto navzdol od mesta vstavitve. Zadnji element izpade iz polja. Omenjenih pomankljivosti podatkovni razred ArrayList nima: odstranitev elementa poteka s klicem funkcije z imenom Remove. Premik elementov za eno mesto navzgor je samodejna. Zmanjšanje ArrayListe je samodejna, zato se na zadnjem in predzadnjem mestu ne pojavita enaki vrednosti, dodajanje elementa na koncu ArrayListe poteka z uporabo funkcije z imenom Add. Razširitev ArrayListe je samodejna, vstavitev elementa v sredino ArrayListe poteka s klicem funkcije z imenom Insert. Premik elementov za eno mesto navzdol je samodejna. Razširitev ArrayListe je samodejna, zato ne pride do izpada zadnjega elementa. 28

41 11.2 Razpršena tabela (ang. Hashtable) Polje (ang. Array) in ArrayList omogočata dostop do elementov le preko celoštevlčnega podatkovnega tipa (ang. Integer), medtem ko se včasih pojavi potreba po dostopanju do elementov preko drugih podatkovnih tipov npr. znakovni podatkovni tip (ang. Char), podatkovni tip niz (ang. String) itd. V nekaterih drugih programskih jezikih to imenujejo povezovalno polje (ang. Associative Array). V programskem jeziku C# se tabela, ki omogoča dostopanje do elementov polja preko različnih podatkovnih tipov imenuje razpršena tabela (ang. Hashtable) [14: str. 180]. Razpršena tabela doseže omenjeno funkcionalnost z dvemi polji. V enem polju je ključ (ang. Key), s katerim se dostopa do elementov drugega polja. Razpršena tabela samodejno sledi, katera vrednost spada h kateremu ključu. Omejitev razpršene tabele: razpršena tabela ne more imeti dveh ključev z istim imenom. Preverjanje obstoja ključa se izvaja s klicem funkcije z imenom ContainsKey Sklad (ang. Stack) Sklad [14: str. 179] shranjuje vrednosti po mehanizmu prvi noter, zadnji ven (ang. Last In First Out, LIFO). Zadnje vpisani element gre iz sklada prvi. V diplomskem delu smo to lastnost izkoristili za realizacijo vgnezdenih if stavkov Delegati (ang. Delegates) Delegat [14: str. 273] je kazalec [13] na funkcijo. Ob klicu delegata se izvrši funkcija, na katero kaže delegat. Delegati omogočajo dinamično spreminjanje kazalcev na funkcije. Glavna prednost delegatov je, da lahko kaže na več kot eno funkcijo. V diplomskem delu smo uporabili delegate zato, da smo predali informacije strežnika prikazovalnemu obrazcu Nit (ang. Thread) Opravilo (ang. Task) združuje več niti (ang. Threads) [5]. Niti si delijo isti pomnilniški prostor in ločen sklad. Ločen sklad omogoča neodvisno klicanje podprogramov. Več opravilno (ang. Multi Tasking) delovanje nastopi, ko npr. zaženemo Word, Excel, aplikacijo 29

42 našega preskuševalnika itd. Znotraj opravila teče več niti (ang. Multi Threading). Primeri niti so tipkanje besedila, tiskanje v ozadju, shranjevanje datotek, prikaz slik itd. 30

43 12 Skriptni programski jezik ETSL V okviru diplomskega dela smo razvili skriptni programski jezik za potrebe testiranja vgradnih sistemov. Poimenovali smo ga Embedded Testing Script Language (v nadaljevanju ETSL). Prednosti jezika ETSL so: ne potrebujemo programskega okolja za pisanje ETSL programov. Programe lahko pišemo v poljubnem ASCII urejevalniku besedil, jezik ETSL smo razvili tako, da lahko realiziramo testne postopke hitreje kot s splošnonamenskimi programskimi jeziki (C, C++). Za razvoj novega programskega jezika smo se odločili zaradi zgoraj navedenih prednosti in zaradi možnosti nadgradnje in prilagajanja v bodoče Velike in male črke ter presledki in prazne vrstice V programski jezik ETSL lahko pišemo kodo z velikimi ali malimi črkami. Pri programiranju lahko uporabljamo poljubno število presledkov in praznih vrstic s čimer se da doseči preglednejše programe Številke in spremenljivke Številke in vrednosti spremenlivk so 32 bitna prednznačena cela števila. Številke je potrebno zapisovati v desetiškem številskem sistemu Komentar Komentar je označen s podpičjem. Besedilo, desno od podpičja, se obravnava kot komentar. 31

44 12.4 Logični operatorji Tabela 1 prikazuje logične operatorje, ki se lahko uporabijo pri pogojnih stavkih. > večje < manjše >= večje ali enako <= manjše ali enako = enako!= različno Tabela 1: logični operatorji 12.5 Ukazi skriptnega programskega jezika ETSL V nadaljevanju so opisani ukazi in primeri skriptnega programskega jezika ETSL Dekleracija spremenljivk Ukaz VAR deklarira novo spremenljivko <spremenljivka>, ki ji priredi vrednost <številka> po naslednji sintaksi. VAR <spremenljivka> <številka> Ukaz VAR, spremenljivka in številka morajo biti ločeni s presledkom. Primer 1 VAR TEMPERATURA 25 Primer 2 Kot smo omenili, lahko uporabljamo poljubno število presledkov, zato je spodnja vrstica ekvivalentna vrstici prejšnjega primera. VAR TEMPERATURA 25 32

45 Beleženje (ang. Log) Ukaz LOG označuje beleženje v datoteko. Zaradi lažje razlage imenujmo datoteko, v kateri se nahaja program, programska_datoteka in datoteko, namenjeno beleženju, log_datoteka. Log_datoteka se semodejno ustvari v direktoriju, kjer se nahaja programska_datoteka. Če je ime programske_datoteke test.txt, potem bo ime log_datoteke npr. test.txt_2007_8_19 16_20_15.log (imenu test.txt se doda leto, mesec, dan in ura). Ukazu LOG sledi besedilo, ki se zapiše v log_datoteko. Besedilo mora biti zapisano v dvojnih narekovajih. Med besedilom lahko pišemo tudi znak %, ki pomeni zamenjavo z vrednostjo spremenljivke. Besedilu sledijo spremenljivke, ki jih mora biti toliko, kot znakov %. Prvi znak %, gledano iz leve strani besedila, se zamenja z vrednostjo prve spremenljivke, drugi znak % z vrednostjo druge spremenljivke itd. LOG, besedilo in spremenljivke morajo biti ločeni s presledkom. LOG <'' besedilo % besedilo...besedilo % ''> [<spremenljivka 1> <spremenljivka n>] Primer VAR T1 10; Deklaracija spremenljivke T1. VAR T2 20; Deklaracija spremenljivke T2. LOG "Temperatura prvega senzorja je %, temperatura drugega senzorja je %." T1 T2 Ukaz zgoraj bi moral biti zapisan v eni vrstici. Zapis v dveh vrsticah nebi deloval. Prvi znak % se zamenja s spremenljivko T1, drugi znak % s spremenljivko T2. V beležki bi bilo zapisano: :39:12 Temperatura prvega senzorja je 10, temperatura drugega senzorja je 20. Datum in ura :39:12 se samodejno dodata pred besedilo. 33

46 Zakasnitev Ukaz WAIT označuje zakasnitev. Sledi številka ali spremenljivka, katere vrednost določa zakasnitev programa v tisočinkah sekunde. WAIT <spremenljivka ali številka> Primer 1 WAIT 1000 ; Zakasnitev programa za eno sekundo. Primer 2 VAR ZAKASNITEV 1000 WAIT ZAKASNITEV; Zakasnitev programa za eno sekundo Shranjevanje vrednosti v spremenljivko Ukaz STORE označuje zakasnitev. Sledi spremenljivka, kateri priredimo novo vrednost. Spremenljivki sledi številka ali spremenljivka. STORE <spremenljivka> <številka ali spremenljivka> Primer 1 VAR TEMPERATURA 0 ; Deklaracija spremenljivke TEMPERATURA STORE TEMPERATURA 10 ; Spremenljivki TEMPERATURA ; priredimo vrednost 10. Primer 2 VAR TEMPERATURA 0 ; Deklaracija spremenljivke TEMPERATURA VAR T 10 ; Deklaracija spremenljivke T STORE TEMPERATURA T ; Spremenljivki TEMPERATURA ; priredimo vrednost

47 Seštevanje Ukaz ADD označuje seštevanje. Sledi prvi in drugi operand. Vsak operand je lahko številka ali spremenljivka. Operandoma sledi spremenljivka, v katero se shrani rezultat seštevanja. ADD <operand, sprem. ali številka> <operand, sprem. ali številka> <rezultat, sprem.> Primer 1 VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. ADD 10 5 REZULTAT; Rezultat operacije se shrani v ; spremenljivko REZULTAT. Primer 2 VAR a 10 ; Deklaracija spremenljivke a. VAR b 5 ; Deklaracija spremenljivke b. VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. ADD a b REZULTAT ; Spremenljivka REZULTAT vsebuje ; vrednost 10 po seštevanju Odštevanje Ukaz SUB označuje odštevanje. Sledi prvi in drugi operand. Vsak operand je lahko številka ali spremenljivka. Operandoma sledi spremenljivka, v katero se shrani rezultat seštevanja. SUB <operand, sprem. ali številka> <operand, sprem. ali številka> <rezultat, sprem.> Primer 1 VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. SUB 10 5 REZULTAT ; 10-5 se shrani v spremenljivko REZULTAT. Primer 2 VAR a 10 ; Deklaracija spremenljivke a. VAR b 5 ; Deklaracija spremenljivke b. VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. SUB a b REZULTAT ; Spremenljivka REZULTAT vsebuje vrednost 5 ; po odštevanju. V obeh zgornjih primerih spremenljivka REZULTAT vsebuje isto vrednost. 35

48 Premik bitov v levo Ukaz SHIFTL označuje premik bitov v levo. Sledi operand, ki je lahko spremenljivka ali številka. Operandu sledi spremenljivka ali številka, ki določa število premikov v levo. Na zadnjem mestu je spremenljivka, v katero se shrani rezultat premika. SHIFTL <operand, sprem. ali številka> <št. premikov, sprem. ali številka> <rezultat, sprem.> Primer 1 VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. SHIFTL 10 2 REZULTAT ; Premik vrednosti 10 za dva bita v levo. ;Spremenljivka REZULTAT vsebuje vrednost 40 Primer 2 VAR a 10 ; Deklaracija spremenljivke a. VAR b 2; Deklaracija spremenljivke b. VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. SHIFTL a b REZULTAT ; Premik vrednosti a za b bitov v levo. ;Spremenljivka REZULTAT vsebuje vrednost 40. V obeh zgornjih primerih spremenljivka REZULTAT vsebuje isto vrednost Premik bitov v desno Ukaz SHIFTR označuje premik bitov v desno. Sledi operand, ki je lahko spremenljivka ali številka. Operandu sledi spremenljivka ali številka, ki določa število premikov v desno. Na zadnjem mestu je spremenljivka, v katero se shrani rezultat premika. SHIFTR <operand, sprem. ali številka> <št. premikov, sprem. ali številka> <rezultat, sprem.> 36

49 Primer 1 VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. SHIFTR 8 2 REZULTAT ; Premik vrednosti 8 za dva bita v desno. ;Spremenljivka REZULTAT vsebuje vrednost 2. Primer 2 VAR a 10; Deklaracija spremenljivke a. VAR b 2; Deklaracija spremenljivke b. VAR REZULTAT 0; Deklaracija spremenljivke REZULTAT. SHIFTR a b REZULTAT ; Premik vrednosti a za b bitov v desno. ;Spremenljivka REZULTAT vsebuje vrednost 2. V obeh primerih spremenljivka REZULTAT vsebuje isto vrednost Množenje Ukaz MULT označuje množenje. Sledi prvi in drugi operand. Vsak operand je lahko številka ali spremenljivka.. Operandoma sledi spremenljivka, v katero se shrani rezultat množenja. MULT <operand, sprem. ali številka> <operand, sprem. ali številka> <rezultat, sprem.> Primer 1 VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. MULT 10 5 REZULTAT; Množenje vrednosti 10 in 5. Spremenljivka ; REZULTAT po množenju vsebuje vrednost 50. Primer 2 VAR a 10 ; Deklaracija spremenljivke a. VAR b 5 ; Deklaracija spremenljivke b. VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. MULT a b REZULTAT; Množenje vrednosti a in b. Spremenljivka ; REZULTAT po množenju vsebuje vrednost 50. V obeh primerih spremenljivka REZULTAT vsebuje enako vrednost. 37

50 Deljenje Ukaz DIV označuje množenje. Sledi prvi in drugi operand. Vsak operand je lahko številka ali spremenljivka. Operandoma sledi spremenljivka, v katero se shrani rezultat deljenja. DIV <operand, sprem. ali številka> <operand, sprem. ali številka> <rezultat, sprem.> Primer 1 VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. DIV 10 5 REZULTAT ; Deljenje vrednosti 10 in 5. Spremenljivka ; REZULTAT po deljenju vsebuje vrednost 2. Primer 2 VAR a 10 ; Deklaracija spremenljivke a. VAR b 5 ; Deklaracija spremenljivke b. VAR REZULTAT 0 ; Deklaracija spremenljivke REZULTAT. DIV a b REZULTAT ; Deljenje vrednosti a in b. Spremenljivka ; REZULTAT po deljenju vsebuje vrednost 2. V obeh primerih spremenljivka REZULTAT vsebuje isto vrednost Pogojni (IF) stavek Obstaja več načinov uporabe pogojnega if stavka. Prvi način IF <pogoj, spremenljivka ali številka> ELSE ENDIF 38

51 Primer 1 VAR a 20 VAR b 10 VAR REZULTAT 0 IF 0 ELSE ENDIF STORE REZULTAT a STORE REZULTAT b Ker pogoj ni izpolnjen, se izvede koda, ki se nahaje med ukazoma else in endif. Primer 2 VAR a 20 VAR b 10 VAR REZULTAT 0 IF a ELSE ENDIF STORE REZULTAT a STORE REZULTAT b Ker je pogoj izpolnjen (spremenljivka a je različna od nič), se izvede koda, ki se nahaje med ukazoma if in else. Drugi način IF <pogoj, spremenljivka ali številka> ENDIF 39

52 Primer 1 VAR a 20 VAR b 10 VAR REZULTAT 0 IF 0 STORE REZULTAT a ENDIF Ker pogoj ni izpolnjen, se koda, ki se nahaje med ukazoma if in endif ne izvede. Tretji način IF <spremenljivka ali številka> <operator> <spremenljivka ali številka> ELSE ENDIF Primer 1 VAR a 20 VAR b 10 VAR REZULTAT 0 IF a > b STORE REZULTAT a ELSE STORE REZULTAT b ENDIF Ker je pogoj izpolnjen, se izvede koda, ki se nahaje med ukazoma if in else. V spremenljivko REZULTAT se shrani večja vrednost, kar je v našem primeru

53 Četrti način IF <spremenljivka ali številka> <operator> <spremenljivka ali številka> ENDIF... Primer 1 VAR a 20 VAR b 10 VAR REZULTAT 0 IF a > b ENDIF STORE REZULTAT a Ker je pogoj izpolnjen, se izvede koda, ki se nahaje med ukazoma if in else. V spremenljivko REZULTAT se shrani vrednost 20. Omeniti je potrebno, da programski jezik ETSL omogoča tudi vgnezdene if stavke, kar pomeni, da omogoča pisanje if stavka znotraj if stavka Oznaka (ang. Label) Ukaz # označuje deklaracijo oznake. Znaku # sledi ime oznake. Med znakom # in imenom oznake ne sme biti presledka! Deklaracija oznake je potrebna za izvajanje skokov z ukazom GOTO. #OZNAKA Primer uporabe oznake bo podan v nadaljevanju. 41

54 GOTO stavek Ukaz GOTO označuje skok na oznako. Ukazu GOTO sledi ime oznake, na katero želimo skočiti. GOTO <oznaka> Primer Program, ki izvaja zanko desetkrat in nato skoči iz zanke. VAR STEVEC 0 #ZACETEK IF STEVEC = 10 GOTO KONEC ENDIF ADD STEVEC 1 STEVEC ; Povečanje števca za ena GOTO ZACETEK #KONEC GPIO ukazi (ang. General Purpose Input Output, GPIO) Ukaz GPIO označuje upravljanje s splošnonamenskimi vhodi in izhodi (ang. General Purpose Input Output, v nadaljevanju GPIO sponke). Ukazu GPIO lahko sledi eden od ukazov READ, SET ali RESET. Uporaba vseh naštetih ukazov je razložena v nadaljevanju. Pri nadaljni razlagi ukazov je potrebno vedeti, da lahko postavimo 12 GPIO sponk na logični nivo 1 ali logični nivo 0. Na sponke od 1 do 8 lahko priklopimo karkoli, kar za sponke od 9 do 12 ne velja. Na slednje so že priklopljene svetilne diode, kar prikazuje slika 8 v sekciji Branje GPIO sponk Ukaza GPIO READ označujeta branje GPIO sponk. Sledi številka sponke, katere logični nivo želimo brati. Številko sponke lahko podamo kot številko ali kot spremenljivko. Nato sledi spremenljivka, v katero se shrani logični nivo izbrane sponke. Tako lahko nadaljujemo za sponke od 1 do 8, ker zaenkrat le-te sponke lahko opravljajo funkcijo digitalnih vhodov. GPIO READ <sponka1, sprem. ali številka> <rezultat, sprem.> [<sponka2, sprem. ali številka> <rezultat, sprem. ali številka> < sponka8, sprem. ali številka> <rezultat, sprem. ali številka>] 42

55 Z ukazom GPIO READ <sponka1, spremenljivka ali številka> <rezultat, spremenljivka>, sponka1 začne opravljati funkcijo digitalnega vhoda. Nato se prebere vrednost na njej. Primer 1 Napišimo program, pri katerem bodo sponke 2, 4 in 8 imele vlogo digitalnih vhodov, in preberimo vrednost na omenjenih sponkah. VAR a 0 VAR b 0 VAR c 0 GPIO READ 2 a 4 b 8 c ; Digitalna vrednost sponke2 se ; prebere v spremenljivko a. ; Digitalna vrednost sponke4 se prebere v ; spremenljivko b. ; Digitalna vrednost sponke8 se prebere v ; spremenljivko c. Primer 2 Napišimo program, ki bo delal enako kot zgornji program, le da bomo sponkam dali imena. Zamislimo si, da imamo na sponkah 2, 4 in 8 vezane tipke. Odčitali bomo vrednosti tipk. VAR a 0 VAR b 0 VAR c 0 VAR TIPKA2 2 VAR TIPKA4 4 VAR TIPKA8 8 GPIO READ TIPKA2 a TIPKA4 b TIPKA8 c ; V spremenljivko a se shrani stanje tipke2. ; V spremenljivko b se shrani stanje tipke4. ; V spremenljivko c se shrani stanje tipke8. Program je sedaj nazornejši. 43

56 Postavitev GPIO sponk na logični nivo 1 Ukaza GPIO SET označujeta nastavitev ustreznih GPIO sponk na logični nivo 1. Ukazu SET sledi številka sponke, ki jo želimo postaviti na logični nivo 1. Številko sponke lahko podamo kot številko ali spremenljivko. GPIO SET < sponka1, spremenljivka ali številka> [<sponka2, spremenljivka ali številka> < sponka12, spremenljivka ali številka>] Z zgornjim ukazom ustrezna GPIO sponka dobi funkcijo digitalnega izhoda in šele nato se postavi njena vrednost na logični nivo 1. Primer 1 Napišimo program, pri katerem bodo sponke 2, 4 in 9 opravljale funkcijo digitalnega izhoda. Omenjene sponke tudi postavi na logični nivo 1. GPIO SET Primer 2 Napišimo program, ki bo delal enako kot zgornji program, le da bomo GPIO sponkam dali imena. Zamislimo si, da imamo na GPIO sponkah 2 in 4 priklopljene releje, medtem ko je na sponko 9 vezana svetilna dioda. VAR RELE2 2 VAR RELE4 4 VAR DIODA1 9 GPIO SET RELE2 RELE4 DIODA1 Program je sedaj dojemljivejši. Vklopimo drugi in četrti rele ter prižgemo prvo svetilno diodo. 44

57 Postavitev GPIO sponk na logični nivo 0 Ukaza GPIO RESET označujeta nastavitev ustreznih GPIO sponk na logični nivo 0. Ukazu RESET sledi številka sponke, ki jo želimo postaviti na logični nivo 0. Številko sponke lahko podamo kot številko ali spremenljivko. GPIO RESET < sponka1, spremenljivka ali številka> [<sponka2, spremenljivka ali številka> < sponka12, spremenljivka ali številka>] Z zgornjim ukazom, ustrezna GPIO sponka dobi funkcijo digitalnega izhoda in šele nato se postavi njena vrednost na logični nivo 0. Primer 1 Napišimo program tako, da bodo sponke 2, 4 in 9 opravljale funkcijo digitalnega izhoda. Omenjene sponke tudi postavi na logični nivo 0. GPIO RESET Primer 2 Napišimo program, ki bo delal enako kot zgornji program, le da bomo GPIO sponkam dali imena. Zamislimo si, da imamo na GPIO sponkah 2 in 4 priklopljena releja. Na sponko 9 je kot vemo že priklopljena svetilna dioda. VAR RELE2 2 VAR RELE4 4 VAR DIODA1 9 GPIO RESET RELE2 RELE4 DIODA1 Program je sedaj dojemljivejši. Razklenemo drugi in četrti rele ter ugasnemo prvo svetilno diodo. 45

58 I 2 C ukazi Ukaz I2C označuje upravljanje z I 2 C vodilom. Ukazu I2C lahko sledi eden od ukazov READ ali WRITE. Uporaba obeh ukazov je razložena v nadaljevanju I2C WRITE Ukaza I2C WRITE označujeta pisanje podrejeni napravi. Ukazu WRITE sledi 7 bitni naslov podrejene naprave. Naslovu sledi prvi 8 bitni podatek. Prvemu podatku sledi drugi 8 bitni podatek. Na opisani način lahko pošljemo 4 zloge podatkov (štiri 8 bitne podatke). I2C WRITE <7 bitni naslov podrejene naprave, sprem. ali številka> [<prvi podatek (1 zlog), sprem. ali številka> < četrti podatek (1 zlog), sprem. ali številka>] Naslov podrejene naprave mora biti 7 bitni. To pomeni, da ima največji naslov vrednost 127. Pri vpisu večje vrednosti naslova pride do preliva. Podatki morajo biti 8 bitni. To pomeni, da ima največji podatek vrednost 255. Poslati je mogoče štiri 8 bitne podatke (4 zloge). Primer 1 Napišimo program, ki bo podrejeni napravi z naslovom 73 poslal dva zloga podatkov. Prvi zlog ima vrednost 5. Drugi zlog ima vrednost 10. I2C WRITE Primer 2 Naredimo isti program z uvedbo spremenljivk. VAR NASLOV_NAPRAVE 73 VAR ZLOG1 5 VAR ZLOG2 10 I2C WRITE NASLOV_NAPRAVE ZLOG1 ZLOG2 46

59 I2C READ Ukaza I2C READ označujeta branje iz podrejene naprave. Ukazu READ sledi 7 bitni naslov podrejene naprave. Naslovu sledi 8 bitni naslov registra podrejene naprave. Vrednost naslovljenega registra želimo brati. Naslovu registra sledi spremenljivka ali številka, ki pove koliko zlogov želimo prebrati. Največ 4 zloge lahko preberemo. Sledi spremenljivka, v katero se prebere vrednost registra. I2C READ <7 bitni naslov podrejene naprave, sprem. ali številka> <naslov registra (1 zlog), sprem. ali številka> <št. prebranih zlogov (največ 4), sprem. ali številka> <rezultat, spremenljivka> Primer 1 Napišimo program, ki bo prebral dva zloga iz registra podrejene naprave. Naslov podrejene naprave je 73, naslov registra podrejene naprave je 0. VAR REZULTAT 0 I2C READ REZULTAT Primer 2 Naredimo isti program kot je zgoraj, le da uvedimo spremenljivke, da bo bolj berljiv. VAR NASLOV_NAPRAVE 73 VAR NASLOV_REGISTRA 0 VAR ST_ZLOGOV 2 VAR REZULTAT 0 I 2 C READ NASLOV_NAPRAVE NASLOV_REGISTRA ST_ZLOGOV REZULTAT 47

60 13 Grafični uporabniški vmesnik Grafični uporabniški vmesnik univerzalnega preskuševalnika vgradnih sistemov je namenjen komunikaciji uporabnika z univerzalnim testerjem vgradnih sistemov. Uporabniški vmesnik je sestavljen iz treh zavihkov in sicer: inicializacijski zavihek, GPIO zavihek, I2C zavihek Inicializacijski zavihek Inicializacijski zavihek je namenjen nastavitvi komunikacije odjemalec strežnik, kar prikazuje slika 20. V okenček Address vpišemo IP naslov strežnika. V našem primeru je strežnik razvojna plošča M52233DEMO in ima IP naslov V okenček Port vpišemo številko vrat strežnika. Vrstica Status nam prikazuje stanje povezave odjemalec strežnik (ang. Client - Server). Gumb Connect poveže odjemalca s strežnikom. Gumb Disconnect prekine povezavo odjemalca s strežnikom. Slika 20: inicializacijski zavihek 48

61 13.2 GPIO zavihek GPIO zavihek omogoča: branje logičnih stanj GPIO sponk, nastavitev GPIO sponk, da opravljajo funkcijo digitalnih vhodov ali izhodov, nastavitev GPIO sponk na logični nivo 0 ali logični nivo 1, prikaz stanja logičnih nivojev GPIO sponk. Slika 21 prikazuje zgradbo GPIO zavihka. Gumb READ GPIO osveži logično stanje GPIO sponk. Prvi stolpec omogoča nastavitev GPIO sponk na logični nivo 1 ali na logični nivo 0. Obkljukan okenček pomeni logični nivo 1, neobkljukan okenček pomeni logični nivo 0. Drugi stolpec omogoča nastavitev GPIO sponk, da opravljajo funkcijo digitalnih vhodov ali izhodov. Obkljukan okenček pomeni, funkcijo digitalnega izhoda, neobkljukan okenček pomeni funkcijo digitalnega vhoda. Tretji stolpec omogoča prikaz stanja logičnih nivojev GPIO sponk. Slika 21: GPIO zavihek 49

62 13.3 I2C zavihek I2C zavihek je namenjen komunikaciji preko I 2 C protokola s podrejeno napravo, kar prikazuje slika 22. V okenček SLAVE ADDRESS vpišemo naslov podrejene naprave. Naslov mora biti napisan v šestnajstiškem sistemu. V okenček DATA vpišemo 8 bitne podatke v šestnajstiškem sistemu. Podatki morajo biti ločeni z vejico. Gumb WRITE zapiše podatke v podrejeno napravo. V okenček NUMBER BYTES vpišemo število zlogov, ki jih želimo prebrati iz podrejene naprave. Gumb READ prebere podatke iz podrejene naprave. Vrstica RESPONSE izpiše prebrane podatke podrejene naprave. Slika 22: I 2 C zavihek 50

63 13.4 Zagon ETSL programa Slika 23 prikazuje odpiranje in zagon ETSL programa, ki ga opravimo po sledečem postopku. Pritisnemo File. Pritisnemo Open, s čimer se odpre novo pogovorno okno. V novem pogovornem oknu izberemo datoteko s programom. Pritisnemo gumb Open. Koda se preveri in če ne vsebuje napak, se začne izvajati. Slika 23: odpiranje in zagon ETSL programa 51

64 14 Sestavljanje in razčlenjevanje sporočil odjemalca in strežnika Sestavljanje in razčlenjevanje sporočil na strani odjemalca smo realizirali s programskim jezikom C#. Sestavljanje in razčlenjevanje sporočil na strani strežnika smo realizirano s programskim jezikom C v razvojnem okolju CodeWarrior [7]. Zgornji del slike 24 prikazuje najnižja sloja odjemalske aplikacije (sekcija 8.1), spodnji del slike 24 prikazuje najvišja sloja strežniške aplikacije (sekcija 8.2). Vsi štirje sloji s slike 24 so razloženi v sekcijah 14.1, 14.2, 14.3, Sestavljanje, razčlenjevanje in usmerjanje GPIO sporočila. Sestavljanje, razčlenjevanje in usmerjanje I 2 C sporočila. Sestavljanje, razčlenjevanje in usmerjanje sporočila prehoda. Razčlenjevanje, sestavljanje in usmerjanje sporočila prehoda. Razčlenjevanje, sestavljanje in usmerjanje GPIO sporočila. Razčlenjevanje, sestavljanje in usmerjanje I 2 C sporočila. Slika 24: del arhitekture odjemalske in strežniške aplikacije 52

65 14.1 Sestavljanje sporočila prehoda na strani odjemalca Slika 25 prikazuje sestavljanje podatka, ki prispe iz skripte ali prikazovalnega obrazca. Podatku se doda glava I 2 C sporočila ali glava GPIO sporočila. Nastane GPIO sporočilo ali I 2 C sporočilo. Nastalemu sporočilu se doda glava sporočila prehoda. Nastane sporočilo prehoda, ki se pošlje s pomočjo TCP/IP protokola strežniku. Slika 25: sestavljanje sporočila na strani odjemalca 53

66 14.2 Razčlenjevanje sporočila prehoda na strani strežnika Slika 26 prikazuje razčlenjevanje sporočila prehoda. V glavi sporočila prehoda se nahaja identifikacijska številka modula, na podlagi katerega se ugotovi, ali je sporočilo namenjeno: I 2 C modulu; na podlagi ukaza v glavi I 2 C sporočila se pokliče funkcija branje ali pisanje, kateri se preda I 2 C sporočilo. Nato se izvrši zahtevana funkcija, GPIO modulu; na podlagi ukaza v glavi GPIO sporočila, se podatek preda ustrezni funkciji. Funkcija nato izvrši ukaz. 54

67 Slika 26: razčlenjevanje sporočila na strani strežnika 55

68 14.3 Sestavljanje sporočila prehoda na strani strežnika Slika 27 prikazuje sestavljanje sporočila prehoda na strani strežnika. Če je prebrani podatek I 2 C podatek, se mu doda glava I 2 C sporočila in nastane I 2 C sporočilo. Če je prebrani podatek GPIO podatek, se mu doda glava GPIO sporočila in nastane GPIO sporočilo. Enemu od nastalih sporočil se nato doda glava sporočila prehoda in tako nastane sporočilo prehoda, ki se pošlje s pomočjo TCP/IP protokola odjemalcu. Slika 27: sestavljanje sporočila na strani strežnika 56

69 14.4 Razčlenjevanje sporočila prehoda na strani odjemalca Slika 28 prikazuje razčlenjevanje sporočila prehoda na strani odjemalca. V glavi sporočila prehoda se nahaja identifikacijska številka modula, na podlagi katerega se ugotovi, komu je sporočilo namenjeno. Če gre za I 2 C podatek namenjen ETSL programu, se le-ta shrani v ustrezno spremenljivko. Če gre za GPIO podatek namenjen ETSL programu, se le-ta shrani v ustrezno spremenljivko. Če gre za I 2 C podatek namenjen prikazovalnemu obrazcu, se le-ta prikaže na prikazovalnem obrazcu. Če gre za GPIO podatek namenjen prikazovalnemu obrazcu, se le-ta prikaže na prikazovalnem obrazcu. Slika 28: razčlenjevanje sporočila na strani odjemalca 57

70 15 Realizacija univerzalnega preskuševalnika Program odjemalca smo realizirali s programskim jezikom C#. Program strežnika smo realizirali s programskim jezikom C v razvojnem okolju CodeWarrior Program na strani odjemalca Program na sliki 29 prikazuje izvajanje programa na strani odjemalca. Levi del slike 29 (inicializacijski zavihek) prikazuje, da se s pritiskom na gumb CONNECT (poveži) vzpostavi povezava odjemalec strežnik. S pritiskom na gumb DISCONNECT (prekini), se povezava odjemalec strežnik prekine. Če je uporabnik pognal izvajanje ETSL programa, se izvede prvo predprocesiranje, drugo predprocesiranje in izvajanje ETSL programa. V prvem predprocesiranju in drugem predprocesiranju se preverijo morebitne napake v kodi. Če koda ne vsebuje napak, se odstranijo komentarji, shranijo spremenljivke, oznake itd. Nato se začne izvajanje ETSL programa. Funkcije prvo predprocesiranje, drugo predprocesiranje in izvajanje ETSL programa so podrobneje razložene v nadaljevanju. Če uporabnik izvaja ročno testiranje z uporabo GPIO zavihka, se sestavi GPIO sporočilo. V primeru ročnega testiranje z uporabo I2C zavihka, se sestavi I 2 C sporočilo. Nato se sestavi sporočilo prehoda, ki se pošlje strežniku. 58

71 Slika 29: program na strani odjemalca 59

72 Funkcija prvo predprocesiranje Izkazalo se je, da se celotna koda ne more preveriti z enkratnim pregledom ETSL programa. Problem nastane pri preverjanju GOTO stavka, ki se izvaja tako, da se preveri obstoj oznake, ki sledi GOTO ukazu. To se lahko preveri le tedaj, ko so oznake že shranjene. Zato smo uvedli dvojno preverjanje kode. Slika 30 prikazuje funkcijo prvo predprocesiranje, ki izvaja prvi pregled kode, v katerem se ukazi pretvorijo v velike črke. Na ta način se doseže neodvisnost od majhnih in velikih črk. Nato se preveri pravilnost oznak. Pravilno vpisane oznake se shranijo v razpršeno tabelo. 60

73 Slika 30: funkcija prvo predprocesiranje 61

74 Funkcija drugo predprocesiranje Slika 31 prikazuje funkcijo drugo predprocesiranje, ki izvaja drugi pregled ETSL programa. Če koda ne vsebuje napake, sledi: shranitev spremenljivk v razpršeno tabelo, odstranitev komentarjev, oznakam se priredijo pravilne vrednosti vrstic in ustvarijo se oznake potrebne za pogojni (if) stavek. 62

75 Slika 31: funkcija drugo predprocesiranje 63

76 Ker je funkcija PREGLED KODE zelo obsežna, je njena razlaga razdeljena na štiri dele Funkcija pregled kode (prvi del) Slika 32 prikazuje izvajanje funkcije PREGLED KODE. Funkcija pregleduje pravilnost vpisanega: GPIO ukaza, STORE ukaza. Za našteta ukaza se preveri tudi: število argumentov, definiranost spremenljivk. 64

77 Slika 32: funkcija pregled kode (prvi del) 65

78 Funkcija pregled kode (drugi del) Slika 33 prikazuje izvajanje funkcije PREGLED KODE. Funkcija pregleduje pravilnost vpisanega: I 2 C ukaza, GOTO ukaza, WAIT ukaza. Za naštete ukaze se preveri tudi: število argumentov, definiranost spremenljivk. 66

79 Slika 33: funkcija pregled kode (drugi del) 67

80 Funkcija pregled kode (tretji del) Slika 34 prikazuje izvajanje funkcije PREGLED KODE. Funkcija pregleduje pravilnost vpisanega: ADD ukaza, SUB ukaza, SHIFTL ukaza, SHIFTR ukaza, MULT ukaza, DIV ukaza, IF ukaza. Za naštete ukaze se preveri tudi: število argumentov, definiranost spremenljivk. 68

81 Slika 34: funkcija pregled kode (tretji del) 69

82 Funkcija pregled kode (četrti del) Slika 35 prikazuje izvajanje funkcije PREGLED KODE. Funkcija pregleduje pravilnost vpisanega LOG ukaza. Preveri se: definiranost spremenljivk, ali je število spremenljivk enako številu znakov %. V primeru ugotovljene napake v funkciji PREGLED KODE sledi vrnitev iz funkcije in prikaz napake v prikazovalnem obrazcu. 70

83 Slika 35: funkcija pregled kode (četrti del) 71

84 Funkcija izvajanje ETSL programa (prvi del) Če uporabnik ne naredi napake pri pisanju kode, se začne izvajanje ETSL programa. Izvaja se ukaz za ukazom. Slika 36 prikazuje izvajanje ukazov WAIT, GOTO, ADD, SUB, SHIFTL, SHIFTR, MULT. DIV, STORE. Slika 36: funkcija izvajanje ETSL programa (prvi del) 72

85 Funkcija izvajanje ETSL programa (drugi del) Slika 37 prikazuje izvajanje ukazov WAIT, GOTO, ADD, LOG, GPIO SET, GPIO RESET, GPIO READ, IF. Uporaba omenjenih ukazov je razložena v sekciji 12. Slika 37: funkcija izvajanje ETSL programa (drugi del) 73

86 15.2 Program na strani strežnika Program na strani strežnika je sestavljen iz dveh opravil Glavno opravilo Slika 38 prikazuje glavno opravilo. Strežnik sprejme sporočilo prehoda od odjemalca in ga razčleni. Na podlagi podatkov v glavi sporočila prehoda se ugotovi, komu je sporočilo namenjeno. Sledi razčlenjevanje GPIO sporočila ali razčlenjevanje I 2 C sporočila. Strežnik se nato na podlagi podatkov v glavi GPIO sporočila ali na podlagi podatkov v glavi I 2 C sporočila odloči, kaj narediti. V primeru ukaza branje, se prebere vrednost. Prebrana vrednost se pošlje v sporočilno vrsto. Sledi branje iz sporočilne vrste in sestavljanje GPIO sporočila ali I 2 C sporočila. Iz dobljenega sporočila se sestavi sporočilo prehoda, ki se nato pošlje odjemalcu. Sestavljanje in razčlenjevanje sporočila, je podrobno opisano v sekciji

87 Slika 38: program na strani strežnika 75

88 GPIO opravilo Slika 39 prikazuje GPIO opravilo. To opravilo ob spremembi logičnega nivoja na GPIO sponkah, sestavi GPIO sporočilo in ga pošlje v vrsto. GPIO OPRAVILO PREBERI VHOD NE SPREMEMBA DA SESTAVLJANJE GPIO SPOROČILA SPOROČILO SE DODA V VRSTO Slika 39: GPIO opravilo 76

89 16 Preskus sistema Slika 40 prikazuje testiranje vgradnega sistema z univerzalnim preskuševalnikom vgradnih sistemov v podjetju Hermes Softlab d.d.. Vgradni sistem smo segrevali s svetilko, s čimer smo ga izpostavili nenavadnim pogojem delovanja. Univerzalni tester je tri dni testiral in beležil spremembe. Slika 40: testiranje z univerzalnim preskuševalnikom vgradnih sistemov 16.1 ETSL program ETSL program, ki se je izvajal pri avtomatiziranem tesiranju vgradnega sistema prikazanega na sliki var rele 8 2 var green 5 3 var red 2 4 var green_status 0 5 var red_status #start 8 gpio set rele 9 wait gpio read green green_status red red_status 11 log "Boot: Green status: %, red status: %" green_status red_status 12 wait gpio read green green_status red red_status 14 log "Appl: Green status: %, red status: %" green_status red_status 15 gpio reset rele 16 wait goto start 77

Sistemske zahteve za SAOP

Sistemske zahteve za SAOP Sistemske zahteve za SAOP Samostojna delovna postaja višji). icenter je ERP sistem, ki zagotavlja popolno kontrolo nad vsemi poslovnimi procesi v podjetju. V tej postavitvi je SAOP icenter nameščen na

More information

Družina IEEE802 Poddružina IEEE802.1 Priključitev v omrežje IEEE802.1x

Družina IEEE802 Poddružina IEEE802.1 Priključitev v omrežje IEEE802.1x 1 Družina IEEE802 Poddružina IEEE802.1 Priključitev v omrežje IEEE802.1x 2 družina standardov, ki opisujejo delovanje lokalnih (LAN) in mestnih (MAN) omrežij delo opravljano v delovnih skupinah več na

More information

Delavnica za konfiguriranje dostopovnih točk WEB konfiguracija LANCOM L-54

Delavnica za konfiguriranje dostopovnih točk WEB konfiguracija LANCOM L-54 Delavnica za konfiguriranje dostopovnih točk WEB konfiguracija LANCOM L-54 Boštjan Lemut Prva povezava na L-54 s povezovalnim kablom povežemo mrežna vmesnika na računalniku in L-54 v brskalniku vpišemo

More information

IP PACKET QUEUING DISCIPLINES AS BASIC PART OF QOS ASSURANCE WITHIN THE NETWORK

IP PACKET QUEUING DISCIPLINES AS BASIC PART OF QOS ASSURANCE WITHIN THE NETWORK UDK621.3:(53+54+621 +66), ISSN0352-9045 Informacije MIDEM 39(2009)2, Ljubljana IP PACKET QUEUING DISCIPLINES AS BASIC PART OF QOS ASSURANCE WITHIN THE NETWORK Sasa Klampfer, Joze Mohorko, Zarko Cucej University

More information

Organizacija računalnikov (OR) UNI-RI, 3.l. RS Vaje. doc.dr. Mira Trebar

Organizacija računalnikov (OR) UNI-RI, 3.l. RS Vaje. doc.dr. Mira Trebar Organizacija računalnikov (OR) UNI-RI, 3.l. RS Vaje doc.dr. Mira Trebar 2 Vaja 1 (11.10.2010) Vaje so obvezne (delo v laboratoriju + doma) S1: Logisim MIPS procesor eno-cikelna izvedba ( logisim ) MIPS

More information

Delavnica za konfiguriranje dostopovnih točk Konfiguracija LANCOM L-54 z uporabo orodja LANConfig

Delavnica za konfiguriranje dostopovnih točk Konfiguracija LANCOM L-54 z uporabo orodja LANConfig Delavnica za konfiguriranje dostopovnih točk Konfiguracija LANCOM L-54 z uporabo orodja LANConfig Boštjan Lemut Prva povezava na L-54 s povezovalnim kablom povežemo mrežna vmesnika na računalniku in L-54

More information

Prirejanje in preverjanje tipov

Prirejanje in preverjanje tipov Uvod v C# Drugi del Dedovanje Sintaksa Prirejanje in preverjanje tipov Kaste preverjenih tipov Prekrivanje metod Dinamično povezovanje (poenostavljeno) Skrivanje Dinamično povezovanje (s skrivanjem) Fragile

More information

Vodnik skozi Google Analytics Beta verzija 1. del. prehod s stare kode (urchin.js), k novi kodi za sledenje (ga.js)

Vodnik skozi Google Analytics Beta verzija 1. del. prehod s stare kode (urchin.js), k novi kodi za sledenje (ga.js) Vodnik skozi Google Analytics Beta verzija 1. del prehod s stare kode (urchin.js), k novi kodi za sledenje (ga.js) Ta vodnik je povzetek Googe vodiča ' Tracking Code Migration Guide Switching from urchin.js

More information

Prometno načrtovanje xdsl

Prometno načrtovanje xdsl Prometno načrtovanje xdsl 1 Kazalo Prometno načrtovanje naročniške zanke Prometno načrtovanje MSAN Izbira agregacijskega modela Izbira opreme 2 Potrebe po pasovni širini Zahtevana pasovna širina na uporabnika

More information

Tehnike programiranja PREDAVANJE 9 Uvod v binarni svet in računalništvo

Tehnike programiranja PREDAVANJE 9 Uvod v binarni svet in računalništvo Tehnike programiranja PREDAVANJE 9 Uvod v binarni svet in računalništvo Predavanje 9 Uvod v binarni svet Birnarna aritmetika Polprevodniške tehnologije Računalnik Mikroprocesor ldos.fe.uni-lj.si >študij

More information

RAZLOG ZA IZVAJANJE PROGRAMA POPRBAZA

RAZLOG ZA IZVAJANJE PROGRAMA POPRBAZA RAZLOG ZA IZVAJANJE PROGRAMA POPRBAZA POPRBAZA je namenjen večji reorganizaciji podatkov v računalnikovem spominu. Reorganizacijo narekujejo bodisi zakonske spremembe, bodisi novosti v programu. Zato je

More information

Fakulteta za elektrotehniko, računalništvo in informatiko Inštitut za avtomatiko Laboratorij za obdelavo signalov in daljinska vodenja

Fakulteta za elektrotehniko, računalništvo in informatiko Inštitut za avtomatiko Laboratorij za obdelavo signalov in daljinska vodenja Fakulteta za elektrotehniko, računalništvo in informatiko Inštitut za avtomatiko Laboratorij za obdelavo signalov in daljinska vodenja Navodila za vaje pri predmetu Internetne tehnologije VAJA 2 Dušan

More information

Naslavljanje v IP. Miran Meža

Naslavljanje v IP. Miran Meža Naslavljanje v IP Miran Meža Omrežje vseh omrežij Avtonomni sistem Avtonomni sistem Avtonomni sistem Avtonomni sistem Avtonomni sistem Avtonomni sistem Omrežje vseh omrežij Usmerjanje prometa: poznati

More information

Hitra rast hranjenih podatkov

Hitra rast hranjenih podatkov Tomaž Borštnar - član uredništva računalniške revije Monitor od začetka (oktober 1991; ne-pc okolja (Unix, etc) - sodelavec YUNAC in ARNES od začetka - postavil in upravljal večino strežnikov na SiOL -

More information

sodobne poslovnoinformacijske rešitve Birokrat Kratka navodila za namestitev demo verzije programa Birokrat

sodobne poslovnoinformacijske rešitve   Birokrat Kratka navodila za namestitev demo verzije programa Birokrat sodobne poslovnoinformacijske rešitve www.andersen.si Birokrat Kratka navodila za namestitev demo verzije programa Birokrat Kratka navodila za namestitev demo verzije programa Birokrat Pošiljamo vam demo

More information

E R S Š G L J U B L J A N A Š O L S K O L E T O

E R S Š G L J U B L J A N A Š O L S K O L E T O Datotečni sistem E R S Š G L J U B L J A N A Š O L S K O L E T O 2 0 1 0 / 1 1 Vsebina Programska oprema Sistemska programska oprema Operacijski sistem Lupina (shell) Datotečni sistem Programska oprema

More information

ABBYY rešitve za prepoznavo in klasifikacijo dokumentov

ABBYY rešitve za prepoznavo in klasifikacijo dokumentov ABBYY rešitve za prepoznavo in klasifikacijo dokumentov preabbyy FlexiCapture 9.0. Overview. 1 doc: 10977 Lokalna prisotnost ABBYY: Moscow, Russia; Munich, Germany; Bracknell, UK; Kiev, Ukraine; Milpitas,

More information

» Nakup in vzdrževanje Oracle programske opreme «Tehnične specifikacije

» Nakup in vzdrževanje Oracle programske opreme «Tehnične specifikacije Obrazec P-5 Specifikacije 30K250316» Nakup in vzdrževanje Oracle programske opreme «Tehnične specifikacije KAZALO VSEBINE 1. Predmet javnega naročila...3 1.1. SKLOP-1: STORITEV VZDRŽEVANJA ORACLE LICENČNE

More information

Mx381/382 komunikacijski vmesnik P1

Mx381/382 komunikacijski vmesnik P1 Mx381/382 komunikacijski vmesnik P1 Document History Edition Date Description Author V0.1 4.06.2018 Informacija Davor Mikulić Portfolio manager V0.2 4.07.2018 Dodane karakteristike vmesnika Davor Mikulić

More information

Lotus Quickr Najhitrejši način izmenjave poslovne vsebine

Lotus Quickr Najhitrejši način izmenjave poslovne vsebine Lotus Quickr Najhitrejši način izmenjave poslovne vsebine Zoran Povh, IT specialist zoran.povh@si.ibm.com 2007 IBM Corporation Vsebina Kaj je Lotus Quickr? Integracija z namiznimi programi Skupinski prostori

More information

Ime in priimek: Kazalo

Ime in priimek: Kazalo Ime in priimek: Datum: Naloga: Multicast Kazalo Naloga... 1 1. Uvod... 1 1.1. IP multicast... 1 1.2. Protokol IGMP... 1 1.3. Unicast in multicast usmerjanje/posredovanje... 2 1.4. Ethernet multicast (IGMP

More information

TI C2000: Družina za vgrajene (embedded) aplikacije

TI C2000: Družina za vgrajene (embedded) aplikacije CPU MIPS RAM (words) ROM (words) Flash (words) BootROM (words) Event Manager CAP/QEP TIMER PM(CMP) ADC TIMER Resolution 12 # ofchan 16 Conv time McBSP EXMIF atch Dog SPI SCI (UART) CAN Volts (V) # I/O

More information

ERCOlight LUM je energetsko visoko učinkovita svetilka za visoke prostore z možnostjo številnih različnih modifikacij.

ERCOlight LUM je energetsko visoko učinkovita svetilka za visoke prostore z možnostjo številnih različnih modifikacij. Object Installation Project number Date 1 Luminaire data 1.5 Somar International Ltd, Eluma ME-OP4/4L/50 P5 (ME-OP4/4L/50) 1.5.1 Data sheet Ena svetilka, pet različnih možnosti : Eluma Lighting : Comparison

More information

Calculation of volume with the use of NTF method. Izračun volumnov z uporabo NTF metode

Calculation of volume with the use of NTF method. Izračun volumnov z uporabo NTF metode RMZ - Materials and Geoenvironment, Vol. 53, No. 2, pp. 221-227, 2006 221 Calculation of volume with the use of NTF method Izračun volumnov z uporabo NTF metode Milivoj Vulić 1, Anes Durgutović 2 1 Faculty

More information

Državni izpitni center SPOMLADANSKI IZPITNI ROK *M * NAVODILA ZA OCENJEVANJE. Četrtek, 2. junij 2016 SPLOŠNA MATURA

Državni izpitni center SPOMLADANSKI IZPITNI ROK *M * NAVODILA ZA OCENJEVANJE. Četrtek, 2. junij 2016 SPLOŠNA MATURA Državni izpitni center *M16178113* SPOMLADANSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Četrtek, 2. junij 2016 SPLOŠNA MATURA RIC 2016 M161-781-1-3 2 IZPITNA POLA 1 1 1 2 1 3 3 4 1 5 3 6 2 7 1 8 1 9 1 10 3

More information

DB2 podatkovna baza v praksi

DB2 podatkovna baza v praksi DB2 podatkovna baza v praksi Aljoša Trivan, Mikropis holding d.o.o. aljosa.trivan@mikropis.si 2007 IBM Corporation Agenda Mikropis Splošno Fleksibilnost Vzdrževanje Backup SQL objekti in SQL stavki Novosti

More information

Uvod v svetovni splet

Uvod v svetovni splet Univerza v Ljubljani Fakulteta za gradbeništvo in geodezijo Uvod v svetovni splet Računalništvo in informatika, GR-UNI, GR-VSŠ Tehnična dokumentacija in informatika, VKI-UNI št. leto 2007/08, 1. semester

More information

Učinkovita rešitev za izdelavo zaščitnih kopij z deduplikacijo in replikacijo

Učinkovita rešitev za izdelavo zaščitnih kopij z deduplikacijo in replikacijo Učinkovita rešitev za izdelavo zaščitnih kopij z deduplikacijo in replikacijo Študija primera uvedbe sistema EMC DataDomain v podjetju Si.mobil Janez Narobe Janez.narobe@simobil.si Rok Krisper rok.krisper@snt.si

More information

Navodila za interaktivne naloge Bober

Navodila za interaktivne naloge Bober Avtorji dokumenta: Dean Gostiša , Lovro Podgoršek Verzija dokumentacije: 1.1 Datum in kraj: 24. 7. 2013, Ljubljana Navodila za interaktivne naloge Bober Uvod 1.

More information

Q: Do You made a backup before upgrade? A: Only cowards make backups!

Q: Do You made a backup before upgrade? A: Only cowards make backups! Q: Do You made a backup before upgrade? You z malo - you A: Only cowards make backups! Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies.

More information

A Generic Timing Receiver for Event-Driven Timing Systems

A Generic Timing Receiver for Event-Driven Timing Systems ELEKTROTEHNIŠKI VESTNIK 82(4): 205-211, 2015 ORIGINAL SCIENTIFIC PAPER A Generic Timing Receiver for Event-Driven Timing Systems Benjamin Ocepek Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška

More information

Model vezja. Digitalni Elektronski Sistemi. Računalniški model in realno vezje. Univerza v Ljubljani Fakulteta za elektrotehniko

Model vezja. Digitalni Elektronski Sistemi. Računalniški model in realno vezje. Univerza v Ljubljani Fakulteta za elektrotehniko Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Model vezja Računalniški model in realno vezje Model logičnega negatorja Načini

More information

Testiranje spletne aplikacije z orodji Selenium in Windmill

Testiranje spletne aplikacije z orodji Selenium in Windmill UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Bogdan Urdih Testiranje spletne aplikacije z orodji Selenium in Windmill DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE

More information

Obravnava izjem (exception handling)

Obravnava izjem (exception handling) Obravnava izjem (exception handling) Ko umre programer Uvod Ne glede na to, kako dobro smo načrtovali nek program, je še vedno možnost, da lahko med izvajanjem pride do kakšnih napak. Dobro načrtovan program

More information

Sistemske zahteve za Saop icenter

Sistemske zahteve za Saop icenter Sistemske zahteve za Saop icenter Izdaja 27 080 13 20 info@saop.si www.saop.si 18.6.2018 Sistemske zahteve 2 Samostojna delovna postaja icenter je ERP sistem, ki zagotavlja popolno kontrolo nad vsemi poslovnimi

More information

Session:E07 GALIO - DB2 index advisor, how we implemented it and what we get from self-made expert tool

Session:E07 GALIO - DB2 index advisor, how we implemented it and what we get from self-made expert tool Session:E07 GALIO - DB2 index advisor, how we implemented it and Viktor Kovačević, MSc Hermes Softlab 6th October 2009 14:15 (60') Platform: UDB / LUW OUTLINE Application & Database tuning Self made index

More information

Strukturirani poizvedovalni jezik SQL

Strukturirani poizvedovalni jezik SQL Računalništvo Strukturirani poizvedovalni jezik SQL Danijel Skočaj, Evelin Vatovec Krmac Univerza v Ljubljani Fakulteta za pomorstvo in promet Literatura: Evelin Vatovec Krmac, Računalništvo in informatika,

More information

How we calculate volume with the use of NTF method. Kako izračunamo volumen z uporabo metode NTF

How we calculate volume with the use of NTF method. Kako izračunamo volumen z uporabo metode NTF RMZ Materials and Geoenvironment, Vol. 55, No. 1, pp. 127-134, 2008 127 How we calculate volume with the use of NTF method Kako izračunamo volumen z uporabo metode NTF An e s Du r g u t o v i ć 1, Mi l

More information

BLUETOOTH KOMUNIKATOR ZA WINDOWS MOBILE 6.5

BLUETOOTH KOMUNIKATOR ZA WINDOWS MOBILE 6.5 Alen Rojko BLUETOOTH KOMUNIKATOR ZA WINDOWS MOBILE 6.5 Diplomsko delo Maribor, april 2013 BLUETOOTH KOMUNIKATOR ZA WINDOWS MOBILE 6.5 Diplomsko delo Študent(ka): Študijski program: Alen Rojko Visokošolski

More information

Telekomunikacijska infrastruktura

Telekomunikacijska infrastruktura Telekomunikacijska infrastruktura prof. dr. Bojan Cestnik bojan.cestnik@temida.si Vsebina Informatika in poslovanje Telekomunikacijska omrežja Načrtovanje računalniških sistemov Geografski informacijski

More information

formati slike in branje slike pomen in nekaj primerov EM spekter aplikacije v posameznih delih spektra o matriki slike

formati slike in branje slike pomen in nekaj primerov EM spekter aplikacije v posameznih delih spektra o matriki slike Strojni vid pri tehnoloških meritvah formati slike in branje slike pomen in nekaj primerov EM spekter aplikacije v posameznih delih spektra o matriki slike formati slike in branje slike slika je običajno

More information

Navodila za uporabo izdelkov programske opreme Microsoft

Navodila za uporabo izdelkov programske opreme Microsoft Navodila za uporabo izdelkov programske opreme Microsoft Kazalo Navodila za konfiguracijo odjemalca za e-pošto Outlook Splošno 3 Nastavitev poštnega predala s protokolom MAPI v odjemalcu Outlook 2007 s

More information

SS7. Laboratorij za telekomunikacije

SS7. Laboratorij za telekomunikacije Laboratorij za telekomunikacije SS7 Gradivo je namenjeno študentom smeri Telekomunikacije Fakultete za elektrotehniko v Ljubljani Uporaba v namene, ki niso povezani s študijem elektrotehnike na Fakulteti

More information

Računalnik INFORMATIKA 1. LETNIK ŽILBERT TIVADAR

Računalnik INFORMATIKA 1. LETNIK ŽILBERT TIVADAR Računalnik INFORMATIKA 1. LETNIK ŽILBERT TIVADAR Kaj je računalnik? osrednji in najpomembnejši del informacijske tehnologije; pripomoček, ki olajša naše delo; računalnik nenehno ponavlja štiri opravila:

More information

Metode logičnega snovanja Programabilne logične naprave in VHDL. Miha Moškon

Metode logičnega snovanja Programabilne logične naprave in VHDL. Miha Moškon Metode logičnega snovanja Programabilne logične naprave in VHDL Miha Moškon Programabilne logične naprave Metode logičnega snovanja, 1. laboratorijska vaja 2 Programabilna logična vezja V času proizvodnje

More information

Ljubljana,

Ljubljana, Ljubljana, 9. 4. 2018 Katalog znanj in vzorci nalog za izbirni izpit za vpis na magistrski študij Računalništvo in informatika 2018/2019 0 KATALOG ZNANJ ZA IZBIRNI IZPIT ZA VPIS NA MAGISTRSKI ŠTUDIJ RAČUNALNIŠTVO

More information

UDF for volume calculation with the use of NTF method. Lastne Excel funkcije za izračun prostornin po NTF metodi

UDF for volume calculation with the use of NTF method. Lastne Excel funkcije za izračun prostornin po NTF metodi RMZ Materials and Geoenvironment, Vol. 54, No. 3, pp.419-425, 2007 419 UDF for volume calculation with the use of NTF method Lastne Excel funkcije za izračun prostornin po NTF metodi Mi l i v o j Vu l

More information

Some results of transfer rate tests on two-way cable network

Some results of transfer rate tests on two-way cable network Elektrotehniški vestnik 68(2 3): 170 176, 2001 Electrotechnical Review, Ljubljana, Slovenija Some results of transfer rate tests on two-way cable network Boris Ratej, Amor Chowdhury, Rajko Svečko University

More information

PMC DIGITAL SIGNALLING PROCESSOR UNIT

PMC DIGITAL SIGNALLING PROCESSOR UNIT Univerza v Ljubljani Fakulteta za elektrotehniko Aleš Dolinar PMC DIGITAL SIGNALLING PROCESSOR UNIT Seminarska naloga pri predmetu Elektronska vezja Kranj, junij 2005 1. UVOD DSP procesorska enota se uporablja

More information

Razširitev in podpora serijskih komunikacijskih vmesnikov na Raspberry Pi platformi

Razširitev in podpora serijskih komunikacijskih vmesnikov na Raspberry Pi platformi Razširitev in podpora serijskih komunikacijskih vmesnikov na Raspberry Pi platformi Uroš Sadek 1,2, Amor Chowdhury 1,2 1 Margento R&D, Gosposvetska cesta 84, 2000 Maribor 2 Univerza v Mariboru, Fakulteta

More information

Protokol IPv6 je popolnoma nov protokol, vendar je zaradi lažjega razumevanja njegove lastnosti najlažje predstaviti s primerjavo IPv6 in IPv4.

Protokol IPv6 je popolnoma nov protokol, vendar je zaradi lažjega razumevanja njegove lastnosti najlažje predstaviti s primerjavo IPv6 in IPv4. Vaja: IPv6 1 Namen Namen vaje je seznaniti učeče z osnovnimi značilnostmi protokola IP verzije 6 (IPv6). Cilj vaje je, da učeči preizkusijo delovanje protokola IPv6 na operacijskem sistemu Windows 7. 2

More information

APLIKACIJE ZA SOCIALNA

APLIKACIJE ZA SOCIALNA UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Boštjan Lotrič APLIKACIJE ZA SOCIALNA OMREŽJA DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: doc. dr. Zoran Bosnić Ljubljana, 2011 Rezultati

More information

Hrbtenično MPLS-IP omrežje Elektro Maribor

Hrbtenično MPLS-IP omrežje Elektro Maribor Hrbtenično MPLS-IP omrežje Elektro Maribor Boštjan LENARČIČ Elektro Maribor d.d. bostjan.lenarcic@elektro-maribor.si Povzetek Služba za telekomunikacije Elektra Maribor je v letih 2011-2013 zgradila 10Gb/s

More information

Sistem za upravljanje zgradb

Sistem za upravljanje zgradb UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Andrej Kavrečič Sistem za upravljanje zgradb UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor: prof. dr. Saša

More information

Načrtovanje integriranih vezij in digitalnih elektronskih sistemov

Načrtovanje integriranih vezij in digitalnih elektronskih sistemov Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Andrej Trost priprava na laboratorijske vaje 2011 Načrtovanje integriranih vezij in digitalnih elektronskih

More information

Lokalna brezžična (WLAN) in osebna brezžična omrežja (PAN)

Lokalna brezžična (WLAN) in osebna brezžična omrežja (PAN) Lokalna brezžična (WLAN) in osebna brezžična omrežja (PAN) N. Zimic N. Zimic 4-1 IEEE 802.11 N. Zimic 4-2 1 Omrežja LAN in PAN V določenih primerih je težko natančno razdeliti protokole v posamezne skupine

More information

Navodila za nastavitev varne povezave po protokolu SSH

Navodila za nastavitev varne povezave po protokolu SSH Datum: 28. 9. 2010 Navodila za nastavitev varne povezave po protokolu SSH 1. Pogoji za zagotovitev varne povezave po protokolu SSH Za uspešno zagotovitev in nastavitev varne povezave po protokolu SSH je

More information

Internetne tehnologije

Internetne tehnologije Referenčni modeli UNIVERZA Žarko Čučej e-naslov: zarko.cucej@uni-mb.si Univerza v Mariboru Fakulteta za elektrotehniko, računalništvo in informatiko V Maribor 10. april 2009 MARIBORU 1 Triplastni model

More information

RAZVOJ BLUETOOTH APLIKACIJE V OKOLJU JAVA ME IN JAVA SE

RAZVOJ BLUETOOTH APLIKACIJE V OKOLJU JAVA ME IN JAVA SE UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Sara Perčič RAZVOJ BLUETOOTH APLIKACIJE V OKOLJU JAVA ME IN JAVA SE DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Ljubljana, 2010 UNIVERZA V

More information

Tehnike programiranja PREDAVANJE 2 Uvod v JavaScript

Tehnike programiranja PREDAVANJE 2 Uvod v JavaScript Tehnike programiranja PREDAVANJE 2 Uvod v JavaScript Predavanje 2 Ponovitev Predavanje 1 Naloge Uvod v JavaScript Pravila Primeri Priprava na laboratorijske vaje Pregled orodij ldos.fe.uni-lj.si >študij

More information

Upravljanje inteligentnega sistema na daljavo

Upravljanje inteligentnega sistema na daljavo Upravljanje inteligentnega sistema na daljavo Milan Rotovnik, Primož Kosec, Matjaž Debevc Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova 17, 2000 Maribor, Slovenija

More information

Vseprisotni računalniški sistemi

Vseprisotni računalniški sistemi Vseprisotni računalniški sistemi Vseprisotnost: pomeni obstoj ali biti prisoten povsod, istočasno in univerzalnost (vedno na razpolago). So "Več kot osebni računalniki". Ključni pojmi pri teh sistemih

More information

MODULARNA PROGRAMSKA REŠITEV MOSTA ZA PROTOKOL ETHERNET

MODULARNA PROGRAMSKA REŠITEV MOSTA ZA PROTOKOL ETHERNET UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tomo Ceferin MODULARNA PROGRAMSKA REŠITEV MOSTA ZA PROTOKOL ETHERNET MAGISTRSKO DELO Mentor: prof. dr. Nikolaj Zimic Ljubljana, 2011 Original

More information

Transakcije v MariaDB/MySQL (transakcija A)

Transakcije v MariaDB/MySQL (transakcija A) Transakcije v MariaDB/MySQL (transakcija A) Pomožni elementi In [1]: # pyodbc import pyodbc try: cn1.close() except: pass # MariaDB/MySQL conn = "DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=localhost;DATABASE=sandbox;UID=tu

More information

Razvoj jezika za iskanje, povezovanje in predstavitev podatkov

Razvoj jezika za iskanje, povezovanje in predstavitev podatkov UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Ernest Štukelj Razvoj jezika za iskanje, povezovanje in predstavitev podatkov DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU SMER PROGRAMSKA OPREMA

More information

Lokacijske storitve na mobilnih napravah

Lokacijske storitve na mobilnih napravah UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Aleš Rosina Lokacijske storitve na mobilnih napravah DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: doc. dr. Rok Rupnik Ljubljana, 2012

More information

Mobilne multimedijske storitve. mag. Urban Burnik Fakulteta za elektrotehniko Laboratorij za digitalno obdelavo signalov

Mobilne multimedijske storitve. mag. Urban Burnik Fakulteta za elektrotehniko Laboratorij za digitalno obdelavo signalov Mobilne multimedijske storitve mag. Urban Burnik Fakulteta za elektrotehniko Laboratorij za digitalno obdelavo signalov Uvod Mobilne storitve danes Multimedijske storitve Sistemske zahteve Nova generacija

More information

Osnovna navodila za uporabo programskega paketa V3.1 STEP 7 MicroWIN 32

Osnovna navodila za uporabo programskega paketa V3.1 STEP 7 MicroWIN 32 ŠC Novo mesto Višja strokovna šola - elektronika Osnovna navodila za uporabo programskega paketa V3.1 STEP 7 MicroWIN 32 mag., univ. dipl. inž. ŠOLSKI CENTER NOVO MESTO, november 2004 KAZALO stran 1 UVOD...

More information

Poglavje 7. Indeksi z uporabo drevesnih struktur Povzeto po [1]

Poglavje 7. Indeksi z uporabo drevesnih struktur Povzeto po [1] Poglavje 7 Indeksi z uporabo drevesnih struktur Povzeto po [1] - 1 - Indeksi uvod.. Včasih hočemo najti vse zapise, ki imajo določeno vrednost v določenem polju INDEKS je zunanja podatkovna struktura,

More information

Hierarhično načrtovanje. Načrtovanje digitalnih el. sistemov. Deklaracija komponent. Komponente

Hierarhično načrtovanje. Načrtovanje digitalnih el. sistemov. Deklaracija komponent. Komponente Laboratorij za načrtovanje integriranih vezij Fakulteta za elektrotehniko Univerza v Ljubljani Hierarhično načrtovanje Andrej Trost Načrtovanje digitalnih el. sistemov Načrtovanje vezij v jeziku VHDL Komponente,

More information

Vgrajeni sistem za brezkontaktno merjenje elektičnega toka na daljavo

Vgrajeni sistem za brezkontaktno merjenje elektičnega toka na daljavo Univerza v Ljubljani Fakulteta za elektrotehniko Mitja Stojkovič Vgrajeni sistem za brezkontaktno merjenje elektičnega toka na daljavo DIPLOMSKO DELO VISOKOŠOLSKEGA STROKOVNEGA ŠTUDIJA Mentor: prof. dr.

More information

Matevž Bizjak. Implementacija pomnilniškega vmesnika v FPGA

Matevž Bizjak. Implementacija pomnilniškega vmesnika v FPGA UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Matevž Bizjak Implementacija pomnilniškega vmesnika v FPGA DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: prof. dr. Patricio Bulić Ljubljana,

More information

Razširljiv nadzor velikih oblačnih sistemov

Razširljiv nadzor velikih oblačnih sistemov Univerza v Ljubljani Fakulteta za računalništvo in informatiko Nejc Saje Razširljiv nadzor velikih oblačnih sistemov MAGISTRSKO DELO ŠTUDIJSKI PROGRAM DRUGE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor:

More information

2. Načrtovanje procesorjev

2. Načrtovanje procesorjev 2. Načrtovanje procesorjev 2.1. Uvod, 4-bitni procesor The on-line reconfiguration or reconstruction can be introduced at three different levels: First: Some operations inside the standard CPU, such as

More information

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Matjaž Poljanšek DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Matjaž Poljanšek DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Matjaž Poljanšek Analiza modela platforme kot storitve in razvoj aplikacije v oblaku na platformi Google App Engine DIPLOMSKO DELO NA UNIVERZITETNEM

More information

PODATKOVNE BAZE NOSQL

PODATKOVNE BAZE NOSQL PODATKOVNE BAZE NOSQL Aljaž Zrnec, Dejan Lavbič, Lovro Šubelj, Slavko Žitnik, Aleš Kumer, Marko Bajec Univerza v Ljubljani, Fakulteta za računalništvo in informatiko, Laboratorij za podatkovne tehnologije,

More information

Izdelava urejevalnika izvorne kode v oblaku z uporabo tehnologij HTML5

Izdelava urejevalnika izvorne kode v oblaku z uporabo tehnologij HTML5 Univerza v Ljubljani Fakulteta za računalništvo in informatiko Roman Gorišek Izdelava urejevalnika izvorne kode v oblaku z uporabo tehnologij HTML5 DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM

More information

Andrej Jamšek. Namestitev programske opreme s poudarkom na tehnologiji MSI

Andrej Jamšek. Namestitev programske opreme s poudarkom na tehnologiji MSI UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Andrej Jamšek Namestitev programske opreme s poudarkom na tehnologiji MSI DIPLOMSKO DELO NA VISOKOŠOLSKEM STROKOVNEM ŠTUDIJU Mentor: izr.

More information

Uporaba logičnih vezij. Mikroprocesorji Mikroračunalniki Mikrokontrolerji Namenska vezja DSP PLC

Uporaba logičnih vezij. Mikroprocesorji Mikroračunalniki Mikrokontrolerji Namenska vezja DSP PLC Uporaba logičnih vezij Mikroprocesorji Mikroračunalniki Mikrokontrolerji Namenska vezja DSP PLC Logična vezja Logična vezja delimo na: Standardna integrirana vezja različnih nih integracij SSI, MSI, LSI

More information

Vlado Dimitrieski. Vzpostavitev vozlišča CANopen na vgrajenem sistemu

Vlado Dimitrieski. Vzpostavitev vozlišča CANopen na vgrajenem sistemu UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Vlado Dimitrieski Vzpostavitev vozlišča CANopen na vgrajenem sistemu diplomsko delo na univerzitetnem študiju mentor: izr. prof. dr. Uroš

More information

Proggy_AVR In system programator AVR

Proggy_AVR In system programator AVR Šola BASCOMA BASCOM Navodila AX elektronika d.o.o. Pot heroja Trtnika 45 1000 Ljubljana t 01 549 14 00 f 01 528 56 88 e prodaja04@svet-el.si i www.svet-el.si Proggy_AVR In system programator AVR Pred leti

More information

Arhitektura oblaka Upravljanje v oblaku Delovanje v oblaku Arhitekturni okvir računalništva v oblaku

Arhitektura oblaka Upravljanje v oblaku Delovanje v oblaku Arhitekturni okvir računalništva v oblaku 1 Predstavitev 2 Področja delovanja 3 GRC knjižnica 4 Primeri CAI in CCM Aplikacijska varnost 5 CCSK 6 Zaključek Globalna, neprofitna organizacija 23,000+ članov, 100 korporativnih članov, 50 odsekov Gradimo

More information

Specification and Implementation of a Light-Weight Internet Content Delivery Platform

Specification and Implementation of a Light-Weight Internet Content Delivery Platform University of Ljubljana Faculty of Computer and Information Science Marko Čeferin Specification and Implementation of a Light-Weight Internet Content Delivery Platform DIPLOMA THESIS First cycle professional

More information

Reševanje časovno zahtevnih opravil z orodjem ORACLE

Reševanje časovno zahtevnih opravil z orodjem ORACLE Ervin Črešnjovnjak Reševanje časovno zahtevnih opravil z orodjem ORACLE Diplomsko delo Maribor, junij 2011 I Diplomsko delo univerzitetnega študijskega programa REŠEVANJE ČASOVNO ZAHTEVNIH OPRAVIL Z ORODJEM

More information

Izdelava spletne aplikacije za video klepet

Izdelava spletne aplikacije za video klepet UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Nejc Štebe Izdelava spletne aplikacije za video klepet DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO

More information

INFORMACIJSKA PODPORA ZA NADZOR IN UPRAVLJANJE RAČUNALNIŠKIH OMREŽIJ

INFORMACIJSKA PODPORA ZA NADZOR IN UPRAVLJANJE RAČUNALNIŠKIH OMREŽIJ Domen Rogina INFORMACIJSKA PODPORA ZA NADZOR IN UPRAVLJANJE RAČUNALNIŠKIH OMREŽIJ Diplomsko delo Maribor, september 2013 INFORMACIJSKA PODPORA ZA NADZOR IN UPRAVLJANJE RAČUNALNIŠKIH OMREŽIJ Diplomsko delo

More information

Vgrajen sistem za avtomobilsko diagnostiko z vmesnikom Bluetooth

Vgrajen sistem za avtomobilsko diagnostiko z vmesnikom Bluetooth UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Robert Vurušič Vgrajen sistem za avtomobilsko diagnostiko z vmesnikom Bluetooth DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE

More information

Minimalne/optimalne zahteve za delovanje informacijskega sistema v povezavi z IMAGINE aplikacijami

Minimalne/optimalne zahteve za delovanje informacijskega sistema v povezavi z IMAGINE aplikacijami IMAGINE d.o.o. Podjetje za računalniški inženiring Gosposvetska cesta 84, 2000 Maribor Tel.: 02 320 60 60 Fax: 02 320 60 70 www.imagine.si, prodaja@imagine.si Minimalne/optimalne zahteve za delovanje informacijskega

More information

Blaž Primc. Authenticating Identity Addressing

Blaž Primc. Authenticating Identity Addressing UNIVERSITY OF LJUBLJANA FACULTY OF COMPUTER AND INFORMATION SCIENCE Blaž Primc Authenticating Identity Addressing UNDERGRADUATE STUDY DIPLOMA THESIS Supervisor: prof. dr. Dušan Kodek Ljubljana, 2010 UNIVERZA

More information

1. Informacijski sistemi so večinoma povezani s telekomunikacijskimi sistemi v tako imenovane informacijsko komunikacijske sisteme,

1. Informacijski sistemi so večinoma povezani s telekomunikacijskimi sistemi v tako imenovane informacijsko komunikacijske sisteme, Vsebina predmeta Podatki, informacije in informacijski sistemi Infrastruktura informacijskih sistemov Tipi podatkov Načini zapisa in shranjevanja podatkov Načini dostopa do podatkov (prenos) Poizvedbe

More information

Hierarhično načrtovanje. Načrtovanje digitalnih el. sistemov. Deklaracija komponent. Komponente

Hierarhično načrtovanje. Načrtovanje digitalnih el. sistemov. Deklaracija komponent. Komponente Laboratorij za načrtovanje integriranih vezij Fakulteta za elektrotehniko Univerza v Ljubljani Hierarhično načrtovanje Andrej Trost Načrtovanje digitalnih el. sistemov Načrtovanje vezij v jeziku VHDL Komponente,

More information

Namizna aplikacija za beleženje tehtanj tovornih vozil

Namizna aplikacija za beleženje tehtanj tovornih vozil UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Mitja Roblek Namizna aplikacija za beleženje tehtanj tovornih vozil DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO

More information

Oddaljen dostop do namiznega računalnika

Oddaljen dostop do namiznega računalnika UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Siniša Grubor Oddaljen dostop do namiznega računalnika DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA

More information

SERVISI ZA ODDALJEN DOSTOP DO RAČUNALNIKOV

SERVISI ZA ODDALJEN DOSTOP DO RAČUNALNIKOV Fakulteta za elektrotehniko, računalništvo in informatiko Tadej Šetinc SERVISI ZA ODDALJEN DOSTOP DO RAČUNALNIKOV Diplomsko delo Maribor, Avgust 2015 SERVISI ZA ODDALJEN DOSTOP DO RAČUNALNIKOV Diplomsko

More information

Laboratorij za strojni vid, Fakulteta za elektrotehniko, Univerza v Ljubljani Komunikacije v Avtomatiki Vaje, Ura 1

Laboratorij za strojni vid, Fakulteta za elektrotehniko, Univerza v Ljubljani Komunikacije v Avtomatiki Vaje, Ura 1 Laboratorij za strojni vid, Fakulteta za elektrotehniko, Univerza v Ljubljani Komunikacije v Avtomatiki Vaje, Ura 1 Matej Kristan Komunikacije v Avtomatiki Ime: Matej Kristan

More information

Primerjava uporabe SOAP in REST za potrebe povezave mobilnih naprav s spletnimi storitvami

Primerjava uporabe SOAP in REST za potrebe povezave mobilnih naprav s spletnimi storitvami Univerza v Ljubljani Fakulteta za računalništvo in informatiko Matjaž Rajnar Primerjava uporabe SOAP in REST za potrebe povezave mobilnih naprav s spletnimi storitvami DIPLOMSKO DELO NA UNIVERZITETNEM

More information

Primerjava izvornega in hibridnega razvoja mobilne aplikacije

Primerjava izvornega in hibridnega razvoja mobilne aplikacije UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Luka Vidmar Primerjava izvornega in hibridnega razvoja mobilne aplikacije DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE

More information

D I P L O M S K A N A L O G A

D I P L O M S K A N A L O G A FAKULTETA ZA INFORMACIJSKE ŠTUDIJE V NOVEM MESTU D I P L O M S K A N A L O G A VISOKOŠOLSKEGA STROKOVNEGA ŠTUDIJSKEGA PROGRAMA PRVE STOPNJE DEJAN ERJAVEC FAKULTETA ZA INFORMACIJSKE ŠTUDIJE V NOVEM MESTU

More information

KONCEPT NADZORA CENTRALIZIRANEGA RAČUNALNIŠKEGA OMREŽJA S PROTOKOLOM SNMP

KONCEPT NADZORA CENTRALIZIRANEGA RAČUNALNIŠKEGA OMREŽJA S PROTOKOLOM SNMP Jure Klobučar KONCEPT NADZORA CENTRALIZIRANEGA RAČUNALNIŠKEGA OMREŽJA S PROTOKOLOM SNMP Diplomsko delo Ruše, september 2010 I Diplomsko delo univerzitetnega študijskega programa KONCEPT NADZORA CENTRALIZIRANEGA

More information

3. sklop Elektronski obrazci OM1 ITK 2010/2011

3. sklop Elektronski obrazci OM1 ITK 2010/2011 3. sklop Elektronski obrazci OM1 ITK 2010/2011 Elektronski obrazci Elektronski dokument Elektronski obrazci Označevanje spletnih mest Arhiviranje spletnih informacij Pomen digitalnega podpisa Elektronski

More information