⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmdlfe.h

📁 卫星接收机器卫星 自动搜索, 包括优化处理
💻 H
📖 第 1 页 / 共 4 页
字号:
//-----------------------------------------------------------------------------
// $Header: S:/SYSOL/SOURCE/SDE_RWE/comps/tmdl/comps/tmdlFe/inc/RCS/tmdlFe.h,v 1.6 2003/07/24 08:36:20 frq03592 Exp $
// (C) Copyright 2000 Philips Semiconductors, All rights reserved
//
// This source code and any compilation or derivative thereof is the sole
// property of Philips Corporation and is provided pursuant to a Software
// License Agreement.  This code is the proprietary information of Philips
// Corporation and is confidential in nature.  Its use and dissemination by
// any party other than Philips Corporation is strictly limited by the
// confidential information provisions of the Agreement referenced above.
//-----------------------------------------------------------------------------
/**
   (Copyright (C) 2004 Koninklijke Philips Electronics N.V.
   All rights reserved.
   This source code and any compilation or derivative thereof is the
   proprietary information of Koninklijke Philips Electronics N.V.
   and is confidential in nature.
   Under no circumstances is this software to be exposed to or placed
   under an Open Source License of any type without the expressed
   written permission of Koninklijke Philips Electronics N.V.

   \file  tmdlFe.h
   \brief This file is the exported header file of tmdlFe component. This component
   is the device library for the channel decoding (which includes channel decoding and 
   tuning)
   
   \note  This component use board support library for the lower layers

   \bug   This component is not generic and needs some redesign to remove
   dependencies on the hardware
*/

#ifndef tmdlFe_H //-----------------
#define tmdlFe_H

#ifdef __cplusplus
extern "C"
{
#endif

#include "tmhalFEtypes.h"

//-----------------------------------------------------------------------------
// Types and defines:
//-----------------------------------------------------------------------------
/** compatibility number */
#define TMDL_FE_COMP_NUM    1           
/** major version number  */
#define TMDL_FE_MAJOR_VER   1           
/** minor version number  */
#define TMDL_FE_MINOR_VER   0    
// Terrestrial Demodulator capabilities
// For the board configuration

/** Board reference usde for terrestrial */
#define TMDL_FE_CFG_TER_BOARD_CFG       0x57540000
/** Board reference used for terrestrial with Silicon tuner*/
#define TMDL_FE_CFG_TER_SI_TUNER_BOARD_CFG       0x57500000
/** Terrestrial Tuner Minimum frequency  */
#define TMDL_FE_CFG_FREQ_TUNER_MIN_TER  47000000
/** Terrestrial Tuner Maximum frequency */
#define TMDL_FE_CFG_FREQ_TUNER_MAX_TER  860000000
/** Terrestrial Tuner Minimum symbol rate */
#define TMDL_FE_CFG_FS_BW_MIN_TER       6000000
/** Terrestrial Tuner Maximum symbol rate  */
#define TMDL_FE_CFG_FS_BW_MAX_TER       8000000
/** number of constants for terrestrial media to be removed as unused */
#define TMDL_FE_CFG_NBOFCONST_TER       4
/**  0:DVB, 1:VSB -> regarding the HPI std. definition */
#define TMDL_FE_CFG_STD_TER             0       


// Satellite Demodulator capabilities
// For the board configuration

/** Board reference usde for satellite */
#define TMDL_FE_CFG_SAT_BOARD_CFG       0x57611000
/** Board reference usde for satellite */
#define TMDL_FE_CFG_SAT_BOARD_CFG_52    0x57520000
/** Satellite Tuner Minimum frequency  */
#define TMDL_FE_CFG_FREQ_TUNER_MIN_SAT  950000000
/** Satellite Tuner Maximum frequency */
#define TMDL_FE_CFG_FREQ_TUNER_MAX_SAT  (HPIv2_INT32) 2150000000
/** Satellite Tuner Minimum bandwidth */
#define TMDL_FE_CFG_FS_BW_MIN_SAT       1000000
/** Satellite Tuner Maximum bandwidth */
#define TMDL_FE_CFG_FS_BW_MAX_SAT       45000000
/** number of constants for satellite media to be removed as unused */
#define TMDL_FE_CFG_NBOFCONST_SAT       3
/** Satellite Maximum symbol rate */
#define TMDL_FE_CFG_SAT_SR_MAX			45000000
/** Satellite Minimum symbol rate */
#define TMDL_FE_CFG_SAT_SR_MIN			2000000
/** Add of the LNBP21 for TT sat board */
#define LNBP21I2CAdd_BY					0x10


/* Cable Demodulator capabilities */
/* For the board configuration*/
   
/** Board reference used for cable */
#define TMDL_FE_CFG_CAB_BOARD_CFG       0x57570100
/** Board reference used for cable special */
#define TMDL_FE_CFG_CAB_BOARD_CFG_5755  0x57550200
/** Board reference number 2 used for cable */
#define TMDL_FE_CFG_CAB_BOARD_CFG2       0x57550000
/** Cable Tuner Minimum frequency  */
#define TMDL_FE_CFG_FREQ_TUNER_MIN_CAB  47000000
/** Cable Tuner Maximum frequency */
#define TMDL_FE_CFG_FREQ_TUNER_MAX_CAB  858000000
/** Cable Tuner Minimum symbol rate */
#define TMDL_FE_CFG_FS_BW_MIN_CAB          1000000
/** Cable Tuner Maximum symbol rate  */
#define TMDL_FE_CFG_FS_BW_MAX_CAB          7000000
/** number of constants for cable media to be removed as unused */
#define TMDL_FE_CFG_NBOFCONST_CAB       6

// Number of Register for FE ICs
/**  It should be a local define */
#define TMDL_FE_10021_NB_REG    179
/**  It should be a local define */
#define TMDL_FE_10023_NB_REG    238
/**  It should be a local define */ 
#define TMDL_FE_10046_NB_REG    88
/**  It should be a local define */
#define TMDL_FE_10086_NB_REG    88
/**  It should be a local define */
#define TMDL_FE_1316_NB_REG     4
/**  It should be a local define */ 
#define TMDL_FE_8260_NB_REG     5
/**  It should be a local define */      
#define TMDL_FE_8262_NB_REG     10
/**  It should be a local define */ 
#define TMDL_FE_8270_NB_REG     15 
/**  It should be a local define */ 
#define TMDL_FE_8271_NB_REG     13 
/**  It should be a local define */
#define TMDL_FE_8274_NB_REG     13 
 

/*************************************************************************/
/**************************** Satellite types ****************************/
/*************************************************************************/
/**
   \brief  Viterbi rate

   also called viterbi rate which is applied after the convolution
   mechanism (also called inner code) which normally multiply per 2
   the number of transmitted bytes (This is the puncturing rate 1/2
   which in fact is a no puncturing applied).
*/

  // Fine (but slow) autoscan or normal autoscan
  typedef enum _tmdlFeAutoScanMode_t
  {
	tmdlFeAutoScanAverage = 0,
   	tmdlFeAutoScanFine
  } tmdlFeAutoScanMode_t;   
   
   typedef enum _tmdlFeSatViterbiRate_t
   {
      /** puncturing rate = 1/2 We transmit 2 bits per 1 bit */
      tmdlFeSatRate12_E,
      /** puncturing rate = 2/3 We transmit 3 bits per 2 bits */
      tmdlFeSatRate23_E,
      /** puncturing rate = 3/4 We transmit 4 bits per 3 bits */
      tmdlFeSatRate34_E,
      /** puncturing rate = 5/6 We transmit 6 bits per 5 bits */
      tmdlFeSatRate56_E,
      /** puncturing rate = 7/8 We transmit 7 bits per 6 bits */
      tmdlFeSatRate67_E,
      /** puncturing rate = 7/8 We transmit 8 bits per 7 bits */
      tmdlFeSatRate78_E,
      /** puncturing rate automatic detection */
      tmdlFeSatRateAutoDetect_E,
      /** automatic detection*/
      tmdlFeSatRateMax_E
   }tmdlFeSatViterbiRate_t;

/**
   \brief  Voltage polarization for satellite media

   demodulator can put 14 V or 18 V to drive satellite antenna polarization(vertical or horizontal)

   \note   NA 

   \sa     NA
*/

   typedef enum _tmdlFeSatPolarVoltage_t
   {
      /** 0V for Analog swith, 0 volts is used     */   	
      tmdlFeSat0V_E,      	
      /** 14V for the vertical polarisation usually     */
      tmdlFeSat14V_E,   
      /** 18V for the horizontal polarisation usually   */              
      tmdlFeSat18V_E                    
   }tmdlFeSatPolarVoltage_t;

/**
   \brief  Satellite signal specification

   Viterbi rate
   Polarization voltage (14/18V)
   Tone burst enabled/disabled

   \note   NA

   \sa     NA
*/
   typedef struct _tmdlFeSatSignalSpecification_t
   {
      /** viterbi puncturing rate*/
      tmdlFeSatViterbiRate_t    ViterbiRate_E;
      /** Polarization of the dish*/
      tmdlFeSatPolarVoltage_t	Polar_E;
      /** Tone state*/
      UInt32                    ToneState;
      tmdlFeAutoScanMode_t  	AutoScanMode_E; 
   }tmdlFeSatSignalSpecification_t;

/**
   \brief  Power of the LNB

   Mode of powering of the LNB

   \note   NA

   \sa     NA
*/
   typedef enum _tmdlFeSatLnbPower_t
   {
      /** the LNB is supplied internally by ...*/
      tmdlFeSatInternalSupply_E,
      /** the LNB is supplied externally, we don't have to take care of it */
      tmdlFeSatExternalSupply_E,
      /** Max value */
      tmdlFeSatPowerMax_E
   }tmdlFeSatLnbPower_t;

/**
   \brief  Tone burst usage

   Tone burst mode: not used, A mode, B mode

   \note   NA

   \sa     NA
*/
   typedef enum _tmdlFeSatToneBurst_t
   {
      /** No tone burst*/
      tmdlFeSatToneBurstNotUsed_E,
      /** Satellite position A*/
      tmdlFeSatToneBurstA_E,
      /** Satellite position B*/
      tmdlFeSatToneBurstB_E
   }tmdlFeSatToneBurst_t;

/**
   \brief  Disecq frame

   type definition of a disecq frame. disecq is ude to drive satellite system antenna

   \note   NA

   \sa     NA
*/
   typedef struct _tmdlFeSatDiSEqCFrame_t
   {
      /** Frame byte*/
      UInt8   Frm;
      /** Address byte*/
      UInt8   Add;
      /** Command byte*/
      UInt8   Cmd;
      /** Optional data 0*/
      UInt8   Data0;
      /** Optional data 1*/
      UInt8   Data1;
      /** Optional data 2*/
      UInt8   Data2;
   }tmdlFeSatDiSEqCFrame_t;

/**
   \brief   Disecq frame + number of bytes

   \note   NA

   \sa     NA
*/
   typedef struct _tmdlFeSatDiSEqC_t
   {
      /** number of byte in the frame*/
      UInt8                   NbByte_C;
      /** Description of the frame content*/
      tmdlFeSatDiSEqCFrame_t    Frame_S;

   }tmdlFeSatDiSEqC_t;
/**
   \brief  Partial Satellite configuration type

   To be detailed

   \note   
   \bug type definition does not follow the coding rules
   name is not very appropriate as there is already a tmdlFeSatConfig_t

   \sa     NA
*/
   typedef enum
   {
      tmdlFeSatInit,
      tmdlFeSatToneBurst,
      tmdlFeSatDiseqc,
      tmdlFeSatSwitchManual,
      tmdlFeSatMax
   }tmdlFeSatConfigType;
/**
   \brief  22Khz on/off on sattelite cable to drive LNB 
   to select high or low Ku Band

   \note   
   \bug type definition does not follow the coding rules
   name is not very appropriate as there is already 
   a tmdlFeSatConfig_t

   \sa     NA
*/

typedef enum
{
   /** Put 22Khz on over cable to dish antenna */
   tmdlFeSatManual22KHzOn,  
   /** Put 22Khz off over cable to dish antenna*/
   tmdlFeSatManual22KHzOff
}tmdlFeSatManual22KHz;
/**
   \brief Satellite configuration type
   
   To be detailed

   \note NA   
   \bug confusion possible with tmdlFeSatConfigType

   \sa     NA
*/
   typedef struct _tmdlFeSatConfig_t
   {
      /** config type (disecq or tone burst or lnb power)*/
      tmdlFeSatConfigType     ConfigType;
      /** Lnb power (is it linked to 22 khz)*/
      tmdlFeSatLnbPower_t     LnbPower_E;
      /** Tone burst*/
      tmdlFeSatToneBurst_t    ToneBurst_S;
      /** Disecq frame */
      tmdlFeSatDiSEqC_t     DiSEqC_S;
      /** Generation of continuous 22 Khz */
      tmdlFeSatManual22KHz	Manual22KHz_E;
   }tmdlFeSatConfig_t;



/*********************************************************************/
/**************************** Cable types ****************************/
/*********************************************************************/
/**
   \brief dummy type of cable tuning config

   \note   NA

   \sa     NA
*/

   typedef UInt32 tmdlFeCblTuningConfig_t;
/**
   \brief dummy type of cable scanning config

   \note   NA

   \sa     NA
*/
   typedef UInt32 tmdlFeCblSearchConfig_t;
/**
   \brief dummy type of cable status

   \note   NA

   \sa     NA
*/
   typedef UInt32 tmdlFeCblStatus_t;
/**
   \brief dummy type of cable config

   \note   NA

   \sa     NA
*/
   typedef UInt32 tmdlFeCblConfig_t;



/***************************************************************************/
/**************************** Terrestrial types ****************************/
/***************************************************************************/
/**
   \brief Terrestrial standard used
   
   DVB-T: (europe)
   ATSC :(USA)

   \note   NA

   \sa     NA
*/
   typedef enum _tmdlFeTerStandard_t
   {
      /** DVB-T,  COFDM */
      tmdlFeTerDVB_E,   
      /** ATSC,   VSB */
      tmdlFeTerATSC_E,  
      /** Max value */   
      tmdlFeTerStandardMax_E
   } tmdlFeTerStandard_t;

/**************************** DVB-T types ****************************/

/**
   \brief Terrestrial viterbi rate

   Puncturing rates:
   1/2
   2/3
   3/4
   5/6
   7/8
   Mode detection automatique of the puncturing rate

   \note   NA

   \sa     NA
*/

   typedef enum _tmdlFeTerViterbiRate_t
   {
      /** DVB 1/2                           */
      tmdlFeTerRate12_E,        
      /** DVB  /  ATSC 2/3                  */          
      tmdlFeTerRate23_E,        
      /** DVB   3/4                 */
      tmdlFeTerRate34_E,        
      /** DVB   5/6                 */
      tmdlFeTerRate56_E, 
      /** DVB   7/8                 */
      tmdlFeTerRate78_E,                
      /** DVB   automatic choice    */
      tmdlFeTerRateAutoDetect_E, 
      /**Max value*/
      tmdlFeTerRateMax_E
   }tmdlFeTerViterbiRate_t;

/**
   \brief Terrestrial transmission FFT mode 

   corresponds to the number of carriers used in the modulation
   2k: (1705 active carriers, space 1116 kHz)
   8K: (6817 active carriers, space 4464 kHz)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -