14.2.2.3.2 Configuration of IEEE 802.15.4 Compliant Scenarios

Device not operating as a PAN Coordinator

The table below shows a typical AT86RF212B RX_AACK configuration of an IEEE 802.15.4 device operating as a normal device, rather than a PAN coordinator or router.

Table 14-10.  Configuration of IEEE 802.15.4 Devices
Register Address Register Bits Register Name Description

0x20,0x21

0x22,0x23

0x24

0x2B

SHORT_ADDR_0/1

PAN_ADDR_0/1

IEEE_ADDR_0

IEEE_ADDR_7

Setup Frame Filter
0x0C 7 RX_SAFE_MODE

0: Disable frame protection.

1: Enable frame protection.

0x2C 0 SLOTTED_OPERATION

0: Slotted acknowledgment transmissions are not to be used.

1: Slotted acknowledgment transmissions are to be used.

0x2E 7:6 AACK_FVN_MODE

Controls the ACK behavior, depending on FCF frame version number.

b00: Acknowledges only frames with version number 0, that is according to IEEE 802.15.4-2003 frames.

b01: Acknowledges only frames with version number 0 or 1, that is frames according to IEEE 802.15.4-2006.

b10: Acknowledges only frames with version number 0 or 1 or 2.

b11: Acknowledges all frames, independent of the FCF frame version number.

Note:
  1. The default value of the short address is 0xFFFF. Thus, if no short address has been configured, only frames with either the broadcast address or the IEEE address are accepted by the frame filter.
  2. In the IEEE 802.15.4-2003 standard the frame version subfield does not yet exist but is marked as reserved. According to this standard, reserved fields have to be set to zero. At the same time, the IEEE 802.15.4‑2003 standard requires ignoring reserved bits upon reception. Thus, there is a contradiction in the standard which can be interpreted in two ways:
  3. If a network should only allow access to nodes compliant to IEEE 802.15.4-2003, then AACK_FVN_MODE should be set to zero.
  4. If a device should acknowledge all frames independent of its frame version, AACK_FVN_MODE should be set to three. However, this may result in conflicts with co-existing IEEE 802.15.4-2006 standard compliant networks.

The same holds for PAN coordinators, see below.

PAN Coordinator

The table below shows the AT86RF212B RX_AACK configuration for a PAN coordinator.

Table 14-11. Configuration of a PAN Coordinator
Register Address Register Bits Register Name Description

0x20,0x21

0x22,0x23

0x24

0x2B

SHORT_ADDR_0/1

PAN_ADDR_0/1

IEEE_ADDR_0

IEEE_ADDR_7

Setup Frame Filter.
0x0C 7 RX_SAFE_MODE

0: Disable frame protection.

1: Enable frame protection.

0x2C 0 SLOTTED_OPERATION

0: Slotted acknowledgment transmissions are not to be used.

1: Slotted acknowledgment transmissions are to be used.

0x2E 3 AACK_I_AM_COORD 1: Device is PAN coordinator.
0x2E 5 AACK_SET_PD

0: Frame pending subfield is not set in FCF.

1: Frame pending subfield is set in FCF.

0x2E 7:6 AACK_FVN_MODE

Controls the ACK behavior, depends on FCF frame version number.

b00: Acknowledges only frames with version number 0, that is according to IEEE 802.15.4-2003 frames.

b01: Acknowledges only frames with version number 0 or 1, that is frames according to IEEE 802.15.4-2006.

b10: Acknowledges only frames with version number 0 or 1 or 2.

b11: Acknowledges all frames, independent of the FCF frame version number.

Promiscuous Mode or Sniffer

The promiscuous mode is described in IEEE 802.15.4-2006, Section 7.5.6.5. This mode is further illustrated in Figure 14-27. According to IEEE 802.15.4‑2006 when in promiscuous mode, the MAC sub layer shall pass received frames with correct FCS to the next higher layer and shall not process them further. This implies that received frames should never be automatically acknowledged.

In order to support sniffer application and promiscuous mode, only second level filter rules as defined by IEEE 802.15.4-2006, Section 7.5.6.2, are applied to the received frame.

The table below shows a typical configuration of a device operating in promiscuous mode.

Table 14-12. Configuration of Promiscuous Mode
Register Address Register Bits Register Name Description

0x20,0x21

0x22,0x23

0x24

0x2B

SHORT_ADDR_0/1

PAN_ADDR_0/1

IEEE_ADDR_0

IEEE_ADDR_7

Each address shall be set: 0x00.
0x17 1 AACK_PROM_MODE 1: Enable promiscuous mode.
0x2E 4 AACK_DIS_ACK 1: Disable generation of acknowledgment.
0x2E 7:6 AACK_FVN_MODE

Controls the ACK behavior, depends on FCF frame version number.

b00: Acknowledges only frames with version number 0, that is according to IEEE 802.15.4-2003 frames.

b01: Acknowledges only frames with version number 0 or 1, that is frames according to IEEE 802.15.4-2006.

b10: Acknowledges only frames with version number 0 or 1 or 2.

b11: Acknowledges all frames, independent of the FCF frame version number.

If the AT86RF212B radio transceiver is in promiscuous mode, second level of filtering according to IEEE 802.15.4-2006, Section 7.5.6.2, is applied to a received frame. However, an IRQ_3 (TRX_END) is issued even if the FCS is invalid. Thus, it is necessary to read the RX_CRC_VALID bit in the PHY_RSSI register (PHY_RSSI.RX_CRC_VALID) after IRQ_3 (TRX_END) in order to verify the reception of a frame with a valid FCS. Alternatively, bit[7] of byte RX_STATUS can be evaluated.

If a device, operating in promiscuous mode, receives a frame with a valid FCS which further passed the third level of filtering according to IEEE 802.15.4-2006, Section 7.5.6.2, and an acknowledgement (ACK) frame would be transmitted. But, according to the definition of the promiscuous mode, a received frame shall not be acknowledged, even if requested. Thus, the AACK_DIS_ACK bit in the CSMA_SEED_1 register (CSMA_SEED_1.AACK_DIS_ACK) must be set to one to disable ACK generation.

In all receive modes IRQ_5 (AMI) interrupt is issued, when the received frame matches the node’s address according to the filter rules described in the Frame Filter section

Alternatively, in state RX_ON (Basic Operating Mode), when a valid PHR is detected, an IRQ_2 (RX_START) is generated and the frame is received. The end of the frame reception is signalized with an IRQ_3 (TRX_END). At the same time the RX_CRC_VALID bit in the PHY_RSSI register (PHY_RSSI.RX_CRC_VALID) is updated with the result of the FCS check. According to the promiscuous mode definition the register bit RX_CRC_VALID needs to be checked in order to dismiss corrupted frames.

However, the RX_AACK transaction additionally enables extended functionality like automatic acknowledgement and non-destructive frame filtering.