diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | appendix.tex | 10 | ||||
-rw-r--r-- | figures/crc-mmbtools.png | bin | 0 -> 9934 bytes | |||
-rw-r--r-- | interfaces.tex | 4 | ||||
-rw-r--r-- | introduction.tex | 67 | ||||
-rw-r--r-- | mmbtools.tex | 20 | ||||
-rw-r--r-- | scenarios.tex | 14 |
8 files changed, 109 insertions, 15 deletions
@@ -4,4 +4,7 @@ *.out *.snm *.toc +*.aux vc.tex + +mmbtools.pdf @@ -1,8 +1,12 @@ latexfile = mmbtools +includes = introduction.tex \ + interfaces.tex \ + scenarios.tex \ + appendix.tex all: $(latexfile).pdf -$(latexfile).pdf : $(latexfile).tex vc.tex +$(latexfile).pdf : $(latexfile).tex vc.tex $(includes) while (pdflatex $(latexfile) ; \ grep -q "Rerun to get cross" $(latexfile).log ) do true ; \ done diff --git a/appendix.tex b/appendix.tex index e366e7f..fd2169e 100644 --- a/appendix.tex +++ b/appendix.tex @@ -1,14 +1,14 @@ -\section{CRC-DABMUX ETI file formats} +\section{ODR-DabMux ETI file formats} \label{etiformat} -CRC-DABMUX supports three output formats for the ETI stream, that have been described on the mmbTools forum +ODR-DabMux supports three output formats for the ETI stream, that have been described on the mmbTools forum website.\footnote{\url{http://mmbtools.crc.ca/component/option,com\_fireboard/Itemid,55/func,view/id,4/catid,13/\#28}} The three formats are called \emph{framed}, \emph{streamed} and \emph{raw}. The \emph{framed} format is used for saving a finite ETI stream into a file. Each frame does not contain any padding, and the format can be described as follows: -\begin{lstlisting} +\begin{lstlisting} uint32_t nbFrames // for each frame uint16_t frameSize @@ -17,7 +17,7 @@ uint32_t nbFrames When streaming data, in which case the number of frames is not known in advance, the \emph{streamed} format can be used. This format is identical to the first one except for the missing \texttt{nbFrames}. -\begin{lstlisting} +\begin{lstlisting} // for each frame uint16_t frameSize uint8_t data[frameSize] @@ -25,7 +25,7 @@ This format is identical to the first one except for the missing \texttt{nbFrame The \emph{raw} format corresponds to ETI(NI), where each frame has a constant size of 6144 Bytes. The padding in this case is necessary. -\begin{lstlisting} +\begin{lstlisting} // for each frame uint8_t data[6144] \end{lstlisting} diff --git a/figures/crc-mmbtools.png b/figures/crc-mmbtools.png Binary files differnew file mode 100644 index 0000000..15f2852 --- /dev/null +++ b/figures/crc-mmbtools.png diff --git a/interfaces.tex b/interfaces.tex new file mode 100644 index 0000000..80fbd87 --- /dev/null +++ b/interfaces.tex @@ -0,0 +1,4 @@ +\section{Interfacing the Tools} +\subsection{Files and Pipes} +\subsection{Over the Network} +\subsubsection{Authentication Support} diff --git a/introduction.tex b/introduction.tex index 216bb96..8db20cd 100644 --- a/introduction.tex +++ b/introduction.tex @@ -1,7 +1,12 @@ +\section{Introduction} +This is the official documentation for the \mmbtools. These tools can be used to +experiment, learn and setup a DAB and \dabplus transmitter. + \section{Purpose} The different programs that are part of the \mmbtools each have their own documentation regarding command-line options and configuration settings, and the -opendigitalradio.org wiki contains many explanations and pointers, but there is +opendigitalradio.org wiki\footnoteurl{http://opendigitalradio.org} +contains many explanations and pointers, but there is no single source of documentation available for the whole tool-set. This document aims to solve this, by first outlining general concepts, @@ -9,6 +14,64 @@ presenting different usage scenarios and detailing a complete transmission setup. With this document in hand, you should be able to understand all elements -composing a \mmbtools transmission chain. +composing a \mmbtools transmission chain, and how to set one up. + +\section{Presentation of the Tools} +\subsection{Origins} +In 2002, Communications Research Centre Canada\footnoteurl{http://crc.ca} +started developing a DAB multiplexer. This effort evolved through the years, and +was published later\sidenote{when?} as \mbox{CRC-DabMux} under the GPL +open-source licence. + +CRC also developed a DAB modulator, called \mbox{CRC-DABMOD}, which could create +baseband I/Q samples from an ETI file. This I/Q data could then be set to +a hardware device using another tool. For the Ettus USRPs, a ``wave player'' +script was necessary to interface to GNURadio. Only DAB Transmission Mode 2 was +supported. \mbox{CRC-DABMOD} was also released under the GPL\sidenote{when?}. + +As encoders, toolame could be used for DAB, and CRC developed a closed-source +\mbox{CRC-DABPLUS} \dabplus encoder. + +These three CRC-~tools, and some additional services available on the now +unreachable website\footnote{There are some snapshots of the website available + on \url{http://archive.org}.} \url{http://mmbtools.crc.ca} were +part of the \mbox{CRC-mmbTools}. These tools made it possible to set up the +first DAB transmission experiments. + +In 2012, these tools received experimental support for single-frequency +networks, a functionality that has been developed by Matthias P. Braendli during +his Master's thesis\footnote{The corresponding report is available at + \url{http://mpb.li/report.pdf}}. +Because SFNs only make sense in TM 1, CRC subsequently released a patch to +\mbox{CRC-DABMOD} that enabled all four transmission modes. + +At that point, involvement from CRC started to decline. The SFN patch was +finally never included in the \mbox{CRC-mmbTools}, and as time passed by, the +de-facto fork on \url{http://mpb.li} was receiving more and more features. +Having two different programs with the same name made things complicated, and +the tools were officially forked with the approval of CRC in Feb 2014, and given +the new name \mbox{ODR-mmbTools}. They are now developed by the Opendigitalradio +association. + +In April 2014, the official \mbox{CRC-mmbTools} website went offline, and it has +become very difficult, if not impossible to acquire licences for the +\mbox{CRC-DABPLUS} encoder. Luckily there is an open-source replacement +available, which was part of Google's Android sources. This encoder has been +extended with the necessary \dabplus{}-specific requirements (960-transform, +error correction, framing, etc.), and now exists under the name +\mbox{fdk-aac-dabplus}. + +\subsection{Included Tools} +The \mmbtools contain the tools \mbox{ODR-DabMux}, \mbox{ODR-DabMod}, +\mbox{toolame-dab}, \mbox{fdk-aac-dabplus}, and other scripts, bits and pieces +that are useful for the setup of a transmission chain. + +\subsubsection{ODR-DabMux} +\subsubsection{ODR-DabMod} +\subsubsection{toolame-dab} +\subsubsection{fdk-aac-dabplus} +\subsubsection{mmbtools-aux} + + % vim: spl=en spell tw=80 et diff --git a/mmbtools.tex b/mmbtools.tex index bb0f53e..37c7e6b 100644 --- a/mmbtools.tex +++ b/mmbtools.tex @@ -42,7 +42,7 @@ \fancyhead[R]{\textit{\nouppercase{\leftmark}}} \fancyhead[C]{} \fancyfoot[R]{--\thepage--} -\fancyfoot[L]{Base revision~\GITAbrHash, \GITAuthorDate, \GITAuthorName.} +\fancyfoot[L]{\tiny{rev~\GITAbrHash, \GITAuthorDate, \GITAuthorName.}} \setlength{\headheight}{14pt} @@ -60,12 +60,13 @@ \hypersetup{colorlinks, citecolor=black, filecolor=black, linkcolor=black, urlcolor=black} \newcommand{\weblink}[2]{\href{#1}{\url{#1}: \textsc{#2}}} +\newcommand{\footnoteurl}[1]{\footnote{\url{#1}}} \newcommand{\us}{\,\si{\micro\second}\xspace} \newcommand{\km}{\,\si{\kilo\meter}\xspace} \newcommand{\ms}{\,ms} -\newcommand{\DABplus}{DAB$^\mathrm{+}$\xspace} +\newcommand{\dabplus}{DAB$^\mathrm{+}$\xspace} \newcommand{\captionwidth}{0.9\textwidth} -\newcommand{\mmbtools}{\mbox{ODR-mmbTools}} +\newcommand{\mmbtools}{\mbox{ODR-mmbTools}\xspace} % index stuff \usepackage{tocbibind} % Index in TOC @@ -77,8 +78,8 @@ % --------------------------------------------------------- -\newcommand{\titleinfo}{Documentation for the ODR-mmbTools -Open-Source Software-Defined \DABplus Tools} +\newcommand{\titleinfo}{ODR-mmbTools \\ +Open-Source Software-Defined \dabplus Tools} \author{Matthias P. Brändli} \date{2 May 2014} \title{\titleinfo} @@ -141,18 +142,21 @@ clock_config_t}, \begin{center} \Large - \textsc{Opendigitalradio\\\href{http://opendigitalradio.org}{http://opendigitalradio.org}\\2014} + \textsc{Matthias P. Braendli, for Opendigitalradio\\\href{http://opendigitalradio.org}{http://opendigitalradio.org}\\2014} \end{center} \vspace{\fill} \vspace*{\stretch{2}} \begin{figure}[!h] \centering - \parbox{1.2in}{\includegraphics[width=10em]{figures/dab-pour-chats.jpg}} + \parbox{2.2in}{\includegraphics[width=16em]{figures/dab-pour-chats.jpg}} \qquad \end{figure} \vspace*{1cm} + This work is licensed under a + \url{http://creativecommons.org/licenses/by-sa/4.0/} + Creative Commons Attribution-ShareAlike 4.0 International License. \end{titlepage} \pagestyle{fancy} @@ -187,6 +191,8 @@ clock_config_t}, \pagenumbering{arabic} \include{introduction} +\include{interfaces} +\include{scenarios} \appendix \include{appendix} diff --git a/scenarios.tex b/scenarios.tex new file mode 100644 index 0000000..108d5a0 --- /dev/null +++ b/scenarios.tex @@ -0,0 +1,14 @@ +\section{Usage Scenarios} +\subsection{Experimentation} +\subsubsection{Creation of Non-Realtime Multiplex} +\subsubsection{Modulation of ETI for Offline Processing} + +\subsection{Interfacing Hardware Devices} +\subsubsection{Ettus USRP} +\subsubsection{Other Hardware} + +\subsection{Audio sources} +\subsubsection{Using Existing Web-Streams} +\subsubsection{Encoders at Programme Originator Studios} + +\subsection{Single-Frequency Networks} |