ˇ ´ VYSOKE ´ UCEN ˇ ´I TECHNICKE ´ CESK E V PRAZE CZECH TECHNICAL UNIVERSITY IN PRAGUE
´ FAKULTA ELEKTROTECHNICKA ˇ REN ˇ ´I KATEDRA ME FACULTY OF ELECTRICAL ENGINEERING DEPARTMENT OF MEASUREMENT
´ MODULY S ROZHRAN´IM ETHERNET PRO SYSTEM ˇ SBERU DAT
´ RSK ˇ A ´ PRACE ´ BAKALA BACHELOR’S THESIS
´ AUTOR PRACE AUTHOR
ˇ ´ ADAM BARTIP AN
ˇ ´ VYSOKE ´ UCEN ˇ ´I TECHNICKE ´ CESK E V PRAZE CZECH TECHNICAL UNIVERSITY IN PRAGUE
´ FAKULTA ELEKTROTECHNICKA ˇ REN ˇ ´I KATEDRA ME FACULTY OF ELECTRICAL ENGINEERING DEPARTMENT OF MEASUREMENT
´ MODULY S ROZHRAN´IM ETHERNET PRO SYSTEM ˇ SBERU DAT MODULES FOR ETHERNET BASED DATA ACQUISITION SYSTEM
´ RSK ˇ A ´ PRACE ´ BAKALA BACHELOR’S THESIS
´ AUTOR PRACE
ˇ ´ ADAM BARTIP AN
AUTHOR
´ VEDOUC´I PRACE SUPERVISOR
PRAHA 2011
doc. Ing. JAN FISCHER, CSc.
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra měření
Akademický rok 2010-2011
ZADÁNÍ BAKALÁŘSKÉ PRÁCE
Student:
Adam Bařtipán
Obor:
Kybernetika a měření
Název tématu česky:
Moduly s rozhraním Ethernet pro systém sběru dat
Název tématu anglicky:
Modules for Ethernet Based Data Acquisition System
Pokyny pro vypracování: Navrhněte a realizujte moduly s rozhraním Ethernet a podporou protokolu PTP a další podpůrné bloky, které budou využity v distribuovaném systému synchronního sběru dat a dálkového ovládání. Při návrhu se orientujte na využití procesorů řady STM32. Implementujte TCP/IP stack lwIP a vytvořte další potřebné programové vybavení pro STM32 včetně podpory standardu IEEE1588 i programové vybavení pro nadřazené PC. S využitím modulů sestavte jednoduchou verzi systému synchronního sběru dat a ovládání akčních členů, pomocí nějž ověříte správnost návrhu modulů i způsobu jejich ovládání.
Seznam odborné literatury: [1] Yiu J.: The definitive Guide to the ARM Cortex- M3. Elsevier, 2007, [2] Cortex-M3™, Technical Reference Manual. Publ. ARM DDI 0337B, 2006, ARM Limited [3] RM0008 - Reference manual , Doc. ID 13902 Rev 11, STMicroelectronics 2010
Vedoucí bakalářské práce:
doc. Ing. Jan Fischer, CSc.
Datum zadání bakalářské práce:
7. prosince 2010
Platnost zadání do1:
3. února 2012
L.S. Prof. Ing. Pavel Ripka, CSc. vedoucí katedry
Prof. Ing. Boris Šimák, CSc. děkan V Praze dne 7. 12. 2010
_______________________________ Platnost zadání je omezena na dobu dvou následujících semestrů.
ABSTRAKT Tato pr´ace se zab´yv´a n´avrem a realizac´ı modulu pro synchronn´ı ˇr´ızen´ı a sbˇer dat s mikrokontrolerem z rodiny STM32. Modul obsahuje analogov´e i digit´aln´ı vstupy a v´ystupy, komunikaˇcn´ı rozhran´ı USB 1.1 a Ethernet, prostˇrednictv´ım kter´eho je prov´adˇena synchronizace ˇcasu s referenˇcn´ım zdrojem pomoc´ı protokolu PTP. Souˇc´ast´ı pr´ace je tak´e n´avrh ploˇsn´eho spoje a uk´azkov´y pˇr´ıklad pro demonstraci moˇznost´ı modulu vˇcetnˇe obsluˇzn´eho programu pro PC.
ˇ ´ SLOVA KL´ICOV A ARM, Cortex-M3, STM32, PTP, IEEE-1588
ABSTRACT This thesis deals with design and construction of module for synchronnized control and data acquisition based on a microconotroller from the STM32 family. Proposed module contains analog and digital inputs and outputs, USB 1.1 and Ethernet communication interfaces. The Ethernet interface is used to synchronize time with a reference source of time using the PTP protocol. Part of this work is also design of the printed circuit board and one example demonstratig the use and posibilities of the module, including demonstrational program for PC.
KEYWORDS ARM, Cortex-M3, STM32, PTP, IEEE-1588
ˇ ´ Adam Moduly s rozhran´ım Ethernet pro syst´em sbˇeru dat: bakal´aˇrsk´a pr´ace. BARTIP AN, ˇ Praha: Cesk´e vysok´e uˇcen´ı technick´e v Praze, Fakulta elektrotechnick´a, Katedra mˇeˇren´ı, 2011. 65 s. Vedouc´ı pr´ace byl doc. Ing. Jan Fischer, CSc.
´ SEN ˇ ´I PROHLA Prohlaˇsuji, ˇze svou bakal´aˇrskou pr´aci na t´ema Moduly s rozhran´ım Ethernet pro ” syst´em sbˇeru dat“ jsem vypracoval samostatnˇe pod veden´ım vedouc´ıho bakal´aˇrsk´e pr´ace a s pouˇzit´ım odborn´e literatury a dalˇs´ıch informaˇcn´ıch zdroj˚ u, kter´e jsou vˇsechny citov´any v pr´aci a uvedeny v seznamu literatury na konci pr´ace. Jako autor uveden´e bakal´aˇrsk´e pr´ace d´ale prohlaˇsuji, ˇze v souvislosti s vytvoˇren´ım t´eto bakal´aˇrsk´e pr´ace jsem neporuˇsil autorsk´a pr´ava tˇret´ıch osob, zejm´ena jsem nezas´ahl nedovolen´ym zp˚ usobem do ciz´ıch autorsk´ych pr´av osobnostn´ıch a jsem si plnˇe vˇedom n´asledk˚ u poruˇsen´ı ustanoven´ı § 11 a n´asleduj´ıc´ıch autorsk´eho z´akona ˇc. 121/2000 Sb., vˇcetnˇe moˇzn´ych trestnˇepr´avn´ıch d˚ usledk˚ u vypl´yvaj´ıc´ıch z ustanoven´ı § 152 trestn´ıho z´akona ˇc. 140/1961 Sb.
Praha
...............
.................................. (podpis autora)
R´ad bych podˇekoval vedouc´ımu pr´ace, doc. Ing. Janu Fischerovi, CSc za veden´ı pr´ace a odborn´e konzultace. D´ale bych r´ad podˇekoval sv´ym rodiˇc˚ um, Danˇe Baˇrtip´anov´e a Jaroslavovi Baˇrtip´anovi, za neocenitelnou mor´aln´ı i materi´aln´ı podporu v pr˚ ubˇehu cel´eho m´eho studia.
OBSAH ´ 1 Uvod 10 ´ 1.1 Uvod do problematiky . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 C´ıl pr´ace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2 Rozbor zad´ an´ı 2.1 Z´akladn´ı pˇredstava o ˇreˇsen´ı . . . . . . . . . . . . . . . . . . . 2.2 Synchronizace ˇcasu . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Zp˚ usoby synchronizace ˇcasu . . . . . . . . . . . . . . . 2.2.2 Souˇcasn´e moˇznosti ˇcasov´e synchronizace v s´ıti Ethernet 2.3 Protokol PTP . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Zp˚ usob synchronizace ˇcasu pomoc´ı PTP . . . . . . . . 2.4 TCP/IP stack . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Ethernetov´ y ovladaˇc . . . . . . . . . . . . . . . . . . . . . . . 2.6 Pouˇzit´e obvody . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Mikrokontroler STM32 . . . . . . . . . . . . . . . . . . 2.6.2 Fyzick´a vrstva Ethernetu . . . . . . . . . . . . . . . . . 2.6.3 Konektor PulseJackTM . . . . . . . . . . . . . . . . . . 3 N´ avrh mˇ eˇ r´ıc´ıho modulu 3.1 Popis zapojen´ı . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Nap´ajec´ı zdroj . . . . . . . . . . . . . . . . . . . . 3.1.2 Pˇripojen´ı jednotliv´ ych pin˚ u MCU . . . . . . . . . 3.1.3 Nap´ajen´ı MCU . . . . . . . . . . . . . . . . . . . 3.1.4 Kompatibilita s novˇejˇs´ımi MCU z rodiny STM32 3.1.5 Vyveden´ı nevyuˇzit´ ych GPIO pin˚ u na konektory . 3.1.6 Restartov´an´ı a bootov´an´ı MCU . . . . . . . . . . 3.1.7 Oscil´atory . . . . . . . . . . . . . . . . . . . . . . 3.1.8 Pˇripojen´ı PHY . . . . . . . . . . . . . . . . . . . 3.1.9 Uˇzivatelsk´e tlaˇc´ıtko a LED dioda . . . . . . . . . 3.1.10 Zapojen´ı JTAG konektoru . . . . . . . . . . . . . 3.1.11 Zapojen´ı USB konektoru . . . . . . . . . . . . . . 3.2 Deska ploˇsn´ ych spoj˚ u . . . . . . . . . . . . . . . . . . . . 3.2.1 Rozm´ıstˇen´ı souˇc´astek na DPS . . . . . . . . . . . 3.2.2 Rozloˇzen´ı pin˚ u jednotliv´ ych konektor˚ u na DPS . . 3.3 Popis demonstraˇcn´ıho programu pro PC . . . . . . . . . 3.3.1 Uk´azka pouˇzit´ı programu . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
13 13 13 13 14 16 17 18 19 19 19 20 21
. . . . . . . . . . . . . . . . .
23 23 23 24 24 25 27 27 30 32 37 38 39 40 42 44 45 47
4 Namˇ eˇ ren´ e parametry modulu
49
5 Z´ avˇ er
53
Literatura
55
Seznam symbol˚ u, veliˇ cin a zkratek
56
Seznam pˇ r´ıloh
58
A V´ yrobn´ı podklady 59 A.1 N´avrh DPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 A.2 Sch´ema zapojen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 A.3 Rozm´ıstˇen´ı souˇc´astek na DPS . . . . . . . . . . . . . . . . . . . . . . 61 B Seznam souˇ c´ astek
62
C Pouˇ zit´ e n´ azvoslov´ı
65
´ ˚ SEZNAM OBRAZK U 2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 A.1 A.2 A.3 A.4
Blokov´e sch´ema z´akladn´ı myˇslenky ˇreˇsen´ı . . . . . . . . . . . . Synchronizace ˇcasu mezi master a slave zaˇr´ızen´ım . . . . . . . Blokov´e sch´ema Connectivity line MCU z rodiny STM32 . . . Blokov´ y diagram propojen´ı mikrokontroleru a fyzick´e vrstvy . Sch´ema vnitˇrn´ıho zapojen´ı konektoru J0006D21BNL . . . . . Sch´ema zapojen´ı nap´ajec´ı ˇca´sti . . . . . . . . . . . . . . . . . Sch´ema zapojen´ı nap´ajen´ı MCU . . . . . . . . . . . . . . . . . Jumpery pro v´ ybˇer pouˇzit´eho MCU . . . . . . . . . . . . . . . Pˇripojen´ı nevyuˇzit´ ych GPIO pin˚ u . . . . . . . . . . . . . . . . Zapojen´ı restartovac´ıho a bootovac´ıho tlaˇc´ıtka . . . . . . . . . Zapojen´ı sign´alu NRST uvnitˇr MCU . . . . . . . . . . . . . . Pˇripojen´ı oscil´atoru a krystal˚ u k MCU . . . . . . . . . . . . . Blokov´e sch´ema pˇripojen´ı PHY k MCU . . . . . . . . . . . . . Sch´ema zapojen´ı fyzick´e vrstvy . . . . . . . . . . . . . . . . . Pˇripojen´ı resetovac´ıho tlaˇc´ıtka k PHY . . . . . . . . . . . . . . Sch´ema pˇripojen´ı konektoru k PHY . . . . . . . . . . . . . . . Zapojen´ı uˇzivatelsk´eho tlaˇc´ıtka a LED . . . . . . . . . . . . . Zapojen´ı JTAG konektoru . . . . . . . . . . . . . . . . . . . . Zapojen´ı USB konektoru . . . . . . . . . . . . . . . . . . . . . Celkov´ y pohled na DPS . . . . . . . . . . . . . . . . . . . . . Horn´ı vrstva ploˇsn´ ych spoj˚ u . . . . . . . . . . . . . . . . . . . Spodn´ı vrstva ploˇsn´ ych spoj˚ u . . . . . . . . . . . . . . . . . . Rozm´ıstˇen´ı souˇca´stek v horn´ı vrstvˇe ploˇsn´ ych spoj˚ u . . . . . . Rozm´ıstˇen´ı souˇca´stek ve spodn´ı vrstvˇe ploˇsn´ ych spoj˚ u. . . . . Konfigurace propojek SJ1 aˇz SJ3 pˇri pohledu na spodn´ı stranu Zapojen´ı demonstraˇcn´ı aplikace . . . . . . . . . . . . . . . . . Uk´azka demonstraˇcn´ıho programu pro PC . . . . . . . . . . . Zobrazen´ı jednoho sign´alu mˇeˇren´eho obˇema moduly souˇcasnˇe . Vrstva TOP, mˇeˇr´ıtko 1:1 . . . . . . . . . . . . . . . . . . . . . Vrstva BOT, mˇeˇr´ıtko 1:1 . . . . . . . . . . . . . . . . . . . . . Rozm´ıstˇen´ı souˇc´astek ve vrsvˇe TOP, mˇeˇr´ıtko 1,2:1 . . . . . . . Rozm´ıstˇen´ı souˇc´astek ve vrsvˇe BOT, mˇeˇr´ıtko 1,2:1 . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPS . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13 17 20 21 22 23 25 26 28 29 29 31 32 33 34 36 37 38 39 40 41 41 42 43 43 46 47 48 59 59 61 61
SEZNAM TABULEK 3.1 3.2 3.3 3.4 3.5 3.6 3.7 4.1 4.2 4.3 4.4
Nap´ajec´ı piny jednotliv´ ych MCU z rodiny STM32 . . . . . . . Pˇrehled sign´al˚ u MII rozhran´ı . . . . . . . . . . . . . . . . . . . Rozm´ıstˇen´ı pin˚ u nap´ajec´ıho konektoru K1 pˇri pohledu zprava . Rozm´ıstˇen´ı pin˚ u konektoru K2 pˇri pohledu shora . . . . . . . Rozm´ıstˇen´ı pin˚ u konektoru K3 pˇri pohledu shora . . . . . . . Rozm´ıstˇen´ı pin˚ u JTAG konektoru K4 pˇri pohledu zleva . . . . Rozm´ıstˇen´ı pin˚ u konektoru K7 pˇri pohledu shora . . . . . . . Namˇeˇren´e hodnoty odbˇeru proudu . . . . . . . . . . . . . . . . Maxmim´aln´ı pˇrenosov´e rychlosti rozhran´ı Ethernet . . . . . . Odchylky od referenˇcn´ıho ˇcasu (nezat´ıˇzen´a s´ıt’) . . . . . . . . . Odchylky od referenˇcn´ıho ˇcasu (s´ıt’ vyt´ıˇzen´a na 50%) . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
26 34 44 44 44 45 45 49 50 51 52
1 1.1
´ UVOD ´ Uvod do problematiky
V pr˚ umyslov´em prostˇred´ı se ˇcasto setk´av´ame s potˇrebou mˇeˇrit nejr˚ uznˇejˇs´ı fyzik´aln´ı veliˇciny, nebo ˇr´ıd´ıt procesy. Prvn´ım pˇr´ıkladem m˚ uˇze b´ yt sestavov´an´ı matematick´eho modelu chov´an´ı auta nebo letadla v r˚ uzn´ ych situac´ıch z bˇeˇzn´eho provozu. Model vznikne zmˇeˇren´ım jednotliv´ ych hodnot senzory um´ıstˇen´ ymi na vozidle (letadle) v konkr´etn´ı zkouman´e situaci. Kaˇzd´a takto zmˇeˇren´a hodnota je opatˇrena znaˇckou ˇ ım pˇresnˇeji dok´aˇzeme zmˇeˇrit hodnotu fyzik´aln´ı veliˇciny s ˇcasem, kdy byla poˇr´ızena. C´ a z´aroveˇ n ˇcas jej´ıho poˇr´ızen´ı, t´ım pˇresnˇejˇs´ı matematick´ y model dok´aˇzeme sestavit, coˇz ve v´ ysledku vede jednak k lepˇs´ımu (konkurenceschopnˇejˇs´ımu) v´ yrobku a jednak k uˇsetˇren´ı n´aklad˚ u na v´ yvoj (na matematick´em modelu m˚ uˇzete vyzkouˇset i podm´ınky, kter´e by vedly k nen´avratn´emu zniˇcen´ı re´aln´eho v´ yrobku). Druh´ ym pˇr´ıkladem by mohlo b´ yt ˇr´ızen´ı supravodiv´ ych magnet˚ u v urychlovaˇci ˇca´stic. Zde je potˇreba jednotliv´e supravodiv´e magnety rozm´ıstˇen´e po obvodu pl´aˇstˇe urychlovaˇce sp´ınat v pˇresnˇe stanoven´ ych ˇcasov´ ych okamˇzic´ıch, aby byla urychlovan´a ˇca´stice jednak udrˇzov´ana na sv´e optim´aln´ı dr´aze a jednak aby byla tak´e urychlov´ana a ne jen udrˇzov´ana na konstantn´ı rychlosti nebo dokonce zpomalov´ana. K tomu je pochopitelnˇe zapotˇreb´ı v´ ykonn´ y ˇr´ıd´ıc´ı syst´em zaj´ıˇst’uj´ıc´ı vysokou u ´roveˇ n ˇcasov´e synchronizace jednotliv´ ych povel˚ u k sepnut´ı. Dnes se v pr˚ umyslov´e praxi setk´ame se dvˇemi z´akladn´ımi koncepcemi mˇeˇr´ıc´ıch a ˇr´ıd´ıc´ıch syst´em˚ u. Jednou je tzv. centralizovan´ y syst´em, coˇz je syst´em postaven´ y ˇ na hlavn´ı ˇr´ıd´ıc´ı jednotce (RJ), kter´a obstar´av´a veˇsker´e mˇeˇren´ı i ˇr´ızen´ı, a k n´ı jsou pˇripojeny jednotliv´e mˇeˇr´ıc´ı senzory nebo akˇcn´ı prvky slouˇz´ıc´ı k ˇr´ızen´ı dan´eho ˇ procesu. V´ yhodou takov´ehoto ˇreˇsen´ı je pomˇernˇe jednoduch´a komunikace mezi RJ, senzory (pˇr´ıkazy zmˇeˇr“, poˇsli“) a akˇcn´ımi prvky (pˇr´ıkazy zapni“, vypni“, atd.) ” ” ” ” a tak´e odpad´a potˇreba synchronizace ˇcasu mezi tˇemito periferiemi, jelikoˇz jedin´ y ˇ Nev´ syst´em s vlastn´ım ˇcasem je RJ. yhodou je pˇredevˇs´ım poˇrizovac´ı cena a z´avislost ˇ cel´eho syst´emu na jedin´em prvku (RJ), jehoˇz nefunkˇcnost vyˇrad´ı cel´ y syst´em z provozu. V souˇcasnosti se dost´avaj´ı do popˇred´ı tzv. distribuovan´e syst´emy, kter´e jsou postaveny na jednotliv´ ych do znaˇcn´e m´ıry autonomn´ıch modulech, kter´e jsou schopn´e vykon´avat d´ılˇc´ı ukony bez z´asahu nadˇrazen´e jednotky, ˇc´ımˇz z´asadnˇe zvyˇsuj´ı spolehlivost cel´eho syst´emu. Dalˇs´ımi v´ yhodami jsou n´ızk´a poˇrizovac´ı cena a snadn´a rozˇsiˇritelnost takov´eho syst´emu. Nev´ yhodou jsou vysok´e n´aroky na
10
komunikaˇcn´ı sbˇernici mezi jednotliv´ ymi moduly, jelikoˇz je vyˇsˇs´ı spolehlivost vykoupena podstatnˇe komplexnˇejˇs´ı komunikac´ı neˇz v pˇr´ıpadˇe centralizovan´eho syst´emu. Nev´ yhodou z pohledu ˇcasov´e synchronizace je fakt, ˇze kaˇzd´ y modul m´a sv˚ uj vlastn´ı zdroj ˇcasu, kter´ y obecnˇe nemus´ı (a bˇeˇznˇe nem´ıv´a) stejnou hodnotu jako referenˇcn´ı ˇcas nadˇrazen´e jednotky, takˇze je potˇreba zajistit, aby ˇcas jednotliv´ ych modul˚ u kop´ıroval s pˇredem zn´amou pˇresnost´ı referenˇcn´ı ˇcas, tedy ˇcas na jednotliv´ ych modulech synchronizovat s referenˇcn´ım. Modern´ı ˇreˇsen´ı dostupn´ ych mˇeˇr´ıc´ıch a ˇr´ıd´ıc´ıch distribuovan´ ych syst´em˚ u zpravidla sest´av´a z modul˚ u ˇr´ızen´ ych mikroprocesorem (napˇr. s j´adrem ARM) a nadˇrazen´e ˇr´ıd´ıc´ı aplikace pro PC. Pro komunikaci mezi jednotliv´ ymi moduly je k dispozici dostateˇcn´e moˇzstv´ı komunikaˇcn´ıch rozhran´ı, pˇriˇcemˇz mezi nejrozˇs´ıˇrenˇejˇs´ı patˇr´ı Profibus, CAN, RS-485 a v posledn´ı dobˇe se d´ıky st´ale klesaj´ıc´ım poˇrizovac´ım n´aklad˚ um prosazuje tak´e Ethernet. Dnes je kladen velk´ y d˚ uraz na univerz´alnost modul˚ u a v souladu s t´ım je potˇreba navrhnout modul, kter´ y dok´aˇze jak mˇeˇrit tak ˇr´ıd´ıt. Distribuovan´ y syst´em je pak postaven´ y z vˇetˇs´ıho poˇctu stejn´ ych modul˚ u, coˇz sniˇzuje n´aklady na v´ yrobu a d´ıky tomu tak´e m˚ uˇze jeden modul zastoupit v pˇr´ıpadˇe poruchy jin´ y nefunkˇcn´ı modul.
1.2
C´ıl pr´ ace
Modul pro synchronn´ı ˇr´ızen´ı a sbˇer dat by mˇel obsahovat ˇr´ıd´ıc´ı jednotku (procesor), dostatek vstup˚ u pro mˇeˇren´ı elektrick´ ych veliˇcin (pˇredevˇs´ım AD pˇrevodn´ıky) a v´ ystup˚ u pro ˇr´ızen´ı poˇzadovan´eho procesu. D´ale je nezbytn´e aby obsahoval rozhran´ı umoˇzn ˇuj´ıc´ı komunikaci s nadˇr´ızenou jednotkou (ˇcasto se jedn´a o PC) stejnˇe jako s ostatn´ımi moduly. Distribuovan´e syst´emy b´ yvaj´ı ˇcasto nasazen´e v situac´ıch, kdy je potˇreba mˇeˇrit ve v´ıce mˇeˇr´ıc´ıch kan´alech souˇcasnˇe, ale z urˇcit´eho d˚ uvodu (napˇr. mˇeˇren´ı za vysok´e teploty, mˇeˇren´ı v rozs´ahl´em prostoru) nen´ı moˇzn´e toto mˇeˇren´ı prov´adˇet jedn´ım mˇeˇr´ıc´ım pˇr´ıstrojem. Jeden mˇeˇr´ıc´ı pˇr´ıstroj m´a tu v´ yhodu, ˇze veˇsker´a namˇeˇren´a data ze vˇsech kan´al˚ u si nesou ˇcasovou znaˇcku z jedin´eho zdroje ˇcasu tohoto pˇr´ıstroje. Takto vznikl´ y soubor dat je tedy ˇcasovˇe koherentn´ı. Naproti tomu v distribuovan´em syst´emu, kde moduly pracuj´ı jako jednotliv´e mˇeˇr´ıc´ı kan´aly, je ke kaˇzd´e namˇeˇren´e hodnotˇe pˇriˇrazna ˇcasov´a znaˇcka odvozen´a od syst´emov´eho ˇcasu konkr´etn´ıho modulu, kter´ y nemus´ı b´ yt na vˇsech modulech stejn´ y (a bˇeˇznˇe neb´ yv´a). Z toho d˚ uvodu je potˇreba na vˇsech modulech synchronizovat jejich zdroje ˇcasu s referenˇcn´ım zdrojem ˇcasu. K tˇemto u ´ˇcel˚ um slouˇz´ı synchronizaˇcn´ı protokol, kter´ y prostˇrednictv´ım komunikaˇcn´ı sbˇernice neust´ale zjiˇst’uje hodnotu referenˇcn´ıho ˇcasu a upravuje podle n´ı
11
jednotliv´e syst´emov´e syt´emov´e ˇcasy modul˚ u. V ide´aln´ım pˇr´ıpadˇe by tak bylo moˇzn´e dos´ahnout pˇresnˇe stejn´eho ˇcasu na vˇsech modulech, nicm´enˇe v praxi je tato ide´aln´ı synchronizace nedosaˇziteln´a a synchronizovan´ y ˇcas se pouze bl´ıˇz´ı referenˇcn´ımu. C´ılem t´eto pr´ace je navrhnout univerz´aln´ı mˇeˇr´ıc´ı modul postaven´ y na j´adˇre ARM Cortex-M3 z rodiny mikrokontroler˚ u STM32, jenˇz bude se sv´ ym okol´ım komunikovat pomoc´ı rozhran´ı Ethernet. Pro komunikaci prostˇrednictv´ım tohoto rozhran´ı je nejprve nutn´e implementovat TCP/IP stack, tedy program zprostˇredkov´avaj´ıc´ı uˇzivateli snadnou obsluhu s´ıt’ov´eho provozu vˇcetnˇe dvou z´akladn´ıch komunikaˇcn´ıch protokol˚ u TCP a UDP. Pr´avˇe TCP/IP stack poskytuje synchronizaˇcn´ımu protokolu nezbytn´e metody pro vys´ıl´an´ı a pˇr´ıjem synchronizaˇcn´ıch zpr´av. K synchronizaci ˇcasu na jednotliv´ ych modulech bude vyuˇzit Precision Time Protocol (PTP). Tato pr´ace by mˇela poskytnout dalˇs´ım z´ajemc˚ um o synchronn´ı ˇr´ızen´ı a sbˇer dat v oblasti distribuovan´ ych syst´em˚ u jednoduchou a finanˇcnˇe nen´aroˇcnou platformu pro v´ yvoj pokroˇcilejˇs´ıch ˇreˇsen´ı, a proto bude souˇca´st´ı pr´ace tak´e uk´azkov´ y program pro PC demonstruj´ıc´ı moˇznosti zde popisovan´eho modulu.
12
2
´ ´I ROZBOR ZADAN
2.1
Z´ akladn´ı pˇ redstava o ˇ reˇ sen´ı
Jak jiˇz bylo zm´ınˇeno v sekci 1.2, z´akladem modulu bude mikrokontroler s ethernetov´ ym rozhran´ım, na kter´em je potˇreba implementovat obsluˇzn´e programy pro komunikaci. Blokov´e sch´ema 2.1 nastiˇ nuje moˇzn´e ˇreˇsen´ı cel´eho modulu a distribuovan´eho syst´emu.
modul 1 sběrnice Ethernet
PC
PTP protokol, uživatelské programy
TCP/IP stack
modul N
ethernetový driver
modul 3 MCU (s MAC vrstvou)
analogové vstupy a výstupy
PHY
modul 2
digitální vstupy a výstupy
Obr. 2.1: Blokov´e sch´ema z´akladn´ı myˇslenky ˇreˇsen´ı
2.2 2.2.1
Synchronizace ˇ casu Zp˚ usoby synchronizace ˇ casu
V mˇeˇr´ıc´ı, ˇr´ıd´ıc´ı a automatizaˇcn´ı technice, kde je v syst´emu pouˇzito v´ıce nez´avisl´ ych zaˇr´ızen´ı, je ˇcasto vyˇzadov´ano pˇresn´e ˇcasov´an´ı tˇechto zaˇr´ızen´ı tak, aby bylo dosaˇzeno synchronizace jednotliv´ ych ud´alosti resp. korelace namˇeˇren´ ych dat. Aby bylo moˇzno
13
takov´eto synchronizace dos´ahnout, jednotliv´a zaˇr´ızen´ı musej´ı m´ıt bud’ pˇr´ıstup k centr´aln´ımu zdroji hodinov´eho sign´alu, nebo si musej´ı synchronizovat sv´e vlastn´ı zdroje hodinov´eho sign´alu podle referenˇcn´ıho zdroje. Z´astupcem prvn´ıho pˇr´ıpadu je napˇr. syst´em PCI Extensions for Instrumentation (PXI), kde je v r´amci jednoho chasis1 vˇsem modul˚ um poskytnut pˇr´ıstup k referenˇcn´ımu zdroji 10MHz hodinov´eho sign´alu s vysokou pˇresnost´ı. Toto ˇreˇsen´ı je ovˇsem u ´nosn´e pouze v pˇr´ıpadˇe, ˇze jsou jednotliv´e mˇeˇr´ıc´ı moduly pomˇernˇe bl´ızko referenˇcn´ıho zdroje taktu, jako v pˇr´ıpadˇe PXI (vzd´alenost nepˇresahuje 1m). Pomˇernˇe ˇcasto se ale v praxi setk´ame s potˇrebou m´ıt jednotliv´e mˇeˇr´ıc´ı moduly rozm´ıstˇen´e ve vˇetˇs´ıch vzd´alenostech a ojedinˇel´e nejsou ani pˇr´ıpady, kdy se jednotliv´e moduly v pr˚ ubˇehu mˇeˇren´ı pohybuj´ı a mˇen´ı svou vzd´alenost od ˇr´ıd´ıc´ıho modulu. To jsou typicky distribuovan´e syst´emy zaloˇzen´e na autonomn´ıch mˇeˇr´ıc´ıch a ˇr´ıd´ıc´ıch modulech, kde se zpravidla nerozv´ad´ı hodinov´ y sign´al pˇr´ımo po komunikaˇcn´ı sbˇernici ve formˇe periodick´eho sign´alu o dan´e frekvenci. D˚ uvodem je fakt, ˇze se vzr˚ ustaj´ıc´ı vzd´alenost´ı od zdroje sign´alu doch´az´ı k jeho deformaci napˇr. v d˚ usledku elektromagnetick´eho ruˇsen´ı nebo vz´ajemn´e kapacity vodiˇc˚ u. Nav´ıc v pˇr´ıpadˇe, ˇze mˇeˇr´ıc´ı modul mˇen´ı vzd´alenost od referenˇcn´ıho zdroje, doch´az´ı tak´e ke zmˇenˇe zpoˇzdˇen´ı, s jak´ ym doraz´ı sign´al do synchronizovan´eho zaˇr´ızen´ı, coˇz se pomˇernˇe obt´ıˇznˇe kompenzuje.
2.2.2
Souˇ casn´ e moˇ znosti ˇ casov´ e synchronizace v s´ıti Ethernet
Pˇrestoˇze dnes existuje velk´e mnoˇzstv´ı pr˚ umyslov´ ych sbˇernic s vysokou spolehlivost´ı pˇrenosu dat, souˇcasn´ ym trendem na poli distribuovan´ ych syst´em˚ u je sp´ıˇse pouˇz´ıvat s´ıtˇe typu Ethernet. Hlavn´ım d˚ uvodem je nepochybnˇe cena takov´eho ˇreˇsen´ı, kter´a je d´ıky masivn´ımu rozˇs´ıˇren´ı Ethernetu v posledn´ıch letech zpravidla niˇzˇs´ı neˇz konkurenˇcn´ı moˇznosti na b´azi striktnˇe pr˚ umyslov´ ych sbˇernic (napˇr. RS-485, RS-422, CAN, Profibus a pod.). Dalˇs´ım pozitivn´ım faktorem masivn´ıho rozˇs´ıˇren´ı Ethernetu je tak´e fakt, ˇze v´ yrobci mikrokontroler˚ u dnes maj´ı tendenci nab´ızet ve sv´ ych jednoˇcipov´ ych ˇreˇsen´ıch i ethernetov´e rozhran´ı, aniˇz by to z´asadn´ım zp˚ usobem navyˇsovalo cenu v´ ysledn´eho produktu. V neposledn´ı ˇradˇe je d˚ uleˇzit´a univerz´alnost a modul´arnost ethernetov´e s´ıtˇe, d´ıky kter´e je moˇzn´e s´ıt’ d´ale rozv´ıjet, mˇenit jej´ı strukturu, ˇsk´alovat a v pˇr´ıpadˇe potˇreby tak´e zvyˇsovat propustnost dat (rychlost komunikace). S v´ yhodou je tak´e moˇzn´e pouˇz´ıt jiˇz existuj´ıc´ıch ethernetov´ ych zaˇr´ızen´ı (pˇrep´ınaˇce, rozboˇcovaˇce, opakovaˇce, smˇerovaˇce a dalˇs´ı), kter´e jsou sice prim´arnˇe 1
Pˇr´ıstrojov´ a skˇr´ıˇ n s nap´ ajec´ım zdrojem, sloty pro zasunut´ı jednotliv´ ych modul˚ u a rozvodem referenˇcn´ıho ˇcasov´eho sign´ alu
14
urˇceny napˇr´ıklad do datov´ ych center velk´ ych spoleˇcnost´ı, ale d´ıky sv´e kvalitˇe a spolehlivosti mohou b´ yt nasazeny i v pr˚ umyslov´em provozu. Jednou z posledn´ıch v´ yhod Ethernetu je tak´e jeho nez´avislost na druhu m´edia, prostˇrednictv´ım kter´eho je komunikov´ano. Lze tedy komunikovat po metalick´e veden´ı (nejˇcastˇejˇs´ı), v pˇr´ıpadˇe prostˇredn´ı se siln´ ym elektromagnetick´ ym ruˇsen´ım nen´ı probl´em pr˚ ubˇeˇznˇe pˇrej´ıt z metalick´eho na optick´e m´edium (optick´e vl´akno) a stejnˇe tak m˚ uˇze metalick´e i optick´e veden´ı pˇrech´azet v pˇr´ıpadˇe potˇreby v bezdr´atovou komunikaci vzduchem, jakou je napˇr´ıklad WiFi ˇci WiMax [4], [5]. Velkou nev´ yhodou s´ıtˇe Ethernet z pohledu ˇcasov´e synchronizace je fakt, ˇze vys´ılan´a data (pakety) nemus´ı dorazit do c´ılov´eho bodu ve stejn´em poˇrad´ı, v jak´em byla vysl´ana, coˇz se v rozs´ahlejˇs´ıch s´ıt´ıch bˇeˇznˇe st´av´a. Dalˇs´ım prolb´emem m˚ uˇze b´ yt promˇenn´a (napˇr. v z´avislosti na vyt´ıˇzen´ı s´ıtˇe) d´elka zpoˇzdˇen´ı mezi okmaˇziky vysl´an´ı a pˇr´ıjmem dat, kter´a se d´ıky n´ızk´e pˇredv´ıdatelnosti obt´ıˇznˇe koriguje. Pro u ´ˇcely ˇcasov´e synchronizace (nejen) v prostˇred´ı s´ıtˇe Ethernet vznikla ˇrada protokol˚ u, kter´e se od sebe liˇs´ı pˇredevˇs´ım pˇresnost´ı, s jakou dok´aˇz´ı udrˇzovat stanoven´ y syst´emov´ y ˇcas. Jedn´ım z takov´ ychto protokol˚ u je Reference Broadcast Time Synchronization (RBTS), kter´ y pracuje na pomˇernˇe jednoduch´em principu. Takzvan´ y broadcast beacon vyˇsle vˇsem zaˇr´ızen´ım pˇripojen´ ym ke komunikaˇcn´ı sbˇernici znamen´ı k synchronizaci, coˇz je zpr´ava, kter´a neobsahuje informaci o aktu´aln´ım ˇcase, ale pouze v´ yzvu vˇsem u ´ˇcastn´ık˚ um komunikace k tomu, aby si mezi sebou navz´ajem synchronizovali ˇcas. Samotn´ y broadcast beacon tedy pouze odstartuje“ synchro” nizaci a d´ale se na n´ı nepod´ıl´ı. Synchronizace prob´ıh´a prostˇrednictv´ım v´ ymˇeny ˇcasov´ ych u ´daj˚ u mezi jednotliv´ ymi zaˇr´ızen´ımi a n´asledn´ ym dopoˇc´ıt´an´ım ˇcasov´ ych posunut´ı v˚ uˇci kaˇzd´emu u ´ˇcastn´ıkovi komunikace. Tato metoda se nejˇcastˇeji pouˇz´ıv´a v bezdr´atov´ ych senzorov´ ych s´ıt´ıch. Jej´ı v´ yhodou je jednoduch´a implementace takov´eho protokolu a odstranˇen´ı nejistoty, kter´a u protokol˚ u pracuj´ıc´ıch na b´azi referenˇcn´ıho ˇcasu vys´ılan´eho jedn´ım zaˇr´ızen´ım (zpr´ava obsahuje u ´daj o referenˇcn´ım ˇcase) vznik´a v d˚ usledku pˇredem nezn´am´eho zpoˇzdˇen´ı mezi vys´ılac´ı stranou a koncov´ ymi body s´ıtˇe, kter´ ym je zpr´ava urˇcena. Nev´ yhodou je paradoxnˇe pr´avˇe absence referenˇcn´ıho ˇcasu, kter´a zp˚ usobuje, ˇze syst´emov´ y ˇcas jednotliv´ ych zaˇr´ızen´ı neodpov´ıd´a jednomu konkr´etn´ımu ˇcasu, kter´ y je povaˇzov´an ze pˇresn´ y, ale sp´ıˇse se bl´ıˇz´ı aritmetick´emu pr˚ umˇeru syst´emov´ ych ˇcas˚ u jednotliv´ ych zaˇr´ızen´ı. Vzhledem k pˇredpokl´adan´emu pouˇzit´ı v bezdr´atov´ ych senzorov´ ych s´ıt´ıch byl pˇri n´avrhu tohoto protokolu kladen velk´ y d˚ uraz na n´ızkou spotˇrebu (jednotliv´a zaˇr´ızen´ı b´ yvaj´ı ˇcasto nap´ajena z akumul´ator˚ u) na u ´kor pˇresnosti ˇcasov´e synchronizace.
15
Dalˇs´ım protokolem pouˇz´ıvan´ ym pro synchronizaci ˇcasu je tzv. Flooding Time Synchronization Protocol (FTSP), kter´ y jiˇz pracuje se zdrojem referenˇcn´ıho ˇcasu, kter´ y periodicky vys´ıl´a zpr´avu s ˇcasovou znaˇckou odpov´ıdaj´ıc´ı referenˇcn´ımu ˇcasu. Tato zpr´ava je adresovan´a vˇsem u ´ˇcastn´ık˚ um komunikace. Kaˇzd´ y u ´ˇcastn´ık po pˇr´ıjmu takov´e zpr´avy zaznamen´a ˇcas pˇrijet´ı a sloˇzen´ım obou ˇcasov´ ych u ´daj˚ u z´ısk´av´a informaci o posunut´ı sv´eho ˇcasu oproti referenˇcn´ımu. Protokol ovˇsem nekompenzuje promˇenn´e zpoˇzdˇen´ı mezi vysl´an´ım a pˇr´ıjmem zpr´avy. D´ıky tomu se pr˚ umˇern´a chyba syst´emov´eho ˇcasu oproti referenˇcn´ımu pohybuje v ˇr´adu des´ıtek aˇz stovek mikrosekund. Stejnˇe jako v pˇr´ıpadˇe prtokolu RBTS i protokol FTPS! byla navrhov´an s ohledem na n´ızkou spotˇrebu a to na u ´kor pˇresnosti ˇcasov´e synchronizace. Velice vyuˇz´ıvan´ ym protokolem pro synchronizaci ˇcasu uˇz´ıvan´ ym pˇredevˇs´ım mezi osobn´ımi poˇc´ıtaˇci a s´ıt’ov´ ymi servery je Network Time Protocol (NTP). Tento protokol je pomˇernˇe sloˇzit´ y a existuje v nˇekolika verz´ıch (aktu´aln´ı verze m´a poˇradov´e ˇc´ıslo 4 a n´asleduj´ıc´ı verze je ve v´ yvoji), kter´e jsou detailnˇe pops´any na str´ank´ach organizace zajiˇst’uj´ıc´ı jeho v´ yvoj: www.ntp.org. V s´ıti internet dok´aˇze pracovat s odchylkou v ˇr´adu des´ıtek milisekund, v lok´aln´ıch s´ıt´ıch je moˇzn´e dos´ahnout pˇresnosti na stovky mikrosekund. Posledn´ı zde zmiˇ novanou moˇznost´ı je tzv. Precision Time Protocol, jehoˇz implementac´ı na jednoˇcipov´em mikropoˇc´ıtaˇci se zab´ yva tato pr´ace. V´ıce podrobnost´ı je moˇzno nal´ezt v sekci 2.3, kter´a je tomuto protokolu vˇenov´ana.
2.3
Protokol PTP
Pro u ´ˇcely synchronizace ˇcasu v s´ıti Ethernet vznikl prtokol definovan´ y normou Institute of Electrical and Electronics Engineers (IEEE-1588), t´eˇz oznaˇcovan´ y jako PTP, kter´ y bude vyuˇzit i ve zde popisovan´em modulu. Jeho c´ılem je nab´ıdnout alternativu synchronizace hodinov´eho sign´alu k synchronizaci pomoc´ı centr´alnˇe rozv´adˇen´eho hodinov´eho sign´alu. Toho je dosaˇzeno periodick´ ym vymˇen ˇov´an´ım informac´ı mezi master zaˇr´ızen´ım a jednotliv´ ymi slave moduly tak, aby si slave moduly mohly samy korigovat a sladit“ jejich lok´aln´ı zdroje hodinov´eho taktu ” s master jednotkou. PTP poskytuje standardizovan´ y protokol pro synchronizaci hodin prostˇrednictv´ım s´ıtˇe umoˇzn ˇuj´ıc´ı v jeden okamˇzik vyslat jednu zpr´avu v´ıce pˇr´ıjemc˚ um 2 , jako napˇr´ıklad 2
V zahraniˇcn´ı literatuˇre se tato vlastnost oznaˇcuje jako tzv. multicast.
16
Ethernet. Nab´ız´ı moˇznost synchronizace heterogenn´ıch zdroj˚ u hodinov´eho sign´alu, nezatˇeˇzuje s´ıt’ pˇr´ıliˇsn´ ymi n´aroky na objem pˇrenesen´ ych dat a nevyˇzaduje mnoho v´ ypoˇcetn´ıho v´ ykonu. Protokol byl standardizov´an institutem IEEE poprv´e v roce 2002, jeho druh´a verze byla vyd´ana v roce 2008. Druh´a verze IEEE-1588 protokolu, oznaˇcovan´a jako IEEE-1588-2008 neboli PTP v2, poskytuje vyˇsˇs´ı pˇresnost, robustnost a spolehlivost tohoto protokolu, ale nen´ı zpˇetnˇe kompatibiln´ı s IEEE-1588-2002 neboli PTP v1, tj. s verz´ı z roku 2002.
2.3.1
Zp˚ usob synchronizace ˇ casu pomoc´ı PTP
Lok´aln´ı ˇcas slave zaˇr´ızen´ı se synchronizuje s master jednotkou pomoc´ı obousmˇern´e komunikace, kter´a je naznaˇcena na obr. 2.2. Na dvou svisl´ ych os´ach je vynesen lok´aln´ı ˇcas nadˇrazen´e (master) resp. podˇrazen´e (slave) jednotky. M˚ uˇzeme si vˇsimnout, ˇze obˇe osy zaˇc´ınaj´ı s jin´ ym poˇca´teˇcn´ım ˇcasem (osy jsou orientov´any shora dol˚ u). Toto je bˇeˇzn´ y pˇr´ıpad, kdy jsou lok´aln´ı ˇcasy jednotliv´ ych jednotek posunuty v˚ uˇci sobˇe, v anglitck´e literatuˇre je tento jev oznaˇcov´an jako offset.
Obr. 2.2: Synchronizace ˇcasu mezi master a slave zaˇr´ızen´ım
Korekce posunut´ı se provede po tom, co master vyˇsle periodicky vys´ılanou synchronizaˇcn´ı zpr´avu - Sync(100), ke kter´e je pˇripojen´a ˇcasov´a znaˇcka ud´avaj´ıc´ı, kdy byla zpr´ava odesl´ana mikrokontrolerem. Po t´eto zpr´avˇe m˚ uˇze pˇr´ıpadnˇe n´asledovat jeˇstˇe jedna zpr´ava - Follow Up(100), kter´a obsahuje znaˇcku s ˇcasem, kdy byla zpr´ava Sync(100) skuteˇcnˇe odesl´ana fyzickou vrstvou Ethernetu. To dovoluje slave
17
zaˇr´ızen´ı zjistit skuteˇcn´ y ˇcas, kdy byl d´an mikrokontrolerem povel k odesl´an´ı zpr´avy a t´ım pro slave zpˇresnit informaci o referenˇcn´ım ˇcase master jednotky. Toto m´a v´ yznam v s´ıt´ıch, kde ˇcas vysl´an´ı paketu nem˚ uˇze b´ yt zn´am dopˇredu. Z´astupcem takov´e s´ıtˇe je napˇr´ıklad Ethernet, kde vlivem detekce kolize a n´asledn´eho mechanismu ˇreˇsen´ı takov´e kolize obecnˇe nem˚ uˇze3 b´ yt zn´am pˇresnˇe ˇcas, kdy doˇslo k odesl´an´ı cel´eho paketu. Ve chv´ıli, kdy se podaˇr´ı odeslat cel´ y packet, uˇz nen´ı zpravidla moˇzn´e mˇenit jeho obsah, tedy ani ˇcasovou znaˇcku. Pot´e se opakuje vysl´an´ı synchronizaˇcn´ıho paketu n´asledovan´e dotazem slave zaˇr´ızen´ı na zpoˇzdˇen´ı s´ıtˇe - Delay Request. Slave zaznamen´a ˇcas, kdy odeslal dotaz, a master po pˇrijet´ı tohoto dotazu obratem odeˇsle zpr´avu - Delay Response(112) s ˇcasovou znaˇckou okamˇziku, kdy dorazil paket s ˇza´dost´ı. Po t´eto proceduˇre jiˇz slave zn´a jak ˇcasov´e posunut´ı obou zdroj˚ u ˇcasu, tak i obousmˇern´e 4 zpoˇzdˇen´ı pˇri pˇrenosu zpr´avy zp˚ usoben´e charakterem s´ıtˇe . Slave nyn´ı zn´a referenˇcn´ı ˇcas master jednotky s vysokou pˇresnost´ı5 a syst´emov´ y ˇcas je tedy sychronizov´an. V souvislosti s v´ yˇse zm´ınˇen´ ym postupem synchronizace je vhodn´e poznamenat, ˇze Sync() pakety jsou vys´ılany periodicky (periodu urˇcuje master zaˇr´ızen´ı). Slave m˚ uˇze kdykoliv vyslat poˇzadavek na urˇcen´ı zpoˇzdˇen´ı s´ıtˇe (Delay Request), master mu ale odpov´ı zpr´avou obsahuj´ıc´ı maxim´aln´ı pr˚ umˇernou frekvenci, s jakou se sm´ı dotazovat.
2.4
TCP/IP stack
TCP/IP stack je kl´ıˇcov´a ˇc´ast programu mikrokontroleru, jelikoˇz poskytuje uˇzivatelsk´ ym program˚ um snadno pouˇziteln´e rozhran´ı pro navazov´an´ı spojen´ı, v´ ymˇenu dat a n´asledn´e ukonˇcen´ı spojen´ı. Uˇzivatel d´ıky tomu nemus´ı zn´at (a pˇredevˇs´ım programovat) do detailu celou komunikaci prostˇrednictv´ım ethernetov´eho rozhran´ı, byt’ pochopen´ı ethernetov´e komunikace na vˇsech u ´rovn´ıch je bezesporu ˇza´douc´ı a pro n´avrh takov´ehoto modulu dokonce nezbytn´e. Jako vhodn´ y TCP/IP stack pro mikrokontroler byl vybr´an lightweight TCP/IP ” stack“, v praxi ˇcastˇeji oznaˇcovan´ y jako lwIP. Narozd´ıl od jin´ ych zvaˇzovan´ ych 3
Dnes jsou k dispozici i specializovan´e (a pomˇernˇe drah´e) ethernetov´e fyzick´e vrstvy, kter´e jiˇz dok´ aˇz´ı ˇcasovou znaˇcku injektovat do odes´ılan´eho paketu na HW u ´rovni, jedn´a se napˇr´ıklad o DP83848 od spoleˇcnosti National Semiconductor. 4 Toto zpoˇzdˇen´ı se v praxi povaˇzuje za konstantn´ı, pˇrestoˇze se m˚ uˇze napˇr´ıklad v d˚ uskedku promˇenliv´eho vyt´ıˇzen´ı s´ıtˇe mˇenit. 5 Pˇresnost je z´ avisl´ a na konkr´etn´ı implementaci, typicky se pohybuje kolem 1µs.
18
moˇznost´ı (napˇr. uIP TCP/IP stack) poskytuje lwIP plnou implementaci protokolu Internet Group Management Protocol (IGMP), kter´ y je nezbytn´ y pro synchromizaci ˇcasu pomoc´ı PTP (viz 2.3), a zdrojov´e k´ody jsou volnˇe dostupn´e. Velkou v´ yhodou je v tomto pˇr´ıpadˇe fakt, ˇze mnoz´ı v´ yrobci mikrokontroler˚ u, stejnˇe jako ST Microelectronics, poskytuj´ı jiˇz hotovou implementaci tohoto stacku pro sv´e procesory. Usnadˇ nuj´ı tak v´ yvoj´aˇr˚ um pouˇzit´ı jejich obvod˚ u a zvyˇsuj´ı t´ım jejich potenci´al.
2.5
Ethernetov´ y ovladaˇ c
Nezbytnou souˇca´st´ı je ethernetov´ y ovladaˇc (ˇcasto oznaˇcovan´ y jako driver), kter´ y poskytuje TCP/IP stacku metody pro ˇr´ızen´ı komunikace na u ´rovni hardwaru. D´av´a tedy moˇznost zapisovat do vnitˇrn´ıch registr˚ u Media Access Control (MAC) vrstvy a fyzick´e vrstvy (viz 2.6.2). Zde m˚ uˇzeme s v´ yhodou vyuˇz´ıt implementaci ethernetov´eho driveru, kterou poskytuje v´ yrobce mikrokontroler˚ u STM32 (ST Microelectronics) bezplatnˇe.
2.6 2.6.1
Pouˇ zit´ e obvody Mikrokontroler STM32
Jako ˇr´ıd´ıc´ı prvek na modulu byl zvolen 32-bitov´ y mikrokontroler s j´adrem ARM cortex-M3 od firmy ST Microelectronics (STM32), konkr´etnˇe model STM32F107[9] z tzv. connectivity line, tj. MCU s rozˇs´ıˇrenou nab´ıdkou komunikaˇcn´ıch periferi´ı integrovan´ ych pˇr´ımo na ˇcipu. Mikrokontroler obsahuje krom standardn´ıch periferi´ı jako jsou ˇcasovaˇce, A/D a D/A pˇrevodn´ıky, vstupnˇe-v´ ystupn´ı br´any a Universal synchronous/asynchronous receiver/transmitter (USART) tak´e celou ˇradu nadstandardn´ıch periferi´ı jako napˇr´ıklad Universal Serial Bus (USB), Controller Area Network (CAN), Cyclic Redundancy Check (CRC) a pˇredevˇs´ım ethernetovou 10/100 MAC vrstvu s podporou IEEE-1588, coˇz je pro danou aplikaci kl´ıˇcov´e. Blokov´e sch´ema pouˇzit´eho MCU z rodiny STM32 m˚ uˇzeme vidˇet na obr. 2.36 . Samotn´ y procesor jako takov´ y disponuje dostateˇcn´ ym v´ ypoˇcetn´ım v´ ykonem, kter´ y 7 v´ yrobce ud´av´a jako 1,25 DMIPS/MHz , tj. pˇri maxim´aln´ım taktovac´ı frekvenci j´adra MCU 72MHz dok´aˇze vykonat aˇz 90 milion˚ u instrukc´ı za sekundu[9]. Pro uloˇzen´ı programu mikrokontroleru slouˇz´ı flash pamˇet’, kter´a se v z´avislosti na volbˇe ˇcipu m˚ uˇze pohybovat od 64kB do 256kB. Pamˇet’ dat je typu Static Random 6 7
Obr´ azek byl pˇrevzat ze str´ anek v´ yrobce: www.st.com. DMIPS - poˇcet celoˇc´ıseln´ ych operac´ı procesoru za sekundu v milionech
19
Obr. 2.3: Blokov´e sch´ema Connectivity line MCU z rodiny STM32 Access Memory (SRAM) a opˇet se m˚ uˇze pohybovat v rozmez´ı 48 aˇz 64kB. Na modulu je osazen ˇcip s 256kB flash Read Only Memory (ROM) a 64kB SRAM. K nahr´an´ı programu do pamˇeti procesoru slouˇz´ı Joint Test Action Group (JTAG) resp. Serial Wire Debug (SWD) rozhran´ı, kter´a z´arovˇen dovoluj´ı ˇr´ıdit bˇeh programu v MCU a prohl´ıˇzet jednotliv´e registry v pamˇeti i pˇr´ımo v j´adru procesoru v pr˚ ubˇehu vykon´av´an´ı programu. V´ yhodou SWD je n´ızk´ y poˇcet vodiˇc˚ u a s t´ım souvisej´ıc´ı mal´ y konektor, kdeˇzto JTAG m´a standardnˇe dvacetipinov´ y konektor, ale na druhou stranu dosahuje vyˇsˇs´ıch pˇrenosov´ ych rychlost´ı.
2.6.2
Fyzick´ a vrstva Ethernetu
Jak jiˇz bylo zm´ınˇeno v sekci 2.6.1, samotn´ y mikrokontroler obsahuje pouze MAC vrstvu, kter´a se star´a o spr´avn´e adresov´an´ı, ˇr´ızen´ı pˇr´ıstupu ke komunikaˇcn´ımu kan´alu a pˇr´ıpadnou detekci koliz´ı v pˇr´ıpadˇe, ˇze v jeden okamˇzik zaˇcne vys´ılat v´ıce stanic. MAC vrstva ovˇsem nen´ı schopna sama vys´ılat data po s´ıti Ethernet. K tomu potˇrebuje Ethernet physical transceiver (PHY) - fyzickou vrstvu Ethernetu, coˇz je integrovan´ y obvod obsahuj´ıc´ı standardizovan´e komunikaˇcn´ı rozhran´ı Media Independent Interface (MII) (pˇr´ıpadnˇe Reduced Media Independent Interface (RMII)) pro komunikaci s MAC vrstvou, ˇr´ıd´ıc´ı a kontroln´ı obvody a v´ ystupn´ı budiˇce pro pulsn´ı
20
transform´ator, za n´ımˇz je zapojen ethernetov´ y konektor. Celou situaci ilustruje obr. 2.4.
STM32 CPU
MAC
ST802RT1
PHY
PulseJack konektor transformátor
konektor
Obr. 2.4: Blokov´ y diagram propojen´ı mikrokontroleru a fyzick´e vrstvy Central Processing Unit (CPU) spolu s MAC je obsaˇzena na samotn´em ˇcipu connectivity line MCU z rodiny STM32. K STM32 je pomoc´ı MII resp. RMII rozhran´ı pˇripojena fyzick´a vrstva PHY, kter´a je v tomto pˇr´ıpadˇe ˇreˇsena ˇcipem ST802RT1 od spoleˇcnosti ST Microelectronics[11] (stejnˇe jako mikrokontroler). N´asleduje pulsn´ı transform´ator galvanicky oddˇeluj´ıc´ı modul od s´ıtˇe Ethernet a standardn´ı ethernetov´ y konektor. Na tomto modulu byl pouˇzit konektor typu PulseJackTM , kter´ y je pops´an v n´asleduj´ıc´ı sekci 2.6.3.
2.6.3
Konektor PulseJackTM
Pˇri v´ ybˇeru ethernetov´eho konektoru byl kladen d˚ uraz na kvalitu, spolehlivost a v neposledn´ı ˇradˇe tak´e na poˇcet dodateˇcn´ ych souˇca´stek, kter´e konektor potˇrebuje ke spr´avn´e funkci. Klasick´ y ethernetov´ y konektor m´a osm pin˚ u pˇr´ımo spojen´ ych s osmi vodiˇci Unshielded Twisted Pair (UTP) kabelu (nˇekdy t´eˇz oznaˇcovan´ y jako Cat 5e). Za konektorem mus´ı n´aslednovat pulsn´ı transform´ator zajiˇst’uj´ıc´ı galvanick´e oddˇelen´ı zaˇr´ızen´ı od zbytku s´ıtˇe, d´ale pak ˇctveˇrice 50Ω rezistor˚ u, dvojice 10nF kondenz´ator˚ u a jedna 10µH tlumivka. To je pomˇernˇe velk´e mnoˇzstv´ı dodateˇcn´ ych souˇc´astek s nezanedbatelnou cenou. Proto jsou dnes na trhu k dost´an´ı konektory, kter´e integruj´ı do pouzdra konektoru bud’ jen nˇekter´e, nebo dokonce vˇsechny tyto souˇc´astky. To jednak usnadn´ı n´avrh zapojen´ı, uˇsetˇr´ı drahocenn´e m´ısto na DPS a ve vˇetˇsinˇe pˇr´ıpad˚ u sn´ıˇz´ı i cenu. Pro potˇreby n´avrhu modulu byl zvolen konektor J0006D21BNL[13] typu Pulsec Jak je vidˇet na obr. 2.58 , v pouzdˇre je integrov´an pouze Jack TM od firmy Pulse . 8
Obr´ azek byl pˇrevzat ze str´ anek v´ yrobce: www.pulseeng.com.
21
Obr. 2.5: Sch´ema vnitˇrn´ıho zapojen´ı konektoru J0006D21BNL pulsn´ı transform´ator, nicm´enˇe pr´avˇe ten svou cenou znaˇcnˇe pˇrevyˇsuje cenu ostatn´ıch potˇrebn´ ych souˇca´stek. D˚ uvodem pro volbu pr´avˇe tohoto konektoru byla dobr´a dostupnost a pˇrimˇeˇren´a cena. V´ yhodou je tak´e pˇr´ıtomnost dvou indikaˇcn´ıch led pˇr´ımo v pouzdˇre. Podrobnˇejˇs´ı popis zapojen´ı je moˇzno nal´ezt v sekci 3.1.8.
22
3
´ ˇR ˇ ´IC´IHO MODULU NAVRH ME
C´ılem t´eto kapitoly je sezn´amit ˇcten´aˇre s postupem n´avrhu zapojen´ı a v´ ysledn´e DPS. Vzhledem k rozmˇer˚ um cel´eho sch´ematu budu popisovat jednotliv´e bloky samostatnˇe, cel´e sch´ema je obsahem pˇr´ılohy A.
3.1 3.1.1
Popis zapojen´ı Nap´ ajec´ı zdroj
Kvalita nap´ajec´ıho zdroje do znaˇcn´e m´ıry ovlivˇ nuje spolehlivost cel´eho zapojen´ı, proto byl zvolen monolytick´ y integrovan´ y stabiliz´ator LF33 (IC3) od firmy ST Microelectronics [12]. Je to tzv. low-dropout stabiliz´ator, coˇz znamen´a, ˇze mezi vstupn´ı a v´ ystupn´ı svorkou doch´az´ı k velmi mal´emu u ´bytku napˇet´ı, v tomto pˇr´ıpdˇe 0,45V. Za zm´ınku stoj´ı tak´e n´ızk´ y klidov´ y proud obvodem, kter´ y je typicky 500µA. V´ ystupn´ı napˇet´ı stabiliz´atoru je 3,3 V pˇri maxim´aln´ım v´ ystupn´ım proudu 500 mA, takˇze na vstupu staˇc´ı nap´ajec´ı napˇet´ı 3,3 V + 0,45 V = 3,75 V k tomu, aby na v´ ystupu bylo poˇzadovan´ ych 3,3 V, nicm´enˇe za bezpeˇcnou hodnotu povaˇzuji vstupn´ı napˇet´ı (na svorce IN) 4 V. Zapojen´ı obvodu vych´az´ı z doporuˇcen´eho katalogov´eho zapojen´ı vˇcetnˇe hodnot pouˇzit´ ych souˇca´stek, tj. kondenz´atory C1 a C4 maj´ı kapacitu 10µF a blokovac´ı kondenz´atory C2, C3 maj´ı kapacitu 100nF.
Obr. 3.1: Sch´ema zapojen´ı nap´ajec´ı ˇca´sti
Modul je tak´e chr´anˇen proti pˇrep´olov´an´ı bˇeˇznou kˇrem´ıkovou diodou 1N4007 (D1), kter´a m´a maxim´aln´ı u ´bytek napˇet´ı na PN pˇrechodu 1,1V pˇri prot´ekaj´ıc´ım proudu 1A [14]. Proto je nutn´e na vstupn´ı nap´ajec´ı konektor (K1) pˇriv´est napˇet´ı alespoˇ n 3,3 V + 0,45 V + 1,1 V = 4,85 V, re´aln´ yu ´bytek napˇet´ı na diodˇe bude o nˇekolik desetin voltu niˇzˇs´ı, nebot’ diodou bude prot´ekat maxim´aln´ı proud zhruba 300 mA.
23
Za rozumnou hodnotu nap´ajec´ıho napˇet´ı povaˇzuji 5V, pro kterou byl zdroj tak´e navrhov´an. Nap´ajec´ı napˇet´ı je moˇzn´e pˇriv´est krom konektoru K1 tak´e napˇr´ıklad z USB konektoru (K5), nebo z ethernetov´eho konektoru (K6), kter´e jsou pop´any v podsekci 3.1.11 respektive 3.1.8. Zdroj je d´ale doplnˇen o trojici testovac´ıch bod˚ u, kter´e umoˇzn ˇuj´ı diagnostiku obvodu v pˇr´ıpadˇe, ˇze se vyskytne probl´em s nap´ajen´ım, pˇr´ıpadnˇe pokud m´ame podezˇren´ı, ˇze chybn´a funkce cel´eho modulu souvis´ı s nap´ajec´ı ˇc´ast´ı. O jednoduchou indikaci spr´avn´e funkce zdroje se star´a indikaˇcn´ı LED v kombinaci se s´eriov´ ym odporem (R1) omezuj´ıc´ım proud tekouc´ı diodou na 3,3 mA.
3.1.2
Pˇ ripojen´ı jednotliv´ ych pin˚ u MCU
Pouˇzit´ y mikrokontroler je v pouzdru LQFP100, z ˇcehoˇz vypl´ yv´a, ˇze m´a sto pin˚ u (v´ yvod˚ u). Z toho celkem ˇsestn´act pin˚ u slouˇz´ı pro pˇriveden´ı nap´ajen´ı k obvodu, ˇctyˇri slouˇz´ı pro ˇr´ızen´ı bˇehu MCU a pˇripojen´ı krystalu a zb´ yvaj´ıc´ıch osmdes´at pin˚ u jsou tzv. General Purpose Input/Output (GPIO) piny. V n´asleduj´ıc´ıch sekc´ıch bude pops´ano zapojen´ı veˇsker´ ych v´ yvod˚ u MCU.
3.1.3
Nap´ ajen´ı MCU
Na obr. 3.2 a 3.3 m˚ uˇzeme vidˇet ˇreˇsen´ı nap´ajec´ı ˇca´sti MCU. Blokovac´ı kondenz´atory C5 aˇz C8 jsou pˇripojeny vˇzdy mezi dvojic´ı nap´ajec´ıch pin˚ u (pin 10 - pin 11, pin 27 - pin 28, atd.). Znaˇcn´a pozornost byla vˇenov´ana n´avrhu nap´ajen´ı analogov´e ˇca´sti MCU, kter´e ovlivˇ nuje chod a pˇresnost A/D a D/A pˇrevodn´ık˚ u. Bylo potˇreba zajistit dobˇre vyfiltrovan´e napˇet´ı na vstupech VREF+ (pin 21) a VDDA (pin 22), ˇcehoˇz bylo dosaˇzeno zapojen´ım filtraˇcn´ı tlumivky (L1) do cesty nap´ajen´ı. Za tlumivkou n´asleduje paralelnˇe zapojen´a dvojice 10µF (C11) a 100nF (C12) kondenz´ator˚ u. C11 slouˇz´ı k pokr´ yv´an´ı zv´ yˇsen´ ych poˇzadavk˚ u na odbˇer, C12 je blokovac´ı kondenz´ator. Takto oˇsetˇren´e nap´ajen´ı je pˇriveden´e pˇres 47Ω odpor (R2), kter´ y slouˇ z´ı k omezen´ı proudu (to asi nebude k omezen´ı proudu), do VREF+. Mezi VREF+ a zem´ı je pˇripojen dalˇs´ı blokovac´ı kondenz´ator C10.
24
Obr. 3.2: Sch´ema zapojen´ı nap´ajen´ı MCU
3.1.4
Kompatibilita s novˇ ejˇ s´ımi MCU z rodiny STM32
Jelikoˇz v pr˚ ubˇehu pr´ace na tomto modulu byly vyd´any dva nov´e MCU, n´astupci STM32F107 s typov´ ym oznaˇcen´ım STM32F207 resp. STM32F217, vyvstal zde poˇzadavek na moˇznost osazen´ı tˇechto nov´ ych MCU na desku ploˇsn´ ych spoj˚ u, coˇz si vyˇz´adalo i z´asah do sch´ematu. Zapojen´ı p´ajec´ıch jumper˚ u umoˇzn ˇuj´ıc´ıch osadit starˇs´ı i novˇejˇs´ı verze mikrokontroleru STM32 (SJ1 aˇz SJ3) je moˇzn´e vidˇet na obr. 3.3. V tabulce 3.1 je uveden seznam pin˚ u pouzdra LQFP100, u kter´ ych doch´az´ı ke zmˇenˇe pˇripojen´ı STM32F2x7 oproti STM32F107. Na pinech 49 a 73 doˇslo ke zmˇenˇe a v pˇr´ıpadˇe pouˇzit´ı novˇejˇs´ıho MCU se k nim pˇripoj´ı dvojice keramick´ ych 2,2µF kondenz´ator˚ u (C9 a C31), kter´e vyˇzaduje vnitˇrn´ı napˇet’ov´ y regul´ator novˇejˇs´ıch MCU. Pin 49 je nav´ıc moˇzn´e spojit se zem´ı (GND) pomoc´ı p´ajec´ıho jumperu (SJ2) tak, jak to vyˇzaduje STM32F107. C31 je pot´e zkratovan´ y a obvod neovlivˇ nuje. Kondenz´ator C9 je jedn´ım v´ yvodem trvale pˇripojen k zemi, ale v pˇr´ıpadˇe pouˇzit´ı starˇs´ıho MCU nem´a pˇripojen druh´ y v´ yvod a obvod tedy tak´e neovlivn´ı. U pinu 20 doˇslo pouze 1
V´ yrobcem rezervov´ an pro pozdˇejˇs´ı pouˇzit´ı (Reserved for Future Use).
25
Obr. 3.3: Jumpery pro v´ ybˇer pouˇzit´eho MCU pin (LQFP100) 19 20 49 73 99
STM32F107 VSSA VREFVSS nezapojen VSS
STM32F2x7 VDD VSSA V CAP1 V CAP2 RFU1
spojen s: MCU SEL1 GND C31, MCU SEL2 C9 MCU SEL3
Tab. 3.1: Nap´ajec´ı piny jednotliv´ ych MCU z rodiny STM32 k form´aln´ımu pˇrejmenov´an´ı z VREF- na VSSA, nicm´enˇe oba piny jsou ve velk´e vetˇsinˇe aplikac´ı, vˇcetnˇe t´eto, spojeny pˇr´ımo se zem´ı. Piny 19 a 99 je obdobn´ ym zp˚ usebem pomoc´ı p´ajec´ıch jumper˚ u (SJ1 a SJ3) moˇzn´e pˇripojit bud’ ke kladn´emu nap´ajec´ımu p´olu (+3,3 V VDD) nebo k zemi (GND). K nejz´asadnˇejˇs´ı zmˇenˇe doch´az´ı nepochybnˇe na pinu 19, kter´ y p˚ uvodnˇe patˇril analogov´e zemi VSSA, ale v novˇejˇs´ıch MCU se z nˇej stal kladn´ y nap´ajec´ı pin VDD. Podobnˇe je zapojen i pin 99, kter´ y ovˇsem p˚ uvodnˇe slouˇzil jako klasick´ y zemn´ıc´ı pin, zat´ımco u nov´ ych mikrokontroler˚ u je v´ yrobcem rezervov´an pro dalˇs´ı pouˇzit´ı a doporuˇcuje se jej pˇripojit ke kladn´emu p´olu nap´ajen´ı. Z v´ yˇse zm´ınˇen´ ych informac´ı by mˇelo b´ yt ˇcten´aˇri jasn´e, ˇze v pˇr´ıpadˇe chybn´eho spojen´ı jumper˚ u SJ1 nebo SJ3 m˚ uˇze doj´ıt po pˇripojen´ı nap´ajec´ıho napˇet´ı ke zniˇ cen´ı
26
MCU pˇr´ıpadnˇe stabiliz´atoru IC3. Jumper SJ2 nen´ı tak kritick´ y a jeho chybn´e zapojen´ı m˚ uˇze zp˚ usobit nanejv´ yˇs ˇspatnou funkci obvodu. Spr´avn´e zap´ajen´ı jumper˚ u pro jednotliv´e mikrokontrolery je pops´ano v kapitole zab´ yvaj´ıc´ı se n´avrhem DPS v sekci 3.2.1.
3.1.5
Vyveden´ı nevyuˇ zit´ ych GPIO pin˚ u na konektory
Mikrokontroler ve stopinov´em pouzdru disponuje osmdes´ati GPIO piny, pˇriˇcemˇz 51 z nich nen´ı k niˇcemu vyuˇzito a jsou vyvedeny na dva dvouˇrad´e tˇrcetipinov´e konektory K2 a K3, aby je bylo moˇzn´e vyuˇz´ıt pro pˇripojen´ı dalˇs´ıch periferi´ı mimo modul. Cel´e zapojen´ı ukazuje sch´ema na obr. 3.4. Konektory K2 a K3 jsou zapojeny t´emˇeˇr shodnˇe, na prvn´ıch dvou pinech je kladn´e nap´ajec´ı napˇet´ı +3,3 V, n´asleduje 26 (resp. 25 v pˇr´ıpadˇe K2) GPIO pin˚ u a na posledn´ıch dvou (resp. tˇrech) pinech je pˇripojena zem (GND). Za zm´ınku stoj´ı fakt, ˇze na konektorech jsou k dispozici dvˇe pln´e ˇsestn´actibitov´e br´any GPIOD a GPIOE, kter´e je moˇzn´e s v´ yhodou vyuˇz´ıt k pˇripojen´ı pamˇet’ovˇe mapovan´ ych periferi´ı, napˇr´ıklad extern´ı SRAM. Na obr. 3.4 je tak´e vidˇet 10kΩ pull-down odpor R3 zapojen´ y proti zemi, d´ıky kter´emu je na pinu PB2 (BOOT1) ihned po resetu MCU definovan´a logick´a u ´roveˇ n2 0, coˇz umoˇzn ˇuje zvolit z jak´eho zdroje bude mikrokontroler po restartu (resp. pˇripojen´ı nap´ajec´ıho napˇet´ı) naˇc´ıtat sv˚ uj program. Bliˇzˇs´ı popis je moˇzno nal´ezt v n´asleduj´ıc´ı podsekci.
3.1.6
Restartov´ an´ı a bootov´ an´ı MCU
Na modulu je um´ıstˇen´e resetovac´ı tlaˇc´ıtko, kter´e uvede mikrokontroler do v´ ychoz´ıho stavu a ten po uvlonˇen´ı tlaˇc´ıtka zaˇcne vykon´avat program od poˇc´atku. Pˇripojen´ı tlaˇc´ıtka je vidˇet na obr. 3.5(b). Tlaˇc´ıtko TL1 po stisku pˇripoj´ı v´ yvod NRST k zemi. Paralelnˇe k nˇemu je pˇripojen 10nF kondenz´ator C16, kter´ y v kombinaci s vntˇrn´ım odporem RP U , kter´ y je vidˇet 3 na obr.3.6 , tvoˇr´ı tzv. bezz´akmitov´e tlaˇc´ıtko s ˇcasovou konstantou τ definovanou vztahem 3.1. τ = R · C [s; Ω, F ] 2 3
(3.1)
Pokud nen´ı ovlivnˇena jin´ ymi souˇc´astkami pˇripojen´ ymi na PB2 prostˇrednictv´ım konektoru K2. Obr´ azek byl pˇrevzat ze zdroje [8] (strana 121).
27
Obr. 3.4: Pˇripojen´ı nevyuˇzit´ ych GPIO pin˚ u V dokumentaci [8] v´ yrobce ud´av´a, ˇze k restartov´an´ı MCU je potˇreba pin NRST spojit se zem´ı po dobu alespoˇ n 20µs. Kondenz´ator C16 m´a kapacitu 10nF, ale hodnota odporu RP U nen´ı v dokumentaci uvedena. Jedn´a se o klasick´ y pull-up odpor, kter´ y udrˇzuje na pinu NRST logickou 1, pokud nen´ı k pinu nic jin´eho pˇripojeno. Typick´a hodnota pull-up odporu leˇz´ı v rozmez´ı jednotek aˇz stovek kΩ a zmˇeˇren´ım byla velikost tohoto odporu stanovena na pˇribliˇznˇe 43kΩ. Zn´ame tedy obˇe potˇrebn´e
28
(a) v´ yvody MCU
(b) resetovac´ı tlaˇc´ıtko
(c) bootovac´ı tlaˇc´ıtko
Obr. 3.5: Zapojen´ı restartovac´ıho a bootovac´ıho tlaˇc´ıtka
Obr. 3.6: Zapojen´ı sign´alu NRST uvnitˇr MCU hodnoty pro stanoven´ı ˇcasov´e konstanty τ , kter´a po dosazen´ı do vztahu 3.1 vych´az´ı τ = 430µs, coˇz je v´ıce jak 20-kr´at vyˇsˇs´ı hodnta neˇz minim´aln´ı poˇzadovan´a v´ yrobcem a bezesporu vyhovuje dan´e potˇrebˇe. Je nutn´e si ale tak´e uvˇedomit, ˇze kondenz´ator C16 (stejnˇe jako odpor RP U ) je trvale pˇripojen k pinu NRST a prodluˇzuje“ veˇsker´e ” pulzy, kter´e na pin pˇrich´azej´ı, tzn. i ty kter´e pˇrich´azej´ı prostˇrednictv´ım konektoru JTAG popsan´em v podsekci 3.1.10. To by mohlo b´ yt problematick´e v pˇr´ıpadˇe, ˇze JTAG adapt´er generuje podstatnˇe kratˇr´ı resetovac´ı pulsy a bezprostˇrednˇe po nich se pokouˇs´ı komunikovat s MCU. V takov´em pˇr´ıpadˇe je moˇzn´e patˇriˇcnˇe sn´ıˇzit kapacitu C16 na hodnotu, kter´a jiˇz nebude ovlivˇ novat funkci JTAG adapt´eru. V´ yˇse popsan´ y (teoretick´ y) probl´em ovˇsem v praxi nikdy zat´ım nenastal, uv´ad´ım ho zde pouze pro u ´plnost. Velice kladnˇe hodnot´ım pˇr´ıtomnost Schmittova klopn´eho obvodu uvnitˇr MCU, jelikoˇz sign´al jdouc´ı z RC ˇcl´anku tvoˇren´eho C16, RP U m´a pochopitelnˇe exponenci´aln´ı pr˚ ubˇeh, kter´ y je aˇz posl´eze tvarov´an na obd´eln´ıkov´ y pr´avˇe d´ıky Schmittovu klopn´emu obvodu patrn´emu na obr. 3.6.
29
Na obr. 3.5(c) je vidˇet ˇreˇsen´ı bootovac´ıho tlaˇc´ıtka (TL2), d´ıky kter´emu je moˇzno zvolit z jak´eho zdroje se bude naˇc´ıtat program. Pokud je tlaˇc´ıtko rozpojeno, je na pinu BOOT0 trval pˇr´ıtomna logick´a u ´roveˇ n 0 prosˇrednictv´ım odporu R5 a po restartu se vykon´av´a program z intern´ı FLASH pamˇeti, pokud dojde ke stisku tlˇc´ıtka, objev´ı se na pinu BOOT0 logick´a 1, kter´a naˇrizuje mikrokontroleru po resetu vstoupit do tzv. bootloaderu, tj. programu naprogramovan´eho v´ yrobcem do syst´emov´e pamˇeti MCU, kter´ y umoˇzn ˇuje nahr´at do mikrkontroleru uˇzivatelsk´ y program prostˇrednictv´ım tˇechto s´eriov´ ych rozhran´ı: USART1, USART2, CAN2 nebo USB OTG. Odpor R4 slouˇz´ı pouze k omezen´ı proudu tekouc´ıho do pinu BOOT0. Do bootloaderu se vstupuje tak, ˇze stiskneme tlaˇc´ıtko TL1 (MCU RST), n´aslednˇe stiskneme TL2 (BOOT) a pot´e uvoln´ıme TL1. T´ım dojde k resetu MCU a po opˇetovn´em startu je zjiˇstˇena logick´a 1 na pinu BOOT0, v d˚ usledku kter´e zaˇcne mikrokontroler hledat, ze kter´eho s´eriov´eho rozhran´ı je moˇzn´e st´ahnout nov´ y program do intern´ı FLASH pamˇeti. Aby se mikrokontroler nepokouˇsel po restartu hledat program v intern´ı SRAM pamˇeti, o ˇcemˇz rozhoduje stav pinu BOOT1, je tento pin pˇridrˇzen v logick´e 0 odporem R3, kter´ y je moˇzno vidˇet na obr. 3.4. V´ıce infromac´ı k t´ematu bootov´an´ı je moˇzn´e nal´ezt v [8] pˇr´ıpadnˇe [10].
3.1.7
Oscil´ atory
Pˇrestoˇze je kaˇzd´ y mikrokontroler z rodiny STM32 vybaven vnitˇrn´ım oscil´atorem generuj´ıc´ım obd´eln´ıkov´ y sign´al o frekvenci 8MHz, jeho pˇresnost je ve srovn´an´ı s krystalov´ ym oscil´atorem n´ızk´a a jeho frekvence se mˇen´ı tak´e v z´avislosti na teplotˇe pouzdra MCU. To vˇse vede k jeho nevhodnosti pro pouˇzit´ı v situac´ıch, kdy je pˇresn´e ˇcasov´an´ı kl´ıˇcov´e pro spr´avnou funkci zaˇr´ızen´ı, tedy napˇr´ıklad pokud jde o synchronizaci jednotliv´ ych zaˇr´ızen´ı mezi sebou, jako je tomu v tomto pˇr´ıpadˇe. Na obr. 3.7(a) je vidˇet dvojice zdroj˚ u hodinov´eho sign´alu pro mikrokontroler. Prvn´ı zdroj je ˇreˇsen klasick´ ym pˇripojen´ım krystalov´eho v´ ybrusu Q1 k MCU prostˇrednictv´ım pi˚ u OSC IN a OSC OUT, pˇriˇcemˇz u obou v´ yvod˚ u jsou pˇripojeny proti zemi startovac´ı kondenz´atory C13 a C14 s kapacitou 18pF. Samotn´ y oscil´ator je uvnitˇr mikrokontroleru a pro korektn´ı fungov´an´ı MCU staˇc´ı pˇripojit pouze tyto tˇri souˇc´astky. Toto ˇreˇsen´ı m´a ovˇsem i sv´a u ´skal´ı, jedn´ım z nich je kvalita intern´ıho oscil´atoru. Pˇred zah´ajen´ım n´avrhu tohoto modulu jsem byl nˇekolika kolegy a vedouc´ım pr´ace upozornˇen, ˇze v urˇcit´ ych situac´ıch se intern´ı oscil´ator chov´a nestandardnˇe a doch´az´ı k jitteru, viz priloha C. Toto je pro danou aplikaci naprosto neˇz´adouc´ı a mohlo by to ovlivnit pˇresnost synchronizace a korelaci namˇeˇren´ ych dat.
30
(a) zdroje taktu
(b) krystal pro RTC
Obr. 3.7: Pˇripojen´ı oscil´atoru a krystal˚ u k MCU Proto jsem do sch´ematu pˇridal jeˇstˇe druh´ y zdroj taktu pro MCU, kter´ y je ˇreˇsen krystalov´ ym oscil´atorem QG1 opatˇren´ ym o blokovac´ı kondenz´ator C15 s kapacitou 100nF. Oscil´ator m´a trvale spojen´ y v´ yvod OE (Output Enable - povolen´ı v´ ystupu) s kladn´ ym p´olem nap´ajen´ı, takˇze generuje hodinov´ y sign´al okamˇzitˇe po pˇripojen´ı nap´ajec´ıho napˇet´ı. V´ yhodou tohoto extern´ıho oscil´atoru je absence jitteru a to ve v´ ysledku pozitivnˇe ovlivn´ı pˇresnost synchronizace v porovn´an´ı s variantou popsanou v pˇredeˇsl´em odstavci. Frekvence obou popsan´ ych zdroj˚ u taktu je 25MHz, coˇz je d´ano pˇredevˇs´ım potˇrebami MII sbˇernice, pomoc´ı kter´e je k mikrokontroleru pˇripojen´a fyzick´a vrstva Ethernetu. Tato frekvence je tak´e vhodn´a pro taktov´an´ı vˇetˇsiny periferi´ı obsaˇzen´ ych na ˇcipu STM32F107, jako napˇr´ıklad USB. Z obou v´ yˇse popsan´ ych ˇreˇsen´ı je moˇzno pouˇz´ıt vˇzdy pouze jedno jedin´e, proto se pˇri osazov´an´ı DPS osad´ı bud’ jen krystalov´ y v´ ybrus, nebo se osad´ı jen krsytalov´ y oscil´ator, nen´ı moˇzn´e pˇripojit oba z´aroveˇ n. Obr´azek 3.7(b) ukazuje pˇripojen´ı pomal´eho“ krystalov´eho v´ ybrusu Q2 vˇcetnˇe ” dvou startovac´ıch kondenz´ator˚ u C17, C18 o kapacitˇe 22pF. V´ yvody krystalu jsou pˇripojeny k pin˚ um PC14 a PC15 mikrokontroleru, jak je vidˇet na obr. 3.4. Frekvence krystalu Q2 je 32768Hz, coˇz je vhodn´a hodnota pro dˇelen´ı mocninami dvou s celoˇc´ıseln´ ym pod´ılem, tak jak je to ve vˇetˇsinˇe logick´ ych obvod˚ u bˇeˇzn´e a nejjednoduˇsˇs´ı, mikrokontrolery nevyj´ımaje. Krystal je pˇripojen k vnitˇrn´ım Real-Time
31
Clock (RTC) - hodin´am re´aln´eho ˇcasu, kter´e je moˇzn´e pouˇz´ıt napˇr´ıklad k udrˇzov´an´ı denn´ıho ˇcasu a data.
3.1.8
Pˇ ripojen´ı PHY
Jak jiˇz bylo zm´ınˇeno v kapitole 2.6.2, samotn´ y mikrokontroler disponuje pouze MAC vrstvou a k t´e je nutn´e pˇripojit jeˇstˇe fyzickou vrstvu (PHY), d´ıky kter´e je modul schopn´ y komunikovat po metalick´e s´ıt´ı Ethernet.
Obr. 3.8: Blokov´e sch´ema pˇripojen´ı PHY k MCU
Blokov´e sch´ema 3.84 zn´azorˇ nuje propojen´ı MCU a PHY prostˇrednictv´ım rozhran´ı MII. Rozhran´ı samotn´e vyˇzaduje patn´act datov´ ych vodiˇc˚ u a dalˇs´ı dva vodiˇce (MDIO, MDC) jsou pouˇzity pro konfiguraci fyzick´e vrstvy ST802RT1 prostˇrednictv´ım MAC vrstvy uvnitˇr mikrokontroleru, kter´a umoˇzn ˇuje ˇc´ıst a zapisovat do vnitˇrn´ıch ˇr´ıd´ıc´ıch registr˚ u. V´ıce informac´ı o moˇznostech konfigurace nab´ız´ı dokumentace PHY [11]. Sch´ema na obr. 3.9 ukazuje zapojen´ı fyzick´e vrstvy a jej´ı pˇripojen´ı k mikrokontroleru (viz obr. 3.4). Krom standardn´ıch sign´al˚ u MII rozhran´ı (viz tab. 3.2) je vidˇet tak´e zp˚ usob nap´ajen´ı, kter´e je oddˇelen´e pro digit´aln´ı a analogovou ˇca´st dvˇemi tlumivkami L2, L3 a kaˇzd´ y z nap´ajec´ıch pin˚ u m´a ve sv´e bl´ızkosti blokovac´ı kondenz´ator (C20 aˇz C26). Pin 9 (PWRDN) slouˇz´ı k pˇrechodu do u ´sporn´eho reˇzimu, pˇri kter´em doch´az´ı k odpojen´ı MII rozhran´ı (izolaci), pˇrechodu pin˚ u vedouc´ıch ke konektoru (viz 3.11) do stavu s vysokou impedanc´ı a stejnˇe tak jsou odpojeny signalizaˇcn´ı LED diody. Tento pin je trvale drˇzen na u ´rovni logic´e 1 prostˇrednictv´ım rezistoru R15, d´ıky ˇcemuˇz obvod IC2 pˇri pˇripojen´em nap´ajec´ım napˇet´ı trvale setrv´av´a v aktivn´ım 4
Obr´ azek byl pˇrevzat ze zdroje [9].
32
Obr. 3.9: Sch´ema zapojen´ı fyzick´e vrstvy stavu. Do u ´sporn´eho reˇzimu m˚ uˇze obvod pˇrej´ıt pouze pokud je softwarovˇe nastaven bit 11 registru RN00 prostˇrednictv´ım s´eriov´eho konfiguraˇcn´ıho rozhran´ı [11]. Na obr. 3.10 m˚ uˇzeme vidˇet pˇripojen´ı resetovac´ıho tlaˇc´ıtka TL4 k fyzick´e vrstvˇe (pin RST, sign´al PHY RST). Ze sch´ematu je patrn´e, ˇze stejnˇe jako u MCU je i tento sign´al negovan´ y, ˇcemuˇz odpov´ıd´a i zapojen´ı tlaˇc´ıtka. Pro restartov´an´ı obvodu je potˇreba pin RST drˇzen v u ´rovni logick´a 0 alespoˇ n po dobu 1ms, coˇz je zajiˇstˇeno RC ˇcl´ankem tvoˇren´ ym 22kΩ rezistorem R25 a 100nF kondenz´atorem C29, jehoˇz ˇcasov´a konstanta popsan´a v sekci 3.1.6 po dosazen´ı do vztahu 3.1 vych´az´ı τ = 2, 2ms. Konstanta byla zvolena v´ıce jak dvojn´asobn´a, jelikoˇz v´ yrobce v dokumentaci [11] neuv´ad´ı zapojen´ı pinu RST uvnitˇr ˇcipu IC2, a prtoto nen´ı moˇzn´e zjistit, jestli nen´ı napˇr´ıklad k odporu R25 uvnitˇr ˇcipu paralelnˇe pˇripojen pull-up rezistor, jak je tomu v pˇr´ıpadˇe MCU na obr. 3.6, kter´ y by pochopitelnˇe zp˚ usobil rychlejˇs´ı nab´ıjen´ı kondenz´atoru C29, v d˚ usledku ˇcehoˇz by doˇslo ke zkr´ace´ı ˇcasov´e konstanty τ .
33
n´ azev TX CLK TX EN TXD 0 TXD 1 TXD 2 TXD 3 CRS COL RX CLK RXD 0 RXD 1 RXD 2 RXD 3 RX DV RD ER MDIO MDC
pin MCU 18 48 51 52 17 95 23 26 24 33 34 35 36 32 47 25 16
smˇ er ← → → → → → ← ← ← ← ← ← ← ← ← ↔ →
pin PHY 1 2 5 6 7 8 39 46 37 45 44 43 42 38 40 30 31
Popis sign´ alu Transmit clock Transmit enable Transmit Data bit 0 Transmit Data bit 1 Transmit Data bit 2 Transmit Data bit 3 Carrier sense Collision Transmit clock Receive Data bit 0 Receive Data bit 1 Receive Data bit 2 Receive Data bit 3 Receive Data valid Receive Data error Management Data input/output Management Data clock
Tab. 3.2: Pˇrehled sign´al˚ u MII rozhran´ı
Obr. 3.10: Pˇripojen´ı resetovac´ıho tlaˇc´ıtka k PHY Pro potˇreby vnitˇrn´ıho napˇet’ov´eho regul´atoru slouˇz´ı paraleln´ı kombinace 5,6kΩ a 91kΩ rezistor˚ u (R16, R17), jej´ıˇz v´ ysledn´ y odpor je ≈ 5275Ω, coˇz splˇ nuje poˇzadavky uveden´e v dokumentaci [11], kde je uveden referenˇcn´ı odpor 5,25kΩ s 1% toleranc´ı. Pokud pouˇzijeme dva rezistory s 1% toleranc´ı, m˚ uˇze nastat extr´emn´ı pˇr´ıpad, kdy v´ ysledn´a hodnota odporu paraleln´ı kombinace bude nepatrnˇe pˇresahovat poˇzadovanou toleranci, nicm´enˇe ani v takov´em pˇr´ıpadˇe nebude ohroˇzena funkˇcnost
34
fyzick´e vrstvy jako celku. Je to pomˇernˇe mal´a daˇ n za fakt, ˇze oba rezistory jsou vybr´any ze standardn´ı ˇrady hodnot rezistor˚ u E24 a v´ ysledna cena dvou takov´ ych odpor˚ u je niˇs´ı neˇz pˇresn´eho 5,25kΩ rezistoru. Vzhledem k pouˇzit´emu MII rozhran´ı, pomoc´ı kter´eho je propojen mikrokontroler a PHY, je potˇreba pˇriv´est na vstup XT1 (pin 35) fyzick´e vrstvy (IC2) periodick´ y obd´eln´ıkov´ y sign´al o frekvenci 25MHz, d´ıky kter´emu je maxim´aln´ı pˇrenosov´a rychlost mezi MAC a PHY 100Mb/s5 . K t´eto rychlosti dojdeme pomoc´ı jednoduch´eho v´ ypoˇctu: vys´ılac´ı datov´a sbˇernice MII rozhran´ı m´a 4 bity (TXD[3:0]), sbˇernice je taktov´ana pˇriveden´ ym hodinov´ ym sign´alem na 25MHz a prost´ ym 6 bit 6 1 vyn´asoben´ım dost´av´ame 25 · 10 · s · 4bit = 100 · 10 · s = 100M b/s. T´ım dost´av´ame rychlost vys´ıl´an´ı dat, rychlost pˇr´ıjmu bychom spoˇc´ıtali totoˇznˇe. Tento v´ ypoˇcet je spr´avn´ y pouze v pˇr´ıpadˇe, ˇze je zaˇr´ızen´ı schopn´e pracovat v tzv. full-duplex reˇzimu, tedy ˇze je schopn´e v jeden okamˇzik vys´ılat a z´aroveˇ n pˇrij´ımat data, coˇz je dnes bˇeˇzn´e a ve full-duplex reˇzimu pracuje i zde popisovan´ y modul. Programovˇe je moˇzn´e zajistit ˇcinnost tak´e v half-duplex reˇzimu (zaˇr´ızen´ı m˚ uˇze v jeden okamˇzik data bud’ pouze vys´ılat nebo pouze pˇrij´ımat), nicm´enˇe nen´ı k tomu d˚ uvod a dokonce by to negativnˇe ovlivnilo pˇresnost ˇcasov´e synchronizace. Pro generov´an´ı obd´eln´ıkov´eho sign´alu je moˇzn´e pouˇz´ıt krystal pˇripojen´ y ke svork´am XT1 a XT2 obvodu IC2, pochopitelnˇe doplnˇen´ y o dvojici startovac´ıch kondenz´ator˚ u, nebo je moˇzn´e pouˇz´ıt krystalov´ y oscil´ator s v´ ystupem veden´ ym na pin XT1, jako je to ˇreˇseno v pˇr´ıpadˇe MCU, a nebo je moˇzn´e pˇriv´est tento kmitoˇcet prostˇrednictv´ım MCO (Microcontroller Clock Output) pinu mikrokontroleru. Zvolena byla nakonec tˇret´ı popisovan´a varianta a to hned ze dvou d˚ uvod˚ u. Prvn´ım d˚ uvodem je fakt, ˇze kmitoˇcet 25MHz je v MCU generov´an pro potˇreby MAC vrstvy a nen´ı probl´em ho pr´avˇe prostˇrednictv´ım MCO pinu (pin 67 na obr. 3.4) pˇriv´est do fyzick´e vrstvy na pin XT1, viz obr. 3.9. Druh´ ym d˚ uvodem je opˇet finanˇcn´ı str´anka n´avrhu, jelikoˇz takov´eto ˇreˇsen´ı uˇsetˇr´ı poˇrizovac´ı n´aklady dalˇs´ıho krystalu, resp. krystalov´eho oscil´atoru a tak´e potˇrebnou plochu DPS, kter´a by takt´eˇz mohla m´ırnˇe zv´ yˇsit cenu cel´eho modulu. Na tomto m´ıstˇe by bylo vhodn´e zm´ınit jeˇstˇe jednu moˇznost, jak pˇriv´est hodinov´ y sign´al k IC2. Touto moˇznost´ı je pˇr´ım´e propojen´ı v´ ystupu krystalov´eho oscil´atoru QG1 (n´aleˇz´ıc´ıho MCU) s pinem XT1 fyzick´e vrstvy. Jakkoliv by se posledn´ı dvˇe zm´ınˇen´e moˇznosti mohly zd´at totoˇzn´e, existuje mezi nimi podstatn´ y rozd´ıl. Vyveden´ı sign´alu z pinu MCO totiˇz d´av´a z´aruku6 , ˇze hodinov´ y sign´al bude m´ıt stejnou f´azi (n´abˇeˇzn´e a sestupn´e hrany doraz´ı do obou 5
Fyzick´ a i MAC vrstva je schopna komunikovat tak´e rychlost´ı 10Mb/s, pokud je pˇriveden odpov´ıdaj´ıc´ı hodinov´ y sign´ al o frekvenci 2,5MHz. 6 Toto tvrzen´ı plat´ı pouze v pˇr´ıpadˇe dostateˇcnˇe kr´atk´eho spoje mezi MCU a PHY.
35
ethernetov´ ych vrstev ve stejn´ y okamˇzik) jak pro MAC tak pro PHY, coˇz je v t´eto aplikaci nanejv´ yˇs ˇza´douc´ı. Pˇr´ım´e propojen´ı v´ ystupu QG1 a a pinu XT1 obvodu IC2 tuto z´aruku v ˇza´dn´em pˇr´ıpadˇe ned´av´a.
Obr. 3.11: Sch´ema pˇripojen´ı konektoru k PHY
Na obr. 3.11 m˚ uˇzeme vidˇet pˇripojen´ı ethernetov´eho konektoru K6 k fyzick´e vrstvˇe, viz obr. 3.9. Konektor samotn´ y je popsan´ y v sekci 2.6.3. V zapojen´ı vid´ıme ˇctveˇrici 50Ω rezistor˚ u (R18 aˇz R21), kter´e slouˇz´ı k impedanˇcn´ımu pˇrizp˚ usoben´ı veden´ı. D´ale dvojici 10nF kondenz´ator˚ u (C27, C28) a c´ıvku L4, kter´e vych´azej´ı ze specifikace Ethernetu. Bliˇzˇs´ı informace k p´ajec´ım propojk´am SJ4, SJ5 je moˇzn´e nal´ezt v sekci 3.2.1. Fyzick´a vrstva poskytuje v´ ystupy pro tˇri indikaˇcn´ı LED diody. S v´ yhodou zde bylo pouˇzito dvou LED diod, kter´e jsou souˇca´st´ı konektoru K6. Zelen´a dioda indikuje stav spojen´ı (pokud sv´ıt´ı, je nav´az´ano spojen´ı na u ´rovni linkov´e vrstvy ISO/OSI 7 ˇ modelu ). Zlut´a LED dioda uvnitˇr konektoru indikuje aktivitu spojen´ı, tj. zda jsou pˇren´aˇsena data (blik´a) nebo ne (sv´ıt´ı). Posledn´ı dioda LED3 jiˇz nen´ı souˇca´st´ı konektoru a jej´ım u ´kolem je informovat o rychlosti spojen´ı, tedy zda maxim´aln´ı rychlost komunikace je 100Mb/s (sv´ıt´ı) nebo 10Mb/s (nesv´ıt´ı). Kaˇzd´e diodˇe pochopitelnˇe n´aleˇz´ı pˇredˇradn´ y rezistor (R22 aˇz R24) omezuj´ıc´ı proud tekouc´ı diodu. 7
Definice ISO/OSI modelu je dostupn´a (za poplatek) na webov´ ych str´ank´ach organizace International Organization for Standardization: www.iso.org.
36
3.1.9
Uˇ zivatelsk´ e tlaˇ c´ıtko a LED dioda
Obr. 3.12: Zapojen´ı uˇzivatelsk´eho tlaˇc´ıtka a LED
Vzhledem k tomu, ˇze zde popisovan´ y modul m´a slouˇzit nejen pro demonstraci moˇznost´ı protokolu PTP, ale tak´e pro dalˇs´ı v´ yvoj pokroˇcilejˇs´ıch ˇreˇsen´ı, je pˇr´ıtomnost uˇzivatelsky programovateln´e LED diody (LED5) a tlaˇc´ıtka (TL3) pˇr´ımo na DPS kl´ıˇcov´a. Uˇzivatelsk´a LED dioda m˚ uˇze napˇr´ıklad slouˇzit k jednoduch´e indikaci spr´avn´e ˇcinnosti zaˇr´ızen´ı, nebo naopak indikovat chybu, ke kter´e dosˇslo v pr˚ ubˇehu vykon´av´an´ı programu. Tlaˇc´ıtko pak umoˇzn ˇuje snadno ˇr´ıd´ıt vykon´av´an´ı programu nebo napˇr´ıklad zad´av´an´ı konkr´etn´ıch hodnot ke zpracov´an´ı programem. Typick´ ym pˇr´ıkladem takov´eho pouˇzit´ı tlaˇc´ıtka mohou b´ yt levn´e digit´aln´ı bud´ıky, kde poˇctem stisk˚ u tlaˇc´ıtka urˇcujeme poˇcet minut, hodin, mˇes´ıc˚ u, rok˚ u, atd. Jejich zapojen´ı je vidˇet na obr. 3.12. Sign´al USR LED je veden od uˇzivatelsk´e LED diody pˇres rezistor R13 na pin PB15, zat´ımco sign´al USR BTN je veden od tlaˇc´ıtka k pinu PB14 mikrokontroleru, viz obr. 3.4. Oba sign´aly jsou tak´e vyvedeny na ˇctyˇrpinov´ y konektor K7, kter´ y zpˇr´ıstupˇ nuje v´ yˇse zm´ınˇen´e dva piny MCU pro pˇr´ıpad, ˇze by byla potˇreba je pouˇz´ıt jinak, neˇz k pˇripojen´ı LED diody a tlaˇc´ıtka. V takov´em pˇr´ıpadˇe staˇc´ı neosadit rezistor R13 (omezuj´ıc´ı proud tekouc´ı LED diodou) a R26 (0Ω propojka), ˇc´ımˇz dojde k odpojen´ı tlaˇc´ıtka TL3, LED5 a RC ˇcl´anku tvoˇren´eho 10kΩ rezistorem R14 a 100nF kondenz´atorem C19, kter´ y po stisku tlaˇc´ıtka vygeneruje pulz v odbˇe trv´an´ı τ = 1ms. Na konektoru je takt´eˇz pˇritomno kladn´e nap´ajec´ı napˇet´ı 3,3 V a zem (sign´al GND), d´ıky kter´ ym nen´ı potˇreba pˇriv´adˇet nap´ajen´ı z jin´ ych konektor˚ u.
37
Obr. 3.13: Zapojen´ı JTAG konektoru
3.1.10
Zapojen´ı JTAG konektoru
Jak jiˇz bylo zm´ınˇeno v sekci 2.6.1, k nahr´av´an´ı programu do MCU a ˇr´ızen´ı jeho bˇehu slouˇz´ı rozhran´ı JTAG pˇr´ıpadnˇe SWD. Obˇe zm´ınˇen´a rozhran´ı jsou vyvedena na konektor K4 na obr. 3.13, kter´ y m´a 20 pin˚ u ve dvou ˇrad´ach po deseti. Takto zapojen´ y konektor odpov´ıd´a standardn´ımu rozm´ıstˇen´ı v´ yvod˚ u pro velkou vˇetˇsinu ARM JTAG adapt´er˚ u8 , kter´e slouˇz´ı k propojen´ı PC a MCU, viz obr. 3.4. Piny 11, 17 a 19 nejsou vyuˇzity (mikrokontroler jejich pˇripojen´ı nepodporuje a k programov´an´ı a ladˇen´ı programu nejsou potˇreba), proto jsou pˇripojeny trojic´ı 10kΩ pull-down rezistor˚ u R10 aˇz R12 k zemi, jak doporuˇcuje v´ yrbce. Pin 13 je naopak prostˇrednictv´ım pullup odporu pˇripojen ke kladn´emu nap´ajec´ımu napˇet´ı, ˇc´ımˇz definuje logickou ˚ uroveˇ n sign´alu, pokud zrovna neprob´ıh´a pˇrenos dat z PC do MCU (sign´al JTDO). Rozhran´ı SWD je vyvedeno na tomt´eˇz konektoru, pˇriˇcemˇz datov´ y sign´al SWDIO (Serial Wire Data Input Output) je na pinu 7 (JTAG sign´al JTMS) a ˇcasovac´ı sign´al SWCLK (Serial Wire Clock) odpov´ıd´a pinu 9 (JTAG sign´al JTCK). Je d˚ uleˇzit´e zm´ınit, ˇze v jeden okamˇzik m˚ uˇze prob´ıhat pˇrenost dat logicky pouze prostˇrednictv´ım jednoho ze dvou v´ yˇse zm´ınˇen´ ych rozhran´ı. Programem mikrokontroleru je moˇzn´e urˇcit, kter´e rozhran´ı se bude pouˇz´ıvat, a nebo je moˇzn´e zvolit rozhran´ı z ovl´adac´ıho SW z PC (za pˇredpokladu, ˇze nebylo dan´e rozhran´ı zak´az´ano programem MCU). 8
Popis konektoru a jeho jednotliv´ ych http://www.hw.cz/pdf/kity/arm-jtag.pdf.
sign´alu
38
je
moˇzn´e
nal´ezt
napˇr´ıklad
zde:
3.1.11
Zapojen´ı USB konektoru
Vzhledem k tomu, ˇze mikrokontroler STM32F107 disponuje mimo jin´e tak´e rozhran´ım USB 1.1, pomoc´ı kter´eho je moˇzn´e jednak komunikovat s PC a jednak nahr´avat program do MCU d´ıky vnitˇrn´ımu bootloaderu, kter´ y je pops´an v´ yrobcem v aplikaˇcn´ı pozn´amce AN2606 [10]. Tento USB port (konektor K5) je tak´e tzv. HOST port, je tedy moˇzn´e k nˇemu pˇripojit USB periferie (poˇc´ıtaˇcov´a myˇs, kl´avesnice, atd.).
Obr. 3.14: Zapojen´ı USB konektoru
Dvojice 22Ω rezistor˚ u R6, R7 slouˇz´ı k omezen´ı odraz˚ u na veden´ı mezi PC a MCU, kter´e by pˇri dan´e maxim´aln´ı komunikaˇcn´ı rychlosti 12Mbit/s bezesporu ovlivˇ novaly kvalitu datov´eho pˇrenosu. Rezistor R8 (1,5kΩ) vych´az´ı ze specifikace USB 1.19 . Sign´al USB DN je pˇripojen k pinu PA11 a USB DP k pinu PA12 mikrokontroleru, viz obr. 3.4. Pˇri propojen´ı modulu s PC je na pinu 1 USB konektoru K4 pˇr´ıtomno tak´e napˇet´ı 5V, kter´e je moˇzn´e s v´ yhodou pouˇz´ıt k nap´ajen´ı modulu. Aby bylo modul moˇzno nap´ajet z PC (pˇripadnˇe jin´eho zaˇr´ızen´ı poskytuj´ıc´ıho 5V nap´ajen´ı), staˇc´ı spojit propojku JP1, coˇz pˇrivede 5V napˇet´ı na vstupn´ı svorku stabiliz´atoru IC3, jak je naznaˇceno na obr. 3.1. Je d˚ uleˇzit´e si tak´e povˇsimnout, ˇze tato nap´ajec´ı cesta nen´ı chr´anˇena proti pˇrep´olov´an´ı diodou D1. D˚ uvodem je fakt, ˇze USB konektor je dobˇre zaˇzit´ y standard s pevnˇe dan´ ym rozm´ıstˇen´ım vˇsech ˇctyˇr vodiˇc˚ u na jednotliv´ ych pinech konektoru, takˇze zde existuje pouze miziv´a ˇsance, ˇze by doˇslo k pˇrep´olov´an´ı. Na diodˇe D1 by tedy zbytnˇcne doch´azelo k u ´bytku napˇet´ı a vlivem prot´ekan´eho proudu by se zahˇr´ıvala. 9
Specifikace USB 1.1: mprolab.teipir.gr/vivlio80X86/usb11.pdf
39
3.2
Deska ploˇ sn´ ych spoj˚ u
Zapojen´ı popsan´e v sekci 3.1 bylo realizov´ano na dvouvrstv´em ploˇsn´em spoji o ˇs´ıˇrce 100mm a v´ yˇsce 50mm. Ploˇsn´ y spoj byl, stejnˇe jako sch´ema zapojen´ı, navrˇzen v programu Eagle od spoleˇcnosti Cadsoft10 . K volbˇe pr´avˇe tohoto editoru jsem mˇel dva hlavn´ı d˚ uvody. Prvn´ım z nich je fakt, ˇze firma Cadsoft poskytuje volnˇe dostupnou a ˇcasovˇe neomezenou verzi zdarma. Tato verze m´a sice jist´a omezen´ı oproti komerˇcnˇe prod´avan´e verzi, ale ˇz´adn´e z nich nebr´anilo v n´avrhu sch´ematu ani DPS. Druh´ ym d˚ uvodem byla dobr´a znalost a orientace v tomto editoru narozd´ıl od kokurenˇcn´ıch produkt˚ u.
Obr. 3.15: Celkov´ y pohled na DPS
Na obr. 3.15 m˚ uˇzeme vidˇet kompletn´ı n´avrh DPS s vyobrazenou horn´ı i spodn´ı vrstvou ploˇsn´ ych spoj˚ u. V roz´ıch jsou patrn´e ˇctyˇri velk´e otvory o pr˚ umˇeru 3,2mm, kter´e slouˇz´ı k pˇripevnˇen´ı DPS do pˇr´ıstrojov´e krabiˇcky popˇr´ıpadˇe k pˇriˇsroubov´an´ı distanˇcn´ıch sloupk˚ u, kter´e pak slouˇz´ı jako noˇziˇcky“ a podp´ıraj´ı desku tak, aby ” nedoˇslo ke zkratu pˇri poloˇzen´ı na kovov´ y podklad. V lev´e ˇca´sti DPS se bohuˇzel nepodaˇrilo um´ıstit obˇe d´ıry nad sebe tak, jak je to na prav´e stranˇe. D´ uvodem byl nedostatek m´ısta v d˚ usledku rozmˇer˚ u USB a JTAG konektor˚ u, kter´e bylo ˇz´adouc´ı um´ıstit na kraj desky pro dobrou pˇr´ıstupnost. Obr´azek 3.16 zn´azorˇ nuje ploˇsn´e spoje v horn´ı vrstvˇe DPS. Na prvn´ı pohled jsou patrn´a tˇri m´ısta, kde je tzv. rozlit´a“ mˇed’ spojen´a se zem´ı nap´ajec´ıho zdroje. T´e ” 10
Na str´ ank´ ach v´ yrobce http://www.cadsoft.de/ je moˇzn´e nal´ezt podrobnˇejˇs´ı informace k jeho produkt˚ um.
40
Obr. 3.16: Horn´ı vrstva ploˇsn´ ych spoj˚ u se vuyˇz´ıv´a pro zlepˇsen´ı odolnosti proti elekotrmagnetick´emu ruˇsen´ı a v pˇr´ıpadˇe stabiliz´atoru IC3 (viz obr. 3.16) v prav´e spodn´ı ˇc´asti tak´e k chlazen´ı tohoto obvodu. Siln´e spoje v horn´ı vrsvˇe slouˇz´ı k rozvodu nap´ajec´ıch napˇet´ı.
Obr. 3.17: Spodn´ı vrstva ploˇsn´ ych spoj˚ u
Pohled na spodn´ı vrstvu ploˇsn´ ych spoj˚ u nab´ız´ı obr. 3.17, na kter´em m˚ uˇzeme vidˇet rozlitou zem po cel´e polˇse desky s v´ yjimkou m´ıst, kde to nedovoluje minim´aln´ı pˇr´ıpustn´a vzd´alenost dvou spoj˚ u dan´a v´ yrobn´ımi moˇznostmni. Nejsilnˇejˇs´ı spoje ve spodn´ı vrsvˇe slouˇz´ı stejnˇe jako v pˇr´ıpadˇe horn´ı vrstvy k rozvodu kladn´eho nap´ajec´ıho
41
napˇet´ı a jsou dimenzov´any na nˇekolikan´asobnˇe vyˇsˇs´ı proudy, neˇz je pˇredpokl´adan´ y odbˇer modulu. D˚ uvod˚ u existuje hned nˇekolik: silnˇejˇs´ı spoje nijak nezvyˇsuj´ı v´ yrobn´ı cenu DPS, dostateˇcnˇe siln´ y rozvod nap´ajec´ıho napˇet´ı pˇredch´az´ı probl´em˚ um spojen´ ym s ˇspiˇckov´ ymi proudov´ ymi odbˇery (napˇr´ıklad n´ahodn´e restartov´an´ı MCU v d˚ usledku chvilkov´eho poklesu nap´ajec´ıho napˇet´ı zp˚ usoben´eho prouduvou ˇspiˇckou) a tˇret´ım d˚ uvodem je fakt, ˇze z modulu mohou b´ yt pomoc´ı konektor˚ u K2, K3 pˇr´ıpadnˇe K7 nap´ajeny dalˇs´ı obvody, jejichˇz odbˇer nen´ı pˇredem zn´am.
3.2.1
Rozm´ıstˇ en´ı souˇ c´ astek na DPS
Obr. 3.18: Rozm´ıstˇen´ı souˇc´astek v horn´ı vrstvˇe ploˇsn´ ych spoj˚ u
Obr´azek 3.18 ukazuje rozm´ıstˇen´ı souˇca´stek pˇri pohledu shora na DPS. Uprostˇred desky vid´ıme mikrokontroler IC1, od kter´eho jsou vyvedeny nevyuˇzit´e GPIO piny na konektory K2 a K3. U lev´eho okraje DPS je JTAG konektor K4 slouˇz´ıc´ı k nahr´an´ı programu do MCU. Pod n´ım se nach´az´ı USB konektor K5. U prav´eho okraje DPS m˚ uˇzeme vidˇet ethernetov´ y konektor K6, kter´ y v sobˇe z´aroveˇ n obsahuje dvˇe signalizaˇcn´ı diody, lev´a (zelen´a) indikuje pˇr´ıtomnost spojen´ı s dalˇs´ım zaˇr´ızen´ım, prav´a (ˇzlut´a) sv´ ym blik´an´ım indikuje aktivitu spojen´ı, tzn. blik´a pokud jsou data pˇrij´ım´ana ˇci odes´ıl´ana. Nad nimi je um´ıstˇena LED3, kter´a signalizuje rychlost spojen´ı. Pokud sv´ıt´ı, maxim´aln´ı rychlost komunikace je 100Mb/s, v opaˇcn´em pˇr´ıpadˇe je maxim´aln´ı rychlost pouze 10Mb/s. Konektor K1 slouˇz´ı k nap´ajen´ı cel´eho modulu napˇet´ım v rozmez´ı 5V aˇz 18V. Modul je takt´eˇz moˇzno nap´ajet z USB konektoru (spojen´ım propojky JP1 pod konektorem), nebo z ethernetov´eho konektoru (spojen´ım propojky JP2 nad konektorem). K restartov´an´ı MCU uˇzivatelem slouˇz´ı tlaˇc´ıtko TL1, pro restartov´an´ı PHY (IC2) je urˇceno tlaˇc´ıtko TL4. Tlaˇc´ıtkem TL3 je moˇzn´e uv´est
42
mikrokontroler po restartu do tzv. boot m´odu, kter´ y umoˇzn ˇuje nahr´at program do MCU prostˇrednictv´ım nˇekolika komunikaˇcn´ıch rozhran´ı popsan´ ych v [10]. V lev´e horn´ı ˇc´asti desky je pak uˇzivatelsk´e tlaˇc´ıtko TL3 a uˇzivatelsk´a LED dioda LED5, kter´e jsou pops´any v sekci 3.1.9 stejnˇe jako konektor K7. O indikaci pˇr´ıtomnosti stabilizovan´eho nap´ajec´ıho napˇet´ı 3,3 V se star´a LED1, kterou m˚ uˇzeme naj´ıt nad stabiliz´atorem IC3.
Obr. 3.19: Rozm´ıstˇen´ı souˇc´astek ve spodn´ı vrstvˇe ploˇsn´ ych spoj˚ u
(a) pro STM32F107
(b) pro STM32F2x7
Obr. 3.20: Konfigurace propojek SJ1 aˇz SJ3 pˇri pohledu na spodn´ı stranu DPS
Rozm´ıstˇen´ı souˇca´stek pˇri pohledu na spodn´ı stranu desky zn´azorˇ nuje obr. 3.19. Zde jsou nejd˚ uleˇzitˇejˇs´ım prvkem p´ajec´ı propojky SJ1 aˇz SJ5, kter´e se spojuj´ı kapkou c´ınu. Propojky SJ1, SJ2 a SJ3 slouˇz´ı k pˇrizp˚ usoben´ı nap´ajen´ı konkr´etn´ımu mikrokontroleru, tedy bud’ MCU STM32F107, nebo STM32F2x7 (novˇejˇs´ı ˇrada MCU). Odpov´ıdaj´ıc´ı konfiguraci propojek pro jednotliv´e MCU ukazuje obr. 3.20. Propojky SJ4 a SJ5 slouˇz´ı k testovac´ım u ´ˇcel˚ um, ale pro korektn´ı funkci cel´eho modulu a pˇredevˇs´ım
43
jeho komunikace prostˇrednictv´ım ethernetov´eho rozhran´ı musej´ı b´ yt vˇ zdy propojeny. Na obr. 3.19 jsou takt´eˇz vidˇet tˇri rezistory R27, R28 a R29, kter´e nejsou pops´any v kapitole 3. Nejedn´a se o rezistory v prav´em slova smyslu, ale jde pouze o 0Ω propojky v pouzdru 0805, kter´e slouˇz´ı ke zlepˇsen´ı rozvodu zemˇe na spodn´ı stranˇe DPS. Pouˇzity jsou v m´ıstech, kde nen´ı moˇzn´e takov´ y spoj v´est ani v horn´ı ani ve spodn´ı vrstvˇe ploˇsn´ ych spoj˚ u.
3.2.2
Rozloˇ zen´ı pin˚ u jednotliv´ ych konektor˚ u na DPS 1
2
GND
VCC
Tab. 3.3: Rozm´ıstˇen´ı pin˚ u nap´ajec´ıho konektoru K1 pˇri pohledu zprava
29
27
25
23
21
19
17
15
13
11
9
7
5
3
1
GND
PC9
PC7
PD15
PD13
PD11
PD9
PE15
PE13
PE11
PE9
PE7
PA6
PA4
3,3V
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
GND
GND
PC8
PC6
PD14
PD12
PD10
PD8
PE14
PE12
PE10
PE8
PB2
PA5
3,3V
Tab. 3.4: Rozm´ıstˇen´ı pin˚ u konektoru K2 pˇri pohledu shora
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
3,3V
PA10
PC11
PD0
PD2
PD4
PD6
PB5
PB7
PE0
PE2
PE4
PE6
PC0
GND
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
3,3V
PA9
PC10
PC12
PD1
PD3
PD5
PD7
PB6
PB9
PE1
PE3
PE5
PC13
GND
Tab. 3.5: Rozm´ıstˇen´ı pin˚ u konektoru K3 pˇri pohledu shora
44
19
17
15
13
11
9
7
5
3
1
P-D
P-D
MCU RST
JTDO
P-D
JTCK
JTMS
JTDI
JTRST
3,3V
20
18
16
14
12
10
8
6
4
2
GND
GND
GND
GND
GND
GND
GND
GND
GND
3,3V
Tab. 3.6: Rozm´ıstˇen´ı pin˚ u JTAG konektoru K4 pˇri pohledu zleva 4
3
GND
3,3V
2
1
PB15
PB14
Tab. 3.7: Rozm´ıstˇen´ı pin˚ u konektoru K7 pˇri pohledu shora
3.3
Popis demonstraˇ cn´ıho programu pro PC
Pro demonstraci moˇznost´ı synchronn´ıho sbˇeru dat pomoc´ı zde popisovan´eho modulu vznikl jednoduch´ y (konzolov´ y) program napsan´ y v jazyku C# umoˇzn ˇuj´ıc´ı naˇc´ıtat data z modulu (resp. nˇekolika modul˚ u z´aroveˇ n) a n´aslednˇe je ukl´adat jako jednoduch´ y textov´ y soubor ve form´atu Comma-Separated Values (CSV). Naˇc´ıtaj´ı se data z AD pˇrevodn´ıku MCU a spolu s pˇresnou ˇcasovou znaˇckou okamˇziku, kdy byla hodnota namˇeˇrena, jsou posl´eze uloˇzena do souboru. Takto vznikl´ y soubor je R a d´ moˇzn´e naˇc´ıst napˇr´ıklad v programu Matlab od spoleˇcnosti MathWorks ale s nimi pracovat. Je tak napˇr´ıklad moˇzn´e pomoc´ı dvou modul˚ u zmˇeˇrit stejn´ y pr˚ ubˇeh napˇet´ı a oba sign´aly pot´e porovnat a zjistit ˇcasov´ y posun mezi nimi. D˚ uvodem, kter´ y mˇe vedl k volbˇe pr´avˇe takov´ehoto ˇreˇsen´ı, je fakt, ˇze data ve form´atu CSV dok´azˇe kromˇe programu Matlab zpracov´avat tak´e vˇetˇsina tabulkov´ ych TM procesor˚ u (napˇr. Microsoft Excel nebo OpenOffice.org Calc), a v´ ysledn´e soubory jsou snadno ˇciteln´e i pro bˇeˇzn´eho ˇclovˇeka, pokud je otevˇre v textov´em editoru. Program poskytuje tak´e moˇznost poˇc´ıtat okamˇzit´ y v´ ykon pˇripojen´e z´atˇeˇze za pouˇzit´ı dvou mˇeˇr´ıc´ıch modul˚ u, kdy jeden modul mˇeˇr´ı okamˇzit´e napˇet´ı a druh´ y mˇeˇr´ı u ´bytek napˇet´ı na rezistoru s´eriovˇe zapojen´em mezi zdroj a z´atˇeˇz. Tento u ´bytek napˇet´ı odpov´ıd´a proudu prot´ekaj´ıc´ımu z´atˇeˇz´ı. Z obou namˇeˇren´ ych hodnot pot´e vypoˇc´ıt´a okamˇzit´ y v´ ykon a uloˇz´ı jej do souboru ve form´atu CSV. Obr´azek 3.21 ukazuje sch´ema slouˇz´ıc´ı k demonstraci nˇekter´ ych moˇznost´ı aplikace zde popisovan´eho podulu pˇri pouˇzit´ı s uk´azkov´ ym programem. Z´atˇeˇz zde pˇredstavuje
45
Obr. 3.21: Zapojen´ı demonstraˇcn´ı aplikace rezistor Rz, na kter´em mˇeˇr´ı modul 2 okamˇzit´e napˇet´ı. Rezistor Rs pˇredstavuje 1Ω sn´ımac´ı rezistor slouˇz´ıc´ı k mˇeˇren´ı prot´ekaj´ıc´ıho proudu. V pˇr´ıpadˇe, ˇze je pˇrekroˇcen uˇzivatelem nastaven´ y maxim´aln´ı proud, rozepne modul 1 prostˇrednictv´ım tranzistoru T1 kontakty rel´e RE1 a dojde k odpojen´ı zdroje od z´atˇeˇze. Pokud proud z´atˇeˇz´ı (nebo napˇet´ı na z´atˇeˇzi) pˇrekroˇc´ı uˇzivatelem zadanou mez, je posl´ano mˇeˇr´ıc´ımu modulu znamen´ı, na jehoˇz z´akladˇe modul provede zadanou ˇcinnost, tedy napˇr´ıklad odpoj´ı z´atˇeˇz od zdroje. T´ımto zp˚ usobem je moˇzn´e napˇr´ıklad chr´an´ıt zdroj proti dlouhodob´emu zkratu nebo naopak z´atˇeˇz proti zniˇcen´ı v d˚ usledku pˇrehˇra´t´ı. Komunikace modulu s PC prob´ıh´a prostˇrednictv´ım rozhran´ı Ethernet, pomoc´ı protokolu User Datagram Protocol (UDP) na portu 23. Tento protokol byl vyuˇzit proto, ˇze pˇri jeho pouˇzit´ı dosahuje modul vyˇsˇs´ı pˇrenosov´e rychlosti v d˚ usledku niˇzˇs´ı z´atˇeˇze procesoru spojen´e s komunikac´ı oprtoti protokolu Transmission Control Protocol (TCP). Port 23 je p˚ uvodnˇe urˇcen sluˇzbˇe telnet11 , pomoc´ı kter´e je takt´eˇz moˇzn´e se k modulu pˇripojit a komunikovat s n´ım stejnˇe jako s n´ım komunikuje zde popisovan´ y ovl´adac´ı program. 11
Popis protokolu a dalˇs´ı uˇziteˇcn´e informace je moˇzn´e nal´ezt na webov´ ych str´ank´ach http://www.telnet.org/.
46
3.3.1
Uk´ azka pouˇ zit´ı programu
Na obr. 3.22 m˚ uˇzeme vidˇet v´ ystup uk´azkov´eho programu pro PC. Nejprve si ze souboru modules.ip naˇcte seznam IP adres vˇsech modul˚ u, n´aslednˇe zobraz´ı informaˇcn´ı zpr´avy z modul˚ u a d´ale pokraˇcuje ukl´ad´an´ım namˇeˇren´ ych dat do textov´ ych soubor˚ u dataSetN, kde N odpov´ıd´a poˇradov´emu ˇc´ıslu modulu, kter´e odpov´ıd´a poˇrad´ı modul˚ u v textov´em souboru s jejich IP adresami.
Obr. 3.22: Uk´azka demonstraˇcn´ıho programu pro PC
Programu je moˇzn´e z konzole zadat tˇri parametry: poˇzadovan´ y poˇcet mˇeˇren´ı, maxim´aln´ı pˇr´ıpustn´ y proud prot´ekaj´ıc´ı z´atˇeˇz´ı (v mA) a parametr urˇcuj´ıc´ı zda se m´a vypoˇc´ıtat i okamˇzit´ y v´ ykon. Prvn´ı dva parametry jsou povinn´e, tˇret´ı je moˇzn´e vynechat. Pokud je zad´an i tˇret´ı parametr, program vypoˇc´ıt´a okamˇzit´e v´ ykony v dan´ ych ˇcasech a uloˇz´ı je do souboru vykony.txt takt´eˇz ve form´atu CSV. Graf na obr. 3.23 ukazuje vizualizaci namˇeˇren´ ych dat pro pˇr´ıpad, kdy oba moduly mˇeˇr´ı stejn´ y sign´al. Zvlnˇen´ı, kter´e je moˇzn´e vidˇet na maximech a minimech pr˚ ubˇeh˚ u, je zp˚ usobeno chybou AD pˇrevodn´ıku MCU.
47
Obr. 3.23: Zobrazen´ı jednoho sign´alu mˇeˇren´eho obˇema moduly souˇcasnˇe
48
4
ˇ REN ˇ ´ PARAMETRY MODULU NAME E
Tato kapitola obsahuje ˇzmˇeˇren´e parametry modulu, jak´ ymi je napˇr´ıklad odbˇer proudu, maxim´aln´ı rychlost komunikace nebo pˇresnost ˇcasov´e synchronizace v nˇekolika modelov´ ych situac´ıch. Namˇeˇren´e hodnoty jsou pˇrehlednˇe zaps´any v tabulk´ach (tab. 4.1 aˇz tab. 4.4) pro snadnou orientaci a moˇznost porovn´an´ı hodnot. Veˇsker´e u ´daje byly namˇeˇreny pˇri nap´ajec´ım napˇet´ı 9 V a MCU s taktem 72MHz. stav stand-by reˇzim aktivn´ı (pozastaven)
odbˇ er [mA] 7,0 13,2
aktivn´ı (pozastaven)
59,4
aktivn´ı (bˇeˇz´ı)
135,8
aktivn´ı (bˇeˇz´ı)
218,6
podm´ınky MCU i PHY v stand-by m´odu vypnuty veˇsker´e periferie, pozastaveno vykon´av´an´ı programu zapnut´ y Ethernet (MAC i PHY), USB, USART, ˇcasovaˇce, GPIO, pozastaveno vykon´av´an´ı programu zapnut´ y Ethernet (MAC i PHY), USB, USART, ˇcasovaˇce, GPIO, program pouze blik´a LED diodou a synchronizuje ˇcas modulu s referenˇcn´ım zdrojem ˇcasu zapnut´ y Ethernet (MAC i PHY), USB, USART, ˇcasovaˇce, GPIO, program synchronizuje ˇcas modulu s referenˇcn´ım zdrojem ˇcasu a pomoc´ı PC jsou vyˇc´ıt´any hodnoty z ADC (pˇres Ethernet)
Tab. 4.1: Namˇeˇren´e hodnoty odbˇeru proudu
49
druh pˇ renosu pˇr´ıjem dat (UDP)
max. rychlost [MB/s] 3,2
odes´ıl´an´ı dat (UDP)
5,7
pˇr´ıjem dat (TCP)
2,4
odes´ıl´an´ı dat (TCP)
3,0
podm´ınky pˇr´ıjem dat prostˇrednictv´ım protokolu UDP odes´ıl´an´ı dat prostˇrednictv´ım protokolu UDP pˇr´ıjem dat prostˇrednictv´ım protokolu TCP odes´ıl´an´ı dat prostˇrednictv´ım protokolu TCP
Tab. 4.2: Maxmim´aln´ı pˇrenosov´e rychlosti rozhran´ı Ethernet
50
situace pˇr´ım´e propojen´ı
max. namˇ eˇ ren´ a/pr˚ umˇ ern´ a odchylka [µs] 0,78/0,15
propojen´ı pˇres pˇrep´ınaˇc (switch)
1,03/0,53
propojen´ı pˇres dva pˇrep´ınaˇce (2x switch)
2,33/0,61
propojen´ı pˇres pˇrep´ınaˇc k PC
2,15/0,63
zapojen´ı dva moduly byly propojeny kˇr´ıˇzen´ ym kabelem (modul 1 ↔ modul 2), modul 1 pˇredstavoval zdroj referenˇcn´ıho ˇcasu dva moduly byly spojeny prostˇrednictv´ım pˇrep´ınaˇce (modul 1 ↔ switch ↔ modul 2), modul 1 pˇredstavoval zdroj referenˇcn´ıho ˇcasu dva moduly byly spojeny prostˇrednictv´ım dvou pˇrep´ınaˇc˚ u (modul 1 ↔ switch ↔ switch ↔ modul 2) , modul 1 pˇredstavoval zdroj referenˇcn´ıho ˇcasu dva moduly byly spojeny prostˇrednictv´ım pˇrep´ınaˇce s PC (2x modul ↔ switch ↔ PC) , PC pˇredstavoval zdroj referenˇcn´ıho ˇcasu
Tab. 4.3: Odchylky od referenˇcn´ıho ˇcasu (nezat´ıˇzen´a s´ıt’)
51
situace pˇr´ım´e propojen´ı
max. namˇ eˇ ren´ a/pr˚ umˇ ern´ a odchylka [µs] 3,71/0,33
pˇres pˇrep´ınaˇc (switch)
9,47/0,81
pˇres dva pˇrep´ınaˇce (2x switch)
15,22/0,88
pˇres pˇrep´ınaˇc k PC
3,17/0,60
zapojen´ı dva moduly byly propojeny kˇr´ıˇzen´ ym kabelem (modul 1 ↔ modul 2), modul 1 pˇredstavoval zdroj referenˇcn´ıho ˇcasu, moduly stˇr´ıdavˇe pˇrij´ımaly a vys´ılaly bloky dat o velikosti 5kB dva moduly byly spojeny prostˇrednictv´ım pˇrep´ınaˇce (modul 1 ↔ switch ↔ modul 2), modul 1 pˇredstavoval zdroj referenˇcn´ıho ˇcasu dva moduly byly spojeny prostˇrednictv´ım dvou pˇrep´ınaˇc˚ u (modul 1 ↔ switch ↔ switch ↔ modul 2) , modul 1 pˇredstavoval zdroj referenˇcn´ıho ˇcasu dva moduly byly spojeny prostˇrednictv´ım pˇrep´ınaˇce s PC (2x modul ↔ switch ↔ PC) , PC pˇredstavoval zdroj referenˇcn´ıho ˇcasu
Tab. 4.4: Odchylky od referenˇcn´ıho ˇcasu (s´ıt’ vyt´ıˇzen´a na 50%)
52
´ ER ˇ ZAV
5
C´ılem bakal´aˇrsk´e pr´ace bylo navrhnout modul pro synchronn´ı sbˇer dat a ˇr´ızen´ı, postaven´ y na 32-bitov´em ARM MCU. Pro modul bylo definov´ano n´asleduj´ıc´ı zad´an´ı: • mikrokontroler z ˇrady STM32 • implementace rozhran´ı Ethernet • implementace TCP/IP protokolu s vyuˇz´ıt´ım lwIP stack • implementace protokolu PTP • n´avrh, v´ yroba a osazen´ı DPS • vytvoˇren´ı programov´eho vybaven´ı pro PC • sestaven´ı jednoduch´eho syst´emu synchronn´ıho sbˇeru dat a ovl´ad´an´ı akˇcn´ıch ˇclen˚ u Pˇri ˇreˇsen´ı bakal´aˇrsk´e pr´ace bylo dosaˇzeno n´asleduj´ıc´ıch v´ ysledk˚ u. Po analyzov´an´ı poˇzadavk˚ u zad´an´ı byl zvolen jako nejl´epe vyhovuj´ıc´ı mikrokontroler STM32F107 z ˇrady STM32, kter´ y disponuje ethernetovou MAC vrstvou a dostateˇcn´ ym v´ ypoˇcetn´ım v´ ykonem. Jako fyzick´a vrstva byl pouˇzit ˇcip ST802RT1, kter´ y obsahuje standardizovan´e komunikaˇcn´ı rozhran´ı MII slouˇz´ıc´ı k propojen´ı MCU a PHY. Toto ˇreˇsen´ı poskytuje plnou implementaci rozhran´ı Ethernet s teoretickou maxim´aln´ı pˇrenosovou rychlost´ı 100Mb/s. Komunikaci prostˇrednictv´ım rozhran´ı Ethernet vyuˇz´ıvaj´ıc´ı protokol TCP/IP zajiˇst’uje lwIP stack1 , coˇz je subprogram zajiˇst’uj´ıc´ı korektn´ı implementaci TCP a UDP protokolu pˇri pomˇernˇe skromn´ ych n´aroc´ıch na v´ ypoˇcetn´ı v´ ykon a operaˇcn´ı pamˇet’ MCU. Zde byla s v´ yhodou vyuˇzita jiˇz existuj´ıc´ı implementace lwIP pro mikrokontrolery z ˇrady STM32, kterou poskytuje firma ST Microelectronics na sv´ ych webov´ ych str´ank´ach (www.st.com). D´ıky tomuto vstˇr´ıcn´emu kroku v´ yrobce jsem uˇsetˇril cenn´ y ˇcas, kter´ y jsem mohl vˇenovat dalˇs´ımu v´ yvoji a zdokonalov´an´ı zde popisovan´eho modulu. K synchronizaci ˇcasu prostˇrednictv´ım rozhran´ı Ethernet slouˇz´ı protokol PTP definovan´ y normou IEEE-1588. Ten byl implementov´an s vyuˇzit´ım zdrojov´ ych k´od˚ u 2 PTP serveru , kter´ y byl p˚ uvodnˇe naps´an pro operaˇcn´ı syst´em linux, ale d´ıky dobr´e 1
Bliˇzˇs´ı informace je moˇzn´e nal´ezt na webov´ ych str´ank´ach v´ yvoj´aˇr˚ u: http://www.sics.se/ adam/lwip/. 2 Dokumentaci a zdrojov´e k´ ody PTP serveru ptpd je moˇzn´e naj´ı na webov´ ych str´ank´ach: http://ptpd.sourceforge.net/.
53
dokumentaci a dostateˇcnˇe komentovan´emu k´odu bylo pomˇernˇe snadn´e se ve zdro´ jov´ ych souborech orientovat. Uprava spoˇc´ıvala pˇredevˇs´ım v pˇreps´an´ı tˇech ˇc´ast´ı k´odu, kde byly vyuˇz´ıv´any funkce a rozhran´ı OS linux. T´ımto zp˚ usobem bylo moˇzn´e implementovat protokol PTP verze 1 a s mal´ ymi zmˇenami i verze 2. V r´amci t´eto pr´ace byl navrˇzena dvouvrstv´a deska ploˇsn´ ych spoj˚ u, jej´ıˇz v´ yrobu obstarala firma PragoBoard s.r.o. Desku jsem n´aslednˇe osadil, oˇzivil a na takto vzniknuvˇs´ım modulu jsem ovˇeˇril spr´avnost m´eho n´avrhu. Obsluˇzn´ y program pro PC je napsan´ y v jazyku C#, kter´ y poskytuje program´atorovi jednoduch´e a snadno pochopiteln´e prostˇred´ı pro pr´aci se s´ıt´ı a vl´akny, coˇz jsou dvˇe kl´ıˇcov´e oblasti, kter´e program pro synchronn´ı sbˇer dat z modul˚ u vyˇzaduje. D´ıky tomu je moˇzn´e naˇc´ıtat data z velk´eho mnoˇzstv´ı modul˚ u najednou a z´aroveˇ n je ukl´adat do soubor˚ u ve form´atu CSV. Tento form´at je jednak snadno ˇciteln´ y i pro bˇeˇzn´eho uˇz´ıvatele, ale tak´e je pˇredevˇs´ım d´ıky sv´e popularitˇe podporov´an mnoh´ ymi tabulkov´ ymi procesory a dalˇs´ımi n´astroji pro zpracov´an´ı dat (napˇr. Matlab nebo FreeMat). K demonstrov´an´ı nˇekter´ ych moˇznost´ı popsan´eho mˇeˇr´ıc´ıho modulu slouˇz´ı modelov´ y pˇr´ıklad, kter´ y kombinuje vˇsechny v´ yˇse popsan´e vlastnosti do jednoho funkˇcn´ıho celku. Pomoc´ı dvou modul˚ u je mˇeˇreno napˇet´ı a proud tekouc´ı z´atˇeˇz´ı, ze kter´ ych je v PC poˇc´ıt´an okamˇzit´ y v´ ykon z´atˇeˇze a pˇri pˇrekroˇcen´ı uˇzivatelem stanoven´e meze je vysl´an mˇeˇr´ıc´ım modul˚ um sign´al k odpojen´ı z´atˇeˇze (rozpojen´ı kontakt˚ u rel´e, stykaˇce), ˇc´ımˇz je v praxi moˇzn´e napˇr´ıklad chr´anit spotˇrebiˇc pˇred pˇret´ıˇzen´ım. V´ yˇse popsan´ y distribuovan´ y syst´em je schopen synchronizovat syst´emov´ y ˇcas vˇsech zaˇr´ızen´ı v s´ıt´ı podporuj´ıc´ıch protokol PTP (tedy napˇr´ıklad i PC se spuˇstˇen´ ym PTP serverem ptpd ) s pˇresnost´ı na 1 aˇz 20 mikrosekund (dle vyt´ıˇzen´ı a struktory s´ıtˇe). T´eto u ´rovnˇe synchronizace je moˇzno dos´ahnout na bˇeˇznˇe dostupn´em s´ıt’ov´em hardwaru. Pˇri pouˇzit´ı speci´aln´ıch switch˚ u s rozˇs´ıˇrenou podporou protokolu PTP je moˇzno dos´ahnout pˇresnosti v ˇr´adu des´ıtek aˇz stovek nanosekund, nicm´enˇe takov´e ˇreˇsen´ı je pomˇernˇe n´akladn´e vzhledem k cenˇe tohoto specializovan´eho HW. Z v´ yˇse popsan´eho je patrn´e, ˇze se mi podaˇrilo splnit zad´an´ı bakal´aˇrsk´e pr´ace a c´ıl˚ u stanoven´ ych v u ´vodn´ı kapitole. Osobnˇe jsem se pˇri v´ yvoji tohoto modulu nauˇcil mnoho nov´eho a r´ad bych se problematice ˇcasov´e synchronizace r´ad vˇenoval i po dobu sv´eho dalˇs´ıho studia, nebot’ si mysl´ım, ˇze jde o pr´aci platnou, potˇrebnou a jiˇz dnes v mnoha (nejen) pr˚ umyslov´ ych oborech nezbytnou.
54
LITERATURA [1] Yiu J. The definitive guide to the ARM Cortex-M3 Elsevier, 2007, 357s, ISBN 978-0-7506-8534-4 [2] Sloss A., Symes D., Wright C. ARM System developers guide Elsevier, 2004, 695s, ISBN 1-55860-874-5 [3] Zurawski R. Networked embedded systems CRC Press, 2009, 828s, ISBN 9781-4398-0761-3 [4] David Tse, Pramod Viswanath Fundamentals of Wireless Communication Cambridge University Press, 2005, 554s, ISBN 978-0-5218-4527-4 [5] P. Marshall, J. Rinaldi Industrial Ethernet ISA, 2009, 124s, ISBN 978-1-55617892-4 [6] Ereth McKnight-MacNeil, B.Sc. CS-MNS: Analysis and Implementation Carleton University, 2010, 112s [7] ARM Limited Cortex-M3TM - Technical Reference Manual Publ. ARM DDI 0337B, 2006 [8] ST Microelectronics RM0008 - Reference manual Doc. ID 13902 Rev 11 [9] ST Microelectronics STM32F107 datasheet Doc ID 15274 Rev 5 [10] ST Microelectronics AN2606 Application note - STM32 microcontroller system memory boot mode Doc ID 13801 Rev 9 [11] ST Microelectronics ST802RT1 datasheet Doc ID 17049 Rev 1 [12] ST Microelectronics LF00 series datasheet [13] PulseJackTM J0 series datasheet J403.D (5/06) [14] Fairchild Semiconductor 1N4001 - 1N4007 General Purpose Rectifiers Rev. I40
55
˚ VELICIN ˇ SEZNAM SYMBOLU, A ZKRATEK ARM
Advanced RISC Machine
CAN
Controller Area Network
CPU
Central Processing Unit
CRC
Cyclic Redundancy Check
CSV
Comma-Separated Values
DPS
Deska Ploˇsn´ ych Spoj˚ u
FTSP
Flooding Time Synchronization Protocol
GPIO
General Purpose Input/Output
IEEE-1588 Institute of Electrical and Electronics Engineers IGMP
Internet Group Management Protocol
JTAG
Joint Test Action Group
LED
Light-Emitting Diode
MAC
Media Access Control
MCU
Mikrokontroler
MII
Media Independent Interface
NTP
Network Time Protocol
PC
Personal Computer
PCI
Peripheral Component Interconnect
PHY
Ethernet physical transceiver
PTP
Precision Time Protocol
PXI
PCI Extensions for Instrumentation
RBTS
Reference Broadcast Time Synchronization
RISC
Reduced Instruction Set Computer
RMII
Reduced Media Independent Interface
56
ROM
Read Only Memory
RTC
Real-Time Clock
SRAM
Static Random Access Memory
STM32
32-bitov´ y mikrokontroler s j´adrem ARM cortex-M3 od firmy ST Microelectronics
SWD
Serial Wire Debug
TCP
Transmission Control Protocol
UDP
User Datagram Protocol
USART
Universal synchronous/asynchronous receiver/transmitter
USB
Universal Serial Bus
UTP
Unshielded Twisted Pair
57
ˇ ´ILOH SEZNAM PR A V´ yrobn´ı podklady 59 A.1 N´avrh DPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 A.2 Sch´ema zapojen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 A.3 Rozm´ıstˇen´ı souˇc´astek na DPS . . . . . . . . . . . . . . . . . . . . . . 61 B Seznam souˇ c´ astek
62
C Pouˇ zit´ e n´ azvoslov´ı
65
58
A A.1
´ ´I PODKLADY VYROBN N´ avrh DPS
Obr. A.1: Vrstva TOP, mˇeˇr´ıtko 1:1
Obr. A.2: Vrstva BOT, mˇeˇr´ıtko 1:1
A.2
Sch´ ema zapojen´ı
59
A.3
Rozm´ıstˇ en´ı souˇ c´ astek na DPS
Obr. A.3: Rozm´ıstˇen´ı souˇc´astek ve vrsvˇe TOP, mˇeˇr´ıtko 1,2:1
Obr. A.4: Rozm´ıstˇen´ı souˇca´stek ve vrsvˇe BOT, mˇeˇr´ıtko 1,2:1
61
B
ˇ ASTEK ´ SEZNAM SOUC n´ azev
pouzdro
hodnota
R1
330Ω
0805
R2
47Ω
0805
R3
10kΩ
0805
R4
10kΩ
0805
R5
10kΩ
0805
R6
22Ω
0805
R7
22Ω
0805
R8
1,5kΩ
0805
R9
10kΩ
0805
R10
10kΩ
0805
R11
10kΩ
0805
R12
10kΩ
0805
R13
330Ω
0805
R14
10kΩ
0805
R15
10kΩ
0805
R16
5,6kΩ
0805
R17
91kΩ
0805
R18
49,9Ω ± 1%
0805
R19
49,9Ω ± 1%
0805
R20
49,9Ω ± 1%
0805
R21
49,9Ω ± 1%
0805
R22
330Ω
0805
R23
330Ω
0805
R24
330Ω
0805
R25
22kΩ
0805
R26
0Ω (propojka)
0805
R27
0Ω (propojka)
0805
R28
0Ω (propojka)
0805
R29
0Ω (propojka)
0805
C1
10µF/25V
A/3216-18W
C2
100nF/25V
0805
C3
100nF/25V
0805
62
n´ azev
hodnota
pouzdro
C4
10µF/25V
A/3216-18W
C5
100nF/25V
0805
C6
100nF/25V
0805
C7
100nF/25V
0805
C8
100nF/25V
0805
C9
2,2µF/10V (keramick´ y)
0805
C10
10nF/25V
0805
C11
10µF/16V
A/3216-18W
C12
10nF/25V
0805
C13
12pF/50V
0805
C14
12pF/50V
0805
C15
100nF/25V
0805
C16
10nF/25V
0805
C17
22pF/50V
0805
C18
22pF/50V
0805
C19
100nF/25V
0805
C20
100nF/25V
0805
C21
100nF/25V
0805
C22
100nF/25V
0805
C23
100nF/25V
0805
C24
100nF/25V
0805
C25
100nF/25V
0805
C26
100nF/25V
0805
C27
10nF/50V
0805
C28
10nF/50V
0805
C29
100nF/25V
0805
C30
2,2µF/10V (keramick´ y)
0805
L1
68nH/Imax =500mA (R=0,38Ω)
0805
L2
68nH/Imax =500mA (R=0,38Ω)
0805
L3
68nH/Imax =500mA (R=0,38Ω)
0805
L4
2,2µH/Imax =150mA (R=3,8Ω)
0805
63
n´ azev
pouzdro
hodnota
Q1
25MHz
HC49U
Q2
32 768Hz
TC26H
QG1
25MHz
CFPS-39
IC1
STM32F107VCT6
LQFP100
IC2
ST802RT1A
LQFP48
IC3
LF33CDT
TO252AA
D1
1N4007
DO214AA
LED1
zelen´a
0805
LED2
zelen´a
souˇc´ast K6
LED3
ˇcerven´a
0805
LED4
ˇzlut´a
LED5
oranˇzov´a
souˇc´ast K6 0805
K1
AK100 (dvoup´olov´ y)
RM = 5,0mm
K2
pinov´a liˇsta 30 pin˚ u, dvouˇrad´a
RM = 2,54mm
K3
pinov´a liˇsta 30 pin˚ u, dvouˇrad´a
RM = 2,54mm
K4
pinov´a liˇsta 20 pin˚ u, dvouˇrad´a
RM = 2,54mm
K5
USB B konektor
K6
J0006D2BNL
K7
pinov´a liˇsta 4 piny, dvouˇrad´a
RM = 2,54mm
JP1
pinov´a liˇsta 2 piny, jednoˇrad´a
RM = 2,54mm
JP2
pinov´a liˇsta 2 piny, jednoˇrad´a
RM = 2,54mm
SJ1
SMD p´ajec´ı propojka, 3 piny
souˇc´ast DPS
SJ2
SMD p´ajec´ı propojka, 2 piny
souˇc´ast DPS
SJ3
SMD p´ajec´ı propojka, 3 piny
souˇc´ast DPS
SJ4
SMD p´ajec´ı propojka, 2 piny
souˇc´ast DPS
SJ5
SMD p´ajec´ı propojka, 2 piny
souˇc´ast DPS
TL1
tlaˇc´ıtkov´ y sp´ınaˇc
B3F
TL2
tlaˇc´ıtkov´ y sp´ınaˇc
B3F
TL3
tlaˇc´ıtkov´ y sp´ınaˇc
B3F
TL4
tlaˇc´ıtkov´ y sp´ınaˇc
B3F
90◦ do DPS RJ45, 90◦ do DPS
64
C
ˇ E ´ NAZVOSLOV ´ ´I POUZIT
Teorie ˇcasov´e synchronizace s sebou nese znaˇcn´e mnoˇzstv´ı technick´ ych pojm˚ ua term´ın˚ u. Tato pˇr´ıloha poskytuje definici nˇekolika z´akladn´ıch pojm˚ u, ˇcten´aˇri by to mˇelo usnadnit porozumˇen´ı a pochopen´ı textu t´eto pr´ace. Pojmem master budu d´ale v textu oznaˇcovat mˇeˇr´ıc´ı modul, Personal Computer (PC) nebo jak´ekoliv jin´e zaˇr´ızen´ı, kter´e v dan´e aplikaci funguje jako ˇcasov´a reference, podle kter´e ostatn´ı zaˇr´ızen´ı v s´ıti synchronizuj´ı sv˚ uj vlastn´ı lok´aln´ı ˇcas. Oznaˇcen´ı slave bude pouˇzito pro mˇeˇr´ıc´ı modul, PC nebo jak´ekoliv jin´e zaˇr´ızen´ı, kter´e synchronizuje sv˚ uj vlastn´ı lok´aln´ı ˇcas podle referenˇcn´ıho master zaˇr´ızen´ı. Pojem jitter se v elektronice pouˇz´ıv´a pro oznaˇcen´ı neˇza´douc´ı odchylky jedn´e nebo v´ıce charakteristik zdroje hodinov´eho taktu od v´ yrobcem ud´avan´e hodnoty. V elektronice se term´ınem (frekvenˇcn´ı) drift oznaˇcuje neˇza´douc´ı jev, pˇri kter´em doch´az´ı k posunu frekvence zdroje periodick´eho sign´alu od jeho nomin´aln´ı hodnoty.
65