|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
SET: transfer = 0;
WHILE: ((transfer < MAXRXTRANSFER)&&(ReceiverHasData())
SET: processtime = 0;
WHILE: ((processtime < MAXPROCESSTIME)
WHILE: ((transfer < MAXTXTRANSFER)&&(TransmitterHasRoom())
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.
|[Prev in Thread]||Current Thread||[Next in Thread]|