802.15.4 performance analysis: pin Oscilloscope on IF

Hi!

  • To my background there’s to say - before you read this - I’m just a
    software-dev. I have little expertise when it comes to hardware.

I support the development of a real-time application that uses
802.15.4 on an AT86230RF Chip. That RF chip is IEEE 802.15.4-2003
compliant.
It has got a data-rate of 250 kBit/s. Let’s say I want to send 10
Byte. 2 Bytes CRC are added, and 6 Bytes from the Physical Layer
(Preambel + Length Field + Delimeter).
So I send 144 Bits (12 Byte PSDU are 12 8 and 48 Bytes Physical Layer
due 6 * 8). Theoretically I get 0,576 ms per transmission using 250
Kbit/s: 1/250k
144*10^3.

Now… I use my USRP with an XCVR, start the sender, and record some
transmissions into cfiles. I plot the Q channel, and calculate the
transmission lengh: like how many samples do I see with a high
amplitude relative to the sample-rate. That’s when the RF chip is
active. I get 3,45 ms.

So the difference between what I theoretically can assume as TX time,
and what I see in reality is abnormally high.

My questions:
1.) Can I use an Oscilloscope to find out whether there’s signal on
IF. The Oscilloscope operates on something like 100 MHz, so I want the
down-scaled frequency.
I read that the RF frontend down-scales to the ADC. I can pin-point
the microcontroller with the chip. Can I also pin-point the USRP2 with
the XCVR (or RFX)? I could correlate the state-changes of the RF Chip
that way.

2.) I suspect the differences result from state-changes on the RF chip
(PLL_ON -> TX). Is anybody aware of a similar performance analysis on
Zigbee for real-time applications? As I stated out I’m not a
hardware-expert.

3.) I use the Gnuradio Companion, and record from the USRP2 directly
into a cfile. Is there any way to apply a filter to be able to
automatically detect the start and end point of a high-amplitude that
represents sending activity? I tried to use the integrator to lower
the amplitude (I’m not interested in demodulation at this point, just
tx start and end). But that doesn’t work very well.

I hope my terminology isn’t too crude :wink:

Best,
Marius

On Wed, May 25, 2011 at 3:16 PM, Marius [email protected] wrote:

(Preambel + Length Field + Delimeter).
So the difference between what I theoretically can assume as TX time,

tx start and end). But that doesn’t work very well.

I hope my terminology isn’t too crude :wink:

Best,
Marius

Marius,
While I think there is a way to do what you are asking in 1 and 2, I
really can’t remember right now, nor am I at a spot where I can looking
into
it. I’m also trying to think if that’s really your best bet for learning
what you are looking for, but at least it will be educational :slight_smile:

As for 3., that’s a bit difficult. You can do all sorts of things to
detect
if you have a signal or not. The most agnostic way is to use a power
detector with a threshold level. We have a squelch block for this.

Since you know the signal you are looking for, though, you can get a
more
tuned algorithm for signal detection. You should be able to create a
matched
filter and detect if there is anything in the output. That should be
(unless
I’m not thinking clearly right now) the ML approach to detecting if you
have
a signal.

Tom

On Sat, May 28, 2011 at 6:50 AM, Tom R. [email protected]
wrote:

It has got a data-rate of 250 kBit/s. Let’s say I want to send 10
active. I get 3,45 ms.
the XCVR (or RFX)? I could correlate the state-changes of the RF Chip
represents sending activity? I tried to use the integrator to lower
While I think there is a way to do what you are asking in 1 and 2, I
a signal.
Tom


Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page

I took a quick look at the 15.4 standard, your best bet for finding a
802.151.4 frame is to search for the preamble of each packet. As Tom
mentioned, the maximum likelihood (ML) detector for this is a matched
filter. Which in math terms is the magnitude of the correlation
(sliding inner product) between the known preamble sequence and your
received signal. The point with the largest magnitude is the start of
the 15.4 frame.

Since 15.4 works off of a spread spectrum system, this magnitude peak
should be very well defined and look like a large spike (pretty sure
this is correct, Tom?). If there is no frame, the correlation should
just appear as random noise.

I suggest that you download the standard from IEEE and figure out the
preamble sequence.

–Colby

On Sat, May 28, 2011 at 1:31 PM, Colby B. [email protected]
wrote:

802.15.4 on an AT86230RF Chip. That RF chip is IEEE 802.15.4-2003
transmission lengh: like how many samples do I see with a high
I read that the RF frontend down-scales to the ADC. I can pin-point
into a cfile. Is there any way to apply a filter to be able to

Since you know the signal you are looking for, though, you can get a more
I took a quick look at the 15.4 standard, your best bet for finding a
just appear as random noise.

Yes, I think that’s correct. If you are critically sampled, then it
should
look like a large spike when you get the hit.

Tom