?? architecture.tex
字號:
\part{Architecture}\chapter{Overview}In this part you'll learn about the architecture behind thesoftware-radio. If you're looking for a precise information, you may bebetter off by looking at the \emph{reference}-part of this document.\begin{figure}[h] \centering \includegraphics[width=8cm, keepaspectratio] {figures/architecture_overview} \caption{The three main components and their respective subdivisions} \label{fig:architecture_overview}\end{figure}We like to split the software-radio in three parts: GUI, Signal Processing andthe Antenna, as can be seen in figure \ref{fig:architecture_overview}. For eachofthese elements, you can find a chapter that describes it in more detail.Additionally to these aspects, there are more general ones that don't fit thatnicely into the pictures. Here is an overview of the chapters in this part ofthe documentation:\begin{itemize}\item{GUI} Is the Graphical User Interface, that allows to interact with thesoftware-radio on a user-level\item{Signal Processing} is the ensemble of all interchangeable participantsthat make the active part of the software-radio\item{Antenna} represents the transmission and reception part of thesoftware-radio, either in simulation or in real-time mode\item{Operating system} how the different parts of RTLinux and linux playtogether\item{Modes of Operation} gives an overview of the different modes of thesoftware-radio\item{Hardware} which shows the architecture of the ICS-hardware\item{Code} the different directories in the tar-ball of the software-radio\end{itemize} \chapter{GUI}\index{Visualize!Architecture|(}For taking measurements and changing the behaviour of the software-radio wedeveloped this Graphical User Interface, called \emph{Visualize}. It iscapable of showing the internal states of all active modules (parts of thesoftware-radio), their signals and changing the configuration of these moduleswhile the software-radio is running.By looking at figure \ref{fig:architecture_overview}, we distinguishthree main-parts of the GUI:\begin{itemize}\item{User I/O} is the input and output towards the user. It shows the chains,updates the statistics and offers windows to configure the modules\item{Mapper} arranges the modules in the software-radio to chains\item{FifoCmd} interfaces with the software-radio\end{itemize}\section{User I/O}\index{Visualize!User I/O}Different ways of interfacing the software-radio exist. The user can display:\begin{itemize}\item{Chains} which is an overview of the general state of the software-radio\item{Stats} representing internal values of the modules, single values orplots\item{Output-ports} that are the signals that pass from one module to the next\item{Plots} tracing stats of different modules against each other or in time\end{itemize}There exist two ways of actively interacting with the software-radio:\begin{itemize}\item{Re-configuration} by changing parameters of one or more modules\item{Process Data} which informs a module to immediately do something byprocessing it's input\end{itemize}\subsection{Chains}When the \emph{Visualize}-tool is started, it displays an overview of allactive chains for the first antenna of the first radio it finds. In fig.@screenshot of visualize start-up@ you see the STFA in the middle, surroundedby a sending and a receiving chain. Each module in the chain has its namedisplayed, as well as up to two parameters of its internal state.\subsection{Stats}A stats can either be a single value or a \emph{block} of values. Examples ofsingle values include SNR, variance, BER or counters, while \emph{blocks} ofvalues can include channel-vectors, slots or a whole frame.\subsection{Output-ports}Each module has zero to many output-ports that can be displayed in a seperatewindow. As these signals can be of complex nature, one can chose to displayonly the real, only the imaginary, or the absolute part. Additionally, onecan chose to display the FFT of the first $2^{\lfloor log_2 \rfloor}$ samplesof the signal.\subsection{Plots}You may also be interested in a plot of one stats-variable in time or of twostats-variables one against the other. The \emph{Visualize}-tool opens eachnew plot in a seperate window.\subsection{Export}All plotting-windows can be exported either as postscript-file or as aMatlab-function (which are also compatible with Octave).\subsection{Re-configuration}When asking for a re-configuration window, the \emph{Visualize}-tool willupdate the software-radio with every new value you fill in. This is veryuseful for educational and debugging purposes.\subsection{Process-Data}This is mainly a debugging-function and allows to send a \emph{Data-msg} toone of the modules, which will then process whatever is in its input.\section{Mapper}\index{Visualize!Mapper}This is an important part of the \emph{Visualize}-tool, as it's not astraightforward task to identify chains and display them correctly. It isbasically the original version written by two 4th year students, but extendedto work with more than one STFA, or other main-modules.\section{FifoCmd}\index{Visualize!FifoCmd}This is the interface to the software-radio and takes care about thecommunication between the two. Everything is driven by the\emph{Visualize}-tool, which means that the software-radio does only reply torequests from the GUI and never initiates a request by itself.\index{Visualize!Architecture|)}\chapter{Signal Processing}\index{Signal Processing!Architecture|(}Our goal was to find a suitable tradeoff between code re-use andperformance of the software-radio. This is why we chose to have amodular framework, running on a RTLinux-platform. In the followingsections, you will learn about the following items:\begin{itemize}\item{DBG} the interface to the GUI\item{Framework} which makes it possible that modules can interact witheach other and the outer world\item{STFA} the interface to the channel\end{itemize}\section{DBG}\index{Signal Processing!DBG}The debug-interface allows the user to interact with the software-radio. Itaccepts commands and queries from the GUI\footnote{the FifoCmd classencapsulates all queries and commands} and replies accordingly. Looking atfigure \ref{fig:architecture_dbg} you can see the Fifos used in both RF- andsimulation-mode. \begin{figure}[h] \centering \includegraphics[width=10cm, keepaspectratio] {figures/architecture_dbg} \caption{The debug-interface in RF- and simulation-mode} \label{fig:architecture_dbg}\end{figure}The replies of the dbg-module can be either status-informations or datadirectly from the software-radio. An overview of the different queries/repliescan be found in \ref{chap:dbg-interface}.\section{Framework}\index{Signal Processing!Framework|(}The modules, which define the specific task of the software-radio, aresurrounded by a framework that takes care of the book-keeping tasks necessaryto guarantee a good working together of the different modules.There are three parts:\begin{itemize}\item{Modules and Chains} the specific description of differentsignal-processing parts, like pulse-shape filter, coding, mapping, and others\item{CDB} Class Data Base, where a reference to every available module isstored\item{SDB} Subsystem Data Base, which contains a reference to everyinstantiated and thus active module, as well as the glue that makes it work\end{itemize}Because of the complexity of the subsystem alone, it has its own subsectionwhere an overview of its capabilities is shown. The same goes for the STFA.\subsection{Modules and Chains}\index{Signal Processing!Modules and Chains}The communication system is built outof modules. Each of the modules has a classroom-style function. As anexample, in a simple one-way communication system, the transmitter couldconsist of a first module that maps bits into signal space points and a secondmodule that maps signal space points into samples. In the correspondingreceiver you may find a module that implements the matched filter, and anothermodule that decides what was transmitted.Signal processing modules have inputs and outputs for the signalsbeing processed. They also have a configuration-part to control the behaviorof the module (e.g. the desired amplification for an amplifier) and statisticsto display relevant information (e.g. internal variables). This is shownin fig. \ref{cap:Two-simple-chains}.\begin{figure}\begin{center}\includegraphics[% width=120mm, keepaspectratio]{figures/modular}\end{center}\caption{\label{cap:Two-simple-chains}Two simple chains and a module indetail}\end{figure}Each of the modules can exist in multiple copies. The framework (composed ofCDB and SDB) makes sure that each copy can work independently of the othercopies, not unlike the class/instance-behaviour of C++ or otherobject-oriented languages.When one or more modules are linked together, we speak about a \emph{chain} ofmodules. The software-radio knows how to pass the data from one module toanother, and will call each module at the appropriate time, that is when it hassome data to process.\subsection{CDB and SDB}\index{Signal Processing!CDB}\index{Signal Processing!SDB}\index{CDB!Architecture}\index{SDB!Architecture}The Class Data Base (CDB) and Subsystem Data Base (SDB) make it possible touse the modules in an object-oriented approach. While the CDB holds thestatic information about a module, such as the names and types of theconfiguration-parameters, the SDB holds an actual implementation of a module,with the specific configuration-values that may differ from oneimplementation to another.\begin{figure}[h] \centering \includegraphics[width=7cm, keepaspectratio] {figures/cdb_sdb} \caption{The CDB and SDB} \label{fig:cdb_sdb}\end{figure}An overview of the CDB and SDB can be found in fig. \ref{fig:cdb_sdb}. Itshows part of a running software-radio that has two transmitting and tworeceiving slots\footnote{For clarity, only part of the chains are shown}. Onthe left side you see the CDB that holds a description of each module that hasbeen loaded in the software-radio. On the right-hand side, you see the actualinstantiations of some modules present in the CDB.The loading of the modules happens usually at start-up, but theoreticaly it'salso possible to load further modules once the software-radio has beenstarted. While loading, a module informs the CDB about it's presence, andincludes the input/output signal-types, it's name, configuration andstatistics-names and -types. After that, the module is inscribed in the CDB,but not yet not active. Once a module is needed in the software-radio, it is \emph{instantiated}, thatis, a running instance of the module is created. This includesreservation of memory needed for the different variable parts, aswell as initialisation of these parts. After a module is instantiated,it can be connected to other modules and can perform signal processing.\subsection{Subsystem}\label{sub:spc_subsystem}\index{Signal Processing!Subsystem}Usually the subsystem is a part of the SDB. But over time it has become quitecomplex and would deserve an own directory in the Base/-directory\footnote{Future work hint...}. One can think of the subsytem as thebase-class for all modules. It offers a handful of virtual functions that allowit to interact with the modules. The main goal of the subsystem is to allow interaction between two modules. Infigure \ref{fig:architecture_subsystem} all the possible interactions between two modules are shown.\begin{figure}[h] \centering \includegraphics[width=7cm, keepaspectratio] {figures/architecture_subsystem} \caption{Two modules and all possible connections} \label{fig:architecture_subsystem}\end{figure}It is thus responsible for the following tasks:\begin{itemize}\item{Allocating Memory} for the Data, Config- and Stats-blocks\item{Messaging} between modules and do most tasks\item{Threading} the modules if necessary\end{itemize}Most changes in the state of a module include a message sent to the attachedmodules. An overview and short description of every message can be found in\ref{sec:sp_subsystem}.\subsection{STFA}\index{Signal Processing!STFA}The Slot To Frame Allocator (STFA) is a module that makes the connectionbetween the antenna and the rest of the modules. It offers aframe-based, slotted TDD interface to the rest of the signal-processingmodules.There exist two STFAs, one for the old hardware and one for the new,ICS-based hardware. The first is called stfa, while the second is calledstfa\_ics.\index{Signal Processing!Framework|)}\index{Signal Processing!Architecture|)}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -