Contiki-NG
Toggle main menu visibility
Loading...
Searching...
No Matches
tsch-timeslot-timing.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018, RISE SICS.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. Neither the name of the Institute nor the names of its contributors
14
* may be used to endorse or promote products derived from this software
15
* without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
* This file is part of the Contiki operating system.
30
*
31
*/
32
33
/**
34
* \file
35
* IEEE 802.15.4 TSCH timeslot timings
36
* \author
37
* Simon Duquennoy <simon.duquennoy@ri.se>
38
*
39
*/
40
41
/**
42
* \addtogroup tsch
43
* @{
44
*/
45
46
#include "contiki.h"
47
#include "
net/mac/tsch/tsch.h
"
48
49
/**
50
* \brief TSCH timing attributes and description. All timings are in usec.
51
*
52
* CCAOffset -> time between the beginning of timeslot and start of CCA
53
* CCA -> duration of CCA (CCA is NOT ENABLED by default)
54
* TxOffset -> time between beginning of the timeslot and start of frame TX (end of SFD)
55
* RxOffset -> beginning of the timeslot to when the receiver shall be listening
56
* RxAckDelay -> end of frame to when the transmitter shall listen for ACK
57
* TxAckDelay -> end of frame to the start of ACK tx
58
* RxWait -> time to wait for start of frame (Guard time)
59
* AckWait -> min time to wait for start of an ACK frame
60
* RxTx -> receive-to-transmit switch time (NOT USED)
61
* MaxAck -> TX time to send a max length ACK
62
* MaxTx -> TX time to send the max length frame
63
*
64
* The TSCH timeslot structure is described in the IEEE 802.15.4-2015 standard,
65
* in particular in the Figure 6-30.
66
*
67
* The default timeslot timing in the standard is a guard time of
68
* 2200 us, a Tx offset of 2120 us and a Rx offset of 1120 us.
69
* As a result, the listening device has a guard time not centered
70
* on the expected Tx time. This is to be fixed in the next iteration
71
* of the standard. This can be enabled with:
72
* TxOffset: 2120
73
* RxOffset: 1120
74
* RxWait: 2200
75
*
76
* Instead, we align the Rx guard time on expected Tx time. The Rx
77
* guard time is user-configurable with TSCH_CONF_RX_WAIT.
78
* (TxOffset - (RxWait / 2)) instead
79
*/
80
81
const
tsch_timeslot_timing_usec
tsch_timeslot_timing_us_10000
= {
82
1800,
/* CCAOffset */
83
128,
/* CCA */
84
2120,
/* TxOffset */
85
(2120 - (TSCH_CONF_RX_WAIT / 2)),
/* RxOffset */
86
800,
/* RxAckDelay */
87
1000,
/* TxAckDelay */
88
TSCH_CONF_RX_WAIT,
/* RxWait */
89
400,
/* AckWait */
90
192,
/* RxTx */
91
2400,
/* MaxAck */
92
4256,
/* MaxTx */
93
10000,
/* TimeslotLength */
94
};
95
96
/** @} */
tsch_timeslot_timing_usec
uint16_t tsch_timeslot_timing_usec[tsch_ts_elements_count]
TSCH timeslot timing elements in micro-seconds.
Definition
tsch-types.h:145
tsch_timeslot_timing_us_10000
const tsch_timeslot_timing_usec tsch_timeslot_timing_us_10000
TSCH timing attributes and description.
Definition
tsch-timeslot-timing.c:81
tsch.h
Main API declarations for TSCH.
os
net
mac
tsch
tsch-timeslot-timing.c
Generated on
for Contiki-NG by
1.17.0