Skip to content

Commit 3388ac2

Browse files
committed
fixup! rdm/radio_hal: add radio HAL design document
1 parent dff8c77 commit 3388ac2

File tree

1 file changed

+57
-4
lines changed

1 file changed

+57
-4
lines changed

doc/memos/rdm-draft-alamos-ieee802154-radio-hal.md

Lines changed: 57 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -848,20 +848,73 @@ typedef enum {
848848
A 802.15.4 HAL implementation MUST indicate all capabilities supported by the
849849
device and driver implementation.
850850

851-
# 7 Acknowledgements
851+
# 7 Future proof considerations
852+
853+
The Radio HAL is designed to be agnostic to the 802.15.4 MAC version on top.
854+
However, it is important to mention that most radio devices are optimized for a
855+
single version of the standard. In practice, hardware accelerations are usually
856+
not interchangeable between different versions of 802.15.4. As an example,
857+
devices that support frame retransmissions for IEEE802.15.4 2006 don't support
858+
Enhanced Beacons required by the TSCH layer of the 2012 standard.
859+
860+
In order to implement future versions of the 802.15.4 standard, the radio HAL
861+
adapts some principles defined in the following sections
862+
863+
## Transmission modes
864+
865+
The HAL defines three transmission modes:
866+
- Direct transmission: the packet is sent immediately, without CCA or CSMA-CA
867+
- CCA transmission: the packet is sent using CCA
868+
- CSMA-CA transmission: the packet is sent using CSMA-CA
869+
870+
The "transmit" function provides a "mode" argument to specify which
871+
transmission mode should be used.
872+
873+
A HAL implementation can implement several TX modes, but MUST implement at
874+
least one.
875+
876+
It is recommended that a HAL implements the TX mode that fits best the internal
877+
capabilities. However, implementing "Direct Transmission" mode is desired for
878+
certain modes of the 802.15.4 MAC (slotted operation) or versions beyond the
879+
capabilities of the hardware.
880+
881+
As an example, radios that support frame retransmissions with CSMA-CA for
882+
IEEE802.15.4 2006 frames would benefit from a "CSMA-CA transmission" mode.
883+
However, a "Direct Transmission" implementation would be required to support
884+
TSCH (2012 standard) in those radios.
885+
886+
## PHY definition
887+
888+
PHY definitions are specific to a 802.15.4 version. Older standards use to
889+
define PHY channels with a channel number. In modern standards, channels are
890+
defined using a (`channel number`, `channel page` and `channel modulation`)
891+
tuple.
892+
893+
The `config_phy` function receives a pointer to a `ieee802154_phy_conf_t`
894+
structure that describes the PHY configuration. The proposed structure is
895+
compliant with the 2012 standard. In order to support the 2015 standard, a
896+
channel modulation member can be added at any time without breaking the Radio
897+
HAL API.
898+
899+
## Functionalities specific to modern standards
900+
901+
The Radio HAL ops can be extended to support certain functionalities present in
902+
newer standards, such as Listen Before Talk (supported by SubGHz radios).
903+
904+
# 8 Acknowledgements
852905

853906
Thanks to Peter Kietzmann, Leandro Lanzieri and Martine Lenders for their
854907
reviews, comments and suggestions.
855908

856-
# 8 References
909+
# 9 References
857910

858911
- [Uniform Network Stack Integration](https://github.com/RIOT-OS/RIOT/issues/13771)
859912
- [Top and Bottom Halves](http://www.makelinux.net/ldd3/chp-10-sect-4.shtml)
860913

861-
# 9 Revision
914+
# 10 Revision
862915

863916
- Rev0: initial document
864917

865-
# 10 Contact
918+
# 11 Contact
866919

867920
The author of this memo can be contacted via email at [email protected]

0 commit comments

Comments
 (0)