- 论坛徽章:
- 0
|
![]()
The sender first enters a CSMA delay period, listening
for an idle channel. The sender then transmits a packet start
symbol at 10Kbps, which a receiver samples for at 20Kbps. As
the following data is transmitted at 40Kbps, after the start symbol
the receiver must synchronize to the sender at a finer granularity.
The sender pauses for a few bit times after the start symbol, then
transmits a one bit. The receiver, after the start symbol, polls
the channel to identify the falling edge denoting the sender pause.
Once it has done so, it polls again, this time for the next rising edge,
using an input capture register to take a precise timestamp. These
two spin loops take roughly 400-600 µs. The receiver adjusts its
radio clock so that its 40Kbps data sample rate is synchronized with
the sender’s signal. The sender starts transmitting encoded packet
data, which the receiver decodes into a packet buffer.
Once the packet data has been read in, the sender transmits a
pulse of ones for the receiver to use for measuring signal strength.
After this strength pulse, the sender transitions into receive mode
and the receiver transitions into send mode. The sender introduces
a short pause in its timing as part of this phase shift; as the receiver
was sampling after the sender actually transmitted a bit, the sender
must shift its sampling point to be after the receiver. The receiver
then transmits a short bit pattern indicating acknowledgment; if the
sender hears it, it marks the sent packet as acknowledged before
passing it back in a send done event. The receiver checks the packet
CRC, discarding corrupted packets. If the packet is addressed for
the receiver or the broadcast address, the networking stack signals
a reception event of the proper AM type.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/92114/showart_1813091.html |
|