In this installment of our technical discussion of the WirelessHART protocol, we present a walk through of the slot timing utilized by the data link layer.
The figure below shows the slot timing of both the source and destination of the packet. Green represents receiving while blue represents transmitting. Notice both the source and destination spend some part of the slot in receiving mode and transmitting mode.
Place yourself in your favorite espionage story (be it WWI, WWII, cold war or more recent). Two spies have arranged to meet on opposite sides of a wall so one can tap out a secret message to the other. They can only stay at the wall for a limited time before drawing attention to themselves. Let’s examine the actions of the spy delivering the message (the Source) first.
He arrives at the wall at the designated time, and waits briefly to make sure his co-conspirator has arrived on the other side (TsCCAOffset). He then listens to make sure there is no other noise to interfere (TsCCA). Taking out a pencil (TsRxTx), he begins tapping out the message precisely at the time his watch indicates he should (TsTxOffset) making sure he gets done well before the allotted time is up (TsMaxPacket). Putting away his pencil and placing ear to wall (TsRxAckDelay), he listens for an acknowledgment from the other side. He can’t wait too long, though (TsAckWait). If he fails to receive an acknowledgement, he knows the message did not get through.
Now let’s examine the actions of the recipient (the Destination). She arrives on her side of the wall at the designated time. She knows she must be listening and ready to record the message within a certain time limit (TsRxOffset). She knows exactly when the message should begin. She records the time the message begins, noting her co-conspirator is slightly out of sync (TsError). If he had not started the message within a given time, she would not have waited (TsRxWait). Once the message is complete, she puts away her notebook (TsTxAckDelay) and taps out an acknowledgement (TsAck).
|TsTxOffset||Start of the slot to start of preamble transmission.|
|TsRxOffset||Start of the slot to when transceiver must be listening.|
|TsRxWait||The minimum time to wait for start of message. This correlates to the amount of drift between the neighbors that can be tolerated and communications still be maintained.|
|TsError||This is the difference between the actual start of message and the ideal start of message time as perceived by the receiving device. In other words, this is how much the receiving device perceives the transmitting device to be out of sync.|
|TsMaxPacket||The amount of time it takes to transmit the longest possible message (includes PhL preamble, delimiter, length and DLPDU|
|TsTxAckDelay||End of message to start of ACK. The destination device must validate the STX, and generate an ACK during this interval.|
|TsRxAckDelay||End of message to when transceiver must be listening for ACK.|
|TsAckWait||The minimum time to wait for the start of an ACK.|
|TsAck||Time to transmit an ACK.|
|TsCCAOffset||Start of slot to beginning of CCA.|
|TsCCA||Time to perform CCA.|
|TsRxTx||The longer of the time it takes to switch from receive to transmit or vice versa.|