Time Division Multiple Access

The Wireless Core always operates in Time Division Multiple Access (TDMA) mode. It divides time into multiple slices called timeslots. Each timeslot is a portion of time reserved for a specific event. The sum of all the timeslots is called a schedule. This TDMA approach is very efficient in terms of power consumption. Most of the time, a device can be asleep. It will wake up only to transmit or receive a frame on its dedicated timeslot.

Network

A network encompasses a schedule, connections and their configuration.

Schedule

To maximize the usage of air time, the length of the timeslots in a TDMA schedule can be adjusted with a precision of 1 microsecond. On a given network, the schedule must be known to all the Nodes and cannot change at runtime. The schedule specifies when and for how long a given Node is allowed to transmit or receive a frame. When the schedule reaches the last timeslot, it loops back to the first one.

Figure not found: Basic schedule

Figure 59: Basic schedule

The illustration above shows a basic schedule which enables bi-directional communication between two devices. Information is exchanged in one direction during the first timeslot, and in the other direction during the second timeslot. The schedule repeats indefinitely.

Timeslot duration is determined by the frame air time and inter-frame spacing required for the MCU to fetch/retrieve and process data for each frame. The inter-frame spacing will mostly depend on the MCU performance characteristics and the effective SPI speed.

Figure not found: Interframe spacing

Figure 60: Inter-frame spacing

The figure above shows an example of a star network schedule where the air time (colored rectangles) and processing time periods are identified. The processing time must be included in a single timeslot for consecutive over-the-air events to occur for the same device (e.g. Coordinator Timeslot Index 1 to Index 2). If the over-the-air events are non-consecutive, processing can occur during the other devices Timeslot Index (e.g. Coordinator Timeslot Index 3).

The processing time can be measured using the Profiler Tool.

Frequency Switching

To optimize UWB spectrum usage and avoid breaking the regulatory emission limits, frequency switching is used.

The strategy consists of spreading pulse energy over a wider spectrum by cycling through selected frequencies at each timeslot.

The Wireless Core can be configured to use different frequencies in consecutive timeslots by providing it with a list of channels. For every timeslot, the Wireless Core will tune the radio to the next channel in the list. As a result, the list is cycled independently from the connections.

Addressing

The Wireless Core addresses are 23-bit long. The first 15 most significant bits are used for the PAN ID and the remaining 8 least significant bits are used for the node address.

PAN ID

Node Address

15 bits

8 bits

PAN ID

The PAN ID (Personal Area Network Identification) is used to group multiple nodes into logical networks. Nodes from different networks are not able to communicate with each other. It is one of the feature enabling concurrency.

Valid PAN IDs range from 0x001 to 0x7FFE. 0x000 and 0xFFFF are reserved.

Node Address

The node address is used to identify nodes within the same PAN.

The node addresses range from 0x00 to 0xFE. Address 0xFF is used for broadcasting on the PAN. Thus, a single PAN can support up to 255 active nodes.

PAN Broadcast

A frame containing the 0xFF destination address will be treated as a broadcast in the selected PAN. Every node part of the PAN will receive the frame as if it was specifically sent to them.

Connection

A connection is defined by a unidirectional link between a source address and a destination address. A single device can use one or multiple connections. For a device to send data, a connection must be associated with one or more timeslots within the schedule. Since a connection defines a unidirectional data stream, a timeslot can contain two connections: one for the main transmission and one for the auto-reply (if enabled).

A connection between two devices must share the same network configuration. Within this configuration, a payload queue is assigned to the connection. When the connection’s active timeslot occurs, the oldest element is removed from the queue and scheduled for transmission.

It is possible to send data to multiple devices within the same network with one connection using a broadcast address: 255 (or 0xFF). The transmitting device will then communicate with every device within reach that are part of the same network (same PAN ID).

Timeslot Ownership

An over-the-air frame identifies who it is sent to (the destination address) but not who sent it. This is a constraint of both the SR1000 and SR1100 transceivers: the hardware frame format carries a single address field, so the Wireless Core cannot add a source address in software. A receiver therefore cannot discover the sender from the frame itself; it must already know, from the shared schedule, which device is expected to transmit in a given timeslot. As a consequence, each timeslot has exactly one transmitter, its owner. Two different devices cannot transmit in the same timeslot, because the receiver would have no way to tell them apart. For this reason, the Wireless Core does not support timeslot access contention; every timeslot is statically owned by a single transmitter.

This is the underlying reason for the timeslot-sharing constraint: several connections can share a single timeslot (see Connection Priority) only when they all originate from the same device (same local address), since they then share the one known transmitter. Connections that belong to different devices always require their own dedicated timeslots.

Remote Node

A remote node represents a peer device in the wireless network with which the local node communicates. When a connection is initialized, the Wireless Core automatically creates a remote node for the peer device identified by the connection’s remote address (i.e., the source address of an RX connection, or the destination address of a TX connection). If multiple connections to the same network share the same remote address, they are all associated with the same remote node object.

The remote node serves as a logical anchor for all connections to a given peer, allowing the Wireless Core to efficiently manage per-peer state.

Channel

Each channel defines the frequency and the power settings of the transceiver to use when a transmission occurs over said channel. The Wireless Core must be provided with an array of channels on which it will iterate; that is the channel sequence. Each connection has its own set of configurations for a given channel.

Stream Types

There are three types of data streams which are described in the table below:

Table 62: Stream Types Description

Best Effort

Frames are only sent once. The transmitter doesn’t know if it was successfully received by the destination device.

Limited Retransmissions

Frames reception are ACKed. If a frame is not ACKed after a configurable amount of retransmissions or time window, the transmitter drops it.

Guaranteed delivery

Frames reception are ACKed. The transmitter will retransmit a frame (indefinitely) until it is ACKed, thus guaranteeing delivery.

Auto-Reply

The SPARK transceivers have a built-in auto-reply functionality that allows a receiver to transmit a frame immediately after a successful reception. While generally used for acknowledgements only, this auto-replied frame can also contain a payload. The reply packet is sent automatically by the hardware, without requiring any host processor intervention. This feature can be useful in applications where low-latency, non-critical back-channel communication is desired. While the Wireless Core allows transmission of data inside them, it does not support acknowledgements of auto-replied frames. A data stream transmitted through auto-replied frames is considered “best-effort” since no retransmission mechanism can be leveraged in case of frame loss.

Timeslot Events

When auto-replies are enabled, two exchanges can happen inside a single timeslot. The Wireless Core treats each exchange as separate events.

Main Frame Transmission

The main event in a timeslot is the main frame transmission. That data stream will be a best-effort transmission unless Auto-Replies are enabled.

figure not found: Main Transmission Event

Figure 61: Main Transmission Event

Auto-Replied ACK

When enabled, the receiver of a main frame will auto-reply an acknowledgement (ACK) to notify the transmitter that the reception was successful. This allows the Wireless Core to put a retransmission mechanism in place in case a main frame is not acknowledged, enabling guaranteed delivery or limited retransmission links. The ACK frame does not contain a payload.

figure not found: Auto-Reply Event (ACK only)

Figure 62: Auto-reply event (ACK only)

Auto-Replied Payload

A connection can make use of the auto-reply to transmit data in a best-effort manner. The auto-replied frame can also optionally contain an acknowledgement of the main frame alongside the payload, keeping the ability of the main frame transmitter to use a retransmission mechanism. However, the Wireless Core does not offer the possibility to acknowledge auto-replied frames, making this type of data transmission a best-effort one.

figure not found: Auto-Reply Event (with data)

Figure 63: Auto-reply event (with data)

Important

The auto-reply payload is pre-staged. It is loaded into the radio before the main frame is received. The receiver cannot inspect the incoming main frame and decide which auto-reply data to send back. The auto-reply must be enqueued in advance, similar to how main TX payloads are selected from their queue at frame preparation time.

Consequences:

  • Each auto-reply payload can be up to the auto-reply connection’s max_payload_size. The actual length is chosen at enqueue time, so successive auto-replies may carry different content and different sizes. The oldest enqueued payload is sent on the next main frame successfully received in a timeslot allocated to that auto-reply connection.

  • If the auto-reply queue is empty when the timeslot is prepared, an empty auto-reply (ACK only) is sent.

  • ReTX (ARQ) is not supported on the auto-reply payload: lost auto-replies frames are not retransmitted by the Wireless Core.

  • An auto-reply cannot be computed from the received request. Because the payload is pre-staged, it is committed before the main frame is inspected. Applications that need to answer with data derived from the received frame (for example, a query that returns a matching record) must use separate application TX/RX connections on distinct timeslots so the receiver has time to process the request and enqueue a targeted response.

Note

Auto-replied frames cannot be acknowledged. There is no way to retransmit a lost auto-reply payload. Applications that require reliable bidirectional communication should not use auto-reply for the return path. Instead, use two dedicated application-payload TX connections (one per direction), both with ACK enabled and the desired Stop-and-Wait mode (limited retry, deadline, or guaranteed delivery). The two connections can share the same timeslot pair, alternate across timeslots, or be scheduled independently depending on latency and throughput requirements. This pattern is also the way to implement request-response exchanges where the answer must be derived from the received request.

Synchronization Methods

Standard Sync

Upon power up, the Node will listen for a message from the Coordinator. If none is received, it will go to sleep for a predetermined amount of time and then retry listening. This method will limit power consumption of the receiver by duty cycling the listening periods instead of listening continuously for a message from the Coordinator which might not be active yet. This method usually allows the device pair to achieve synchronization in a short period of time when the frame rate on the Coordinator is high.

Fast Sync

Upon power up, the Node will continuously listen for a message from the Coordinator until it successfully receives a frame. This synchronization method is less power efficient, but will yield faster synchronization because the Node should catch frames from the Coordinator as soon as they are sent. This method should be used when the frame rate on the Coordinator is too low for the standard sync to maintain a reliable synchronization or to ensure a quick synchronization at startup.

Note

The synchronization delay depends on the defined RF schedule and the RF conditions, regardless of the synchronization method. A schedule with shorter timeslots or more synchronization frames and good RF conditions will result in a short synchronization delay. On the other hand, a schedule with longer timeslots or less frequent transmissions from the Coordinator will lead to longer node synchronization delays.

Dual Radio

In applications where antenna placement is challenging, two transceivers can be used to increase coverage. Since this allows both transceivers to redundantly receive frames, the Wireless Core is free to choose which transceiver to use for transmission based on the received signal strength.

Note

Enabling this feature will increase the processor load of the Wireless Core by about 1.5 times the equivalent single radio scenario (varies depending on application).

Hardware Requirements

The second transceiver must use a dedicated SPI bus and DMA channel, independent of the first one, to allow for simultaneous data transfers. A 16-bit timer running at +/- 5% of the chip rate (e.g., 20.48 MHz) provided by the MCU is also required. The timer period must be configurable by the Wireless Core. The timer priority must be the highest in the system. It must exceed the radio’s IRQ and SPI DMA IRQ priority.

See Hardware Platform Requirements

Certification

To use the certification mode with dual radio, the swc_set_multi_radio_select_mode function can be used to select which radio to use. Otherwise, only the main radio would transmit packets.

Topology

In any topology, the link between two Nodes can be either unidirectional or bidirectional. A given Node should always receive frames from its syncing Node at least every 10 ms in order to maintain synchronization on the network. Note that the topology of the network is entirely defined by the user configuration. Different topologies are discussed in the sections that follow.

See also

For the 10 ms synchronization limit, its loss-tolerance margin, and how the beacon (sync timeslot) maintains it, see Sync Timeslot (Beacon).

Note

Routing is not currently supported by the Wireless Core and must be handled by the application.

Star Network Topology

In a star network, all communications are established directly between a central Node configured as Coordinator and several other Nodes.

See also

For how the frame period, per-node bandwidth, and latency scale as nodes are added to a star network, see Star Network Scaling.

Figure not found: Star Network Topology

Figure 64: Star Network Topology

Peer-to-Peer Network Topology

In a peer-to-peer network, each Node can communicate with any other Node, but the Coordinator must send a frame to every other Node at least every 10 ms to maintain synchronization (see Sync Timeslot (Beacon) for the margin behind this limit). In most cases, this frame will be sent in the form of a broadcast and is often referred to as a beacon.

Figure not found: P2P Network Topology

Figure 65: P2P Network Topology

Cluster Tree Network Topology

In a cluster tree network, Nodes can sync on a child Node of the Coordinator rather than on the Coordinator itself. The support of this configuration is still limited and the relaying of a frame through multiple Nodes must be handled by the application.

Figure not found: Cluster Tree Network Topology

Figure 66: Cluster Tree Network Topology

Concurrency

The Wireless Core supports a set of features that can be used to optimize link quality in environments where interferences from other devices are present. Those devices can either be other SPARK-enabled devices or not, such as Wi-Fi routers. The concurrency features are described in the next sections.

See also

For how these concurrency features affect schedule design, see Concurrency Considerations.

Personal Area Network ID (PAN ID)

The PAN ID, is used to logically split the addressing space into networks. This ensures that transceivers with a certain PAN ID do not receive frames sent by devices that have a different PAN ID, even if the destination node address matches.

Channel Sequence Randomization

A random channel sequence can be generated by the Wireless Core to reduce the probability of collisions in the frequency domain. The sequence is generated using the PAN ID as the seed and overrides the channel sequence specified by the user. Other channel properties are maintained.

Note

The Wireless Core will override the channel sequence provided by the user with its own auto-generated random sequence when this feature is enabled.

Clear Channel Assessment (CCA)

Clear Channel Assessment (CCA) is a mechanism used to determine if a given frequency is currently in use or not. This mechanism is used by the Wireless Core to avoid collisions resulting from concurrent transmissions. Collision avoidance is achieved by delaying the transmission within the same timeslot. If the connection’s timeslot ends and the CCA did not succeed, the transmission can be postponed to the next connection’s timeslot or it can be transmitted anyways depending on the CCA configuration.

See also

The retry_time delay is quantized at the register level. See CCA Retry Delay Quantization for the per-radio quantization step and configuration guidance.

CCA Fail Action

Each CCA-enabled connection configures a fail action (fail_action in swc_connection_concurrency_cfg_t) that decides what happens when all try_count CCA attempts fail (channel remains busy):

  • SWC_CCA_ABORT_TX — abort the transmission. The packet is not sent in this timeslot and stays in the TX queue. The Wireless Core will attempt to send it again at the connection’s next timeslot. This avoids risking a collision with another device on the channel, at the cost of one inter-opportunity gap of extra latency.

  • SWC_CCA_FORCE_TX — do all try_count CCA readings; if all fail, apply one more retry_time delay without any CCA reading and then transmit anyway. This bounds the worst-case in-slot delay to N x retry_time + airtime and, more importantly, lets the connection keep transmitting when CCA reports the channel busy for reasons that are not an actual in-band transmission (see the note below). The trade-off is a higher risk of colliding with a real transmission from another device (typically a node of a concurrent network) that genuinely owns the channel.

Note

Fail action and the maximum try count. Both fail actions perform exactly try_count CCA readings; the fail action only decides what happens after the last reading fails. On SR1120, however, the two actions do not share the same maximum try_count: SWC_CCA_ABORT_TX allows up to 16 tries while SWC_CCA_FORCE_TX is capped at 15. On SR1000 the retries are software-driven, so no such per-action cap applies.

Note

Why FORCE_TX exists. CCA is an energy detector and is deliberately very sensitive, and the receiver listens over a bandwidth wider than the transmit bandwidth. As a result, CCA often reports the channel busy when there is no real in-band transmission to collide with, for example:

  • strong energy in an adjacent band bleeding into the wide CCA measurement window, or

  • receiver saturation from a nearby strong emitter, which produces harmonics that fall in our band and are read as in-band energy.

In these conditions SWC_CCA_ABORT_TX keeps deferring the packet even though the channel is actually usable, which can stall the link. SWC_CCA_FORCE_TX lets the link push the frame through. Use it when favoring latency matters more than avoiding a collision, accepting the risk of colliding with a genuine transmission from another network, which would corrupt both transmissions.

CCA fail-action comparison: ABORT_TX vs FORCE_TX

Figure 67: Comparison of SWC_CCA_ABORT_TX and SWC_CCA_FORCE_TX for the same scenario (three CCA attempts, channel busy for all three). ABORT_TX bounds the slot’s CCA time but adds an inter-opportunity gap of latency; FORCE_TX bounds total latency in the slot but risks collision.

See also

Detailed CCA timing values (on-time, default retry configurations, worst-case formulas per platform) are in the CCA Timing section of the latency documentation.

Random Datarate Offset Protocol (RDO)

The Random Datarate Offset (RDO) feature intentionally adds a small amount of jitter to the link timings. This timing offset helps CCA performance in situations where devices listen at the same time and then transmit at the same time. The offset does not affect the overall link throughput and has the most impact when concurrent networks have the exact same schedules.

The jitter magnitude is user-configurable via swc_init_rdo(rollover_value, step_ms) and enabled with swc_enable_rdo. The maximum offset added per timeslot is bounded by the configured rollover_value; the step at which the offset is updated is controlled by step_ms.

See also

RDO appears in the Wireless Latency jitter sources table as a bounded per-slot jitter contribution.

Distributed De-Synchronization Concurrency Algorithm (DDCM)

The Distributed De-Synchronization algorithm aims to optimize the air-time allocation of concurrent networks by de-synchronizing the Coordinator of an network from other transmissions. To do so, the transmission will be delayed to reduce the amount of CCA retry required for a transmission. To ensure that the node stays synchronized to the Coordinator, only a small amount of delay is applied for each transmission. By default, this delay is 48 PLL cycles (~2.34 us at 20.48 MHz).

This small per-slot delay is what applies during normal, healthy operation of the link. Once transmissions succeed regularly, DDCM keeps injecting this ~2.34 us offset per TX slot on the network node to spread concurrent networks apart in the time domain.

If the link degrades to the point where no successful transmission is achieved for a certain period, a larger recovery offset of 1024 PLL cycles (~50 us at 20.48 MHz) is applied instead to help the node find a free slot in the air-time allocation. This larger offset only kicks in during link recovery and does not contribute to per-packet latency during normal data streaming.

This algorithm works particularly well when all networks timeslot durations are integer multiples of each other. For example, a network with timeslots of 100 us (10 kHz) will work well with a network with timeslots of 200 us (5 kHz). When timeslots are not integer multiples, the algorithm struggles to maintain the optimal phase between networks.

See also

The steady-state ~2.34 us DDCM offset appears in the Wireless Latency jitter sources table. See Wireless Latency for how it composes with the other per-slot components.

Here is an example from the Kuramoto-Desync Model:

figure not found: kuramoto-Desync

Figure 68: Kuramoto-Desync Model

Sleep Modes

SPARK transceivers support 3 sleep modes which are, from the lightest to the deepest, idle, shallow and deep. The transceiver will automatically fall into the selected sleep mode once it has completed a transmission or reception and wake up for the next event, enabling considerable power savings. The deeper the sleep mode, the higher the wake-up delay is. This has to be taken into consideration when configuring the timeslots duration. For example, the idle sleep mode will enable the use of shorter timeslots since the transceiver can wake up much faster than when using the other sleep modes. Please refer to the transceiver’s datasheet for more information on sleep modes.

See also

For how each sleep mode’s wake-up delay sets the minimum timeslot duration, see Timeslot Sizing.

Table 63: SR1100 Sleep Modes Wake-Up Delay

Sleep Mode

Wake-Up Delay (us)

Idle

0.5

Shallow

62

Deep

3062

Important

Shallow sleep usage requires the timeslots duration to be higher than 185 us. Deep sleep usage requires the timeslots duration to be higher than 3062 us.

Table 64: SR1000 Sleep Modes Wake-Up Delay

Sleep Mode

Wake-Up Delay (us)

Idle

0.5

Shallow

62

Deep

3062

Important

Shallow sleep usage requires the timeslots duration to be higher than 185 us. Deep sleep usage requires the timeslots duration to be higher than 3062 us.

Note

The sleep modes can only be set globally for all timeslots since the transceiver can’t switch between modes without losing synchronization. Consequently, the Wireless Core must be completely reset and reconfigured to be able to change the global sleep mode setting. Doing so requires a considerable amount of time (several milliseconds), so application downtime is to be expected if it must be done at runtime.

Modulation

The SR1100 support four different modulations. Each of these modulation schemes has its benefits and drawbacks. For example, it will take half the time to transmit a frame in IOOK when compared to 2-bit PPM, but a better link budget is expected when using 2-bit PPM.

The coding for both these schemes is shown below:

  • IOOK: Use IOOK modulation for high data rate applications.

  • OOK: Use OOK modulation for low power applications.

  • 2-bit PPM: Use 2-bit PPM to obtain higher link budget.

  • PPM: Use PPM for maximum link budget at the cost of maximum power.

Two modulation schemes are available which are Inverted On-Off Keying (IOOK) and 2-bit Pulse Position Modulation (2-bit PPM). Each of these modulation schemes has its benefits and drawbacks. For example, it will take half the time to transmit a frame in IOOK when compared to 2-bit PPM, but a better link budget is expected when using 2-bit PPM.

The coding for both these schemes is shown below:

  • IOOK: Use IOOK modulation for high data rate applications.

  • 2-bit PPM: Use 2-bit PPM to obtain higher link budget.

figure not found: Modulation bit sequence

Figure 69: Modulation bit sequence

Symbol Averaging / Chip Repetition

The chip repetition parameter is a setting at the PHY (Physical) layer, determining the level of redundancy applied to each chip within a frame. For all chip modulation codes except for OOK modulation codes, this parameter dictates the number of times each chip is repeated to construct a symbol within the frame data. The frame data encompasses every symbol following the Start-of-Frame Delimiter (SFD), without exception.

Table 65: Symbol averaging factor

Chip Repetition

Frame Inflation Rate

0

x1

1

x2

2

x3

3

x4

By allowing multiple repetitions of chips, this feature offers a trade-off between bandwidth, energy consumption, and increased link margin. This trade-off enables achieving a significant boost in link margin, which might not be achievable otherwise.

Forward Error Correction (FEC) Ratio

The goal of the FEC is to correct errors which might occur during over-the-air transmissions, making the RF link more resilient. To do so, redundant bits are automatically added to the bitstream before it is sent out by the transmitter. Since the frame size increases because of the extra bits, the air time also increases which may impact the minimal timeslot length required and the concurrency performance. The output power settings must be also be considered, as more overall energy is outputted.

See also

For the quantitative effect of the FEC ratio on frame airtime (fixed overhead and per-byte slope), see Packet Airtime.

The SPARK Radio can support many ratios of FEC. Each ratio is defined by its redundancy rate. The redundancy rate is the factor by which the frame size is inflated. The FEC ratio 1 corresponds to disabling it, and as such, will not inflate the frame. At its maximum ratio, the FEC will double the frame size.

Table 66: SR1100 Forward Error Correction Rates

FEC Level

Frame Inflation Rate

0

x1

1

x1.25

2

x1.375

3

x1.5

4

x1.625

5

x1.75

6

x1.875

7

x2

Table 67: SR1000 Forward Error Correction Rates

FEC Level

Frame Inflation Rate

0

x1

1

x1.334

2

x1.667

3

x2

Inter-Symbol Interference (ISI) mitigation

ISI mitigation is a parameter of the SPARK Radio that ensures seamless data exchange by managing Inter-Symbol Interference. It is achieved by adding ISI mitigation pauses, which are brief intervals inserted before each symbol to prevent interference caused by the channel impulse response extending beyond one chip clock period. These pauses help separate symbols, ensuring data integrity.

Users can adjust the number of ISI mitigation pauses using a PHY layer parameter. This parameter determines the frequency of pauses.

Different values provide flexibility in managing ISI. Options like ISI Mitigation level 1 or 2 allow users to observe channel responses while conserving bandwidth and energy by adjusting the number of pauses. This adaptability is crucial for environments where ISI risk may vary over time.

Table 68: ISI Mitigation Recommendations

ISI Mitigation Level

Use cases

0

Ideal for environments with minimal ISI risk.

1

Suitable when ISI risk is low but may increase over time.

2 and 3

Useful for observing channel responses and making informed decisions to optimize bandwidth and energy usage.

In essence, ISI mitigation ensures reliable data transmission by strategically managing interference, providing users with the flexibility to adapt to changing channel conditions while optimizing performance at the cost of increased air time.

Over-The-Air Chip Rate

The chip rate setting determines the frequency at which the internal chip clock operates within the transceiver. This frequency directly affects the rate at which data is transmitted over the air.

Users can select from three available clock frequencies, depending on the radio model.

Table 69: SR1100 Available Chip rates

Chip Rate value

Frequency (MHz)

0

20.48

1

27.30

2

40.96

Table 70: SR1000 Available Chip rates

Chip Rate value

Frequency (MHz)

0

20.48

The chip rate optimizes data transmission by controlling the internal chip clock frequency, ultimately influencing the timing and efficiency of communication over the airwaves at the cost of immunity to Inter-Symbol Interference.

Stop and Wait

The Stop and Wait control mechanism handles frame retransmissions automatically when a frame is not acknowledged. The acknowledgements on the connection must be enabled to use this feature. There are two modes for the Stop and Wait mechanism: “Retry Count” and “Deadline”. The first mode will count the number of retransmission attempts before deciding to discard a frame. The second mode will discard a frame if it is not delivered after a certain amount of time. The timeout for the second mode is set in number of ticks. The tick duration is defined by the user depending on the HAL implementation.

For a guaranteed delivery quality of service, both timeout settings must be set to 0. That way, the stop and wait module will retransmit the frame indefinitely until the frame is acknowledged. This mode is used both for non-real-time transfers (e.g. file transfers, firmware updates) and for real-time audio and video streaming. When it is used with a real-time stream, the Wireless Core keeps retrying the head packet, and any frame drop is handled upstream by the application layer (typically the audio pipeline).

See also

For the latency impact of each Stop-and-Wait mode (best-effort, retry count, deadline, guaranteed) with a side-by-side timeline, see Retransmission Impact (Stop-and-Wait ARQ).

Credit-Based Flow Control

The credit-based flow control mechanism provides flow control for data rate transmission. Prevents the network from losing frames in case of congestion, as in the following scenario.

figure not found: Credit Flow Control use case

Figure 70: Credit Flow Control use case

To control the flow, the frame header contains a field with the number of credits. The credit value will represent the number of packets that device can send during the connection. Each packet transmission consumes one credit. When the credit reaches zero, the receiver must grant more credits to allow more packets to be sent. If there are no available credits, the device may send a frame with only header data to update the current credit status. The acknowledgements on the connection must be enabled to use this setting. An example credit flow control sequence is presented below.

figure not found: Credit Flow Control sequence

Figure 71: Credit Flow Control sequence

Frame Fragmentation

The frame fragmentation mode enables users to transmit payloads that exceed the maximum payload size of the connection. The Wireless Core will automatically segment the application payload into multiple fragments and enqueue them as multiple frames in the connection’s TX queue. Upon reception, fragments are buffered in the RX queue until the last fragment is received. The reception of the last fragment triggers reconstruction of the frame and the Wireless Core then notifies the user through an RX callback. The biggest payload that can be sent is limited by the size of the connection queue and the connection’s maximum payload size. The fragmentation adds 4 bytes to the header of the first fragment and 2 bytes to the header of subsequent fragments.

Every fragment carries a control byte (identifying the transaction and the fragment type) and a fragment index. The first fragment additionally carries the total size of the reassembled payload, so the receiver can size its reassembly buffer before the remaining fragments arrive. This extra 2-byte size field is what makes the first fragment’s header 4 bytes instead of 2. The following table summarizes the header content of each frame type:

Table 71: Fragmentation header composition

Frame type

Header size

Header fields

Non-fragmented frame

1 byte

Control byte

First fragment

4 bytes

Control byte, fragment index, total payload size (2 bytes)

Subsequent fragment (middle or last)

2 bytes

Control byte, fragment index

See also

For how fragmentation multiplies per-payload latency and a timeline diagram of the multi-slot delivery, see the Fragmentation section in the latency documentation.

For how fragmentation consumes TX timeslots and reduces the effective payload capacity in a schedule, see Fragmentation Impact.

Fallback Mode

The Wireless Core gives the user the possibility to define alternative settings for a packet size smaller or equal to the threshold. This allows an increase of power and CCA try count when the application reduces its throughput by providing smaller payloads. This fallback capability can be enabled using the swc_connection_set_fallback_cfg API call. The CCA try count can be set using the cca_try_count parameter. The fallback channel settings are recommended to be configured with swc_channel_list_init (or swc_channel_list_init_from_base) and applied using swc_connection_set_fallback_channels. This allows the system to tradeoff throughput for increased range or robustness in suboptimal environmental conditions. See Configure Fallback for more details.

Connection Priority

The Wireless Core allows the user to set a priority for each defined connection. This priority is used by the Wireless Core to determine which connection should be scheduled first when multiple connections are assigned to the same timeslot.

The priority is set by the user when the connection is created, while the connection’s ID is defined by the order in which the connections are initialized. The ID is used by the receiver to decode the incoming frame and determine which connection it belongs to. Both devices need to initialize the connections in the same order to ensure that the connection ID matches on both sides. The priority of a connection is independent of its ID, so a connection with a higher ID can have a higher priority than a connection with a lower ID.

See also

For the latency impact of priority contention (blocking rate, extended gap, expected extra wait) and a timeline diagram of how a high-priority connection steals slots from a lower-priority one, see the Priority Blocking section in the latency documentation.

For using priority to share timeslots between connections when designing a schedule (with an audio + data example), see Connection Priority and Timeslot Sharing.

When preparing to receive a frame on a timeslot with multiple connections, the receiver is not aware of which connection the incoming frame will belong to. Therefore, the radio will be configured with the parameters of the first connection added to that timeslot. If the reception is successful, the Wireless Core will check which connection the received frame belongs to and update it accordingly.

This means that all connections must have compatible parameters. Specifically:

  • All local addresses should match (TX source address and RX destination address).

  • All connections should have the same acknowledgement settings (acknowledgement enabled or disabled, stop and wait).

  • All connections should have the same MAC header features enabled.

    • Connection priority

    • Credit-based flow control

    • RDO

    • etc.

  • All connections should have the same Fragmentation settings.

  • All connections should have the same frame configuration (modulation, FEC).

For some parameters, the wireless core will automatically use the biggest value among the connections linked to the same timeslot. This is the case for the maximum payload size and the CCA retry parameters.

If auto-reply connections are used, only one remote device can be linked to a timeslot. Otherwise, any connection can be linked to any device on the network.

Here are some use cases:

  1. Audio streaming with periodic data payload.

    In this use case, an audio streaming application uses about 75% of the transmission timeslots which gives it 25% of re-transmission margin. This connection transmits time sensitive payloads, so it should be the highest priority. The data connection can then be set to a lower priority and would only be transmitted on timeslots not used by the audio connection.

    • If the link quality degrades, the audio connection will use a bigger percentage of the transmission timeslots. This could limit the ability of the data connection to transmit its payload.

    • This use case allows the audio connection to stop transmitting its payload if nothing needs to be transmitted (audio paused) since the data connection would keep the sync between the Coordinator and the Node. When the audio connection is idle, the data connection becomes the only synchronization source, so its period must not exceed 10 ms (see Sync Timeslot (Beacon)): at 10 ms the node tolerates the loss of one data frame, and shorter periods add tolerance.

  2. Star Network with a periodic beacon.

    In this use case, a Coordinator transmits data to one node and receives data from other nodes. To maintain the synchronization of all the nodes in the network, a beacon must be sent periodically to all the nodes, respecting the beacon margin rule (see Sync Timeslot (Beacon)). The beacon can be added to one of the dongle’s transmission timeslots as the highest priority to guarantee its transmission.

  3. Multiple low frame rate connections.

    In this use case, multiple low frame rate connections can share one timeslot. For example, three connections generating 500 packets per second could share one 2000 frames per second timeslot.

Auto-Sync

Auto-sync is a per-connection feature of the Coordinator’s TX connections. When enabled, the Wireless Core automatically transmits a header-only sync frame whenever the connection’s transmission queue is empty at the start of one of its transmission timeslots, instead of keeping the transceiver asleep. This guarantees a minimum transmission rate from the Coordinator on that connection, so the Nodes always receive synchronization frames within the beacon interval limit (see Sync Timeslot (Beacon)) even when the application has no data to send.

The intended use is a dedicated low rate beacon connection: a connection whose application traffic is sparse or absent, but whose timeslots must still provide the network synchronization reference. Such a connection can have a FIFO size of 0 and rely entirely on auto-sync to generate its frames.

Warning

Auto-sync trades power and spectrum usage for synchronization robustness. Every otherwise-idle timeslot of the connection becomes a transmission: the transceiver wakes and transmits instead of sleeping, increasing the Coordinator’s power consumption, and the sync frames occupy air time on every idle timeslot, increasing the over-the-air channel occupancy seen by concurrent networks (more CCA failures for neighbors). Do not enable auto-sync on high-timeslot-count connections as a substitute for a properly paced beacon; enable it on a connection whose timeslot allocation matches the desired beacon rate.

To enable this feature, see Configure Auto Synchronization.

Latency optimization

The Wireless Core provides an optional optimization to reduce the latency of a specific connection by delaying the transceiver’s wake-up when there is no data available for transmission.

See Optimized Latency Feature for a detailed description of the mechanism, constraints, and impact on latency.

See also

For the full mechanism (with diagram), schedule constraints, and compatibility restrictions, see Optimized Latency Feature in the wireless latency documentation.

Frame Structure

There are three types of frames that can be generated by the Wireless Core which are data frames, sync frames and acknowledgement frames. It’s important to note that a few bytes of the PHY payload will be utilized for the MAC layer. The exact number of bytes depends on the configured header for the specific connection.

Data frames

Data frames contain an application payload. They can be sent as main frames or in an auto-reply.

figure not found: Data Frame

Figure 75: Data frame

figure not found: Data Frame

Figure 76: Data frame

Sync frames

Sync frames are used when auto-sync mode is enabled on a connection. When the queue of a connection is empty, a frame containing only a header will be sent to keep the network synchronized.

figure not found: Sync Frame

Figure 77: Sync frame

figure not found: Sync Frame

Figure 78: Sync frame

Acknowledgement frames

Acknowledgement frames can only be sent in an auto-reply. This type of frame does not contain a payload.

figure not found: Acknowledgment Frame

Figure 79: Acknowledgment frame

figure not found: Acknowledgment Frame

Figure 80: Acknowledgment frame

Header Configuration

The Wireless Core packet header is composed of a variable amount of fields which are determined at connection creation, and depends on the enabled features. Fields are sub-byte packed (bit-level) and some have dynamic sizes that depend on the configuration. Here is the list of possible fields:

Note

The header format changed in SDK 2.3. Prior versions used fixed-size fields (e.g. 7-bit Timeslot ID, 1-bit Stop and Wait, 8-bit Channel Index) and included a dedicated Header Size field. Applications built with SDK versions earlier than 2.3 are not over-the-air compatible with 2.3+ unless legacy mode is used. Starting with SDK 2.4, a legacy header mode is available to maintain over-the-air compatibility with devices running SDK versions prior to 2.3.

Table 72: List of Header Fields

Configuration

Description

Size (bits)

Mandatory

Timeslot ID

See Schedule section.

Dynamic

Yes

Stop and Wait

See Stop and Wait section.

2

Yes

Channel Index

See Channel section.

Dynamic

Yes

Random Datarate Offset

See Random Datarate Offset Protocol (RDO) section.

8

No

Dynamic PHY Mode

See Dynamic parameter change section.

8

No

Ranging Responder

Phase data sent by the ranging responder.

8 or 40

No

Ranging Initiator

Phase data sent by the ranging initiator.

8 or 40

No

Connection ID

See Connection Priority section.

Dynamic

No

Credit Flow Control

See Credit-Based Flow Control section.

Dynamic

No

Certification Mode

The SPARK Wireless Core provides users with the capability to activate certification mode. In this mode, the device utilizes application-defined settings to transmit at maximum power during all designated timeslot using the maximum payload size defined for each connections. Additionally, certification mode emulates the transmission of auto-reply payloads, if applicable to reflect a normal utilization of the rf channel even without being paired to any other devices.

If Connection Priority is used, the wireless core initialization must be modified to be able to certify low priority connections. The certification mode will enqueue packets on the first connection assigned to a timeslot. To certify a connection, it must thus be assigned first to a timeslot and its priority must be the highest.

See UWB Certification for more information.

Data Validation

The transceiver implements multiple layers of data protection in a frame to ensure proper transmission. These mechanisms are handled automatically by the Wireless Core.

CRC

A frame with a failing cyclical redundancy check (CRC) is discarded and not acknowledged.

Address filtering

Only frames with destination address matching the local address are passed on to the Wireless Core. Frames with a non-matching address are discarded by the transceiver.

SFD match

Frames with the wrong SFD are automatically discarded by the transceiver.

Max frame size

Each connection has a maximum frame size. If a larger frame is received, it will automatically be discarded to avoid buffer overflows.