dizajn ekspanzionog i/o modula za pcpeople.etf.unsa.ba/~esokic/zavrsni/2017jasmin.pdfulazno-izlazni...

74
U NIVERZITET U S ARAJEVU E LEKTROTEHNI ˇ CKI FAKULTET O DSJEK ZA AUTOMATIKU I ELEKTRONIKU Dizajn ekspanzionog I/O modula za PC Z AVRŠNI RAD -P RVI CIKLUS STUDIJA - Student: Jasmin Hadžajli´ c Mentor: Doc.dr Emir Soki´ c, dipl.ing.el. Sarajevo, septembar 2017.

Upload: others

Post on 27-Dec-2019

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

UNIVERZITET U SARAJEVUELEKTROTEHNICKI FAKULTET

ODSJEK ZA AUTOMATIKU I ELEKTRONIKU

Dizajn ekspanzionog I/O modula za PC

ZAVRŠNI RAD

- PRVI CIKLUS STUDIJA -

Student:Jasmin Hadžajlic

Mentor:Doc.dr Emir Sokic, dipl.ing.el.

Sarajevo,septembar 2017.

Page 2: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Doc. dr Emir Sokic, dipl.el.ingJasmina Zubaca, MoEOdsjek za automatiku i elektronikuSarajevo, 28.09.2017.

Tema za završni radstudenta I ciklusa studija koji studira na ETF-u u skladu sa principima Bolonjskog procesa na

Odsjeku za automatiku i elektroniku (šk. 2016/17.)

Tema: Dizajn ekspanzionog I/O modula za PCStudent: Jasmin Hadžajlic

Sažetak:Prilikom vizuelne inspekcije i korištenja algoritama obrade slike u industrijskom okruženju,

pojavljuje se potreba za interakcijom sistema za obradu slike sa okolnim hardverom (senzorimai aktuatorima). Jedan od nedostataka racunara opce namjene je nemogucnost povezivanja, mje-renja, akvizicije i generisanje odgovarajucih ulaznih i izlaznih (I/O) signala senzora odnosnoaktuatora. Zadatak rada je dizajniranje elektronickog modula koji se sastoji iz odredenog brojaanalognih/digitalnih ulaza i izlaza koji zadovoljavaju neophodne uvjete za korištenje u industrij-skom okruženju. Vezu izmedu racunara i modula je potrebno ostvariti putem RS485 sabirnice.

Polazna literatura:

[1] Batchelor, Bruce G., and Paul F. Whelan. Intelligent vision systems for industry.Springer Science & Business Media, 2012.

[2] Demant, Christian, C. Demant, and Bernd Streicher-Abel. Industrial image proce-ssing. Springer-Verlag, 1999.

[3] Szeliski, Richard. Computer vision: algorithms and applications. Springer Science &Business Media, 2010.

[4] Russ, John C. Image analysis of food microstructure. CRC press, 2004.

[5] McRoberts, Michael, Brad Levy, and Cliff Wootton. Beginning Arduino. New York.:Apress, 2010.

[6] Oxer, Jonathan, and Hugh Blemings. Practical Arduino: cool projects for open sourcehardware. Apress, 2011.

[7] Perrin, Bob. "The art and science of RS-485.", 2015.

Mentor:

Doc. dr Emir Sokic, dipl.el.ing

i

Page 3: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Univerzitet u SarajevuElektrotehnicki fakultetOdsjek za automatiku i elektroniku

Izjava o autenticnosti radova

Završni radI ciklusa studija

Ime i prezime: Jasmin HadžajlicNaslov rada: Dizajn ekspanzionog I/O za PCVrsta rada: Završni rad I ciklusa studijaBroj stranica: 65

Potvrdujem:∙ da sam procitao dokumente koji se odnose na plagijarizam, kako je to definirano Statutom

Univerziteta u Sarajevu, Etickim kodeksom Univerziteta u Sarajevu i pravilima studiranjakoja se odnose na I i II ciklus studija, integrirani studijski program I i II ciklusa i IIIciklus studija na Univerzitetu u Sarajevu, kao i uputama o plagijarizmu navedenim naweb stranici Univerziteta u Sarajevu;

∙ da sam svjestan univerzitetskih disciplinskih pravila koja se ticu plagijarizma;

∙ da je rad koji predajem potpuno moj, samostalni rad, osim u dijelovima gdje je to nazna-ceno;

∙ da rad nije predat, u cjelini ili djelimicno, za stjecanje zvanja na Univerzitetu u Sarajevuili nekoj drugoj visokoškolskoj ustanovi;

∙ da sam jasno naznacio prisustvo citiranog ili parafraziranog materijala i da sam se referi-rao na sve izvore;

∙ da sam dosljedno naveo korištene i citirane izvore ili bibliografiju po nekom od prepo-rucenih stilova citiranja, sa navodenjem potpune reference koja obuhvata potpuni bibli-ografski opis korištenog i citiranog izvora;

∙ da sam odgovarajuce naznacio svaku pomoc koju sam dobio pored pomoci mentora iakademskih tutora/ica.

Sarajevo, 28. septembar 2017.

Jasmin Hadžajlic

ii

Page 4: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

iii

SažetakU okviru ovog rada obradeni su svi aspekti dizajna i implementacije ekspanzionog I/O modulaza PC. Opisani su aktuelni industrijski standardi u oblasti I/O uredaja i razliciti tipovi ulazno-izlaznih kanala. Predstavljena su konkurentna komercijalna rješenja, a zatim je koncipiranoidejno rješenje jednostavnog I/O modula. Prezentirana je hardverska realizacija sistema, uklju-cujuci mikrokontrolersku jedinicu, RS485 komunikaciju, kao i elektricne sheme prilagodenjaindustrijskih ulaza i izlaza na standardne naponske nivoe. Pojašnjene su moguce konfiguracijeupotrebe modula. Razvijen je protokol za komunikaciju modula sa racunarom putem RS485sabirnice. Opisane su sve funkcionalnosti sistema, te odgovarajuce softverske implementacije.

AbstractThe aim of this work is to give insight into all aspects of the design and development of anI/O expansion module for the PC. Contemporary industrial standards in the field of I/O devi-ces, along with different types of input-output channels are described. Competitive commercialsolutions were introduced, and subsequently a conceptual solution of a simple I/O module wasconceived. The hardware implementation of the system, including the microcontroller unit,RS485 communication, as well as the electric circuits required for interfacing the industrial in-puts and outputs to standard voltage levels are presented. Possible usage configurations of themodule are explained. A protocol for communicating the module with computer via the RS485bus was developed. All system functionalities and their corresponding software implementati-ons are described.

Page 5: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Sadržaj

Popis slika vii

Popis tabela viii

1 Uvod 11.1 Pregled stanja u oblasti istraživanja . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Prijedlog rješenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Hardverska komponenta IO modula 52.1 Mikrokontroler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 Atmel ATmega328p . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2 Funkcionalni moduli i mogucnosti mikrokontrolera ATmega328P . . . 62.1.3 Konfiguracija pinova mikrokontrolera ATmega328P (32-pin TQFP) . . 72.1.4 Minimalno elektronicko okruženje mikrokontrolera ATmega328p . . . 92.1.5 Programiranje programske memorije - ISP . . . . . . . . . . . . . . . 10

2.2 Komunikaciona komponenta IO sistema . . . . . . . . . . . . . . . . . . . . . 122.2.1 Implementacija RS485 komunikacije . . . . . . . . . . . . . . . . . . 12

2.3 Adresiranje IO modula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4 Ulazni portovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4.1 Digitalni ulaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4.2 Analogni ulaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4.3 Enkoderski ulaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.5 Izlazni portovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.5.1 Digitalni izlaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.5.2 Analogni izlaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.6 Dizajn štampane plocice - PCB . . . . . . . . . . . . . . . . . . . . . . . . . . 272.6.1 Projektovanje štampane plocice u programskom paketu Eagle . . . . . 272.6.2 Raspored ulaza i izlaza na štampanoj plocici . . . . . . . . . . . . . . 312.6.3 Fizicka realizacija štampanih plocica . . . . . . . . . . . . . . . . . . 33

3 Softverska komponenta IO modula 353.1 Softverske funkcionalnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2 Razvijeni komunikacijski protokol . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.1 Format poruke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.2.2 Implementirane poruke . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4 Testiranje rada modula 40

5 Zakljucak 43

Page 6: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

SADRŽAJ v

Prilozi 44

A Teoretski aspekti komunikacije 45A.1 RS485 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

A.1.1 Terminacija prenosnih vodova . . . . . . . . . . . . . . . . . . . . . . 45A.2 Topologija mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

B Programski kodovi 48B.1 Program mikrokontrolera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Literatura 64

Page 7: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Popis slika

1.1 Izgled inkrementalnog enkodera . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1 Blok struktura modula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Fizicki izgled mikrokontrolera ATmega328P (32-pin TQFP) . . . . . . . . . . 62.3 Blok dijagram mikrokontrolera ATmega328P [1] . . . . . . . . . . . . . . . . 82.4 Raspored pinova mikrokontrolera ATmega328P (32-pin MLF) . . . . . . . . . 92.5 Minimalno elektronicko okruženje mikrokontrolera ATmega328P . . . . . . . 102.6 Raspored pinova ISP konektora . . . . . . . . . . . . . . . . . . . . . . . . . . 112.7 Primjer implementacije RS485 komunikacije . . . . . . . . . . . . . . . . . . 132.8 Shema sklopa za RS485 komunikaciju . . . . . . . . . . . . . . . . . . . . . . 142.9 Raspored pinova MAX485 IC . . . . . . . . . . . . . . . . . . . . . . . . . . 142.10 Nacini hardverskog adresiranja . . . . . . . . . . . . . . . . . . . . . . . . . . 152.11 Sklop za ucitavanje adrese uredaja . . . . . . . . . . . . . . . . . . . . . . . . 162.12 Prilagodenje naponskih digitalnih ulaza za mikrokontroler . . . . . . . . . . . 172.13 Prilagodenje naponskih digitalnih ulaza PNP tipa za mikrokontroler . . . . . . 182.14 Prilagodenje strujnog digitalnog ulaza na mikrokontroler . . . . . . . . . . . . 182.15 Finalna shema digitalnog ulaza bez izolacije . . . . . . . . . . . . . . . . . . . 182.16 Finalna shema digitalnog ulaza sa izolacijom . . . . . . . . . . . . . . . . . . 192.17 Shema prilagodenja analognog unipolarnog napona za mikrokontroler . . . . . 202.18 Shema prilagodenja analognog bipolarnog napona za mikrokontroler . . . . . . 202.19 Shema prilagodenja analognog strujnog signala za mikrokontroler . . . . . . . 202.20 Shema prilagodenja analognog ulaza korištena u realizaciji modula . . . . . . . 212.21 Shema prilagodenja enkoderskog ulaza korištena u realizaciji modula . . . . . 222.22 Shema spajanja relejnih izlaza na mikrokontroler . . . . . . . . . . . . . . . . 222.23 Shema spajanja tranzistorskih izlaza na mikrokontroler . . . . . . . . . . . . . 232.24 Shema spajanja naponskog digitalnog izlaza sa komplementarnim tranzistorima 232.25 Shema spajanja tranzistorskih izlaza na mikrokontroler korištena u realizaciji

modula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.26 Shema spajanja relejnog izlaza korištena u realizaciji modula . . . . . . . . . . 252.27 Shema spajanja naponskog analognog izlaza . . . . . . . . . . . . . . . . . . . 252.28 Elektricna shema spajanja mikrokontrolera sa breakout pinovima . . . . . . . . 272.29 Izgled štampane ploce mikrokontrolerskog dijela . . . . . . . . . . . . . . . . 282.30 Elektricna shema spajanja dijela za komunikaciju i adresiranje . . . . . . . . . 282.31 Izgled štampane ploce dijela za komunikaciju i adresiranje . . . . . . . . . . . 292.32 Elektricna shema prilagodenja industrijskih ulaza i izlaza na mikrokontroler . . 292.33 Izgled štampane ploce dijela sa ulazima i izlazima . . . . . . . . . . . . . . . . 302.34 Raspored ulaza, izlaza i konfiguracijskih headera . . . . . . . . . . . . . . . . 312.35 Izgled štampanih plocica IO modula, nakon izrade . . . . . . . . . . . . . . . . 33

Page 8: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

POPIS SLIKA vii

2.36 Izgled štampanih plocica IO modula, nakon lemljenja . . . . . . . . . . . . . . 332.37 Izgled IO modula bez kucišta . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.38 Izgled IO modula sa kucištem . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1 Dijagram toka softvera mikrokontrolera . . . . . . . . . . . . . . . . . . . . . 35

A.1 Diferencijalni naponi RS485 predajnika . . . . . . . . . . . . . . . . . . . . . 45A.2 Terminacija vodova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46A.3 Topologije mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Page 9: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Popis tabela

1.1 Osnovne karakteristike Modicon kontrolera . . . . . . . . . . . . . . . . . . . 2

2.1 Mogucnosti konfiguracije digitalnih ulaza bez izolacije . . . . . . . . . . . . . 312.2 Mogucnosti konfiguracije digitalnih ulaza sa izolacijom . . . . . . . . . . . . . 312.3 Mogucnosti konfiguracije analognih ulaza . . . . . . . . . . . . . . . . . . . . 322.4 Mogucnosti konfiguracije relejnih izlaza . . . . . . . . . . . . . . . . . . . . . 322.5 Oznake ulaza i izlaza IO modula . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.1 Format poruke korišten za realizaciju komunikacije uredaja . . . . . . . . . . . 363.2 Oznake ulaza i izlaza IO modula . . . . . . . . . . . . . . . . . . . . . . . . . 373.3 Kodovi poruke greške . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.1 Odgovori uredaja na poslane poruke . . . . . . . . . . . . . . . . . . . . . . . 41

Page 10: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Poglavlje 1

Uvod

U industrijskom sistemu za vizuelnu inspekciju neophodna je interakcija sistema sa okolinom,tj. mjerenje odredenih parametara i izvršavanje zadanih akcija [2]. Navedene funkcije u takvomsistemu obavljaju ulazno-izlazni moduli.

Ulazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni uredaji koji po-vezuju sistem za obradu informacija, najcešce racunar, sa ostatkom sistema upravljanja. Dakle,ovi uredaji vrše ocitanje stanja sistema i mjerenje karakteristicnih velicina (ulaz), te djeluju nasistem u zavisnosti od instrukcije sistema za obradu informacija (izlaz).

Ulazi IO modula u industriji su izlazi razlicitih elektricnih senzora, koji mjere razlicite veli-cine, kako elektricne, tako i neelektricne. Izlazi senzora mogu biti naponski i strujni, te mogubiti analogni i diskretni. Prema tome i ulazi IO modula se dijele na:

∙ Digitalni strujni ulaz,

∙ Digitalni naponski ulaz,

∙ Analogni naponski ulaz,

∙ Analogni strujni ulaz.

U industrijskom postrojenju neizostavno je korištenje elektricnog motora. Za upravljanje moto-rom potrebno je na neki nacin mjeriti njegovu brzinu, što se najcešce radi upotrebom enkodera.Prema tome pored navedenih ulaza potrebno je da IO modul posjeduje i enkoderski ulaz (ulazna koji se direktno spajaju izlazi enkodera).

Od izlaza IO modula u industriji zahtjeva se da mogu upravljati razlicitim uredajima na osnovuinstrukcije racunara. Uredaji kojima se upravlja su razliciti elektricni motori (AC, DC), zatimgrijaci, rasvjetna tijela i drugi, u zavisnosti od potrebe. Prema tome izlazi IO modula trebajuimati mogucnost upravljanja pomenutim uredajima, pa se razlikuju sljedece vrste izlaza:

∙ Analogni/digitalni strujni izlaz,

∙ Analogni/digitalni naponski izlaz,

∙ Relejni izlaz,

∙ PWM izlaz.

U nastavku poglavlja dat je pregled stanja u oblasti istraživanja, a zatim i prijedlog rješenja.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 1

Page 11: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Uvod

1.1 Pregled stanja u oblasti istraživanjaUredaj koji se u velikoj mjeri koristi u industriji za automatizirano upravljanje dijelovima sis-tema je PLC (programabilni logicki kontroler, eng. Programmable logic controller). PLC jeelektronski uredaj koji posjeduje programabilnu memoriju za smještanje instrukcija kojima serealiziju specificne funkcije, kao što su logicke operacije i sekvenciranje, brojanje i aritmetickeoperacije, a u cilju upravljanja razlicitim mašinama i procesima putem digitalnih i/ili analognihulazno/izlaznih modula [3].

Karakteristike PLC-ova (broj i vrsta ulaza i izlaza, kolicina memorije, vrsta komunikacije itd.)zavise od grane industrije u kojoj se koriste. Tako imamo široku paletu PLC-ova razlicitih ka-rakteristika. Kompanije koje proizvode PLC-ove su Siemens, Omron, Allan Bradley, Schneiderelectric i drugi. Svaki od navedenih proizvodaca nudi široku paletu PLC-ova za razlicite na-mjene, od komercijalnih, industrijskih preko sigurnosnih, pa sve do PLC-ova posebne namjene[4][5][6][7]. U nastavku ce biti pobrojane karakteristike osnovnih PLC-ova, navedenih kompa-nija, koji se koriste u industriji.

Kompanija Schneider Electric proizvodi Modicon kontrolere [4]. U tabeli 1.1 pobrojani suulazi i izlazi tih kontrolera. Vidi se da izlazni signali ovih kontrolera posjeduju iste osobine.Takoder uocava se da Modicon M241 ne posjeduje analogne ulaze. Moguce je proširiti moguc-nosti ovih kontrolera dodavanjem ekspanzionih modula.

Model DI AI DO Opseg analognog ulaza Tip izlaza Izlazni signalModicon M221 8 2 8 0...10 V Tranzistorski 24 VDC, 0.5 A

Modicon M241 14 0 10 -Tranzistorski,

Relejni

24 VDC, 0.5 A,125 VDC, 2 A,250 VAC, 2 A

Modicon M258 26 4 16 4...20 mA, -10...10V Tranzistorski 24 VDC, 4 mA

Tabela 1.1: Osnovne karakteristike Modicon kontrolera

Ekspanzioni moduli kompatibilni sa Modicon kontrolerima su Modicon TM3 ekspanzioni mo-duli. U katalogu ovog proizvoda pobrojane su osnovne karakteristike ovih modula [8].

Digitalni ekspanzioni moduli mogu sadržavati naizmjenicne i istosmjerne ulaze, ciji su napon-ski nivoi 120 VAC, odnosno 24 VDC. Moguce je izvršiti izbor smjera toka struje (sink/source)ovih ulaza. Izlazi digitalnih modula su tranzistorski i relejni. Nazivna struja relejnih izlaza je 2A, 7 A ili 8 A, u zavisnosti o kojem se proizvodu konkretno radi. Tranzistorski izlazi su sink ilisource, nazivnih struja 0.1 A, 0.5 A, 2 A ili 4 A, u zavisnosti od konkretnog proizvoda.

Analogni ekspanzioni moduli TM3 mogu sadržavati strujne i naponske ulaze. Postoje dvaopsega za strujne ulaze 0...20 mA i 4...20 mA. Opsezi naponskih ulaza su -10...10 V i 0...10V. Rezolucije za obe vrste ulaza su 16 bita (ili 15 bita i bit za znak), te 12 bita (ili 11 bita ibit za znak), u zavisnosti od modula. Vrijeme citanja analognih ulaza je izmedu 1ms i 10ms(podesivo). Osim naponskih i strujnih analognih ulaza, ovi moduli mogu sadržavati i ulaze zatemperaturne senzore (termoparove i temperaturne sonde). Izlazi analognih ekspanzionih mo-dula takoder mogu biti strujni i naponski. Opsezi ovih izlaza su isti kao i kod analognih ulaza.Vrijeme konverzije signala je podesivo u intervalu od 1 ms do 10 ms. Rezolucija analognihizlaza je 11 bita (ili 10 bita i bit znaka).

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 2

Page 12: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Uvod

Kompanija Siemens proizvodi kontroler S7-1200 [5], koji se može koristiti za iste potrebe kaoi navedeni Modicon kontroleri. S7-1200 objedinjava mikroprocesor, napojnu jedinicu, ulaze iizlaze za upravljanje motorom, analogne ulaze, te port za komunikaciju sa ostalim dijelovimasistema. Navedeni modul ima i ekspanzione module, kojima se povecava opseg njegovih mo-gucnosti. Ulazi i izlazi ovog PLC i njegovih ekspanzionih modula imaju identicne naponskenivoe kao i Modicon kontroleri s razlikom što S7-1200 dodatno ima digitalne ulaze i izlaze di-gitalnog naponskog nivoa 5 V. Razlike se uocavaju i u izlaznim strujama digitalnih izlaza, alisu istog reda velicine kao i kod Modicon kontrolera. Analogni ulazi Siemens-ovog kontroleraimaju manju rezoluciju, tj. 11 bita (10 bita i bit za znak), ali i manje vrijeme konverzije (oko600 µs).

Kontroleri kompanije Allan Bradley i Omron, koji su slicnih mogucnosti kao gore navedenikontroleri, su Micro800 i CP1 kontroleri, respektivno [7][6]. Naponski nivoi ulaza i izlaza ovihkontrolera su isti kao i kod Modicon kontrolera. CP1 serija dodatno sadrži i naponski nivo od 5V za digitalne ulaze, kao i naponske nivoe 0...5 V i 1...5 V za analogne ulaze i izlaze. Micro800familija kontrolera dodatno ima i istosmjerne digitalne ulaze naponskog nivoa 12 V. Ostale ka-rakteristike ova dva kontrolera su dosta slicne karakteristikama gore navedenih kontrolera.

Osim trenutnog stanja IO modula na tržištu potrebno je navesti i karakteristike aktualnih senzorai aktuatora. U ponudi kompanije Schneider electric za senzore temperature, pritiska, detektoredima, te senzore svjetlosti [9], uocava se da su izlazni signali analognih senzora izmedu 0 i 10V za naponske, te izmedu 4 i 20 mA za strujne izlaze. Za induktivne senzore [10], koje nudipomenuta kompanija, postoje razlicite vrste digitalnih izlaznih signala. Izlazni signali ovih sen-zora su NPN i/ili PNP tipa, sa mirnim i/ili radnim kontaktima, najcešce 24 VDC naponskognivoa u zavisnosti od senzora.

Pored navedenih senzora u industriji se za mjerenje pozicije i brzine koristi enkoder, što jenavedeno na pocetku. U tu svrhu se koristi inkrementalni enkoder. Inkrementalni enkoder jekružnog oblika (slika 1.1) i sadrži dvije vanjske trake prozora istog broja (oznake A i B), kojesu medusobno pomjerene. Princip rada bazira se na brojanju impulsa koji se formiraju prekida-njem svjetlosti (opticki enkoder) pri rotaciji, zbog prozora na trakama. Broj prozora predstavljarezoluciju enkodera. Takoder postoji i jedan prozor na unutrašnjoj traci (oznaka 0).

Vanjska traka Unutrašnja traka

Slika 1.1: Izgled inkrementalnog enkodera

Izlazi inkrementalnog enkodera su kanali A, B i 0, koji se vode na ulaze PLC-a. Ulazi PLCna koje se enkoder spaja su tzv. brzi ulazi/brojaci (eng. high speed counters), dok se brzina ipozicija racunaju softverski. Kompanija Schneider electric proizvodi inkrementalne enkodereOsiSense XCC [11]. Naponski nivoi na izlazu ovih enkodera su 5 V ili u opsegu 11...30 V, što

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 3

Page 13: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Uvod

zavisi od izbora enkodera i napona napajanja. Rezolucije enkodera su 100, 360, 500, 1000 ili1024 ppr (eng. pulses per revolution, broj impulsa po obrtaju).

Iz priloženog se može zakljuciti da su karakteristike ulaza i izlaz PLC-ova razlicitih proizvo-daca dosta slicne, tj. standardizovane, te prilagodene razlicitim vrstama senzora tih proizvodaca.Prema tome moguce je uzeti jedan uredaj kao referentni i na osnovu njega vršiti izbor i prora-cun korištenih komponenti IO modula. Kao referentni PLC u okviru ovog rada uzet je ModiconM241 kontroler zajedno sa svojim ekspanzionim modulima.

1.2 Prijedlog rješenjaNa osnovu pregleda stanja u oblasti istraživanja, te zakljucka o korištenju Modicon M241 ure-daja kao referentnog, u ovom dijelu rada potrebno je specificirati kakav uredaj je potrebnorealizovati. Kako ce uredaj biti korišten u industrijskom sistemu za vizuelnu inspekciju, po-trebno je da posjeduje odredene mogucnosti, kao što su: upravljanje razlicitom vrstom motora,ocitavanje vrijednosti senzora za položaj objekata i slicno. Shodno navedenom, potrebno je dauredaj posjeduje odreden broj digitalnih i analognih ulaza, odnosno izlaza, te enkoderski ulaz iPWM izlaze. U zavisnosti od broja potrebnih uredaja i njihove upotrebe, moguce je implemen-tirati više IO modula za specificne namjene (npr. modul za upravljanje DC motorom, koracnimmotorom, AC motorom, modul za akviziciju podataka, sigurnosni modul i slicno). U ovoj fazirazvoja, dizajniran je univerzalni IO modul, koji služi za testiranje i demonstraciju mogucnostiovakvih modula, te poredenje sa komercijalnim rješenjima. Osim zahtjeva na ulaze i izlazemodula, potrebno je postaviti zahtjeve za komunikaciju. U ovom radu korišten je RS485 komu-nikacijski standard, koji povezuje module sa racunarom.

Na osnovu izloženog u okviru ovog rada dizajniran je modul sljedecih karakteristika:

∙ 4 digitalna ulaza

∙ 2 analogna ulaza

∙ 1 enkoderski ulaz

∙ 2 digitalna izlaza

∙ 2 digitalna/PWM izlaza

∙ 1 analogni izlaz

Ovaj završni rad je struktuiran na nacin opisan u nastavku.

U drugom poglavlju dat je dizajn hardvera IO modula. Navedeni su moguci nacini spajanjaulaza i izlaza, kao i njihove elektricne sheme, zatim je pojašnjeno korištenje mikrokontrolerakao upravljackog dijela ovog modula, te komunikacijski standardi u industrijskom okruženju.Na kraju poglavlja dat je dizajn štampane plocice samog modula.

Trece poglavlje je sacinjeno od softverskog dijela. U ovom poglavlju navedene su realizo-vane funkcionalnosti modula, te formati poruka i naredbi.

U cetvrtom poglavlju rada izloženi su nacini i rezultati testiranja rada modula. Na osnovupostavljenog scenarija slanja poruka, posmatrano je ponašanje sistema.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 4

Page 14: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Poglavlje 2

Hardverska komponenta IO modula

U ovom poglavlju ce biti predstavljeni nacini realizacije hardverskog dijela IO modula, a za-tim ce se odabrati odgovarajuca rješenja za konkretnu realizaciju. Osnovni dijelovi modula suprikazani na slici 2.1. Dijelovi modula opisani su u nastavku.1

Slika 2.1: Blok struktura modula

2.1 MikrokontrolerMikrokontroler (skraceno MCU od eng. microcontroller unit) je racunar malih dimenzija im-plementiran na jednom integriranom kolu (cipu) [3]. U modernoj tehnologiji, to su SoC sistemi(Sistem na cipu, eng. System on a Chip). Jedna mikrokontrolerska jedinica sadrži jednu iliviše procesorskih jezgri, zajedno sa memorijom i programabilnim perifernim ulazno/izlaznimmodulima. Programska memorija u obliku feroelektricne RAM, NOR Flash ili OTP ROM me-morije je takoder cesto prisutna, kao i odredena kolicina RAM memorije. Mikrokontroleri sedizajniraju za ugradbene (eng. embedded) aplikacije, za razliku od mikroprocesora koji se ko-riste u personalnim racunarima ili u aplikacijama opce namjene.

Mikrokontroleri se koriste pri realizaciji proizvoda i uredaja sa automatskim upravljanjem, kaošto su upravljacki sistemi za pogone automobila, implantacijski medicinski uredaji, daljinskiupravljaci, uredske mašine, alati, igracke i drugi ugradbeni sistemi. Smanjenjem velicine i

1Dizajn i implementacija dijela sa mikrokontrolerom, te dijela sa komunikacijom i adresiranjem realizovani suu suradnji sa kolegom Hasanom Grošicem, te su sadržani i u završnom radu "Dizajn kontrolabilnog modula zaosvjetljenje"

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 5

Page 15: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

cijene u odnosu na dizajn koji koristi diskretne elemente mikroprocesora, memorije i ulazno/iz-laznih modula, mikrokontroleri omogucuju ekonomicniji nacin digitalnog upravljanja mnogoviše uredaja i procesa.

2.1.1 Atmel ATmega328pAtmel ATmega328P je 8-bitni CMOS mikrokontroler male snage baziran na tzv. AVR pobolj-šanoj (eng. enhanced) RISC arhitekturi [1].

Atmel AVR jezgra kombinuje bogat instrukcijski set sa 32 registra opce namjene. Svaki odta 32 registra je direktno spojen na aritmeticko-logicku jedinicu (ALU), što omogucuje pristupka dva nezavisna registra pomocu jedne instrukcije koja se izvršava u jednom takt ciklusu. Re-zultujuca arhitektura je efikasnija u smislu programiranja, te postiže procesorske brzine blizu 1MIPS (miliona instrukcija u sekundi) pri radnoj frekvenciji od 1 MHz, što je i do deset puta bržeod konvencionalnih CISC mikrokontrolera. Ova cinjenica omogucuje projektantima sistema daoptimiziraju dizajn uredaja u smislu potrošnje, odnosno, u smislu brzine procesiranja.

Mikrokontroler ATmega328P se proizvodi u cetiri fizicki razlicite varijante (pakovanja):

∙ 28-pin PDIP,

∙ 28-pin MLF,

∙ 32-pin TQFP i

∙ 32-pin MLF.

Za potrebe ovog rada razmatrat ce se varijanta 32-pin TQFP, koja je prikazana na slici 2.2.

Slika 2.2: Fizicki izgled mikrokontrolera ATmega328P (32-pin TQFP)

2.1.2 Funkcionalni moduli i mogucnosti mikrokontrolera ATmega328PMikrokontroler ATmega328P posjeduje sljedece funkcionalnosti:

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 6

Page 16: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

∙ 32KB sistemski programabilne Flash memorije sa Citaj-Dok-Pišeš (eng. Read-While-Write) sposobnostima,

∙ 1KB EEPROM memorije,

∙ 23 I/O linije opce namjene,

∙ 32 radna registra opce namjene,

∙ prekidni sistem sa 26 razlicitih prekida,

∙ Real Time brojac (RTC),

∙ tri fleksibilna tajmera/brojaca (2x8-bitni i 1x16-bitni) sa poredbenim modovima i moguc-nošcu širinsko-impulsne modulacije (PWM),

∙ 1 serijski programabilni USART interfejs,

∙ 1 bajtno-orjentirani 2-žicni serijski interfejs (I2C),

∙ 8-kanalni 10-bitni AD konvertor,

∙ programabilni Watchdog tajmer sa internim oscilatorom,

∙ SPI serijski port i

∙ 6 softverski selektabilnih modova uštede energije.

ISP Flash (skr. od eng. In-system Programming) koji je prisutan na cipu, dozvoljava program-skoj memoriji da bude reprogramirana kroz sistem preko SPI serijskog interfejsa, konvenci-onalnim programatorima neizbrisive (eng. nonvolatile) memorije, ali i bootloader programimasmještenim na AVR jezgri. O nacinima programiranja programske memorije ce više biti rijeciu kasnijim odjeljcima ovog rada.

2.1.3 Konfiguracija pinova mikrokontrolera ATmega328P (32-pin TQFP)Verzija mikrokontrolera razmatrana u ovom završnom radu (32-pin TQFP) ima 32 pina od kojihje vecina multipleksirana, pa jedan pin može da obavlja više uloga u zavisnosti od aplikacije.Na slici 2.4 prikazan je raspored pinova sa odgovarajucim multipleksiranim funkcijama istih, anjihov opis dat je u nastavku.

VCC: Napon napajanja.

GND: Masa.

Port B (PB[7:0]) XTAL1/XTAL2/TOSC1/TOSC2: Port B je 8-bitni bidirekcioni I/O port sainternim pull-up otpornicima (odabranim za svaki bit). Pinovi porta B prelaze u stanje visokeimpedanse kada neki od uslova reseta postane aktivan, cak i kada je sat deaktiviran. Zavisnood postavki konfiguracijskih bita za selekciju takta (eng. clock selection fuse), pin PB6 možese koristiti kao ulaz u invertirajuce oscilatorsko pojacalo i kao ulaz u operativni krug internogsata, a PB7 kao izlaz iz invertirajuceg oscilatorskog pojacala. Ako se za generisanje takta cipakoristi interni kalibrirani RC oscilator, onda se PB[7:6] koristi kao TOSC[2:1] ulaz za asinhronitajmer/brojac2 ako je AS2 bit u ASSR registru setovan.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 7

Page 17: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Slika 2.3: Blok dijagram mikrokontrolera ATmega328P [1]

Port C (PC[5:0]): Port C je 7-bitni bidirekcioni I/O port sa internim pull-up otpornicima(odabranim za svaki bit). Pinovi porta C prelaze u stanje visoke impedanse kada neki od uslovareseta postane aktivan, cak i kada je sat deaktiviran. Jedna od više funkcija pinova porta C jesui analogni ulazi u AD konvertor.

PC6/RESET: Ako je RSTDISBL konfiguracijski bit programiran, PC6 se koristi kao I/O pin.Bitno je naglasiti da se elektricne karakteristike pina PC6 razlikuju od karakteristika ostalih pi-nova porta C. Ako je RSTDISBL bit neprogramiran, PC6 se koristi kao RESET ulaz. Ulaz nivoalogicke nule na ovom pinu sa trajanjem dužim od barem jedne dužine takt impulsa, generisat ceRESET, cak i kada sat nije aktiviran.

Port D (PD[7:0]): Port D je 8-bitni bidirekcioni I/O port sa internim pull-up otpornicima(odabranim za svaki bit). Pinovi porta D prelaze u stanje visoke impedanse kada neki od uslovareseta postane aktivan, cak i kada je sat deaktiviran.

AVCC: AVCC služi kao ulaz za napon napajanja AD konvertora. Potrebno je da bude eks-terno spojen na VCC, cak i kada se ADK ne koristi. Ako se ADK koristi, AVCC je potrebnospojiti na VCC preko niskopropusnog filtra.

AREF: AREF služi kao ulaz za analogni referentni naponski nivo za AD konvertor.

ADC[7:6]: ADC[7:6] služe kao analogni 10-bitni ulazni kanali u AD konvertor.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 8

Page 18: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Napajanje

Masa

Programiranje/debugging

Digitalni pinovi

Analogni pinovi

Kristal/CLK

Slika 2.4: Raspored pinova mikrokontrolera ATmega328P (32-pin MLF)

2.1.4 Minimalno elektronicko okruženje mikrokontrolera ATmega328pZa pravilan rad mikrokontrolera ATmega328P, potrebno je osigurati odgovarajuce elektronickookruženje, što podrazumijeva stabilan napon napajanja sa adekvatnim naponskim nivoima, kolovanjskog oscilatora, kolo za resetovanje mikrokontrolera, te ISP interfejs za programiranje [12].

Obzirom da se mikrokontroler može napajati sa izvora ciji se naponi krecu izmedu 1.8V i 5.5V,kao optimalan izbor odabire se napon napajanja od 5V kako bi se postigla kompatibilnost sanaponskim nivoima standardne 5V TTL logike. Svi pinovi mikrokontrolera labelirani sa VCCi GND se spajaju na odgovarajuce naponske nivoe izvora napajanja. Za dodatnu stabilizacijunapona napajanja i eliminaciju šumova koriste se razdvojni (eng. decoupling) kondenzatori sakapacitetom od 100nF. Kolo vanjskog oscilatora sacinjeno je od kvarc kristala rezonantne frek-vencije 16MHz i dva plocasta kondenzatora kapaciteta 22pF koji su odabrani shodno frekven-ciji oscilatora. Uloga kristala se ogleda u stabilizaciji frekvencije clock signala. Za dovodenjevanjskog RESET signala na mikrokontroler koristi se taster/prekidac sa odgovarajucim pull-upotpornikom, dok je ISP interfejs za programiranje programske memorije realiziran u vidu 6-pinskog konektora.

Potpuna shema opisanog okruženja, zajedno sa mikrokontrolerom ATmega328P, prikazana je

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 9

Page 19: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

na slici 2.5.

10k

GND

+5V

100n

+5V

GND

16MHz

220p 220p

GND

100n

+5V

GND

ICSP

135

246

PB5(SCK/PCINT5)17

PB7(XTAL2/TOSC2/PCINT7)8PB6(XTAL1/TOSC1/PCINT6)7

AREF 20AVCC 18

PB4(MISO/PCINT4)16PB3(MOSI/OC2A/PCINT3)15PB2(SS/OC1B/PCINT2)14PB1(OC1A/PCINT1)13PB0(ICP1/CLKO/PCINT0)12

PD7(AIN1/PCINT23) 11PD6(AIN0/OC0A/PCINT22) 10

PD5(T1/OC0B/PCINT21) 9PD4(T0/XCK/PCINT20) 2

PD3(INT1/OC2B/PCINT19) 1PD2(INT0/PCINT18) 32PD1(TXD/PCINT17) 31PD0(RXD/PCINT16) 30

PC5(ADC5/SCL/PCINT13)28PC4(ADC4/SDA/PCINT12)27PC3(ADC3/PCINT11)26PC2(ADC2/PCINT10)25PC1(ADC1/PCINT9)24PC0(ADC0/PCINT8)23

PC6(RESET/PCINT14)29

ADC7 22ADC6 19

ATMEGA328P

VCC 4*2

GND 3*4

R1

C1

31

42

X1

C3 C4C2

S1

Slika 2.5: Minimalno elektronicko okruženje mikrokontrolera ATmega328P

2.1.5 Programiranje programske memorije - ISPISP programiranje (eng. In-System Programming), takoder poznato i kao ICSP (eng. In-CircuitSerial Programming), omogucuje programiranje i reprogramiranje programske memorije mi-krokontrolera smještenog unutar krajnjeg sistema. Putem jednostavnog trožicnog SPI interfejsa,ISP programator serijski komunicira sa mikrokontrolerom i ima mogucnost reprogramiranjacjelokupne trajne memorije na cipu.

ISP eliminiše potrebu za fizickim odstranjivanjem cipa iz sistema u cilju programiranja. Nataj nacin dolazi do velike uštede vremena i novcanih sredstava, kako tokom razvojne faze ulaboratoriji, tako i u procesu terenske nadogradnje softvera ili parametara programa.

Programiranje pomocu ISP programatora se vrši preko 6-pinskog konektora ciji je rasporedpinova prikazan na slici 2.6. Serijski periferalni interfejs - SPI (skr. od eng. Serial PeripheralInterface) se sastoji od tri signala: serijskog sata (SCK), Master In - Slave Out (MISO) i MasterOut - Slave In (MOSI). Tokom programiranja mikrokontrolera, ISP se uvijek ponaša kao mas-ter, dok odredišni sistem operira kao slave.

ISP (Master) pomocu SCK linije obezbjeduje takt potreban za komunikaciju. Svaki impulsna SCK liniji prosljeduje jedan bit od programatora (master) do odredišnog mikrokontrolera(slave) na MOSI liniji. U isto vrijeme, svaki impuls na SCK liniji takoder prosljeduje jedan bitod odredišnog mikrokontrolera (slave) do programatora (master) preko MISO linije.

Da bi se zapocelo serijsko programiranje, potrebno je aktivirati i držati aktivnom RESET li-niju mikrokontrolera (niski log. nivo). Kako bi se automatizirao ovaj proces, preferira se da seprogramatoru omoguci preuzimanje kontrole nad RESET linijom odredišnog mikrokontrolera

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 10

Page 20: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Slika 2.6: Raspored pinova ISP konektora

pomocu cetvrte kontrolne linije ISP-a (RESET).

Ukoliko odredišni sistem nema vlastito napajanje, tada se za napajanje mikrokontrolera tokomprogramiranja koristi VCC linija programatora.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 11

Page 21: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

2.2 Komunikaciona komponenta IO sistemaZa realizaciju industrijskog sistema, bilo kakvog tipa, neophodna je komunikacija izmedu kom-ponenti sistema. U ovom završnom radu to je komunikacija izmedu racunara koji upravljasistemom i samih modula sistema. Osobine koje treba da posjeduje takva komunikacija su:

∙ Velika brzina prenosa signala (reda Mbps),

∙ Prenos na vece udaljenosti (do 50 m),

∙ Otpornost na šumove,

∙ Velik broj ucesnika u komunikaciji (do 32).

Razlikujemo dva osnovna nacina na koje je moguce vršiti prenos podataka izmedu predajnika iprijemnika, a to su paralelni i serijski nacin [13]. Prema tome razlikujemo paralelnu i serijskukomunikaciju. Paralelna komunikacija je prenos više podataka istovremeno izmedu dva uces-nika. Serijska komunikacija, za razliku od paralelne, je prenos više podataka preko jedne veze,na nacin da se podaci šalju jedan za drugim sekvencijalno u vremenu. Serijska komunikacija uodnosu na paralelnu zahtijeva manje veza, cime se smanjuje cijena njene implementacije. Pa-ralelna komunikacija je brža i koristi se za prenos podataka na krace udaljenosti (npr. racunar -printer) [13].

Prema smjeru toka podataka komunikaciju možemo podijeliti na tri vrste [13]:

∙ Simplex – komunikacija izmedu ucesnika se uvijek obavlja u istom smjeru. Jedan uredajsamo šalje, a drugi samo prima podatke.

∙ Half-duplex – komunikacija je dvosmjerna, svi ucesnici mogu slati i primati podatke, aline istovremeno. Jedan ucesnika šalje podatke, a ostali primaju.

∙ Full-duplex – dvosmjerna komunikacija, moguce je istovremeno vršiti komunikaciju uoba smjera.

U ovom radu bit ce korištena half-duplex komunikacija, u kojoj ce racunar upravljati komuni-kacijom nad uredajima u mreži.

Zbog industrijskih uslova rješenje koje se najbolje pokazalo u praksi je RS485 komunikacij-ski standard, koji se odnosi na fizicki nivo komunikacije [14]. Detaljnija teoretska razmatranjaoko RS485 standarda i drugih aspekata komunikacije, data su na kraju rada u prilogu A.

2.2.1 Implementacija RS485 komunikacijeKomunikacija treba da se vrši izmedu glavnog racunara i modula sistema, kako je ranije spo-menuto. Moduli sistema su bazirani na mikrokontroleru. Mikrokontroler posjeduje pinove zaserijsku komunikaciju (RX, TX). Osim ova dva pina, potreban je još jedan izlazni pin, kojiodreduje u kojem smjeru se vrši komunikacija. Pomenute pinove mikrokontrolera spajamo naintegrisano kolo MAX485, koje služi za konverziju signala iz unipolarnog u diferencijalni. Ta-koder dodajemo otpornike za zatvaranje vodova. Blok shema je prikazana na slici 2.7. Na slici2.8 prikazan je elektronicki sklop koji realizira RS485 komunikaciju korištenu u sklopu ovograda i raspored pinova na korištenom RJ-45 konektoru.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 12

Page 22: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Upravljački izlaz

RX

TX PC

Upravljački izlaz

RX

TX

Slika 2.7: Primjer implementacije RS485 komunikacije

U nastavku su prikazane osnovne osobine integrisanog kola MAX485, korištenog za imple-mentaciju komunikacije sistema.

Integrisano kolo MAX485

Integrisana kola MAX485 su primopredajnici male snage koji se koriste za implementacijuRS485 i RS422 komunikacije. Na slici 2.9 je prikazan raspored pinova MAX485 IC. PinoviDE i RE služe za upravljanje smjerom komunikacije, pinovi RO i DI služe za primanje, od-nosno slanje podataka. Pinovi A i B su diferencijalne linije RS485 komunikacije.

Ukoliko su DE i RE u stanju logicke "0", diferencijalni signal sa A i B se prebacuje na pinRO, odakle prijemnik ocitava podatak. Kada su DE i RE na nivou logicke "1", podatak na pinuDI se prosljeduje na A i B, i tako postavlja na sabirnicu.Osnovne karakteristike integralnog kola [15]:

∙ Ulazna otpornost RI = 12kΩ

∙ Napon napajanja VCC = 5V

∙ Minimalni napon logicke "1" na ulazu VIHmin = 2V

∙ Maksimalni napon logicke "0" na ulazu VILmax = 0.8V

∙ Brzina prenosa podataka do 2.5 Mbps

∙ Half-duplex komunikacija

∙ Maksimalno 32 korisnika

MAX485 integrisano kolo ima zaštitu od prevelike disipacije snage, tako što izlaz postavi ustanje visoke impedanse. Takoder prijemni ulaz u kolo je postavljen na nivo logicke "1" ukolikoje odspojen.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 13

Page 23: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

MAX481CSA

10k

10k

+5V

620

620

GND

100n

+5V

GND

10k

GND 120

+5V

GND +5V

A

B

IC1

RO1

RE/2

DE3

DI4

6

7

R1 R2

R4R5

GNDVCC IC1P8 5

C1

R3

JP112

R6

4P$

4

5P$

5

1P$

1

2P$

2

3P$

3

8P$

8

6P$

6

7P$

7

LEDY+ P$12LEDY- P$11

LEDG+P$10LEDG-P$9

RST

SCK

MISO

MOSI

TXTX

RX

EN B

B

A

A

Slika 2.8: Shema sklopa za RS485 komunikaciju

Slika 2.9: Raspored pinova MAX485 IC

2.3 Adresiranje IO modulaU master/slave komunikaciji master uredaj mora znati kome šalje koje podatke, a slave moraznati koji su podaci upuceni njemu. Zakljucno tome, neophodan je neki nacin adresiranja pri-jemnika (slave-ova). Adresiranje se može implementirati na više nacina, od kojih svaki imasvoje prednosti i nedostatke.

Adresiranje je moguce vršiti tako što se svakom prijemniku softverski unaprijed dodijeli adresa,koja se ne može mijenjati. Osim toga moguce je prijemnicima, ukljucivanjem jednog po jednogna mrežu, softverski dodjeljivati adrese. Drugi nacin je komplikovaniji, ali osigurava izbjega-vanje preklapanja adresa prijemnika, odnosno da dva prijemnika imaju istu adresu.

Adresiranje je takoder moguce obaviti i hardverski. Jedan od nacina je da se na ulaze ure-daja preko više prekidaca binarno postavlja adresa (slika 2.10a). Prednost ovakvog adresiranjaleži u tome što se uvijek može vidljivo ocitati adresa uredaja. Medutim, nedostatak je korište-nje veceg broja pinova uredaja samo za adresiranje, što znaci da se umanjuje opseg mogucnostiuredaja. Ovaj nedostatak je moguce u jednoj mjeri ispraviti korištenjem D/A konvertora, pricemu se adresa ucitava kao analogna vrijednost (slika 2.10b). Ista stvar se postiže ukoliko seza adresiranje koristi pomicni registar (eng. Shift Register) sa paralelnim ulazom i serijskimizlazom (slika 2.10c). Ovaj nacin podrazumijeva korištenje tri digitalna pina mikrokontrolera:izlaz koji generiše clock signal za pomijeranje registra, izlaz koji generiše signal za paralelnoucitavanje u registar i ulaz koji ucitava serijske podatke u mikrokontroler.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 14

Page 24: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Adresni pin 1

Adresni pin 2

Adresni pin 3

Adresni pin 4

Adresni pin 5

Adresni pin 6

DIPprekidači

Vcc

(a) Direktno ucitavanje adrese

DIPprekidači

D/Akonvertor

Adresni pin(Analogni ulaz)

Vcc

(b) Ucitavanje adrese putem analognog pina

DIPprekidači

SHIFTregistar

Adresni pin(Serijski izlaz registra)

Vcc

CLOCK pin

DATA IN pin(Paralelni ulaz registra)

(c) Ucitavanje adrese pomocu pomicnog registra

Slika 2.10: Nacini hardverskog adresiranja

Nacin ucitavanja adrese kao analogne vrijednosti, iako koristi samo jedan pin mikrokonrolera,jako je podložan greškama u ocitanju koje su karakteristicne za A/D konverziju. Naime, pojavašuma tokom konverzije može uzrokovati pogrešno ocitanje nižih bita, a samim time i adrese.Stoga jasno je da je opravdano koristiti nacin ucitavanja adrese koji se realizira pomocu pomic-nog registra i tri digitalna pina mikrokontrolera. Na slici 2.11 prikazana je shema sklopa koji re-alizira opisani nacin adresiranja. Kao pomicni registar korišteno je integrisano kolo 74HC165D[16].

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 15

Page 25: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

74HC165D

10k

10k

10k

10k

10k

10k

100n

GND

GND

GND

+5V

+5V IC1

SH/LD1

CLK2

E3

F4

G5

H6

QH 7

QH 9SER10

A11

B12

C13

D14

INH15

R3 R2R4R5 R1R6

C6

SW1789

101112 1

23456

GNDVCC 816

IC1P SERIAL_OUT

ADRCLK

ADRREAD

12

34

56

ON

Slika 2.11: Sklop za ucitavanje adrese uredaja

2.4 Ulazni portovi

2.4.1 Digitalni ulazDigitalni ulaz služi za pretvaranje dovedenog elektricnog signala u signal koji je kompatibilansa ulazom u mikrokontroler. Ulazni digitalni signal može biti strujni ili naponski, izmjenicni iliistosmjerni. U zavisnosti od ulaznog signala postoje razliciti elektronicki krugovi, kojima se tajsignal prevodi u signal pogodan za mikrokontroler. Mikrokontroler ATmega328P baziran je naCMOS tehnologiji i posjeduje digitalne naponske ulaze nivoa 0-5V.

Bitne karakteristike digitalnog ulaza su ulazna otpornost, te brzina reagovanja. Takoder bitnakarakteristika su i minimalne vrijednosti logicke jedinice, te maksimalne vrijednosti logickenule. Osim ovih parametara potrebno je postici zaštitu mikrokontrolera od eventualnih prena-pona i prekostruja na ulaznoj strani.

Shodno tome postoji niz razlicitih shema spajanja, koje su prikazane na slici 2.12, za naponskidigitalni signal. Na slici je prikazana shema prilagodenja ulaza ukoliko se radi o DC signalu(slika 2.12a), pri cemu ne postoji galvansko razdvajanje prema pinu mikrokontrolera. Galvan-skim razdvajanjem se postiže zaštita mikrokontrolera od spoljašnjih utjecaja (slika 2.12b).

Na shemi sa slike 2.12a, otpornici R1, R2 i kondenzator C1 služe kao NF filter kako bi seodstranio eventualni utjecaj viših harmonika ulaznog signala, koji mogu dovesti do pogreške uocitanju digitalnog signala. Otpornici R3 i R4, zajedno sa otpornicima R1 i R2 služe sa sni-žavanje ulaznog istosmjernog napona na napon pogodan za mikrokontroler (5 V). Zener diodaD sprecava pojavu inverznog napona na ulazu u mikrokontroler, te štiti kontroler od pojave na-pona vecih vrijednosti od 5 V. Mnogo efikasnija zaštita mikrokontrolera prikazana je na shemi2.12b, gdje je izvršeno galvansko razdvanje ulaza u sistem i ulaza u mikrokontroler pomocuoptokaplera. Otpornik R3 i kondenzator C služe za stabilizaciju rada optokaplera.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 16

Page 26: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Na slikama 2.12c i 2.12d prikazane su sheme spajanja naizmjenicnog naponskog digitalnogulaza bez i sa galvanskom izolacijom. Kondenzatori i otpornici na shemi 2.12c služe za filtri-ranje i snižavanje napona, dok dioda D1 služi za ispravljanje izmjenicnog napona. Na 2.12d,umjesto poluvalnog ispravljanja korišten je Grecov spoj dioda. Zener dioda D1 služi za sni-ženje napona i ogranicenje ulazne struje optokaplera. Uloga ostalih komponenti je ista kao naprethodnim shemama.

(a) Digitalni istosmjerni naponski ulaz bez izolacije (b) Digitalni istosmjerni naponski ulaz sa izolacijom

(c) Digitalni izmjenicni naponski ulaz bez izolacije

(d) Digitalni izmjenicni naponski ulaz sa izolacijom

Slika 2.12: Prilagodenje naponskih digitalnih ulaza za mikrokontroler

U uvodnom poglavlju navedeno je da industrijski senzori mogu imati NPN i/ili PNP izlaze.Prema tome potrebno je ostvariti mogucnost ocitanja za oba tipa. Prethodno navedeni istos-mjerni ulazi su NPN tipa. Digitalni ulaz PNP tipa može se dobiti dodavanjem otpornika premanapajanju, što je prikazano na slici 2.13. Dodavanje otpornika može se primijeniti i na shemu2.12b.

Osim naponskih ulaza potrebno je prikazati prilagodenje strujnih digitalnih ulaza, koji se cestokoriste u praksi zbog efikasnijeg prenosa signala na vece udaljenosti. Kako mikrokontroler AT-mega328p posjeduje samo naponske ulaze, potrebno je strujni signal pretvoriti u naponski.

Jedna od shema koja omogucava pretvaranje naponskog u strujni signal prikazana je na slici

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 17

Page 27: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Slika 2.13: Prilagodenje naponskih digitalnih ulaza PNP tipa za mikrokontroler

2.14. Pretvaranje se vrši pomocu otpornika spojenog paralelno na ulaz. Proticanjem struje krozovaj otpor stvara se pad napona na njemu koji mikrokontroler mjeri. Takoder, razlikuju se ulazisa i bez galvanske izolacije.

Slika 2.14: Prilagodenje strujnog digitalnog ulaza na mikrokontroler

Na osnovu prethodnih shema formirane su sheme digitalnih ulaza korištene za realizaciju mo-dula. Sheme sklopova za prilagodenje prikazane su na slikama 2.15 i 2.16.

Sheme su identicne kao gore navedene s tim što su NPN, PNP naponski ulaz i strujni ulazspojeni zajedno. Korisnik postavljanjem kratkospojnika na odgovarajuca mjesta odabire konfi-guraciju ulaza, koju želi da koristi.

Slika 2.15: Finalna shema digitalnog ulaza bez izolacije

Kratkim spajanjem pinova 2 i 3, headera JP1 (slika 2.15), digitalni ulaz predstavlja istosmjerninaponski ulaz NPN tipa. Ukoliko se kratko spoje i pinovi headera JP2 dobija se istosmjerni

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 18

Page 28: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

naponski ulaz PNP tipa. Kratkim spajanjem pinova 1 i 2, headera JP1 formira se istosmjernistrujni ulaz.

Slika 2.16: Finalna shema digitalnog ulaza sa izolacijom

Mogucnosti konfiguracije digitalnog ulaza sa izolacijom (slika 2.16) date su u nastavku. Oda-bir naponskog istosmjernog ulaza NPN tipa vrši se nespajanjem headera kratkospojnicima. Zaodabir naponskog istosmjernog ulaza PNP tipa potrebno je kratko spojiti pinove headera JP5,dok je za odabir strujnog digitalnog ulaza potrebno kratko spojiti pinove headera JP6.

2.4.2 Analogni ulazU svrhu korištenja analognih senzora potreban je sklop kojim se njihove vrijednosti na izlazuocitavaju i dalje unutar sistema procesiraju. Za ovu potrebu koriste se analogni ulazi. Analogniulaz pretvara elektricnu analognu velicinu u digitalni signal, pogodan za kompjuter (ili mikro-kontroler).

Mikrokontroler ATmega328p ima ugraden A/D konvertor sa 6 kanala i rezolucijom od 10 bita.A/D konvertor je uredaj koji pretvara analogni elektricni signal u digitalnu rijec. Rezolucijakonverzije analognog u digitalni signal pokazuje sa kojom preciznošcu se signal konvertuje.

U industriji se koriste razliciti analogni senzori, ciji izlazni signali mogu biti strujni ili na-ponski. Opseg promjene izlazne velicine analognih senzora je takoder razlicit od vrste senzora.Ovi opsezi su standardizovani kao što je navedeno u uvodu. Kako korišteni mikrokontroler imanaponski A/D konvertor maksimalnog opsega 0-5 V, potrebno je izvršiti prilagodenje ulaznogsignala na ovaj opseg.

Bitne karakteristike analognih ulaza su ulazna otpornost, rezolucija i brzina konverzije signala.Pored toga, potrebno je zaštititi mikrokontroler od spoljašnih utjecaja.

Jedna od mogucih shema prilagodenja analognog ulaza, pozitivnog napona (najcešce od 0 do 10V) prikazana je na slici 2.17. Otpornik R1 i kondenzator C služe za filtriranje ulaznog napona,kako bi ocitanje vrijednosti bilo preciznije. Operaciono pojacalo OP spojeno je kao naponskosljedilo, koje impedantno razdvaja kontroler od ostatka sistema. Otpornici R2 i R3 spojeni kao

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 19

Page 29: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

naponski djeljitelj smanjuju napon sa opsega 0-10 V na opseg 0-5 V pogodan za kontroler. Ze-ner dioda D štiti kontroler od inverznog napona i direktnog napona vecih vrijednosti.

Slika 2.17: Shema prilagodenja analognog unipolarnog napona za mikrokontroler

Osim analognih signala pozitivne vrijednosti u industrijskim primjenama, potrebno je mjeritibipolarne analogne napone. Kako bi se bipolarni napon prilagodio za mikrokontroler potrebnoje pretvoriti ovaj napon u unipolarni. Jedna od mogucnosti je korištenje sumatora, što je prika-zano na slici. Operaciono pojacalo OP2 zajedno sa otporima R2 i R3, te referentnim naponomna neinvertirajucem ulazu, pomjera ulazni napon, te ga pretvara u unipolarni. Uloga ostalihkomponenti je ranije opisana.

Slika 2.18: Shema prilagodenja analognog bipolarnog napona za mikrokontroler

Cesto se javlja potreba za mjerenjem analognih strujnih signala, iz istih razloga kao i digitalnihstrujnih signala. Prilagodenje strujnog analognog signala moguce je vršiti dodavanjem paralel-nog otpora na ulaz sheme sa slike 2.17. Shema spajanja strujnog analognog ulaza prikazana jena slici 2.19. Ulazna struja stvara pad napona na otporu R1. Kontroler mjeri ovaj napon, cimeje izvršena konverzija strujnog u naponski signal.

Slika 2.19: Shema prilagodenja analognog strujnog signala za mikrokontroler

Na osnovu prikazanih mogucih prilagodenja analognog signala za mikrokontroler, pri realiza-ciji modula formirana je finalna shema. Shema je prikazana na slici 2.20.Primjecuje se da je shema analognog ulaza (slika 2.20) fuzija prethodno navedenih shema. Pos-tavkom kratkospojnika odabire se konfiguracija ulaza. Kratkim spajanjem pinova 2 i 3, headeraJP17, te pinova 2 i 3, headera JP4, formira se shema za prilagodenje unipolarnog analognogulaza. Kratkim spajanjem pinova 2 i 3, headera JP17 i pinova 1 i 2, headera JP4, dobija se

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 20

Page 30: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Slika 2.20: Shema prilagodenja analognog ulaza korištena u realizaciji modula

shema prilagodenja strujnog analognog signala za mikrokontroler. Treca konfiguracija dobijase kratkim spajanjem pinova 1 i 2, te pinova 3 i 4, headera JP17, te pinova 2 i 3, headera JP4.Ova shema služi za mjerenje bipolarnog napona. Operaciono pojacalo IC4B zajedno sa otpor-nicima RA3 i RA4, te referentnim naponom cini sumator. Referentni napon dobija se prekonaponskog djeljitelja (potenciometar PV) i zener diode DV.

2.4.3 Enkoderski ulazRad enkodera ukratko je pojašnjen u uvodnom poglavlju. Enkoderski ulaz sastoji se od tri di-gitalna ulaza, na osnovu kojih se racunaju brzina i pozicija uredaja. Osnovne karakteristikeenkodera su broj impulsa po obrtaju i naposnki nivo izlaznog signala. Zakljucuje se da su ka-rakteristike enkoderskog ulaza frekvencija ulaznog signala i naponski nivo.

Enkoderski ulaz moguce je realizovati spajanjem izlaza enkodera preko naponskog djeljiteljana ulaz mikrokontrolera, sa odgovarajucom zaštitom. Ukoliko se koristi ovakav nacin realiza-cije potrebno je softverski racunati brzinu i poziciju. Ogranicenje ove realizacije zasniva se namaksimalnoj frekvenciji ulaznog signala, koju mikrokontroler može ocitati. Može se poboljšatikorištenjem mikrokontrolera sa vecom frekvencijom ocitanja ulaza.

Drugi nacin realizacije je korištenje hardverskih brojaca, koji rade na velikim frekvencijama(reda 1 MHz). Integralno kolo CD74HC4017 je primjer takvog brojaca [17]. Maksimalna frek-vencija ovog brojaca zavisi od napona napajanja i može biti do 23MHz. Ovaj brojac je 10-bitnisa nekodiranim izlazima, što znaci da je potrebno 10 izlaza spojiti na mikrokontroler (direktnoili preko multipleksera, shift registra i slicnih komponenti).

Za realizaciju modula u ovom radu, korištena je prva, najjednostavnija shema enkoderskogulaza. Shema spajanja prikazana je na slici 2.21.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 21

Page 31: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Slika 2.21: Shema prilagodenja enkoderskog ulaza korištena u realizaciji modula

2.5 Izlazni portovi

2.5.1 Digitalni izlazDigitalni izlaz služi za pretvaranje signala koji generiše logicki dio modula (mikrokontroler) usignal kojim se upravlja nekim uredajem u sistemu. Najcešci uredaji kojima se upravlja su mo-tori, rasvjetna tijela, razlicite vrste pumpi i dr. Digitalni izlazi mogu biti relejni ili tranzistorski,koji mogu biti izvor struje (eng. source, PNP) ili ponor struje (eng. sink, NPN).

Bitne karakteristike digitalnog izlaza su izlazna otpornost, maksimalna izlazna struja, maksi-malni napon na izlazu, te brzina promjene stanja. Kao i kod digitalnog ulaza, i u ovom slucajuje potrebno zaštititi mikrokontroler od spoljnjeg utjecaja.

(a) Relejni izlaz bez izolacije prema kontroleru (b) Relejni izlaz sa izolacijom prema kontroleru

Slika 2.22: Shema spajanja relejnih izlaza na mikrokontroler

Na slici 2.22 prikazane su sheme spajanja relejnih izlaza na mikrokontroler. Na shemi 2.22aprikazano je upravljanje relejem pomocu NPN tranzistora. Dioda D1 služi za zaštitu izlaznogpina mikrokontrolera. Otpornik R1 polarizuje tranzistor, tako da radi u prekidackom režimu.Otpornik R2 se koristi za brže iskljucenje tranzistora. Dioda D2 štiti tranzistor od prenaponakad se on iskljucuje, zbog induktivnog karaktera primara releja. Na shemi 2.22b prikazana jeista funkcionalnost kao i na prethodnoj shemi, samo što se za upravljanje relejem koristi opto-kapler. Na ovaj nacin se postiže bolja zaštita mikrokontrolera, nego u prvom slucaju.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 22

Page 32: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Kao što je vec pomenuto osim relejnih, postoje i tranzistorski izlazi. Oni su prikazani na slici2.23. Na shemi 2.23a prikazan je sink izlaz, što znaci da struja tece od potrošaca prema iz-lazu. U slucaju logicke jedinice izlaz je prespojen na masu preko tranzistora koji je u zasicenju,dok je u slucaju logicke nule izlaz odspojen (stanje visoke impedanse). Na shemi 2.23b pri-kazan je source izlaz, koji je suprotan od sink izlaza, tj. struja tece iz izlaza prema potrošacu.Upravljanje izlaznim tranzistorima T1 vrši se preko tranzistora T. Tranzistori T1 su vecih snagai maksimalnih struja, dok je tranzistor T manjih snaga. Shema za polarizaciju tranzisora T jeista kao i kod tranzistora kod relejnog izlaza. Otpornici R3 i R4 polarizuju tranzistore T1, takoda rade u prekidackom režimu. Diode D2 štite tranzistore T1 od prenapona, ukoliko je izlaznoopterecenje induktivnog karaktera.

(a) Tranzistorski NPN izlaz (b) Tranzistorski PNP izlaz

Slika 2.23: Shema spajanja tranzistorskih izlaza na mikrokontroler

Ukoliko se kao izlazni tranzistor koristi MOSFET, shema spajanja je potpuno ista, s tim štootpornik R4 može biti kratko spojen.

Osim navedenih izlaza postoji i izlaz koji daje naponski izlazni signal. On je mješavina sink isource tranzistorskih izlaza, koji rade komplementarno. Shema spajanja je prikazana na slici2.24. Tranzistori T1 i T2 nikad ne vode istovremeno. Na izlazu imamo približno napon VCC zaslucaj logicke jedinice, te približno 0 za slucaj logicke nule. Uloge dioda i otpornika su ranijenavedene.

Slika 2.24: Shema spajanja naponskog digitalnog izlaza sa komplementarnim tranzistorima

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 23

Page 33: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

(a) Tranzistorski NPN izlaz (b) Tranzistorski PNP izlaz

Slika 2.25: Shema spajanja tranzistorskih izlaza na mikrokontroler korištena u realizaciji modula

Osim naponskih postoje i strujni izlazi. Shema spajanja je dosta slicna kao i kod tranzistor-skih izlaza, samo u ovom slucaju je potrebno da tranzistori rade u linearnom režimu i strujuodržavaju konstantnom za slucaj logicke jedinice. Zbog toga se dodaje emiterski otpornik. Ta-koder se razlikuju sink i source strujni izlaz.

Na osnovu navedenih mogucnosti formirane su sheme korištene u realizaciji modula. Sheme suprikazane na slikama 2.25 i 2.26.

Sheme tranzistorskih izlaza (slika 2.25) su dosta slicne navedenim. Razlika je u nacinu po-larizacije upravljackog tranzistora T1 (T3). U realizaciji su dodani otpornik i kondenzator.Otpornici i kondenzator u bazi upravljackog tranzistora služe za ubrzanje rada tranzistora. Kon-denzator CO1 (CP1) i otpornik RO3 (RP3) spojeni su kao diferencijator. Pri promjeni signala naizlazu iz kontrolera dolazi do naglih skokova napona u bazi upravljackog tranzistora, a samimtim i brže promjene stanja. Otpornik RO1 (RP1) služi za postavljanje radne tacke tranzistora,kako bi radio u prekidackom režimu, te pražnjenje kondenzatora ukoliko dode do odspajanjaulaza u prikazano kolo.

Shema spajanja relejnog izlaza (slika 2.26) je identicna kao gore navedena. Medutim u re-alizaciji je korišten relej sa dva izlaza (NC i NO), pa je shodno tome dodan header, pomocukojeg se vrši izbor izlaza, koji ce se koristiti.

2.5.2 Analogni izlazU industrijskim postrojenjima cesto je potrebno odredenim uredajima proslijediti neku refer-netnu vrijednost elektricnog signala (napona ili struje), te na taj nacin upravljati tim uredajima.Za te potrebe koriste se analogni izlazi. Cilj analognih izlaza je konverzija digitalnog u ana-logni signal pomocu odgovarajucih elektronickih komponenti. Na izlazu iz mikrokontrolera jedigitalni signal, koji je potrebno prilagoditi.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 24

Page 34: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Slika 2.26: Shema spajanja relejnog izlaza korištena u realizaciji modula

Bitne karakteristike analognih izlaza su tacnost, rezolucija, te brzina promjene izlaza. Porednavedenih karakteristika, za naponske izlaze bitna je velicina izlazne struje, te izlazna otpor-nost.

Postoji više nacina konverzije digitalnog (signala na izlazu mikrokontrolera) u analogni signal.Jedan od nacina je korištenje integralnih kola za D/A konverziju. Primjer ovakvog integralnogkola je AD5750 [18], koji se upravlja SPI komunikacijom. AD5750 posjeduje naponski i strujniizlazni kanal, rezolucije 16 bita. Naponski nivoi izlaznih signala su standardni.

Drugi nacin realizacije analognog izlaza je korištenje otpornickih struktura i operacionog poja-cala (DAC sa težinskom mrežom i R2R DAC). Za postizanje željenih nivoa signala potrebno jedodatno koristiti pojacavace, sumatore i slicne module. Nedostatak ovih pretvaraca je korište-nje jednog izlaza mikrokontrolera za 1 bit u konverziji, što znaci da je za rezoluciju od 16 bitapotrebno 16 izlaza mikrokontrolera.

Treci i najjednostavniji nacin realizacije analognog izlaza je korištenje PWM signala na iz-lazu mikrokontrolera i NF-filtera. Rad ovog sklopa bazira se na izdvajanju istosmjernog signalaiz PWM signala, tj. prigušenje njegovih izmjenicnih komponenti. Na taj nacin dobija se vrijed-nost analognog signala proporcijalna duty cycle-u PWM signala. Jedan od nacina spajanja overealizacije prikazan je na slici 2.27.

Slika 2.27: Shema spajanja naponskog analognog izlaza

Otpornici i kondenzatori na ulazu predstavljaju NF filter. Operaciono pojacalo OP1 sa dva ot-pornika (R3, R4) formira pojacavac kojim se prilagodava nivo izlaznog signala. Operaciono

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 25

Page 35: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

pojacalo na izlazu, spojeno kao naponsko sljedilo, služi za impedantno razdvajanje, te smanje-nje izlaznog otpora. Rezolucija ovog izlaza jednaka je rezoluciji PWM signala mikrokontrolera.Nedostatak ove realizacije je istovremeno zadovoljenje brzine promjene izlaza i izlazne greške.Brzina promjene se smanjuje smanjenjem vremenske konstante NF filtera, dok se izlazna greškasmanjuje povecanjem vremenske konstante filtera. Karakteristike je moguce poboljšati poveca-njem frekvencije PWM-a, što je ograniceno hardverom mikrokontrolera.

Za realizaciju modula u ovom radu korištena je shema spajanja analognog izlaza kao na slici2.27

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 26

Page 36: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

2.6 Dizajn štampane plocice - PCBJedan od bitnijih dijelova realizacije hardverskog dijela modula je dizajn štampanih plocica- PCB (eng. Printed Circuit Board). U okviru ovog rada dizajn modula je rastavljen na tridijela. Razlog zbog kojeg je to uradeno je što se vertikalnim povezivanjem manjih plocicapostiže veca iskoristivost prostora. Takoder postoji manja vjerovatnoca da dode do greške priprojektovanju plocica, te ukoliko se pojavi greška na jednom dijelu, potrebno je samo taj dioispraviti. Osim navedenog, omogucava se povezivanje sa drugim plocicama, razlicitog dizajna,ali istih funkcija. Prvi dio modula cini mikrokontroler sa osnovnom konfiguracijom, drugi dioobuhvata komunikaciju i adresiranje uredaja, dok treci obuhvata ulazne i izlazne portove. Naosnovu ova tri dijela projektovane su i štampane plocice. Povezivanje plocica vrši se pomocuheadera (izvedenih pinova).

2.6.1 Projektovanje štampane plocice u programskom paketu EagleNa slici 2.28 je prikazana shema osnovne konfiguracije mikrokontrolera sa izvedenim ulaznimi izlaznim pinovima, te pinovima za komunikaciju i adresiranje. Dizajn štampane plocice mi-krokontrolera je prikazan na slici 2.29.

Slika 2.28: Elektricna shema spajanja mikrokontrolera sa breakout pinovima

Drugi dio modula sastoji se od dijela za adresiranje, te dijela za komunikaciju. Elektricnashema spajanja je data na slici 2.30. Štampana plocica prikazana je na slici 2.31. Povezivanjeizmedu plocice za adresiranje i komunikaciju i plocice sa kontrolerom vrši se preko 12 headera,rasporedenih u cetiri ugla po 3, kao što se vidi na štampanoj plocici.

Treci dio modula koji obuhvata ulazne i izlazne portove predstavlja bazu uredaja. Na nju sedodaju prethodno navedeni dijelovi. Elektricna shema ovog dijela prikazana je na slici 2.32.Štampana plocica prikazana je na slici 2.33.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 27

Page 37: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

(a) Gornji sloj (b) Donji sloj

Slika 2.29: Izgled štampane ploce mikrokontrolerskog dijela

Slika 2.30: Elektricna shema spajanja dijela za komunikaciju i adresiranje

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 28

Page 38: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

(a) Gornji sloj (b) Donji sloj

Slika 2.31: Izgled štampane ploce dijela za komunikaciju i adresiranje

Slika 2.32: Elektricna shema prilagodenja industrijskih ulaza i izlaza na mikrokontroler

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 29

Page 39: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

(a) Gornji sloj (b) Donji sloj

Slika 2.33: Izgled štampane ploce dijela sa ulazima i izlazima

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 30

Page 40: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

2.6.2 Raspored ulaza i izlaza na štampanoj plociciU ovom dijelu rada prikazan je raspored karakteristicnih dijelova na štampanoj plocici. Na slici2.34 su prikazani položaji ulaza i izlaza, te headeri, koji služe za konfiguraciju uredaja, na štam-panoj plocici. Takoder na slici je prikazana pozicija potenciometra PV, koji služi za podešavanjereferentnog napona za bipolarne analogne ulaze (objašnjeno u dijelu 2.4.2).

Slika 2.34: Raspored ulaza, izlaza i konfiguracijskih headera

U tabeli 2.1 prikazane su mogucnosti odabira konfiguracije digitalnih ulaza bez izolacije (DI0,DI1), odnosno postavka headera JP1 i JP2.

Funkcija Postavka kratkospojnikaNaponski NPN ulaz 1-2Naponski PNP ulaz 1-2, 4-5

Strujni ulaz 2-3

Tabela 2.1: Mogucnosti konfiguracije digitalnih ulaza bez izolacije

U tabeli 2.2 prikazane su mogucnosti odabira konfiguracije digitalnih ulaza sa izolacijom (DI2,DI3), odnosno postavka headera JP3 i JP4.

Funkcija Postavka kratkospojnikaNaponski NPN ulaz -Naponski PNP ulaz 1-2

Strujni ulaz 3-4

Tabela 2.2: Mogucnosti konfiguracije digitalnih ulaza sa izolacijom

U tabeli 2.3 prikazane su mogucnosti odabira konfiguracije analognih ulaza, odnosno postavkaheadera JP5 i JP6.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 31

Page 41: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Funkcija Postavka kratkospojnikaNaponski analogni ulaz 0...10 V 1-2, 5-6

Naponski analogni ulaz -10...10 V 1-2, 4-5, 6-7Strujni analogni ulaz 0...20 mA 2-3, 5-6

Tabela 2.3: Mogucnosti konfiguracije analognih ulaza

U tabeli 2.4 prikazane su mogucnosti odabira konfiguracije relejnih izlaza, odnosno postavkaheadera JP7 i JP8.

Funkcija Postavka kratkospojnikaMirni kontakt (NC) 2-3Radni kontakt (NO) 1-2

Tabela 2.4: Mogucnosti konfiguracije relejnih izlaza

U tabeli 2.5 su prikazane oznake, odnosno adrese ulaza i izlaza, zajedno sa ulogama i zna-kovima u poruci, koja se šalje prilikom komunikacije.

Oznaka Uloga PorukaDI0 Digitalni ulaz bez izolacije ’a’DI1 Digitalni ulaz bez izolacije ’b’DI2 Digitalni ulaz sa izolacijom ’c’DI3 Digitalni ulaz sa izolacijom ’d’AI0 Analogni ulaz ’e’AI1 Analogni ulaz ’f’TO0 Tranzistorski izlaz ’p’TO1 Tranzistorski izlaz ’q’R00

Relejni izlaz ’r’R01R10

Relejni izlaz ’s’R11AO Analogni izlaz ’t’

Tabela 2.5: Oznake ulaza i izlaza IO modula

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 32

Page 42: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

2.6.3 Fizicka realizacija štampanih plocicaNa slici 2.35 je prikazan izgled štampane plocice nakon izrade. Štampane plocice svih cjelinasu objedinjene u jednu. Prije lemljenja komponenti plocice su rastavljenje. Izgled štampanihplocica nakon lemljenja prikazan je na slici 2.36. Na slikama 2.37 i 2.38 prikazan je izgledIO modula, nakon povezivanje sva tri dijela u jednu cjelinu, prije i poslije pakovanja.

(a) Gornja strana (b) Donja strana

Slika 2.35: Izgled štampanih plocica IO modula, nakon izrade

(a) Dio za komunikaciju i adresi-ranje (b) Dio sa ulaznim i izlaznim portovima (c) Dio sa mikrokontrolerom

Slika 2.36: Izgled štampanih plocica IO modula, nakon lemljenja

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 33

Page 43: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Hardverska komponenta IO modula

Slika 2.37: Izgled IO modula bez kucišta

Slika 2.38: Izgled IO modula sa kucištem

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 34

Page 44: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Poglavlje 3

Softverska komponenta IO modula

U ovom poglavlju bit ce opisana softverska realizacija sistema, što se odnosi na programira-nje mikrokontrolera. Cilj softverskog dijela je omoguciti da IO modul na osnovu naredbe kojupošalje racunar, izvrši odgovarajucu funkciju, te kao rezultat vrati povratnu poruku. Dijagramtoka je prikazan na slici 3.1.

Slika 3.1: Dijagram toka softvera mikrokontrolera

Dijagram toka pokazuje na koji nacin funkcioniše uredaj. Pri pokretanju uredaja, njegovi dije-lovi se inicijaliziraju. Nakon toga uredaj ulazi u petlju, u kojoj osluškuje kanale (ocitava stanjaulaza). Kada racunar pošalje naredbu, softver izlazi iz petlje, izvršava odgovarajucu naredbu,a zatim šalje odgovor nazad prema racunaru. Ukoliko se detektuje greška u bilo kojem stanju,uredaj javlja racunaru da je došlo do pogreške.

3.1 Softverske funkcionalnostiU ovom dijelu rada bit ce navedene funkcionalnosti uredaja, koje su softverski implementirane.Na postojeci hardver moguce je implementirani dodatne funkcionalnosti, u zavisnosti od poten-cijalne primjene sistema.

Implementirane funkcionalnosti su sljedece:

∙ Ocitanje zadanih ulaza na zahtjev,

∙ Postavljanje zadanih izlaza na zahtjev,

∙ Ocitanje zadanih ulaza n puta, periodicno periodom T,

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 35

Page 45: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Softverska komponenta IO modula

∙ Ocitanje ulaza na promjenu stanja,

∙ Postavljanje jednog izlaza,

∙ Ocitanje jednog ulaza.

Ocitanje zadanih ulaza na zahtjev sastoji se u slanju konfiguracijske poruke kojom se oda-biru ulazi cija se vrijednost ocitava, te poruci za trigerovanje ulaza, kojom se ocitane vrijednostišalju nazad racunaru.

Postavljanje zadanih izlaza na zahtjev je slicno ocitanju zadanih ulaza na zahtjev. Sastojise od konfiguracijske poruke, te poruke za trigerovanje, tj. postavljanje izlaza na zadane vrijed-nosti.

Ocitanje zadanih ulaza n puta, periodicno periodom T je funkcionalnost kojom se vrijed-nosti konfigurisanih ulaza, ocitavaju periodicno zadanim periodom T, a zatim šalju racunaru.Ovaj postupak se ponavlja n puta, koji racunar postavlja.

Ocitanje ulaza na promjenu stanja, ili tzv. prekidni mod je funkcionalnost kojom se pratipromjena stanja konfigurisanih ulaza. Ukoliko dode do promjene stanja bilo kojeg konfigurisa-nog ulaza uredaj šalje poruku prema racunaru.

Postavljanje jednog izlaza omogucava korisniku da direktno postavi izlaz, bez potrebe za kon-figuracijom i trigerovanjem.

Ocitanje jednog ulaza omogucava ocitanje jednog ulaza, bez konfiguracije i trigera.

3.2 Razvijeni komunikacijski protokolKod komunikacije je bitno definisati format poruke, tj. paketa, koji se šalje. Ocito je da svakipaket treba da sadrži adresu uredaja kojem se šalje. Osim toga paket treba da sadrži podatak opocetku i kraju poruke, te samu informaciju koju korisnik šalje. Pored navedenog, ponekad jedobro slati i pomocne podatke, kojima smanjujemo mogucnost greške (kao što je bit pariteta).

3.2.1 Format porukeFormat poruke je isti u oba smjera, od racunara ka uredaju i obratno. Poruka se sastoji od dijelaza start, funkciju, parametre fukcije, te dijela za kraj. Zbog razlicitosti funkcija i parametara,dužina poruke nije konstantna. Format poruke prikazan je u tabeli 3.1.

Start(2 bajta)

Adresa(1 bajt)

Naredba(1 bajt)

Parametri(x bajta)

Kraj(3 bajta)

’#’ ’#’ 0-255 ’A’-’J’ - CR CR NL

Tabela 3.1: Format poruke korišten za realizaciju komunikacije uredaja

Kao što je prikazano, za start se koriste dva znaka ’#’, jer se rijetko pojavljuju u poruci kaoparametri. Takoder za kraj poruke koriste se tri bajta, jer postoji mogucnost da se u parametrimapošalju dva znaka jedan iza drugog, koji mogu oznaciti kraj poruke, te ce na taj nacin doci dopogreške u citanju.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 36

Page 46: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Softverska komponenta IO modula

3.2.2 Implementirane porukeU narednom dijelu navedene su implementirane poruke na uredaju, zajedno sa njihovim odgo-vorima.

Inicijalizacija

Poruka inicijalizacije služi za oznacavanje koji ulazi, odnosno izlazi ce biti korišteni tokomrada. Naredba za inicijalizaciju je znak ’A’. Kao parametri poruke šalju se bajti koji oznacavajuulaze i izlaze, dok se kod tranzistorskih izlaza dodatno šalje odabir režima rada (digitalni iliPWM izlaz). Oznake ulaza i izlaza date su u tabeli 3.2. Odabir PWM tranzistorskog izlaza vršise slanjem bajta ’1’ uz oznaku tranzistorskog izlaza, dok se slanjem bajta ’0’ odabire digitalnitranzistorski izlaz.

Oznaka Uloga PorukaDI0 Digitalni ulaz bez izolacije ’a’DI1 Digitalni ulaz bez izolacije ’b’DI2 Digitalni ulaz sa izolacijom ’c’DI3 Digitalni ulaz sa izolacijom ’d’AI0 Analogni ulaz ’e’AI1 Analogni ulaz ’f’TO0 Tranzistorski izlaz ’p’TO1 Tranzistorski izlaz ’q’R00

Relejni izlaz ’r’R01R10

Relejni izlaz ’s’R11AO Analogni izlaz ’t’

Tabela 3.2: Oznake ulaza i izlaza IO modula

Kao povratnu poruku uredaj vraca primljenu poruku ukoliko je inicijalizacija uspješna, odnosnoporuku greške ukoliko inicijalizacija nije uspješna.

Konfiguracija ulaza

Poruka za konfiguraciju ulaza definiše ulaze, ciju ce vrijednost modul vracati racunaru. Znakkoji definiše ovu funkcionalnost je ’B’. Parametri poruke su znakovi koji predstavljaju ulaze,koji se žele ocitati.

Uredaj kao povratnu poruku vraca primljenu poruku, ukoliko je uspješno izvršena konfigu-racija, dok u suprotnom vraca poruku greške. Ukoliko je korisnik pokušao konfigurisati ulazkoji nije inicijaliziran, uredaj ce takoder vratiti poruku greške.

Trigerovanje ulaza

Trigerovanje ulaza služi za ocitanje vrijedosti ulaza koji su konfigurisani. Znak za trigerovanjeulaza je ’C’. Ova poruka nema parametara.

Kao povratnu poruku uredaj vraca vrijednosti ulaza, redoslijedom kojim su konfigurisani. Za

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 37

Page 47: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Softverska komponenta IO modula

digitalne ulaze znak ’0’ oznacava logicku nulu, a znak ’1’ logicku jedinicu. Kao vrijednost ana-lognih ulaza šalju se dva bajta, koji formiraju desetobitnu analognu vrijednost. Ukoliko dodedo greške, uredaj vraca poruku greške.

Konfiguracija izlaza

Poruka za konfiguraciju izlaza služi za postavljanje vrijedosti izlaza, koji ce se promijeniti po-rukom za trigerovanje izlaza. Znak za konfiguraciju izlaza je ’D’. U poruci se šalju znakovi kojioznacavaju izlaze, iza kojih se šalje vrijednost izlaza. U slucaju da se radi o relejnim ili digital-nim tranzistorskim izlazima šalje se ’0’ ili ’1’ (iskljucen, odnosno ukljucen relej). Ukoliko seradi o analognom izlazu šalje se jedan bajt koji predstavlja vrijednost izlaza skaliranu na opsegod 0 do 10 V. Ukoliko je slucaj o tranzistorskom PWM izlazu, bajt koji se šalje kao parametarpredstavlja vrijednost duty cycle.

Kao povratnu poruku uredaj šalje primljenu poruku, ukoliko je uspješno izvršena konfigura-cija. U suprotnom se šalje poruka greške. Ukoliko je korisnik pokušao konfigurisati izlaz kojinije prethodno inicijaliziran, uredaj ce prijaviti grešku.

Trigerovanje izlaza

Trigerovanje izlaza služi za postavljanje vrijedosti izlaza na konfigurisane vrijednosti. Znak zatrigerovanje izlaza je ’E’. Ova poruka nema parametara.

Kao povratnu poruku uredaj vraca primljenu poruku, ukoliko je uspješno izvršeno trigerova-nje. Ukoliko dode do pogreške, uredaj vraca poruku greške.

Ocitanje jednog ulaza

Poruka za ocitanje jednog ulaza služi za ocitanje nekog od ulaza. Znak za ovu funkcionalnostje ’F’. Kao parametar šalje se bajt koji oznacava ulaz cija se vrijednost želi ocitati.

Ukoliko je ocitanje uspješno uredaj vraca vrijednost traženog ulaza, u suprotnom vraca porukugreške. Kao i kod konfiguracije ulaza, i u ovom slucaju ukoliko se pokuša ocitati vrijednostulaza koji prethodno nije inicijalizran, uredaj ce vratiti poruku greške.

Postavljanje jednog izlaza

Postavljanje jednog izlaza je poruka ciji je znak ’G’. Ova poruka služi za postavljanje jednog odizlaza na zadanu vrijednost, tako što se kao parametri šalju znak željenog izlaza, te vrijednostna koju se postavlja.

Uredaj kao povratnu poruku vraca primljenu poruku. Ukoliko dode do pogreške, vraca se po-ruka greške.

Trigerovanje citanja i pisanja istovremeno

Trigerovanje citanja i pisanja istovremeno je poruka koja trigeruje i citanje i pisanje, tj. ima istufunkciju kao i prethodno navedene poruke za trigerovanje. Znak za ovu poruku je ’H’.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 38

Page 48: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Softverska komponenta IO modula

Strobe

Poruka strobe izvršava funkcionalnost citanja ulaza n puta periodicno periodom T. Znak zaporuku je ’I’. Kao parametar šalje se broj citanja n, te broj koji pomnožen sa 16 ms daje periodT.

Prekidni mod

Poruka za prekidni mod ima znak ’J’, i izvršava aktivaciju ocitanja ulaza na promjenu stanja.Ova poruka ima jedan parametar (’0’ za deaktivaciju, ’1’ za aktivaciju).

Povratna poruka je ista kao i primljena. Ukoliko dode do promjene stanja jednog od ulaza,koji je prethodno konfigurisan, uredaj šalje vrijednosti svih konfigurisanih ulaza.

Poruka greške

Poruka greške formira se tako što se kao prvi parametar šalje znak ’?’, a zatim znak koji pred-stavlja kod greške. U tabeli 3.3 su data znacenja kodova greške.

Znak Znacenje’I’ Pogrešan znak. Nemoguce procesirati poruku.’O’ Konfigurisani ulaz nije inicijaliziran.’P’ Konfigurisani izlaz nije inicijaliziran.’Q’ Pogrešna dužina poruke

Tabela 3.3: Kodovi poruke greške

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 39

Page 49: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Poglavlje 4

Testiranje rada modula

U ovom dijelu rada bit ce testiran rad modula. Testiranje se sastoji od testiranja komunikacije, teelektricnih prilika modula, za unaprijed definisani scenario. Slanje podataka od strane racunaravrši se pomocu programskog paketa Matlab. Definisan je scenario koji se sastoji u sljedecem:

∙ Inicijalizacija digitalnih ulaza DI0 i DI2, analognog ulaza AI0, relejnog izlaza R0, tran-zistorskog PWM izlaza TO0 i analognog izlaza,

∙ Konfiguracija ulaza AI1,

∙ Konfiguracija izlaza TO1,

∙ Konfiguracija ulaza DI2 i AI0,

∙ Trigerovanje ulaza,

∙ Konfiguracija izlaza R0 i A0,

∙ Trigerovanje izlaza,

∙ Ocitanje vrijednosti DI0 ulaza,

∙ Postavljanje tranzistorskog izlaza TO1,

∙ Aktivacija Strobe-a 10 puta, svakih 80 ms,

∙ Aktivacija prekidnog moda za zadatu konfiguraciju.

U tabeli 4.1 prikazane su poruke opisanog scenarija. Sa znakom ’X’ u porukama oznacena jeadresa uredaja na kojem je vršeno testiranje. Odabrana je adresa 215, pri cemu su položaji dipprekidaca postavljeni na "010111" (23), na što se dodaje 192, jer se radi o IO modulu.

Kod ocitanja vrijednosti analognog ulaza koriste se 2 bajta, pri cemu se koriste zadnja dvabita prvog bajta i citav drugi bajt, što je ukupno 10 bita. Ukoliko je analogni ulaz konfigu-risan za korištenje unipolarnog naponskog nivoa 0...10 V, onda je vrijednost napona jednaka(256a+b)/1024*10 V. Oznaka a je za prvi, a oznaka b za drugi bajt analognog ulaza.

Kod postavljanja vrijednosti analognog izlaza pretvorba se vrši na slican nacin. Vrijednostnapona na izlazu je c/255 * 10 V, gdje oznaka c oznacava bajt kojim se vrijednost izlaza pos-tavlja.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 40

Page 50: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Testiranje rada modula

Racunanje broja slanja ulaznih vrijednosti kod funkcije za trigerovanje strobe-a vrši se dodava-njem jedninice na vrijednost poslanog bajta. Period slanja podataka se racuna kao 16* (d +1)ms, gdje je d oznaka za bajt kojim se zadaje period strobe-a.

Red. broj Odlazna poruka Dolazna poruka1. "##XAacep1rt" "##XAacep1rt"2. "##XBf" "##XB?O"3. "##XDq2" "##XD?P"4. "##XBce" "##XBce"5. "##XC" ["##XC","1", 0, 171]6. "##XC" ["##XC","1", 2, 48]7. "##XC" ["##XC","0", 3, 191]8. "##XDr1td" "##XDr1td"9. "##XE" "##XE"

10. "##XDr1tÿ" "##XDr1tÿ"11. "##XE" "##XE"12. "##XFa" "##XF0"13. "##XFa" "##XF1"14. "##XGpP" "##XGpP"15. ["##XI", 9,4] "##XI"16. "##XJ1" "##XJ"

Tabela 4.1: Odgovori uredaja na poslane poruke

U nastavku su opisana znacenja poruka u koracima prikazanim u tabeli.

U prvom koraku poslana je poruka za inicijalizaciju ulaznih i izlaznih portova. Na osnovu sa-držaja poruke zakljucuje se da je pokušana inicijalizacija digitalnih ulaza DI0 i DI2, analognogulaza AI0, tranzistorskog izlaza TO0 (za korištenje PWM-a), relejnog izlaza R0, te analognogizlaza AO. Uredaj je vratio istu poruku, što znaci da je inicijalizacija uspješno izvršena.

U drugom i trecem koraku poslane su poruke za konfiguraciju analognog ulaza AI1, odnosnotranzistorskog izlaza TO1. Iz sadržaja dolaznih poruke primijecuje se da je došlo do greške prikonfiguraciji, jer analogni ulaz AI1, odnosno tranzistorski izlaz TO1 nisu prethodno inicijalizi-rani.

U cetvrtom koraku poslana je poruka za konfiguraciju ulaza DI2, te AI0. Uredaj je vratioistu poruku, pa se zakljucuje da je konfiguracija uspješno izvršena.

U naredna tri koraka poslane su poruke za trigerovanje ulaza, za razlicite vrijednosti naponana ulazima. Ulazi DI2 i AI0 su kratko spojeni. Prilikom prvog trigerovanja vrijednost naponana ulazima je bila 1.7 V. Na osnovu sadržaja dolazne poruke ocitava se vrijednost logicke jedi-nice na ulazu DI2 (obrnuta logika), te napon od 1.67 V na analognom ulazu (formula navedenaranije). Kod drugog trigerovanja napon na ulazima je imao vrijednost od 5.52 V. Dešifrovanjemdolazne poruke dobija se vrijednost logicke jedinice na ulazu DI2, te vrijednost napona od 5.47V. Trecim trigerovanjem dobijena je vrijednost logicke nule na ulazu DI2, te vrijednost napona9.36 V na ulazu AI0. Vrijednost napona mjerena voltmetrom iznosila je 9.46 V.

U osmom koraku poslana je poruka za konfiguraciju izlaza. Poruka sadrži konfiguraciju za

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 41

Page 51: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Testiranje rada modula

ukljucenje relejnog izlaza, te postavljanje analognog izlaza na vrijednost 3.92 V (znak ’d’ imavrijednost 100, formula za racunanje navedena ranije). Uredaj je vratio istu poruku, što znacida je konfiguracija uspješno izvršena.

U sljedecem koraku poslana je poruka za trigerovanje izlaza. Uredaj je vratio istu poruku,što znaci da je prethodnu konfiguraciju izlaza uspješno primijenio. Relej se ukljucio, dok je naanalognom izlazu voltmetrom izmjeren napon vrijednosti 3.95 V. Napon ripla izlaznog naponaje izmjeren na osciloskopu i iznosi 40 mVpp (od vrha do vrha, eng. peek to peek).

U koracima deset i jedanaest poslane su takoder poruka za konfiguraciju izlaza, te poruka za tri-gerovanje izlaza. Konfiguracijom je relej ostavljen ukljucen, dok je vrijednost analognog izlazapromijenjena na 10 V. Voltmetrom je na analognom izlazu izmjeren napon od 10.04 V, greške40 mVpp.

U naredna dva koraka poslana je poruka za citanje jednog ulaza (DI2). Uredaj je u prvomslucaju, vratio vrijednost logicke nule, dok je voltmetrom izmjerena vrijednost napona 6.63 V.U drugom slucaju vracena je vrijednost logicke jedinice, dok je vrijednost mjerenog napona13.17 V.

U cetrnaestom koraku poslana je poruka za postavljanje tranzistorskog izlaza TO0 na vrijed-nost popunjenosti PWM-a od 31.4%. Osciloskopom je izmjerena približno ista vrijednost.

U koraku petnaest poslana je poruka za trigerovanje strobe-a sa postavkama n=10, te T=80ms. Uredaj je vratio 10 poruka formata kao kod trigerovanja ulaza.

Zadnja funkcija koja je testirana je trigerovanje prekidnog moda. Nakon postavke ove funk-cije, promjenom vrijednosti napona na ulazu DI2, uredaj je slao vrijednosti svih konfigurisanihulaza (DI2, AI0).

Na osnovu predloženog testiranja, zakljucuje se da su dobijeni rezultati u skladu sa ocekiva-nim. Komunikacija izmedu racunara i IO modula radi prema zadatom scenariju. Ocitanja ulazai postavljanje izlaza su u skladu sa ocekivanim. Kod analognih ulaza i analognog izlaza, primje-cuje se odstupanje, uzrokovano nepreciznošcu voltmetra, kao i nepreciznošcu samog modula.Odstupanja su u dozvoljenim granicama.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 42

Page 52: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Poglavlje 5

Zakljucak

U ovom radu prezentiran je jedan od nacina realizacije IO modula. Sa ekonomskog aspekta, uporedenju sa komercijalnim PLC-ovima, ponudeno rješenje je neuporedivo jeftinije. Medutimsa aspekta tehnickih mogucnosti, realizovani uredaj je dosta ogranicen u odnosu na komerci-jalna rješenja. Ovo se ogleda u broju ulaza i izlaza, njihovim elektricnim karakteristikama, tebrzini rada. Jedan od vecih nedostataka realizovanog modula je nestandardno napajanje. Na-ime, potrebna su 4 naponska nivoa za pravilan rad uredaja.

Smjernice za buduci radZa realizaciju modula u ovom radu, kao upravljacka jedinica korišten je mikrokontroler AtmelATmega328p. Povecanje mogucnosti i poboljšanje karakteristika realizovanog modula moguceje izvršiti korištenjem mikrokontrolera boljih karakteristika. Ove karakteristike se ogledajuuglavnom u brzini rada, te broju ulaznih i izlaznih portova, kao i dodatnim hardverskim modu-lima implementiranim na kontroleru.

Za potrebe komunikacije realizovanog modula korišten je RS485 standard, dok je protokolpravljen od strane autora. U buducem radu bi bilo dobro koristiti neki od standardizovanihprotokola, kako bi se uredaj mogao povezati na ostale (komercijalne) uredaje bez potrebnihprilagodenja.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 43

Page 53: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Prilozi

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 44

Page 54: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Prilog A

Teoretski aspekti komunikacije

A.1 RS485RS485 (puni naziv TIA/EIA-485) je komunikacijski standard koji definiše elektricne karakte-ristike predajnika i prijemnika u okviru serijske komunikacije unutar sistema. Pri tome se nedotice komunikacijskog protokola koji sistem koristi, dakle zadržava se na fizickom nivou.

RS485 se zasniva na diferencijalnom nacinu rada. Podaci izmedu korisnika prenose se prekodvije linije (A i B, slika A.1). Predajnik generiše signale na linijama A i B na osnovu digitalnogpodatka na ulazu. Ukoliko je ulaz logicka "1", na izlazu iz predajnika vrijedi VA0 > VB0, dokza logicku "0" vrijedi suprotno. Ovakav nacin rada smanjuje utjecaj smetnji na podatke koji seprenose, pa se na taj nacin smanjuje vjerovatnoca za nastankom greške prilikom prenosa poda-taka. Kako se vodovi A i B nalaze u istom okruženju, to na njih djeluju isti šumovi (indukovanielektromagnetni valovi). Zbog toga razlika izmedu napona VA0 i VB0 ostaje ista, tj. ne dolazi dogreške pri prenosu.

Ulaz

A

B

VB0

VA0

V0

Slika A.1: Diferencijalni naponi RS485 predajnika

A.1.1 Terminacija prenosnih vodovaUzrok ceste pojave greške pri prenosu podataka je refleksija napona na krajevima vodova. Ovose najcešce dešava na vodovima dužina preko 50 m, pri frekvenciji signala oko 100 kHz. Kakobi se smanjio utjecaj refleksije napona, vodove je potrebno zatvoriti (terminirati) otpornicima.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 45

Page 55: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Teoretski aspekti komunikacije

Postoji više razlicitih nacina kako implementirati terminaciju [19]. Na slici A.2 je prikazanonekoliko tipicnih konfiguracija [14].

Primopredajnik Primopredajnik

PrimopredajnikPrimopredajnik

(a)

Predajnik

Prijemnik Prijemnik

Prijemnik

(b)

Primopredajnik Primopredajnik

PrimopredajnikPrimopredajnik

(c)

Predajnik Prijemnik

(d)

Slika A.2: Terminacija vodova

∙ Bez zatvaranja (slika A.2a) - mala cijena, mala snaga i jednostavnost, manje brzine pre-nosa podataka, manja udaljenost,

∙ Zatvaranje otpornikom sa jedne strane voda (slika A.2b) - odlican pristup kada se u mrežinalazi jedan predajnik, potrebno zatvoriti kraj voda koji se nalazi kod prijemnika, vrijed-nost otpornika jednaka vrijednosti karakteristicne impedanse voda (najcešce 120Ω),

∙ Dvostrano zatvaranje otpornikom (slika A.2c) - predajnik se može nalaziti bilo gdje umreži, odlikuje ga veca potrošnja, najcešce u primjeni,

∙ AC terminacija (slika A.2d) - kondenzator se uvodi zbog eliminacije DC komponente(manja potrošnja), ogranicava brzinu slanja podataka te dužinu vodova, rijetko se koristi.

Pored zatvaranja vodova koji se koriste u komunikaciji, potrebno je zatvoriti i vodove, koji sene koriste, a nalaze se unutar kabla. Ukoliko se ostave otvoreni, u njima se indukuje napon i nataj nacin uticu na ostale vodove. Spajanjem krajeva nekorištenih vodova na masu, njihov utjecajse smanjuje.

A.2 Topologija mrežeTopologija mreže podrazumijeva medusobni raspored, te povezanost uredaja koji ucestvuju ukomunikaciji. Cetiri osnovne topologije su (slika A.3):

∙ Stablo (eng. Bus) – svi uredaji su povezani na jednu liniju (stablo) (slika A.3a).

∙ Magistrala (eng. Daisy chain) – svaki uredaj je povezan sa svojim susjedom (slika A.3b).

∙ Prsten (eng. Ring) – uredaji su povezani u krug (slika A.3c).

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 46

Page 56: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Teoretski aspekti komunikacije

∙ Zvijezda (eng. Star) – svi uredaji u mreži spojeni su u jednu tacku (slika A.3d).

Najbolju otpornost na refleksije pokazuje topologija magistrale, pa je i najcešce u upotrebi. Naj-jednostavnija za izvedbu ovog projekta je topologija stabla. Racunar i module sistema spajamona "stablo". Komunikacija izmedu racunara i bilo kojeg od modula obavlja se približno istombrzinom.

(a) Stablo (b) Magistrala

(c) Prsten (d) Zvijezda

Slika A.3: Topologije mreže

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 47

Page 57: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Prilog B

Programski kodovi

B.1 Program mikrokontrolera

1 /******************** ZAVRSNI RAD **************************2 ******** Dizajn ekspanzionog IO modula za PC ***************3 ************ Mentor: Emir Sokic ****************************4 ************ Student: Jasmin Hadzajlic ********************/5

6 /* Varijable */7 // Adresa8 byte adresa;9 const byte broadcast = 0b10101010;

10

11 // Ulazi12 boolean konfigurisani_ulazi[4] = ;13 uint8_t prethodna_stanja_ulaza[4];14 uint8_t DI0, DI1, DI2, DI3;15 uint16_t AI0, AI1;16 /* Niz flagova za inicijalizaciju17 Ulazi18 Oznaka | U poruci | Indeks19 DI0 | a | 020 DI1 | b | 121 DI2 | c | 222 DI3 | d | 323 AI0 | e | 424 AI1 | f | 525 Izlazi26 TO0 | 1 | 627 TO1 | 2 | 728 REL0 | 3 | 829 REL1 | 4 | 930 AO | 5 | 1031

32 U poruci | U nizu33 TO0 i TO134 0 | 1 - digitalni izlaz35 1 | 2 - pwm izlaz36 Ostalo37 - | 138

39 0 za nekoristene ulaze i izlaze40 */

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 48

Page 58: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

41 int inicijalizacija[11];42 /* Niz za konfiguraciju ulaza43 konfig_ulaza44 Sadrzi znak (char) odgovarajucih ulaza cija se vrijednost trazi*/45 byte konfig_ulaza[6];46 int ulaz_velicina;47 /* Niz za konfiguraciju izlaza48 konfig_izlaza49 Sadrzi znak (char) odgovarajucih izlaza ciji se izlaz postavlja50 vrijednost_izlaza51 Sadrzi vrijednost, pri cemu se indeksi poklapaju sa konfig_izlaza52 Digitalni izlazi ’0’ ili ’1’ (char)53 Analogni i PWM 0-255 */54 byte konfig_izlaza[5];55 byte vrijednost_izlaza[5];56 int izlaz_velicina;57 /* Konfiguracija strobe-a58 Brojaci za odbrojavanje broja slanja i perioda slanja59 broj_slanja i period_slanja - zadane vrijednosti*/60 boolean strobe_flag;61 int brojac_strobe;62 int broj_slanja;63 int period_slanja;64 int brojac_slanja;65

66 /* Poruke67 Nizovi dolazne i odlazne poruke i duzine poruka*/68 int duzina_dolazne_poruke, duzina_odlazne_poruke;69 byte dolazna_poruka[40], odlazna_poruka[40];70 /* Flagovi za slanje, gresku, procesiranje, prekidni mod*/71 boolean greska_flag;72 boolean slanje_flag;73 boolean procesiranje_flag;74 boolean prekidni_mod_flag;75

76 /* Funkcija za ocitanje bita iz registra*/77 byte ocitajBit(volatile uint8_t &registar, uint8_t redni_broj) 78 if (registar & (1 << redni_broj))79 return ’1’;80 return ’0’;81 82

83 /* Funkcija za setovanje bita u registru*/84 void setujBit(volatile uint8_t &registar, uint8_t redni_broj) 85 registar |= 1 << redni_broj;86 87

88 /* Funkcija za resetovanje bita u registru*/89 void resetujBit(volatile uint8_t &registar, uint8_t redni_broj) 90 registar &= ~(1 << redni_broj);91 92

93 /* Funkcija za formiranje poruke greske i indikaciju*/94 void greska(byte sifra) 95 greska_flag = true;96 odlazna_poruka[4] = ’?’;97 odlazna_poruka[5] = sifra;98 duzina_odlazne_poruke = 6;

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 49

Page 59: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

99 100

101 /* Funkcija za citanje vrijednosti analognog ulaza*/102 uint16_t ADcitaj(uint8_t kanal) 103 // Odabir kanala104 ADMUX &= 0b11110000;105 ADMUX |= 0b00001111 & kanal;106 // Pocetak konverzije107 ADCSRA |= (1 << ADSC);108 // Cekanje kraja konverzije109 while (!(ADCSRA & (1 << 4)));110 resetujBit(ADCSRA, 4);111 // Povratak 10-bitne vrijednosti112 return ADC;113 114

115 /* Funkcija za inicijalizaciju timera 0 za PWM na TO0 i TO1 */116 void PWMinit() 117 // Preskaler 1/8, Fast PWM118 TCCR0A = 0b00000011;119 TCCR0B = 0b11000011;120 TCNT0 = 0x00;121 122

123 /* Funkcija za inicijalizaciju ulaza i izlaza koji se koriste*/124 void inicijaliziraj() 125 // Resetovanje inicijalizacije126 for (int i = 0; i < 11; i++)127 inicijalizacija[i] = 0;128 // Ucitavanje inicijalizacije u niz flagova129 for (int i = 4; i < duzina_dolazne_poruke - 3; i++) 130 // Formiranje odlazne poruke131 odlazna_poruka[duzina_odlazne_poruke] = dolazna_poruka[i];132 duzina_odlazne_poruke++;133 switch (dolazna_poruka[i]) 134 case ’a’: // DI0135 inicijalizacija[0] = 1;136 break;137 case ’b’: // DI1138 inicijalizacija[1] = 1;139 break;140 case ’c’: // DI2141 inicijalizacija[2] = 1;142 break;143 case ’d’: // DI3144 inicijalizacija[3] = 1;145 break;146 case ’e’: // AI0147 inicijalizacija[4] = 1;148 break;149 case ’f’: // AI1150 inicijalizacija[5] = 1;151 break;152 case ’p’: // TO0153 i++;154 odlazna_poruka[duzina_odlazne_poruke] = dolazna_poruka[i];155 duzina_odlazne_poruke++;156 if (dolazna_poruka[i] == ’0’) // digitalni izlaz

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 50

Page 60: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

157 inicijalizacija[6] = 1;158 resetujBit(TCCR0A, COM0B1); // Iskljucenje PWM-a159 160 else if (dolazna_poruka[i] == ’1’) // PWM izlaz161 inicijalizacija[6] = 2;162 setujBit(TCCR0A, COM0B1); // Ukljucenje PWM-a163 164 else165 greska(’I’); // Pogresan znak166 break;167 case ’q’: // TO1168 i++;169 odlazna_poruka[duzina_odlazne_poruke] = dolazna_poruka[i];170 duzina_odlazne_poruke++;171 if (dolazna_poruka[i] == ’0’) // digitalni izlaz172 inicijalizacija[7] = 1;173 resetujBit(TCCR0A, COM0A1); // Iskljucenje PWM-a174 175 else if (dolazna_poruka[i] == ’1’) // PWM izlaz176 inicijalizacija[7] = 2;177 setujBit(TCCR0A, COM0A1); // Ukljucenje PWM-a178 179 else180 greska(’I’); // Pogresan znak181 break;182 case ’r’: // REL0183 inicijalizacija[8] = 1;184 break;185 case ’s’: // REL1186 inicijalizacija[9] = 1;187 break;188 case ’t’: // AO189 inicijalizacija[10] = 1;190 break;191 default:192 greska(’I’); // Pogresan znak193 break;194 195 if (greska_flag) // Greska - napustanje funkcije196 break;197 198 199

200 /* Funkcija za konfiguraciju citanja (ulaza) */201 void konfigurisiCitanje() 202 for (int i = 0; i < 4; i++)203 konfigurisani_ulazi[i] = false;204 ulaz_velicina = 0;205 for (int i = 4; i < duzina_dolazne_poruke - 3; i++) 206 switch (dolazna_poruka[i]) // Provjera da li je ulaz inicijalizovan207 208 case ’a’:209 if (inicijalizacija[0] == 0)210 greska(’O’);211 konfigurisani_ulazi[0] = true;212 break;213 case ’b’:214 if (inicijalizacija[1] == 0)

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 51

Page 61: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

215 greska(’O’);216 konfigurisani_ulazi[1] = true;217 break;218 case ’c’:219 if (inicijalizacija[2] == 0)220 greska(’O’);221 konfigurisani_ulazi[2] = true;222 break;223 case ’d’:224 if (inicijalizacija[3] == 0)225 greska(’O’);226 konfigurisani_ulazi[3] = true;227 break;228 case ’e’:229 if (inicijalizacija[4] == 0)230 greska(’O’);231 break;232 case ’f’:233 if (inicijalizacija[5] == 0)234 greska(’O’);235 break;236 default:237 greska(’I’);238 break;239 240 if (greska_flag)241 return;242

243 // Konfiguracija244 konfig_ulaza[ulaz_velicina] = dolazna_poruka[i];245 ulaz_velicina++;246

247 // Formiranje odlazne poruke248 odlazna_poruka[duzina_odlazne_poruke] = dolazna_poruka[i];249 duzina_odlazne_poruke++;250 251 252

253 /* Funkcija za konfiguraciju pisanja (izlaza) */254 void konfigurisiPisanje() 255 izlaz_velicina = 0;256 for (int i = 4; i < duzina_dolazne_poruke - 3; i++) 257 switch (dolazna_poruka[i]) 258 case ’p’:259 if (inicijalizacija[6] == 0)260 greska(’P’);261 break;262 case ’q’:263 if (inicijalizacija[7] == 0)264 greska(’P’);265 break;266 case ’r’:267 if (inicijalizacija[8] == 0)268 greska(’P’);269 break;270 case ’s’:271 if (inicijalizacija[9] == 0)272 greska(’P’);

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 52

Page 62: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

273 break;274 case ’t’:275 if (inicijalizacija[10] == 0)276 greska(’P’);277 break;278 default:279 greska(’I’);280 break;281 282 if (greska_flag)283 return;284

285 // Konfiguracija izlaza286 konfig_izlaza[izlaz_velicina] = dolazna_poruka[i];287 i++;288 // POTREBNO PROVJERITI VRIJEDNOST ’0’ ili ’1’289 vrijednost_izlaza[izlaz_velicina] = dolazna_poruka[i];290 izlaz_velicina++;291

292 // Formiranje odlazne poruke293 odlazna_poruka[duzina_odlazne_poruke] = dolazna_poruka[i - 1];294 duzina_odlazne_poruke++;295 odlazna_poruka[duzina_odlazne_poruke] = dolazna_poruka[i];296 duzina_odlazne_poruke++;297 298 299

300 /* Funkcija za trigerovanje citanja */301 void trigerujCitanje() 302 for (int i = 0; i < ulaz_velicina; i++) 303 switch (konfig_ulaza[i]) 304 case ’a’:305 odlazna_poruka[duzina_odlazne_poruke] = DI0;306 duzina_odlazne_poruke++;307 break;308 case ’b’:309 odlazna_poruka[duzina_odlazne_poruke] = DI1;310 duzina_odlazne_poruke++;311 break;312 case ’c’:313 odlazna_poruka[duzina_odlazne_poruke] = DI2;314 duzina_odlazne_poruke++;315 break;316 case ’d’:317 odlazna_poruka[duzina_odlazne_poruke] = DI3;318 duzina_odlazne_poruke++;319 break;320 case ’e’:321 odlazna_poruka[duzina_odlazne_poruke] = (AI0 & 0x0300) >> 8;322 duzina_odlazne_poruke++;323 odlazna_poruka[duzina_odlazne_poruke] = AI0 & 0xFF;324 duzina_odlazne_poruke++;325 break;326 case ’f’:327 odlazna_poruka[duzina_odlazne_poruke] = (AI1 & 0x0300) >> 8;328 duzina_odlazne_poruke++;329 odlazna_poruka[duzina_odlazne_poruke] = AI1 & 0xFF;330 duzina_odlazne_poruke++;

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 53

Page 63: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

331 break;332 default:333 greska(’I’);334 break;335 336 if (greska_flag)337 return;338 339 340

341 /* Funkcija za trigerovanje pisanja */342 void trigerujPisanje() 343 for (int i = 0; i < izlaz_velicina; i++) 344 switch (konfig_izlaza[i]) 345 case ’p’:346 // TO0347 switch (inicijalizacija[6])348 349 // Digitalni izlaz350 case 1:351 switch (vrijednost_izlaza[i]) 352 case ’0’:353 resetujBit(PORTD, PD5);354 break;355 case ’1’:356 setujBit(PORTD, PD5);357 break;358 359 break;360 // PWM izlaz361 case 2:362 OCR0B = vrijednost_izlaza[i];363 break;364 365 break;366 case ’q’:367 // TO1368 switch (inicijalizacija[7])369 370 // Digitalni izlaz371 case 1:372 switch (vrijednost_izlaza[i]) 373 case ’0’:374 resetujBit(PORTD, PD6);375 break;376 case ’1’:377 setujBit(PORTD, PD6);378 break;379 380 break;381 // PWM izlaz382 case 2:383 OCR0A = vrijednost_izlaza[i];384 break;385 386 break;387 case ’r’:388 // REL0

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 54

Page 64: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

389 switch (vrijednost_izlaza[i]) 390 case ’0’:391 resetujBit(PORTC, PC1);392 break;393 case ’1’:394 setujBit(PORTC, PC1);395 break;396 397 break;398 case ’s’:399 // REL1400 switch (vrijednost_izlaza[i]) 401 case ’0’:402 resetujBit(PORTC, PC2);403 break;404 case ’1’:405 setujBit(PORTC, PC2);406 break;407 408 break;409 case ’t’:410 // AO411 OCR1B = vrijednost_izlaza[i];412 break;413 default:414 greska(’I’);415 break;416 417 if (greska_flag)418 return;419 420 421

422 /* Funkcija za citanje ulazne poruke */423 void citajSerial() 424 resetujBit(PORTC, PC3);425 duzina_dolazne_poruke = 0;426 int i = 0;427 while (i < 1000) 428 delay(1);429 if (Serial.available()) 430 dolazna_poruka[i] = Serial.read();431 if (dolazna_poruka[i] == ’\n’ && dolazna_poruka[i - 1] == ’\r’ &&

dolazna_poruka[i - 2] == ’\r’) 432 i++;433 break;434 435 i++;436 437 438 duzina_dolazne_poruke = i;439 if (duzina_dolazne_poruke < 7) 440 slanje_flag = false;441 procesiranje_flag = false;442 443 444

445 /* Funkcija za pisanje izlazne poruke */

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 55

Page 65: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

446 void pisiSerial() 447 setujBit(PORTC, PC3);448 // Znakovi za kraj poruke449 odlazna_poruka[duzina_odlazne_poruke++] = ’\r’;450 odlazna_poruka[duzina_odlazne_poruke++] = ’\r’;451 odlazna_poruka[duzina_odlazne_poruke++] = ’\n’;452

453 for (int i = 0; i < duzina_odlazne_poruke; i++) 454 Serial.write(odlazna_poruka[i]);455 while (ocitajBit(UCSR0A, TXC0) == ’0’);456 457 duzina_odlazne_poruke = 3;458 resetujBit(PORTC, PC3);459 460

461 /* Funkcija za ocitanje jednog ulaza */462 void ocitajUlaz() 463 switch (dolazna_poruka[4]) 464 case ’a’:465 if (inicijalizacija[0] == 0)466 greska(’O’);467 else 468 odlazna_poruka[duzina_odlazne_poruke] = DI0;469 duzina_odlazne_poruke++;470 471 break;472 case ’b’:473 if (inicijalizacija[1] == 0)474 greska(’O’);475 else 476 odlazna_poruka[duzina_odlazne_poruke] = DI1;477 duzina_odlazne_poruke++;478 479 break;480 case ’c’:481 if (inicijalizacija[2] == 0)482 greska(’O’);483 else 484 odlazna_poruka[duzina_odlazne_poruke] = DI2;485 duzina_odlazne_poruke++;486 487 break;488 case ’d’:489 if (inicijalizacija[3] == 0)490 greska(’O’);491 else 492 odlazna_poruka[duzina_odlazne_poruke] = DI3;493 duzina_odlazne_poruke++;494 495 break;496 case ’e’:497 if (inicijalizacija[4] == 0)498 greska(’O’);499 else 500 odlazna_poruka[duzina_odlazne_poruke] = (AI0 & 0x0300) >> 8;501 duzina_odlazne_poruke++;502 odlazna_poruka[duzina_odlazne_poruke] = AI0 & 0xFF;503 duzina_odlazne_poruke++;

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 56

Page 66: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

504 505 break;506 case ’f’:507 if (inicijalizacija[5] == 0)508 greska(’O’);509 else 510 odlazna_poruka[duzina_odlazne_poruke] = (AI1 & 0x0300) >> 8;511 duzina_odlazne_poruke++;512 odlazna_poruka[duzina_odlazne_poruke] = AI1 & 0xFF;513 duzina_odlazne_poruke++;514 515 break;516 default:517 greska(’I’);518 break;519 520 521

522 /* Funkcija za postavljanje jednog izlaza */523 void postaviIzlaz() 524 odlazna_poruka[duzina_odlazne_poruke] = dolazna_poruka[4];525 duzina_odlazne_poruke++;526 odlazna_poruka[duzina_odlazne_poruke] = dolazna_poruka[5];527 duzina_odlazne_poruke++;528

529 switch (dolazna_poruka[4]) 530 case ’p’:531 switch (inicijalizacija[6]) // TO0532 533 case 0:534 greska(’P’);535 break;536 case 1: // Digitalni izlaz537 switch (dolazna_poruka[5]) 538 case ’0’:539 resetujBit(PORTD, PD5);540 break;541 case ’1’:542 setujBit(PORTD, PD5);543 break;544 default:545 greska(’P’);546 break;547 548 break;549 case 2:550 OCR0B = dolazna_poruka[5]; // PWM izlaz551 break;552 553 break;554 case ’q’: // TO1555 switch (inicijalizacija[7])556 557 case 0:558 greska(’P’);559 break;560 case 1: // Digitalni izlaz561 switch (dolazna_poruka[5])

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 57

Page 67: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

562 case ’0’:563 resetujBit(PORTD, PD6);564 break;565 case ’1’:566 setujBit(PORTD, PD6);567 break;568 default:569 greska(’P’);570 break;571 572 break;573 case 2: // PWM izlaz574 OCR0A = dolazna_poruka[5];575 break;576 577 break;578 case ’r’: // REL0579 if (inicijalizacija[8] == 0)580 greska(’P’);581 else 582 switch (dolazna_poruka[5]) 583 case ’0’:584 resetujBit(PORTC, PC1);585 break;586 case ’1’:587 setujBit(PORTC, PC1);588 break;589 default:590 greska(’I’);591 break;592 593 594 break;595 case ’s’: // REL1596 if (inicijalizacija[9] == 0)597 greska(’P’);598 else 599 switch (dolazna_poruka[5]) 600 case ’0’:601 resetujBit(PORTC, PC2);602 break;603 case ’1’:604 setujBit(PORTC, PC2);605 break;606 default:607 greska(’I’);608 break;609 610 break;611 case ’t’: // AO612 if (inicijalizacija[10] == 0)613 greska(’P’);614 else615 OCR1B = dolazna_poruka[5];616 break;617 default:618 greska(’I’);619 break;

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 58

Page 68: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

620 621 622 623

624 /* Prekidna rutina svakih 16ms ako je aktivan strobe */625 ISR(TIMER2_OVF_vect) 626 if (strobe_flag) 627 brojac_strobe++;628 if (brojac_strobe >= period_slanja) // Slanje stanja ulaza629 trigerujCitanje();630 pisiSerial();631 brojac_strobe = 0;632 brojac_slanja++;633 if (brojac_slanja >= broj_slanja) // Posljednje slanje634 brojac_slanja = 0;635 strobe_flag = false;636 637 638 639 640

641 /* Funkcija za inicijalizaciju timer2 koji se koristi za prekide */642 void inicijalizirajPrekide() 643 // Postavljanje prescalera na 128, 16ms prekidi644 TCCR2B = 0b00000101;645 646

647 /* Funkcija za trigerovanje strobe-a */648 void trigerujStrobe() 649 strobe_flag = true;650 broj_slanja = 1 + dolazna_poruka[4]; // 1 -256651 period_slanja = 1 + dolazna_poruka[5] * 4; // Minimalno 16ms, maksimalno

4,096s652 TCNT2 = 0; // Postavljanje brojaca na 0653 setujBit(TIMSK2, TOIE2); // Aktiviranje prekida na timer2654 655

656 /* Trigerovanje citanja i pisanja istovremeno*/657 void trigerujSve() 658 trigerujPisanje();659 if (!greska_flag)660 trigerujCitanje();661 662

663 /* Funkcija za trigerovanje prekidnog moda*/664 void trigerujPrekidniMod() 665 switch (dolazna_poruka[4]) 666 case(’0’):667 prekidni_mod_flag = false;668 break;669 case(’1’):670 prekidni_mod_flag = true;671 break;672 default:673 greska(’I’);674 break;675 676

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 59

Page 69: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

677

678 /* Funkcija za procesiranje poruke */679 void procesirajPoruku() 680 // Provjera pocetka i kraja681 if (dolazna_poruka[0] != ’#’ || dolazna_poruka[1] != ’#’ ||

dolazna_poruka[duzina_dolazne_poruke - 2] != ’\r’ || dolazna_poruka[duzina_dolazne_poruke - 1] != ’\n’)

682 greska(’L’);683 return;684 685 // Provjera adrese686 if (dolazna_poruka[2] != adresa) 687 slanje_flag = false;688 if (dolazna_poruka[2] != broadcast) // procesiraj poruku, ali ne

odgovaraj (BROADCAST)689 return;690 691 // Formiranje odlazne poruke692 odlazna_poruka[duzina_odlazne_poruke] = dolazna_poruka[3];693 duzina_odlazne_poruke++;694 // Provjera zadane funkcije695 switch (dolazna_poruka[3]) 696 case ’A’: // Inicijalizacija697 inicijaliziraj();698 break;699 case ’B’: // Konfiguracija za citanje700 konfigurisiCitanje();701 break;702 case ’C’: // Trigger za citanje703 if (duzina_dolazne_poruke != 7)704 greska(’Q’);705 else706 trigerujCitanje();707 break;708 case ’D’: // Konfiguracija za pisanje709 konfigurisiPisanje();710 break;711 case ’E’: // Trigger za pisanje712 if (duzina_dolazne_poruke != 7)713 greska(’Q’);714 else715 trigerujPisanje();716 break;717 case ’F’: // Ocitaj ulaz718 if (duzina_dolazne_poruke != 8)719 greska(’Q’);720 else721 ocitajUlaz();722 break;723 case ’G’: // Postavi izlaz724 if (duzina_dolazne_poruke != 9)725 greska(’Q’);726 else727 postaviIzlaz();728 break;729 case ’H’: // Trigger i za citanje i za pisanje730 if (duzina_dolazne_poruke != 7)731 greska(’Q’);

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 60

Page 70: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

732 else733 trigerujSve();734 break;735 case ’I’: // Strobe736 if (duzina_dolazne_poruke != 9)737 greska(’Q’);738 else739 trigerujStrobe();740 break;741 case ’J’: // Prekidni mod742 if (duzina_dolazne_poruke != 8)743 greska(’Q’);744 else745 trigerujPrekidniMod();746 break;747 default: // Greska748 greska(’I’);749 break;750 751 752

753 /* Funkcija za inicijalizaciju izlaza */754 void inicijalizirajIzlaze() 755 setujBit(DDRC, PC1);756 setujBit(DDRC, PC2);757 setujBit(DDRD, PD5);758 setujBit(DDRD, PD6);759 760

761 /* Funkcija za inicijalizaciju komunikacije */762 void inicijalizirajSerial() 763 Serial.begin(115200);764 setujBit(DDRC, PC3); // Enable pin765 resetujBit(PORTC, PC3);766 767

768 /* Funkcija za inicijalizaciju analognog izlaza */769 void inicijalizirajAnalogniIzlaz() 770 setujBit(DDRB, PB2);771 // TIMER 1 - Fast PWM (8 bit) - Clear on Compare Match, set at BOTTOM (

non-inverting mode)772 TCCR1A = 0b00100001;773 TCCR1B = 0b00001001;774 TCNT1 = 0x0000;775

776 OCR1B = 0; // Analogni izlaz777 778

779 /* Funkcija za inicijalizaciju PWM-a za TO0 i TO1 */780 void inicijalizirajPWM() 781 // TIMER 0 - Fast PWM - Set on Compare Match, clear at BOTTOM (inverting

mode)782 TCCR0A = 0b00000011;783 TCCR0B = 0b00000010;784 TCNT0 = 0x00;785

786 // TO0 - PWM787 OCR0B = 0;

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 61

Page 71: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

788 // TO1 - PWM789 OCR0A = 0;790 791

792 /* Funkcija za adresiranje modula */793 void adresiraj() 794 // Resetovanje adrese795 adresa = 0x00;796 setujBit(DDRB, PB0);797 setujBit(DDRB, PB1);798 // Paralelno ucitavanje u shift registar799 resetujBit(PORTB, PB1);800 delay(1);801 setujBit(PORTB, PB1);802 delay(1);803 // Ucitavanje adrese u mikrokontroler804 for (int i = 0; i < 8; i++) 805 // Citanje adrese806 if (ocitajBit(PIND, PD7) == ’1’)807 setujBit(adresa, i);808 // Clock za shiftanje809 setujBit(PORTB, PB0);810 delay(1);811 resetujBit(PORTB, PB0);812 delay(1);813 814 adresa |= 0b11000000;815 816

817 /* SETUP - inicijalizacija svih koristenih modula kontrolera i varijabli*/818 void setup() 819 inicijalizirajIzlaze();820 inicijalizirajAnalogniIzlaz();821 inicijalizirajSerial();822 inicijalizirajPWM();823 inicijalizirajPrekide();824 strobe_flag = false;825 brojac_slanja = 0;826 brojac_strobe = 0;827 adresiraj();828

829 // Formiranje pocetka odlazne poruke830 odlazna_poruka[0] = ’#’;831 odlazna_poruka[1] = ’#’;832 odlazna_poruka[2] = adresa;833 duzina_odlazne_poruke = 3;834 greska_flag = false;835 slanje_flag = true;836 procesiranje_flag = true;837 prekidni_mod_flag = false;838 839

840 void loop() 841

842 // Cekanje na poruku843 if (Serial.available()) 844 citajSerial();845 if (procesiranje_flag)

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 62

Page 72: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Programski kodovi

846 procesirajPoruku();847 if (slanje_flag)848 pisiSerial();849

850 // Resetovanje flagova851 greska_flag = false;852 slanje_flag = true;853 procesiranje_flag = true;854 duzina_odlazne_poruke = 3;855 856 // Kraj strobe-a857 if (!strobe_flag)858 resetujBit(TIMSK0, TOIE0);859 // Osvjezavanje ulaza860 DI0 = ocitajBit(PIND, PD4);861 DI1 = ocitajBit(PINC, PC0);862 DI2 = ocitajBit(PIND, PD2);863 DI3 = ocitajBit(PIND, PD3);864 AI0 = ADcitaj(0x07);865 AI1 = ADcitaj(0x06);866 // Ako je aktivan prekidni mod867 if (prekidni_mod_flag && ((DI0 != prethodna_stanja_ulaza[0] &&

konfigurisani_ulazi[0]) || (DI1 != prethodna_stanja_ulaza[1] &&konfigurisani_ulazi[1]) || (DI2 != prethodna_stanja_ulaza[2] &&konfigurisani_ulazi[2]) || (DI3 != prethodna_stanja_ulaza[3] &&konfigurisani_ulazi[3])))

868 odlazna_poruka[duzina_odlazne_poruke++] = ’J’;869 trigerujCitanje();870 pisiSerial();871 872 prethodna_stanja_ulaza[0] = DI0;873 prethodna_stanja_ulaza[1] = DI1;874 prethodna_stanja_ulaza[2] = DI2;875 prethodna_stanja_ulaza[3] = DI3;876

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 63

Page 73: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Literatura

[1] ATmega328/P 8-bit AVR Microcontroller, Atmel Corporation, 2016, datum pristupa:26.12.2016, dostupno na: http://www.atmel.com/

[2] Batchelor, B. G., Whelan, P. F., (ur.), Intelligent Vision Systems for Industry. Cardiff,Wales: University of Wales, Cardiff, 2012.

[3] Kreso, S., Huseinbegovic, S., Projektovanje mikroprocesorskih sistema. Elektrotehnickifakultet Sarajevo, 2012.

[4] Logic controller Modicon M241, Schneider electric, 2017, datum pristupa: 16.03.2017,dostupno na: http://www.schneider-electric.us

[5] Siemens S7-1200 Programmable controller, Siemens, 2017, datum pristupa: 20.08.2017,dostupno na: https://www.siemens.com/

[6] Omron CP series controller, Omrons, 2017, datum pristupa: 13.08.2017, dostupno na:https://www.omron.com/

[7] Micro800 Programmable Controller Family, Allan Bradley, 2017, datum pristupa:20.08.2017, dostupno na: http://ab.rockwellautomation.com/

[8] Modicon TM3 expansion modules, Schneider electric, 2014, datum pristupa: 13.08.2017,dostupno na: http://www.schneider-electric.us

[9] Sensor Catalogue, Schneider electric, 2014, datum pristupa: 16.03.2017, dostupno na:http://www.schneider-electric.us

[10] OsiSense XS Inductive proximity sensors, Schneider electric, 2017, datum pristupa:16.03.2017, dostupno na: http://www.schneider-electric.us

[11] Osisense XCC Rotary Encoders Catalog, Schneider electric, 2011, datum pristupa:16.03.2017, dostupno na: http://www.schneider-electric.us

[12] Arduino Uno Reference Design, Rev. 3, Arduino, 2016, dostupno na: https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

[13] Stojanovic, Z., Arhitektura, protokoli i servisi interneta. Evropski univerzitet Brcko dis-trikta, 2015.

[14] Perrin, B., The Art and Science of RS-485, (Juli 1999), dostupno na: www.circuitcellar.com

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 64

Page 74: Dizajn ekspanzionog I/O modula za PCpeople.etf.unsa.ba/~esokic/zavrsni/2017JASMIN.pdfUlazno-izlazni moduli (eng. input-output modules, skr. IO moduli) su elektricni ureˇ daji koji

Literatura

[15] MAX481/MAX483/MAX485/MAX487/MAX491/MAX1487 Low-Power, Slew-Rate-Limited RS-485/RS-422 Transceivers, Maxim Integrated, 2014, datum pristupa:09.03.2017, dostupno na: http://www.maximintegrated.com./

[16] SNx4HC165 8-Bit Parallel-Load Shift Registers, Texas Instruments, 2017, datumpristupa: 18.09.2017, dostupno na: http://www.ti.com/

[17] High-Speed CMOS Logic Decade Counter/Divider CD54HC4017, Texas instruments,2003, datum pristupa: 21.09.2017, dostupno na: http://www.ti.com

[18] Industrial Current/Voltage Output Driver with Programmable Ranges, Analog Devices,2014, datum pristupa: 10.09.2017, dostupno na: http://www.analog.com

[19] Vo, J., AN-903 A Comparison of Differential Termination Techniques, National Semicon-ductor, 1993.

Hadžajlic, J., "Dizajn ekspanzionog I/O modula za PC" 65