WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2009-Apr-10 00:28:47

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

OFDM Reference Desgin v12.0

We just posted the design and are interested to hear how it works in other users' setups. Please post any observations or questions!

Offline

 

#2 2009-Apr-10 06:21:09

domenique
Member
Registered: 2009-Jan-07
Posts: 47

Re: OFDM Reference Desgin v12.0

Hi,

the new reference design still has 4 independent timers, of which one is dedicated to the polling of the UART and the user I/O buttons. That means that 3 independent timers remain free for custom use. But in contrast to the previous ref. designs, now the first timer is used for timeout and the second timer for backoff, instead of using the first timer for both. As timeout and backoff cannot occure simultaneously I don't understand why two independent timers are 'wasted' for this purpose? What was the motivation for doing this? Isn't it better to use only timer 1 and to specify a variable defining the timer-type like backoff and timeout and to set the time of timer 1 accordingly to this type.
This implementation makes it difficult to design MAC protocols that need more than three different timer-types, although the timer-types cannot coexist, i.e. only one type can be active a certain time.

-Domenique

Offline

 

#3 2009-Apr-11 23:58:15

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: OFDM Reference Desgin v12.0

We're separated the backoff and timeout timers in preparation for another design change we're working on right now.

We're hoping to improve the performance of contending flows by adopting the 802.11 standard's backoff behavior. In the standard, backoff intervals are divided into slots, each much longer than a sample (a slot is 9µs in 802.11a, I think). The backoff timer runs for an integral number of slots, but the timer is decremented only if the medium is completely idle for the whole slot. In our current implementation, the backoff counter decrements continuously during any idle time (i.e. our timer can decrement partial slot times in partially busy slots). We think this behavior increases the probability of a collision.

But the slot-based backoff timer requires hardware changes, so it will be separate from the timeout timer. We didn't get it quite done in time for refdes v12.0 but will post it soon.

In the meantime, if you need more timers, you can get four more by instantiating a second warp_timer pcore in your design. You'd have to modify some software (either update the warp_timer() calls or add your own functions for the second timer).

Offline

 

#4 2009-Apr-13 05:15:02

domenique
Member
Registered: 2009-Jan-07
Posts: 47

Re: OFDM Reference Desgin v12.0

That makes sense and could improve the performance.

Can you give me a brief description on how to instantiate a second timer core? The adaption of the functions is no problem, but I'm not realy sure how to include the second timer core in hardware.

In the new ref. design the CSMA threshold is higher than the packet detection threshold. This will probably lead to a less conservative behaviour and to a better performance in the presence of capture. On the other hand it could also lead to much more interfererence and throughput degradation as the reception range is higher than the sensing range. Have you already studied these effects and have experience with the capture effect and interference with WARP in general and especially the new ref. design?
I will try to make some measurements with the new design in the next two weeks and post some results.


Thanks,

Offline

 

#5 2009-Apr-15 14:36:42

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: OFDM Reference Desgin v12.0

I'll do one better- we just posted reference design 12.1, using the new timer. This timer core has 8 timers built in; the reference design still uses 3, leaving 5 free for other applications.

Everything else is the same as v12.0 (PHY, CSMAMAC, etc.)

Offline

 

#6 2009-Apr-17 05:15:49

domenique
Member
Registered: 2009-Jan-07
Posts: 47

Re: OFDM Reference Desgin v12.0

Thanks for including four additional timers.

I have a few questions concerning the new ref. design:
- In the goodHeader_callback, when receiving a data packet the ACK is prepared but not send. Is this intended?
- In the goddHeader_callback, when receiving an ACK the BACKOFF_TIMER is started. Why?
- In the function warpmac_fastReply a usleep(6) is used. Why? Just to ensure the Phy
- The slot time and the timeout have been modified. Have you made better experiences with these values?
- In the changelog it is said that the slot time parameter can be set to 1 to disable slots. In this case the slotCount is equal to the number of clock cycles. But for the timeout timer you're not using the value 1 but 0 for the slot time parameter. Does this have the same effect?

- Domenique

Offline

 

#7 2009-Apr-17 09:27:15

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: OFDM Reference Desgin v12.0

1) After preparing the ACK, the goodHeader_callback calls warpmac_fastReply(). This funciton polls the PHY's Rx status register. If the packet payload is received successfully, it sends the already-prepared ACK. Otherwise it just returns. We created this function so the Rx polling and call to WarpRadio_v1_TxEnable were in the same function, eliminating one expensive (in time) context switch in the DATA-ACK path.

2) A backoff is scheduled after a received ACK to handle the case of a fully-backlogged node. Without this backoff, a node would immediately send its next packet, potentially monopolizing the medium. We modeled this behavior after 802.11. The new backoff should help performance in networks with multiple fully-backlogged flows.

3) That usleep separates the call to WarpRadio_v1_TxEnable and the first polling of the PHY Tx. The Tx state machine (in radio_controller_TxTiming.v) starts when TxEnable is called. The state machine starts the PHY 200 cycles later (the third argument to WarpRadio_v1_SetTxTiming()). Without this usleep, the code would poll the PHY Tx before it actually starts.

4) We reduced the DATA-ACK turnaround time in recent ref designs but hadn't changed the timeout interval. The timeout time (now 100µs) needs to be just long enough for an ACK to be received; any longer is wasted time. The slot time was increased so it better reflects the Rx/Tx turnaround times; a slot needs to be long enough that a node can switch from carrier sensing to transmitting inside a single slot.

5) The changelog was wrong (now fixed); in the timer hardware, the slot time in clock cycles is (slotTime+1), where slotTime is the parameter passed down from code. So slotTime=0 reverts the timer to unslotted behavior (where slotCount = clock cycles).

Offline

 

#8 2009-Apr-24 00:13:46

HT
Member
Registered: 2008-May-12
Posts: 31

Re: OFDM Reference Desgin v12.0

Hi.
I have transformed my on design(interrupt based ) to the new design(polling) and it seem to be working pretty okay.  I was just wondering how frequently the packets can be detected by the receiver working@ QPSK? Is it less than 100µs. Does anybody have any solid value for it ?

-HT

Offline

 

#9 2009-Apr-24 09:52:07

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: OFDM Reference Desgin v12.0

The shortest packet lasts 64µs (640 samples (320 preamble + 160 training + 160 base-rate payload) at 0.1µs/sample). The Rx PHY pipeline requires some time after the last sample is received before it asserts one of the packet-done bits. In v12.1, this is around 10µs. Once a status bit (good/bad pkt done) is asserted, the PHY will be ready to receive another packet as soon as the status bit is cleared by the MAC.

Offline

 

Board footer