From b24866225a6301d3a663f874725e83c012dc25d3 Mon Sep 17 00:00:00 2001 From: Florent Duchon Date: Wed, 26 Dec 2012 17:36:00 +0100 Subject: digital/beacon: add bitcloud stack into common directory digital/zigbit --- .../stack/Components/MAC_PHY/include/phy.h | 163 +++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 digital/zigbit/bitcloud/stack/Components/MAC_PHY/include/phy.h (limited to 'digital/zigbit/bitcloud/stack/Components/MAC_PHY/include/phy.h') diff --git a/digital/zigbit/bitcloud/stack/Components/MAC_PHY/include/phy.h b/digital/zigbit/bitcloud/stack/Components/MAC_PHY/include/phy.h new file mode 100644 index 00000000..24c87d81 --- /dev/null +++ b/digital/zigbit/bitcloud/stack/Components/MAC_PHY/include/phy.h @@ -0,0 +1,163 @@ +/**************************************************************************//** + \file phy.h + + \brief Types and constants declaration for IEEE std 802.15.4-2006 + PHY implementation. + + \author + Atmel Corporation: http://www.atmel.com \n + Support email: avr@atmel.com + + Copyright (c) 2008-2011, Atmel Corporation. All rights reserved. + Licensed under Atmel's Limited License Agreement (BitCloudTM). + + \internal + History: + 18/05/07 ALuzhetsky - Created. +******************************************************************************/ + +#ifndef _PHY_H +#define _PHY_H + +/****************************************************************************** + Includes section +******************************************************************************/ +#include + +/****************************************************************************** + Define(s) section +******************************************************************************/ +#define DBM_11 11 +#define DBM_10 10 +#define DBM_9 9 +#define DBM_8 8 +#define DBM_7 7 +#define DBM_6 6 +#define DBM_5 5 +#define DBM_4 4 +#define DBM_3 3 +#define DBM_2 2 +#define DBM_1 1 +#define DBM_0 0 +#define DBM_MIN_1 (-1) +#define DBM_MIN_2 (-2) +#define DBM_MIN_3 (-3) +#define DBM_MIN_4 (-4) +#define DBM_MIN_5 (-5) +#define DBM_MIN_6 (-6) +#define DBM_MIN_7 (-7) +#define DBM_MIN_8 (-8) +#define DBM_MIN_9 (-9) +#define DBM_MIN_10 (-10) +#define DBM_MIN_11 (-11) +#define DBM_MIN_12 (-12) +#define DBM_MIN_13 (-13) +#define DBM_MIN_14 (-14) +#define DBM_MIN_15 (-15) +#define DBM_MIN_16 (-16) +#define DBM_MIN_17 (-17) +#define DBM_MIN_18 (-18) +#define DBM_MIN_19 (-19) +#define DBM_MIN_20 (-20) +#define DBM_MIN_21 (-21) +#define DBM_MIN_22 (-22) +#define DBM_MIN_23 (-23) +#define DBM_MIN_24 (-24) +#define DBM_MIN_25 (-25) +#define DBM_MIN_26 (-26) +#define DBM_MIN_27 (-27) + +#define PHY_CHANNEL_0 0 +#define PHY_CHANNEL_1 1 +#define PHY_CHANNEL_2 2 +#define PHY_CHANNEL_3 3 +#define PHY_CHANNEL_4 4 +#define PHY_CHANNEL_5 5 +#define PHY_CHANNEL_6 6 +#define PHY_CHANNEL_7 7 +#define PHY_CHANNEL_8 8 +#define PHY_CHANNEL_9 9 +#define PHY_CHANNEL_10 10 +#define PHY_CHANNEL_11 11 +#define PHY_CHANNEL_12 12 +#define PHY_CHANNEL_13 13 +#define PHY_CHANNEL_14 14 +#define PHY_CHANNEL_15 15 +#define PHY_CHANNEL_16 16 +#define PHY_CHANNEL_17 17 +#define PHY_CHANNEL_18 18 +#define PHY_CHANNEL_19 19 +#define PHY_CHANNEL_20 20 +#define PHY_CHANNEL_21 21 +#define PHY_CHANNEL_22 22 +#define PHY_CHANNEL_23 23 +#define PHY_CHANNEL_24 24 +#define PHY_CHANNEL_25 25 +#define PHY_CHANNEL_26 26 + +#define PHY_SYMBOL_DURATION_PAGE_0_CHANNELS_0 50 ///< Symbol duration for channel 0 and BPSK modulation. +#define PHY_SYMBOL_DURATION_PAGE_0_CHANNELS_1_10 25 ///< Symbol duration for channels [1 - 10] and BPSK modulation. +#define PHY_SYMBOL_DURATION_PAGE_0_CHANNELS_11_26 16 ///< Symbol duration for channels [11 - 26] and OQPSK modulation. +#define PHY_SYMBOL_DURATION_PAGE_1_CHANNELS_0 80 ///< Symbol duration for channel 0 and ASK modulation. +#define PHY_SYMBOL_DURATION_PAGE_1_CHANNELS_1_10 20 ///< Symbol duration for channels [1 - 10] and ASK modulation. +#define PHY_SYMBOL_DURATION_PAGE_2_CHANNELS_0 40 ///< Symbol duration for channel 0 and OQPSK modulation. +#define PHY_SYMBOL_DURATION_PAGE_2_CHANNELS_1_10 16 ///< Symbol duration for channels [1 - 10] and OQPSK modulation. +//Chinese frequencies. +#define PHY_SYMBOL_DURATION_PAGE_5_CHANNELS_0_3 16 ///< Symbol duration for channels [0 - 3] OQPSK modulation. +//#define PHY_SYMBOL_DURATION_PAGE_5_CHANNELS_4_7 16 ///< Symbol duration for channels [4 - 7] MPSK modulation. Not supported. + +#define PHY_SYMBOL_DURATION_PAGE_20_CHANNELS_0_25 50 ///< Symbol duration for channels [0 - 25] and BPSK modulation. +#define PHY_SYMBOL_DURATION_PAGE_22_CHANNELS_0_25 40 ///< Symbol duration for channels [0 - 25] and OQPSK modulation. + +// PHY PIB attribute read only parameters. +#define PHY_SYMBOLS_PER_OCTET_PAGE_0_CHANNELS_0 8 +#define PHY_SYMBOLS_PER_OCTET_PAGE_0_CHANNELS_0_10 8 +#define PHY_SYMBOLS_PER_OCTET_PAGE_0_CHANNELS_11_26 2 +//#define PHY_SYMBOLS_PER_OCTET_PAGE_1_CHANNELS_0 (2/5) +//#define PHY_SYMBOLS_PER_OCTET_PAGE_1_CHANNELS_1_10 (6/3.75) +#define PHY_SYMBOLS_PER_OCTET_PAGE_2_CHANNELS_0 2 +#define PHY_SYMBOLS_PER_OCTET_PAGE_2_CHANNELS_0_10 2 +//Chinese frequencies. +#define PHY_SYMBOLS_PER_OCTET_PAGE_5_CHANNELS_0_3 2 +//#define PHY_SYMBOLS_PER_OCTET_PAGE_5_CHANNELS_4_7 2 // Not supported. + +#define PHY_SYMBOLS_PER_OCTET_PAGE_20_CHANNELS_0_25 8 +#define PHY_SYMBOLS_PER_OCTET_PAGE_22_CHANNELS_0_25 2 + +// Size of frame fields +#define PHY_FRAME_LENGTH_FIELD_SIZE 1 +#define PHY_FCS_FIELD_SIZE 2 +#define PHY_SFD_FIELD_SIZE 1 +#define PHY_PREAMBLE_FIELD_SIZE 4 +#define PHY_LQI_FIELD_SIZE 1 +#define PHY_RSSI_FIELD_SIZE 1 + +/****************************************************************************** + Types section +******************************************************************************/ +//! CCA mode types. IEEE 802.15.4-2006 6.9.9 Clear channel assessment (CCA). +typedef enum +{ + PHY_CCA_MODE_N = 0, + PHY_CCA_MODE_1 = 1, + PHY_CCA_MODE_2 = 2, + PHY_CCA_MODE_3 = 3 +} PHY_CcaMode_t; + +//! Energy level type. +typedef uint8_t PHY_EnergyLevel_t; + +//! Evailible channel pages. +enum +{ + CHANNEL_PAGE_0 = 0, + CHANNEL_PAGE_1 = 1, + CHANNEL_PAGE_2 = 2, + CHANNEL_PAGE_5 = 5, + CHANNEL_PAGE_20 = 20, + CHANNEL_PAGE_22 = 22, +}; + +#endif /* _PHY_H */ + +// eof phy.h -- cgit v1.2.3