Skip to content

Commit

Permalink
optimised position of floats in knx intro
Browse files Browse the repository at this point in the history
  • Loading branch information
FreakyBytes committed Mar 20, 2018
1 parent e487696 commit 59a6bf0
Show file tree
Hide file tree
Showing 11 changed files with 27 additions and 28 deletions.
23 changes: 11 additions & 12 deletions tex/chapter/100-background-bas.tex
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ \subsection{KNX as an Example}
One of the most commonly used systems for building automation systems in Germany and Europe is \Gls{knx} or Konnex. Formerly known as the \gls{eib}, \gls{knx} is ab association of multiple building automation vendors, co-operating in the KNX Association. %\footnote{\url{https://www.knx.org/}}
It was designed to substitute traditional electrical installations and to implement functions and processes in an automated fashion. \parencite{Merz2009}

\newpage
The \gls{knx} protocol is defined in the DIN EN 50090 family and can the transmitted over various physical media. Among those physical layers are \gls{knx} over twisted pair (KNX.TP), \gls{knx} over power line (KNX.PL) and \gls{knx} over radio (KNX.RF). Especially, KNX.PL and KNX.RF are intended for retrofitting older buildings.
Another more recent addition is KNX/IP, which transports the \gls{knx} physical layer over an \gls{ip} network and can be used to bridge multiple \gls{knx} lines, connect a central control unit, or to program \gls{knx} devices via the \gls{ets} software.
\parencite{Merz2009}
Expand Down Expand Up @@ -119,21 +120,21 @@ \subsubsection{Bus Topology of KNX Networks}
Each device is directly connected to a line, which can accommodate up to 256 devices, if supported by all devices on the line. Alternatively, up to 64 devices can be in one line segment before line repeater is required. (cf. Table~\ref{tab:background:bas:knx:topo:tpsegments})
Most \gls{knx} devices still follow the TP1-64 specification. Due to the high market fragmentation devices are often not mark in regards of supporting either TP1-64 or TP1-256, therefore it is still recommended to only use 64 devices within a line segment. \alert{sentence too long?} Thus, a full logical line is advised to be build using three line repeater. \parencite{Sokollik2017,Merz2009}

\input{tables/100-knx-segments.tex}

Usually a line coupler is installed as a line repeater. A line coupler is an active device to connect one logical level of the \gls{knx} network to another one, which can be one line segment to another line segment.
However, their original purpose is to separate the different levels of the logical \gls{knx} topology, explicitly to attach a line to the main line of an area or to attach a main line to the backbone. (cf. Figure~\ref{fig:background:knx:topo})
An area is formed by combining up to 16 lines: one main line and 15 sub-lines. All main lines are then connected to a backbone line, again via area couplers. \parencite{Sokollik2017}

\input{tables/100-knx-segments.tex}

As active devices line couplers are assigned addresses, and are able to filter traffic by addresses similar to \gls{ip} router. %usually with device number 0 in case it connects a line to backbone line.
Further couplers provide galvanic isolation to mitigate damages by high voltages, shorted circuits, etc. As a result multiple power supplies are required, basically one for each line segment.
An important feature to be aware of, when using line couplers, is that a \gls{knx} telegram can only be routed over six hops. This was introduced to prevent high network load in case of cyclic routing, comparable to the time to live in IP based networks. \parencite{Sokollik2017}

\input{tables/100-knx-addr.tex}

\newpage
Additional to the physical address each devices is assigned, devices may listen to group addresses.
\todo{describe layers/modes of group addresses?}
Whereby physical addresses are used to communicate with one specific device, which is common during installation, throughout normal operation mostly group addresses are used. As the name implies multiple devices may listen to such an address, allowing one light switch to turn on or off multiple lights for instance.
Both physical and group addresses can be split with different granularity. Most commonly it is distinguished between three different levels as shown in Table~\ref{tab:background:bas:knx:topo:addr}, but also only two levels are possible.

% ------------------------------------------------------------------------------
\subsubsection{KNX Protocol}
Expand Down Expand Up @@ -177,10 +178,6 @@ \subsubsection{KNX Protocol}

The extended data telegram introduces another header byte after \gls{ctrl}, the \gls{ctrle} header byte. It contains information otherwise encoded together with the payload length like the destination address type and the hop count, thus it allows the payload length to encoded as a full byte, ranging up to 255. (see Table~\ref{tab:background:bas:knx:proto:ctrle})

\input{tables/100-knx-data.tex}
\input{tables/100-knx-ctrl.tex}
\input{tables/100-knx-ctrle.tex}

%\subsubsection{Acknowledge Telegram}
\paragraph{Acknowledge Telegram}
\label{sec:background:bas:knx:proto:ack}
Expand All @@ -192,17 +189,13 @@ \subsubsection{KNX Protocol}
Given, the sender does not receives any form of acknowledge telegram within 13 bit times, it resends the telegram also up to three times.
In case the sender addressed the original telegram to multiple devices by using a group address as destination, the acknowledge frame is send simultaneously by all recipients. Due to the bus characteristic of being normally high (1), a negative acknowledge or busy signal overrules a positive acknowledge, since \code{BUSY} and \code{NACK} are encoded with low bits (0). \parencite{Merz2009,Sokollik2017}

\input{tables/100-knx-ack.tex}

%\subsubsection{Poll Telegram}
\paragraph{Poll Telegram}
\label{sec:background:bas:knx:proto:poll}

The poll telegram allows to poll one byte of data from up to 15 devices, however, it is seldom used in \gls{knx} networks. It consists of a poll data request frame (cf. Table~\ref{tab:background:bas:knx:proto:knx-poll}) and a poll data response frame. Former starts the poll telegram and sets the group address to query, also it defines how many bytes to receive.
The poll data response consists of each device sending one byte on the bus without starting a new telegram. The responding devices are doing so in a prior configured time slot. \parencite{Hubner2009,DIN_EN_50090-5-2}

\input{tables/100-knx-poll.tex}

\subsubsection{KNX Communication}
\label{sec:background:bas:knx:communication}

Expand Down Expand Up @@ -246,6 +239,11 @@ \subsubsection{KNX Communication}

Each \gls{dpt} is identified by a 16 bit main number and a 16 bit sub-number, separated by a dot. The main number describes the format and encoding and consequently the sub-number describes range and unit. As a result, \glspl{dpt} with the same main number share the format and encoding.

\input{tables/100-knx-data.tex}
\input{tables/100-knx-ctrle.tex}
\input{tables/100-knx-ctrl.tex}
\input{tables/100-knx-ack.tex}
\input{tables/100-knx-poll.tex}
\input{tables/100-knx-tpci-apci.tex}

\subsubsection{KNX Management Procedures}
Expand All @@ -272,6 +270,7 @@ \subsubsection{KNX Management Procedures}
Secondly, there are device management procedures, which require in depth knowledge of the devices. \parencite[pp.~30~ff.]{DIN_EN_50090-7-1}
These are used to i.e. configure devices, restart them, and verify the configuration.

\newpage
\subsubsection{Security in KNX}
\label{sec:background:bas:knx:security}

Expand Down
2 changes: 1 addition & 1 deletion tex/master-thesis-peters.tex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
% !TeX spellcheck = en_GB
\documentclass[12pt, a4paper, titlepage, oneside, final]{book}
\usepackage[a4paper, top=30mm, right=25mm, bottom=30mm, left=35mm]{geometry}
\usepackage{showframe}
%\usepackage{showframe}

\usepackage[utf8]{inputenc} % utf-8, bitches
\usepackage[T1]{fontenc} % das Trennen der Umlaute
Expand Down
2 changes: 1 addition & 1 deletion tex/tables/100-knx-ack.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\begin{table}
\begin{table}[p]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand Down
4 changes: 2 additions & 2 deletions tex/tables/100-knx-addr.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
% KNX Address byte-field

\begin{table}[b]
\begin{table}[h]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand All @@ -14,6 +14,6 @@
Group Address & \multicolumn{5}{c|}{main} & \multicolumn{3}{c|}{middle} & \multicolumn{8}{c|}{sub group}\\
\bottomrule
\end{tabular}
\caption[Bit field for \knx addresses]{Bit field for \knx addresses. Only the most common used 3-level group address is shown here. cf.~\textcite{Merz2009,Sokollik2017} }
\caption[Bit field for KNX addresses]{Bit field for \acs{knx} addresses. Only the most common used three-level group address is shown here. cf.~\textcite{Merz2009,Sokollik2017} }
\label{tab:background:bas:knx:topo:addr}
\end{table}
2 changes: 1 addition & 1 deletion tex/tables/100-knx-ctrl.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
% KNX telegram CTRL byte

\begin{table}
\begin{table}[p]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand Down
2 changes: 1 addition & 1 deletion tex/tables/100-knx-ctrle.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
% KNX CTRL-Extended control byte

\begin{table}
\begin{table}[p]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand Down
8 changes: 4 additions & 4 deletions tex/tables/100-knx-data.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
% KNX data telegram structure for standard and extended

\begin{table}
\begin{table}[p]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand All @@ -21,11 +21,11 @@
Bit & & & & & & & & & & & & & & & & & & & & & & & & \\\midrule
Function & \multicolumn{16}{c|}{Payload $n+1$ Bytes} & \multicolumn{8}{c|}{Parity} \\\bottomrule
\end{tabularx}
\caption[Standard \knx data telegram]{Standard \knx data telegram with $2$ to $16$ bytes of payload. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, Address Type (AT), Hop Count (Hops), Payload Length (Length), Payload, and Parity.}
\caption[Standard KNX data telegram]{Standard \acs{knx} data telegram with $2$ to $16$ bytes of payload. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, Address Type (AT), Hop Count (Hops), Payload Length (Length), Payload, and Parity.}
\label{tab:background:bas:knx:proto:knx-standard}
\end{table}

\begin{table}
\begin{table}[p]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand All @@ -50,6 +50,6 @@
Bit & & & & & & & & & \multicolumn{16}{c|}{ } \\\cmidrule{1-9}
Function & \multicolumn{8}{c|}{Parity} & \multicolumn{16}{c|}{ } \\\bottomrule
\end{tabularx}
\caption[Extended \knx data telegram]{Extended \knx data telegram with $2$ to $255$ bytes of payload. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Extended Control Byte (CTRLE) cf. Table~\ref{tab:background:bas:knx:proto:ctrle}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, Payload Length (Length), Payload, and Parity.}
\caption[Extended KNX data telegram]{Extended \acs{knx} data telegram with $2$ to $255$ bytes of payload. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Extended Control Byte (CTRLE) cf. Table~\ref{tab:background:bas:knx:proto:ctrle}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, Payload Length (Length), Payload, and Parity.}
\label{tab:background:bas:knx:proto:knx-extended}
\end{table}
2 changes: 1 addition & 1 deletion tex/tables/100-knx-poll.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\begin{table}
\begin{table}[p]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand Down
4 changes: 2 additions & 2 deletions tex/tables/100-knx-prio.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
% KNX prio table

\begin{table}
\begin{table}[h]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand All @@ -17,6 +17,6 @@
High priority & 0 & 1 \\\midrule
Low priority & 1 & 1 \\\bottomrule
\end{tabularx}
\caption[\knx priority encoding]{\knx priority encoding. cf.~\textcite{Merz2009}}
\caption[KNX priority encoding]{\acs{knx} priority encoding. cf.~\textcite{Merz2009}}
\label{tab:background:bas:knx:proto:prio}
\end{table}
2 changes: 1 addition & 1 deletion tex/tables/100-knx-segments.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\begin{table}
\begin{table}[h]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand Down
4 changes: 2 additions & 2 deletions tex/tables/100-knx-tpci-apci.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\begin{table}
\begin{table}[p]
\aboverulesep=0ex
\belowrulesep=0ex
\renewcommand{\arraystretch}{1.2}
Expand All @@ -13,6 +13,6 @@
& DC & No & \multicolumn{4}{c|}{Seq. Number} & \multicolumn{10}{c|}{} \\\bottomrule
\end{tabularx}

\caption[KNX TPCI/APCI structure in a standard data telegram]{\gls{knx} \acrshort{tpci}/\acrshort{apci} structure in a standard data telegram. Data/Control flag (DC), Numbered/Unnumbered flag (No), Sequence Number (Seq. Number).}
\caption[KNX TPCI/APCI structure in a standard data telegram]{\acrshort{knx} \acrshort{tpci}/\acrshort{apci} structure in a standard data telegram. Data/Control flag (DC), Numbered/Unnumbered flag (No), Sequence Number (Seq. Number).}
\label{tab:background:bas:knx:comm:tpci-apci}
\end{table}

0 comments on commit 59a6bf0

Please sign in to comment.