Project

General

Profile

Software » History » Revision 5

Revision 4 (laforge, 01/15/2017 02:01 PM) → Revision 5/6 (laforge, 01/15/2017 02:07 PM)

{{>toc}} 

 h1. Overview on [[OsmocomBB]] software stack 

 h2. The big picture 


 For simplicitly, this description only mentions the receive path of a GSM signal into our software.    The 
 transmit part is left out, as is the bootloading/bootstrappig part, and the various control paths especially 
 from layer1 into the RF hardware. 

 First, we receive the RF signal at the antenna, pass it through the [[Rita]] mixer which does direct 
 down-conversion into analog I/Q baseband.    This in turn is sent into the baseband ADC of the [[Iota]] ABB. 
 The resulting signal is passed to the BSP (baseband serial port) of the [[HardwareCalypso]] DBB. 

 {{graphviz_link() 
 digraph G { 
   rankdir = LR; 
   subgraph cluster_rf { 
     label = "RF signal chain"; 
     Antenna -> Mixer [label = "RF Signal"]; 
     Mixer -> ABB [label = "Analog I/Q" ]; 
   } 
   ABB -> BSP [label =    "Digital I/Q" ]; 
   BSP [ label = "Calypso BSP" ]; 
 } 
 }} 

 Inside the [[HardwareCalypso]] DBB, the digital baseband samples are passed from the BSP into the DSP core, where they are processed, 
 demodulated, deinterleaved, decoded, etc. before being passed onto the ARM core using a shared memory interface.    On the ARM 
 core we have the [[OsmocomBB]] layer1 that processes the MAC blocks and sends them via L1CTL to the UART. 

 {{graphviz_link() 
 digraph G { 
   rankdir = LR; 
   BSP -> DSP; 
   subgraph cluster_calypso { 
     label = "Inside the Calypso DBB" 
     DSP -> ARM [label = "MAC blocks" weight = 0] 
     ARM -> layer1  
     layer1 -> L1CTL [ label = "struct msgb" ]; 
     L1CTL -> UART [ label = "sercomm" ]; 
   } 
 } 
 }} 

 On the PC itself, the L1CTL messages are received on the serial port by the [[osmocon]] program, which demultiplexes the different 
 sercomm streams and passes L1CTL on via a unix domain socket into whatever [[layer23]] program you may be running (e.g. [[mobile]]). 

 {{graphviz_link() 
 digraph G { 
   rankdir = LR; 
   UART -> SerialPort [ label = "RS232" dir=both ]; 
   subgraph cluster_pc { 
     label = "On the host PC"; 
     SerialPort -> osmocon [ label = "/dev/ttyUSB*" dir=both ]; 
     layer23 -> osmocon [label = "unix socket" dir=both ]; 
     osmocon -> terminal [label = "stdout" ]; 
   } 
   osmocon [ shape = doublecircle ]; 
   layer23 [ shape = circle label = "layer23\ne.g. mobile" ]; 
 } 
 }} 

 h1. Index of Software related wiki pages 
 {{child_pages()}}
Add picture from clipboard (Maximum size: 48.8 MB)