ˇ ´ vysoke ´ uc ˇen´ı technicke ´ v Praze Cesk e ´ Fakulta elektrotechnicka ˇ´ıdic´ı techniky Katedra r
´ PRACE ´ DIPLOMOVA D´ alkov´ eˇ r´ızen´ı modelu
Praha, 2005
Petr Muˇ z´ıˇ cek
Zad´ an´ı diplomov´ e pr´ ace Student: Petr Muˇz´ıˇcek Obor: Technick´a kybernetika N´ azev t´ ematu: D´alkov´e ˇr´ızen´ı modelu
Z´ asady pro vypracov´ an´ı: 1. Navrhnˇete uspoˇr´ad´an´ı ˇcidel modelu vozidla pro orientaci v rovinˇe. 2. Upravte model podle Vaˇseho n´avrhu. Pro pˇrenos ˇr´ıdic´ıch sign´al˚ u vyuˇzijte bezdr´atov´e spojen´ı. 3. Porovnejte moˇznosti ˇr´ıdic´ıch syst´emu pro ˇr´ızen´ı tohoto modelu. 4. Vybran´ ym ˇr´ıdic´ım syst´emem demonstrujte navrˇzen´ y algoritmus ˇr´ızen´ı pohybu modelu po zadan´e dr´aze.
Seznam odborn´ e literatury: Dod´a vedouc´ı pr´ace
Vedouc´ı diplomov´ e pr´ ace: doc.Ing.Jan B´ılek, CSc. Datum zad´ an´ı diplomov´ e pr´ ace: prosinec 2003 Datum odevzd´ an´ı diplomov´ e pr´ ace: kvˇeten 2003
II
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem svou diplomovou pr´aci vypracoval samostatnˇe a pouˇzil jsem pouze podklady (literaturu, projekty, SW atd.) uveden´e v pˇriloˇzen´em seznamu.
Nem´am z´avaˇzn´ y d˚ uvod proti uˇzit´ı tohoto ˇskoln´ıho d´ıla ve smyslu § 60 Z´akona ˇc.121/2000 Sb. , o pr´avu autorsk´em, o pr´avech souvisej´ıc´ıch s pr´avem autorsk´ ym a o zmˇenˇe nˇekter´ ych z´akon˚ u (autorsk´ y z´akon).
V Praze dne Petr Muˇz´ıˇcek
III
Podˇ ekov´ an´ı Dˇekuji pˇredevˇs´ım vedouc´ımu diplomov´e pr´ace Doc.Ing. Janu B´ılkovi CSc. za cenn´e rady, podnˇety a pˇripom´ınky. D´ale bych tak´e r´ad podˇekoval za cenn´e rady Ing. Pavlu R˚ uˇziˇckovi a Ing. Petru Jurˇc´ıkovi. D´ale m˚ uj vdˇek patˇr´ı vˇsem, kteˇr´ı mˇe pˇri pr´aci podporovali i jinak neˇz odborn´ ymi radami.
IV
Abstrakt V t´eto diplomov´e pr´aci je pops´an zp˚ usob ˇr´ızen´ı modelu auta poˇc´ıtaˇcem a mobiln´ım telefonem prostˇrednictv´ım bezdr´atov´e technologie Bluetooth a ˇr´ızen´ı pomoc´ı optick´ ych ˇcidel. V prv´em pˇr´ıpadˇe je model auta ˇr´ızen pokyny zaslan´ ymi z poˇc´ıtaˇce respektive z mobiln´ıho telefonu pˇres moduly Bluetooth, kter´e jsou k poˇc´ıtaˇci a k elektronice v autˇe pˇripojeny. Komunikace s tˇemito moduly je uskuteˇcnˇena pˇres s´eriov´e rozhran´ı. V druh´em pˇr´ıpadˇe je model ˇr´ızen mikroprocesorem na z´akladˇe sign´al˚ u pˇrijat´ ych z optick´ ych ˇcidel na podvozku auta. C´ılem pr´ace je ovˇeˇrit vyuˇzit´ı bezdr´atov´eho propojen´ı pro ˇr´ızen´ı objektu v re´aln´em ˇcase.
Abstract In this diploma thesis is beeing described the way of remote control of a car model by personal computer and by a mobile phone via wireless technology Bluetooth and optical sensors control. In the first case is the car model controlled by the instructions, which are sent from computer to microprocessor situated in the car model. Communication between computer and microprocessor is realised by two Bluetooth modules, which are connected to computer and microprocessor via serial interface. In the second case is the car model controlled by microprocessor based on the signals received from the optical senzors that are on car chassis. The goal of this diploma thesis is to verify wireless connection for the real-time control.
V
Obsah ´ 1 Uvod
1
2 D´ alkov´ eˇ r´ızen´ı 2.1 Moˇznosti bezdr´atov´e komunikace . . . . . . . . . . . 2.1.1 IEEE 802.11 . . . . . . . . . . . . . . . . . . . 2.1.2 IEEE 802.15 . . . . . . . . . . . . . . . . . . . 2.1.3 Srovn´an´ı . . . . . . . . . . . . . . . . . . . . . 2.1.4 Shrnut´ı . . . . . . . . . . . . . . . . . . . . . 2.2 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 R´adio specifikace . . . . . . . . . . . . . . . . 2.2.2 Baseband specifikace . . . . . . . . . . . . . . 2.2.2.1 Komunikaˇcn´ı jednotka Bluetooth . . 2.2.2.2 Pˇrenosov´ y kan´al . . . . . . . . . . . 2.2.2.3 Fyzick´e linky . . . . . . . . . . . . . 2.2.2.4 Pakety . . . . . . . . . . . . . . . . . 2.2.2.5 Logick´e kan´aly . . . . . . . . . . . . 2.2.2.6 Adresov´an´ı zaˇr´ızen´ı . . . . . . . . . . 2.2.2.7 Vys´ılac´ı a pˇrij´ımac´ı proces . . . . . . ˇ 2.2.2.8 Casov´ an´ı vys´ıl´an´ı a pˇr´ıjmu . . . . . . 2.2.2.9 Stavy zaˇr´ızen´ı a ˇr´ızen´ı kan´alu . . . . 2.2.2.10 Vytvoˇren´ı spojen´ı . . . . . . . . . . . 2.2.2.11 Reˇzimy zaˇr´ızen´ı ve stavu Connection 2.2.3 Link Manager Protocol . . . . . . . . . . . . . 2.2.4 HCI specifikace . . . . . . . . . . . . . . . . . 2.2.4.1 HCI pˇr´ıkazy . . . . . . . . . . . . . . 2.2.4.2 HCI ud´alosti . . . . . . . . . . . . . 2.2.4.3 HCI datov´e pakety . . . . . . . . . . 2.2.5 HCI RS232 transportn´ı vrstva . . . . . . . . . 2.2.6 L2CAP . . . . . . . . . . . . . . . . . . . . . 3 Realizace vzd´ alen´ eho ˇ r´ızen´ı 3.1 Modely aut . . . . . . . . . . . . 3.1.1 Model auta pro DP . . . . 3.1.1.1 Potˇrebn´e u ´pravy 3.1.1.2 Mikroprocesor . VI
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
2 2 3 5 7 10 11 11 12 13 14 14 15 17 17 17 18 20 20 20 21 21 23 27 29 30 31
. . . .
32 33 33 33 34
3.2
3.1.1.3 Bluetooth modul . . . . 3.1.1.4 Akˇcn´ı ˇclen - servomotor 3.1.1.5 Akˇcn´ı ˇclen - ss motor . . 3.1.1.6 A/D pˇrevodn´ık . . . . . 3.1.1.7 DC-DC mˇeniˇc . . . . . . 3.1.1.8 Optick´a ˇcidla . . . . . . 3.1.1.9 V´ ysledn´a deska ploˇsn´ ych 3.1.2 Model auta pro BTRC . . . . . . ˇ ıdic´ı syst´em . . . . . . . . . . . . . . . R´ 3.2.1 PC s Bluetooth modulem . . . . 3.2.2 Mobiln´ı telefon . . . . . . . . . .
4 Softwarov´ eˇ reˇ sen´ı vzd´ alen´ eho ˇ r´ızen´ı 4.1 Komunikaˇcn´ı protokol . . . . . . . . . 4.2 Mikroprocesor PIC . . . . . . . . . . . 4.2.1 Pamˇet’ov´a organizace procesoru 4.2.2 Komunikace pˇres RS232 . . . . 4.2.3 Pˇreruˇsen´ı . . . . . . . . . . . . 4.2.4 A/D pˇrevodn´ık . . . . . . . . . ˇ 4.2.5 Casovaˇ c a PWM . . . . . . . . 4.2.6 Struktura programu pro DP . . 4.2.7 Struktura programu pro BTRC 4.2.8 Oˇsetˇren´ı chybov´ ych stav˚ u . . . 4.3 Poˇc´ıtaˇc . . . . . . . . . . . . . . . . . . 4.3.1 Pr´ace s programem . . . . . . . 4.3.2 Komunikace s modelem auta . . 4.3.3 Oˇsetˇren´ı chybov´ ych stav˚ u . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . spoj˚ u . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . .
35 37 39 40 41 42 44 45 47 47 47
. . . . . . . . . . . . . .
49 49 51 51 52 54 54 56 57 60 61 62 63 64 66
5 Z´ avˇ er
67
Literatura
67
A Struktura pˇ riloˇ zen´ eho CD ROM
69
B Realizace v´ ysledn´ e desky
70
C Komunikace RS232
72
VII
Seznam obr´ azk˚ u 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15
Funkˇcn´ı bloky v syst´emu Bluetooth . . . . . . . . . . . . . . . . . Point-to-point (a), Piconet (b), Scatternet (c) . . . . . . . . . . . TDD sch´ema a ˇcasov´an´ı . . . . . . . . . . . . . . . . . . . . . . . Multi-slot pakety . . . . . . . . . . . . . . . . . . . . . . . . . . . Form´at standardn´ıho paketu . . . . . . . . . . . . . . . . . . . . . Fuknˇcn´ı diagram vys´ıl´an´ı . . . . . . . . . . . . . . . . . . . . . . . Cyklus TX a RX z pohledu Mastera . . . . . . . . . . . . . . . . Komunikace Mastera s v´ıce Slave . . . . . . . . . . . . . . . . . . Pˇrehled niˇzˇs´ıch softwarov´ ych vrstev . . . . . . . . . . . . . . . . . Pˇrehled niˇzˇs´ıch softwarov´ ych vrstev vzhledem k pˇrenosu informace Stavba paketu HCI pˇr´ıkazu . . . . . . . . . . . . . . . . . . . . . Stavba paketu HCI ud´alosti . . . . . . . . . . . . . . . . . . . . . HCI ACL datov´ y paket . . . . . . . . . . . . . . . . . . . . . . . . HCI RS232 transportn´ı vrstva . . . . . . . . . . . . . . . . . . . . L2CAP v architektuˇre Bluetooth protokolu . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
13 13 14 15 16 18 19 19 22 22 23 28 30 30 31
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
Soustava bezdr´atov´eho ˇr´ızen´ı . . . . . . . . . . . ˇ ızen´ı pomoc´ı ˇcidel . . . . . . . . . . . . . . . . R´ Model auta pro DP . . . . . . . . . . . . . . . . Sch´ema elektroniky . . . . . . . . . . . . . . . . Mikroprocesor PIC 16F874 . . . . . . . . . . . . Bluetooth modul v modelu auta . . . . . . . . . Sch´ema 74LVX245 . . . . . . . . . . . . . . . . Servomotor . . . . . . . . . . . . . . . . . . . . ˇ Casov´ e pr˚ ubˇehy PWM pro servomotor . . . . . Zp˚ usob pˇripojen´ı serva k pˇredn´ı n´apravˇe . . . . Sch´ema zapojen´ı H-m˚ ustku pro ˇr´ızen´ı ss motoru Diferenˇcn´ı zesilovaˇc a), napˇet’ov´ y sledovaˇc b) . . Integrovan´ y obvod NE5532 . . . . . . . . . . . . Sch´ema zapojen´ı obvodu dc-dc . . . . . . . . . . Optick´e ˇcidlo CNY70 . . . . . . . . . . . . . . . Funkce ˇcidla CNY70 . . . . . . . . . . . . . . . Moˇznosti orientace v rovinˇe . . . . . . . . . . . Sch´ema zapojen´ı optick´ ych ˇcidel . . . . . . . . . V´ ysledn´a deska . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
32 32 33 34 34 35 37 38 38 39 40 41 41 42 42 43 43 44 45
VIII
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
3.20 3.21 3.22 3.23
Model auta pro BTRC . . . . . . . . Blokov´e sch´ema pˇr´ıdavn´e elektroniky Sch´ema ˇr´ıdic´ıho syst´emu . . . . . . . Mobiln´ı telefon Nokia 6600 . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15
Zjednoduˇsen´e sch´ema komunikace mezi PC a modelem . . . . . . . . Sch´ema 1 komunikaˇcn´ıho cyklu . . . . . . . . . . . . . . . . . . . . . Zjednoduˇsen´e sch´ema komunikace mezi telefonem a modelem . . . . . Program´ator PIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Blokov´e sch´ema A/D pˇrevodn´ıku . . . . . . . . . . . . . . . . . . . . Blokov´e sch´ema programu pro PIC . . . . . . . . . . . . . . . . . . . Sch´ema komunikace mezi procesorem a Bluetooth modulem . . . . . . Struktura programu pro BTRC . . . . . . . . . . . . . . . . . . . . . Sch´ema komunikace mezi procesorem a Bluetooth modulem . . . . . . Hlavn´ı okno aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . Informace o pˇripojen´em (a) a vzd´alen´em (b) Bluetooth modulu . . . Informace o nalezen´ ych Slave zaˇr´ızen´ıch . . . . . . . . . . . . . . . . . Okno ovl´ad´an´ı modelu auta . . . . . . . . . . . . . . . . . . . . . . . Informace o napˇet´ı akumul´ator˚ u, stavu optick´ ych ˇcidel a kvality spojen´ı Informace o odeslan´ ych a pˇrijat´ ych paketech . . . . . . . . . . . . . .
46 46 47 48 50 50 51 51 55 57 59 60 61 63 64 64 65 65 66
A.1 Sch´ema zapojen´ı elektroniky pro DP . . . . . . . . . . . . . . . . . . 69 B.1 Sch´ema zapojen´ı elektroniky pro DP . . . . . . . . . . . . . . . . . . 70 B.2 Rozm´ıstˇen´ı souˇc´astek . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 B.3 Sch´ema zapojen´ı pˇr´ıdavn´e elektroniky pro BTRC . . . . . . . . . . . 71
IX
Seznam tabulek 2.1 2.2 2.3 2.4 2.5 2.6
Porovn´an´ı rychlost´ı s´ıt´ı WPAN a WLAN . . . . . . . Porovn´an´ı pˇrenosov´ ych rychlost´ı ZigBee a Bluetooth . Obecn´e porovn´an´ı Wi-Fi, ZigBee a Bluetooth . . . . Porovn´an´ı ZigBee a Bluetooth . . . . . . . . . . . . . V´ ykonov´e tˇr´ıdy Bluetooth . . . . . . . . . . . . . . . Identifik´atory HCI paket˚ u pˇri komunikaci pˇres RS232
3.1 3.2 3.3
Popis pouˇzit´ ych pin˚ u mikroprocesoru PIC . . . . . . . . . . . . . . . 36 Popis pin˚ u pouˇzit´eho modulu Bluetooth . . . . . . . . . . . . . . . . 36 Popis pin˚ u pˇrevodn´ıku 74LVX245 . . . . . . . . . . . . . . . . . . . . 37
4.1 4.2
V´ ybˇer banky v registru Status . . . . . . . . . . . . . . . . . . . . . . 52 Nastaven´ı pˇreddˇeliˇcky ˇcasovaˇce procesoru . . . . . . . . . . . . . . . . 56
X
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. 3 . 7 . 8 . 8 . 12 . 30
Kapitola 1 ´ Uvod Bezdr´atov´a komunikace je v dneˇsn´ı dobˇe velmi pouˇz´ıvan´ y zp˚ usob pro ovl´ad´an´ı a komunikaci r˚ uzn´ ych zaˇr´ızen´ı i technologick´ ych proces˚ u. V t´eto diplomov´e pr´aci jsou pops´any dva z moˇzn´ ych zp˚ usob˚ u realizace bezdr´atov´e komunikace. Prvn´ım zp˚ usobem je bezdr´atov´a komunikace osobn´ıho poˇc´ıtaˇce s mikroprocesorem. Byl poˇr´ızen RC model automobilu, kter´ y zvl´adal j´ızdu maxim´aln´ı rychlost´ı vpˇred, vzad a zat´aˇcet jednopolohovˇe vlevo a vpravo. Model byl upraven tak, aby zvl´adal na z´akladˇe pokyn˚ u proporcion´aln´ı ˇr´ızen´ı. Pˇrid´an byl modul Bluetooth firmy Siemens (SieMo), mikroprocesor PIC firmy Microchip a dalˇs´ı elektronika potˇrebn´a ke komunikaci modulu s mikroprocesorem a k samotn´emu ˇr´ızen´ı modelu. Jako ˇr´ıdic´ı syst´em slouˇz´ı SW v poˇc´ıtaˇci, kter´ y je pˇres rozhran´ı RS232 pˇripojen k druh´emu Bluetooth modulu. Takto bylo zrealizov´ano bezdr´atov´e ˇr´ızen´ı modelu. Kromˇe ˇr´ızen´ı z poˇc´ıtaˇce je model jeˇstˇe moˇzn´e ˇr´ıdit nez´avisle na ˇr´ıdic´ım syst´emu. K tomuto je vybaven optick´ ymi ˇcidly pˇripevnˇen´ ymi k pˇredn´ı ˇc´asti podvozku. Model auta se pak pohybuje na z´akladˇe sign´alu z tˇechto ˇcidel. Uˇzivatelsk´ y SW v PC umoˇzn ˇuje pˇrep´ın´an´ı mezi tˇemito zp˚ usoby ˇr´ızen´ı (poˇc´ıtaˇcem nebo ˇcidly). Existence spojen´ı mezi modelem a poˇc´ıtaˇcem je ovˇeˇrov´ana pravideln´ ym zas´ıl´an´ım paketu obsahuj´ıc´ıho informaci o napˇet´ı nab´ıjec´ıch akumul´ator˚ u v modelu auta a stavu optick´ ych ˇcidel. Druh´ ym zp˚ usobem je komunikace mobiln´ıho telefonu s mikroprocesorem. Tento zp˚ usob ˇr´ızen´ı byl realizov´an v r´amci projektu “Bluetooth Remote Control” pro V´ yzkumn´e a v´ yvojov´e centrum v Praze (www.rdc.cz). Pro tento projekt byl poˇr´ızen jin´ y model auta. D˚ uleˇzit´a je pˇredevˇs´ım SW ˇc´ast, jej´ıˇz popis n´asleduje vˇzdy po popisu samotn´e diplomov´e pr´ace. Text je rozdˇelen do tˇr´ı kapitol, kter´e pojedn´avaj´ı o moˇzn´ ych zp˚ usobech bezdr´atov´e komunikace, realizaci zvolen´e technologie na modelu auta, n´avrhu a realizaci ˇr´ıdic´ıho syst´emu a posledn´ı kapitola o softwarov´em ˇreˇsen´ı obou projekt˚ u.
1
Kapitola 2 D´ alkov´ eˇ r´ızen´ı 2.1
Moˇ znosti bezdr´ atov´ e komunikace
Dneˇsn´ı poˇc´ıtaˇcov´ y svˇet je doslova pˇrehlcen r˚ uzn´ ymi druhy s´ıt´ı. Klasick´e dr´atov´e jsou z hlediska volnosti problematick´e, protoˇze je potˇreba pˇr´ıstupov´ y konektor. Bezdr´atov´e jsou oproti tomu v´ıtanou zmˇenou. R´adiov´e ˇci infraˇcerven´e vlny jsou volnˇe okolo n´as. Bezdr´atov´e s´ıtˇe nab´ızej´ı v principu podobn´e sluˇzby a flexibilitu jako s´ıtˇe dr´atov´e. Z hlediska funkˇcnosti a v´ ysledku jsou kromˇe dosahovan´ ych pˇrenosov´ ych rychlost´ı ekvivalentn´ı k s´ıt´ım dr´atov´ ym (napˇr. ethernetu). R´adiov´e vys´ıl´an´ı je n´achyln´e na ruˇsen´ı, a to vˇsemi zaˇr´ızen´ımi, kter´e mohou na pˇr´ısluˇsn´ ych kmitoˇctech pracovat. T´ yk´a se to zejm´ena bezlicenˇcn´ıho p´asma 2.4GHz. Optick´e bezdr´atov´e s´ıtˇe ˇci s´ıtˇe zaloˇzen´e na infraˇcerven´em z´aˇren´ı zase nemohou m´ıt pˇrek´aˇzky mezi vys´ılaˇcem a pˇrij´ımaˇcem. Dosah souvisej´ıc´ı s kvalitou pˇrenosu pak omezuje jejich velikost i poˇcet syst´em˚ u, kter´e se v r´amci dan´eho prostoru mohou nach´azet, aby nedoch´azelo ke vz´ajemn´emu ruˇsen´ı. Zajiˇstˇen´ı bezpeˇcnosti bezdr´atov´e komunikace je pˇri r´adiov´em vys´ıl´an´ı jedn´ım z nejobt´ıˇznˇejˇs´ıch probl´em˚ u, podobnˇe jako roaming a smˇerov´an´ı mezi r˚ uzn´ ymi s´ıtˇemi. Bezdr´ atov´ e s´ıtˇ e podle IEEE IEEE (Institute of Electrical and Electronics Engineers) se specifikac´ı bezdr´atov´ ych LAN zab´ yv´a od roku 1990. Jedn´a se o n´asleduj´ıc´ı standardy: • IEEE 802.11 - bezdr´atov´e lok´aln´ı s´ıtˇe WLAN (Wireless Local Area Network) • IEEE 802.15 - bezdr´atov´e osobn´ı s´ıtˇe WPAN (Wireless Personal Area Network) • IEEE 802.16 - ˇsirokop´asmov´ y bezdr´atov´ y pˇr´ıstup (metropolitn´ı s´ıtˇe) Bezdr´atov´e lok´aln´ı s´ıtˇe WLAN a osobn´ı s´ıtˇe WPAN se ˇrad´ı k technologi´ım nen´aroˇcn´ ym na nap´ajen´ı, s mal´ ym dosahem a malou prostorovou kapacitou. WLAN byly vym´ yˇsleny sp´ıˇse pro podnikov´e vyuˇzit´ı a osobn´ı s´ıtˇe naopak pro dom´acnosti. Ultra-ˇsirokop´asmov´a technologie m´a stˇredn´ı dosah a vyznaˇcuje se vysokou prostorovou kapacitou. Osobn´ı s´ıtˇe maj´ı menˇs´ı dosah i pˇrenosovou kapacitu neˇz lok´aln´ı. 2
2.1 Moˇ znosti bezdr´ atov´ e komunikace
3
Topologie WLAN je realizovan´a pˇredevˇs´ım s n´avaznost´ı na s´ıt’ovou infrastrukturu, v pˇr´ıpadˇe WPAN se prim´arnˇe jedn´a o n´ahodn´e seskupen´ı komunikuj´ıc´ıch zaˇr´ızen´ı (zaˇr´ızen´ı se m˚ uˇze snadno pˇripojit nebo odpojit od s´ıtˇe). Souˇcasnˇe je vˇsak moˇzn´e vyuˇz´ıt pˇripojen´ı k pˇr´ıstupov´emu bodu AP (Access Point) jako ve vˇsech typech WLAN. Frekvenˇ cn´ı rozsahy Bezdr´atov´e s´ıtˇe WLAN a WPAN pracuj´ı ve frekvenˇcn´ım p´asmu 2.4 - 2.4835GHz, tedy zjednoduˇsenˇe ˇreˇceno v p´asmu 2.4GHz. Toto p´asmo se tak´e ˇcasto oznaˇcuje jako ISM (Industrial, Scientific, Medical)1 . V tomto p´asmu pracuje mnoho r˚ uzn´ ych bezdr´atov´ ych zaˇr´ızen´ı, napˇr. bluetooth produkty, ale i mikrovlnn´e trouby a v zahraniˇc´ı i bezdr´atov´e telefony. Kromˇe tohoto p´asma se vyhrazuje jeˇstˇe p´asmo 5GHz. To pouˇz´ıv´a zat´ım pouze technologie 802.11a. Frekvenˇcn´ı rozsah se ovˇsem liˇs´ı zemˇe od zemˇe - v nˇekter´ ych st´atech nen´ı povolen´e ˇ pln´e frekvenˇcn´ı spektrum, protoˇze jeho ˇc´asti jsou jiˇz vyuˇz´ıv´any pro jin´e u ´ˇcely. V CR ˇ U ´ (Cesk´ ˇ y telekomunikaˇcn´ı u CT ´ˇrad) povoluje pln´e frekvenˇcn´ı spektrum, jako je tomu v USA nebo ve vˇetˇsinˇe st´atech Evropy. Z´akladn´ı porovn´an´ı rychlost´ı obou typ˚ u s´ıt´ı je v tabulce 2.1. WPAN 2.4GHz ZigBee 250 kbps
WLAN 2.4GHz
Bluetooth 802.11b 1 Mbps 11 Mbps
802.11g 54 Mbps
Tabulka 2.1: Porovn´an´ı rychlost´ı s´ıt´ı WPAN a WLAN
2.1.1
IEEE 802.11
Standard IEEE 802.11 definuj´ıc´ı bezdr´atov´e LAN (WLAN) zaˇcal vznikat poˇca´tkem devades´at´ ych let, dokonˇcen byl v roce 1997. V roce 1999 bylo uvedeno rozˇs´ıˇren´ı tohoto standardu v podobˇe nov´e varianty nesouc´ı n´azev IEEE 802.11b, kter´e pˇrineslo nˇekter´e podstatn´e zmˇeny, pˇredevˇs´ım v´ yrazn´e zv´ yˇsen´ı rychlosti z maxim´alnˇe 2Mbps aˇz na 11Mbps. Standard od sv´eho vzniku poˇc´ıtal se tˇremi z´akladn´ımi druhy pˇrenosu. Dva vyuˇz´ıvaly technologie rozprostˇren´eho spektra (Spread Spectrum) na klasick´ ych r´adiov´ ych vln´ach, tˇret´ı typ byl definov´an pro infraˇcerven´ y pˇrenos. Ujaly se pouze prvn´ı dvˇe technologie - DSSS (Direct Sequence Spread Spectrum) a FHSS (Frequency Hopping Spread Spectum). DSSS (Wi-Fi, ZigBee) vyuˇz´ıv´a k pˇrenosu prostˇrednictv´ım ˇsirok´eho spektra frekvenc´ı tzv. Barkerovo k´odov´an´ı, nejˇcastˇeji v jeho 11bitov´e podobˇe a jako modulaˇcn´ı metodu diferenˇcn´ı QPSK (Quadrature Phase Shift Keyed). P˚ uvodn´ı technologie DSSS pracuje na rychlosti 1 nebo 2Mbps (tato rychlost je spoleˇcn´a pro vˇsechna ˇreˇsen´ı v p˚ uvodn´ım IEEE 802.11). V souˇcasn´e dobˇe vˇsak DSSS d´ıky zlepˇsen´e 1
Bezlicenˇcn´ı frekvenˇcn´ı p´ asmo urˇcen´e pro u ´ˇcely v´ yzkumu a medic´ıny.
2.1 Moˇ znosti bezdr´ atov´ e komunikace
4
pˇrenosov´e technologii nab´ız´ı pˇrenosov´e rychlosti aˇz 11Mbps. Pro tento pˇrenos vˇsak DSSS vyˇzaduje p´asmo o ˇs´ıˇrce pln´ ych 22MHz. Protoˇze ˇs´ıˇrka cel´eho bezlicenˇcn´ıho p´asma ISM je 83.5MHz, mohou b´ yt souˇcasnˇe pouˇz´ıv´any pouze tˇri nez´avisl´e DSSS syst´emy. FHSS (Bluetooth) vyuˇz´ıv´a modulaˇcn´ı metodu GSFK (Gaussian Frequency Shift Keyed). V souˇcasn´ ych proveden´ıch nab´ız´ı pˇrenosovou rychlost 1.6 nebo 3.2Mbps. Pro pˇrenos pouˇz´ıv´a 78 skokov´ ych frekvenc´ı z nichˇz kaˇzd´a m´a 79 skok˚ u. Teoreticky m˚ uˇze b´ yt provozov´ano souˇcasnˇe aˇz 79 FHSS syst´em˚ u, prakticky se tato hodnota pohybuje kolem 15. Poˇzadovan´a ˇs´ıˇrka p´asma je totiˇz kolem 6MHz. Naprosto bezprobl´emov´eho pˇrenosu je dosaˇzeno pˇri poˇctu 12-ti souˇcasnˇe provozovan´ ych FHSS syst´em˚ u. Obˇe technologie byly p˚ uvodnˇe navrˇzeny pro bezdr´atov´e LAN (WLAN), a to pˇredevˇs´ım v budov´ach a jin´ ych uzavˇren´ ych prostor´ach. Podle Gener´aln´ı licence GL 12/R/2000 nesm´ı v´ ykon pˇrevyˇsovat 100mW. Hlavn´ı v´ yhodou DSSS je pˇredevˇs´ım vyˇsˇs´ı pˇrenosov´a rychlost, t´e je vˇsak dosahov´ano na u ´kor kvality pˇrenosu. DSSS je nav´ıc podstatnˇe m´enˇe efektivn´ı a n´achyln´e k ruˇsen´ı a jin´ ym negativn´ım vliv˚ um. FHSS sice nab´ız´ı niˇzˇs´ı pˇrenosovou rychlost, pˇrenosov´e p´asmo je vˇsak efektivnˇeji vyuˇzito a technologie jako takov´a je podstatnˇe robustnˇejˇs´ı a n´aslednˇe odolnˇejˇs´ı. D´ıky zmˇen´am frekvence se dok´aˇze “vyhnout” nepˇr´ızniv´ ym vliv˚ um, byt’ se sn´ıˇz´ı pˇrenosov´a rychlost. Typy standard˚ u 802.11: • 802.11a - WLAN v p´asmu 5GHz a s rychlost´ı aˇz 54Mbps • 802.11b - WLAN v p´asmu 2.4GHz a s rychlost´ı aˇz 11Mbps • 802.11c - definice procedur pro s´ıt’ov´e mosty (bridge), standard pro pˇr´ıstupov´e body • 802.11d - mezin´arodn´ı harmonizace. Se vznikem standardu 802.11 se uk´azalo, ˇze je potˇreba mezin´arodn´ı kooperace a harmonizace. Zejm´ena p´asmo 5GHz se pouˇz´ıv´a v mnoha st´atech r˚ uznˇe a bylo tˇreba tomu standardizaci pˇrizp˚ usobit tak, aby nevych´azela vstˇr´ıc pouze potˇreb´am USA a Japonska. • 802.11e - rozˇs´ıˇren´ı MAC2 pro QoS. Zkratka QoS oznaˇcuje sluˇzbu Quality of Service zajiˇst’uj´ıc´ı vyrovnanou kvalitu sluˇzby d˚ uleˇzitou napˇr´ıklad pro multim´edia. • 802.11f - Inter Access Point Protocol (IAPP) - st´avaj´ıc´ı specifikace 802.11 nezahrnuj´ı standardizaci komunikace mezi jednotliv´ ymi pˇr´ıstupov´ ymi body pro zajiˇstˇen´ı bezprobl´emov´eho roamingu. • 802.11g - zv´ yˇsen´ı rychlosti v p´asmu 2.4GHz na 20Mbps se zpˇetnou kompatibilitou s 802.11b. 2
protokol pˇr´ıstupu k m´ediu (Media Access Protocol)
2.1 Moˇ znosti bezdr´ atov´ e komunikace
5
• 802.11h - zmˇeny v ˇr´ızen´ı pˇr´ıstupu k spektru 5GHz, kter´e by mˇely reflektovat pˇripom´ınky regul´ator˚ u evropsk´ ych zem´ı tak, aby bylo moˇzno s´ıtˇe v p´asmu 5GHz vyuˇz´ıvat i mimo budovy. • 802.11i - zlepˇsen´ı bezpeˇcnosti v 802.11 bezdr´atov´ ych s´ıt´ıch vylepˇsen´ım autentifikaˇcn´ıho a ˇsifrovac´ıho algoritmu.
Zkratka Wi-Fi (Wireless Fidelity) se ˇcasto zamˇen ˇuje s v´ yrazem IEEE 802.11a/b/g. Samotn´ y n´azev Wi-Fi vytvoˇrila WECA (Wireless Ethernet Compatibility Alliance). Jde o oznaˇcen´ı a logo udˇelovan´e v´ yrobk˚ um pracuj´ıc´ım podle standardu 802.11a/b/g, kter´e jsou mezi sebou vz´ajemnˇe propojiteln´e. Vˇetˇsina s´ıt´ı zaloˇzen´ ych na Wi-Fi funguje na buˇ nkov´em principu, kdy centr´aln´ı pˇr´ıstupov´ y bod zprostˇredkov´av´a pˇripojen´ı vˇsem stanic´ım v dosahu - analogicky s GSM s´ıt´ı. Z d˚ uvodu zabezpeˇcen´ı proti zneuˇzit´ı disponuj´ı souˇcasn´a zaˇr´ızen´ı podporou 128 bitov´eho ˇsifrov´an´ı protokolem WEP (Wireless Encryption Protocol), ale obecn´e principy zabezpeˇcen´ı Wi-Fi nejsou dostateˇcn´e pro vˇsechny aplikace. Nahradit WEP by mˇel WPA (Wi-Fi Protected Access). WPA bude obsahovat nˇekolik nov´ ych technologi´ı, kter´e se ve WEPu nenach´azej´ı, napˇr´ıklad zlepˇsen´ y management kl´ıˇc˚ u a TKIP (Temporal Key Integrity Protocol). V´ıce v [14].
2.1.2
IEEE 802.15
Bezdr´atov´e s´ıtˇe s mal´ ym dosahem do nˇekolika metr˚ u se nejˇcastˇeji realizuj´ı r´adiovou bezdr´atovou s´ıt´ı WPAN (Wireless Personal Area Network), zaloˇzenou na specifikaci Bluetooth. Vedle t´eto specifikace existuj´ı i nov´e typy mal´ ych bezdr´atov´ ych s´ıt´ı a vˇsechny vznikaj´ı pod hlaviˇckou IEEE 802.15: • 802.15.1 WPAN/Bluetooth (2002) - norma pro WPAN na z´akladˇe specifikace Bluetooth 1.1, pracuj´ıc´ı v p´asmu 2.4GHz rychlost´ı 1Mbps • 802.15.2 Coexistence - zab´ yv´a se koexistenc´ı vˇsech bezdr´atov´ ych technologi´ı vytvoˇren´ ych v r´amci IEEE 802, nejen samotn´ ych WPAN, ale i WLAN a WMAN (Wireless Metropolitan Area Network) • 802.15.3 WPAN High Rate (2003) - norma pro rychlou bezdr´atovou osobn´ı s´ıt’ (11-55Mbps), pˇrezd´ıvan´a WiMedia, pracuj´ıc´ı v p´asmu 2.4GHz, se zabudovanou podporou pro kvalitu sluˇzby (QoS) pro n´aroˇcn´e dom´ac´ı multimedi´aln´ı aplikace, c´ılem je jeˇstˇe rychlejˇs´ı verze s´ıtˇe (802.15.3a) s kapacitou od 110Mbps, kter´a bude zaloˇzena na technologii UWB (UltraWideBand) • 802.15.4 WPAN Low Rate (2003) - norma pro pomalejˇs´ı osobn´ı r´adiov´e s´ıtˇe do 250kbps s minim´aln´ımi energetick´ ymi potˇrebami; jako sv˚ uj z´aklad pouˇz´ıv´a 802.15.4 tak´e pr˚ umyslov´a specifikace pod oznaˇcen´ım ZigBee Mezi nejzn´amnˇejˇs´ı z´astupce WPAN patˇr´ı Bluetooth (IEEE 802.15.1) a ZigBee (IEEE 802.15.4).
2.1 Moˇ znosti bezdr´ atov´ e komunikace
6
Bluetooth Prvn´ı bezdr´atovou osobn´ı s´ıt´ı byl r´adiov´ y syst´em Bluetooth. Mezi nejv´ yznamnˇejˇs´ı prosazovatele Bluetooth patˇr´ı vedle zakladatel˚ u SIG (Bluetooth Special Interested Group) spoleˇcnosti 3Com, Agere, Microsoft a Motorola. Specifikace Bluetooth (prvn´ı verze byla k dispozici v roce 1999) je charakteristick´a n´ızk´ ymi n´aroky na nap´ajen´ı a spoluprac´ı s mal´ ymi koncov´ ymi zaˇr´ızen´ımi. Rychlost na fyzick´e vrstvˇe dosahuje 1Mbps, pˇriˇcemˇz skuteˇcn´a propustnost dat se pohybuje maxim´alnˇe kolem 720kbps. Komunikace po Bluetooth nab´ız´ı aˇz tˇri hlasov´e kan´aly. Bluetooth pracuje podobnˇe jako WLAN 802.11b v bezlicenˇcn´ım p´asmu 2.4GHz. Na rozd´ıl od 802.11b ale Bluetooth vyuˇz´ıv´a metody rozprostˇren´eho spektra s pˇreskakov´an´ım kmitoˇct˚ u FHSS, kdy r´adiov´ y sign´al velmi rychle (1600kr´at za sekundu) n´ahodnˇe pˇreskakuje mezi 79 jedno-MHz kan´aly. Veˇskerou komunikaci v s´ıti Bluetooth ˇr´ıd´ı hlavn´ı stanice (master) prostˇrednictv´ım protokolu v´ yzvy: podˇr´ızen´a stanice (slave) m˚ uˇze komunikovat s ostatn´ımi v´ yhradnˇe prostˇrednictv´ım hlavn´ı stanice. Bluetooth pro zabezpeˇcen´ı pouˇz´ıv´a stejn´ y protokol jako WLAN, protokol WEP (Wired Equivalent Privacy) s 128bitov´ ym kl´ıˇcem. Menˇs´ı dosah s´ıtˇe ve srovn´an´ı se s´ıtˇemi 802.11 je s ohledem na bezpeˇcnost velkou v´ yhodou. UWB a ZigBee Mezi nejvˇetˇs´ı konkurenty Bluetooth m˚ uˇzeme poˇc´ıtat pˇredevˇs´ım standardy IEEE 802.15.3 (UWB) a 802.15.4 (ZigBee). Oba pˇritom nab´ız´ı ponˇekud jin´e vlastnosti, neˇz jak´e m´a Bluetooth. Jeden z hlavn´ıch rozd´ıl˚ u je v pˇrenosov´e rychlosti. UWB nab´ız´ı 100Mbps, coˇz je pˇribliˇznˇe ston´asobek pˇrenosov´e rychlosti Bluetooth. ZigBee je ze vˇsech tˇechto tˇr´ı bezdr´atov´ ych standard˚ u nejpomalejˇs´ı: 20 - 250kbps. D´ıky sv´e jednoduchosti je ale tak´e ze vˇsech zde uveden´ ych standard˚ u nejlevnˇejˇs´ım produktem. ZigBee Standard ZigBee, s pˇresn´ ym oznaˇcen´ım IEEE 802.15.4, je urˇcen pro tzv. LRWPAN (Low Rate Wireless Personal Area Network), tedy bezdr´atov´e s´ıtˇe s kr´atk´ ym dosahem v ˇr´adu des´ıtek metr˚ u a s pomˇernˇe mal´ ymi pˇrenosov´ ymi rychlostmi (tab. 2.1) a je tedy pˇr´ım´ ym konkurentem standardu Bluetooth. Vyuˇz´ıv´a metody rozprostˇren´eho spektra DSSS stejnˇe jako IEEE 802.11. Byl vyvinut a sestaven instituc´ı IEEE a d´ale je rozv´ıjen a podporov´an ZigBee Aliance (ZBA). ZBA sdruˇzuje pˇredn´ı v´ yrobce elektronick´ ych souˇc´astek a snaˇz´ı se dos´ahnout n´avrhu co nejjednoduˇsˇs´ı jednotky s n´ızkou spotˇrebou. ZBA byla zaloˇzena v z´aˇr´ı roku 2002 a jde o asociaci spoleˇcnost´ı pracuj´ıc´ıch spoleˇcnˇe na vytvoˇren´ı standardu pro levn´ y obousmˇern´ y bezdr´atov´ y pˇrenos vyˇzaduj´ıc´ı minimum spotˇreby elektrick´e energie. Mezi nejzn´amˇejˇs´ı ˇcleny ZBA patˇr´ı spoleˇcnosti Philips, Motorola a Honeywell. Podrobnˇejˇs´ı a u ´pln´ y seznam vˇsech ˇclen˚ u aliance je uveden na internetov´ ych str´ank´ach www.zigbee.org.
2.1 Moˇ znosti bezdr´ atov´ e komunikace
7
Podle standardu ZigBee se zaˇr´ızen´ı dˇel´ı na zaˇr´ızen´ı se vˇsemi funkcemi FFD (FullFunctional Device) a zaˇr´ızen´ı s redukovan´ ymi funkcemi RFD (Reduced-Functionality ’ Device). Kaˇzd´a s´ıt pracuj´ıc´ı se standardem ZigBee mus´ı obsahovat alespoˇ n jedno ˇ zaˇr´ızen´ı RFD nebo FFD a ˇr´ıdic´ı jednotku. R´ıd´ıc´ı jednotka ˇr´ıd´ı a koordinuje celou nebo urˇcitou ˇc´ast s´ıtˇe. Tyto funkce m˚ uˇze plnit jen zaˇr´ızen´ı tˇr´ıdy FFD. Pouˇz´ıvan´e topologie s´ıt´ı pracuj´ıc´ı se standardem ZigBee mohou b´ yt typu hvˇezda, strom nebo kombinace obou pˇredchoz´ıch. V s´ıti m˚ uˇze b´ yt zapojeno najednou aˇz 254 zaˇr´ızen´ı k jedn´e ˇr´ıd´ıc´ı jednotce. Pro srovn´an´ı: u technologie Bluetooth m˚ uˇze v s´ıti (Piconetu) pracovat najednou pouze osm zaˇr´ızen´ı. Zaˇr´ızen´ı pracuj´ıc´ı podle standardu ZigBee mohou pracovat nejen v p´asmu 2.4GHz (tab. 2.2), ale i v p´asmu 915MHz (USA) nebo 868MHz (Evropa). Pro pˇrenos informac´ı v kmitoˇctov´em p´asmu 2.4 aˇz 2.4835GHz je pro zaˇr´ızen´ı pracuj´ıc´ı podle standardu ZigBee k dispozici 16 pˇrenosov´ ych subkan´al˚ u s odstupem 5MHz o celkov´e pˇrenosov´e kapacitˇe 250kbps. V p´asmu 868.3MHz je k dispozici jeden pˇrenosov´ y subkan´al s celkovou pˇrenosovou kapacitou 20kbps a v p´asmu 902 aˇz 928MHz je k dispozici pˇrenosov´ ych subkan´al˚ u deset s odstupem 2MHz a celkovou pˇrenosovou kapacitou 40kbps. ZigBee IEEE 802.15.4 20kbps 868MHz
40kbps 915MHz (USA)
250kbps
Bluetooth IEEE 802.15.1 1Mbps 2.4MHz
Tabulka 2.2: Porovn´an´ı pˇrenosov´ ych rychlost´ı ZigBee a Bluetooth
Technologie ZigBee se ned´a vyuˇz´ıt pro n´aroˇcn´e datov´e pˇrenosy, ale je vhodn´a pro osobn´ı bezdr´atov´e s´ıtˇe WPAN (Wireless Personal Area Network) na vˇetˇs´ı vzd´alenosti neˇz technologie Bluetooth. ZigBee nen´ı technicky n´aroˇcn´a technologie, m´a jednoduchou architekturu a vyˇzaduje minim´aln´ı pˇr´ıkon elektrick´e energie - hod´ı se pˇredevˇs´ım pro automatizaci a regulaci v budov´ach a pr˚ umyslov´ ych provozech (klimatizace, osvˇetlen´ı, r˚ uzn´e senzory a sn´ımaˇce, zabezpeˇcovac´ı technika a podobnˇe). V´ıce o ZigBee v [13].
2.1.3
Srovn´ an´ı
Bluetooth vs ZigBee ZigBee je robustn´ı protokol urˇcen´ y k stavov´emu pˇrenosu informac´ı nebo k bezpeˇcn´emu pˇrenosu dat niˇzˇs´ı rychlost´ı. ZigBee pˇren´aˇs´ı stavy - pˇren´aˇs´ı informace o tom, ˇze se zapnulo topen´ı, nebo ˇze kamera detekuje pohyb. Bluetooth oproti tomu je n´ahrada datov´ ych kabel˚ u a slouˇz´ı k propojen´ı “vyˇsˇs´ı elektroniky” - tedy k pˇren´aˇsen´ı n´aroˇcnˇejˇs´ıch datov´ ych objem˚ u. ZigBee se v mnoh´em podob´a Bluetooth, standard je vˇsak optimalizov´an s ohledem na cenu a hlavnˇe na n´ızkou spotˇrebu - pomoc´ı ZigBee by mˇela komunikovat zaˇr´ızen´ı nap´ajen´a nˇekolik let jednou bateri´ı. ZigBee proto umoˇzn ˇuje reˇzim hibernace, kdy modul naslouch´a, ale spotˇreba kles´a na pouh´ y jeden ˇci dva mikroamp´ery.
2.1 Moˇ znosti bezdr´ atov´ e komunikace
8
Bluetooth potˇrebuje 100 µA, Wi-Fi des´ıtky miliamp´er˚ u. Vlastnosti
Wi-Fi
Bluetooth
ZigBee
Doba provozu Poˇcet zaˇr´ızen´ı SLAVE v s´ıti Dosah Pˇrenosov´a rychlost
hodiny 32 100m 11Mbps
dny 7 10m 1Mbps
roky 255 70-300m 250kbps
Tabulka 2.3: Obecn´e porovn´an´ı Wi-Fi, ZigBee a Bluetooth
Dalˇs´ım podstatn´ ym rozd´ılem je lepˇs´ı podpora ˇcasovˇe kritick´ ych aplikac´ı - v´ yraznˇe niˇzˇs´ı zpoˇzdˇen´ı pˇri pˇrenosu kr´atk´ ych datov´ ych paket˚ u, rychlejˇs´ı “probuzen´ı” a nav´az´an´ı spojen´ı (tab. 2.4). Akce Pˇrid´an´ı nov´eho Slave Aktivace Slave z reˇzimu Sleep
ZigBee Bluetooth 30 ms 15 ms
3s 3s
Tabulka 2.4: Porovn´an´ı ZigBee a Bluetooth
Jak je vidˇet z tabulky 2.2, ZigBee je koncipov´ano pro niˇzˇs´ı pˇrenosov´e rychlosti, takˇze se nehod´ı pro aplikace vyˇzaduj´ıc´ı rychl´ y pˇrenos vˇetˇs´ıho mnoˇzstv´ı dat. Bluetooth vs Wi-Fi Bluetooth a Wi-Fi pouˇz´ıvaj´ı stejn´e frekvenˇcn´ı p´asmo 2.4GHz. Koexistence technologi´ı v tˇesn´e bl´ızkosti je velice sloˇzit´a, zaˇr´ızen´ı se totiˇz navz´ajem silnˇe ruˇs´ı. Bluetooth byl od sam´eho zaˇc´atku vyv´ıjen pro komunikaci mezi kapesn´ımi zaˇr´ızen´ımi na vzd´alenost jednotek metr˚ u. T´eto skuteˇcnosti bylo pˇrizp˚ usobeno vˇse. Vys´ılac´ı v´ ykony se pohybuj´ı v ˇr´adu mW (0,001W). Technologie Wi-Fi byla prim´arnˇe navrˇzena jako alternativa lok´aln´ıch poˇc´ıtaˇcov´ ych s´ıt´ı do m´ıst, kde je sloˇzit´e, popˇr´ıpadˇe neˇz´adouc´ı pokl´ad´an´ı kabelov´ ych rozvod˚ u. Do vzd´alenosti 300 metr˚ u na voln´em prostranstv´ı nab´ız´ı Wi-Fi maxim´aln´ı pˇrenosovou rychlost 11Mbps, pˇriˇcemˇz s pouˇzit´ım speci´aln´ıch ant´en m˚ uˇze b´ yt dosah prodlouˇzen pˇribliˇznˇe aˇz na dva kilometry. Bluetooth m´a niˇzˇs´ı poˇzadavky na nap´ajen´ı neˇz Wi-Fi. Zaˇr´ızen´ı, kter´a na principu Bluetooth pracuj´ı, mohou proto b´ yt menˇs´ı, coˇz je pro pouˇzit´ı ve spotˇrebn´ı elektronice velmi v´ yhodn´e. Bluetooth je vhodn´a volba pro jednoduch´a zaˇr´ızen´ı, u nichˇz rychlost nen´ı rozhoduj´ıc´ım faktorem; je nejvhodnˇejˇs´ı pro PDA, mobily, digit´aln´ı fotoapar´aty a eventu´alnˇe pro propojen´ı dom´ac´ıch spotˇrebiˇc˚ u, kter´e od sebe nejsou pˇr´ıliˇs vzd´aleny. Bluetooth naopak nen´ı dobrou n´ahradou kabelov´ ych veden´ı mezi poˇc´ıtaˇci, popˇr´ıpadˇe mezi zaˇr´ızen´ımi pracuj´ıc´ımi s vysok´ ymi objemy dat, jako jsou napˇr´ıklad digit´aln´ı videokamery. Tam je jednoznaˇcnˇe nevhodnˇejˇs´ı Wi-Fi.
2.1 Moˇ znosti bezdr´ atov´ e komunikace
9
Bluetooth byl vyv´ıjen s poˇzadavky na jednoduchost, miniaturizaci a n´ızkou spotˇrebu, maxim´aln´ı pˇrenosov´a kapacita byla m´enˇe d˚ uleˇzit´a neˇz u bezdr´atov´e poˇc´ıtaˇ sen´ı ˇcov´e s´ıtˇe. Proto Bluetooth vyuˇz´ıv´a modulaci FHSS a ˇspatnˇe se sn´aˇs´ı s Wi-Fi. Reˇ pro souˇzit´ı obou technologi´ı vyv´ıj´ı nˇekteˇr´ı dodavatel´e ˇcip˚ u pro komunikaci v p´asmu 2.4GHz, jako jsou Texas Instruments, Intersil a Silicon Wave, o koexistenci Bluetooth s Wi-Fi se snaˇz´ı i novˇe ustaven´a komise IEEE 802.15.2 Task Force. V nejjednoduˇsˇs´ım pˇr´ıpadˇe by mohl uˇzivatel ruˇcnˇe pˇrep´ınat mezi Wi-Fi a Bluetooth, uvaˇzuje se i o rychl´em pˇrep´ın´an´ı mezi Wi-Fi a Bluetooth nebo o modifikaci omezuj´ıc´ı pˇreskakov´an´ı nosn´e frekvence Bluetooth pouze na ˇc´asti kmitoˇctov´eho spektra nevyuˇzit´e Wi-Fi. Dalˇ s´ı moˇ znosti K bezdr´atov´emu pˇrenosu informace lze pouˇz´ıt i dalˇs´ı technologie jako napˇr. IrDA nebo magnetickou indukci. IrDA je standard vytvoˇren´ y IrDA konsorciem (Infrared Data Association), kter´ y definuje jak bezdr´atovˇe pˇren´aˇset digit´aln´ı data pomoc´ı infraˇcerven´eho z´aˇren´ı. IrDA ve sv´ ych specifikac´ıch definuje standardy jak fyzick´ ych koncovych zaˇr´ızen´ı, tak protokol˚ u jimiˇz komunikuji IrDA zaˇr´ızen´ı. IrDA standard vznikl z potˇreby mobilnˇe propojit r˚ uzn´a zaˇr´ızen´ı mezi sebou. IrDA zaˇr´ızen´ı komunikuj´ı pomoc´ı infraˇcerven´ ych LED diod s vlnov´ ymi d´elkami vyzaˇrovan´eho svˇetla 875nm ± 30nm. Na tuto vlnovou d´elku jsou citliv´e i mnoh´e CCD kamery. Pˇrij´ımaˇcem jsou PIN fotodiody. IrDA zaˇr´ızen´ı dle normy IrDA 1.0 a 1.1 pracuj´ı do vzd´alenosti 1.0 m pˇri bitov´e chybovosti BER3 10-9 a maxim´aln´ı u ´rovn´ı okoln´ıho osvˇetlen´ı 10klux (denn´ı svit slunce). Tyto hodnoty jsou definov´any pro nesouosost vys´ılaˇce a pˇrij´ımaˇce 15 stupˇ n˚ u, pro jednotliv´e optick´e prvky se mˇeˇr´ı v´ ykon do 30 stupˇ n˚ u. Existuj´ı smˇerov´e vys´ılaˇce (IR LED) pro vˇetˇs´ı vzd´alenosti, kter´e nedodrˇzuj´ı pˇredepsan´ y u ´hel 30 stupˇ n˚ u od osy a pro kter´ y m´a vys´ılaˇc u ´tlum 3dB. Rychlosti jsou pro IrDA v. 1.0 od 2400 do 115200kbps, pouˇz´ıv´a se pulsn´ı modulace 3/16 d´elky p˚ uvodn´ı doby trvan´ı bitu. Form´at dat je stejn´ y jako na s´eriovem portu, tedy asynchronnˇe vys´ılan´e slovo uvozen´e startbitem. IrDA v. 1.1 definuje nav´ıc rychlosti 0.576 a 1.152Mbps s pulsn´ım k´odovan´ım 1/4 d´elky doby trvan´ı p˚ uvodn´ıho bitu (stˇr´ıda 1/4). Pˇri tˇechto rychlostech je jiˇz paket vys´ıl´an synchronnˇe uvozen startovn´ı sekvenc´ı. Integrovan´e IrDA (kombinovan´a vys´ılac´ı infra LED dioda a pˇrij´ımac´ı PIN fotodioda) maj´ı jiˇz zabudovan´e filtry, kter´e zabraˇ nuj´ı ruˇsen´ı mimo frekvenˇcn´ı oblast IrDA 2400-115200bps a 0.576-4Mbps. Magnetick´ a indukce m˚ uˇze slouˇzit pro dvoubodovou i v´ıcebodovou komunikaci mezi zaˇr´ızen´ımi na velmi kr´atkou vzd´alenost, ˇc´ımˇz dok´aˇze nahradit aplikace Bluetooth nebo m˚ uˇze slouˇzit pro dom´ac´ı s´ıtˇe ˇci jin´e s´ıtˇe s velmi mal´ ym dosahem. Pˇrenos dat je realizov´an po elektromagnetick´ ych vln´ach pole vytvoˇren´eho magnetickou indukc´ı. Elektrick´ y proud proch´azej´ıc´ı magneticko-indukˇcn´ım syst´emem 3
bit error ratio, pomˇer chybnˇe pˇrenesen´ ych bit˚ u ku spr´avnˇe pˇrenesen´ ym
2.1 Moˇ znosti bezdr´ atov´ e komunikace
10
vytv´aˇr´ı magnetick´e pole a ASIC (Application Specific Integrated Circuit) pak moduluje sign´al tak, aby v sobˇe zak´odoval pˇren´aˇsen´a data. Jedniˇcky a nuly bin´arn´ıch dat reprezentuj´ı 90-ti stupˇ nov´e posuny f´aze sign´alu v jednom ze dvou smˇer˚ u. Ant´ena pak zesiluje a vys´ıl´a sign´al. Sign´al ovˇsem podl´eh´a rychl´emu u ´tlumu, takˇze dosah komunikace je pouh´e dva aˇz tˇri metry. Mal´ y dosah ale znamen´a tak´e menˇs´ı n´achylnost na odposlech, pˇriˇcemˇz bezpeˇcnost lze jeˇstˇe zv´ yˇsit ˇsifrov´an´ım a autentizac´ı. Dosah s´ıtˇe je ovˇsem kompenzov´an minim´aln´ı spotˇrebou. Spotˇreba energie u magneticko-indukˇcn´ıho syst´emu je pˇetkr´at aˇz desetkr´at niˇzˇs´ı neˇz u Bluetooth. Magneticko-indukˇcn´ı syst´emy se nepot´ ykaj´ı s ruˇsen´ım, protoˇze v jejich p´asmu nep˚ usob´ı mnoho dalˇs´ıch syst´em˚ u. Pracuj´ı totiˇz v p´asmu 13.5MHz urˇcen´em pro u ´ˇcely ISM, kde ˇz´adn´a jin´a komunikaˇcn´ı s´ıt’ zat´ım neoperuje. To je samozˇrejmˇe velk´a v´ yzva syst´em˚ um Wi-Fi nebo Bluetooth, kter´e pracuj´ı vedle bezˇsn ˇ˚ urov´ ych telefon˚ u a mikrovlnek v pˇret´ıˇzen´em voln´em p´asmu 2.4GHz. Magnetick´a indukce nem´a probl´em s pˇrek´aˇzkami (narozd´ıl od napˇr. infraˇcerven´e komunikace, kter´a pevn´ ymi pˇrek´aˇzkami nepronik´a, nebo r´adiov´e komunikace, pot´ ykaj´ıc´ı se s odrazy od pˇrek´aˇzek). Magnetick´e pole je principi´alnˇe jednosmˇern´e, takˇze je potˇreba pouˇz´ıt elektronick´e prvky a zpracov´an´ı sign´alu pro nasmˇerov´an´ı pole potˇrebn´ ym smˇerem. Nejvˇetˇs´ım konkurentem magneticko-indukˇcn´ı komunikace je UWB. UWB je totiˇz podobnˇe jako magnetick´a indukce velice bezpeˇcn´e, nen´achyln´e k ruˇsen´ı a pracuje tak´e na velmi kr´atkou vzd´alenost nˇekolika metr˚ u. Pˇrednost´ı UWB je rychlost, kter´a je o mnoho ˇr´ad˚ u vyˇsˇs´ı (100-450Mbps) neˇz u magneticko-indukˇcn´ıch s´ıt´ı (nˇekolik set kbps).
2.1.4
Shrnut´ı
C´ılem t´eto pr´ace bylo bezdr´atov´e ˇr´ızen´ı modelu automobilu za pouˇzit´ı co nejv´ yhodnˇejˇs´ı technologie. Omezen´ı: • dosah alespoˇ n 25m • mal´a spotˇreba (v´ ykon) • jednoduchost technologie (myˇsleno pro pouˇzit´ı v modelu auta) • dostupnost technologie Model automobilu je urˇcen pro v´ yuku v laboratoˇri na Karlovˇe n´amˇest´ı. T´ım je omezen maxim´aln´ı poˇzadovan´ y dosah na zhruba 25m. Vzhledem ke ˇclenitosti “ter´enu” (stoly, roboti a dalˇs´ı zaˇr´ızen´ı) je nepouˇziteln´a technologie IrDA i technologie zaloˇzen´a na magnetick´e indukci. Poˇzadavky splˇ nuj´ı ZigBee, Wi-Fi a Bluetooth.
2.2 Bluetooth
11
Nejmenˇs´ı spotˇrebu a nejjednoduˇsˇs´ı je ZigBee, n´asleduje Bluetooth a krit´eria nesplˇ nuje Wi-Fi. Objem pˇren´aˇsen´ ych dat nen´ı potˇreba velk´ y, pˇren´aˇset se budou pouze pˇr´ıkazy a stavy ˇcidel, popˇr´ıpadˇe bateri´ı v modelu auta. Nejlepˇs´ım ˇreˇsen´ım by tedy byla technologie ZigBee, kter´a m´a vˇetˇs´ı dosah neˇz Bluetooth, je jednoduˇsˇs´ı a m´a i menˇs´ı spotˇrebu. Z´asadn´ı rozd´ıl byl vˇsak v dostupnosti na trhu. Zat´ımco technologie Bluetooth byla jiˇz rozˇs´ıˇren´ y standard, ZigBee byla teprve v poˇc´atc´ıch. Specifikace ZigBee byla standardizov´ana v prosinci roku 2004. Z tohoto d˚ uvodu byla pro tuto pr´aci pouˇzita pr´avˇe technologie Bluetooth.
2.2
Bluetooth
Bluetooth definuje glob´aln´ı standard (protokol) urˇcen´ y dvˇema a v´ıce zaˇr´ızen´ım na kr´atk´e vzd´alenosti prostˇrednictv´ım r´adiov´eho spojen´ı. Pouˇz´ıv´a se mezi mobiln´ımi telefony, poˇc´ıtaˇci, PDA zaˇr´ızen´ımi, atd. Prvn´ı z´akladn´ı k´amen Bluetooth byl poloˇzen v kvˇetnu roku 1998, kdy vzniklo sdruˇzen´ı The Bluetooth special interest group (SIG). U jeho zrodu st´aly renomovan´e spoleˇcnosti Ericsson, IBM, Intel, Nokia a Toshiba. Pˇribliˇznˇe za rok SIG pˇripravila standard Bluetooth 1.0. V roce 2000 se do v´ yvoje tohoto bezdr´atov´eho standardu zapojilo Japonsko a Jiˇzn´ı Korea. Dalˇs´ım d˚ uleˇzit´ ym mezn´ıkem ve v´ yvoji Bluetooth se stal bˇrezen roku 2001, kdy byla pˇredstavena vylepˇsen´a verze Bluetooth 1.1. V Bluetooth SIG jsou v t´eto dobˇe zastoupen´e vˇsechny v´ yznamn´e spoleˇcnosti z oblasti informaˇcn´ıch technologi´ı a komunikac´ı jako jsou 3Com, Ericsson, IBM, Intel, Microsoft, Motorola, Nokia a dalˇs´ıch t´emˇeˇr 2000 spoleˇcnost´ı. Specifikace Bluetooth zahrnuje vˇsechny ˇc´asti, kter´e se z´ uˇcastˇ nuj´ı komunikace od specifikace r´adiov´ ych sign´al˚ u aˇz po protokoly vyˇsˇs´ıch vrstev. Informace uveden´e v n´asleduj´ıc´ıch kapitol´ach jsou d˚ uleˇzit´e pro pochopen´ı technologie Bluetooth. V´ıce v [10].
2.2.1
R´ adio specifikace
Bluetooth (pˇrij´ımaˇc a vys´ılaˇc) operuje v bezlicenˇcn´ım frekvenˇcn´ım p´asmu ISM ˇıˇrka frekvenˇcn´ıho p´asma pro (Industrial Scientific Medicine) na frekvenci 2.4GHz. S´ ˇıˇrka r´adiov´eho Bluetooth zaˇr´ızen´ı je ve vˇetˇsinˇe st´at˚ u Evropy4 2400 - 2483.5MHz. S´ sign´alu je 1MHz, takˇze je k dispozici 79 r´adiov´ ych kan´al˚ u. Pro nosn´e frekvence plat´ı vztah: f = 2402 + k [MHz], kde k = 0, ..., 78 Aby byly dodrˇzeny normy mimo p´asmo, jsou definov´ana tzv. doln´ı a horn´ı ochrann´a p´asma. Doln´ı ochrann´e p´asmo m´a ˇs´ıˇrku 2MHz, horn´ı ochrann´e p´asmo 3.5MHz. ˇ Napˇr´ıklad Spanˇ elsko a Francie m´a toto p´asmo v rozmez´ı 2446.5 - 2483.5MHz se ˇs´ıˇrkou kan´alu opˇet 1MHz. 4
2.2 Bluetooth
12
V´ ykonov´ e tˇ r´ıdy Zaˇr´ızen´ı dodrˇzuj´ıc´ı specifikaci Bluetooth jsou z hlediska vyz´aˇren´eho v´ ykonu rozdˇelena do tˇr´ı kategori´ı (tab. 2.5). Tˇr´ıda maxim´aln´ı 1 2 3
100mW (20dBm) 2.5mW (4dBm) 1mW (0dBm)
V´ ystupn´ı v´ ykon nomin´aln´ı
Dosah minim´aln´ı
nespecifikov´ano 1mW (0dBm) 1mW (0dBm) 0.25mW (-6dBm) nespecifikov´ano nespecifikov´ano
100m 10m 0.01m
Tabulka 2.5: V´ ykonov´e tˇr´ıdy Bluetooth ˇ e republice je maxim´aln´ı povolen´ V Cesk´ y v´ ykon vyz´aˇren´ y zaˇr´ızen´ım pracuj´ıc´ım v tomto p´asmu 100mW, minim´aln´ı je nepovinn´ y. U zaˇr´ızen´ı tˇr´ıdy 1 je poˇzadov´ano ˇr´ızen´ı v´ ystupn´ıho v´ ykonu, kter´e se pouˇz´ıv´a pro omezen´ı vys´ılac´ıho v´ ykonu nad u ´rovn´ı 0dBm (1dBm). Pokud toto zaˇr´ızen´ı nepodporuje, sm´ı vys´ılac´ı strana odpov´ıdat pouze tˇr´ıdˇe 2 nebo 3. Zaˇr´ızen´ı s implementovan´ ym ˇr´ızen´ım v´ ykonu (spotˇreby) optimalizuje v´ ystupn´ı v´ ykon pomoc´ı pˇr´ıkaz˚ u LMP (Link Manager Protocol). Ruˇ siv´ e vyzaˇ rov´ an´ı Ruˇsiv´e vyzaˇrov´an´ı uvnitˇr i vnˇe pracovn´ıho frekvenˇcn´ıho p´asma se mˇeˇr´ı se sk´ak´an´ım nosn´e frekvence (frequency hopping) vys´ılaˇce na jedin´e frekvenci. Znamen´a to, ˇze kmitoˇctov´ y syntez´ator mus´ı prov´adˇet pˇreskoky mezi vysl´an´ım a pˇrijet´ım ˇcasov´eho (time) slotu, ale v okamˇziku vys´ıl´an´ı nebo pˇr´ıjmu se mus´ı vˇzdy vr´atit na p˚ uvodn´ı frekvenci.
2.2.2
Baseband specifikace
Baseband specifikuje fyzickou vrstvu technologie Bluetooth. Zabezpeˇcuje ˇcinnost fyzick´ ych linek (spojen´ı), korekci chyb, v´ ybˇer skokov´e frekvence a poskytuje i z´akladn´ı funkce k´odov´an´ı. Baseband protokol je implementovan´ y jako ˇr´ızen´ı linky (Link Controller - LC), kter´ y zabezpeˇcuje funkce jako vytv´aˇren´ı spojen´ı nebo ˇr´ızen´ı spotˇreby. Kromˇe toho ˇr´ıd´ı tak´e asynchronn´ı a synchronn´ı spojen´ı, pˇrij´ım´a pakety, analyzuje (zkoum´a a vyhodnocuje) pˇrij´ıman´e pakety a tak´e vyhled´av´a jin´a dostupn´a zaˇr´ızen´ı Bluetooth. Jak jiˇz bylo ˇreˇceno, Bluetooth operuje v bezlicenˇcn´ım p´asmu 2.4GHz. Vzhledem k tomu, ˇze toto p´asmo vyuˇz´ıv´a i nˇekolik dalˇs´ıch bezdr´atov´ ych syst´emu (IEEE 802.11), je nutn´e zajistit, aby se syst´emy uvnitˇr kmitoˇctov´eho p´asma vz´ajemnˇe neruˇsily. Technologie Bluetooth vyuˇz´ıv´a n´ızk´e vys´ılac´ı v´ ykony v kombinaci s metodou frekvenˇcn´ıho sk´ak´an´ı nosn´e (Frequency Hopping) v rozprostˇren´em spektru (FHSS). Nomin´aln´ı poˇcet frekvenˇcn´ıch pˇreskok˚ u je 1600s−1 , doba obsazenosti r´adiov´eho kan´alu je tedy velmi kr´atk´a - 625µs. Frekvenˇcn´ım sk´ak´an´ım nosn´e se zabraˇ nuje interferenc´ım (skl´ad´an´ı) a kol´ıs´an´ı r´adiov´eho sign´alu.
2.2 Bluetooth
2.2.2.1
13
Komunikaˇ cn´ı jednotka Bluetooth
Komunikaˇcn´ı jednotka Bluetooth obsahuje (obr. 2.1): • r´adiovou jednotku (Radio Unit - kapitola 2.2.1) • jednotku ˇr´ızen´ı spojen´ı (linkov´ y ovladaˇc - Link Control Unit, d´ale jen LC), kter´a ovl´ad´a r´adiov´ y vys´ılaˇc/pˇrij´ımaˇc • spr´avce linky a I/O5 obvod˚ u spoje (Link Manager - d´ale LM a I/O), kter´ y zajiˇst’uje komunikace mezi I/O obvody spoje a poskytuje uˇzivateli termin´alov´e rozhrann´ı
Obr´azek 2.1: Funkˇcn´ı bloky v syst´emu Bluetooth
Bluetooth syst´em poskytuje 2 druhy spojen´ı (propojen´ı) : • point-to-point (jeden k druh´emu) • point-to-multipoint (jeden k v´ıce - Piconet, Scatternet)
Obr´azek 2.2: Point-to-point (a), Piconet (b), Scatternet (c)
Spojen´ı point-to-point (obr. 2.2a) je spojen´ı dvou Bluetooth jednotek, z nichˇz jedna pln´ı v r´amci spojen´ı roli Mastera (hlavn´ı - vytv´aˇr´ı spojen´ı) a druh´a roli Slave. Spojen´ı point-to-multipoint je spojen´ı jednoho Mastera s v´ıce zaˇr´ızen´ımi typu Slave. 5
Input/Output - vstup/v´ ystup
2.2 Bluetooth
14
Dvˇe a v´ıce Bluetooth jednotek, kter´e sd´ıl´ı stejn´ y komunikaˇcn´ı kan´al, tvoˇr´ı s´ıt’, tzv. Piconet (obr´azek 2.2b). Aˇz sedm Slave m˚ uˇze b´ yt aktivn´ıch v Piconetu. Dalˇs´ı Slave mohou b´ yt v r´amci tohoto Piconetu pouze v reˇzimu Parked (nejsou aktivn´ı, ale st´ale synchronizov´any s Masterem). Dva a v´ıce navz´ajem prov´azan´ ych Piconet˚ u tvoˇr´ı Scatternet (obr. 2.2c). Kaˇzd´ y Piconet m˚ uˇze m´ıt pouze jednoho Mastera, ale jedno ze zaˇr´ızen´ı Slave m˚ uˇze plnit roli Mastera v r´amci jin´eho, pˇridruˇzen´eho Piconetu. 2.2.2.2
Pˇ renosov´ y kan´ al
Kan´al je reprezentov´an pseudon´ahodnou sekvenc´ı zmˇen vys´ılac´ı frekvence (pˇreskakuj´ıc´ı r´adiov´a frekvence – frequency hoping) mezi frekvenˇcn´ımi pozicemi 0 aˇz 78. Sekvence zmˇen je jedinˇeˇcn´a pro kaˇzd´ y Piconet a je odvozena od adresy zaˇr´ızen´ı typu Master a f´aze t´eto sekvence je odvozena od jeho Bluetooth hodin. Pˇrenosov´ y kan´al je rozdˇelen do stejnˇe dlouh´ ych ˇcasov´ ych r´amc˚ u (slot˚ u). Nomin´aln´ı d´elka ˇcasov´eho r´amce je 625µs. Existuj´ı dva druhy ˇcasov´an´ı kan´al˚ u – TDD (Time-Division Duplex) ˇ a multi-slot. Casov´an´ı TDD (obr´azek 2.3) odpov´ıd´a situaci, v n´ıˇz se ˇr´ıdic´ı a ˇr´ızen´a jednotka postupnˇe stˇr´ıdaj´ı ve vys´ıl´an´ı. Master zaˇc´ın´a komunikaci v sud´ ych ˇcasov´ ych slotech a Slave v lich´ ych. Zaˇc´atek paketu je pˇriˇrazen zaˇc´atku ˇcasov´eho slotu.
Obr´azek 2.3: TDD sch´ema a ˇcasov´an´ı ˇ Casov´ an´ı multi-slot (obr´azek 2.4) odpov´ıd´a vyuˇzit´ı pˇreskokov´e sekvence pro pˇrenos tak, ˇze paket pos´ılan´ y zaˇr´ızen´ım typu Master nebo Slave m˚ uˇze obsadit v´ıce neˇz jeden r´amec (slot), maxim´alnˇe pˇet. Protokol Bluetooth vyuˇz´ıv´a kombinaci kruhu (data jsou zas´ıl´any v r´amci s´ıtˇe postupnˇe od jednoho k druh´emu aˇz k adres´atovi) a zas´ıl´an´ı paket˚ u (data jsou posl´any pˇr´ımo adres´atovi). 2.2.2.3
Fyzick´ e linky
Baseband poskytuje dva druhy linek (spojen´ı), kter´e se liˇs´ı pˇrenosov´ ymi schopnostmi: • asynchronn´ı (ACL - Asynchronous Connection - Less)
2.2 Bluetooth
15
Obr´azek 2.4: Multi-slot pakety
• synchronn´ı (SCO - Synchronous Connection - Oriented) Oba kan´aly je moˇzn´e vyuˇz´ıt k zajiˇstˇen´ı pˇrenos˚ u dat podle poˇzadavk˚ u. Pro zajiˇstˇen´ı komplikovanˇejˇs´ıch pˇrenos˚ u, kombinuj´ıc´ıch oba typy kan´al˚ u, je moˇzn´e v pr˚ ubˇehu spojen´ı mˇenit typ kan´alu. SCO je symetrick´e point-to-point spojen´ı mezi zaˇr´ızen´ımi Master a Slave v Piconetu s pˇrenosovou rychlost´ı 64kbps. Mezi dvˇema zaˇr´ızen´ımi mohou b´ yt tˇri SCO linky najednou. Vyuˇz´ıvaj´ı se pro ˇcasovˇe z´avisl´e aplikace jako napˇr. pˇrenos zvuku a obrazu. Pˇri SCO spojen´ı Master pos´ıl´a v pravideln´ ych intervalech paket zaˇr´ızen´ı Slave, kter´e odpov´ıd´a vˇzdy v n´asleduj´ıc´ım ˇcasov´em slotu. Vytvoˇren´ı SCO spojen´ı je inicializovan´e (vynucen´e) zaˇr´ızen´ım Master pomoc´ı LMP. ACL vyuˇz´ıv´a ˇcasov´an´ı multi-slot, pˇriˇcemˇz je moˇzn´e dos´ahnout pˇrenosov´e rychlosti 721kbps v jenom smˇeru a 57.6kbps v opaˇcn´em smˇeru (asymetrick´ y kan´al), popˇr. 433kbps v obou smˇerech (symetrick´ y kan´al). Uveden´e pˇrenosov´e rychlosti plat´ı za pˇredpokladu, ˇze se nevyuˇz´ıv´a moˇznost opravy chyb pˇri pˇrenosu. ACL spojen´ı m˚ uˇze b´ yt jak point-to-point spojen´ı mezi Master a Slave, tak i point-to-multipoint mezi Masterem a v´ıce Slave (max. 8). Mezi Masterem a jedn´ım Slavem m˚ uˇze existovat vˇzdy jen jedno ACL spojen´ı (narozd´ıl od SCO). Pokud nen´ı pˇri vys´ıl´an´ı paketu Masterem adresov´an ˇzadn´ y ze zaˇr´ızen´ı Slave, pak se jedn´a o zpr´avu Broadcast (urˇcen´a vˇsem). ACL spojen´ı je vhodn´e k pˇrenosu bˇeˇzn´ ych dat a jeho v´ yhodou je vˇetˇs´ı pˇrenosov´a rychlost. Vyuˇz´ıv´a se tak´e pro pˇrenos dat zajiˇst’uj´ıc´ıch a ˇr´ıdic´ıch komunikaci v r´amci buˇ nky. 2.2.2.4
Pakety
Pro pos´ıl´an´ı paket˚ u plat´ı n´asleduj´ıc´ı: • nejm´enˇe v´ yznamn´ y bit (LSB - Least Significant Bit) odpov´ıd´a bitu b0 • LSB je prvn´ı bit, kter´ y se pos´ıl´a
2.2 Bluetooth
16
Pokud se napˇr´ıklad pos´ılaj´ı 3 bity b2 b1 b0 = 110, pak informace, kter´a se zas´ıl´a je b0 b1 b2 = 011. LC interpretuje prvn´ı pˇrijat´ y bit jako b0 . Data jsou rozdˇelena do paket˚ u. Hlavn´ı form´at paketu je na obr´azku 2.5
Obr´azek 2.5: Form´at standardn´ıho paketu
Pˇr´ıstupov´ y k´od (Acces Code) a hlaviˇcka (Header) maj´ı pevnˇe danou velikost a to 72 a 54 bit˚ u. Uˇziteˇcn´a data (Payload) mohou m´ıt 0 aˇz 2745 bit˚ u. Existuj´ı r˚ uzn´e typy paket˚ u, kter´e budou pops´any n´ıˇze. Pˇ r´ıstupov´ y k´ od Kaˇzd´ y paket zaˇc´ın´a pˇr´ıstupov´ ym k´odem - k´od pouˇz´ıvan´ y pˇri komunikaci se zaˇr´ızen´ımi. Pokud za n´ım n´asleduje hlaviˇcka paketu je dlouh´ y 72 bit˚ u. Pokud ne, pak 68 bit˚ u. Pouˇz´ıv´a se pro synchronizaci a identifikaci. Pˇr´ıstupov´ y k´od urˇcuje vˇsechny pakety vymˇenˇen´e v r´amci kan´alu Piconetu, tj. vˇsem paket˚ um poslan´ ym v jednom Piconetu pˇredch´az´ı stejn´ y pˇr´ıstupov´ y k´od. Existuj´ı 3 druhy: CAC (Channel Access Code), DAC (Device Access Code) a IAC (Inquiry Access Code). CAC jednoznaˇcnˇe indentifikuje vytvoˇren´ y Piconet a obsahuje informace potˇrebn´e k synchronizaci komunikace v r´amci Piconetu. DAC a IAC se pouˇz´ıvaj´ı pˇri vyhled´av´an´ı zaˇr´ızen´ı, kter´a nejsou souˇc´ast´ı jednoho Piconetu. Hlaviˇ cka paketu Obsahuje LC informace a skl´ad´a se ze 6-ti ˇc´ast´ı: • AM ADDR - 3 bity, adresa uzlu v r´amci Piconetu (kapitola 2.2.2.6) • TYPE - 4 bity, typ pˇren´aˇsen´eho paketu (Type Code) • FLOW - 1 bit, pˇr´ıznak ˇr´ızen´ı toku (Flow Control), GO (Flow=1) , STOP (Flow=0) • ARQN - 1 bit, potvrzen´ı u ´spˇeˇsn´eho pˇrijet´ı paketu (Acknowledge Indication) • SEQN - 1 bit, pˇr´ıznak, zda se jedn´a o opakovan´ y r´amec, nebo zda jde o dalˇs´ı paket v poˇrad´ı (Sequence Number) • HEC - 8 bit˚ u, k zabezpeˇcen´ı kontroly integrity hlaviˇcky (Header Error Check) Celkovˇe tedy obsahuje 18 bit˚ u, kter´e jsou vˇsak zak´odov´any pomˇerem 1/3 FEC6 , coˇz ve v´ ysledku d´av´a dˇr´ıve zm´ınˇen´ ych 54 bit˚ u. 6
Typ k´ odov´ an´ı vych´ azej´ıc´ı z Hammingova k´odov´an´ı - v´ ysledn´ y k´od je d´an urˇcitou funkc´ı.
2.2 Bluetooth
17
Typy paket˚ u Pakety pouˇz´ıvan´e v Piconetu souvis´ı s pouˇzit´ım fyzick´eho kan´alu, tedy bud’ ACL ˇ ri ˇr´ıdic´ı nebo SCO. Pro kaˇzd´ y z nich je definov´ano 12 r˚ uzn´ ych typ˚ u paket˚ u. Ctyˇ (Control) pakety jsou spoleˇcn´e. K rozliˇsen´ı typu paketu slouˇz´ı 4 bity TYPE v hlaviˇcce (Header) paketu. 2.2.2.5
Logick´ e kan´ aly
V syst´emu Bluetooth je definov´ano 5 logick´ ych kan´al˚ u, kter´e mohou b´ yt pouˇzit´e pro pˇrenos r˚ uzn´ ych typ˚ u informac´ı: • ˇr´ıdic´ı kan´al LC (Link Control Control) • ˇr´ıdic´ı kan´al LM (Link Manager Control) • uˇzivatelsk´ y kan´al UA (User Asynchronous Data) • uˇzivatelsk´ y kan´al UI (User Isochronous Data) • uˇzivatelsk´ y kan´al US (User Synchronous Data) ˇ ıdic´ı kan´aly LC a LM jsou pouˇz´ıv´any na u R´ ´rovni LC a LM. Uˇzivatelsk´e kan´aly UA, UI a US jsou vyuˇzity k pˇrenosu asynchronn´ı, isochronn´ı a synchronn´ı uˇzivatelsk´e informace. 2.2.2.6
Adresov´ an´ı zaˇ r´ızen´ı
Existuj´ı 4 druhy adres, kter´e mohou b´ yt pˇriˇrazeny zaˇr´ızen´ı Bluetooth: • BD ADDR (Bluetooth Device Address) - fyzick´a jedineˇcn´a 48-bitov´a adresa. • AM ADDR (Active Member Address) - 3-bitov´a adresa, kter´a slouˇz´ı k adresov´an´ı zaˇr´ızen´ı Slave v r´amci Piconetu. Je platn´a pouze po dobu existence Piconetu. • PM ADDR (Parked Member Address) - 8-mi bitov´a adresa, kterou pouˇz´ıv´a Master k adresov´an´ı zaˇr´ızen´ı Slave, kter´a jsou v r´amci Piconetu v reˇzimu PARKED. Adresa je platn´a jen po dobu setrv´an´ı Slave v tomto reˇzimu. • AR ADDR (Access Request Address) - tato adresa je pouˇz´ıv´ana zaˇr´ızen´ımi Slave v reˇzimu PARKED pˇri synchronizaci s Masterem. 2.2.2.7
Vys´ılac´ı a pˇ rij´ımac´ı proces
Vys´ılac´ı proces (d´ale TX) je oddˇelen´ y pro ACL a SCO spojen´ı. Na obr. 2.6 je 7 uk´az´an pouze jeden TX ACL buffer a jeden TX SCO buffer. Slave m´a buffer TX ACL pr´avˇe jeden, Master m´a jeden pro kaˇzd´e zaˇr´ızen´ı Slave. 7
M´ısto v pamˇeti o dan´e velikosti slouˇz´ıc´ı k ukl´ad´an´ı dat procesu - tzv. vyrovn´avac´ı pamˇet’.
2.2 Bluetooth
18
Obr´azek 2.6: Fuknˇcn´ı diagram vys´ıl´an´ı
TX buffer se skl´ad´a ze dvou FIFO (First In, First Out - data, kter´a byla vloˇzena jako prvn´ı, jsou jako prvn´ı naˇctena) registr˚ u: jeden je zpˇr´ıstupnˇen Bluetooth ˇradiˇci, kter´ y ho ˇcte a z dat tvoˇr´ı pakety, a do druh´eho LM nahr´av´a data. Mezi tˇemito dvˇema registry se pˇrep´ın´a pomoc´ı S1a,b, respektive S2a,b. Pˇrij´ımac´ı proces (d´ale RX) pracuje obdobnˇe, ale v opaˇcn´em smˇeru. Pakety pˇrijat´e z LC jsou naˇcteny do jednoho bufferu a z druh´eho jsou LM pˇrevedeny na data. 2.2.2.8
ˇ Casov´ an´ı vys´ıl´ an´ı a pˇ r´ıjmu
Bluetooth vys´ılaˇc/pˇrij´ımaˇc pouˇz´ıv´a TDD sch´ema (kapitola 2.2.2.2). V norm´aln´ım stavu spojen´ı vys´ıl´a Master v sud´ ych ˇcasov´ ych r´amc´ıch a Slave v lich´ ych. ˇ Casov´ a synchronizace Master a Slave Kaˇzd´a jednotka Bluetooth m´a sv´e vlastn´ı vnitˇrn´ı syst´emov´e hodiny, kter´e urˇcuj´ı ˇcasov´an´ı a skokovou frekvenci pˇrij´ımaˇce a vys´ılaˇce. Piconet je synchronizov´an syst´emov´ ymi hodinami Mastera. Master dodrˇzuje pˇresn´ y interval m.625µs (m je sud´e ˇc´ıslo a vˇzdy vˇetˇs´ı neˇz 0) mezi n´asleduj´ıc´ımi pˇrenosy (vysl´an´ı) dat. Zaˇr´ızen´ı typu Slave pˇrizp˚ usob´ı sv´e syst´emov´e hodiny pomoc´ı ˇcasov´eho offsetu tak, aby byl synchronizov´an s Masterem. Toto se dˇeje bˇehem vytv´aˇren´ı spojen´ı. Offset je poupraven vˇzdy s pˇr´ıchoz´ım paketem od Mastera. Stav spojen´ı Ve stavu spojen´ı Bluetooth stˇr´ıdavˇe vys´ıl´a a pˇrij´ım´a. Na obr´azku 2.7 je uk´az´an Master pˇri pos´ıl´an´ı a pˇrij´ım´an´ı paket˚ u, kter´e zab´ıraj´ı jeden ˇcasov´ y r´amec. Maxim´aln´ı d´elka uˇziteˇcn´ ych dat (Payload) je 366µs. Kaˇzd´ y nov´ y RX i TX pˇrenos je realizov´an na jin´e skokov´e frekvenci (hop frequency). Vyj´ımkou jsou pakety, kter´e zab´ıraj´ı v´ıce ˇcasov´ ych r´amc˚ u (maxim´alnˇe vˇsak 5). V tomto pˇr´ıpadˇe dan´ y RX nebo TX pˇrenos pokraˇcuje na stejn´e skokov´e frekvenci na jak´e zaˇcal.
2.2 Bluetooth
19
Obr´azek 2.7: Cyklus TX a RX z pohledu Mastera
FHS pakety Jsou zas´ıl´any od Mastera ke Slave bˇehem nastavov´an´ı spojen´ı nebo bˇehem promˇeny Mastera za Slave8 . Slouˇz´ı k frekvenˇcn´ı a ˇcasov´e synchronizaci. Komunikace s v´ıce Slave Pokud je k Masterovi pˇripojeno v´ıce zaˇr´ızen´ı Slave, prob´ıh´a komunikace podle obr´azku 2.8. Master zaˇsle paket urˇcit´emu zaˇr´ızen´ı Slave a ten paket pˇrijme, pokud je adres´atem (d´ano adresou zaˇr´ızen´ı AM ADDR). Pokud nen´ı adres´atem, skonˇc´ı ˇcten´ı paketu po pˇrijet´ı AM ADDR.
Obr´azek 2.8: Komunikace Mastera s v´ıce Slave V pˇr´ıpadˇe broadcast (urˇcen´a vˇsem Slave) zpr´avy nemohou Slave odpov´ıdat zasl´an´ım paketu zpˇet Masterovi. 8
Pokud je povoleno, m˚ uˇze doj´ıt bˇehem spojen´ı k v´ ymˇenˇe rol´ı obou zaˇr´ızen´ı, tzn. Master se stane Slave a opaˇcnˇe.
2.2 Bluetooth
2.2.2.9
20
Stavy zaˇ r´ızen´ı a ˇ r´ızen´ı kan´ alu
Zaˇr´ızen´ı Bluetooth se m˚ uˇze vyskytovat ve dvou z´akladn´ıch stavech: Standby a Connection. Kromˇe tˇechto existuje jeˇstˇe dalˇs´ıch 7 “podstav˚ u”, kter´e slouˇz´ı k pˇrid´av´an´ı zaˇr´ızen´ı Slave do Piconetu, nebo k vytv´aˇren´ı nov´ ych Piconet˚ u. Standby je poˇc´ateˇcn´ı stav zaˇr´ızen´ı Bluetooth s n´ızkou spotˇrebou energie. Bˇeˇz´ı pouze vnitˇrn´ı hodiny a neprob´ıh´a komunikace s okol´ım. Ve stavu Connection (spojen´ı) je umoˇznˇeno zaˇr´ızen´ım Slave a Master komunikovat v r´amci jednoho Piconetu. 2.2.2.10
Vytvoˇ ren´ı spojen´ı
Vytvoˇren´ı spojen´ı prob´ıh´a dvˇema moˇzn´ ymi zp˚ usoby. Pokud o sobˇe zaˇr´ızen´ı nemaj´ı ˇz´adn´e informace (BD ADDR, hodinov´ y offset), pak se vykonaj´ı po sobˇe procedury Inquiry a Page. Pokud zaˇr´ızen´ı uˇz byly spojen´e, tzn. maj´ı potˇrebn´e informace (BD ADDR a offset), pak je potˇreba vykonat jen proceduru Page. Procedura Inquiry zabezpeˇcuje nalezen´ı okoln´ıch zaˇr´ızen´ı a v´ ymˇenu jejich HW adres BD ADDR a hodnot hodinov´ ych sign´al˚ u (Clock offset). Procedura Page slouˇz´ı k vytvoˇren´ı spojen´ı (komunikaˇcn´ı linky) mezi dvˇema zaˇr´ızen´ımi. Vˇetˇsinou n´asleduje po proceduˇre Inquiry. Aby mohla b´ yt vykon´ana je potˇreba zn´at BD ADDR. Hodnota hodinov´eho sign´alu nemus´ı b´ yt zn´ama, pouze urychluje vytvoˇren´ı spojen´ı. Zaˇr´ızen´ı, kter´e inicializovalo vytvoˇren´ı spojen´ı, vykon´an´ım procedury Page se automaticky st´av´a Masterem. 2.2.2.11
Reˇ zimy zaˇ r´ızen´ı ve stavu Connection
Zaˇr´ızen´ı ve stavu Connection m˚ uˇze b´ yt v jednom ze 4 reˇzim˚ u: Active, Hold, Sniff a Parked. • Active - v tomto reˇzimu se zaˇr´ızen´ı aktivnˇe u ´ˇcastn´ı komunikace. Master pl´anuje komunikaci na z´akladˇe poˇzadavk˚ u zaˇr´ızen´ı Slave. Aktivn´ı zaˇr´ızen´ı Slave poslouch´a komunikaci ve slotu master-to-slave - sud´e a pokud nen´ı adresov´ano m˚ uˇze “sp´at” aˇz do dalˇs´ıho pˇrenosu od Mastera. • Hold - zaˇr´ızen´ı Slave v tomto reˇzimu udrˇzuje synchronizaci s Piconetem pomoc´ı vnitˇrn´ıch hodin. Do tohoto reˇzimu se Slave dostane na pˇr´ıkaz zaˇr´ızen´ı Master. • Sniff - Slave se v tomto reˇzimu synchronizuje s Piconetem se sn´ıˇzenou intenzitou (nepˇrij´ım´a pakety tak ˇcasto), coˇz mu umoˇzn ˇuje sn´ıˇzit spotˇrebu energie. • Parked - Slave je st´ale synchronizov´an s Piconetem, ale ne´ uˇcastn´ı se komunikace. Zaˇr´ızen´ı v tomto reˇzimu m´a aktivovanou AM ADDR adresu a resynchronizuje se obˇcasn´ ym pˇr´ıjmem broadcast zpr´av od Mastera.
2.2 Bluetooth
2.2.3
21
Link Manager Protocol
Protokol spr´avce linky (LMP - Link Manager protokol) zabezpeˇcuje konfigurov´an´ı linky (spojen´ı), synchronizaci zaˇr´ızen´ı pˇri vytv´aˇren´ı spojen´ı (ACL i SCO), ˇsifrov´an´ı spojen´ı, detekci a opravy chyb a dalˇs´ı funkce. Sign´aly jsou zpracov´any a filtrov´any spr´avcem linky LM (Link Manager) v r´amci pˇr´ıjmu dat a nejsou zpˇr´ıstupnˇeny vyˇsˇs´ım vrstv´am. LMP zpr´avy jsou pˇren´aˇseny v r´amci uˇziteˇcn´ ych dat (payload) L2CAP (Logical Link Control and Adaptation). Zpr´avy zas´ılan´e LM maj´ı vˇetˇs´ı prioritu neˇz uˇzivatelsk´a data. Mezi ˇcinnosti, kter´e LM vykon´av´a patˇr´ı: • p´arov´an´ı (Pairing) - vytv´aˇr´ı se n´ahodn´ y kl´ıˇc linky (link key) spoleˇcn´ y pro obˇe zaˇr´ızen´ı • autentifikace (Authentification) - ovˇeˇren´ı druh´e Bluetooth jednotky • zmˇena kl´ıˇce linky (Change Link Key) • k´odov´an´ı (Encryption) • ˇz´adost o zasl´an´ı offsetu hodin (Clock Offset) • informace o n´azvu vzd´alen´e jednotky • uveden´ı do reˇzimu HOLD, SNIFF nebo PARKED • kontrola kvality linky
2.2.4
HCI specifikace
HCI (Host Control Interface - rozhran´ı pro ˇr´ızen´ı hostem) poskytuje pˇr´ıkazov´e (programov´e) rozhran´ı pro pˇr´ıstup k funkc´ım, kter´e poskytuj´ı Baseband a spr´avce linky LM. Jedn´a se o rozhran´ı, kter´e poskytuje jednotn´ y pˇr´ıstup softwarov´e ˇc´asti k fyzick´e ˇc´asti zaˇr´ızen´ı Bluetooth (HW a firmware). Funkce HCI je rozdˇelena do tˇrech oddˇelen´ ych ˇc´ast´ı: Host, Transportn´ı vrstva a Host Controller (obr. 2.9) • HCI firmware - nach´az´ı se v ˇc´asti Host Controller (Bluetooth HW). Implementuje HCI pˇr´ıkazy prostˇrednictv´ım pˇr´ıkaz˚ u Baseband a LM vrstvy, pˇr´ıstupu k HW stavov´ ym a ˇr´ıdic´ım registr˚ um a k registr˚ um ud´alost´ı. • HCI driver - nach´az´ı se v ˇc´asti Host (SW). Zabezpeˇcuje anal´ yzu pˇrijat´ ych ud´alost´ı, na jejichˇz z´akladˇe poskytuje informace vyˇsˇs´ım vrstv´am. Zprostˇredkov´av´a komunikaci s vyˇsˇs´ımi vrstavmi. • komunikace HCI driver a HCI firmware - komunikuj´ı pˇres HC transportn´ı vrstvu. Transportn´ı vrstva definuje nˇekolik r˚ uzn´ ych zp˚ usob˚ u komunikace: USB, UART a RS232.
2.2 Bluetooth
22
Obr´azek 2.9: Pˇrehled niˇzˇs´ıch softwarov´ ych vrstev
Obr´azek 2.10 ukazuje pˇrenos dat z jednoho zaˇr´ızen´ı do druh´eho. Ovladaˇc HCI u Hosta (Hostem m˚ uˇze b´ yt napˇr´ıklad poˇc´ıtaˇc nebo mobiln´ı telefon) si vymˇen ˇuje data a pˇr´ıkazy s HCI firmwarem, kter´ y je souˇc´ast´ı HW Bluetooth. Ovladaˇc fyzick´e vrstvy, neboli vrstva ˇr´ızen´ı a kontroly transportu u Hosta poskytuje obˇema HCI vrstv´am moˇznost v´ ymˇeny informac´ı mezi sebou.
Obr´azek 2.10: Pˇrehled niˇzˇs´ıch softwarov´ ych vrstev vzhledem k pˇrenosu informace
2.2 Bluetooth
2.2.4.1
23
HCI pˇ r´ıkazy
HC rozhran´ı poskytuje jednotn´e metody pˇr´ıkaz˚ u k pˇr´ıstupu ke schopnostem HW Bluetooth. Pˇr´ıkazy (Commands) HCI poskytuj´ı Hostovi schopnost ˇr´ıdit spojen´ı (spojovac´ı vrstvu) se vzd´alen´ ym Bluetooth zaˇr´ızen´ım. Tyto pˇr´ıkazy se vˇetˇsinou t´ ykaj´ı spr´avce spojen´ı LM, kter´ y si na jejich z´akladˇe vymˇen ˇuje LMP pˇr´ıkazy se vzd´alen´ ym Bluetooth zaˇr´ızen´ım. Nejmenˇs´ı jednotka dat, kter´a m˚ uˇze b´ yt pˇrenesena jedn´ım zaˇr´ızen´ım do druh´eho je Baseband paket. Klasick´ y paket je zpr´ava vyˇsˇs´ıho protokolu neˇz je baseband. Kaˇzd´ y z HCI pˇr´ıkaz˚ u potˇrebuje ke sv´emu splnˇen´ı r˚ uzn´ y ˇcas. Splnˇen´ı pˇr´ıkazu je Hostovi ozn´ameno ud´alost´ı (HCI Event). Vˇse okolo HCI ud´alost´ı je vysvˇetleno v kapitole 2.2.4.2. Pakety s HCI pˇr´ıkazy jsou zas´ılany Hostem do HC (Host Controller) pˇres transportn´ı vrstvu (RS232). Form´at paketu je na obr. 2.11. Prvn´ı 2 byty tvoˇr´ı k´od (OpCode), kter´ y urˇcuje o jak´ y pˇr´ıkaz se jedn´a (do jak´e skupiny pˇr´ıkaz˚ u patˇr´ı a jeho ˇc´ıslo v t´eto skupinˇe). Kaˇzd´a skupina je oznaˇcena jedineˇcn´ ym ˇc´ıslem OGF (OpCode Group Filed), kter´e spolu s oznaˇcen´ım pˇr´ıkazu ve skupinˇe OCF (OpCode Command Field) tvoˇr´ı pr´avˇe OpCode.
Obr´azek 2.11: Stavba paketu HCI pˇr´ıkazu
Pro spr´avn´e proveden´ı pˇr´ıkazu je nutn´e spr´avnˇe sloˇzit OpCode na z´akladˇe OGF a OCF. Postup sloˇzen´ı OpCode HCI pˇr´ıkazu Reset: V pˇr´ıpadˇe pˇr´ıkazu Reset je OGF 0x03 a OCF 0x0003. OpCode je tvoˇren 10-ti bity OCF a 6-ti bity OGF. OGF 0x03 lze zapsat bitovˇe 00000011. Protoˇze protokol Bluetooth pouˇz´ıv´a form´at pˇrenosu dat tzv. Little Endian (nejdˇr´ıve se pˇren´aˇs´ı LSB) je potˇreba bity otoˇcit - 11000000. OGF m´a v OpCode 6 bit˚ u, takˇze oˇr´ızneme dva nejniˇzˇs´ı bity. V´ ysledkem je 110000. OCF 0x0003 je bitovˇe 0000000000000011. Opˇet otoˇc´ıme: 1100000000000000 a oˇr´ızneme na v´ ysledn´ ych 10 bit˚ u: 1100000000. N´asleduje sloˇzen´ı bit˚ u v poˇrad´ı OCF + OGF: 1100000000 a 110000 = 11000000 00110000. Nakonec je potˇreba bity zpˇetn´e otoˇcit: 00001100 00000011. V´ ysledkem jsou 2 byty: 0x03 a 0x0C. Pokud tedy pos´ıl´ame pˇr´ıkaz HCI Reset, prvn´ı a druh´ y byte jsou 030C.
2.2 Bluetooth
24
Tˇret´ı byte (d´elka parametr˚ u) urˇcuje, kolik n´asleduje byt˚ u s parametry. Samotn´e parametry jsou d´any HCI pˇr´ıkazem, kter´ y chceme HC poslat. Parametry jsou dvoj´ıho typu. Prvn´ı jsou parametry potˇrebn´e k vykon´an´ı dan´eho pˇr´ıkazu (Command Parameters), a kter´e se zas´ılaj´ı v paketu pˇr´ıkazu. Druh´ ym typem jsou n´avratov´e parametry, tzn. parametry, kter´e budou nav´ıc obsahovat ud´alost (Event). HCI pˇr´ıkazy jsou rozdˇeleny do 6 skupin:
• pˇr´ıkazy k ˇr´ızen´ı spojen´ı (Link Control Commands) • strategick´e (z´asadn´ı) pˇr´ıkazy (Link Policy Commands) • pˇr´ıkazy HC a baseband (Host Controller and Baseband Commands) • pˇr´ıkazy k z´ısk´an´ı informac´ı o parametrech (Informational Parameters) • pˇr´ıkazy ke zjiˇstˇen´ı r˚ uzn´ ych stav˚ u (Status Parameters) • pˇr´ıkazy k testov´an´ı (Testing Commands) Pˇ r´ıkazy LINK CONTROL Tyto HCI pˇr´ıkazy umoˇzn ˇuj´ı HC ˇr´ıdit spojen´ı se vzd´alen´ ym Bluetooth zaˇr´ızen´ım. Pˇri pouˇzit´ı tˇechto pˇr´ıkaz˚ u ˇr´ıd´ı spr´avce linky LM vytvoˇren´ı a udrˇzen´ı spojen´ı v s´ıti Piconet, popˇr. Scatternet. OGF je definov´ano jako 0x01. Podrobn´ y popis jejich parametr˚ u naleznete v [10]. Pˇr´ıkazy, kter´e patˇr´ı do t´eto skupiny, a kter´e jsou v pr´aci pouˇzity: Inquiry - OCF 0x0001 HCI pˇr´ıkaz, kter´ y zp˚ usob´ı pˇrechod Bluetooth zaˇr´ızen´ı do reˇzimu Inquiry - vyhled´av´an´ı dostupn´ ych Bluetooth zaˇr´ızen´ı. Parametry pˇr´ıkazu jsou LAP, doba vyhled´av´an´ı a poˇcet odpovˇed´ı. N´avratov´e parametry u pˇr´ıkazu Inquiry nejsou. Odpovˇed´ı je ud´alost Command Status ve chv´ıli, kdy HC spust´ı reˇzim Inquiry. Po skonˇcen´ı vyhled´av´an´ı poˇsle HC Hostovi ud´alost Inquiry Result (pokud je v dosahu vzd´alen´e zaˇr´ızen´ı), kter´a obsahuje informace o tomto zaˇr´ızen´ı. Nakonec pˇrijde ud´alost Command Complete, kter´a Hostovi oznamuje dokonˇcen´ı vyhled´av´an´ı. Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 01 04 05 33 8B 9E 0A 08 (0104 - OpCode, 05 - d´elka parametr˚ u, 338B9E - LAP, 0A = 10x1.28 = 12.8s dlouh´a doba vyhled´av´an´ı zaˇr´ızen´ı, 08 - poˇcet moˇzn´ ych odpovˇed´ı na Inquiry). Inquiry Cancel - OCF 0x0002 HCI pˇr´ıkaz, kter´ y zastav´ı prob´ıhaj´ıc´ı reˇzim Inquiry - ukonˇc´ı vyhled´av´an´ı. Lze pouˇz´ıt pouze po pˇr´ıkazu Inquiry. Pˇr´ıkaz m´a pouze jeden n´avratov´ y parametr - Status (1 byte, pokud je 0x00, pak pˇr´ıkaz probˇehl u ´spˇeˇsnˇe), kter´ y pˇrijde s ud´alost´ı Command Complete.
2.2 Bluetooth
25
Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 02 04 00 (0204 - OpCode, 00 - d´elka parametr˚ u). Create Connection - OCF 0x0005 Pˇr´ıkaz zp˚ usob´ı, ˇze spr´avce spojen´ı LM zaˇcne vytv´aˇret spojen´ı s vybran´ ym Bluetooth zaˇr´ızen´ım. Parametry pˇr´ıkazu jsou napˇr. BD ADDR, typ paketu a hodinov´ y offset. N´avratov´e parametry nem´a. Pokud HC pˇrijme tento pˇr´ıkaz, zaˇsle ud´alost Command Status a pokud dojde k vytvoˇren´ı spojen´ı, pak i ud´alost Connection Complete. Stejnou ud´alost poˇsle i vzd´alen´ y HC vzd´alen´emu hostovi. Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 05 04 0D B2 A1 5E 06 00 08 18 CC 00 00 0E 96 00 (0504 - OpCode, 0D - d´elka parametr˚ u (13), B2A15E060008 - BD ADDR, 18CC - typ paketu, 00 - reˇzim opakov´an´ı Page Scan R0, 00 - reˇzim Page Scan (hlavn´ı), 0E96 - hodinov´ y offset, 00 - zak´az´an´ı v´ ymˇeny rol´ı). Disconnect - OCF 0x0006 Pˇr´ıkaz k ukonˇcen´ı existuj´ıc´ıho spojen´ı. Parametry pˇr´ıkazu jsou Connection Handle a d˚ uvod ukonˇcen´ı spojen´ı. Pˇr´ıkaz Disconnect je bez n´avratov´ ych parametr˚ u. Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 06 04 03 28 00 13 (0604 - OpCode, 03 - d´elka parametr˚ u, 2800 - Connecion Handle, 13 - vzd´alen´e zaˇr´ızen´ı ukonˇcilo spojen´ı). Remote Name Request - OCF 0x0019 Pˇr´ıkaz urˇcen´ y k z´ısk´an´ı informace o jm´enu vzd´alen´eho Bluetooth zaˇr´ızen´ı. Lze poslat pouze, pokud je spojen´ı vytvoˇreno. HC po pˇrijet´ı tohoto pˇr´ıkazu zas´ıl´a ud´alost Command Status. Pˇ r´ıkazy LINK POLICY - OGF 0x02 Poskytuj´ı Hostovi moˇznost ovlivnit, jak spr´avce spojen´ı LM pracuje s Piconetem. Patˇr´ı sem pˇr´ıkazy, kter´e uv´ad´ı Bluetooth zaˇr´ızen´ı do reˇzim˚ u HOLD (pˇr´ıkaz Hold Mode), SNIFF (pˇr´ıkaz Sniff Mode), atd. Pˇ r´ıkazy HC A BASEBAND - OGF 0x03 Poskytuj´ı pˇr´ıstup k ˇr´ızen´ı r˚ uzn´ ych schopnost´ı Bluetooth HW. Pouˇz´ıvaj´ı se ke zmˇenˇe chov´an´ı lok´aln´ıho Bluetooth modulu. Reset - OCF 0x0003 Pˇr´ıkaz zp˚ usob´ı reset HC a spr´avce spojen´ı LM. Bluetooth modul se nastav´ı podle vlastnost´ı ve specifikaci. N´avratov´ ym parametrem je Status, kter´ y je obsaˇzen v ud´alosti Command Complete, pokud k resetu doˇslo. Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 03 0C 00 (030C - OpCode, 00 - d´elka parametr˚ u). Set Event Filter - OCF 0x0005 Pˇr´ıkaz, kter´ ym se nastavuje: jak´a zaˇr´ızen´ı budou “vyslyˇsena” pˇri Inquiry, se kter´ ymi
2.2 Bluetooth
26
zaˇr´ızen´ımi m˚ uˇze b´ yt nav´az´ano spojen´ı a povoleno ˇci zak´az´ano automatick´e vytvoˇren´ı spojen´ı s Masterem. Pouˇz´ıv´a se pro nastaven´ı zaˇr´ızen´ı typu Slave. Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 05 0C 03 02 00 02 (050C - OpCode, 03 - d´elka parametr˚ u, 02 - typ filtru nastavov´an´ı spojen´ı, 00 - povolen´ı spojen´ı se vˇsemi zaˇr´ızen´ımi bez omezen´ı, 02 - automatick´e spojen´ı). Change Local Name - OCF 0x0013 Pˇr´ıkaz umoˇzn ˇuj´ıc´ı zmˇenit n´azev lok´aln´ıho Bluetooth modulu. N´azev m˚ uˇze b´ yt dlouh´ y 248 byt˚ u. Jedin´ ym parametrem pˇr´ıkazu je poˇzadovan´e jm´eno. N´avratov´ ym parametrem je Status (ud´alost Command Complete). Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 13 0C 0C 0A 62 74 72 63 2D 73 6C 61 76 65 (130C - OpCode, 0C - d´elka parametr˚ u, 0A627472632D736C617665 - ’Bluetoothrc slave’). Read Local Name - OCF 0x0014 Pˇr´ıkaz zjiˇst’uj´ıc´ı n´azev lok´aln´ıho Bluetooth modulu. N´avratov´ ymi parametry jsou Status a jm´eno (Command Complete). Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 14 0C 00 (140C - OpCode, 00 - d´elka parametr˚ u). Write Scan Enable - OCF 0x001A Opˇet pˇr´ıkaz pro zaˇr´ızen´ı typu Slave, kter´ y urˇcuje, zda bude povolen ˇci zak´az´an Inquiry Scan, popˇr. Page Scan. Z´akladn´ı nastaven´ı (po resetu) zakazuje veˇsker´e skeny, tzn., ˇze se Bluetooth modul neodpov´ıd´a Masterovi pˇri skenu. Parametrem je povolen´ı ˇci zak´azan´ı dan´eho skenu, n´avratov´ ym parametrem je Status (Command Complete). Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 1A 0C 01 03 (1A0C - OpCode, 01 - d´elka parametr˚ u, 03 - oba skeny povoleny). Write Page Scan Activity - OCF 0x001C Pˇr´ıkaz, kter´ y nastavuje vlastnosti Page Scan. Opˇet pro zaˇr´ızen´ı typu Slave. Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 1C 0C 04 40 00 20 00 (1C0C - OpCode, 04 - d´elka parametr˚ u, 4000 - interval Page skenu = 40x0.625ms = 64ms, 2000 - okno Page skenu = 32x0.625ms = 20ms). Write Inquiry Scan Activity - OCF 0x001E Podobn´ y jako pˇredchoz´ı, ale pro Inquiry Scan. Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 1E 0C 04 40 00 20 00 (1A0C - OpCode, 04 - d´elka parametr˚ u, 4000 - interval Inquiry skenu = 40x0.625ms = 64ms, 2000 - okno Inyquiry skenu = 32x0.625ms = 20ms). ˇ ´I PR ˇ ´IKAZY - OGF 0x04 INFORMACN Poskytuj´ı informace o Bluetooth zaˇr´ızen´ı a vlastnostech HC. Read Buffer Size - OCF 0x0005 Pˇr´ıkaz, kter´ y slouˇz´ı ke zjiˇstˇen´ı maxim´aln´ıho mnoˇzstv´ı dat ACL a SCO paket˚ u, kter´e
2.2 Bluetooth
27
m˚ uˇze b´ yt zas´ıl´ano od HC k Hostovi. N´avratov´ ymi parametry jsou maxim´aln´ı hodnoty a Status (Command Complete). Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 05 10 00 (0510 - OpCode, 00 - d´elka parametr˚ u). Read BD ADDR - OCF 0x0009 K pˇreˇcten´ı 6-ti bytov´e BD adresy lok´aln´ıho Bluetooth modulu. N´avratov´e parametry jsou BD ADDR a Status. Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 09 10 00 (0910 - OpCode, 00 - d´elka parametr˚ u). Pˇ r´ıkazy STATUS - OGF 0x05 K zjiˇstˇen´ı souˇcasn´eho stavu HC a LM. Get Quality Link - OCF 0x0003 Pˇr´ıkaz, kter´ y vrac´ı hodnotu kvality vytvoˇren´eho spojen´ı. Parametrem je Connecion Handle dan´eho spojen´ı a n´avratov´ ymi Status, Conenction Handle a kvalita linky, kter´a m˚ uˇze b´ yt v rozsahu hodnot 0 - 255. Pˇr´ıklad zasl´an´ı pˇr´ıkazu: 03 14 02 28 00 (0314 - OpCode, 02 - d´elka parametr˚ u, 2800 - Connection Handle).
2.2.4.2
HCI ud´ alosti
Pakety HCI ud´alost´ı pouˇz´ıv´a HC k ohl´aˇsen´ı Hostovi, ˇze doˇslo k nˇejak´e ud´alosti. Host mus´ı b´ yt schopen pˇrijmout paket o velikosti aˇz 255 byt˚ u. Na kaˇzd´ y pˇr´ıkaz, kter´ y Host zaˇsle, obrˇz´ı jednu ˇci v´ıce ud´alost´ı. Jak´e ud´alosti m´ame oˇcek´avat na zaslan´ y pˇr´ıkaz je uvedeno v kapitole 2.2.4.1 u jednotliv´ ych pˇr´ıkaz˚ u. Stavba paketu HCI ud´alost´ı je na obr. 2.12. Kaˇzd´a ud´alost je oznaˇcena k´odem (tedy nˇeco jako OpCode u pˇr´ıkaz˚ u). N´asleduje d´elka parametr˚ u. Parametry jsou opˇet dvoj´ıho typu. Prvn´ım typem jsou parametry samotn´e ud´alosti, druh´ ym typem jsou n´avratov´e parametry pˇr´ıkaz˚ u. Specifikace Bluetooth 1.1, ze kter´e vych´az´ım, definuje 32 r˚ uzn´ ych ud´alost´ı oznaˇcen´ ych 0x01 aˇz 0x20. Opˇet se zm´ın´ım jen o tˇech, se kter´ ymi se v t´eto pr´aci pracuje. Inquiry Complete - 0x01 Ud´alost, kter´a indikuje, ˇze byl ukonˇcen proces vyhled´av´an´ı Inquiry. Jej´ım parametrem je Status (1 byte, pokud probˇehlo v poˇr´adku, pak je Status 0x00). Pˇr´ıklad pˇrijat´e ud´alosti: 01 01 00 (01 - k´od, 01 - d´elka, 00 - Status) Inquiry Result - 0x02 Indikuje, ˇze na Inquiry odpovˇedˇelo jedno nebo v´ıce vzd´alen´ ych zaˇr´ızen´ı. Tˇret´ı aˇz sedmn´act´ y byte pˇrijdou tolikr´at, kolik zaˇr´ızen´ı na Inquiry odpovˇedˇelo. Parametry pˇr´ıkazu jsou napˇr. poˇcet odpovˇed´ı, BD ADDR jednotliv´ ych zaˇr´ızen´ı a hodinov´ y offset.
2.2 Bluetooth
28
Obr´azek 2.12: Stavba paketu HCI ud´alosti
Pˇr´ıklad pˇrijat´e ud´alosti: 02 0F 01 B2 A1 5E 06 00 08 01 00 00 00 00 00 0E 16 (02 - k´od, 0F - d´elka (15), 01 - poˇcet zaˇr´ızen´ı, kter´e odpovˇedˇeli na Inquiry, B2A15E060008 - BD ADDR vzd´alen´e zaˇr´ızen´ı, 010000 - vlastnosti Page skenu, 000000 - tˇr´ıda zaˇr´ızen´ı, 0E16 - hodinov´ y offset). Connection Complete - 0x03 Indikuje obˇema host˚ um (hostovi kaˇzd´e z˚ uˇcastnˇen´e strany), ˇze bylo vytvoˇreno spojen´ı mezi obˇemi zaˇr´ızen´ımi. Parametry pˇr´ıkazu jsou Status, Connection Handle, BD ADDR a typ spojen´ı. Pˇr´ıklad pˇrijat´e ud´alosti: 03 0B 00 28 00 B2 A1 5E 06 00 08 01 00(03 - k´od, 0B - d´elka (11), 00 - Status (OK), 2800 - Connection Handle, B2A15E060008 - BD ADDR, 01 - ACL spojen´ı, 00 - k´odov´an´ı zak´az´ano). Connection Request - 0x04 ˇ adosti m˚ Indikuje novˇe pˇr´ıchoz´ı ˇz´adost pokusu o spojen´ı. Z´ uˇze b´ yt vyhovˇeno nebo m˚ uˇze b´ yt odm´ıtnuta. Parametry jsou BD ADDR, tˇr´ıda zaˇr´ızen´ı a typ spojen´ı. Disconnection Complete - 0x05 Indikuje ukonˇcen´ı spojen´ı mezi dvˇema zaˇr´ızen´ımi. Parametry jsou Status (zda bylo rozpojen´ı u ´spˇeˇsn´e), Connection Handle a d˚ uvod. Pˇr´ıklad pˇrijat´e ud´alosti: 05 04 00 28 00 13(03 - k´od, 04 - d´elka, 00 - Status (OK), 2800 - Connection Handle, 13 - spojen´ı ukonˇceno vzd´alen´ ym zaˇr´ızen´ım). Remote Name Request Complete - 0x07 Indikuje, ˇze ˇz´adosti o zjiˇstˇen´ı jm´ena vzd´alen´eho zaˇr´ızen´ı bylo vyhovˇeno. Parametry jsou Status, BD ADDR a jm´eno vzd´alen´eho zaˇr´ızen´ı. Pˇr´ıklad pˇrijat´e ud´alosti: 07 FF 00 B2 A1 5E 06 00 08 0A 62 74 72 63 2D 73 6C 61 76 65 00 00 ... 00(07 - k´od, FF - d´elka (256), 00 - Status (OK), B2A15E060008 - BD ADDR, 0A 62 74 72 63 2D 73 6C 61 76 65 00 00 ... 00 - jm´eno, kde kaˇzd´ y byte urˇcuje ordin´aln´ı hodnotu znaku).
2.2 Bluetooth
29
Command Complete - 0x0E Je pouˇz´ıv´an HC jako odpovˇed’ na spoustu pˇr´ıkaz˚ u, kdy vrac´ı Status a dalˇs´ı parametry. Indikuje dokonˇcen´ı pˇr´ıkazu. Parametry jsou: poˇcet paket˚ u HCI pˇr´ıkaz˚ u (poˇcet paket˚ u, kter´e m˚ uˇze Host pos´ılat HC), OpCode pˇr´ıkazu (OpCode pˇr´ıkazu, na kter´ y je tato ud´alost odpovˇed´ı) a n´avratov´e parametry pˇr´ıkaz˚ u. Pˇr´ıklad pˇrijat´e ud´alosti: 0E 04 05 0C 00(0E - k´od, 04 - d´elka, 05 0C - OpCode pˇr´ıkazu (Set Event Filter), 00 - Status (n´avratov´ y parametr pˇr´ıkazu Set Event Filter)). Command Status - 0x0F Indikuje, ˇze HC pˇr´ıkaz pˇrijal a zaˇc´ın´a s jeho realizac´ı. Je nutn´ y pro asynchronn´ı operace. Pokud pˇr´ıkaz nem˚ uˇze b´ yt vykon´an, je zasl´ana tato ud´alost s ˇc´ıslem chyby (Status). Parametry jsou: Status, poˇcet paket˚ u HCI pˇr´ıkaz˚ u a OpCode pˇr´ıkazu. Pˇr´ıklad pˇrijat´e ud´alosti: 0F 04 00 01 05 04(0F - k´od, 04 - d´elka, 00 - Status (OK), 01 - poˇcet moˇzn´ ych paket˚ u, 0504 OpCode pˇr´ıkazu (Cerate Connection)). Hardware Error - 0x10 Zas´ıl´a HC v pˇr´ıpadˇe, ˇze doˇslo k HW chybˇe. Parametrem je ˇc´ıslo chyby. Pˇr´ıklad pˇrijat´e ud´alosti: 10 01 00(10 - k´od, 01 - d´elka, 00 - specifick´e ˇc´ıslo). Number Of Completed Packets - 0x13 Indikuje, kolik HCI datov´ ych paket˚ u bylo pˇrijato a odesl´ano HC od posledn´ıho zasl´an´ı t´eto ud´alosti. Na kaˇzd´ y zaslan´ y datov´ y paket pˇrijde Hostovi tato ud´alost. Parametry jsou: poˇcet Connection Handle, Connection Handle a poˇcet odeslan´ ych paket˚ u. Pˇr´ıklad pˇrijat´e ud´alosti: 13 04 01 28 00 01(13 - k´od, 04 - d´elka, 01 - poˇcet spojen´ı, 2800 - Connection Handle, 01 - 1 pˇrijat´ y a odeslan´ y paket).
2.2.4.3
HCI datov´ e pakety
Datov´e pakety slouˇz´ı k v´ ymˇenˇe dat (informac´ı) mezi HC a Hostem. Datov´e pakety je moˇzn´e zas´ılat, aˇz ve chv´ıli, kdy je vytvoˇreno spojen´ı se vzd´alen´ ym Bluetooth zaˇr´ızen´ım. ACL datov´ e pakety ACL datov´ y paket je na obr. 2.13. Prvn´ı 2 byty tvoˇr´ı Connection Handle, tedy jedineˇcn´e ˇc´ıslo spojen´ı, spolu s dalˇs´ımi ˇctyˇrmi bity, kter´ ymi se urˇcuje o jak´a data jde a zda jde o prvn´ı datov´ y paket. Rozd´ıl mezi ACL a SCO datov´ ym paketem je pr´avˇe v tˇechto ˇctyˇrech bitech - u SCO paketu jsou trvale nulov´e. Pak jiˇz n´asleduj´ı 2 byty urˇcuj´ıc´ı d´elku dat a samotn´a data. Pˇr´ıklad datov´eho paketu: 28 20 01 44(2820 - Connection Handle + flag bity (prvn´ı dat. paket), 01 - d´elka, 44 - zaslan´a data).
2.2 Bluetooth
30
Obr´azek 2.13: HCI ACL datov´ y paket
2.2.5
HCI RS232 transportn´ı vrstva
Tato transportn´ı vrstva slouˇz´ı k fyzick´emu pˇrenosu dat mezi Hostem a HC (obr. 2.14).
Obr´azek 2.14: HCI RS232 transportn´ı vrstva Z´akladn´ı pravidla: • pakety HCI pˇr´ıkaz˚ u mohou b´ yt pos´ıl´any pouze Hostem • pakety HCI ud´alost´ı mohou b´ yt zas´ıl´any pouze HC • datov´e pakety mohou b´ yt zas´ıl´any obˇema smˇery HCI nen´ı schopn´e rozliˇsit typ paketu (pˇr´ıkaz, ud´alost, ...). Proto pˇred t´ım, neˇz je paket odesl´an, je potˇreba pˇridat na zaˇc´atek paketu identifik´ator (1 byte - tabulka 2.6). Typ HCI paketu
Identifik´ator
HCI HCI HCI HCI
0x01 0x02 0x03 0x04
pˇr´ıkaz ACL data SCO data ud´alost
Tabulka 2.6: Identifik´atory HCI paket˚ u pˇri komunikaci pˇres RS232 Napˇr´ıklad HCI pˇr´ıkaz Reset je pˇres RS232 zas´ıl´an: 01 03 0C 00 (01 - HCI pˇr´ıkaz, 030C - OpCode, 00 - d´elka).
2.2 Bluetooth
2.2.6
31
L2CAP
L2CAP je protokol logick´eho ˇr´ızen´ı a adaptace spojen´ı (Logical Link Control And Adaptation Protocol). Podporuje protokoly vyˇsˇs´ıch vrstev, segmentov´an´ı (rozdˇelen´ı) paket˚ u a jejich opˇetovn´e sloˇzen´ı. Tento protokol je nad protokolem Baseband a patˇr´ı do vrstvy datov´eho spojen´ı (Basebad patˇr´ı jak do datov´eho, tak i do fyzick´eho spojen´ı). Poskytuje sluˇzby na pˇrenos se spojen´ım (Connection-Oriented) a bez spojen´ı (Connection-Less) vyˇsˇs´ım vrstv´am. Existuj´ı dva typy spojen´ı: asynchronn´ı ACL a synchronn´ı SCO. L2CAP podporuje pouze prvn´ı z nich - ACL (Asynchronous Connection-Less). Kam patˇr´ı
Obr´azek 2.15: L2CAP v architektuˇre Bluetooth protokolu
L2CAP v celkov´e architektuˇre protokolu Bluetooth je vidˇet na obr´azku 2.15. SDP (Service Discovery Protokol), RFCOMM a TCS jsou vyˇsˇs´ı protokoly, kter´e nejsou pro tuto pr´aci d˚ uleˇzit´e a jsou vysvˇetleny ve specifikaci Bluetooth.
Kapitola 3 Realizace vzd´ alen´ eho ˇ r´ızen´ı Realizace vzd´alen´eho ˇr´ızen´ı se skl´ad´a ze 2 ˇc´ast´ı: • bezdr´atov´e ˇr´ızen´ı modelu auta pomoc´ı poˇc´ıtaˇce, popˇr. mobiln´ıho telefonu
Obr´azek 3.1: Soustava bezdr´atov´eho ˇr´ızen´ı
• ˇr´ızen´ı modelu auta pomoc´ı optick´ ych ˇcidel
ˇ ızen´ı pomoc´ı ˇcidel Obr´azek 3.2: R´
32
3.1 Modely aut
3.1
33
Modely aut
Realizace vzd´alen´eho ˇr´ızen´ı pomoc´ı poˇc´ıtaˇce s modulem Bluetooth a ˇr´ızen´ı mobiln´ım telefonem byly v r´amci dvou souˇcasnˇe bˇeˇz´ıc´ıch projekt˚ u. Prvn´ım projektem byla diplomov´a pr´ace “Model Remote Control”(d´ale DP), druh´ ym byl projekt “Bluetooth Remote Control” (BTRC) pro V´ yzkumn´e a v´ yvojov´e centrum v Praze (www.rdc.cz). Pro kaˇzd´ y z tˇechto projekt˚ u jsem mˇel k dispozici jin´ y model automobilu, na kter´ ych byly provedeny odliˇsn´e u ´pravy. Spoleˇcn´ ym c´ılem obou projekt˚ u byla demonstrace bezdr´atov´eho ˇr´ızen´ı zvolen´eho modelu. C´ılem DP byla nav´ıc moˇznost ˇr´ızen´ı ´ pomoc´ı optick´ ych ˇcidel. Upravy model˚ u se liˇsily v z´avislosti na splnˇen´ı zmiˇ novan´ ych c´ıl˚ u.
3.1.1
Model auta pro DP
Model auta (obr. 3.3) byl zakoupen ˇskolou a jeho v´ ybˇer jsem nemohl ovlivnit. 1 Jednalo se o RC model. Poh´anˇen byl stejnosmˇern´ ym motorem, a to pouze jednou rychlost´ı vpˇred a vzad. Zat´aˇcen´ı bylo ˇreˇseno pomoc´ı c´ıvky s vinut´ım a dvˇema magnety pˇripojen´ ymi k pˇredn´ı n´apravˇe. V z´avislosti na polaritˇe vinut´ı c´ıvky byl pˇritahov´an prvn´ı nebo druh´ y magnet. Na ploˇsn´e desce byl vys´ılaˇc pro pˇr´ıjem pˇr´ıkaz˚ u z vys´ılaˇce. Model byl nap´ajen ˇctyˇrmi dob´ıjec´ımi monoˇcl´anky, tzn. v nabit´em stavu 4x1.2V.
Obr´azek 3.3: Model auta pro DP
3.1.1.1
Potˇ rebn´ eu ´ pravy
Aby byl model l´epe ovladateln´ y, bylo tˇreba pˇridat k motoru dalˇs´ı elektroniku pro pohyb r˚ uzn´ ymi rychlostmi a obˇema smˇery. Podobnˇe i zat´aˇcen´ı bylo potˇreba zmˇenit tak, aby bylo moˇzn´e nastavit v´ıce u ´hl˚ u natoˇcen´ı vlevo a vpravo. Jelikoˇz st´avaj´ıc´ı ˇreˇsen´ı nebylo moˇzn´e upravit, aby vyhovovalo zad´an´ı, bylo nutn´e ho novˇe navrhnout. Kromˇe u ´pravy akˇcn´ıch ˇclen˚ u, bylo potˇreba pˇridat d´alkov´ y pˇrij´ımaˇc a vys´ılaˇc (Bluetooth modul) vˇcetnˇe mikroprocesoru, kter´ y bude komunikovat s Bluetooth modulem 1
Radio Control model - ˇr´ızen radiov´ ymi sign´aly v p´asmu 27MHz
3.1 Modely aut
34
a na z´akladˇe pˇrijat´ ych dat ovl´adat motory a pos´ılat v pravideln´ ych ˇcasov´ ych intervalech informaci o stavu nabit´ı akumul´ator˚ u do poˇc´ıtaˇce. Blokov´e sch´ema elektroniky v modelu auta je na obr. 3.4. Barevnˇe jsou odliˇseny nap´ajec´ı u ´rovnˇe.
Obr´azek 3.4: Sch´ema elektroniky
3.1.1.2
Mikroprocesor
V´ yrobc˚ u mikroprocesor˚ u je cel´a ˇrada: Microchip, Atmel, Elan, Nec, Intel, atd.
Obr´azek 3.5: Mikroprocesor PIC 16F874
Z cel´e ˇrady tˇechto v´ yrobc˚ u jsem zvolil firmu Microchip. Hlavn´ım d˚ uvodem bylo, ˇze mikroprocesory t´eto firmy se pouˇz´ıvaj´ı v r´amci v´ yuky na katedˇre a tento model
3.1 Modely aut
35
m´a slouˇzit pro v´ yuku. Ze stejn´eho d˚ uvodu jsem vybral i mikroprocesor PIC 16F874 (obr´azek 3.5), se kter´ ym studenti pracuj´ı a z´aroveˇ n vyhovuje poˇzadavk˚ um t´eto u ´lohy. Z´ akladn´ı parametry PIC16F874: • RISC procesor
2
• 35 instrukc´ı (jednocyklov´e, instrukce vˇetven´ı dvoucyklov´e) • extern´ı frekvence aˇz DC 20MHz • 8-mi u ´rovˇ nov´ y z´asobn´ık • aˇz 14 zdroj˚ u pˇreruˇsen´ı • pˇr´ım´e, nepˇr´ım´e adresov´an´ı • nap´ajen´ı od 2.5V do 5.5V, n´ızk´a spotˇreba (do 0.6mA pˇri 3V a 4MHz) • proudov´e zat´ıˇzen´ı I/O3 pin˚ u (v´ yvod˚ u) ± 25mA • 10-bitov´ y A/D4 pˇrevodn´ık - 8 moˇzn´ ych vstup˚ u • pˇet I/O port˚ u: A,B,C,D,E • 2 piny (TX, RX) pro komunikaci pˇres RS232 • datov´a pamˇet’ 192 byt˚ u V tabulce 3.1 jsou vysvˇetleny jednotliv´e piny, kter´e jsem v pr´aci vyuˇzil. Zapojen´ı mikroprocesoru s krystalem je souˇc´ast´ı pˇr´ılohy. Krystal jsem pouˇzil extern´ı s maxim´aln´ı moˇznou frekvenc´ı 20MHz - jeden strojov´ y cyklus mikroprocesoru trv´a 200ns (1/20000000/4[s]). 3.1.1.3
Bluetooth modul
Bluetooth modul pln´ı v modelu auta roli r´adiov´eho pˇrij´ımaˇce a vys´ılaˇce. S mikroprocesorem je propojen s´eriov´ ym rozhran´ım (kapitola 3.1.1.2).
Obr´azek 3.6: Bluetooth modul v modelu auta 2
Procesor s redukovanou (omezenou) instrukˇcn´ı sadou. I - input, vstupn´ı; O - output, v´ ystupn´ı 4 Analogovˇe-ˇc´ıslicov´ y pˇrevodn´ık 3
3.1 Modely aut
PIN
N´ azev
1 2 3 4 5 8 9 11 12 24 25 26 31 32 34 35 37 38 39 40
VPP RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3 VSS OSC1 VDD VSS RC5 TX RX VSS VDD RB1 RB2 RB4 RB5 RB6 RB7
36
Pouˇ zit´ı Vstup, reset Vstup A/D pˇrevodn´ıku, pˇripojen k akumul´ator˚ um v modelu Vstup A/D pˇrevodn´ıku, pˇripojen k 1. optick´emu ˇcidlu Vstup A/D pˇrevodn´ıku, pˇripojen k 2. optick´emu ˇcidlu Vstup A/D pˇrevodn´ıku Vstup, nap´ajen´ı 5V Vstup hodinov´eho oscil´atoru, sign´al z ext. krystalu 20MHz Vstup, zem, 0V Vstup, nap´ajen´ı 5V V´ ystup, HW reset modulu Bluetooth V´ ystup, komunikace s modulem Bluetooth pˇres RS232 Vstup, komunikace s modulem Bluetooth pˇres RS232 Vstup, nap´ajen´ı 5V Vstup, zem, 0V V´ ystup, ˇr´ızen´ı stejnosmˇern´eho motoru smˇerem vpˇred V´ ystup, ˇr´ızen´ı stejnosmˇern´eho motoru smˇerem vzad V´ ystup, ˇr´ızen´ı servo motoru Vstup/v´ ystup V´ ystup, signalizace LED diody o reˇzimu ˇr´ızen´ı V´ ystup, signalizace LED diody o stavu spojen´ı
Tabulka 3.1: Popis pouˇzit´ ych pin˚ u mikroprocesoru PIC
Modul firmy Siemens, rozˇs´ıˇren´ y o ant´enu a s vyveden´ ymi piny, byl zakoupen od 5 firmy Czechlabs a je na obr´azku 3.6. Um´ıstˇen je v modelu auta a v komunikaci pln´ı roli Slave6 . V tabulce 3.2 jsou uvedeny v´ yznamy jednotliv´ ych pin˚ u Bluetooth modulu, kter´e jsou v pr´aci vyuˇzity (ˇc´ıslov´any zleva doprava). PIN
N´ azev
1 2 3 4 5 7 17
VCC CTS RTS TX RX GND Reset
Pouˇ zit´ı Nap´ajen´ı (3.3V) ˇ ızen´ı pˇrenosu (handshake) R´ ˇ ızen´ı pˇrenosu (handshake) R´ Vys´ıl´an´ı - komunikace s mikroprocesorem pˇres RS232 Pˇr´ıjem - komunikace s mikroprocesorem pˇres RS232 Zem, logick´a 0 Hardwarov´ y reset
Tabulka 3.2: Popis pin˚ u pouˇzit´eho modulu Bluetooth Bluetooth modul vyˇzaduje nap´ajen´ı 3.3V, kter´e z´ısk´ame z 5V zapojen´ım napˇet’o5 6
V´ıce informac´ı na www.czechlabs.cz. Slave - poslouch´ a pokyny hlavn´ıho modulu - Mastera.
3.1 Modely aut
37
v´eho stabiliz´atoru LF33CDT ihned na v´ ystup dc-dc mˇeniˇce. Mikroprocesor PIC je nap´ajen 5V - logick´a jedniˇcka na v´ ystupn´ım pinu odpov´ıd´a tomuto napˇet´ı. Komunikace pˇres RS232 prob´ıha tedy na u ´rovni 0V a 5V. Narozd´ıl od modulu Bluetooth, kter´ y m´a u ´rovnˇe 0V a 3.3V. Z toho d˚ uvodu bylo potˇreba upravit 5V u ´roveˇ n z PICu (pin TX) na u ´roveˇ n 3.3V, aby mohla b´ yt propojena se vstupem Bluetooth modulu (TX). Opaˇcn´ ym smˇerem nen´ı u ´prava u ´rovnˇe sign´alu potˇreba, protoˇze PIC rozpozn´av´a 3.3V jiˇz jako logickou jedniˇcku.
Obr´azek 3.7: Sch´ema 74LVX245 Funkci pˇrevodn´ıku 5V na 3.3V ˇreˇs´ı integrovan´ y obvod 74LVX245, jehoˇz sch´ema je na obr´azku 3.7. Popis jednotliv´ ych v´ yvod˚ u je v tabulce 3.3. PIN
N´ azev
Pouˇ zit´ı
1 2-9 10 11-18 19 20
T/R A0-A9 GND B0-B9 CE VCC
Smˇer pˇrenosu Vstupn´ı/v´ ystupn´ı piny Zem, 0V V´ ystupn´ı/vstupn´ı piny Povolen´ı pˇrenosu Nap´ajen´ı 3.3V
Tabulka 3.3: Popis pin˚ u pˇrevodn´ıku 74LVX245
V zavislosti na vstupu T/R je urˇcen smˇer pˇrevodu (pro T/R = 1 je smˇer z Ai do Bi ). Vstupn´ı napˇet´ı, kter´e mus´ı b´ yt v rozsahu 0V aˇz 5.5V je pˇrev´adˇeno na nap´ajec´ı napˇet´ı. V naˇsem pˇr´ıpadˇe z napˇet´ı 5V na napˇet´ı 3.3V, kter´ ym mus´ı b´ yt obvod nap´ajen. 3.1.1.4
Akˇ cn´ı ˇ clen - servomotor
Jak jiˇz bylo ˇreˇceno, c´ılem u ´pravy zat´aˇcen´ı bylo z´ıskat v´ıce poloh natoˇcen´ı pˇredn´ı n´apravy. To znamenalo n´ahradu st´avaj´ıc´ı konstrukce. N´aˇs poˇzadavek splˇ nuje servomotor, kter´ y umoˇzn ˇuje nastavit zadanou polohu. Poˇzadavky na servomotor byly dan´e modelem auta: mal´e rozmˇery, nap´ajen´ı maxim´alnˇe 5V a takovou s´ılu, aby zvl´adl toˇcit pˇredn´ı n´apravou i na m´ıstˇe. Model
3.1 Modely aut
38
auta v´aˇz´ı cca 1 kilogram. Volba nakonec padla na servo HS-81 firmy HITEC (obr´azek ˇ ıdic´ı vstup je ˇr´ızen pomoc´ı pulsn´ı ˇs´ıˇrkov´e modulace PWM (Pulse Width Mo3.8). R´ dulation - obr. 3.9).
Obr´azek 3.8: Servomotor Parametry servomotoru: • 3 vstupy: nap´ajen´ı 4.8 - 6V, zem a ˇr´ıdic´ı vstup • pracuje v teplotn´ım rozsahu -20◦ C aˇz +60◦ C • s´ıla 2.6N.m (pˇri 5V) • ˇr´ızen´ı 0.9 - 2.1ms, kdy 1.5ms je neutr´aln´ı poloha a perioda 20ms • odbˇer pˇri bˇehu 220mA • v´aha 16.6g
ˇ Obr´azek 3.9: Casov´ e pr˚ ubˇehy PWM pro servomotor
Nejvˇetˇs´ım probl´emem bylo uchycen´ı servomotoru v modelu a jeho spojen´ı s pˇredn´ı n´apravou. Moˇzn´ ych ˇreˇsen´ı existuje nˇekolik, ale vˇetˇsina neˇsla realizovat z d˚ uvodu ˇspatn´e konstrukce modelu, kter´a neumoˇzn ˇovala proporcion´aln´ı zat´aˇcen´ı. ˇ C´ast z umˇel´e hmoty, ve kter´e byl um´ıstˇen magnet, byla pˇripevnˇena pˇr´ımo k t´ahl˚ um pˇredn´ı n´apravy a vykazovala velikou v˚ uli.
3.1 Modely aut
39
Obr´azek 3.10: Zp˚ usob pˇripojen´ı serva k pˇredn´ı n´apravˇe
Nejlepˇs´ım technick´ ym ˇreˇsen´ım by bylo pˇrichytit servomotor pˇr´ımo k tˇemto t´ahl˚ um, ale toto bylo vzhledem k parametr˚ um modelu nerealizovateln´e. Proto nejlepˇs´ım ˇreˇsen´ım bylo pouˇzit´ı ˇcepu (ˇsroubu navrtan´eho m´ısto magnetu) a vidlice, kter´a je pˇripevnˇena k servomotoru (obr. 3.10). I toto ˇreˇsen´ı vˇsak neumoˇzn ˇuje v´ıce jak 2 polohy vlevo a vpravo. 3.1.1.5
Akˇ cn´ı ˇ clen - ss motor
Zat´ımco u zat´aˇcen´ı bylo potˇreba elektroniku nahradit, u stejnosmˇern´eho motoru bylo moˇzn´e ponechat pouˇzit´ y motor a jen doplnit elektroniku, kter´a by umoˇzn ˇovala ˇr´ıdit motor obˇema smˇery pomoc´ı PWM. Stejnosmˇern´ y motor roztoˇc´ıme na r˚ uzn´e strany zmˇenou polarity vstupn´ıho napˇet´ı. Tohoto dos´ahneme m˚ ustkem podle [2]. Zapojen´ı takov´eho obvodu z diskr´etn´ıch souˇc´astek je sloˇzitˇejˇs´ı oproti pouˇzit´ı speci´aln´ıho integrovan´eho obvodu, napˇr. obvodu L293b. Zapojen´ı s t´ımto obvodem bylo souˇc´ast´ı n´avrhu desky ploˇsn´ ych spoj˚ u, ale uk´azalo se jako nedokonal´e. Na tomto obvodu se “ztr´ac´ı” napˇet´ı (saturaˇcn´ı) u ´mˇern´e proch´azej´ıc´ımu proudu a v naˇsem pˇr´ıpadˇe (0.5A) to bylo aˇz 2.6V. Ve v´ ysledku byl stejnosmˇern´ y motor nap´ajen pouze 2.4V a dod´avan´ y proud nepˇrekroˇcil 0.4A. Bohuˇzel i dalˇs´ı integrovan´e obvody pro ˇr´ızen´ı PWM byly dimenzov´any pro nap´ajen´ı alespoˇ n 12V. Stejnosmˇern´ y motor v modelu auta potˇrebuje pro okamˇzit´ y rozjezd ˇspiˇckovˇe aˇz 5A, v ust´alen´em stavu (pˇri bˇehu) cca 0.5A. Pro moˇznost ˇr´ıdit motor pomoc´ı PWM, bylo nutn´e sestavit m˚ ustek, kter´ y je schopen potˇrebn´ y proud dodat. Z toho d˚ uvodu nen´ı moˇzn´e pouˇz´ıt bipol´arn´ı tranzistory, u kter´ ych se v otevˇren´em stavu projevuje saturace a nedojde k jejich u ´pln´emu otevˇren´ı, coˇz zp˚ usob´ı omezen´ı proudu do motoru a samozˇrejmˇe pokles napˇet´ı, kter´e je na motor pˇrivedeno. Proto je koneˇcn´ ym ˇreˇsen´ım m˚ ustek realizovan´ y z dvojic unipol´arn´ıch tranzistor˚ u MOSFET ([4]). Konkr´etnˇe jsem pouˇzil tranzistory IRF 7416 (typ P) a 7413 (typ N) pro kaˇzdou vˇetev m˚ ustku. Jejich d˚ uleˇzitou vlastnost´ı je “propustnost” 5A (Drain - Source) jiˇz pˇri napˇet´ı 3V (Gate - Source). Zapojen´ı m˚ ustku je vidˇet na obr.
3.1 Modely aut
40
3.11. M˚ ustek je nap´ajen pˇr´ımo z akumul´ator˚ u (tedy vstup dc-dc), aby proudovˇe nezatˇeˇzoval dc-dc mˇeniˇc.
Obr´azek 3.11: Sch´ema zapojen´ı H-m˚ ustku pro ˇr´ızen´ı ss motoru
3.1.1.6
A/D pˇ revodn´ık
A/D pˇrevodn´ık pˇrev´ad´ı napˇet’ovou u ´roveˇ n na odpov´ıdaj´ıc´ı ˇc´ıslicovou hodnotu v z´avislosti na nastaven´e referenci a je pˇr´ımo souˇc´ast´ı mikroprocesoru. Referenˇcn´ı hodnoty napˇet´ı mohou b´ yt d´any nap´ajec´ım napˇet´ım (pouˇzito v t´eto pr´aci) nebo jin´ ymi hodnotami napˇet´ı pˇriveden´ ymi na referenˇcn´ı vstupy. V tomto pˇr´ıpadˇe je spodn´ı mez d´ana 0V a horn´ı 5V, takˇze minim´aln´ı hodnota 0 odpov´ıd´a 0V a maxim´alˇ ıslo 1024 proto, ˇze jsme pouˇzili 10-ti bitov´ n´ı hodnota 1024 odpov´ıd´a 5V. C´ y pˇrevodn´ık. A/D pˇrevodn´ık jsem pouˇzil ze dvou d˚ uvod˚ u. Prvn´ım je potˇreba zobrazen´ı aktu´aln´ı informace o stavu napˇet´ı akumul´ator˚ u. Druh´ ym d˚ uvodem je potˇreba z´ısk´an´ı ˇc´ıseln´e informace z optick´ ych ˇcidel. Zat´ımco informace o stavu akumul´ator˚ u je mikroprocesorem pouze posl´ana do PC, informace z ˇcidel jsou mikroprocesorem vyhodnoceny a pokud je model ve stavu automatick´eho ˇr´ızen´ı, rozhoduje na jejich z´akladˇe o ˇr´ızen´ı motor˚ u. Proto, abychom mohli napˇet’ovou u ´roveˇ n pˇriv´adˇet na analogov´ y vstup mikroprocesoru, mus´ıme zajistit jej´ı dostateˇcnˇe mal´ y odpor. K tomuto u ´ˇcelu slouˇz´ı zapojen´ı s operaˇcn´ım zesilovaˇcem [2]. K u ´pravˇe sign´al˚ u z ˇcidel jsem pouˇzil zapojen´ı rozd´ılov´eho zesilovaˇce (obr. 3.12a) se zes´ılen´ım rovno jedn´e. T´ım na v´ ystupu z´ısk´am rozd´ılov´e napˇet´ı a s velmi mal´ ym odporem ([2] a [3]). Napˇet’ov´a u ´rovˇen ˇ z akumul´ator˚ u je nejdˇr´ıve zapojena k odporov´emu dˇeliˇci (pomˇer 1:2), aby v pˇr´ıpadˇe pˇripojen´ı jin´eho zdroje energie, nedoˇslo k pˇripojen´ı v´ıce jak 5V na vstup mikroprocesoru (oˇsetˇren´ı pro nap´ajen´ı do 11V). V´ ysledek je pˇriveden na vstup napˇet’ov´eho sledovaˇce (obr. 3.12b), ˇc´ımˇz opˇet zajist´ıme velmi mal´ y v´ ystupn´ı odpor. Operaˇcn´ı zesilovaˇce (d´ale OZ) jsou realizov´any integrovan´ ym obvodem NE5532 (obr. 3.13), kter´ y obsahuje 2 OZ. Pro zapojen´ı sign´al˚ u z ˇcidel a akumul´ator˚ u jsou potˇreba dva tyto obvody.
3.1 Modely aut
41
Obr´azek 3.12: Diferenˇcn´ı zesilovaˇc a), napˇet’ov´ y sledovaˇc b)
Obr´azek 3.13: Integrovan´ y obvod NE5532
Jednotliv´e v´ ystupy ze zesilovaˇc˚ u je moˇzn´e pˇriv´ezt pˇr´ımo na vstupy mikroprocesoru a d´ale ˇreˇsit softwarovˇe. 3.1.1.7
DC-DC mˇ eniˇ c
Aby mohl navrˇzen´ y eletronick´ y syst´em fungovat a b´ yt nap´ajen akumul´atory i pˇri jejich ˇc´asteˇcn´em vybit´ı, bylo potˇreba stabilizovat 5V pomoc´ı bloku s integrovan´ ym 7 obvodem MAX608. Zapojen´ı tohoto obvodu je zvyˇsuj´ıc´ı dc-dc mˇeniˇc [2]. Sch´ema ymˇenˇe akumul´atoru za typ s vyˇsˇs´ım napˇet´ım je moˇznost zapojen´ı je na obr. 3.14. Pˇri v´ oddˇelit tento dc-dc mˇeniˇc od ostatn´ı elektroniky na desce a pˇriv´est vlastn´ı nap´ajen´ı. K tomuto slouˇz´ı jumpery (pˇrep´ınaˇce) J9 a J10. Za t´ımto dc-dc mˇeniˇcem je pˇripojen LC filtr (L2, C6), kter´ y sniˇzuje zvlnˇen´ı a pˇrekmity v´ ystupn´ıho napˇet´ı. Hodnoty indukˇcnosti a kapacity byly stanoveny experiment´alnˇe a to s v´ ysledkem: zvlnˇen´ı napˇet´ı max. 100mV a maxim´aln´ı pˇrekmit 250mV se stˇredn´ı hodnotou 5.07V pˇri z´atˇeˇzi 200mA. Indukˇcnosti pouˇzit´e v tomto zapojen´ı mus´ı m´ıt velmi mal´ y vnitˇrn´ı odpor. Pouˇzil jsem indukˇcnosti s odporem 0.1Ω, kter´e jsou k dost´an´ı u firmy Spezial (www.spezial.cz). ˇ e republice bˇeˇznˇe k dost´an´ı a bylo nutn´e ho jako vzorek obMAX608 nen´ı v Cesk´ 7
Mˇen´ı stejnosmˇern´e napˇet´ı opˇet na stejnosmˇern´e, vyˇsˇs´ı nebo stejn´e hodnoty.
3.1 Modely aut
42
Obr´azek 3.14: Sch´ema zapojen´ı obvodu dc-dc
jednat pˇr´ımo od v´ yrobce (http://www.maxim-ic.com). Mosfet pro toto zapojen´ı byl pouˇzit s rozhodovac´ı u ´rovn´ı 2.7V (LL logika) a opˇet s mal´ ym vnitˇrn´ım odporem. 3.1.1.8
Optick´ aˇ cidla
Z´akladn´ım zp˚ usobem jak realizovat sledov´an´ı barvy jsou optick´a ˇcidla. Optick´ ych ˇcidel exituje cel´a ˇrada, nˇekter´a z nich byla jiˇz pouˇzita v jin´e diplomov´e pr´aci na naˇs´ı ˇskole (napˇr. barevn´e m´ıˇcky). V pˇr´ıpadˇe barevn´ ych m´ıˇck˚ u se jednalo o ˇcidla FX-D1P ([12]), kter´a jsou schopna rozeznat aˇz 5 barev. Tyto ˇcidla se pro tuto u ´lohu nehod´ı: vysok´a cena a spotˇreba. ˇ sen´ım jsou optick´a ˇcidla tvoˇren´a infraˇcervenou diodou a optick´ Reˇ ym tranzistorem. Funguj´ı na principu osvˇetlen´ı b´aze optotranzistoru odraˇzen´ ym svˇetlem z diody. Tranzistor se “otevˇre” v z´avisloti na intenzitˇe odraˇzen´eho svˇetla. Pˇri pouˇzit´ı optick´eho ˇcidla CNY70 m´ame obˇe souˇc´astky pohromadˇe (diodu i tranzistor) a nemus´ıme se starat o jejich vz´ajemnou polohu. Je bˇeˇznˇe dostupn´e a stoj´ı ˇ ˇr´adovˇe des´ıtky korun. Cidlo i jeho sch´ema ukazuje obr. 3.15. Funkce tohoto ˇcidla
Obr´azek 3.15: Optick´e ˇcidlo CNY70
spoˇc´ıv´a v odrazivosti a vzd´alenosti d plochy (obr. 3.16). V t´eto pr´aci jsem vyuˇzil matn´eho ˇcern´eho pap´ıru v kontrastu s leskl´ ym b´ıl´ ym pap´ırem.
3.1 Modely aut
43
Obr´azek 3.16: Funkce ˇcidla CNY70
Dr´ahu jsem zhotovil z matn´eho ˇcern´eho pap´ıru a jej´ı okol´ı z leskl´eho b´ıleho. Abychom mohli sledovat cestu v rovinˇe, mus´ıme ˇcidel pouˇz´ıt v´ıce. Minim´aln´ı poˇcet jsou dvˇe. P˚ uvodn´ı n´avrh poˇc´ıtal s tˇremi ˇcidly (obr. 3.17a), kde poˇc´ateˇcn´ı stav byl: prostˇredn´ı ˇcidlo na dr´aze a krajn´ı mimo dr´ahu. Opuˇstˇen´ı vytyˇcen´e trasy pozn´ame ˇıˇrka ˇc´ary mus´ı b´ ve chv´ıli, kdy se na ˇc´aˇre objev´ı jedno z krajn´ıch ˇcidel. S´ yt rovna vzd´alenosti optotranzistor˚ u, ˇc´ımˇz zajist´ıme, ˇze se bude na dr´aze vˇzdy vyskytovat pouze jedno ˇcidlo. Poˇcet ˇcidel sn´ıˇz´ıme pokud zapoj´ıme pouze dvˇe podle obr. 3.17b. Poˇc´ateˇcn´ı stav: obˇe ˇcidla na dr´aze, vyjet´ı z dr´ahy n´am signalizuje ˇcidlo, kter´e se objev´ı mimo dr´ahu.
Obr´azek 3.17: Moˇznosti orientace v rovinˇe Deska ploˇsn´ ych spoj˚ u je navrˇzena pro obˇe ˇreˇsen´ı, tedy obsahuje tˇr´ıvstupov´ y konektor pro ˇcidla. V´ ybˇer poˇctu z´avis´ı jen na zvolen´em algoritmu v mikroprocesoru. Napˇet´ı, kter´e namˇeˇr´ıme na kolektoru tranzistoru m˚ uˇzeme zpracovat dvˇema zp˚ usoby: 1. pˇriv´ezt na vstup kompar´atoru, kde je druh´ y vstup nastaven na zlomov´e napˇet´ı
3.1 Modely aut
44
a v´ ystup kompar´atoru (logick´a 1 nebo 0) pˇriv´ezt na bin´arn´ı vstup mikroprocesoru - HW ˇ reˇ sen´ı 2. pˇriv´ezt na analogov´ y vstup mikroprocesoru a po A/D pˇrevodu programovˇe nastavit zlomovou hodnotu - SW ˇ reˇ sen´ı V t´eto u ´loze byl pouˇzit druhy zp˚ usob, tedy SW ˇreˇsen´ı. Sch´ema zapojen´ı desky s tˇremi ˇcidly je na obr. 3.18. Zapojen´ı s dvˇema ˇcidly je analogick´e.
Obr´azek 3.18: Sch´ema zapojen´ı optick´ ych ˇcidel
3.1.1.9
V´ ysledn´ a deska ploˇ sn´ ych spoj˚ u
N´avrh zapojen´ı elektroniky a n´asledn´ y n´avrh desky jsem vypracoval v programov´em prostˇred´ı OrCad v.9.2. N´avrh elektroniky a jednotliv´e vrstvy jsou v pˇr´ıloze. Samotn´a deska je na obr. 3.22. Na desce je 11 konektor˚ u: J1 - konektor pro modul Bluetooth. J2 - konektor pro vstup nap´ajen´ı z akumul´ator˚ u auta. J3 - konektor pro nap´ajen´ı a ˇr´ızen´ı servomotoru. J4 - konektor pro nap´ajen´ı a z´aroveˇ n ˇr´ızen´ı stejnosmˇern´eho motoru. J5 - konektor pro nap´ajen´ı ˇcidel na podvozku auta. J6 - konektor pomocn´ ych vstup˚ u-v´ ystup˚ u. J7 - konektor pro pˇriveden´ı napˇet´ı z ˇcidel a akumul´ator˚ u. J8 - konektor pro reset mikroprocesoru. Pokud jsou spojeny piny 1 a 2, PIC pracuje norm´alnˇe, pˇri spojen´ı pin˚ u 2 a 3 dojde k jeho resetu. J9 a J10 - konektory pro v´ ybˇer vstupn´ıho nap´ajen´ı desky. Pokud jsou spojeny piny 1 a 2, pak je deska nap´ajena z dc-dc mˇeniˇce. Pokud jsou rozpojen´e, oˇcek´av´a se pˇriveden´ı 5V resp. 0V na pin 2 nebo 3 konektoru J9 resp. J10.
3.1 Modely aut
45
Obr´azek 3.19: V´ ysledn´a deska
J11 - konektor pro v´ ybˇer nap´ajen´ı stejnosmˇern´eho motoru. Pokud jsou spojeny piny 1 a 2, pak je motor nap´ajen ze vstupu dc-dc mˇeniˇce (z akumul´ator˚ u). Pokud jsou rozpojen´e, oˇcek´av´a se se pˇriveden´ı 5V na pin 2 nebo 3.
3.1.2
Model auta pro BTRC
ym Model auta je opˇet RC model (1:6) (obr. 3.20). Pohon je ˇreˇsen stejnosmˇern´ motorem, kter´ y je nap´ajen pˇr´ım´e z dob´ıjec´ıho 12V akumul´atoru. Pˇredn´ı n´aprava je ovl´ad´ana stejnosmˇern´ ym motorem, kter´ y toˇc´ı koly doleva a doprava. Krajn´ı poloha je signalizov´ana propojen´ım vodiˇc˚ u v konstrukci pˇredn´ı n´apravy. Realizace modelu Nenavrhovala se cel´a elektronika jako u modelu pro DP, ale pouze tzv. pˇr´ıdavn´a elektronika, kter´a nahradila integrovan´ y obvod, kter´ y byl souˇc´ast´ı p˚ uvodn´ıho ˇreˇsen´ı a kter´ y ˇr´ıdil model na z´akladˇe sign´al˚ u pˇrijat´ ych z r´adiov´eho pˇrij´ımaˇce. Vstupy tohoto obvodu byly v´ ystupy r´adiov´eho pˇrij´ımaˇce na desce, v´ ystupy byly sign´aly vpˇred, vzad, vlevo a vpravo. Nap´ajen byl 3.3V. Blokov´e sch´ema pˇr´ıdavn´e elektroniky je na obr. 3.21. Sch´ema zapojen´ı pˇr´ıdavn´e elektroniky naleznete v pˇr´ıloze. Mikroprocesor Mikroprocesor jsme pouˇzili PIC 16F874 firmy Microchip s extern´ım krystalem 4MHz. Pouˇzit´ım pomalejˇs´ıho krystalu doˇslo tak´e ke sn´ıˇzen´ı pˇrenosov´e rychlosti po RS232 mezi mikroprocesorem a Bluetooth modulem z 57.6kbps na 9.6kbps. Pouˇzit´ı
3.1 Modely aut
46
odliˇsn´eho krystalu o proti DP nebylo nijak u ´mysln´e, pouze byl “k dispozici” a u ´ˇcel˚ um t´eto u ´lohy vyhovoval.
Obr´azek 3.20: Model auta pro BTRC
Obr´azek 3.21: Blokov´e sch´ema pˇr´ıdavn´e elektroniky ´ Urovnˇ e v´ ystupn´ıch pin˚ u mikroprocesoru pro ˇr´ızen´ı modelu jsou pˇres pˇrevodn´ık 74LVX245 pˇrevedeny na 0 a 3.3V a pot´e pˇripojeny na p˚ uvodn´ı v´ ystupy IO. Pˇrevodn´ık je nap´ajen z p˚ uvodn´ı desky 3.3V. Bluetooth modul Dalˇs´ı zmˇenou byl Bluetooth modul. Pro tuto pr´aci jsme pouˇzili modul s vyveden´ ym konektorem pro RS232 (pro PC) a s nap´ajen´ım 5V, opˇet nab´ızen´ y firmou Czechlabs. Tento Bluetooth modul (piny RX a TX) musel b´ yt k mikroprocesoru (k pin˚ um RX a TX) pˇripojen pˇres RS232 konektor a pˇres integrovan´ y obvod MAX232, kter´ y pˇrev´ad´ı napˇet’ov´e u ´rovnˇe s´eriov´eho kan´alu poˇc´ıtaˇce na u ´roveˇ n 0 a 5V. Deska s pˇr´ıdavnou elektronikou je nap´ajena 12V pˇr´ımo z akumul´ator˚ u. Pˇres napˇet’ov´ y stabiliz´ator 7805 (5V) je nap´ajen Bluetooth modul, mikroprocesor a MAX 3232. Pokud hodnota akumul´atoru neklesne pod 7.5V, je zaruˇcena spr´avn´a funkce
ˇ ıdic´ı syst´ 3.2 R´ em
47
stabiliz´atoru 7805. V pˇr´ıpadˇe, ˇze se hodnota bl´ıˇz´ı t´eto hranici, mikroprocesor poˇsle zpr´avu do mobiln´ıho telefonu. A/D pˇ revodn´ık Napˇet´ı z akumul´ator˚ u je pˇres odporov´ y dˇeliˇc (1:3) pˇrivedeno opˇet pˇres napˇet’ov´ y sledovaˇc na analogov´ y pin mikroprocesoru. A/D pˇrevodn´ıkem je zpracov´av´ana informace o stavu nabit´ı akumul´ator˚ u.
3.2
ˇ ıdic´ı syst´ R´ em
V t´eto pr´aci jsou uk´az´any realizace dvou moˇzn´ ych ˇr´ıdic´ıch syst´emu - osobn´ıho poˇc´ıtaˇce s pˇripojen´ ym Bluetooth modulem a mobiln´ım telefonem podporuj´ıc´ım technologii Bluetooth.
3.2.1
PC s Bluetooth modulem
ˇ ıdic´ı syst´em tvoˇren´ R´ y osobn´ım poˇc´ıtaˇcem s ovl´adac´ım softwarem a Bluetooth modulem pˇripojen´ ym pˇres rozhran´ı RS232 je na obr. 3.22. Bluetooth modul, kter´ y je k poˇc´ıtaˇci pˇripojen, je ve vytv´aˇren´em spojen´ı v reˇzimu Master, to znamen´a t´ım, kdo spojen´ı vytv´aˇr´ı a ˇr´ıd´ı.
Obr´azek 3.22: Sch´ema ˇr´ıdic´ıho syst´emu Zat´ımco v modelu auta je pouˇzit samostatn´ y modul Bluetooth, k poˇc´ıtaˇci je pˇripojena deska firmy Siemens, jej´ıˇz souˇc´ast´ı modul je. Deska je nap´ajena 5V a k poˇc´ıtaˇci pˇripojena pomoc´ı s´eriov´eho kabelu. Deska umoˇzn ˇuje i komunikaci pˇres USB, signalizaci pˇrenosu dat, pˇrenos zvuku, atd., ale v r´amci t´eto pr´ace jsem vyuˇzil pouze jej´ı z´akladn´ı vlastnosti. Pokud bychom mˇeli pouˇz´ıt stejn´ y Bluetooth modul jako v modelu auta, bylo by potˇreba pouˇz´ıt integrovan´ y obvod MAX3232, kter´ y pˇrev´ad´ı napˇet’ov´e u ´rovnˇe Bluetooth (0 a 3.3V) na u ´rovnˇe s´eriov´eho rozhran´ı PC.
3.2.2
Mobiln´ı telefon
Dalˇs´ım moˇzn´ ym zp˚ usobem realizace ˇr´ıdic´ıho syst´emu je mobiln´ı telefon (popˇr. PDA) podporuj´ıc´ı technologii Bluetooth. Pro tento zp˚ usob ˇr´ızen´ı jsme pouˇzili mo-
ˇ ıdic´ı syst´ 3.2 R´ em
48
biln´ı telefon Nokia 6600 s operaˇcn´ım syst´emem Symbian (obr. 3.23).
Obr´azek 3.23: Mobiln´ı telefon Nokia 6600
Kapitola 4 Softwarov´ eˇ reˇ sen´ı vzd´ alen´ eho ˇ r´ızen´ı Softwarov´e ˇreˇsen´ı diplomov´e pr´ace (DP) se skl´ad´a ze dvou ˇc´asteˇcnˇe samostatn´ ych ˇc´ast´ı. Prvn´ı z nich je program pro mikroprocesor PIC, kter´ y komunikuje s pˇripojen´ ym Bluetooth modulem (Slave) a podle komunikaˇcn´ıho protokolu i se vzd´alen´ ym Bluetooth zaˇr´ızen´ım pˇripojen´ ym k poˇc´ıtaˇci (Master). Z´aroveˇ n PIC ˇr´ıd´ı akˇcn´ı ˇcleny, vyhodnocuje informaci z ˇcidel a pos´ıl´a jako odpovˇed’ Masterovi (Bluetooth u PC) informaci o stavu napˇet´ı akumul´ator˚ u. Druhou je program pro poˇc´ıtaˇc, kter´ y m´a za u ´kol zas´ıl´an´ım pˇr´ıkaz˚ u do pˇripojen´eho Bluetooth modelu ˇr´ıdit model auta a z´aroveˇ n zobrazovat informace o stavu a kvalitˇe spojen´ı, stavu nabit´ı akumul´ator˚ u, atd. Softwarov´e ˇreˇsen´ı pr´ace v r´amci projektu BTRC se skl´ad´a z programu pro mikroprocesor a programu pro mobiln´ı telefon, kter´ y byl naps´an pro operaˇcn´ı syst´em Symbian v.6. Tento SW napsal druh´ y ˇclen t´ ymu Aleˇs Kuˇc´ık. Proto se o nˇem nebudu v´ıce zmiˇ novat - zdrojov´e soubory naleznete na pˇr´ıloˇzen´em CD-ROMu. Popis programu je rozdˇelen do tˇr´ı ˇc´ast´ı. V prvn´ı je vysvˇetlen komunikaˇcn´ı protokol mezi ˇr´ıdic´ım syst´emem a modelem auta, kter´ y je t´emˇeˇr shodn´ y pro obˇe pr´ace. V druh´e je pops´an zp˚ usob, jak´ ym se pracuje s mikroprocesorem a struktury programu pro obˇe pr´ace. Posledn´ı ˇc´ast popisuje ˇr´ıdic´ı SW pro poˇc´ıtaˇc.
4.1
Komunikaˇ cn´ı protokol
Projekt DP Komunikace mezi obˇema Bluetooth moduly (u poˇc´ıtaˇce a v modelu auta) prob´ıh´a ych ˇcasov´ ych u ´sec´ıch. Poˇctem byt˚ u je po jejich spojen´ı dle obr. 4.1 a to v pravideln´ myˇsleno poˇcet datov´ ych byt˚ u, kter´e jsou pˇren´aˇseny v r´amci dan´eho paketu. V datov´em paketu pˇr´ıkazu se pos´ıl´a byte obsahuj´ıc´ı informaci o reˇzimu ˇr´ızen´ı (automatick´ y/ruˇcn´ı) a povely pro ˇr´ızen´ı perif´eri´ı. V datov´em paketu odpovˇedi pˇrich´az´ı 4 byty nesouc´ı informaci z A/D pˇrevodn´ıku o stavu akumul´atoru a napˇet´ı z jednotliv´ ych ˇcidel. Jeden cyklus komunikace je na obr. 4.2. Zaˇc´ın´a odesl´an´ım datov´eho paketu
49
4.1 Komunikaˇ cn´ı protokol
50
Obr´azek 4.1: Zjednoduˇsen´e sch´ema komunikace mezi PC a modelem
Obr´azek 4.2: Sch´ema 1 komunikaˇcn´ıho cyklu
(Data) z PC do Bluetooth modulu (Master) pˇres RS232, kde je zpracov´an a odesl´an druh´emu Bluetooth modulu (Slave). Z´aroveˇ n Master zas´ıl´a zpˇet poˇc´ıtaˇci potvrzen´ı (ACK) o odesl´an´ı datov´eho paketu. Bluetooth Slave po pˇrijet´ı a zpracov´an´ı zpr´avy pos´ıl´a datov´ y paket mikroprocesoru opˇet pˇres rozhran´ı RS232. Tento datov´ y paket je mikroprocesorem zpracov´an, a d´ale je posl´an datov´ y paket s odpovˇed´ı (Data ACK). Bluetooth Slave opˇet poˇsle informaci smˇerem k Bluetooth Master a z´aroveˇ n potvrzen´ı o odesl´an´ı mikroprocesoru. Cyklus konˇc´ı ve chv´ıli, kdy poˇc´ıtaˇc pˇrijme datov´ y paket s odpovˇed´ı. Projekt BTRC Komunikaˇcn´ı protokol projektu BTRC je opˇet zaloˇzen na pravideln´em zas´ıl´an´ı datov´ ych paket˚ u mobiln´ım telefonem do modelu. Nav´ yˇsen´ı poˇctu datov´ ych byt˚ u je zp˚ usobeno t´ım, ˇze SW v mobiln´ım telefonu pˇristupuje ke sluˇzb´am technologie Bluetooth pomoc´ı vyˇsˇs´ı vrstvy L2CAP. Ve skuteˇcnosti se pˇren´aˇs´ı pouze jeden informaˇcn´ı byte (+ 4 byty L2CAP vrstvy) obsahuj´ıc´ı povely pro perif´erie. Odpovˇed´ı jsou 2 byty (+ 4 byty L2CAP vrstvy), z nichˇz prvn´ı signalizuje, zda byl zaslan´ y pˇr´ıkaz “srozumiteln´ y” a druh´ y byte informaci o nabit´ı akumul´atoru. Komunikaˇcn´ı cyklus je shodn´ y s projektem DP (obr. 4.2), pouze poˇc´ıtaˇc je nahrazen mobiln´ım telefonem.
4.2 Mikroprocesor PIC
51
Obr´azek 4.3: Zjednoduˇsen´e sch´ema komunikace mezi telefonem a modelem
4.2
Mikroprocesor PIC
Pro naps´an´ı programu pro PIC je urˇceno v´ yvojov´e prostˇred´ı MPLAB. Programovat lze, bud’ v jazyce Assembler, jehoˇz pˇrekladaˇc je souˇc´ast´ı programu, nebo v jazyce C. Pˇrekladaˇc jazyka C pro obvody PIC nen´ı souˇc´ast´ı programu MPLAB a je potˇreba ho zvl´aˇst’ zakoupit. Na internetu lze nˇekter´e freewarov´e pˇrekladaˇce jazyka C naj´ıt, ale jen pro nˇekter´e typy procesor˚ u ˇrady PIC. Realizovan´ y program je napsan´ y v jazyce Assembler.
Obr´azek 4.4: Program´ator PIC
K naprogramov´an´ı procesoru jsem mˇel k dispozici MPLAB ICD desku (obr´azek 4.4). Jedn´a se vlastnˇe o samotn´ y program´ator a v´ yvojovou desku, kter´a umoˇzn ˇuje mimo jin´e reset procesoru, vyvol´an´ı extern´ıho pˇreruˇsen´ı a signalizaci hodnot v´ ystup˚ u diodami LED a v neposledn´ı ˇradˇe komunikaci procesoru pˇres RS232. Program´ator se k poˇc´ıtaˇci pˇripojuje opˇet pˇres rozhran´ı RS232.
4.2.1
Pamˇ et’ov´ a organizace procesoru
Programov´ a pamˇ et’ PIC16F874 m´a adresov´ y prostor 13 bit˚ u a 13-bitov´ y programov´ y ˇc´ıtaˇc1 na adresov´an´ı 8k x 14b (bit˚ u) programov´e pamˇeti, dohromady tedy 8192 byt˚ u. Programov´a pamˇet’ je rozdˇelena na str´anky (0000h - 07FFh, 0800h - 0FFFh). Vektor reset je 1
Hodnota ˇc´ıtaˇce urˇcuj´ıc´ı adresov´ y prostor procesoru.
4.2 Mikroprocesor PIC
52
na adrese 0000h a vektor pˇreruˇsen´ı na adrese 0004h. Znamen´a to, ˇze pokud dojde k restartov´an´ı procesoru, popˇr. k pˇreruˇsen´ı, “skoˇc´ı” program na danou adresu. Pokud dojde k restartov´an´ı procesoru, provedu opˇetovnou inicializaci a skok na zaˇc´atku programu. Pokud dojde k pˇreruˇsen´ı, vol´am obsluhu pˇreruˇsen´ı, kde ˇreˇs´ım situaci, kter´a nastala. Po proveden´ı obsluhy pˇreruˇsen´ı se program vrac´ı na m´ısto, kde se v dobˇe vzniku pˇreruˇsen´ı nach´azel. Datov´ a pamˇ et’ Datov´a pamˇet’ je rozdˇelena do 4 bank, kter´e obsahuj´ı, tzv. hlavn´ı u ´ˇcelov´e registry (General purpose registers) a speci´aln´ı funkˇcn´ı registry (Special function registers, d´ale SFR). V´ ybˇer banky je d´an pomˇerem bit˚ u SFR registru Status (tabulka 4.1). RP1:RP0 Banka 00 01 10 11
0 1 2 3
Tabulka 4.1: V´ ybˇer banky v registru Status Speci´ aln´ı funkˇ cn´ı registry Speci´aln´ı funkˇcn´ı registry slouˇz´ı k nastaven´ı r˚ uzn´ ych vlastnost´ı procesoru. Patˇr´ı mezi nˇe napˇr´ıklad povolen´ı r˚ uzn´ ych pˇreruˇsen´ı, povolen´ı RS232, nastaven´ı pˇrenosov´e rychlosti, povolen´ı A/D pˇrevodn´ıku, povolen´ı a nastaven´ı vnitˇrn´ıho ˇcasovaˇce, nastaven´ı a zobrazov´an´ı r˚ uzn´ ych pˇr´ıznak˚ u, atd. Podrobnˇeji se o tˇechto registrech zm´ın´ım pˇri ˇreˇsen´ı konkr´etn´ıch probl´em˚ u v n´asleduj´ıc´ıch podkapitol´ach.
4.2.2
Komunikace pˇ res RS232
Pˇres rozhran´ı RS232 komunikuje procesor s Bluetooth modulem (Slave). PIC m´a k dispozici 2 piny, prvn´ı slouˇz´ı pro zas´ıl´an´ı dat z procesoru - pin RC6 (TX), druh´ y k pˇrij´ım´an´ı dat do procesoru - pin RC7 (RX). USART (The Universal Synchronous Asynchronous Receiver Transmitter - univerz´aln´ı synchronn´ı asynchronn´ı pˇr´ıjem a vys´ıl´an´ı) je jedn´ım ze dvou2 s´eriov´ ych 3 I/O modul˚ u. USART m˚ uˇze b´ yt nakonfigurov´an jako plnˇe-duplexn´ı asynchronn´ı (pˇr´ıjemce a vys´ılaˇc jsou na sobˇe nez´avisl´ı, nejsou synchronizov´ani, data mohou b´ yt posl´any kdykoliv) syst´em, kter´ y m˚ uˇze komunikovat s perif´eriemi typu CRT termin´al nebo osobn´ı poˇc´ıtaˇc. Druhou moˇznost´ı USART je polo-duplexn´ı4 synchronn´ı (pˇr´ıjemce m´a synchronizov´any vnitˇrn´ı hodiny s vys´ılaˇcem - data jsou vys´ıl´any v pravideln´ ych okamˇzic´ıch) syst´em ke komunikaci s A/D nebo D/A integrovan´ ymi obvody, s´eriov´ ymi pamˇetmi, atd. 2
Druh´ ym je MSSP - hlavn´ı synchronn´ı s´eriov´ y port, pouˇz´ıvan´ y pro komunikaci s jin´ ymi mikrokontrol´ery. 3 Zaˇr´ızen´ı m˚ uˇze v jednu chv´ıli jak pˇrij´ımat, tak i vys´ılat. 4 Zaˇr´ızen´ı bud’ pˇrij´ım´ a nebo vys´ıl´ a.
4.2 Mikroprocesor PIC
53
V r´amci t´eto pr´ace jsem vyuˇzil reˇzim asynchronn´ı: • non-return-zero (NRZ) form´at (1 START bit, 8 datov´ ych bit˚ u, 1 STOP bit) • vyhrazen´ y 8-bitov´ y gener´ator pˇrenosov´e rychlosti na ˇcipu (k odvozen´ı standardn´ıch frekvenc´ı pˇrenosov´e rychlosti od oscil´atoru) • pos´ıl´a se a pˇrij´ım´a se nejdˇr´ıve LSB (nejm´enˇe v´ yznamn´ y bit) • vys´ılaˇc a pˇrij´ımaˇc jsou funkˇcnˇe nez´avisl´ı, ale pouˇz´ıvaj´ı stejn´ y form´at dat a stejnou pˇrenosovou rychlost • parita (paritn´ı bit - kontroln´ı) nen´ı podporov´ana HW, ale lze implementovat v SW jako 9.bit Pro pr´aci s USART jsou potˇreba registry PIE1 - povolen´ı perif´ern´ıch pˇreruˇsen´ı, PIR1 - pˇr´ıznaky vznikl´ ych pˇreruˇsen´ı, RCSTA - nastaven´ı pˇrij´ım´an´ı a povolen´ı USART, TXSTA - nastaven´ı vys´ıl´an´ı a pˇrenosov´e rychlosti a SPBRG - registr gener´atoru pˇrenosov´e rychlosti. Nastaven´ı asynchronn´ıho vys´ılaˇ ce: 1. Nastaven´ı bitu BRGH v registru (SPBRG) pro vyˇsˇs´ı pˇrenosovou rychlost. 2. Povolen´ı asynchronn´ıho s´eriov´eho portu resetem bitu SYNC (TXSTA) a nastaven´ım bitu SPEN (RCSTA). 3. Povolen´ı vys´ıl´an´ı nastaven´ım bitu TXEN. 4. Nahr´an´ı dat (bytu) do TXREG registru = start vys´ıl´an´ı. 5. Neˇz se odeˇsle dalˇs´ı byte, ˇcek´a se na uvolnˇen´ı TXREG registru - signalizov´ano bitem TXIF (PIR1 ) v 1. 6. Pro dalˇs´ı odes´ıl´an´ı se vˇse opakuje od kroku 4. Nastaven´ı asynchronn´ıho pˇ rij´ımaˇ ce: 1. Nastaven´ı bitu BRGH v registru (SPBRG) pro vyˇsˇs´ı pˇrenosovou rychlost. 2. Povolen´ı asynchronn´ıho s´eriov´eho portu resetem bitu SYNC (TXSTA) a nastaven´ım bitu SPEN (RCSTA). 3. Povolen´ı pˇreruˇsen´ı pˇri pˇrijat´em bytu nastaven´ım bitu RCIE (PIE1 ). 4. Povolen´ı perif´ern´ıch pˇreruˇsen´ı nastaven´ım bit˚ u GIE a PEIE registru INTCON. 5. Povolen´ı pˇr´ıjmu nastaven´ım bitu CREN. 6. Flag (pˇr´ıznakov´ y) bit RCIF je v 1, kdyˇz je pˇrijet´ı kompletn´ı a generuje se pˇreruˇsen´ı (pokud je nastaven bit RCIE ).
4.2 Mikroprocesor PIC
54
7. Pˇreˇcten´ı bytu z pˇrijat´ ych dat pˇreˇcten´ım RCREG registru. 8. Pokud doˇslo k nˇejak´e chybˇe, odstran´ı se resetov´an´ım bitu CREN. Pˇrenosov´a rychlost se nastavuje registrem SPBRG a bitem BRGH registru TXSTA. V´ ysledn´a rychlost (baud rate) je d´ana vzorcem: Asynchronn´ı pˇrenosov´a rychlost =
FOSC X(Y +1)
kde X je 16 (pˇri BRGH = 1) nebo 64 (BRGH = 0 ), Y je hodnota v registru SPBRG a FOSC je perioda extern´ıho oscil´atoru.
4.2.3
Pˇ reruˇ sen´ı
Procesor PIC 16F874 nab´ız´ı 14 zdroj˚ u pˇreruˇsen´ı. K nastaven´ı vlastnost´ı pˇreruˇsen´ı a jejich povolen´ı slouˇz´ı jednotliv´e bity registru INTCON. Pouˇzit´e bity: Bit 7 GIE : 1 = povolen´ı vˇsech odmaskovan´ ych (povolen´ ych) pˇreruˇsen´ı, 0 = z´akaz vˇsech pˇreruˇsen´ı Bit 6 PEIE : 1 = povolen´ı vˇsech odmaskovan´ ych pˇreruˇsen´ı od perif´eri´ı, 0 = z´akaz vˇsech pˇreruˇsen´ı od perif´eri´ı Bit 5 T0IE : 1 = povolen´ı pˇreruˇsen´ı od ˇcasovaˇce TMR0, 0 = z´akaz pˇreruˇsen´ı od ˇcasovaˇce TMR0 Bit 2 T0IF : 1 = pˇr´ıznak, ˇze registr TRM0 pˇretekl (jeho hodnota pˇrekroˇcila 255), 0 = registr nepˇretekl Pokud dojde k pˇreruˇsen´ı, nastav´ı se odpov´ıdaj´ıc´ı pˇr´ıznak do 1. Podle tohoto lze rozpoznat, kter´a ud´alost pˇreruˇsen´ı vyvolala. Po obslouˇzen´ı pˇreruˇsovac´ı rutiny (ˇca´st programu, kter´a je vol´ana pˇri vzniku pˇreruˇsen´ı) se mus´ı pˇr´ıznakov´e bity resetovat softwarovˇe, jinak by doch´azelo k opakovan´emu pˇreruˇsen´ı ihned po opuˇstˇen´ı t´eto rutiny. Dokud nedojde k obslouˇzen´ı pˇreruˇsovac´ı rutiny je bit GIE resetov´an (automaticky mikroprocesorem). Teprve po opuˇstˇen´ı rutiny je tento bit opˇet nastaven (HW) a je povoleno dalˇs´ı pˇreruˇsen´ı.
4.2.4
A/D pˇ revodn´ık
A/D pˇrevodn´ık je souˇc´ast´ı procesoru PIC. K dispozici je 8 anologov´ ych pin˚ u: RA0-5, RE0-2 (4.5). K nastaven´ı A/D pˇrevodn´ıku slouˇz´ı registry ADCON0 a ADCON1. K nastaven´ı a spuˇstˇen´ı A/D pˇrevodu je potˇreba: 1. Nastaven´ı A/D modulu: • urˇcit hodiny pˇrevodu (registr ADCON0 ) • urˇcit jak´ y pin (kan´al) se bude mˇeˇrit (ADCON0 ) • povolit A/D pˇrevod celkovˇe (ADCON0 ) • nastavit referenci (±) 2. Nastaven´ı pˇreruˇsen´ı:
4.2 Mikroprocesor PIC
55
Obr´azek 4.5: Blokov´e sch´ema A/D pˇrevodn´ıku
• reset bitu ADIF (PIR1 ) • nastaven´ı bitu ADIE (PIE1 ) • nastaven´e bitu PEIE (INTCON ) • nastaven´ı bitu GIE (INTCON ) ˇ an´ı poˇzadovanou dobu pˇred zah´ajen´ım A/D pˇrevodu (cca 20µs) 3. Cek´ 4. Spuˇstˇen´ı pˇrevodu nastaven´ım bitu GO (ADCON0 ) ˇ an´ı na dokonˇcen´ı pˇrevodu (pˇreruˇsen´ı - ADIF) 5. Cek´ 6. Pˇreˇcten´ı v´ ysledku z registr˚ u ADRESH a ADRESL 7. Pro dalˇs´ı A/D pˇrevod se opakuje cel´ y cyklus: • od 1 - pokud chceme zmˇenit kan´al (vstupn´ı pin, na kter´em se mˇeˇr´ı napˇet´ı) • od 2 - pokud pin z˚ ust´av´a stejn´ y Hodiny pˇrevodu (A/D conversion clock) pracuj´ı s danou periodou, kter´a je odvozena od vnitˇrn´ıch hodin procesoru a je jejich n´asobkem. Perioda vnitˇrn´ıch hodin je TOSC = 41 periody krystalu = 0.2 µs. Nejmenˇs´ı moˇzn´ y ˇcas potˇrebn´ y k pˇrevodu jednoho bitu je TAD = 1.6 µs a jelikoˇz k dispozici jsou n´asobky 2 TOSC , 8 TOSC a 32 TOSC , pouˇzil jsem n´asobek posledn´ı. Urˇcen´ı vstupn´ıho pinu se prov´ad´ı tˇremi bity CHS2:0 registru ADCON0. Nastaven´ı reference je d´ano opˇet tˇremi bity. Urˇcuje se jimi, zda budou jako analogov´e vstupy pouˇzity vˇsechny analogov´e piny a zda bude referenˇcn´ı napˇet´ı d´ano nap´ajec´ım
4.2 Mikroprocesor PIC
56
(+5V a 0V) nebo zda bude dan´e hodnotami napˇet´ı na pinech RA3 (horn´ı referenˇcn´ı napˇet´ı) a RA2 (spodn´ı referenˇcn´ı napˇet´ı). Dokonˇcen´ı A/D pˇrevodu je signalizov´ano pˇreruˇsen´ım (pokud je povoleno) a resetov´an´ım bitu GO (vˇzdy). V´ ysledn´a hodnota (10-ti bitov´e ˇc´ıslo) je uloˇzena ve dvou registrech. V prvn´ım z nich je uloˇzeno nejvyˇsˇs´ıch 8 bit˚ u a ve druh´em zbyl´e 2 bity doplnˇen´e nulami. 10-ti bitov´ y A/D pˇrevodn´ık m´a nejmenˇs´ı d´ıl (rozd´ıl napˇet´ı, pˇri kter´em rozpozn´a zmˇenu) dan´ y pod´ılem rozd´ılu referenˇcn´ıch napˇet´ı a poˇctem bit˚ u. V tomto pˇr´ıpadˇe 5−0 je to 210 = 0.00488 V = 4.88 mV .
4.2.5
ˇ Casovaˇ c a PWM
N´asleduje ˇreˇsen´ı PWM pro motory. Z´akladem PWM je vnitˇrn´ı ˇcasovaˇc procesoru - registr, kter´ y pˇri pˇreteˇcen´ı5 vyvol´a pˇreruˇsen´ı. Dobu, za kterou k pˇreruˇsen´ı od ˇcasovaˇce dojde jsem zvolil 0.1 ms. Tento minim´aln´ı ˇcas je potˇreba pro ˇr´ızen´ı servomotoru. Hodnota ˇcasovaˇce je d´ana registrem TMR0, to znamen´a 8 bit˚ u a maxim´aln´ı decim´aln´ı hodnota je tedy 255. Frekvence pˇreruˇsen´ı je d´ana: 1. hodnotou v registru TMR0 2. frekvenc´ı extern´ıho krystalu procesoru 3. pˇreddˇeliˇckou Frekvence extern´ıho krystalov´eho oscil´atoru je 20MHz. Tento kmitoˇcet je pro vnitˇrn´ı ˇcasov´an´ı procesoru vydˇelen ˇctyˇrmi. D´ale jde nastavit, tzv. pˇreddˇeliˇcka, d´ıky kter´e m˚ uˇzeme frekvenci jeˇstˇe sn´ıˇzit. Jej´ı hodnota se nastavuje bity PS2:PS0 registru OPTION REG. Moˇzn´e hodnoty pˇreddˇeliˇcky jsou v tabulce 4.2. Hodnoty bit˚ u PS2:PS0 Hodnota pˇreddˇeliˇcky 000 001 010 011 100 101 110 111
1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256
Tabulka 4.2: Nastaven´ı pˇreddˇeliˇcky ˇcasovaˇce procesoru
Abych dos´ahl v´ ysledn´e hodnoty ˇcasu 0.1ms je pˇreddˇeliˇcka nastavena na pomˇer 1:4 a poˇc´ateˇcn´ı hodnota v registru TMR0 na 131, takˇze se mˇen´ı jen od 131 do 256, to znamen´a 125 inkrementac´ı. Tato hodnota se mus´ı pˇri kaˇzd´em pˇreruˇsen´ı do registru TMR0 opˇet ukl´adat. V´ ysledkem je frekvence: 5
Hodnota, kter´ a m´ a b´ yt uloˇzena je vˇetˇs´ı neˇz pamˇet’ pˇridˇelen´a ˇcasovaˇci.
4.2 Mikroprocesor PIC
57 2.107 4.4.125
= 1.104
1 1.104
= 0.1 ms
1 s
a perioda pˇreruˇsen´ı:
Generov´ an´ı PWM Pˇri kaˇzd´em pˇreruˇsen´ı od ˇcasovaˇce je zv´ yˇsena o jedniˇcku promˇenn´a (registr) Count TMR0 a v kaˇzd´em cyklu hlavn´ıho programu je porovn´av´ana s dvˇemi hodnotami. Prvn´ı je poˇzadovan´a d´elka impulsu (T1 ), druhou je poˇzadovan´a perioda v´ ysledn´eho PWM sign´alu (T2 ). Pokud je Count TMR0 mezi 0 a T1 , pak je v´ ysledkem hodnota 1. Pokud je mezi T1 a T2 , pak je hodnota PWM 0. Hodnota T2 je pevnˇe dan´a, jak pro stejnosmˇern´ y motor, tak i pro servo motor a je T2 = 200. T´ım je d´ana perioda PWM 20ms (frekvence 50Hz). Hodnota T1 je, bud’ z´ısk´ana z pˇrijat´eho paketu z poˇc´ıtaˇce (v reˇzimu ruˇcn´ıho ˇr´ızen´ı) nebo z ˇc´asti programu, kter´a zpracov´av´a informaci z ˇcidel (v automatick´em reˇzimu). Dalˇs´ı moˇznost´ı jak ˇreˇsit PWM v mikroprocesoru je pouˇzit´ı vnitˇrn´ı PWM jednotky, ale frekvence, kterou bych t´ım dostal, je pˇr´ıliˇs velik´a.
4.2.6
Struktura programu pro DP
Blokov´e sch´ema programu obsahuj´ıc´ı hlavn´ı ˇc´asti je na obr´azku 4.6. Program se skl´ad´a z osmi hlavn´ıch procedur.
Obr´azek 4.6: Blokov´e sch´ema programu pro PIC
Program pro mikroprocesor zaˇc´ın´a nastaven´ım form´atu souboru v´ ypisu pˇrekladu zdrojov´eho k´odu a vloˇzen´ım souboru *.inc s definic´ı hardware procesoru. D´ale se definuj´ı odskoky do ˇc´ast´ı programu, kter´e ˇreˇs´ı restart (Start) a pˇreruˇsen´ı (IntProc) procesoru. Po tˇechto nutn´ ych kroc´ıch n´asleduje samotn´ y program sest´avaj´ıc´ı se z tˇechto ˇc´ast´ı:
4.2 Mikroprocesor PIC
58
Definice promˇ enn´ ych Definic´ı promˇenn´ ych je myˇsleno pˇridˇelen´ı symbolick´ ych jmen m´ıst˚ um (byt˚ um) v pamˇeti mikroprocesoru. K tomuto je moˇzno vyuˇz´ıt 96 byt˚ u v bance 0, 80 byt˚ u v bance 1 a shodnˇe 96 byt˚ u v bank´ach 2 a 3. Procedura Start V t´eto ˇc´asti jsou promˇenn´ ym (registr˚ um) pˇriˇrazeny hodnoty, napˇr. pro poˇc´ateˇcn´ı natoˇcen´ı servomotoru (neutr´aln´ı poloha), pro poˇc´ateˇcn´ı stav stejnosmˇern´eho motoru (zastaven), atd. D´ale se nastavuj´ı speci´aln´ı funkˇcn´ı registry, napˇr.: • TXSTA, RXSTA - povolen´ı RS232 (pˇrijem, vys´ıl´an´ı), povolen´ı pˇreruˇsen´ı pˇri pˇr´ıjmu dat • SPBRG - nastaven´ı pˇrenosov´e rychlosti na 57.6kbps • PIE1, INTCON - povolen´ı pˇreruˇsen´ı pˇri dokonˇcen´ı A/D pˇrevodu • ADCON0, ADCON1 - nastaven´ı a povolen´ı A/D pˇrevodu • TRISA, B, C - povolen´ı a nastaven´ı analogov´ ych vstup˚ u • PORTA, B, C - povolen´ı a nastaven´ı digit´aln´ıch vstup˚ u a v´ ystup˚ u Touto ˇc´ast´ı program zaˇc´ın´a - vol´a se vˇzdy po restartu procesoru a pˇri v´ yskytu chyby v komunikaci (v´ıce v ˇc´asti ˇreˇsen´ı chybov´ ych stav˚ u). Procedura Main Tato ˇc´ast n´asleduje ihned po skonˇcen´ı procedury Start. Je to hlavn´ı smyˇcka programu, kter´a vol´a procedury BT Comd a BT Event, ze kter´ ych jsou vol´any jiˇz vˇsechny zb´ yvaj´ıc´ı procedury kromˇe IntProc, kter´a je vol´ana pouze pˇri vzniku pˇreruˇsen´ı. BT Comd a BT Event jsou vol´any v z´avislosti na stavu bitu Transmit pomocn´eho registru Proces. D´ale se v t´eto ˇc´asti programu vol´a procedura SS Routine, kter´a “ˇr´ıd´ı” v´ ystupn´ı piny mikroprocesoru pro ˇr´ızen´ı stejnosmˇern´eho motoru. Procedury BT Comd a BT Event BT Comd slouˇz´ı ke komunikaci smˇerem k Bluetooth modulu pˇres rohran´ı RS232 - pos´ıl´a pakety (HCI pˇr´ıkazy a HCI data). BT Event slouˇz´ı ke komunikaci smˇerem od Bluetooth modulu - zpracov´av´a pˇrijat´e pakety (HCI ud´alosti a HCI data). Kaˇzd´emu HCI pˇr´ıkazu odpov´ıd´a specifick´a HCI ud´alost. Program po odesl´an´ı pˇr´ıkazu nebo dat ˇcek´a na specifick´ y paket dan´e d´elky. Prvn´ım pˇr´ıkazem je Reset, n´asleduje Set Event Filter, Write Page Scan Acitvity, Write Inquiry Scan Activity a Scan Enable, kter´e jsou potˇreba pro nav´az´an´ı spojen´ı s Bluetooth modulem a jeho nastaven´ı jako Slave. Na kaˇzd´ y z tˇechto pˇr´ıkaz˚ u Bluetooth modul odpov´ı ud´alost´ı Command Complete. Po odesl´an´ı tˇechto 5 pˇr´ıkaz˚ u se
4.2 Mikroprocesor PIC
59
program nach´az´ı v tzv. pohotovostn´ım stavu, kdy ˇcek´a na ud´alost Connection Complete, kter´a signalizuje vytvoˇren´ı spojen´ı se vzd´alen´ ym Bluetooth modulem (u PC). Ve stavu “Spojen´ı” se periodicky opakuje ˇcek´an´ı mikroprocesoru na datov´ y paket, odesl´an´ı datov´eho paketu s odpovˇed´ı (Data ACK) a nakonec pˇrijet´ı ud´alosti Number Of Completed Packets, kter´a potvrzuje u ´spˇeˇsn´e odesl´an´ı datov´eho paketu. Toto se opakuje, dokud trv´a spojen´ı mezi obˇema Bluetooth moduly, tzn. dokud nedojde k chybˇe spojen´ı nebo Bluetooth Master nezaˇsle ud´alost Disconnection Complete znamenaj´ıc´ı ukonˇcen´ı spojen´ı. Celkov´e sch´ema komunikace je na obr. 4.7. Pˇresn´ y popis paket˚ u vymˇenˇen´ ych v r´amci komunikace mikroprocesoru s Bluetooth modulem je uveden v pˇr´ıloze.
Obr´azek 4.7: Sch´ema komunikace mezi procesorem a Bluetooth modulem Pakety se pos´ılaj´ı byte po bytu nahr´av´an´ım do registru TXREG a ˇctou podob´ ym zp˚ usobem, tedy opˇet byte po bytu, tentokr´at z registru RXREG. Procedura User Mode Tato ˇc´ast programu je vol´ana z procedury BT Event v pˇr´ıpadˇe, ˇze pˇrijat´ y byte v datov´em paketu obsahuje informaci o tom, ˇze se ˇr´ızen´ı modelu nach´az´ı v uˇzivatelsk´em reˇzimu (nastavuje se v aplikaci v PC). Pokud je zavol´ana, zpracuje se pˇrijat´ y byte - hodnoty pro PWM servomotoru a stejnosmˇern´eho motoru jsou zaps´any do pˇr´ısluˇsn´ ych pomocn´ ych registr˚ u.
4.2 Mikroprocesor PIC
60
Procedura Auto Mode Tato procedura se vol´a v opaˇcn´em pˇr´ıpadˇe neˇz User mode a je opˇet vol´ana z procedury BT Event. V tomto pˇr´ıpadˇe je pˇrijat´ y byte zapomenut a hodnoty PWM pro oba motory jsou nastaveny na z´akladˇe informac´ı z optick´ ych ˇcidel. Samotn´e ˇr´ızen´ı motor˚ u je ˇreˇseno v ˇc´asti IntProc. Procedura IntProc Pˇri vzniku pˇreruˇsen´ı se vol´a blok IntProc, kter´ y obsahuje ˇreˇsen´ı konkr´etn´ı pˇr´ıˇciny pˇreruˇsen´ı. Pˇreruˇsen´ı m˚ uˇze b´ yt zp˚ usobeno ˇcasovaˇcem (kaˇzd´ ych 0.1ms), A/D pˇrevodn´ıkem nebo pˇrijat´ ym bytem. V pˇr´ıpadˇe pˇreruˇsen´ı od ˇcasovaˇce se generuje PWM pro oba motory (z d˚ uvodu pˇresnosti, obzvl´aˇstˇe pro servomotor) a tak´e se kaˇzd´ ych 25ms spouˇs´ı A/D pˇrevod. Pˇreruˇsen´ı vznikl´e A/D pˇrevodem znamen´a, ˇze je pˇrevod hotov a je potˇreba v´ ysledek uloˇzit a zpracovat, neˇz se spust´ı dalˇs´ı pˇrevod. Pˇri pˇreruˇsen´ı od s´eriov´eho rozhran´ı (pˇr´ıjem) se naˇcte pˇrijat´ y byte do jednoho z 25 pˇripraven´ ych registr˚ u. Kaˇzd´ y paket je ukl´ad´an samostatnˇe pro lepˇs´ı kontrolu pˇr´ıpadn´e chyby. V pˇr´ıpadˇe spr´avnosti cel´eho paketu dojde k vynulov´an´ı vˇsech 25 registr˚ u a dalˇs´ı pˇrijat´ y byte je jiˇz ukl´ad´an do 1. registru. Bˇehem v´ yskytu programu v ˇc´asti IntProc nedoch´az´ı k jin´emu pˇreruˇsen´ı a program, tzv. “ˇcek´a” v hlavn´ı smyˇcce na obslouˇzen´ı t´eto procedury.
4.2.7
Struktura programu pro BTRC
Struktura programu pro ˇr´ızen´ı mobiln´ım telefonem (obr. 4.8) je velmi podobn´a t´e, kdy je ˇr´ızena poˇc´ıtaˇcem. Samozˇrejmˇe chyb´ı procedura Auto mode, protoˇze v t´eto pr´aci je pouze “ruˇcn´ı” reˇzim.
Obr´azek 4.8: Struktura programu pro BTRC
Z´asadn´ı rozd´ıl je v komunikaci s Bluetooth modulem, kdy komunikace mikro-
4.2 Mikroprocesor PIC
61
procesor - Bluetooth Slave z˚ ust´av´a na u ´rovni HCI vrstvy, ale komunikace Bluetooth Master - mobiln´ı telefon prob´ıh´a na vrstvˇe L2CAP a t´ım je ovlivnˇena i komunikace HCI. Zat´ımco pˇri komunikaci s poˇc´ıtaˇcem jsme Bluetooth Slave nastavovali pˇeti HCI pˇr´ıkazy, v tomto pˇr´ıpadˇe ho nastavujeme dvˇema - HCI Reset a HCI Set Event Filter. Dalˇs´ı v´ yrazn´a zmˇena je pˇri vytv´aˇren´ı spojen´ı. Zat´ımco u DP pˇriˇsla pouze ud´alost Connection Complete, v tomto pˇr´ıpadˇe se mus´ı do vytvoˇren´ı spojen´ı zapojit i jednotka Bluetooth Slave (obr. 4.9). V´ ymˇena dat z˚ ust´av´a stejn´a, jen sloˇzen´ı a d´elka datov´eho paketu je jin´a.
Obr´azek 4.9: Sch´ema komunikace mezi procesorem a Bluetooth modulem
Pˇresn´ y popis paket˚ u vymˇenˇen´ ych v r´amci komunikace mikroprocesoru s Bluetooth modulem je uveden opˇet v pˇr´ıloze.
4.2.8
Oˇ setˇ ren´ı chybov´ ych stav˚ u
Oˇsetˇren´ım chybov´ ych stav˚ u je myˇsleno oˇsetˇren´ı chyb, kter´e mohou vzniknout mezi procesorem a Bluetooth modulem pˇri komunikaci po RS232. Chyby mohou b´ yt rozdˇeleny do 2 skupin: 1. byl pˇrijat spr´avn´ y poˇcet byt˚ u, ale nespr´avn´eho obsahu
4.3 Poˇ c´ıtaˇ c
62
2. do dan´eho ˇcasov´eho okamˇziku nebyl pˇrijat spr´avn´ y poˇcet byt˚ u Prvn´ı moˇznost´ı je myˇslen pˇr´ıpad, kdy pˇr´ıjde ud´alost, kter´a nese informaˇcn´ı byte Status, kter´ y pokud je r˚ uzn´ y od 0x00 znamen´a, ˇze doˇslo k chybˇe. Moˇznost, ˇze by dorazil zcela jin´ y paket neˇz se oˇcek´av´a je t´emˇeˇr nemoˇzn´e, Bluetooth jednotka poˇsle paket pouze jako odpovˇed’ na nˇejak´ y podnˇet (HCI pˇr´ıkaz nebo HCI data), kter´ y dostane bud’ od mikroprocesoru nebo od vzd´alen´e Bluetooth jednotky. Protoˇze je komunikaˇcn´ı protokol pevnˇe definov´an, stejnˇe jako pˇr´ıkazy, kter´e zas´ıl´a poˇc´ıtaˇc, nem˚ uˇze doj´ıt k pˇr´ıjet´ı “neˇcekan´eho” paketu. Druhou moˇznost´ı je, ˇze vyprˇsel definovan´ y ˇcas na pˇrijet´ı paketu. Tento ˇcas je dvoj´ıho typu: • mikroprocesor odeˇsle pˇr´ıkaz nebo data a ˇcek´a na ud´alost od Bluetooth Slave tento ˇcas m˚ uˇze b´ yt velmi kr´atk´ y • mikroprocesor ˇcek´a na data od Bluetooth Slave (Master) - tento ˇcas je d´an periodicitou zas´ıl´an´ı datov´ ych paket˚ u z poˇc´ıtaˇce V prv´em pˇr´ıpadˇe vznikl´a chyba znamen´a chybu pˇri komunikaci s jednotkou Bluetooth Slave - je potˇreba zaslat pˇr´ıkaz HCI Reset, tedy zavolat znovu proceduru Start. V druh´em pˇr´ıpadˇe vznikl´a chyba znamen´a chybu v komunikaci se vzd´alen´ ym zaˇr´ızen´ım. D˚ usledek je stejn´ y - opˇet se vol´a procedura Start.
4.3
Poˇ c´ıtaˇ c
ˇ ıdic´ı software pro poˇc´ıtaˇc se t´ R´ yk´a projektu DP. Jeho c´ılem je ovl´ad´an´ı modelu auta s moˇznost´ı pˇrepnut´ı do reˇzimu, kdy mikroprocesor pˇrij´ım´a ˇr´ıdic´ı pakety z PC, ale rozhoduje se o pohybu na z´akladˇe informace pˇrijat´e z optick´ ych ˇcidel. Tyto dva zp˚ usoby ˇr´ızen´ı m˚ uˇzeme rozdˇelit na ruˇcn´ı a automatick´ y reˇzim ˇr´ızen´ı. Aplikace je napsan´a v Borland C++ Builderu verze 5 a je j´ı moˇzn´e spustit v syst´emu Microsoft Windows 95 a vyˇsˇs´ım. Po spuˇstˇen´ı souboru aplikace.exe se objev´ı hlavn´ı okno programu (obr. 4.10). Aplikace komunikuje s Bluetooth modulem pomoc´ı s´eriov´eho portu poˇc´ıtaˇce. Zp˚ usob˚ u pˇr´ıstup˚ u na s´eriov´ y port je v´ıce, z´aleˇz´ı na zvolen´em programovac´ım prostˇred´ı a operaˇcn´ım syst´emu. Pro nez´avislost na verzi operaˇcn´ıho syst´emu Windows jsem pouˇzil ˇreˇsen´ı pˇr´ıstupu na hardwarov´ y blok pomoc´ı aplikaˇcn´ıho rozhran´ı dan´eho operaˇcn´ıho syst´emu. Operaˇcn´ı syst´em je multitaskingov´ y - jednotliv´e procesy mohou pracovat paralelnˇe. Ve WIN32 je na s´eriov´ y port po jeho otevˇren´ı hledˇeno jako na soubor, kter´ y je otevˇren pro ˇcten´ı i pro z´apis. O komunikaci se s´eriov´ ym portem se tedy star´a jeden konkr´etn´ı proces (samostatnˇe bˇeˇz´ıc´ı vl´akno aplikace). V´ıce o zp˚ usobech pˇr´ıstupu k port˚ um najdeme v [7], [8] nebo [9].
4.3 Poˇ c´ıtaˇ c
63
Obr´azek 4.10: Hlavn´ı okno aplikace
4.3.1
Pr´ ace s programem
Pˇred samotn´ ym pouˇz´ıv´an´ım aplikace, tzn. pˇred zapoˇcet´ım pr´ace s pˇripojen´ ym Bluetooth modulem, je potˇreba zkontrolovat, zda jsou nastaven´e hodnoty pˇrenosov´e rychlosti a s´eriov´eho portu spr´avn´e. Automaticky je nastaven port COM1 a 57600 kbps. Tyto parametry lze zmˇenit v menu, stisknut´ım z´aloˇzky Nastaven´ı - S´eriov´a linka - Port nebo Baud rate a v´ ybˇerem odpov´ıdaj´ıc´ı hodnoty. V menu se lze pohybovat i kl´avesov´ ymi zkratkami. Dalˇs´ı nastavitelnou poloˇzkou je perioda vys´ıl´an´ı, kter´a urˇcuje jak ˇcasto PC pos´ıl´a po pˇripojen´ı data mikroprocesoru. Z´akladn´ı nastaven´ı je 100ms. Samotn´a pr´ace s Bluetooth modulem zaˇc´ın´a otevˇren´ım zvolen´eho s´eriov´eho portu. K dispozici jsou tlaˇc´ıtka Reset a Nastaven´ı Mastera. Stiskem tlaˇc´ıtka Reset dojde k zasl´an´ı HCI pˇr´ıkazu Reset do Bluetooth modulu. Pokud nen´ı chyba v komunikaci dojde po kliknut´ı na tlaˇc´ıtko Nastaven´ı Mastera k povolen´ı tlaˇc´ıtka Inquiry a z´aroveˇ n k zobrazen´ı BD adresy pˇripojen´eho Bluetooth modulu ( obr. 4.11a). Stisk tlaˇc´ıtka Inquiry zp˚ usob´ı vyhled´avan´ı okoln´ıch aktivn´ıch zaˇr´ızen´ı Bluetooth. Vˇsechna dostupn´a zaˇr´ızen´ı se objev´ı v oknˇe Dostupn´ a Bluetooth zaˇr´ızen´ı (obr. 4.12). Program je pˇrizp˚ usoben 5-ti nov´ ym zaˇr´ızen´ım a vˇzdy uk´aˇze BD
4.3 Poˇ c´ıtaˇ c
64
Obr´azek 4.11: Informace o pˇripojen´em (a) a vzd´alen´em (b) Bluetooth modulu
Obr´azek 4.12: Informace o nalezen´ ych Slave zaˇr´ızen´ıch
adresy nalezen´ ych zaˇr´ızen´ı pro jejich snaˇzˇs´ı rozpozn´an´ı. Spojen´ı s dan´ ym Bluetooth zaˇr´ızen´ım se vytvoˇr´ı jeho vybr´an´ım z Checkboxu a stiskem tlaˇc´ıtka Vytvoˇrit spojen´ı. Pokud vˇsechny pˇr´ıkazy spouˇsten´e stisky tlaˇc´ıtek probˇehnou u ´spˇeˇsnˇe, objev´ı se zelen´ y n´apis OK, v opaˇcn´em pˇr´ıpadˇe ˇcerven´ y n´apis KO.
4.3.2
Komunikace s modelem auta
Po vytvoˇren´ı spojen´ı mezi obˇema Bluetooth moduly se v oknˇe Informace o vzd´ alen´em Bluetooth zaˇr´ızen´ı objev´ı BD adresa vzd´alen´eho Bluetooth a jeho hodinov´ y offset (obr. 4.11b) a program zaˇcne zas´ılat v pravideln´ ych ˇcasov´ ych intervalech datov´ y paket, obsahuj´ıc´ı aktu´aln´ı informaci o stavu ˇr´ızen´ı, tedy: • o reˇzimu ˇr´ızen´ı (ruˇcn´ı / auto) • o pokynech j´ızdy vpˇred a vzad (3 r˚ uzn´e rychlosti obˇema smˇery + st´an´ı) • o pokynech zat´aˇcen´ı (2 smˇery natoˇcen´ı pˇredn´ı n´apravy + rovnˇe) Samotn´e ovl´ad´an´ı modelu auta a pˇrep´ın´an´ı mezi reˇzimy se nach´az´ı v oknˇe Ovl´ ad´an´ı modelu auta (obr. 4.13). Pokud je model v automatick´em reˇzimu, je zobrazen obr´azek auta s dr´ahou. V opaˇcn´em pˇr´ıpadˇe poˇc´ıtaˇc, kter´ y signalizuje reˇzim ruˇcn´ıho ˇr´ızen´ı.
4.3 Poˇ c´ıtaˇ c
65
Obr´azek 4.13: Okno ovl´ad´an´ı modelu auta
Ovl´ad´at lze panel ˇr´ızen´ı, bud’ pomoc´ı myˇsi nebo kl´avesov´ ych zkratek. Mikroprocesor v odpovˇedi na tento datov´ y paket reaguje zasl´an´ım datov´eho paketu nesouc´ıho informaci o stavu nabit´ı akumul´atoru a stavu trojice ˇcidel (okna Napˇet´ı akumul´ ator˚ u a Stav optick´ych ˇcidel ). Mimo to se program dotazuje pˇripojen´eho Bluetooth modulu na kvalitu vytvoˇren´eho spojen´ı a pˇrijatou informaci ukazuje v oknˇe Kvalita spojen´ı (4.14).
Obr´azek 4.14: Informace o napˇet´ı akumul´ator˚ u, stavu optick´ ych ˇcidel a kvality spojen´ı
Ukonˇcit vytvoˇren´e spojen´ı lze dvˇema zp˚ usoby: • stiskem tlaˇc´ıtka Rozpojen´ı - dojde k zasl´an´ı pˇr´ıkazu Disconnect • zavˇren´ım aplikace - dojde k zasl´an´ı HCI pˇr´ıkazu Disconnect, k uzavˇren´ı portu a zavˇren´ı aplikace Veˇsker´a komunikace po s´eriov´e lince je pr˚ ubˇeˇznˇe zobrazov´ana v oknech Poslan´e byty a Pˇrijat´e byty (obr. 4.15).
4.3 Poˇ c´ıtaˇ c
66
Obr´azek 4.15: Informace o odeslan´ ych a pˇrijat´ ych paketech
4.3.3
Oˇ setˇ ren´ı chybov´ ych stav˚ u
Chybov´e stavy m˚ uˇzeme rozdˇelit na 2 skupiny: 1. Chyby bˇehem komunikace poˇc´ıtaˇce s pˇripojen´ ym Bluetooth modulem bˇehem navazov´an´ı spojen´ı. 2. Chyby bˇehem komunikace Bluetooth modul˚ u bˇehem vytvoˇren´eho spojen´ı. Prvn´ı chybu pozn´ame po stisku tlaˇc´ıtka, kdy se objev´ı ˇcerven´ y n´apis KO - znamen´a to, ˇze je chyba v komunikaci s Bluetooth modulem a je potˇreba zaslat Reset. Pokud ani toto nepom˚ uˇze, je jedin´ ym ˇreˇsen´ım HW Reset, pˇr´ıpadnˇe vypnut´ı a opˇetovn´e zapnut´ı Bluetooth modulu. Tato situace m˚ uˇze nastat v pˇr´ıpadˇe, ˇze Bluetooth modul po RS232 pˇrijme paket, kter´emu nerozum´ı, tedy napˇr. pokud nastav´ıme odliˇsnou pˇrenosovou rychlost oproti nastaven´e v Bluetooth modulu. Druh´ ym chybov´ ym stavem je pˇreruˇsen´ı spojen´ı mezi Bluetooth moduly. Rozpozn´ame ji ve chv´ıli, kdy aplikace st´ale pos´ıl´a datov´ y paket, ale nepˇrich´az´ı odpovˇed’. Zp˚ usobit to m˚ uˇze chyba v komunikaci s pˇripojen´ ym Bluetooth modulem, popˇr. poodjet´ı modelu auta z dosaˇziteln´e vzd´alenosti - dojde k pˇreruˇsen´ı spojen´ı. Program v mikroprocesoru v takov´em pˇr´ıpadˇe po urˇcit´e dobˇe zinicializuje Bluetooth Slave a “pˇriprav´ı” ho k dalˇs´ımu spojen´ı. Aplikace nahl´as´ı chybu spojen´ı a je potˇreba znovu zopakovat postup nav´az´an´ı spojen´ı s Bluetooth modulem u poˇc´ıtaˇce.
Kapitola 5 Z´ avˇ er Tato diplomov´a pr´ace zahrnuje pr´aci na dvou projektech souˇcasnˇe. Hlavn´ım projektem byla samotn´a diplomov´a pr´ace na katedˇre ˇr´ıdic´ı techniky, vedlejˇs´ım byl projekt pro V´ yzkumn´e a v´ yvojov´e centrum v Praze. Rozd´ıl mezi obˇema projekty byl v pouˇzit´ı ˇr´ıdic´ıho syst´emu. V prv´em pˇr´ıpadˇe je pouˇzit poˇc´ıtaˇc pˇripojen´ y k Bluetooth modulu, v druh´em mobiln´ı telefon Nokia 6600. Hlavn´ım pˇr´ınosem druh´eho projektu je demonstrace zp˚ usobu nav´az´an´ı spojen´ı mikroprocesor - Bluetooth modul - mobiln´ı telefon a jejich vz´ajemn´e komunikace. Pr´aci na obou projektech lze rozdˇelit na hardwarovou a softwarovou ˇc´ast. V hardwarov´e ˇc´asti byla navrˇzena a realizov´ana elektronika v obou modelech automobilu vˇcetnˇe ˇr´ıdic´ıho syst´emu. V softwarov´e ˇc´asti byl vytvoˇren program pro mikroprocesor pro oba projekty a byla naprogramov´ana ˇr´ıdic´ı aplikace pro poˇc´ıtaˇc. Hardwarov´a ˇc´ast se skl´adala z elektrick´e a mechanick´e ˇc´asti. V elektrick´e ˇc´asti jsem se nejdˇr´ıve zab´ yval komunikac´ı Bluetooth modulu s poˇc´ıtaˇcem pˇres RS232 a vz´ajemnou komunikac´ı mikroprocesoru s Bluetooth modulem. D´ale jsem navrhl zapojen´ı elektroniky potˇrebn´e pro vz´ajemnou komunikaci a ovl´ad´an´ı perif´eri´ı mikroprocesorem (motory, ˇcidla, ...). Do mechanick´e ˇc´asti patˇr´ı u ´prava pˇredn´ı n´apravy pro proporcion´aln´ı ˇr´ızen´ı, um´ıstˇen´ı servomotoru, n´ahrada p˚ uvodn´ı desky ploˇsn´ ych spoj˚ u za novˇe navrˇzenou a pˇrichycen´ı desky s ˇcidly k podvozku automobilu. Softwarov´a ˇc´ast se skl´ad´a ze dvou program˚ u. Prvn´ı z nich, program pro mikroprocesor, je naps´an ve dvou verz´ıch. Prv´a pro komunikaci s poˇc´ıtaˇcem, druh´a pro komunikaci s mobiln´ım telefonem. Druh´ ym programem je aplikace pro poˇc´ıtaˇc zajiˇst’uj´ıc´ı komunikaci s pˇripojen´ ym i vzd´alen´ ym Bluetooth modulem a umoˇzn ˇuj´ıc´ı pˇrenos uˇzivatelsk´ ych poˇzadavk˚ u. Rychlost pˇrenosu informace mezi ˇr´ıdic´ım syst´emem a modelem automobilu je dostateˇcn´a, celkov´a doba jednoho komunikaˇcn´ıho cyklu je kratˇs´ı neˇz 100ms a lze tedy tento zp˚ usob ˇr´ızen´ı povaˇzovat za ˇ r´ızen´ı v re´ aln´ em ˇ case.
67
Literatura [1] Vacek, V.: Uˇcebnice programov´ an´ı PIC . Vydavatelstv´ı BEN - technick´a literatura, Praha 2002. ˇej Vysoky ´, CSc.: Elektronick´e syst´emy II . Vydavatelstv´ı [2] Doc.Ing.Ondr ˇ CVUT, Praha 1999. ˇ ´c ˇek, M.: Elektrick´ [3] Haasz, V., Sedla a mˇeˇren´ı. Vydavatelstv´ı CVUT, Praha 1998. ˇ [4] Foit, J., Hudec, L.: Souˇc´ astky modern´ı elektroniky. Vydavatelstv´ı CVUT, Praha 1998. ´hlava, V.: OrCad 10 . Vydavatelstv´ı Grada Publishing, a.s., Praha 2004. [5] Za ˇ [6] Jelen, J.: Fyzika II . Vydavatelstv´ı CVUT, Praha 1998. ´clav: S´eriov´a komunikace ve WIN32 . Vydavatelstv´ı BEN, Praha [7] Vacek, Va 2003. [8] Matouˇ sek, David: C++ Builder v´yvojov´e prostˇred´ı 3.d´ıl . Vydavatelstv´ı BEN, Praha 2003. [9] Markus, Linke: Visual Basic 5 . Vydavatelstv´ı Grada Publishing, Praha 1998. [10] The Offical Bluetooth Membership Site: http://www.bluetooth.org [11] Microchip Technology Inc.: http://www.microchip.com [12] Lablink: http://dce.felk.cvut.cz/lablink/main.php [13] ZigBee Alliance: http://www.zigbee.org [14] Wi-Fi Alliance: http://www.wi-fi.org ˇ ´ sdruˇ [15] Ceskoslovensk e zen´ı uˇ zivatel˚ u TeXu: http://www.cstug.cz/
68
Dodatek A Struktura pˇ riloˇ zen´ eho CD ROM Pˇriloˇzen´ y CD ROM v jednotliv´ ych sloˇzk´ach obsahuje:
Obr´azek A.1: Sch´ema zapojen´ı elektroniky pro DP
Diplomov´ a pr´ ace – Tato diplomov´a pr´ace ve form´atu PDF. Manu´ aly – Dokumentace k pouˇz´ıvan´emu hardwaru a softwaru ve form´atu PDF. Obr´ azky, videa – Veˇsker´e pouˇzit´e obr´azky ve form´atech PNG a JPG. Projekty – Kompletn´ı projekt pro mikroprocesor v prostˇred´ı MPLAB, kompletn´ı projekt aplikace pro poˇc´ıtaˇc a mobiln´ı telefon, deska ploˇsn´ ych spoj˚ u v programu OrCad.
69
Dodatek B Realizace v´ ysledn´ e desky Sch´ema zapojen´ı elektroniky projektu DP je na obr. B.1.
Obr´azek B.1: Sch´ema zapojen´ı elektroniky pro DP
70
71
Obr´azek B.2: Rozm´ıstˇen´ı souˇc´astek Sch´ema zapojen´ı elektroniky projektu BTRC je na obr. B.3.
Obr´azek B.3: Sch´ema zapojen´ı pˇr´ıdavn´e elektroniky pro BTRC
Dodatek C Komunikace RS232 Projekt DP Zachycen´a komunikace bˇehem inicializace a n´asledn´e komunikace s Bluetooth modulem ************************************************************* Parametrizace Master ************************************************************* 01 05 10 00 01 - oznaˇcen´ı pˇr´ıkazu, 0510 - OpCode: Read buffer size, 00 - d´elka parametr˚ u: 0 byt˚ u 04 0E 0B 01 05 10 00 C0 00 40 08 00 08 00 04 - oznaˇcen´ı ud´alosti, 0E - typ ud´alosti: Command Complete, 0B - d´elka parametr˚ u: 11 byt˚ u, 0510 - OpCode: Read Buffer Size, 00 - Status: OK, C000 - d´elka datov´eho paketu HC ACL: 192 byt˚ u, 40 - d´elka datov´eho paketu HC SCO, 0800 - celkov´ y poˇcet HC ACL datov´ ych paket˚ u: 8, 0800 - celkov´ y poˇcet HC SCO datov´ ych paket˚ u: 8 01 09 10 00 01 - oznaˇcen´ı pˇr´ıkazu, 0910 - OpCode: Read BD ADDR, 00 - d´elka parametr˚ u: 0 byt˚ u 04 0E 0A 01 09 10 00 6C 40 60 06 00 08 04 - oznaˇcen´ı ud´alosti, 0E - typ ud´alosti: Command Complete, 0A - d´elka parametr˚ u: 10 byt˚ u, 0109 - OpCode: Read BD ADDR, 00 - Status: OK. 6C4060060008 - BD ADDR
************************************************************* Parametrizace Slave ************************************************************* 01 05 0C 03 02 00 02 01 - oznaˇcen´ı pˇr´ıkazu, 050C - OpCode: HCI Set Event Filter, 03 - d´elka parametr˚ u: 3 byty, 02 - typ filtru: nastaven´ı spojen´ı, 00 - typ podm´ınky filtru Inquiry Result: nov´e zaˇr´ızen´ı odpov´ıd´a na inquiry, 02 - typ filtru Connection Setup: povoleni spojeni 72
73
se zaˇr´ızen´ım se specif. BD ADDR 04 0E 04 01 05 0C 00 04 - oznaˇcen´ı ud´alosti, 0E - typ ud´alosti: Command Complete, 04 - d´elka parametr˚ u: 4 byty, 01 - poˇcet HCI paket˚ u: 1, 050C - OpCode: HCI Set Event Filter, 00 - Status: OK 01 1C 0C 04 40 00 20 00 01 - oznaˇcen´ı pˇr´ıkazu, 1C0C - OpCode: Write Page Scan Activity, 04 - d´elka parametr˚ u: 4 byty, 4000 - interval Page skenu: 64 x 0.625ms = 40ms, 2000 - interval Page okna: 32 x 0.625ms = 20ms 04 0E 04 01 1C 0C 00 04 - oznaˇcen´ı ud´alosti, 0E - typ ud´alosti: Command Complete, 04 - d´elka parametr˚ u: 4 byty, 01 - poˇcet HCI paket˚ u: 1, 1C0C - OpCode, 00 - Status: OK 01 1E 0C 04 40 00 20 00 01 - oznaˇcen´ı pˇr´ıkazu, 1E0C - OpCode: Write Inquiry Scan Activity, 04 - d´elka parametr˚ u: 4 byty, 4000 - interval Inquiry skenu: 64 x 0.625ms = 40ms, 2000 - interval Inquiry okna: 32 x 0.625ms = 20ms 04 0E 04 01 1E 0C 00 04 - oznaˇcen´ı ud´alosti, 0E - typ ud´alosti: Command Complete, 04 - d´elka parametr˚ u: 4 byty, 01 - poˇcet HCI paket˚ u: 1, 1E0C - OpCode, 00 - Status: OK 01 1A 0C 01 03 01 - oznaˇcen´ı pˇr´ıkazu, 1A0C - OpCode: Write Scan Enable, 01 - d´elka parametr˚ u: 1 byte, 03 - povolen0 skenu: Inquiry a Page skeny povoleny 04 0E 04 01 1A 0C 00 04 - oznaˇcen´ı ud´alosti, 0E - typ ud´alosti: Command Complete, 04 - d´elka parametr˚ u: 4 byty, 01 - poˇcet HCI paket˚ u: 1, 1A0C - OpCode, 00 - Status: OK
************************************************************* Master vyhled´av´a zaˇr´ızen´ı pomoc´ı pˇr´ıkazu Inquiry ************************************************************* 01 01 04 05 33 8B 9E 0A 08 01 - oznaˇcen´ı pˇr´ıkazu, 050C - OpCode: HCI Inquiry, 05 - d´elka parametr˚ u: 5 byt˚ u, 338B9E - LAP, 0A - d´elka Inquiry: 10 x 1.28 = 12.8s, 08 - poˇcet zaˇr´ızen´ı, od kter´ ych ’ Master pˇrijme odpovˇed na Inquiry : 8 04 0F 04 00 01 01 04 04 02 0F 01 B2 A1 5E 06 00 08 01 00 00 00 00 00 0E 16 04 01 01 00 04 - oznaˇcen´ı ud´alosti, 0E - typ ud´alosti: Command Status Event, 04 - d´elka parametr˚ u: 4 byty, 00 - Status: OK, 01 - poˇcet HCI paket˚ u: 1, 01 04 - OpCode, 04 oznaˇcen´ı ud´alosti, 02 - typ ud´alosti: Inquiry Result, 0F - d´elka parametr˚ u: 15, 01 poˇcet zaˇr´ızen´ı, kter´a odpovˇedˇela na Inquiry, B2 A1 5E 06 00 08 - BD ADDR: 08 00 06 5E A1 B2, 01 - reˇzim opakov´an´ı Page skenu: R1, 00 - reˇzim periody Page skenu: P0, 00 - reˇzim Page skenu: hlavn´ı sken, 00 00 00 - tˇr´ıda zaˇr´ızen´ı, 0E 16 - hodinov´ y ofset: 16 0E, 04 - oznaˇcen´ı ud´alosti, 01 - typ ud´alosti: Inquiry Complete, 01 - d´elka
74
parametr˚ u, 00 - Status: OK
************************************************************* Master zaˇsle pˇr´ıkaz na vytvoˇren´ı spojen´ı - reakce na stranˇe Master ************************************************************* 01 05 04 0D B2 A1 5E 06 00 08 18 CC 00 00 0E 96 00 01 - oznaˇcen´ı pˇr´ıkazu, 0504 - OpCode: Create Connection, 0D - d´elka parametr˚ u: 13 byt˚ u, B2 A1 5E 06 00 08 - BD adresa zaˇr´ızen´ı: 08 00 06 5E A1 B2, 18 CC - typ paketu, 00 -reˇzim opakov´an´ı Page skenu: R0, 00 - reˇzim Page skenu: hlavn´ı, 0E 96 - hodinov´ y ofset: 96 0E, 00 - povolen´ı z´amˇeny rol´ı 04 0F 04 00 01 05 04 04 03 0B 00 28 00 B2 A1 5E 06 00 08 01 00 04 1B 03 28 00 05 04 - oznaˇcen´ı ud´alosti, 0F - typ ud´alosti: Command Status Event, 04 - d´elka parametr˚ u: 4 byty, 00 - Status: OK, 01 - poˇcet paket˚ u HCI pˇr´ıkaz˚ u, 05 04 - OpCode Create Connection, 04 - oznaˇcen´ı ud´alosti, 03 - typ ud´alosti - Connection Complete, 0B - d´elka parametr˚ u: 11, 00 - Status: OK, 28 00 - Connection Handle, B2 A1 5E 06 00 08 - BD adresa, 01 - typ vytvoˇren´eho spojen´ı: ACL, 00 - reˇzim k´odov´an´ı: zak´az´an, 04 - oznaˇcen´ı ud´alosti, 1B - typ ud´alosti: maxim´aln´ı zmˇena r´amc˚ u, 03 d´elka parametr˚ u, 28 00 - Connection Handle, 05 - LMP Max Slots: mohou b´ yt 1,3 i 5
************************************************************* Master zaˇsle pˇr´ıkaz na vytvoˇren´ı spojen´ı - reakce na stranˇe Slave ************************************************************* 04 03 0B 00 28 00 B2 A1 5E 06 00 08 01 00 04 1B 03 28 00 05 04 - oznaˇcen´ı ud´alosti, 03 - typ ud´alosti: Connection Complete, 0B - d´elka parametr˚ u, 00 - Status: OK, 28 00 - Connection handle, B2 A1 5E 06 00 08 - BD adresa: 08 00 06 5E A1 B2, 01 - typ vytvoˇren´eho spojen´ı: ACL, 00 - reˇzim k´odov´an´ı: zak´az´an, 04 - oznaˇcen´ı ud´alosti, 1B - typ ud´alosti: Max Slot Change, 03 - d´elka parametr˚ u: 3, 28 00 - Connection Handle, 05 - LMP Max Slots: m˚ uˇze b´ yt 1, 3 i 5 ˇcasov´ ych slot˚ u
************************************************************* Zasl´an´ı dat pomoc´ı ACL spojen´ı ************************************************************* 02 28 20 01 00 73 02 - oznaˇcen´ı datov´eho paketu, 28 20 - Connection Handle, 01 00 - d´elka dat: 1 byte, 73 - datov´ y byte 04 13 05 01 28 00 01 00 04 - oznaˇcen´ı ud´alosti, 13 - typ ud´alosti - kompletnˇe odeslan´e pakety, 05 - d´elka parametr˚ u, 01 - poˇcet spojen´ı: 1, 28 00 - Connection Handle, 01 00 - poˇcet kompletnˇe odeslan´ ych paket˚ u: 1
75
************************************************************* Pˇrijet´ı dat pomoc´ı ACL spojen´ı ************************************************************* 02 28 20 01 00 73 02 - oznaˇcen´ı datov´eho paketu, 28 20 - Connection Handle, 01 00 - d´elka dat: 1 byte, 73 - datov´ y byte ************************************************************* Slave zaˇsle pˇr´ıkaz rozpojen´ı - reakce na stranˇe Slave ************************************************************* 01 06 04 03 28 00 13 01 - oznaˇcen´ı pˇr´ıkazu, 06 04 - OpCode: HCI Disconnect, 03 - d´elka parametr˚ u: 3, 28 00 - Connection Handle, 13 - D˚ uvod -¿ Uˇzivatel ukonˇcil spojen´ı 04 0F 04 00 01 06 04 04 05 04 00 28 00 16 04 - oznaˇcen´ı ud´alosti, 0F - typ ud´alosti - Command Status, 04 - d´elka parametr˚ u, 00 - Status: OK, 01 - poˇcet HCI pˇr´ıkaz˚ u, 06 04 - OpCode, 04 - oznaˇcen´ı ud´alosti, 05 - typ ud´alosti - Disconnection Complete, 04 - d´elka parametr˚ u, 00 - Status: OK, 28 00 - Connection Handle, 16 D˚ uvod: Spojen´ı ukonˇceno lok´aln´ım hostem
************************************************************* Slave zaˇsle pˇr´ıkaz rozpojen´ı - reakce na stranˇe Master ************************************************************* 04 05 04 00 28 00 13 04 - znaˇcen´ı ud´alosti, 05 - typ ud´alosti - Disconnect Complete, 04 - d´elka parametr˚ u, 00 - Status: OK, 28 00 - Connection Handle, 13 - d˚ uvod: spojen´ı ukonˇceno na ˇz´adost hosta Projekt BTRC Komunikace mezi mobiln´ım telefonem (L2CAP) a bluetooth jednotkou ************************************************************* Nastaven´ı Slave ************************************************************* 01 03 0C 00 01 - oznaˇcen´ı pˇr´ıkazu, 03 0C - OpCode: Reset, 00 - d´elka parametr˚ u 04 0E 04 01 03 0C 00 04 - oznaˇcen´ı ud´alosti, 0E - typ ud´alosti: Command Complete, 04 - d´elka parametr˚ u: 4, 01 - poˇcet HCI paket˚ u pˇr´ıkazu: 1, 03 0C - OpCode: Reset, 00 - Status - OK 01 1A 0C 01 03 01 - oznaˇcen´ı pˇr´ıkazu, 1A0C - OpCode: Write Scan Enable, 01 - d´elka parametr˚ u, 03 - inquiry sken povolen, page sken povolen,
76
04 0E 04 01 1A 0C 00 04 - oznaˇcen´ı ud´alosti, 0E - typ ud´alosti: Command Complete, 00 - status OK
************************************************************ Vytvoˇren´ı spojen´ı + zasl´an´ı prv´eho datov´eho paketu - reakce na stranˇe Slave ************************************************************ 04 04 0a 8e 9f 39 6d 0e 00 04 02 50 01 04 - oznaˇcen´ı ud´alosti, 04 - typ ud´alosti: Connection Request, 8e 9f 39 6d 0e 00 BD adresa, 04 02 50 - tˇr´ıda zaˇr´ızen´ı, 01 - typ spojen´ı: ACL 01 09 04 07 8e 9f 39 6d 0e 00 01 01 - oznaˇcen´ı pˇr´ıkazu, 0904 - OpCode: Accept Connection, 8e 9f 39 6d 0e 00 - BD adresa, 01 - role: pouze Slave 04 0F 04 00 01 09 04 04 - oznaˇcen´ı ud´alosti, typ ud´alosti: Command Status, 04 - d´elka: 4, 00 - Status: OK, 01 - poˇcet HCI paket˚ u pˇr´ıkazu: 1, 09 04 - Opcode 04 03 0B 00 28 00 8E 9F 39 6D 0E 00 01 00 04 - oznaˇcen´ı ud´alosti, 03 - typ ud´alosti: Connection Complete, 0B - d´elka parametr˚ u: 11, 00 - Status: OK, 29 00 - Connection Handle, 8E 9F 39 6D 0E 00 - BD adresa, 01 - typ spoejn´ı: ACL, 00 - reˇzim k´odov´an´ı: zak´az´an 02 28 20 0C 00 08 00 01 00 02 01 04 00 01 20 50 00 02 - datov´ y paket, 2820 Connection Handle, 0C - d´elka dat: 13, 08 00 - d´elka paketu L2CAP: 8, 01 00 - CID, 02 - typ L2CAP: Connection Request, 01 - identifik´ator L2CAP, 04 00 - d´elka parametr˚ u, 01 20 - Protocol Service Multiplexor - PSM: nastavuje se v mobil. telefonu, 5F 00 - source CID 04 1B 03 28 00 05 04 - oznaˇcen´ı ud´alosti, 1B - typ ud´alosti: Max Slots Change, 03 d´elka parametr˚ u: 3, 29 00 - Connection Handle, 05 - LMP: lze pouˇz´ıvat 1, 3 i 5 ˇcasov´ ych r´amc˚ u 02 28 20 10 00 0c 00 01 00 03 01 08 00 FF 01 50 00 00 00 00 00 02 - oznaˇcen´ı datov´eho paketu, 28 20 - Connection Handle, 10 00 - d´elka dat: 10, 0C 00 - d´elka L2CAP paketu: 13, 01 00 - CID, 03 - typ L2CAP: Connection Response, 01 - identifik´ator, 08 00 - d´elka parametr˚ u, FF 01 - c´ılov´e CID, 5F 00 - zdrojov´e, 00 00 - Status: ˇz´adn´e dalˇs´ı informace, 00 00 - v´ ysledek - Spojen´ı u ´spˇeˇsn´e 04 13 05 01 28 00 01 00 04 - oznaˇcen´ı ud´alosti, 13 - typ ud´alosti: Number Of Completed Packets, 05 - d´elka parametr˚ u: 5, 01 - poˇcet HCI paket˚ u, 29 00 - Connection Handle, 01 00 - poˇcet u ´spˇeˇsnˇe odeslan´ ych paket˚ u 02 28 20 0c 00 08 00 01 00 04 01 04 00 50 00 00 00 02 - oznaˇcen´ı datov´eho paketu, 28 20 - Connection Handle, 0C 00 - d´elka dat: 13, 08 00 - delka paketu L2CAP, 01 00 - CID, 04 - typ L2CAP paketu: Configuration Request, 01 - identifik´ator, 04 00 - d´elka parametr˚ u: 4, 50 00 - c´ılov´e CID, 00 00 Pˇr´ıznaky - ˇz´adn´e 04 13 05 01 28 00 01 00 04 - oznaˇcen´ı ud´alosti, 13 - typ ud´alosti: Number Of Completed Packets, 05 - d´elka
77
parametr˚ u: 5, 01 - poˇcet HCI paket˚ u, 29 00 - Connection Handle, 01 00 - poˇcet u ´spˇeˇsnˇe odeslan´ ych paket˚ u 02 28 20 0e 00 0a 00 01 00 05 02 06 00 50 00 00 00 00 00 02 - oznaˇcen´ı datov´eho paketu, 28 20 - Connection Handle, 0E 00 - d´elka parametr˚ u: 14 byt˚ u, 0A 00 - d´elka paketu L2CAP: 10 byt˚ u, 01 00 - CID, 05 - typ L2CAP paketu: Configure Response, 02 - identifik´ator, 06 00 - d´elka L2CAP paketu, 5F 00 - zdrojov´e CID, 00 00 - pˇr´ıznaky: ˇz´adn´e, 00 00 - v´ ysledek: OK 04 13 05 01 28 00 01 00 04 - oznaˇcen´ı ud´alosti, 13 - typ ud´alosti: Number Of Completed Packets, 05 - d´elka parametr˚ u: 5, 01 - poˇcet HCI paket˚ u, 29 00 - Connection Handle, 01 00 - poˇcet u ´spˇeˇsnˇe odeslan´ ych paket˚ u 02 28 20 05 00 01 00 FF 01 61 02 - oznaˇcen´ı datov´eho paketu, 28 20 - Connection Handle, 05 00 - d´elka paketu: 5 byt˚ u, 01 00 - d´elka paketu L2CAP, FF 01 - CID, 61 - zaslan´a data: 61