analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu dmx512 · 2017. 11....
TRANSCRIPT
Mitja Osojnik
ANALIZA PREJETIH PODATKOVNIHPAKETOV V DIGITALNEM
KOMUNIKACIJSKEM STANDARDUDMX512
Diplomsko delo
Maribor, september 2015
ANALIZA PREJETIH PODATKOVNIH PAKETOV VDIGITALNEM KOMUNIKACIJSKEM STANDARDU
DMX512
Diplomsko delo
Student: Mitja Osojnik
Studijski program: UNIVERZITETNI
RACUNALNISTVO IN INFORMACIJSKE TEHNOLOGIJE
Mentor: doc. dr. Boris Cigale
Lektorica: dr. Renata Zadravec Pesec
ZAHVALA
Najprej bi se rad zahvalil svojemu mentorju doc. dr. Borisu Cigaletu za vso pomoc in podporo,
ki sem je bil delezen v mesecih nastajanja diplomskega dela. Hvala za ves trud in veliko
mero razumevanja, se posebej v trenutkih, ko ni slo vse po nacrtih. Posebna zahvala gre tudi
lektorici dr. Renati Zadravec Pesec. Na koncu bi se rad zahvalil druzini in vsem bliznjim za
podporo, kakor tudi vsem drugim, ki ste vsak na svoj nacin prispevali k mojemu diplomskemu
delu.
ANALIZA PREJETIH PODATKOVNIH PAKETOV V DIGI-TALNEM KOMUNIKACIJSKEM STANDARDU DMX512
Kljucne besede: DMX512, odrska razsvetljava, analiza signala, STM32F4 Discovery
UDK: 004.657(043.2)
Povzetek
Diplomska naloga je v teoreticnem delu posvecena vsebini in nacinu delovanja digitalnega
komunikacijskega standarda DMX512, v drugem delu pa izdelavi tiskanega vezja, ki omogoca
komunikacijo preko protokola RS-485, ter dekodiranju signala DMX512 s pomocjo prototipne
ploscice STM32F407VG Discovery. Delo vsebuje temeljne povzetke standarda DMX 512,
ki so potrebni za nadaljnje delo, saj je poudarek prakticnega dela na razpoznavanju in
dekodiranju signala DMX512, za kar je potrebno tudi teoreticno predznanje. Opisanih je vec
pristopov do razpoznavanja signala in izgradnje filtrov, navedenih je tudi nekaj prednosti in
slabosti posameznih resitev. Rezultati so pokazali, da je mozno konstruirati filtre, s katerimi
lahko zaznamo dolocene napake, vendar se pri implementaciji teh filtrov pojavljajo tezave, ki
so posledica ohlapnosti standarda v dolocenih segmentih.
i
ANALYSIS OF RECEIVED DATA PACKAGES IN DMX512DIGITAL COMMUNICATIONS STANDARD
Key words: DMX512, stage lighting, signal analysis, STM32F4 Discovery
UDK: 004.657(043.2)
Abstract
The theoretical part outlines the main characteristics and operational properties of the
DMX512 communication standard, while in the second part the construction and manufac-
turing process of the circuit board, enabling communication using RS-485 protocol, and
decoding the DMX512 signal using the prototype STM32F407VG Discovery board is descri-
bed. As the main emphasis of the practical part of the project lies on the recognition and
decoding of the DMX512 signal, the fundamental properties of the DMX512 standard, requi-
red for further work, are briefly outlined. Different possible approaches for signal recognition
and construction of appropriate filters are discussed, objectively assessing performance, pros
and cons of each option. The extended analysis of collected data suggests that functional
filters for detecting signal errors can be constructed, however difficulties may arise during
practical implementation due to very loose definitions of certain aspects of DMX512 standard.
ii
Kazalo
1 UVOD 1
2 STANDARD DMX512 2
2.1 Vsebina standarda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Prikljucki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 Kabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.3 Fizicni sloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.4 Podatkovni sloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.5 Paket DMX512 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Odkrivanje napak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 PRIPRAVA OPREME ZA ZAJEM SIGNALA DMX512 12
3.1 Izdelava prototipnega vezja . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1 Maxim MAX3485EESA+ . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.2 STM32F407VG Discovery . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 ZAJEM IN OBDELAVA PODATKOV 20
4.1 Uporaba orodja STM32CubeMX . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1.1 Prilagoditev nastavitev za USB . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Uporaba strojne opreme na STM32F4 Discovery . . . . . . . . . . . . . . . . 22
4.3 Obdelava podatkov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4 Prikaz rezultatov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 SKLEP 33
iii
Slike
2.1 Primerjava anlagne in digitalne lucne mesalne mize. . . . . . . . . . . . . . . 2
2.2 XLR prikljucka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 EIA - 485 kabel. [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 Topologija priklopa naprav. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 Graficni prikaz zgradbe reze podatkov. [6] . . . . . . . . . . . . . . . . . . . . 8
2.6 Graficni prikaz zgradbe paketa DMX512. [10] . . . . . . . . . . . . . . . . . . 9
3.1 STM32F4 Discovery. [13] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Shema ploscice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Nacrt ploscice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Plasti, potrebne za razvijanje vezja. . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 Ploscici med programiranjem. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.6 Razporeditev pinov na Maxim MAX3485EESA+. [11] . . . . . . . . . . . . . . 18
3.7 Shema STM32F407VG Discovery. [17] . . . . . . . . . . . . . . . . . . . . . . 19
4.1 Nastavitveno okno v programu STM32CubeMX. . . . . . . . . . . . . . . . . 21
4.2 Nastavljanje velikosti sklada in kopice. . . . . . . . . . . . . . . . . . . . . . . 22
4.3 Prikaz podatkov. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.4 Prikaz napake v primeru obrnjenih podatkovnih linij. . . . . . . . . . . . . . . 31
iv
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Tabele
2.1 Povezave v prikljucku XLR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Pregled kontrolnih struktur v paketu DMX512. Casi veljajo za prejemnike. [10][4] 9
2.3 Izvedba in interpretacija testa upornosti. [6] . . . . . . . . . . . . . . . . . . . 11
3.1 Pregled funkcij pinov. [11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
v
Kazalo kode
4.1 Izsek nastavitve stevca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2 Nastavitev UART za branje paketov DMX512. . . . . . . . . . . . . . . . . . . 25
4.3 Nastavitev DMA za prenos podatkov iz TIM2. . . . . . . . . . . . . . . . . . . 26
4.4 Funkcija, ki posilja podatke preko USB. . . . . . . . . . . . . . . . . . . . . . 26
4.5 Globalna prekinitev za UART v kateri iscemo zastavico, ki sporoca odmor na
liniji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.6 Funkcija za dolocanje strukture odmor. . . . . . . . . . . . . . . . . . . . . . . 28
4.7 Zaznava glave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
vi
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
1 UVOD
V diplomskem delu bomo poblize spoznali DMX512 – digitalni komunikacijski standard, ki
se praviloma uporablja v zabavni industriji. Kot de facto standard se uporablja za nadzor
svetlobnih efektov, uravnavanje jakosti svetlobe, upravljanje inteligentnih luci in v druge
namene, povezane z razsvetljavo, posebnimi ucinki in krmiljenjem gledaliskih naprav.
Tema diplomske naloge temelji na analizi podatkovne ravni, torej digitalnih paketov, ki
se posiljajo od posiljatelja k prejemniku. Ker standard temelji na principu “daisy chain”,
kar pomeni, da obstaja en izvor signala, naprave, ki signal poslusajo, pa so zaporedno
vezane ena na drugo, obstaja dolocena verjetnost napak, ki so lahko posledica nepravilnega
delovanja naprav, slabega stika v prikljuckih in podobno. Trenutno obstaja na trgu vec razlicnih
tipov analizatorjev signala DMX512; od najenostavnejsih, ki nam le interpretirajo podatke, ki
jih prejemamo, do taksnih, ki vsebujejo logicni analizator in lahko analizirajo promet bit za
bitom. Vsem napravam je skupno dejstvo, da so dokaj drage in zato ne najbolj dostopne.
Sicer lahko na spletu najdemo nekaj navodil za izdelavo lastnega analizatorja, vendar le za
najosnovnejso funkcijo prikaza vrednosti.
Cilj diplomske naloge je izdelati analizator, ki ne le interpretira dobljene podatke, torej
prikazuje poslane vrednosti s strani posiljatelja, ampak tudi pazi, da so izpolnjene vse zahteve
standarda. V primeru odstopanj bomo o tem obvestili uporabnika, z analizo omenjenih
signalov pa bomo skusali ugotoviti, v katerem delu standarda prihaja do napake in kaj bi
lahko bil vzrok zanjo. Ker pa je prestrezanje napak dokaj zahtevno in ne nujno najbolj
ucinkovito, bomo pogledali tudi, kaksni so drugi nacini, ki jih lahko uporabimo za odkrivanje
napak v protokolu DMX512.
1
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
2 STANDARD DMX512
V zacetku digitalne dobe je moznost spreminjanja osvetlitve s pomocjo digitalnega signala
pomenila revolucijo. Velike, okorne in tezko programirljive mesalne mize so zamenjale veliko
manjse in bolj prirocne digitalne mize. Primerjavo med analogno ter digitalno mesalno mizo
ponazarjata sliki 2.1a in 2.1b. Ker je digitalna tehnologija omogocila prenos vecje kolicine
podatkov, ki niso bili vezani le na jakost svetlobe, je prislo do razvoja novih vrst luci in efektov.
(a) Analogna mesalna miza. [3]
(b) Digitalna mesalna miza. [12]
Slika 2.1: Primerjava anlagne in digitalne lucne mesalne mize.
Razvijalci so kar hitro spoznali, da bodo morali najti skupni jezik, saj je sprva vsak
proizvajalec prenasal ukaze preko svojega protokola. V praksi je to pomenilo, da so morale
biti mesalna miza in vsa druga oprema od istega proizvajalca. Morda je bila ideja poslovno
2
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
dobra, ni pa bila prakticna. Posameznik je namrec izgubil moznost izbire, katero opremo bo
uporabljal, saj prizorisca niso imela vedno take opreme, kot bi si jo zelel, svoje pa v primeru,
ce je bila od drugega proizvajalca, ni bilo mogoce uporabiti. Posledicno je komisija inzenirjev
Instituta za gledalisko tehnologijo Zdruzenih drzav Amerike1 (USITT) leta 1986 izdala prvo
razlicico standarda DMX512. Kljub temu da USITT formalno ni bil pristojen za izdajanje
standardov, se je standard DMX512 zacel uporabljati, saj je vseboval enostavne resitve, ki
niso zahtevale dragih posegov v proizvodnjo, so pa omogocile medsebojno kompatibilnost
naprav razlicnih proizvajalcev. [6]
Sprva je standard vseboval le podatke o krmiljenju jakosti luci. Ker se je tehnologija
nenehno razvijala in se je standard uporabljal tudi za krmiljenje drugih naprav, so ga leta
1990 prvic spremenili in dodali manjkajoca dolocila. Nastal je standard USITT DMX512/1990.
Lahko bi rekli, da se je standard vecino casa popravljal za nazaj, saj neodvisen razvoj in
manevrski prostor v samem standardu omogocata veliko inovacij. Tako je leta 1998 postalo
jasno, da so potrebne nove spremembe. Predlogi in usklajevanja so trajali vse do leta 2004,
ko je pod okriljem Zdruzenja zabavne industrije in tehnologije2 (ESTA), Ameriski drzavni
institut za standardizacijo3 (ANSI) priznal standard E1.11-2004.
Nadaljnje spremembe so bile narejene leta 2008, takrat je izsla trenutno veljavna razlicica
standarda American National Standard E1.11-2008 (R2013) Entertainment Technology
USITT DMX512 – A Asynchronous Serial Digital Data Transmission Standard for Controlling
Lighting Equipment and Accessories4 ali na kratko DMX512-A. [4]
Leta 2010 je bil kot dodatek k standardu E1.11-2008 izdan standard ANSI E1.20-20105,
ki je definiral metode dvosmerne komunikacije preko protokola DMX512. [5]
Leta 2011 se je ESTA zdruzila s podobno neprofitno organizacijo PLASA, ki je trenutno
odgovorna za razvoj standarda. [8]
1United States Institute for Theatre Technology, Inc.2Entertainment Services and Technology Association3American National Standards Institute4Ameriski drzavni standard E1.11-2008 (Revizija 2013). Zabavna tehnologija USITT DMX512 – Asinhron
serijski digitalni standard prenosa podatkov za upravljanje osvetlitvene opreme in pripomockov5ANSI E1.20-2010 Entertainment Technology RDM Remote Device Management Over DMX512 Networks
3
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
2.1 Vsebina standarda
Digitalni komunikacijski standard DMX512 je opis metode digitalnega prenosa podatkov
med posiljateljem ukazov in prejemniki. S standardom so dolocene elektricne karakteristike
signala, podatkovni format, podatkovni protokol in tipi prikljuckov, ki se lahko uporabljajo. [4]
Ime standarda izhaja iz multiplekserjev, ki so se med drugimi metodami za nadzor jakosti
luci uporabljali pred digitalno tehniko. Tako kratica DMX6 pomeni digitalni multipleks, stevilo
512 pa nam pove, da lahko po eni signalni liniji (imenujemo jo univerza) istocasno krmilimo
512 kanalov, kar bomo podrobneje razlozili v nadaljevanju. [10]
2.1.1 Prikljucki
Standard od vsega zacetka predvideva uporabo 5-pinskega XLR-prikljucka, prikazanega v
sliki 2.2a. Zenski prikljucek je pritrjen na napravo, ki oddaja signal, moski prikljucek pa na
napravo, ki signal sprejema. Kljub temu da standard zahteva samo tri pine, dva sta rezervna,
je uporaba 3-pinskega XLR-prikljucka, prikazanega v sliki 2.2b, po standardu prepovedana.
Glavni razlog za prepoved je zdruzljivost s tonsko opremo, ki lahko pripelje do poskodb
ene ali druge opreme v primeru napacnega priklopa. Pravilne povezave v prikljucku XLR
so navedene v tabeli 2.1. Kljub vsemu pa se v praksi za prenos signala DMX512 pogosto
uporabljajo 3-pinski XLR-prikljucki.
Tabela 2.1: Povezave v prikljucku XLR.
Pin Povezava
1 Zemlja / 0 V
2 Podatki inverz (-)
3 Podatki (+)
4 Rezervni podatkovni inverz (-)
5 Rezervni podatki (+)
6Digital Multiplex
4
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
(a) 5-pin XLR dolocen s standardom. [2]
(b) 3-pin XLR s standardom ni dovoljen, je pa po-
gosto uporabljen. [1]
Slika 2.2: XLR prikljucka.
Standard omogoca tudi uporabo drugih prikljuckov, najbolj razsirjena alternativa XLR-ju je
RJ45, ki se uporablja za trajne povezave na mestih, ki niso izpostavljena zunanjim dejavnikom.
[6]
2.1.2 Kabel
Standard DMX512 zahteva kabel z oklopljenimi vodniki, zascito jedra in nizko kapacitivnostjo,
ki je izdelan za standard EIA-485. Njegova sestava je prikazana v sliki 2.3. O standardu
EIA-485 bomo vec povedali v nadaljevanju, na tem mestu je dovolj vedeti, da se v standardu
DMX512 uporablja za prenos podatkov po kablu.
Slika 2.3: EIA - 485 kabel. [9]
5
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Oklopljeni vodniki v kablu so pomembni iz vidika motenj, saj sta jim v tem primeru oba
vodnika enako izpostavljena. Da pa do motenj sploh ne bi prihajalo, se izpostavljenost
vodnikov zmanjsa z uporabo zascite jedra, ki je obicajno izvedena s pomocjo prepleta zemlje
okrog vodnikov. [10]
2.1.3 Fizicni sloj
V prejsnjem poglavju smo omenili standard EIA-485, ki ga poznamo tudi pod imenom RS-
485. Standard omogoca prikljucitev do 32 naprav na eno podatkovno linijo, kar dosezemo z
zaporednim povezovanjem, ki ga imenujemo tudi “dasy chain”. V primeru DMX512 imamo eno
napravo, ki oddaja signal, druge pa signal prejemajo (Slika 2.4). Vsaka naprava je opremljena
z dvema prikljuckoma. Na enem prejme signal, na drugem pa ga posilja do naslednje naprave.
Standard zahteva, da ima zadnja naprava v izhodnem prikljucku terminator. Najdaljsa mozna
dolzina linije je 1200 m. Za povezovanje uporabimo kabel za standard RS-485, ki ima
karakteristicno impedanco 120 ohm, ali pa CAT5-kabel s karakteristicno impedanco 100 ohm,
ce uporabljamo prikljucek RJ45. Glede na impedanco kabla izberemo primeren upor za
terminator, tako da je upornost upora enaka impedanci kabla. V terminarju upor prikljucimo
med oba podatkovna vodnika in tako zmanjsamo nezelene odseve signala po podatkovnih
linijah. [4]
Slika 2.4: Topologija priklopa naprav.
S standardom E1.20-2010 se je pojavila tehnologija RDM, ki je DMX512 spremenila
iz protokola, v katerem samo posiljatelj posilja ukaze in drugi poslusajo, v protokol, kjer
lahko tudi druge naprave posiljajo podatke. Tako je omogoceno spremljanje stanja naprav.
Tehnicnih resitev, ki so bile vpeljane, je vec in si jih mogoce prebrati v standardu, saj za
namen nase naloge tehnologija RDM ni pomembna. [5]
”Podatki so po vodnikih poslani kot zaporedje visokih in nizkih stanj. Linija je v visokem
stanju, kadar je podatkoven vodnik pozitiven glede na inverzen podatkovni vodnik . Linija je v
nizkem stanju, kadar je podatkovni vodnik negativen glede na inverzen podatkovni vodnik. To
metodo posiljanja signala po enem vodniku in posiljanje nasprotnega ali komplementarnega
6
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
signala po drugem vodniku imenujemo uravnotezen prenos7. Prejemnik zazna razliko med
podatkovnim vodnikom in inverznim podatkovnim vodnikom, da dekodira signal. Motnje, ki
vplivajo na kabel, bodo skoraj zagotovo vplivale na oba podatkovna vodnika in ju posledicno
prejemnik ne bo uposteval.”[6]
Prejemnik je zmozen dekodirati razlike v podatkovnih vodnikih, ki so vecje od 200 milivoltov
(0.2 V/200 mV). Tako je lahko napetost na enem ali drugem podatkovnem vodniku na intervalu
med +12 V in -7 V8, vendar mora biti njuna razlika vsaj 200 mV. Prav tako napetost na enem
in drugem podatkovnem vodniku ne sme nihati za vec kot 200 mV. [6]
2.1.4 Podatkovni sloj
V prejsnjem poglavju smo povedali, kako podatki potujejo od posiljatelja do prejemnikov,
sedaj si bomo se ogledali, kaksna je zgradba podatkovnih paketov.
V uvodu smo povedali, da stevilo 512 v imenu standarda pove, koliksno je najvecje
mozno stevilo kanalov, ki jih lahko krmilimo z eno podatkovno linijo. Podatki so poslani kot
zaporedje visokih in nizkih signalov, ki jim pravimo biti. V protokolu DMX512, se biti posiljajo
vsake 4 µs (mikrosekunde). Vsak podatek je sestavljen iz 8 bitov, kar nam da en zlog. Zlog
nam zagotavlja 256 razlicnih stanj – od 0 do 255, ki na krmiljenih napravah predstavljajo
vrednost od 0 % do 100 %. Dolocene naprave lahko za krmiljenje preciznih parametrov
zdruzijo dva kanala in uporabijo 16 bitov, kar nam da razpon stanj 0–65.535. Standard nam
torej omogoca posiljanje 512 kanalov, kjer je vsak kanal velik 1 zlog. Da lahko oddajnik in
prejemnik sinhronizirata signal, saj je DMX512 asinhron protokol, kar pomeni, da podatki niso
poslani ob dolocenih intervalih, ampak so lahko poslani kadarkoli, vsakemu zlogu dodamo se
tri bite. Imamo en zacetni ali start bit (nizko stanje) in dva koncna ali stop bita (visoko stanje).
Kadar ne posiljamo podatkov, je linija v fazi cakanja, kar pomeni, da je v visokem stanju.
Kadar je zlog poslan, zacetni bit naroci prejemniku, da prebere naslednjih 8 bitov v
razmaku 4 µs. Na to prejemnik pricakuje dva intervala visokega stanja, ki naznanjata konec
zloga. Linija lahko ostane v visokem stanju ali pa s prejemom zacetnega bita prejemnik
zazna nov zlog. Vsak poslan zlog je torej sestavljen iz 11 bitov (1 bit za zacetek, 8 bitov za
zlog in 2 bita za konec). Tem podatkom pravimo reze9 [6]. Njihova zgradba je prikazana v
sliki 2.5. Znotraj reze se biti posiljajo po pravilu od najmanj do najbolj pomembnega10. [4]
7Balanced transmission8Merjeno na prejemniku proti zemlji / 0 V9Slots
10Least Significant Bit to Most Significant Bit
7
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Slika 2.5: Graficni prikaz zgradbe reze podatkov. [6]
Pri casu 4 µs, ki je potreben za posiljanje enega bita, lahko posiljatelj v eni sekundi poslje
250.000 bitov, kar je 250 kbps11. S tem opisemo hitrost standarda DMX512.
2.1.5 Paket DMX512
V prejsnjem poglavju smo si pogledali, s kaksno tehniko posljemo vrednosti posameznega
kanala oz. rezo od posiljatelja proti prejemniku. Ker protokol omogoca prenos 512 kanalov,
to pomeni, da moramo proti prejemnikom poslati zadostno stevilo rez. Tukaj nastopi DMX512
paket (slika 2.6), v katerem je vseh 512 kanalov poslanih eden za drugim. Ce posiljatelj
podpira le manjse stevilo kanalov, je teh rez lahko manj, ne sme jih pa biti vec kot 512.
Za to, da lahko posiljatelj ugotovi, kateri del paketa prejema, skrbijo kontrolne strukture
znotraj paketa, prikazane v tabeli 2.2.
11Kilo bits per second (kilo bitov v sekundi)
8
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Tabela 2.2: Pregled kontrolnih struktur v paketu DMX512. Casi veljajo za prejemnike. [10][4]
Struktura Opis Stanje Velikost Trajanje
Break Naznani nov paket DMX512. Nizko (0) 22–250
kbitov
88 µs–1
s
Mark After Break
(MAB)
Signalizira zacetek branja. Visoko
(1)
2–250
kbitov
8 µs–1s
Start Code (SC) Ima vedno vrednost 0 (ne
velja za RDM), po velikosti
enaka CD.
Mesano 11 bitov 44 µs
Mark Time Be-
tween Frames
(MTBF)
MTBF loci posamezne zloge. Visoko
(1)
0–250
kbitov
do 1 s
Channel Data
(CD)
Reza z vrednostjo kanala. Mesano 11 bitov 44 µs
Marik Time Be-
tween Packets
(MTBP)
Loci pakete DMX512. Visoko
(1)
0–250
kbitov
do 1 s
Slika 2.6: Graficni prikaz zgradbe paketa DMX512. [10]
Odmor (break) je prva in najbolj pomembna kontrolna struktura, saj naznanja zacetek
novega paketa. To pomeni, da prva poslana reza predstavlja zacetno kodo (start code),
naslednja kanal 1, se naslednja 2 in tako dalje do 512 oziroma lahko tudi manj, ce posiljatelj
ne podpira 512 kanalov. Odmor predstavlja nizko stanje na vodniku, ki traja vsaj 92 µs, kar
je enako dvema celima rezama in dodatnim 4 µs. Standard dopusca dolocene izgube na
podatkovni liniji, za to je ta cas pri prejemniku lahko nizji in znasa 88 µs. [4]
Druga kontrolna struktura, ki jo bomo omenili, je MAB (Mark-after-Break). V originalnih
specifikacijah je dolg vsaj 8 µs pri prejemniku in 12 µs pri posiljatelju, vendar se vcasih zgodi,
9
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
da je to za kos starejse ali slabse opreme premalo. Posledicno naprava izpusti zacetno kodo
in namesto tega prebere prvo rezo, ki predstavlja prvi kanal. Zato naprava ne deluje pravilno.
Napaki se izognemo tako, da dolzino MAB nastavimo na priblizno 44 µs. [4]
Zacetna koda je tretja zaporedna kontrolna struktura. Pove nam, kateri tip podatkov lahko
pricakujemo v rezah. Privzeto je standardna vrednost tega zloga 0 . To nam pove, da imamo
navadne 8-bitne kanale. [6] Druge nestandardne vrednosti in njihov pomen je zapisan v
standardu. [4]
2.2 Odkrivanje napak
Prvi in najpogostejsi razlog za napake je neuporaba terminatorjev. Pri taksni uporabi se lahko
v zadnji napravi signal odbije nazaj po vodnikih in iznici pravi signal. Posledicno je ob prvem
znaku tezav vedno potrebno preveriti, ali ima zadnja naprava terminator in ali je upornost
terminatorja prava. Nekatere naprave imajo vgrajen terminator, ki ga vklopimo s stikalom. Ce
je omogocenih vec terminatorjev, kot jih ima zadnja naprava, je lahko tudi to vzrok tezav.
Seveda je pomembno, da se drzimo vseh zahtev standarda, ki so bile navedene v prejsnjih
poglavjih. Ena izmed praks, ki se jim je treba izogibati, je uporaba kablov, ki niso v skladu s
standardom EIA-485. Najpogosteje so to tonski kabli, saj vecina naprav DMX512 podpira 3-
pinski XLR. Uporaba taksnih kablov je, kljub temu da zadoscajo fizicnim lastnostim standarda,
napacna, saj imajo drugacno impedanco.
Protokol DMX512 lahko deluje tudi, kadar sta inverzni podatkovni vodnik (pin 2) in zemlja
(pin 1) zamenjana ali je kateri od njiju prekinjen ali pa sta v kratkem stiku. Normalno delovanje
z nakljucnimi motnjami je mozno tudi, kadar je kateri izmed podatkovnih vodnikov prekinjen
ali pa sta zamenjana med seboj – inverzni podatkovni vodnik (pin 2) in podatkovni vodnik (pin
3).
Poznamo tudi enostaven test upornosti, podrobneje predstavljen v tabeli 2.3, ki ga
izvedemo na moskem prikljucku na strani posiljatelja, ko so vsi prejemniki priklopljeni.
10
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Tabela 2.3: Izvedba in interpretacija testa upornosti. [6]
Test Normalna
vrednost
Nenormalna
vrednost
Mozne napake
pin 1–pin 2 Vec kot 2
kohm
Odprt krog.
Manj kot 200
ohm.
Nobene prikljucene naprave, naprave niso
nastavljene na prejemanje signala DMX,
prekinjen vodnik.
pin 1–pin 3 Pokvarjen prejemnik, kratek stik na liniji ali
narobe prikljucen prikljucek. Nepotreben
terminator za RDM (pri posiljatelju).
pin 2–pin 3 50–120
ohm
400–20 kohm.
Manj kot 50
ohm. Odprt
krog.
Manjkajoc ali napacen terminator. Preki-
njen vodnik ali pokvarjen prejemnik. Vec
kot dva terminatorja, kratek stik na liniji.
Zemlja in
katerikoli
pin
Odprt krog Manj kot nekaj
Mohm
Kratek stik v prikljucku ali visoka vlaga.
Podobno kot tonska oprema je tudi DMX512 ranljiv ob pojavu zanke preko zemlje. Gre
za situacijo, v kateri imata dve ozemljeni napravi na isti liniji razlicna potenciala. Posledica
je sum v primeru tonske opreme in razlicne motnje v protokolu DMX512. Tezavo resimo
s spremembo napajanja naprav ali pa naprave, ki so na drugem napajanju, medsebojno
izoliramo. [6]
11
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
3 PRIPRAVA OPREME ZA ZAJEM SIGNALA DMX512
Za zajem podatkov sta bila potrebna dva koraka. V prvem koraku je bilo treba podatke, ki
potujejo po kablu v skladu s standardom EIA-485, pretvoriti nazaj v bite. Kasneje je bilo treba
te podatke poslati na racunalnik, kjer so bili ustrezno obdelani.
Za prvi korak smo izdelali prototipno vezje, na katero smo pritrdili cip MAX3485EESA+, ki
je skrbel za komunikacijo preko standarda EIA-485, 3-pinski XLR-prikljucek, ki je omogocal
priklop naprave v DMX512, pine, preko katerih je bilo vezje mozno povezati s prototipno
ploscico, in 120-ohmski upor, ki je sluzi kot terminator. Ceprav 3-pinski XLR- prikljucek
po standardu ni dovoljen, se v praksi vseeno pogosto uporablja. Mi smo se zanj odlocili
predvsem iz prakticnega razloga, saj smo testni signal DMX512 posiljali preko USB-naprave
ChamSys MagicQ, ki ima enak prikljucek.
Za drugi korak smo izbrali prototipno ploscico STM32F4 Discovery (slika 3.1), s pomocjo
katere smo bite, prebrane iz cipa MAX3485EESA+ preko navideznega serijskega porta, z
USB-povezavo poslali na racunalnik.
Slika 3.1: STM32F4 Discovery. [13]
12
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
3.1 Izdelava prototipnega vezja
Za izdelavo lastnega tiskanega vezja smo se odlocili, ker smo zeleli majhen, kvaliteten in
robusten prototip, ki ga bo moc testirati tudi izven laboratorija. Postopek izdelave se je zacel
s seznamom zahtev, ki smo jih navedli ze v uvodnem poglavju. Vse zahteve smo temeljito
preucili in izbrali material, ki je izpolnil te zahteve. Tako smo za zacetek izdelave prototipnega
vezja izdelali seznam potrebnih delov:
• enostranska ploscica za jedkanje s fotolakom,
• kemikalije za razvijanje ploscice,
• kemikalije za jedkanje,
• prosojnice,
• XLR-prikljucek Neutrik NC3MD-H,
• cip MAX3485EESA+,
• 120-ohmski upor,
• 6 pinov.
Ko smo imeli vse dele, smo se lotili nacrtovanja vezja. Za risanje smo uporabili program
EAGLE1, proizvajalca CadSoft, ki ga je za izobrazevalne namene mogoce brezplacno prenesti
s spleta. Najprej smo narisali elektricno shemo ploscice, v kateri smo medsebojno povezali
vse komponente, kot je razvidno na sliki 3.2. Ker mora biti shema tocna, je treba poznati
natancne fizicne karakteristike omenjenih elementov. EAGLE ze v osnovi vsebuje bogato
knjiznico komponent, tako da smo jih vecino nasli kar tam. Zal nacrta cipa MAX3485EESA+
v knjiznici ni bilo, za to smo ga poiskali na spletu.
1Easily Applicable Graphical Layout Editor
13
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Slika 3.2: Shema ploscice.
Elektricno shemo smo na to pretvorili v nacrt nasega tiskanega vezja (slika 3.3). Program
sam obdrzi povezave, ki so bile narejene v postopku nacrtovanja elektricne sheme. Treba
je le primerno razporediti komponente in med pravimi elementi speljati bakrene povezave.
Pravilna razporeditev elementov nam olajsa risanje bakrenih povezav, saj se le-te ne smejo
stikati ali krizati.
Slika 3.3: Nacrt ploscice.
14
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Ko so bile povezave narisane, smo nacrt natisnili na prosojnico in se tako pripravili na
prvi korak v postopku jedkanja vezja – na osvetljavo fotolaka. Ker pa na ploscici nismo zeleli
zatemniti obrisov komponent, smo morali pred tiskanjem onemogociti dolocene plasti nacrta
(slika 3.4).
Slika 3.4: Plasti, potrebne za razvijanje vezja.
Natisnjen nacrt smo obrezali in prilepili v namizni okvir za fotografije. Iz ploscice za
jedkanje smo v temnem prostoru odstranili zascitno folijo in jo pravilno polozili na prosojnico.
Zaprli smo okvir in pod lucjo, ki oddaja UV svetlobo, pustili, da se je fotolak pravilno osvetlil.
[7]
V vmesnem casu smo pripravili dve kadi, v kateri smo zlili spojino za razvijanje fotolaka in
sredstvo za jedkanje. Osvetljeno ploscico smo najprej polozili v razvijalno kad, kjer se je v roku
nekaj minut sprala osvetljena plast laka, kar pomeni, da je baker ponekod ostal nezasciten in
ga je s pomocjo jedkanja mozno raztopiti. Razvito ploscico smo sprali pod tekoco vodo in jo
polozili v kad za jedkanje. Ker gre pri jedkanju za kemicni proces odstranjevanja bakra, je
postopek nekoliko dolgotrajnejsi. Za jedkanje ene ploscice v topli kopeli smo porabili priblizno
pol ure.
Zadnja koraka v izdelavi ploscice sta bila vrtanje lukenj za nekatere elemente in spajkanje.
Na vezje je bilo treba pritrditi material, ki smo ga nasteli v uvodu in uporabili pri risanju nacrta.
Koncni izdelek je bilo treba le se povezati s prototipno ploscico STM32F4 Discovery, kor
prikazuje slika (3.5).
15
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Slika 3.5: Ploscici med programiranjem.
3.1.1 Maxim MAX3485EESA+
V delu, ki je govoril o standardu, smo ze povedali, da se signal DMX512 po kablu prenasa v
skladu s protokolom RS-485. Standard za posiljanje bita uporabi dva vodnika z razlicnima
napetostma. Razlika med napetostma pove, kdaj je linija v visokem in kdaj v nizkem stanju.
Malo je verjetno, da bi bil standard tako razsirjen, ce bi morali sami ugotavljati napetost
vsakega vodnika in racunati stanje. K sreci je ta pretvorba resena s pomocjo cipov, ki
omogocajo kodiranje in dekodiranje standarda. Pri izbiri cipa smo se najbolj osredotocili na
dvoje: da cip podpira hitrost protokola DMX512 in da deluje z logiko 3,3 V, ki jo uporablja
nasa prototipna ploscica STM32F4 Discovery. Maxim MAX2485EESA+ je ustrezal vsem
zahtevam. Na sliki (3.6) je viden razpored pinov in njihova funkcija, ki je predstavljena v
tabeli 3.1. Iz tabele je tudi razvidno, da ima cip podporo za ”half-duplex”, kar pomeni da
lahko podatke preko istih pinov prejemamo ali posiljamo. V nasem primeru smo le prejemali,
ce bi jih zeleli posiljati, pa bi morali spremeniti napetost na kontrolnem pinu. Za razliko od
naprav ”half-duplex”, ki lahko podatke ali prejemajo ali posiljajo, jih lahko naprave ”full-duplex”
istocasno prejemajo in posiljajo.
16
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Tabela 3.1: Pregled funkcij pinov. [11]
PIN Ime Funkcija
1 RO2 Izhodni podatki sprejemnika. Kadar je A > B za vec kot 200 mV,
bo imel RO visoko vrednost (1); kadar je A < B za vec kot 200 mV,
bo imel RO nizko vrednost (0).
2 RE3 Omogoceno posiljanje izhodnih podatkov. RO je dovoljen, ko ima
RE nizko vrednost; RO ima visoko vrednost impedance, ko ima
RE visoko vrednost. Ce ima RE visoko vrednost in DE nizko, bo
naprava presla v stanje spanja.
3 DE4 Omogocen izhod vodila. Izhod vodila je omogocen s spremembo
vrednosti DE na visoko. Imajo visoko impedanco, ko ima DE
nizko vrednost. Ce imata RE visoko in DE nizko vrednost, bo
naprava presla v stanje spanja. Ce je izhod vodila omogocen, deli
nastopajo kot vodniki podatkovnih linij, v stanju visoke impedance
pa delujejo kot sprejemniki podatkovnih linij.
4 DI5 Vhod vodila. Nizka vrednost DI prisili nizko izhodno vrednost Y
ter visoko izhodno vrednost Z. Prav tako visoka vrednost DI prisili
visoko izhodno vrednost Y ter nizko izhodno vrednost Z.
5 GND6 Zemlja.
6 A7 Neobrnljiv vhod sprejemnika ter neobrnljiv izhod gonilnika.
7 B8 Obrnljiv vhod sprejemnika ter obrnljiv izhod gonilnika.
8 Vcc Napajanje: 3.0 V ≤ Vcc ≤ 3.6 V. Upravljanje naprave z Vcc > 3.6
V ni priporocljivo.
2Receiver Output3Receiver Output Enable4Driver Output Enable5Driver Input6Ground7Noninverting Receiver Input and Noninverting Driver Output8Inverting Receiver Input and Inverting Driver Output
17
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Slika 3.6: Razporeditev pinov na Maxim MAX3485EESA+. [11]
3.1.2 STM32F407VG Discovery
Prototipne ploscice so nepogresljivo orodje za izgradnjo prototipov, saj vsebujejo pester
nabor perifernih naprav, s katerimi lahko razvijemo svoj prototip in natancno dolocimo,
katere komponente bomo potrebovali za izdelavo namenskega prototipa. Ploscica STM32F4
Discovery kot centralno procesno enoto uporablja cip STM32F407VG, ki deluje s taktom
168 MHz. Zraven tega se na ploscici nahajajo tudi druge komponente, med katerimi je
vredno omeniti analogno-digitalne in digitalno-analogne pretvornike, podporo za omrezno
povezovanje, vecje stevilo DMA-, I2C-, SPI-, UART- in USART- vmesnikov, stevcev ter podporo
za USB9. Ploscica podpira ”High Speed” (480 Mb/s) in ”Full Speed” (12 Mb/s) vmesnik USB
2.0, vendar bi za USB ”High Speed” potrebovali dodatno zunanjo uro. Za to ploscico smo se
odlocili zaradi visjega takta procesorja, saj le-ta omogoca vecje stevilo operacij na sekundo,
kar olajsa obdelavo vecjih kolicin podatkov. Ploscice ne bi izbrali, ce ne bi imela: podpore za
USB, ki nam je omogocil posiljanje podatkov na racunalnik; DMA, s pomocjo katerega lahko
kopiramo podatke brez sodelovanja procesorja; UART, ki je mocno olajsal asinhrono serijsko
komunikacijo, kamor spada tudi DMX512, in stevce z najrazlicnejsimi nastavitvami, saj smo
te periferne naprave potrebovali za zajem in analizo podatkov.
9Universal Serial Bus (vecnamensko serijsko vodilo)
18
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Slika 3.7: Shema STM32F407VG Discovery. [17]
19
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
4 ZAJEM IN OBDELAVA PODATKOV
To poglavje opisuje nacrtovanje, razvoj in uporabo resitev, ki so bile potrebne za uspesno
dekodiranje signala DMX512 in njegovo analizo. Najprej bomo opisali orodje STM32CubeMX,
s pomocjo katerega smo generirali knjiznice in osnovne nastavitve. Orodje podpira vecino
produktov podjetja STMicroelectronics, kar vcasih pripelje do napak pri generiranju kode za
posamezno napravo, za to so pred uporabo le-te na STM32F4 Discovery potrebne dolocene
spremembe, o katerih bomo povedali nekaj besed. Nato pa bomo opisali funkcije, ki smo jih
uporabili, in navedli nekaj napotkov za pravilno implementacijo. Na koncu bomo predstavili
programske resitve, s katerimi smo zajeli ter analizirali zelene podatke in jih poslali na
racunalnik, kjer so bili predstavljeni uporabniku.
4.1 Uporaba orodja STM32CubeMX
Orodje STM32CubeMX je izdelek podjetja STMicroelectronics, ki ponuja graficni vmesnik za
konfiguracijo vecine njihovih naprav in generiranje knjiznic za njihovo delovanje. Program
je dostopen na spletu in se lahko prosto uporablja, zato smo se odlocili zadevo preizkusiti,
saj pravilna konfiguracija naprave vzame precej casa, ce se je lotimo sami in ce tega ne
pocnemo pogosto.
Graficni vmesnik je sestavljen iz treh glavnih zavihkov, v katerih nastavimo zelene lastnosti.
V prvem zavihku omogocimo funkcije, ki jih potrebujemo, in poskrbimo, da se ne prekrivajo z
drugimi, saj imajo lahko pini na cipu vec razlicnih funkcij. Za nase potrebe smo omogocili
casovnik TIM2, USB FS1, UART7 in zunanji resonator za uro, ki je potreben za casovnik in
USB. V nastavitvah za USB smo izbrali moznost serijske naprave, ki smo jo potrebovali. V
drugem zavihku lahko nastavimo uro oz. takt, s katerim tecejo razlicne periferne naprave. Ker
ne varcujemo z energijo, smo vse nastavitve pustili na najvisji vrednosti. V tretjem zavihku
(slika 4.1) imamo moznosti dodatnih nastavitev posameznih funkcij. Tako smo za casovnik
TIM2 omogocili DMA in ga pravilno konfigurirali. Enako smo storili tudi za UART4, ki smo
mu dodatno omogocili prekinitve. Nastavitve za USB smo pustili privzete. Vec o konfiguraciji
posameznih perifernih naprav sledi v nadaljevanju.
1USB FullSpeed omogoca prenos do 12 Mb/s
20
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Slika 4.1: Nastavitveno okno v programu STM32CubeMX.
Zadnji korak je shranjevanje projekta in generiranje kode. Kodo smo generirali za IAR
Embeded Workbench IDE, ki je bilo tudi razvojno okolje, v katerem smo programirali ploscico.
Druge podprte platforme, za katere je mozno generirati projekt, so: Atollic TrueSTUDIO, Keil
MDK-ARM in SW4STM32, ki je brezplacno razvojno orodje podjetja STM in bazira na orodju
Eclipse.
Generirana koda je vsebovala vse potrebne knjiznice in zacetne nastavitve. Ker vmesnik
ne podpira nastavitve vseh parametrov, je bilo treba dolocene nastavitve naknadno spre-
meniti. Ker smo kodo, generirano s tem orodjem, srecali prvic, smo porabil veliko casa, da
smo ugotovili, kako koda deluje in katere funkcije iz katerih knjiznic moramo uporabiti, da
dosezemo zeleno. K temu sta najbolj botrovali dejstvi, da je dokumentacija skopa in le redko
vsebuje primere uporabe in da so knjiznice razdrobljene, zaradi cesar je med datotekami
tezko navigirati do zelenega dela kode. Kljub temu se je orodje izkazalo za uporabno, saj
znatno zmanjsa cas, potreben za konfiguracijo naprave, vendar ne v primeru zacetnega
nepoznavanja kode.
4.1.1 Prilagoditev nastavitev za USB
Najvec tezav se je pojavilo pri nastavitvah USB navidezne serijske naprave. Generirana
koda je vsebovala nekaj napak, ki jih je bilo treba odpraviti. Ob prvem zagonu kode naprava
ni bila prepoznana. Kot vzrok se je pokazala napacna velikost kopice, ki jo je bilo treba iz
21
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
0x200 spremeniti v 0x400. V razvojnem okolju IAR IDE se velikost sklada in kopice nastavlja v
uporabniskem vmesniku in ne z inicializacijsko kodo 4.2. Sprememba je omogocila, da se je
naprava v okolju Windows predstavila kot navidezna serijska naprava, vendar iz nje vseeno
ni bilo mozno brati podatkov. Po nekaj dneh poskusov ter nekaj neuspelih resitvah iz spletnih
forumov je serijski port naposled le zacel delovati. Kot se je izkazalo, je bilo treba izkljuciti
zaznavanje stanja v-bus2, ki je bilo vkljuceno, kljub temu da le-ta ni bil omogocen. Prav tako
je bilo treba spremeniti velikost APP RX DATA SIZE3 in APP TX DATA SIZE v 2048.
Slika 4.2: Nastavljanje velikosti sklada in kopice.
4.2 Uporaba strojne opreme na STM32F4 Discovery
Osnovni cilj, ki smo ga zeleli doseci, je bilo vzorcenje signala DMX512, njegova obdelava
in posiljanje rezultatov na racunalnik. Do zadanega cilja je mogoce priti na vec nacinov,
izbrali smo tistega, ki se je zdel najbolj ucinkovit in je potencialno ponujal najboljse rezultate.
Pri izbiri je veliko vlogo igralo dejstvo, da se signal prenasa s hitrostjo 250.000 bitov na
sekundo4, kar ni zanemarljiva kolicina podatkov. Da bi lahko rekonstruirali posamezni bit,
2usbd conf.c3usbd cdc if.c4250 kb/s
22
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
je zraven stanja linije, ki je lahko visoko (1) ali nizko (0), treba poznati tudi cas trajanja
posameznega stanja. Kot izhaja iz standarda, se stanje linije za posamezni bit ohranja 4 µs,
kar pomeni, da je treba zaznati spremembo v taksnem casovnem intervalu. Pomembno je
tudi natancno merjenje casa trajanja, saj imamo lahko vec zaporednih bitov, ki imajo enako
stanje linije, njihovo stevilo pa je treba izracunati iz trajanja stanja linije. Za lazje razumevanje
predpostavimo, da zelimo znotraj paketa DMX512 poslati rezo z vrednostjo 2, kar se po
principu posiljanja od najmanj pomembnega bita do najbolj pomembnega pretvori v binarno
01000000, ki predstavlja nas zlog podatkov. Kot izhaja iz standarda, se reza zacne z zacetnim
bitom, ki ima nizko stanje (0) in traja 4 µs. Sledi se 4 µs nizkega stanja (0), saj je prvi bit zloga
enak 0, 4 µs visokega stanja (1), in 32 µs nizkega stanja (0). Kot veleva standard, se reza
konca z dvema bitoma visokega stanja (1), kar znasa se 8 µs. S spremljanjem stanja linije,
bi tako prisli do naslednjega rezultata: 0–8 µs, 1–4 µs, 0–32 µs in 1–8 µs. Ce case delimo
s 4, saj je trajanje enega bita 4 µs, dobimo 00100000011. Vemo, da sta prvi bit in zadnja
bita kontrolni strukturi, zato jih izpustimo. Taksno dekodiranje signala zahteva natancne
rezultate, ki jih samo s spremljanjem stanja linije in merjenjem casa ni mogoce dobiti. Zato
smo uporabili stevec.
Vsak stevec5 ima vnaprej doloceno frekvenco, ki je odvisna od hitrosti vodila, na katerega
je povezan. Ploscica omogoca zmanjsanje ure s faktorjem 2 ali 4. Hitrost stetja pa lahko se
dodatno zmanjsamo s preddeliteljem. Nasa ploscica ima 16-bitni preddelitelj6, kar pomeni, da
je najvecja vrednost, s katero je mogoce deliti izhodiscno frekvenco, 65.535. Uporabili smo
stevec z oznako TIM2 in ga konfigurirali, kot prikazuje spodnji izsek kode 4.1. Stevec lahko
steje navzgor, navzdol ali navzgor in navzdol, vedno pa steje do nastavljene vrednosti. Ce za
stevilo, do katerega stejemo, nastavimo 0 , se stevec ne zazene. Stevec lahko prozi dogodek,
ko presteje do dolocenega stevila, ali pa javi stanje stevca ob dolocenem dogodku. V nasem
primeru je bil tak dogodek prehod linije iz visokega stanja v nizko ali obratno. Z odstevanjem
dveh vrednosti smo dobili stevilo enot, ki so minile od enega do drugega dogodka. Ce
poznamo frekvenco stetja, lahko izracunamo cas. Vemo, da smo uporabili notranjo uro vodila,
ki za stevec TIM2 znasa 84 MHz, kar je 84.000.000 prehodov stanj na sekundo. Ce to
vrednost delimo s preddeliteljem, ki ima vrednost 84, dobimo 1 MHz, kar je enako 1 µs. Ko
smo s pomocjo stevcev izracunali cas med dvema spremembama stanja linije, smo stanje
le-te prebrali iz registra pina, saj bi bila v primeru nepoznavanja stanja rekonstrukcija signala
5Advance-controled timers6Prescaler
23
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
izjemno tezka, ce ne celo nemogoca.
Koda 4.1: Izsek nastavitve stevca.
void MX_UART4_Init(void)
{
htim2.Instance = TIM2;
htim2.Init.Prescaler = 84;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 0xffffffff;
HAL_TIM_Base_Init (&htim2);
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource (&htim2 , &sClockSourceConfig);
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
sConfigIC.ICFilter = 0;
HAL_TIM_IC_ConfigChannel (&htim2 , &sConfigIC , TIM_CHANNEL_1);
}
Ker je programsko rekonstruiranje signala casovno zahtevno in podvrzeno napakam,
je v primeru normalnega stanja linije, ko v prenosu ne prihaja do napak, bolje in hitreje
uporabiti UART7, saj protokol DMX512 uporablja serijsko komunikacijo. S tem se proces
branja vrednosti rez avtomatizira, saj UART sam zazna, kateri del paketa so podatki, kateri
pa le krmilne strukture, in nam vrne le pravilne podatke. STM32F4 Discovery ponuja vec
USART- in UART-vmesnikov, mi smo izbrali UART4, saj smo potrebovali le asinhrono branje
podatkov. Najvisja mozna hitrost, ki jo je mogoce doseci, je 10.5 Mb/s, kar je veliko vec kot
hitrost 250 kb/s, pri katerih deluje protokol DMX512. [15] Za pravilno delovanje je kljucnega
pomena pravilna konfiguracija. Kot je razvidno iz inicializacijske funkcije 4.2, smo ”baud rate”8
nastavili na 250.000 , kar je enakovredno 250 kb/s. Stevilo koncnih bitov smo nastavili na dva,
kot veleva standard, stevilo podatkovnih bitov pa na 8, saj je prvi bit v rezi kontrolna struktura.
7Universal asynchronouse receiver transmitter (Univerzalen asinhroni prejemnik in posiljatelj)8Baud rate – stevilo bitov na sekundo
24
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Koda 4.2: Nastavitev UART za branje paketov DMX512.
void MX_UART4_Init(void)
{
huart4.Instance = UART4;
huart4.Init.BaudRate = 250000;
huart4.Init.WordLength = UART_WORDLENGTH_8B;
huart4.Init.StopBits = UART_STOPBITS_2;
huart4.Init.Parity = UART_PARITY_NONE;
huart4.Init.Mode = UART_MODE_RX;
huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart4.Init.OverSampling = UART_OVERSAMPLING_16;
HAL_UART_Init (& huart4);
}
Branje podatkov mora potekati hitro in brez prekinitev, saj je treba ujeti vse bite in bajte,
zato za prenos podatkov uporabimo DMA9. Kot pove njegovo ime, DMA omogoca prenos
podatkov iz periferije do pomnilnika brez uporabe procesorja, kar pomeni, da centralna
procesna enota ni motena zaradi prenosa podatkov. Prav tako je omogoceno kopiranje iz
pomnilnika na periferijo in iz pomnilnika v pomnilnik. [14] Kot pri vseh drugih nastavitvah
moramo tudi pri konfiguraciji DMA paziti na nekaj osnovnih parametrov. Spodnji izsek
kode prikazuje nastavitve, ki smo jih uporabili za casovnik TIM2 4.3. STM32F4 Discovery
ima dva krmilnika DMA, od katerih ima vsak 8 kanalov. Kadar zelimo prenasati podatke
s periferije v pomnilnik ali obratno, moramo izbrati DMA krmilnik in kanal, ki je namenjen
prenosu na zeleno periferno napravo. Za prenose iz pomnilnika v pomnilnik uporabimo DMA2.
Naslednja zahtevana nastavitev je stevilo bitov, ki jih beremo, in stevilo, ki ga zapisemo.
Na razpolago imamo tri moznosti: zlog, ”half-word”, kar znasa 16 bitov, in ”word”, kar je
32 bitov. Ce na izvoru in cilju ne nastavimo iste velikosti, se biti zdruzujejo po principu
”litle-endian”10. Naslednja pomembna lastnost je nacin obnasanja DMA. Kadar je parameter
”mode” nastavljen na vrednost ”normal”, DMA prenese zeleno stevilo podatkov in se nato
ustavi. Ce zelimo prenasati konstanten tok podatkov, parameter prestavimo na vrednost
“circular”11, kar povzroci, da se prenos ponavlja, dokler ga ne izkljucimo. DMA nam tudi
omogoca uporabo polja FIFO12, ki je velikosti 128 bitov.
9Direct Memory Access (direktni dostop do pomnilnika)10Biti so razporejeni od najmanj pomembnega do najbolj pomembnega11krozno12First In First Out (prvi noter prvi ven)
25
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Koda 4.3: Nastavitev DMA za prenos podatkov iz TIM2.
hdma_tim2_ch1.Instance = DMA1_Stream5;
hdma_tim2_ch1.Init.Channel = DMA_CHANNEL_3;
hdma_tim2_ch1.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_tim2_ch1.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_tim2_ch1.Init.MemInc = DMA_MINC_DISABLE;
hdma_tim2_ch1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
hdma_tim2_ch1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
hdma_tim2_ch1.Init.Mode = DMA_CIRCULAR;
hdma_tim2_ch1.Init.Priority = DMA_PRIORITY_HIGH;
hdma_tim2_ch1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
hdma_tim2_ch1.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
hdma_tim2_ch1.Init.MemBurst = DMA_MBURST_SINGLE;
hdma_tim2_ch1.Init.PeriphBurst = DMA_PBURST_SINGLE;
HAL_DMA_Init (& hdma_tim2_ch1);
Za posiljanje podatkov s ploscice na racunalnik smo uporabili navidezna serijska vrata
USB. Posiljanje se je dogajalo v funkciji, prikazani v izseku kode 4.5. Funkcija je bila v rednih
intervalih klicana in redno se je preverjalo, ali so podatki v katerem izmed paketov pripravljeni.
Ko so bili, se je paket poslal s klicem funkcije CDC Transmit FS, ki je del generirane knjiznice.
Pred posiljanjem je treba preveriti, ali je naprava povezana in pripravljena za posiljanje.
Koda 4.4: Funkcija, ki posilja podatke preko USB.
void threadVirtualUSB ()
{
// Preverimo , da je naprava konfigurirana in posljemo paket , ki je
pripravljen.
if (hUsbDeviceFS.dev_state == USBD_STATE_CONFIGURED) {
if (AaliB == 1) {
CDC_Transmit_FS(UsbTxBuffA , UsbTxBuffSizeA);
usbAction = 1;
AaliB = 0;
}
}
}
26
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
4.3 Obdelava podatkov
Podatki, prebrani na perifernih napravah, so se s pomocjo DMA shranili v vnaprej dolocena
mesta v pomnilniku, kar pomeni, da smo jih lahko takoj uporabili. Iz UART-a, ki smo ga
nastavili tako, da je bral pakete DMX512, smo prejeli vrednosti rez, ki predstavljajo stanje
kanala. Nadaljnja obdelava podatkov, ce na liniji ne prihaja do napak, ni bila potrebna.
Podatke smo le shranili v polje in jih poslali uporabniku. Za dolocanje zacetka novega paketa
smo izkoristili prekinitev in nastavljeno zastavico, ki jo UART prozi, kadar naleti na odmor
(break), ki oznacuje zacetek novega paketa. Ista prekinitev nam omogoca tudi spremljanje
napak, saj se v primeru le-teh prekinitve prozijo zelo pogosto. Seveda pa so ti podatki
verodostojni samo, kadar lahko parametre standarda izmerimo in ugotovimo, ali sovpadajo s
standardom ali ne. Te deviacije smo merili s pomocjo podatkov, pridobljenih iz stevca.
Koda 4.5: Globalna prekinitev za UART v kateri iscemo zastavico, ki sporoca odmor na liniji.
void UART4_IRQHandler(void)
{
if(__HAL_UART_GET_FLAG (&huart4 , UART_FLAG_FE)) {
i = 3;
j = 2;
BaliA = 1;
errSnd ++;
}
HAL_UART_IRQHandler (& huart4);
}
Vrednosti stevca smo odcitali, kadar je prislo do spremembe stanja linije. Trenutni
vrednosti smo odsteli prejsnjo vrednost in tako izracunali dolzino zadnjega stanja linije. Ker
smo stevec nastavili tako, da se spremeni vsako 1 µs, nismo imeli tezav z dolocanjem trajanja.
Vendar za ugotavljanje struktur paketa niso dovolj samo casi trajanja stanja linije, ampak
potrebujemo tudi podatek o stanju. Za to smo iz registra pina, na katerega je bil prikljucen
vhod za TIM2, to strukturo prebrali na zacetku in jo pri vsakem naslednjem podatku spremenili,
saj se neprestano izmenjavata vrednosti 0 in 1. Podatek smo v rednih casovnih razmakih
preverili, saj je mozno, da bi kak cas izpustili in posledicno samo menjavanje polaritete ne bi
prikazovalo realnega stanja. Dobljene vrednosti smo primerjali z vrednostmi, ki jih zahteva
standard (tabela 2.2). Tako smo lahko identificirali zelene podatkovne strukture in ugotovili,
27
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
ali se njihovi casi skladajo s tistimi, dolocenimi v standardu. 4.6
Koda 4.6: Funkcija za dolocanje strukture odmor.
void threadnajdiBreak ()
{
if (novaVrednostTIM)
{
// BREAK je dolg vsaj 88 mikro sekund
if (vrednostTIM2 >= 88 && stanjePIN == 0 && breakIN == 0)
breakIN = vrednostTIM2;
// BREAK -u sledi MAB , ki je dolg vsaj 8 mikro sekund
else if (breakIN > 0 && vrednostTIM2 >= 8 && stanjePIN == 1)
{
breakTime = breakIN;
breakIN = 0;
lineOK = 0;
} else {
breakIN = 0;
}
novaVrednostTIM = 0;
}
}
V primeru, da UART ni uspel prebrati podatkov in je javil napako, smo skusali ugotoviti,
ali lahko napako identificiramo. Najbolj smo si prizadevali implementirati metodo, s pomocjo
katere bi lahko ugotovili, ali gre za obrnjeni podatkovni liniji, saj je ta napaka razmeroma
pogosta. Z enako metodo, kot smo racunali dolzino odmora, smo skusali izracunati njegovo
dolzino na obrnjenih podatkovnih linijah. Prakticno to pomeni, da se obrnejo stanja linije.
Odmor, ki ima obicajno nizko stanje (0), ima v taksnem primeru visoko stanje (1) 4.6. Ce je
bila zaznava strukture uspesna, smo uporabnika o tem obvestili, v nasprotnem primeru smo
javili samo splosno napako branja.
4.4 Prikaz rezultatov
Na racunalniku smo podatke pridobivali s pomocjo serijske naprave. Za izgradnjo aplikacije
smo uporabili Visual Studio in napisali aplikacijo v programskem jeziku C#. Aplikacija na ukaz
uporabnika odpre serijsko napravo ter zacne brati podatke. Podatki se iz ploscice posiljajo v
28
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
paketih, ki so sestavljeni iz glave in podatkov. Glava je sestavljena iz dveh zlogov, ki se ne
spreminjata in nam omogocata zaznavo zacetka podatkovnega paketa, kot prikazuje izsek
kode 4.7.
Koda 4.7: Zaznava glave.
if (!glava)
{
if (( stanje == 0) && (buffer[f] == 0xAB))
stanje = 1;
else if (( stanje == 1) && (buffer[f] == 0xBA)) {
stanje = 2;
glava = true;
} else if (( stanje == 0) && (buffer[f] == 0xBA)) {
stanje = 3;
} else if (( stanje == 3) && (buffer[f] == 0xAB)) {
stanje = 4;
glava = true;
} else {
stanje = 0;
}
}
Glavi sledijo vrednosti posameznih kanalov, ki jih shranimo v polje. Vsebino polja upo-
rabniku prikazemo v graficnem vmesniku. Podatki se lahko osvezujejo samodejno ali pa
le na uporabnikovo zeljo. Rocno osvezevanje je uporabno v primerih, ko uporabnik zeli na-
tancneje pregledati prikazane vrednosti. Vklop in izklop samodejnega osvezevanja dosezemo
s klikom na gumb osvezi, enkratno osvezitev podatkov pa dosezemo z dvojnim klikom. Na
sliki 4.3 lahko vidimo graficni vmesnik, ki prikazuje vrednost vseh 512 kanalov. Podatek o
vrednosti posameznega kanala je pomemben za diagnostiko, saj nam pove, ali posiljatelj
posilja zelene vrednosti in ali podatki pridejo do koncne naprave. Uporabnik lahko s klikom
na gumb vrednost oziroma odstotek preklaplja med prikazanimi vrednostmi (med odstotki in
vrednostmi kanala). V spodnjem levem kotu lahko najdemo tudi podatke o zacetni kodi in
dolzini odmora. Na sredini je prikazano trenutno stanje signala DMX512, kjer lahko uporabnik
prejme sporocilo o vec razlicnih napakah.
29
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Slika 4.3: Prikaz podatkov.
Podatek o dolzini odmora nam lahko pomaga pri detekciji tezav, ki jih aplikacija trenutno
ne zazna sama. Tako lahko krajsi cas od zahtevanega nakazuje na tezavo pri prenosu
signala, ki je lahko posledica napake na vodniku ali pa okvarjene naprave. Priporoceno je
preveriti cas pri posiljatelju in ugotoviti, ali so tam izmerjeni casi v skladu s standardom. Ce
so, meritve nadaljujemo po verigi, dokler ne odkrijemo izvora napake. Seveda krajsi cas
trajanja signala za odmor najverjetneje ne bo neposredno vplival na delovanje naprav, vendar
lahko isti dejavniki, ki vplivajo na skrajsanje dolzine tega signala, enako vplivajo tudi na druge
strukture paketa, kar pa lahko pripelje do izgube bitov in posledicno do napacnega delovanja
naprav.
Naslednji podatek, ki ga izpisujemo, je zacetna koda. Gre za prvo rezo v paketu, ki
doloci funkcijo nadaljnjih rez. Praviloma je vrednost zacetne kode 0, kar napravam pove, da
reze, ki sledijo, nosijo vrednosti posameznih kanalov. Z uvedbo tehnologije RDM, ki smo jo
ze omenili, je zacetna koda dobila dodatne vrednosti. Tezava nastopi, kadar uporabljamo
funkcije RDM, nekatere naprave na isti liniji pa tega protokola ne podpirajo in ne preverjajo
30
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
vrednosti zacetne kode. Taksne naprave pakete RDM obravnavajo kot navadne pakete, kljub
temu da bi jih morale izpustiti. V tem primeru lahko preverimo, kaksna je vrednost zacetne
kode, in vidimo, ali posiljamo napacne pakete ali pa dolocene naprave delujejo napacno.
Kot zadnje bomo omenili se polje s stanjem signala DMX512, v katerem izpisujemo tri
razlicne napake. Prvo opozorilo “Ni podatkov.” nam pove, da program preko serijskih vrat
ne prejema podatkov. To stanje nastopi, kadar STM32F4 Discovery ne prejme nobenega
signala, kar pomeni, da posiljatelj ne posilja ali pa ploscica ni priklopljena na pravo linijo.
Drugo opozorilo je “Napaka branja.”, kot je prikazano na sliki 4.4.
Slika 4.4: Prikaz napake v primeru obrnjenih podatkovnih linij.
Ta napaka nastopi, kadar UART na ploscici dobiva podatke, vendar le-ti nimajo pricakovane
strukture. Moznosti za taksno napako je vec, lahko gre za izgubo dela paketa, prehitro
posiljanje ali pa v celoti za napacen signal. Napako skusamo na ploscici tudi identificirati.
Iskanje napake obrnjenih podatkovnih linij smo ze razlozili v prejsnjem poglavju. Omenjeno
napako najveckrat povzroci napacno izdelan kabel ali pa napacno povezane linije na ka-
teri izmed naprav. Nekatere izvorne naprave ponujajo moznost obracanja polaritete, kar
31
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
bistveno pripomore k pogostosti taksnih napak. Po uspesni zaznavi napake obvestimo o tem
uporabnika z opozorilom “Obrnjeni podatkovni liniji.”, kot je prikazano na sliki 4.4.
32
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
5 SKLEP
V sklepnem delu diplomske naloge bi radi objektivno ocenili opravljeno delo, izpostavili
pozitivne vidike in skusali evalvirati, kaj vse bi lahko storili bolje.
Izbrana tema nam je ponujala veliko moznosti, saj podobnih projektov skoraj ni mogoce
izslediti. Razlogov za to je vec, prevladujoca sta najverjetneje zaprtost kroga ljudi, ki upo-
rabljajo to tehnologijo, in komercialni izdelki na trgu, ki jih uporabljajo profesionalci. Nasa
resitev je lahko vodilo vsem tistim, ki jih to podrocje zanima, vendar se z njim ne ukvarjajo
dovolj aktivno, da bi se odlocili za nakup komercialnega produkta.
Zacetni cilji so bili jasni in realni, zato smo vecino zastavljenih ciljev dosegli, seveda pa
obstaja se veliko prostora za izboljsave. Izdelali smo vezje s cipom, ki prejema podatke po
protokolu RS-485 in jih posilja v binarni obliki kot zaporedje visokih in nizkih stanj. Ta stanja
smo uspesno zaznali in interpretirali s pomocjo prototipne ploscice. Vrednosti posameznih
kanalov na delujoci liniji smo prebrali s pomocjo UART-a, podatke, potrebne za diagnostiko, pa
pridobili s pomocjo stevca in preverjanjem stanja linije na vhodnem pinu. Obdelane podatke
smo uporabniku uspesno prikazali v aplikaciji, tako vrednosti posameznega kanala kot tudi
podatke o napakah.
Podrocje, na katerem smo pricakovali vec, je brez dvoma diagnostika. Zal se je protokol
DMX512 izkazal za dokaj zahtevnega, kadar govorimo o analizi, saj je zaradi hitrosti in
zgradbe standarda, ki je v primeru dolzine posameznih krmilnih struktur dokaj ohlapen, to
analizo tezko natancno izvesti. Kadar pride do napak pri prenosu, se namrec hitro zgodi,
da pozitivno identificiramo napacno strukturo. Pomagamo si z iskanjem dveh zaporednih
struktur, ki ju ni mogoce zamenjati. To sta odmor, ki je dolg vsaj 88 µs v nizkem stanju linije,
in MAB, ki ima visoko stanje linije in je dolg vsaj 8 µs. Odmor je edina neprekinjena struktura
z negativnim stanjem linije, daljsim od 36 µs, s pomocjo MAB pa lahko potrdimo pravilno
zaznavo. Stanje postane konfuzno, kadar se zgodi obrat linij, saj je potrebno odmor iskati pri
obratnem stanju linije. Ce ga iscemo pri nespremenjenem stanju, ga napacno identificiramo,
saj dobi nedejavna linija, ki jo v normalnem stanju predstavlja visoko stanje, nizko stanje.
Maksimalna dolzina odmora in nedejavne linije ima enako omejitev, to je 1 s. Ker je MAB v
standardu definiran kot vsaj 8 µs visokega stanja, zgornja meja pa je 1 s, lahko kateri koli
naslednji signal, ki izpolnjuje pogoje, zaznamo kot MAB in tako potrdimo zaznavo signala
33
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
za odmor, kljub temu da to ni res. Seveda bi lahko iskali se dodatne strukture, vendar s tem
mocno narascata kompleksnost zaznave in cas, potreben za procesiranje.
Iz zapisanega izhaja, da je pravilna interpretacija in analiza standarda DMX512 mozna
in da tudi daje uporabne rezultate. Opisana resitev ponuja uporabniku zadostno kolicino
podatkov, da mu v primeru tezav olajsa iskanje napak na liniji DMX512. V primeru obrnjenih
linij in izpada signala obvesti uporabnika, za tocno katero napako gre.
V prihodnje bo treba trud in razvoj vloziti v izgradnjo novih filtrov, ki bodo omogocali boljso
diagnostiko od trenutnih. Seveda se bodo uporabnost izdelka in njegove pomanjkljivosti
najbolj izkazale v praksi, pridobljene izkusnje pa bodo pripeljale do novih izboljsav.
34
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
Literatura
[1] 3 pin XLR. Digitalna fotografija. ACCLAIM LIGHTING. Dostopno na: http://www.
acclaimlighting.com/uploads/pics/3pin_xlr_02.jpg[09. 08. 2015].
[2] 5 pin XLR. Digitalna fotografija. ACCLAIM LIGHTING. Dostopno na: http://www.
acclaimlighting.com/uploads/pics/5pin_xlr_01.jpg[09. 08. 2015].
[3] 96 Channel Strand System LC. Digitalna fotografija. Theatre Lighting Archive. Do-
stopno na: http://www.theatrearchive.co.za/members/gallery/images/large/
30bfdaaee44ea0a662692e970cdd17c2.jpg[08. 08. 2015].
[4] ANSI E1.11 - 2008. American National Standard E1.11 – 2008 (R2013) Entertainment
Technology USITT DMX512 - A Asynchronous Serial Digital Data Transmission Standard
for Controlling Lighting Equipment and Accessories. PLASA North America, New York,
2013. Dostopno na: http://tsp.plasa.org/tsp/documents/docs/E1-11_2008R2013.
pdf[08. 08. 2015].
[5] ANSI E1.20 - 2010. ANSI E1.20 – 2010, Entertainment Technology – RDM – Remote De-
vice Management over DMX512 Networks. PLASA North America, New York, 2011. Do-
stopno na: http://tsp.plasa.org/tsp/documents/docs/ANSI_E1-20_2010.pdf[08.
08. 2015].
[6] Bennett A. Recommended Practice for DMX512, 2nd Edition incorporating USITT
DMX512-A and Remote Device Management - RDM. East Sussex: PLASA, 2008.
Dostopno na: http://tsp.plasa.org/tsp/documents/docs/DMX512-A_Guide_(8x10)
_ESTA.PDF[08. 08. 2015].
[7] Circuit Skills: Circuit Board Etching. Video posnetek. Dostopno na: https://www.
youtube.com/watch?v=tWnfnt2rNO0[20. 08. 2015].
[8] DMX512. Wikipedia, the free encyclopedia. Dostopno na: https://en.wikipedia.org/
wiki/DMX512[08. 08. 2015]
[9] EIA RS-485 standard kabel. Digitalna fotografija. Odeskabel. Dostopno na: http:
//www.odeskabel.com/main-eng/index.php?option=com_content&view=article&
35
Analiza prejetih podatkovnih paketov v digitalnem komunikacijskem standardu DMX512
id=138:odeskabel-starts-supplying-interface-cables&catid=6&Itemid=16[09.
08. 2015].
[10] Elation Professional A Division of the American DJ Group of Companies. DMX 101: A
DMX 512 HANDBOOK. Los Angeles: Elation Professional A Division of the American
DJ Group of Companies, 2008. Dostopno na: http://www.elationlighting.com/
pdffiles/dmx-101-handbook.pdf[08. 08. 2015].
[11] Maxim Integrated Products. 3.3V-Powered, ±15kV ESD-Protected,
12Mbps and Slew-Rate-Limited True RS-485/RS-422 Transceivers:
MAX3483E/MAX3485E/MAX3486E/MAX3488E/MAX3490E/MAX3491E. Rev
0. Sunnyvale: Maxim Integrated Products, 1999. Dostopno na: http:
//www.maximintegrated.com/en/app-notes/index.mvp/id/367[09. 09. 2015].
[12] Pro Palette. Digitalna fotografija. The Strand Archive. Dostopno na: http:
//www.theatrecrafts.com/archive/contentssearch.php?global=1&type=kit&
search=6065[08. 08. 2015].
[13] STM32F4 Discovery. Digitalna fotografija. WolinLabs. Dostopno na: http://www.
wolinlabs.com/blog/linux.stm32.discovery.gcc/stm32f4_discovery.jpg[09. 09.
2015].
[14] STMicroelectronics. RM0090 Reference manual. STM32F405/415, STM32F407/417,
STM32F427/437 and STM32F429/439 advanced ARM-based 32-bit MCUs. Do-
cID018909 Rev 10 2015. Dostopno na: http://www.st.com/web/en/resource/
technical/document/reference_manual/DM00031020.pdf[09. 09. 2015].
[15] STMicroelectronics. STM32F405xx STM32F407xx. DocID022152 Rev 5 2015. Do-
stopno na: http://www.st.com/web/en/resource/technical/document/datasheet/
DM00037051.pdf[09. 09. 2015].
[16] Texas Instruments Incorporated. Isolated RS-485 transceivers support DMX512 stage
lighting and special-effects applications. 3Q 2011. Dallas: Texas Instruments Incorpo-
rated, 2011. Dostopno na: http://www.ti.com/lit/an/slyt425/slyt425.pdf[08. 08.
2015].
[17] Dostopno na: http://www.wvshare.com/img/devkit/STM32F4DISCOVERY/
STM32F4DISCOVERY-dimensions.jpg[09. 09. 2015].
36