📄 tmdlfe.h
字号:
//-----------------------------------------------------------------------------
// $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 + -