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.
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. |
- 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.
- 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:
- 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.
- 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.
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.
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.