ˇ ´ vysok´ ˇen´ı technick´ Cesk e e uc e v Praze ´ Fakulta elektrotechnicka
´ PRACE ´ DIPLOMOVA ˇ ıdic´ı modul modelov´ R´ e lokomotivy pro ˇ dopravn´ı laboratoˇ r FD CVUT
Praha, 2011
Autor: Bc. Martin H¨ onig
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.
V Praze dne podpis
i
Podˇ ekov´ an´ı Dˇekuji vedouc´ımu diplomov´e pr´ace Ing. V´ıtovi F´aberovi, Ph.D. za studin´ı materi´aly, konzultace a veden´ı v pr˚ ubˇehu zpracov´an´ı t´eto diplomov´e pr´ace. Dˇekuji Ing. Martinu Leso, Ph.D za moˇznost pr´ace na velmi zaj´ımav´em projektu a za materi´aln´ı podporu, bez kter´e by nebyla realizace ˇreˇsen´ı moˇzn´a. D´ale dˇekuji Pavlovi H¨ ubnerovi ml. za cenn´e konzultace bˇehem n´avrhu elektroniky a Ing. Karlovi Duˇskovi, Ph.D. za pomoc pˇri osazov´an´ı Bluetooth modul˚ u na specializovan´em pracoviˇsti.
ii
Abstrakt C´ılem t´eto diplomov´e pr´ace je dokonˇcen´ı v´yvoje ˇr´ıdic´ıho modulu pro modelov´e lokomoˇ ˇ ıdic´ı tivy, kter´e budou nasazeny v budovan´em dopravn´ım s´ale Fakulty dopravn´ı CVUT. R´ modul m´a za u ´ kol pˇrevz´ıt funkci komerˇcnˇe vyr´abˇen´ych modul˚ u s dodateˇcnou funkˇcnost´ı poˇzadovanou pro jeho nasazen´ı v dopravn´ım s´ale. Jmenovitˇe je poˇzadov´ano zpˇetnovazebnˇe ˇr´ıdit ot´aˇcky motoru na poˇzadovan´e hodnotˇe ve vˇsech moˇzn´ych reˇzimech zat´ıˇzen´ı soupravy, sb´ırat a pˇrepos´ılat data o poloze a ujet´e vzd´alenosti soupravy nadˇrazen´emu ˇr´ıd´ıc´ımu syst´emu a zastoupit funkci zvukov´eho modulu. Pro oboustrann´y pˇrenos je vyuˇzita bezdr´atov´a technologie Bluetooth. Pr´ace m´a za u ´ kol dle zadan´ych poˇzadavk˚ u a dosavadn´ıch ¨ nig, M., 2008), (Ho ¨ nig, M., 2009)) vybrat zkuˇsenost´ı (viz. (Pavliˇ sta, D., 2007), (Ho dostateˇcnˇe v´ykonnou a vhodnou mikroprocesorovou platformu, kter´a pokryje dodateˇcn´e poˇzadavky na ˇr´ıdic´ı modul.
iii
Abstract The goal of these diploma thesis is finishing development of control module for model locomotive, wich will be operate on emerging transportation laboratory at CTU, Faculty of Transportation Sciences. Control module should take over a capabilities of commercially accessible control modules with some extra additional capabilities, wich is required for operating at transportation laboratory. Namely it should be capable of feedback controlling of motor at desired value at all possible load, gather and report position of train and distance moved to superior system and take over a function of sound module. Bluetooth wireless technology is used for bilateral comunication. Thesis should determin a sufficient performance microprocesor platform based on formentioned requirements and ¨ nig, M., 2008), (Ho ¨ nig, M., 2009)). present experinece (see. (Pavliˇ sta, D., 2007), (Ho
iv
vloˇzit origin´aln´ı zad´an´ı !!!!!
v
vi
Obsah Seznam obr´ azk˚ u
ix
Seznam tabulek
xi
´ 1 Uvod
1
1.1
Pˇrehled souˇcasn´eho stavu
. . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
N´avrh fin´aln´ıho ˇreˇsen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
ˇ sen´ı migrace na novou platformu 2 Reˇ 2.1
2.2
7
Anal´yza poˇzadavk˚ u na novou platformu . . . . . . . . . . . . . . . . . . .
7
2.1.1
Definice hodnot´ıc´ıch krit´eri´ı . . . . . . . . . . . . . . . . . . . . .
7
2.1.2
Porovn´an´ı sledovan´ych parametr˚ u . . . . . . . . . . . . . . . . . .
9
2.1.3
N´aroky na v´ypoˇcetn´ı v´ykon . . . . . . . . . . . . . . . . . . . . .
10
2.1.4
Diskuze nad porovn´an´ı kandid´at˚ u na novou platformu . . . . . . .
14
Migrace funkˇcn´ıho k´odu na novou platformu . . . . . . . . . . . . . . . .
15
2.2.1
16
Ovˇeˇren´ı splnˇen´ı p˚ uvodn´ı funkˇcnosti . . . . . . . . . . . . . . . . .
3 N´ avrh a ˇ reˇ sen´ı zvukov´ eho modulu
17
3.1
Hardwarov´e ˇreˇsen´ı zvukov´eho modulu . . . . . . . . . . . . . . . . . . . .
17
3.2
Softwarov´e ˇreˇsen´ı zvukov´eho modelu . . . . . . . . . . . . . . . . . . . .
20
3.2.1
Modelov´an´ı dle DP M. Hajn´eho . . . . . . . . . . . . . . . . . . .
20
3.2.2
Modelov´an´ı dle Microsoft Train Simulator . . . . . . . . . . . . .
21
3.2.3
Modelov´an´ı pro vlastn´ı potˇrebu zvukov´eho modulu . . . . . . . .
24
3.3
M´ıch´an´ı v´ıce zdroj˚ u sign´alu v digit´aln´ı podobˇe . . . . . . . . . . . . . . .
24
3.4
Zvukov´a odezva emulace motoru na zmˇenu rychlosti j´ızdy . . . . . . . . .
27
4 Realizace nov´ eho ˇ r´ıdic´ıho modulu 4.1
29
Pˇrepracovan´a zdrojov´a ˇc´ast modulu . . . . . . . . . . . . . . . . . . . . . vii
30
4.1.2
ˇ sen´ı se superkapacitorem . . . . . . . . . . . . . . . . . . . . . Reˇ ˇ sen´ı s bateri´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reˇ
34
4.1.3
V´ybˇer fin´aln´ıho ˇreˇsen´ı z´alohov´an´ı . . . . . . . . . . . . . . . . . .
35
Implementace HCI rozhran´ı pro komunikaci s BT modulem . . . . . . . .
36
4.2.1
HCI Command Packet . . . . . . . . . . . . . . . . . . . . . . . .
37
4.2.2
HCI Event Packet . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
4.2.3
HCI ACL/SCO Data Packet . . . . . . . . . . . . . . . . . . . . .
40
4.2.4
Proces vyjedn´an´ı spojen´ı mezi Bluetooth moduly . . . . . . . . .
42
4.3
Testov´an´ı alternativn´ı odometrie . . . . . . . . . . . . . . . . . . . . . . .
44
4.4
Dodateˇcnˇe pˇridan´e funkce . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.5
Z´astavba modulu do lokomotivy . . . . . . . . . . . . . . . . . . . . . . .
51
4.1.1
4.2
30
5 Z´ avˇ er
57
Literatura
61
A Kompletn´ı elektrick´ e schema ˇ r´ıdic´ıho modulu
I
B Seznam pouˇ zit´ eho software
IX
C Obsah pˇ riloˇ zen´ eho CD
XI
viii
Seznam obr´ azk˚ u 1.1
Blokov´e schema st´avaj´ıc´ıho ˇr´ıdic´ıho modulu . . . . . . . . . . . . . . . .
3
1.2
Blokov´e schema navrhovan´eho pˇrepracovan´eho ˇr´ıdic´ıho modulu . . . . . .
5
3.1
Sch´ema zapojen´ı zvukov´e ˇc´asti modulu . . . . . . . . . . . . . . . . . . .
19
3.2
Rekonstruovan´e kˇrivky rychlostn´ıho koeficientu pˇrehr´avan´ych vzork˚ u zvuk˚ u 23
3.3
Rekonstruovan´e kˇrivky koeficientu zes´ılen´ı pˇrehr´avan´ych vzork˚ u zvuk˚ u. .
23
3.4
Simulace m´ıch´an´ı dvou sign´alu v digit´aln´ı podobˇe . . . . . . . . . . . . .
26
3.5
Pˇrevodn´ı charakteristika stˇr´ıdy PWM sign´alu na rychlost j´ızdy . . . . . .
28
4.1
Simulace vyb´ıjen´ı superkapacitoru pˇri v´ypadku nap´ajen´ı . . . . . . . . .
32
4.2
Simulace nab´ıjen´ı superkapacitoru pˇri n´abˇehu nap´ajen´ı . . . . . . . . . .
33
4.3
Schema z´alohy nap´ajen´ı pomoc´ı superkapacitoru . . . . . . . . . . . . . .
33
4.4
Schema z´alohy nap´ajen´ı pomoc´ı baterie . . . . . . . . . . . . . . . . . . .
34
4.5
Schema komunikaˇcn´ıho kan´alu mezi zaˇr´ızen´ımi pomoc´ı rozhran´ı HCI . . .
37
4.6
Form´at HCI Command Packetu . . . . . . . . . . . . . . . . . . . . . . .
38
4.7
Form´at HCI Event Packetu
. . . . . . . . . . . . . . . . . . . . . . . . .
39
4.8
Form´at HCI Data Packetu . . . . . . . . . . . . . . . . . . . . . . . . . .
41
4.9
Porovn´an´ı u ´ daj˚ u o rychlosti z r˚ uzn´ych zdroj˚ u mˇeˇren´ı . . . . . . . . . . .
45
4.10 Pˇrevodn´ı pomˇer u ´ daj˚ u o rychlosti v pr˚ ubˇehu cel´eho mˇeˇren´ı . . . . . . . .
46
4.11 Mˇeˇren´ı d´elky okruhu pomoc´ı odometrie na b´azi IR ˇcidla
. . . . . . . . .
48
4.12 Mˇeˇren´ı d´elky okruhu pomoc´ı odometrie na b´azi BEMF . . . . . . . . . .
48
4.13 Schema detekce polarity nap´ajen´ı v kolej´ıch . . . . . . . . . . . . . . . .
51
4.14 Tˇelo lokomotivy po odvrt´an´ı a odfr´ezov´an´ı . . . . . . . . . . . . . . . . .
52
4.15 Pohlez zespodu na sn´ımaˇc IR bal´ız bez plastov´eho pˇrekrytu . . . . . . . .
52
4.16 Hotov´a z´astavba kabel´aˇze bez pˇripojen´eho ˇr´ıdic´ıho modulu . . . . . . . .
53
4.17 Hotov´a z´astavba s osazen´ym ˇr´ıdic´ım modulem . . . . . . . . . . . . . . .
54
4.18 Pohled z boku - sloˇzen´ı fotografie s a bez kapoty . . . . . . . . . . . . . .
54
4.19 Fin´aln´ı sestava lokomotivy s rozsv´ıcen´ymi hlavn´ımi svˇetly . . . . . . . . .
55
ix
A.1 Schema zdrojov´e ˇc´asti ˇr´ıdic´ıho modulu - ˇc´ast 1 . . . . . . . . . . . . . . .
II
A.2 Schema zdrojov´e ˇc´asti ˇr´ıdic´ıho modulu - ˇc´ast 2 . . . . . . . . . . . . . . .
III
A.3 Schema procesorov´e ˇc´asti ˇr´ıdic´ıho modulu - ˇc´ast 1 . . . . . . . . . . . . .
IV
A.4 Schema procesorov´e ˇc´asti ˇr´ıdic´ıho modulu - ˇc´ast 2 . . . . . . . . . . . . .
V
A.5 Schema motorov´e bud´ıc´ı ˇc´asti ˇr´ıdic´ıho modulu - ˇc´ast 1 . . . . . . . . . .
VI
A.6 Schema motorov´e bud´ıc´ı ˇc´asti ˇr´ıdic´ıho modulu - ˇc´ast 2 . . . . . . . . . .
VII
A.7 Schema procesorov´e ˇc´asti ˇr´ıdic´ıho modulu - ˇc´ast 3 . . . . . . . . . . . . . VIII
x
Seznam tabulek 2.1
Porovn´an´ı sledovan´ych parametr˚ u mikroprocesor˚ u . . . . . . . . . . . . .
11
2.2
12
2.3
Periodicky volan´e bloky k´odu . . . . . . . . . . . . . . . . . . . . . . . . ˇ potˇrebn´y pro vykon´an´ı operace . . . . . . . . . . . . . . . . . . . . . Cas
4.1
Form´at pˇr´ıchoz´ıho datagramu od BT serveru . . . . . . . . . . . . . . . .
41
4.2
V´yznam nastaven´ı rychlosti v pˇr´ıchoz´ıch datech . . . . . . . . . . . . . .
42
4.3
V´yznam nastaven´ı svˇetla a zvuku v pˇr´ıchoz´ıch datech . . . . . . . . . . .
42
4.4
Form´at standard. odchoz´ıho datagramu pro BT server . . . . . . . . . . .
42
4.5
Form´at urgentn´ıho odchoz´ıho datagramu pro BT server . . . . . . . . . .
42
4.6
Namˇeˇren´e d´elky okruh˚ u pomoc´ı odometrie ˇr´ıdic´ıho modulu . . . . . . . .
49
xi
14
xii
Kapitola 1 ´ Uvod ˇ ıd´ıc´ı modul je uˇcen pro potˇreby dopravn´ıho s´alu budovan´eho v budov´e Fakulty doR´ ˇ pravn´ı CVUT v Praze. Dopravn´ı s´al bude slouˇzit jako demonstraˇcn´ı pom˚ ucka nˇekolika pouˇz´ıvan´ych zabezpeˇcovac´ıch syst´em˚ u re´aln´e ˇzeleznice. Konkr´etnˇe se jedn´a o elektromeˇ 71 chanick´y zabezpeˇcovac´ı syst´em (tzv. bubnov´y stroj), releov´e zabezpeˇcovac´ı zaˇr´ızen´ı AZD a nejnovˇeji nasazovan´e jednotn´e obsluˇzn´e pracoviˇstˇe dle z´akladn´ıch technick´ych poˇzadavk˚ u ZTP 4 (elektronick´e stavˇedlo). S´al se sest´av´a z kombinace obsluˇzn´ych stanoviˇst’ tˇechto zabezpeˇcovac´ıch syst´em˚ u a modelov´eho kolejiˇstˇe, kter´e slouˇz´ı jako ˇziv´a vizualizace. Kolejiˇstˇe o rozloze cca 45 m2 je budov´ano v mˇeˇr´ıtku 1:87 (oznaˇcovan´em jako H0). Uˇcebna by mˇela d´ale demonstrovat moˇznosti nasazen´ı syt´emu ETCS.
1.1
Pˇ rehled souˇ casn´ eho stavu
Lokomotivy oboustranˇe komunikuj´ı se servrem nadˇr´ızen´eho ˇr´ıdic´ıho a zabezpeˇcovac´ıho syst´emu pomoc´ı bezdr´atov´e technologie Bluetooth. Nadˇrazen´y syst´em ovl´ad´a rychlost a svˇetla lokomotivy. Lokomotivy hl´as´ı nadˇrazen´emu syst´emu aktu´aln´ı rychlost lokomotivy, ujetou vzd´alenost lokomotivy a posledn´ı detekovan´y z´achytn´y bod infrastruktury kolejiˇstˇe. Z´achytn´e body jsou na zn´am´ych m´ıstech infrastruktury a jsou realizov´any jako vys´ılaˇce v infraˇcerven´em spektru s k´odov´an´ım Manchester. Lokomotiva, respektive ˇr´ıdic´ı modul, je nap´ajen z kolejnic stejnosmˇern´ym napˇet´ım v rozsahu 12-14 V. Toto napˇet´ı je na modulu dvoucestnˇe usmˇernˇeno a vyuˇz´ıv´ano pro 1
´ KAPITOLA 1. UVOD
2
buzen´ı stejnosmˇern´eho motoru lokomotivy. Ostatn´ı elektronika je pˇripojen k stabilizoˇ ızen´ı ot´aˇcek motoru, sbˇer dat o projet´ych van´emu rozvodu nap´ajen´ı na u ´ rovni 5 V. R´ z´achytn´ych bodech infrastruktury a ujet´e vzd´alenosti, generov´an´ı zvukov´ych efekt˚ u zajiˇst’uje mikroprocesor. Komunikace prob´ıh´a pomoc´ı s´eriov´e linky, kter´a je transparentnˇe repˇ ıdic´ı modul je likov´ana modulem Bluetooth k nadˇrazen´emu syst´emu na stranˇe serveru. R´ vybaven ˇcidlem ot´aˇcek motoru na b´azi odraziv´e infraz´avory, analogovou ˇc´ast´ı pro mˇeˇren´ı zpˇetnˇe indukovan´eho napˇet´ı motorem a pˇrij´ımaˇcem v infraˇcerven´em spektru sn´ımaj´ıc´ı k´ody z´achytn´ych bod˚ u. St´avaj´ıc´ı ˇreˇsen´ı je postaveno na 8 bitov´e platformˇe RISC AVR, konkr´etnˇe na ˇcipech ˇrady ATMega88/168. Tato platforma poskytuje pˇri taktovac´ı frekvenci 20 MHz v´ykon 20 MIPS. Do souˇcasn´e doby bylo implementov´ano a otestov´ano ˇreˇsen´ı, kter´e zvl´ad´a ˇr´ızen´ı motoru, mˇeˇren´ı jeho ot´aˇcek IR z´avorou a mˇeˇren´ım zpˇetnˇe indukovan´eho napˇet´ı motoru. D´ale bylo odzkouˇseno sn´ım´an´ı a dek´odov´an´ı z´achytn´ych bod˚ u infrastruktury a komunikace s testovac´ım modulem Bluetooth. Motivac´ı pro pˇrechod na v´ykonˇejˇs´ı platformu je integrace zvukov´eho modulu, kter´a by vytvoˇrila kompletn´ı n´ahradu komerˇcnˇe prod´avan´ych ˇreˇsen´ı se splnˇen´ım pˇridan´ych poˇzadavk˚ u, kter´e komerˇcn´ı ˇr´ıd´ıc´ı moduly nepokr´yvaj´ı. Anal´yza poˇzadavk˚ u a porovn´an´ı dostupn´ych mikroprocesor˚ u je jednou ze z´asadn´ıch ˇc´ast´ı t´eto pr´ace. Blokov´e schema modulu je na obr. 1.1.
ˇ ˇ ´ 1.1. PREHLED SOUCASN EHO STAVU
3
3.3V Stabilizátor napětí
modul Bluetooth
5V CPU
Rozdílový zesilovač
Stabilizátor napětí
13V
H - můstek
IR odometr
Gretzův můstek
Obr´ azek 1.1: Blokov´e schema st´ avaj´ıc´ıho ˇr´ıdic´ıho modulu
IR balíza
´ KAPITOLA 1. UVOD
4
1.2
N´ avrh fin´ aln´ıho ˇ reˇsen´ı
ˇ ıdic´ı modul je tˇreba dodateˇcnˇe vybavit periferiemi, kter´e dovol´ı integraci zvukov´eho R´ modulu. Jedn´a se o pˇripojen´ı extern´ı pamˇeti, kter´a poskytne dostatek m´ısta pro zvukov´a data za pˇrimˇeˇrenou cenu. Nejvhodnˇejˇs´ım ˇreˇsen´ım se ukazuje pamˇet’ flash s rozhran´ım SPI. D´ale je tˇreba generovat audio sign´al pro reproduktor. Generov´an´ı sign´alu je moˇzn´e realizovat D/A pˇrevodn´ıkem, ale mikroprocesory s integrovan´ym D/A pˇrevodn´ıkem jsou pomˇernˇe drah´e a pˇr´ıliˇs robustn´ı pro c´ılovou aplikaci, takˇze je moˇzn´e pouˇz´ıt bud’to mal´y extern´ı pˇrevodn´ık, nebo pouˇz´ıt PWM mikroprocesoru pro generovan´ı sign´alu, kter´y po extern´ı filtraci bude zastupovat funkci D/A pˇrevodn´ıku. Vzhledem k dvoj´ımu zp˚ usobu mˇeˇren´ı rychlosti motoru bude zv´aˇzena moˇznost odstranˇen´ı sn´ımaˇce rychlosti motoru na infraz´avory. To by umoˇznilo zjednoduˇsen´ı z´astavby modulu do lokomotiv, protoˇze by jiˇz nebylo tˇreba znaˇckovat hˇr´ıdel ˇci setrvaˇcn´ık motoru a n´aslednˇe upevˇ novat infraˇcerven´e ˇcidlo odrazu. Odstranˇen´ı tohoto ˇcidla je vˇsak podm´ınˇeno otestov´an´ım dostateˇcn´e pˇresnosti odometrie z´ısk´avan´e integrac´ı, respektive sumac´ı zpˇetnˇe indukovan´eho napˇet´ı za zn´am´y ˇcasov´y u ´ sek. Dalˇs´ı podstatnou zmˇenou v ˇreˇsen´ı je pouˇzit´ı dob´ıjec´ıho akumul´atoru nebo tzv. superkapacitoru m´ısto st´avaj´ıc´ıho elektrolytick´eho kondenz´atoru. Ten vzhledem k pomˇernˇe enormn´ı kapacitˇe a tedy i rozmˇeru zab´ıral nezanedbateln´y prostor a pˇri zapnut´ı nap´ajen´ı zp˚ usoboval nepˇrijatelnou proudovou ˇspiˇcku. Kapacitor slouˇz´ı pro pokryt´ı v´ypadk˚ u nap´ajen´ı, kter´e jsou prim´arnˇe zp˚ usobeny neˇcistotami na kolejnic´ıch. Vytrvalejˇs´ı zdroj energie s menˇs´ım rozmˇerem umoˇzn´ı z´astavbu reproduktoru a d´ale umoˇzn´ı zachovat komunikaci pˇri delˇs´ım v´ypadku nap´ajen´ı a v pˇr´ıpadˇe uv´ıznut´ı m˚ uˇze nahl´asit tento stav nadˇr´ızen´emu ˇ sen´ı by mˇelo tak´e umoˇznit bezpeˇcn´e zachov´an´ı komunikace bˇehem pr˚ syst´emu. Reˇ ujezdu obratiˇstˇem, pˇri kter´em je tˇreba zmˇenit polaritu nap´ajen´ı kolejnic pˇred v´yjezdem z u ´ seku smyˇcky obratiˇstˇe, protoˇze by jinak doch´azelo ke zkratu pˇri pr˚ ujezdu u ´ seku na rozhran´ı kolejiˇstˇe s opaˇcnou polaritou kolejnic. Blokov´e schema navrhovan´eho ˇreˇsen´ı ˇr´ıdic´ıho modulu je uvedeno na obr. 1.2.
´ ´ ´IHO RE ˇ SEN ˇ ´I 1.2. NAVRH FINALN
5
modul Bluetooth
Filtr dolní propust CPU
Napájecí zdroj
Koncový stupeň
3,3V
Rozdílový zesilovač
Správa baterie H - můstek
IR odometr
IR balíza
Step-down konvertor 13V Gretzův můstek
Obr´ azek 1.2: Blokov´e schema navrhovan´eho pˇrepracovan´eho ˇr´ıdic´ıho modulu
6
´ KAPITOLA 1. UVOD
Kapitola 2 ˇ sen´ı migrace na novou platformu Reˇ
2.1
Anal´ yza poˇ zadavk˚ u na novou platformu
V´ybˇer nov´e platformy je tˇreba podloˇzit anal´yzou souˇcasn´ych poˇzadavk˚ u. Poˇzadavky jsou vyspecifikov´any v n´asleduj´ıc´ı podkap. 2.1.1. Pro splnˇen´ı tˇechto poˇzadavk˚ u je tˇreba definovat hodnot´ıc´ı krit´eria, kter´a budou schopna d´at informaci o vhodnosti potenci´alnˇe zvaˇzovan´e nov´e platformˇe a pomohou tak objektivnˇe rozhodnout mezi kandid´aty.
2.1.1
Definice hodnot´ıc´ıch krit´ eri´ı
Pro objektivn´ı zhodnocen´ı moˇznost´ı a v´ybˇer vhodn´e mikroprocesorov´e platformy je tˇreba definovat mˇeˇr´ıtka, kter´ymi budeme hodnotit zvaˇzovan´e kandid´aty. Z´akladn´ım a nezbytn´ym poˇzadavkem je v´ybava nutn´ymi periferiemi pro realizaci funkˇcnosti poˇzadovan´e od ˇr´ıdic´ıho modulu. Dalˇs´ım mˇeˇr´ıtkem je fyzick´e pouzdro, ve kter´em se dan´y ˇcip vyr´ab´ı, protoˇze to ovlivˇ nuje pouˇzitelnost v omezen´em prostoru lokomotivy a d´ale tak´e ovlivˇ nuje cenu tiˇstˇen´eho spoje, protoˇze je spoleˇcnˇe s modulem Bluetooth nejsloˇzitˇejˇs´ım obvodem na ˇr´ıdic´ım modulu a klade t´ım nejz´asadnˇejˇs´ı poˇzadavky na tˇr´ıdu pˇresnosti a nutnou technologii osazen´ı tiˇstˇen´eho spoje. Posledn´ım a tak´e velmi d˚ uleˇzit´ym mˇeˇr´ıtkem je softwarov´a podpora produktu. Dnes vyr´abˇen´e mikroprocesory jsou cenovˇe a v´ykonovˇe 7
ˇ SEN ˇ ´I MIGRACE NA NOVOU PLATFORMU KAPITOLA 2. RE
8
velmi ˇsiroce ˇsk´alovan´e a je tedy moˇzno vybrat od r˚ uzn´ych v´yrobc˚ u nˇekolik velmi podobnˇe vybaven´ych ˇcip˚ u ve srovnateln´e cenov´e relaci, ale je tˇreba tak´e pˇrihl´ednout k dostupnosti kvalitn´ıho a cenovˇe pˇrijateln´eho v´yvojov´eho prostˇred´ı. Kromˇe tˇechto prim´arn´ıch krit´eri´ı je jeˇstˇe vhodn´e pˇrihl´ednout k jist´ym sekund´arn´ım parametr˚ um. Tyto parametry jsou sekund´arn´ı, protoˇze c´ılov´a aplikace bud’to neklade z´asadn´ı n´aroky na zm´ınˇen´e parametry, nebo jsou zm´ınˇen´e parametry velmi vyrovnan´e u vˇsech zvaˇzovan´ych kandid´at˚ u a proto na nˇe nen´ı tˇreba kl´ast d˚ uraz. Definuji konkr´etn´ı poˇzadavky na c´ılovou platformu. • prim´arn´ı poˇzadavky – dostateˇcn´y v´ypoˇcetn´ı v´ykon pro realizaci zvukov´eho modelu ∗ v´ypoˇcetn´ı v´ykon v celoˇc´ıseln´e aritmetice ∗ v´ypoˇcetn´ı v´ykon v plovouc´ı ˇr´adov´e ˇc´arce – poˇzadovan´e periferie ∗ s´eriov´e RS-232 roshran´ı (podpora RTS/CTS ˇr´ızen´ı toku v´yhodou) ∗ hardwarov´e PWM moduly s dostateˇcnou ˇsk´alovatelnost´ı periody a stˇr´ıdy pro ˇr´ızen´ı motorov´eho budiˇce
∗ A/D pˇrevodn´ık se ˇctyˇrmi multiplexovan´ymi kan´aly ∗ SPI/I2C rozhran´ı pro pˇripojen´ı extern´ı pamˇeti pro zvukov´y modul ∗ dva ˇcasovaˇce pro potˇreby ˇcasov´an´ı v´ypoˇctu regulaˇcn´ı smyˇcky, dek´odov´an´ı sign´alu ze z´achytn´ych bod˚ u kolejiˇstˇe, ˇcasov´an´ı odbˇeru vzork˚ u z A/D pˇrevodn´ıku a dohled nad pˇrekroˇcen´ım ˇcasov´ych limit˚ u (ztr´ata komunikace, nap´ajen´ı, atd.) ∗ dva nebo v´ıce voln´ych vstup˚ u s moˇznost´ı vyvol´an´ı extern´ıho pˇreruˇsen´ı (IR sn´ımaˇc ot´aˇcek, detektor z´achytn´ych bod˚ u kolejiˇstˇe)
∗ ˇsest nebo v´ıce voln´ych vstupnˇe v´ystupn´ıch pin˚ u pro obecn´e pouˇzit´ı (svˇetla,
detekce polarity, reset Bluetooth modulu, ovl´adan´ı nap´ajec´ıho obvodu, apod.)
– pouzdro ˇcipu ∗ velikost pouzdra ∗ rozteˇc pin˚ u pouzdra – v´yvojov´e prostˇred´ı
´ ˇ ˚ NA NOVOU PLATFORMU 2.1. ANALYZA POZADAVK U
9
∗ vhodn´e debugovac´ı rozhran´ı pro testov´an´ı a ladˇen´ı k´odu (JTAG, Trace, debugWire)
∗ pouˇziteln´e v´yvojov´e prostˇred´ı dod´avan´e k ˇcipu, nebo prostˇred´ı podporuj´ıc´ı ˇcip za dostupnou cenu
∗ pˇrehledn´a dokumentace, okomentovan´e uk´azkov´e projekty pro rychl´e zorientov´an´ı a n´aslednou migraci k´odu
• sekund´arn´ı poˇzadavky – dostupnost ˇcipu v maloobchodn´ı s´ıti – cena ˇcipu – velikost programov´e pamˇeti – referenˇcn´ı napˇet´ı pro A/D pˇrevodn´ık – spotˇreba j´adra v aktivn´ım stavu – pˇr´ım´y pˇr´ıstup do pamˇeti - DMA
2.1.2
Porovn´ an´ı sledovan´ ych parametr˚ u
Jako v´ykonˇejˇs´ı n´ahradu mikroprocesorov´e platformy jsem po pr˚ uzkumu moˇznost´ı vybral tˇri v´aˇzn´e kandid´aty. Jejich v´ybˇer byl ovlivnˇen dostupnost´ı v´yvojov´ych kit˚ u, kter´e jsem dostal zap˚ ujˇceny od m´eho zadavatele projektu a mohl jsem se s nimi tedy bl´ıˇze sezn´amit. • ARM7TDMI - velmi rozˇs´ıˇren´e j´adro 32 bitov´eho mikroprocesoru RISC s Von Neumanovou architekturou, kter´e je nab´ızeno mnoha v´yrobci. J´adro je na trhu v´ıce
neˇz deset let a vybudovalo si za tuto dobu rozs´ahlou podporu komerˇcn´ıch v´yrobc˚ u i otevˇren´e (tzv. open source) komunity • Cortex-M3 - jedn´a se o pokroˇcilou implementaci 32 bitov´eho RISC j´adra ARM7v s Harvardskou architekturou, kter´a se prosazuje na poli levn´ych a relativnˇe v´ykonn´ych vestavˇen´ych aplikac´ıch • TI TMS320 C28x - 32 bitov´e j´adro s Harvardskou architekturou. Je nab´ızeno v mal´ych pouzdrech s dostateˇcnou vybavenost´ı periferiemi, m´a j´adro ˇcasteˇcnˇe specializovan´e pro DSP aplikace, ale oproti pˇredchoz´ım ˇcip˚ um nem´a implementov´an pˇr´ım´y pˇr´ıstup do pamˇeti, tzv. DMA.
ˇ SEN ˇ ´I MIGRACE NA NOVOU PLATFORMU KAPITOLA 2. RE
10
Pˇrehled sledovan´ych parametr˚ u je pˇrehlednˇe zpracov´an do tab. 2.1. Tabulka maxim´alnˇe pokr´yv´a sledovan´e parametry, ale nˇekter´e detaily postihnout nem˚ uˇze. Je vidˇet, ˇze parametry jsou velmi vyrovnan´e, d˚ uvodem je velk´a ˇsk´ala verz´ı jednotliv´ych ˇcip˚ u. Ve srovn´an´ı jsou tedy vybr´any ˇcipy v mal´ych pouzdrech s dostateˇcnou vybavenost´ı.
2.1.3
N´ aroky na v´ ypoˇ cetn´ı v´ ykon
Nezbytnˇe nutn´ym krokem pro spr´avnou volbu platformy je tak´e alespoˇ n pˇribliˇzn´a anal´yza v´ykonov´e n´aroˇcnosti vykon´avan´eho k´odu. Na platformˇe AVR se dalo pro mˇeˇren´ı ˇcasov´e n´aroˇcnosti ˇc´ast´ı k´odu vyuˇz´ıt softwarov´eho simul´atoru AVR, kter´y je souˇc´ast´ı AVR studia. Simul´ator zobrazuje pˇresn´y poˇcet potˇrebn´ych takt˚ u hodin mikroprocesoru bˇehem vykon´avan´eho k´odu v jazyce C, respektive pˇreloˇzen´emu ekvivalentu tohoto k´odu do assembleru. Pro zvaˇzovan´e c´ılov´e platformy takov´y n´astroj bohuˇzel neexistuje a proto jsem se musel uch´ylit k jin´e metodˇe mˇeˇren´ı. Je nˇekolik moˇznost´ı, jak odhadnout, nebo pˇr´ımo experiment´alnˇe zmˇeˇrit ˇcas nutn´y pro vykon´an´ı ˇc´asti k´odu programu. • teoretick´y v´ypoˇcet pomoc´ı anal´yzy pˇreloˇzen´eho k´odu do assembleru a vyhodnocen´ı poˇctu a d´elky instrukc´ı
• mˇeˇren´ım na fyzick´em hardwaru – pomoc´ı nˇekter´eho z intern´ıch ˇcasovaˇc˚ u – pomoc´ı signalizace na nˇekter´em extern´ım pinu Teoretick´y v´ypoˇcet anal´yzy k´odu v disassembly je moˇzn´y, ale velice n´aroˇcn´y, protoˇze pro pˇresn´y v´ypoˇcet by bylo nutn´e odhalit cykly v assembleru, vyhodnotit pouˇzit´e instrukce a jejich d´elku v hodinov´ych cyklech, nebo alespoˇ n odhadnout d´elku pomoc´ı statistick´eho pr˚ umˇeru CPI (Cycle Per Instruction). Tento postup by zaslouˇzil samostatn´y interpreter konkr´etn´ıho assembler k´odu dle instrukˇcn´ı sady pˇr´ısluˇsn´e platformy, ruˇcn´ı zpracov´an´ı by bylo velmi ˇcasovˇe n´aroˇcn´e a proto jsem se t´eto metodˇe vyhnul. Mˇeˇren´ı na fyzick´em hardwaru jsem provedl pouze na procesoru s j´adrem ARM7TDMI. D˚ uvodem byla nejsnaˇzˇs´ı dostupnost tohoto procesoru. Ud´avan´y v´ykon ostatn´ıch platforem v jednotk´ach MIPS (poˇcet instrukc´ı za vteˇrinu) srovnateln´y, nebo m´ırnˇe vyˇsˇs´ı a j´adro ARM7TDMI je podle dosavadn´ıch anal´yz moˇzn´e br´at jako nejm´enˇe v´ykonn´y,
´ ˇ ˚ NA NOVOU PLATFORMU 2.1. ANALYZA POZADAVK U
ARM7TDMI
Cortex-M3
AT91SAM7S
LM3S2276
11
TI TMS320C2027
prim´arn´ı poˇzadavky V´yp. v´ykon
0,9 MIPS/MHz
1,25 MIPS/MHz
1 MIPS/MHz
RS-233
ano (RTS/CTS)
ano
ano
PWM mod.
ano (4x)
ano (4x)
ano (4x)
PWM frekv.
clk/2n /1-255
clk/2n
clk/2n
A/D kan´aly
8 (10 bit)
6 (10 bit)
16 (12 bit)
SPI/I2C
ano/ano
ano/ano
ano/ano
ˇcasovaˇce
ano (3+1)
ano (3+1)
ano (3)
ano (2+)
ano (2+)
ano (5+)
ano (5+)
ano (5+)
64/48 pin LQFP
64 pin LQFP
48 pin PQFP/38
ext. pˇreruˇsen´ı ano (2+) I/O porty pouzdro
pin PSOP rozteˇc pin˚ u debug rozhr. IDE
20 mil (0,5 mm)
20 mil (0,5 mm)
22 mil (0,56 mm)
JTAG/DBGU
JTAG
JTAG
Eclipse/CrossStudio Eclipse/CrossStudio Code Composer (IAR, Keil, CodeS-
(IAR, Keil, CodeS-
ourcery)
ourcery) sekund´arn´ı poˇzadavky
dostupnost cena
GME, DigiKey, Far- DigiKey, Farnell
verze
v
nell
pouzdˇre ne
dan´em
7$
8,2$
-
spotˇreba
33,3mA @ 55MHz
9,5mA @ 50MHz
70mA @ 40MHz
A/D ref.
3V/ext.(max 3,3V)
3V
3V
Tabulka 2.1: Porovn´ an´ı sledovan´ ych parametr˚ u mikroprocesor˚ u
ˇ SEN ˇ ´I MIGRACE NA NOVOU PLATFORMU KAPITOLA 2. RE
12
protoˇze nem´a oproti konkurent˚ um hardwarovou dˇeliˇcku a vykazuje nejdelˇs´ı latenci pˇreruˇsovac´ıho syst´emu. V´ykonostn´ı anal´yza na j´adru ARM7TDMI tedy poskytuje horn´ı odhad ˇcasov´ych interval˚ u. Vydal jsem se pokud moˇzno nejsnaˇzˇs´ı cestou a prov´adˇel jsem mˇeˇren´ı ˇcasu pomoc´ı signalizace zaˇc´atku a konce v´ypoˇctu bloku k´odu pomoc´ı extern´ıho pinu procesoru a tento sign´al jsem sledoval a mˇeˇril na osciloskopu. V c´ılov´e aplikaci nast´avaj´ı nˇekter´e ud´alosti pravidelnˇe, protoˇze jsou c´ılenˇe vykon´av´any v pravideln´ych ˇcasov´ych intervalech. Nˇekter´e ud´alosti jako napˇr´ıklad ˇc´ıt´an´ı pulz˚ u od IR odometru nast´avaj´ı neperiodicky a nelze je pˇredv´ıdat. V tab. 2.2 je uveden v´yˇcet nejˇcastˇeji prov´adˇen´ych operac´ı s jejich intervalem opakov´an´ı za jednotku ˇcasu, respektive s jejich mezn´ım minim´aln´ım intervalem mezi opakov´an´ım. operace
perioda opakov´an´ı priorita
mˇeˇren´ı zpˇetnˇe generovan´eho napˇet´ı
1 ms
stˇredn´ı
komunikace s´eriov´e linky
100 ms
n´ızk´a
v´ypoˇcet akˇcn´ıho z´asahu regulace
50 ms
stˇredn´ı
sledov´an´ı sign´alu IR bal´ız
24,3 ms
stˇredn´ı
smˇeˇsov´an´ı zvuku na v´ystup
90,7 µs
vysok´a
ˇc´ıt´an´ı odometru
min 363 µs
stˇredn´ı
Tabulka 2.2: Periodicky volan´e bloky k´ odu
Vˇsechny tyto pˇredv´ıdateln´e procesy jsou ˇr´ızeny ˇcasovaˇci a vyvol´avaj´ı pˇreruˇsen´ı bˇehu programu. Jejich prioritu lze zohlednit prioritou pˇreruˇsen´ı, kterou lze u vˇsech procesor˚ u programovˇe nastavovat. Pro odhad ˇreˇsitelnosti v´ypoˇcetn´ıch probl´emu s dostupn´ym v´ypoˇcetn´ım v´ykonem v ˇcas je tˇreba zmˇeˇrit ˇcasov´e intervaly potˇrebn´e pro zpracov´an´ı jednotliv´ych poˇzadavk˚ u. Pro procesor AT91SAM7S jsou zmˇeˇren´e ˇcasy potˇrebn´e pro vykon´an´ı jednotliv´ych operac´ı uvedeny v tab. 2.3 Zat´ım jsem nebyl nucen vyuˇz´ıvat ˇz´adn´y pokroˇcilejˇs´ı n´astroj pro pl´anov´an´ı proces˚ u, protoˇze program bez probl´em˚ u pracoval v jednom vl´aknˇe, kdy je vykon´av´ana nekoneˇcn´a smyˇcka pˇreruˇsovan´a poˇzadavky od jednotliv´ych periferi´ı. Na nov´e platformˇe je v oblast´ı pl´anov´an´ı moˇzn´e l´epe rozvrhovat ˇreˇsen´ı u ´ kol˚ u, protoˇze je moˇzn´e uˇzivatelsky nastavovat priority obsluh jednotliv´ych pˇreruˇsen´ı. Metoda, kter´a se specializuje na rozvrhov´an´ı v´ıce u ´ kol˚ u, kter´e poˇzadujeme vykon´avat v re´aln´em ˇcase je tzv. ”rate-monotonic”pl´anov´an´ı, kdy vˇsechny vl´akna programu maj´ı statickou prioritu pro vykon´av´an´ı. Toto pl´anov´an´ı m´a n´asleduj´ıc´ı pˇredpoklady:
´ ˇ ˚ NA NOVOU PLATFORMU 2.1. ANALYZA POZADAVK U
13
• nejsou sd´ıleny spoleˇcn´e prostˇredky • nejzaˇsˇs´ı doba dokonˇcen´ı u ´ kol˚ u je shodn´a s periodou, pˇres kterou pl´anov´an´ı analyzujeme
• statick´e priority u ´ kol˚ u, u ´ kol s nejvyˇsˇs´ı prioritou je vykon´an pˇrednostnˇe pˇred vˇsemi ostatn´ımi
• priority jsou pˇridˇeleny podle ”rate-monotonic”konvence (´ ukoly s kratˇs´ı periodou/bliˇzˇs´ı deadline maj´ı vyˇsˇs´ı prioritu)
• ˇcas potˇrebn´y pro tzv. pˇrepnut´ı kontextu (pˇrechod mezi ˇreˇsen´ım v´ıce u ´ kol˚ u) je v ide´aln´ım pˇr´ıpadˇe nulov´y, v praxi zanedbateln´y oproti d´avce vykon´avan´eho k´odu pˇred dalˇs´ım pˇrepnut´ım kontextu Pokud jsme schopni zaruˇcit tyto pˇredpoklady, tak matematick´y model t´eto situace je ˇreˇsiteln´y, pokud plat´ı Liu-Leylandova teor´em. Ten ˇr´ık´a, ˇze mnoˇzina n periodicky se opakuj´ıc´ıch u ´ kol˚ u s r˚ uznou d´elkou periody jejich opakov´an´ı je ˇreˇsiteln´a, pokud vˇzdy plat´ı U=
n X Ci i=1
Ti
≤n
√ n
2−1 ,
kde Ci je ˇcas potˇrebn´y pro ˇreˇsen´ı u ´ kolu a Ti je perioda opakov´an´ı tohoto u ´ kolu. Je moˇzn´e odvodit, ˇze v limitn´ım pˇripadˇe, kdy se poˇcet proces˚ u n bl´ıˇz´ı nekoneˇcnu, je nutn´e, aby zat´ıˇzen´ı procesoru U ≤ ln 2 ≈ 0, 693. Je tedy moˇzn´e obslouˇzit v ˇcas vˇsechny u ´ koly, pokud bude zat´ıˇzen´ı procesoru pod hranic´ı cca 69, 3%. Zbyl´ych cca 30% v´ypoˇcetn´ıho
ˇcasu lze pouˇzit na ˇcasove nekritick´e u ´ koly, kter´e nevyˇzaduj´ı splnˇen´ı do pˇresn´eho deadline (nejzaˇzˇs´ı ˇcas pro dokonˇcen´ı operace). V m´e aplikaci lze dan´e pˇredpoklady splnit. Program aˇz na v´yjimky nesd´ıl´ı prostˇredky, pouze v nˇekter´ych pˇr´ıpadech vyuˇz´ıv´a nˇekter´e spoleˇcn´e promˇenn´e, kter´e si ale jednotliv´e obsluhy pˇreruˇsen´ı vˇzdy pouze ˇctou do sv´e lok´aln´ı kopie, aby byla hodnota promˇenn´e zafixov´ana do konce obsluhy pˇreruˇsen´ı. Rozdˇelen´ı priorit je moˇzn´e dodrˇzet pomoc´ı nastaven´ı priorit obsluˇzn´ych rutin pˇreruˇsen´ı. Pˇrep´ın´an´ı kontextu je v porovn´an´ı s dobou vykon´av´an´ı k´odu zanedbateln´e, protoˇze dokumentace garantuje obsluhu standardn´ıho pˇreruˇsen´ı (IRQ) za 42 hodinov´ych cykl˚ u a rychl´eho pˇreruˇsen´ı (FIQ) za 18 hodinov´ych cykl˚ u. To na c´ılov´e frekvenci 52 MHz pˇredstavuje pouze 0,808 µs, takˇze pˇrepnut´ı kontextu je nezanedbateln´e pouze u operace ˇc´ıt´an´ı pulz˚ u z odometru, tam je ˇcetnost omezena maxim´aln´ımi ot´aˇckami motoru a poˇctem znaˇcek na setrvaˇcn´ıku motoru a po vyˇc´ıslen´ı se jedn´a o 363µs.
ˇ SEN ˇ ´I MIGRACE NA NOVOU PLATFORMU KAPITOLA 2. RE
14
operace
doba potˇrebn´a pro obsluhu
mˇeˇren´ı zpˇetnˇe generovan´eho napˇet´ı
36,6 µs
komunikace s´eriov´e linky
3,7 ms (aktivn´ı ˇcek´an´ı)
v´ypoˇcet akˇcn´ıho z´asahu regulace
120,4 µs
smˇeˇsov´an´ı zvuku na v´ystup
14,2 µs
sledov´an´ı sign´alu IR bal´ız
1,28 ms
ˇc´ıt´an´ı odometru
850 ns + 870 ns
ˇ potˇrebn´ Tabulka 2.3: Cas y pro vykon´ an´ı operace
Provedu v´ypoˇcet pro moj´ı u ´ lohu pl´anov´an´ı, kdy mus´ı platit U=
√ 36, 6 3, 7 120, 4 1, 28 14, 2 1, 72 6 + + + + + ≤6 2−1 1000 100 50000 24, 3 86, 8 363 U = 0, 2970 ≤ 0, 7348
Z´akladn´ı pˇredpoklad ˇreˇsitelnosti u ´ loh v poˇzadovan´em ˇcase je tedy splnˇen. Zb´yvaj´ıc´ı ˇcas je k dispozici pro obsluhu ˇcasovˇe nekritick´ych u ´ loh a plnˇen´ı zvukov´e vyrovn´avac´ı pamˇeti.
2.1.4
Diskuze nad porovn´ an´ı kandid´ at˚ u na novou platformu
Pokud vyhodnot´ım porovn´an´ı paramter˚ u v tab. 2.1, tak v prim´arn´ıch parametrech jsou rozd´ıly pouze v hardwarov´em ˇr´ızen´ı toku dat pro rozhran´ı RS-323, ˇsk´alovatelnosti frekvence modulace PWM modul˚ u a dostupn´em v´yvojov´e prostˇred´ı. Sekund´arn´ı parametry se liˇs´ı v´ıce. Pokud pˇrihl´ednu ke spotˇrebˇe, dostupnosti a v´yvojov´emu prostˇred´ı ˇcip˚ u s´erie TMS320C2000, tak tuto moˇznost pokl´ad´am za nejm´enˇe vhodnou. Aˇckoliv je tento ˇcip je ˇc´asteˇcnˇe specializov´an pro DSP aplikace a disponuje jednocyklovou instrukc´ı MAC (Multiply and Accumulate), tak jeho dostupnost v pouˇziteln´em pouzdˇre, spotˇreba a v neposledn´ı ˇradˇe slab´a podpora zastaral´ym v´yvojov´ym prostˇred´ım ho jednoznaˇcnˇe vyˇrazuj´ı z v´ybˇeru. Seriozn´ı volbu jsem z´ uˇzil na v´ybˇer mezi j´adrem ARM7TDMI a Cortex-M3. Toto dilema je velmi ˇcasto diskutov´ano, protoˇze v´ybˇer mezi j´adrem ARM7 a Cortex-M3 ˇreˇsilo uˇz monoho v´yvoj´aˇr˚ u. Srovn´an´ı tˇechto jader je rozebr´ano v mnoha ˇcl´anc´ıch a kromˇe
ˇ ´IHO KODU ´ 2.2. MIGRACE FUNKCN NA NOVOU PLATFORMU
15
specificky definovan´ych krit´eri´ı pro moj´ı konkr´etn´ı aplikaci jsem se snaˇzil nastudovat problematiku i obecnˇeji, z pohledu celkov´e architektury jader. Velmi dobr´ym zdrojem je ˇcl´anek (Lundgren, A., 2009), jehoˇz autor je dlouhodob´ym zamˇestnancem firmy IAR, kter´a vyvinula komerˇcnˇe pouˇz´ıvan´e v´yvojov´e prostˇred´ı IAR Em-bedded workbench for ARM. Ve zkratce je zde vyzdviˇzen nejz´asadnˇejˇs´ı rozd´ıl v podobˇe ˇradiˇce pˇreruˇsen´ı, tzv. NVIC - Nested Vector Interrupt Controller, kter´y je na platformˇe Cortex-M3 integrovan´y pˇr´ımo v j´adˇre a v´yraznˇe zkracuje dobu pˇreruˇsen´ı z 48 hodinov´ych cykl˚ u na 12. D´ale tento integrovan´y ˇradiˇc pˇreruˇsen´ı harwarovˇe ˇreˇs´ı uloˇzen´ı kontextu, nen´ı tˇreba tuto proced˚ uru prov´adˇet ruˇcnˇe, respektive direktivami pro pˇrekladaˇc. D´ale je zde diskutov´ana cena ˇcip˚ u, kter´a je v souˇcasn´e dobˇe vyrovnan´a a podpora v´yvojov´ych prostˇred´ı, kter´a je v souˇcasn´e dobˇe tak´e vyrovnan´a. V pˇr´ıpadˇe pouˇzit´ı ˇcipu od Luminary Micro je pˇr´ınosnou vlastnost´ı bezplatn´a softwarov´a podpora v podobˇe knihovny StellarisWare, kter´a v´yraznˇe zjednoduˇsuje pr´aci s periferiemi a hlavnˇe umoˇzn ˇ uje snadnou migrovatelnost k´odu mezi podobn´ymi ˇcipy, z´avis´ı pouze na pˇr´ıtomnost pouˇz´ıvan´ych periferi´ı na c´ılov´em ˇcipu migrace. Aˇckoliv je Cortex-M3 novˇejˇs´ım, v´ykonˇejˇs´ım, a v jist´ych ohledech pokroˇcilejˇs´ım j´adrem oproti j´adru ARM7TDMI, tak pro c´ılovou aplikaci nepˇredstavuje z´asadnˇe lepˇs´ı ˇreˇsen´ı oproti j´adru ARM7TDMI, respektive jeho implementace ˇcipem AT91SAM7S. Oba ˇcipy poskytuj´ı dostateˇcn´y v´ypoˇcetn´ı v´ykon pro c´ılov´e nasazen´ı. ARM7TDMI poskytuje oproti Cortex-M3 j´adru ˇr´ızen´ı toku dat RTS/CTS a velmi d˚ uleˇzitou pˇresnost nastaven´ı frekvence modul˚ u PWM. Jeho vyˇsˇs´ı spoˇreba je snesitelnou cenou za zm´ınˇen´e pˇrednosti. Je tˇreba br´at ohled na fakt, ˇze porovn´avan´a v´yrobcem ud´avan´a spotˇreba je mezn´ı (maxim´aln´ı) a to ve stavu, kdy jsou vˇsechny periferie na ˇcipu zapnuty, takˇze lze pˇredpokl´adat, ˇze spotˇreba pˇri re´aln´em nasazen´ı bude o nˇeco niˇzˇs´ı, neˇz uveden´a mezn´ı hodnota.
2.2
Migrace funkˇ cn´ıho k´ odu na novou platformu
Program vykon´avan´y mikrokontrolerem je od zaˇc´atku v´yvoje ps´an v jazyce C je tedy ˇc´asteˇcnˇe pˇrenositeln´y na jin´e platformy, pro kter´e je dostupn´y pˇrekladaˇc z jazyka C do instrukc´ı assembleru c´ılov´e platformy. Zmˇenu zdrojov´eho programu vyˇzaduj´ı ˇc´asti, kter´e se prov´ad´ı inicializace periferi´ı a obsluhy pˇreruˇsen´ı. Vlastn´ı inicializace periferi´ı musela b´yt kompletnˇe pˇrepracov´ana. Na platformˇe AVR, respektive v prostˇred´ı AVR
ˇ SEN ˇ ´I MIGRACE NA NOVOU PLATFORMU KAPITOLA 2. RE
16
Studia s vestavˇen´ym pˇrekladaˇcem WinAVR se obsluha pˇreruˇsen´ı uvozovala kl´ıˇcov´ym slovem signal(interrupt id), kde promˇenn´a interrupt id znaˇc´ı zdroj pˇreruˇsen´ı (seznam konstant oznaˇcuj´ıc´ı zdroje pˇreruˇsen´ı je uveden v dokumentaci pro knihovnu AVR-libc). V prostˇred´ı Rowley CrossStudio for ARM se obsluˇzn´e rutiny p´ıˇs´ı jako standardn´ı funkce bez vstupn´ıch a v´ystupn´ıch promˇenn´ych, kter´e se pˇri inicializaci registruj´ı v pˇrisluˇsn´em registru procesoru. Registraci, tedy z´apis adresy obsluˇzn´e funkce, kter´y je vol´ana pˇri pˇr´ısluˇsn´em pˇreruˇsen´ı lze prov´adˇet ruˇcnˇe, nebo pohodlnˇeji pomoc´ı funkce knihovny CTL, kter´a je souˇca´st´ı v´yvojov´eho prostˇred´ı.
2.2.1
Ovˇ eˇ ren´ı splnˇ en´ı p˚ uvodn´ı funkˇ cnosti
Jak jiˇz bylo zm´ınˇeno, hlavn´ı prac´ı pˇri migraci na platformu ARM7 byla nutnost u ´ pravy k´od˚ u, kter´y inicializoval periferie. Po u ´ spˇeˇsn´em zvl´adnut´ı u ´ pravy konfigurace nov´ych periferi´ı jsem ovˇeˇril funkˇcnost nejdˇr´ıve laboratornˇe s v´yvojovou deskou AT91SAM7X256-EK od firmy Atmel. K v´yvojov´e desce byl pˇripojeny ovl´adan´e periferie pro ovˇeˇren´ı kompatibility ˇreˇsen´ı. Testy byly nutn´e hlavnˇe z d˚ uvodu pˇrechodu na 3,3 V logiku. Konkr´etnˇe se jednalo o spolehlivost ovl´ad´an´ı bud´ıc´ıho H m˚ ustku Si9986, kter´y je urˇcen pro ovl´ad´an´ı pomoc´ı TTL logiky. D´ale bylo nutn´e otestovat novˇe pouˇzit´y IR sn´ımaˇc GP1UE26RK0VF s tvarovaˇcem. Ten, narozd´ıl od dˇr´ıve pouˇz´ıvan´eho typu SFH5110, lze nap´ajet napˇet´ım 3,3 V. Uk´azalo se vˇsak, ˇze pˇri sn´ıˇzen´em nap´ajen´ı na u ´ roveˇ n 3,3 V je sn´ıˇzena i citlivost sn´ımaˇce, kter´y n´aslednˇe vyˇzadoval delˇs´ı ”burst”pro uveden´ı v´ystupu do u ´ rovnˇe logick´e nuly. To v praxi znamenalo, ˇze doˇslo ke zkreslen´ı sign´alu ve smyslu asymetrie doby trv´an´ı logick´ych urovn´ı. Bylo proto provedeno prodlouˇzen´ı doby vys´ıl´an´ı logick´ych u ´ rovn´ı z 16 na 20 impulz˚ u na bit, to znamen´a pˇri pouˇzit´e modulaˇcn´ı frekvenci 36 kHz prodlouˇzen´ı z 0,444 ms na 0,555 ms. Toto opatˇren´ı pomohlo eliminovat asymetrii na zanedbatelnou u ´ roveˇ n a nebylo tak tˇreba komplikovat pˇr´ısluˇsn´y software nutnost´ı reakce na r˚ uznou dobu trv´an´ı log. u ´ rovn´ı. N´asledovaly experimenty testuj´ıc´ı realizovatelnost dodateˇcn´ych funkˇcnost´ı a v´yroba prototypov´eho tiˇstˇen´eho spoje pro j´ızdn´ı testy pˇr´ımo na lokomotivˇe.
Kapitola 3 N´ avrh a ˇ reˇ sen´ı zvukov´ eho modulu
Pro generov´an´ı akustick´eho sign´alu bylo tˇreba vyˇreˇsit, jak´ym zp˚ usobem bude sign´al fysicky generov´an, jak´ym zp˚ usobem bude nav´az´an na reproduktor a fyzicky jak´y reproduktor je moˇzn´e zastavˇet do lokomotivy.
3.1
Hardwarov´ eˇ reˇsen´ı zvukov´ eho modulu
Pro generov´an´ı sign´alu z procesoru, kter´y nem´a vlastn´ı DA pˇrevodn´ık, je moˇzn´e pouˇz´ıt extern´ı DA pˇrevodn´ık pˇripojen´y na nˇekter´e standardn´ı komunikaˇcn´ı rozhran´ı. Tyto DA pˇrevodn´ıky jsou nab´ızeny ˇcasto s rozhran´ım I2 C, popˇr´ıpadˇe s jeho mutac´ı I2 S. V n´avrhu bylo zvaˇzov´ano pouˇzit´ı obvodu CS4334 od firmy Cirrus Logic. Ten vˇsak vyˇzaduje pˇriv´adˇen´ı pomˇernˇe rychl´ych extern´ıch hodin v ˇr´adech MHz a pro c´ılov´e pouˇzit´ı m´a zbyteˇcnˇe velkou vzorkovac´ı frekvenci zdrojov´eho sign´alu. Dalˇs´ı ˇreˇsen´ı mohl poskytnout integrovan´y obvody MAX9477 od firmy Maxim, kter´y lze plnit daty pomoc´ı I2 S rozhran´ı, disponuje integrovan´ym koncov´ym stupnˇem. Tento obvod se vˇsak uk´azal jako pˇr´ıliˇs robustn´ı, protoˇze mˇel pomˇernˇe velk´e pouzdro a byl koncipov´an na v´yraznˇe vyˇsˇs´ı v´ystupn´ı v´ykon neˇz bylo tˇreba. Nakonec bylo rozhodnuto pouˇz´ıt techniku metodu filtrovan´eho PWM sign´alu pomoc´ı doln´ı propusti. Tato technika je pomˇernˇe ˇcasto vyuˇz´ıvan´a a firma Texas Instruments j´ı vˇenuje samostatnou aplikaˇcn´ı n´otu (Mitchell, M., 2000). Metoda je vˇsak obecnˇe pouˇziteln´a na libovoln´em mikroprocesoru s dostateˇcnˇe rychl´ym PWM v´ystupem. V prin17
´ ˇ SEN ˇ ´I ZVUKOVEHO ´ KAPITOLA 3. NAVRH A RE MODULU
18
cipu se jedn´a a vyuˇzit´ı modulovan´eho PWM sign´alu o nˇekolikan´asobnˇe vyˇsˇs´ı frekvenci, neˇz je vzorkovac´ı frekvence v´ystupn´ıho audio sign´alu. Tento sign´al je n´aslednˇe pasivnˇe filtrov´an pomoc´ı RC ˇcl´anku. V´ystupn´ı hodnota je pak uˇcena stˇr´ıdou PWM sign´alu. Tato metoda s pouˇzit´ım vybran´eho procesoru AT91SAM7S umoˇzn ˇ uje zvolit v r´amci bˇeˇzn´ych standard˚ u libovolnou vzorkovac´ı frekvenci v´ystupn´ıho audio sign´alu a tak´e volbu rozliˇsen´ı aˇz 16 bit˚ u. Vzhledem ke kvalitˇe dostupn´ych zvukov´ych dat, nutn´e kvalitˇe audio sign´alu, pamˇet’ov´e n´aroˇcnosti a pouˇziteln´e datov´e reprezentace byla zvolena vzorkovac´ı frekvence 8 000 Hz s rozliˇsen´ım 8 bit. Sign´al je n´aslednˇe pˇriv´adˇen do zesilovaˇce, kter´y dovoluje vˇetˇs´ı zat´ıˇzitelnost v´ystupu, neˇz samotn´y procesor. Protoˇze koncov´e stupnˇe maj´ı pomˇernˇe velkou vstupn´ı citlivost, je zes´ılen´ı nastaveno na hodnotu 1/3. Pro regulaci hlasitosti je pouˇzit digit´aln´ı potenciometr MAX5463 od firmy Maxim v miniaturn´ım pouzdˇre SC70. Ten je ovl´ad´an dvouvodiˇcovˇe pomoc´ı sign´al˚ u negated chip select, d´ale jen NCS a up/negated down, d´ale jen U/ND. Digit´aln´ı potenciometr inkrement´alnˇe posouv´a jezdec pˇriveden´ım sestupn´e hrany sign´alu U/ND s aktivovan´ym sign´alem NCS. Smˇer posuvu jezdce je d´an u ´ rovn´ı sign´alu U/ND v dobˇe, kdy byl aktivov´an obvod sign´alem NCS. Podrobn´a funkce obvodu je pops´ana v jeho dokumentaci (Maxim, 2005). Jako koncov´y stupeˇ n byly zvaˇzov´any r˚ uzn´e obvody z ˇrady TDA. Nakonec bylo rozhodnuto o pouˇzit´ı obvodu TDA7233. Jedn´a se o jednokan´alov´y (mono) zesilovaˇc tˇr´ıdy AB s jmenovit´ym v´ystupn´ım v´ykonem 1 W (pˇr´ı nap´ajec´ım napˇet´ı 12 V a z´atˇeˇz´ı o jmenovit´em odporu 8 Ω ˇcin´ı v´ystupn´ı v´ykon aˇz 1,9 W). Obvod m´a vstup MUTE pro absolutn´ı ztlumen´ı v´ystupn´ıho sign´alu. Pˇri aktivaci tohoto vstupu se obvod z´aroveˇ n uvede do reˇzimu n´ızk´e spotˇreby energie. Dalˇs´ı informace je moˇzn´e z´ıskat z dokumentace (ST Microelectronic, 2005). V´ysledn´e schema zapojeni obvodu je uvedeno na obr. 3.1. Zapojen´ı koncov´eho stupnˇe je dle doporuˇcen´ı v´yrobce. Zapojen´ı bylo testov´ano s klasick´ym odporov´y trimrem a v´yvojovou deskou. Testov´an´ı digit´aln´ıho potenciometru bylo prov´adˇeno aˇz na prvn´ım prototypu ploˇsn´eho spoje.
´ RE ˇ SEN ˇ ´I ZVUKOVEHO ´ 3.1. HARDWAROVE MODULU
Obr´ azek 3.1: Sch´ema zapojen´ı zvukov´e ˇc´ asti modulu
19
´ ˇ SEN ˇ ´I ZVUKOVEHO ´ KAPITOLA 3. NAVRH A RE MODULU
20
3.2
Softwarov´ eˇ reˇsen´ı zvukov´ eho modelu
´, Z´aklad techniky modelov´an´ı zvuku motoru v r˚ uzn´ych ot´aˇck´ach byl ˇcerp´an z (Hajny M., 2006). Materi´al se zab´yv´a komplexn´ım modelov´an´ım zvuku pro automobilov´y simul´ator, tedy nejen modelov´an´ım zvuku motoru, ale i ruch˚ u z vnˇejˇs´ıho prostˇred´ı, jako je aerodynamick´y hluk, hluk od pneumatik, atd.. Modelov´an´ı dieslov´eho motoru lokomotivy je v principu shodn´a u ´ loha jako modelov´an´ı zvuku motoru automobilu. Pro svou pr´aci jsem ´ , M., 2006, kap. 7.4). studoval pˇredevˇs´ım (Hajny Druh´ym hlavn´ım zdrojem poznatk˚ u mi byl reverse engeneering konfiguraˇcn´ıch soubor˚ u zvukov´ych model˚ u ˇzelezniˇcn´ıho simul´atoru Microsoft Train Simulator, d´ale jen MSTS. MSTS m´a pomˇernˇe silnou z´akladnu pˇr´ıznivc˚ u, kteˇr´ı vytv´aˇrej´ı 3D modely ˇcesk´ych lokomotiv a voz˚ u vˇcetnˇe jejich zvukov´ych model˚ u. Po rozkl´ıˇcov´an´ı skript˚ u, kter´e ˇr´ıd´ı pˇrehr´avan´ı jednotliv´ych zvuk˚ u bˇehem j´ızdy se uk´azalo, ˇze modelov´an´ı zvuku motoru je ´ , M., 2006). velmi podobn´e s metodou v (Hajny
3.2.1
Modelov´ an´ı dle DP M. Hajn´ eho
Pro modelov´an´ı zvuku motoru lze zvolit v z´asadˇe dva pˇr´ıstupy: • Synt´eza zvuku z umˇel´ych sign´al˚ u • Synt´eza zvuku skl´ad´an´ım nahran´ych re´aln´ych zvuk˚ u Synt´eza zvuku z umˇel´ych sign´al˚ u by znamenala anal´yzu nejv´yraznˇejˇs´ıch harmonick´yh sloˇzek re´aln´eho sign´alu v cel´em spektru ot´aˇcek motoru. N´aslednˇe by bylo tˇreba aproximovat funkce amplitud tˇechto harmonick´ych sloˇzek v z´avislosti na ot´aˇcko´ach motoru. V´ysledn´y zvuk by se pak reprodukoval generov´an´ım a sloˇzen´ım nejv´yraznˇejˇs´ıch harmonick´ych sloˇzek. Pro dosaˇzen´ı dostateˇcnˇe vˇern´eho v´ysledku by bylo tˇreba pouˇz´ıt pomˇernˇe velk´eho mnoˇzstv´ı harmonick´ych sloˇzek. Vzhledem k pouˇzit´ı na jednoˇcipov´em mikroprocesoru nepˇripadala z v´ykonov´eho hlediska v u ´ vahu. Synt´eza zvuku skl´ad´an´ım nahran´ych vzork˚ u zvuk˚ u je oproti pˇredchoz´ımu ˇreˇsen´ı pamˇet’ov´e n´aroˇcnˇejˇs´ı, ale v´ykonovˇe m´enˇe n´aroˇcn´a metoda. Synt´eza zvuku motoru je prov´adˇena skl´ad´an´ım zvukov´ych smyˇcek odpov´ıdaj´ıc´ıch zvuku motoru v urˇcit´ych diskr´etn´ıch hodnot´ach ot´aˇcek motoru. Pokud je dostateˇcn´e mnoˇzstv´ı vzork˚ u pro pokryt´ı cel´eho spektra ot´aˇcek, lze vzorky pouze m´ıchat mezi sebou podle aktu´alnˇe poˇzadovan´ych ot´aˇcek motoru.
´ RE ˇ SEN ˇ ´I ZVUKOVEHO ´ 3.2. SOFTWAROVE MODELU
21
Funkce zes´ılen´ı sign´alu, kter´e lze vhodnˇe pouˇz´ıt pro pˇrekr´yv´an´ı zvukov´ych smyˇcek, jsou ´ , M., 2006). uvedeny v (Hajny
3.2.2
Modelov´ an´ı dle Microsoft Train Simulator
Zvukov´e modely v Microsoft Train Simulatoru (d´ale jen MSTS) jsou ˇreˇseny modifikac´ı synt´ezy zvuku skl´ad´an´ım re´aln´ych zvuk˚ u z odd´ılu. 3.2.1. Modifikace spoˇc´ıv´a v pouˇzit´ı chudˇs´ı ˇsk´aly zvukov´ych vzork˚ u. Pˇri mal´em poˇctu vzork˚ u doch´az´ı k nespojitosti odezvy zvukov´eho modelu na zmˇenu ot´aˇcek motoru, protoˇze urˇcit´y rozsah ot´aˇcek motoru je pokryt pouze jednou zvukovou smyˇckou pro konstantn´ı ot´aˇcky. Tento probl´em je ˇreˇsen v MSTS bud’to pomoc´ı pˇrehr´av´an´ı vzork˚ u r˚ uznou rychlost´ı v r´amci tohoto p´asma ot´aˇcek, nebo vyuˇzit´ım pˇredpokladu, ˇze p´aka ovl´adaj´ıc´ı v´ykon motoru, respektive jeho ot´aˇcky, m´a jen omezen´e mnoˇzstv´ı poloh, kter´emu je pˇrizp˚ usoben poˇcet vzork˚ u modelu lokomotivy. Pokud je pouˇzito mal´e mnoˇzstv´ı vzork˚ u, tak je v r´amci p´asma ot´aˇcek, kdy je vyuˇz´ıvana jedin´a zvukov´a smyˇcka, prov´adˇeno pˇrehr´av´an´ı smyˇcky rychleji, nebo pomaleji a je proto nutn´e prov´adˇet pˇrevzorkov´an´ı sign´alu. Chov´an´ı zvukov´ych model˚ u v MSTS je uloˇzeno v souborech s pˇr´ıponou SMS (zkratka pro Sound Management System). Jedn´a se skripty s pomˇernˇe jednoduchou syntax´ı. Kaˇzd´y soubor obsahuje hlaviˇcku a d´ale je uvozen fr´az´ı Tr SMS(). Uvnitˇr z´avorek jsou definice chov´an´ı zvukov´eho modelu, tzn. kdy a jak se maj´ı pouˇstˇet jednotliv´e zvuky n´aleˇz´ıc´ı modelovan´emu vozidlu. Detailn´ı popis v´yznamu skript˚ u jsem jsem z´ıskal od ˇcesk´eho tv˚ urce zvukov´ych modelu Petra Smutka, ale rozkl´ıˇcov´an´ı je moˇzn´e naj´ıt i na internetu, viz. (Hagen, R., 2002). Nejzaj´ımavˇejˇs´ı ˇc´ast´ı byla ˇc´ast popisuj´ıc´ı chov´an´ı motoru. Zde je uveden pˇr´ıklad skriptu, kde je definov´ano pˇrevzorkovan´ı sign´alu (rychlost pˇrehr´av´an´ı) a zes´ılen´ı sign´alu v z´avislosti na poloze ˇr´ıd´ıc´ı p´aky. FrequencyCurve ( Variable2Controlled CurvePoints ( 7 0.000
12025
0.010
12025
0.250
13000
0.300
13000
0.301
12025
´ ˇ SEN ˇ ´I ZVUKOVEHO ´ KAPITOLA 3. NAVRH A RE MODULU
22
0.350
12025
0.650
13000
) G r a n u l a r i t y ( 100 ) ) VolumeCurve ( Variable2Controlled CurvePoints ( 12 0.000
0.0
0.010
0.3
0.050
0.4
0.150
0.45
0.250
0.0
0.350
0.0
0.450
0.50
0.550
0.60
0.650
0.70
0.750
0.80
0.850
0.90
0.950
1.0
) Granularity ( 0.05 ) ) Pro lepˇs´ı porozumnˇen´ı v´yznamu skriptu jsem kˇrivky rekonstruoval v prostˇred´ı Matlab do grafu, viz. obr. 3.2 a obr. 3.3. Kˇrivky rychlostn´ıho koeficient˚ u ukazuj´ı line´arn´ı zmˇenu rychlosti pˇrehr´av´an´ı vzork˚ u v rozsahu, kdy je vzorek slyˇsiteln´y na v´ystupu. Kˇrivky koeficient˚ u zes´ılen´ı naznaˇcuj´ı, ˇze prvn´ı vzorek zvuku je pouˇz´ıv´an pˇrev´aˇznˇe pouze pro simulaci volnobˇehu motoru. N´asleduj´ıc´ı vzorky jsou vyuˇz´ıv´any pro ˇsirˇs´ı rozsahy ot´aˇcek a specielnˇe posledn´ı vzorek je vyuˇzit v nejˇsirˇs´ım rozsahu, pˇriˇcemˇz pˇri pˇribliˇzovn´an´ı se k maxim´aln´ımu v´ykonu se narozd´ıl od pˇrechoz´ıch vzork˚ u zvyˇsuje hlasitost aˇz k maxim´aln´ı u ´ rovni. Tento postup jsem reprodukoval pro c´ılov´e pouˇzit´ı na mikroprocesoru, protoˇze mˇel dostateˇcnˇe n´ızkou v´ykonovou n´aroˇcnost a z´aroveˇ n pˇrijatelnou pamˇet’ovou n´aroˇcnost na mnoˇzstv´ı zvukov´ych dat.
´ RE ˇ SEN ˇ ´I ZVUKOVEHO ´ 3.2. SOFTWAROVE MODELU
23
1.18 1.17
rychlostni koeficient
1.16 1.15 1.14 1.13 1.12 1.11 vzorek1 vzorek2 vzorek3 vzorek4
1.1 1.09 1.08
0
50
100 150 Strida signalu v 8 bit rozliseni
Obr´ azek 3.2: Rekonstruovan´e
kˇrivky
200
rychlostn´ıho
250
koeficientu
pˇrehr´ avan´ ych vzork˚ u zvuk˚ u
1 0.9 0.8
koeficient zesileni
0.7 0.6 0.5 0.4 0.3 0.2
vzorek1 vzorek2 vzorek3 vzorek4
0.1 0
0
50
100 150 Strida signalu v 8 bit rozliseni
200
250
Obr´ azek 3.3: Rekonstruovan´e kˇrivky koeficientu zes´ılen´ı pˇrehr´ avan´ ych vzork˚ u zvuk˚ u
´ ˇ SEN ˇ ´I ZVUKOVEHO ´ KAPITOLA 3. NAVRH A RE MODULU
24
3.2.3
Modelov´ an´ı pro vlastn´ı potˇ rebu zvukov´ eho modulu
Pro testov´an´ı zvukov´ych model˚ u jsem pouˇz´ıval nejdˇr´ıve program Matlab a zvukov´e smyˇcky vytvoˇren´e lok´aln´ı komunitou uˇzivatel˚ u MSTS. Tyto zvukov´e modely jsou velmi vhodn´e, protoˇze jsou volnˇe dostupn´e a maj´ı rekonstruovat zvukov´e modely lokomotiv, kter´e se pohybuj´ı na naˇsich trat´ıch, tedy pˇredevˇs´ım lokomotivy a motorov´a vozidla ˇceskoslovensk´e, pˇr´ıpadnˇe rusk´e v´yroby. Manipulace s rychlost´ı pˇrehr´av´an´ı zvukov´ych smyˇcek m´a jist´a u ´ skal´ı. Obecnˇe lze mˇenit rychlost v omezen´em rozsahu. Pˇri zrychlov´an´ı zvuk degraduje, protoˇze kles´a poˇcet vzork˚ u na ˇcasov´y u ´ sek, v extr´emn´ım pˇr´ıpadˇe aˇz na mez, kdy se dostaneme do konfliktu se vzorkovac´ım teor´emem. Pˇri zpomalov´an´ı naopak houstne poˇcet vzork˚ u na ˇcasov´y u ´ sek. To by teoreticky nemˇelo nijak negativnˇe ovlivˇ novat kvalitu zvuku. Rozsah zmˇeny rychlosti pˇrehr´av´an´ı je vˇsak v´ıce omezen jevy, kter´e souvis´ı s vn´ım´an´ım zvuku posluchaˇcem. Pˇri zmˇenˇe rychlosti pˇrehr´av´an´ı smyˇcky doch´az´ı k posuvu frekvenˇcn´ıho spektra vzh˚ uru, respektive n´ıˇze, podle toho zda zrychlujeme ˇci zpomalujeme pˇrehr´av´an´ı oproti origin´alu. Tento jev je pro posluchaˇce zvl´aˇstˇe patrn´y a nepˇr´ıjemn´y, pokud takto manipulujeme s nahr´avkou obsahuj´ıc´ı zpˇev. Zmˇena rychlosti pˇrehr´av´an´ı zvukov´e smyˇcky uloˇzen´e v digit´aln´ı podobˇe pˇrin´aˇs´ı nutnost pˇrevzorkov´an´ı sign´alu. Protoˇze se rychlost pˇrehr´av´an´ı mˇen´ı ˇr´adovˇe v jednotk´ach procent oproti origin´alu, je tˇreba pˇri zachov´an´ı konstatn´ı rychlost´ı vzorkov´an´ı na v´ystupu dopoˇc´ıt´avat hodnotu vzork˚ u mezi p˚ uvodn´ımi zn´am´ymi hodnotami. Metod pro pˇrevzorkov´an´ı je velk´e mnoˇzstv´ı a pˇredevˇs´ım ty sloˇzitˇejs´ı, kter´e se snaˇz´ı zabr´anit v´yˇse uveden´emu posuvu spektra, jsou ˇcasto patentov´any a stˇreˇzeny sv´ymi vlastn´ıky. Bˇehem testov´an´ı v programu Matlab byla pouˇzita jednoduch´a line´arn´ı interpolace vzork˚ u. Touto metodou lze dle subjektivn´ıho poslechu mˇenit rychlost pˇrehr´avan´e smyˇcky o ±12% (pˇri pouˇzit´e
kvalitˇe vzork˚ u dle kap. 3.1 a kvalitˇe reprodukce v c´ılov´em zaˇr´ızen´ı). Na c´ılov´em zaˇr´ızen´ı vˇsak bylo nutn´e se uch´ylit k metodˇe prost´eho vyb´ır´an´ı nejbliˇzˇs´ıho souseda.
3.3
M´ıch´ an´ı v´ıce zdroj˚ u sign´ alu v digit´ aln´ı podobˇ e
Pˇr´ı m´ısen´ı zvukov´ych sign´alu v otevˇren´em prostoru doch´az´ı ke sˇc´ıt´an´ı tohoto vlnˇen´ı. Pro sm´ısen´ı dvou, nebo v´ıce zvuk˚ u v digit´an´ı podobˇe nen´ı moˇzn´e prov´edˇet jednodu-
´ ´I V´ICE ZDROJU ˚ SIGNALU ´ ´ ´I PODOBE ˇ 3.3. M´ICHAN V DIGITALN
25
chou operac´ı sˇc´ıt´an´ı. Pokud jsou zvukov´a data v pamˇeti mikroprocesoru uloˇzena v rozliˇsen´ı 8 bit, tedy v rozsahu 0 aˇz 255, a stejnˇe tak v´ystup z mikroprocesoru je D/A pˇrevodn´ık se shodn´ym rozliˇsen´ım 8 bit, tak nen´ı moˇzn´e tuto operaci prov´adˇet prost´ym souˇctem vzork˚ u, protoˇze v´ystup je shora omezen maxim´aln´ı hodnotou 255, respektive 255 · (Vref /255), kterou lze na D/A pˇrevodn´ıku nastavit. Souˇcet vzork˚ u vˇsak produkuje
hodnoty v rozsahu 0 aˇz 510, kter´e D/A pˇrevodn´ık nen´ı schopen reprodukovat. Jako nejjednoduˇsˇs´ı ˇreˇsen´ı by se zd´ala normalizace zaznamenan´ych vzork˚ u na poloviˇcn´ı hlasitost, t´ım bychom vˇsak redukovali kvalitu nahr´avky, protoˇze bychom stejnˇe tak sn´ıˇzili dynamick´y rozsah na polovinu. Probl´em by se pak d´ale komplikoval, pokud bychom poˇzadovali m´ısen´ı obecnˇe v´ıce neˇz dvou sign´al˚ u. Pro vyˇreˇsen´ı probl´emu chceme realizovat algoritmus, kter´y bude m´ısit sign´al A a B tak, ˇze pokud bude sign´al B reprezentovat ticho, tak chceme na v´ystupu z´ıskat ˇcist´y sign´al A a naopak. Pokud budou oba sign´aly nab´yvat nenulov´e amplitudy, chceme aby v´ysledkem operace byly hodnoty v rozsahu 0 aˇz 255. Tˇemto poˇzadavk˚ um vyhovuje operace Y = A + B − A · B,
kde
A, B, Y ∈ h0; 1i
respektive Y =A+B−
A·B , 255
kde
A, B, Y ∈ h0; 255i
Zvukov´a data jsou vˇsak uloˇzena v lehce odliˇsn´e reprezentaci, kde ticho je reprezentov´ano hodnotou 128 a uˇziteˇcn´y sign´al se mˇen´ı v rozsahu 0 aˇz 255. Tento algoritmus tedy nutn´e upravit do podoby Y = 2 · A · B,
kde
Y = 2 · (A + B) − 2 · A · B − 1,
A, B ∈ h0; 0, 5i, Y ∈ h0; 255i kde
A > 0.5 nebo B > 0.5
respektive Y = A · B/128,
kde
Y = 2 · (A + B) − A · B/128 − 256,
A, B ∈ h0; 128i, Y ∈ h0; 255i kde
A > 128 nebo B > 128
Chov´an´ı tohoto algoritmu je graficky zn´azornˇeno na obr. 3.4. Je vidˇet, ˇze ticho v obou kan´alech A i B generuje na v´ystupu tak´e ticho. Pokud je na vstupu pouze jeden zdroj uˇziteˇcn´eho sign´alu, tak proch´az´ı nezmˇenˇen a pokud vstupuj´ı do v´ypoˇctu dva uˇziteˇcn´e sign´aly, tak doch´az´ı k dynamick´emu zatlumen´ı tak, aby se sign´al udrˇzel v pˇr´ıpustn´em rozsahu hodnot.
´ ˇ SEN ˇ ´I ZVUKOVEHO ´ KAPITOLA 3. NAVRH A RE MODULU
26
Signal A 250 200 150 100 50 0
0
100
200
300
400
500
600
700
800
900
1000
600
700
800
900
1000
600
700
800
900
1000
Signal B 250 200 150 100 50 0
0
100
200
300
400
500 Signal Y
250 200 150 100 50 0
0
100
200
300
400
500
Obr´ azek 3.4: Simulace m´ıch´ an´ı dvou sign´ alu v digit´ aln´ı podobˇe
´ ODEZVA EMULACE MOTORU NA ZMENU ˇ 3.4. ZVUKOVA RYCHLOSTI J´IZDY27
3.4
Zvukov´ a odezva emulace motoru na zmˇ enu rychlosti j´ızdy
V podkapitole 3.2.3 je pops´an zp˚ usob, jak´ym je modelov´an zvuk motoru. Je tˇreba vˇsak zvolit veliˇcinu, od kter´e se bude odvozovat reprodukovan´y zvuk. Vzhledem k tomu, ˇze ot´aˇcky motoru u ´ zce souvis´ı s poˇzadovan´ym v´ykonem na motoru, mˇela by tedy b´yt zvukov´a odezva odvozov´ana od stˇr´ıdy PWM sign´alu pˇriv´adˇen´eho na motor. Tato vazba by zajistila, ˇze i pˇri j´ızdˇe konstantn´ı rychlost´ı by pˇri zmˇenˇe trat’ov´ych podm´ınek (tzn. stoup´an´ı, kles´an´ı, nebo zmˇena zapˇraˇzen´e soupravy a t´ım zmˇenˇen´e zat´ıˇzen´ı lokomotivy) doˇslo k oˇcek´avan´e zmˇenˇe zvukov´eho projevu. Pˇri testu se vˇsak uk´azalo, ˇze tato jednoduch´a vazba nen´ı moˇzn´a, protoˇze ppˇri rozjezdu byla odezva nepˇrirozen´a. Probl´emem je nelinearita v poˇc´atku pˇrevodn´ı charakteristiky stˇr´ıdy PWM sign´alu na ot´aˇcky motoru (viz. obr. 3.5). To v znamen´a, ˇze pˇri pokusu o rozjezd, kdy je reprodukov´an zvuk volnobˇeˇzn´ych ot´aˇcek doˇslo k v´yrazn´e a nepˇrirozen´e skokov´e zmˇenˇe zvuku motoru. Byla proto provedena u ´ prava, kdy zvukov´a odezva motoru se odvodila od filtrovan´e poˇzadovan´e rychlosti lokomotivy. Aby bylo doc´ıleno poˇzadovan´eho efektu zmˇeny odezvy pˇri zmˇenˇe j´ızdn´ıch podm´ınek je prov´adˇena korekce odezvy podle pr˚ umˇerovan´e odchylky stˇr´ıdy PWM sign´alu od standardn´ı charakteristiky. Pokud bychom chtˇeli model jeˇstˇe v´ıce pˇribl´ıˇzit realitˇe, bylo by tˇreba zpozdit poˇzadavky na rychlost pˇriv´adˇen´e do regulaˇcn´ıho obvodu motoru tak, aby doˇslo k efektu pˇredbuzen´ı motoru pˇred samotn´ym rozjezdem. Tento postup vˇsak zat´ım nebyl vzhledem k testovac´ımu provozu implementov´an, protoˇze by doslo k sn´ıˇzen´ı ovladatelnosti soupravy pˇredevˇs´ım v pˇr´ıpadˇe nutnosti nouzov´eho zastaven´ı.
´ ˇ SEN ˇ ´I ZVUKOVEHO ´ KAPITOLA 3. NAVRH A RE MODULU
28
Pocet prerusení od IR cidla za 0.1s (rychlost)
600 rozjezd brzdení 500
400
300
200
100
0
0
50
100 150 Strida PWM signalu v 8 bit rozliseni
200
250
Obr´azek 3.5: Pˇrevodn´ı charakteristika stˇr´ıdy PWM sign´ alu na rychlost j´ızdy
Kapitola 4 Realizace nov´ eho ˇ r´ıdic´ıho modulu
Bˇehem migrace na novou platformu byla provedeny dvˇe, respektive tˇri iterace n´avrhov´eho procesu. Tento proces se skl´ad´a z n´avrhu ploˇsn´eho spoje, zad´an´ım do v´yroby, osazen´ım, oˇziven´ım elektroniky a n´asledn´ym testov´an´ım. Bˇehem prvn´ı iterace doˇslo k fat´aln´ı chybˇe pˇri n´avrhu, kdy byly d´ıky neˇst’asn´emu dˇelen´ı stran mezi v´ykresem mechanick´ych rozmˇer˚ u procesoru a tabulce ok´otovan´ych hodnot ˇspatnˇe navrˇzeny dosedac´ı ploˇsky pro v´yvody procesoru. Prvn´ı prototyp tiˇstˇen´eho spoje proto nemohl b´yt plnˇe osazen a otestov´an, doˇslo pouze k d´ılˇc´ımu testov´an´ı subsyst´em˚ u. V druh´em kole se podaˇrilo jiˇz vyrobit plnˇe osaditeln´y prototyp ve dvou verz´ıch, jeden se z´alohov´an´ım nap´ajen´ı pomoc´ı superkapacitoru a druh´y se z´alohov´an´ım pomoc´ı baterie. Bylo odhaleno nˇekolik drobn´ych chyb ve zdrojov´e ˇc´asti obvod˚ u, kter´e byly oˇzivov´any jako prvn´ı, ty se vˇsak podaˇrilo odstranit pomoc´ı dr´atov´ych propojek. Hlavn´ım c´ılem testov´an´ı bylo ovˇeˇren´ı funkˇcnosti pˇrepracovan´e zdrojov´e ˇc´asti a rozhodnut´ı o fin´aln´ı variantˇe z´alohov´an´ı nap´ajen´ı. Ve tˇret´ım kole byly opraveny chyby zjiˇstˇen´e pˇri oˇzivov´an´ı druh´eho prototypu a byla vyrobena pouze v´ıtˇezn´a verze z variant superkapacitor/baterie. D´ale byl pouˇzit ˇctrn´actipinov´y konektor pro moˇznost snadn´eho pˇripojen´ı modulu do pˇredpˇripraven´e z´astavby v lokomotivˇe. T´ım doˇslo k oddˇelen´ı pracovn´ıch ˇcinnost´ı z´astavby v´yzbroje do lokomotiv od v´yroby a oˇziven´ı ˇr´ıdic´ıch modul˚ u. Nyn´ı lze tyto ˇcinnosti prov´adˇet nez´avisle na sobˇe. 29
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
30
4.1
Pˇ repracovan´ a zdrojov´ aˇ c´ ast modulu
Prvn´ı zmˇenou ve zdrojov´e ˇc´asti modulu je v´ymˇena line´arn´ıho stabiliz´atoru napˇet´ı L7805, s 5 V v´ystupem, za sp´ınan´y zdroj TPS62112 od firmy Texas Instruments se shodn´ym v´ystupn´ım napˇet´ım. D˚ uvodem bylo m´ırn´e zahˇr´ıv´an´ı p˚ uvodn´ıho stabiliz´atoru v d˚ usledku pomˇernˇe velk´eho napˇet’ov´eho rozd´ılu mezi vstupem a v´ystupem stabiliz´atoru. Zahˇr´ıv´an´ı nebylo nebezpeˇcn´e pro obvod, protoˇze m´a pouzdro vybaven´e dostateˇcnou chlad´ıc´ı plochou, ale hrozilo by poˇskozen´ı plastov´e karoserie lokomotivy pˇri zakapotov´an´ı. Druhou v´yhodou je pak lepˇs´ı u ´ˇcinnost tohoto obvodu. Zapojen´ı je realizov´ano dle doporuˇcen´ı v´yrobce, viz. (Texas Instruments, 2009b). Za t´ımto vstupn´ım odvodem, kter´y dod´ava energii pro procesor, BT modul, mˇeˇr´ıc´ı obvod zpˇetnˇe indukovan´eho napˇet´ı a IR bal´ızu, se ˇreˇsen´ı rodˇelilo na dvˇe moˇzn´e ˇreˇsen´ı z´alohov´an´ı nap´ajen´ı. • ˇreˇsen´ı se superkapacitorem, kter´y m´a pˇredˇrazenou proudovou ochranu pro omezen´ı nab´ıjec´ıho proudu pˇri zapnut´ı modulu
• ˇreˇsen´ı s jednoˇcl´ankouvou Li-Pol bateri´ı, se jmenovit´ym napˇet´ım 3,7 V. Spr´ava nab´ıjen´ı je ˇreˇsena pˇr´ısluˇsn´ym specializovan´ym obvodem
Na v´ystupu obou z´alohovac´ıch ˇreˇsen´ı je sp´ınan´y zdroj TPS63021 s pˇrednastaven´ym v´ystupn´ım napˇet´ım 3,3 V (tak t´eˇz od firmy Texas Instruments). Tento sp´ınan´y zdroj je schopen pracovat v reˇzimu ”step-up”i ”step-down”s automatick´ym v´ybˇerem funkce dle aktu´aln´ıho napˇet´ı na vstupu obvodu. Tato funkˇcnost je nutn´a, protoˇze vzhledem k u ´ bytku napˇet´ı na diod´ach, pˇr´ıpadnˇe na tranzistoru sp´ınaj´ıc´ım z´aloˇzn´ı nap´ajen´ı, se vstupn´ı napˇet´ı tohoto sp´ınan´eho zdroje pohybuje v rozmez´ı nad i pod 3,3 V a nelze proto pouˇz´ıt obvod pracuj´ıc´ı pouze v reˇzimu ”step-up”, respektive v reˇzimu ”step-down”. Zapojen´ı je tak´e provedeno dle doporuˇcen´ı v´yrobce, viz. (Texas Instruments, 2010).
4.1.1
ˇ sen´ı se superkapacitorem Reˇ
Pro z´alohu pomoc´ı superkapacitoru byl pouˇzit BZ055A333ZSB od AVX Corporation s kapacitou 33mF na 5,5 V a ud´avan´ym vnitˇrn´ım odporem pouh´ych 250 mΩ. Mal´y vnitˇrn´ı odpor umoˇzn ˇ uje velkou proudovou zat´ıˇz´ıtelnost. Rozmˇerovˇe se jedn´a o kv´adr s rozmˇery
ˇ ´ ZDROJOVA ´ C ˇ AST ´ 4.1. PREPRACOVAN A MODULU
31
28x17x3,5 mm a v´yvody pro SMD technologii osazovan´ı(zkratka SMD je pro Surface Mounted Device, tedy povrchovˇe montovan´e zaˇr´ızen´ı). Pˇri n´avrhu ˇreˇsen´ı jsem provedl simulaci v prostˇred´ı Matlab, aby bylo moˇzn´e odhadnout dobu, po kterou bude schopen tento kapacitor udrˇzet v chodu 3,3 V vˇetev nap´ajen´ı. Vych´azel jsem z n´asleduj´ıc´ıch pˇredpoklad˚ u. Superkapacitor je v ide´aln´ım pˇr´ıpadˇe pˇred v´ypadkem nap´ajen´ı nabit na napˇet´ı 5 V. Poˇzadovan´y v´ystupn´ı proud zdroje na 3,3 V vˇetvi sloˇzen z nˇekolika sloˇzek. • Bluetooth modul - ˇspiˇckovˇe, pˇri pˇr´ıjmu i vys´ıl´an´ı, max. 120 mA • Procesor - pˇri taktovac´ı frekvenci 55 MHz, se vˇsemi periferiemi zapnut´ymi 33,3 mA • Operaˇcn´ı zesilovaˇce - max 1,3 mA na obvod • IR bal´ıza - max. 0,4 mA bez vybuzen´ı, 1,6 mA pˇri vybuzen´ı sign´alem V souˇctu je tedy poˇzadovan´y v´ystupn´ı proud v nejhorˇs´ım pˇr´ıpadˇe 157,5 mA, budu tedy poˇc´ıtat se Iout 160 mA a Uout 3, 3 V. V´ypoˇcet je proveden iteraˇcnˇe, kdy poˇzaduji na v´ystupu konstantn´ı v´ykon Pout = Iout ·Uout = 0, 52 W. Ud´avan´y graf u ´ˇcinnosti v garantuje u ´ˇcinnost bezpeˇcnˇe nad 90%. Budu poˇc´ıtat orientaˇcnˇe s u ´ˇcinnost´ı η = Pin /Pout = 0, 9. Je
tedy tˇreba dod´avat na vstupu zdroje Pin = Pout /η = 0, 58 W. Budu tedy iteraˇcnˇe poˇc´ıtat odeb´ıran´y proud na vstupu pˇri zn´am´em napˇet´ı a v´ykonu jako Iin = Pin /Uin . Pokud tedy vyjdu z rovnic Q = I · t a U = Q/C, budu iteraˇcnˇe ˇreˇsit rovnici Pin ui Ii · ∆t = ui − C Ii =
ui+1
Vnitˇrn´ı odpor superkapacitoru jsem zanedbal, protoˇze na poˇc´atku procesu je na vnitˇrn´ım odporu u ´ bytek pouze Pin /U0 · Rin = (0, 58/5) · 0, 25 = 0, 029 V, takˇze u ´ bytek na
vnitˇrn´ım odporu superkapacitoru je opravdu zanedbateln´y. Nechal jsem tedy vypoˇc´ıtat
pr˚ ubˇeh napˇet´ı na superkapacitoru s velmi jemn´ym ˇcasov´ym krokem ∆t = 0, 005 s. V´ysledek simulace je na obr. 4.1. V grafu je oznaˇcen bod, kdy pˇrest´av´a pracovat sp´ınan´y zdroj 3,3 V vˇetve. K v´ypadku nap´ajen´ı na 3,3 V vˇetvi tedy dojde v nejhorˇs´ım pˇr´ıpadˇe za 0,62 s. To je dostatek ˇcasu pro zjiˇstˇen´ı nebezpeˇcn´eho p´adu napˇet´ı, kdyˇz napˇet´ı je mˇeˇreno AD pˇrevodn´ıkem kaˇzdou ms a napˇet´ı na superkapacitoru je zjiˇst’ov´ano v okamˇziku, kdy je pˇriv´adˇen v´ykon na motor, nebo minim´alnˇe jednou za 50 ms. Stejnˇe tak se jedn´a o dostateˇcnou dobu na zasl´an´ı zpr´avy BT modulu o detekovan´em p´adu nap´ajen´ı, aby byl
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
32
nadˇrazen´y server uvˇedomˇen o uv´aznut´ı soupravy na kolejiˇsti. Server by mˇel m´ıt i pˇrehled o poloze uv´aznut´ı, protoˇze lokomotiva do posledn´ı chv´ıle zas´ıl´a informace o odometrii. 5 4.5 4
napeti [V]
3.5 3 2.5 X: 0.62 Y: 1.84
2 1.5 1 0.5 0
0
0.1
0.2
0.3
0.4
0.5 cas [s]
0.6
0.7
0.8
0.9
1
Obr´ azek 4.1: Simulace vyb´ıjen´ı superkapacitoru pˇri v´ ypadku nap´ ajen´ı
Pro kompletn´ı pˇrehled situace byl provedena i opaˇcn´a simulace n´abˇehu nap´ajen´ı pˇri omezen´ı nab´ıjec´ıho proudu na Ilim = 0, 8 A. Nab´ıjec´ı proud byl omezen speci´aln´ım obvodem TPS2557 od firmy Texas Instruments, kter´y dovoluje programovateln´e omezen´ı v´ystupn´ıho proudu pomoc´ı extern´ıho odporu. Zp˚ usob ˇreˇsen´ı byl obdobn´y. Ve v´ypoˇctu je zahrnut i n´abˇeh sp´ınan´eho zdroje pˇri dosaˇzen´ı Uc = 1, 8 V. V´ysledek je na obr. 4.2. Nab´ıjen´ı superkapacitoru je cca tˇrikr´at rychlejˇs´ı neˇz vyb´ıjen´ı, takˇze nehroz´ı bˇehˇem j´ızdy faleˇsn´a detekce v´ypadku nap´ajen´ı, protoˇze by musela b´yt lokomotiva v´ıce neˇz tˇretinu ˇcasu izolov´ana od kolejnic, respektive jeˇstˇe nepˇr´ıznivˇejˇs´ım pomˇerem, protoˇze v´ypadky by musely proniknout pˇres vstupn´ı blokov´an´ı a sp´ınan´y zdroj z vstupn´ıho napˇet´ı na 5 V vˇetev. To je bezpeˇcn´a rezerva, protoˇze v takov´em pˇr´ıpadˇe by mnohem dˇr´ıve doˇslo k v´ypadku trakce a zastaven´ı lokomotivy, tedy pr´avˇe k opravdov´emu uv´aznut´ı. Navrˇzen´e schema zapojen´ı se superkapacitorem je uvedeno na obr. 4.3. Nulov´e propojky R5 a R6 dovoluj´ı pouˇzit libovolnou verzi obvodu TPS2556/7. Stejnˇe tak pouˇzit´ı jedn´e z propojek (podle typu obvodu) lze oddˇelit 3,3 V vˇetev nap´ajen´ı od zbytku zdrojov´e ˇc´asti a t´ım usnadˇ nuje postupn´e oˇzivov´an´ı modulu. Hodnota odporu urˇcuj´ıc´ıho proudov´e omezen´ı je dle dokumentace v´yrobce, viz. (Texas Instruments, 2009a).
ˇ ´ ZDROJOVA ´ C ˇ AST ´ 4.1. PREPRACOVAN A MODULU
33
5 4.5 4
napeti [V]
3.5 3 2.5 2 1.5 1 0.5 0
0
0.1
0.2
0.3 cas [s]
0.4
0.5
0.6
Obr´ azek 4.2: Simulace nab´ıjen´ı superkapacitoru pˇri n´ abˇehu nap´ ajen´ı
Obr´ azek 4.3: Schema z´ alohy nap´ ajen´ı pomoc´ı superkapacitoru
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
34
4.1.2
ˇ sen´ı s bateri´ı Reˇ
Bateriov´a z´aloha se skl´ad´a z jednoˇcl´ankov´e Li-Pol baterie s jmenovit´ym napˇet´ım 3,7 V a jmenovitou kapacitou 110 mAh. Baterie m´a rozmˇery 30x15x9,5 mm. Nab´ıjen´ı baterie je spravov´ano integrovan´ym obvodem MCP73812 od firmy Microchip. Tento obvod dob´ıj´ı baterii pomoc´ı pˇredprogramovan´eho konstantn´ıho proudu dokud nen´ı na jeho v´ystupu 4,2 V. Velikost nab´ıjec´ıho proudu je doporuˇcena volit jako 1 C, tedy jako jednon´asobek kapacity v Ah. Tak lze dos´ahnout nejkratˇs´ıho ˇcasu nab´ıjen´ı bez degradace ˇzivotnosti baterie. Podrobn´y popis funkce obvodu je uveden v jeho dokumentaci, viz. (Microchip, 2007). Dle teoretick´eho pˇredpokladu z kap. 4.1.1 je tˇreba na vstupu sp´ınan´eho zdroje dod´avat v nejhorˇs´ım pˇr´ıpadˇe v´ykon Pin = 0, 58 W. To by pˇri nomin´aln´ı hodnotˇe napˇet´ı na baterii znamenalo odbˇer 160 mA, to znamen´a hrub´ym odhadem v´ydrˇz cca 40 min. Protoˇze nen´ı tˇreba, aby z´alohov´an´ı udrˇzovalo 3,3 V vˇetev nap´ajen´ı po tak dlouhou dobu a z´aroveˇ n nen´ı ˇz´adouc´ı, aby sp´ınan´y zdroj 3,3 V vˇetve vyb´ıjel baterii za pˇr´ıpustnou mez jej´ı vyb´ıjec´ı charakteristiky, byl zaˇrazen mezi zdroj a baterii sp´ınac´ı tranzistor, kter´y dovoluje procesoru v pˇr´ıpadˇe v´ypadku nap´ajen´ı po urˇcit´e dobˇe ˇr´ızenˇe pˇrej´ıt do vypnut´eho stavu. D´ale je tˇreba oˇsetˇrit nap´ajen´ı tak, aby v pˇripadˇe bˇeˇzn´e funkce byla baterie nab´ıjena obvodem MCP73812 a sp´ınan´y zdroj 3,3 V vˇetve byl z´asoben z 5 V nap´ajen´ı. Je tˇreba tak´e zamezit toku proudu z 5 V vˇetve smˇerem do baterie. V´ysledn´e schema ˇreˇsen´ı je uvedeno na obr. 4.4.
Obr´ azek 4.4: Schema z´ alohy nap´ ajen´ı pomoc´ı baterie
ˇ ´ ZDROJOVA ´ C ˇ AST ´ 4.1. PREPRACOVAN A MODULU
35
Na schematu je vidˇet oddˇelen´ı nap´ajen´ı z 5 V vˇetve a z baterie pomoc´ı dvou shottkyho diod D3 a D4 s n´ızk´ym pˇrechodov´ym napˇet´ım cca 0,3 V. Aktivace z´aloˇzn´ıho nap´ajen´ı z baterie je prov´adˇena pomoci unipol´arn´ıho tranzistoru T1 s P kan´alem, kter´y je ovl´ad´an procesorem pˇres bipol´arn´ı tranzistor T2. Aktivace nab´ıjec´ıho obvodu baterie U2 je spojeno s 5 V vˇetv´ı nap´ajen´ı, aby byl obvod aktivn´ı vˇzdy, kdyˇz je modul v provozu. Napˇet´ı na baterii je pro u ´ˇcely diagnostiky sledov´ano pomoc´ı AD pˇrevodn´ıku na procesoru.
4.1.3
V´ ybˇ er fin´ aln´ıho ˇ reˇ sen´ı z´ alohov´ an´ı
Z´alohov´an´ı nap´ajen´ı je motivov´ano nutnost´ı ˇr´ızen´eho ukonˇcen´ı komunikace mezi BT serverem a ˇr´ıd´ıc´ım modulem. U pˇredchoz´ıch prototyp˚ u nebylo ˇreˇseno ˇr´ızen´e vypnut´ı modulu a pokud doˇslo k neoˇcek´avan´emu v´ypadku nap´ajen´ı, BT server zaznamenal tuto ztr´atu se znaˇcn´ym zpoˇzdˇen´ım. Stˇejnˇe tak je tˇreba zajistit pˇreklenut´ı doby mezi pˇrep´olov´an´ım nap´ajen´ı z kolej´ı pˇri prujezdu obratiˇstˇem soupravy a ztr´ata komunikace s modulem je neˇz´adouc´ı. Bˇehem re´aln´eho testov´an´ı se uk´azalo, ˇze skuteˇcn´a v´ydrˇz nap´ajen´ı pˇred kompletn´ım v´ypadkem na 3,3 V vˇetvi je oproti odhadu delˇs´ı, cca 2 s. Navzdoru tomuto faktu bylo rozhodnuto o pouˇzit´ı bateriov´e z´alohy. Ve prospˇech bateriov´eho ˇreˇsen´ı hovoˇr´ı nˇekolik argument˚ u. • vytrvalost - bateriov´a z´aloha poskytuje nesrovnatelnˇe delˇs´ı moˇznost provozu pˇri v´ypadku nap´ajen´ı, a t´ım i bezpeˇcnˇejˇs´ı ˇr´ızen´e vypnut´ı modulu
• cena - superkapacitor stoj´ı 16$ a obvod omezuj´ıc´ı proud pˇri n´abˇehu stoj´ı 2$ oproti 2$ za baterii a 0,68$ za nab´ıjec´ı obvod baterie a dve diody po 0,5$.
• dostupnost souˇc´astek a podp˚ urn´ych obvod˚ u - dostupnost obvodu TPS2556/7 nen´ı zcela bezprobl´emov´a, dosavadn´ı exempl´aˇre byli z´ısk´any jako vzorky pˇr´ımo od v´yˇ e republiky, pouˇzit´y robce. Vlastn´ı superkapacitor nen´ı moˇzn´e sehnat v r´amci Cesk´ vzorek byl zakoupen v americk´em obchodˇe. Oproti tomu Li-Pol baterie jsou bez probl´emu dostupn´e ve velmi podobn´em proveden´ı od nˇekolika r˚ uzn´ych v´yrobc˚ u a podp˚ urn´e obvody jsou tak´e mnohem l´epe dostupn´e. V´yhodou superkapacitoru je ponˇekud menˇs´ı rozmˇer. Pevnou mont´aˇz na desku ploˇsn´eho spoje nelze povaˇzovat za v´yhodu, protoˇze z´astavba modulu je v kaˇzd´e lokomotivˇe znaˇcnˇe
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
36
rozd´ıln´a a n´e vˇzdy je mˇenˇe flexibiln´ı rozmˇerov´a konfigurace v´yhodou. Druhou v´yhodou superkapacitoru je menˇs´ı mnoˇzstv´ı podp˚ urn´ych souˇca´stek, ale u ´ spora m´ısta na tiˇstˇen´em spoji by byla ve v´ysledku nepatrn´a.
4.2
Implementace HCI rozhran´ı pro komunikaci s BT modulem
HCI rozhran´ı (Host Controller Interface) zpˇr´ıstupˇ nuje ovl´adac´ı rozhran´ı pro ovl´ad´an´ı kontroleru radiov´eho modulu, linkov´eho manaˇzera a pˇr´ıstup k ˇr´ıd´ıc´ım a stavov´ym registr˚ um hardwaru. Jeho z´akladn´ı specifikace je urˇcena dokumentem (Bluetooth SIG, 2001) a je spoleˇcn´a pro vˇsechny Bluetooth zaˇr´ızen´ı. Tato norma je veˇrejnˇe dostupn´a na str´ank´ach Bluetooth SIG (Special Interest Group). Konkr´etn´ı implementace se m´ırnˇe liˇs´ı podle pouˇzit´eho fyzick´eho komunikaˇcn´ıho rozhran´ı (USB, RS232, UART). Pouˇzit´y modul WML-C40A od firmy BlueRadios respektuje tuto specifikaci a je moˇzn´e s n´ım ˇ ıd´ıc´ı modul vyuˇz´ıv´a komunikaci komunikovat pomoc´ı rozhran´ımi USB, nebo UART. R´ pomoc´ı rozhran´ı UART s hardwarov´ym ˇr´ızen´ım toku pomoc´ı sign´al˚ u RTS/CTS. Pozice HCI rozhran´ı mezi koncov´ymi zaˇr´ızen´ımi je naznaˇceno na obr. 4.5, pˇriˇcemˇz jeden z host˚ u je BT server (postaven´y na platformˇe AVR, konkr´etnˇe ATmega162 a d´ale pˇr´ıpojen do syst´emu pomoc´ı rozhran´ı CAN) a druh´y je ˇr´ıd´ıc´ı modul lokomotivy. BT server je schopen simult´aln´ıho spojen´ı aˇz se sedmi dalˇs´ımi zaˇr´ızen´ımi v pozici ”slave”. Spojen´ı mezi moduly je prov´adˇeno na z´akladˇe fyzick´ych MAC adres BT modul˚ u. Pˇri u ´ spˇeˇsn´em propojen´ı je spojen´ı pˇridˇelen n´ahodnˇe vygenerovan´y ”link key”, kter´y jednoznaˇcnˇe urˇcuje aktu´aln´ı spojen´ı mezi dvˇema hosty. HCI rozhran´ı rozliˇsuje zpr´avy do nˇekolika kategori´ı: • HCI Command Packet - ˇr´ıdic´ı pˇr´ıkazy pro modul, slouˇz´ı pro ovl´ad´an´ı hardwaru BT modulu
• HCI ACL Data Packet - datov´y paket pouˇzivan´y pˇri ACL spojen´ı (Asynchronous Connection Link), urˇcen pro paketovˇe orientovanou asynchronn´ı v´ymˇenu dat
• HCI SCO Data Packet - datov´y paket pouˇzivan´y pˇri SCO spojen´ı (Synchronous Connection Oriented), urˇcen pro st´al´y datov´y tok napˇr. hlasov´ych dat
4.2. IMPLEMENTACE HCI ROZHRAN´I PRO KOMUNIKACI S BT MODULEM 37
Obr´ azek 4.5: Schema komunikaˇcn´ıho kan´ alu mezi zaˇr´ızen´ımi pomoc´ı rozhran´ı HCI
• HCI Event Packet - paket pro asynchronnˇe nast´avaj´ıc´ı ud´alosti Fyzick´e rozhran´ı BT modulu je tov´arnˇe nastaveno na 112000 baud/s, bez parity, jeden stop bit, RTS/CTS ˇr´ızen´ı toku dat. Zmˇena nastaven´ı je moˇzn´a pomoc´ı SPI rozhran´ı, ale nen´ı tˇreba, procesor ˇr´ıd´ıc´ıho modulu je nastaven shodnˇe. BT modul komunikuje pomoc´ı ust´alen´ych zpr´av. Kaˇzd´a zpr´ava je uvozena k´odem (0x01 aˇz 0x04), rozliˇsuj´ıc´ım v´yˇse zm´ınˇenou kategorii, do kter´e zpr´ava spad´a. Form´at n´asleduj´ıc´ıch dat za hlaviˇckou je pak urˇcen podle kategorie zpr´avy. V r´amci c´ılov´eho nasazen´ı je pouˇzito jen nˇekolik nutn´ych pˇr´ıkaz˚ u. Jejich popis je rozebr´an v n´asleduj´ıc´ıch podkapitol´ach.
4.2.1
HCI Command Packet
Struktura HCI Command Packetu je uvedena na obr. 4.6. Prvn´ı dva byty obsahuj´ı ”OpCode”, kter´y je dˇel´ı na dvˇe ˇc´asti, 6 bit˚ u OGF (OpCode Group Field) a 10 bit˚ u OCF (OpCode Command Field). OGF urˇcuje skupinu, do kter´e pˇr´ıkaz patˇr´ı a OCF
38
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
ud´av´a pˇr´ımo k´od pˇr´ıkazu z pˇr´ısluˇsn´e skupiny. Nejvyˇzˇs´ı moˇzn´a skupina OGF (0x3F) je rezervov´ana pro speciln´ı pouˇzit´ı a je na libov˚ uli kaˇzd´eho v´yrobce. N´asleduje byte ud´av´aj´ıc´ı poˇcet n´asleduj´ıc´ıch parametr˚ u do konce paketu.
Obr´ azek 4.6: Form´ at HCI Command Packetu
ˇ ıdic´ı modul vyuˇz´ıv´a n´asleduj´ıc´ı pˇr´ıkazy: R´ • OGF 0x01 - Host Controller & Baseband Commands – OCF 0x0C - Link Key Request Negative Reply - Slouˇz´ı pro zasl´an´ı odpovˇedi na pˇr´ıchoz´ı ud´alost Link Key Request, kdy se snaˇz´ı nˇejak´e zaˇr´ızen´ı bezdr´atovˇe spojit s BT modulem. Tento pˇr´ıkaz zas´ıl´a negativn´ı odpovˇed’, tzn. ˇze zaˇr´ızen´ı nejsou dosud spojena ˇz´adn´ym kl´ıˇcem (ˇcasto se mluv´ı o sp´arov´an´ı zaˇr´ızen´ı). Vstupn´ım parametrem je fyzick´a MAC adresa BT zaˇr´ızen´ı, kter´emu odpov´ıd´ame. – OCF 0x0D - PIN Code Request Reply - Slouˇz´ı pro zasl´an´ı odpovˇedi na pˇr´ıchoz´ı ud´alost PIN Code Request. Vstupn´ımi parametrem je MAC adresa BT zaˇr´ızen´ı, d´elka PIN k´odu a vlastn´ı PIN k´od. • OGF 0x03 - Host Controller & Baseband Commands – OCF 0x03 - Reset - softwarov´y reset BT modulu – OCF 0x05 - Set Event Filter - filtr pˇr´ıchoz´ıch ud´alost´ı, BT modul podle nastaven´ı filtru pˇrepos´ıl´a hostovi pouze ud´alosti (Eventy), kter´e projdou filtrem.
4.2. IMPLEMENTACE HCI ROZHRAN´I PRO KOMUNIKACI S BT MODULEM 39 – OCF 0x13 - Change Local Name - zmˇen´ı jm´eno zaˇr´ızen´ı, kter´e je viditeln´e zpod kter´ym se dodateˇcnˇe identifikuje. Nov´e jm´eno zaˇr´ızen´ı je pˇred´av´ano jako vstupn´ı parametry v k´odov´an´ı UTF-8. – OCF 0x1A - Write Scan Enable - podle parametru povoluje/zakazuje zjistitelnost BT modulu. – OCF 0x20 - Write Authentication Enable - podle parametru povoluje/zakazuje nezabezpeˇcen´e spojen´ı. Pokud nen´ı uvedeno jinak, vrac´ı tyto pˇr´ıkazy jedin´y parametr, kter´y se naz´yv´a status. Pokud pˇr´ıkaz vr´at´ı nulu, znamen´a to u ´ spˇeˇsn´e proveden´ı pˇr´ıkazu, ˇc´ıslo r˚ uzn´e od nuly znamen´a ne´ uspˇech, v´yznam lze dohledat v tabulce chybov´ych k´od˚ u v dokumentaci (Bluetooth SIG, 2001, str. 766).
4.2.2
HCI Event Packet
Struktura HCI Event Packetu je uvedena na obr. 4.7. Prvn´ı byte ud´av´a Event Code, tedy k´od nastal´e ud´alosti. N´asleduje druh´y byte, ud´avaj´ıc´ı poˇcet n´asleduj´ıc´ıch Event parametr˚ u a zbytek paketu tvoˇr´ı tyto parametry. Nejvyˇsˇs´ı k´od ud´alosti je opˇet rezervov´an pro ud´alost specifickou pro kaˇzd´eho v´yrobce.
Obr´ azek 4.7: Form´ at HCI Event Packetu
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
40
Dokumentace (Bluetooth SIG, 2001) obsahuje pln´y v´yˇcet moˇzn´ych pˇr´ıchoz´ıch ˇ ıdic´ı modul reaguje pouze na urˇcit´e oˇcek´avan´e typy pˇr´ıchoz´ıch ud´alost´ı. ud´alost´ı. R´ • Code 0x03 - Connection Complete Event - potvrzen´ı spojen´ı mezi BT moduly. Obsahuje informace o fyzick´e MAC adrese vzd´alen´eho BT modulu, vygenerovan´y identifik´ator Connection Handle pro toto spojen´ı a zp˚ usobu zabezpeˇcen´ı kan´alu. • Code 0x05 - Disconnection Complete Event - ud´alost ztr´aty spojen´ı s vzd´alen´ym
BT modulem. Obsahuje informaci o Connection Handle tohoto spojen´ı a d˚ uvod ztr´aty spojen´ı dle Error Listu.
• Code 0x0E - Command Complete Event - standardn´ı odpovˇed’ na vˇsechny Command Pakety, nese informaci o proveden´ı/neproveden´ı pˇrijmut´eho pˇr´ıkazu.
• Code 0x16 - Pin Code Request Event - vzd´alen´y BT modul se pokouˇs´ı vytvoˇrit nov´e zabezpeˇcen´e spojen´ı pomoc´ı PIN k´odu.
• Code 0x17 - Link Key Request Event - vzd´alen´y BT modul se pokouˇs´ı spojit s BT modulem pomoc´ı Link key (vytvoˇren´em pˇri pˇr´ıpadn´em pˇrechoz´ım sp´arov´an´ı). Pˇr´ıchoz´ı ud´alost obsahuje jen MAC adresu vzd´alen´eho BT modulu, je na uˇzivateli, zda pro tuto adresu m´a uloˇzen Link Key a podle toho odpov´ı na tuto ud´alost. • Code 0x18 - Link Key Notification Event - ud´alost oznamuj´ıc´ı u ´ spˇeˇsn´e spojen´ı mezi
BT moduly. Jej´ı souˇc´ast´ı je Link Key, kter´y m˚ uˇze b´yt pouˇzit pˇri pˇr´ıˇst´ım spojen´ı jiˇz bez PIN k´odu.
4.2.3
HCI ACL/SCO Data Packet
Struktura datov´ych paket˚ u je uvedena na obr. 4.8. Pro oba typy (ACL a SCO) datov´ych paket˚ u je struktura shodn´a. Prvn´ıch 12 bit˚ u obsahuje ”Connection Handle”, coˇz je jiˇz zmiˇ novan´y jednoznaˇcn´y identifik´ator vygenerovan´y pro spojen´ı mezi dvˇema BT zaˇr´ızen´ımi. N´asleduj´ı dva bity Packet Boundary Flag urˇcuj´ıc´ı zda se jedn´a a prvn´ı startovac´ı paket vys´ılan´e zpr´avy, nebo nˇekter´y z n´asleduj´ıc´ıch. Dalˇs´ı dva bity Broadcast Flag urˇcuj´ı, zda se jedn´a o zpr´avu pro konkr´etn´ı zaˇr´ızen´ı, nebo zda se m´a prov´adˇet broadcast pro vˇsechny zaˇr´ızen´ı typu slave v okol´ı (i ty co zat´ım pouze naslouchaj´ı), nebo zda se jedn´a o broadcast vys´ıl´an´ı pouze pro slave zaˇr´ızen´ı jiˇz registrovan´a do Piconetu vys´ılaj´ıc´ıho zaˇr´ızen´ı.
4.2. IMPLEMENTACE HCI ROZHRAN´I PRO KOMUNIKACI S BT MODULEM 41
Obr´ azek 4.8: Form´ at HCI Data Packetu
Pro komunikaci s BT servery se pouˇz´ıvaj´ı datov´e pakety typu ACL. Pˇr´ıchoz´ı zpr´avy chod´ı periodicky z nadˇr´ızen´eho BT serveru dle dohodnut´eho form´atu. V pˇr´ıpadˇe pˇr´ıliˇs ˇ ıdic´ı dlouh´e prodlevy povaˇzuje modul komunikaci za pˇreruˇsenou a zastavuje lokomotivu. R´ modul generuje dva typy zpr´av. Periodicky zas´ıl´a zpˇet sv˚ uj stav dle uˇzivatelsky definovan´eho protokolu a v pˇr´ıpad´e pr˚ ujezdu pˇres IR bal´ızu a u ´ spˇeˇsn´em dek´odov´an´ı nov´e hodnoty odes´ıl´a zkr´acenou zpr´avu o ˇc´ısle bal´ızy a stavu odometrie, protoˇze odometrie je v okamˇziku pr˚ ujezdu pˇres bal´ızu resetov´ana. Form´at datagram˚ u vymˇen ˇ ovan´ych mezi BT serverem a ˇr´ıdic´ımi moduly jsou uvedeny v tabulk´ach 4.1, 4.4 a 4.5. Podrobn´y v´yznam pˇr´ıchoz´ıch dat je dodefinov´an v tab. 4.2 a 4.3. Datagramy jsou zapouzdˇren´e do pole Data v r´amci datov´ych paket˚ u uveden´ych na obr. 4.8. byte v´yznam
0
1
2
ˇr´ıdic´ı data
0x00
poˇz. rychlost
reset
0x01
ˇr´ıdic´ıho
3 4
5 6 7
zvuk/osvˇetlen´ı
-
-
-
-
-
-
-
-
-
-
-
-
0x02
-
-
-
-
-
-
-
0x03
odometrie
bal´ıza
-
-
-
-
-
-
-
-
-
-
-
modulu inicializace ˇr´ıdic´ıho modulu pˇrednastaven´ı ˇr´ıdic´ıho modulu povolen´ı k j´ızdˇe
0x04 ano (0x01)/ne (0x00)
Tabulka 4.1: Form´ at pˇr´ıchoz´ıho datagramu od BT serveru
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
42
bit 0
1 2
3 4 5
6
7
hodnota poˇz. rychlosti
smˇer (0 - sud´y/1 - lich´y)
Tabulka 4.2: V´ yznam nastaven´ı rychlosti v pˇr´ıchoz´ıch datech
bit 0
1
2
svˇetla - svˇetla - svˇetla
3
4
5
6
7
svˇetla
zvuk
motor
hvizd
kom-
pˇredn´ı
pˇredn´ı
- zadn´ı - zadn´ı glob´alnˇe
b´ıl´a
ˇcerven´a
b´ıl´a
presor
ˇcerven´a
Tabulka 4.3: V´ yznam nastaven´ı svˇetla a zvuku v pˇr´ıchoz´ıch datech
byte 0
1
2
3
4
5
6
7
status
odome-
IR
poˇz.
nasta-
napˇet´ı
-
-
trie
bal´ıza
rychlost ven´ı
baterie
svˇetla, zvuku Tabulka 4.4: Form´ at standard. odchoz´ıho datagramu pro BT server
byte 0
1
2
3
4
5
6
7
status
odome-
IR
-
-
-
-
-
trie
bal´ıza
Tabulka 4.5: Form´ at urgentn´ıho odchoz´ıho datagramu pro BT server
4.2.4
Proces vyjedn´ an´ı spojen´ı mezi Bluetooth moduly
Pro lepˇs´ı pochopen´ı pouˇz´ıvan´ych zpr´av je tˇreba popsat zp˚ usob, jak´ym je vyjedn´av´ano spojen´ı mezi BT moduly pˇri navazov´an´ı spojen´ı. BT zaˇr´ızen´ı obecnˇe umoˇzn ˇ uj´ı pouˇz´ıt pro zabezpeˇcen´e spojen´ı tzv. proces p´arov´an´ı. V´yznamem je nav´az´an´ı zabezpeˇcen´eho spojen´ı pomoc´ı PIN k´odu pouze jednou a pouˇzit´ı vygenerovan´eho linkov´eho kl´ıˇce pro budouc´ı spojen´ı, kdy bude moˇzn´e se mezi sp´arovan´ymi BT moduly spojit automaticky,
4.2. IMPLEMENTACE HCI ROZHRAN´I PRO KOMUNIKACI S BT MODULEM 43 bez nutnosti ovˇeˇrov´an´ı pomoc´ı PIN k´odu. Tento zp˚ usob nen´ı pro komunikaci ˇr´ıdic´ıho modulu s BT serverem pouˇzit, ale je nutn´e s n´ım poˇc´ıtat i pˇri navazov´an´ım nov´eho spojen´ı. Po zapnut´ı ˇr´ıdic´ıho modulu probˇehne nejˇr´ıve inicializace BT modulu n´asleduj´ıc´ımi kroky: • HW reset pomoc´ı NRESET pinu BT modulu. V´yrobce uv´ad´ı nutnost aktivace resetu na min. 5 ms.
• SW reset pomoc´ı pˇr´ısluˇsn´eho HCI pˇr´ıkazu. Procesor si tak ovˇeˇr´ı z´akladn´ı funkˇcnost BT modulu, protoˇze mus´ı dostat odpovˇed’ v podobˇe Command Complete Event. • Zmˇena jm´ena BT modulu, kter´ym se identifikuje do okol´ı. • Nastaven´ı Event filtru na automatick´e pˇrijmut´ı spojen´ı od libovoln´eho BT zaˇr´ızen´ı. • Povolen´ı zjistitelnosti BT zaˇr´ızen´ı pomoc´ı pˇr´ıkazu Write Scan Enable. • Nastaven´ı poˇzadavku na zabezpeˇcen´e spojen´ı pomoc´ı pˇr´ıkazu Write Authentication Enable.
Inicializace vyˇzaduje potvrzov´an´ı u ´ spˇeˇsn´eho proveden´ı pˇr´ıkaz˚ u pomoc´ı ud´alosti Command Complete Event v nastaven´em ˇcasov´em limitu (500 ms). V opaˇcn´em pˇr´ıpadˇe stavov´y automat sk´aˇce zpˇet na zaˇc´atek a prov´ad´ı HW reset BT modulu. Pokud probˇehne inicializace u ´ spˇeˇsnˇe, stavov´y automat vyˇck´av´a na ud´alost Link Key Request Event, tedy na pokus o pˇr´ıchoz´ı spojen´ı ze strany BT serveru. V pˇr´ıpadˇe pˇr´ıchodu t´eto ud´alost´ı doch´az´ı k n´asleduj´ıc´ı v´ymˇenˇe pˇr´ıkaz˚ u: • IN - Link Key Request Event - pokus o spojen´ı ze strany BT serveru, spojen´ı je vˇzdy ozn´ameno dotazem na linkov´y kl´ıˇc pro MAC adresu, ze kter´e doch´az´ı k pokusu o spojen´ı. • OUT - Link Key Request Negative Reply - ˇr´ıdic´ı modul odpov´ıd´a negativnˇe, protoˇze neprov´ad´ı p´arov´an´ı s BT serverem a neukl´ad´a si proto Link Key pro dalˇs´ı pouˇrit´ı.
• IN - PIN Code Request Event - BT server se pokus´ı vytvoˇrit spojen´ı pomoc´ı definovan´eho PIN k´odu.
• OUT - PIN Code Request Reply - ˇr´ıdic´ı modul odpov´ı dohodnut´ym PIN k´odem.
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
44
• IN - Connection Complete Event - v pˇr´ıpadˇe u ´ spˇechu je spojen´ı potvrzeno ud´alost´ı Connection Complete Event, kter´a vr´at´ı hodnotu Connection Handle platnou pouze pro aktu´aln´ı relaci spojen´ı. V pˇr´ıpadˇe naruˇsen´ı tohoto procesu neoˇcek´avanou ud´alost´ı nebo vyprˇsen´ı ˇcasov´eho limitu opˇet dojde k HW resetu a opakov´an´ı cel´e procedury. Pokud se dojde k u ´ spˇeˇsn´emu spojen´ı, je zah´ajena komunikace mezi BT serverem a ˇr´ıdic´ım modulem pomoc´ı datov´ych paket˚ u smˇerovan´ych pomoc´ı MAC adresy a Connection Handle kl´ıˇce. Komunikaci m˚ uˇze naruˇsit detekce v´ypadku spojen´ı, kdy BT server neodpov´ı do ˇcasov´eho limitu (1 s). Nebo dojde k v´ypadku nap´ajen´ı a ˇr´ıdic´ı modul lokomotivy se v pˇr´ıpadˇe neobnoven´ı nap´ajen´ı ˇr´ızenˇe odpoj´ı a vypne.
4.3
Testov´ an´ı alternativn´ı odometrie
´ eˇsn´a realizace ˇr´ızen´ı rychlosti motoru pomoc´ı zpˇetnˇe generovan´eho napˇet´ı mˇelo za Uspˇ c´ıl kompletn´ı n´ahradu mˇeˇren´ı rychlosti pomoc´ı IR ˇcidla, pracuj´ıc´ıho na principu odraziv´e optoz´avory. D˚ uvodem je odstranˇen´ı nutnost´ı z´astavby ˇcidla do r´amu lokomotivy a v´yroba odraziv´ych/neodraziv´ych ploch na setrvaˇcn´ıku motoru. Tento postup se jeˇstˇe v´ıce komplikuje v pˇr´ıpadˇe model˚ u region´aln´ıch souprav, kter´e vˇetˇsinou nemaj´ı klasickou konstrukci s pˇetip´olov´ym motorem se setrvaˇcn´ıkem jako klasick´e lokomotivy. Oproti tomu mˇeˇren´ı rychlosti pomoc´ı zpˇetnˇe indukovan´eho napˇet´ı na motoru nevyˇzaduje ˇz´adnou dodateˇcnou z´astavbu do lokomotivy, protoˇze mˇeˇren´ı je prov´adˇeno pomoc´ı pˇr´ıvod˚ u napˇet´ı k motoru. Protoˇze lokomotivy nemaj´ı shodn´y pˇrevodov´y pomˇer mezi motorem a koly, je nutn´e prov´adˇet normov´an´ı pro obˇe metody mˇeˇren´ı rychlosti. Pro plnohodnotnou n´ahradu bylo tˇreba otestovat, zda je pˇresnost odometrie zaloˇzen´a na b´azi zpˇetnˇe indukovan´eho napˇet´ı na motoru srovnateln´a s odometri´ı na b´az´ı IR ˇcidla. Jako prvn´ı test bylo provedeno mˇeˇren´ı pˇrevodn´ıho pomˇeru mezi u ´ daji o rychlosti v pouˇz´ıvan´em rozsahu stˇr´ıdy sign´alu PWM, respektive v pouˇz´ıvan´em spektru ot´aˇcek. Mˇeˇren´ı pomoc´ı zpˇetnˇe indukovan´eho napˇet´ı nelze prov´adˇet do maxim´aln´ı stˇr´ıdy, protoˇze se stoupaj´ıc´ı hodnotou stˇr´ıdy se zkracuje doba, po kterou je motor ve stavu vysok´e impedance a tedy i poˇcet namˇeˇren´ych vzork˚ u za periodu. Aby bylo moˇzn´e prohl´asit mˇeˇren´ı rychlosti na b´azi zpˇetnˇe indukovan´eho napˇet´ı za ekvivaletn´ı s referenˇcn´ım mˇeˇren´ım pomoc´ı IR z´avory, je nutn´e, aby byl st´al´y pˇrevodn´ı pomˇer mezi obˇema zp˚ usoby mˇeˇren´ı
´ ´I ALTERNATIVN´I ODOMETRIE 4.3. TESTOVAN
45
v pokud moˇzno cel´em spektru ot´aˇcek. Omezen´ı mˇeˇr´ıc´ı metody na b´azi zpˇetnˇe indukovan´eho napˇet´ı nen´ı aˇz tak omezuj´ıc´ı, protoˇze rychlost j´ızdy, kdy se bl´ıˇz´ı stˇr´ıda sign´alu PWM k maxim´aln´ı hodnotˇe, je jiˇz nebezpeˇcn´a z hlediska vykolejen´ı soupravy. Mˇeˇren´ı je zaznamen´ano na obr. 4.9, pro omezen´ı zaˇsumˇen´ı jsem provedl pr˚ umˇerov´an´ı dat plovouc´ım oknem o velikosti pˇeti vzork˚ u.
Rychlost/Strida signali PWM (8 bit)
250
rychlost na bazi mereni BEMF rychlost na bazi IR cidla strida signalu PWM
200
150
100
50
0
0
100
200
300
400 Cas [s]
500
600
700
Obr´ azek 4.9: Porovn´ an´ı u ´daj˚ u o rychlosti z r˚ uzn´ ych zdroj˚ u mˇeˇren´ı
Toto mˇeˇren´ı d´av´a pouze r´amcovou pˇredstavu o poˇzadovan´e sv´azanosti mˇeˇr´ıc´ıch metod. Pro exaktn´ı porovn´an´ı je tˇreba vypoˇc´ıtat pˇrevodn´ı pomˇer mezi veliˇcinami mˇeˇren´e rychlosti v namˇeˇren´em rozsahu ot´aˇcek. Graf vypoˇcten´ych hodnot pˇrevodn´ıho pomˇeru mezi ot´aˇckami mˇeˇren´ymi nepˇr´ımo A/D pˇrevodn´ıkem a nepˇr´ımo IR z´avorou je vykreslen na obr. 4.10 spoleˇcnˇe s grafem odchylek. Hodnoty jsou vypoˇcteny z ˇcist´ych nepr˚ umˇerovan´ych dat a proloˇzeny aproximac´ı polynomem nult´eho ˇr´adu, tedy konstantou, pomoc´ı metody nejmenˇs´ıch ˇctverc˚ u. Aproximace polynomem nult´eho ˇr´adu vyˇsla konstanta pˇrevodn´ıho pomˇeru 0,3194. Pro zaj´ımavost jsem provedl i aproximaci pomoc´ı polynomu prvn´ıho ˇr´adu. V´ysledkem byla pˇr´ımka definovan´a jako y = k · x + q s parametry k = 1, 9813 · 10−7 a q = 0, 3193, tedy
t´emˇer naprosto shodn´y v´ysledek, protoˇze sklon pˇr´ımky je zanedbateln´y. Chyba odhadu na obr. 4.10 je na zaˇc´atku mˇeˇren´ı pomˇernˇe vysok´a, to je zp˚ usobeno n´ızk´ym odstupem ˇsumu
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
Prevodni pomer Rychlost IR/Rychlost BEMF
46
0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0
Prevodni pomer aprox. konstantou 0
100
200
300
400 Cas [s]
500
600
700
0
100
200
300
400 Cas [s]
500
600
700
Odchylka aproximace od mereni [%]
35 30 25 20 15 10 5 0 −5 −10 −15
Obr´azek 4.10: Pˇrevodn´ı pomˇer u ´daj˚ u o rychlosti v pr˚ ubˇehu cel´eho mˇeˇren´ı
´ ´I ALTERNATIVN´I ODOMETRIE 4.3. TESTOVAN
47
od uˇziteˇcn´e hodnoty namˇeˇren´e rychlosti pˇri j´ızdˇe malou rychlost´ı. Celkovˇe lze prohl´asit, ˇze chyba se drˇz´ı v rozmez´ı ±10%. Vzhledem k ˇcasov´ym konstant´am ˇr´ızen´e soustavy lze stlaˇcit tento ˇsum pomoc´ı softwarov´eho filtrov´an´ı.
Jako posledn´ı test jsem provedl j´ızdu po okruhu s jednou IR bal´ızou. Po kaˇzd´em pr˚ ujezdu lokomotivy pˇres bal´ızu jsem zmˇenil vys´ılan´y k´od. T´ım jsem byl schopem detekovat pr˚ ujezd jednoho okruhu a sledov´an´ım odometrie v PC jsem mˇel statistiku o zmˇeˇren´e ujet´e vzd´alenosti za kaˇzd´e kolo. Namˇeˇren´e u ´ daje jsou uvedeny v tab. 4.6. Mˇeˇren´ı je zpracov´ano obdobn´ym zp˚ usobem. Provedl jsem odhad d´elky jednoho kola aproximac´ı polynomem nult´eho ˇra´du a vyˇsetˇril jsem odchylky namˇeˇren´e d´elky od aproximace. V´ysledky jsou uvedeny na obr. 4.11 a obr. 4.12. Z mˇeˇren´ı ujet´e vzd´alenosti okruhu lze vyvodit velmi d˚ uleˇzit´e informace o pˇrevodn´ım pomˇeru odometrie na skuteˇcnou ujetou vzd´alenost, protoˇze d´elka okruhu je zn´am´a. Okruh m´a pr˚ umˇer 86,6 cm, to znamen´a obvod 272 cm. Lze tedy odvodit, ˇze vztah pro v´ypoˇcet ujet´e vzd´alenosti podle odometrie odvozen´e od IR ˇcidla je sIR = kIR · odoIR
kde kIR =
272 = 0, 0721 3771, 6
a vztah pro v´ypoˇcet ujet´e vzd´alenosti podle odometrie od sn´ım´an´ı zpˇetnˇe indukovan´eho napˇet´ı motoru je sAD = kAD · odoAD
kde kAD =
272 = 0, 0228 11940
D´ale lze dopoˇc´ıtat rozptyl hodnot ujet´e vzd´alenosti v re´aln´ych hodnot´ach vzd´alenosti. Pokud rozptyl hodnot odometrie odvozen´e od IR ˇcidla je dle grafu obr. 4.11 cca ±0, 12%, to znamen´a re´aln´y rozptyl ±(3771, 6 · 0, 0012 · kIR ) = 0, 33 cm. V pˇr´ıpadˇe odometrie
odvozen´e od mˇeˇren´ı zpˇetnˇe indukovan´eho napˇet´ı dle grafu obr. 4.12rozptyl cca ±1, 2%, to znamen´a re´aln´y rozptyl ±(11940 · 0, 012 · kIR ) = 3, 26 cm.
Odometrie na b´azi zpˇetnˇe indukovan´eho napˇet´ı vykazuje o ˇr´ad niˇzˇs´ı pˇresnost oproti
st´avaj´ıc´ımu ˇreˇsen´ı. V absolutn´ıch ˇc´ıslech to znamen´a st´ale dostaˇcuj´ıc´ı pˇresnost, protoˇze pˇri kaˇzd´em pr˚ ujezdu pˇres IR bal´ızu dojde ke kalibraci a mˇeˇren´ı tedy prob´ıh´a relativnˇe oproti posledn´ı projet´e IR bal´ıze. Bal´ızy jsou od sebe v kolejiˇsti vzd´aleny v rozmez´ı od jednoho do ˇctyˇr metr˚ u, podle sloˇzitosti infrastruktury (tedy hustˇs´ı pokryt´ı v problematick´ych u ´ sec´ıch), to znamen´a, ˇze ve stanic´ıch, kde bude tˇreba zastavovat s vysokou pˇresnost´ı bude ujet´a vzd´alenost bezpeˇcnˇe niˇzˇs´ı, neˇz je d´elka testovac´ıho okruhu a pˇresnost bude tedy minim´alnˇe stejn´a nebo lepˇs´ı neˇz vypoˇcten´ych ±3, 26 cm.
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
Odchylka aprox. od mereni [%]
Namerena delka IR odometrii
48
3776 3774 3772 3770 Namerena delka aprox. konstantou
3768 3766
0
2
4
6 Cislo kola
8
10
12
0
2
4
6 Cislo kola
8
10
12
0.15 0.1 0.05 0 −0.05 −0.1
4
1.21
x 10
1.2 1.19 1.18 1.17
Odchylka aprox. od mereni [%]
Namerena delka BEMF odometrii
Obr´ azek 4.11: Mˇeˇren´ı d´elky okruhu pomoc´ı odometrie na b´ azi IR ˇcidla
Namerena delka aprox. konstantou 0
2
4
6 Cislo kola
8
10
12
0
2
4
6 Cislo kola
8
10
12
2 1 0 −1 −2
Obr´ azek 4.12: Mˇeˇren´ı d´elky okruhu pomoc´ı odometrie na b´ azi BEMF
´ ´I ALTERNATIVN´I ODOMETRIE 4.3. TESTOVAN
kolo ˇc.
namˇeˇren´a hodnota z odometrie
namˇeˇren´a hodnota z odometrie
na b´azi IR ˇcidla
na b´azi BEMF
1
3767
12041
2
3774
12026
3
3772
11965
4
3770
12009
5
3775
11959
6
3771
11973
7
3770
11983
8
3773
11859
9
3773
11940
10
3773
11761
11
3770
11828
Tabulka 4.6: Namˇeˇren´e d´elky okruh˚ u pomoc´ı odometrie ˇr´ıdic´ıho modulu
49
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
50
4.4
Dodateˇ cnˇ e pˇ ridan´ e funkce
Bˇehem v´yvoje modulu bylo implementov´ano nˇekolik drobn´ych funkc´ı ˇr´ıdic´ıho modulu, kter´e vˇetˇsinou vyplynuly z novˇe pouˇzit´ych funkˇcn´ıch prvk˚ u, nebo z drobn´ych zmˇen v poˇzadavc´ıch na modul. Byla pˇripojena baterie na jeden z multiplexovan´ych vstup˚ u AD pˇrevodn´ıku procesoru, aby bylo moˇznˇe sledovat aktu´aln´ı napˇet´ı na baterii z d˚ uvodu ochrany pˇred podpˇet´ım zp˚ usoben´ym vybit´ım, ale tak´e z d˚ uvodu sledovan´ı ˇzivotnosti baterie. Baterie je pˇripojena k procesoru pomoc´ı odporov´eho dˇeliˇce napˇet´ı, aby rozsah vstupn´ıho napˇet´ı na procesoru byl v rozmez´ı 0 V aˇz Uref = 3, 3 V. Dˇeliˇc zatˇeˇzuje baterii odporem 200 kΩ, to znamen´a pˇri nomin´aln´ı hodnotˇe napˇet´ı na baterii 3.7 V snesiteln´y st´al´y odbˇer proudu 18,5 µA. Pro detekci polarity nap´ajen´ı v kolej´ıch bylo dˇr´ıve vyuˇz´ıv´ano optoˇclenu, kter´y byl zapojen spoleˇcnˇe s omezovac´ı diodou na sbˇeraˇce lokomotivy. Optoˇclen pak v pˇr´ıpadˇe kladnˇe polarizovan´e diody st´ahnul na sv´em v´ystupu u ´ roveˇ n napˇet´ı na logickou nulu, v pˇr´ıpadˇe z´avˇernˇe polarizovan´e vstupn´ı diody byl v´ystup fixov´an pull-up odporem na u ´ roveˇ n logick´e jedniˇcky. Novˇe je polarita zjiˇst’ov´ana pomoc´ı kombinace dvou odpor˚ u a jedn´e diody. V´yˇrez ze schematu je vykreslen na obr. 4.13. Pokud je na sbˇeraˇci kladn´a polarita napˇet´ı, je dioda D5 polarizov´ana z´avˇernˇe a na vstupu procesoru je vnuceno napˇet´ı 3,3 V pomoc´ı pull-up odporu R1. Pokud je na sbˇeraˇci opaˇcn´a, je na sbˇeraˇci pˇred diodou z´aporn´e napˇet´ı v˚ uˇci zemi, protoˇze doch´az´ı k posuvu napˇet´ı zemˇe na diodˇe gretzova m˚ ustku. Protoˇze pˇrechodov´y odpor diody D5 nen´ı shodn´y s pˇrechodov´ym odporem diod v gretzov´e m˚ ustku, je zaˇrazen do obvodu jeˇstˇe odpor R2, aby nedoch´azelo k zatˇeˇzov´an´ı vstupu ˇ sen´ı pˇrineslo drobnou u procesrou napˇet´ım niˇzˇs´ım, neˇz je jeho potenci´al zemˇe. Reˇ ´ sporu m´ısta pˇredevˇs´ım z hlediska v´yˇsky nad povrchem tiˇstˇen´eho spoje, protoˇze bˇeˇznˇe dostupn´e ˇ sen´ı pˇrineslo pouze jednu optoˇcleny jsou vˇetˇsinou v pomˇernˇe robustn´ıch pouzdrech. Reˇ drobnou komplikaci v podobˇe nutnosti SW filtrace detekovan´eho nap´ajen´ı, protoˇze doba odbuzen´ı optoˇclenu pˇrirozenˇe filtrovala v´ypadky sign´alu pˇri j´ızdˇe po ˇspinav´ych kolej´ıch. Novˇe pouˇzit´y procesor AT91SAM7S dovoluje proveden´ı SW resetu pomoc´ı registru RSTC CR (Reset Controller Control Register), nen´ı jiˇz nutn´e prov´adˇet pˇrednastaven´ı watchdog ˇcasovaˇce v kombinaci s ˇr´ızen´ym zacyklen´ım programu za u ´ˇcelem proveden´ı resetu procesoru.
´ 4.5. ZASTAVBA MODULU DO LOKOMOTIVY
51
Obr´ azek 4.13: Schema detekce polarity nap´ ajen´ı v kolej´ıch
4.5
Z´ astavba modulu do lokomotivy
Fin´aln´ı prac´ı na zprovoznˇen´ı ˇr´ıdic´ıho modulu byla z´astavba do vlastn´ıch modelov´ych ˇ lokomotiv. Pro ilustraci byla zdokumentov´ana fin´aln´ı z´astavba do lokomotivy CSD 754 028-9, kter´a byla jednou z nejm´enˇe prostorn´ych lokomotiv pro c´ılovou z´astavbu. Lokomotivy urˇcen´e pro z´astavbu byly pˇrev´aˇznˇe od rakousk´e firmy Roco. Prvn´ım krokem pˇred kaˇzdou z´astavbou bylo kompletn´ı odstrojen´ı kovov´eho tˇela lokomotivy, aby bylo moˇzn´e bezpeˇcnˇe, bez poˇskozen´ı podvozk˚ u a dalˇs´ıch plastov´ych ˇc´ast´ı zas´ahnout do tˇela lokomotivy. Jednalo se pˇredevˇs´ım o vrt´an´ı do prostoru mezi podvozky lokomotivy pro vytvoˇren´ı m´ısta pro sn´ımaˇc IR bal´ız. D´ale bylo tˇreba fr´ezovac´ım n´astavcem vyhloubit ˇzlab pro veden´ı kabel´aˇze od sn´ımaˇce kolem motoru na sdruˇzen´y propojovac´ı konektor. Uk´azka pˇredpˇripraven´eho tˇela lokomotivy se zpˇetnˇe osazen´ymi podvozky je na obr. 4.14. ˇ Tˇelo lokomotivy patˇr´ı obdobn´emu typu lokomotivy (CSD 753 193-2) se zcela shodnou
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
52 z´astavbou.
Obr´ azek 4.14: Tˇelo lokomotivy po odvrt´ an´ı a odfr´ezov´ an´ı
Po mechanick´em z´asahu do tˇela lokomotivy byla provedeno z´astavba sn´ımaˇce IR bal´ız na mal´y odˇrezek univerz´aln´ıho tiˇstˇen´eho spoje. N´asledn´e bylo provedeno nastrojen´ı tˇela lokomotivy podvozky a motorem. Tˇelo lokomotivy osazen´e sn´ımaˇcem je zdokumentov´ano na obr. 4.15. Kaˇzd´a lokomotiva mˇela mezi podvozky plastov´y pˇrekryt modeluj´ıc´ı kontejner re´aln´e v´yzbroje, do kter´eho byl vyvrt´an pouze pr˚ uzor pro sn´ımaˇc, takˇze nebyl naruˇsen vzhled lokomotivy.
Obr´azek 4.15: Pohlez zespodu na sn´ımaˇc IR bal´ız bez plastov´eho pˇrekrytu
V z´asadˇe byla ve vnitˇrn´ım prostoru zanech´ana p˚ uvodn´ı z´astavba svˇetel, kter´e jsou
´ 4.5. ZASTAVBA MODULU DO LOKOMOTIVY
53
situov´any do m´ıst svˇetlovod˚ u um´ıstˇen´ych na kapot´ach lokomotiv. P˚ uvodn´ı tiˇstˇen´e spoje s diodami byly zbaveny p˚ uvodn´ı kabel´aˇze, pokud byly v lokomotivˇe pouˇzity ˇz´arovky, byly osazeny na univerz´aln´ı tiˇstˇen´e spoje. N´aslednˇe bylo provedena rozvaha rozm´ıstˇen´ı tiˇstˇen´eho spoje ˇr´ıdic´ıho modulu, reproduktoru a z´aloˇzn´ı baterie. Kabel´aˇz byla rozmˇeˇrena pˇresnˇe na m´ıru a zap´ajena na sv´e m´ısto. Takto nazbrojen´e tˇelo lokomotivy je zdokumentov´ano na obr. 4.16.
Obr´ azek 4.16: Hotov´ a z´ astavba kabel´ aˇze bez pˇripojen´eho ˇr´ıdic´ıho modulu
U takto nazbrojen´ych lokomotiv byla provedena kontrola funkˇcnostni kabel´aˇze. Pro u ´ plnost je uvedena jeˇstˇe fotodokumentace s osazen´ym ˇr´ıdic´ım modulem (viz. obr. 4.17). Obr´azek je opatˇren struˇcn´ymi popisky hlavn´ıch blok˚ u ˇr´ıdic´ıho modulu. Pro podrobn´y popis je tˇreba nahl´ednout do v´yrobn´ı dokumentace na pˇriloˇzen´em CD. Pˇredposledn´ı obr´azek je pohled z boku, kdy byla provedena fotomont´aˇz sn´ımku odkapotovan´e a zakapotovan´e lokomotivy pro pˇredstavu o vnitˇrn´ıch n´aroc´ıch na minim´aln´ı rozmˇery ˇr´ıdic´ıho modulu pˇredevˇs´ım ve smˇeru ke stropu papoty (viz. obr. 4.18). Omezen´ı na v´yˇsku je tak´e patrn´e z profilu vertik´alnˇe zasazen´ych tiˇstˇen´ych spoj˚ u s diodou pro ˇceln´ı sv´ıtilny. Na posledn´ım obr´azku (obr. 4.19) je zprovoznˇen´a lokomotiva s modulem. V´ysledek je pro laika k nerozezn´an´ı od p˚ uvodn´ıho stavu pˇred z´astavbou elektroniky vlastn´ı v´yroby.
54
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
Obr´ azek 4.17: Hotov´ a z´ astavba s osazen´ ym ˇr´ıdic´ım modulem
Obr´ azek 4.18: Pohled z boku - sloˇzen´ı fotografie s a bez kapoty
´ 4.5. ZASTAVBA MODULU DO LOKOMOTIVY
Obr´ azek 4.19: Fin´ aln´ı sestava lokomotivy s rozsv´ıcen´ ymi hlavn´ımi svˇetly
55
56
´ ˇ ´IDIC´IHO MODULU KAPITOLA 4. REALIZACE NOVEHO R
Kapitola 5 Z´ avˇ er
Diplomov´a pr´ace pˇrinesla po hardwarov´e str´ance fin´aln´ı ˇreˇsen´ı ˇr´ıdic´ıho modulu, kter´y je schopen spolehlivˇe ˇr´ıdit stejnosmˇern´y motor lokomotivy za pomoci mˇeˇren´ı zpˇetnˇe indukovan´eho napˇet´ı na motoru, obousmˇernˇe komunikovat pomoc´ı bezdr´atov´e technologie Bluetooth a standardn´ıho komunikaˇcn´ıho rozhran´ı HCI, sb´ırat informace o IR znaˇck´ach rozprostˇren´ych v infrastruktuˇre, sb´ırat informace o ujet´e vzd´alenosti pomoc´ı integrace, respektive sumace informace o rychlosti za ekvidistantn´ı ˇcasov´e u ´ seky a generovat zvukovou kulisu v podobˇe emulace sir´eny a motoru lokomotivy. Drobn´e nedostatky ˇreˇsen´ı jsou v´yhradnˇe softwarov´eho charakteru a vyˇzaduj´ı dlouhodobˇejˇs´ı testov´an´ı v re´aln´ych podm´ınk´ach provozu dopravn´ı laboratoˇre. V u ´ vodu je uvedena motivace projektu, pˇrednesen´ı nedostatk˚ u souˇcasn´eho stavu v´yvoje ˇr´ıdic´ıho modulu a n´avrh na zp˚ usob ˇreˇsen´ı tˇechto nedostatk˚ u spoleˇcnˇe s poˇzadovanou novou funkˇcnost´ı. Konkr´etnˇejˇs´ı zp˚ usob ˇreˇsen´ı bylo tˇreba nejdˇr´ıve podloˇzit anal´yzou pozmˇenˇen´ych poˇzadavk˚ u na modul a vzhledem k z´amˇeru integrace zvukov´eho modulu zv´aˇzit v´ykonovou n´aroˇcnost. Tato anal´yza je provedena v podkap. 2.1. Anal´yza byla celkovˇe c´ılena na 32 bitov´e platformy s v´ykonem cca 50 MIPS a jej´ım v´ysledkem bylo pouˇzit´ı platformy s j´adrem ARMv7TDMI, konkr´etnˇe jeho implementace od firmy Atmel v podobˇe AT91SAM7S. Na tuto platformu byl migrov´an dosavadn´ı k´od a byla ovˇeˇrena p˚ uvodn´ı funkˇcnost s pomoc´ı v´yvojov´e desky AT91SAM7X-EK. Po ovˇeˇren´ı splnˇen´ı p˚ uvodn´ı funkˇcnosti bylo pˇristoupeno k experiment˚ um se zvukov´ym modulem. Bylo tˇreba z´ıskat z´akladn´ı pˇredstavu o zp˚ usobu m´ıch´an´ı v´ıce zvukov´ych stop audio sign´alu do spoleˇcn´eho v´ystupu, o principu modelov´an´ı zvuku motor˚ u obecnˇe. D´ale bylo tˇreba navrhnout zp˚ usob, jak´ym bude procesor generovat audio sign´al a vybrat vhodn´y v´ykonov´y koncov´y stupeˇ n. Po splnˇen´ı tˇechto u ´ kol˚ uau ´ spˇeˇsn´em zprovoznˇen´ı to57
´ ER ˇ KAPITOLA 5. ZAV
58
hoto bloku bylo testov´ano vybaven´ı procesoru extern´ı pamˇet´ı typu Data Flash, kter´a mˇela vylouˇcit nutnost pouˇzit´ı procesoru s velkou intern´ı pamˇet´ı (modely s 256 kB a 512 kB flash pamˇeti). Moˇznost pouˇzit´ı extern´ı pamˇeti z˚ ustala zachov´ana jako voliteln´a (je moˇzn´e ji osadit na fin´aln´ı verzi ˇr´ıdic´ıho modulu), protoˇze se podaˇrilo z´ıskat dostateˇcn´e mnoˇzstv´ı procesoru typu AT91SAM7S256 s 256 kB pamˇeti, kter´a doposud pokr´yvala pamˇet’ov´e n´aroky na zvukov´y modul. V kap. 4 je pops´an postup celkov´e realizace ˇreˇsen´ı do kompaktn´ı podoby pouˇziteln´e v modelov´ych lokomotiv´ach. Hlavn´ım u ´ skal´ım bylo pouˇzit´ı modern´ıch souˇc´astek v pouzdrech typu QFN, kter´e ˇsetˇr´ı m´ısto na ploˇsn´em spoji, ale vyˇzaduj´ı odliˇsn´y postup osazov´an´ı oproti souˇc´astk´am s klasick´ymi v´yvody z pouzdra. Nejobt´ıˇznˇejˇs´ı bylo osazen´ı Bluetooth modulu WML-C40A od firmy BlueRadios. Tyto moduly byly osazov´any na specializovan´em pracoviˇsti Katedry elektrotechnologie, protoˇze jejich radiov´a ˇc´ast vyˇzadovala dokonal´e spojen´ı se zemn´ım potenci´alem. To bylo vzhledem ke konstrukci modulu nemoˇzn´e realizovat pomoc´ı dostupn´eho vybaven´ı a prototypy osazen´e pomoc´ı horkozduˇsn´e stanice a p´ajec´ı pasty vykazovali v´yraznˇe horˇs´ı sign´alovou citlivost a dosah, protoˇze nebylo fizcky moˇzn´e dostateˇcnˇe kvalitnˇe uzemnit ploˇsky ˇc. 25 a 27, nach´azej´ıc´ı se v bl´ızkosti keramick´e ant´eny BT modulu. D´ale byla implementov´ana fin´aln´ı verze komunikace pomoc´ı modul˚ u WML-C40A za pomoci standardizovan´eho rozhran´ı HCI (Host Command Interface). Doposud byly z testovac´ıch d˚ uvod˚ u vyuˇz´ıv´any pˇreprogramovan´e USB moduly od firmy Acer, postaven´e na chipsetu CSR (BCR417), kter´e replikovaly transparetn´ı seriovou linku mezi dvˇema moduly. To podstatnˇe zjednoduˇsovalo ladˇen´ı a v´yvoj ˇr´ıdic´ıho modulu v rann´e f´azi v´yvoje a j´ızdn´ıch zkouˇsek, protoˇze nebylo nutn´e disponovat Bluetooth serverem a CAN rozhran´ım, po kter´em tento server komunikuje. Bylo rozhodnuto pro fin´aln´ı ˇreˇsen´ı sn´ım´an´ı ot´aˇcek motoru pouze pomoc´ı mˇeˇren´ı zpˇetnˇe indukovan´eho napˇet´ı, protoˇze bylo prok´az´ano, ˇze regulace rychlosti j´ızdy je moˇzn´a a n´asledn´a odvozen´a odometrie poskytuje niˇzˇs´ı, ale pˇresto dostateˇcnou pˇresnost pro c´ılov´e pouˇzit´ı. V´yhodou tohoto ˇreˇsen´ı je podstatn´e zjednoduˇsen´ı z´astaveb ˇr´ıdic´ıho modulu do modelov´ych lokomotiv a souprav. Pro z´alohov´an´ı nap´ajen´ı bylo rozhodnuto pouˇz´ıt Li-Ion baterii, kter´a poskytuje nesrovnatelnˇe vˇetˇs´ı vytrvalost provozu pˇri v´ypadku nap´ajen´ı oproti navrhovan´emu ˇreˇseni se superkapacitorem. Celkovˇe byla realizace modulu souborem pomˇernˇe velk´eho mnoˇzstv´ı d´ılˇc´ıch probl´em˚ u, kter´e bylo tˇreba vyˇreˇsit a spojit v jeden kompaktn´ı a funkˇcn´ı celek. Bˇehem dlouhodob´e pr´ace na projektu dopravn´ıho s´alu Fakulty dopravn´ı, respektive na t´eto konkr´etn´ı ˇc´asti
59 jsem z´ıskal velk´e mnoˇzstv´ı zkuˇsenost´ı z oblasti n´avrhu elektronick´ych obvod˚ u, jejich dimenzovan´ı, n´avrhu ploˇsn´ych spoj˚ u a v´yvoj aplikac´ı na r˚ uzn´ych jednoˇcipov´ych platform´ach. S odstupem se uk´azalo, ˇze zvl´aˇstˇe palˇciv´ym probl´ememe v oblasti n´avrhu vlastn´ı elektroniky je nest´alost dostupnosti komponent a rychlost, jakou nˇekter´e komponenty zastar´avaj´ı a st´avaj´ı se nedostupn´ymi. Velk´ym pokrokem bylo nasazen´ı modern´ıch souˇca´stek v miniaturn´ıch pouzdrech, kter´e umoˇznili realizovat v´yraznˇe pokroˇcilou funkˇcnost pˇri zachov´an´ı rozmˇer˚ u ploˇsn´eho spoje.
60
´ ER ˇ KAPITOLA 5. ZAV
Literatura Bluetooth SIG (2001), Specification of the Bluetooth System ver. 1.1, Bluetooth.org Hagen, R. (2002), ‘Deciphering and understanding the .sms files in msts’, http://www. msts.steam4me.net/tutorials/sms_doku.html. ´ , M. (2006), Diplomov´a pr´ Hajny ace – Zvukov´y funkˇcn´ı blok pro vozidlov´e simul´atory, ˇ CVUT Praha ˇ ızen´ı modelu lokomotivy, CVUT ˇ ¨ nig, M. (2008), Bakal´aˇrsk´a pr´ Ho ace – R´ Praha ˇ ¨ nig, M. (2009), Semestr´aln´ı pr´ Ho ace – Modelov´ a lokomotiva - LQ regulace, CVUT Praha Lundgren, A. (2009), ‘Choosing between an arm7 and a cortex-m3 processor’, http://www.edn.com/article/459352-Choosing_between_an_ARM7_and_a_ Cortex_M3_processor.php. c Maxim (2005), MAX5460-MAX5468 32-Tap FleaPoT , 2-Wire Digital Potentiometers.
Microchip (2007), MCP73811/MCP73812 Datasheet. Mitchell, M. (2000), MSP430 - Using PWM Timer B as a DAC, Texas Instrumenst ˇ ızen´ı modelu lokomotivy, CVUT ˇ Pavliˇ sta, D. (2007), Bakal´aˇrsk´a pr´ ace – R´ Praha ST Microelectronic (2005), TDA7233/TDA7233D Datasheet. Texas Instruments (2009a), TPS2556/TPS2557 Datasheet. Texas Instruments (2009b), TPS6211x Datasheet. Texas Instruments (2010), TPS63020/TPS63021 Datasheet.
61
62
LITERATURA
Pˇ r´ıloha A Kompletn´ı elektrick´ e schema ˇ r´ıdic´ıho modulu
I
II
ˇ ´ILOHA A. KOMPLETN´I ELEKTRICKE ´ SCHEMA R ˇ ´IDIC´IHO MODULU PR
Obr´ azek A.1: Schema zdrojov´e ˇc´ asti ˇr´ıdic´ıho modulu - ˇc´ ast 1
III
Obr´ azek A.2: Schema zdrojov´e ˇc´ asti ˇr´ıdic´ıho modulu - ˇc´ ast 2
IV
ˇ ´ILOHA A. KOMPLETN´I ELEKTRICKE ´ SCHEMA R ˇ ´IDIC´IHO MODULU PR
Obr´ azek A.3: Schema procesorov´e ˇc´ asti ˇr´ıdic´ıho modulu - ˇc´ ast 1
V
Obr´ azek A.4: Schema procesorov´e ˇc´ asti ˇr´ıdic´ıho modulu - ˇc´ ast 2
VI
ˇ ´ILOHA A. KOMPLETN´I ELEKTRICKE ´ SCHEMA R ˇ ´IDIC´IHO MODULU PR
Obr´ azek A.5: Schema motorov´e bud´ıc´ı ˇc´ asti ˇr´ıdic´ıho modulu - ˇc´ ast 1
VII
Obr´ azek A.6: Schema motorov´e bud´ıc´ı ˇc´ asti ˇr´ıdic´ıho modulu - ˇc´ ast 2
VIII
ˇ ´ILOHA A. KOMPLETN´I ELEKTRICKE ´ SCHEMA R ˇ ´IDIC´IHO MODULU PR
Obr´ azek A.7: Schema procesorov´e ˇc´ asti ˇr´ıdic´ıho modulu - ˇc´ ast 3
Pˇ r´ıloha B Seznam pouˇ zit´ eho software
• Adobe Acrobat Reader - prohl´ıˇzen´ı soubor˚ u .pdf, export obr´azk˚ u z .pdf • CAN Analyser - vyˇc´ıt´an´ı dat z Bluetooth serveru bˇehem testov´an´ı komunikace s ˇr´ıdic´ım modulem
• Gerbv - kontrola vygenerovan´ych v´yrobn´ıch dat proˇsn´ych spoj˚ u • GhostScript, GhostView - prohl´ıˇzen´ı soubor˚ u form´atu .ps a jejich konverze do .pdf • Mathworks Matlab 2008b - experimentov´an´ı se zvukov´ymi modely, generov´an´ı graf˚ u z namˇeˇren´ych hodnot
• MikTeX 2.8 - pˇrekladaˇc zdrojov´eho k´odu LATEX • Open Office 3.2 - tvorba a pˇrevod obr´azk˚ u do form´atu .eps • OrCAD 16 - n´avrh elektrick´ych schemat a ploˇsn´ych spoj˚ u • Rowley CrossStudio 2 for ARM - v´yvoj SW pro mikroprocesory s j´adrem ARMx • TeXnicCenter - editor zdrojov´eho k´odu pro LATEX
IX
X
ˇ ´ILOHA B. SEZNAM POUZIT ˇ EHO ´ PR SOFTWARE
Pˇ r´ıloha C Obsah pˇ riloˇ zen´ eho CD K t´eto pr´aci je pˇriloˇzeno CD, na kter´em jsou uloˇzeny zdrojov´e k´ody a z´aznamy z mˇeˇren´ı. • Firmware: Obsahuje tˇri podadres´aˇre s projekty Rowley CrossStudio pro r˚ uzn´e verze vznikl´ych prototyp˚ u ˇr´ıdic´ıho modulu
• Mˇeˇren´ı: Zdrojov´a data s namˇeˇren´ymi hodnotami, Matlab skripty generuj´ıc´ı grafy z dat
• Software: Volnˇe dostupn´e verze software nutn´e pro zobrazen´ı nˇekter´ych pˇriloˇzen´ych podklad˚ u
• V´yrobn´ı dokumentace: V´yrobn´ı podklady pro tiˇstˇen´e spoje ˇr´ıdic´ıho modulu • Zvukov´y model: zvukov´e vzorky a Matlab skripty pouˇzit´e pˇri rekonstrukci zvukov´eho modulu a jeho simulaci
XI