USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Data sequence to niUSRP write Tx Data

Hay all,

 

Currently, I'm trying to develop 802.15.4 system. I have a few question about the data sequence that being fetched into niUSRP write Tx Data.vi. 

The vi (niUSRP write Tx Data) accepts IQ data from modulation block, What is the sequence for data that is being transmitted? For example, bitstream is modeled as array, which array[] is tranmitted first? The LSB, or the MSB.

The standard itself (802.15.4) specify that the least bit (C0) is transmitted first. 

 

Thank you.

0 Kudos
Message 1 of 8
(8,751 Views)

my TICC2530 has been sucessfully detected the signal, but the decoding still messy.

And I have problew, because 

"niUSRP Write Tx Data (CDB Cluster).vi<ERR>Underflow: the Tx buffer was emptied before new data was provided.  Consider reducing the IQ rate, increasing the Write rate, or increasing the number of samples per Write."

error.jpg

 

I already tried to change the registry, as mentioned in here Increasing-write-rate , but, I still have the problem, when I run the IQ rate > 4M and samples per symbol 4. Hence, the CC2530 won't recognize the signal, if I set the IQ rate to be 4M. This in the constelation for my custom OQPSK half sine pulse (4M, 4samples/symbol, Symbol rate 1M)

4M.jpg

 

and my CC2530 will recognize the signal if I set the IQ rate 8M and samples per symbol 8, here is the constelation diagram

8M.jpg

 

So, my question is, how to handle the error?

0 Kudos
Message 2 of 8
(8,747 Views)
What is the sequence for data that is being transmitted....The LSB, or the MSB.

For arrays and LabVIEW in general, it will start at index 0 and work its way to the last element. Remember that the USRP will transmit symbols and not bits.

 

From the picture of your IQ plot, it looks like you are only generating a few symbols. The network connection adds some overhead to the data being sent to the USRP to be ethernet compliant. I suspect that the data your sending to the USRP isn't large enough to benefit from the ethernet connection.

 

What happens if your bit stream is much longer or if you duplicate the Y array several times?

 

You also didn't mention if you were doing fininte or continuous transmission.

 

Anthony F.
Staff Software Engineer
National Instruments
0 Kudos
Message 3 of 8
(8,743 Views)

I'm doing finite transmission, and packet is repeated n times according my setup. What is the difference between finite and continuous, and where I could apply this setting?

0 Kudos
Message 4 of 8
(8,734 Views)

The end of data? input terminal will tell the USRP to turn off the local oscillator or not. This is the basis for finite transmissions.

When the last sample has been written you would turn off your LO (right side). 

On the left side, you would expect to have call niUSRP Write Tx Data multiple times (usually from a loop) and on the final call to Write Tx Data, set the boolean to true to prevent underflow errors.

 

DF post.png

Anthony F.
Staff Software Engineer
National Instruments
0 Kudos
Message 5 of 8
(8,722 Views)
For arrays and LabVIEW in general, it will start at index 0 and work its way to the last element. Remember that the USRP will transmit symbols and not bits.

 Yes, I agree with you, but, before symbols being transmitted, it came from bits, right?

0 Kudos
Message 6 of 8
(8,658 Views)

So, I made a little code based on USRPPacketTxRx posted in (packet based digital link) . I tried to replace the packet format with 802.15.4 and made spreading and half sine pulse shape. I could not figure it out, why my code is error (buffer overflow), 

My TI cc2530 could detect the packet, but the CRC is error, 

I implement CRC-16-CCITT as FCS, but, still, I'm facing the problem.

 

*The main program is Transmitter.vi

 

Could anyone help me, since I'm new to LabVIEW?

Thanks.

0 Kudos
Message 7 of 8
(8,651 Views)

I have question about data that being fetched into niUSRP Write Data Tx, I know it is a complex waveform type. 

The complex waveform type is produced by modulation toolkit. 

The modulation toolkit will map input bits into a symbol, then complex waveform.

 

What I'm asking here is regarding the input bits. (the data)

Supposed, I have string '123456789',

so I should change it to ID-Array Unsigned byte?

So the input for the modulation kit will be represented as byte array, e.g. 1-> ascii = 31 -> Binary = [00110001]. 

Which one should be the input for modulation toolkit?

- ASCII ( I can use String to Byte Array vi), or,

- I should use Binary ( ASCII '1', then change it to binary).

 

Please help me 🙂

0 Kudos
Message 8 of 8
(8,627 Views)