Forum: GNU Radio Question on UCLA_ZigBee_Phy program communicate with sensor node

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Su Jinzhao (Guest)
on 2009-04-28 17:02
(Received via mailing list)

   I want to make our usrp run with UCLA_ZigBee_Phy communicate with
node which equipped with CC2420 RF chip. But I failed, the following
experiments are what I have done:

  I used the default SHR and SFD values with four bytes 0x00 and one A7
Physical Layer, and modified the Frame Control fields and Addressing
fieldsof MAC frame in order to be in accordance with our sensor node
as this:

  Frame Control Fields:
  B0 ----  B2  :  Frame Type = 100
  B3             :  SecurityEnabled = 0
  B4             :  Frame Pending = 0
  B5             :  Ack Request = 0
  B6             :  Intra PAN      = 1
  B7  --- B9   :  Reserved       = 000
  B10 --- B11 : Destination Addressing Mode = 01
  B12 --- B13 : Reserved = 00
  B14 --- B15 : Source Addressing Mode = 01
 so the fuction make_FCF in /ucla_blks/ returns

 The Addressing fields is changed with:  addressInfo =
struct.pack("HHHH",0x0010,0x0010,0x0010,0x0000) ,so the source and
destination node are in the same PAN.

  1. Two usrp run with UCLA_ZigBee_Phy program on two separate machines
communicate successfully.( One send the other receive,or vice
printed message
      on screen include MHR + MAC payload + MFR is :
      payload: ['0x41', '0x88', '0xe5', '0x10', '0x0', '0x10', '0x0',
'0x10', '0x0', '0x0', '0x0', '0x80', '0x80', '0xde', '0xb7']
  2. One sensor send, and the usrp can receive successfully. ,The
message on screen  include MHR + MAC payload + MFR is :
      payload: ['0x41', '0x88', '0x1b', '0x1', '0x0', '0x1', '0x0',
'0x0', '0x0', '0x0', '0x0', '0x0', '0x3f', '0x58']
  3. One usrp send, and the sensor node receive failed !!!

  The three experiments work on the same central frequency 2.405G, I
to change the following parameters in, but that seems
        dac_rate = self.u.dac_rate();
        self._data_rate = 2000000
        self._spb = 2
        self._interp = int(128e6 / self._spb / self._data_rate)
        self.fs = 128e6 / self._interp

 So anyone would be kind enough to tell me the potential reason ? Any
suggestions will be appreciated. Thanks.
This topic is locked and can not be replied to.