Project

General

Profile

Software » History » Version 5

laforge, 01/15/2017 02:07 PM

1 5 laforge
{{>toc}}
2
3
h1. Overview on [[OsmocomBB]] software stack
4
5
h2. The big picture
6
7
8
For simplicitly, this description only mentions the receive path of a GSM signal into our software.  The
9
transmit part is left out, as is the bootloading/bootstrappig part, and the various control paths especially
10
from layer1 into the RF hardware.
11
12
First, we receive the RF signal at the antenna, pass it through the [[Rita]] mixer which does direct
13
down-conversion into analog I/Q baseband.  This in turn is sent into the baseband ADC of the [[Iota]] ABB.
14
The resulting signal is passed to the BSP (baseband serial port) of the [[HardwareCalypso]] DBB.
15
16
{{graphviz_link()
17
digraph G {
18
  rankdir = LR;
19
  subgraph cluster_rf {
20
    label = "RF signal chain";
21
    Antenna -> Mixer [label = "RF Signal"];
22
    Mixer -> ABB [label = "Analog I/Q" ];
23
  }
24
  ABB -> BSP [label =  "Digital I/Q" ];
25
  BSP [ label = "Calypso BSP" ];
26
}
27
}}
28
29
Inside the [[HardwareCalypso]] DBB, the digital baseband samples are passed from the BSP into the DSP core, where they are processed,
30
demodulated, deinterleaved, decoded, etc. before being passed onto the ARM core using a shared memory interface.  On the ARM
31
core we have the [[OsmocomBB]] layer1 that processes the MAC blocks and sends them via L1CTL to the UART.
32
33
{{graphviz_link()
34
digraph G {
35
  rankdir = LR;
36
  BSP -> DSP;
37
  subgraph cluster_calypso {
38
    label = "Inside the Calypso DBB"
39
    DSP -> ARM [label = "MAC blocks" weight = 0]
40
    ARM -> layer1 
41
    layer1 -> L1CTL [ label = "struct msgb" ];
42
    L1CTL -> UART [ label = "sercomm" ];
43
  }
44
}
45
}}
46
47
On the PC itself, the L1CTL messages are received on the serial port by the [[osmocon]] program, which demultiplexes the different
48
sercomm streams and passes L1CTL on via a unix domain socket into whatever [[layer23]] program you may be running (e.g. [[mobile]]).
49
50
{{graphviz_link()
51
digraph G {
52
  rankdir = LR;
53
  UART -> SerialPort [ label = "RS232" dir=both ];
54
  subgraph cluster_pc {
55
    label = "On the host PC";
56
    SerialPort -> osmocon [ label = "/dev/ttyUSB*" dir=both ];
57
    layer23 -> osmocon [label = "unix socket" dir=both ];
58
    osmocon -> terminal [label = "stdout" ];
59
  }
60
  osmocon [ shape = doublecircle ];
61
  layer23 [ shape = circle label = "layer23\ne.g. mobile" ];
62
}
63
}}
64
65
h1. Index of Software related wiki pages
66 4 laforge
{{child_pages()}}
Add picture from clipboard (Maximum size: 48.8 MB)