@@ -848,20 +848,73 @@ typedef enum {
848
848
A 802.15.4 HAL implementation MUST indicate all capabilities supported by the
849
849
device and driver implementation.
850
850
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
852
905
853
906
Thanks to Peter Kietzmann, Leandro Lanzieri and Martine Lenders for their
854
907
reviews, comments and suggestions.
855
908
856
- # 8 References
909
+ # 9 References
857
910
858
911
- [ Uniform Network Stack Integration] ( https://github.com/RIOT-OS/RIOT/issues/13771 )
859
912
- [ Top and Bottom Halves] ( http://www.makelinux.net/ldd3/chp-10-sect-4.shtml )
860
913
861
- # 9 Revision
914
+ # 10 Revision
862
915
863
916
- Rev0: initial document
864
917
865
- # 10 Contact
918
+ # 11 Contact
866
919
867
920
The author of this memo can be contacted via email at
[email protected]
0 commit comments