## 3 Time-Slotted Channel Hopping
### Implementation Details  
When implementing TSCH, several requirements need to be met by the hardware and the software components integrating the target platform. Mandatory requirements include the ability to control when a first bit of a packet leaves the radio, as well as to be able to detect when the first bit of an incoming packet reaches the transceiver. This requirement enables to timestamp incoming packets and determine the clock drift of the current node with respect to its parent, provided that transmission and reception occur at well-known time slots (see Figure 2). The software and hardware are closely related and specific timers with capture registers become very useful when connected to the pins of the radio, thus enabling automatic time stamping. As nodes must be aligned to a time source neighbor, source addresses need to be verified before synchronization to avoid alignment with other network siblings. The IEEE 802.15.4e TSCH suggests the use of different guard times to tolerate certain misalignment at the cost of a higher duty cycle. The IETF 6 TiSCH working group recently defined some default values for guard times that enable to keep the network synchronized without a considerable synchronization overhead [15]. These values are typically close to a 1-ms guard time. Manufacturing differences, operating temperature and voltage supply differences cause any clock source to tick at a slightly different frequency. For example, if a 32,768 Hz crystal is rated 30 ppm (parts-per-million), it drifts by at most 30 \(us\) (microseconds) every second with respect to a perfect clock. If two motes are equipped with this crystal, they can drift apart by as much as 60 \(us\) every second; one \"going fast\" and the other \"going slow\". In this situation, it takes 16 s for those two motes to desynchronize by more than 1 ms. The IEEE 802.15.4e does not define the policy to maintain network \begin{table}
\begin{tabular}{l l} \hline
**IEEE 802.15.4e TSCH Parameter** & **Value** \\ \hline TsTxOffset & 4,000 \(\mu s\) \\ TsLongGT & 2,600 \(\mu s\) \\ TsTxAckDelay & 4,606 \(\mu s\) \\ TsShortGT & 1,000 \(\mu s\) \\ Time slot duration & 15,000 \(\mu s\) \\ \hline \end{tabular}
\end{table} 
Table 1: Time slot timing. TSCH, time-slotted channel hopping. synchronization (_i.e._, how often and when synchronization packets are sent). Synchronization occurs when a child node communicates with its parent or it receives a packet from it. Enhanced beacons (EB) can be used for network bootstrapping at an initial synchronization step; however, the duration of their period has a certain impact on the energy consumption of the network. The problem comes when the network is idle and still and, due to clock drifts, it needs to re-synchronize every few tens of seconds. A trade-off exists between the use of dedicated keep-alive packets with an empty payload sent at a short period between nodes or the use of EBs. As defined by [15], a minimal TSCH network EB will carry several information elements (IE), and the packet length will be close to 60 bytes. In that case, it becomes more efficient to send keep alive (KA) packets periodically and to increase the EB period to reduce the energy consumption. As defined by IEEE 802.15.4e, the synchronization process is achieved by receiving a packet from a time source neighbor (referred to as a packet synchronization) or transmitting a packet to it (referred to as an acknowledgment synchronization). In the first case, a node (parent) will transmit a packet at exactly _TsTxOffset_ from the beginning of the time slot (see Figure 2) to its child. When the first bit of the packet reaches the child's radio, it triggers a capture register on the child's timer, accounting for the relative time within the slot when the packet has been received. In an ideal world, the child node should capture exactly _TsTxOffset_. However, due to the clock drift, it will capture some slight difference value that indicates the current shift of this node with respect to its parent.