A library implementing IEEE 802.15.4 PHY functionality for the MCR20A transceiver. The PHY sublayer provides two services: the PHY data service and the PHY management service interfacing to the PHY sublayer management entity (PLME) service access point (SAP) (known as PLME-SAP). The PHY data service enables the transmission and reception of PHY protocol data units (PSDUs) over the media (radio).

Fork of fsl_phy_mcr20a by Freescale

The Freescale PHY Layer deals with the physical burst which is to be sent and/or received. It performs modulation and demodulation, transmitter and receiver switching, fragmentation, scrambling, interleaving, and error correction coding. The communication to the upper protocol layers is carried out through the Layer 1 Interface.

The PHY Layer is capable of executing the following sequences:

  • I (Idle)
  • R (Receive Sequence conditionally followed by a TxAck)
  • T (Transmit Sequence)
  • C (Standalone CCA)
  • CCCA (Continuous CCA)
  • TR (Transmit/Receive Sequence - transmit unconditionally followed by either an R or RxAck)

In addition to these sequences the PHY Layer also integrates a packet processor which determines whether the packet is MAC-compliant, and if it is, whether it is addressed to the end device. Another feature of the packet processor is Source Address Matching which can be viewed as an extension of packet filtering; however its function is very specific to its intended application (data-polling and indirect queue management by a PAN Coordinator).

Documentation

MCR20A PHY Reference Manual

Committer:
andreikovacs
Date:
Tue Aug 18 12:41:42 2015 +0000
Revision:
0:764779eedf2d
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andreikovacs 0:764779eedf2d 1 /*!
andreikovacs 0:764779eedf2d 2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
andreikovacs 0:764779eedf2d 3 * All rights reserved.
andreikovacs 0:764779eedf2d 4 *
andreikovacs 0:764779eedf2d 5 * \file PhyConfig.h
andreikovacs 0:764779eedf2d 6 *
andreikovacs 0:764779eedf2d 7 * Redistribution and use in source and binary forms, with or without modification,
andreikovacs 0:764779eedf2d 8 * are permitted provided that the following conditions are met:
andreikovacs 0:764779eedf2d 9 *
andreikovacs 0:764779eedf2d 10 * o Redistributions of source code must retain the above copyright notice, this list
andreikovacs 0:764779eedf2d 11 * of conditions and the following disclaimer.
andreikovacs 0:764779eedf2d 12 *
andreikovacs 0:764779eedf2d 13 * o Redistributions in binary form must reproduce the above copyright notice, this
andreikovacs 0:764779eedf2d 14 * list of conditions and the following disclaimer in the documentation and/or
andreikovacs 0:764779eedf2d 15 * other materials provided with the distribution.
andreikovacs 0:764779eedf2d 16 *
andreikovacs 0:764779eedf2d 17 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
andreikovacs 0:764779eedf2d 18 * contributors may be used to endorse or promote products derived from this
andreikovacs 0:764779eedf2d 19 * software without specific prior written permission.
andreikovacs 0:764779eedf2d 20 *
andreikovacs 0:764779eedf2d 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
andreikovacs 0:764779eedf2d 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
andreikovacs 0:764779eedf2d 23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
andreikovacs 0:764779eedf2d 24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
andreikovacs 0:764779eedf2d 25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
andreikovacs 0:764779eedf2d 26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
andreikovacs 0:764779eedf2d 27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
andreikovacs 0:764779eedf2d 28 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
andreikovacs 0:764779eedf2d 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
andreikovacs 0:764779eedf2d 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
andreikovacs 0:764779eedf2d 31 */
andreikovacs 0:764779eedf2d 32
andreikovacs 0:764779eedf2d 33 #ifndef _PHY_CONFIG_H_
andreikovacs 0:764779eedf2d 34 #define _PHY_CONFIG_H_
andreikovacs 0:764779eedf2d 35
andreikovacs 0:764779eedf2d 36 #ifndef gAspCapability_d
andreikovacs 0:764779eedf2d 37 #define gAspCapability_d 1
andreikovacs 0:764779eedf2d 38 #endif
andreikovacs 0:764779eedf2d 39
andreikovacs 0:764779eedf2d 40 #ifndef gMaxPhyTimers_c
andreikovacs 0:764779eedf2d 41 #define gMaxPhyTimers_c 10
andreikovacs 0:764779eedf2d 42 #endif
andreikovacs 0:764779eedf2d 43
andreikovacs 0:764779eedf2d 44 #ifndef gMpmMaxPANs_c
andreikovacs 0:764779eedf2d 45 #define gMpmMaxPANs_c 1
andreikovacs 0:764779eedf2d 46 #endif
andreikovacs 0:764779eedf2d 47
andreikovacs 0:764779eedf2d 48 #ifndef gPhyInstancesCnt_c
andreikovacs 0:764779eedf2d 49 #define gPhyInstancesCnt_c 1
andreikovacs 0:764779eedf2d 50 #endif
andreikovacs 0:764779eedf2d 51
andreikovacs 0:764779eedf2d 52 #ifndef gPhyTaskStackSize_c
andreikovacs 0:764779eedf2d 53 #define gPhyTaskStackSize_c 600
andreikovacs 0:764779eedf2d 54 #endif
andreikovacs 0:764779eedf2d 55
andreikovacs 0:764779eedf2d 56 #ifndef gPhyTaskPriority_c
andreikovacs 0:764779eedf2d 57 #define gPhyTaskPriority_c OSA_PRIORITY_REAL_TIME
andreikovacs 0:764779eedf2d 58 #endif
andreikovacs 0:764779eedf2d 59
andreikovacs 0:764779eedf2d 60 #ifndef gAfcEnabled_d
andreikovacs 0:764779eedf2d 61 #define gAfcEnabled_d 0
andreikovacs 0:764779eedf2d 62 #endif
andreikovacs 0:764779eedf2d 63
andreikovacs 0:764779eedf2d 64 #endif //_PHY_CONFIG_H_