\part{Practice}
====== Introduction ======
This document started out as a work-description on what has been going on with
the software-radio. It now is a reference for the RF-interface of the
software-radio as well as a setup-guide for the hardware-part of the
software-radio. For the software-part, see the document "A tutorial to the
software-radio".
===== Motivation =====
During Summer/Fall 2004 different projects have been done on the software-radio
that asked for special implementations on
the level of the ICS-cards. Four useful branches co-existed:
- Normal MIMO at 2.4GHz with 1MS/s
- Radar-application at 2.4GHz with 100kS/s
- 802.11-reception at 2.4GHz with 20MS/s
- GPS-reception at IF of 24MHz and 4MS/s at 32 bits per complex sample
1-3 were done using the normal FPGA-programm, while 4 is only possible with a
rewritten FPGA. This is due to the fact that the PCI can't transfer the data
representing a raw GPS-signal. The rewritten FPGA-program represents one sample
using 32 bits, whereas the original FPGA-program represents one sample using
128 bits.
In order to have a program that can handle all these situations, a new
interface to the ICS-cards was built.
The goal of this interface is to set the basic parameters of the ICS-cards in a
more user-friendly way.
These parameters are:
* Sampling-frequency
* Bandwith
* Data-type
* Number of channels
* Center-frequency
* Detect the FPGA-programm type
All frequencies are given in Hz and the sampling-rates in Complex Samles per
second (CSs). 1 CS corresponds to 2 Real Samples.
===== Intended reader =====
This document has been written to keep track of the changes in the programming
and to help further engineers keeping track of what is going on.
Depending on which part of the document you're interested in, the necessary
background differs.
In order to build the different target applications, you should have good
knowledge in informatics and a good understanding of the UNIX-shell.
For the reference-part you have to be a good programmer and have some
background of the software-radio.
A good start is "A tutorial on the software-radio".
===== Parts =====
The different parts in this document include:
* Motivation what you are reading
* Usecases describes the four goals and how to test them
* Subsystems which gives an overview of the different parts of the software-radio hardware
* Interface is the main part and describes in detail the new functions used to interact with the hardware
* Tidbits collects different thoughts about the project that came up during the writing of this document
===== Conventions =====
==== Directories ====
All given directories are relative to your SRadio.//Branch//-directory.
The position of this branch is marked //$SRADIO//.
This has to be installed for you by the system administrator, as well as a
CVS-access to the source-code.
So if your system-administrator installed a branch under
/home/foo/SRadio.Bar
and a command asks you to
cd $SRADIO/Test/Radar
Then this means you have to enter the following directory:
/home/foo/SRadio.Bar/Test/Radar
==== Commands ====
Commands are written in typewriter-code, like this:
cvs -d sradio@lcmpc10.epfl.ch:/home/sradio/cvs \
co -b Branch_Report SRadio
Special meanings are explained in brackets, for example:
make rf_tail
[ wait for 5 seconds ]
make rmall
==== Radio-platforms ====
There are two radio-platforms, called //radio1// and //radio2//. The work
represented in this document requires root-privileges to be run, so ask your
system-administrator for the root-password and how to log in.
If you are in the local network of the software-radio, you can login to
//radio1// and //radio2// with
ssh root@radio1
or
ssh root@radio2