A configuration structure for the CSMA transmit algorithm.
#include <
rail_types.h
>
Data Fields |
|
uint8_t | csmaMinBoExp |
The minimum (starting) exponent for CSMA random backoff (2^exp - 1).
|
|
uint8_t | csmaMaxBoExp |
The maximum exponent for CSMA random backoff (2^exp - 1).
|
|
uint8_t | csmaTries |
The number of backoff-then-CCA iterations that can fail before reporting
RAIL_EVENT_TX_CHANNEL_BUSY
.
|
|
int8_t | ccaThreshold |
The CCA RSSI threshold, in dBm, above which the channel is considered 'busy'.
|
|
uint16_t | ccaBackoff |
The backoff unit period in RAIL's microsecond time base.
|
|
uint16_t | ccaDuration |
The minimum desired CCA check duration in microseconds.
|
|
RAIL_Time_t | csmaTimeout |
An overall timeout, in RAIL's microsecond time base, for the operation.
|
A configuration structure for the CSMA transmit algorithm.
One of RAIL's schemes for polite spectrum access is an implementation of a Carrier-Sense Multiple Access (CSMA) algorithm based on IEEE 802.15.4 (unslotted).
In pseudo-code it works like this, showing relevant event notifications:
Definition at line
2631
of file
rail_types.h
.
Field Documentation
◆ ccaBackoff
uint16_t RAIL_CsmaConfig_t::ccaBackoff |
The backoff unit period in RAIL's microsecond time base.
It is multiplied by the random backoff exponential controlled by csmaMinBoExp and csmaMaxBoExp to determine the overall backoff period. For random backoffs, any value above 511 microseconds will be truncated. For fixed backoffs it can go up to 65535 microseconds.
Definition at line
2676
of file
rail_types.h
.
◆ ccaDuration
uint16_t RAIL_CsmaConfig_t::ccaDuration |
The minimum desired CCA check duration in microseconds.
- Note
- Depending on the radio configuration, due to hardware constraints, the actual duration may be longer. Also, if the requested duration is too large for the radio to accommodate, RAIL_StartCcaCsmaTx() will fail returning RAIL_STATUS_INVALID_PARAMETER .
Definition at line
2685
of file
rail_types.h
.
◆ csmaMaxBoExp
uint8_t RAIL_CsmaConfig_t::csmaMaxBoExp |
The maximum exponent for CSMA random backoff (2^exp - 1).
It can range from 0 to
RAIL_MAX_CSMA_EXPONENT
and must be greater than or equal to
csmaMinBoExp
.
If both exponents are 0, a non-random fixed backoff of
ccaBackoff
duration results.
Definition at line
2655
of file
rail_types.h
.
◆ csmaMinBoExp
uint8_t RAIL_CsmaConfig_t::csmaMinBoExp |
The minimum (starting) exponent for CSMA random backoff (2^exp - 1).
It can range from 0 to RAIL_MAX_CSMA_EXPONENT .
- Warning
- On EFR32, due to a hardware limitation, this can only be 0 if csmaMaxBoExp is also 0 specifying a non-random fixed backoff. RAIL_STATUS_INVALID_PARAMETER will result otherwise. If you really want CSMA's first iteration to have no backoff prior to CCA, with subsequent iterations having random backoff as the exponent is increased, you must do a fixed backoff of 0 operation first ( csmaMinBoExp = 0, csmaMaxBoExp = 0, ccaBackoff = 0, csmaTries = 1), and if that fails ( RAIL_EVENT_TX_CHANNEL_BUSY ), follow up with a random backoff operation starting at csmaMinBoExp = 1 for the remaining iterations.
Definition at line
2647
of file
rail_types.h
.
◆ csmaTimeout
RAIL_Time_t RAIL_CsmaConfig_t::csmaTimeout |
An overall timeout, in RAIL's microsecond time base, for the operation.
If the transmission doesn't start before this timeout expires, the transmission will fail with RAIL_EVENT_TX_CHANNEL_BUSY . A value 0 means no timeout is imposed.
Definition at line
2692
of file
rail_types.h
.
◆ csmaTries
uint8_t RAIL_CsmaConfig_t::csmaTries |
The number of backoff-then-CCA iterations that can fail before reporting RAIL_EVENT_TX_CHANNEL_BUSY .
Typically ranges from 1 to RAIL_MAX_LBT_TRIES ; higher values are disallowed. A value 0 always transmits immediately without performing CSMA, similar to calling RAIL_StartTx() .
Definition at line
2663
of file
rail_types.h
.
The documentation for this struct was generated from the following file:
-
common/
rail_types.h