walldimmer уређај са проширеним корисничким сучељем и ......
TRANSCRIPT
УНИВЕРЗИТЕТ У НОВОМ САДУ
ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА У НОВОМ САДУ
Сташа Секулић
WallDimmer уређај са проширеним корисничким сучељем и могућношћу
бежичног ажурирања апликације
ДИПЛОМСКИ РАД
Основне академске студије
Нови Сад, 2018
УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА
21000 НОВИ САД, Трг Доситеја Обрадовића 6
КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА
Редни број, РБР:
Идентификациони број, ИБР:
Тип документације, ТД: Монографска документација
Тип записа, ТЗ: Текстуални штампани материјал
Врста рада, ВР: Завршни (Дипломски) рад
Аутор, АУ: Сташа Секулић
Ментор, МН: Др. Иштван Пап, професор
Наслов рада, НР: WallDimmer уређај са проширеним корисничким сучељем и могућношћу бежичног ажурирања апликације
Језик публикације, ЈП: Српски / латиница
Језик извода, ЈИ: Српски
Земља публиковања, ЗП: Република Србија
Уже географско подручје, УГП: Војводина
Година, ГО: 2018
Издавач, ИЗ: Ауторски репринт
Место и адреса, МА: Нови Сад; трг Доситеја Обрадовића 6
Физички опис рада, ФО: (поглавља/страна/ цитата/табела/слика/графика/прилога)
Надоградња постојеће физичке архитектуре и проширење програмске подршке
Научна област, НО: Електротехника и рачунарство
Научна дисциплина, НД: Рачунарска техника
Предметна одредница/Кључне речи, ПО: Паметна кућа, Обло
УДК
Чува се, ЧУ: У библиотеци Факултета техничких наука, Нови Сад
Важна напомена, ВН:
Извод, ИЗ: Пoстojeћи урeђaj Wall Dimmer прoширитисa joш jeдним тaстeрoм и светлосном индикaциjoм те дa сe урeђajу oмoгући OTA функциoнaлнoст (aжурирaњe aпликaциje урeђaja нa дaљину).
Датум прихватања теме, ДП: 20.4.2018.
Датум одбране, ДО: 4.5.2018.
Чланови комисије, КО: Председник: Др. Небојша Пјевалица, професор
Члан: Др. Миодраг Ђукић, доцент Потпис ментора
Члан, ментор: Др. Иштван Пап, професор
UNIVERSITY OF NOVI SADFACULTY OF TECHNICAL SCIENCES
21000 NOVI SAD, Trg Dositeja Obradovića 6
KEY WORDS DOCUMENTATION
Accession number, ANO:
Identification number, INO:
Document type, DT: Monographic publication
Type of record, TR: Textual printed material
Contents code, CC: Bachelor Thesis
Author, AU: Staša Sekulić
Mentor, MN: Dr Ištvan Pap, professor
Title, TI: Wall dimer device with an expanded user interface and the option of wireless application update
Language of text, LT: Serbian
Language of abstract, LA: Serbian
Country of publication, CP: Republic of Serbia
Locality of publication, LP: Vojvodina
Publication year, PY: 2018
Publisher, PB: Author’s reprint
Publication place, PP: Novi Sad, Dositeja Obradovica sq. 6
Physical description, PD: (chapters/pages/ref./tables/pictures/graphs/appendixes)
Hardware expansion and software upgrade
Scientific field, SF: Electrical Engineering
Scientific discipline, SD: Computer Engineering, Engineering of Computer Based Systems
Subject/Key words, S/KW: Smart House
UC
Holding data, HD: The Library of Faculty of Technical Sciences, Novi Sad, Serbia
Note, N:
Abstract, AB: Wall dimmer device is to be expanded with one more button and light indication, furthermore the device will be upgraded with the possiblity of OTA (upgrading the device’s firmware wirelessly).
Accepted by the Scientific Board on, ASB: 20.4.2018.
Defended on, DE: 4.5.2018
Defended Board, DB: President: Dr. Nebojša Pjevalica, professor
Member: Dr. Miodrag Đukić, assistant professor Menthor's sign
Member, Mentor: Dr. Ištvan Pap, professor
I
Zahvalnost
Zahvaljujem se mentoru dr Ištvanu Papu na pruţenoj prilici kao i na pomoći prilikom
izrade ovog rada.
Dugujem veliku zahvalnost i Aleksandru Ţivkoviću i mnogim drugim kolegama zbog
pruţenih saveta i sveobuhvatne podrške tokom izrade rada.
Srdačno se zahvaljujem i svojim roditeljima na beskrajnoj podršci i pomoći tokom
studiranja.
II
SADRŽAJ
1. Uvod ................................................................................................................................ 1
2. Teorijske osnove ............................................................................................................. 2
2.1 Zidni dimer ............................................................................................................... 2
2.2 CC2530 integrisano kolo .......................................................................................... 3
2.3 ZigBee beţična komunikacija .................................................................................. 4
2.3.1 Arhitektura ZigBee protokola .............................................................................. 6
2.3.2 ZigBee biblioteka grupa ...................................................................................... 8
2.3.3 OTA mehanizam za aţuriranje programske podrške ........................................... 8
2.4 Bootloader (Pokretač operativnog sistema) ............................................................. 9
3. Koncept rešenja ............................................................................................................. 11
4. Programsko rešenje ....................................................................................................... 14
4.1 Podela funkcije za upravljanjem svetlom i uzastopnim pritiscima ........................ 15
4.2 Rešenje problema blokirajuće funkcije svetlosne indikacije ................................. 17
4.3 Proširivanje celokupne programske podrške za nadogradnju beţično ................... 18
5. Testiranje ...................................................................................................................... 20
6. Zaključak ...................................................................................................................... 25
7. Literatura ....................................................................................................................... 26
III
SPISAK SLIKA
Slika 2.1 Zidni dimer ............................................................................................................. 3
Slika 2.2 Blok šema integrisanog kola CC2530 .................................................................... 4
Slika 2.3 Primer mreţaste topologije ..................................................................................... 6
Slika 2.4 ZigBee protokol stek ............................................................................................... 7
Slika 2.5 Primer OTA postupka ............................................................................................. 9
Slika 2.6 Pokretač operativnog sistema ............................................................................... 10
Slika 4.1 Dijagram rada stare verzije zidnog dimera ........................................................... 14
Slika 4.2 Dijagram rada nove verzije zidnog dimera ........................................................... 15
Slika 5.1 Grafičko korisničko okruţenje OTA server alata ................................................. 20
Slika 5.2 RS-232 priključak na SmartRF05 EB razvojnoj ploči sa prikačenim serijskim
kabelom ......................................................................................................................................... 21
Slika 5.3 SmartRF05 EB razvojna ploča sa CC2530 integrisanim kolom ........................... 21
Slika 5.4 Test okruţenje sa jednom SmartRF05 EB pločom i dva dimera .......................... 23
IV
SPISAK TABELA
Tabela 3.1 Mogućnosti stare verzije zidnog dimera ............................................................ 12
Tabela 3.2 Sposobnosti nove verzije zidnog dimera ............................................................ 13
Tabela 4.1 Funkcije za upravljanje zidnim dimerom ........................................................... 16
Tabela 4.2 Funkcija naizmeničnog treptanja LED diode ..................................................... 17
Tabela 5.1 Vremena nadogradnje operativnog sistema i uspešnost nadogradnje ................ 22
Tabela 5.2 Testiranje primarnih tastera ................................................................................ 24
Tabela 5.3 Testiranje sekundarnog tastera ........................................................................... 24
V
SKRAĆENICE
FPGA - Field Programming Gate Array
CPU -Central Processor Unit
GND -Oznaka za signal na nultom potencijaluE
OTA -Over the Air
LED -Light Emission Diodes
CFL -Compact Fluorescent Lamp
IEEE -Institute of Electronics and Electronics Engineers
RF -Radio Frequency
DSSS -Direct Sequence Spread Spectrum
PAN -Personal Area Network
ZCL -Zigbee Cluster Library
SoC -System on Chip
RF -Radio Frequency
AES -Advanced Encryption Standard
M2M -Machine to machine
CRC -Cyclic Rendundancy Check
MAC -Media Access Control
SAP -Service Access Point
ZDO -ZigBee Device Object
APS -Application Support Sublayer
CSMA/CA -Carrier Sense Multiple Access with Collission Avoidance
1
1. Uvod
Ovaj rad predstavlja jedan od načina za proširenje postojeće izvedbe zidnog dimera, u vidu
promene programske podrške i fizičke arhitekture. Proširenje fizičke arhitekture sa jednog na
dva prekidača zahteva nadogradnju programske prodrške. Ovaj rad će se baviti proširenjem
postojećih funkcija programske podrške, kao i dodavanjem novih funkcija koje su postale
neophodne zbog promena na fizičkoj arhitekturi.
Osnovna funkcionalnost zidnog dimera je upravljanje radom sijalice, pri čemu pojam
dimovanja predstavlja promenu jačine svetla. Postojeća konfiguracija zidnog dimera predviĎala
je upotrebu samo jednog prekidača pa je izazov predstavljalo osposobljavanje drugog prekidača i
dodavanje novih korisničkih mogućnosti koje su implementovane u ovom radu.
Pojednostavljenje rada zidnog dimera ogleda se u preciznijoj kontroli jačine svetla za koju
su morale biti napisane dodatne funkcije u programskoj podršci što je i tema ovog rada. Pojam
pojednostavljenje je za korisnika veoma relativan, ali je u ovom radu pokazana fleksibinost
zidnog dimera, kao i mogućnost izmene u odnosu na zahteve i potrebe klijenta.
Rad se sastoji od sedam poglavlja. U drugom poglavlju su opisani teorijski pojmovi i
koncepti na kojima se ovaj rad zasniva. U trećem poglavlju predstavljen je koncept rešenja.
Četvrto poglavlјe detaljno opisuje programsko rešenje. U petom poglavlju dat je opis postupka
ispitivanja kao i postignuti rezultati. Šesto poglavlјe sadrţi zaključak, u kome je saţeto sve što je
uraĎeno u okviru rada. Poslednje, sedmo poglavlјe sadrţi spisak literature korišćene u realizaciji
rada.
2
2. Teorijske osnove
Teorijske osnove daju kratak pregled fizičke arhitekture, programske podrške i protokola
na koje se rešenje oslanja. Zidni dimer je prvi opisan sa akcentom na njegovu funkcionalnost a
zatim je opisana i fizička arhitektura integrisanog kola CC2530 na kojoj se izvršava programska
podrška zidnog dimera. U poslednjem delu opisan je ZigBee protokol, dat je opis osnovnog
načina funkcionisanja protokola i njegove funkcionalnosti, pre svega OTA (eng. Over The Air)
funkcionalnosti.
2.1 Zidni dimer
Zidni dimer je pre svega ureĎaj koji sluţi za regulaciju jačine osvetljaja sijalice, u ovom
slučaju predviĎen da bude ugraĎen na zid poput običnog prekidača. Pametni Dimer je beţično
kontrolisani regulator svetlosti koji moţe raditi samostalno ili kao deo kućnog sistema
automatizacije. UreĎaj je usklaĎen sa ZigBee standardom za kućnu automatizaciju verzije 1.2
(ZHA) i garantovano je da funkcioniše sa bilo kojim sistemom usklaĎenim sa ZHA 1.2. Pametni
dimer podrţava LED (engl. Light Emission Diodes) diode, klasične sijalice sa uţarenim vlaknom
i CFL (engl. Compact Fluorescent Lamp) sijalice. UreĎaj ima dva reţima rada:
1. Prekidački reţim rada koji samo isključuje i uključuje svetlo.
2. Dimerski reţim rada koji podešava jačinu osvetljaja sijalice.
Trenutno rešenje je realizovano sa jednim tasterom za regulaciju jačine osvetljaja sijalice i
drugim tasterom za podešavanje reţima rada i dve LED diode. Algoritam tastera za promenu
rada nije menjan, ostao je identičan kao i prethodna realizacija da bi se odrţala konzistentnost sa
drugim ureĎajima u automatskim kućama. Taster za regulaciju svetla je proširen, tačnije
3
podeljen na dva tastera, što uvodi promene u algoritmu realizacije programske podrške, kao što
je prikazano na slici 2.1.
Slika 2.1 Zidni dimer
Programska podrška zidnog dimera je realizovana na CC2530 integrisanom kolu, koje je
detaljnije opisano u sledećem poglavlju. Programski jezik C korišćen je prilikom realizacije ovog
rada, u IAR Workbench programskom okruţenju jer je postojeća programska podrška razvijena
na ovaj način.
2.2 CC2530 integrisano kolo
CC2530 je pravo rešenje za IEEE 802.15.4, ZigBee i RF4CE aplikacije koje koristi sistem
integrisanog kola (engl. System on Chip - SoC). On omogućava da robusni mreţni čvorovi
budu napravljeni sa niskom cenom materijala. CC2530 kombinuje izuzetna svojstva vodećeg
RF (engl. Radio Frequency) primopredajnika sa pojačanom programabilnom fleš memorijom
industrijskog kvaliteta 8051 MCU sa 8-KB RAM. CC2530 ima brojne reţime rada što ga čini
veoma pogodnim za sisteme gde se zahteva izuzetno niska potrošnja energije. Kratko vreme
prelaza izmeĎu reţima rada dalje osigurava smanjenu potrošnju energije. U zidni dimer je
ugraĎeno CC2530 integrisano kolo.
4
Slika 2.2 Blok šema integrisanog kola CC2530
2.3 ZigBee bežična komunikacija
ZigBee je beţična tehnologija razvijena kao otvoreni globalni standard koji treba da
odgovori na jedinstvene zahteve niske cene i male potrošnje energije beţičnih M2M (engl.
Machine to machine) mreţa. ZigBee je baziran na IEEE 802.15.4 standardu personalnih
računarskih mreţa (engl. PAN – Personal Area Network), a radi u nelicenciranim opsezima
uključujući 2.4GHz, 900 MHz i 868 MHz. 802.15.4 standard, na kom radi ZigBee, ratifikovan je
2003. godine od strane IEEE (engl. Institute of Electronics and Electronics Engineers). Standard
5
predstavlja radio protokol namenjen jeftinim ureĎajima, napajanim pomoću baterija. UreĎaji
mogu da komuniciraju u različitim topologijama mreţe, a vek trajanja baterije moţe biti i po
nekoliko godina.
ZigBee protokol su stvorile i ratifikovale kompanije, članice ZigBee alijanse (ZigBee
Alliance). Preko 300 kompanija, vodećih u svetu informacionih tehnologija čini članstvo u
ZigBee alijansi. ZigBee protokol je dizajniran da na jednostavan način obezbedi beţični prenos
podataka, koji odlikuje bezbedna i pouzdana arhitektura. Protokol je konstruisan tako da
komunicira kroz “neprijateljska” RF okruţenja koja su uobičajena u komercijalnim i
industrijskim aplikacijama.
ZigBee karakteriše i:
Podrška za višestruke topologije mreţa kao što su tačka-tačka, tačka-više tačaka i
mreţaste mreţe;
Nizak radni ciklus – obezbeĎuje dug vek baterije;
Malo kašnjenje;
DSSS (engl. Direct Sequence Spread Spectrum);
Do 65.000 čvorova na mreţi;
128-bitno AES šifrovanje, za bezbedan prenos podataka;
Izbegavanje sudara.
Ključna komponenta ZigBee protokola je mogućnost podrţavanja mreţaste topologije (slika
2.3). U mreţastoj topologiji, čvorovi su povezani sa drugim čvorovima, tako da višestruki putevi
povezuju svaki čvor. Veza izmeĎu čvorova se dinamički aţurira i optimizuje preko sofisticirane
ugraĎene mreţaste tabele za rutiranje. Mreţaste mreţe su decentralizovane. Svaki čvor je u
stanju da samostalno istraţuje mreţu. TakoĎe, kada čvor napusti mreţu, mreţasta topologija
omogućava čvorovima da rekonfigurišu putanje rutiranja na osnovu nove strukture mreţe.
Karakteristike mreţaste topologije i ad hoc rutiranje obezbeĎuju veću stabilnost prilikom
promene uslova ili pojave odreĎenih problema na pojedinim čvorovima.
Postoje tri različita tipa ZigBee ureĎaja:
ZigBee koordinator (engl. coordinator) – najsposobniji ureĎaj, koordinator predstavlja
koren stabla mreţe i ureĎaj koji sluţi za spajanje sa drugim mreţama. Svaka mreţa
ima samo jedan koordinator. On je u stanju da skladišti informacije o mreţi;
ZigBee ruter (engl. router);
6
ZigBee krajnji ureĎaj (engl. end device) – sadrţi upravo onoliko funkcija koliko mu je
dovoljno da komunicira sa matičnim čvorom (bilo koordinatorom ili ruterom). On
omogućava da čvor „spava” i na taj način štedi bateriju. Zahteva najmanju količinu
energije i stoga je i jeftiniji od koordinatora i rutera.
ZigBee omogućava široku primenu beţičnih mreţa sa niskom cenom i malom potrošnjom
energije. Pomoću jeftinih baterija pruţa mogućnost za nadgledanje i upravljanje aplikacijama
koje moţe trajati godinama. Upravljanje osvetljenjem, sistemima automatizacije u zgradama,
praćenje stanja u rezervoarima, medicinski ureĎaji, i sl. su samo neka od mnogih mesta gde
ZigBee postiţe značajan uspeh .
Slika 2.3 Primer mreţaste topologije
2.3.1 Arhitektura ZigBee protokola
ZigBee specifikacijom definisani su slojevi arhitektura protokola iznad fizičkog sloja i
MAC (engl. Medium Access Control) podsloja.
7
Slika 2.4 ZigBee protokol stek
Svaki sloj pruţa odreĎene usluge sloju iznad sebe. Komunikacija izmeĎu slojeva se
realizuje preko pristupne tačke (engl. Service Access Point - SAP ). Stek definiše 4 sloja:
Aplikacioni sloj (APL)
Mreţni sloj (NWK)
Podsloj za pristup mreţi
Fizički sloj
Aplikativni sloj se takoĎe sastoji iz nekoliko slojeva u okviru koga se definišu korisničke
aplikacije. Aplikativni sloj se sastoji od :
Aplikacionog okvira (engl. Application Framework) – unutar koga se definišu
korisničke aplikacije
ZigBee objekta (engl. ZigBee Device Object - ZDO) koji sadrţi informacije o samom
ureĎaju
Aplikacionog podsloja za podršku (engl. Application Support Sublayer - APS) – na
ovaj sloj se oslanjaju prethodna dva sloja i ovaj sloj im nudi aplikacionu podršku
sličnu TCP u TCP/IP mreţama
Sigurnosnog sloja – koji pruţa aplikacionom i mreţnom sloju mehanizme šifrovanja.
Mreţni sloj brine o adresiranjima i usmeravanju poruka. Ovaj sloj ima ulogu u pokretanju
mreţnog koordinatora koji vodi računa o mreţi. Mreţni sloj dodeljuje mreţne adrese, zatim
dodaje i uklanja ureĎaje u mreţi. On takoĎe otkriva putanje i prosleĎuje poruke koje odrţavaju
iste. Ovaj sloj se bavi i primenom sigurnosnih mehanizama.
Sloj pristupa medijumu predstavlja spregu izmeĎu fizičkog i mreţnog sloja. On je
odgovoran za pruţanje pouzdane komunikacije izmeĎu ureĎaja u mreţi koristeći CSMA/CA
(engl. Carrier Sense Multiple Access With Collission Avoidance) protokol. Uz ovo on formira
ramove koji se šalju na fizički nivo i dekomponuje ramove koji su stigli sa njega. Fizički sloj
ZigBee steka ima mogućnost slanja poruka kroz tri frekvencijska opsega.
8
Frekvencijski opsezi su:
868MHz (Evropa)
915MHz (SAD)
2.4GHz (univerzalna frekvencija)
Opsezi imaju različite brzine prenosa podataka: 20, 40 i 250 KBPS.
2.3.2 ZigBee biblioteka grupa
ZigBee biblioteka grupa (eng. Zigbee Cluster Library ZCL) je definisana od strane ZigBee
alijanse da bi se ubrzao razvoj i standardizacija javnih profila. ProizvoĎačima je omogućeno da
brzo izgrade ZigBee proizvode sa doslednošću i kompatibilnošću. ZigBee biblioteka grupa
obuhvata velik broj standardnih grupa koje se mogu primeniti na različite funkcionalne oblasti i
omogućavaju zajednička sredstva aplikacijama da bi mogle meĎusobno komunicirati. Pored
velikog broja standardnih grupa postoje i grupe koje nisu zvanično deo ZigBee biblioteke grupa.
2.3.3 OTA mehanizam za ažuriranje programske podrške
Jedna od tih grupa je i OTA (engl. Over The Air) koja ima generalnu primenu u promeni
postojeće programske podrške. Ova grupa ne pripada zvaničnoj biblioteci, kao što je ranije
navedeno, ali se moţe uključiti zajedno sa standardnim grupama da bi se izvršila nadogradnja
postojećih izvedbi programske podrške.
OTA grupa se ponaša kao posluţilac na čvoru koji raspodeljuje programske podrške i kao
klijent na čvoru koji aţurira postojeću programsku podršku. Posluţilac koji raspodeljuje prima
programsku podršku van mreţe i nakon toga je raspodeljuje.
Raspodela se vrši u odreĎenim koracima prikazanim na slici 2.4. OTA postupak započinje
tako što posluţilac šalje poruku Image Notify (srp. obaveštenje o slici) uskopojasno jednom
ureĎaju ili širokopojasno ka više ureĎaja da obavesti da postoji nova slika. Zatim posluţilac
odluči da li da aţurira trenutnu sistemsku programsku podršku potraţioca na osnovu informacija
sadrţanih u Query Next Image Request (srp. zahtev upita sledeće slike) poruci poslatoj od strane
potraţioca. Nakon ovoga, šalje se Query Next Image Response (srp. odgovor upita sledeće slike)
poruka da obavesti potraţioca da li je dostupna nova verzija sistemske programske podrške,
odnosno da li će početi preuzimanje.Tokom preuzimanja šalju se se poruke Image Block Request
(srp. zahtev odlomka slike) i Image Block Response (srp. odgovor odlomka slike) koje sadrţe
odlomak, slike se razmenjuju izmeĎu opsluţioca i potraţioca. Potraţilac primljene blokove
upisuje u sekundarno skladište koje moţe biti unutrašnje ili spoljašnje.
Na kraju kad potraţilac primi celu sliku posluţiocu se šalje poruka Upgrade End Request
(srp. krajnji zahtev nadogradnje). Kao odgovor, posluţilac šalje nazad poruku Upgrade End
9
Response (srp. krajnji odgovor nadogradnje) kojom obaveštava potraţioca kad da počne prelaz
na novu sistemsku programsku podršku.
Slika 2.5 Primer OTA postupka
2.4 Bootloader (Pokretač operativnog sistema)
Pokretač operativnog sistema je deo koda koji se pokreće pre samog operativnog sistema.
Pokretači se koriste da bi podigli druge operativne sisteme i sadrţe komande za odabir
upravljačkog sistema.
U slučaju zidnog prekidača, pokretač operativnog sistema pokreće postojeći sistem i
proverava da li postoji novija verzija sistema u spoljašnjem skladištu. Ukoliko postoji, pokretač
nalepljuje sliku novog sistema koja je poslata beţičnim putem što je objašnjeno u prethodnom
poglavlju.
Učitavač pomera adresu početka operativnog sistema, odnosno sa adrese 0x0000 na
0x0800 da bi se oslobodio prostor za sam pokretač što je prikazano na slici 2.6.
10
Slika 2.6 Pokretač operativnog sistema
Pokretač operativnog sistema pre nego što izvrši zamenu nove i stare verzije operativnog
sistema mora da pokrene CRC algoritam (engl. Cyclic Rendundancy Check) koji ima svoju
primenu u detekciji greške prilikom promena na podacima. Nakon što se uspešno izvrši provera,
stara verzija se zamenjuje novom verzijom operativnog sistema.
11
3. Koncept rešenja
Rešenje se sastoji od proširivanja postojećeg zidnog dimera. Cilj je da se za postojeću
fizičku arhitekturu koja je proširena još jednim korisničkim tasterom i svetlosnom indikacijom
realizuje nova programska podrška koja će upravljati nadogradnjama i da se omogući beţična
nadogradnja postojeće upravljačke programske podrške. Nadogradnja se vrši po ugledu na
prethodnu izvedbu zidnog dimera, odnosno ne narušava prethodne funkcionalnosti nego ih samo
nadograĎuje i pojednostavljuje. Drugim rečima, prethodne programske izvedbe upravljanja
pritiskom na taster su u ovom slučaju samo razdeljene, pa se samim tim pojednostavila
programska izvedba. Po istom principu ni logika nameštanja svetlosne indikacije nije značajno
menjana, nego je samo proširena za broj kombinacija koji se dobio dodavanjem još dva svetlosna
indikatora. Kod proširivanja za beţičnu nadogradnju programske podrške ipak se moralo ići
korak po korak, jer nije postojala prethodna izvedba.
Kad se sve sumira, koraci u implementaciji rešenja bi bili sledeći :
1. Podela funkcije za upravljanje svetlom i uzastopnim pritiscima
2. Proširivanje broja kombinacija svetlosne indikacije
3. Proširivanje celokupne programske podrške za nadogradnju beţično
4. Testiranje nove programske podrške
Svaki od ovih koraka će biti opisan i detaljnije objašnjen u sledećim poglavljima.
Prethodno rešenje fizičke arhitekture zidnog prekidača se sastojalo iz dva tastera:
primarnog za upravljanje svetlom i sekundarnog za upravljanje reţimom rada. Na tabeli 3.1
prikazane su sve mogućnosti oba tastera onako kako ih je proizvoĎač zamislio.
12
Taster Rad
tastera Funkcija tastera
LED
Indikacija
Primarno
1x kratak pritisak Uključivanje/Isključivanje
2x kratak pritisak Postavljanje jačine osvetljaja na
maksimum (u dimer reţimu)
Dug pritisak (duţe
od 2 sekunde)
Podešavanje jačine osvetljaja (u dimer
reţimu)
Uključivanje/Isključivanje (u
prekidačkom reţimu)
Sekundarno
1x kratak pritisak
Otvaranje ZigBee mreţe Treptaj zelena
Pristupanje mreţnom prolazu Treptaj crvena
2x kratak pritisak Uparivanje kao inicijator Treptaj zelena
3x kratak pritisak Uparivanje kao meta Treptaj narandţasta
Dug pritisak
(pribliţno 5
sekundi)
Stvaranje sopstvene ZigBee mreţe Treptaj zelene i crvene
naizmenično
10x kratak pritisak Vraćanje na fabrička podešavanja Crvena
15x kratak pritisak
Promena reţima rada iz prekidača u
dimer 4x treptaj narandţasta
Promena reţima rada iz dimera u
prekidač 4x treptaj crvena
Tabela 3.1 Mogućnosti stare verzije zidnog dimera
Ideja novog rešenja se zasniva na usavršavanju fizičke arhitekture i programske podrške. Fizička
arhitektura prekidača je usavršena dodavanjem još jednog tastera i dve LED diode za svetlosnu
indikaciju. Neizbeţne razlike u programskoj podršci su objašnjene u poglavlju Programsko
rešenje. Inovacije u fizičkoj arhitekturi prekidača prikazane su na tabeli 3.2.
13
Taster Rad
tastera Funkcija tastera
LED
Indikacija
Gornji
primarni
1x kratak pritisak Uključivanje
2x kratak pritisak Postavljanje jačine osvetljaja na
maksimum (u dimer reţimu)
Dug pritisak (duţe
od 2 sekunde)
Podešavanje jačine osvetljaja (u dimer
reţimu)
Donji
primarni
1x kratak pritisak Isključivanje
2x kratak pritisak Postavljanje jačine osvetljaja na
minimum (u dimer reţimu)
Dug pritisak (duţe
od 2 sekunde)
Podešavanje jačine osvetljaja (u dimer
reţimu)
Sekundarni
1x kratak pritisak
Otvaranje ZigBee mreţe Treptaj zelena
Pristupanje mreţnom prolazu Treptaj crvena
2x kratak pritisak Uparivanje kao inicijator Treptaj zelena
3x kratak pritisak Uparivanje kao meta Treptaj narandţasta
Dug pritisak
(pribliţno 5
sekundi)
Stvaranje sopstvene ZigBee mreţe Treptaj zelene i
crvene naizmenično
10x kratak pritisak Vraćanje na fabrička podešavanja Crvena
15x kratak pritisak
Promena reţima rada iz prekidača u
dimer 4x treptaj narandţasta
Promena reţima rada iz dimera u
prekidač 4x treptaj crvena
Tabela 3.2 Sposobnosti nove verzije zidnog dimera
14
4. Programsko rešenje
U ovom poglavlju je detaljno objašnjeno rešenje, odnosno postupak podele prethodne
upravljačke funkcije za kontrolu jačine osvetljaja sijalice. Opisan je i postupak nadogradnje
postojećeg rešenja za mogućnost beţične nadogradnje (OTA).
Mogućnosti zidnog prekidača prikazane su na slici 4.1. Slika pokazuje prethodno rešenje
programske podrške koja odgovara nepromenjenoj fizičkoj arhitekturi prekidača. Primarni taster
kontroliše jačinu osvetljaja sijalice koristeći duţinu pritiska kao potenciometar. Na slici je takoĎe
prikazana inverzija smera u slučaju ponovnog dugog pritiska. Kratkim pritiscima svetlo se
isključuje i uključuje dok dva uzastopna kratka pritiska postavljaju jačinu osvetljaja sijalice na
maksimum.
Slika 4.1 Dijagram rada stare verzije zidnog dimera
15
4.1 Podela funkcije za upravljanjem svetlom i uzastopnim
pritiscima
Promenjena fizička arhitektura uslovljava promene u programskoj podršci što je
objašnjeno u nastavku poglavlja. Slika 4.2 prikazuje novo rešenje programske podrške.
Slika 4.2 Dijagram rada nove verzije zidnog dimera
Nova funkcija izbegava pamćenje smera tako što funkciju deli na dve pojedinačne funkcije
koje regulišu jačinu osvetljaja respektivno. Deljenje na dve funkcije dalje doprinosi
pojednostavljenju podešavanja i preglednosti programskog koda.
Dodata je funkcija WD_ProccesMainKeyPressUp koja se nalazi u sloju aplikacije, a
koja se poziva na fizički pritisak gornjeg tastera čime je omogućena funkcionalnost novog
tastera. Za donji taster dodata je funkcija WD_ProccessMainKeyPressDown u sloju
aplikacije koja se poziva fizičkim pritiskom donjeg tastera i predstavlja rešenje za taj taster.
Prethodne funkcije ubačene su kao odgovor na promenjenu fizičku arhitekturu. Ovim rešenjem
izbegnuta je inverzija smera (eng. toggle) što pojednostavljuje programsku podršku. Funkcijama
za pritisak gornjeg i pritisak donjeg tastera se prosledjuje parametar pressLength, pomoću
kojeg funkcije mogu da saznaju da li je registrovan kratak ili dugačak pritisak. Ukoliko se bilo
koji od tastera drţi duţe od jedne sekunde, pritisak se registruje kao dugačak i parametar
pressLength se postavlja na vrednost indikatora stanja za dugačak pritisak. U suprotnom
slučaju se postavlja na vrednost za kratak pritisak. Zbog mogućnosti dimovanja, osim indikatora
stanja za kratak i dugačak pritisak, postoji i indikator za prestanak dugog pritiska (puštanje
tastera nakon dugog pritiska) da bi dimer znao da treba da zaustavi dimovanje bilo to ka jačem
osvetljaju sijalice ili manjem.
16
Nova fizička arhitektura je dozvolila proširenje mogućnosti prilikom dva uzastopna kratka
pritiska. Ukoliko unutrašnji merač vremena ne registruje pritisak duţi od 1000 milisekundi,
prepoznaje stisak kao kratak. Vremenski interval od 500 milisekundi za pojedinačni stisak tastera
ostavlja prostora za buduća proširenja programske podrške za više od dva uzastopna pritiska.
Ukoliko se taster pritisne kratko, merač vremena ostavlja 500 milisekundi za sledeći pritisak,
ukoliko se desi pritisak, brojač se resetuje i čeka ponovo sledeći pritisak. Nakon svakog kratkog
pritiska lokalna promenljiva se povećava i nakon sto meraču vremena istekne vreme predviĎeno
za čekanje sledećeg pritiska, poziva se funkcija koja na osnovu broja pritisaka upravlja jačinom
osvetljaja sijalice. Radi bolje preglednosti koda i funkcionalnosti, postoje indikatori stanja za
minimalan i maksimalan broj kratkih pritisaka. Ukoliko lokalna promenljiva ne zadovolji ni
jedan od dva postavljena uslova, odnosno ne poklopi se ni sa jednim od dva indikatora stanje
sijalice će ostati nepromenjeno. Funkcija uzastopnih pritisaka prethodnog rešenja takoĎe je
podeljena na dve funkcije da bi se dobila opcija duplog pritiska za oba tastera, jer problem sa
jednom funkcijom je bilo odreĎivanje koji je taster pritisnut, gornji ili donji, meĎutim podelom
na dve je kod dobio na preglednosti. U samom programskom rešenju te dve funkcije su dodate
pod sledećim imenima kao WD_ProccessMainSWConsecutivePressUp i
WD_ProccessMainSWConsecutivePressDown. Ove dve funkcije smeštene su u nivo
aplikacije, a pozivaju ih funkcije koje očitavaju fizički pritisak. Podešavanje jačine osvetljaja na
maksimum postiţe se putem dva kratka pritiska gornjeg tastera, a minimalna jačina osvetljaja
duplim pritiskom donjeg taster i omogućene su samo u dimerskom reţimu rada.
Domen Povratna
vrednost Naziv
Ulazni
parametri
static void WD_ProccesMainKeyPressUp uint8
pressLength
static void WD_ProccessMainKeyPressDown uint8
pressLength
static void WD_ProccessMainSWConsecutivePressUp void
static void WD_ProccessMainSWConsecutivePressDown void
Tabela 4.1 Funkcije za upravljanje zidnim dimerom
17
4.2 Rešenje problema blokirajuće funkcije svetlosne indikacije
Fizička arhitektura zidnog dimera sadrţi dve LED diode čije funkcije nisu menjane u
novom rešenju, ali su zbog povećanja broja dugmadi dodate još dve LED diode.
Prilikom stvaranja sopstvene Zigbee mreţe (dug pritisak – pribliţno 5 sekundi) LED diode su u
zidnom dimeru treptale naizmenično na poziv blokirajuće funkcije, što znači da nijedna druga
operacija nije mogla biti izvršavana do prestanka naizmeničnog treptanja. Prilikom rada
programske podrške u realnom vremenu blokirajuća funkcija moţe da izazove neočekivane
probleme zbog prekida svih drugih funkcija.
Novo rešenje predviĎa menjanje blokirajuće funkcije u neblokirajuću da bi se izbegli
eventualni problemi (npr. problem sa nadogradnjom postojeće programske podrške). Prethodno
rešenje je blokiralo niz izvršavanja zadataka dajući primarnu ulogu blokirajućoj funkciji,
odnosno naizmeničnom treptanju. Trenutno rešenje postavlja funkciju koja izdaje naredbu
naizmeničnog treptanja unutar strukture da bude deo niza čime se ne prekida tok operacija.
Dodata je funkcija HalLedBlinkAlt u sloj fizičke arhitekture pomoću koje moţemo podesiti
koju LED diodu ţelimo upaliti (leds), izabrati koliko puta da trepne (numBlinks), izabrati
udeo svetljenja diode u datom periodu (percent) i period trajanja svakog ciklusa u
milisekundama (period).
Povratna
vrednost Naziv Ulazni parametri
void HalledBlinkAlt uint8 leds, uint8 numBlinks, uint8
percent, uint16 period
Tabela 4.2 Funkcija naizmeničnog treptanja LED diode
Ovakvo rešenje dozvoljava korišćenje naizmeničnog treptanja kao indikaciju za bilo koji
reţim rada koji će biti realizovan u budućnosti.
Reţimi rada LED svetlosne indikacije nakon rešavanja problema blokirajuće funkcije:
Treptaj – uključivanje i isključivanje LED diode u vremenskom intervalu od 500
milisekundi.
Naizmenično treptanje – naizmenično uključivanje i isključivanje najmanje dve, a
najviše četiri LED diode.
Blicanje(eng.Flash) – uključivanje i isključivanje LED diode u vremenskom
intervalu kraćem od treptaja.
Svetljenje – dugo svetljenje LED diode u predviĎenom vremenskom roku.
18
Pojedinačni reţimi rada su podešeni da mogu da rade istovremeno sa jednom ili više dioda.
Duţina rada funkcija, duţina svetljenja diode i razlog upotrebe su podesivi u odnosu na
specifikacije proizvoĎača.
4.3 Proširivanje celokupne programske podrške za nadogradnju
bežično
Proširivanje programske podrške sastoji iz nekoliko koraka čime se programska podrška
priprema za novo rešenje beţične nadogradnje. Proširivanje programske podrške zasniva se na
dodavanju pokretača sistema, menjanju prethodnog algoritma rada koda i uvoĎenju novina da bi
se omogućila OTA funkcionalnost.
Operaciju proširivanja programske podrške vaţno je izvršiti u pojedinačnim koracima da
bi se izbegle greške, odnosno da bi se eventualne naknadne promene lakše izvršile.
Redosled koraka izvršenih u ovom rešenju:
1. UvoĎenje pokretača operativnog sistema, odnosno pomeranje adrese početka koda
jer prethodno rešenje nije imalo pokretač operativnog sistema.
2. Nakon uvoĎenja pokretača operativnog sistema pojavio se problem nedostatka
mesta na integrisanom kolu što je predstavljalo problem za uvoĎenje OTA
funkcionalnosti. Nakon pregleda koda i provere veličine odreĎenih celina koda
izabrano je rešenje izbacivanja jedne celine umesto nekoliko sitnijih delova koda.
Izbačena je celina koja je pamtila stanje jačine osvetljaja sijalice prilikom
nestanka električne energije. Ova celina se pokazala kao najmanje bitna u odnosu
na ostatak koda.
3. Dodavanje nove funkcije (zclOTA_Init (taskID++)) u funkciju
inicijalizacije nivoa koji rukovodi rasporedom (osalInitTasks (void)),
upravljanjem memorije i komunikacijom izmeĎu slojeva (OSAL nivo – engl.
Operating System Abstraction Layer). Kao rezultat dodavanja ove funkcije dobije
se inicijalizacija OTA procesa.
4. Dodavanje nove petlje (zclOTA_event_loop) u niz zadataka da bi sluţile kao
katalizator za funkciju inicijalizacije nakon što dobiju poruku od OSAL nivoa.
19
5. Promena funkcije koja rukovodi odnosom izmeĎu poruka i dogaĎaja, npr.
prilikom nadogradnje sistemske programske podrške.
6. Uvrštavanje neophodnih datoteka ("zcl.h", "zcl_ota.h" i "hal_ota.h") da
bi se kod mogao prevesti, odnosno korištenje biblioteke koja sadrţi te datoteke da
bi im se moglo pristupiti. Potrebno je podesiti prevodilac programa korišćenjem
postojećih ekstenzija za kreiranje izlaznog programa da bi se stvorila slika koja se
šalje u OTA procesu.
20
5. Testiranje
Testiranje novog rešenja zidnog dimera je vršeno nad svim mogućnostima bez obzira da li
su dodate u novom rešenju ili su deo prethodnog. Testirana je promenjena fizička arhitektura,
kao i dodata programska podrška, odnosno beţična nadogradnja sistema programske podrške.
Test je vršen u realnom vremenu, fizički isprobavajući svaku od mogućnosti koje nudi
zidni dimer. Alati koji su korišteni prilikom testiranja su:
3 zidna dimera
Ota server program
SmartRF05EB razvojna ploča
OTA Dongle
OTA server je Texas Instruments-ov početni pomoćni alat sa grafičkim okruţenjem za
korišćenje OTA server aplikacije. Zahteva Windows XP ili noviji i RS-232 serijski priključak,
preko kojeg se povezuje sa SmartRF05EB razvojnom pločom na kojoj je pokrenut OTA Dongle
program preko RS-232 serijskog priključka.
Slika 5.1 Grafičko korisničko okruţenje OTA server alata
21
Slika 5.2 RS-232 priključak na SmartRF05 EB razvojnoj ploči sa prikačenim serijskim kabelom
Slika 5.3 SmartRF05 EB razvojna ploča sa CC2530 integrisanim kolom
Testiranje je podeljeno u 2 celine:
Funkcionalno testiranje novih i postojećih mogućnosti
Testiranje performansi
22
Rezultati testiranja primarnih tastera i sekundarnog tastera su prikazani u tabeli 5.2.
odnosno 5.3 dok je testiranje OTA funkcionalnosti i izmereno vreme nadogradnje operativnog
sistema prikazano u tabeli 5.1
Broj dimera Srednja vrednost [min] Prolaznost
1 12.12 Uspešno
2 9.19 Uspešno
3 7.9 Uspešno
Tabela 5.1 Vremena nadogradnje operativnog sistema i uspešnost nadogradnje
Da bi se testirala nova nadograĎena OTA funkcionalnost trebalo je podesiti celokupno
okruţenje. Da bi se test mogao izvesti, bilo je potrebno pripremiti serversku i klijentsku stranu.
Za pripremu serverske strane, potreban je bio gore pomenuti OTA server program (Slika 5.1)
koji je bio spojen sa računarom serijskim kabelom sa RS-232 priključkom (Slika 5.2) na
SmartRF05 EB razvojnu ploču (Slika 5.3). Za klijentsku stranu je bio potreban jedan ili više
dimera koji su u sebi imali već spomenuto CC2530 integrisano kolo koje je podrţavalo OTA
funkcionalnost. Zatim je morala biti spremljena i upravljačka programska podrška koja je sluţila
za nadogradnju. Da bi se moglo potvrditi da je uspešno nadograĎena upravljačka programska
podrška, u svrhu testa je promenjena svetlosna indikacija, odnosno prilikom pokretanja nove
verzije, svetlosna indikacija za početak rada ili promenu reţima je treptala više puta u odnosnu
na standardnu verziju, vodeći računa da se ne poklopi sa nekom standardnom da nebi došlo do
zbunjivanja prilikom testa. Na slici 5.4 je prikazano testno okruţenje sa dva dimera SmartRF05
EB razvojnom pločom.
23
Slika 5.4 Test okruţenje sa jednom SmartRF05 EB pločom i dva dimera
Iako bi srednja vrednost nadogradnje programske podrške na više dimera istovremeno
trebala biti brţa onoliko puta koliko ima dimera, rezultati su pokazali da ipak nije tako. Ubrzanje
postoji i u proseku se izmeĎu 25% i 30% u odnosu na nadogradnju samo jednog dimera.
Detaljnim istraţivanjem se došlo do zaključka da je do ubrzanja došlo zbog OTA posluţioca.
Prilikom nadogradnje programske podrške za samo jedan ureĎaj, posluţiocu je u proseku trebalo
60 milisekundi da obradi zahtev od potraţioca i da pošalje odgovor. MeĎutim, kada su spojena
tri dimera, prosečno vreme za obradu sva tri zahteva oko 90 do 100 milisekundi, i zbog toga je
dobijeno prosečno ubrzanje prilikom nadogradnje programske podrške izmeĎu 25% i 30%.
Nedostatak opreme je uslovio da se testiranje završi na tri ureĎaja, i da se doĎe do preciznijih
procena vremena potrebnih za nadogradnju programske podrške.
Testiranje sekundarnog i primarnih tastera je u potpunosti uspešno izvršeno nad svim
starim i novim mogućnostima dimera, zadrţavajući konzistentost i istovremeno dodajući nove
mogućnosti. Samo izvršavanje testa je raĎeno manuelno, korak po korak. Svaka od starih i novih
funkcionalnosti je testirana tako da ispunjava već zadate zahteve koje mora da ispunjava,
odnosno prilikom testiranja bilo je potrebno staviti se u poziciju korisnika i na osnovu upustva
pratiti da li se svaka opisana funkcionalnost uspešno izvršava. Nakon više puta ponovljenog
24
testiranja pokazalo se da su sve funkcionalnosti i dalje radile kao što je bilo očekivano i da nije
narušena funkcionalnost sekundarnog tastera, a i nova raspodela funkcionalnosti na gornjem i
donjem tasteru je radila kao što je očekivano. U tabelama 5.2 i 5.3 su prikazane mogućnosti
taster kao i prolaznost testova.
Taster Funkcija tastera Prolaznost
Gornji primarni
Uključivanje Uspešno
Postavljanje jačine osvetljaja na maksimum (u
dimer reţimu) Uspešno
Podešavanje jačine osvetljaja (u dimer reţimu) Uspešno
Donji primarni
Isključivanje Uspešno
Postavljanje jačine osvetljaja na minimum (u dimer
reţimu) Uspešno
Podešavanje jačine osvetljaja (u dimer reţimu) Uspešno
Tabela 5.2 Testiranje primarnih tastera
Taster Funkcija tastera Prolaznost
Sekundarni
Otvaranje Zigbee mreţe Uspešno
Pristupanje mreţnom prolazu Uspešno
Uparivanje kao inicijator Uspešno
Uparivanje kao meta Uspešno
Stvaranje sopstvene Zigbee mreţe Uspešno
Vraćanje na fabrička podešavanja Uspešno
Promena reţima rada iz prekidača u dimer Uspešno
Promena reţima rada iz dimera u prekidač Uspešno
Tabela 5.3 Testiranje sekundarnog tastera
25
6. Zaključak
U ovom radu pokazano je proširenje postojeće verzije zidnog dimera, u pogledu fizičke
arhitekture i programske podrške. Nova verzija je razvijena po ugledu na staru, odnosno zadrţala
je sve funkcionalnosti stare verzije sa inovacijama. Inovacije predstavljaju detaljno opisanu
promenu programske podrške u saglasnosti sa promenama načinjenim nad fizičkom
arhitekturom.
Nova verzija je pojednostavila prethodno rešenje a da je uspešno zadrţala princip rada
stare verzije dodavanjem novih funkcija koje su uspešno izvršile zadatak pojednostavljenja i
proširenja korisničkih mogućnosti. Prednost nove verzije je u znatno olakšanoj korisničkoj
sprezi i samim funkcionisanjem tastera. Značajna inovacija je i nadogradnja postojeće
programske podrške beţično, sto olakšava posao operaterima na terenu, a i samim korisnicima.
Testiranje u realnom vremenu je pokazalo funkcionalnost dodatog tastera kao i beţične
nadogradnje uprkos nedostatku memorije koju zahteva nova programska podrška.
Programska podrška razvijena u ovom radu je pokazala da budućnost zidnih dimera
poseduje potencijal za podrţavanje svih komercijalnih potreba kao i korisničkih ţelja. Pokazano
je da dalji pravci u razvijanju mogu da odu u raznim smerovima, jer je i na manjim izmenama
zidni dimer pokazao da se skup njegovih sposobnosti znatno proširio.
26
7. Literatura
[1] ZigBee Specification, ZigBee Alliance, August 2015
[2] CC2530 using OTA http://zhendongsprojects.blogspot.rs/2013/11/cc2530-ota-using-z-
stack.html, (pristupano: 14.7.2017)
[3] ZigBee Wireless Networking, Drew Gislason
[4] ZigBee home automation public application profile, ZigBee alliance, June 2013
[5] ZigBee Cluster Library Specification, ZigBee alliance, August 2015
[6] OTA https://en.wikipedia.org/wiki/Over-the-air_programming, (pristupano: 3.7.2017)
[7] CC2530 User's Guide http://www.ti.com/lit/ug/swru191f/swru191f.pdf , , (pristupano:
12.7.2017)
[8] IAR embedded workbench https://www.iar.com/iar-embedded-workbench/, (pristupano:
16.6.2017)
[9] Nadira, Đ., & Mujčić, E. Primjena ZigBee tehnologija u razvoju pametnih kuća, Rim,
2013