about Sequence Number

I'm developing with the NRF52840 using IAR Embedded Workbench, and implementing wireless communication based on the IEEE802.15.4 Zigbee protocol.

In the MAC frame layer of IEEE802.15.4, there is a field called Sequence Number, which is used to identify the continuity and uniqueness of transmitted packets. I'm currently struggling with how to implement this.

In this development, the device uses the Deep Sleep feature, which means the Sequence Number needs to be retained even when the device is stopped. I have the following ideas for software and hardware design:

  1. Store the Sequence Number in the flash memory of the NRF52840. However, due to concerns about the limited number of write cycles, this approach may be difficult unless the write location is carefully managed.
  2. Add an external EEPROM to store the Sequence Number. But from a power-saving perspective, I would prefer to minimize the use of external devices.

What would be the most reasonable way to store the Sequence Number on the NRF52840?

  • Hi,

    Looking at that wireless UART sample, it looks like that sequence number is mainly for keeping track of the data sent? (I.e. bookkeeping for segmenting and reassembling the stream of UART data.) That would be separate from how sequence numbers are handled inside of the 802.15.4 library, which is where the sequence numbers mandated by the 802.15.4 specification would be. It doesn't look like that stack requires any external components. I need to check this more in-depth before we have a clear answer.

    Regards,
    Terje

  • Hello. I understand that if the system is always in "system on mode", the sequence number is maintained and does not need to be prepared by the user. The problem is how to memorize the sequence number when returning from "system off mode". For devices driven by kinetic harvesters, non-volatile memory such as EEPROM or FERAM must be prepared to memorize the sequence number. Thank you.
Related