Skip to content

Commit 7712ef3

Browse files
committed
Tweaks after Honza's full proof-reading.
1 parent 7efb2ad commit 7712ef3

9 files changed

+69
-66
lines changed

existujici-reseni.tex

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
Nyní představíme v~současnosti nejrozšířenější systémy pro \textit{digitální}
1+
Nyní představíme v~současnosti nejrozšířenější standardy pro \textit{digitální}
22
řízení modelové železnice. Prozkoumáme zařízení, která tyto standardy
33
podporují, a~zhodnotíme jejich vlastnosti. Bude vyhodnoceno, jestli zařízení
44
naplňují požadavky definované v~předchozí kapitole.
55

66
\section{Digital Command Control} \label{sec:dcc}
77

88
\textit{Digital Command control} (\gls{dcc}) je celosvětově nejrozšířenější
9-
systém pro \textit{digitální}\footnote{\textit{Digitální} znamená, že mezi
9+
standard pro \textit{digitální}\footnote{\textit{Digitální} znamená, že mezi
1010
jednotlivými prvky řízení proudí digitální data.} řízení modelové železnice
1111
\cite{dcc_systems:web}. K~\gls{dcc} existují alternativy, které však v~Evropě
1212
nejsou rozšířené, proto je nebudeme uvažovat.\footnote{Toto
@@ -17,7 +17,7 @@ \section{Digital Command Control} \label{sec:dcc}
1717
způsob zapojení vodičů pod kolejištěm) až po komunikační protokoly. \gls{dcc}
1818
je otevřený standard vytvořený organizací \textit{National Model Railroad
1919
Association} (\gls{nmra}), která sdružuje modelářské kluby (a~tedy i~modeláře),
20-
které jsou přímými uživateli systému \gls{dcc}. Systém \gls{dcc} je tedy
20+
jež jsou přímými uživateli \gls{dcc}. Standard \gls{dcc} je tedy
2121
navržen modeláři k~naplnění potřeb modelářů.
2222

2323
Jednotlivé prvky systému \gls{dcc} jsou znázorněny v~\ref{fig:dcc-overview}.
@@ -46,7 +46,7 @@ \section{Digital Command Control} \label{sec:dcc}
4646

4747
Ke sběrnici ovladačů jsou připojené buď fyzické ovladače, nebo počítače.
4848
Operátor provozu zadává příkazy, například otočením kolečka ovladače nebo
49-
interakcí s~příslušným software, tyto příkazy jsou přeposlány do centrály,
49+
interakcí s~příslušným softwarem, tyto příkazy jsou přeposlány do centrály,
5050
centrála je dále přeposílá dekodérům, které přímo vykonávají požadované akce.
5151

5252
Na \textit{sběrnici zpětného hlášení} jsou připojeny moduly s~digitálními vstupy,
@@ -89,13 +89,13 @@ \section{Digital Command Control} \label{sec:dcc}
8989
a~pro sběr informací z~kolejiště jsou použity 2~různé sběrnice: \textit{dcc
9090
signál} a~\textit{sběrnice zpětného hlášení}. Platí totiž, že signál \gls{dcc}
9191
je pouze jednosměrný. Signál putuje z~\gls{dcc} centrály přes
92-
\textit{zesilovače} a přes koleje do lokomotiv a~vozů, které poveluje.
92+
\textit{zesilovače} a přes koleje do lokomotiv, vozů a~statických dekodérů, které poveluje.
9393
Existují jen velice omezené prostředky k~poslání dat z~lokomotivy zpět do
9494
\gls{dcc} centrály\footnote{Takovému systému říkáme \textit{RailCom}
9595
\cite{railcom:web}.}. Tyto prostředky navíc vznikly až v~pozdějších verzích
9696
normy \gls{dcc}, takže dnes nejsou všeobecně zaužívané \cite{railcom:web}.
97-
Sběrnice \gls{dcc} je tedy prakticky vzato jednosměrná, dokonce bez odpovědí
98-
dekodérů na příkazy
97+
Sběrnice \gls{dcc} je tedy prakticky vzato jednosměrná bez odpovědí
98+
dekodérů na příkazy.
9999

100100
To znamená, že centrála musí DCC příkazy posílat opakovaně, aby zaručila, že je
101101
dekodér skutečně přijme. Může se totiž snadno stát, že lokomotiva zrovna není
@@ -150,7 +150,7 @@ \section{Digital Command Control} \label{sec:dcc}
150150
aby strojvedoucí viděl správnou návěst, protože nesprávná návěst
151151
by mu mohla povolit jízdu, přestože se například proti němu blíží vlak. Nebo
152152
by například mohla povolit jízdu vyšší rychlostí, než jaká je v~daném
153-
úseku předepsaná a~vlak by pak nemusel stihnout později zabrzdit. Proto se
153+
úseku předepsaná, a~vlak by později nemusel stihnout zabrzdit. Proto se
154154
na skutečné železnici kontroluje, že světly návěstidel, která mají být
155155
rozsvícená, skutečně prochází proud.}
156156

@@ -209,7 +209,7 @@ \subsubsection{\textbf{RSbus}}
209209
\textit{RSbus} je sběrnice firmy \textit{Lenz Elektronik}. Oproti \textit{S88}
210210
je organizována do topologie sběrnice (viz obr. \ref{fig:rs-topology}). Jednotlivé
211211
moduly jsou napájeny samostatně, sběrnice je dimenzovaná až na 128 modulů,
212-
každý s~8 digitálními vstupy \cite{rs:web} \cite{rs_lib:web}.
212+
každý s~8~digitálními vstupy \cite{rs:web} \cite{rs_lib:web}.
213213

214214
\begin{figure}[ht!]
215215
\includegraphics[width=\textwidth]{data/rs.pdf}
@@ -289,21 +289,21 @@ \section{Závěr}
289289
modelové železnice. Bylo zkoumáno, jestli komerční produkty splní požadavky
290290
definované v~\ref{subsec:gen_requirements}. Po vyloučení technicky
291291
nezpůsobilých řešení zbyly sběrnice LocoNET (s~poznámkou,
292-
že její nasazení by bylo finančně náročné a~pracné) a \textit{\gls{bidib}}.
292+
že její nasazení by bylo finančně náročné a~pracné) a \gls{bidib}.
293293

294294
Při uvažování sběrnice LocoNET vyvstal problém s~integrací ovládání
295295
návěstidel. Tento problém je obecnějšího rázu – jakékoliv komerční řešení není
296-
schopné nabídnout takovou flexibilitu, jakou bychom v~\gls{kmz} potřebovali.
296+
schopné nabídnout takovou flexibilitu, jakou \gls{kmz} potřebuje.
297297
Je nutné integrovat systém řízení kolejiště se současnými periferiemi, ale
298298
i~s~periferiemi budoucími. Je chtěné mít možnost pružně reagovat na nové
299299
periferie, které se objeví například za 10 let.
300300

301-
Uvažme také aspekt zpětné kompatibility – vlastní systém nám umožní co možná
301+
Uvažme také aspekt zpětné kompatibility – vlastní systém umožní co možná
302302
nejrozumněji zachovat kompatibilitu se stávajícím systémem řízení kolejiště
303303
a~minimalizovat tak finanční náklady a čas nutný pro aktualizaci systému.
304304
Nutnost rozumné zpětné kompatibility tak fakticky vylučuje i~nasazení
305305
\gls{bidib}.
306306

307307
Vnímejme tuto kapitolu tedy především jako přehled technologií, které se
308-
při řízení současné digitální modelové železnice používají. Přistupme
308+
pro řízení současné digitální modelové železnice používají. Přistupme
309309
k~návrhu nástupce současného systému \gls{mtb} výrobou vlastních komponent.

mtb-2-avr.tex

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
\newpage
22
\section{MTB-2-AVR} \label{sec:mtb-2-avr}
33

4-
Aby nebylo nutné všechny současné \gls{mtbuni} desky vyměňovat za desky nové,
5-
je třeba současné desky povýšit tak, aby podporovaly nový protokol \gls{mtbbus} v4.
6-
Kvůli omezenosti procesoru v~současných modulech \gls{mtbuni} není možné tuto
4+
Aby nebylo nutné všechny současné \gls{mtbuni} moduly vyměnit za moduly nové,
5+
je třeba současné moduly povýšit tak, aby podporovaly nový protokol \gls{mtbbus} v4.
6+
Kvůli omezenosti procesoru v~současných \gls{mtbuni} není možné tuto
77
úpravu provést pouze změnou firmwaru, viz \ref{sec:mtb_fail}.
88

9-
Výhodou je, že procesory na současných \gls{mtbuni} modulech jsou
9+
Procesory v~současných \gls{mtbuni} modulech jsou
1010
v~\gls{dil} patici. Nabízí se tedy přirozená cesta najít nový procesor
1111
odpovídajícího rozložení pinů. Procesor, který by měl vyhovující rozložení pinů
12-
a požadované parametry, bohužel neexistuje (uvažován byl například procesor
12+
a požadované parametry, bohužel neexistuje (uvažován byl například
1313
\textit{ATtiny4313}). Proto se autor této práce vydal cestou výroby nástavné
1414
desky, která se zasune do \gls{dil} patice současné \gls{mtbuni} desky
1515
a~která na sobě bude mít \gls{smd} procesor.
@@ -33,7 +33,7 @@ \section{MTB-2-AVR} \label{sec:mtb-2-avr}
3333
\gls{mtbuni}, MTB-UNIm nebo MTB-TTL. Srdcem desky je procesor
3434
\textit{ATmega328p} autorovy oblíbené architektury \textit{AVR}.
3535
Konkrétně tento model byl zvolen, protože obsahuje dostatečnou kapacitu paměti
36-
na bootloader a protože jej \textit{JLCPCB} má mezi \textit{basic} součástkami
36+
pro bootloader a~protože jej \textit{JLCPCB} má mezi \textit{basic} součástkami
3737
(viz \ref{subsec:mtbusb:hardware}).
3838

3939
Schéma a \gls{dps} jsou vyvinuty jako openhardware projekt, dostupné
@@ -45,12 +45,13 @@ \section{MTB-2-AVR} \label{sec:mtb-2-avr}
4545
obsahuje tlačítko (pro unifikaci hardwaru všech \gls{mtbuni} modulů).
4646

4747
Jak již bylo zmíněno, nástavná deska se osazuje do patic současných
48-
\gls{mtbuni}, MTB-UNIm i~MTB-TTL desek. Přitom u~\gls{mtbuni} modulů by měl
48+
\gls{mtbuni}, MTB-UNIm i~MTB-TTL desek (viz \ref{fig:mtb-2-avr-inside}).
49+
Přitom u~\gls{mtbuni} modulů by měl
4950
procesor podporovat \gls{ir} čidla na vstupech, u~ostatních modulů ne. Deska \textit{MTB-2-AVR}
50-
a~firmware jsou proto navrženy tak, aby uměly detekovat, v~jaké desce se
51-
nachází (byl identifikován a využit HW rozdíl modulů). Podle detekovaného typu
51+
a~firmware jsou proto navrženy tak, aby uměly detekovat, v~jakém modulu se
52+
nachází (byl identifikován a~využit HW rozdíl modulů). Podle detekovaného typu
5253
modulu procesor buď zapne, nebo vypne podporu \gls{ir} čidel. Do počítače pak přes
53-
\gls{mtbbus} protokol nahlásí, jestli modul \gls{ir} čidla podporuje nebo ne.
54+
\gls{mtbbus} nahlásí, jestli modul \gls{ir} čidla podporuje nebo ne.
5455

5556
Zde mimochodem využijeme \textit{Module specific command}
5657
(\ref{subsub:mtbbus-messages}). Modulu \textit{MTB-2-AVR} lze poslat příkaz,

mtb-daemon.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ \section{MTB Daemon}
66
umožnit jeho ovládání více různým aplikacím. K~tomuto účelu vystavuje \gls{mtb}
77
Daemon \gls{tcp} server, ke kterému se řídicí programy mohou připojit.
88

9-
\subsection{Protokol \gls{tcp} serveru} \label{sec:daemon:proto}
9+
\subsection{Protokol TCP serveru} \label{sec:daemon:proto}
1010

1111
\gls{tcp} server musí umožňovat oboustrannou komunikaci – jak od klienta k~serveru
1212
(\textit{požadavek, odpověď}), tak od serveru ke klientovi (\textit{asynchronní
1313
události}). Například protokol \textit{http} v~kombinaci s~\textit{REST \gls{api}}
14-
tedy není možné použít. Z~běžně používaných technologií byly zvažovány
14+
tedy není vhodné použít. Z~běžně používaných technologií byly zvažovány
1515
\textit{websockets}, ty ale kvůli složitější inicializaci nebyly využity.
1616

1717
Autor zvolil snad nejjednodušší možný komunikační protokol: \gls{tcp} spojení

mtb-net-lib.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ \section{hJOP MTB Network RCS knihovna} \label{sec:mtb-net-lib}
55
v~rámci této diplomové práce. Jeho účelem je propojit stávající systém řízení
66
kolejiště \textit{hJOP}\footnote{\url{https://hjop.kmz-brno.cz/}, používá se
77
pro řízení všech kolejišť v~\gls{kmz}. Implementovaný na platformě OS Windows.}
8-
a~\textit{MTB Daemon}. \textit{hJOP} pro přístup k~hardwaru řízení
9-
příslušenství používá tzv. \textit{RCS API} \footnote{\textit{Railroad Control
8+
a~MTB Daemon. hJOP pro přístup k~hardwaru řízení
9+
příslušenství používá tzv. \textit{RCS API}\footnote{\textit{Railroad Control
1010
System API}, viz \url{https://hjop.kmz-brno.cz/rcs}.}. Systém pro řízení
11-
příslušenství se připojuje k~\textit{hJOP} jako dynamicky linkovaná knihovna,
11+
příslušenství se připojuje k~hJOP jako dynamicky linkovaná knihovna,
1212
která implementuje \textit{RCS API}.
1313

1414
Byla tedy implementována jednoduchá knihovna, která se přilinkuje do
15-
\textit{hJOP} a připojí se k~\textit{MTB Daemon}. Pro implementaci bylo
15+
hJOP a připojí se k~MTB Daemon. Pro implementaci bylo
1616
opět zvoleno \texttt{C++} a framework \texttt{Qt}. K~této volbě vedly důvody
1717
popsané v~kapitole \ref{sec:daemon:tools}.
1818

mtb-uni-v4.tex

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ \subsection{Základní parametry}
2626
Tento počet se autor práce rozhodl zachovat, protože vhodně škáluje pro malé
2727
i~velké železniční stanice na modelových kolejištích.
2828
Současné \gls{mtbuni} a~MTB-TTL moduly používají různé konektory
29-
pro připojení periferií: svorkovnice nebo nasouvací konektory typu \texttt{PSH}
30-
\footnote{Např. \url{https://www.gme.cz/konektor-se-zamkem-psh02-04pg}.}.
29+
pro připojení periferií: svorkovnice nebo nasouvací konektory typu
30+
\texttt{PSH}\footnote{Např. \url{https://www.gme.cz/konektor-se-zamkem-psh02-04pg}.}.
3131
Modul \gls{mtbuni} v4 umožňuje variantní osazení jak svorkovnic, tak konektorů
3232
\texttt{PSH}. Tím modul slučuje současné moduly \gls{mtbuni}, MTB-UNIm a
3333
MTB-TTL do jediné \gls{dps}, což zjednodušuje údržbu a~vývoj.
@@ -43,9 +43,8 @@ \subsection{Základní parametry}
4343
Deska plošných spojů je navržena tak, aby byly zachovány rozměry a~umístění
4444
upevňovacích otvorů se současným nejmenším modulem – MTB-TTL.
4545

46-
Návrh této desky vznikal ve spolupráci s~\textit{Mendelovou univerzitou
47-
v~Brně}, (\textit{MENDELU}). Schéma vytvořil Robert Čížek, \gls{dps},
48-
firmware a~koncepční návrh modulu jsou dílem autora této práce.
46+
Návrh této desky vznikal ve spolupráci s~MENDELU. Schéma vytvořil Robert Čížek,
47+
\gls{dps}, firmware a~koncepční návrh modulu jsou dílem autora této práce.
4948

5049

5150
\subsection{Hardware}
@@ -67,7 +66,7 @@ \subsection{Hardware}
6766
v~příloze \ref{fig:mtb-uni-4-sch}. Okomentujme nyní zajímavé prvky schématu
6867
a~\gls{dps}.
6968

70-
Jádrem modulu je procesor \textit{ATmega128A}. Autor této práce si zvolil
69+
Jádrem modulu je procesor \textit{ATmega128}. Autor této práce si zvolil
7170
procesor architektury \textit{AVR}, protože s~používáním těchto procesorů má
7271
dlouholeté zkušenosti. Model \textit{ATmega128} byl pak zvolen proto, že je to
7372
nejmenší model rodiny \textit{ATmega}, který obsahuje požadované množství pinů.
@@ -136,7 +135,7 @@ \subsubsection{\textbf{Výstupy}}
136135

137136
Výstupy obsahují ochranu proti přivedení vysokého napětí, kterou realizuje
138137
stejný obvod, jako na obrázku \ref{fig:mtbuni-input} (obvod pod diodou
139-
\texttt{D1}). Obdobný obvod realizuje ochranu také proti vysokému napájecímu
138+
\texttt{D1}). Obdobný obvod realizuje také ochranu proti vysokému napájecímu
140139
napětí celého modulu. Viz kompletní schéma \ref{fig:mtb-uni-4-sch}.
141140

142141
\subsubsection{\textbf{Adresování}}

mtb-usb-v4.tex

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,19 @@ \subsection{Komunikační protokol s~počítačem}
2828
počítačem a~\gls{mtbusb} je požadavek o~přeposlání zprávy mezi \gls{usb}
2929
a~\gls{mtbbus}. Tato zpráva umožňuje počítačovému programu poslat libovolnou
3030
zprávu libovolnému \gls{mtb} modulu (a~naopak), aniž by \gls{mtbusb} deska
31-
musela znát sémantiku této zprávy. Protokol sběrnice \gls{mtbbus} byl
32-
vytvářen přesně s~tímto cílem.
31+
musela znát sémantiku této zprávy.
3332

3433
Na \gls{mtbusb} desku můžeme tedy pohlížet v~zásadě jako na tenkého
3534
přeposílatele mezi dvěma různými sběrnicemi – tzv. \textit{gateway}.
3635

3736
Plnohodnotná specifikace protokolu mezi počítačem a \gls{mtbusb} je
38-
k~dispozici na \url{https://github.com/kmzbrnoI/mtbbus-protocol/tree/master/pc}.
37+
k~dispozici online\footnote{\url{https://github.com/kmzbrnoI/mtbbus-protocol/tree/master/pc}}.
3938
Popišme nyní stručně návrh protokolu.
4039

41-
Mezi počítačem a \gls{mtbusb} deskou se komunikuje po virtuálním sériovém portu
42-
(tzv. \textit{\gls{cdc}}) tunelovaným skrze \gls{usb} rozhraní. Toto řešení
40+
Mezi počítačem a \gls{mtbusb} se komunikuje po virtuálním sériovém portu
41+
(\gls{cdc}) tunelovaným skrze \gls{usb}. Toto řešení
4342
bylo vybráno, protože je prakticky standardem pro připojení speciálních
44-
periferií k~počítači (zvažován byl také například \textit{\gls{hid}}).
43+
periferií k~počítači (zvažován byl také \textit{\gls{hid}}).
4544
\gls{usb} nezná pojem zprávy tak, jak bychom
4645
vyžadovali\footnote{Při užití třídy \gls{cdc} se data posílají nejčastěji
4746
každou milisekundu a to v~bloku o~nejvýše 64 bytech. Počítačová aplikace díky
@@ -93,6 +92,8 @@ \subsection{Komunikační protokol s~počítačem}
9392

9493
Odpovědí na tento příkaz je seznam aktivních \gls{mtb} modulů.
9594

95+
\item \textbf{Ping}
96+
9697
\end{itemize}
9798

9899
Zprávy z~\gls{mtbusb} pro počítač jsou:
@@ -105,7 +106,7 @@ \subsection{Komunikační protokol s~počítačem}
105106
Zpráva je odeslána počítači při odpovědi \gls{mtb} modulu na zprávu z~počítače
106107
nebo na pravidelný sken \gls{mtb} modulů. Z~pohledu počítače tak přichází jak
107108
odpovědi na příkazy pro \gls{mtb} modul, které poslal počítač, tak asynchronní
108-
události – například informace o~změně stavu vstupů.
109+
události – informace o~změně stavu vstupů.
109110

110111
\item \textbf{\gls{mtbusb} Information}
111112

@@ -133,7 +134,7 @@ \subsection{Komunikační protokol s~počítačem}
133134
Vlastností \gls{mtbbus} je, že každý \gls{mtb} modul musí vždy
134135
odpovědět na každou zprávu, kterou přijme\footnote{Výjimkou jsou pouze
135136
\textit{broadcast} zprávy.}. Protože \gls{mtbbus} je potenciálně nespolehlivé
136-
médium, na kterém integritu příkazů kontrolujeme vlastními mechanismy, provádí
137+
médium, na kterém integritu příkazů zajišťujeme vlastními mechanismy, provádí
137138
modul \gls{mtbusb} retransmisi zpráv \gls{mtb} modulům v~případě, že na zprávu
138139
nepřijde žádná odpověď, a~to až třikrát. Proto je součástí zprávy \textit{Packet
139140
from \gls{mtbbus}} také počítadlo, které říká, na kolikátý pokus byla
@@ -155,6 +156,7 @@ \subsection{Hardware} \label{subsec:mtbusb:hardware}
155156
Srdcem \gls{mtbusb} modulu je procesor \texttt{STM32F103}, což je moderní
156157
mikrokontrolér architektury \textit{ARM}. Autor jej zvolil z~několika důvodů.
157158

159+
\newpage
158160
\begin{compactenum}
159161
\item Procesor \texttt{STM32F103} má hardwarovou podporu \gls{usb}.
160162
\item Procesory \texttt{STM32} nabízí velké velikosti pamětí a výpočetní výkon.
@@ -226,7 +228,7 @@ \subsection{Hardware} \label{subsec:mtbusb:hardware}
226228
vyvedení konektorů a indikačních \gls{led} není třeba do krabičky frézovat. Navíc lze
227229
na krabičku velice elegantně nalepit potisk, který vysvětluje použití
228230
jednotlivých konektorů a~význam \gls{led}. Celé řešení je zobrazeno na
229-
obrázkcích \ref{fig:mtbusb-prototype} a \ref{fig:mtbusb-inside}.
231+
obrázcích \ref{fig:mtbusb-prototype} a \ref{fig:mtbusb-inside}.
230232

231233

232234
\subsection{Firmware}

0 commit comments

Comments
 (0)