35
1. Komunikacija 1. Osnovni koncepti 2. RS-232 3. RS-422/RS-485 4. CAN 5. SPI 6. I 2 C 7. Ethernet 8. Bežična komunikacija 1. ZigBee 2. Bluetooth 3. WLAN Osnovni koncepti Komunikacija je nezaobilazna tema kada se govori o savremenim ugradbenim sistemima. Mreža autobusnih linija u savremenim gradovima je dobar primjer koji pokazuje ulogu ugradbenih sistema u podizanju nivoa usluge prijevoza putnika. Tako se na svakoj autobusnoj stanici nalazi displej koji u realnom vremenu prikazuje vrijeme do dolaska narednih autobusa na svim linijama koje tuda prolaze. Tačno vrijeme se neprekidno ažurira tako što ugradbeni sistem instaliran u autobusu prihvata informaciju o poziciji putem GPS, i tu informaciju prosljeđuje u centralni sistem. Centralni sistem, koji između ostalog nadzire i odvijanje cjelokupnog saobraćaja, onda prezentira informaciju o vremenu do nailaska autobusa na stanicama duž linije kojom prolazi. Svaki od pomenutih displeja također predstavlja ugradbeni sistem, sa svojim ulazima, mikroračunarskim sistemom i izlazima. U navedenom primjeru se komunikacija pojavljuje na više mjesta. Kao prvo, GPS uređaj komunicira sa mikroračunarskim sistemom u okviru sistema instaliranog u autobusu. Ovaj mikroračunarski sistem bežično komunicira (putem GSM/GPRS, WiFi ili WiMAX mreže) sa centralnim sistemom za nadzor saobraćaja. Centralni sistem žičnim putem ili bežično komunicira sa svakim displejem postavljenim na nekoj od autobusnih stanica. Slično, u okviru savremenog automobila se nalazi veliki broj mikrokontrolera (čak i preko stotinu), koji međusobno komuniciraju putem više sabirnica (slika 4.?). Ovi mikrokontroleri realiziraju različite funkcije u automobilu, od zatezanja sigurnosnog pojasa, preko upravljanja zračnim jastucima, motorom, kočnicama, sve do interakcije vozača sa automobilom putem kontrolne ploče automobila.

Ugradbeni Sistemi-poglavlje 4

Embed Size (px)

DESCRIPTION

g

Citation preview

Page 1: Ugradbeni Sistemi-poglavlje 4

1. Komunikacija1. Osnovni koncepti2. RS-2323. RS-422/RS-4854. CAN5. SPI6. I2C7. Ethernet8. Bežična komunikacija

1. ZigBee2. Bluetooth3. WLAN

Osnovni koncepti

Komunikacija je nezaobilazna tema kada se govori o savremenim ugradbenim sistemima. Mreža autobusnih linija u savremenim gradovima je dobar primjer koji pokazuje ulogu ugradbenih sistema u podizanju nivoa usluge prijevoza putnika. Tako se na svakoj autobusnoj stanici nalazi displej koji u realnom vremenu prikazuje vrijeme do dolaska narednih autobusa na svim linijama koje tuda prolaze. Tačno vrijeme se neprekidno ažurira tako što ugradbeni sistem instaliran u autobusu prihvata informaciju o poziciji putem GPS, i tu informaciju prosljeđuje u centralni sistem. Centralni sistem, koji između ostalog nadzire i odvijanje cjelokupnog saobraćaja, onda prezentira informaciju o vremenu do nailaska autobusa na stanicama duž linije kojom prolazi. Svaki od pomenutih displeja također predstavlja ugradbeni sistem, sa svojim ulazima, mikroračunarskim sistemom i izlazima. U navedenom primjeru se komunikacija pojavljuje na više mjesta. Kao prvo, GPS uređaj komunicira sa mikroračunarskim sistemom u okviru sistema instaliranog u autobusu. Ovaj mikroračunarski sistem bežično komunicira (putem GSM/GPRS, WiFi ili WiMAX mreže) sa centralnim sistemom za nadzor saobraćaja. Centralni sistem žičnim putem ili bežično komunicira sa svakim displejem postavljenim na nekoj od autobusnih stanica.

Slično, u okviru savremenog automobila se nalazi veliki broj mikrokontrolera (čak i preko stotinu), koji međusobno komuniciraju putem više sabirnica (slika 4.?). Ovi mikrokontroleri realiziraju različite funkcije u automobilu, od zatezanja sigurnosnog pojasa, preko upravljanja zračnim jastucima, motorom, kočnicama, sve do interakcije vozača sa automobilom putem kontrolne ploče automobila.

Page 2: Ugradbeni Sistemi-poglavlje 4

Više kompanija u svijetu trenutno radi na razvoju decentraliziranog sistema, koji će omogućiti komunikaciju i razmjenu informacija između vozila koja učestvuju u saobraćaju na određenom prostoru. Na ovaj način bi se znatno podigla sigurnost odvijanja saobraćaja, obzirom da bi bliska vozila u saobraćaju međusobno razmjenjivala podatke o poziciji, brzini i drugim elementima vožnje bitnim za sigurnost.

Moguće je pronaći još veliki broj primjera sistema čije postojanje ne bi bilo moguće bez realizacije komunikacije između njegovih komponenti. U osnovi, sve ove primjere komunikacije, sa stanovišta nivoa na kome se komunikacija realizira, možemo podijeliti na:

• komunikaciju ugrađenog procesora kao komponente distribuiranog sistema sa drugim komponentama distribuiranog sistema (komunikacija sistema instaliranog u autobusu sa centralnim sistemom za nadzor saobraćaja ili komunikacija centralnog sistema sa mikroprocesorom ugrađenim u displej na autobuskoj stanici),

• komunikaciju mikroprocesora ugradbenog sistema sa drugim komponentama ugradbenog sistema (komunikacija mikroprocesora sistema instaliranog u autobusu sa GPS uređajem ili komunikacija mikroprocesora u okviru displeja ugrađenog na autobuskoj stanici sa displejem koji prikazuje informacije).

Općenito, komunikacija podrazumijeva prijenos podataka između učesnika u komunikaciji. U pogledu broja učesnika u komunikaciji, komunikacija može biti (slika 4.?):

• komunikacija tačka u tačku (point-to-point),• komunikacija između više učesnika (point-to-multipoint).

Komunikacija tačka u tačku podrazumijeva da međusobno komuniciraju samo dva učesnika u komunikaciji. Za razliku od toga, moguće je da u komunikaciji učestvuje više učesnika, što podrazumijeva da mora postojati način da podatke koje šalje jedan pošiljalac primi više primalaca.

U pogledu smjera u kome se prijenos podataka odvija, komunikacija može biti (slika 4.?):• simpleksna komunikacija,• semidupleksna komunikacija (semi-duplex, half-duplex),• dupleksna komunikacija (full duplex).

Simpleksna komunikacija podrazumijeva da tok podataka postoji samo u jednom smjeru, od pošiljaoca ka primaocu i ne postoji način da dva učesnika u komunikaciji zamijene uloge.

Semidupleksna komunikacija podrazumijeva da postoji naizmjenična razmjena podataka između dva učesnika u komunikaciji, odnosno da pošiljalac i primalac mogu zamijeniti uloge. Dakle, u ovom slučaju se prijenos podataka može ostvariti u oba smjera, ali se u jednom trenutku prijenos podataka može odvijati samo u jednom smjeru.

Dupleksna komunikacija omogućava da se prijenos podataka istovremeno odvija u oba smjera, odnosno da istovremeno postoji način na koji jedan učesnik u komunikaciji šalje podatke drugom, dok istovremeno prima podatke koje šalje drugi učesnik.

U pogledu fizičkog načina prijenosa podataka, komunikacija može biti:• žična,• bežična.

Page 3: Ugradbeni Sistemi-poglavlje 4

Ovdje žičnu komunikaciju treba shvatiti u širem smislu, kao komunikaciju putem medija koji fizički povezuje učesnike u komunikaciji (bakrena parica, optičko vlakno). S druge strane, bežična komunikacija se odvija putem radio talasa frekvencija nižih od frekvencija svjetlosti, ili eventualno infracrvenom svjetlošću, a medij kojim se ovi talasi prostiru je prostor u kome se nalaze učesnici u komunikaciji (ili kako se još naziva, eter).

U pogledu načina realizacije, komunikacija može biti:• paralelna,• serijska.

Paralelna komunikacija podrazumijeva da se prijenos bita koji čine višebitni podatak odvija istovremeno. Očito za paralelnu komunikaciju mora postojati višestruka veza između učesnika u komunikaciji. Jasna prednost paralelnog prijenosa podataka leži u činjenici da je vrijeme potrebno za prijenos višebitnog podatka jednako vremenu potrebnom za prijenos jednog bita. Isto tako, nedostatak paralelne komunikacije predstavlja činjenica da je za paralelnu komunikaciju neophodno ostvariti višestruku vezu između učesnika u komunikaciji.. Tako, u slučaju žične komunikacije, učesnici koji komuniciraju paralelno moraju biti povezani sa više provodnika. U slučaju bežične komunikacije mora postojati više kanala po kojima učesnici u komunikaciji istovremeno komuniciraju.

Serijska komunikacija podrazumijeva da se prijenos podataka odvija simbol po simbol, odnosno u najprostijoj varijanti, da se višebitna riječ prenosi redom bit po bit počevši ili od bita na poziciji najviše vrijednosti (MSB) ili od bita na poziciji najniže vrijednosti (LSB). Očiti nedostatak serijske komunikacije leži u činjenici da prijenos višebitnog podatka traje onoliko koliko traje prijenos svih bita koji ga čine. Međutim, prednost da je dovoljno ostvariti jednostruku vezu između učesnika u komunikaciji (povezati učesnike jednom paricom ili jednim radio kanalom) je ogromna, tako da se danas u ugradbenim sistemima gotovo isključivo koristi serijska komunikacija. Ovo naročito ima smisla ukoliko se trajanje prijenosa pojedinačnih bita može skratiti, odnosno ukoliko se može povećati brzina prijenosa podataka.

Osnove serijske komunikacije

Kako je rečeno, osnovna prednost serijske komunikacije leži u korištenju malog broja linija (minimalno dvije ili tri linije), a osnovni nedostatak leži u relativno maloj brzini prijenosa. Pri tome danas postoji niz standarda koji definiraju različite načine serijske komunikacije i koji su pogodni za primjenu u različitim aplikacijama.

Najstariji standard serijske komunikacije, koji se još uvijek koristi, datira još iz vremena teleprintera (slika 4.?).

Page 4: Ugradbeni Sistemi-poglavlje 4

Teleprinter je predstavljao uređaj koji je omogućavao da se tekst koji se tipka na jednom uređaju štampa na drugom uređaju. U početnom vremenu razvoja računara, teleprinter je bio korišten kao standardni ulazni uređaj računara. Kasnije je osnovni ulazno-izlazni uređaj postao terminal koji se sastojao od tastature i monitora sa katodnom cijevi, ali se i dalje nastavio koristiti način serijske komunikacije vrlo sličan onom koji je definiran u vrijeme kada su se koristili teleprinteri.

Standardi komunikacije

Standardizacija uopće omogućava da se kroz definiranje standarda omogući jednostavnije povezivanje uređaja i komponenata proizvedenih od strane različitih proizvođača. Tako i standardi komunikacije omogućavaju povezivanje uređaja putem interfejsa koji koriste isti standard, bez obzira o kojem proizvođaču se radi.

Svaki standard komunikacije definira minimalno:• električne karakteristike interfejsa preko kojih se odvija komunikacija, vrstu i korištene nivoe

signala• ožičenje i fizički interfejs,• signalizaciju i protokole.

Električne karakteristike podrazumijevaju definiranje vrste signala i nivoa signala koji se koriste, te opsege vrijednosti i karakteristike signala koji omogućava ispravan prijenos podataka između učesnika u komunikaciji. Najčešće korišteni signali u serijskoj komunikaciji su strujni i naponski signali. Prednost korištenja strujnog signala leži u činjenici da će struja koja protiče kroz kolo biti ista i na početku i na kraju medija (npr. parice) kroz koji se odvija prijenos podataka. Naponski signal je jednostavniji za korištenje, obzirom da mikroračunarski sistemi za indikaciju logičkih nivoa koriste naponske nivoe, te povezivanje mikroračunarskog sistema sa komunikacijskim medijem može biti realizirano čak i direktno, bez potrebe za bilo kakvim pretvaranjem signala. Međutim, nedostatak korištenja naponskog signala leži u činjenici da se pri protjecanju struje kroz komunikacijski medij javlja pad napona zbog koga vrijednost napona na početku komunikacijskog medija (parice) i na kraju komunikacijskog medija (parice) neće biti isti, nego će zavisiti od vrijednosti otpornosti i drugih električnih karakteristika medija. Osim samih nivoa naponskog (ili drugog) signala koji kodiraju vrijednosti podataka koji se prenose, iz identičnih razloga kao što je to bio slučaj kod digitalnih ulaza, standardi definiraju i opsege vrijednosti signala koji će biti ispravno prepoznati. Tako, na primjer, većina standarda serijske komunikacije koji koriste naponski signal definira opsege vrijednosti napona koji će biti od strane prijemnika ispravno prepoznati kao vrijednost koja kodira logičku jedinicu i vrijednost koja kodira logičku nulu. Definirani opsezi vijednosti naponskog signala, uz definirane električne karakteristike (otpornost, induktivitet, kapacitivnost), odmah određuju i ograničenje u pogledu udaljenosti na kojoj se može ostvariti pouzdana komunikacija. O ovim ograničenjima će biti riječi pri predstavljanju pojedinačnih standarda serijske komunikacije.

Definiranje načina ožičenja i fizičkog interfejsa (odnosno korištenih vrsta kablova, načina njihovog povezivanja i konektora) omogućava jednostavno povezivanje učesnika koji komuniciraju, te izradu standardnih elemenata, kao što su standardni kablovi, razdjelnici i sl. Ovo s jedne strane olakšava povezivanje, ali s druge strane onemogućava pogrešno povezivanje uređaja koji koriste različite standarde komunikacije, obzirom da bi to moglo čak i oštetiti uređaje.

Kada postoji fizička veza između učesnika u komunikaciji, potrebno je usaglasiti način na koji se

Page 5: Ugradbeni Sistemi-poglavlje 4

podaci prenose, način na koji prijemnik može signalizirati predajniku ispravan ili neispravan prijem podatka, te način na koji se provjerava ispravnost prijenosa i obezbjeđuje da podaci budu ispravno preneseni. Radi toga svaki standard definira i elemente signalizacije i protokole. Protokol u najopćenitijem smislu predstavlja niz pravila koja omogućavaju komunikaciju. Obzirom da ovdje neće biti detaljno predstavljeni protokoli za prijenos podataka, čitalac se upućuje na literaturu koja obrađuje problematiku i načine prijenosa podataka.

Fizički medij za prijenos podataka

Podaci koji se prenose od pošiljaoca prema primaocu se u predajniku kodiraju u parametre signala koji se koristi za prijenos (slika 4.?). Na drugom kraju komunikacijskog kanala prijemnik prihvata signal i iz signala dekodira podatke poslane od strane pošiljaoca, te prosljeđuje ove podatke primaocu. Fizički medij predstavlja sredinu kroz koju se prostire signal koji ove podatke prenosi.

Serijska komunikacija između ugradbenih sistema se može odvijati kroz različite fizičke medije, kao što su:

• žičani provodnik,• koaksijalni kabl,• optičko vlakno,• eter.

Žičani provodnici se obično upredaju u parice, pri čemu paricu čine dva provodnika koji su međusobno upredena (slika 4.?). Više parica se obično grupira u kabl (slika 4.?). Razlog zbog kojega se provodnici upredaju u parice leži u potrebi da se nivo smetnji kako od strane okoline prema parici, tako i od strane parice prema okolini (interferencija) što više smanji. Iz sličnih razloga se često oko svake parice ili oko cijelog kabla koji obuhvata više parica stavlja zaštitni omotač od provodnog materijala (npr. aluminijske folije ili bakrenog pletiva). U ovakvom slučaju govorimo o oklopljenoj parici ili o oklopljenom kablu (slika 4.?). Oklop se onda povezuje na zajedničku masu uređaja.

Bez obzira na upredanje parica i korištenje zaštitnog omotača, svaka parica i svaki kabl posjeduju određenu otpornost, kapacitet i induktivitet, koji su raspodijeljeni cijelom njihovom dužinom. Obzirom da mehanička konstrukcija parice i kabla, kao i vrsta korištenog materijala, određuju vrijednosti ovih veličina, time određuju i frekventne karakteristike parice i kabla u pogledu opsega frekvencija signala koji se bez većih deformacija može prenijeti kroz takav medij. Na žalost, granična frekvencija za signal koji se prenosi paricom ili kablom sa više parica nije visoka, čime je limitirana i brzina prijenosa podataka koja se može pouzdano ostvariti na ovakvom mediju određene dužine. Čitalac se upućuje na literaturu koja detaljnije tretira pomenutu problematiku, obzirom da ovdje neće biti data teorijska elaboracija fenomena prostiranja složenoperiodičnih signala kroz kola sa raspodijeljenim parametrima.

Koaksijalni kabl (slika 4.?) predstavlja pogodnu mehaničku konstrukciju provodnika kojima se prostire signal, a koja ima puno višu graničnu frekvenciju u odnosu na graničnu frekvenciju parice. Koaksijalni kabl se sastoji od centralnog provodnika i provodnog plašta, između kojih se nalazi određeni dielektrik. Izborom različitih vrsta materijala od kojega se pravi centralni provodnik i provodni plašt, materijala i debljine dielektrika, te načina konstrukcije centralnog provodnika, plašta i dielektrika se postižu različite karakteristike koaksijalnih kablova u pogledu prostiranja signala.

Podizanjem frekvencije signala koji se prostire kroz fizički medij, dolazi se do opsega frekvencija vidljive i nevidljive svjetlosti. Optičko vlakno predstavlja specijalni medij koji omogućava prostiranje

Page 6: Ugradbeni Sistemi-poglavlje 4

takvog optičkog signala, pri čemu je granična frekvencija signala koji se prenosi kroz optičko vlakno izrazito visoka. Iako se i optičko vlakno susreće kao medij za prijenos podataka između ugradbenih sistema, ugradbeni sistemi najčešće ne prenose tolike količine podataka da bi se opravdalo korištenje optičkog vlakna.

I na kraju, ogroman dio savremenih ugradbenih sistema komunicira bežično. Savremeni ugradbeni sistemi obično posjeduju baterijsko napajanje, i često su mobilni (prenosivi ili ugrađeni u pokretni objekat). Radi toga je bežična komunikacija vrlo često jedino rješenje koje omogućava nesmetanu komunikaciju u pokretu, ili koje pojednostavljuje instalaciju sistema. Na primjer, ugradbeni sistemi u bovama koje permanentno registruju temperaturu i druge veličine u okeanima i koje omogućavaju praćenje vremenskih prilika i okeanskih struja ne bi mogli postojati bez bežične komunikacije putem satelita. Slično, korištenjem bežične komunikacije u kućnom alarmnom sistemu se omogućuje jednostavno postavljanje takvog sistema, bez potrebe za kompliciranim i zahtjevnim postavljanjem kablova kojima bi se senzori povezali sa alarmnom centralnom. Danas ugradbeni sistemi koriste veliki broj različitih standarda za bežičnu komunikaciju, koji opet koriste različite frekventne opsege, od reda stotina kHz, preko reda desetina MHz i stotina MHz, pa sve do reda GHz i desetina GHz. Svaki od ovih frekventnih opsega ima svoje karakteristike, koje diktiraju pogodnost datog standarda za primjenu u određenim aplikacijama.

Da bi serijski prijenos podataka između predajnika i prijemnika uopće bio moguć, neophodno je da predajnik preko jedne linije (pina) postavlja vrijednosti napona koje signaliziraju vrijednosti bita podatka, pri čemu svaki bit podatka traje određeno vrijeme (slika 4.?). Na drugom kraju fizičkog medija, prijemnik treba da periodično uzorkuje vrijednost napona, te da u datim trenucima detektuje vrijednost bita podatka koji se prenosi. Međutim, da bi ovo bilo izvodivo, neophodno je da predajnik i prijemnik osim identičnog standarda koriste iste parametre komunikacije (trajanje pojedinačnih bita, odnosno brzinu komunikacije), te da za vrijeme prijenosa podataka postoji sinhronizacija između predajnika i prijemnika. U pogledu postojanja sinhronizacije između predajnika i prijemnika, komunikacija može biti:

• asinhrona,• sinhrona.

Asinhroni prijenos podataka podrazumijeva da se podaci prenose riječ po riječ (najčešće bajt po bajt), te da ne postoji stalna sinhronizacija između predajnika i prijemnika. Da bi se uspostavila sinhronizacija između predajnika i prijemnika neophodna za prijenos jednog podatka (npr. bajta), svaki podatak započinje tzv. start bitom i završava tzv. stop bitom (slika 4.?).

Kada predajnik treba započeti prijenos podatka, prvo na liniju šalje start bit, koji služi da prijemnik detektuje početak prijenosa podatka. Nakon što je detektovan start bit, uz usaglašenu identičnu brzinu i druge parametre komunikacije (kao što su npr. broj bita podatka i korištenje tzv. bita pariteta) na strani predajnika i strani prijemnika, uspostavljena je sinhronizacija između predajnika i prijemnika. Drugim riječima, sada prijemnik može početi uzorkovati vrijednost signala u tačno definiranim intervalima, te očitanu vrijednost protumačiti kao vrijednost primljenog podatka. Tako prijemnik treba da očitava vrijednost signala svakih Tb vremena (slika 4.?), počevši od Tb/2 nakon završetka trajanja start bita. U stvarnosti se najčešće uzorkovanje provodi dosta većom brzinom, čak do 50 puta u periodu trajanja prijenosa jednog bita, a onda prijemnik pokušava odrediti što tačnije sredinu bit intervala. Ovo je neophodno zbog postojanja različitih efekata vezanih za prostiranje signala, eventualnu pogrešnu detekciju početka i kraja start bita zbog djelovanja vanjskih smetnji, te radi korekcije zbog eventualnog odstupanja ili promjenljive brzine kojom predajnik emituje podatke.

Page 7: Ugradbeni Sistemi-poglavlje 4

Nakon prijenosa svih bita podatka, čiji broj je usaglašen između predajnika i prijemnika, slijedi stop bit. Ovaj bit služi kao indikacija završetka prijenosa podatka, a prijemnik na osnovu prijema stop bita može zaključiti da li je prijenos podataka protekao u redu. U slučaju izostanka prijema stop bita ili u slučaj da ovaj bit nije ispravno primljen, prijemnik indicira tzv. grešku uokvirivanja (Framing Error) i takav primljeni podatak se odbacuje. Trajanje stop bita je uobičajeno 1 Tb, 1,5 Tb ili 2 Tb.

Zbog različitih efekata se signal koji je poslan od strane predajnika pri prolasku kroz fizički medij deformiše. Do deformacije prije svega dolazi zbog ograničenog frekventnog opsega signala koji se nesmetano može prenijeti kroz medij, kao i različite brzine kojom kroz medij putuju različiti harmonici. Radi ovoga se oblik signala na početku i na kraju fizičkog medija mogu znatno razlikovati (slika 4.?), što za posljedicu može imati pogrešnu detekciju vrijednosti bita, bez obzira na postojanje sinhronizacije i usaglašenost parametara komunikacije između predajnika i prijemnika. Zato je neophodno na određen način provjeriti da li je podatak koji je primljen identičan poslanom podatku. Najjednostavniji način za provjeru ispravnosti prijenosa podataka predstavlja korištenje bita pariteta. Bit pariteta predstavlja dodatni bit koji predajnik šalje kao posljednji bit prije slanja stop bita, a čija vrijednost je određena brojem bita u podatku koji imaju vrijednost 1. Predajnik i prijemnik mogu usaglasiti korištenje parnog pariteta (Even Parity) ili neparnog pariteta (Odd Parity). Ukoliko se koristi parni paritet, vrijednost bita pariteta se postavlja na takvu vijednost da je ukupan broj prenesenih bita koji imaju vrijednost 1 (uključujući sve bite podatka i bit pariteta) paran (slika 4.?). Ukoliko se koristi neparni paritet, tada se bit pariteta postavlja na takvu vrijednost da je ukupan broj prenesenih bita koji imaju vrijednost 1 neparan.

Kada prijemnik primi podatak (zajedno sa bitom pariteta), na prijemnoj strani se ponovo izračunava vrijednost bita pariteta i ova izračunata vrijednost se upoređuje sa primljenom vrijednošću bita pariteta. Ukoliko su ove dvije vrijednosti identične, podatak se prihvata kao ispravno prenesen, a u protivnom se odbacuje. Iako se na ovaj način ne može u potpunosti eliminirati slučajevi pogrešnog prijema podataka, vjerovatnoća da će takva greška u prijenosu biti detektovana se povećava. Međutim, korištenje bita pariteta može poslužiti samo za detekciju pojave jednostruke greške u prijenosu podataka ili pojave greške neparne višestrukosti. Drugim riječima, korištenjem bita pariteta je moguće otkriti grešku u prijenosu podataka samo ukoliko je broj pogrešno prenesenih bita neparan. Ukoliko je broj pogrešno prenesenih bita paran, greška neće biti detektovana, jer će bit pariteta imati ispravnu vrijednost.

Danas postoje mnogo savremeniji i bolji načini provjere ispravnosti prijenosa podataka i detekcije (pa i automatske korekcije) grešaka u prijenosu podataka, tako da se bit pariteta koristi vrlo rijetko. Svi ovi mehanizmi detekcije i korekcije grešaka u prijenosu podataka predstavljaju sastavne dijelove komunikacijskih protokola, a mogu biti realizirani programski ili rjeđe u hardverskoj formi. Čitalac se vezano za problematiku detekcije i korekcije grešaka u prijenosu podataka, te vezano za različite kodove koji se koriste u tu svrhu, upućuje na adekvatnu literaturu iz date oblasti.

Bez obzira na korištenje start i stop bita, te korištenje bita pariteta, predajnik i prijemnik nisu u stanju

Page 8: Ugradbeni Sistemi-poglavlje 4

zadržati sinhronizaciju duže vrijeme, te se zbog toga asinhronim prijenosom prenose relativno kratki podaci. Razlog za ovo leži u činjenici da se trajanje perioda Tb na strani predajnika i prijemnika ipak razlikuje (npr. zato što su frekvencije sata predajnika i prijemnika, iz kojih se generiše Tb različite), ili zato što je primljeni signal znatno deformisan, te prijemnik nije u stanju održati sinhronizaciju. Osim toga, slanje start i stop bita i eventualno bita pariteta uz svaki podatak rezultira time da će procenat korisnih bita podatka u odnosu na ukupni broj prenesenih bita biti relativno nizak. Radi toga asinhroni prijenos podataka nije efikasan pri prijenosu veće količine podataka.

Ukoliko se prijenos podataka između predajnika i prijemnika odvija sinhrono, to znači da sinhronizacija između prijemnika i predajnika postoji stalno (ili barem duže vrijeme u odnosu na asinhroni prijenos podataka). Radi toga je sinhronim prijenosom moguće prenijeti podatke veće dužine i većim brzinama, nego što je to bio slučaj pri korištenju asinhronog prijenosa podataka. Sinhronizacija između predajnika i prijemnika kod sinhronog prijenosa podataka se može ostvariti tako što se osim bita podataka istovremeno prenosi i signal sata koji sinhronizira komunikaciju. Drugi način uspostavljanja i održavanja sinhronizacije između predajnika i prijemnika pri sinhronom prijenosu podataka se zasniva na korištenju različitih linijskih kodova, odnosno različitih načina kodiranja vrijednosti bita podatka koji se prenosi fizičkim medijem. Između svih često korištenih linijskih kodova, ovdje ćemo spomenuti:

• RZ (Return-to-Zero),• NRZ (Non-Return-to-Zero),• Manchester.

RZ linijski kod (slika 4.?) podrazumijeva da se vrijednost signala na polovici svakog bit intervala vraća na nulu). Na ovaj način prijemnik iz primljenog signala može jednostavno izvući signal za sinhronizaciju sa predajnikom, pošto se u svakom periodu Tb dešavaju dvije promene nivoa signala, jedna na početku bit intervala, druga na sredini bit intervala. Nedostatak ovog linijskog koda leži u činjenici da će se pojaviti znatna istosmjerna komponenta u slučajevima kada podatak koji se prenosi sadrži veći broj uzastopnih jedinica ili uzastopnih nula. Postojanje istosmjerne komponente otežava prijenos signala kroz fizički medij.

NRZ linijski kod (slika 4.?) podrazumijeva da se svaki bit koji ima vrijednost 1 kodira signalom jednog nivoa, a svaki bit koji ima vrijednost 0 kodira signalom drugog nivoa. Kod NRZ linijskog koda nema neutralnog nivoa signala, kao što je to bio slučaj kod RZ linijskog koda. Međutim, iz NRZ linijskog koda je puno teže izvući signal za sinhronizaciju, obzirom da broj promjena signala tokom određenog perioda ovisi o broju uzastopnih jedinica i uzastopnih nula. Radi toga je sinhronizaciju između predajnika i prijemnika teže održati. Postoje verzije NRZ linijskog koda kod kojega se nakon određenog broja uzastopnih jedinica ili uzastopnih nula ubacuje promjena nivoa signala, između ostalog baš radi toga da bi se omogućilo detektovanje signala za sinhronizaciju. Zato se NRZ najčešće koristi ili zajedno sa drugim načinom sinhronizacije (npr. uz istovremen prijenos signala za sinhronizaciju), ili se koristi za prijenos podataka manje dužine (kao što je to bio slučaj kod asinhronog prijenosa podataka).

Page 9: Ugradbeni Sistemi-poglavlje 4

Manchester linijski kod (slika 4.?) podrazumijeva da se svaki bit podatka kodira jednim prijelazom između dva nivoa signala. Tako npr. svaki bit čija je vrijednost 1 može biti kodiran prijelazom sa nižeg na viši nivo signala, a svaki bit čija je vrijednost 0 može biti kodiran prijelazom sa višeg na niži nivo signala. Radi toga će prijemnik biti u stanju detektirati svaku promjenu, i time ispravno očitati svaki preneseni bit.

Hardverski moduli za serijsku komunikaciju

Većina savremenih mikrokontrolera i mikroprocesora koji se koriste u ugradbenim sistemima posjeduje jedan ili više hardverskih modula za serijsku komunikaciju. U slučaju kada u okviru mikrokontrolera ne postoje ovakvi specijalizirani moduli, ili kada broj modula nije dovoljan za datu aplikaciju, serijska komunikacija po datom standardu se može realizirati softverski preko digitalnih ulaza i izlaza. Jasno je da prednost hardverskih modula leži u činjenici da se resursi mikroprocesora njihovim korištenjem oslobađaju za izvršavanje drugih zadataka, dok programska realizacija serijske komunikacije podrazumijeva zauzeće resursa mikroprocesora.

Tipični hardverski komunikacijski moduli koji se pojavljuju u savremenim mikrokontrolerima su:• USART ili UART (Universal Synchronous-Asynchronous Receiver/Transmitter),• SPI (Serial Peripheral Interface),• I2C (Inter-Integrated Circuit),• USB (Universal Serial Bus),• Ethernet.

Svaki od ovih hardverskih modula predstavlja implementaciju jednog ili više standarda za serijsku komunikaciju. Pri tome se komunikacija između mikroprocesora i hardverskog komunikacijskom modula odvija korištenjem radnih i konfiguracijskih registara. Više riječi o ovim modulima će biti u okviru predstavljanja komunikacijskih standarda.

Hardverski komunikacijski moduli se povezuju na fizički medij u skladu sa odgovarajućim standardom

Page 10: Ugradbeni Sistemi-poglavlje 4

koji implementiraju. Ukoliko je potrebno preći na drugi fizički medij u odnosu na onaj koji se koristi po datom standardu, koriste se odgovarajući dodatni moduli. Tako npr. ukoliko želimo omogući bežičnu komunikaciju sistema čiji mikrokontroler posjeduje SPI hardverski komunikacijski modul, potrebno je koristititi dodatni komunikacijski modul koji s jedne strane omogućava komunikaciju po SPI standardu, a s druge željenu vrstu bežične komunikacije. Često i takav modul u sebi posjeduje specijalizriani mikrokontroler ili mikroprocesor, a izgled jednog dakvog modula koji omogućava prijelaz na ZigBee (IEEE 802.15.4) bežični standard je dat na slici 4.?.

USART/UART

U nastavku će biti riječi u hardverskom komunikacijskom modulu koji se naziva USART (Universal Synchronous-Asynchronous Receiver/Transmiter) ili UART (Universal Asynchronous Receiver/Transmiter). Radi se o najčešće susretanom hardverskom komunikacijskom modulu, koji omogućava sinhroni ili asinhroni prijenos podataka. USART se može konfigurisati kako za sinhroni prijenos podataka, tako i za asinhroni prijenos podataka, dok UART omogućava samo asinhroni prijenos podataka. Karakteristike svakog hardverskog komunikacijskom modula ovise o konkretnom modelu mikrokontrolera čiji su dio.

USART/UART posjeduje pin za predaju podataka na liniju (TX pin) i pin za prijem podataka sa linije (RX pin). Obzirom da USART/UART koristi unipolarni naponski signal od 3,3V ili 5V (slika 4.?), neophodno je koristiti još i masu uređaja. Radi toga je za uspostavljanje dupleksne veze između dva USART/UART-a potrebno koristiti tri linije, liniju koja povezuje TX pin prvog učesnika sa RX pinom drugog učesnika (za prijenos podataka od prvog prema drugom učesniku), liniju koja povezuje TX pin drugog učesnika sa RX pinom prvog učesnika (za prijenos podataka od drugog prema prvom učesniku) i liniju koja će formirati zajedniču masu za oba učesnika u komunikaciji. Osim ovog minimalnog skupa linija, često se koriste još i linije za hardversko upravljanje tokom prijenosa podataka. Ovi signali se javljaju u parovima:

• RTS (Request To Send) i CTS (Clear To Send) i• DTR (Data Set Ready) i DTR (Data Terminal Ready).

Pri tome se podizanjem nivoa na izlazima RTS ili DTR signalizira zahtjev za slanje podatka. Slanje bita podatka započinje tek kada se na liniji CTS ili DTR detektuje visoki nivo naponskog signala. Na ovaj način predajnik može zahtijevati slanje podatka, a prijemnik može potvrditi da je spreman za prijem podatka, odnosno zaustaviti slanje podatka. O načinima upravljanja tokom prijenosa podataka će biti riječi malo kasnije.

RTS/CTS i DTR/DSR linije ne postoje na svim hardverskim komunikacijskim modulima koji se sureću u savremenim mikrokontrolerima.

Page 11: Ugradbeni Sistemi-poglavlje 4

Postojanje više različitih unipolarnih naponskih nivoa predstavlja jedan od razloga zbog kojega se za uspostavljanje serijske veze između dva USART/UART-a koriste standardi za serijsku komunikaciju.

Najrašireniji standardi za serijsku komunikaciju

Među najraširenije standarde za serijsku komunikaciju, pogotovo ako se u vidu ima komunikacija između različitih vrsta uređaja (npr. između PC računara i perifernog uređaja, PC računara i različtih ugradbenih sistema ili PC računara i različite instrumentacije) spadaju:

• RS-232 (EIA/TIA-232-E, ITU-T V.24),• RS-422 (ANSI/EIA/TIA-422-B, ITU-T V.11),• RS-485 (EIA-485),• SPI (Serial Peripheral Interface),• I2C (Inter-Integrated Circuit).

Standard RS-232 predstavlja vrlo stari standard, koji je uglavnom bio namijenjen za komunikaciju računara sa perifernim uređajima (npr. sa štampačem), a još i danas se nalazi u upotrebi unatoč svim njegovim nedostacima. Ovaj standard su specificirale različite organizacije, kao to su Electronic Industries Alliance (EIA), Telecommunications Industry Association (TIA), odnosno sektor za standardizaciju telekomunikacija Međunarodne unije za telekomunikacije (ITU-T).

Standard RS-422 predstavlja standard koji omogućava slanje podataka do više prijemnika većim brzinama u odnosu na RS-232.

RS-485 omogućava slanje podataka od više predajnika do više prijemnika, za razliku od RS-422 kod koga postoji samo jedan predajnik.

SPI i I2C predstavljaju standarde serijske komunikacije između različitih modula u okviru istog sistema, o čemu će više riječi biti kasnije.

RS-232

Standard RS-232 je definaran od strane EIA još 1962. godine, s ciljem da se omogući prijenos podataka između host sistema koji predstavlja terminal (DTE - Data Terminal Equipment) i periferijskog uređaja (DCE – Data Circuit Terminating Equipment). Tako je na primjer ovaj standard korišten za povezivanje računarskog terminala sa računarom, povezivanje računara sa štampačem, ili povezivanje računara sa modemom (slika 4.?).

Standard RS-232 omogućava komunikaciju tačka u tačku, odnosno komunikaciju između dva učesnika. Pri tome se komunikacija može odvijati simpleksno, semidupleksno ili dupleksno. Prijenos podataka može biti sinhroni ili asinhroni, ali se RS-232 danas gotovo isključivo koristi za asinhroni prijenos podataka relativno malim brzinama na malu udaljenost.

Page 12: Ugradbeni Sistemi-poglavlje 4

RS-232 definira i standardne brzine komunikacije: 1200bps (bita u sekundi), 2400bps, 4800bps, 9600bps, 14400bps, 19200bps, 38600bps, 57600bps, 115200bps i 230400bps. Interfejs po ovakvom standardu je u prošlosti bio nezaobilazan na svakom PC računaru (obično do brzine od 115200bps), dok se danas susreće sve rjeđe. Osnovni razlozi za to leže u neuobičajenim naponskim nivoima koje koristi, maloj brzini prijenosa podataka, te izrazito kompliciranom ožičenju i nezgrapnim konektorima.

Osnovne električne karakteristike interfejsa po standardu RS-232 su date u tabeli 4.?, a na slici 4.? su ilustrovani korišteni naponski nivoi.

Kako se može vidjeti, RS-232 definira bipolarne naponske nivoe za predstavljanje vrijednosti bita podatka, s tim da negativni napon iz opsega od -3V do -15V u odnosu na zajedničku masu (MARK) predstavlja bit vrijednosti 1, a pozitivni napon iz opsega od +3V do +15V u odnosu na zajedniču masu (SPACE) predstavlja bit vrijednosti 0. Očigledno je da se za predstavljanje vrijednosti bita podatka koristi negativna logika, pri čemu naponski nivoi nisu usaglašeni sa tipičnim unipolarnim standardima koji se danas koriste (kao što su TTL nivo od 5V ili danas često korišteni nivo od 3,3V). Razlog za ovo vjerovatno leži u činjenici da je standard RS-232 definiran prije nego što se pojavila TTL tehnologija za realizaciju logičkih kola, koja je kasnije uspostavila de facto standardno tumačenje naponskh nivoa u računarstvu uopće. U mirnom stanju (IDLE), kada nema prijenosa podataka, linija se nalazi na negativnom potencijalu (MARK). Ovo omogućava prijemniku jednostavnu detekciju početka start bita, obzirom da start bit uvijek ima vrijednost 0 (slika 4.?).

Page 13: Ugradbeni Sistemi-poglavlje 4

Može se vidjeti da RS-232 omogućava komunikaciju između uređaja na relativno maloj udaljenosti, do desetak metara, pri čemu se kao medij koriste obični provodnici, odnosno parice. Važan je i podatak o struji koju može dati interfejs po standardu RS-232. Iako standard specificira da interfejs može dati i 500mA, današnje implementacije obično ne mogu dati struju veću od desetak miliampera.

RS-232 definira i ožičenje i fizički interfejs koji se koristi za međusobno povezivanje uređaja. Tako su na slici 4.? predstavljeni uobičajeni konektori koji se koriste za povezivanje uređaja po standardu RS-232, a u tabeli 4.? je dat pregled funkcija pojedinačnih linija i veza ovih linija sa pinovima na standardnim konektorima.

Page 14: Ugradbeni Sistemi-poglavlje 4

Iako su specificirane funkcije ukupno devet linija, uključujući i linije koje služe za indiciranje poziva i indiciranje postojanja signala za slobodno biranje od strane modema, za uspostavljanje simpleksne komunikacije između dva uređaja je dovoljno koristiti dvije, a za uspostavljanje dupleksne komunikacije ukupno tri linije.

Kako je već spomenuto, RS-232 definira prilično kompleksno ožičenje interfejsa, što često zna biti problematično pri pokušaju uspostave komunikacije po ovom standardu. Jedan od razloga za to je postojanje dvije asimetrične uloge u komunikaciji (DTE i DCE), uz korištenje vrlo sličnih konektora. Radi toga postoje dvije osnovne vrste kablova kojima se povezuju uređaji koji komuniciraju po standardu RS-232 (slika 4.?):

• kabl DTE-DCE (straight kabl),• null-modem kabl (kabl DTE-DTE, cross-over kabl).

Kabl DTE-DCE predstavlja standardni kabl koji omogućava povezivanje hosta sa perifernim uređajem kao što je štampač ili modem (slika 4.?).

Ukoliko se povezuju dva hosta, tada je potrebno koristiti DTE-DTE kabl (slika 4.?).

Već postojanje ovoliko različitih načina fizičkog povezivanja uređaja predstavlja čest izvor poteškoća.

Još jedan važan element svakog standarda predstavlja definiranje načina upravljanja tokom prijenosa podataka (što se još naziva handshaking). Pod tim se podrazumijeva način na koji predajnik zahtijeva da počne sa slanjem podataka (odnosno način na koji predajnik obavještava prijemnik da će uslijediti prijenos podataka), te način na koji prijemnik predajniku saopštava da je spreman za prijem podatak (odnosno način na koji prijemnik može zaustaviti prijenos podataka). Razlog za postojanje ovog mehanizma leži u činjenici da je prijemnik povezan sa primaocem podataka, a da se između prijemnika i primaoca obično nalazi određena memorija malog kapaciteta (buffer). Ukoliko primalac ne preuzme

Page 15: Ugradbeni Sistemi-poglavlje 4

na vrijeme primljene podatke iz prijemnog buffera, on će se popuniti. Svaki novi podatak koji prijemnik primi zbog toga ne može biti pohranjen, te mora postojati mehanizam kojim prijemnik može zaustaviti slanje podataka od strane predajnika. Kada se prijemni buffer oslobodi, prijemnik ponovo može signalizirati predajniku da nastavi sa slanjem podataka. Na ovaj način se obezbjeđuje da prijemni buffer ne bude prepunjen (buffer overflow), što rezultira gubitkom podataka. Veličina prijemnog buffera ovisi o konkretnom mikroprocesoru i USART/UART-u, a o tome će biti riječi pri predstavljanju tipičnih mikrokontrolera.

U okviru standarda RS-232 su definirana dva načina upravljanja tokom prijenosa podataka između učesnika u komunikaciji:

• hardversko upravljanje tokom prijenosa podataka,• softversko upravljanje tokom prijenosa podataka.

Za hardversko upravljanje tokom prijenosa podataka se koriste parovi linija RTS/CTS ili DTR/DSR, što zahtijeva korištenje više od tri linije za povezivanje učesnika u komunikaciji. Kako je prikazano u primjeru na slici 4.?, predajnik postavljanjem signala RTS na vrijednost 0 signalizira da treba započeti slanje podataka. Prijemnik postavljanjem signala CTS na vrijednost 0 signalizira da slanje podataka može započeti, nakon čega predajnik započinje slanje podataka. Ukoliko se npr. prijemni buffer popuni, prijemnik će signal CTS postaviti na 1 i time zaustaviti predajnik. Kada se buffer oslobodi, prijemnik ponovo postavi signal CTS na 0, nakon čega predajnik nastavi sa slanjem podataka. Kada svi podaci budu preneseni, predajnik postavi signal RTS na 1. Očigledno se i signali za upravljanje tokom podataka koriste u negativnoj logici. Na identičan način se koristi par signala DTR (koji postavlja predajnik) i DSR (koji ostavlja prijemnik).

Danas se hardversko upravljanje tokom podataka kod standarda RS-232 rjeđe koristi, uglavnom zbog neopravdanog povećanja broja linija potrebnih za povezivanje uređaja.

Softversko upravljanje tokom prijenosa podataka podrazumijeva korištenje specijalnih ASCII karaktera kojima prijemnik pokreće i zaustavlja slanje podataka od strane predajnika. Iako to nije isključivo pravilo, za ovu svrhu se obično koriste karakteri sa ASCII kodovima 17 (0x11, DC1, odnosno XON) i 19 (0x13, DC2, odnosno XOFF). Na primjeru sa slike 4.? se vidi da prijemnik slanjem karaktera XON predajniku signalizira da slanje podataka može započeti. Predajnik započinje sa slanjem podataka (ukoliko se podaci nalaze u predajnom bufferu), ili registruje da je prijemnik omogućen. Nakon što se npr. prijemni buffer popuni, prijemnik pošalje karakter XOFF. Predajnik po prijemu ovog karaktera zaustavlja slanje podataka, sve do ponovnog prijema karaktera XON.

Page 16: Ugradbeni Sistemi-poglavlje 4

Obzirom da ugradbeni sistemi (naročito u aplikacijama u kojima se koristi komunikacija po standardu RS-232) uglavnom prenose relativno male količine podataka, pri čemu brzine komunikacije nisu velike, a broj grešaka koje se pojavljuju u prijenosu je izuzetno mali, često se ne koristi nikakvo upravljanje tokom prijenosa podataka na nivou standarda RS-232. U takvim slučajevima se upravljanje tokom prijenosa i provjera ispravnosti prijenosa mogu realizirati programski. Ovo u stvari predstavlja naznaku slojevite organizacije komunikacije između učesnika u komunikaciji, o čemu će više riječi biti kasnije.

Kako je već rečeno, standard RS-232 definira bipolarne naponske nivoe kojima se predstavljaju vrijednosti bita podatka. Obzirom da USART/UART koristi unipolarne naponske nivoe (5V ili 3,3V) za predstavljanje bita podatka, za povezivanje mikrokontrolera sa drugim uređajem po RS-232 standardu je neophodno izvršiti odgovarajuće pretvaranje jednih naponskih nivoa u druge (slika 4.?).

U tu svrhu se koriste različita integrirana kola, koja pojednostavljuju ovo pretvaranje naponskih nivoa. Tako npr. kolo MAX232 proizvođača Maxim (slika 4.?) omogućava da se iz unipolarnog napajanja od +5V, uz pomoć dodatnih kondenzatora dobiju bipolarni naponski nivoi. Time je izbjegnuta potreba za korištenjem više naponskih izvora, što je neophodno kada se koriste neka starija integrisana kola.

Page 17: Ugradbeni Sistemi-poglavlje 4

Šema povezivanja mikrokontrolera sa konektorom po RS-232 standardu uz korištenje kola MAX232 je predstavljena na slici 4.?.

RS-422

Najveći nedostaci standarda RS-232 su ograničenje na samo dva učesnika u komunikaciji, te jako mala udaljenost na kojoj se može ostvariti pouzdana komunikacija. Ugradbeni sistem često predstavlja dio distribuiranog sistema, pri čemu su elementi takvog distribuiranog sistema međusobno prilično udaljeni. Tako se, na primjer, sistem za video nadzor nekog prostora ili objekta sastoji od centralne jedinice za nadzor (koja može biti PC računar sa specijaliziranim softverom) i većeg broja kamera raspoređenih po nadziranom prostoru ili objektu. Ove kamere često posjeduju mogućnost zadavanja horizontalnog položaja (PAN), vertikalnog položaja (TILT) i mogućnost uvećavanja i umanjivanja dijela prostora koji se posmatra (ZOOM). Ove posljednje tri funkcije su realizirane tako što kamera u stvari predstavlja ugradbeni sistem sa svojim mikrokontrolerom, koji upravlja motorima koji mehanički realiziraju pomenute funkcije, a na osnovu komandi primljenih od strane centralne jedinice za nadzor. Očigledno ovdje mora postojati simpleksna komunikacija od centralne jedinice za nadzor prema svim kamerama (slika 4.?).

Page 18: Ugradbeni Sistemi-poglavlje 4

Standard RS-422 umjesto naponskih nivoa koristi diferencijalni naponski signal (slika 4.?), čime je omogućena ispravna detekcija vrijednosti bita na puno većoj udaljenosti (čak do 1200 m) puno većim brzinama (100kbps do 10Mbps). Pri tome se brzina od 10Mbps može ostvariti na udaljenosti do 12m, a brzinom do 100kbps se može ostvariti prijenos na maksimalnoj udaljenosti. RS-422 se može koristiti za povezivanje dva učesnika u komunikaciji na većoj udaljenosti, ali standard dozvoljava postojanje jednog predajnika i više prijemnika (do 10 po standardu, ali savremene realizacije dozvoljavaju puno veći broj prijemnika, što ovisi o opterećenju koje predstavlja jedan prijemnik).

Kod diferencijalnog signala se, u odnosu na unipolarni ili bipolarni signal) za predstavljanje vrijednosti bita ne koristi nivo napona u odnosu na masu, nego se svaka vrijednost bita kodira jednim smjerom razlike potencijala između dva provodnika (slika 4.?).

Međutim, da bi se ostvarila komunikacija od jednog predajnika do više prijemnika, mora postojati način da svaki od prijemnika može uzorkovati signal koji emituje predajnik. Osnovne topologije komunikacijskih mreža koje ovo omogućavaju su:

• potpuno povezana mreža (Mesh),• zvijezda (Star),• prsten (Ring),• sabirnica (Bus).

Slika 4.? prikazuje osnovne topologije komunikacijskih mreža koje se nalaze u upotrebi. Pod komunikacijskom mrežom podrazumijevamo mrežu koja se sastoji od komunikacijskih čvorova (učesnika u komunikaciji) i veza između komunikacijskih čvorova.

Page 19: Ugradbeni Sistemi-poglavlje 4

Kod potpuno povezane komunikacijske mreže se svaki komunikacijski čvor povezuje sa svakim komunikacijskim čvorom. Očigledno ovakav način povezivanja nije efikasan kod žične komunikacije, pošto podrazumijeva postojanje velikog broja međusobnih veza.

Zvijezda predstavlja mrežnu topologiju, kod koje su komunikacijski čvorovi povezani preko jednog centralnog čvora (koncentratora). Ovakva mrežna topologija se koristi vrlo često u savremenim mrežama. Jedan eventualni nedostatak topologije zvijezde leži u činjenici da otkazivanje centralnog čvora prekida sve međusobne veze.

Prsten predstavlja mrežnu topologiju kod koje svaki čvor ima svog prethodnika i svog sljedbenika, a sljedbenik posljednjeg čvora u mreži je prvi čvor. Prijenos podataka u ovakvoj mreži se vrši ciklično, tako što se podaci od čvora pošiljaoca prosljeđuju do njegovog sljedbenika i na isti način dalje, sve dok ne stignu do primaoca. Topologija prstena se prije koristila jako često, a i sada je u upotrebi u određenim industrijskim aplikacijama.

I na kraju, sabirnica predstavlja mrežnu topologiju koja je vrlo pogodna za povezivanje čvorova u komunikacijskoj mreži, iz razloga što je omogućeno relativno jednostavno postavljanje fizičkog medija. Fizički medij (npr. parica) prolazi redom pored svakog komunikacijskog čvora, čime se uz adekvatan odabir staze koja povezuje čvorove, minimizira dužina medija. Eventualni nedostatak topologije sabirnice leži u činjenici da prekid sabirnice znači razdvajanje mreže na dva dijela, uz degradaciju uslova prostiranja na mreži, te da se zauzeće sabirnice jako brzo povećava sa povećanjem broja čvorova.

Kada se koristi mrežna sabirnica, svi čvorovi povezani na sabirnicu mogu detektovati signale koji postoje na sabirnici. Obzirom da svi čvorovi dekodiraju signale sa sabirnice, potrebno je uvesti odgovarajući mehanizam koji omogućava da pošiljalac podataka specificira primaoca podataka. Drugim riječima, potrebno je da pošiljalac osim podataka koji se prenose specificira i adresu primaoca.

Radi toga je potrebno definirati odgovarajući protokol, koji će omogućiti ispravan prijenos podataka od pošiljaoca do željenog primaoca. O ovome će riječi biti malo kasnije.

Postoji još jedna specifičnost vezana za realizaciju sabirnice. Sabirnica se često realizira korištenjem koaksijalnog kabla ili (kod ugradbenih sistema još češće) parice. Bez obzira koji žični medij se koristi za realizaciju sabirnice, on će posjedovati određenu raspodijeljenu otpornost, induktivnost i kapacitet. Radi toga je za postizanje optimalnih uslova za prostiranje signala potrebno obezbijediti da je sabirnica sa svakog kraja zatvorena (terminirana) karakterističnom impendansom. Kada se za realizaciju sabirnice koristi parica, ova karakteristična impendansa iznosi oko 120Ω. To znači da je na svakom kraju parice koja predstavlja sabirnicu potrebno spojiti otpornik od 120Ω, kako bi se izbjegla refleksija signala na krajevima sabirnice, koja će za posljedicu imati slabljenje i deformaciju oblika signala. Kada je sabirnica manje dužine i kada su brzine prijenosa podataka manje, pouzdan prijenos podatak se može ostvariti i bez terminiranja sabirnice. Međutim, uz povećanje dužine sabirnice i brzine prijenosa podataka, terminiranje sabirnice karakterističnom impendansom postaje neophodno.

RS-485

Standard RS-422 je uveo novinu u pogledu vrste signala koji se koristi za predstavljanje naponskih

Page 20: Ugradbeni Sistemi-poglavlje 4

nivoa, te u pogledu broja prijemnika signala na liniji. Međutim, ograničenje na postojanje samo jednog predajnika predstavlja smetnju za veliki broj aplikacija. Tako, recimo, moduli distribuiranog sistema za upravljanje zgradom, osim primanja komandi od strane centralne jedinice sistema, treba da šalju podatke o stanju (prozor otvoren ili zatvoren, vrata zaključana ili otključana) i mjerenja (temperatura, vlažnost i sl.) u prostorijama koje nadziru.

Standard RS-485 omogućava uvezivanje do 32 komunikacijska čvora korištenjem sabirničke topologije, pri čemu na sabirnici može postojati više predajnika i više prijemnika. Svaki komunikacijski čvor na sabirnici predstavlja jedinično opterećenje (UL-Unit Load) i, iako standard specificira maksimum od 32 čvora, savremene RS-485 mreže dozvoljavaju da se na sabirnicu priključi i do 128 čvorova (tako što je jedinično opterećenje koje predstavlja jedan čvor na sabirnici smanjeno četiri puta). RS-485 kao i RS-422 koristi diferencijalni signal, a na udaljenosti do 10m se postižu brzine prijenosa podataka do 35Mbps. Maksimalna udaljenost do 1200 m se može postići pri brzinama do 100kbps, kao i kod RS-422. Ukoliko je potrebno ostvariti komunikaciju na većim udaljenostima, koriste se pojačavači (repeateri), tako da se udaljenost može višestruko uvećati. Međutim, sa povećanjem dužine sabirnice treba voditi računa i o vremenu potrebnom za prijenos podataka s jednog do drugog kraja sabirnice (što mora biti uzeto u obzir od strane algoritama koji se izvršavaju na čvorovima, naročito ako se radi o aplikacijama u upravljanju dinamičkim sistemima).

Povezivanje hardverskog modula za serijsku komunikaciju sa sabirnicom

Da bi se USART/UART povezao na sabirnicu, potrebno je korištenje odgovarajućeg predajnika i prijemnika (u slučaju da se radi o standardu RS-422), odnosno primopredajnika (u slučaju da se radi o standardu RS-485). Način povezivanja prijemnika i predajnika sa sabirnicom po RS-422 standardu, te primopredajnika po RS-485 standardu je predstavljen na slici 4.?.

Kako se može vidjeti na slici 4.? a), predajnik na RS-422 sabirnicu emituje signal koji dolazi do svih prijemnika koji su na nju povezani. Kraj sabirnice je terminiran otpornikom od 120Ω. U slučaju sabirnice po standardu RS-485, oba kraja sabirnice su terminirana otpornikom od 120Ω, obzirom da se sada predajnici nalaze na većem broj mjesta na sabirnici. Još jedna specifičnost RS-485 sabirnice u

Page 21: Ugradbeni Sistemi-poglavlje 4

odnosu na RS-422 sabirnicu je to što je na svakom primopredajniku potrebno upravljati i smjerom toka podataka. Naime, u svakom trenutku na sabirnici može postojati samo jedan predajnik, a svi ostali čvorovi su prijemnici. Drugim riječim, samo jedan primopredajnik treba imati omogućen predajnik, dok svi drugi primopredajnici trebaju imati onemogućen predajnik, a omogućen prijemnik. Radi toga je za povezivanje mikroprocesora sa RS-485 sabirnicom, osim korištenja signala TX, RX i mase, potrebno koristiti još jedan digitalni izlaz, čija funkcija će biti da se preko njega po potrebi omogućava predajnik ili prijemnik (slika 4.?).

Primopredajnik je realiziran u formi integriranog kola i postoji veliki broj integriranih kola koja se mogu koristiti za komunikaciju po RS-485 standardu. Jedno od takvih integriranih kola je kolo MAX485 proizvođača Maxim (slika 4.?).

Kada se na pin 2 ovog kola dovede napon od 0V, omogućava se prijemnik. Kada se na pin 3 dovede napon od 5V ili napon od 3,3V, omogućava se predajnik. Najčešće se ova dva pina kratko spoje, tako da se i prijemnik i predajnik mogu omogućiti i onemogućiti preko jednog digitalnog izlaza. Tako će u slučaju da je na upravljačkom digitalnom izlazu postavljen napon od 0V biti omogućen prijemnik, a onemogućen predajnik. Kada se na digitalni izlaz postavi napon od 5V, biće omogućen predajnik, a onemogućen prijemnik.

Primjer povezivanja četiri mikrokontrolera na RS-485 sabirnicu, uz korištenje integriranih primopredajnika MAX485, je predstavljen na slici 4.?.

Page 22: Ugradbeni Sistemi-poglavlje 4

Postojanje više pošiljalaca na istoj sabirnici dovodi do potrebe za rješavanjem još jednog problema, koji je već maloprije spomenut. Naime, u jednom trenutku samo jedan predajnik može emitirati signal, odnosno u jednom trenutku samo jedan pošiljalac može slati podatke na sabirnicu. Radi toga je potrebno definirati pravila koja će onemogućiti da u jednom trenutku više pošiljalaca počne slanje podataka. Obzirom da je ovaj mehanizam dio implementacije protokola za komunikaciju, o tome će više riječi biti malo kasnije. Ovdje ćemo samo spomenuti da postoje dva osnovna tipa upravljanja pristupom fizičkom mediju:

• master-slave,• osluškivanje prije predaje.

Master-slave upravljanje pristupom mediju podrazumijeva da postoji asimetrija u pogledu uloge komunikacijskih čvorova. Jedan komunikacijski čvor predstavlja master čvor, dok su ostali komunikacijski čvorovi slave čvorovi. Cjelokupna komnikacija na dijeljenom komunikacijskom mediju je kod ovog pristupa pod kontrolom master čvora. Master inicira bilo kakav prijenos podataka, bilo da se radi po prijenosu podataka prema nekom slave čvoru, bilo da se traži slanje podataka od nekog slave čvora. Drugim riječima, master proziva slave čvorove i u okviru poruke im šalje komandu, na osnovu koje slave čvor ili prima poslane podatke ili izvršava neku akciju i vraća podatke koji su rezultat akcije. Prozivanje slave čvorova može ići ciklično, ali često se prozivanje čvorova organizira po prioritetima. U nekim implementacijama ovog pristupa postoji i mogućnost da pod određenim uvjetima slave čvor inicira slanje podataka, bez da je prozvan od strane master čvora.

Ideja osluškivanja prije predaje je vrlo jednostavna i predstavlja još jedan efikasan način za upravljanje pristupom dijeljenom komunikacijskom mediju. Čvor koji ima podatke za slanje, prije nego započnje

Page 23: Ugradbeni Sistemi-poglavlje 4

slanje podataka na sabirnicu, osluškuje da li je na sabirnici već u toku neka razmjena podataka. Ukoliko detektuje postojeći prijenos podataka, čvor sačeka da se prijenos završi, pa tek kada je sabirnica slobodna započne sa prijenosom podataka. Međutim, i pored toga se može desiti da dva čvora trebaju početi slati podatke, te pošto i jedan i drugi ustanove da je sabirnica slobodna, započnu slanje podataka u istom trenutku. Tada dođe do kolizije na sabirnici i potrebno je da svi čvorovi koji su započeli slanje podataka prekinu emitiranje, sačekaju neko vrijeme i ponove proceduru pristupa sabirnici. Sve ovo je ugrađeno u protokole koji omogućavaju prijenos podataka, a koriste sličan mehanizam slučajnog pristupa dijeljenom mediju.

SPI

SPI (Serial Peripheral Interface bus) predstavlja način sinhrone serijske komunikacije, koji je specificirala Motorola. Iako ni jedna međunarodna organizacija za standardizaciju nije izdala standard vezan za SPI, zbog svoje jednostavnosti je ovaj način komunikacije postao toliko raširen, da se može reći da predstavlja de facto standard u industriji. Gotovo da nema mikroprocesora ili mikrokontrolera koji ne posjeduje barem jedan hardverski SPI modul. Svakako se SPI može realizirati i programski, u slučaju da na mikrokontroleru ne postoji hardverski modul.

SPI je namijenjen za komunikaciju putem sabirnice na maloj udaljenosti, između komponenti ugradbenog sistema. Tako se npr. SPI koristi za komunikaciju između mikroprocesora i flash memorije, displeja, D/A i A/D konvertora i sl.

Upravljanje komunikacijom je po master-slave principu, pri čemu na sabirnici u jednom trenutku može postojati samo jedan master. Komunikacija je dupleksna i odvija se sinhrono, pri čemu master generira signal sinhronizacije. Ovaj signal se od master čvora prenosi do svih slave čvorova.

Za povezivanje mastera sa slave čvorom se koristi ukupno pet linija (sl. 4.?):• MOSI (Master Out Slave In) – nekada se označava i sa SI ili SDI,• MISO (Master In Slave Out) – nekada se označava i sa SO ili SDO,• SCLK (Serial Clock) – nekada se označava i sa SCK,• CS (Chip Select) – nekada se označava i kao SS,• GND – masa.

MOSI predstavlja jednosmjernu liniju preko koje master čvor šalje podatke slave čvoru. MISO je jednosmjerna linija preko koje slave čvor šalje podatke master čvoru. SCLK linija služi da bi preko nje master čvor emitirao signal sata za sinhronizaciju. CS predstavlja izlanu liniju master čvora, a ulaznu liniju slave čvora, koja služi da master čvor omogući slave čvor sa kojim komunicira, tako što će liniju dovesti na napon 0V. Kada je ova linija na naponu +Vcc, slave čvor je onemogućen i odspojen od sabirnice. Master čvor ima po jednu CS liniju za svaki slave čvor sa kojim komunicira (slika 4.?). Ukoliko u komunikaciji učestvuju samo jedan master i jedan slave čvor, onda se ova linija ne mora

Page 24: Ugradbeni Sistemi-poglavlje 4

koristiti, a CS ulaz na slave čvoru tada treba povezati sa masom.

Svaki učesnik u komunikaciji koji komunicira preko SPI sabirnice posjeduje jedan pomični (shift) registar. SPI koristi jednostavan način razmjene podataka između master i slave čvora, tako što se podaci upišu u pomični registar, a onda se sa svakim impulsom signala za sinhronizaciju jedan bit iz pomičnog registra mastera prebaci u pomični registar slave čvora (slika 4.?).

U isto vrijeme se i jedan bit iz pomičnog registra slave čvora prebaci u pomični registra mastera. Prijenos podatka između pomičnih registara traje onoliko impulsa signala sinhronizacije kolika je dužina podatka. U slučaju da jedan od podataka koji su preneseni nije potreban (na primjer kada master čvor šalje podatak slave čvoru, a ne očekuje prijem nikakvog podatka od slave čvora), on se odbacuje. Obično SPI moduli imaju pomični registar određene dužine, pri čemu je moguće konfigurisati dužinu podatka koji se prenose, tako da SPI omogućava prijenos podataka čija dužina može biti različita.

Dužina podatka koji se obično prenosi preko SPI sabirnice je između 4 i 16 bita. Neki moduli, kao što su memorije i displeji, omogućavaju prijenos višebajtnih podataka u okviru jednog transfera. U takvim slučajevima se prvo prenosi komanda (npr. komanda za upis vrijednosti niza bajta u memoriju), zatim višebajtna adresa (npr. adresa početne lokacije u memoriji), i na kraju niz bajta podataka (koji se upisuju od početne lokacije na dalje). Na ovaj način je moguće prenijeti i više KB podataka u okviru jednog transfera.

Neki SPI moduli omogućavaju povezivanje više slave čvorova u lanac (daisy chain), kao na slici 4.?.

Page 25: Ugradbeni Sistemi-poglavlje 4

U ovom slučaj pomični registri svih slave čvorova formiraju jedan veliki pomični registar. Sada nije neophodno da master čvor koristi CS linije da bi omogućio slave čvor kome treba prenijeti podatke, nego se podatak prenosi tako što se biti prebacuju određen broj puta, sve dok ne dospiju u pomični registar odredišnog slave čvora. Nedostatak ovakvog pristupa predstavlja činjenica da vrijeme prijenosa podatka do svakog od slave čvorova nije identično, nego ovisi o poziciji pomičnog registra slave čvora u lancu.

Postoje četiri moda rada SPI sabirnice. Ovi modovi su određeni polaritetom (CPOL) i fazom (CPHA) signala za sinhronizaciju (tabela 4.?). Polaritet signala za sinhronizaciju određuje koji nivo signala je aktivan.

Tako će za CPOL=0 izlaz SCLK biti na nižoj vrijednosti kada nema komunikacije, a za CPOL=1 će ovaj signal u tom slučaju biti na višoj vrijednosti. Faza signala sinhronizacije određuje da li će se prijenos bita dešavati na rastuću ili opadajuću ivicu signala za sinhronizaciju (slika 4.?). Svaki slave modul podržava barem jedan od ova četiri načina rada, što je uvijek naznačeno u dokumentaciji uređaja.

Treba napomenuti da brzina komunikacije putem SPI sabirnice nije standardizirana, ali se u pravilu mogu postići velike brzine komunikacije (reda Mbps). Pri tome realizacija SPI uređaja može ograničiti maksimalnu brzinu, tako da je za svaki uređaj potrebno provjeriti u dokumentaciji koja je maksimalna brzina kojom može komunicirati.

Page 26: Ugradbeni Sistemi-poglavlje 4

I2C

SPI standard je omogućio da se na jednostavan način povežu komponente koje se nalaze na maloj udaljenosti unutar jednog mikroračunarskog sistema. Philips Semiconductors (današnji NXP) je definirao svoje rješenje za sličnu namjenu, a nazvao ga je I2C (Inter-Integrated Circuit). Nekada se ovaj način komunikacije označava i kao I2C ili IIC. I u ovom slučaju se radi o serijskoj sinhronoj sabirnici na master-slave principu, na kojoj može postojati više master čvorova i više slave čvorova (s tim da u jednom trenutku samo jedan čvor na sabirnici može biti master). Ni I2C ne predstavlja zvanični standard definiran od strane organizacija za standardizaciju, ali se nalazi u širokoj upotrebi u industriji i većina miroprocesora i mikrokontrolera posjeduje barem jedan hardverski I2C modul, što omogućava proširivanje broja i vrste raspoloživih hardverskih modula koje mikroprocesor koristi.

I2C koristi sabirnicu od samo dvije linije, koje se označavaju sa SDA (Serial Data) i SCL (Serial Clock), kao što je to pokazano na slici 4.?.

Da bi se izbjeglo nastajanje kratkog spoja u slučaju kolizije na sabirnici (odnosno kada više čvorova u istom trenutku započne emitovanje podataka, pri čemu npr. jedan čvor emituje bit vrijednosti 1, dok drugi čvor emituje bit vrijednosti 0), koristi se tzv. multi-drop pristup. Kako se vidi na slici, linije I2C sabirnice su pomoću pull-up otpornika (sa identičnom namjenom kao kod digitalnih ulaza) povezane na +Vcc. Sada svaki čvor emituje signal na linije tako što sabirnicu dovede na potencijal mase kada emituje bit sa vrijednošću 0, odnosno tako što se odspoji od sabirnice kada emituje bit sa vrijednošću 1. Na ovaj način će sabirnica biti na potencijalu +Vcc kada se emitute bit sa vrijednošću 1 (ili kada nema prijenosa podataka), odnosno na potencijalu mase kada se emituje bit sa vrijednošću 0. U slučaju da se na sabirnici pojavi kolizija i da jedan čvor emituje vrijednost 1 (odspojen od sabirnice), dok drugi čvor emituje vrijednost 0 (sabirnica na masi), efekat će biti identičan kao da se na sabirnicu emituje samo vrijednost 0 i neće doći do kratkog spoja.

Page 27: Ugradbeni Sistemi-poglavlje 4

Brzina komunikacijse I2C sabirnicom je standardizirana i iznosi 10kbps(spori način rada – low-speed mode), 100kbps (standardni način rada – standard mode) ili 400kbps (brzi način rada – fast mode). Danas neki uređaji mogu koristiti i brzine od 1Mbps (fast-mode plus) i 3,4Mbps (high-speed mode)

Obzirom da se radi o sinhronom prijenosu podataka, pošiljalac podatke na liniju SDA emituje sinhronizirano sa signalom sinhronizacije na liniji SCK koji šalje master čvor. Uloga čvora se u toku komunikacije može mijenjati, tako da jedan čvor može u jednom period biti master čvor na sabirnici, da bi kasnije promijenio ulogu i postao slave čvor na sabirnici (i obrnuto).

U komunikaciji po I2C standardu se koristi više različitih protokola, koji omogućavaju prijenos podataka između čvorova povezanih na sabirnicu i ovdje će samo kratko biti pojašnjeni osnovni principi na kojima se zasnivaju ovi protokoli.

Poruke koje čvorovi međusobno razmjenjuju započinju START bitom, a završavaju STOP bitom. I START i STOP bit emituje master čvor, a signali koji predstavljaju start bit i stop bit su dati na slici 4.?.

Nakon START bita, master emituje adresu slave čvora na koga se poruka odnosi. Adresa slave čvora po I2C standardu može biti 7-bitna ili 10-bitna. Na taj način je teoretski na istu sabirnicu moguće povezati 127, odnosno 1023 uređaja. Neke implementacije koriste čak i 16-bitnu adresu. Na istoj sabirnici je dozvoljeno korištenje različitih vrsta adresa, ukoliko su te dužine adresa podržane od strane uređaja koji su povezani na sabirnicu. Adresa 0 predstavlja adresu koja indicira slanje poruke svim čvorovima na sabirnici (broadcast).

Postoje dvije osnovne vrste poruka koje inicira master čvor:• poruka za slanje podataka slave čvoru,• poruka za prijem podataka od slave čvora.

I jedna i druga vrsta poruka omogućava prijenos podataka bajt po bajt, pri čemu broj bajta koji se prenose u okviru jedne poruke (pa ni dužina poruke) nije propisan standardom.

Poruka za slanje podataka slave čvoru je prikazana na slici 4.?.

Nakon slanja adrese, master šalje bit smjera kojim slave čvor obavještava da slijedi prijenos podataka za slave čvor (WR – Write). Bit smjera ima vrijednost 0 ukoliko master čvor šalje podatke slave čvoru.

Page 28: Ugradbeni Sistemi-poglavlje 4

Nakon toga master čvor oslobađa sabirnicu u trajanju od jednog bit intervala. Slave čvor koji je prepoznao svoju adresu potvrđuje da je primio komandu emitovanjem bita potvrde (ACK– Acknowledge). Nakon toga započinje prijenos bajta podataka, pri čemu se emitovanje započinje od bita najviše vrijednosti (MSB). Slave čvor nakon svakog bajta podatka emituje bit potvrde (ACK, vrijednost 0) da je ispravno primio bajt podatka ili bit negativne potvrde (NAK, vrijednost 1) da bajt podatka nije uspješno primljen.

Poruka za prijem podataka od slave čvora je prikazana na slici 4.?.

Poruka započinje na identičan način kao i poruka za slanje podataka slave čvoru, nakon čega master čvor šalje bit smjera za čitanje podataka (RD – Read) od slave čvora. Bit smjera za čitanje podataka ima vrijednost 1. Slave čvor koji je prepoznao svoju adresu šalje bit potvrde (ACK) i odmah nakon toga započinje slanje podataka bajt po bajt. Master čvor svaki ispravno primljeni bajt potvrđuje slanjem ACK bita, odnosno indicira neispravan prijenos bajta podatka slanjem NAK bita.

Vremenski dijagrami poruka za slanje podataka prema slave čvoru i za prijem podataka od slave čvora, zajedno sa pratećim signalom za sinhronizaciju, su predstavljeni na slici 4.?.

Osim ova dva osnovna tipa poruka, I2C koristi još i druge formate poruka, ali njima ovdje neće biti riječi.

Organizacija komunikacije

Prethodno je bilo riječi o osnovnim konceptima vezanim za serijsku komunikaciju, te o hardverskim aspektima standarda za serijsku komunikaciju koji se najčešće koriste u ugradbenim sistemima. Više puta je napomenuto na koji način se signal (odnosno vrijednosti bita) predstavlja na liniji, na koji način se rješava problem upravljanja fizičkim pristupom dijeljenom mediju, te način na koji se obezbjeđuje upravljanje tokom podataka i ispravan prijenos podataka između učesnika u komunikaciji. Ovi aspekti komunikacije bi se mogli nazvati organizacijom komunikacije.

Treba istaći da organizacija komunikacije između čvorova u nekoj mreži nikada nije monolitna (odnosno nikada se svi aspekti komunikacije ne definiraju i ne rješavaju cjelovito), nego se komunikacija organizira u više nivoa (slojeva). Ovakva slojevita organizacija komunikacije je puno

Page 29: Ugradbeni Sistemi-poglavlje 4

pogodnija, zato što omogućava da se određeni aspekti komunikacije promijene, bez potrebe za redefiniranjem svih komunikacijskih procedura. Primjera radi, slojevita organizacija komunikacije omogućava da se sa komunikacije koja koristi standard RS-485 pređe na bežičnu komunikaciju ili obrnuto, bez potrebe da se mijenja programski kod koji realizira aplikaciju čiji podaci se prenose, sve dok interfejs prema funkcijama koje realiziraju prijenos podataka ostane nepromijenjen.

Ovakva slojevita organizacija komunikacije se naziva mrežnom arhitekturom. Postoje dvije osnovne standardne mrežne arhitekture koje su danas u upotrebi, a koje se predstavljaju standardnim modelima:

• ISO OSI model,• TCP/IP model.

ISO OSI referentni model

Međunarodna organizacija za standardizaciju (ISO – International Standards Organization) je definirala apstraktni model mrežne arhitekture pod nazivom ISO OSI (ISO Open Systems Interconnection) prikazan na slici 4.?. Ovaj model se sastoji od sedam slojeva, pri čemu svaki sloj realizira jedan dio usluga u prijenosu podataka. Usluga definira operacije koje određeni sloj može izvršiti za sloj na višem nivou (slika 4.?). Pri tome sloj na višem nivou usluge koristi putem interfejsa između dva susjedna sloja. Ovaj interfejs definira tzv. tačke pristupa usluzi (SAP – Service Access Point). Ovisno o slojevima između kojih se nalazi, SAP može predstavljati specifikaciju hardverskog povezivanja između slojeva, ili specifikaciju odgovarajućih funkcijskih poziva (API – Application Program Interface) preko kojih se određena usluga može koristiti.

U okviru svakog čvora u mreži je implementiran određeni broj slojeva mrežne arhitekture.

Page 30: Ugradbeni Sistemi-poglavlje 4

Pri tome se komunikacija virtuelno odvija između dva sloja u različitim učesnicima u komunikaciji, koji se nalaze na istom nivou, a u stvarnosti se komunikacija odvija vertikalno kroz slojeve učesnika u komunikaciji na jednoj strani do fizičkog medija, zatim kroz fizički medij do učesnika u komunikaciji na drugoj strani, pa redom kroz njegove slojeve (slika 4.?).

Komunikacija između slojeva na istom nivou se odvija u skladu sa određenim protokolom. Protokol predstavlja skup pravila po kojima se odvija komunikacija, a u okviru kojih su definirani formati poruka koje se razmjenjuju između slojeva dva učesnika u komunikaciji, značenje pojedinačnih polja u porukama, te način provjere ispravnosti prijenosa podataka. Svaka poruka se sastoji od zaglavlja (header), sadržaja (payload) i repa (tail), što je predstavljeno na slici 4.?. Protokol specificira i postupke tokom prijenosa podataka (način započinjanja i završetka prijenosa podataka i tok prijenosa podataka, način utvrđivanja ispravnosti prijenosa podataka i način retransmisije neispravno prenesenih ili izgubljenih podataka). Obzirom da na ovom mjestu neće biti dato detaljno razmatranje pomenutih koncepata i mehanizama, čitalac se upućuje na adekvatnu literaturu koja se bavi problematikom komunikacijskih mreža.

Page 31: Ugradbeni Sistemi-poglavlje 4

U nastavku će ukratko biti opisane funkcije slojeva ISO OSI referentnog modela.

Fizički sloj predstavlja najniži sloj ISO OSI modela i obuhvata one komunikacijske usluge koje se tiču povezivanja sa fizičkim medijem (ožičenje, predstavljanje bita podataka signalima na liniji, modulacijske postupke i sl.). Većina standarda serijske komunikacije koji su ovdje bili opisani obuhvata funkcije fizičkog sloja. Tako je standard RS-232 (koji je nastao daleko prije nego što je specificiran ISO OSI referentni model) definirao način fizičkog povezivanja dva učesnika u komunikaciji, nivoe signala na liniji i korištene kontektore. Slično, RS-422 i RS-485 su definirali način korištenja sabirnice i nivoe signala.

Sloj linka podataka obuhvata komunikacijske usluge koje omogućavaju komunikaciju između čvorova koji međusobno komuniciraju neposredno. U okviru ovog sloja se rješavaju i problemi adresiranja učesnika u komunikaciji koji dijele fizički medij, upravljanja pristupom dijeljenom mediju, način provjere ispravnosti prijenosa podataka i postupanja u slučaju neispravnog prijenosa podataka.

Mrežni sloj omogućava povezivanje većeg broja čvorova u jedinstvenu mrežu koja obezbjeđuje prijenos podataka između bilo koja dva čvora. Mrežni čvorovi u mreži mogu biti krajnji čvorovi (preko kojih se podaci šalju u mrežu i primaju iz mreže ili čvorovi koji prosljeđuju poruke unutar mreže (odnosno čvorovi koji obezbjeđuju funkcionisanje mreže). I u okviru ovog sloja se definira adresiranje čvorova, format poruka koji se razmjenjuju i načini provjere ispravnosti prijenosa podataka, uključujući i postupke u slučaju neispravnog prijenosa podataka. U okviru funkcija koje obavlja mrežni sloj se nalaze i mehanizmi koji omogućavaju određivanje staze kojom će određena poruka biti proslijeđena od čvora pošiljaoca do čvora pošiljaoca. Ova funkcija se naziva rutiranjem (routing).

Transportni sloj omogućava prijenos podataka između dva komunikacijska čvora povezana na mrežu, pri čemu se taj prijenos podataka predstavlja jednu cjelinu. Drugim riječima, transportni sloj ostvaruje komunikaciju između čvorova s kraja na kraj mreže. I u okviru transportnog sloja se definiraju odgovori na ista pitanja kao i u prethodnim slojevima, s tim da se sada radi npr. o adresi u okviru jednog čvora i provjeri ispravnosti podataka prenesenih s kraja na kraj veze.

Sloj sesije i sloj prezentacije predstavljaju slojeve koji definiraju pitanje trajanja odgovarajućeg niza aktivnosti učesnika u komunikaciji, što definira sesiju, odnosno način predstavljanja prenesenih podataka i njihovog značenja u odgovarajućem kontekstu definiranom aplikacijom.

Aplikacijski sloj realizira način na koji konkretna aplikacija koja se izvršava na jednom komunikacijskom čvoru može razmjenjivati podatke sa konkretnom aplikacijom koja se izvršava na drugom komunikacijskom čvoru.

TCP/IP referentni model

ISO OSI referentni model je nastao kao formalna specifikacija od strane Međunarodne organizacije za standarde. Međutim, danas se u širokoj upotrebi nalazi i TCP/IP referentni model, koji je nastao kao opis načina na koji je organizirana komunikacija u okviru Interneta, najveće decentralizirane komunikacijske mreže na svijetu.

Iako se i ovdje radi o slojevitoj mrežnoj arhitekturi, TCP/IP referentni model je puno jednostavniji i ne specificira eksplicitno sve slojeve koji se susreću u ISO/OSI referentnom modelu. Mrežna arhitektura po TCP/IP referentnom modelu je predstavljena na slici 4.?.

Page 32: Ugradbeni Sistemi-poglavlje 4

Kako se vidi na slici, TCP/IP referentni model specificira aplikacijiski, transportni i mrežni sloj, čije funkcije su uglavnom uporedive sa funkcijama ovih slojeva u ISO OSI referentnom modelu. Pri tome se može reći da su funkcije sloja sesije i prezentacije iz ISO OSI referentnog modela u TPC/IP referentnom modelu uklopljene u aplikacijski sloj. Ovo i ima smisla, a i bitno pojednostavljuje posmatranje mrežne arhitekture, pošto su funkcije koje realiziraju usluge ovih slojeva obično tijesno vezane uz samu aplikaciju za čije potrebe se podaci prenose. Isto tako, svi slojevi ispod mrežnog (sloj linka podataka i fizički sloj) su integrisani u sloj koji se označava kao “Host to Network”, što također ima smisla obzirom da su funkcije fizičkog sloja i sloja linka podataka vrlo tijesno spregnute i nekada je dosta teško razdvojiti gdje počinju funkcije fizičkog sloja, a gdje sloja linka podataka. Generalno se može reći da TCP/IP referentni model predstavlja pragmatičan pogled na mrežnu arhitekturu, ali isto tako postoji i dovoljno slaganje ovog referentnog modela sa ISO OSI referentnim modelom.

Uz to, TCP/IP referentni model je nastao kao opis osnovnog skupa protokola koji se koriste u okviru Interneta i funkcija koje se realiziraju u prijenosu podataka pomoću ovih protokola. Generalno se može reći da TCP/IP referentni model pravi puno manju razliku između pojma usluga koje sloj realizira i protokola koji omogućavaju razmjenu podataka između entiteta u okviru istih slojeva na različitim komunikacijskim čvorovima.

Funkcioniranje komunikacijske mreže

Kako je već rečeno, u okviru svakog komunikacijskog čvora je implementiran dio slojeva iz ISO OSI specifikacije. Koji će slojevi biti implementirani, ovisi o konkretnoj aplikaciji i o funkciji koju komunikacijski čvor obavlja.

Posmatrajmo jednostavni primjer komunikacije po master-slave principu, između čvorova povezanih na RS-485 sabirnicu. Realiziraćemo dvije komande koje master čvor može poslati nekom slave čvoru. Neka to budu komande:

• postavi vrijednost bajta koji će se ispisivati na LED diode (bez bilo kakvog odgovora od strane adresiranog slave čvora),

• očitaj vrijednost analognog ulaza specificiranog u okviru komande.

Kao prvo, trebamo utvrditi format poruke. U ovom jednostavnom primjeru će master čvor slati poruke sljedećeg formata:

#ASA – ispisuje 0x41 na port

Page 33: Ugradbeni Sistemi-poglavlje 4

#AR0 – očitava vrijednost sa analognog ulaza 0

Svaka poruka započinje znakom #, nakon čega slijedi bajt sa adresom slave uređaja. zatim slijede bajt komande (S ili R) i bajt parametra komande (ASCII vrijednost koju treba ispisati na LED diode, odnosno ASCII vrijednost sa brojem analognog ulaza koji je potrebno očitati).

Procesiranje ovakvih poruka od strane prijemnika možemo predstaviti grafikom stanja na slici 4.?. Stanja prijemnika su:

• S1 – čekanje na početak poruke,• S2 – čekanje na prijem adrese,• S3 – čekanje na prijem komande,• S4 – čekanje na prijem parametra komande za ispis vrijednosti na LED diode,• S5 – čekanje na prijem parametra komand za očitavanje analognog ulaza.

Prijemnik prelazi u novo stanje, ovisno o bajtu koji je primio. Prijelazi naznačeni na slici 4.? su:• b1 – prijem karaktera koji označava početak poruke (#),• b2 – prijem bilo kojeg drugog karaktera,• b3 – prijem adrese slave čvora,• b4 – prijem adrese nekog drugog slave čvora,• b5 – prijem bajta koji ne označava ispravnu komandu,• b6 – prijem karaktera koji označava komandu za postavljanje vrijednosti LED dioda (S),• b7 – prijem karaktera koji označava komandu za čitanje analognog ulaza (R),• b8 – prijem parametra komande S,• b9 – prijem parametra komande R.

Ovako organizirana komunikacija omogućava prijenos podataka za potrebe pomenutog sistema. Međutim, u ovom primjeru ne postoji nikakva provjera ispravnosti prenesenih podataka, niti se dobro uočava slojevita organizacija komunikacije.

Radi toga ćemo osmisliti organizaciju komunikacije za sistem za daljinsko očitavanje temperature. Tako npr. u slučaju da je deset čvorova povezano RS-485 sabirnicom (odnosno kada mogu komunicirati direktno), pri čemu jedan čvor predstavlja centralni čvor sistema, a preostalih devet

Page 34: Ugradbeni Sistemi-poglavlje 4

čvorova treba da šalje vrijednosti temperature mjerene u po 10 tačaka, potrebno je minimalno realizirati fizički sloj, sloj linka podataka i aplikacijski sloj.

Fizički sloj rješava pitanja povezivanja čvorova sa sabirnicom, korištenja odgovarajućih primopredajnika i način predstavljanja signala na sabirnici. Sloj linka podataka rješava pitanja načina upravljanja prijenosom podataka, formate poruka koji se razmjenjuju i način provjere ispravnosti podataka prenesenih u poruci. Aplikacijski sloj specificira komande koje aplikacija koja se izvršava na centralnom čvoru šalje željenom čvoru radi prikupljanja vrijednosti mjerenja i način na koji se specificiraju senzori koji se očitavaju.

Već je rečeno i da slojevi međusobno komuniciraju preko odgovarajućih tačaka pristupa uslugama (SAP). Aplikacija koja se izvršava na centralnom čvoru npr. može biti aplikacija na PC računaru koja grafički prikazuje vrijednosti izmjerenih temperatura na svim čvorovima, pri čemu su mjerenja temperature sa svakog čvora prikazana na zasebnom tabu, a vrijednost temperature koja se prikazuje se može birati korištenjem standardnih elemenata grafičkog interfejsa. U okviru ove aplikacije se svaki put kada je potrebno očitati vrijednost temperature na nekom drugom čvoru pozove odgovarajuća funkcija, koja će rezultirati porukom za aplikaciju na odredišnom komunikacijskom čvoru.

Komunikacija između centralnog čvora i perifernog čvora se odvija u skladu sa protokolom realiziranim u okviru prethodno pomenute funkcije, koju poziva aplikacija. Ovaj protokol obuhvata definiranje formata poruke, obično kao na slici 4.?, kao i načina upravljanja pristupu sabirnici i mehanizma za omogućavanje ispravnog prijenosa podataka. Recimo da ćemo koristiti master-slave način upravljanja pristupom sabirnici, tako da će centralni čvor predstavljati master stranu u komunikaciji, a periferni čvorovi će predstavljati slave stranu u komunikaciji. Master čvor će periodično prozivati sve slave čvorove i svakom slave čvoru specificirati redom senzore čija se očitanja traže. Svaki put kada master čvor pošalje poruku, pokrenuće se tajmer, koji će se zaustaviti kada se primi odgovor na poruku, nakon čega master čvor nastavlja sa slanjem sljedeće poruke. Ukoliko se desi da nakon pokretanja tajmera protekne neko predefinirano vrijeme, a da odgovor od strane slave čvora ne stigne, to znači da je došlo do greške u prijenosu poruke. Neka u tom slučaju master čvor ponovi slanje poruke. U slučaju da nakon predefiniranog broja ponavljanja nije primljen ispravan odgovor od strane slave čvora, funkcija će indicirati aplikaciji da je određeni čvor van funkcije. U okviru aplikacije treba biti implementirana reakcija na takav slučaj.

Nakon što je poruka formirana, poziva se funkcija fizičkog sloja, koja će ovu poruku poslati na sabirnicu, u skladu sa korištenim standardom RS-485. U okviru toga će se poruka bajt po bajt emitovati, pri čemu će se svakom bajtu pridružiti start i stop bit (i eventualno i bit pariteta).

Analizirajmo format poruke koja se razmjenjuje između dva sloja linka podataka.

Poruka započinje START bajtom, nakon čega slijedi bajt adrese, zatim bajt komande, bajt parametra komande, bajt za provjeru ispravnosti prijenosa poruke i STOP bajt. START bajt predstavlja dogovorenu kombinaciju bita, na osnovu koje prijemni čvorovi mogu detektirati početak poruke. Bajt adrese u poruci sadrži adresu čvora na koga se poruka odnosi, pri čemu svaki čvor povezan na sabirnicu posjeduje jedinstvenu adresu. Bajt komande predstavlja dogovorenu kombinaciju bita, koji će adresirani čvor prepoznati kao naredbu za očitavanje jednog od senzora temperature. Bajt parametra komande sadrži adresu senzora temperature koji je potrebno očitati. I konačno, bajt za provjeru ispravnosti prenesenih podataka se može formirati kao XOR vrijednost svih bajta od bajta adrese, zaključno sa bajtom parametra komande.

Page 35: Ugradbeni Sistemi-poglavlje 4

Svi slave čvorovi će osluškivati sabirnicu i čekati da prime START bajt. Nakon što START bajt bude detektovan, svi slave čvorovi će osluškivati bajt adrese. Slave čvor koji detektuje svoju adresu u poruci će nastaviti primati poruku, a svi ostali slave čvorovi će se vratiti u stanje u kome očekuju početak nove poruke. Nakon što adresirani slave čvor primi ostatak poruke, izračunaće XOR vrijednost svih bajta od primljenog bajta adrese zaključno sa primljenim bajtom parametra komande. Nakon što odredi ovu vrijednost, uporediće je sa primljenom XOR vrijednošću i ukoliko su ove dvije vrijednosti jednake, nastaviće sa procesiranjem poruke. Ukoliko se ove vrijednosti razlikuju, slave će odbaciti primljenu poruku i vratiće se u stanje u kome očekuje prijem START bajta koji označava početak nove poruke.

Ako je primljena poruka ispravna, funkcija koja realizira prijem poruke će signalizirati aplikaciji da je poruka primljena, te će aplikacija pozivom funkcije moći preuzeti podatak o komandi i parametru komande koje treba izvršiti. Nakon očitavanja senzora temperature specificiranog u parametru komande, aplikacija će pozvati funkciju koja šalje odgovor, prosljeđujući joj očitanu vrijednost. Ova funkcija će formirati poruku odgovora, čiji format će biti kao na slici 4.?. Vidi se da je format ove poruke vrlo sličan formatu poruke zahtjeva, s tim da se sada umjesto polja komande koristi polje koje signalizira da se radi o odgovoru, te umjesto polja parametra komande polje koje sadrži očitanu vrijednost temperature. Ova poruka će se poslati na sabirnicu na identičan način kao što je to bio slučaj pri slanju poruke zahtjeva.

Kada master primi poruku koja sadrži odgovor, provjeriće njenu ispravnost i proslijediti je aplikaciji na identičan način na koji je to učinio slave čvor. U slučaju da master detektuje neispravan prijenos podataka, ponoviće poruku sa zahtjevom za očitavanje istog senzora.

Prethodno opisani postupak dosta detaljno opisuje cjelokupnu komunikaciju između dvije aplikacije, kako po vertikali slojeva svakog čvora, tako i po horizontali između slojeva na istom nivou u različitim čvorovima i ilustruje opći pristup organiziranju komunikacije za potrebe konkretne aplikacije. Na sličan način je moguće razraditi cjelokupnu komunikaciju i za druge aplikacije.