arch/nrf52: add initial support for IEEE 802.15.4

Supported features:

- frame transmition
- frame reception and filtering
- immediate ACK (incoming and outgoing)
- promiscuous mode
- delayed transmision
- radio events trace
- setting pending bit for all incoming Data Request frames
- un-slotted CSMA-CA

Work in progres features (some logic is present, but they require more work):

- beacon transmision (periodic transmition works, but requires verification)
- slotted CSMA-CA
- GTS

Fetures not implemented:

- enhanced ACK (Enh-ACK)
- enhanced beacon
- low power mode
- advanced features from IEEE 802.15.4e (DSME, TSCH)

Added examples for boards:

- nrf52832-dk: mrf24j40_6lowpan
- nrf52832-dk: mrf24j40_mac
- nrf52840-dk: ieee802154_6lowpan
- nrf52840-dk: ieee802154_mac
- nrf52840-dongle: ieee802154_mac
- nrf9160-dk-nrf52: ieee802154_6lowpan
- nrf9160-dk-nrf52: ieee802154_mac
This commit is contained in:
raiden00pl
2024-02-16 21:17:42 +01:00
committed by Xiang Xiao
parent 3f763f5d69
commit b3b543e093
45 changed files with 6314 additions and 5 deletions
@@ -219,6 +219,7 @@
#define IEEE802154_MAX_PHY_PACKET_SIZE 127
#define IEEE802154_TURN_AROUND_TIME 12 /* symbol periods*/
#define IEEE802154_SYMBOL_US 16 /* 16us */
/* IEEE 802.15.4 MAC constants */
@@ -251,6 +252,11 @@
#define IEEE802154_MAX_SIFS_FRAME_SIZE 18
#define IEEE802154_MIN_CAP_LENGTH 440
#define IEEE802154_UNIT_BACKOFF_PERIOD 20
#define IEEE802154_LIFS_SYMBOLS 40
#define IEEE802154_SIFS_SYMBOLS 12
#define IEEE802154_ACKIFS_SYMBOLS 12
#define IEEE802154_TIMESLOT_US (16 * 60)
#define IEEE802154_ACK_FRAME_SIZE 5 /* ACK length (FCF + Seq + FCS) */
/* IEEE 802.15.4 MAC PIB Attribute Defaults */