|
From: | Bahn William L Civ USAFA/DFCS |
Subject: | [Discuss-gnuradio] What is the simplest way to get data to/from the USRP |
Date: | Wed, 20 Sep 2006 18:31:54 -0600 |
Assuming that I am ever able to actually establish
communications with the USRP, what is the simplest way to get raw data to/from
the USRP? I have been told by several people (none of whom, as far as
I know, have actually played with SDR) that the basic idea behind SDR is that
the software receiver receives a time-domain stream of waveform data from the
hardware receiver, does whatever it wants with it, and then the software
transmitter generates a time-domain stream of waveform data that it send to the
hardware transmitter. Assuming that this is the case, then what I would like to do
sounds perfectly suited to that process. I would like to capture a stream of
values that represent the successive samples from the receiver’s A2D,
process them in a C program, and send out a stream of values that represent the
success samples that I want the transmitter’s DAC to generate. No bells
or whistles. I am completely unconcerned about data rate at this point –
if it’s 1 Hz I will be happy (for now). I am envisioning something really, really simple. Initially
it can even be a brute force polled system that operates along the lines of the
following: I have two memory buffers, one for input from the receiver
and one for output to the transmitter. I would like/hope/pray that there is some kind of construct
that allows me to see if the USRP receiver has data for me and also whether the
USRP transmitter can accept data from me. #1 - Do whatever setup is required to set sampling
rates, etc. ??? What does need to
be done? #2 – Read/Process/Write loop WHILE: forever SET: transfer = 0; WHILE: ((transfer
< MAXRXTRANSFER)&&(ReceiverHasData()) TransferFromReceiverToReceiveBuffer() transfer++; SET: processtime = 0; WHILE: ((processtime
< MAXPROCESSTIME) ProcessDataFromReceiveBuffer
(); GenerateDataToTransmitBuffer
(); UpdateProcessTime(processtime); WHILE: ((transfer
< MAXTXTRANSFER)&&(TransmitterHasRoom()) TransferFromTransmitBufferToTransmitter() transfer++; Does this sound like something that can be implemented using
C (compiled with gcc) and a minimum number of USRP/GNURadio function calls?
What would those calls be and where would I look for information on them? For what I am eventually planning to do, this is the
equivalent of Hello World. Thanks, Bill |
[Prev in Thread] | Current Thread | [Next in Thread] |