Projektovanje elektronskih sistema
- Detalji
- Kategorija: Osnovne akademske studije
Cilj: Usvajanje i sistematizovanje znanja vezanih za projektovanje sistema na nivou modula i elektronskih kola.
Ishod: sticanje kompetentnosti za projektovanje sigurnih elektronskih sistema na nivou modula i kola uz poznavanje potrebnih sofverskih i hardverskih alata.
Studenti dobijaju znanja koja su potrebna pri projektovanju elektronskih sistema. Akcenat se stavlja na projektovanje hardvera. Projektovanje je sveobuhvatno, počinje od definicije korisničkih zahteva, ide do krajnje implementacije sistema na štampanoj ploči i pisanja programskog koda mikrokontrolera.
Na početku semestra data je rekapitulacija već stečenih znanja o programskom jeziku C. Da bi studenti što pre krenuli sa praktičnim projektima projekovanja različitih sistema, fokus se stavlja na izučavanje C jezika koji je primenjen na mikrokontrolere.
Studenti zatim stiču iskustvo u realizaciji elektronskih sistema, upoznaju osnovne serijske komunikacione protokole, stiču iskustvo pri njihovoj implementaciji na gotovim razvojnim sistemima. Projekti koje studenti dobijaju su slikoviti i služe pre svega da razviju projektantsku kreativnost i maštu. Studenti stiču sigurnost u radu i veštine koje su preko potrebne u budućim zanimanjima. Znanja koja se dobijaju veoma primenljiva, nezavisna od izbora platforme, programskog jezika ili tipa mikrokontrolera.
U projektima konkretno studenti koriste razvojne sisteme bazirane na PIC mikrokontrolerima. Svaki projekat koristi dva razvojna sistema. U projektima se rešava problem prenosa podataka između različitih delova razvojnih sistema i između razvojnih sistema i računara. Takođe, predmetom je obuhvaćeno projektovanje štampanih ploča, kao i osnove testiranja elektronskih sistema.
Predavanja:
1. Elektronski sistemi. Podela sistema prema prirodi obrađivanih signala. Podela prema nameni. Podela prema vremenu potrebnom za izvršenje zadatka. Pouzdanost sistema. Topološke strukture distribuiranih sistema.
2. Projektovanje elektronskih sistema. Uloga računara u projektovanju. Faze projektovanja elektronskih sistema. Identifikacija korisničkih zahteva. Razvoj funkcionalnih i nefunkcionalnih specifikacija. Projektovanje arhitekture elektronskih sistema. Projektovanje hardvera. Projektovanje softvera. Integracija sistema i njegovo vrednovanje. Izrada dokumentacije projekta. Hijerarhijska organizacija dokumentacije projekta.
3. Programski jezik C, primenjen na mikrokontrolere koji su nezaobilazni deo elektronskih sistema. Opis funkcija, tipovi podataka, aritmetički operatori, unarni aritmetički operatori, relacioni operatori, logički operatori, operatori nad bitovima, naredbe grananja, petlje for, while, do while, rad sa nizovima.
4. Serijski komunikacioni protokoli u elektronskim sistemima. Serijski komunikacioni protokoli u mikrokontrolerima koji su konkretno potrebni za realizaciju projektnih zadataka: RS232, RS485, I2C i SPI protokol.
5. Korišćenje mikrokontrolera u realizaciji elektronskih sistema. Objašnjeni su moduli koji su konkretno potrebni za realizaciju projektnih zadataka: podešavanje pinova analogni/digitalni, ulazni/izlazni; podešavanje tajmera mikrokontolera, rad sa prekidima mikrokontrolera, upotreba A/D konvertora, rad sa UART modulom.
6. Korišćenje mikrokontrolera u realizaciji elektronskih sistema. Moduli koji su potrebni za realizaciju projektnih zadataka: SPI modul, korišćenje eksternog displeja LCD16x2. Struktura C programskog koda, osnovne funkcije main() i interrupt(). Primer korišćenja flegova, primer implementacije konačnih automata.
7. Struktura projektnog tima. Organizacija projektnog tima. Sastav tima za projektovanje hardvera. Tim za projektovanje softvera. Oprema projektnog tima. Opšta instrumentacija. Osciloskop. Logički analizator. Analizator spektra. "In-Circuit Emulator". Programator. Alati za razvoj softvera.
8. Kompajleri (Prevodioci). Podela na hardver, sistemski softver i aplikacioni softver. Funkcija kompajlera. Generacije računarskih jezika. Mašinski jezik. Asemblerski jezik. Viši programski jezici. Novi jezici. Mehanizmi za prevodjenje programa sa viših programskih jezika na mašinski kôd. Ciklus kompilacije. Struktura kompajlera. Analiza izvornog programa. Detektovanje grešaka i obaveštavanje o njima. Generisanje medjukoda. Optimizacija kompajlera. Generisanje koda. Asembler. Mašinski kod. Pseudoinstrukcije. Interpretacija. Interpreteri.
9. Operativni sistemi. Osnovna podela softvera i zadatak operativnog sistema. Slojevi računarskog sistema. Programi i procesi. Osnovna stanja procesa. Prelazi izmеđu stanja procesa. PCB – Process Control Block. Osnovne operacije OS sa procesima. Podela OS prema broju procesa. Heap. Stack. Konkuretno i sekvencijalno programiranje.
10. Jezgro operativnog sistema. Sistemski pozivi (System calls). Strategije za upravljanje uređajima. File system. Vrste prekida. Koncept virtualne mašine. Vrste memorija sa aspekta OS. Tehnike za proširenje interne memorije računara. Koncept virtualne memorije. Segmentacija procesa. Tehnika Paging (straničenje).
11. Projektovanje štampanih ploča. Terminologija "uzemljenje" i "masa". Napajanje kola neidealnim vezama. Zvezdast način prostiranja signala mase i napajanja. Napajanje mešovitih analogno-digitalnih kola. Izvori radio-frekventnih smetnji. Šum na ulazno-izlaznim pinovima i mere za minimizovanje šuma. Osnovne petlje na štampanim pločama - linije napajanja i mase, signalne petlje, petlja kola oscilatora. Uticaj veličine petlje na stepen zračenja. Uticaj impedanse linije mase. Međusobni položaj linija mase i napajanja. Masa digitalnog i analognog dela. Uklanjanje šuma dodacima. Optimalni raspored komponenata na štampanoj ploči. Kablovi i konektori. Zaštita elektronskih sistema oklopljavanjem.
12. Testiranje elektronskih sistema. Sistem za automatsko testiranje elektronskih kola. Cena odustajanja od testiranja. Pravilo 10x1. Zadaci testnog inženjera. Uloga projektanta u smanjenju cene testiranja sistema. Defekti u elektronskim kolima i njihovi uzroci. Detektabilnost, opservabilnost i testabilnost. (Miljana predaje)
13. Testiranje elektronskih sistema. Osnovni koncept testiranja elektronskih kola. Postupak generisanja testnih signala strukturnim konceptom testiranja. Principi testiranja kombinacionih kola. Rekonvergencija u digitalnim kolima, vrste i primeri. Defekti tipa kratak spoj i prazan hod u digitalnim kolima. Projektovanje za testabilnost, multipleksirano deljenje ulaznih i izlaznih pinova. Scan-in Scan-out tehnika, blok šema i objašnjenja. Boundary scan testiranje, blok šema, princip rada i signali TAP-a. . (Miljana predaje)
Računske vežbe:
1. Primer zadatka “Sistem za naplatu putarine i sagledavanje saobraćaja na autoputu”, opis funkcionalne specifikacije sistema, opis nefunkcionalne specifikacije sistema, osnovna podela projekta na hardver i softver, projektovanje globalne arhitekture hardvera.
2. Projektovanje “Podsistema ulaznih rampi”, podela hardvera podsistema na Master (AM) i Slejv automate (AS); projektovanje komunikacionog protokola između AM i AS automata; projektovanje komunikacionog protokola između Centralnog računarskog sistema (CRS) i master automata. Sagledavanje postojećih rešenja – modula pri realizaciji elektronskog sistema.
3. Realizacija Hardware-a Slejv automata “Podsistema ulaznih rampi”; definisanje osnovnog interfejsa Slejv automata (ulazi, izlazi); detaljni opis hardvera Slejv automata. Sagledavanje postojećih rešenja – modula pri realizaciji elektronskog podsistema Slejv automata. Data je šema konkretne štampane ploče razvojnog sistema koja se koristi za implementaciju Slejva.
4. Realizacija firmvera Slave automata “Podsistema ulaznih rampi” u C-u, definisanje ulaznih i izlaznih pinova mikrokontrolera u C-u, pregled osnovnih funkcija i promenljivih koji se koriste u programskom kodu; opis main() funkcije.
5. Realizacija firmvera Slave automata “Podsistema ulaznih rampi” u C-u, opis interrupt() funkcije, opis komunikacionih funkcija za rad sa UART-om, opis ostalih funkcija. Studentima je dat kompletan programski kod firmvera Slejv automata koji je pritom detaljno objašnjen.
6. Realizacija hardware-a Master automata “Podsistema ulaznih rampi”, definisanje osnovnog interfejsa Master automata (ulazi, izlazi); detaljni opis hardvera Master automata (šema konkretne štampane ploče na kojoj je Master realizovan). Sagledavanje postojećih modula koji se koriste pri realizaciji podsistema Master automata.
7. Realizacija firmvera Master automata u C-u, definisanje ulaznih i izlaznih pinova mikrokontrolera u C-u, pregled osnovnih funkcija i promenljivih koji se koriste u C programskom kodu; opis main() funkcije,
8. Realizacija firmvera Master automata u C-u, opis interrupt() funkcije, opis komunikacionih funkcija za rad sa Ethernet-om i UART-om, opis ostalih funkcija u C-u. Studentima je dat kompletan programski kod firmvera Master automata, koji je detaljno objašnjen.
9. (od 9. do 14.) Podela projektih zadataka i rad sa studentima na realizaciji istih. Projekti koje studenti dobijaju su praktični i slikoviti i služe pre svega da razviju kreativnost i maštu kod studenata, sigurnost u radu, projektantske veštine koje su preko potrebne u budućim zanimanjima. Primeri zadataka su: “Hotelski informacioni sistem“, „Sistem za zaštitu od požara u poslovnoj zgradi“, „Sistem za udaljeni nadzor telekomunikacionih šahtova“, itd. U projektima konkretno studenti koriste razvojne sisteme bazirane na PIC mikrokontrolerima. Svaki projekat koristi dva razvojna sistema. U projektima se rešava problem prenosa podataka između različitih delova razvojnih sistema i između razvojnih sistema i računara. Svi zadaci imaju isti kostur kako se rešavaju koji je detaljno dat u primeru zadatka na vežbama. Tim se sastoji od dva studenta od kojih jedan realizuje Master a drugi Slejv podsistem. Na kraju, kada se sistem implementira na datim razvojnim sistemima, studenti pišu seminarski rad u kome je opisana kompletna dokumentacija projekta.